ES2611664T3 - Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificación de señales armónicas - Google Patents

Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificación de señales armónicas Download PDF

Info

Publication number
ES2611664T3
ES2611664T3 ES11755462.6T ES11755462T ES2611664T3 ES 2611664 T3 ES2611664 T3 ES 2611664T3 ES 11755462 T ES11755462 T ES 11755462T ES 2611664 T3 ES2611664 T3 ES 2611664T3
Authority
ES
Spain
Prior art keywords
band
sub
candidates
task
audio signal
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
ES11755462.6T
Other languages
English (en)
Inventor
Vivek Rajendran
Ethan Robert Duni
Venkatesh Krishnan
Ashish Kumar Tawari
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 ES2611664T3 publication Critical patent/ES2611664T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/093Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters using sinusoidal excitation models

Abstract

Un procedimiento de procesamiento de señales de audio, comprendiendo dicho procedimiento: en un dominio de frecuencia, la localización de una pluralidad de picos en una señal de audio de referencia; la selección de un número Nf de candidatos para una frecuencia fundamental de un modelo armónico, basado cada uno en la localización de un pico correspondiente entre la pluralidad de picos en el dominio de la frecuencia. basándose en las localizaciones de al menos dos entre la pluralidad de picos en el dominio de la frecuencia, el cálculo de un número Nd de candidatos para una separación entre armónicos del modelo armónico; para cada uno entre una pluralidad de diferentes pares de candidatos de la frecuencia fundamental y la separación armónica, la selección de un conjunto de al menos una sub-banda de una señal de audio de destino, en la que una localización de cada sub-banda en el conjunto en el dominio de la frecuencia está basada en el par de candidatos; para cada uno entre la pluralidad de diferentes pares de candidatos, el cálculo de un valor de energía a partir del conjunto correspondiente de al menos una sub-banda de la señal de audio de destino; y basándose en al menos una pluralidad de los valores de energía calculados, la selección de un par de candidatos entre la pluralidad de diferentes pares de candidatos, en donde al menos uno entre los números Nf y Nd tiene un valor mayor que uno.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificacion de senales armonicas Campo
Esta divulgacion se refiere al campo del procesamiento de senales de audio.
Normalmente se utilizan esquemas de codificacion basados en la transformacion de coseno discreta modificada (MDCT) para la codificacion de senales de audio generalizadas, que pueden incluir contenido vocal y/o no vocal, como, por ejemplo, musica. Ejemplos de codecs de audio existentes que utilizan la codificacion MDCT incluyen la Capa 3 de Audio de MPEG-1 (MP3), Dolby Digital (Dolby Labs., Londres, Reino Unido; denominado tambien AC-3 y normalizado como ATSC A/52), Vorbis (Fundacion Xiph.Org, Somerville, MA), Audio de Windows Media (WMA, Microsoft Corp., Redmond, WA), Codificacion acustica de transformacion adaptativa (Adaptative Transform Acoustic Coding) (ATRAC, Sony Corp., Tokio, JP) y Codificacion de audio avanzada (Advanced Audio Coding) (AAC, como se ha normalizado recientemente en ISO/IEC 14496-3:2009). La codificacion MDCT es tambien un componente de algunas normas de telecomunicaciones, tales como el Codec de velocidad variable mejorado (Enhanced Variable Rate Codec) (EVRC, como se ha normalizado en el documento del Proyecto 2 de Colaboracion de Tercera Generacion (3GPP2) C.S0014-D v2.0, 25 de enero de 2010). El codec G.718 ("Codificacion de voz y audio a velocidad binaria variable entre 8-32 kbits/s con estructura integrada de banda estrecha y banda ancha y robusta en cuanto a errores en las tramas", Sector de Normalizacion de las Telecomunicaciones (UIT-T), Ginebra, CH, junio de 2008, corregido en noviembre 2008 y agosto de 2009, modificado en marzo de 2009 y marzo de 2010) es un ejemplo de un codec multicapa que utiliza la codificacion MDCT. Bartkowiak y Zernicki ("Modelado armonico sinusoidal + ruido de audio basado en la estimacion de multiples F0", Convencion n° 125 de la Sociedad de ingenierfa de audio, San Francisco, EE.UU., 2008) divulgan un procedimiento para la deteccion y el seguimiento de multiples series armonicas, basado en la estimacion previa de candidatos de F0 y el posterior ajuste iterativo de un filtro armonico con refinamiento simultaneo de F0 y del factor de inarmonfa.
Antecedentes
Un procedimiento de procesamiento de senales de audio de acuerdo a la invencion incluye la localizacion de una pluralidad de picos en una senal de audio de referencia en un dominio de la frecuencia. Este procedimiento tambien incluye la seleccion de un numero Nf de candidatos para una frecuencia fundamental de un modelo armonico, en donde cada candidato esta basado en la localizacion de un correspondiente pico entre la pluralidad de picos en el dominio de la frecuencia. El procedimiento incluye tambien, basandose en las localizaciones de al menos dos entre la pluralidad de picos en el dominio de la frecuencia, el calculo de un numero Nd de candidatos de separacion armonica. Este procedimiento incluye, para cada uno entre una pluralidad de diferentes pares de candidatos de frecuencia fundamental y de separacion armonica, la seleccion de un conjunto de al menos una sub-banda de una senal de audio de destino, en donde una localizacion de cada sub-banda en el conjunto en el dominio de frecuencia esta basada en el par de candidatos. Este procedimiento incluye el calculo, para cada uno entre la pluralidad de diferentes pares de candidatos, de un valor de energfa a partir del conjunto correspondiente de al menos una sub- banda de la senal de audio de destino y, basandose en al menos una pluralidad de los valores de energfa calculados, la seleccion de un par de candidatos entre la pluralidad de diferentes pares de candidatos. Tambien se divulgan medios de almacenamiento legibles por ordenador (por ejemplo, medios no transitorios) que tienen caracterfsticas tangibles que hacen que una maquina que lea las caracterfsticas lleve a cabo un procedimiento de este tipo.
Un aparato para el procesamiento de senales de audio segun la invencion incluye medios para localizar una pluralidad de picos en una senal de audio de referencia en un dominio de la frecuencia; medios para seleccionar un numero Nf de candidatos para una frecuencia fundamental de un modelo armonico, basandose cada uno de ellos en la localizacion de un correspondiente pico entre la pluralidad de picos en el dominio de la frecuencia; y medios para calcular un numero Nd de candidatos para una separacion entre los armonicos del modelo armonico, basandose en las localizaciones de al menos dos de los picos en el dominio de la frecuencia. Este aparato incluye tambien medios para seleccionar, para cada uno entre una pluralidad de diferentes pares de candidatos de la frecuencia fundamental y de la separacion armonica, un conjunto de al menos una sub-banda de una senal de audio de destino, en donde una localizacion en el dominio de la frecuencia de cada sub-banda en el conjunto esta basada en el par de candidatos; y medios para calcular, para cada uno entre la pluralidad de diferentes pares de candidatos, un valor de energfa a partir del conjunto correspondiente de al menos una sub-banda de la senal de audio de destino. Este aparato tambien incluye medios para seleccionar un par de candidatos entre la pluralidad de diferentes pares de candidatos, basandose al menos en una pluralidad de los valores de energfa calculados.
Un aparato para el procesamiento de senales de audio de acuerdo a otra configuracion general incluye un localizador de picos en el dominio de la frecuencia, configurado para localizar una pluralidad de picos en una senal de audio de referencia en un dominio de la frecuencia; un selector de candidatos de frecuencia fundamental, configurado para seleccionar un numero Nf de candidatos para una frecuencia fundamental de un modelo armonico, basandose cada uno de ellos en la localizacion de un correspondiente pico entre la pluralidad de picos en el dominio
5
10
15
20
25
30
35
40
45
50
55
60
65
de la frecuencia; y un calculador de distancia configurado para calcular un numero Nd de candidatos para una separacion entre armonicos del modelo armonico, basandose en las localizaciones de al menos dos de los picos en el dominio de la frecuencia. Este aparato tambien incluye un selector de disposicion de sub-bandas, configurado para seleccionar, para cada uno entre una pluralidad de diferentes pares de candidatos de la frecuencia fundamental y de la separacion armonica, un conjunto de al menos una sub-banda de una senal de audio de destino, en el que una localizacion en el dominio de la frecuencia de cada sub-banda en el conjunto esta basada en el par de candidatos; y un calculador de energfa configurado para calcular, para cada uno entre la pluralidad de diferentes pares de candidatos, un valor de energfa a partir del conjunto correspondiente de al menos una sub-banda de la senal de audio de destino. Este aparato tambien incluye un selector de pares de candidatos, configurado para seleccionar un par de candidatos entre la pluralidad de diferentes pares de candidatos, basandose en al menos una pluralidad de los valores de energfa calculados.
BREVE DESCRIPCION DE LOS DIBUJOS
La FIG. 1A muestra un diagrama de flujo para un procedimiento MA100 de procesamiento de una senal de audio de acuerdo a una configuracion general.
La FIG. 1B muestra un diagrama de flujo para una implementacion TA602 de la tarea TA600.
La FIG. 2A ilustra un ejemplo de una ventana de seleccion de picos.
La FIG. 2B muestra un ejemplo de una aplicacion de la tarea T430.
La FIG. 3A muestra un diagrama de flujo de una implementacion MA110 del procedimiento MA100.
La FIG. 3B muestra un diagrama de flujo de un procedimiento MD100 de descodificacion de una senal codificada.
La FIG. 4 muestra un grafico de un ejemplo de una senal armonica y conjuntos alternativos de sub-bandas seleccionadas.
La FIG. 5 muestra un diagrama de flujo de una implementacion T402 de la tarea T400.
La FIG. 6 muestra un ejemplo de un conjunto de sub-bandas dispuesto de acuerdo a una implementacion del procedimiento MA100.
La FIG. 7 muestra un ejemplo de un enfoque para compensar la falta de informacion de arritmia (fluctuacion de fase).
La FIG. 8 muestra un ejemplo de expansion de una region de una senal residual.
La FIG. 9 muestra un ejemplo de codificacion de una parte de una senal residual como un numero de pulsos unitarios.
La FIG. 10A muestra un diagrama de flujo para un procedimiento MB100 de procesamiento de una senal de audio de acuerdo a una configuracion general.
La FIG. 10B muestra un diagrama de flujo de una implementacion MB110 del procedimiento MB100.
La FIG. 11 muestra un grafico de magnitud frente a frecuencia para un ejemplo en el que la senal de audio de destino es una senal UB-MDCT.
La FIG. 12A muestra un diagrama de bloques de un aparato MF100 para el procesamiento de una senal de audio de acuerdo a una configuracion general.
La FIG. 12B muestra un diagrama de bloques de un aparato A100 para el procesamiento de una senal de audio de acuerdo a una configuracion general.
La FIG. 13A muestra un diagrama de bloques de una implementacion MF110 del aparato MF100.
La FIG. 13B muestra un diagrama de bloques de una implementacion A110 del aparato A100.
La FIG. 14 muestra un diagrama de bloques de un aparato MF210 para el procesamiento de una senal de audio de acuerdo a una configuracion general.
Las FIGs. 15A y 15B ilustran ejemplos de aplicaciones del procedimiento MB110 para codificar senales de
5
10
15
20
25
30
35
40
45
50
55
60
65
destino.
Las FIGs. 16A a 16E muestran una serie de aplicaciones para diversas implementaciones del aparato A110,
MF110 o MF210.
La FIG. 17A muestra un diagrama de bloques de un procedimiento MC100 de clasificacion de senales.
La FIG. 17B muestra un diagrama de bloques de un dispositivo de comunicaciones D10.
La FIG. 18 muestra vistas delantera, trasera y lateral de un equipo manual H100. La FIG. 19 muestra un ejemplo
de una aplicacion del procedimiento MA100.
DESCRIPCION DETALLADA
Puede ser deseable identificar regiones de energfa significativa dentro de una senal a codificar. La separacion de dichas regiones del resto de la senal permite la codificacion deseada de estas regiones para una mayor eficacia de codificacion. Por ejemplo, puede ser deseable aumentar la eficacia de codificacion utilizando relativamente mas bits para codificar dichas regiones y relativamente menos bits (o incluso ningun bit) para codificar otras regiones de la senal.
Para las senales de audio que tienen un alto contenido armonico (por ejemplo, senales de musica, senales de habla vocalizada), las localizaciones de las regiones de energfa significativa en el dominio de frecuencia pueden estar relacionadas. Puede ser deseable llevar a cabo una codificacion eficaz en el dominio de la transformacion de una senal de audio explotando dicha armonicidad.
Un esquema como el que se describe en el presente documento, para la codificacion de un conjunto de coeficientes de transformacion, que representan un intervalo de frecuencias de audio de una senal, explota la armonicidad en el espectro de la senal mediante el uso de un modelo armonico para parametrizar una relacion entre las localizaciones de las regiones de energfa significativa en el dominio de la frecuencia. Los parametros de este modelo armonico pueden incluir la localizacion de la primera de estas regiones (por ejemplo, en orden creciente de frecuencia) y una separacion entre regiones sucesivas. La estimacion de los parametros del modelo armonico puede incluir la generacion de un banco de conjuntos de candidatos de valores de parametros y la seleccion de un conjunto de valores de parametros del modelo entre el banco generado. En una aplicacion particular, se utiliza un esquema de este tipo para codificar los coeficientes de la transformacion MDCT correspondientes al intervalo entre 0 y 4 kHz (en adelante denominado MDCT de banda baja, o LB-MDCT) de una senal de audio, tal como un residuo de una operacion de codificacion predictiva lineal.
La separacion de las localizaciones de regiones de energfa significativa de su contenido permite transmitir al descodificador una representacion de una relacion armonica entre las localizaciones de estas regiones, utilizando informacion complementaria minima (por ejemplo, los valores de los parametros del modelo armonico). Dicha eficacia puede ser especialmente importante para aplicaciones de baja velocidad binaria, tales como la telefonfa movil.
Salvo que este expresamente limitado por su contexto, el termino "senal" se utiliza en esta memoria para indicar cualquiera de sus significados comunes, incluyendo un estado de una posicion de memoria (o un conjunto de posiciones de memoria) tal como se expresa en un cable, un bus u otro medio de transmision. Salvo que este expresamente limitado por su contexto, el termino "generacion" se utiliza en la presente memoria para indicar cualquiera de sus significados comunes, tales como el calculo o, en otro sentido, la fabricacion. Salvo que este expresamente limitado por su contexto, el termino "calculo" se utiliza en la presente memoria para indicar cualquiera de sus significados comunes, tales como el computo, la evaluacion, el allanamiento y/o la seleccion a partir de una pluralidad de valores. Salvo que este expresamente limitado por su contexto, el termino "obtencion" se utiliza para indicar cualquiera de sus significados comunes, tales como el calculo, la deduccion, la recepcion (por ejemplo, desde un dispositivo externo) y/o la recuperacion (por ejemplo, a partir de una formacion de elementos de almacenamiento). Salvo que este expresamente limitado por su contexto, el termino "seleccion" se utiliza para indicar cualquiera de sus significados comunes, tales como la identificacion, la indicacion, la aplicacion y/o el uso de al menos uno, y menos de la totalidad, de un conjunto de dos o mas. Allf donde el termino "comprende" se usa en la presente descripcion y reivindicaciones, no excluye otros elementos u operaciones. El termino "basado en" (como en "A esta basado en B") se utiliza para indicar cualquiera de sus significados comunes, incluyendo los casos (i) "deducido de" (por ejemplo, "B es un precursor de A"), (ii) "basado en al menos" (por ejemplo, "A esta basado en al menos B") y, si corresponde en el contexto particular, (iii) "igual a" (por ejemplo, "A es igual a B"). De manera similar, el termino "en respuesta a" se utiliza para indicar cualquiera de sus significados comunes, incluyendo "en respuesta a al menos".
Salvo que se indique lo contrario, el termino "serie" se usa para indicar una secuencia de dos o mas elementos. El termino "logaritmo" se utiliza para indicar el logaritmo en base diez, aunque las extensiones de dicha operacion a otras bases estan dentro del alcance de esta divulgacion. El termino "componente de frecuencia" se utiliza para
5
10
15
20
25
30
35
40
45
50
55
60
65
indicar una entre un conjunto de frecuencias o bandas de frecuencias de una senal, tal como una muestra de una representacion en el dominio de la frecuencia de la senal (por ejemplo, como la generada por una transformacion rapida de Fourier) o de una sub-banda de la senal (por ejemplo, una sub-banda de la escala de Bark o de la escala de Mel).
Salvo que se indique otra cosa, cualquier divulgacion de una operacion de un aparato que tenga una caracterfstica particular tambien pretende expresamente divulgar un procedimiento que tenga una caracterfstica analoga (y viceversa), y cualquier divulgacion de una operacion de un aparato de acuerdo a una configuracion particular tambien pretende expresamente divulgar un procedimiento de acuerdo a una configuracion analoga (y viceversa). El termino "configuracion" se puede utilizar en referencia a un procedimiento, aparato y/o sistema, segun lo indicado por su contexto particular. Los terminos "metodo", "proceso", "procedimiento" y "tecnica" se utilizan de forma generica e indistintamente, salvo que este indicado lo contrario por el contexto particular. Los terminos "aparato" y "dispositivo" tambien se utilizan genericamente e indistintamente salvo que este indicado lo contrario por el contexto particular. Los terminos "elemento" y "modulo" se utilizan normalmente para indicar una parte de una configuracion mayor. Salvo que este expresamente limitado por su contexto, el termino "sistema" se utiliza en la presente memoria para indicar cualquiera de sus significados comunes, incluyendo "un grupo de elementos que interactuan para servir a un objetivo comun".
Los sistemas, procedimientos y aparatos descritos en este documento son aplicables en general a representaciones de la codificacion de senales de audio en un dominio de la frecuencia. Un ejemplo tfpico de dicha representacion es una serie de coeficientes de transformacion en un dominio de la transformacion. Los ejemplos de transformaciones adecuadas incluyen transformaciones ortogonales discretas, tales como las transformaciones sinusoidales unitarias. Los ejemplos de transformaciones sinusoidales unitarias adecuadas incluyen las transformaciones trigonometricas discretas, que incluyen sin limitacion las transformaciones de coseno discretas (DCT), las transformaciones de seno discretas (DST) y la transformacion discreta de Fourier (DFT). Otros ejemplos de transformaciones adecuadas incluyen versiones solapadas de dichas transformaciones. Un ejemplo particular de una transformacion adecuada es la DCT modificada (MDCT) presentada anteriormente.
En toda esta divulgacion 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 particular de una banda baja de cero a cuatro kilohercios (kHz) y una banda alta de 3,5 a siete kHz. Se hace notar expresamente que los principios expuestos en el presente documento no estan limitados a este ejemplo particular de ninguna manera, salvo que se indique explfcitamente dicho lfmite. Otros ejemplos (de nuevo, sin limitacion) de intervalos de frecuencias para los que se contempla expresamente y se divulga por la presente la aplicacion de estos principios de codificacion, descodificacion, asignacion, cuantizacion y/u otro procesamiento, incluyen una banda baja que tiene un lfmite inferior en cualquiera entre 0, 25, 50, 100, 150 y 200 Hz, y un lfmite superior en cualquiera entre 3000, 3500, 4000 y 4500 Hz, y una banda alta que tiene un lfmite inferior en cualquiera entre 3000, 3500, 4000, 4500 y 5000 Hz, y un lfmite superior en cualquiera entre 6000, 6500, 7000, 7500, 8000, 8500 y 9000 Hz. La aplicacion de dichos principios (de nuevo, sin limitacion) a una banda alta que tiene un lfmite inferior en cualquiera entre 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500 y 9000 Hz, y un lfmite superior en cualquiera entre 10, 10,5, 11, 11,5, 12, 12,5, 13, 13,5, 14, 14,5, 15, 15,5 y 16 kHz, tambien esta expresamente contemplada y se divulga por la presente. Tambien se hace constar expresamente que, aunque una senal de banda alta tfpicamente se convertira en una velocidad de muestreo mas baja en una etapa inicial del proceso de codificacion (por ejemplo, mediante el re- muestreo y/o el diezmado), sigue siendo una senal de banda alta y la informacion que transporta continua representando el intervalo de frecuencias de audio de banda alta. Para un caso en el que la banda baja y la banda alta se solapen en frecuencia, puede ser deseable reducir a cero la parte de solapamiento de la banda baja, reducir a cero la parte de solapamiento de la banda alta, o realizar una atenuacion cruzada sobre la parte de solapamiento desde la banda baja hasta la banda alta.
Un esquema de codificacion tal como el descrito en el presente documento se puede aplicar para codificar cualquier senal de audio (por ejemplo, incluyendo la voz). Alternativamente, puede ser deseable utilizar un esquema de codificacion de este tipo solo para el audio no vocal (por ejemplo, la musica). En tal caso, el esquema de codificacion se puede utilizar con un esquema de clasificacion que determine el tipo de contenido de cada trama de la senal de audio y seleccione un esquema de codificacion adecuado.
Un esquema de codificacion tal como el descrito en este documento se puede utilizar como un codec principal o como una capa o etapa en un codec multi-capa o multi-etapa. En un ejemplo de este tipo, dicho esquema de codificacion se utiliza para codificar una parte del contenido en frecuencia de una senal de audio (por ejemplo, una banda baja o una banda alta), y se utiliza otro esquema de codificacion para codificar otra parte del contenido en frecuencia de la senal. En otro ejemplo de este tipo, dicho esquema de codificacion se utiliza para codificar un residuo (es decir, un error entre las senales original y codificada) de otra capa de codificacion.
La FIG. 1A muestra un diagrama de flujo para un procedimiento MA100 de procesamiento de una senal de audio de acuerdo a una configuracion general que incluye las tareas TA100, TA200, TA300, TA400, TA500 y TA600. El procedimiento MA100 puede estar configurado para procesar la senal de audio como una serie de segmentos (por ejemplo, realizando una instancia de cada una de las tareas TA100, TA200, TA300, TA400, TA500 y TA600 para
5
10
15
20
25
30
35
40
45
50
55
60
65
cada segmento). Un segmento (o "trama") puede ser un bloque de coeficientes de transformacion que corresponde a un segmento en el dominio del tiempo, con una longitud que habitualmente esta en el intervalo entre aproximadamente cinco o diez milisegundos y aproximadamente cuarenta o cincuenta milisegundos. Los segmentos en el dominio del tiempo pueden estar solapados (por ejemplo, con un solapamiento con segmentos adyacentes de un 25% o 50%) o pueden no estar solapados.
En un codificador de audio puede ser deseable obtener tanto una alta calidad como un bajo retardo. Un codificador de audio puede utilizar un tamano de trama grande para obtener una alta calidad, pero desafortunadamente un tamano de trama grande normalmente provoca un retardo mas largo.
Las ventajas potenciales de un codificador de audio como el descrito en el presente documento incluyen una codificacion de alta calidad con tamanos de trama cortos (por ejemplo, un tamano de trama de veinte milisegundos, con una anticipacion de diez milisegundos). En un ejemplo particular, la senal en el dominio del tiempo se divide en una serie de segmentos no solapados de veinte milisegundos, y la MDCT para cada trama se toma sobre una ventana de cuarenta milisegundos que se solapa con cada una de las tramas adyacentes en diez milisegundos.
Un segmento como el procesado por el procedimiento MA100 tambien puede ser una parte (por ejemplo, una banda baja o una banda alta) de un bloque como el producido por la transformacion, o una parte de un bloque como el producido por una operacion anterior sobre un bloque de este tipo. En un ejemplo particular, cada uno de una serie de segmentos procesados por el procedimiento MA100 contiene un conjunto de 160 coeficientes de la MDCT que representan un intervalo de frecuencias de la banda baja de 0 a 4 kHz. En otro ejemplo particular, cada uno de una serie de segmentos procesados por el procedimiento MA100 contiene un conjunto de 140 coeficientes de la MDCT que representan un intervalo de frecuencias de la banda alta de 3,5 a 7 kHz.
La tarea TA100 localiza una pluralidad de picos en la senal de audio en un dominio de la frecuencia. Dicha operacion tambien se puede denominar como "deteccion de picos". La tarea TA100 puede estar configurada para seleccionar un numero particular de los picos mas altos a partir de todo el intervalo de frecuencias de la senal. Alternativamente, la tarea TA100 puede estar configurada para seleccionar picos de un intervalo de frecuencias especificado de la senal (por ejemplo, un intervalo de baja frecuencia) o puede estar configurada para aplicar diferentes criterios de seleccion en diferentes intervalos de frecuencias de la senal. En un ejemplo particular tal como el descrito en el presente documento, la tarea TA100 esta configurada para localizar al menos un primer numero (Nd+1) de los picos mas altos en la trama, incluyendo al menos un segundo numero Nf de los picos mas altos en un intervalo de baja frecuencia de la trama.
La tarea TA100 puede estar configurada para identificar un pico como una muestra de la senal en el dominio de la frecuencia (tambien denominada un "recipiente") que tiene el valor maximo dentro de una cierta distancia minima a cada lado de la muestra. En un ejemplo de este tipo, la tarea TA100 esta configurada para identificar un pico como la muestra que tiene el valor maximo dentro de una ventana de tamano (2dmin+1) que esta centrada en la muestra, donde dmin es una separacion minima permitida entre picos. El valor de dmin se puede seleccionar de acuerdo a un numero maximo deseado de regiones de energfa significativa (tambien denominadas "sub-bandas") que se van a localizar. Los ejemplos de dmin incluyen ocho, nueve, diez, doce y quince muestras (alternativamente, 100, 125, 150, 175, 200 o 250 Hz), aunque se puede utilizar cualquier valor adecuado para la aplicacion deseada. La FIG. 2A ilustra un ejemplo de una ventana de seleccion de picos de tamano (2dmin+1), centrada en una localizacion potencial de un pico de la senal, para un caso en que el valor de dmin es ocho.
Basandose en las localizaciones en el dominio de frecuencia de al menos algunos (por ejemplo, al menos tres) de los picos localizados por la tarea TA100, la tarea TA200 calcula un numero Nd de candidatos de separacion armonica (tambien denominados candidatos de "distancia", o candidatos d). Los ejemplos de valores de Nd incluyen cinco, seis y siete. La tarea TA200 puede estar configurada para calcular estos candidatos de separacion como las distancias (por ejemplo, en terminos del numero de recipientes de frecuencia) entre picos adyacentes de los (Nd+1) picos mas altos localizados por la tarea TA100.
Basandose en las localizaciones en el dominio de la frecuencia de al menos algunos (por ejemplo, al menos dos) de los picos localizados por la tarea TA100, la tarea TA300 identifica un numero Nf de candidatos para la localizacion de la primera sub-banda (tambien denominados candidatos de "frecuencia fundamental" o de f0). Los ejemplos de valores para Nf incluyen cinco, seis y siete. La tarea TA300 puede estar configurada para identificar estos candidatos como las localizaciones de los Nf picos mas altos de la senal. Alternativamente, la tarea TA300 puede estar configurada para identificar estos candidatos como las localizaciones de los Nf picos mas altos en una parte de baja frecuencia (por ejemplo, el 30, 35, 40, 45 o 50 por ciento inferior) del intervalo de frecuencias que se esta examinado. En un ejemplo de este tipo, la tarea TA300 identifica el numero Nf de candidatos de F0 entre las localizaciones de los picos localizados por la tarea TA100 en el intervalo de 0 a 1.250 Hz. En otro ejemplo de este tipo, la tarea TA300 identifica el numero Nf de candidatos de F0 entre las localizaciones de los picos localizados por la tarea TA100 en el intervalo de 0 a 1.600 Hz.
Se hace notar expresamente que el alcance de las implementaciones descritas del procedimiento MA100 incluye el caso en el que solo se calcula un candidato de separacion armonica (por ejemplo, como la distancia entre los dos
5
10
15
20
25
30
35
40
45
50
55
60
65
picos mas altos, o la distancia entre los dos picos mas altos en un intervalo de frecuencias especificado) y el caso independiente en el que solo se identifica un candidato de F0 (por ejemplo, como la localizacion del pico mas alto, o la localizacion del pico mas alto en un intervalo de frecuencias especificado).
Para cada uno entre una pluralidad de pares de candidatos de F0 y d activos, la tarea TA400 selecciona un conjunto de al menos una sub-banda de la senal de audio, en el que una localizacion en el dominio de la frecuencia de cada sub-banda en el conjunto esta basada el par (F0, d). En un ejemplo, la tarea TA400 esta configurada para seleccionar las sub-bandas de cada conjunto de tal manera que la primera sub-banda este centrada en la localizacion de F0 correspondiente, estando el centro de cada sub-banda siguiente separado del centro de la sub- banda anterior por una distancia igual al valor correspondiente de d.
La tarea TA400 puede estar configurada para seleccionar cada conjunto para incluir todas las sub-bandas indicadas por el par (F0, d) correspondiente que se encuentren dentro del intervalo de entrada. Alternativamente, la tarea TA400 puede estar configurada para seleccionar menos que todas estas sub-bandas para al menos uno de los conjuntos. Por ejemplo, la tarea TA400 puede estar configurada para seleccionar no mas de un numero maximo de sub-bandas para el conjunto. Alternativamente o adicionalmente, la tarea TA400 puede estar configurada para seleccionar solo las sub-bandas que se encuentren dentro de un intervalo particular. Las sub-bandas a frecuencias mas bajas tienden a ser mas importantes perceptivamente, por ejemplo, de tal manera que puede ser deseable configurar la tarea TA400 para seleccionar no mas de un numero particular de una o mas (por ejemplo, cuatro, cinco o seis) de las sub-bandas de frecuencia mas baja en el intervalo de entrada y/o solo las sub-bandas cuyas localizaciones no esten por encima de una frecuencia particular dentro del intervalo de entrada (por ejemplo, 1.000, 1.500 o 2.000 Hz).
La tarea TA400 puede estar implementada para seleccionar sub-bandas de longitud fija e igual. En un ejemplo particular, cada sub-banda tiene una anchura de siete recipientes de frecuencia (por ejemplo, 175 Hz, para una separacion de recipientes de veinticinco Hz). Sin embargo, se contempla expresamente y por la presente se divulga que los principios descritos en el presente documento tambien se pueden aplicar a casos en los que las longitudes de las sub-bandas pueden variar de una trama a otra, y/o en los que las longitudes de dos o mas de (posiblemente todas) las sub-bandas dentro de una trama pueden ser diferentes.
En un ejemplo, se considera que todos los pares diferentes de valores de F0 y d son activos, de manera que la tarea TA400 esta configurada para seleccionar un conjunto correspondiente de una o mas sub-bandas para cada posible par (F0, d). Por ejemplo, para un caso en el que Nf y Nd son ambos iguales a siete, la tarea TA400 puede estar configurada para considerar cada uno de los cuarenta y nueve pares posibles. Para un caso en el que Nf es igual a cinco y Nd es igual a seis, la tarea TA400 puede estar configurada para considerar cada uno de los treinta pares posibles. Alternativamente, la tarea TA400 puede estar configurada para imponer un criterio de actividad que algunos de los posibles pares (F0, d) pueden no cumplir. En tal caso, por ejemplo, la tarea TA400 puede estar configurada para ignorar los pares que producirfan mas de un numero maximo admisible de sub-bandas (por ejemplo, combinaciones de valores bajos de F0 y d) y/o pares que producirfan menos de un numero mfnimo deseado de sub-bandas (por ejemplo, combinaciones de valores altos de F0 y d).
Para cada uno entre una pluralidad de pares de candidatos de F0 y d, la tarea TA500 tarea calcula al menos un valor de energfa a partir del conjunto correspondiente de una o mas sub-bandas de la senal de audio. En un ejemplo de este tipo, la tarea TA500 calcula un valor de energfa de cada conjunto de una o mas sub-bandas como la energfa total del conjunto de sub-bandas (por ejemplo, como una suma de las magnitudes al cuadrado de los valores de muestreo en el dominio de la frecuencia en las sub-bandas). Alternativamente o adicionalmente, la tarea TA500 puede estar configurada para calcular valores de energfa a partir de cada conjunto de sub-bandas como las energfas de cada sub-banda individual y/o para calcular un valor de energfa a partir de cada conjunto de sub-bandas como una energfa media por sub-banda (por ejemplo, la energfa total normalizada sobre el numero de sub-bandas) para el conjunto de sub-bandas. La tarea TA500 puede estar configurada para ejecutarse para cada uno de la misma pluralidad de pares que la tarea TA400, o para menos que esta pluralidad. Por ejemplo, para un caso en el que la tarea TA400 esta configurada para seleccionar un conjunto de sub-bandas para cada posible par (F0, d), la tarea TA500 puede estar configurada para calcular valores de energfa solo para los pares que satisfagan un criterio especificado de actividad (por ejemplo, ignorar los pares que producirfan demasiadas sub-bandas y/o los pares que producirfan demasiado pocas sub-bandas, tal como se ha descrito anteriormente). En otro ejemplo, la tarea TA400 esta configurada para ignorar los pares que producirfan demasiadas sub-bandas y la tarea TA500 esta configurada para ignorar tambien los pares que producirfan demasiado pocas sub-bandas.
Aunque la FIG. 1A muestra la ejecucion de las tareas TA400 y TA500 en serie, se entendera que la tarea TA500 tambien puede estar implementada para comenzar a calcular energfas para conjuntos de sub-bandas antes de que haya finalizado la tarea TA400. Por ejemplo, la tarea TA500 puede estar implementada para comenzar a calcular (o incluso para finalizar el calculo) un valor de energfa a partir de un conjunto de sub-bandas antes de que la tarea TA400 comience a seleccionar el siguiente conjunto de sub-bandas. En un ejemplo de este tipo, las tareas TA400 y TA500 estan configuradas para alternarse para cada uno entre la pluralidad de pares activos de candidatos de F0 y d. Del mismo modo, la tarea TA400 tambien puede estar implementada para comenzar la ejecucion antes de que hayan finalizado las tareas TA200 y TA300.
5
10
15
20
25
30
35
40
45
50
55
60
65
Basandose en los valores de energfa calculados a partir de al menos algunos de los conjuntos de una o mas sub- bandas, la tarea TA600 selecciona un par de candidatos entre los pares de candidatos (F0, d). En un ejemplo, la tarea TA600 selecciona el par correspondiente al conjunto de sub-bandas que tienen la energfa total mas alta. En otro ejemplo, la tarea TA600 selecciona el par de candidatos correspondiente al conjunto de sub-bandas que tienen la energfa media por sub-banda mas alta.
La FIG. 1B muestra un diagrama de flujo para una implementacion adicional TA602 de la tarea TA600. La tarea TA620 incluye una tarea TA610 que ordena la pluralidad de pares de candidatos activos segun la energfa media por sub-banda de los conjuntos de sub-bandas correspondientes (por ejemplo, en orden descendente). Esta operacion ayuda a inhibir la seleccion de pares de candidatos que produzcan conjuntos de sub-bandas que tengan una energfa total alta, pero en los que una o mas sub-bandas puedan tener demasiado poca energfa como para ser significativas perceptivamente. Dicha condicion puede indicar un numero excesivo de sub-bandas.
La tarea TA602 tambien incluye una tarea TA620 que selecciona, entre los Pv pares de candidatos que producen los conjuntos de sub-bandas que tienen las energfas medias por sub-banda mas altas, el par de candidatos asociado al conjunto de sub-bandas que captura la mayor parte de la energfa total. Esta operacion ayuda a inhibir la seleccion de pares de candidatos que produzcan conjuntos de sub-bandas que tengan una alta energfa media por sub-banda, pero demasiado pocas sub-bandas. Dicha condicion puede indicar que el conjunto de sub-bandas no logra incluir las regiones de la senal que tengan una energfa mas baja, pero que pueden ser significativas perceptivamente.
La tarea TA620 puede estar configurada para utilizar un valor fijo para Pv, tal como cuatro, cinco, seis, siete, ocho, nueve o diez. Alternativamente, la tarea TA620 tarea puede estar configurada para usar un valor de Pv que este relacionado con el numero total de pares de candidatos activos (por ejemplo, igual a o no mas del diez, veinte o veinticinco por ciento del numero total de pares de candidatos activos).
Los valores seleccionados de F0 y d comprenden informacion complementaria del modelo, que son valores enteros y se pueden transmitir al descodificador utilizando un numero finito de bits. La FIG. 3 muestra un diagrama de flujo de una implementacion MA110 del procedimiento MA100 que incluye una tarea TA700. La tarea TA700 produce una senal codificada que incluye indicaciones de los valores del par de candidatos seleccionado. La tarea TA700 puede estar configurada para codificar el valor seleccionado de F0, o para codificar un desplazamiento del valor seleccionado de F0 a partir de una localizacion minima (o maxima). De manera similar, la tarea TA700 puede estar configurada para codificar el valor seleccionado de d, o para codificar un desplazamiento del valor seleccionado de d a partir de una distancia minima o maxima. En un ejemplo particular, la tarea TA700 utiliza seis bits para codificar el valor de F0 seleccionado y seis bits para codificar el valor de d seleccionado. En ejemplos adicionales, la tarea TA700 puede estar implementada para codificar el valor actual de F0 y/o d de manera diferencial (por ejemplo, como un desplazamiento relativo a un valor anterior del parametro).
Puede ser deseable implementar la tarea TA700 para utilizar un esquema de codificacion de cuantizacion vectorial (VQ) que codifique como vectores los contenidos de las regiones de energfa significativa identificadas por el par de candidatos seleccionado (es decir, los valores de cada uno de los conjuntos de sub-bandas seleccionados). Un esquema de VQ codifica un vector haciendo que se corresponda con una entrada en cada uno de uno o mas libros de codigos (que tambien son conocidos para el descodificador) y utilizando el fndice o indices de estas entradas para representar el vector. La longitud de un fndice del libro de codigos, que determina el numero maximo de entradas en el libro de codigos, puede ser cualquier numero entero arbitrario que se considere adecuado para la aplicacion.
Un ejemplo de un esquema de VQ adecuado es la VQ de ganancia-forma (GSVQ), en la que el contenido de cada sub-banda se descompone en un vector de formas normalizado (que describe, por ejemplo, la forma de la sub- banda a lo largo del eje de frecuencias) y un factor de ganancia correspondiente, de manera que el vector de formas y el factor de ganancia se cuanticen por separado. El numero de bits asignados para la codificacion de los vectores de formas puede estar distribuido de manera uniforme entre los vectores de formas de las distintas sub-bandas. Alternativamente, puede ser deseable asignar mas de los bits disponibles para la codificacion de los vectores de formas que capturan mas energfa que otros, como, por ejemplo, los vectores de formas cuyos factores de ganancia correspondientes tienen valores relativamente altos en comparacion con los factores de ganancia de los vectores de formas de otras sub-bandas.
Puede ser deseable utilizar un esquema de GSVQ que incluya una codificacion predictiva de la ganancia, de tal manera que los factores de ganancia para cada conjunto de sub-bandas se codifiquen de forma independiente entre si y de manera diferencial con respecto al factor de ganancia correspondiente de la trama anterior. En un ejemplo particular, el procedimiento MA110 esta organizado para codificar las regiones de energfa significativa en un intervalo de frecuencias de un espectro de LB-MDCT.
La FIG. 3B muestra un diagrama de flujo de un procedimiento correspondiente MD100 de descodificacion de una senal codificada (por ejemplo, como la producida por la tarea TA700) que incluye las tareas TD100, TD200 y TD300. La tarea TD100 descodifica los valores de F0 y d a partir de la senal codificada, y la tarea TD200 descuantiza el
5
10
15
20
25
30
35
40
45
50
55
60
65
conjunto de sub-bandas. La tarea TD300 construye la senal descodificada mediante la disposicion de cada sub- banda descuantizada en el dominio de la frecuencia, basandose en los valores descodificados de F0 y d. Por ejemplo, la tarea TD300 puede estar implementada para construir la senal descodificada centrando cada sub-banda m en la localizacion, en el dominio de la frecuencia, F0 + md, donde 0 <= m < M y M es el numero de sub-bandas en el conjunto seleccionado. La tarea TD300 puede estar configurada para asignar valores cero a recipientes no ocupados de la senal descodificada o, alternativamente, para asignar valores de un residuo descodificado, como el descrito en este documento, a recipientes no ocupados de la senal descodificada.
En una modalidad de codificacion armonica, la disposicion de las regiones en las localizaciones adecuadas puede ser crftica para una codificacion eficaz. Puede ser deseable configurar el esquema de codificacion para capturar la mayor cantidad de la energfa en el intervalo de frecuencias dado utilizando el mfnimo numero de sub-bandas.
La FIG. 4 muestra un grafico del valor absoluto de los coeficientes de la transformacion frente al fndice del recipiente de frecuencia para un ejemplo de una senal armonica en el dominio de la MDCT. La FIG. 4 tambien muestra las localizaciones en el dominio de la frecuencia para dos posibles conjuntos de sub-bandas para esta senal. Las localizaciones del primer conjunto de sub-bandas se muestran mediante los bloques separados uniformemente, que se dibujan en gris y tambien se indican mediante los corchetes bajo el eje x. Este conjunto se corresponde con el par de candidates (F0, d) segun la seleccion del procedimiento MA100. En este ejemplo se puede ver que, aunque las localizaciones de los picos en la senal parecen regulares, no se ajustan exactamente a la separacion uniforme de las sub-bandas del modelo armonico. De hecho, en este caso el modelo casi obvia el pico mas alto de la senal. En consecuencia, se puede esperar que un modelo que esta configurado estrictamente, incluso de acuerdo al mejor par de candidatos (F0, d), puede no lograr capturar algo de la energfa en uno o mas de los picos de senal.
Puede ser deseable implementar el procedimiento MA100 para incorporar las faltas de uniformidad en la senal de audio mediante la relajacion del modelo armonico. Por ejemplo, puede ser deseable permitir que una o mas de las sub-bandas relacionadas armonicamente de un conjunto (es decir, las sub-bandas localizadas en F0, F0+d, F0+2d, etc.) se desplacen un numero finito de recipientes en cada direccion. En tal caso, puede ser deseable implementar la tarea TA400 para permitir que la localizacion de una o mas de las sub-bandas se desvfe en una pequena magnitud (tambien llamada desplazamiento o "arritmia") de la localizacion indicada por el par (F0, d). El valor de dicho desplazamiento se puede seleccionar de tal modo que la sub-banda resultante capture mas energfa del pico.
Los ejemplos para la magnitud de arritmia permitida para una sub-banda incluyen el veinticinco, el treinta, el cuarenta y el cincuenta por ciento de la anchura de sub-banda. La magnitud de arritmia permitida en cada direccion del eje de frecuencia no necesariamente tiene que ser igual. En un ejemplo particular, se permite que cada sub- banda de siete recipientes desplace su posicion inicial a lo largo del eje de frecuencia, como se indica mediante el par actual de candidatos (F0, d), hasta cuatro recipientes de frecuencia por encima o hasta tres recipientes de frecuencia por debajo. En este ejemplo, el valor de arritmia seleccionado para la sub-banda se puede expresar en tres bits. Tambien es posible que el intervalo de valores de arritmia permitidos sea una funcion de F0 y/o de d.
El valor del desplazamiento para una sub-banda se puede determinar como el valor que dispone la sub-banda para capturar la mayor cantidad de energfa. Alternativamente, el valor del desplazamiento para una sub-banda se puede determinar como el valor que centra el valor maximo de las muestras dentro de la sub-banda. Se puede ver que las localizaciones relajadas de las sub-bandas en la FIG. 4, indicadas por los bloques de lfneas negras, se disponen segun un criterio de centrado de picos de este tipo (como se muestra con suma claridad con referencia a los picos segundo y ultimo, de izquierda a derecha). Un criterio de centrado de los picos tiende a producir menos varianza entre las formas de las sub-bandas, lo que puede llevar a una mejor codificacion de GSVQ. Un criterio de maxima energfa puede aumentar la entropfa entre las formas, por ejemplo, produciendo formas que no estan centradas. En un ejemplo adicional, el valor del desplazamiento para una sub-banda se determina utilizando ambos criterios.
La FIG. 5 muestra un diagrama de flujo de una implementacion TA402 de la tarea TA400 que selecciona los conjuntos de sub-bandas de acuerdo a un modelo armonico relajado. La tarea TA402 incluye las tareas TA410, TA420, TA430, TA440, TA450, TA460 y TA470. En este ejemplo, la tarea TA402 esta configurada para ejecutarse una vez para cada par de candidatos activos y para tener acceso a una lista ordenada de localizaciones de los picos en el intervalo de frecuencias (por ejemplo, segun lo localizado por la tarea TA100). Puede ser deseable que la longitud de la lista de localizaciones de los picos sea al menos tan larga como el numero maximo permitido de sub- bandas para la trama de destino (por ejemplo, ocho, diez, doce, catorce, dieciseis o dieciocho picos por trama, para un tamano de trama de 140 o 160 muestras).
La tarea de inicializacion de bucle TA410 establece el valor de un contador de bucles i en un valor mfnimo (por ejemplo, uno). La tarea TA420 tarea determina si el i-esimo pico mas alto en la lista esta disponible (es decir, todavfa no esta en una sub-banda activa). Si el i-esimo pico mas alto esta disponible, la tarea TA430 determina si cualquier sub-banda no activa se puede o no disponer, de acuerdo a las localizaciones indicadas por el par actual de candidatos (F0, d) (es decir, F0, F0+d, F0+2d, etc.), como relajada mediante el intervalo de arritmia permitido, para incluir la localizacion del pico. En este contexto, una "sub-banda activa" es una sub-banda que ya ha sido dispuesta sin solaparse con ninguna sub-banda dispuesta previamente y que tiene una energfa mayor que (alternativamente, no inferior a) un valor de umbral T, donde T es una funcion de la energfa maxima en las sub-bandas activas (por
5
10
15
20
25
30
35
40
45
50
55
60
65
ejemplo, el quince, el veinte, el veinticinco o el treinta por ciento de la energfa de la sub-banda activa de mayor energfa ya dispuesta para esta trama). Una sub-banda no activa es una sub-banda que no esta activa (es decir, todavfa no esta dispuesta, esta dispuesta pero se solapa con otra sub-banda o no tiene energfa suficiente). Si la tarea TA430 no logra encontrar ninguna sub-banda no activa que se pueda disponer para el pico, el control vuelve a la tarea TA410 mediante la tarea de incremento de bucle TA440, para procesar el siguiente pico mas alto en la lista (si lo hubiera).
Puede ocurrir que existan dos valores de un numero entero j para los cuales se pueda disponer una sub-banda en la localizacion (F0 + j*d), para incluir el i-esimo pico (por ejemplo, el pico se encuentra entre las dos localizaciones), y que ninguno de estos valores de j este asociado todavfa a una sub-banda activa. Para dichos casos, puede ser deseable implementar la tarea TA430 para que seleccione entre estas dos sub-bandas. La tarea TA430 se puede implementar, por ejemplo, para seleccionar la sub-banda que de otro modo tendrfa la menor energfa. En tal caso, la tarea TA430 se puede implementar para disponer cada una de las dos sub-bandas sujetas a las limitaciones de excluir el pico y no solaparse con ninguna sub-banda activa. Dentro de estas limitaciones, la tarea T430 se puede implementar para centrar cada sub-banda en la muestra mas alta posible (alternativamente, para disponer cada sub- banda de tal manera que capture la maxima energfa posible), para calcular la energfa resultante en cada una de las dos sub-bandas y para seleccionar la sub-banda que tenga la energfa mas baja como la que se debe disponer (por ejemplo, mediante la tarea TA450) para que incluya el pico. Un enfoque de este tipo puede ayudar a maximizar la energfa conjunta en las localizaciones finales de las sub-bandas.
La FIG. 2B muestra un ejemplo de una aplicacion de la tarea TA430. En este ejemplo, el punto en el centro del eje de frecuencia indica la localizacion del i-esimo pico, el corchete en negrita indica la localizacion de una sub-banda activa existente, la anchura de la sub-banda es de siete muestras y el intervalo de arritmia permitida es de (+ 5, -4). Tambien se indican las localizaciones vecinas derecha e izquierda [F0 + kd], [F0 + (1 + k) d] del i-esimo pico, y el intervalo de disposiciones admisibles de las sub-bandas para cada una de estas localizaciones. Tal como se ha descrito anteriormente, la tarea TA430 limita el intervalo admisible de disposiciones para cada sub-banda para excluir el pico y para que no haya solapamiento con ninguna sub-banda activa. Dentro de cada intervalo restringido, como el indicado en la FIG. 2B, la tarea TA430 dispone la sub-banda correspondiente de tal manera que este centrada en la muestra mas alta posible (o, alternativamente, para capturar la maxima energfa posible) y selecciona la sub-banda resultante, que tenga la energfa mas baja, como la que se debe disponer para incluir el i-esimo pico.
La tarea TA450 dispone la sub-banda proporcionada por la tarea TA430 y marca la sub-banda como activa o no activa segun corresponda. La tarea TA450 puede estar configurada para disponer la sub-banda de tal manera que la sub-banda no se solape con ninguna sub-banda activa existente (por ejemplo, reduciendo el intervalo de arritmia permitida para la sub-banda). La tarea TA450 tambien puede estar configurada para disponer la sub-banda de tal manera que el i-esimo pico este centrado dentro de la sub-banda (es decir, en la medida permitida por el intervalo de arritmia y/o el criterio de solapamiento).
La tarea TA460 devuelve el control a la tarea TA420 mediante una tarea de incremento de bucle TA440 si quedan mas sub-bandas para el actual par activo de candidatos. Del mismo modo, la tarea TA430 devuelve el control a la tarea TA420 mediante una tarea de incremento de bucle TA440 tras un fallo para encontrar una sub-banda no activa que se pueda disponer para el i-esimo pico.
Si la tarea TA420 falla para cualquier valor de i, la tarea TA470 dispone las sub-bandas restantes para el actual par activo de candidatos. La tarea TA470 puede estar configurada para colocar cada sub-banda de tal manera que el valor mas alto de las muestras este centrado dentro de la sub-banda (es decir, en la medida permitida por el intervalo de arritmia y/o de tal manera que la sub-banda no se solape con ninguna sub-banda activa existente). Por ejemplo, la tarea TA470 puede estar configurada para realizar una instancia de la tarea TA450 para cada una de las sub-bandas restantes para el actual par activo de candidatos.
En este ejemplo, la tarea TA402 tambien incluye una tarea optativa TA480 que poda las sub-bandas. La tarea TA480 puede estar configurada para rechazar las sub-bandas que no cumplan con un umbral de energfa (por ejemplo, T) y/o para rechazar las sub-bandas que se solapen con otra sub-banda que tenga una energfa mas alta.
La FIG. 6 muestra un ejemplo de un conjunto de sub-bandas, dispuestas de acuerdo a una implementacion del procedimiento MA100 que incluye las tareas TA402 y TA602, para el intervalo entre 0 y 3,5 kHz de una senal armonica tal como la mostrada en el dominio de la mDcT. En este ejemplo, el eje y indica el valor absoluto de la MDCT, y las sub-bandas se indican mediante los bloques proximos al eje x o al eje de recipientes de frecuencia.
La tarea TA700 puede estar implementada para empaquetar los valores de arritmia seleccionados en la senal codificada (por ejemplo, para la transmision al descodificador). Sin embargo, tambien es posible aplicar un modelo armonico relajado en la tarea TA400 (por ejemplo, como la tarea TA402), pero implementar la instancia correspondiente de la tarea TA700 para omitir los valores de arritmia de la senal codificada. Por ejemplo, incluso para un caso de baja velocidad binaria en el que no este disponible ningun bit para transmitir la arritmia, aun puede ser deseable aplicar un modelo relajado en el codificador, ya que se puede esperar que la ventaja perceptiva obtenida mediante la codificacion de mas energfa de la senal compensara el error perceptivo causado por la arritmia
5
10
15
20
25
30
35
40
45
50
55
60
65
no corregida. Un ejemplo de una aplicacion de este tipo es para la codificacion de baja velocidad binaria de senales musicales.
En algunas aplicaciones, puede ser suficiente que la senal codificada incluya solo las sub-bandas seleccionadas por un modelo armonico, de tal manera que el codificador descarte la energfa de senal que este fuera de las sub-bandas modeladas. En otros casos, puede ser deseable que la senal codificada tambien incluya dicha informacion de senal que no es capturada por el modelo armonico.
En un enfoque, se calcula una representacion de la informacion no codificada (tambien denominada una senal residual) en el codificador, restando las sub-bandas reconstruidas del modelo armonico al espectro de entrada original. Un residuo calculado de esta manera habitualmente tendra la misma longitud que la senal de entrada.
Para un caso en el que se utiliza un modelo armonico relajado para codificar la senal, los valores de arritmia que se utilizaron para desplazar las localizaciones de las sub-bandas pueden o no estar disponibles en el descodificador. Si los valores de arritmia estan disponibles en el descodificador, entonces las sub-bandas descodificadas se pueden disponer en las mismas localizaciones, tanto en el descodificador como en el codificador. Si los valores de arritmia no estan disponibles en el descodificador, las sub-bandas seleccionadas se pueden disponer en el descodificador de acuerdo a una separacion uniforme, como se indica mediante el par (F0, d) seleccionado. Sin embargo, para un caso en el que la senal residual fue calculada restando la senal reconstruida a la senal original, las sub-bandas sin arritmia ya no estaran alineadas en fase con la senal residual, y la adicion de la senal reconstruida a una senal residual de este tipo puede dar como resultado una interferencia destructiva.
Una solucion alternativa es calcular la senal residual como una concatenacion de las regiones del espectro de la senal de entrada que no fueron capturadas por el modelo armonico (por ejemplo, aquellos recipientes que no se incluyeron en las sub-bandas seleccionadas). Un enfoque de este tipo puede ser deseable especialmente para aplicaciones de codificacion en las que no se transmiten al descodificador los valores de los parametros de arritmia. Un residuo calculado de tal manera tiene una longitud que es menor que la de la senal de entrada y que puede variar de trama a trama (por ejemplo, en funcion del numero de sub-bandas en la trama). La FIG. 19 muestra un ejemplo de una aplicacion del procedimiento MA100 para codificar los coeficientes de la MDCT correspondientes a la banda entre 3,5 y 7 kHz de una trama de la senal de audio en la que se etiquetan las regiones de un residuo de este tipo. Tal como se describe en el presente documento, puede ser deseable utilizar un esquema de codificacion por pulsos (por ejemplo, la codificacion factorial por pulsos) para codificar un residuo de este tipo.
Para un caso en el que los valores de los parametros de arritmia no esten disponibles en el descodificador, la senal residual se puede insertar entre las sub-bandas descodificadas utilizando uno entre varios procedimientos diferentes. Un procedimiento de descodificacion de este tipo consiste en reducir a cero cada intervalo de arritmia en la senal residual antes de anadirla a la senal reconstruida sin arritmia. Por ejemplo, para el intervalo de arritmia de (+4, -3), segun se ha mencionado anteriormente, un procedimiento de este tipo incluirfa la reduccion a cero de las muestras de la senal residual, desde cuatro recipientes a la derecha hasta tres recipientes a la izquierda de cada una de las sub-bandas indicadas por el par (F0, d). Sin embargo, aunque un enfoque de este tipo puede eliminar la interferencia entre el residuo y las sub-bandas sin arritmia, tambien provoca una perdida de informacion que puede ser significativa.
Otro procedimiento de descodificacion es insertar el residuo para llenar los recipientes no ocupados por la senal reconstruida sin arritmia (por ejemplo, los recipientes antes, despues y entre las sub-bandas reconstruidas sin arritmia). Un enfoque de este tipo mueve eficazmente la energfa del residuo para incorporar las disposiciones sin arritmia de las sub-bandas reconstruidas. La FIG. 7 muestra un ejemplo de un enfoque de este tipo, estando todos los tres graficos de amplitud frente a frecuencia, de A a C, alineados verticalmente en la misma escala horizontal de recipientes y frecuencia. El grafico A muestra una parte del espectro de la senal que incluye la disposicion original con arritmia de una sub-banda seleccionada (puntos con relleno dentro de las lfneas discontinuas) y parte del residuo circundante (puntos sin relleno). En el diagrama B, que muestra la disposicion de la sub-banda sin arritmia, se puede ver que los dos primeros recipientes de la sub-banda ahora se solapan con una serie de muestras del residuo original que contiene energfa (las muestras encerradas en un cfrculo en el grafico A). El diagrama C muestra un ejemplo de uso del residuo concatenado para llenar los recipientes no ocupados en orden creciente de frecuencia, lo que dispone esta serie de muestras del residuo en el otro lado de la sub-banda sin arritmia.
Un procedimiento adicional de descodificacion es insertar el residuo de tal manera que se mantenga la continuidad del espectro de la MDCT en los lfmites entre las sub-bandas sin arritmia y la senal residual. Por ejemplo, un procedimiento de este tipo puede incluir la compresion de una region del residuo que este entre dos sub-bandas sin arritmia (o que este antes de la primera, o despues de la ultima, sub-banda) con el fin de evitar un solapamiento en cualquiera de los dos extremos, o en ambos. Por ejemplo, dicha compresion se puede realizar mediante la distorsion de frecuencia de la region a ocupar la zona entre las sub-bandas (o entre la sub-banda y el lfmite del intervalo). De manera similar, un procedimiento de este tipo puede incluir la expansion de una region del residuo que este entre dos sub-bandas sin arritmia (o que este antes de la primera, o despues de la ultima, sub-banda) con el fin de llenar una brecha en cualquiera de los dos extremos, o en ambos. La FIG. 8 muestra un ejemplo en el que se expande la parte del residuo entre las lfneas discontinuas en el grafico A de amplitud frente a frecuencia (por ejemplo, se
5
10
15
20
25
30
35
40
45
50
55
60
65
interpola linealmente) para llenar una brecha entre sub-bandas sin arritmia, tal como se muestra en el grafico B de amplitud frente a frecuencia.
Puede ser deseable utilizar un esquema de codificacion por pulsos para codificar la senal residual, que codifica un vector adaptandolo a un patron de pulsos unitarios y utilizando un fndice que identifica ese patron para representar el vector. Por ejemplo, un esquema de este tipo puede estar configurado para codificar el numero, las posiciones y los signos de los pulsos unitarios en la senal residual. La FIG. 9 muestra un ejemplo de un procedimiento de este tipo en el que una parte de una senal residual se codifica como un numero de pulsos unitarios. En este ejemplo, un vector de dimension treinta, cuyo valor en cada dimension se indica mediante la lfnea continua, esta representado por el patron de pulsos,(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), tal como se indica por los puntos (en las localizaciones de los pulsos) y los cuadrados (en las localizaciones de valor cero).
Las posiciones y los signos de un numero determinado de pulsos unitarios se pueden representar como un fndice de un libro de codigos. Por ejemplo, un patron de pulsos como el mostrado en la FIG. 9 normalmente puede ser representado por un fndice de un libro de codigos cuya longitud es mucho menor que treinta bits. Los ejemplos de esquemas de codificacion por pulsos incluyen los esquemas de codificacion factorial por pulsos y los esquemas de codificacion combinatoria por pulsos.
Puede ser deseable configurar un codec de audio para codificar diferentes bandas de frecuencia de la misma senal por separado. Por ejemplo, puede ser deseable configurar un codec de este tipo para producir una primera senal codificada que codifique una parte de banda baja de una senal de audio y una segunda senal codificada que codifique una parte de banda alta de la misma senal de audio. Las aplicaciones en las que puede ser deseable dicha codificacion de banda dividida incluyen sistemas de codificacion de banda ancha que deben seguir siendo compatibles con los sistemas de descodificacion de banda estrecha. Dichas aplicaciones incluyen tambien esquemas de codificacion de audio generalizados que logran una codificacion eficaz de una gama de diferentes tipos de senales de entrada de audio (por ejemplo, tanto voz como musica) dando soporte al uso de esquemas de codificacion diferentes para bandas de frecuencia diferentes.
Para un caso en el que diferentes bandas de frecuencia de una senal se codifican por separado, puede ser posible en algunos casos aumentar la eficacia de la codificacion en una banda mediante el uso de informacion codificada (por ejemplo, cuantizada) de otra banda, ya que esta informacion codificada ya sera conocida en el descodificador. Por ejemplo, los principios de aplicacion de un modelo armonico como el descrito en el presente documento (por ejemplo, un modelo armonico relajado) se pueden ampliar para utilizar informacion de una representacion descodificada de los coeficientes de transformacion de una primera banda de una trama de senal de audio (tambien denominada la senal de "referenda") para codificar los coeficientes de transformacion de una segunda banda de la misma trama de senal de audio (tambien denominada la senal "de destino"). Para un caso de este tipo en el que el modelo armonico sea relevante, la eficacia de la codificacion se puede aumentar, porque la representacion descodificada de la primera banda ya esta disponible en el descodificador.
Un procedimiento ampliado de este tipo puede incluir la determinacion de sub-bandas de la segunda banda que esten relacionadas armonicamente con la primera banda codificada. En algoritmos de codificacion de baja velocidad binaria para senales de audio (por ejemplo, senales de musica complejas), puede ser deseable dividir una trama de la senal en varias bandas (por ejemplo, una banda baja y una banda alta) y explotar una correlacion entre estas bandas para codificar de manera eficaz la representacion de las bandas en el dominio de la transformacion.
En un ejemplo particular de dicha ampliacion, los coeficientes de la MDCT correspondientes a la banda entre 3,5 y 7 kHz de una trama de senal de audio (en adelante denominada MDCT de banda superior o UB-MDCT) se codifican basandose en el espectro cuantizado de la MDCT de banda baja (de 0 a 4 kHz) de la trama. Se observa explfcitamente que en otros ejemplos de dicha ampliacion, los dos intervalos de frecuencia no necesariamente tienen que solaparse y que incluso pueden estar separados (por ejemplo, codificando una banda entre 7 y 14 kHz de una trama en base a la informacion de una representacion descodificada de la banda entre 0 y 4 kHz). Dado que las MDCT de banda baja codificadas se utilizan como una referencia para la codificacion de las UB-MDCT, muchos parametros del modelo de codificacion de la banda alta se pueden obtener en el descodificador sin requerir explfcitamente su transmision.
La FIG. 10A muestra un diagrama de flujo para un procedimiento MB100 de procesamiento de senales de audio de acuerdo a una configuracion general que incluye las tareas TBI00, TB200, TB300, TB400, TB500, TB600 y TB700. La tarea TB100 localiza una pluralidad de picos en una senal de audio de referencia (por ejemplo, una representacion descuantizada de un primer intervalo de frecuencias de una senal de frecuencias de audio). La tarea TB100 puede estar implementada como una instancia de la tarea TA100, tal como se describe en el presente documento. Para un caso en el que la senal de audio de referencia fue codificada utilizando una implementacion del procedimiento MA100, puede ser deseable configurar las tareas TA100 y TB100 para que utilicen el mismo valor de dmin, aunque tambien es posible configurar las dos tareas para que utilicen valores diferentes de dmin- (sin embargo, es importante senalar que el procedimiento MB100 generalmente se puede aplicar independientemente del esquema de codificacion particular que fue utilizado para producir la senal de audio de referencia descodificada.)
5
10
15
20
25
30
35
40
45
50
55
60
65
Basandose en las localizaciones en el dominio de la frecuencia de al menos algunos (es decir, al menos tres) de los picos localizados por la tarea TB100, la tarea TB200 calcula un numero Nd2 de candidatos de separacion armonica en la senal de audio de referencia. Los ejemplos de valores para Nd2 incluyen tres, cuatro y cinco. La tarea TB200 puede estar configurada para calcular estos candidatos de separacion como las distancias (por ejemplo, en terminos del numero de recipientes de frecuencia) entre los picos adyacentes de los (Nd2+1) picos mas altos localizados por la tarea TB100.
Basandose en las localizaciones en el dominio de la frecuencia de al menos algunos (es decir, al menos dos) de los picos localizados por la tarea TB100, la tarea TB300 identifica un numero Nf2 de candidatos de F0 en la senal de audio de referencia. Los ejemplos de valores para Nf2 incluyen tres, cuatro y cinco. La tarea TB300 puede estar configurada para identificar estos candidatos como las localizaciones de los Nf2 picos mas altos en la senal de audio de referencia. Alternativamente, la tarea TB300 puede estar configurada para identificar estos candidatos como las localizaciones de los Nf2 picos mas altos en una parte de baja frecuencia (por ejemplo, el 30, 35, 40, 45 o 50 por ciento inferior) del intervalo de frecuencias de referencia. En un ejemplo de este tipo, la tarea TB300 identifica el numero Nf2 de candidatos de F0 entre las localizaciones de los picos localizados por la tarea TB100 en el intervalo de 0 a 1.250 Hz. En otro ejemplo de este tipo, la tarea TB300 identifica el numero Nf2 de candidatos de F0 entre las localizaciones de los picos localizados por la tarea TB100 en el intervalo de 0 a 1.600 Hz.
Se debe observar expresamente que el alcance de las implementaciones descritas del procedimiento MB100 incluye el caso en el que solo se calcula un candidato de separacion armonica (por ejemplo, como la distancia entre los dos picos mas altos, o la distancia entre los dos picos mas altos en un intervalo de frecuencias especificado) y el caso independiente en el que solo se identifica un candidato de F0 (por ejemplo, como la localizacion del pico mas alto, o la localizacion del pico mas alto en un intervalo de frecuencias especificado).
Para cada uno entre una pluralidad de pares activos de candidatos de F0 y d, la tarea TB400 tarea selecciona un conjunto de al menos una sub-banda de una senal de audio de destino (por ejemplo, una representacion de un segundo intervalo de frecuencias de la senal de frecuencias de audio), en el que una localizacion en el dominio de la frecuencia de cada sub-banda del conjunto esta basada en el par (F0, d). Sin embargo, a diferencia de la tarea TA400, en este caso las sub-bandas se disponen en relacion con las localizaciones F0m, F0m+d, F0m+2d, etc., donde el valor de F0m se calcula correlacionando F0 con el intervalo de frecuencias de la senal de audio de destino. Una correlacion de este tipo se puede realizar de acuerdo a una expresion tal como F0m = F0 + Ld, donde L es el entero mas pequeno tal que F0m este dentro del intervalo de frecuencias de la senal de audio de destino. En tal caso, el descodificador puede calcular el mismo valor de L sin mas informacion del codificador, ya que el intervalo de frecuencias de la senal de audio de destino y los valores de F0 y d ya son conocidos en el descodificador.
La tarea TB400 puede estar configurada para seleccionar cada conjunto para incluir todas las sub-bandas indicadas por el par (F0, d) correspondiente que se encuentren dentro del intervalo de entrada. Alternativamente, la tarea TB400 puede estar configurada para seleccionar menos que todas estas sub-bandas para al menos uno de los conjuntos. Por ejemplo, la tarea TB400 puede estar configurada para seleccionar no mas de un numero maximo de sub-bandas para el conjunto. Alternativamente o adicionalmente, la tarea TB400 puede estar configurada para seleccionar solo las sub-bandas que se encuentren dentro de un intervalo particular. Por ejemplo, puede ser deseable configurar la tarea TB400 para seleccionar no mas de un numero particular de una o mas (por ejemplo, cuatro, cinco o seis) de las sub-bandas de frecuencia mas baja en el intervalo de entrada y/o solo las sub-bandas cuyas localizaciones no esten por encima de una frecuencia particular dentro del intervalo de entrada (por ejemplo, 5.000, 5.500 o 6.000 Hz).
En un ejemplo, la tarea TB400 esta configurada para seleccionar las sub-bandas de cada conjunto de tal manera que la primera sub-banda este centrada en la localizacion de F0m correspondiente, estando el centro de cada sub- banda siguiente separado del centro de la sub-banda anterior por una distancia igual al valor correspondiente de d.
Se puede considerar que todos los pares diferentes de valores de F0 y d son activos, de manera que la tarea TB400 este configurada para seleccionar un conjunto correspondiente de una o mas sub-bandas para cada posible par (F0, d). Para un caso en el que Nf2 y Nd2 son ambos iguales a cuatro, por ejemplo, la tarea TB400 puede estar configurada para considerar cada uno de los dieciseis pares posibles. Alternativamente, la tarea TB400 puede estar configurada para imponer un criterio de actividad que algunos de los posibles pares (F0, d) pueden no cumplir. En tal caso, por ejemplo, la tarea TB400 puede estar configurada para desechar los pares que producirfan mas de un numero maximo admisible de sub-bandas (por ejemplo, combinaciones de valores bajos de F0 y d) y/o pares que producirfan menos de un numero mfnimo deseado de sub-bandas (por ejemplo, combinaciones de valores altos de F0 y d).
Para cada uno entre una pluralidad de pares de candidatos de F0 y d, la tarea TB500 tarea calcula al menos un valor de energfa a partir del conjunto correspondiente de una o mas sub-bandas de la senal de audio de destino. En un ejemplo de este tipo, la tarea TB500 calcula un valor de energfa de cada conjunto de una o mas sub-bandas como la energfa total del conjunto de sub-bandas (por ejemplo, como una suma de las magnitudes al cuadrado de los valores de muestreo en el dominio de frecuencia en las sub-bandas). Alternativamente o adicionalmente, la tarea
5
10
15
20
25
30
35
40
45
50
55
60
65
TB500 puede estar configurada para calcular valores de energfa a partir de cada conjunto de sub-bandas como las energfas de cada sub-banda individual y/o para calcular un valor de energfa a partir de cada conjunto de sub-bandas como una energfa media por sub-banda (por ejemplo, la energfa total normalizada sobre el numero de sub-bandas) para el conjunto de sub-bandas. La tarea TB500 puede estar configurada para ejecutarse para cada uno entre la misma pluralidad de pares que la tarea TB400, o para menos que esta pluralidad. Para un caso en el que la tarea TB400 esta configurada para seleccionar un conjunto de sub-bandas para cada posible par (F0, d), por ejemplo, la tarea TB500 puede estar configurada para calcular valores de energfa solo para los pares que satisfagan un criterio especificado de actividad (por ejemplo, desechar los pares que producirfan demasiadas sub-bandas y/o los pares que producirfan demasiado pocas sub-bandas, tal como se ha descrito anteriormente). En otro ejemplo, la tarea TB400 esta configurada para desechar los pares que producirfan demasiadas sub-bandas y la tarea TB500 esta configurada para desechar tambien los pares que producirfan demasiado pocas sub-bandas.
Aunque la FIG. 10A muestra la ejecucion de las tareas TB400 y TB500 en serie, se entendera que la tarea TB500 tambien puede estar implementada para comenzar a calcular energfas para conjuntos de sub-bandas antes de que haya finalizado la tarea TB400. Por ejemplo, la tarea TB500 puede estar implementada para comenzar a calcular (o incluso para finalizar el calculo) un valor de energfa a partir de un conjunto de sub-bandas antes de que la tarea TB400 comience a seleccionar el siguiente conjunto de sub-bandas. En un ejemplo de este tipo, las tareas TB400 y TB500 estan configuradas para alternarse para cada uno entre la pluralidad de pares activos de candidatos de F0 y d. Del mismo modo, la tarea TB400 tambien puede estar implementada para comenzar la ejecucion antes de que hayan finalizado las tareas TB200 y TB300.
Basandose en los valores de energfa calculados a partir de al menos algunos de los conjuntos de al menos una sub- banda, la tarea TB600 selecciona un par de candidatos de entre los pares de candidatos de (F0, d). En un ejemplo, la tarea TB600 selecciona el par correspondiente al conjunto de sub-bandas que tienen la energfa total mas alta. En otro ejemplo, la tarea TB600 selecciona el par de candidatos correspondiente al conjunto de sub-bandas que tienen la energfa media por sub-banda mas alta. En un ejemplo adicional, la tarea TB600 esta implementada como una instancia de la tarea TA602 (por ejemplo, como se muestra en la FIG. 1B).
La FIG. 10B muestra un diagrama de flujo de una implementacion MB110 del procedimiento MB100 que incluye una tarea TB700. La tarea TB700 produce una senal codificada que incluye indicaciones de los valores del par de candidatos seleccionado. La tarea TB700 puede estar configurada para codificar el valor seleccionado de F0, o para codificar un desplazamiento del valor seleccionado de F0 a partir de una localizacion minima (o maxima). De manera similar, la tarea TB700 puede estar configurada para codificar el valor seleccionado de d, o para codificar un desplazamiento del valor seleccionado de d a partir de una distancia minima o maxima. En un ejemplo particular, la tarea TB700 utiliza seis bits para codificar el valor de F0 seleccionado y seis bits para codificar el valor de d seleccionado. En ejemplos adicionales, la tarea TB700 puede estar implementada para codificar el valor actual de F0 y/o d de manera diferencial (por ejemplo, como un desplazamiento relativo a un valor anterior del parametro).
Puede ser deseable implementar la tarea TB700 para utilizar un esquema de codificacion VQ (por ejemplo, GSVQ) para codificar el conjunto seleccionado de sub-bandas como vectores. Puede ser deseable utilizar un esquema de GSVQ que incluya una codificacion predictiva de la ganancia, de tal manera que los factores de ganancia para cada conjunto de sub-bandas se codifiquen de forma independiente entre si y de manera diferencial con respecto al factor de ganancia correspondiente de la trama anterior. En un ejemplo particular, el procedimiento MB110 esta organizado para codificar las regiones de energfa significativa en un intervalo de frecuencias de un espectro de UB-MDCT.
Debido a que la senal de audio de referencia esta disponible en el descodificador, las tareas TB100, TB200 y TB300 tambien pueden realizarse en el descodificador para obtener el mismo numero (o "libro de codigos") Nf2 de candidatos de F0 y el mismo numero ("libro de codigos") Nd2 de candidatos de d a partir de la misma senal de audio de referencia. Los valores en cada libro de codigos se pueden ordenar, por ejemplo, en orden de valores crecientes. En consecuencia, es suficiente que el codificador transmita un fndice en cada una de estas pluralidades ordenadas, en lugar de codificar los valores reales del par (F0, d) seleccionado. Para un ejemplo particular en el que Nf2 y Nd2 son ambos iguales a cuatro, la tarea TB700 puede estar implementada para utilizar un fndice del libro de codigos de dos bits, para indicar el valor de d seleccionado y otro fndice del libro de codigos de dos bits para indicar el valor de F0 seleccionado.
Un procedimiento para descodificar una senal de audio de destino codificada, producida por la tarea TB700, tambien puede incluir la seleccion de los valores de F0 y d indicados por los indices, la descuantizacion del conjunto de sub- bandas seleccionado, el calculo del valor de correlacion m y la construccion de una senal de audio de destino descodificada, disponiendo (por ejemplo, centrando) cada sub-banda p en la localizacion en el dominio de la frecuencia F0m + pd, donde 0 <= p < P y P es el numero de sub-bandas en el conjunto seleccionado. A los recipientes no ocupados de la senal descodificada de destino se les pueden asignar valores cero o, alternativamente, valores de un residuo descodificado como el descrito en el presente documento.
Como la tarea TA400, la tarea TB400 puede estar implementada como instancias iteradas de la tarea TA402, tal como se ha descrito anteriormente, con la excepcion de que cada valor de F0 se correlaciona primero con F0m, tal como se ha descrito anteriormente. En este caso, la tarea TA402 esta configurada para ejecutarse una vez para
5
10
15
20
25
30
35
40
45
50
55
60
65
cada par de candidatos a evaluar y para tener acceso a una lista de localizaciones de los picos en la senal de destino, donde la lista esta ordenada en orden decreciente de los valores de las muestras. Para producir una lista de este tipo, el procedimiento MB100 tambien puede incluir una tarea de deteccion de picos analoga a la tarea TB100 (por ejemplo, otra instancia de la tarea TB100) que esta configurada para operar sobre la senal de destino en lugar de sobre la senal de referencia.
La FIG. 11 muestra un grafico de magnitud frente a frecuencia para un ejemplo en el que la senal de audio de destino es una senal UB-MDCT de 140 coeficientes de transformacion que representan el espectro de frecuencias de audio entre 3,5 y 7 kHz. Esta figura muestra la senal de audio de destino (lfnea gris), un conjunto de cinco sub- bandas separadas uniformemente, seleccionadas de acuerdo a un par de candidatos (F0, d) (indicado por los bloques dibujados en gris y por los corchetes), y un conjunto de cinco sub-bandas con arritmia, seleccionadas de acuerdo al par (F0, d) y a un criterio de centrado de picos (indicado por los bloques dibujados en negro). Como se muestra en este ejemplo, el espectro de UB-MDCT se puede calcular a partir de una senal de banda alta que ha sido convertida hacia una velocidad de muestreo mas baja, o desplazada de otro modo, con fines de codificacion para comenzar en un recipiente de frecuencias cero o uno. En tal caso, cada correlacion de F0m tambien incluye un desplazamiento para indicar la frecuencia adecuada del espectro desplazado. En un ejemplo particular, el primer recipiente de frecuencias del espectro de UB-MDCT de la senal de audio de destino corresponde al recipiente 140 del espectro de LB-MDCT de la senal de audio de referencia (por ejemplo, representando contenido acustico a 3,5 kHz), de tal manera que la tarea TA400 pueda ser implementada para correlacionar cada F0 con un F0m correspondiente de acuerdo a una expresion tal como F0m = F0 + Ld - 140.
Para un caso en el que la senal de audio de referencia fue codificada utilizando un modelo armonico relajado tal como el descrito en el presente documento, se pueden utilizar los mismos lfmites de arritmia (por ejemplo, hasta cuatro recipientes a la derecha y hasta tres recipientes a la izquierda) para la codificacion de la senal de destino, utilizando un modelo armonico relajado, o se puede utilizar un lfmite de arritmia diferente en uno o ambos lados. Para cada sub-banda, puede ser deseable seleccionar el valor de arritmia que centre el pico dentro de la sub-banda si es posible o, si no se dispone de dicho valor de arritmia, el valor de arritmia que centre parcialmente el pico o, si no se dispone de dicho valor de arritmia, el valor de arritmia que maximice la energfa capturada por la sub-banda.
En un ejemplo, la tarea TB400 esta configurada para seleccionar el par (F0, d) que compacte la energfa maxima por sub-banda en la senal de destino (por ejemplo, el espectro de UB-MDCT). La compactacion de la energfa tambien se puede utilizar como una medida para decidir entre dos o mas candidatos de arritmia que centran, o centran parcialmente (por ejemplo, como se ha descrito anteriormente con referencia a la tarea TA430).
Los valores de los parametros de arritmia (por ejemplo, uno para cada sub-banda) se pueden transmitir al descodificador. Si los valores de arritmia no se transmiten al descodificador, entonces puede aparecer un error en las localizaciones de frecuencia de las sub-bandas del modelo armonico. Sin embargo, para las senales de destino que representan un intervalo de frecuencias de audio de banda alta (por ejemplo, el intervalo entre 3,5 y 7 kHz), este error habitualmente no es perceptible, de tal manera que puede ser deseable codificar las sub-bandas de acuerdo a los valores de arritmia seleccionados, pero no enviar esos valores de arritmia al descodificador, y las sub-bandas pueden estar uniformemente separadas (por ejemplo, basandose unicamente en el par (F0, d) seleccionado) en el descodificador. Por ejemplo, para la codificacion de velocidad binaria muy baja de senales musicales (por ejemplo, aproximadamente veinte kilobits por segundo), puede ser deseable no transmitir los valores de los parametros de arritmia y permitir un error en las localizaciones de las sub-bandas en el descodificador.
Tras haberse identificado el conjunto de sub-bandas seleccionadas, se puede calcular una senal residual en el codificador restando la senal de destino reconstruida al espectro de la senal de destino original (por ejemplo, como la diferencia entre el espectro de la senal de destino original y las sub-bandas reconstruidas del modelo armonico). Alternativamente, la senal residual se puede calcular como una concatenacion de las regiones del espectro de la senal de destino que no fueron capturadas por el modelado armonico (por ejemplo, aquellos recipientes que no se incluyeron en las sub-bandas seleccionadas). Para un caso en el que la senal de audio de destino es un espectro de UB-MDCT y la senal de audio de referencia es un espectro de LB-MDCT reconstruido, puede ser deseable obtener el residuo mediante la concatenacion de las regiones no capturadas, especialmente para un caso en que los valores de arritmia utilizados para codificar la senal de audio de destino no estaran disponibles en el descodificador. Las sub-bandas seleccionadas se pueden codificar utilizando un esquema de cuantizacion vectorial (por ejemplo, un esquema GSVQ), y la senal residual se puede codificar utilizando un esquema de codificacion factorial por pulsos o un esquema de codificacion combinatoria por pulsos.
Si los valores de los parametros de arritmia estan disponibles en el descodificador, entonces la senal residual se puede volver a colocar en el descodificador en los mismos recipientes que en el codificador. Si los valores de los parametros de arritmia no estan disponibles en el descodificador (por ejemplo, para la codificacion de baja velocidad binaria de senales musicales), las sub-bandas seleccionadas se pueden disponer en el descodificador de acuerdo a una separacion uniforme basada en el par (F0, d) seleccionado, tal como se ha descrito anteriormente. En este caso, la senal residual se puede insertar entre las sub-bandas seleccionadas utilizando uno de varios procedimientos diferentes, tales como los descritos anteriormente (por ejemplo, reduciendo a cero cada intervalo de arritmia en el residuo antes de anadirlo a la senal sin arritmia reconstruida, utilizando el residuo para llenar
5
10
15
20
25
30
35
40
45
50
55
60
65
recipientes no ocupados al mismo tiempo que se desplaza la energfa residual que podrfa solaparse con una sub- banda seleccionada, o distorsionando en frecuencia el residuo).
La FIG. 12A muestra un diagrama de bloques de un aparato para el procesamiento de senales de audio MF100 segun una configuracion general. El aparato MF100 incluye medios FA100 para la localizacion de una pluralidad de picos en la senal de audio en un dominio de la frecuencia (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA100). El aparato MF100 tambien incluye medios FA200 para el calculo de un numero Nd de candidatos de separacion armonica (d) (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA200). El aparato MF100 tambien incluye medios FA300 para identificar un numero Nf de candidatos de frecuencia fundamental (F0) (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA300). El aparato MF100 tambien incluye medios FA400 para seleccionar, para cada uno entre una pluralidad de pares (F0, d) diferentes, un conjunto de sub-bandas de la senal de audio cuyas localizaciones estan basadas en el par (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA400). El aparato MF100 tambien incluye medios FA500 para calcular, para cada uno entre la pluralidad de pares (F0, d) diferentes, una energfa del conjunto correspondiente de sub-bandas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA500). El aparato MF100 tambien incluye medios FA600 para la seleccion de un par de candidatos basandose en las energfas calculadas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA600). La FIG. 13A muestra un diagrama de bloques de una implementacion MF110 del aparato MF100 que incluye medios FA700 para producir una senal codificada que incluye indicaciones de los valores del par de candidatos seleccionado (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA700).
La FIG. 12B muestra un diagrama de bloques de un aparato para el procesamiento de senales de audio A100 segun otra configuracion general. El aparato A100 incluye un localizador de picos en el dominio de la frecuencia 100, configurado para localizar una pluralidad de picos en la senal de audio en un dominio de la frecuencia (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA100). El aparato A100 tambien incluye un calculador de distancia 200 configurado para calcular un numero Nd de candidatos de separacion armonica (d) (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA200). El aparato A100 tambien incluye un selector de candidatos de frecuencia fundamental 300, configurado para identificar un numero Nf de candidatos de frecuencia fundamental (F0) (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA300). El aparato A100 tambien incluye un selector de disposicion de sub-bandas 400, configurado para seleccionar, para cada uno entre una pluralidad de pares (F0, d) diferentes, un conjunto de sub- bandas de la senal de audio cuyas localizaciones estan basadas en el par (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA400). El aparato A100 tambien incluye un calculador de energfa 500 configurado para calcular, para cada uno entre la pluralidad de pares (F0, d) diferentes, una energfa del conjunto correspondiente de sub-bandas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA500). El aparato A100 tambien incluye un selector de pares de candidatos 600, configurado para seleccionar un par de candidatos basandose en las energfas calculadas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA600). Se hace constar expresamente que el aparato A100 tambien puede estar implementado de tal manera que sus diversos elementos esten configurados para llevar a cabo las tareas correspondientes del procedimiento MB100 tal como se ha descrito en el presente documento.
La FIG. 13B muestra un diagrama de bloques de una implementacion A100 de un aparato A100 que incluye un cuantizador 710 y un empaquetador de bits 720. El cuantizador 710 esta configurado para codificar el conjunto seleccionado de sub-bandas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA700). Por ejemplo, el cuantizador 710 puede estar configurado para codificar las sub-bandas como vectores utilizando un esquema de GSVQ u otro esquema de VQ. El empaquetador de bis 720 esta configurado para codificar los valores del par de candidatos seleccionado (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TA700) y para empaquetar estas indicaciones de los valores de los candidatos seleccionados con las sub-bandas cuantizadas, para producir una senal codificada. Un descodificador correspondiente puede incluir un desempaquetador de bits configurado para desempaquetar las sub-bandas cuantizadas y descodificar los valores de los candidatos, un descuantizador configurado para producir un conjunto descuantizado de sub-bandas y un disponedor de sub-bandas configurado para disponer las sub-bandas descuantizadas en el dominio de la frecuencia en localizaciones que estan basadas en los valores de los candidatos descodificados (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TD300), y posiblemente tambien para disponer un residuo correspondiente, para producir una senal descodificada. Se hace constar expresamente que el aparato A100 tambien puede estar implementado de tal manera que sus diversos elementos esten configurados para llevar a cabo las tareas correspondientes del procedimiento MB110 tal como se ha descrito en el presente documento.
La FIG. 14 muestra un diagrama de bloques de un aparato para el procesamiento de senales de audio MF210 segun una configuracion general. El aparato MF210 incluye medios FB100 para la localizacion de una pluralidad de picos en una senal de audio de referencia en un dominio de la frecuencia (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB100). El aparato MF210 tambien incluye medios FB200 para el calculo de un numero Nd2 de candidatos de separacion armonica (d) (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB200). El aparato MF210 tambien incluye medios FB300 para identificar un numero Nf2 de candidatos de frecuencia fundamental (F0) (por ejemplo, como se ha descrito en el presente documento con
5
10
15
20
25
30
35
40
45
50
55
60
65
referencia a la tarea TB300). El aparato MF210 tambien incluye medios FB400 para seleccionar, para cada uno entre una pluralidad de pares (F0, d) diferentes, un conjunto de sub-bandas de una senal de audio de destino cuyas localizaciones estan basadas en el par (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB400). El aparato MF210 tambien incluye medios FB500 para calcular, para cada uno entre la pluralidad de pares (F0, d) diferentes, una energfa del conjunto correspondiente de sub-bandas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB500). El aparato MF210 tambien incluye medios FB600 para la seleccion de un par de candidatos basandose en las energfas calculadas (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB600). El aparato MF210 tambien incluye medios FB700 para producir una senal codificada que incluye indicaciones de los valores del par de candidatos seleccionado (por ejemplo, como se ha descrito en el presente documento con referencia a la tarea TB700).
Para un caso en el que se codifica la senal de referencia (por ejemplo, un espectro de banda baja) usando un modelo armonico (por ejemplo, una instancia del procedimiento MA100), puede ser deseable llevar a cabo una instancia de MA100 en la senal de destino (por ejemplo, un espectro de banda alta) en lugar de una instancia del procedimiento MB100. En otras palabras, puede ser deseable estimar los valores de banda alta para F0 y d independientemente del espectro de banda alta, en lugar de correlacionar F0 a partir de los valores de banda baja como en el procedimiento MB100. En tal caso, puede ser deseable transmitir al descodificador los valores de banda superior para F0 y d o, alternativamente, transmitir la diferencia entre los valores de banda baja y de banda alta para F0 y la diferencia entre los valores de banda baja y de banda alta para d (tambien denominado "prediccion a nivel de parametros" de los parametros del modelo de banda alta).
Dicha estimacion independiente de los parametros de banda alta puede tener una ventaja en terminos de la capacidad de recuperacion de errores, en comparacion con la prediccion de los parametros a partir del espectro de banda baja descodificado (tambien denominado "prediccion a nivel de senal"). En un ejemplo, las ganancias para las sub-bandas armonicas de banda baja se codifican utilizando un esquema de modulacion diferencial adaptativo por pulsos codificados (ADPCM), que utiliza la informacion de las dos tramas anteriores. En consecuencia, si se pierde cualquiera de las anteriores tramas armonicas de banda baja consecutivas, la ganancia de la sub-banda en el descodificador puede ser diferente de la del codificador. Si en tal caso se utilizara la prediccion a nivel de senal de los parametros del modelo armonico de banda alta a partir del espectro descodificado de banda baja, los picos mas altos pueden ser diferentes en el codificador y en el descodificador. Dicha diferencia puede dar lugar a estimaciones incorrectas para F0 y d en el descodificador, lo que podrfa producir eventualmente un resultado descodificado de banda alta completamente erroneo.
La FIG. 15A ilustra un ejemplo de una aplicacion del procedimiento MB110 para codificar una senal de destino, que puede estar en un dominio del residuo de la LPC (Codificacion Lineal Predictiva). En el trayecto izquierdo, la tarea S100 realiza la codificacion por pulsos de todo el espectro de la senal de destino (lo que puede incluir la realizacion de una implementacion del procedimiento MA100 o MB100 sobre un residuo de la operacion de codificacion por pulsos). En el trayecto derecho, se utiliza una implementacion del procedimiento MB110 para codificar la senal de destino. En este caso, la tarea TB700 puede estar configurada para utilizar un esquema de VQ (por ejemplo, GSVQ) para codificar las sub-bandas seleccionadas y un procedimiento de codificacion por pulsos para codificar el residuo. La tarea S200 evalua los resultados de las operaciones de codificacion (por ejemplo, mediante la descodificacion de las dos senales codificadas y la comparacion de las senales descodificadas con la senal de destino original) e indica que modalidad de codificacion es mas adecuada actualmente.
La FIG. 15B muestra un diagrama de bloques de un sistema de codificacion del modelo armonico en el que la senal de entrada es la banda alta (banda superior, "UB") de un espectro de MDCT, que puede estar en un dominio del residuo de la LPC, y la senal de referencia es un espectro de LB-MDCT reconstruido. En este ejemplo, una implementacion S110 de la tarea S100 codifica la senal de destino utilizando un procedimiento de codificacion por pulsos (por ejemplo, un procedimiento de codificacion factorial por pulsos (FPC) o un procedimiento de codificacion combinatoria por pulsos). La senal de referencia se obtiene a partir de un espectro de LB-MDCT cuantizado de la trama que puede haber sido codificada utilizando un modelo armonico, un modelo de codificacion que depende de la trama codificada anterior, un esquema de codificacion que utiliza sub-bandas fijas o algun otro esquema de codificacion. En otras palabras, el funcionamiento del procedimiento MB110 es independiente del procedimiento particular que fue utilizado para codificar la senal de referencia. En este caso, el procedimiento MB110 puede estar implementado para codificar las ganancias de las sub-bandas utilizando un codigo de transformacion, y el numero de bits asignados para cuantizar los vectores de forma se puede calcular basandose en las ganancias codificadas y en los resultados de un analisis de LPC. La senal codificada producida por el procedimiento MB110 (por ejemplo, utilizando GSVQ para codificar las sub-bandas seleccionadas por el modelo armonico) se compara con la senal codificada producida por la tarea S110 (por ejemplo, utilizando unicamente la codificacion por pulsos, como FPC), y una implementacion S210 de la tarea S200 selecciona la mejor modalidad de codificacion para la trama de acuerdo a una metrica perceptiva (por ejemplo, una metrica de razon entre senal y ruido con ponderacion de LPC). En este caso, el procedimiento MB100 puede estar implementado para calcular las asignaciones de bits para la GSVQ y las codificaciones residuales basandose en las ganancias de sub-banda y residuales.
La seleccion de la modalidad de codificacion (por ejemplo, como se muestra en las FIGs. 15A y 15B) se puede ampliar a un caso de multiples bandas. En un ejemplo, cada una entre la banda baja y la banda alta esta codificada
5
10
15
20
25
30
35
40
45
50
55
60
65
utilizando tanto una modalidad de codificacion independiente (por ejemplo, una modalidad de GSVQ o de codificacion por pulsos) como una modalidad de codificacion armonica (por ejemplo, el procedimiento MA100 o MB100), de manera que inicialmente se consideren cuatro combinaciones de modalidades diferentes para la trama. En tal caso, puede ser deseable calcular el residuo para la modalidad de codificacion armonica de banda baja restando las sub-bandas descodificadas a la senal original, tal como se ha descrito en el presente documento. A continuacion, para cada una de las modalidades de banda baja, se selecciona la mejor modalidad de banda alta correspondiente (por ejemplo, de acuerdo a una comparacion entre las dos opciones utilizando una metrica perceptiva en la banda alta, tal como una metrica de ponderacion de LPC). De las dos opciones restantes (es decir, la modalidad independiente de banda baja con la mejor modalidad de banda alta correspondiente, y la modalidad armonica de banda baja con la mejor modalidad de banda alta correspondiente), la seleccion entre estas opciones se realiza con referencia a una metrica perceptiva (por ejemplo, una metrica perceptiva de ponderacion de LpC) que abarca tanto la banda baja como la banda alta. En un ejemplo de un caso de multiples bandas de este tipo, la modalidad independiente de banda baja utiliza la GSVQ para codificar un conjunto de sub-bandas fijas, y la modalidad independiente de banda alta utiliza un esquema de codificacion por pulsos (por ejemplo, la codificacion factorial por pulsos) para codificar la senal de banda alta.
Las FIGs. 16A a 16E muestran una serie de aplicaciones para las diversas implementaciones del aparato A110 (o MF110 o MF210) tal como lo descrito en el presente documento. La FIG. 16A muestra un diagrama de bloques de un trayecto de procesamiento de audio que incluye un modulo de transformacion MMI (por ejemplo, un modulo de transformacion rapida de Fourier o de MDCT) y una instancia del aparato A110 (o MF110 o MF210) que esta dispuesto para recibir las tramas de audio SA10 como muestras en el dominio de la transformacion (es decir, como coeficientes en el dominio de la transformacion) y para producir las correspondientes tramas codificadas SE10.
La FIG. 16B muestra un diagrama de bloques de una implementacion del trayecto de la FIG. 16A en la que el modulo de transformacion MMI esta implementado utilizando un modulo de la transformacion MDCT. El modulo de la DCT modificada MM10 realiza una operacion de MDCT sobre cada trama de audio para producir un conjunto de coeficientes en el dominio de la MDCT.
La FIG. 16C muestra un diagrama de bloques de una implementacion del trayecto de la FIG. 16A que incluye un modulo de analisis de una codificacion predictiva lineal AM10. El modulo de analisis de codificacion predictiva lineal (LPC) AM10 realiza una operacion de analisis de LPC sobre la trama seleccionada para producir un conjunto de parametros de LPC (por ejemplo, coeficientes de filtro) y una senal residual de LPC. En un ejemplo, el modulo de analisis de LPC AM10 esta configurado para realizar un analisis de LPC de decimo orden sobre una trama que tiene un ancho de banda desde cero a 4.000 Hz. En otro ejemplo, el modulo de analisis de LPC AM10 esta configurado para realizar un analisis de LPC de sexto orden sobre una trama que representa un intervalo de frecuencias de banda alta desde 3.500 a 7.000 Hz. El modulo de la DCT modificada MM10 realiza una operacion de MDCT sobre la senal residual de LPC para producir un conjunto de coeficientes en el dominio de la transformacion. Un trayecto de descodificacion correspondiente puede estar configurado para descodificar tramas codificadas SE10 y para realizar una transformacion inversa de MDCT sobre las tramas descodificadas, para obtener una senal de excitacion de entrada para un filtro de sfntesis de LPC.
La FIG. 16D muestra un diagrama de bloques de un trayecto de procesamiento que incluye un clasificador de senales SC10. El clasificador de senales SC10 recibe tramas SA10 de una senal de audio y clasifica cada trama en una de al menos dos categorfas. Por ejemplo, el clasificador de senales SC10 puede estar configurado para clasificar una trama SA10 como voz o musica, de tal manera que si la trama se clasifica como musica, entonces el resto del trayecto que se muestra en la FIG. 16D se utiliza para codificarla, y si la trama se clasifica como voz, entonces se utiliza un trayecto de procesamiento diferente para codificarla. Dicha clasificacion puede incluir la deteccion de actividad de las senales, la deteccion de ruido, la deteccion de periodicidad, la deteccion de dispersion en el dominio del tiempo y/o la deteccion de dispersion en el dominio de la frecuencia.
La FIG. 17A muestra un diagrama de bloques de un procedimiento MC100 de clasificacion de senales que puede ser realizado por el clasificador de senales SC10 (por ejemplo, sobre cada una de las tramas de audio SA10). El procedimiento MC100 incluye las tareas TC100, TC200, TC300, TC400, TC500 y TC600. La tarea TC100 cuantifica el nivel de actividad en la senal. Si el nivel de actividad es inferior a un umbral, la tarea TC200 codifica la senal como silencio (por ejemplo, utilizando un esquema de prediccion lineal excitada por ruido (NELP) de baja velocidad binaria y/o un esquema de transmision discontinua (DTX)). Si el nivel de actividad es suficientemente alto (por ejemplo, superior al umbral), la tarea TC300 cuantifica un grado de periodicidad de la senal. Si la tarea TC300 determina que la senal no es periodica, la tarea TC400 codifica la senal utilizando un esquema de NELP. Si la tarea TC300 determina que la senal es periodica, la tarea TC500 cuantifica un grado de dispersion de la senal en el dominio del tiempo y/o de la frecuencia. Si la tarea TC500 determina que la senal esta dispersa en el dominio del tiempo, la tarea TC600 codifica la senal utilizando un esquema de prediccion lineal excitada por codigo (CELP), como por ejemplo la CELP relajada (RCELP) o la CELP algebraica (ACELP). Si la tarea TC500 determina que la senal esta dispersa en el dominio de la frecuencia, la tarea TC700 codifica la senal utilizando un modelo armonico (por ejemplo, haciendo pasar la senal al resto del trayecto de procesamiento en la FIG. 16D).
Como se muestra en la FIG. 16D, el trayecto de procesamiento puede incluir un modulo perceptivo de poda que esta
5
10
15
20
25
30
35
40
45
50
55
60
65
configurado para simplificar la senal en el dominio de la MDCT (por ejemplo, para reducir el numero de coeficientes a codificar en el dominio de la transformacion) mediante la aplicacion de criterios psico-acusticos tales como el enmascaramiento temporal, el enmascaramiento de frecuencia y/o un umbral de audicion. El modulo de PM10 puede estar implementado para calcular los valores para dichos criterios mediante la aplicacion de un modelo perceptivo a las tramas de audio originales SA10. En este ejemplo, el aparato A110 (o MF110 o MF210) esta dispuesto para codificar las tramas podadas para producir las correspondientes tramas codificadas SE10.
La FIG. 16E muestra un diagrama de bloques de una implementacion de ambos trayectos de las FIGs. A1C y A1D, en el que el aparato A110 (o MF110 o MF210) esta dispuesto para codificar el residuo de LPC.
La FIG. 17B muestra un diagrama de bloques de un dispositivo de comunicaciones D10 que incluye una implementacion del aparato A100. El dispositivo D10 incluye un chip o conjunto de chips CS10 (por ejemplo, un conjunto de chips de un modem de estacion movil (MSM)) que incorpora los elementos del aparato A100 (o MF100 y/o MF210). El chip/conjunto de chips CS10 puede incluir uno o mas procesadores, que pueden estar configurados para ejecutar una parte de software y/o firmware del aparato A100 o MF100 (por ejemplo, como instrucciones).
El chip/conjunto de chips CS10 incluye un receptor, que esta configurado para recibir una senal de comunicaciones de radiofrecuencia (RF) y para descodificar y reproducir una senal de audio codificada dentro de la senal de RF, y un transmisor, que esta configurado para transmitir una senal de comunicaciones de RF que describe una senal de audio codificada (por ejemplo, tal como la producida por la tarea TA700 o TB700). Un dispositivo de este tipo puede estar configurado para transmitir y recibir datos de comunicaciones de voz de forma inalambrica mediante uno o mas esquemas de codificacion y descodificacion (tambien denominados "codecs"). Ejemplos de este tipo de codecs incluyen el Codec de velocidad variable mejorado (Enhanced Variable Rate Codec), como se describe en el documento del Proyecto 2 de Colaboracion de Tercera Generacion (3GPP2) C.S0014-C, v1.0, titulado "Codec de velocidad variable mejorado, opciones del servicio de voz 3, 68 y 70 para sistemas digitales de banda ancha de espectro ensanchado", febrero de 2007 (disponible en lfnea en
www.3gpp.org); el codec de voz Vocodificador de modalidad seleccionable (Selectable Mode Vocoder), como se describe en el documento del 3GPP2 C.S0030-0, v3.0, titulado "Vocodificador de modalidad seleccionable (SMV), opcion de servicio para sistemas de comunicacion de banda ancha de espectro ensanchado", enero de 2004 (disponible en lfnea en
www.3gpp.org); el codec de voz adaptativo de multiples velocidades (Adaptive Multi Rate) (AMR), como se describe en el documento del ETSI TS 126 092 V6.0.0 (Instituto europeo de normas de telecomunicaciones (ETSI), Sophia Antipolis Cedex, FR, diciembre de 2004); y el codec de voz AMR de banda ancha, como se describe en el documento del ETSI TS 126 192 V6.0.0 (ETSI, diciembre de 2004).
El dispositivo D10 esta configurado para recibir y transmitir las senales de comunicaciones de RF a traves de una antena C30. El dispositivo D10 tambien puede incluir un diplexor y uno o mas amplificadores de potencia en el trayecto hacia la antena C30. El chip/conjunto de chips CS10 tambien esta configurado para recibir la entrada del usuario mediante el panel de teclas C10 y para mostrar informacion mediante la pantalla C20. En este ejemplo, el dispositivo D10 tambien incluye una o mas antenas C40 para dar soporte a los servicios de localizacion del Sistema de Localizacion Global (GPS) y/o a comunicaciones de corto alcance con un dispositivo externo, como por ejemplo un auricular inalambrico (por ejemplo, Bluetooth™). En otro ejemplo, un dispositivo de comunicaciones de este tipo es en si mismo un auricular Bluetooth™ y carece de panel de teclas C10, pantalla C20 y antena C30.
El dispositivo de comunicaciones D10 se puede integrar en diversos dispositivos de comunicaciones, incluyendo telefonos inteligentes y ordenadores portatiles y de tableta. La FIG. 18 muestra las vistas delantera, trasera y lateral de un equipo de mano H100 (por ejemplo, un telefono inteligente) que tiene dos microfonos de voz MV10-1 MV10-3 dispuestos en la cara delantera, un microfono de voz MV10-2 dispuesto en la cara trasera, un microfono de error ME10 situado en una esquina superior de la cara delantera y un microfono de referencia de ruido MR10 situado en la cara trasera. Un altavoz LS10 esta dispuesto en la parte superior central de la cara delantera, cerca del microfono de error ME10, y tambien se proporcionan otros dos altavoces LS20L, LS20R (por ejemplo, para aplicaciones de manos libres). Una distancia maxima entre los microfonos de un equipo de mano de este tipo es habitualmente de aproximadamente diez o doce centfmetros.
Los procedimientos y aparatos divulgados en el presente documento se pueden aplicar en general en cualquier aplicacion de transcepcion y/o de deteccion de audio, especialmente instancias moviles, o portatiles de otro modo, de dichas aplicaciones. Por ejemplo, la gama de configuraciones divulgadas en el presente documento incluye dispositivos de comunicaciones que residen en un sistema de comunicacion de telefonfa inalambrica, configurado para emplear una interfaz inalambrica (over-the-air) de Acceso Multiple por Division de Codigo (CDMA). No obstante, los expertos en la tecnica comprenderan que un procedimiento y aparato que tengan las caracterfsticas descritas en el presente documento pueden residir en cualquiera de los diversos sistemas de comunicacion que emplean una amplia gama de tecnologfas conocidas por los expertos en la tecnica, tales como sistemas que emplean voz sobre IP (VoIP) por canales de transmision por cable y/o inalambricos (por ejemplo, de CDMA, TDMA, FDMA y/o TD- SCDMA).
Se contempla expresamente y por la presente se divulga que los dispositivos de comunicaciones descritos en el presente documento se pueden adaptar para su uso en redes que son conmutadas por paquetes (por ejemplo,
5
10
15
20
25
30
35
40
45
50
55
60
65
redes por cable y/o inalambricas dispuestas para transportar transmisiones de audio de acuerdo a protocolos tales como VoIP) y/o conmutadas por circuitos. Tambien se contempla expresamente y por la presente se divulga que los dispositivos de comunicaciones descritos en el presente documento se pueden adaptar para su uso en sistemas de codificacion 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 codificacion de banda ancha (por ejemplo, sistemas que codifican frecuencias de audio superiores a cinco kilohercios), incluyendo sistemas de codificacion de banda ancha y banda completa y sistemas de codificacion de banda ancha y banda dividida.
Se proporciona la presentacion de las configuraciones descritas con el fin de permitir que cualquier experto en la tecnica 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 solamente ejemplos, y otras variantes de estas estructuras tambien estan dentro del alcance de la divulgacion. Son posibles diversas modificaciones de estas configuraciones, y los principios genericos presentados en el presente documento se pueden aplicar tambien a otras configuraciones. Por lo tanto, la presente divulgacion no pretende estar limitada a las configuraciones mostradas anteriormente, sino que debe concedersele el alcance mas amplio congruente con los principios y caracterfsticas novedosas divulgados de cualquier manera en el presente documento, incluidos en las reivindicaciones adjuntas como fueron presentadas, que forman una parte de la divulgacion original.
Los expertos en la tecnica entenderan que la informacion y las senales se pueden representar usando cualquiera entre varias tecnologfas y tecnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la informacion, las senales, los bits y los sfmbolos que pueden haber sido mencionados a lo largo de la descripcion anterior, pueden representarse mediante tensiones, corrientes, ondas electromagneticas, campos o partfculas magneticos, campos o partfculas opticos, o cualquier combinacion de los mismos.
Los requisitos de diseno importantes para la implementacion de una configuracion como la divulgada en el presente documento pueden incluir la minimizacion del retardo de procesamiento y/o de la complejidad computacional (medida habitualmente en millones de instrucciones por segundo, o MIPS), especialmente para aplicaciones intensivas en calculos, tales como la reproduccion de audio comprimido o de informacion audiovisual (por ejemplo, un archivo o un flujo codificado de acuerdo a un formato de compresion, tal como uno de los ejemplos identificados en el presente documento) o aplicaciones para comunicaciones de banda ancha (por ejemplo, comunicaciones de voz a velocidades de muestreo superiores a ocho kilohercios, tales como, por ejemplo, l2, 16, 44,1,48 o 192 kHz).
Un aparato como el descrito en el presente documento (por ejemplo, el aparato A100, A110, MF100, MF110 o MF210) se puede implementar en cualquier combinacion de hardware con software, y/o con firmware, que se considere adecuada para la aplicacion deseada. Por ejemplo, dichos elementos pueden fabricarse como dispositivos electronicos y/u opticos que residen, por ejemplo, en el mismo chip o entre dos o mas chips en un conjunto de chips. Un ejemplo de un dispositivo de este tipo es una formacion fija o programable de elementos logicos, tales como transistores o compuertas logicas, y cualquiera de estos elementos se puede implementar como una o mas de dichas formaciones. Dos cualesquiera o mas, o incluso la totalidad, de estos elementos se pueden implementar dentro de la(s) misma(s) formacion o formaciones. Una formacion o formaciones de este tipo se pueden implementar en uno o mas chips (por ejemplo, en un conjunto de chips que incluya dos o mas chips).
Uno o mas elementos de las diversas implementaciones del aparato divulgado en el presente documento (por ejemplo, el aparato A100, A110, MF100, MF110 o MF210) se pueden implementar, en su totalidad o en parte, como uno o mas conjuntos de instrucciones dispuestas para ejecutarse en una o mas formaciones fijas o programables de elementos logicos, tales como microprocesadores, procesadores integrados, nucleos de IP, procesadores de senales digitales, FPGA (Formaciones de compuertas programables en el terreno (Field Programmable Gate Arrays)), ASSP (productos estandar especfficos para una aplicacion (application-specific standard products)) y ASIC (circuitos integrados especfficos de la aplicacion (application-specific integrated circuits)). Cualquiera de los diversos elementos de una implementacion de un aparato como el divulgado en el presente documento tambien se puede realizar como uno o mas ordenadores (por ejemplo, maquinas que incluyen una o mas formaciones programadas para ejecutar uno o mas conjuntos o secuencias de instrucciones, tambien denominadas "procesadores"), y dos cualesquiera o mas, o incluso la totalidad, de estos elementos se pueden implementar dentro del (de los) mismo(s) ordenador u ordenadores de este tipo.
Un procesador u otros medios para el procesamiento como los divulgados en el presente documento se pueden fabricar como uno o mas dispositivos electronicos y/u opticos que residen, por ejemplo, en el mismo chip o entre dos o mas chips en un conjunto de chips. Un ejemplo de un dispositivo de este tipo es una formacion fija o programable de elementos logicos, tales como transistores o compuertas logicas, y cualquiera de estos elementos se puede implementar como una o mas de dichas formaciones. Una formacion, o formaciones, de este tipo se pueden implementar dentro de uno o mas chips (por ejemplo, dentro de un conjunto de chips que incluya dos o mas chips). Los ejemplos de dichas formaciones incluyen matrices fijas o programables de elementos logicos, tales como microprocesadores, procesadores integrados, nucleos de IP, DSP, FPGA, ASSP y ASIC. Un procesador u otros medios para el procesamiento tales como los divulgados en el presente documento tambien se pueden realizar como uno o mas ordenadores (por ejemplo, maquinas que incluyen una o mas formaciones programadas para ejecutar uno o mas conjuntos o secuencias de instrucciones) u otros procesadores. Es posible que un procesador
5
10
15
20
25
30
35
40
45
50
55
60
65
como el descrito en el presente documento se utilice para realizar tareas o ejecutar otros conjuntos de instrucciones que no esten directamente relacionadas con un procedimiento de una implementacion del procedimiento MA100, MA110, MB100, MB110 o MD100, tal como una tarea relacionada con otra operacion de un dispositivo o sistema en el que esta integrado el procesador (por ejemplo, un dispositivo de deteccion de audio). Tambien es posible que parte de un procedimiento como el divulgado en el presente documento se realice mediante un procesador del dispositivo de deteccion de audio y que otra parte del procedimiento se realice bajo el control de uno o mas procesadores distintos.
Los expertos apreciaran que los diversos modulos, bloques logicos, circuitos y pruebas ilustrativos, y otras operaciones descritas en relacion con las configuraciones divulgadas en el presente documento, se pueden implementar como hardware electronico, software informatico o combinaciones de ambos. Dichos modulos, bloques logicos, circuitos y operaciones se pueden implementar o realizar con un procesador de proposito general, un procesador de senales digitales (DSP), un ASIC o ASSP, una FPGA u otro dispositivo de logica programable, logica de compuertas discretas o de transistores, componentes de hardware discretos, o con cualquier combinacion de los mismos disenada para producir la configuracion segun lo divulgado en el presente documento. Por ejemplo, una configuracion de este tipo se puede implementar, al menos en parte, como un circuito cableado, como una configuracion de circuitos fabricada en un circuito integrado especffico de la aplicacion, o como un programa de firmware cargado en un almacenamiento no volatil o un programa de software cargado desde o en un medio de almacenamiento de datos, como codigo legible por maquina, siendo dicho codigo instrucciones ejecutables por una formacion de elementos logicos tales como un procesador de proposito general u otra unidad de procesamiento de senales digitales. Un procesador de proposito general puede ser un microprocesador, pero, como alternativa, el procesador puede ser cualquier procesador, controlador, micro-controlador o maquina de estados convencional. Un procesador tambien puede implementarse como una combinacion de dispositivos informaticos, por ejemplo, una combinacion de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o mas microprocesadores junto con un nucleo de DSP o cualquier otra configuracion de este tipo. Un modulo de software puede residir en un medio de almacenamiento no transitorio tal como una RAM (memoria de acceso aleatorio), una ROM (memoria de solo lectura), una RAM no volatil (NVRAM), tal como una rAm flash, una ROM programable y borrable (EPROM), una ROM programable y borrable electricamente (EEPROM), registros, un disco duro, un disco extrafble o un CD- ROM; o en cualquier otra forma de medio de almacenamiento conocido en la tecnica. Un medio de almacenamiento ilustrativo esta acoplado al procesador de manera que el procesador pueda leer informacion de, y escribir informacion en, el medio de almacenamiento. Como 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.
Se observa que los diversos procedimientos divulgados en el presente documento (por ejemplo, los procedimientos MA100, MA110, MB100, MB110 o MD100) se pueden realizar mediante una formacion de elementos logicos tales como un procesador, y que los diversos elementos de un aparato como el descrito en el presente documento se pueden implementar como modulos disenados para ejecutarse en una formacion de este tipo. Tal como se utiliza en el presente documento, el termino "modulo" o "sub-modulo" puede referirse a cualquier procedimiento, aparato, dispositivo, unidad o medio de almacenamiento de datos legible por ordenador que incluya instrucciones de ordenador (por ejemplo, expresiones logicas) en forma de software, hardware o firmware. Se debe comprender que varios modulos o sistemas se pueden combinar en un modulo o sistema y un modulo o sistema se puede separar en varios modulos o sistemas para realizar las mismas funciones. Cuando se implementan en software u otras instrucciones ejecutables por ordenador, los elementos de un proceso son esencialmente los segmentos de codigo que realizan las tareas relacionadas, tal como, por ejemplo, con rutinas, programas, objetos, componentes, estructuras de datos y similares. Se debe comprender que el termino "software" incluye el codigo fuente, el codigo en lenguaje ensamblador, el codigo de maquina, el codigo binario, el firmware, el macro-codigo, el micro-codigo, cualquiera entre uno o mas conjuntos o secuencias de instrucciones ejecutables por una formacion de elementos logicos y cualquier combinacion de dichos ejemplos. Los segmentos de programa o de codigo se pueden almacenar en un medio legible por procesador, o transmitir por una senal de datos de ordenador incorporada en una onda portadora, por un medio de transmision o un enlace de comunicacion.
Las implementaciones de procedimientos, esquemas y tecnicas descritos en el presente documento tambien se pueden realizar de manera tangible (por ejemplo, en caracterfsticas tangibles, legibles por ordenador, de uno o mas medios de almacenamiento legibles por ordenador segun lo enumerado en el presente documento) como uno o mas conjuntos de instrucciones ejecutables por una maquina que incluye una formacion de elementos logicos (por ejemplo, un procesador, un microprocesador, un micro-controlador u otra maquina de estados finitos). El termino "medio legible por ordenador" puede incluir cualquier medio que pueda almacenar o transmitir informacion, incluyendo medios de almacenamiento volatiles, no volatiles, extrafbles y no extrafbles. Los ejemplos de un medio legible por ordenador incluyen un circuito electronico, un dispositivo de memoria de semiconductores, una ROM, una memoria flash, una ROM borrable (EROM), un disquete flexible u otro almacenamiento magnetico, un CD-ROM/DVD u otro almacenamiento optico, un disco duro o cualquier otro medio que se pueda utilizar para almacenar la informacion deseada, un medio de fibra optica, un enlace de radiofrecuencia (RF) o cualquier otro medio que se pueda utilizar para transportar la informacion deseada y al que se pueda acceder. La senal de datos de ordenador puede incluir cualquier senal que se pueda propagar a traves de un medio de transmision tal como canales de redes
5
10
15
20
25
30
35
40
45
50
55
60
65
electronicas, fibras opticas, aire, campos electromagneticos, enlaces de RF, etc. Los segmentos de codigo se pueden descargar mediante redes de ordenadores tales como Internet o una Intranet. En cualquier caso, el alcance de la presente divulgacion no deberfa interpretarse como limitado por dichos modos de realizacion.
Cada una de las tareas de los procedimientos descritos en el presente documento se puede realizar directamente en hardware, en un modulo de software ejecutado por un procesador o en una combinacion de los dos. En una aplicacion tfpica de una implementacion de un procedimiento segun lo divulgado en el presente documento, una formacion de elementos logicos (por ejemplo, compuertas logicas) esta configurada para realizar una, mas de una, o incluso la totalidad de las diversas tareas del procedimiento. Una o mas de (posiblemente todas) las tareas tambien se pueden implementar como codigo (por ejemplo, uno o mas conjuntos de instrucciones), incorporar en un producto de programa de ordenador (por ejemplo, uno o mas medios de almacenamiento de datos tales como discos, memorias flash u otras tarjetas de memoria no volatil, chips de memoria de semiconductores, etc.), que sea legible y/o ejecutable por una maquina (por ejemplo, un ordenador) que incluya una formacion de elementos logicos (por ejemplo, un procesador, un microprocesador, un micro-controlador u otra maquina de estados finitos). Las tareas de una implementacion de un procedimiento como el descrito en el presente documento tambien pueden ser realizadas por mas de una formacion o maquina de este tipo. En estas u otras implementaciones, las tareas se pueden llevar a cabo dentro de un dispositivo de comunicaciones inalambricas, tal como un telefono celular u otro dispositivo que tenga dicha capacidad de comunicacion. Un dispositivo de este tipo se puede configurar para comunicarse con redes conmutadas por circuitos y/o conmutadas por paquetes (por ejemplo, utilizando uno o mas protocolos, tales como VoIP). Por ejemplo, un dispositivo de este tipo puede incluir circuitos de RF configurados para recibir y/o transmitir tramas codificadas.
Se divulga expresamente que los diversos procedimientos descritos en el presente documento se pueden realizar mediante un dispositivo de comunicaciones portatil, tal como un equipo de mano, un auricular o un asistente digital portatil (PDA), y que los diversos aparatos descritos en el presente documento se pueden incluir en un dispositivo de este tipo. Una aplicacion tfpica de tiempo real (por ejemplo, en lfnea) es una conversacion telefonica realizada utilizando un dispositivo movil de este tipo.
En uno o mas modos de realizacion ejemplares, las operaciones descritas en el presente documento se pueden implementar en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, dichas operaciones, como una o mas instrucciones o codigo, se pueden almacenar en o transmitir por, un medio legible por ordenador. El termino "medios legibles por ordenador" incluye tanto medios de almacenamiento legibles por ordenador como medios de comunicacion (por ejemplo, de transmision). A modo de ejemplo, y no de limitacion, los medios de almacenamiento legibles por ordenador pueden comprender una matriz de elementos de almacenamiento, tales como una memoria de semiconductores (que puede incluir, sin limitacion, una RAM dinamica o estatica, una ROM, una EEPROM, y/o una RAM flash), o una memoria ferro-electrica , magnetorresistiva, ovonica, polimerica o de cambio de fase; un CD-ROM u otro almacenamiento de disco optico; y/o un almacenamiento en disco magnetico u otros dispositivos de almacenamiento magnetico. Dichos medios de almacenamiento pueden almacenar informacion en forma de instrucciones o estructuras de datos a las que se puede acceder mediante un ordenador. Los medios de comunicacion pueden comprender cualquier medio que se pueda utilizar para transportar el codigo de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador, incluyendo cualquier medio que facilite la transferencia de un programa informatico de un lugar a otro. Ademas, cualquier conexion puede denominarse debidamente un medio legible por ordenador. Por ejemplo, si el software se transmite desde una sede de la Red, un servidor u otro origen remoto, usando un cable coaxial, un cable de fibra optica, un par trenzado, una lfnea de abonado digital (DSL) o tecnologfa inalambrica tal como infrarrojos, radio y/o microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o la tecnologfa inalambrica tal como infrarrojos, radio y/o microondas, se incluyen en la definicion de medio. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-rayTM (Asociacion de discos Blu-Ray, Universal City, CA), donde algunos discos normalmente reproducen datos de manera magnetica, mientras que otros discos reproducen los datos de manera optica con laser. Las combinaciones de lo que antecede tambien deberfan incluirse dentro del alcance de los medios legibles por ordenador.
Un aparato de procesamiento de senales acusticas como el descrito en el presente documento puede estar incorporado en un dispositivo electronico que acepte la entrada de voz a fin de controlar ciertas operaciones, o que de otro modo pueda beneficiarse de la separacion de ruidos deseados de ruidos de fondo, tal como los dispositivos de comunicaciones. Muchas aplicaciones pueden beneficiarse de la mejora o de la separacion del sonido claro deseado de los sonidos de fondo procedentes de multiples direcciones. Dichas aplicaciones pueden incluir interfaces hombre-maquina en dispositivos electronicos o informaticos que incorporan capacidades tales como el reconocimiento y la deteccion de voz, la mejora y la separacion de voz, el control activado por voz y similares. Puede ser deseable implementar un aparato de procesamiento de senales acusticas de este tipo que sea adecuado en dispositivos que solo proporcionan capacidades de procesamiento limitadas.
Los elementos de las diversas implementaciones de los modulos, elementos y dispositivos descritos en el presente documento pueden fabricarse como dispositivos electronicos y/u opticos que residen, por ejemplo, en el mismo chip o entre dos o mas chips en un conjunto de chips. Un ejemplo de un dispositivo de este tipo es una matriz fija o
programable de elementos logicos, tales como transistores o compuertas. Uno o mas elementos de las diversas implementaciones del aparato divulgado en el presente documento tambien se pueden implementar, en su totalidad o en parte, como uno o mas conjuntos de instrucciones dispuestas para ejecutarse en una o mas formaciones fijas o programables de elementos logicos, tales como microprocesadores, procesadores integrados, nucleos de IP, 5 procesadores de senales digitales, FPGA, ASSP y ASIC.
Es posible que uno o mas elementos de una implementacion de un aparato como el descrito en el presente documento se utilicen para llevar a cabo tareas o ejecutar otros conjuntos de instrucciones que no esten directamente relacionadas con una operacion del aparato, tal como una tarea relacionada con otra operacion de un 10 dispositivo o sistema en el que esta integrado el aparato. Tambien es posible que uno o mas elementos de una implementacion de un aparato de este tipo tengan una estructura en comun (por ejemplo, un procesador utilizado para ejecutar partes de codigo correspondientes a diferentes elementos en instantes diferentes, un conjunto de instrucciones ejecutadas para llevar a cabo las tareas correspondientes a diferentes elementos en instantes diferentes, o una disposicion de dispositivos electronicos y/u opticos que realizan operaciones para diferentes 15 elementos en instantes diferentes).

Claims (14)

1.
5
10
15
20
25
2.
30
3.
35
40
4.
45
5.
50
6.
55
7.
60
REIVINDICACIONES
Un procedimiento de procesamiento de senales de audio, comprendiendo dicho procedimiento:
en un dominio de frecuencia, la localizacion de una pluralidad de picos en una senal de audio de referencia;
la seleccion de un numero Nf de candidatos para una frecuencia fundamental de un modelo armonico, basado cada uno en la localizacion de un pico correspondiente entre la pluralidad de picos en el dominio de la frecuencia.
basandose en las localizaciones de al menos dos entre la pluralidad de picos en el dominio de la frecuencia, el calculo de un numero Nd de candidatos para una separacion entre armonicos del modelo armonico;
para cada uno entre una pluralidad de diferentes pares de candidatos de la frecuencia fundamental y la separacion armonica, la seleccion de un conjunto de al menos una sub-banda de una senal de audio de destino, en la que una localizacion de cada sub-banda en el conjunto en el dominio de la frecuencia esta basada en el par de candidatos;
para cada uno entre la pluralidad de diferentes pares de candidatos, el calculo de un valor de energfa a partir del conjunto correspondiente de al menos una sub-banda de la senal de audio de destino; y
basandose en al menos una pluralidad de los valores de energfa calculados, la seleccion de un par de candidatos entre la pluralidad de diferentes pares de candidatos, en donde al menos uno entre los numeros Nf y Nd tiene un valor mayor que uno.
El procedimiento de acuerdo a la reivindicacion 1, en el que dicha senal de audio de destino es la senal de audio de referencia.
El procedimiento segun la reivindicacion 1,
en el que dicha senal de audio de referencia representa un primer intervalo de frecuencias de una senal de audio,
en el que dicha senal de audio de destino representa un segundo intervalo de frecuencias de la senal de audio, que es diferente al primer intervalo de frecuencias, y
en el que el procedimiento incluye ademas la correlacion del numero Nf de candidatos de la frecuencia fundamental con el segundo intervalo de frecuencias.
El procedimiento de acuerdo a la reivindicacion 1, en el que dicho procedimiento incluye la realizacion de una operacion de cuantizacion de vectores de formas y ganancias sobre el conjunto de al menos una sub-banda indicada por el par de candidatos seleccionado.
El procedimiento segun la reivindicacion 1,
en el que dicha seleccion de al menos una sub-banda comprende la seleccion de un conjunto de sub-bandas, y
en el que dicho calculo de un valor de energfa a partir del correspondiente conjunto de sub-bandas incluye el calculo de una energfa media por sub-banda, o bien de una energfa total capturada por el conjunto de al menos una sub-banda.
El procedimiento de acuerdo a la reivindicacion 1, en el que dicha senal de audio de destino esta basada en un residuo de codificacion predictiva lineal, o bien dicha senal de audio de destino es una pluralidad de coeficientes de la transformacion de coseno discreta modificada.
El procedimiento de acuerdo a la reivindicacion 1, en el que dicha seleccion de un conjunto de al menos una sub-banda incluye, para cada uno de al menos uno de los conjuntos de al menos una sub-banda, encontrar una localizacion para la sub-banda dentro de un intervalo especffico de una localizacion de referencia,
en el que la localizacion de la sub-banda es:
la localizacion en la que la energfa captada por la sub-banda es maxima, en donde la localizacion de referencia esta basada en el par de candidatos; o bien
la localizacion en la que la muestra que tiene el valor maximo dentro de la sub-banda esta centrada
5
10
15
20
25
30
35
40
45
50
55
60
65
dentro de la sub-banda, en donde la localizacion de referenda esta basada en el par de candidatos.
8. El procedimiento de acuerdo a la reivindicacion 1, en el que, para al menos uno entre la pluralidad de diferentes pares de candidatos, dicha seleccion de un conjunto de al menos una sub-banda incluye, para cada una entre al menos una de las al menos una sub-bandas:
basandose en el par de candidatos, el calculo de una primera localizacion para la sub-banda de tal manera que la sub-banda excluya un pico especificado entre los picos localizados, en donde la primera localizacion esta en un lado del pico localizado especificado en un eje en el dominio de la frecuencia; basandose en el par de candidatos, el calculo de una segunda localizacion para la sub-banda de tal manera que la sub-banda excluya el pico localizado especificado, en el que la segunda
localizacion esta en el otro lado del pico localizado especificado en el eje en el dominio de la frecuencia; y
la identificacion de una entre las localizaciones primera y segunda, en la que la sub-banda tenga la energfa mas baja.
9. El procedimiento de acuerdo a la reivindicacion 1, en el que dicho procedimiento comprende la produccion de una senal codificada que indica los valores del par de candidatos seleccionado y el contenido de cada sub- banda del conjunto seleccionado correspondiente de al menos una sub-banda.
10. El procedimiento segun la reivindicacion 1,
en el que dicha seleccion de al menos una sub-banda comprende la seleccion de un conjunto de sub-bandas, y
en el que dicho procedimiento comprende:
la cuantizacion del conjunto seleccionado de sub-bandas que corresponde al par de candidatos seleccionado;
la descuantizacion del conjunto cuantizado de sub-bandas para obtener un conjunto descuantizado de sub-bandas; y
la construccion de una senal descodificada mediante la disposicion de las sub-bandas descuantizadas en las localizaciones correspondientes que estan basadas en el par de candidatos seleccionado,
en el que las localizaciones de las sub-bandas descuantizadas en la senal descodificada son diferentes a las localizaciones, dentro de la senal de audio de destino, de las sub-bandas correspondientes del conjunto seleccionado que corresponde al par de candidatos seleccionado.
11 Un aparato para el procesamiento de senales de audio, comprendiendo dicho aparato:
medios, en un dominio de frecuencia, para localizar una pluralidad de picos en una senal de audio de referencia;
medios para seleccionar un numero Nf de candidatos para una frecuencia fundamental de un modelo armonico, basado cada uno en la localizacion de un pico correspondiente entre la pluralidad de picos en el dominio de la frecuencia.
medios, basandose en las localizaciones de al menos dos entre la pluralidad de picos en el dominio de la frecuencia, para calcular un numero Nd de candidatos para una separacion entre armonicos del modelo armonico;
medios, para cada uno entre una pluralidad de los diferentes pares de candidatos de la frecuencia fundamental y la separacion armonica, para seleccionar un conjunto de al menos una sub-banda de una senal de audio de destino, en la que una localizacion de cada sub-banda en el conjunto en el dominio de frecuencia esta basada en el par de candidatos;
medios, para cada uno entre la pluralidad de diferentes pares de candidatos, para calcular un valor de energfa a partir del conjunto correspondiente de al menos una sub-banda de la senal de audio de destino; y
medios, basandose en al menos una pluralidad de los valores de energfa calculados, para seleccionar un par de candidatos entre la pluralidad de diferentes pares de candidatos,
5
10
15
20
en el que al menos uno de entre los numeros Nf y Nd tiene un valor mayor que uno.
12. El aparato de acuerdo a la reivindicacion 11, en el que dicha senal de audio de destino es la senal de audio de referencia.
13. El aparato de acuerdo a la reivindicacion 11,
en el que dicha senal de audio de referencia representa un primer intervalo de frecuencias de una senal de audio,
en el que dicha senal de audio de destino representa un segundo intervalo de frecuencias de la senal de audio, que es diferente al primer intervalo de frecuencias, y
en el que el aparato incluye ademas medios para correlacionar el numero Nf de candidatos de la frecuencia fundamental con el segundo intervalo de frecuencias.
14. El aparato de acuerdo a la reivindicacion 11, en el que dicho aparato incluye medios para realizar una operacion de cuantizacion de vectores de formas y ganancias sobre el conjunto de al menos una sub-banda indicada por el par de candidatos seleccionado.
15. Un medio de almacenamiento no transitorio y legible por ordenador que tiene caracterfsticas tangibles que, cuando son lefdas por una maquina, hacen que la maquina realice los procedimientos de cualquiera de las reivindicaciones 1 a 10.
ES11755462.6T 2010-07-30 2011-07-29 Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificación de señales armónicas Active ES2611664T3 (es)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US36966210P 2010-07-30 2010-07-30
US369662P 2010-07-30
US36970510P 2010-07-31 2010-07-31
US369705P 2010-07-31
US36975110P 2010-08-01 2010-08-01
US369751P 2010-08-01
US37456510P 2010-08-17 2010-08-17
US374565P 2010-08-17
US38423710P 2010-09-17 2010-09-17
US384237P 2010-09-17
US201161470438P 2011-03-31 2011-03-31
US201161470438P 2011-03-31
US201113192956 2011-07-28
US13/192,956 US8924222B2 (en) 2010-07-30 2011-07-28 Systems, methods, apparatus, and computer-readable media for coding of harmonic signals
PCT/US2011/045837 WO2012016110A2 (en) 2010-07-30 2011-07-29 Systems, methods, apparatus, and computer-readable media for coding of harmonic signals

Publications (1)

Publication Number Publication Date
ES2611664T3 true ES2611664T3 (es) 2017-05-09

Family

ID=45527629

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11755462.6T Active ES2611664T3 (es) 2010-07-30 2011-07-29 Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificación de señales armónicas

Country Status (10)

Country Link
US (4) US20120029926A1 (es)
EP (5) EP2599080B1 (es)
JP (4) JP2013537647A (es)
KR (4) KR20130069756A (es)
CN (4) CN103038821B (es)
BR (1) BR112013002166B1 (es)
ES (1) ES2611664T3 (es)
HU (1) HUE032264T2 (es)
TW (1) TW201214416A (es)
WO (4) WO2012016110A2 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2356492T3 (es) * 2005-07-22 2011-04-08 France Telecom Método de conmutación de tasa de transmisión en decodificación de audio escalable en tasa de transmisión y ancho de banda.
ES2559981T3 (es) * 2010-07-05 2016-02-17 Nippon Telegraph And Telephone Corporation Método de codificación, método de decodificación, dispositivo, programa y medio de registro
US20120029926A1 (en) 2010-07-30 2012-02-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for dependent-mode coding of audio signals
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
WO2012037515A1 (en) 2010-09-17 2012-03-22 Xiph. Org. Methods and systems for adaptive time-frequency resolution in digital data coding
CN103329199B (zh) * 2011-01-25 2015-04-08 日本电信电话株式会社 编码方法、编码装置、周期性特征量决定方法、周期性特征量决定装置、程序、记录介质
US8838442B2 (en) 2011-03-07 2014-09-16 Xiph.org Foundation Method and system for two-step spreading for tonal artifact avoidance in audio coding
WO2012122297A1 (en) 2011-03-07 2012-09-13 Xiph. Org. Methods and systems for avoiding partial collapse in multi-block audio coding
WO2012122299A1 (en) * 2011-03-07 2012-09-13 Xiph. Org. Bit allocation and partitioning in gain-shape vector quantization for audio coding
PT3321931T (pt) 2011-10-28 2020-02-25 Fraunhofer Ges Forschung Aparelho de codificação e método de codificação
RU2505921C2 (ru) * 2012-02-02 2014-01-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и устройство кодирования и декодирования аудиосигналов (варианты)
WO2013147666A1 (en) * 2012-03-29 2013-10-03 Telefonaktiebolaget L M Ericsson (Publ) Transform encoding/decoding of harmonic audio signals
DE202013005408U1 (de) * 2012-06-25 2013-10-11 Lg Electronics Inc. Mikrophonbefestigungsanordnung eines mobilen Endgerätes
CN103516440B (zh) 2012-06-29 2015-07-08 华为技术有限公司 语音频信号处理方法和编码装置
EP2685448B1 (en) * 2012-07-12 2018-09-05 Harman Becker Automotive Systems GmbH Engine sound synthesis
JP6096896B2 (ja) * 2012-07-12 2017-03-15 ノキア テクノロジーズ オーユー ベクトル量子化
US8885752B2 (en) * 2012-07-27 2014-11-11 Intel Corporation Method and apparatus for feedback in 3D MIMO wireless systems
US9129600B2 (en) * 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
ES2753228T3 (es) 2012-11-05 2020-04-07 Panasonic Ip Corp America Dispositivo de codificación de audio de voz, dispositivo de decodificación de audio de voz, procedimiento de codificación de audio de voz y procedimiento de decodificación de audio de voz
CN103854653B (zh) * 2012-12-06 2016-12-28 华为技术有限公司 信号解码的方法和设备
PL3457400T3 (pl) * 2012-12-13 2024-02-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Urządzenie do kodowania głosowego audio, urządzenie do dekodowania głosowego audio, sposób kodowania głosowego audio i sposób dekodowania głosowego audio
US9577618B2 (en) 2012-12-20 2017-02-21 Advanced Micro Devices, Inc. Reducing power needed to send signals over wires
JP6173484B2 (ja) 2013-01-08 2017-08-02 ドルビー・インターナショナル・アーベー 臨界サンプリングされたフィルタバンクにおけるモデル・ベースの予測
AU2014211544B2 (en) * 2013-01-29 2017-03-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Noise filling in perceptual transform audio coding
JP6407150B2 (ja) 2013-06-11 2018-10-17 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 音響信号の帯域幅拡張を行う装置及び方法
CN104282308B (zh) 2013-07-04 2017-07-14 华为技术有限公司 频域包络的矢量量化方法和装置
EP2830065A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
CN104347082B (zh) * 2013-07-24 2017-10-24 富士通株式会社 弦波帧检测方法和设备以及音频编码方法和设备
US9224402B2 (en) 2013-09-30 2015-12-29 International Business Machines Corporation Wideband speech parameterization for high quality synthesis, transformation and quantization
US8879858B1 (en) 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
JP6400590B2 (ja) * 2013-10-04 2018-10-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 音響信号符号化装置、音響信号復号装置、端末装置、基地局装置、音響信号符号化方法及び復号方法
PT3471096T (pt) * 2013-10-18 2020-07-06 Ericsson Telefon Ab L M Codificação de posições de picos espectrais
US10049683B2 (en) 2013-10-21 2018-08-14 Dolby International Ab Audio encoder and decoder
EP3913808A1 (en) * 2013-11-12 2021-11-24 Telefonaktiebolaget LM Ericsson (publ) Split gain shape vector coding
US20150149157A1 (en) * 2013-11-22 2015-05-28 Qualcomm Incorporated Frequency domain gain shape estimation
WO2015136078A1 (en) * 2014-03-14 2015-09-17 Telefonaktiebolaget L M Ericsson (Publ) Audio coding method and apparatus
CN104934032B (zh) * 2014-03-17 2019-04-05 华为技术有限公司 根据频域能量对语音信号进行处理的方法和装置
US9542955B2 (en) * 2014-03-31 2017-01-10 Qualcomm Incorporated High-band signal coding using multiple sub-bands
SG11201701197TA (en) 2014-07-25 2017-03-30 Panasonic Ip Corp America Audio signal coding apparatus, audio signal decoding apparatus, audio signal coding method, and audio signal decoding method
US9620136B2 (en) 2014-08-15 2017-04-11 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9672838B2 (en) 2014-08-15 2017-06-06 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9336788B2 (en) 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
CA2964906A1 (en) 2014-10-20 2016-04-28 Audimax, Llc Systems, methods, and devices for intelligent speech recognition and processing
US20160232741A1 (en) * 2015-02-05 2016-08-11 Igt Global Solutions Corporation Lottery Ticket Vending Device, System and Method
WO2016142002A1 (en) * 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
TWI758146B (zh) * 2015-03-13 2022-03-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
DE102015104864A1 (de) 2015-03-30 2016-10-06 Thyssenkrupp Ag Lagerelement für einen Stabilisator eines Fahrzeugs
EP3320539A1 (en) * 2015-07-06 2018-05-16 Nokia Technologies OY Bit error detector for an audio signal decoder
EP3171362B1 (en) * 2015-11-19 2019-08-28 Harman Becker Automotive Systems GmbH Bass enhancement and separation of an audio signal into a harmonic and transient signal component
US10210874B2 (en) * 2017-02-03 2019-02-19 Qualcomm Incorporated Multi channel coding
US10825467B2 (en) * 2017-04-21 2020-11-03 Qualcomm Incorporated Non-harmonic speech detection and bandwidth extension in a multi-source environment
US11531695B2 (en) * 2017-08-23 2022-12-20 Google Llc Multiscale quantization for fast similarity search
WO2019056108A1 (en) * 2017-09-20 2019-03-28 Voiceage Corporation METHOD AND DEVICE FOR EFFICIENT DISTRIBUTION OF A BINARY BUDGET IN A CELP CODEC
CN108153189B (zh) * 2017-12-20 2020-07-10 中国航空工业集团公司洛阳电光设备研究所 一种民机显示控制器的电源控制电路及方法
WO2019165642A1 (en) * 2018-03-02 2019-09-06 Intel Corporation Adaptive bitrate coding for spatial audio streaming
KR20230058546A (ko) 2018-04-05 2023-05-03 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 컴포트 노이즈 생성 지원
CN110704024B (zh) * 2019-09-28 2022-03-08 中昊芯英(杭州)科技有限公司 一种矩阵处理装置、方法及处理设备
US20210209462A1 (en) * 2020-01-07 2021-07-08 Alibaba Group Holding Limited Method and system for processing a neural network
CN111681639B (zh) * 2020-05-28 2023-05-30 上海墨百意信息科技有限公司 一种多说话人语音合成方法、装置及计算设备

Family Cites Families (115)

* 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 ソニー株式会社 ベクトル量子化方法、音声符号化方法及び装置
EP0883107B9 (en) 1996-11-07 2005-01-26 Matsushita Electric Industrial Co., Ltd Sound source vector generator, voice encoder, and voice decoder
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
WO1999003095A1 (en) 1997-07-11 1999-01-21 Koninklijke Philips Electronics N.V. Transmitter with an improved harmonic speech encoder
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
CA2368453C (en) 1999-04-16 2009-12-08 Grant Allen Davidson 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 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
ATE320651T1 (de) 2001-05-08 2006-04-15 Koninkl Philips Electronics Nv 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
US7069212B2 (en) * 2002-09-19 2006-06-27 Matsushita Elecric Industrial Co., Ltd. Audio decoding apparatus and method for band expansion with aliasing adjustment
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 日本電信電話株式会社 音声楽音信号符号化方法、復号化方法、符号化装置、復号化装置、符号化プログラム、および復号化プログラム
US7996234B2 (en) 2003-08-26 2011-08-09 Akikaze Technologies, Llc 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
CN102201242B (zh) 2004-11-05 2013-02-27 松下电器产业株式会社 编码装置、解码装置、编码方法及解码方法
JP4599558B2 (ja) 2005-04-22 2010-12-15 国立大学法人九州工業大学 ピッチ周期等化装置及びピッチ周期等化方法、並びに音声符号化装置、音声復号装置及び音声符号化方法
US7630882B2 (en) * 2005-07-15 2009-12-08 Microsoft Corporation Frequency segmentation to obtain bands for efficient coding of digital media
WO2007052088A1 (en) 2005-11-04 2007-05-10 Nokia Corporation Audio compression
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 カシオ計算機株式会社 音声符号化装置、音声符号化方法、及び、プログラム
JP5096474B2 (ja) 2006-10-10 2012-12-12 クゥアルコム・インコーポレイテッド オーディオ信号を符号化及び復号化する方法及び装置
US20080097757A1 (en) * 2006-10-24 2008-04-24 Nokia Corporation Audio coding
KR100862662B1 (ko) 2006-11-28 2008-10-10 삼성전자주식회사 프레임 오류 은닉 방법 및 장치, 이를 이용한 오디오 신호복호화 방법 및 장치
EP2101318B1 (en) 2006-12-13 2014-06-04 Panasonic Corporation Encoding device, decoding device and corresponding methods
CN101548318B (zh) 2006-12-15 2012-07-18 松下电器产业株式会社 编码装置、解码装置以及其方法
KR101299155B1 (ko) * 2006-12-29 2013-08-22 삼성전자주식회사 오디오 부호화 및 복호화 장치와 그 방법
FR2912249A1 (fr) 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
EP1973101B1 (en) 2007-03-23 2010-02-24 Honda Research Institute Europe GmbH Pitch extraction with inhibition of harmonics and sub-harmonics of the fundamental frequency
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
US7761290B2 (en) 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US7774205B2 (en) 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
JP5253502B2 (ja) 2007-06-21 2013-07-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ベクトルを符号化する方法
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
US8566106B2 (en) 2007-09-11 2013-10-22 Voiceage Corporation Method and device for fast algebraic codebook search in speech and audio coding
WO2009048239A2 (en) * 2007-10-12 2009-04-16 Electronics And Telecommunications Research Institute Encoding and decoding method using variable subband analysis and apparatus thereof
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
KR101518532B1 (ko) 2008-07-11 2015-05-07 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 인코더, 오디오 디코더, 오디오 신호, 오디오 스트림을 부호화 및 복호화하는 장치 및 컴퓨터 프로그램
ATE539433T1 (de) 2008-07-11 2012-01-15 Fraunhofer Ges Forschung Bereitstellen eines zeitverzerrungsaktivierungssignals und codierung eines audiosignals damit
EP2328670B1 (en) 2008-08-26 2017-04-12 Huawei Technologies Co., Ltd. System and method for wireless communications
EP2182513B1 (en) 2008-11-04 2013-03-20 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
MY180550A (en) 2009-01-16 2020-12-02 Dolby Int Ab Cross product enhanced harmonic transposition
RU2519027C2 (ru) 2009-02-13 2014-06-10 Панасоник Корпорэйшн Устройство векторного квантования, устройство векторного обратного квантования и способы для этого
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
WO2011110594A1 (en) 2010-03-10 2011-09-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. 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
US9998081B2 (en) 2010-05-12 2018-06-12 Nokia Technologies Oy Method and apparatus for processing an audio signal based on an estimated loudness
US20120029926A1 (en) 2010-07-30 2012-02-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for dependent-mode coding of audio signals
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection

Also Published As

Publication number Publication date
JP5694531B2 (ja) 2015-04-01
EP3852104A1 (en) 2021-07-21
EP2599082B1 (en) 2020-11-25
KR20130069756A (ko) 2013-06-26
JP2013537647A (ja) 2013-10-03
EP2599081B1 (en) 2020-12-23
WO2012016128A3 (en) 2012-04-05
EP2599081A2 (en) 2013-06-05
CN103038821B (zh) 2014-12-24
EP2599080A2 (en) 2013-06-05
JP5587501B2 (ja) 2014-09-10
CN103038822B (zh) 2015-05-27
US8831933B2 (en) 2014-09-09
JP2013534328A (ja) 2013-09-02
KR20130036364A (ko) 2013-04-11
HUE032264T2 (en) 2017-09-28
BR112013002166B1 (pt) 2021-02-02
US20120029924A1 (en) 2012-02-02
WO2012016110A3 (en) 2012-04-05
JP5694532B2 (ja) 2015-04-01
CN103052984A (zh) 2013-04-17
US9236063B2 (en) 2016-01-12
EP3021322B1 (en) 2017-10-04
KR101445509B1 (ko) 2014-09-26
EP2599082A2 (en) 2013-06-05
JP2013539548A (ja) 2013-10-24
EP2599080B1 (en) 2016-10-19
US20120029925A1 (en) 2012-02-02
JP2013532851A (ja) 2013-08-19
WO2012016128A2 (en) 2012-02-02
CN103038822A (zh) 2013-04-10
KR101442997B1 (ko) 2014-09-23
WO2012016122A2 (en) 2012-02-02
TW201214416A (en) 2012-04-01
KR20130036361A (ko) 2013-04-11
BR112013002166A2 (pt) 2016-05-31
WO2012016110A2 (en) 2012-02-02
US8924222B2 (en) 2014-12-30
KR20130037241A (ko) 2013-04-15
EP3852104B1 (en) 2023-08-16
US20120029926A1 (en) 2012-02-02
WO2012016122A3 (en) 2012-04-12
CN103052984B (zh) 2016-01-20
CN103038821A (zh) 2013-04-10
EP3021322A1 (en) 2016-05-18
CN103038820A (zh) 2013-04-10
WO2012016126A3 (en) 2012-04-12
WO2012016126A2 (en) 2012-02-02
KR101445510B1 (ko) 2014-09-26
US20120029923A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
ES2611664T3 (es) Sistemas, procedimientos, aparatos y medios legibles por ordenador para la codificación de señales armónicas
ES2808302T3 (es) Sistemas, procedimientos, aparatos y medios legibles por ordenador para inyección de ruido
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