Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación.

Un decodificador de señales de audio (150; 240) para generar una representación de señal de audio decodificada

(154) sobre la base de una representación de señal de audio codificada (152) que comprende una representación de espectro codificado (ac spectral_data[]) y una información de distorsión de tiempo codificada (tw data[]), donde el decodificador de señales de audio comprende:

un decodificador de valores espectrales basado en el contexto (160) configurado para decodificar una palabra en código (acod m) que describe uno o más valores espectrales o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales que depende de un estado del contexto, para obtener valores espectrales decodificados (162, 297, x ac dec[]);

un determinador del estado del contexto (170; 400) configurado para determinar un estado actual del contexto--(164; c) dependiendo de uno o más valores espectrales anteriormente decodificados (162, 297); un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo (180) configurado para generar una representación en el dominio del tiempo con distorsión de tiempo (182) de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados (162, 297) asociados al cuadro de audio dado y provistos por el decodificador de valores espectrales basado en el contexto y dependiendo de la información de distorsión de tiempo;

donde el determinador del estado del contexto (170; 400) está configurado para adaptar la determinación del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2011/053541.

Solicitante: FRAUNHOFER-GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG E.V..

Nacionalidad solicitante: Alemania.

Dirección: HANSASTRASSE 27C 80686 MUNCHEN ALEMANIA.

Inventor/es: GEIGER, RALF, VILLEMOES, LARS, EDLER, BERND, DISCH,SASCHA, BAYER,Stefan, BÄCKSTRÖM,TOM.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > INSTRUMENTOS DE MUSICA; ACUSTICA > ANALISIS O SINTESIS DE LA VOZ; RECONOCIMIENTO DE... > Técnicas de análisis-síntesis de la voz o de señales... > G10L19/02 (utilizando análisis espectrales, p. ej. codificadores vocales de transformación o codificadores vocales subbanda)
  • SECCION G — FISICA > INSTRUMENTOS DE MUSICA; ACUSTICA > ANALISIS O SINTESIS DE LA VOZ; RECONOCIMIENTO DE... > Tratamiento de la señal de la voz para producir... > G10L21/04 (Compresión o expansión temporales)
  • SECCION G — FISICA > INSTRUMENTOS DE MUSICA; ACUSTICA > ANALISIS O SINTESIS DE LA VOZ; RECONOCIMIENTO DE... > Técnicas de análisis del habla o voz no restringidos... > G10L25/90 (Detección del tono de una señal de habla)
  • SECCION G — FISICA > INSTRUMENTOS DE MUSICA; ACUSTICA > ANALISIS O SINTESIS DE LA VOZ; RECONOCIMIENTO DE... > Técnicas de análisis-síntesis de la voz o de señales... > G10L19/022 (Bloqueo, p. ej. agrupación de muestras en el tiempo; Elección de las ventanas de análisis; Factorización de interferencias)

PDF original: ES-2461183_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación Campo Técnico [0001] Las realizaciones de acuerdo con la invención se relacionan con un decodificador de señales de audio para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada.

Otras realizaciones de acuerdo con la invención se relacionan con un codificador de señales de audio para producir una representación codificada de una señal de audio de entrada.

Otras realizaciones de acuerdo con la invención se relacionan con un procedimiento para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada.

Otras realizaciones de acuerdo con la invención se relacionan con un procedimiento para producir una representación de señal de audio codificada.

Otras realizaciones de acuerdo con la invención se relacionan con programas de computación.

Algunas realizaciones de acuerdo con la invención se relacionan con un concepto para adaptar el contexto de un codificador aritmético usando información de distorsión, que se puede utilizar en combinación con una transformada de coseno discreta con distorsión de tiempo (designada en forma abreviada TW–MDCT) .

Antecedentes de la invención [0007] A continuación se presenta una breve introducción en el campo de la codificación de audio con distorsión de tiempo, conceptos de lo cual se pueden aplicar en combinación con algunas de las realizaciones de la invención.

En los últimos años, se han desarrollado técnicas para transformar una señal de audio en una representación en el dominio de la frecuencia y para codificar la representación en el dominio de la frecuencia de manera eficiente, por ejemplo, tomando en cuenta umbrales de enmascaramiento perceptual. Este concepto de codificación de señales de audio es particularmente eficiente si la longitud del bloque, por el cual se transmite una serie de coeficientes espectrales codificados es grande, y si sólo un número comparativamente pequeño está muy por encima del umbral global de enmascaramiento, en tanto que un gran número de coeficientes espectrales están próximos o por debajo del umbral de enmascaramiento global y, por consiguiente, puede ser no tenido en cuenta (o codificado con una longitud mínima de código) . Un espectro en el cual reina esa condición se denomina en ocasiones espectro disperso (sparse) .

Por ejemplo, con frecuencia se utilizan transformadas de coseno o seno moduladas solapadas en aplicaciones para la codificación de origen debido a sus propiedades de compactación de energía. Es decir que en el caso de tonos armónicos con frecuencias fundamentales constantes (tono) , concentran la energía de la señal en un bajo número de componentes espectrales (subbandas) , lo que lleva a una representación eficiente de la señal.

En general, se ha de entender que el tono (fundamental) de una señal es la frecuencia dominante más baja que se distingue del espectro de la señal. En el modelo de voz común, el tono es la frecuencia de la señal de excitación modulada por la garganta humana. Si estuviera presente una única frecuencia fundamental, el espectro sería sumamente sencillo, y comprendería únicamente la frecuencia fundamental y los sobretonos o armónicos superiores. Ese tipo de espectro podría ser codificado con gran eficiencia. Sin embargo, en el caso de señales con tonos variados, la energía correspondiente a cada componente armónico se propaga a varios coeficientes de transformada, llevando así a una reducción de la eficiencia codificadora.

Para superar la reducción de la eficiencia de codificación, se remuestrea efectivamente la señal de audio a codificar en una grilla temporal no uniforme. En el procesamiento subsiguiente, las posiciones de muestreo obtenidas por el remuestreo no uniforme se procesan como si representaran valores de una grilla temporal uniforme. Esta operación se describe por lo general con la frase “distorsión de tiempo” (time warping) . Se puede elegir ventajosamente el número de veces de muestreo dependiendo de la variación temporal del tono, de tal manera que una variación del tono en la versión con distorsión de tiempo de la señal de audio sea menor que la variación de tono de la versión original de la señal de audio (antes de la distorsión de tiempo) . Después de la distorsión de tiempo de la señal de audio, la versión de la señal de audio con distorsión de tiempo se convierte al dominio de la frecuencia. La distorsión de tiempo dependiente del tono tiene como efecto que la representación en el dominio de la frecuencia de la señal de audio con distorsión de tiempo exhibe por lo general compacta la energía formando un número de componentes espectrales mucho menor que una representación en el dominio de la frecuencia de la original (señal de audio sin distorsión de tiempo) .

Del lado del decodificador la representación en el dominio de la frecuencia de la señal de audio con distorsión de tiempo se convierte al dominio del tiempo, de tal manera que una representación en el domino del tiempo de la señal de audio con distorsión de tiempo esté disponible del lado del decodificador. Sin embargo, en la representación en el domino del tiempo la señal de audio con distorsión de tiempo reconstruida del lado del decodificador, las variaciones de tono originales de la señal de audio de entrada del lado del codificador no están incluidas. En consecuencia, se aplica una distorsión de tiempo adicional mediante el remuestreo de la representación en el dominio del tiempo reconstruida del lado del decodificador de la señal de audio con distorsión de tiempo.

Para obtener una buena reconstrucción de la señal de audio de entrada del lado del codificador en el decodificador es conveniente que la distorsión de tiempo del lado del decodificador constituya por lo menos aproximadamente la operación inversa con respecto a la distorsión de tiempo del lado del codificador. Para obtener una distorsión de tiempo apropiada, es conveniente contar con una información disponible en el decodificador, lo que da lugar al ajuste de la distorsión de tiempo del lado del decodificador.

Como por lo general es indispensable transferir esa información desde el codificador de señales de audio al decodificador de señales de audio, es conveniente mantener baja la velocidad de transferencia de bits necesaria para esta transmisión, aunque dando lugar igualmente a una reconstrucción confiable de la información de distorsión de tiempo necesaria del lado del decodificador.

Más aun, en ocasiones se incrementa la eficiencia codificadora al codificar o decodificar valores espectrales mediante el uso de un codificador dependiente del contexto o un decodificador dependiente del contexto.

El documento US 2007/0100607 describe un esquema de codificación de audio digital que aplica distorsión de tiempo.

Sin embargo, se ha encontrado que con frecuencia la eficiencia codificadora de un codificador de audio o de un decodificador de audio es comparativamente baja en presencia de una variación de una frecuencia fundamental o de un tono, aunque se aplique el concepto de distorsión de tiempo.

En vista de esta situación, existe la necesidad de contar con un concepto que dé lugar a una eficiencia codificadora favorable aun en presencia de una variación de una frecuencia fundamental.

Síntesis de la invención [0019] Una realización de acuerdo con la invención... [Seguir leyendo]

 


Reivindicaciones:

1. Un decodificador de señales de audio (150; 240) para generar una representación de señal de audio decodificada (154) sobre la base de una representación de señal de audio codificada (152) que comprende una representación de espectro codificado (ac spectral_data[]) y una información de distorsión de tiempo codificada (tw data[]) , donde el decodificador de señales de audio comprende:

un decodificador de valores espectrales basado en el contexto (160) configurado para decodificar una palabra en código (acod m) que describe uno o más valores espectrales o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales que depende de un estado del contexto, para obtener valores espectrales decodificados (162, 297, x ac dec[]) ; un determinador del estado del contexto (170; 400) configurado para determinar un estado actual del contexto–– (164; c) dependiendo de uno o más valores espectrales anteriormente decodificados (162, 297) ; un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo (180) configurado para generar una representación en el dominio del tiempo con distorsión de tiempo (182) de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados (162, 297) asociados al cuadro de audio dado y provistos por el decodificador de valores espectrales basado en el contexto y dependiendo de la información de distorsión de tiempo; donde el determinador del estado del contexto (170; 400) está configurado para adaptar la determinación del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.

2. El decodificador de señales de audio de acuerdo con la reivindicación 1, donde la información de distorsión de tiempo (tw_data) describe una variación (prel) de un tono con el transcurso del tiempo; y donde el determinador del estado del contexto (170; 400) está configurado para derivar una información de estiramiento de la frecuencia (s; m_ContextUpdateRatio) de la información de distorsión de tiempo (tw_data) ; y donde el determinador del estado del contexto está configurado para estirar o comprimir un contexto anterior (432, q[0][], 450) asociado al cuadro de audio anterior a lo largo del eje de frecuencia dependiendo de la información de estiramiento de la frecuencia (s, m_ContextUpdateRatio) , para obtener un contexto adaptado (440, q[0] [], 452) para una decodificación basada en el contexto de uno o más valores espectrales de un cuadro de audio actual.

3. El decodificador de señales de audio de acuerdo con la reivindicación 2, donde el determinador del estado del contexto (170, 400) está configurado para derivar una primera información de frecuencia promedio (frel, mean, k–1) durante un primer cuadro de audio de la información de distorsión de tiempo (tw_data, prel, warp_contour[]) , y para derivar una segunda información de frecuencia promedio (frel, mean, k) correspondiente a un segundo cuadro de audio posterior al primer cuadro de audio de la información de distorsión de tiempo; y donde el determinador del estado del contexto está configurado para computar una relación entre la segunda información de frecuencia promedio (frel, mean, k) a través del segundo cuadro de audio y la primera información de frecuencia promedio (frel, mean, k–1) a través del primer cuadro de audio a fin de determinar la información de estiramiento de la frecuencia (s; m_ ContextUpdateRatio) .

4. El decodificador de señales de audio de acuerdo con la reivindicación 2, donde el determinador del estado del contexto (170; 400) está configurado para determinar una primera información promedio de contorno con distorsión de tiempo (prel, mean, k–1) a través de un primer cuadro de audio de la información de distorsión de tiempo (tw_data, prel warp_contour[]) , y donde el determinador del estado del contexto está configurado para derivar una segunda información de contorno con distorsión de tiempo promedio (Prel, mean, k) correspondiente a un segundo cuadro de audio después del primer cuadro de audio de la información de distorsión de tiempo (252, tw data, prel, warp_contour[]) , y donde el determinador del estado del contexto está configurado para computar una relación entre la primera información de contorno con distorsión de tiempo promedio (prel, mean, k–1) a través del primer cuadro de audio y la segunda información de contorno con distorsión de tiempo promedio (prel, mean, k) a través del segundo cuadro de audio, a fin de determinar la información de estiramiento de la frecuencia (s, m_ContextUpdateRatio) .

5. El decodificador de señales de audio de acuerdo con la reivindicación 3 o la reivindicación 4, donde el determinador del estado del contexto (170, 400) está configurado para derivar la primera y segunda información de frecuencia media o la primera y segunda información de contorno con distorsión de tiempo promedio a partir de un contorno común de distorsión de tiempo (warp contour[]) que se extiende una pluralidad de cuadros de audio consecutivos.

6. El decodificador de señales de audio de acuerdo con la reivindicación 3, la reivindicación 4 o la reivindicación 5, donde el decodificador de señales de audio comprende una calculadora de distorsión de tiempo (250) configurada para calcular una información de contorno de distorsión de tiempo (prel[], warp_contour[], 258) que describe una evolución temporal de un tono relativo en toda una pluralidad de cuadros de audio consecutivos sobre la base de la información de distorsión de tiempo (tw_data, 252) , y donde el determinador del estado del contexto (170, 400) está configurado para usar la información de contorno de distorsión de tiempo para derivar la información de estiramiento de la frecuencia.

7. El decodificador de señales de audio de acuerdo con la reivindicación 6, donde el decodificador de señales de audio comprende una calculadora de posiciones de remuestreo (1801) , donde la calculadora de posiciones de remuestreo (1801) está configurado para calcular posiciones de remuestreo para usar por un remuestreador de distorsión de tiempo (180i) sobre la base de la información de contorno de distorsión de tiempo (prel[], warp_contour[], 258) , de tal manera que una variación temporal de las posiciones de remuestreo sea determinada por la información de contorno de distorsión de tiempo.

8. El decodificador de señales de audio de acuerdo con una de las reivindicaciones 1 a 7, donde el determinador del estado del contexto (170, 400) está configurado para derivar un valor numérico del contexto actual (164, c) , que describe el estado del contexto, dependiendo de una pluralidad de valores espectrales antes decodificados, y para seleccionar una regla de mapeo (cum_freq[]) que describe el mapeo de un valor código (acod m) sobre un código de símbolo (símbolo) que representa uno o más valores espectrales, o una porción (m) de una representación numérica de uno o más valores espectrales, dependiendo del valor numérico de contexto actual, donde el decodificador de valores espectrales basado en el contexto (160) está configurado para decodificador el valor código (acod m) que describe uno o más valores espectrales, o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales, usando la regla de mapeo (cum freq[]) seleccionada por el determinador del estado del contexto.

9. El decodificador de señales de audio de acuerdo con la reivindicación 8, donde el determinador del estado del contexto (170, 400) está configurado para configurar y actualizar una estructura de memoria contextual preliminar (432, m_gbuf) , de manera tal que las entradas de la estructura de memoria contextual preliminar describe uno o más valores espectrales (162, 297) de un primer cuadro de audio, donde los índices de entrada de las entradas de la estructura de memoria contextual preliminar son indicativos de una caja de frecuencia o una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) al cual están asociadas las respectivas entradas; donde el determinador del estado del contexto está configurado para obtener una estructura de memoria contextual con escalamiento de la frecuencia (440; m_ gbuf) para una decodificación de un segundo cuadro de audio posterior al primer cuadro de audio sobre la base de la estructura de memoria contextual preliminar, de manera tal que una entrada dada (450a, 450c, self–>base.m_gbuf[nWarpTupleldx]) o una subentrada (self– >base.m_qbuf[nWarpTupleldx].a) de la estructura de memoria contextual preliminar que tiene un primer índice de frecuencia (i1+1, i2+2, nWarpTupleldx) se mapea sobre una correspondiente entrada (452a, 452c, self–>base.m gbuf[nLinTupleldx]) o subentrada (self–>base.m gbuf[nLinTupleldx].a) de una estructura de memoria contextual con escalamiento de la frecuencia (440, m_qbuf, 452) que tiene un segundo índice de frecuencia (i1, i2–1, nLinTupleldx) , donde el segundo índice de frecuencia está asociado a una caja de frecuencia o a una serie de cajas de frecuencia adyacentes diferentes del primer índice de frecuencia del convertidor del dominio de la frecuencia al dominio del tiempo (180e) .

10. El decodificador de señales de audio de acuerdo con la reivindicación 9, donde el determinador del estado del contexto (170, 400) está configurado para derivar un valor de estado del contexto (164, 420) que describe el estado actual del contexto para la decodificación de una palabra en código (acod m) que describe uno o más valores espectrales del segundo cuadro de audio, o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales de un segundo cuadro de audio, que tiene asociado un tercer índice de frecuencia (il) usando valores de la estructura de memoria contextual con frecuencia escalada (440, m_gbuf, 452) , índices de frecuencia (i1–1, i1, i 1+1) de los cuales los valores de la estructura de memoria contextual con escalamiento de la frecuencia están en relación predeterminada con el tercer índice de frecuencia (i 1) , donde el tercer índice de frecuencia (i1) designa una caja de frecuencia o una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) a las cuales están asociados uno o más valores espectrales del segundo cuadro de audio a decodificar usando el estado actual del contexto.

11. El decodificador de señales de audio de acuerdo con la reivindicación 9 o la reivindicación 10, donde el determinador del estado del contexto (170;400) está configurado para establecer cada una de una pluralidad de entradas (452a, 452c, self–>base.m gbuf[nLinTupleldx]) de la estructura de memoria contextual con escalamiento de la frecuencia (440, 452, m_qbuf) que tiene un correspondiente índice de frecuencia objetivo (il, i2–1, nLinTupleldx) con un valor de una entrada correspondiente (450a, 450c, self–>base.m gbuf[nWarpTupleldx]) de la estructura de memoria contextual preliminar (432, 450, m_gbuf) que tiene un índice de frecuencia de origen correspondiente (i1+1, i2+2, nWarpTupleldx) , donde el determinador del estado del contexto está configurado para determinar los correspondientes índices de frecuencia (i1, i1 + 1; i2– 1, i2+2; nLinTupleldx, nWarpTupleldx) de una entrada de la estructura de memoria contextual con escalamiento de la frecuencia y de una correspondiente entrada de la estructura de memoria contextual preliminar por lo que una relación entre dichos índices de frecuencia correspondientes (nLinTupleldx, nWarpTupleldx) está determinada por el cambio de la frecuencia fundamental entre un cuadro de audio actual, al cual las entradas de la estructura de memoria contextual preliminar están asociadas, y un cuadro de audio subsiguiente, el contexto de decodificación del cual está determinado por las entradas de la estructura de memoria contextual con escalamiento de la frecuencia.

12. El decodificador de señales de audio de acuerdo con la reivindicación 9 o la reivindicación 10, donde el determinador del estado del contexto (170, 400) está configurado para establecer la estructura de memoria contextual preliminar (432, m_qbuf, 450) de tal manera que cada una de una pluralidad de entradas (450a, 450c, self >base_m_gbuf[nWarpTupleldx]) de la estructura de memoria contextual preliminar se basa en una pluralidad de valores espectrales (a, b, c, d) de un primer cuadro de audio, donde los índices de entrada (i1+1, i2+2, nWarpTupleldx) de las entradas de la estructura de memoria contextual preliminar (432, 450, m_gbuf) son indicativos de una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) al cual están asociadas las respectivas entradas; donde el determinador del estado del contexto está configurado para extraer valores preliminares individuales de contexto de las cajas de frecuencia (lineReorderBuf[ (curTuple–l) *4+0]., lineReorderBuf[ (curTuple–1) *4+3]) que tienen índices individuales asociados de cajas de frecuencia de las entradas (self–>base.m_gbuf[curTuple[][]) de la estructura de memoria contextual preliminar; donde el determinador del estado del contexto está configurado para obtener valores de contexto individuales de cajas de frecuencia con escalamiento de la frecuencia (lineTmpBuf[linLineldx]) que tienen índices de cajas de frecuencia individuales asociados (linLineldx) , por lo que se mapea un valor dado de contexto individual de caja de frecuencia preliminar (lineReorderBuf[warpLineldx]) que tiene un primer índice de caja de frecuencia (warpLineldx) sobre un correspondiente valor de contexto individual de caja de frecuencia con escalamiento de la frecuencia (lineTmpBuf[linLineldx]) que tiene un segundo índice de caja de frecuencia (linLineIdx) , de tal manera que se obtenga el mapeo individual de las cajas de frecuencia del valor de contexto individual preliminar de las cajas de frecuencia y donde el determinador de estado del contexto está configurado para combinar una pluralidad de valores de contexto individuales de las cajas de frecuencia con escalamiento de la frecuencia (lineTmpBuff (curTuple_1) *4+0, ..., lineTmpBuf