ES2376974T3 - Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático - Google Patents

Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático Download PDF

Info

Publication number
ES2376974T3
ES2376974T3 ES09776909T ES09776909T ES2376974T3 ES 2376974 T3 ES2376974 T3 ES 2376974T3 ES 09776909 T ES09776909 T ES 09776909T ES 09776909 T ES09776909 T ES 09776909T ES 2376974 T3 ES2376974 T3 ES 2376974T3
Authority
ES
Spain
Prior art keywords
time alignment
contour
alignment contour
time
scale
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
ES09776909T
Other languages
English (en)
Inventor
Stefan Bayer
Sascha Disch
Ralf Geiger
Guillaume Fuchs
Max Neuendorf
Gerald Schuller
Bernd Edler
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.)
Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41131685&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2376974(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Foerderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2376974T3 publication Critical patent/ES2376974T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech 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 using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stereophonic System (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Decodificador (200; 300) de señal de audio configurado para proporcionar una representación (232; 312) de señal de audio decodificada basándose en una representación (211, 212; 310) de señal de audio codificada que comprende una información (212; 316) de evolución de contorno de alineación de tiempo, comprendiendo el decodificador de señal de audio: un calculador (210, 219, 220; 320) de alineación de tiempo configurado para generar datos (last_warp_contour, cur_warp_contour, new_warp_contour, 716, 718, 722) de contorno de alineación de tiempo que se reinician de manera repetida desde un valor (1) de inicio de contorno de alineación de tiempo predeterminado basándose en la información (212; 316; tw_ratio[k]) de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo; un reajustador (330) a escala de contorno de alineación de tiempo configurado para reajustar a escala al menos una parte (past_warp_contour, 716, 718) de los datos de contorno de alineación de tiempo de manera que una discontinuidad en un reinicio se reduce o elimina en a una versión (332, 716', 718', 722) reajustada a escala del contorno de alineación de tiempo; y un decodificador (340) de alineación configurado para proporcionar la representación (232; 312) de señal de audio decodificada basándose en la representación (211, 212; 310) de señal de audio codificada y usando la versión (332, 716', 718', 722) reajustada a escala del contorno de alineación de tiempo.

Description

Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático.
Antecedentes de la invención
Realizaciones según la invención se refieren a un decodificador de señal de audio. Realizaciones adicionales según la invención se refieren a un proveedor de datos de contorno de alineación de tiempo. Realizaciones adicionales según la invención se refieren a un método para decodificar una señal de audio, a un método para proporcionar datos de contorno de alineación de tiempo y a un programa informático.
Algunas realizaciones según la invención se refieren a métodos para un codificador de transformada MDCT alineado en el tiempo.
A continuación, se proporcionará una breve introducción al campo de la codificación de audio alineada en el tiempo, cuyos conceptos pueden aplicarse junto 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 de manera eficaz esta representación en el dominio de la frecuencia, por ejemplo teniendo en cuenta umbrales de enmascaramiento perceptivos. Este concepto de codificación de señal de audio es particularmente eficaz si la longitud de bloques, para la que se transmite un conjunto de coeficientes espectrales codificados, es larga, y si sólo un número comparativamente pequeño de coeficientes espectrales están muy por encima del umbral de enmascaramiento global mientras que un gran número de coeficientes espectrales están cerca o debajo del umbral de enmascaramiento global y por tanto pueden ignorarse (o codificarse con una longitud de código mínima).
Por ejemplo, transformadas superpuestas moduladas a base de coseno o a base de seno se usan a menudo en aplicaciones para codificación fuente debido a sus propiedades de compactación de energía. Es decir, para tonos armónicos con frecuencias fundamentales constantes (altura tonal), concentran la energía de señal a un número pequeño de componentes espectrales (subbandas), lo que lleva a una representación de señal eficaz.
Generalmente, debe entenderse que la altura tonal (fundamental) de una señal es la frecuencia dominante inferior que puede distinguirse del espectro de la señal. En el modelo de habla común, la altura tonal es la frecuencia de la señal de excitación modulada por la garganta humana. Si sólo estuviera presenta una única frecuencia fundamental, el espectro sería extremadamente sencillo, comprendiendo sólo la frecuencia fundamental y los sobretonos. Tal espectro podría codificarse de manera altamente eficaz. Sin embargo, para señales con una altura tonal variable, la energía que corresponde con cada componente de armónico se expande sobre varios coeficientes de transformada, llevando así a una reducción de eficacia de codificación.
Con el fin de superar esta reducción de eficacia de codificación, la señal de audio que va a codificarse se remuestrea de manera eficaz en una rejilla temporal no uniforme. En el procesamiento posterior, se procesan las posiciones de muestra obtenidas por el remuestreo no uniforme como si representaran valores en una rejilla temporal uniforme. Esta operación se indica comúnmente por la frase “alineamiento de tiempo”. Los tiempos de muestra pueden escogerse de manera ventajosa dependiendo de la variación temporal de la altura tonal, de manera que una variación de altura tonal en la versión alineada en el tiempo de la señal de audio es menor que una variación de altura tonal en la versión original de la señal de audio (antes del alineamiento de tiempo). Después del alineamiento de tiempo de la señal de audio, la versión alineada en el tiempo de la señal de audio se convierte en el dominio de la frecuencia. El alineamiento de tiempo dependiente de la altura tonal tiene el efecto de que la representación en el dominio de la frecuencia de la señal de audio alineada en el tiempo normalmente muestra una compactación de energía en un número mucho menor de componentes espectrales que una representación en el dominio de la frecuencia de la señal de audio original (no alineada en el tiempo).
En el lado de decodificador, la representación en el dominio de la frecuencia de la señal de audio alineada en el tiempo se convierte de nuevo al dominio del tiempo, de manera que una representación en el dominio del tiempo de la señal de audio alineada en el tiempo está disponible en el lado de decodificador. Sin embargo, en la representación en el dominio del tiempo de la señal de audio alineada en el tiempo reconstruida de lado de decodificador, no se incluyen las variaciones de altura tonal originales de la señal de audio de entrada de lado de codificador. Por consiguiente, se aplica aún otro alineamiento de tiempo mediante remuestreo de la representación en el dominio del tiempo reconstruida de lado de decodificador de la señal de audio alineada en el tiempo. Con el fin de obtener una buena reconstrucción de la señal de audio de entrada de lado de codificador en el decodificador, puede desearse que el alineamiento de tiempo de lado de decodificador sea al menos aproximadamente la operación inversa con respecto al alineamiento de tiempo de lado de codificador. Con el fin de obtener un alineamiento de tiempo apropiado, puede ser deseable tener una información disponible en el decodificador que permite un ajuste del alineamiento de tiempo de lado de decodificador.
Tal como se requiere normalmente para transferir tal información desde el codificador de señal de audio hasta el decodificador de señal de audio, es deseable mantener una tasa de transmisión de bits requerida para esta pequeña transmisión mientras que aún se permite una reconstrucción fiable de la información de alineación de tiempo requerida en el lado de decodificador.
En vista de lo comentado anteriormente, se desea tener un diseño que permita una reconstrucción fiable de una información de alineación de tiempo basándose en una representación codificada de manera eficaz de la información de alineación de tiempo.
Sumario de la invención
Una realización según la invención crea un decodificador de señal de audio configurado para proporcionar una representación de señal de audio decodificada basándose en una representación de señal de audio codificada que comprende una información de evolución de contorno de alineación de tiempo. El decodificador de señal de audio comprende un calculador de contorno de alineación de tiempo configurado para generar datos de contorno de alineación de tiempo reiniciándose de manera repetida desde un valor de inicio de contorno de alineación de tiempo predeterminado basándose en la información de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo. El decodificador de señal de audio también comprende un reajustador a escala de contorno de alineación de tiempo configurado para reajustar a escala al menos una parte de los datos de contorno de alineación de tiempo de manera que una discontinuidad en un reinicio se reduce o se elimina en una versión reajustada a escala del contorno de alineación de tiempo. El decodificador de señal de audio también comprende un decodificador de alineación de tiempo configurado para proporcionar la representación de señal de audio decodificada basándose en la representación de señal de audio codificada y usando la versión reajustada a escala del contorno de alineación de tiempo.
La realización descrita anteriormente se basa en el descubrimiento de que el contorno de alineación de tiempo puede codificarse con alta eficacia usando una representación que describe la evolución temporal, o cambio relativo, del contorno de alineación de tiempo, porque la variación temporal del contorno de alineación de tiempo (también denominada “evolución”) es en realidad la cantidad característica del contorno de alineación de tiempo, mientras que el valor absoluto del mismo no es de importancia para una codificación/decodificación de señal de audio alineada en el tiempo. Sin embargo, se ha hallado que una reconstrucción de un contorno de alineación de tiempo basándose en una información de evolución de contorno de alineación de tiempo, que describe una variación del contorno de alineación de tiempo con el tiempo, provoca el problema de que puede superarse un intervalo admisible de valores en un decodificador, por ejemplo en la forma de un subdesbordamiento o desbordamiento numérico. Esto se debe al hecho de que los decodificadores normalmente comprenden una representación numérica que tiene una resolución limitada. Además, se ha hallado que el riesgo de un subdesbordamiento o desbordamiento en el decodificador puede eliminarse reiniciando de manera repetida la reconstrucción del contorno de alineación de tiempo desde un valor de inicio de contorno de alineación de tiempo predeterminado. No obstante, un simple reinicio de la reconstrucción del contorno de alineación de tiempo provoca el problema de que hay discontinuidades en el contorno de alineación de tiempo en los momentos de reinicio. Por tanto, se ha hallado que puede usarse un reajuste a escala para eliminar o al menos reducir esta discontinuidad en el reinicio, en el que la reconstrucción del contorno de tiempo se reinicia de manera repetida del valor de inicio de contorno de alineación de tiempo predeterminado.
En resumen de lo anterior, se ha hallado que puede reconstruirse un contorno de alineación de tiempo continuo por bloques sin correr el riesgo de un desbordamiento o subdesbordamiento numérico si la reconstrucción del contorno de alineación de tiempo se reinicia de manera repetida desde un valor de inicio de contorno de alineación de tiempo predeterminado, y si la discontinuidad que surge del reinicio se reduce o se elimina mediante un reajuste a escala de al menos una parte del contorno de alineación de tiempo. Por consiguiente, puede lograrse que el contorno de alineación de tiempo esté siempre dentro de un intervalo bien definido de valores que rodean el valor de inicio de contorno de alineación de tiempo dentro de un determinado entorno temporal del tiempo de reinicio. Esto es, en muchos casos, suficiente porque normalmente sólo se requiere una parte temporal del contorno de alineación de tiempo, definida en relación con un tiempo actual de reconstrucción de señal de audio, para una reconstrucción de señal de audio por bloques, mientras que las partes “más antiguas” del contorno de alineación de tiempo no se requieren para la presente reconstrucción de señal de audio.
En resumen de lo anterior, la realización descrita en este caso permite un uso eficaz de una información de contorno de alineación de tiempo relativa, que describe una evolución temporal del contorno de alineación de tiempo, en la que un desbordamiento o subdesbordamiento numérico en el decodificador puede evitarse mediante el reinicio repetido del contorno de alineación de tiempo, y en la que puede lograrse una continuidad del contorno de alineación de tiempo, que se requiere a menudo para la reconstrucción de señal de audio, incluso en el momento de reinicio mediante un reajuste a escala apropiado.
A continuación, se comentarán algunas realizaciones preferidas, que comprenden mejoras opcionales del concepto de la invención.
En una realización de la invención, el calculador de contorno de alineación de tiempo se configura para calcular, iniciando desde un valor de inicio predeterminado y usando una primera información de cambio relativo, una evolución temporal de una primera parte del contorno de alineación de tiempo, y para calcular, iniciando desde el valor de inicio predeterminado y usando una segunda información de cambio relativo, una evolución temporal de una segunda parte del contorno de alineación de tiempo, en el que la primera parte del contorno de alineación de tiempo y la segunda parte del contorno de alineación de tiempo son partes posteriores del contorno de alineación de tiempo. Preferiblemente, el reajustador a escala de contorno de alineación de tiempo se configura para reajustar a escala una de las partes del contorno de alineación de tiempo, para obtener una transición continua entre la primera parte del contorno de alineación de tiempo y la segunda parte del contorno de alineación de tiempo.
Mediante el uso de este concepto, tanto la primera parte de contorno de alineación de tiempo como la segunda parte de parte de contorno de alineación de tiempo pueden generarse iniciando desde un valor de inicio predeterminado bien definido, que puede ser idéntico para la reconstrucción de la primera parte de contorno de alineación de tiempo y la reconstrucción de la segunda parte de contorno de alineación de tiempo. Suponiendo que la información de cambio relativo describe cambios relativos del contorno de alineación de tiempo en un intervalo limitado, se garantiza que la primera parte del contorno de alineación de tiempo y la segunda parte del contorno de alineación de tiempo muestran un intervalo limitado de valores. Por consiguiente, puede evitarse un subdesbordamiento numérico o un desbordamiento numérico.
Además, mediante un reajuste a escala de una de las partes del contorno de alineación de tiempo, puede reducirse o incluso eliminarse una discontinuidad en la transición de la primera parte del contorno de alineación de tiempo a la segunda parte del contorno de alineación de tiempo (es decir en el reinicio).
En una realización preferida, el reajustador a escala de contorno de alineación de tiempo se configura para reajustar a escala la primera parte del contorno de alineación de tiempo de manera que un último valor de la versión ajustada a escala de la primera parte del contorno de alineación de tiempo toma el valor de inicio predeterminado, o se desvía del valor de inicio predeterminado en no más de un valor de tolerancia predeterminado.
De esta manera, puede lograrse que un valor del contorno de alineación de tiempo, que está en la transición de la primera parte a la segunda parte, tome un valor predeterminado. Por consiguiente, un intervalo de valores puede mantenerse particularmente pequeño, porque se fija un valor central (o se ajusta a escala a un valor predeterminado). Por ejemplo, si tanto la primera parte del contorno de alineación de tiempo como la segunda parte del contorno de alineación de tiempo están ascendiendo, un valor mínimo de la versión reajustada a escala de la primera parte permanece debajo del valor de inicio predeterminado, y un valor de fin de la segunda parte permanece por encima del valor de inicio predeterminado. Sin embargo, se determina una desviación máxima del valor de inicio predeterminado mediante un máximo del ascenso de la primera parte y el ascenso de la segunda parte. En cambio, si la primera parte y la segunda parte se ponen juntas de una manera continua, sin iniciar desde el valor de inicio y sin reajustar a escala, un extremo de la segunda parte se desviaría del valor de inicio mediante la suma del ascenso de la primera parte y la segunda parte.
Por tanto, puede observarse que un intervalo de valores (desviación máxima desde el valor de inicio) puede reducirse ajustando a escala un valor central, en la transición entre la primera parte y la segunda parte, para tomar el valor de inicio. Esta reducción del intervalo de valores es particularmente ventajosa, porque soporta el uso de un formato de datos de resolución comparativamente baja que tiene un intervalo numérico limitado, que a su vez permite el diseño de dispositivos de consumidor baratos y de eficiencia energética, lo que es un desafío continuo en el campo de la codificación de audio.
En una realización preferida, el reajustador a escala se configura para multiplicar valores de datos de contorno de alineación con un factor de normalización para ajustar a escala una parte del contorno de alineación de tiempo, o para dividir valores de datos de contorno de alineación entre un factor de normalización para ajustar a escala la parte del contorno de alineación de tiempo. Se ha hallado que un ajuste a escala lineal (en lugar de, por ejemplo, un desplazamiento aditivo del contorno de alineación de tiempo) es particularmente apropiado, porque un ajuste a escala de multiplicación o ajuste a escala de división mantiene variaciones relativas del contorno de alineación de tiempo, que son relevantes para el alineamiento de tiempo, distintos de los valores absolutos del contorno de alineación de tiempo, que no son de importancia.
En otra realización preferida, el calculador de contorno de alineación de tiempo se configura para obtener un valor de suma de contorno de alineación de una parte dada del contorno de alineación de tiempo, y para ajustar a escala la parte dada del contorno de alineación de tiempo y el valor de suma de contorno de alineación de la parte dada del contorno de alineación de tiempo usando un valor de ajuste a escala común.
Se ha hallado que en algunos casos, es deseable derivar un valor de suma de contorno de alineación desde el contorno de alineación, porque tal valor de suma de contorno de alineación puede usarse para una derivación de un contorno de tiempo desde el contorno de alineación de tiempo. Por tanto, es posible usar el contorno de alineación de tiempo dado y el valor de suma de contorno de alineación correspondiente para el cálculo de un primer contorno de tiempo. Además, se ha hallado que la versión ajustada a escala del contorno de alineación de tiempo y el valor de suma ajustado a escala correspondiente pueden requerirse para un cálculo posterior de otro contorno de tiempo. Por tanto, se ha hallado que no es necesario recalcular el valor de suma de contorno de alineación para la versión reajustada a escala del contorno de alineación de tiempo dado de nuevo, porque es posible derivar el valor de suma de contorno de alineación de la versión reajustada a escala de la parte dada del contorno de alineación reajustando a escala el valor de suma de contorno de alineación de la versión original de la parte dada del contorno de alineación.
En una realización preferida, el decodificador de señal de audio comprende un calculador de contorno de tiempo configurado para calcular un primer contorno de tiempo usando valores de datos de contorno de alineación de tiempo de una primera parte del contorno de alineación de tiempo, de una segunda parte del contorno de alineación de tiempo y de una tercera parte del contorno de alineación de tiempo, y para calcular un segundo contorno de tiempo usando valores de datos de contorno de alineación de tiempo de la segunda parte del contorno de alineación de tiempo, de la tercera parte del contorno de alineación de tiempo y de una cuarta parte del contorno de alineación de tiempo. En otras palabras, una primera pluralidad de partes del contorno de alineación de tiempo (que comprende tres partes) se usa para un cálculo del primer contorno de tiempo, y una segunda pluralidad de partes (que comprende tres partes) se usa para un cálculo del segundo contorno de tiempo, en las que la primera pluralidad de partes se solapa con la segunda pluralidad de partes. El calculador de contorno de alineación de tiempo se configura para generar datos de contorno de alineación de tiempo de la primera parte a partir de un valor de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal de la primera parte. Además, el calculador de contorno de alineación de tiempo se configura para reajustar a escala la primera parte del contorno de alineación de tiempo, de manera que un último valor de la primera parte del contorno de alineación de tiempo comprende el valor de inicio de contorno de alineación de tiempo predeterminado, para generar datos de contorno de alineación de tiempo de la segunda parte del contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal de la segunda parte, y para reajustar a escala conjuntamente la primera parte y la segunda parte usando un factor de ajuste a escala común, de manera que un último valor de la segunda parte comprende el valor de inicio de contorno de alineación de tiempo predeterminado, para obtener conjuntamente valores de datos de contorno de alineación de tiempo reajustados a escala. El calculador de contorno de alineación de tiempo también se configura para generar valores de datos de contorno de alineación de tiempo originales de la tercera parte del contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo de la tercera parte del contorno de alineación de tiempo.
Por consiguiente, la primera parte, la segunda parte y la tercera parte del contorno de alineación de tiempo se generan de manera que forman una sección continua del contorno de alineación de tiempo. Por consiguiente, el calculador de contorno de tiempo se configura para calcular el primer contorno de tiempo usando los valores de datos de contorno de alineación de tiempo reajustados a escala conjuntamente de las partes de contorno de alineación de tiempo primera y segunda y los valores de datos de contorno de alineación de tiempo de la tercera parte de contorno de alineación de tiempo.
Posteriormente, el calculador de contorno de alineación de tiempo se configurara para reajustar a escala conjuntamente la segunda parte reajustada a escala y la tercera parte original del contorno de alineación de tiempo usando otro factor de ajuste a escala común, de manera que un último valor de la tercera parte del contorno de alineación de tiempo comprende el valor de inicio de alineación de tiempo predeterminado, para obtener una versión reajustada a escala dos veces de la segunda parte y una versión reajustada a escala una vez de la tercera parte del contorno de alineación de tiempo. Además, el calculador de contorno de alineación de tiempo se configura para generar valores de datos de contorno de alineación de tiempo originales de la cuarta parte del contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo de la cuarta parte del contorno de alineación de tiempo. Además, el calculador de contorno de alineación de tiempo se configura para calcular el segundo contorno de tiempo usando la versión reajustada a escala dos veces de la segunda parte, la versión reajustada a escala una vez de la tercera parte y la versión original de la cuarta parte del contorno de alineación de tiempo. Por tanto, puede observarse que la segunda parte y la tercera parte del contorno de alineación de tiempo se usan tanto para el cálculo del primer contorno de tiempo como para el cálculo del segundo contorno de tiempo. No obstante, existe un reajuste a escala de la segunda parte y de la tercera parte entre el cálculo del primer contorno de tiempo y el cálculo del segundo contorno de tiempo, con el fin de mantener el intervalo usado de valores lo suficientemente pequeño mientras que se garantiza la continuidad de la sección de contorno de alineación de tiempo considerada para el cálculo de los contornos de tiempo respectivos.
En otra realización preferida, el decodificador de señal comprende un calculador de información de control de alineación de tiempo configurado para calcular una información de control de alineación de tiempo usando una pluralidad de partes del contorno de alineación de tiempo. El calculador de información de control de alineación de tiempo se configura para calcular una información de control de alineación de tiempo para la reconstrucción de una primera trama de la señal de audio basándose en datos de contorno de alineación de tiempo de una primera pluralidad de partes de contorno de alineación de tiempo, y para calcular una información de control de alineación de tiempo para la reconstrucción de una segunda trama de la señal de audio, que se solapa o no se solapa con la primera trama, basándose en unos datos de contorno de alineación de tiempo de una segunda pluralidad de partes de contorno de alineación de tiempo. La primera pluralidad de partes de contorno de alineación de tiempo está desplazada, con respecto al tiempo, en comparación con la segunda pluralidad de partes de contorno de alineación de tiempo. La primera pluralidad de partes de contorno de alineación de tiempo comprende al menos una parte de contorno de alineación de tiempo común con la segunda pluralidad de partes de contorno de alineación de tiempo. Se ha hallado que el enfoque de reajuste a escala de la invención conlleva ventajas particulares si se usan secciones de solapamiento del contorno de alineación de tiempo (primera pluralidad de partes de contorno de alineación de tiempo, y segunda pluralidad de partes de contorno de alineación de tiempo) para obtener una información de control de alineación de tiempo para la reconstrucción de diferentes tramas de audio (primera trama de audio y segunda trama de audio). La continuidad del contorno de alineación de tiempo, que se obtiene por el reajuste a escala, conlleva ventajas particulares si se usan secciones de solapamiento del contorno de alineación de tiempo para obtener la información de control de alineación de tiempo, porque el uso de secciones de solapamiento del contorno de alineación de tiempo podría dar como resultado resultados gravemente degradados, si hubo alguna discontinuidad del contorno de alineación de tiempo.
En otra realización preferida, el calculador de contorno de alineación de tiempo se configura para generar un nuevo contorno de alineación de tiempo de manera que el contorno de alineación de tiempo se reinicie desde el valor de inicio de contorno de alineación predeterminado a una posición dentro de la primera pluralidad de partes de contorno de alineación de tiempo, o dentro de la segunda pluralidad de partes de contorno de alineación de tiempo, de manera que hay una discontinuidad del contorno de alineación de tiempo en una ubicación del reinicio. Para compensarlo, el reajustador a escala de contorno de alineación de tiempo se configura para reajustar a escala el contorno de alineación de tiempo de manera que se reduce o se elimina la discontinuidad.
En otra realización preferida, el calculador de contorno de alineación de tiempo se configura para generar el contorno de alineación de tiempo de manera que hay un primer reinicio del contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado en una posición dentro de la primera pluralidad de partes de contorno de alineación de tiempo, de manera que hay una primera discontinuidad en la posición del primer reinicio. En este caso, el reajustador a escala de contorno de alineación de tiempo se configura para reajustar a escala el contorno de alineación de tiempo de manera que se reduce o se elimina la primera discontinuidad. El calculador de alineación de tiempo se configura además para generar también el contorno de alineación de tiempo de manera que hay un segundo reinicio del contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado, de manera que hay una segunda discontinuidad en la posición del segundo reinicio. El reajustador a escala también se configura para reajustar a escala el contorno de alineación de tiempo de manera que se reduce o se elimina la segunda discontinuidad.
En otras palabras, a veces se prefiere tener un mayor número de reinicios de contorno de alineación de tiempo, por ejemplo, un reinicio por trama de audio. De esta manera, el algoritmo de procesamiento puede realizarse para que sea muy regular. Asimismo, el intervalo de valores puede mantenerse muy pequeño.
En una realización preferida adicional, el calculador de alineación de tiempo se configura para reiniciar periódicamente el contorno de alineación de tiempo a partir del valor de inicio de contorno de alineación de tiempo predeterminado, de manera que hay una discontinuidad en el reinicio. El reajustador a escala está adaptado para reajustar a escala al menos una parte del contorno de alineación de tiempo para reducir o eliminar la discontinuidad del contorno de alineación de tiempo en el reinicio. El decodificador de señal de audio comprende un calculador de información de control de alineación de tiempo configurado para combinar datos de contorno de alineación de tiempo reajustados a escala de antes de un reinicio y datos de contorno de alineación de tiempo de después del reinicio, para obtener la información de control de alineación de tiempo.
En una realización preferida adicional, el calculador de contorno de alineación de tiempo se configura para recibir una información de proporción de alineación codificada para derivar una secuencia de valores de proporción de alineación a partir de la información de proporción de alineación codificada, y para obtener una pluralidad de valores de nodo de contorno de alineación, a partir del valor de inicio de contorno de alineación. Las proporciones entre el valor de inicio de contorno de alineación asociado con el nodo de inicio de contorno de alineación y los valores de nodo de contorno de alineación se determinan por los valores de proporción de alineación. Se ha mostrado que la reconstrucción de un contorno de alineación de tiempo basándose en una secuencia de valores de proporción de alineación conlleva muy buenos resultados porque los valores de proporción de alineación codifican, de una manera muy eficaz, la variación relativa del contorno de alineación de tiempo, que es la información clave para la aplicación de una alineación de tiempo. Por tanto, se halló que la información de proporción de alineación es una descripción muy eficaz de la evolución de contorno de alineación de tiempo.
En otra realización preferida, el calculador de contorno de alineación de tiempo se configura para calcular un valor de nodo de contorno de alineación de un nodo de contorno de alineación dado, que está separado del punto de inicio de contorno de alineación de tiempo mediante un nodo de contorno de alineación intermedio, basándose en una formación de producto que comprende una proporción entre el valor de inicio de contorno de alineación y el valor de nodo de contorno de alineación del nodo de contorno de alineación intermedio y una proporción entre el valor de nodo de contorno de alineación del nodo de contorno de alineación intermedio y el valor de contorno de alineación del nodo de contorno de alineación dado como factores. Se ha hallado que los valores de nodo de contorno de alineación pueden calcularse de una manera particularmente eficaz usando una multiplicación de una pluralidad de los valores de proporción de alineación. Además, el uso de tal multiplicación permite una reconstrucción de un contorno de alineación, que se adapta bien a las características ideales de un contorno de alineación.
Una realización adicional según la invención crea un proveedor de datos de contorno de alineación de tiempo para proporcionar datos de contorno de alineación de tiempo que representan una evolución temporal de una altura tonal relativa de una señal de audio basándose en una información de evolución de contorno de alineación de tiempo. El proveedor de datos de contorno de alineación de tiempo comprende un calculador de contorno de alineación de tiempo configurado para generar datos de contorno de alineación de tiempo basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo. El calculador de contorno de alineación de tiempo se configura para reiniciar de manera repetida o periódica en posiciones de reinicio, un cálculo de los datos de contorno de alineación de tiempo desde un valor de inicio de contorno de alineación de tiempo predeterminado, creando así discontinuidades del contorno de alineación de tiempo y reduciendo un intervalo de los valores de datos de contorno de alineación de tiempo. El proveedor de datos de contorno de alineación de tiempo comprende además un reajustador a escala de contorno de alineación de tiempo configurado para reajustar a escala de manera repetida partes del contorno de alineación de tiempo, para reducir o eliminar la discontinuidad en las posiciones de reinicio en secciones reajustadas a escala del contorno de alineación de tiempo. El proveedor de datos de contorno de alineación de tiempo se basa en la misma idea que el decodificador de señal de audio descrito anteriormente.
Una realización adicional según la invención crea un método para proporcionar una representación de señal de audio decodificada basándose en una representación de señal de audio codificada.
Aún otra realización de la invención crea un programa informático para proporcionar una señal de audio decodificada basándose en una representación de señal de audio codificada.
Breve descripción de las figuras.
Se describirán secuencialmente realizaciones según la invención haciendo referencia a las figuras adjuntas, en las que:
la figura 1 muestra un diagrama de bloques esquemático de un codificador de audio de alineación de tiempo;
la figura 2 muestra un diagrama de bloques esquemático de un decodificador de audio de alineación de tiempo;
la figura 3 muestra un diagrama de bloques esquemático de un decodificador de señal de audio, según una realización de la invención;
la figura 4 muestra un diagrama de flujo de un método para proporcionar una representación de señal de audio decodificada, según una realización de la invención;
la figura 5 muestra un extracto detallado de un diagrama de bloques esquemático de un decodificador de señal de audio según una realización de la invención;
la figura 6 muestra un extracto detallado de un diagrama de flujo de un método para proporcionar una representación de señal de audio decodificada según una realización de la invención;
las figuras 7a, 7b muestran una representación gráfica de una reconstrucción de un contorno de alineación de tiempo, según una realización de la invención;
la figura 8 muestra otra representación gráfica de una reconstrucción de un contorno de alineación de tiempo, según una realización de la invención;
las figuras 9a y 9b muestran algoritmos para el cálculo del contorno de alineación de tiempo;
la figura 9c muestra una tabla de un mapeo desde un índice de proporción de alineación de tiempo hasta un valor de proporción de alineación de tiempo;
las figuras 10a y 10b muestran representaciones de algoritmos para el cálculo de un contorno de tiempo, una posición de muestra, una longitud de transición, una “primera posición” y una “última posición”;
la figura 10c muestra una representación de algoritmos para un cálculo de forma de ventana;
las figuras 10d y 10e muestran una representación de algoritmos para una aplicación de una ventana;
la figura 10f muestra una representación de algoritmos para un remuestreo variable en el tiempo;
la figura 10g muestra una representación gráfica de algoritmos para un procesamiento de trama tras alineamiento de tiempo y para un solapamiento y adición;
las figuras 11a y 11b muestran una leyenda;
la figura 12 muestra una representación gráfica de un contorno de tiempo, que puede extraerse desde un contorno de alineación de tiempo;
la figura 13 muestra un diagrama de bloques esquemático detallado de un aparato para proporcionar un contorno de alineación, según una realización de la invención:
la figura 14 muestra un diagrama de bloques esquemático de un decodificador de señal de audio, según otra realización de la invención;
la figura 15 muestra un diagrama de bloques esquemático de otro calculador de contorno de alineación de tiempo según una realización de la invención;
las figuras 16a, 16b muestran una representación gráfica de un cálculo de valores de nodo de alineación de tiempo, según una realización de la invención;
la figura 17 muestra un diagrama de bloques esquemático de otro codificador de señal de audio, según una realización de la invención;
la figura 18 muestra un diagrama de bloques esquemático de otro decodificador de señal de audio, según una realización de la invención; y
las figuras 19a-19f muestran representaciones de elementos de sintaxis de un flujo de audio, según una realización de la invención.
Descripción detallada de las realizaciones
1. Codificador de audio de alineación de tiempo según la figura 1
Como la presente invención se refiere a la codificación de audio de alineación de tiempo y la decodificación de audio de alineación de tiempo, se proporcionará un breve resumen de un prototipo de codificador de audio de alineación de tiempo y un decodificador de audio de alineación de tiempo, en el que puede aplicarse la presente invención.
La figura 1 muestra un diagrama de bloques esquemático de un codificador de audio de alineación de tiempo, en el que pueden integrarse algunos aspectos y realizaciones de la invención. El codificador 100 de señal de audio de la figura 1 se configura para recibir una señal 110 de audio de entrada y para proporcionar una representación codificada de la señal 110 de audio de entrada en una secuencia de tramas. El codificador 100 de audio comprende un muestreador 104, que está adaptado para muestrear la señal 110 de audio (señal de entrada) para derivar bloques 105 de señal (representaciones muestreadas) usados como base para una transformada en el dominio de la frecuencia. El codificador 100 de audio comprende además un calculador 106 de ventana de transformada, adaptado para derivarventanas de ajuste a escala para las representaciones 105 muestreadas emitidas desde el muestreador 104. Éstas se introducen en un formador 108 de ventanas que está adaptado para aplicar las ventanas de ajuste a escala a las representaciones 105 muestreadas derivadas por el muestreador 104. En algunas realizaciones, el codificador 100 de audio puede comprender adicionalmente un transformador 108a en el dominio de la frecuencia, con el fin de derivar una representación en el dominio de la frecuencia (por ejemplo en forma de coeficientes de transformada) de las representaciones 105 muestreadas y ajustadas a escala. Las representaciones en el dominio de la frecuencia pueden procesarse o transmitirse adicionalmente como representación codificada de la señal 110 de audio.
El codificador 100 de audio además usa un contorno 112 de altura tonal de la señal 110 de audio, que puede proporcionarse al codificador 100 de audio o que puede derivarse por el codificador 100 de audio. Por tanto, el codificador 100 de audio puede comprender opcionalmente un estimador de altura tonal para derivar el contorno 112 de altura tonal. El muestreador 104 puede operar en una representación continua de la señal 110 de audio de entrada. Alternativamente, el muestreador 104 puede operar en una representación ya muestreada de la señal 110 de audio de entrada. En este último caso, el muestreador 104 puede remuestrear la señal 110 de audio. El muestreador 104 por ejemplo puede estar adaptado para bloques de audio de solapamiento vecinos de alineación de tiempo de manera que la parte de solapamiento tiene una altura tonal constante o variación de altura tonal reducida dentro de cada uno de los bloques de entrada después del muestreo.
El calculador 106 de ventana de transformada deriva las ventanas de ajuste a escala para los bloques de audio dependiendo del alineamiento de tiempo realizado por el muestreador 104. Con este fin, puede estar presente un bloque 114 de ajuste de tasa de muestreo opcional con el fin de definir una regla de alineamiento de tiempo usada por el muestreador, que entonces también se proporciona al calculador 106 de ventana de transformada.
En una realización alternativa el bloque 114 de ajuste de tasa de muestreo puede omitirse y el contorno 112 de altura tonal puede proporcionarse directamente al calculador 106 de ventana de transformada, que puede realizar por sí mismo los cálculos apropiados. Además, el muestreador 104 puede comunicar el muestreo aplicado al calculador 106 de ventana de transformada con el fin de permitir el cálculo de ventanas de ajuste a escala apropiadas.
El alineamiento de tiempo se realiza de manera que un contorno de altura tonal de bloques de audio muestreados alineados en el tiempo y muestreados por el muestreador 104 es más constante que el contorno de altura tonal de la señal 110 de audio original dentro del bloque de entrada.
2. Decodificador de audio de alineación de tiempo según la figura 2
La figura 2 muestra un diagrama de bloques esquemático de un decodificador 200 de audio de alineación de tiempo para procesar una primera representación alineada en el tiempo y muestreada, o simplemente alineada en el tiempo, de una primera y segunda trama de una señal de audio que tiene una secuencia de tramas en la que la segunda trama sigue a la primera trama y para un procesamiento adicional de una segunda representación alineada en el tiempo de la segunda trama y de una tercera trama que sigue a la segunda trama en la secuencia de tramas. El decodificador 200 de audio comprende un calculador 210 de ventana de transformada adaptado para derivar una primera ventana de ajuste a escala para la primera representación 211a alineada en el tiempo usando información sobre un contorno 212 de altura tonal de la primera y de la segunda trama y para derivar una segunda ventana de ajuste a escala para la segunda representación 211b alineada en el tiempo usando información sobre un contorno de altura tonal de la segunda y de la tercera trama, en los que las ventanas de ajuste a escala pueden tener números idénticos de muestras y en los que el primer número de muestras usadas para hacer desaparecer la primera ventana de ajuste a escala puede diferir de un segundo número de muestras usadas para hacer aparecer la segunda ventana de ajuste a escala. El decodificador 200 de audio comprende además un formador 216 de ventanas adaptado para aplicar la primera ventana de ajuste a escala a la primera representación alineada en el tiempo y para aplicar la segunda ventana de ajuste a escala a la segunda representación alineada en el tiempo. El decodificador 200 de audio comprende además un remuestreador 218 adaptado para alinear en el tiempo inversamente la primera representación alineada en el tiempo ajustada a escala para derivar una primera representación muestreada usando la información sobre el contorno de altura tonal de la primera y de la segunda trama y para alinear en el tiempo inversamente la segunda representación alineada en el tiempo ajustada a escala para derivar una segunda representación muestreada usando la información sobre el contorno de altura tonal de la segunda y de la tercera trama de manera que una parte de la primera representación muestreada correspondiente a la segunda trama comprende un contorno de altura tonal que es igual, dentro de un intervalo de tolerancia predeterminado, a un contorno de altura tonal de la parte de la segunda representación muestreada correspondiente a la segunda trama. Con el fin de derivar la ventana de ajuste a escala, el calculador 210 de ventana de transformada puede o bien recibir el contorno 212 de altura tonal directamente o bien recibir información sobre el alineamiento de tiempo desde un ajustador 220 de tasa de muestra opcional, que recibe el contorno 212 de altura tonal y que deriva una estrategia de alineamiento de tiempo inversa de tal manera que la altura tonal se vuelve la misma en las zonas de solapamiento, y opcionalmente las diferentes longitudes de atenuación de partes de ventana de solapamiento antes del alineamiento de tiempo inverso se vuelven la misma longitud después del alineamiento de tiempo inverso.
El decodificador 200 de audio comprende además un sumador 230 opcional, que está adaptado para añadir la parte de la primera representación muestreada correspondiente a la segunda trama y la parte de la segunda representación muestreada correspondiente a la segunda trama para derivar una representación reconstruida de la segunda trama de la señal de audio como una señal 242 de salida. La primera representación alineada en el tiempo y la segunda representación alineada en el tiempo pueden proporcionarse, en una realización, como una entrada al decodificador 200 de audio. En una realización adicional, el decodificador 200 de audio puede comprender, opcionalmente, un transformador 240 en el dominio de la frecuencia inverso, que puede derivar las representaciones alineadas en el tiempo primera y segunda a partir de representaciones en el dominio de la frecuencia de las representaciones alineadas en el tiempo primera y segunda previstas en la entrada del transformador 240 en el dominio de la frecuencia inverso.
3. Decodificador de señal de audio de alineación de tiempo según la figura 3
A continuación, se describirá un decodificador de señal de audio simplificado. La figura 3 muestra un diagrama de bloques esquemático de este decodificador 300 de señal de audio simplificado. El decodificador 300 de señal de audio se configura para recibir la representación 310 de señal de audio codificada, y para proporcionar, basándose en la misma, una representación 312 de señal de audio decodificada, en el que la representación 310 de señal de audio codificada comprende una información de evolución de contorno de alineación de tiempo. El decodificador 300 de señal de audio comprende un calculador 320 de contorno de alineación de tiempo configurado para generar datos 322 de contorno de alineación de tiempo basándose en la información 316 de evolución de contorno de alineación de tiempo, información de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo, e información de evolución de contorno de alineación de tiempo que comprende la representación 310 de señal de audio codificada. Cuando se derivan los datos 322 de contorno de alineación de tiempo de la información 316 de evolución de contorno de alineación de tiempo, el calculador 320 de contorno de alineación de tiempo reinicia de manera repetida desde un valor de inicio de contorno de alineación de tiempo predeterminado, tal como se describirá en detalle a continuación. El reinicio puede tener la consecuencia de que el contorno de alineación de tiempo comprende discontinuidades (cambios por etapas que son mayores que las etapas codificadas por la información 316 de evolución de contorno de alineación de tiempo). El decodificador 300 de señal de audio comprende además un reajustador 330 a escala de datos de contorno de alineación de tiempo que se configura para reajustar a escala al menos una parte de los datos 322 de contorno de alineación de tiempo, de manera que una discontinuidad al reinicio del cálculo de contorno de alineación de tiempo se reduce o se elimina en una versión 332 reajustada a escala del contorno de alineación de tiempo.
El decodificador 300 de señal de audio también comprende un decodificador 340 de alineación configurado para proporcionar una representación 312 de señal de audio decodificada basándose en la representación 310 de señal de audio codificada y usando la versión 332 reajustada a escala del contorno de alineación de tiempo.
Para poner el decodificador 300 de señal de audio en el contexto de decodificación de audio de alineación de tiempo, debe observarse que la representación 310 de señal de audio codificada puede comprender una representación codificada de los coeficientes 211 de transformada y también una representación codificada del contorno 212 de altura tonal (también denominado contorno de alineación de tiempo). El calculador 320 de contorno de alineación de tiempo y el reajustador 330 a escala de datos de contorno de alineación de tiempo pueden configurarse para proporcionar una representación reconstruida del contorno 212 de altura tonal en la forma de la versión 332 reajustada a escala del contorno de alineación de tiempo. El decodificador 340 de alineación puede, por ejemplo, asumir la funcionalidad de la formación 216 de ventana, el remuestreo 218, el ajuste 220 de tasa de muestra y el ajuste 210 de forma de ventana. Además, el decodificador 340 de alineación puede comprender, por ejemplo, opcionalmente, la funcionalidad de la transformada 240 inversa y del solapamiento/adición 230, de manera que la representación 312 de señal de audio decodificada puede ser equivalente a la señal 232 de audio de salida del decodificador 200 de audio de alineación de tiempo.
Aplicando el reajuste a escala a los datos 322 de contorno de alineación de tiempo, puede obtenerse una versión 332 reajustada a escala continua (o al menos aproximadamente continua) del contorno de alineación de tiempo, garantizando así que se evita un desbordamiento o subdesbordamiento numérico incluso cuando se usa una información de evolución de contorno de alineación de tiempo relativa eficaz para codificar.
4. Método para proporcionar una representación de señal de audio decodificada según la figura 4.
La figura 4 muestra un diagrama de flujo de un método para proporcionar una representación de señal de audio decodificada basándose en una representación de señal de audio codificada que comprende una información de evolución de contorno de alineación de tiempo, que puede realizarse por el aparato 300 según la figura 3. El método 400 comprende una primera etapa 410 de generación de los datos de contorno de alineación de tiempo, reiniciando de manera repetida desde un valor de inicio de contorno de alineación de tiempo predeterminado, basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo.
El método 400 comprende además una etapa 420 de reajuste a escala al menos una parte de los datos de control de alineación de tiempo, de manera que una discontinuidad en uno de los reinicios se reduce o se elimina en una versión reajustada a escala del contorno de alineación de tiempo.
El método 400 comprende además una etapa 430 de proporcionar una representación de señal de audio decodificada basándose en la representación de señal de audio codificada usando la versión reajustada a escala del contorno de alineación de tiempo.
5. Descripción detallada de una realización según la invención haciendo referencia a las figuras 5-9.
A continuación, se describirá en detalle una realización según la invención haciendo referencia a las figuras 5-9.
La figura 5 muestra un diagrama de bloques esquemático de un aparato 500 para proporcionar una información 512 de control de alineación de tiempo basándose en una información 510 de evolución de contorno de alineación de tiempo. El aparato 500 comprende unos medios 520 para proporcionar una información 522 de contorno de alineación de tiempo reconstruida basándose en la información 510 de evolución de contorno de alineación de tiempo, y un calculador 530 de información de control de alineación de tiempo para proporcionar la información 512 de control de alineación de tiempo basándose en la información 522 de contorno de alineación de tiempo reconstruida.
Medios 520 para proporcionar la información de contorno de alineación de tiempo reconstruida
A continuación, se describirá la estructura y la funcionalidad de los medios 520. Los medios 520 comprenden un calculador 540 de contorno de alineación de tiempo, que se configura para recibir la información 510 de evolución de contorno de alineación de tiempo y para proporcionar, basándose en la misma, una nueva información 542 de parte de contorno de alineación. Por ejemplo, un conjunto de información de evolución de contorno de alineación de tiempo puede transmitirse al aparato 500 para cada trama de la señal de audio que va a reconstruirse. No obstante, el conjunto de información 510 de evolución de contorno de alineación de tiempo asociada con una trama de la señal de audio que va a reconstruirse puede usarse para la reconstrucción de una pluralidad de tramas de la señal de audio. De manera similar, una pluralidad de conjuntos de información de evolución de contorno de alineación de tiempo pueden usarse para la reconstrucción del contenido de audio de una única trama de la señal de audio, tal como se comentará en detalle a continuación. Como conclusión, puede indicarse que en algunas realizaciones, la información 510 de evolución de contorno de alineación de tiempo puede actualizarse en la misma tasa que los conjuntos de coeficiente de dominio de transformada de la señal de audio que va a reconstruirse o actualizarse (una parte de contorno de alineación de tiempo por trama de la señal de audio).
El calculador 540 de contorno de alineación de tiempo comprende un calculador 544 de valor de nodo de alineación, que se configura para calcular una pluralidad (o secuencia temporal) de valores de nodo de contorno de alineación basándose en una pluralidad (o secuencia temporal) de valores de proporción de contorno de alineación de tiempo (o índices de proporción de alineación de tiempo), en el que los valores de proporción de alineación de tiempo (o índices) comprenden la información 510 de evolución de contorno de alineación de tiempo. Para este propósito, el calculador 544 de valor de nodo de alineación se configura para iniciar la provisión de los valores de nodo de contorno de alineación de tiempo en un valor de inicio predeterminado (por ejemplo 1) y para calcular valores de nodo de contorno de alineación de tiempo posteriores usando los valores de proporción de contorno de alineación de tiempo, tal como se comentará más adelante.
Además, el calculador 540 de contorno de alineación de tiempo opcionalmente comprende un interpolador 548 que se configura para interpolar entre valores de nodo de contorno de alineación de tiempo posteriores. Por consiguiente, se obtiene la descripción 542 de la nueva parte de contorno de alineación de tiempo, en la que la nueva parte de contorno de alineación de tiempo comienza normalmente desde el valor de inicio predeterminado usado por el calculador 524 de valor de nodo de alineación. Además, los medios 520 se configuran para considerar partes de contorno de alineación de tiempo adicionales, concretamente una denominada “última parte de contorno de alineación de tiempo” y una denominada “parte de contorno de alineación de tiempo actual” para la provisión de una sección de contorno de alineación de tiempo completa. Para este propósito, los medios 520 se configuran para almacenar la denominada “última parte de contorno de alineación de tiempo” y la denominada “parte de contorno de alineación de tiempo actual” en una memoria no mostrada en la figura 5.
Sin embargo, los medios 520 también comprenden un reajustador 550 a escala, que se configura para reajustar a escala la “última parte de contorno de alineación de tiempo” y la “parte de contorno de alineación de tiempo actual” para reducir o eliminar cualquier discontinuidad en la sección de contorno de alineación de tiempo completa, que se basa en la “última parte de contorno de alineación de tiempo”, la “parte de contorno de alineación de tiempo actual” y la “nueva parte de contorno de alineación de tiempo”. Para este propósito, el reajustador 550 a escala se configura para recibir la descripción almacenada de la “última parte de contorno de alineación de tiempo” y de la “parte de contorno de alineación de tiempo actual” y para reajustar a escala conjuntamente la “última parte de contorno de alineación de tiempo” y la “parte de contorno de alineación de tiempo actual”, para obtener versiones reajustadas a escala de la “última parte de contorno de alineación de tiempo” y la “parte de contorno de alineación de tiempo actual”. A continuación se comentarán detalles con respecto al reajuste a escala realizado por el reajustador 550 a escala, haciendo referencia a las figuras 7a, 7b y 8.
Además, el reajustador 550 a escala también puede configurarse para recibir, por ejemplo desde una memoria no mostrada en la figura 5, un valor de suma asociado con la “última parte de contorno de alineación de tiempo” y otro valor de suma asociado con la “parte de contorno de alineación de tiempo actual”. Estos valores de suma se designan algunas veces con “last_warp_sum” y “cur_warp_sum”, respectivamente. El reajustador 550 a escala se configura para reajustar a escala los valores de suma asociados con las partes de contorno de alineación de tiempo usando el mismo factor de reajuste a escala con el que se reajustan a escala las partes de contorno de alineación de tiempo correspondientes. Por consiguiente, se obtienen valores de suma reajustados a escala.
En algunos casos, los medios 520 pueden comprender un actualizador 560, que se configura para actualizar de manera repetida las partes de contorno de alineación de tiempo introducidas en el reajustador 550 a escala y también los valores de suma introducidos en el reajustador 550 a escala. Por ejemplo, el actualizador 560 puede configurarse para actualizar dicha información en la tasa de trama. Por ejemplo, la “nueva parte de contorno de alineación de tiempo” del ciclo de trama actual puede servir como la “parte de contorno de alineación de tiempo actual” en un próximo ciclo de trama. De manera similar, la “parte de contorno de alineación de tiempo actual” reajustada a escala del ciclo de trama actual puede servir como la “última parte de contorno de alineación de tiempo” en un próximo ciclo de trama. Por consiguiente, se crea una implementación eficaz de memoria, porque la “última parte de contorno de alineación de tiempo” del ciclo de trama actual puede descartarse con la finalización del ciclo de trama actual.
En resumen de lo anterior, los medios 520 se configuran para proporcionar, para cada ciclo de trama (con la excepción de algunos ciclos de trama especiales, por ejemplo al principio de una secuencia de trama, o al final de una secuencia de trama, o en una trama en la que el alineamiento de tiempo está inactivo) una descripción de una sección de contorno de alineación de tiempo que comprende una descripción de una “nueva parte de contorno de alineación de tiempo”, de una “parte de contorno de alineación de tiempo actual reajustada a escala” y de una “última parte de contorno de alineación de tiempo reajustada a escala”. Además, los medios 520 pueden proporcionar, para cada ciclo de trama (con la excepción del ciclo de trama especial mencionado anteriormente) una representación de valores de suma de contorno de alineación, por ejemplo, que comprende un “nuevo valor de suma de parte de contorno de alineación de tiempo”, un “valor de suma de contorno de alineación de tiempo actual reajustado a escala” y un “último valor de suma de contorno de alineación de tiempo reajustado a escala”.
El calculador 530 de información de control de alineación de tiempo se configura para calcular la información 512 de control de alineación de tiempo basándose en la información de contorno de alineación de tiempo reconstruida proporcionada por los medios 520. Por ejemplo, el calculador de información de control de alineación de tiempo comprende un calculador 570 de contorno de tiempo, que se configura para calcular un contorno 572 de tiempo basándose en la información de control de alineación de tiempo reconstruida. Además, el calculador 530 de información de contorno de alineación de tiempo comprende un calculador 574 de posición de muestra, que se configura para recibir el contorno 572 de tiempo y para proporcionar, basándose en el mismo, una información de posición de muestra, por ejemplo en forma de un vector 576 de posición de muestra. El vector 576 de posición de muestra describe el alineamiento de tiempo realizado, por ejemplo, mediante el remuestreador 218.
El calculador 530 de información de control de alineación de tiempo también comprende un calculador de longitud de transición, que se configura para derivar una información de longitud de transición a partir de la información de control de alineación de tiempo reconstruida. La información 582 de longitud de transición puede comprender, por ejemplo, una información que describe una longitud de transición izquierda y una información que describe una longitud de transición derecha. La longitud de transición puede depender, por ejemplo, de una longitud de segmentos de tiempo descrita por la “última parte de contorno de alineación de tiempo”, la “parte de contorno de alineación de tiempo actual” y la “nueva parte de contorno de alineación de tiempo”. Por ejemplo, la longitud de transición puede acortarse (en comparación con una longitud de transición por defecto) si la extensión temporal de un segmento de tiempo descrito por la “última parte de contorno de alineación de tiempo” es más corta que una extensión temporal del segmento de tiempo descrito por la “parte de contorno de alineación de tiempo actual”, o si la extensión temporal de un segmento de tiempo descrito por la “nueva parte de contorno de alineación de tiempo” es más corta que la extensión temporal del segmento de tiempo descrito por la “parte de contorno de alineación de tiempo actual”. Además, el calculador 530 de información de control de alineación de tiempo puede comprender además un calculador 584 de posición primera y última, que se configura para calcular una denominada “primera posición” y una denominada “última posición” basándose en la longitud de transición izquierda y derecha. La “primera posición” y la “última posición” aumentan la eficacia del remuestreador, mientras que las zonas fuera de estas posiciones son idénticas a cero después de la formación de ventana y por tanto no es necesario que se tomen en cuenta para el alineamiento de tiempo. Debe observarse en este caso que el vector 576 de posición de muestra comprende, por ejemplo, información requerida por el alineamiento de tiempo realizado por el remuestreador 280. Además, la longitud 582 de transición izquierda y derecha y la “primera posición” y la “última posición” 586 constituyen información, que se requiere, por ejemplo, por el formador 216 de ventanas.
Por consiguiente, puede decirse que los medios 520 y el calculador 530 de información de control de alineación de tiempo pueden asumir conjuntamente la funcionalidad del ajuste 220 de tasa de muestra, del ajuste 210 de forma de ventana y del cálculo 219 de posición de muestreo.
A continuación, se describirá la funcionalidad de un decodificador de audio comprende los medios 520 y el calculador 530 de información de control de alineación de tiempo con referencia a las figuras 6, 7a, 7b, 8, 9a-9c, 10a-10g, 11a, 11b y 12.
La figura 6 muestra un diagrama de flujo de un método para decodificar una representación codificada de una señal de audio, según una realización de la invención. El método 600 comprende proporcionar una información de contorno de alineación de tiempo reconstruida, en la que proporcionar la información de contorno de alineación de tiempo reconstruida comprende calcular 610 valores de nodo de alineación, interpolar 620 entre los valores de nodo de alineación y reajustar 630 a escala una o más partes de contorno de alineación calculadas previamente y uno o más valores de suma de contorno de alineación calculados previamente. El método 600 comprende además calcular 640 información de control de alineación de tiempo usando una “nueva parte de contorno de alineación de tiempo” obtenida en las etapas 610 y 620, las partes de contorno de alineación de tiempo calculadas previamente reajustadas a escala (“parte de contorno de alineación de tiempo actual” y “última parte de contorno de alineación de tiempo”) y también, opcionalmente, usar los valores de suma de contorno de alineación calculados previamente reajustados a escala. Como resultado, en la etapa 640 puede obtenerse una información de contorno de tiempo, y/o una información de posición de muestra, y/o una información de longitud de transición y/o una información de primera parte y última posición.
El método 600 comprende además realizar 650 una reconstrucción de señal alineada en el tiempo usando la información de control de alineación de tiempo obtenida en la etapa 640. Se describirán posteriormente detalles con respecto a la reconstrucción de señal de alineación de tiempo.
El método 600 también comprende una etapa 660 de actualizar una memoria, tal como se describirá más adelante.
Cálculo de las partes de contorno de alineación de tiempo
A continuación, se describirán detalles con respecto al cálculo de las partes de contorno de alineación de tiempo, haciendo referencia a las figuras 7a, 7b, 8, 9a, 9b, 9c.
Se supondrá que está presente un estado inicial, que se ilustra en una representación 710 gráfica de la figura 7a. Tal como puede observarse, están presentes una primera parte 716 de contorno de alineación (parte de contorno de alineación 1) y una segunda parte 718 de contorno de alineación (parte de contorno de alineación 2). Cada una de las partes de contorno de alineación comprende normalmente una pluralidad de valores de datos de contorno de alineación discretos, que están normalmente almacenados en una memoria. Los diferentes valores de datos de contorno de alineación están asociados con valores de tiempo, en los que se muestra un tiempo en una abscisa 712. Se muestra una magnitud de los valores de datos de contorno de alineación en una ordenada 714. Tal como puede observarse, la primera parte de contorno de alineación tiene un valor de fin de 1, y la segunda parte de contorno de alineación tiene un valor de inicio de 1, en la que el valor de 1 puede considerarse como un “valor predeterminado”. Debe observarse que la primera parte 716 de contorno de alineación puede considerarse como una “última parte de contorno de alineación de tiempo” (también denominada “last_warp_contour”), mientras que la segunda parte 718 de contorno de alineación puede considerarse como una “parte de contorno de alineación de tiempo actual” (también denominada “cur_warp_contour”).
Partiendo del estado inicial, se calcula una nueva parte de contorno de alineación, por ejemplo, en las etapas 610, 620 del método 600. Por consiguiente, se calculan valores de datos de contorno de alineación de la tercera parte de contorno de alineación (también denominada “parte de contorno de alineación 3” o “nueva parte de contorno de alineación de tiempo” o “new_warp_contour”). El cálculo puede separarse, por ejemplo, en un cálculo de valores de nodo de alineación, según un algoritmo 910 mostrado en la figura 9a, y una interpolación 620 entre los valores de nodo de alineación, según un algoritmo 920 mostrado en la figura 9a. Por consiguiente, se obtiene una nueva parte 722 de contorno de alineación, que se inicia desde el valor predeterminado (por ejemplo 1) y que se muestra en una representación 720 gráfica de la figura 7a. Tal como puede observarse, la primera parte 716 de contorno de alineación de tiempo, la segunda parte 718 de contorno de alineación de tiempo y la tercera nueva parte de contorno de alineación de tiempo están asociadas con intervalos de tiempo posteriores y contiguos. Además, puede observarse que existe una discontinuidad 724 entre un punto 718b de fin de la segunda parte 718 de contorno de alineación de tiempo y un punto 722a de inicio de la tercera parte de contorno de alineación de tiempo.
Debe observarse en este caso que la discontinuidad 724 normalmente comprende una magnitud que es mayor que una variación entre cualquier dos valores de datos de contorno de alineación adyacentes temporalmente del contorno de alineación de tiempo dentro de una parte de contorno de alineación de tiempo. Esto se debe al hecho de que el valor 722a de inicio de la tercera parte 722 de contorno de alineación de tiempo se fuerza al valor predeterminado (por ejemplo 1), independiente del valor 718b de fin de la segunda parte 718 de contorno de alineación de tiempo. Debe observarse que la discontinuidad 724 es por tanto mayor que la inevitable variación entre dos valores de datos de contorno de alineación discretos y adyacentes.
No obstante, esta discontinuidad entre la segunda parte 718 de contorno de alineación de tiempo y la tercera parte 722 de contorno de alineación de tiempo sería perjudicial para el uso adicional de los valores de datos de contorno de alineación de tiempo.
Por consiguiente, la primera parte de contorno de alineación de tiempo y la segunda parte de contorno de alineación de tiempo se reajustan a escala conjuntamente en la etapa 630 del método 600. Por ejemplo, los valores de datos de contorno de alineación de tiempo de la primera parte 716 de contorno de alineación de tiempo y los valores de datos de contorno de alineación de tiempo de la segunda parte 718 de contorno de alineación de tiempo se reajustan a escala mediante multiplicación con un factor de reajuste a escala (también denominado “norm_fac”). Por consiguiente, se obtiene una versión 716’ reajustada a escala de la primera parte 716 de contorno de alineación de tiempo, y también se obtiene una versión 718’ reajustada a escala de la segunda parte 718 de contorno de alineación de tiempo. En cambio, la tercera parte de contorno de alineación de tiempo se deja normalmente sin alterarse en esta etapa de reajuste a escala, tal como puede observarse en una representación 730 gráfica de la figura 7a. El reajuste a escala puede realizarse de manera que el punto 718b’ de fin reajustado a escala comprende, al menos aproximadamente, el mismo valor de datos que el punto 722a de inicio de la tercera parte 722 de contorno de alineación de tiempo. Por consiguiente, la versión 716’ reajustada a escala de la primera parte de contorno de alineación de tiempo, la versión 718’ reajustada a escala de la segunda parte de contorno de alineación de tiempo y la tercera parte 722 de contorno de alineación de tiempo conjuntamente forman una sección de contorno de alineación de tiempo (aproximadamente) continua. En particular, el ajuste a escala puede realizarse de manera que una diferencia entre el valor de datos del punto 718b’ de fin reajustado a escala y el punto 722a de inicio no es mayor que un máximo de la diferencia entre cualquier dos valores de datos adyacentes de las partes 716’, 718’, 722 de contorno de alineación de tiempo.
Por consiguiente, la sección de contorno de alineación de tiempo aproximadamente continua que comprende las partes 716’, 718’ de contorno de alineación de tiempo reajustadas a escala y la parte 722 de contorno de alineación de tiempo original se usa para el cálculo de la información de control de alineación de tiempo, que se realiza en la etapa 640. Por ejemplo, la información de control de alineación de tiempo puede calcularse para una trama de audio temporalmente asociada con la segunda parte 718 de contorno de alineación de tiempo.
Sin embargo, con el cálculo de la información de control de alineación de tiempo en la etapa 640, puede realizarse una reconstrucción de señal alineada en el tiempo en una etapa 650, que se explicará en más detalle más adelante.
Posteriormente, se requiere obtener información de control de alineación de tiempo para una próxima trama de audio. Para este propósito, la versión 716’ reajustada a escala de la primera parte de contorno de alineación de tiempo puede descartarse para ahorrar memoria, porque ya no es necesaria. Sin embargo, la versión 716’ reajustada a escala también puede naturalmente guardarse para cualquier propósito. Además, la versión 718’ reajustada a escala de la segunda parte de contorno de alineación de tiempo toma el lugar de la “última parte de contorno de alineación de tiempo” para el nuevo cálculo, tal como puede observarse en una representación 740 gráfica de la figura 7b. Además, la tercera parte 722 de contorno de alineación de tiempo, que tomó el lugar de la “nueva parte de contorno de alineación de tiempo” en el cálculo previo, desempeña el papel de la “parte de contorno de alineación de tiempo actual” para el próximo cálculo. La asociación se muestra en la representación 740 gráfica.
Posteriormente a esta actualización de la memoria (etapa 660 del método 600), se calcula una nueva parte 752 de contorno de alineación de tiempo, tal como puede observarse en la representación 750 gráfica. Para este propósito, las etapas 610 y 620 del método 600 puede ejecutarse de nuevo con nuevos datos de entrada. La cuarta parte 752 de contorno de alineación de tiempo asume el papel de la “nueva parte de contorno de alineación de tiempo” por ahora. Tal como puede observarse, normalmente existe una discontinuidad entre un punto 722b de fin de la tercera parte de contorno de alineación de tiempo y un punto 752a de inicio de la cuarta parte 752 de contorno de alineación de tiempo. Esta discontinuidad 754 se reduce o se elimina mediante un reajuste a escala posterior (etapa 630 del método 600) de la versión 718’ reajustada a escala de la segunda parte de contorno de alineación de tiempo y de la versión original de la tercera parte 722 de contorno de alineación de tiempo. Por consiguiente, se obtiene una versión 718” reajustada a escala dos veces de la segunda parte de contorno de alineación de tiempo y una versión 722’ reajustada a escala una vez de la tercera parte de contorno de alineación de tiempo, tal como puede observarse a partir de una representación 760 gráfica de la figura 7b. Tal como puede observarse, las partes 718”, 722’, 752 de contorno de alineación de tiempo forman una sección de contorno de alineación de tiempo al menos aproximadamente continua, que puede usarse para el cálculo de información de control de alineación de tiempo en una reejecución de la etapa 640. Por ejemplo, puede calcularse una información de control de alineación de tiempo basándose en las partes 718”, 722’, 752 de contorno de alineación de tiempo, información de control de alineación de tiempo que está asociada con una trama de tiempo de señal de audio centrada en la segunda parte de contorno de alineación de tiempo.
Debe observarse que en algunos casos puede desearse tener un valor de suma de contorno de alineación asociado para cada una de las partes de contorno de alineación de tiempo. Por ejemplo, un primer valor de suma de contorno de alineación puede asociarse con la primera parte de contorno de alineación de tiempo, un segundo valor de suma de contorno de alineación puede asociarse con la segunda parte de contorno de alineación de tiempo, etc. Los valores de suma de contorno de alineación pueden usarse, por ejemplo, para el cálculo de la información de control de alineación de tiempo en la etapa 640.
Por ejemplo, el valor de suma de contorno de alineación puede representar una suma de los valores de datos de contorno de alineación de una parte de contorno de alineación de tiempo respectiva. Sin embargo, dado que las partes de contorno de alineación de tiempo se ajustan a escala, a veces es deseable ajustar a escala también el valor de suma de contorno de alineación de tiempo, de manera que el valor de suma de contorno de alineación de tiempo siga la característica de su parte de contorno de alineación de tiempo asociada. Por consiguiente, un valor de suma de contorno de alineación asociado con la segunda parte 718 de contorno de alineación de tiempo puede ajustarse a escala (por ejemplo mediante el mismo factor de ajuste a escala) cuando la segunda parte 718 de contorno de alineación de tiempo se ajusta a escala para obtener la versión 718’ ajustada a escala de la misma. De manera similar, el valor de suma de contorno de alineación asociado con la primera parte 716 de contorno de alineación de tiempo puede ajustarse a escala (por ejemplo con el mismo factor de ajuste a escala) cuando la primera parte 716 de contorno de alineación de tiempo se ajusta a escala para obtener la versión 716’ ajustada a escala de la misma, si se desea.
Además, puede realizarse una reasociación (o reasignación de memoria) cuando se procede a la consideración de una nueva parte de contorno de alineación de tiempo. Por ejemplo, el valor de suma de contorno de alineación asociado con la versión 718’ ajustada a escala de la segunda parte de contorno de alineación de tiempo, que desempeña el papel de un “valor de suma de contorno de alineación de tiempo actual” para el cálculo de la información de control de alineación de tiempo asociada con las partes 716’, 718’, 722 de contorno de alineación de tiempo puede considerarse como un “último valor de suma de alineación de tiempo” para el cálculo de una información de control de alineación de tiempo asociada con las partes 718”, 722’, 752 de contorno de alineación de tiempo. De manera similar, el valor de suma de contorno de alineación asociado con la tercera parte 722 de contorno de alineación de tiempo puede considerarse como un “nuevo valor de suma de contorno de alineación” para el cálculo de la información de control de alineación de tiempo asociada con las partes 716’, 718’, 722 de contorno de alineación de tiempo y puede mapearse para actuar como un “valor de suma de contorno de alineación actual” para el cálculo de la información de control de alineación de tiempo asociada con las partes 718”, 722’, 752 de contorno de alineación de tiempo. Además, el valor de suma de contorno de alineación recientemente calculado de la cuarta parte 752 de contorno de alineación de tiempo puede desempeñar el papel del “nuevo valor de suma de contorno de alineación” para el cálculo de la información de control de alineación de tiempo asociada con las partes 718”, 722’, 752 de contorno de alineación de tiempo.
Ejemplo según la figura 8
La figura 8 muestra una representación gráfica que ilustra un problema que se resuelve por las realizaciones según la invención. Una primera representación 810 gráfica muestra una evolución temporal de una altura tonal relativa reconstruida con el tiempo, que se obtiene en algunas realizaciones convencionales. Una abscisa 812 describe el tiempo, una ordenada 814 describe la altura tonal relativa. Una curva 816 muestra la evolución temporal de la altura tonal relativa con el tiempo, que puede reconstruirse a partir de una información de altura tonal relativa. Con respecto a la reconstrucción del contorno de altura tonal relativa, debe observarse que para la aplicación de la transformada de coseno discreta modificada (MDCT) alineada en el tiempo sólo es necesario el conocimiento de la variación relativa de la altura tonal dentro de la trama real. Con el fin de entender esto, se hace referencia a las etapas de cálculo para obtener el contorno de tiempo a partir del contorno de altura tonal relativa, que llevan a un contorno de tiempo idéntico para versiones ajustadas a escala del mismo contorno de altura tonal relativa. Por tanto, es suficiente con codificar únicamente el valor de altura tonal relativa en lugar de uno absoluto, lo que aumenta la eficacia de codificación. Para aumentar adicionalmente la eficacia, el valor cuantificado real no es la altura tonal relativa sino el cambio relativo de altura tonal, es decir, la proporción de la altura tonal relativa actual con respecto a la altura tonal relativa previa (tal como se comentará en detalle a continuación). En algunas tramas, en las que, por ejemplo, la señal no muestra ninguna estructura armónica en absoluto, puede no desearse ningún alineamiento de tiempo. En tales casos, un indicador adicional puede indicar opcionalmente un contorno de altura tonal plano en lugar de codificar este contorno plano con el método mencionado anteriormente. Puesto que en señales del mundo real la cantidad de tales tramas es normalmente lo suficientemente alta, la compensación entre el bit adicional añadido en todos los casos y los bits ahorrados para tramas no alineadas está a favor del ahorro de bits.
El valor de inicio para el cálculo de la variación de altura tonal (contorno de altura tonal relativa, o contorno de alineación de tiempo) puede elegirse de manera arbitraria e incluso diferirse en el codificador y el decodificador. Debido a la naturaleza de la MDCT alineada en el tiempo (TW-MDCT) diferentes valores de inicio de la variación de altura tonal aún producen las mismas posiciones de muestra y formas de ventana adaptadas para realizar la TW-MDCT.
Por ejemplo, un codificador (de audio) consigue un contorno de altura tonal para cada nodo que se expresa como retraso de altura tonal real en muestras junto con una especificación con voz/sin voz opcional, que se obtuvo, por ejemplo, aplicando una estimación de altura tonal y una decisión con voz/sin voz conocida a partir de una codificación de habla. Si para el nodo actual se establece la clasificación a con voz, o no está disponible una decisión de con voz/sin voz, el codificador calcula la proporción entre el retraso de altura tonal real y lo cuantifica, o simplemente establece la proporción a 1 si es sin voz. Otro ejemplo puede ser que la variación altura tonal se estima directamente por un método apropiado (por ejemplo estimación de variación de señal).
En el decodificador, el valor de inicio para la primera altura tonal relativa en el inicio del audio codificado se establece a un valor arbitrario, por ejemplo a 1. Por tanto, el contorno de altura tonal relativa decodificada ya no está en el mismo intervalo absoluto del contorno de altura tonal de codificador, sino una versión ajustada a escala del mismo. Todavía, tal como se describió anteriormente, el algoritmo TW-MDCT lleva a las mismas posiciones de muestra y formas de ventana. Además, el codificador puede decidir, si las proporciones de altura tonal codificadas producirán un contorno de altura tonal plano, no enviar el contorno completamente codificado, sino establecer en cambio el indicador activePitchData a 0, ahorrando bits en esta trama (por ejemplo ahorrando bits de numPitchbits * numPitches en esta trama).
A continuación, se comentarán los problemas que se producen en ausencia de la renormalización de contorno de altura tonal de la invención. Tal como se mencionó anteriormente, para la TW-MDCT, sólo es necesario el cambio de altura tonal relativa dentro de determinado intervalo de tiempo limitado alrededor del bloque actual para el cálculo del alineamiento de tiempo y la adaptación de forma de ventana correcta (véanse las explicaciones anteriores). El alineamiento de tiempo sigue el contorno decodificado para segmentos en los que se ha detectado un cambio de altura tonal, y permanece constante en todos los demás casos (véase la representación 810 gráfica de la figura 8). Para el cálculo de las posiciones de ventana y muestreo de un bloque, se necesitan tres segmentos de contorno de altura tonal relativa consecutivos (por ejemplo tres partes de contorno de alineación de tiempo), en los que el tercero es el recientemente transmitido en la trama (denominado “nueva parte de contorno de alineación de tiempo”) y los otros dos se almacenan en memoria intermedia de un momento anterior (por ejemplo denominados “última parte de contorno de alineación de tiempo” y “parte de contorno de alineación de tiempo actual”).
Para tener un ejemplo, se hace referencia, por ejemplo, a las explicaciones que se realizaron con referencia a las figuras 7a y 7b, y también a las representaciones 810, 860 gráficas de la figura 8. Para calcular, por ejemplo, las posiciones de muestreo de la ventana para (o asociada con) la trama 1, que se extiende desde la trama 0 a la trama 2, se necesitan los contornos de altura tonal de (o asociados con) la trama 0, 1 y 2. En el flujo de bits, sólo se envía la información de altura tonal para la trama 2 en la trama actual, y las otras dos se toman de un momento anterior. Tal como se explica en el presente documento, el contorno de altura tonal puede continuarse aplicando la primera proporción de altura tonal relativa decodificada a la última altura tonal de la trama 1 para obtener la altura tonal en el primer nodo de la trama 2, y así sucesivamente. Ahora es posible, debido a la naturaleza de la señal, que si el contorno de altura tonal se continúa simplemente (es decir, si la parte recientemente transmitida del contorno se une a las dos partes existentes sin ninguna modificación), se produzca un desbordamiento de intervalo en el formato de número interno del codificador tras un determinado tiempo. Por ejemplo, una señal puede iniciarse con un segmento de características de armónico fuertes y un valor de altura tonal elevado al comienzo que disminuye a lo largo del segmento, llevando una altura tonal relativa decreciente. Entonces, puede seguir un segmento sin información de altura tonal, de modo que la altura tonal relativa se mantiene constante. Entonces de nuevo, una sección de armónico puede iniciarse con una altura tonal absoluta que es superior a la última altura tonal absoluta del segmento previo, y de nuevo dirigirse hacia abajo. Sin embargo, si simplemente se continúa la altura tonal relativa, es la misma que al final del último segmento de armónico y se dirigirá hacia abajo adicionalmente, y así sucesivamente. Si la señal es lo suficiente intensa y tiene en sus segmentos de armónico una tendencia global para ir o bien hacia arriba o bien hacia abajo (como se muestra en la representación 810 gráfica de la figura 8), tarde o temprano la altura tonal relativa alcanza el borde de un intervalo del formato de número interno. Se conoce ampliamente a partir de la codificación de habla que las señales de habla muestran realmente una característica de este tipo. Por tanto, no es sorprendente que la codificación de un conjunto concatenado de señales del mundo real que incluyen habla superan en realidad el intervalo de los valores flotantes usados para la altura tonal relativa después de una cantidad relativamente corta de tiempo cuando se usa el método convencional descrito anteriormente.
En resumen, para un segmento de señal de audio (o trama) para el que puede determinarse una altura tonal, puede determinarse una evolución apropiada del contorno de altura tonal relativa (o contorno de alineación de tiempo). Para segmentos de señal de audio (o tramas de señal de audio) para los que no puede determinarse una altura tonal (por ejemplo, porque los segmentos de señal de audio son de tipo ruido) el contorno de altura tonal relativa (o contorno de alineación de tiempo) puede mantenerse constante. Por consiguiente, si hubo un desequilibrio entre segmentos de audio con altura tonal creciente y altura tonal decreciente, el contorno de altura tonal relativa (o contorno de alineación de tiempo) entrará o bien en un subdesbordamiento numérico o bien en un desbordamiento numérico.
Por ejemplo, en la representación 810 gráfica se muestra un contorno de altura tonal relativa para el caso en el que existe una pluralidad de partes 820a, 820a, 820c, 820d de contorno de altura tonal relativa con altura tonal decreciente y algunos segmentos 822a, 822b de audio sin altura tonal, pero sin segmentos de audio con altura tonal creciente. Por consiguiente, puede observarse que el contorno 816 de altura tonal relativa entra en un subdesbordamiento numérico (al menos en circunstancias muy adversas).
A continuación, se describirá una solución para este problema. Para evitar los problemas mencionados anteriormente, en particular el desbordamiento o subdesbordamiento numérico, se ha introducido una renormalización de contorno de altura tonal relativa periódica según un aspecto de la invención. Puesto que el cálculo del contorno de tiempo alineado y las formas de ventana sólo se basan en el cambio relativo a lo largo de los tres segmentos de contorno de altura tonal relativa mencionados anteriormente (también denominados “partes contorno de alineación de tiempo”), como se explica en el presente documento, es posible normalizar este contorno (por ejemplo, el contorno de alineación de tiempo, que puede estar compuesto por tres piezas de “partes contorno de alineación de tiempo”) para cada trama (por ejemplo, de la señal de audio) otra vez con el mismo resultado.
Para ello, se eligió que la referencia fuera, por ejemplo, la última muestra del segundo segmento de contorno (también denominada “parte de contorno de alineación de tiempo”), y el contorno se normaliza ahora (por ejemplo, de manera multiplicativa en el domino lineal) de modo que esta muestra tiene un valor de un 1,0 (véase la representación 860 gráfica de la figura 8).
La representación 860 gráfica de la figura 8 representa la normalización de contorno de altura tonal relativa. Una abscisa 862 muestra el tiempo, subdividido en tramas (tramas 0, 1, 2). Una ordenada 864 describe el valor del contorno de altura tonal relativa. Un contorno de altura tonal relativa antes de la normalización se designa con 870 y cubre dos tramas (por ejemplo, trama número 0 y trama número 1). Un nuevo segmento de contorno de altura tonal relativa (también denominado “parte de contorno de alineación de tiempo”) partiendo del valor de inicio de contorno de altura tonal relativa predeterminado (o valor de inicio de contorno de alineación de tiempo) se designa con 874. Como puede observarse, el reinicio del nuevo segmento 874 de contorno de altura tonal relativa a partir del valor de inicio de contorno de altura tonal relativa predeterminado (por ejemplo 1) provoca una discontinuidad entre el segmento 870 de contorno de altura tonal relativa que precede al punto en el tiempo de reinicio y el nuevo segmento 874 de contorno de altura tonal relativa, que se designa con 878. Esta discontinuidad provocará un problema grave para la derivación de cualquier información de control de alineación de tiempo desde el contorno y posiblemente dará como resultado distorsiones de audio. Por tanto, se reajusta a escala (o normaliza) un segmento 870 de contorno de altura tonal relativa previamente obtenido que precede al reinicio del punto en el tiempo de reinicio, para obtener un segmento 870’ de contorno de altura tonal relativa reajustado a escala. La normalización se realiza de manera que la última muestra del segmento 870 de contorno de altura tonal relativa se ajusta a escala al valor de inicio de contorno de altura tonal relativa predeterminado (por ejemplo de 1,0).
Descripción detallada del algoritmo
A continuación, se describirán en detalle algunos de los algoritmos realizados por un decodificador de audio según una realización de la invención. Con este fin, se hará referencia a las figuras 5, 6, 9a, 9b, 9c y 10a-10g. Además, se hace referencia a la leyenda de elementos de datos, elementos de ayuda y constantes de las figuras 11a y 11b.
De manera general, puede decirse que el método descrito en este caso puede usarse para decodificar un flujo de audio que se codifica según una transformada de coseno discreta modificada alineada en el tiempo. Por tanto, cuando la TW_MDCT se habilita para el flujo de audio (lo que puede indicarse mediante un indicador, por ejemplo denominado indicador “twMdct”, que puede comprenderse en una información de configuración específica), un banco de filtros alineados en el tiempo y conmutación de bloques puede reemplazar a un banco de filtros convencionales y conmutación de bloques. Además de la transformada de coseno discreta modificada inversa (IMDCT) el banco de filtros alineados en el tiempo y conmutación de bloques contiene un mapeo de dominio del tiempo a dominio del tiempo desde una rejilla temporal arbitrariamente separada hacia la rejilla temporal regularmente separada normal y una correspondiente adaptación de formas de ventana.
A continuación, se describirá el procedimiento de decodificación. En una primera etapa, se decodifica el contorno de alineación. El contorno de alineación puede codificarse, por ejemplo, usando índices de libro de códigos de nodos de contorno de alineación. Los índices de libro de códigos de los nodos de contorno de alineación se decodifican, por ejemplo, usando el algoritmo mostrado en una representación 910 gráfica de la figura 9a. Según dicho algoritmo, se derivan valores de proporción de alineación (warp_value_tb1) de índices de libro de códigos de proporción de alineación (tw_ratio), por ejemplo usando un mapeo definido por una tabla 990 de mapeo de la figura 9c. Tal como puede observarse a partir del algoritmo mostrado con el número de referencia 910, los valores de nodo de alineación pueden establecerse a un valor predeterminado constante, si un indicador (tw_data_present) indica que los datos de alineación de tiempo no están presentes. En cambio, si el indicador indica que los datos de alineación de tiempo están presentes, puede establecerse un primer valor de nodo de alineación al valor de inicio de contorno de alineación de tiempo predeterminado (por ejemplo 1). Los valores de nodo de alineación posteriores (de una parte de contorno de alineación de tiempo) pueden determinarse basándose en una formación de un producto de múltiples valores de proporción de alineación de tiempo. Por ejemplo, un valor de nodo de alineación de un nodo inmediatamente siguiente al primer nodo de alineación (i=0) puede ser igual a un primer valor de proporción de alineación (si el valor de inicio es 1) o igual a un producto del primer valor de proporción de alineación y el valor de inicio. Los valores de nodo de alineación de tiempo posteriores (i=2, 3,..., num_tw_nodes) se calculan formando un producto de múltiples valores de proporción de alineación de tiempo (opcionalmente teniendo en consideración el valor de inicio, si el valor de inicio es diferente de 1). Naturalmente, el orden de la formación de producto es arbitrario. Sin embargo, es ventajoso derivar un (i+1)-ésimo valor de modo de alineación de un i-ésimo valor de nodo de alineación multiplicando el i-ésimo valor de nodo de alineación con un único valor de proporción de alineación que describe una proporción entre dos valores de nodo posteriores del contorno de alineación de tiempo.
Tal como puede observarse a partir del algoritmo mostrado en el número de referencia 910, puede haber múltiples índices de libro de códigos de proporción de alineación para una única parte de contorno de alineación de tiempo a lo largo de una única trama de audio (en los que puede haber una correspondencia de 1 a 1 entre partes de contorno de alineación de tiempo y tramas de audio).
En resumen, puede obtenerse una pluralidad de valores de nodo de alineación de tiempo para una parte de contorno de alineación de tiempo dada (o una trama de audio dada) en la etapa 610, por ejemplo usando el calculador 544 de valor de nodo de alineación. Posteriormente, puede realizarse una interpolación lineal entre los valores de nodo de alineación de tiempo (warp_node_values[i]). Por ejemplo, para obtener los valores de datos de contorno de alineación de tiempo de la “nueva parte de contorno de alineación de tiempo” (new_warp_contour) puede usarse el algoritmo mostrado en el número de referencia 920 en la figura 9a. Por ejemplo, el número de muestras de la nueva parte de contorno de alineación de tiempo es igual a la mitad del número de las muestras en el dominio del tiempo de una transformada de coseno discreta modificada inversa. Con respecto a este asunto, debe observarse que las tramas de señal de audio adyacentes están normalmente desplazadas (al menos aproximadamente) por la mitad del número de las muestras en el dominio del tiempo de la MDCT o IMDCT. En otras palabras, para obtener el new_warp_contour[] por muestras (muestras N_long), los warp_node_values[] se interpolan linealmente entre los nodos igualmente separados (interp_dist apart) usando el algoritmo mostrado en el número de referencia 920.
La interpolación puede realizarse, por ejemplo, por el interpolador 548 del aparato de la figura 5, o en la etapa 620 del algoritmo 600.
Antes de la obtención del contorno de alineación completo para esta trama (es decir, para la trama actualmente en consideración) los valores almacenados en memoria intermedia de un momento anterior se reajustan a escala de modo que el último valor de alineación del past_warp_contour[] es igual a 1 (o cualquier otro valor predeterminado, que es preferiblemente igual al valor de inicio de la nueva parte de contorno de alineación de tiempo).
Debe observarse en este caso que la expresión “contorno de alineación de momento anterior” comprende preferiblemente la “última parte de contorno de alineación de tiempo” descrita anteriormente y la “parte de contorno de alineación de tiempo actual” descrita anteriormente. También debe observarse que el “contorno de alineación de momento anterior” comprende normalmente una longitud que es igual a varias muestras en el dominio del tiempo de la IMDCT, de manera que los valores del “contorno de alineación de momento anterior” se designan con índices entre 0 y 2*n_long-1. Por tanto, “past_warp_contour[2*_long-1]” designa un último valor de alineación del “contorno de alineación de momento anterior”. Por consiguiente, puede calcularse un factor de normalización “norm_fac” según una ecuación mostrada en el número de referencia 930 en la figura 9a. Por tanto, el contorno de alineación de momento anterior (que comprende la “última parte de contorno de alineación de tiempo” y la “parte de contorno de alineación de tiempo actual”) puede reajustarse a escala de manera multiplicativa según la ecuación mostrada en el número de referencia 932 en la figura 9a. Además, el “último valor de suma de contorno de alineación” (last_warp_sum) y el “valor de suma de contorno de alineación actual” (cur_warp_sum) pueden reajustarse a escala de manera multiplicativa, tal como se muestra con los números de referencia 934 y 936 en la figura 9a. El reajuste a escala puede realizarse mediante el reajustador 550 a escala de la figura 5, o en la etapa 630 del método 600 de la figura 6.
Debe observarse que la normalización descrita en este caso, por ejemplo en el número de referencia 930, puede modificarse entonces, por ejemplo, reemplazando el valor de inicio de “1” por cualquier otro valor predeterminado deseado.
Aplicando la normalización, un “warp_contour[] completo” también denominado “sección de contorno de alineación de tiempo” se obtiene concatenando el “past_warp_contour” y el “new_warp_contour”. Por tanto, tres partes de contorno de alineación de tiempo (“última parte de contorno de alineación de tiempo”, “parte de contorno de alineación de tiempo actual” y “nueva parte de contorno de alineación de tiempo”) forman el “contorno de alineación completo”, que puede aplicarse en etapas adicionales del cálculo.
Además, se calcula un valor de suma de contorno de alineación (new_warp_sum), por ejemplo, como una suma con todos los valores de “new_warp_contour[]”. Por ejemplo, puede calcularse un nuevo valor de suma de contorno de alineación según los algoritmos mostrados en el número de referencia 940 en la figura 9a.
Tras los cálculos descritos anteriormente, la información de entrada requerida por el calculador 330 de información de control de alineación de tiempo o por la etapa 640 del método 600 está disponible. Por consiguiente, el cálculo 640 de la información de control de alineación de tiempo puede realizarse, por ejemplo por el calculador 530 de información de control de alineación de tiempo. Además, la reconstrucción 650 de señal alineada en el tiempo puede realizarse por el decodificador de audio. Tanto el cálculo 640 como la reconstrucción 650 de señal alineada en el tiempo se explicarán en más detalle a continuación.
Sin embargo, es importante observar que el presente algoritmo avanza de manera iterativa. Por tanto, es eficaz computacionalmente actualizar una memoria. Por ejemplo, es posible descartar información sobre la última parte de contorno de alineación de tiempo. Además, es recomendable usar la presente “parte de contorno de alineación de tiempo actual” como una “última parte de contorno de alineación de tiempo” en un siguiente ciclo de cálculo. Además, es recomendable usar la presente “nueva parte de contorno de alineación de tiempo” como una “parte de contorno de alineación de tiempo actual” en un siguiente ciclo de cálculo. Esta asignación puede realizarse usando la ecuación mostrada en el número de referencia 950 en la figura 9b, (en la que warp_contour[n] describe la presente “nueva parte de contorno de alineación de tiempo” para 2*n_long:n<3• n_long).
Las asignaciones apropiadas pueden observarse con los números de referencia 952 y 954 en la figura 9b.
En otras palabras, las memorias intermedias usadas para decodificar la siguiente trama pueden actualizarse según las ecuaciones mostradas con los números de referencia 950, 952 y 954.
Debe observarse que la actualización según las ecuaciones 950, 952 y 954 no proporciona un resultado razonable, si la información apropiada no se genera para una trama previa. Por consiguiente, antes de decodificar la primera trama o si la última trama se codificó con un tipo diferente de codificador (por ejemplo, un codificador de dominio de LPC) en el contexto de un codificador conmutado, los estados de memoria pueden establecerse según las ecuaciones mostradas con los números de referencia 960, 962 y 964 de la figura 9b.
Cálculo de información de control de alineación de tiempo
A continuación, se describirá brevemente cómo puede calcularse la información de control de alineación de tiempo basándose en el contorno de alineación de tiempo (que comprende, por ejemplo, tres partes de contorno de alineación de tiempo) y basándose en los valores de suma de contorno de alineación.
Por ejemplo, se desea reconstruir un contorno de tiempo usando el contorno de alineación de tiempo. Para este propósito, puede usarse un algoritmo que se muestra con los números de referencia 1010, 1012 en la figura 10a. Tal como puede observarse, el contorno de tiempo mapea un índice i (0:i:3on_long) sobre un correspondiente valor de contorno de tiempo. Un ejemplo de un mapeo de este tipo se muestra en la figura 12.
Basándose en el cálculo del contorno de tiempo, se requiere normalmente calcular una posición de muestra (sample_pos[]), que describe posiciones de muestras alineadas en el tiempo sobre una escala de tiempo lineal. Un cálculo de este tipo puede realizarse usando un algoritmo, que se muestra en el número de referencia 1030 en la figura 10b. En el algoritmo 1030, pueden usarse funciones de ayuda, que se muestran con los números de referencia 1020 y 1022 en la figura 10a. Por consiguiente, puede obtenerse una información sobre el tiempo de muestra.
Además, se calculan algunas longitudes de transiciones alineadas en el tiempo (warped_trans_len_left; warped_trans_len_right), por ejemplo usando un algoritmo 1032 mostrado en la figura 10b. Opcionalmente, las longitudes de transición de alineación de tiempo pueden adaptarse dependiendo de un tipo de ventana o una longitud de transformada, por ejemplo usando un algoritmo mostrado en el número de referencia 1034 en la figura 10b. Además, una denominada “primera posición” y una denominada “última posición” pueden calcularse basándose en las informaciones de longitudes de transición, por ejemplo usando un algoritmo mostrado en el número de referencia 1036 en la figura 10b. En resumen, se realizará un ajuste de longitudes de ventana y posiciones de muestra, que puede realizarse por el aparato 530 o en la etapa 640 del método 600. A partir del “warp_contour[]” puede calcularse un vector de las posiciones de muestra (“sample_pos[]”) de las muestras alineadas en el tiempo en una escala de tiempo lineal. Para esto, en primer lugar puede generarse el contorno de tiempo usando el algoritmo mostrado con los números de referencia 1010, 1012. Con las funciones de ayuda “warp_in_vec()” y “warp_time_inv()”, que se muestran con los números de referencia 1020 y 1022, se calculan el vector de posición de muestra (“sample_pos[]”) y las longitudes de transición (“warped_trans_len_left” y “warped_trans_len_right”), por ejemplo usando los algoritmos mostrados con los números de referencia 1030, 1032, 1034 y 1036. Por consiguiente, se obtiene la información 512 de control de alineación de tiempo.
Reconstrucción de señal alineada en el tiempo
A continuación, se comentará brevemente la reconstrucción de señal alineada en el tiempo, que puede realizarse basándose en la información de control de alineación de tiempo, para poner el cálculo del contorno de alineación de tiempo en el contexto apropiado.
La reconstrucción de una señal de audio comprende la ejecución de una transformada de coseno discreta modificada inversa, que no se describe en detalle en este caso, porque cualquier experto en la técnica la conoce ampliamente. La ejecución de la transformada de coseno discreta modificada inversa permite reconstruir muestras en el dominio del tiempo alineadas basándose en un conjunto de coeficientes en el dominio de la frecuencia. La ejecución de la IMDCT puede realizarse, por ejemplo, por tramas, lo que significa, por ejemplo, que se reconstruye una trama de 2048 muestras en el dominio del tiempo alineadas basándose en un conjunto de 1024 coeficientes en el dominio de la frecuencia. Para la reconstrucción correcta es necesario que no más de dos ventanas posteriores se solapen. Debido a la naturaleza de la TW_MDCT puede suceder que una parte alineada en el tiempo inversamente de una trama se extiende a una trama no vecina, violando así el prerrequisito indicado anteriormente. Por tanto, se necesita acortar la longitud de atenuación de la forma de ventana calculando los valores de warped_trans_len_left y warped_trans_len_right apropiados anteriormente mencionados.
Entonces se aplica una formación de ventana y conmutación 650b de bloques a las muestras en el dominio del tiempo obtenidas de la IMDCT. La formación de ventana y conmutación de bloques puede aplicarse a las muestras en el dominio del tiempo alineadas proporcionadas por el IMDCT 650a dependiendo de la información de control de alineación de tiempo, para obtener muestras en el dominio del tiempo alineadas a las que se ha aplicado una función ventana. Por ejemplo, dependiendo de una información de “window_shape”, o elemento, pueden usarse diferentes prototipos de ventana de transformada sobremuestreada, en los que la longitud de las ventanas sobremuestradas puede venir dada por la ecuación mostrada en el número de referencia 1040 en la figura 10c. Por ejemplo, para un primer tipo de forma de ventana (por ejemplo, window_shape==1), los coeficientes de ventana vienen dados por una ventana derivada de “Kaiser-Bessel” (KBD) según la definición mostrada en el número de referencia 1042 en la figura 10c, en el que W’, la “función de ventana de núcleo Kaiser-Bessel”, se define tal como se muestra en el número de referencia 1044 en la figura 10c.
Por el contrario, cuando se usa una forma de ventana diferente (por ejemplo, si window_shape==0), puede emplearse una ventana de seno según la definición de un número de referencia 1046. Para todos los tipos de secuencias de ventana (“window_sequences”), el prototipo usado para la parte de ventana izquierda se determina por la forma de ventana del bloque previo. La fórmula mostrada en el número de referencia 1048 en la figura 10c expresa este hecho. Del mismo modo, el prototipo para la forma de ventana derecha se determina por la fórmula mostrada en el número de referencia 1050 en la figura 10c.
A continuación, se describirá la aplicación de las ventanas descritas anteriormente a las muestras en el dominio del tiempo alineadas proporcionadas por la IMDCT. En algunas realizaciones, la información para una trama puede proporcionarse por una pluralidad de secuencias cortas (por ejemplo, ocho secuencias cortas). En otras realizaciones, la información para una trama puede proporcionarse usando bloques de diferentes longitudes, en los que puede requerirse un tratamiento especial para secuencias de inicio, secuencias de parada y/o secuencias de longitudes no convencionales. Sin embargo, puesto que la longitud de transición puede determinarse tal como se describió anteriormente, puede ser suficiente diferenciar entre tramas codificadas usando ocho secuencias cortas (indicadas por una información de tipo de trama apropiada “eight_short_sequence”) y todas las demás tramas.
Por ejemplo, en una trama descrita por ocho secuencias cortas, puede aplicarse un algoritmo mostrado en el número de referencia 1060 en la figura 10d para la formación de ventana. En cambio, para tramas codificadas usando otra información, puede aplicarse un algoritmo mostrado en el número de referencia 1064 en la figura 10e. En otras palabras, la parte similar al código C mostrada en el número de referencia 1060 en la figura 10d describe la formación de ventana y solapamiento-adición interna de los denominado “ocho secuencias cortas”. En cambio, la parte similar al código C mostrada en el número de referencia 1064 en la figura 10d describe la formación de ventana en otros casos.
Remuestreo
A continuación, se describirá el alineamiento 650c de tiempo inverso de las muestras en el dominio del tiempo alineadas a las que se ha aplicado una función ventana dependiendo de la información de control de alineación de tiempo, mediante lo cual se obtienen muestras en el dominio del tiempo regularmente muestreadas, o simplemente muestras en el dominio del tiempo, mediante remuestreo variable en el tiempo. En el remuestreo variable en el tiempo, el bloque z[] al que se ha aplicado una función ventana se remuestrea según las posiciones muestreadas, por ejemplo, usando una respuesta de impulso mostrada en el número de referencia 1070 en la figura 10f. Antes del muestreo, el bloque al que se ha aplicado una función ventana puede rellenarse con ceros en ambos extremos, tal como se muestra en el número de referencia 1072 en la figura 10f. El propio remuestreo se describe mediante la sección de pseudocódigo mostrada en el número de referencia 1074 en la figura 10f.
Procesamiento de trama tras el remuestreador
A continuación, se describirá un post-procesamiento 650d opcional de las muestras en el dominio del tiempo. En algunas realizaciones, puede realizarse el procesamiento de trama tras el remuestreo dependiendo de un tipo de la secuencia de ventana. Dependiendo del parámetro “window_sequence”, pueden aplicarse determinadas etapas de procesamiento adicionales.
Por ejemplo, si la secuencia de ventana es una denominada “EIGHT_SHORT_SEQUENCE”, una denominada “LONG_START_SEQUENCE”, una denominada “STOP_START_SEQUENCE”, una denominada “STOP_START_1152_SEQUENCE” seguida por una denominada LPD_SEQUENCE, puede realizarse un postprocesamiento tal como se muestra en los números de referencia 1080a, 1080b, 1082.
Por ejemplo, si la siguiente secuencia de ventana es una denominada “LPD_SEQUENCE”, puede calcularse una ventana de corrección Wcorr(n) tal como se muestra en el número de referencia 1080a, teniendo en cuenta las definiciones mostradas en el número de referencia 1080b. Además, la ventana de corrección Wcorr(n) puede aplicarse tal como se muestra en el número de referencia 1082 en la figura 10g.
Para todos los demás casos, no puede realizarse nada, tal como puede observarse en el número de referencia 1084 en la figura 10g.
Solapamiento y la adición con secuencias de ventana previas
Además, puede realizarse un solapamiento y adición 650e de las muestras en el dominio del tiempo actuales con una o más muestras en el dominio del tiempo previas. El solapamiento y adición puede ser el mismo para todas las secuencias y puede describirse matemáticamente tal como se muestra en el número de referencia 1086 en la figura 10g.
Leyenda
Con respecto a las explicaciones dadas, también se hace referencia a la leyenda, que se muestra en las figuras 11a y 11d. En particular, la longitud de ventana de síntesis N para la transformada inversa es normalmente una función del elemento de sintaxis “window_sequence” y el contexto algorítmico. Por ejemplo, puede definirse tal como se muestra en el número de referencia 1190 de la figura 11b.
Realización según la figura 13
La figura 13 muestra un diagrama de bloques esquemático de unos medios 1300 para proporcionar una información de contorno de alineación de tiempo reconstruida que asume la funcionalidad de los medios 520 descritos con referencia a la figura 5. Sin embargo, la trayectoria de los datos y las memorias intermedias se muestran en más detalle. Los medios 1300 comprenden un calculador 1344 de valor de nodo de alineación, que toma la función del calculador 544 de valor de nodo alineado. El calculador 1344 de valor de nodo de alineación recibe un índice de libro de códigos “tw_ratio[]” de la proporción de alineación como una información de proporción de alineación codificada. El calculador de valor de nodo de alineación comprende una tabla de valor de alineación que representa, por ejemplo, el mapeo de un índice de proporción de alineación de tiempo sobre un valor de proporción de alineación de tiempo representado en la figura 9c. El calculador 1344 de valor de nodo de alineación puede comprender además un multiplicador para realizar el algoritmo representado en el número de referencia 910 de la figura 9a. Por consiguiente, el calculador de valor de nodo de alineación proporciona valores de nodo de alineación “warp_node_values[i]”. Además, los medios 1300 comprenden un interpolador 1348 de contorno de alineación, que asume la función del interpolador 540a, y que puede configurarse para realizar el algoritmo mostrado en el número de referencia 920 en la figura 9a, obteniendo así valores del nuevo contorno de alineación (“new_warp_contour”). Los medios 1300 comprenden además una nueva memoria 1350 intermedia de contorno de alineación, que almacena los valores del nuevo contorno de alineación (es decir, warp_contour [i], con 2•n_long:i<3onJ ong). Los medios 1300 comprenden además una memoria intermedia/actualizador 1360 de contorno de alineación de momento anterior, que almacena la “última parte de contorno de alineación de tiempo” y la “parte de contorno de alineación de tiempo actual” y actualiza los contenidos de memoria en respuesta a un reajuste a escala y en respuesta a una finalización del procesamiento de la trama actual. Por tanto, la memoria intermedia/actualizador 1360 de contorno de alineación de momento anterior pueden actuar conjuntamente con el reajustador 1370 a escala de contorno de alineación de momento anterior, de manera que la memoria intermedia/actualizador de contorno de alineación de momento anterior y el reajustador a escala de contorno de alineación de momento anterior juntos cumplen la funcionalidad de los algoritmos 930, 932, 934, 936, 950, 960. Opcionalmente, la memoria intermedia/actualizador 1360 de contorno de alineación de momento anterior también puede asumir la funcionalidad de los algoritmos 932, 936, 952, 954, 962, 964.
Por tanto, los medios 1300 proporcionan el contorno de alineación (“warp_contour”) y también proporcionan de manera óptima los valores de suma de contorno de alineación.
Codificador de señal de audio según la figura 14
A continuación, se describirá un codificador de señal de audio según un aspecto de la invención. El codificador de señal de audio de la figura 14 se designa en su totalidad con 1400. El codificador 1400 de señal de audio está configurado para recibir una señal 1410 de audio y, opcionalmente, una información 1412 de contorno de alineación externamente prevista asociada con la señal 1410 de audio. Además, el codificador 1400 de señal de audio está configurado para proporcionar una representación 1440 codificada de la señal 1410 de audio.
El codificador 1400 de señal de audio comprende un codificador 1420 de contorno de alineación de tiempo, configurado para recibir una información 1422 de contorno de alineación de tiempo asociada con la señal 1410 de audio y proporcionar una información 1424 de contorno de alineación de tiempo codificada basándose en la misma.
El codificador 1400 de señal de audio comprende además un procesador 1430 de señal de alineamiento de tiempo (o codificador de señal de alineamiento de tiempo) que está configurado para recibir la señal 1410 de audio y proporcionar, basándose en la misma, una representación 1432 codificada de alineación de tiempo de la señal 1410 de audio, teniendo en cuenta una alineación de tiempo descrita por la información 1422 de alineación de tiempo. La representación 1414 codificada de la señal 1410 de audio comprende la información 1424 de contorno de alineación de tiempo codificada y la representación 1432 codificada del espectro de la señal 1410 de audio.
Opcionalmente, el codificador 1400 de señal de audio comprende un calculador 1440 de información de contorno de alineación, que está configurado para proporcionar la información 1422 de contorno de alineación de tiempo basándose en la señal 1410 de audio. Alternativamente, sin embargo, la información 1422 de contorno de alineación de tiempo puede proporcionarse basándose en la información 1412 de contorno de alineación externamente prevista.
El codificador 1420 de contorno de alineación de tiempo puede configurarse para calcular una proporción entre valores de nodo posteriores del contorno de alineación de tiempo descrito por la información 1422 de contorno de alineación de tiempo. Por ejemplo, los valores de nodo pueden ser valores de muestra del contorno de alineación de tiempo representado por la información de contorno de alineación de tiempo. Por ejemplo, si la información de contorno de alineación de tiempo comprende una pluralidad de valores para cada trama de la señal 1410 de audio, los valores de nodo de alineación de tiempo pueden ser un subconjunto verdadero de esta información de contorno de alineación de tiempo. Por ejemplo, los valores de nodo de alineación de tiempo pueden ser un subconjunto verdadero periódico de los valores de contorno de alineación de tiempo. Un valor de nodo de contorno de alineación de tiempo puede presentarse por N de las muestras de audio, en las que N puede ser mayor que o igual a 2.
El calculador de proporción de valor de nodo de contorno de tiempo puede configurarse para calcular una proporción entre valores de nodo de alineación de tiempo posteriores del contorno de alineación de tiempo, proporcionando así una información que describe una proporción entre valores de nodo posteriores del contorno de alineación de tiempo. Un codificador de proporción del codificador de contorno de alineación de tiempo puede configurarse para codificar la proporción entre valores de nodo posteriores del contorno de alineación de tiempo. Por ejemplo, el codificador de proporción puede mapear diferentes proporciones a diferentes índices de libro de códigos. Por ejemplo, puede elegirse un mapeo de manera que las proporciones proporcionadas por el calculador de proporción de valor de alineación de contorno de tiempo están dentro de un intervalo entre 0,9 y 1,1, o incluso entre 0,95 y 1,05. Por consiguiente, el codificador de proporción puede configurarse para mapear este intervalo a diferentes índices de libro de códigos. Por ejemplo, las correspondencias mostradas en la tabla de la figura 9c pueden actuar como puntos de soporte en este mapeo, de manera que, por ejemplo, una proporción de 1 se mapea sobre un índice de libro de códigos de 3, mientras que una proporción de 1,0057 se mapea a un índice de libro de códigos de 4, y así sucesivamente (compárese la figura 9c). Los valores de proporción entre aquellos mostrados en la tabla de la figura 9c pueden mapearse a índices de libro de códigos apropiados, por ejemplo, al índice de libro de códigos del valor de proporción más cercano para el que viene dado el índice de libro de códigos en la tabla de la figura 9c.
Naturalmente, pueden usarse diferentes codificaciones de manera que, por ejemplo, varios índices de libro de códigos disponibles pueden elegirse más grandes o más pequeños que los mostrados en este caso. Además, la asociación entre valores de nodo de contorno de alineación e índices de valores de libro de códigos puede elegirse apropiadamente. Además, los índices de libro de códigos pueden codificarse, por ejemplo, usando una codificación binaria, usando opcionalmente una codificación de entropía.
Por consiguiente, se obtienen las proporciones 1424 codificadas.
El procesador 1430 de señal de alineamiento de tiempo comprende un convertidor 1434 de alineamiento de tiempo del dominio del tiempo al dominio de la frecuencia, que está configurado para recibir la señal 1410 de audio y una información 1422a de contorno de alineación de tiempo asociada con la señal de audio (o una versión codificada de la misma), y para proporcionar, basándose en la misma, una representación 1436 de dominio espectral (dominio de la frecuencia).
La información 1422a de contorno de alineación de tiempo puede derivarse preferiblemente de la información 1424 codificada proporcionada por el codificador 1420 de contorno de alineación de tiempo usando un decodificador 1425 de alineación. De esta manera, puede lograrse que el codificador (en particular el procesador 1430 de señal de alineamiento de tiempo del mismo) y el decodificador (que recibe la representación 1414 codificada de la señal de audio) funcionen en los mismos contornos de alineación, concretamente el contorno de alineación (de tiempo) decodificado. Sin embargo, en una realización simplificada, la información 1422a de contorno de alineación de tiempo usada por el procesador 1430 de señal de alineamiento de tiempo puede ser idéntica a la información 1422 de contorno de alineación de tiempo que se introduce en el codificador 1420 de contorno de alineación de tiempo.
El convertidor 1434 de alineamiento de tiempo del dominio del tiempo al dominio de la frecuencia puede, por ejemplo, considerar una alineación de tiempo cuando se forma la representación 1436 de dominio espectral, por ejemplo, usando una operación de remuestreo variable en el tiempo de la señal 1410 de audio. Alternativamente, sin embargo, el remuestreo variable en el tiempo y la conversión del dominio del tiempo al dominio de la frecuencia pueden integrarse en una única etapa de procesamiento. El procesador de señal de alineamiento de tiempo también comprende un codificador 1438 de valor espectral, que está configurado para codificar la representación 1346 de dominio espectral. El codificador 1438 de valor espectral puede, por ejemplo, configurarse para tener en consideración un enmascaramiento perceptivo. Además, el codificador 1438 de valor espectral puede configurarse para adaptar la precisión de codificación a la relevancia perceptiva de las bandas de frecuencia y aplicar una codificación de entropía. Por consiguiente, se obtiene la representación 1432 codificada de la señal 1410 de audio.
Calculador de contorno de alineación de tiempo según la figura 15
La figura 15 muestra el diagrama de bloques esquemático de un calculador de contorno de alineación de tiempo, según otra realización de la invención. El calculador 1500 de contorno de alineación de tiempo está configurado para recibir una información 1510 de proporción de alineación codificada para proporcionar, basándose en la misma, una pluralidad de valores 1512 de nodo de alineación. El calculador 1500 de contorno de alineación de tiempo comprende, por ejemplo, un decodificador 1520 de proporción de alineación, que está configurado para derivar una secuencia de valores 1522 de proporción de alineación a partir de la información 1510 de proporción de alineación codificada. El calculador 1500 de contorno de alineación de tiempo también comprende un calculador 1530 de contorno de alineación, que está configurado para derivar la secuencia de valores 1512 de nodo de alineación a partir de la secuencia de valores 1522 de proporción de alineación. Por ejemplo, el calculador de contorno de alineación puede configurarse para obtener los valores de nodo de contorno de alineación partiendo de un valor de inicio de contorno de alineación, en el que las proporciones entre el valor de inicio de contorno de alineación, asociado con un nodo de inicio de contorno de alineación, y los valores de nodo de contorno de alineación se determinan por los valores 1522 de proporción de alineación. El calculador de valor de nodo de alineación también está configurado para calcular un valor 1512 de nodo de contorno de alineación de un nodo de contorno de alineación dado que está separado del nodo de inicio de contorno de alineación por un nodo de contorno de alineación intermedio, basándose en una formación de producto que comprende una proporción entre el valor de inicio de contorno de alineación (por ejemplo 1) y el valor de nodo de contorno de alineación del nodo de contorno de alineación intermedio y una proporción entre el valor de nodo de contorno de alineación del nodo de contorno de alineación intermedio y el valor de nodo de contorno de alineación del nodo de contorno de alineación dado como factores.
A continuación, se comentará brevemente el funcionamiento del calculador 1500 de contorno de alineación de tiempo haciendo referencia a las figuras 16a y 16b.
La figura 16a muestra una representación gráfica de un cálculo sucesivo de un contorno de alineación de tiempo. Una primera representación 1610 gráfica muestra una secuencia de índices 1510 de libro de códigos de proporción de alineación de tiempo (índice=0, índice=1, índice=2, índice=3, índice=7). Además, la representación 1610 gráfica muestra una secuencia de valores de proporción de alineación (0,983, 0,988, 0,994, 1,000, 1,023) asociados con los índices de libro de códigos. Además, puede observarse que se elije que un primer valor 1621 de nodo alineado (i=0) sea 1 (en el que 1 es un valor de inicio). Tal como puede observarse, se obtiene un segundo valor 1622 de nodo de alineación (i=1) multiplicando el valor de inicio de 1 con el primer valor de proporción de 0,983 (asociado con el primer índice 0). Puede observarse adicionalmente que el tercer valor 1623 de nodo de alineación se obtiene multiplicando el segundo valor 1622 de nodo de alineación de 0,983 con el segundo valor de proporción de alineación de 0,988 (asociado con el segundo índice de 1). De la misma manera, el cuarto valor 1624 de nodo de alineación se obtiene multiplicando el tercer valor 1623 de nodo de alineación con el tercer valor de proporción de alineación de 0,994 (asociado con un tercer índice de 2).
Por consiguiente, se obtienen una secuencia de valores de nodo de alineación 1621, 1622, 1623, 1624, 1625, 1626.
Un valor de nodo de alineación respectivo se obtiene efectivamente de manera que es un producto del valor de inicio (por ejemplo 1) y todos los valores de proporción de alineación intermedios que se encuentran entre los nodos 1621 de alineación de inicio y el valor 1622 a 1626 de nodo de alineación respectivo.
Una representación 1640 gráfica ilustra una interpolación lineal entre los valores de nodo de alineación. Por ejemplo, pueden obtenerse valores interpolados 1621a, 1621b, 1621c en un decodificador de señal de audio entre dos valores 1621, 1622 de nodo de alineación de tiempo adyacentes, por ejemplo, haciendo uso de una interpolación lineal.
La figura 16b muestra una representación gráfica de una reconstrucción de contorno de alineación de tiempo usando un reinicio periódico desde un valor de inicio predeterminado, lo que puede implementarse opcionalmente en el calculador 1500 de contorno de alineación de tiempo. En otras palabras, el reinicio periódico o repetido no es una característica esencial, siempre que pueda evitarse un desbordamiento numérico por cualquier otra medida apropiada en el lado de codificador o en el lado de decodificador. Tal como puede observarse, una parte de contorno de alineación puede iniciarse a partir de un nodo 1660 de inicio en el que pueden determinarse los nodos 1661, 1662, 1663, 1664 de contorno de alineación. Para este propósito, pueden considerarse los valores de proporción de alineación (0,983, 0,988, 0,965, 1,000), de manera que los nodos 1661 a 1664 de contorno de alineación adyacentes de la primera parte de contorno de alineación de tiempo están separados mediante proporciones determinadas por estos valores de proporción de alineación. Sin embargo, una segunda parte de contorno de alineación de tiempo adicional puede iniciarse después de que se ha alcanzado un nodo 1664 de fin de la primera parte de contorno de alineación de tiempo (que comprende los nodos 1660-1664). La segunda parte de contorno de alineación de tiempo puede iniciarse desde un nuevo nodo 1665 de inicio, que puede tomar el valor de inicio predeterminado, independiente de cualquier valor de proporción de alineación. Por consiguiente, los valores de nodo de alineación de la segunda parte de contorno de alineación de tiempo pueden calcularse partiendo del nodo 1665 de inicio de la segunda parte de contorno de alineación de tiempo basándose en los valores de proporción de alineación de la segunda parte de contorno de alineación de tiempo. Posteriormente, una tercera parte de contorno de alineación de tiempo puede empezar desde un correspondiente nodo 1670 de inicio, que puede tomar de nuevo el valor de inicio predeterminado independiente de cualquier valor de proporción de alineación. Por consiguiente, se obtiene un reinicio periódico de las partes de contorno de alineación de tiempo. Opcionalmente, puede aplicarse una renormalización repetida, tal como se describió en detalle anteriormente.
El codificador de señal de audio según la figura 17 A continuación, se describirá brevemente un codificador de señal de audio según otra realización de la invención, haciendo referencia a la figura 17. El codificador 1700 de señal de audio está configurado para recibir una señal 1710 de audio multicanal y para proporcionar una representación 1712 codificada de la señal 1710 de audio multicanal. El codificador 1700 de señal de audio comprende un proveedor 1720 de representación de audio codificado, que está configurado para proporcionar selectivamente una representación de audio que comprende una información de contorno de alineación común, comúnmente asociada con una pluralidad de canales de audio de la señal de audio multicanal, o una representación de audio codificada que comprende información de contorno de alineación individual, asociada individualmente con los diferentes canales de audio de la pluralidad de canales de audio, dependiendo de una información que describe una similitud o diferencia entre contornos de alineación asociados con los canales de audio de la pluralidad de canales de audio.
Por ejemplo, el codificador 1700 de señal de audio comprende un calculador de similitud de contorno de alineación o calculador 1730 de diferencia de contorno de alineación configurado para proporcionar la información 1732 que describe la similitud o diferencia entre contornos de alineación asociados con los canales de audio. El proveedor de representación de audio codificado comprende, por ejemplo, un codificador 1722 de contorno de alineación de tiempo selectivo configurado para recibir información 1724 de contorno de alineación de tiempo (que puede proporcionarse externamente o que puede proporcionarse por un calculador 1734 de información de contorno de alineación de tiempo opcional) y la información 1732. Si la información 1732 indica que los contornos de alineación de tiempo de dos o más canales de audio son suficientemente similares, el codificador 1722 de contorno de alineación de tiempo selectivo puede configurarse para proporcionar una información de contorno de alineación de tiempo codificada conjunta. La información de contorno de alineación conjunta puede, por ejemplo, basarse en un promedio de la información de contorno de alineación de dos o más canales. Sin embargo, alternativamente la información de contorno de alineación conjunta puede basarse en una única información de contorno de alineación de un único canal de audio, pero asociarse conjuntamente con una pluralidad de canales.
Sin embargo, si la información 1732 indica que los contornos de alineación de múltiples canales de audio no son lo suficientemente similares, el codificador 1722 de contorno de alineación de tiempo selectivo puede proporcionar información codificada separada de los diferentes contornos de alineación de tiempo.
El proveedor 1720 de representación de audio codificado también comprende un procesador 1726 de señal de alineamiento de tiempo, que también puede configurarse para recibir la información 1724 de contorno de alineación de tiempo y la señal 1710 de audio multicanal. El procesador 1726 de señal de alineamiento de tiempo está configurado para codificar los múltiples canales de la señal 1710 de audio. El procesador 1726 de señal de alineamiento de tiempo puede comprender diferentes modos de funcionamiento. Por ejemplo, el procesador 1726 de señal de alineamiento de tiempo puede configurarse para codificar selectivamente canales de audio codificándolos de manera individual o conjunta, aprovechando similitudes entre canales. En algunos casos, se prefiere que el procesador 1726 de señal de alineamiento de tiempo pueda codificar comúnmente múltiples canales de audio que tienen una información de contorno de alineación de tiempo común. Existen casos en los que un canal de audio izquierdo y un canal de audio derecho muestran la misma evolución de altura tonal pero tienen, por lo demás, diferentes características de señal, por ejemplo, diferentes frecuencias fundamentales absolutas o diferentes envolventes espectrales. En este caso, no es deseable codificar el canal de audio izquierdo y el canal de audio derecho conjuntamente, debido a la diferencia significativa entre el canal de audio izquierdo y el canal de audio derecho. No obstante, la evolución de altura tonal relativa en el canal de audio izquierdo y el canal de audio derecho pueden ser paralelas, de manera que la aplicación de una alineación de tiempo común es una solución muy eficaz. Un ejemplo de una señal de audio de este tipo es una música polifónica, en la que los contenidos de múltiples canales de audio muestran una diferencia significativa (por ejemplo, están dominados por diferentes cantantes o instrumentos de música), pero muestran una variación de altura tonal similar. Por tanto, la eficacia de codificación puede mejorarse significativamente proporcionando la posibilidad de tener una codificación conjunta de los contornos de alineación de tiempo para múltiples canales de audio mientras se mantiene la opción de codificar por separado los espectros de frecuencia de los diferentes canales de audio para los que se proporciona una información contorno de altura tonal común.
El proveedor 1720 de representación de audio codificado comprende opcionalmente un codificador 1728 de información secundaria, que está configurado para recibir la información 1732 y para proporcionar una información secundaria que indica si se proporciona un contorno de alineación codificado común para múltiples canales de audio o si se proporcionan contornos de alineación codificados individuales para los múltiples canales de audio. Por ejemplo, una información secundaria de este tipo puede proporcionarse en forma de un indicador de 1 bit llamado “common_tw”.
En resumen, el codificador 1722 de contorno de alineación de tiempo selectivo proporciona selectivamente representaciones codificadas individuales de los contornos de audio de alineación de tiempo asociados con múltiples señales de audio, o una representación de contorno de alineación de tiempo codificada conjunta que representa un único contorno de alineación de tiempo conjunto asociado con los múltiples canales de audio. El codificador 1728 de información secundaria proporciona opcionalmente una información secundaria que indica si se proporcionan representaciones de contorno de alineación de tiempo individuales o una representación contorno de alineación de tiempo conjunta. El procesador 1726 de señal de alineamiento de tiempo proporciona representaciones codificadas de los múltiples canales de audio. Opcionalmente, puede proporcionarse una información codificada común para múltiples canales de audio. Sin embargo, normalmente es posible incluso proporcionar representaciones codificadas individuales de múltiples canales de audio, para las que un una representación de contorno de alineación de tiempo común está disponible, de manera que diferentes canales de audio que tienen diferente contenido de audio, pero idéntica alineación de tiempo, se representan apropiadamente. Por consiguiente, la representación 1712 codificada comprende información codificada proporcionada por el codificador 1722 de contorno de alineación de tiempo selectivo, y el procesador 1726 de señal de alineamiento de tiempo y, opcionalmente, el codificador 1728 de información secundaria.
Decodificador de señal de audio según la figura 18
La figura 18 muestra un diagrama de bloques esquemático de un decodificador de señal de audio según una realización de la invención. El decodificador 1800 de señal de audio está configurado para recibir una representación 1810 de señal de audio codificada (por ejemplo, la representación 1712 codificada) y para proporcionar, basándose en la misma, una representación 1812 decodificada de la señal de audio multicanal. El decodificador 1800 de señal de audio comprende un extractor 1820 de información secundaria y un decodificador 1830 de alineación de tiempo. El extractor 1820 de información secundaria está configurado para extraer una información 1822 de aplicación de contorno de alineación de tiempo y una información 1824 de contorno de alineación a partir de la representación 1810 de señal de audio codificada. Por ejemplo, el extractor 1820 de información secundaria puede configurarse para reconocer si está disponible una única información de contorno de alineación de tiempo común para múltiples canales de la señal de audio codificada, o si está disponible la información de contorno de alineación de tiempo separada para los múltiples canales. Por consiguiente, el extractor de información secundaria puede proporcionar tanto la información 1822 de aplicación de contorno de alineación de tiempo (que indica si está disponible información de contorno de alineación de tiempo individual o conjunta) como la información 1824 de contorno de alineación de tiempo (que describe una evolución temporal del contorno de alineación de tiempo común (conjunto) o de los contornos de alineación de tiempo individuales). El decodificador 1830 de alineación de tiempo puede configurarse para reconstruir la representación decodificada de la señal de audio multicanal basándose en la representación 1810 de señal de audio codificada, teniendo en consideración la alineación de tiempo descrita por la información 1822, 1824. Por ejemplo, el decodificador 1830 de alineación de tiempo puede configurarse para aplicar un contorno de alineación de tiempo común para decodificar diferentes canales de audio, para los que está disponible información de dominio de la frecuencia codificada individual. Por consiguiente, el decodificador 1830 de alineación de tiempo puede, por ejemplo, reconstruir diferentes canales de la señal de audio multicanal, que comprenden una alineación de tiempo similar o idéntica, pero diferente altura tonal.
Flujo de audio según las figuras 19a a 19e
A continuación, se describirá un flujo de audio, que comprende una representación codificada de uno o más canales de señal de audio y uno o más contornos de alineación de tiempo.
La figura 19a muestra una representación gráfica de un denominado elemento de flujo de datos de “USAC_raw_data_block” que puede comprender un elemento de canal único (SCE), un elemento de par de canales (CPE) o una combinación de uno o más elementos de canal único y/o uno o más elementos de par de canales.
El “USA_craw_data_block” puede comprender normalmente un bloque de datos de audio codificados, mientras que la información de contorno de alineación de tiempo adicional puede proporcionarse en un elemento de flujo de datos separado. No obstante, habitualmente es posible codificar algunos datos de contorno de alineación de tiempo en el “USAC_raw_data_block”.
Tal como puede observarse a partir de la figura 19b, un elemento de canal único comprende normalmente un flujo de canal en el dominio de la frecuencia (“fd_channel_stream”), que se explicará en detalle con referencia a la figura 9d.
Tal como puede observarse a partir de la figura 19c, un elemento de par de canales (“channel pair element”) comprende normalmente una pluralidad de flujos de canal en el dominio de la frecuencia. Además, el elemento de par de canales puede comprender información de alineación de tiempo. Por ejemplo, un indicador de activación de alineación de tiempo (“tw MDCT”) que puede transmitirse en un elemento de flujo de datos de configuración o en el “USAC_saw_data_block” determina si se incluye información de alineación de tiempo en el elemento de par de canales. Por ejemplo, si el indicador “tw_MDCT” indica que la alineación de tiempo está activa, el elemento de par de canales puede comprender un indicador (“common_tw”) que indica si existe una alineación de tiempo común para los canales de audio del elemento de par de canales. Si dicho indicador (common_tw) indica que existe una alineación de tiempo común para varios de los canales de audio, entonces una información de alineación de tiempo común (tw_data) se incluye en el elemento de par de canales, por ejemplo, separada de los flujos de canal en el dominio de la frecuencia.
Haciendo ahora referencia a la figura 19d, se describe el flujo de canal en el dominio de la frecuencia. Tal como puede observarse a partir de la figura 19d, el flujo de canal en el dominio de la frecuencia, por ejemplo, comprende una información de ganancia global. Además, el flujo de canal en el dominio de la frecuencia comprende datos de alineación de tiempo, si el alineamiento de tiempo está activo (indicador “tw_MDCT” activo) y si no existe información de alineación de tiempo común para canal de señal de audio múltiple (indicador “common_tw” está inactivo).
Además, un flujo de canal en el dominio de la frecuencia también comprende datos de factor de escala (“scale_factor_data”) y datos espectrales codificados (por ejemplo, datos espectrales aritméticamente codificados “ac_spectral_data”).
Haciendo ahora referencia a la figura 19e, se comentará brevemente la sintaxis de los datos de alineación de tiempo. Los datos de alineación de tiempo pueden comprender, por ejemplo, opcionalmente, un indicador (por ejemplo, “tw_data_present” o “active Pitch Data”) que indica si los datos de alineación de tiempo están presentes. Si los datos de alineación de tiempo están presentes, (es decir, el contorno de alineación de tiempo no es plano) los datos de alineación de tiempo pueden comprender una secuencia de una pluralidad de valores de proporción de alineación de tiempo codificados (por ejemplo, “tw_ratio[i]” o “pitchIdx[i]”), que pueden codificarse, por ejemplo, según la tabla de libro de códigos de la figura 9c.
Por tanto, los datos de alineación de tiempo pueden comprenden un indicador que indica que no existen datos de alineación de tiempo disponibles, lo que puede establecerse mediante un codificador de señal de audio, si el contorno de alineación de tiempo es constante (las proporciones de alineación de tiempo son aproximadamente iguales a 1,000). En cambio, si el contorno de alineación de tiempo es variable, las proporciones entre nodos de contorno de alineación de tiempo posteriores pueden codificarse usando los índices de libro de códigos que componen la información de “tw_ratio”.
Conclusión
Resumiendo lo anterior, las realizaciones según la invención provocan diferentes mejoras en el campo de alineamiento de tiempo.
Los aspectos de la invención descritos en el presente documento están en el contexto de un codificador de transformada MDCT alineado en el tiempo (véase, por ejemplo, la referencia [1]). Las realizaciones según la invención proporcionan métodos para un rendimiento mejorado de un codificador de transformada MDCT alineado en el tiempo.
Según un aspecto de la invención, se proporciona un formato de flujo de bits particularmente eficaz. La descripción de formato de flujo de bits se basa en, y mejora la, sintaxis de flujo de bits MPEG-2 AAC (véase, por ejemplo, la referencia [2]), pero es naturalmente aplicable a todos los formatos de flujo de bits con una cabecera de descripción general en el inicio de un flujo y una sintaxis de información por tramas individual.
Por ejemplo, la siguiente información secundaria puede transmitirse en el flujo de bits:
En general, un indicador de un bit (por ejemplo, denominado “tw_MDCT”) pude presentarse en la configuración específica de audio general (GASC), que indica si el alineamiento de tiempo está activo o no. Pueden transmitirse datos de altura tonal usando la sintaxis mostrada en la figura 19e o la sintaxis mostrada en la figura 19f. En la sintaxis mostrada en la figura 19f, el número de alturas tonales (“numPitches”) puede ser igual a 16, y el número de bits de altura tonal en (“numPitchBits”) puede ser igual a 3. En otras palabras, pueden existir 16 valores de proporción de alineación codificados por parte de contorno de alineación de tiempo (o por trama de señal de audio), y cada valor de proporción de contorno de alineación puede codificarse usando 3 bits.
Además, en un elemento de canal único (SCE) los datos de altura tonal (pitch_data []) pueden ubicarse antes de los datos de sección en el canal individual, si el alineamiento está activo.
En un elemento de par de canales (CPE), un indicador de altura tonal común indica si hay unos datos de altura tonal comunes para ambos canales, que siguen a continuación, si no, los contornos de altura tonal individuales se encuentran en los canales individuales.
A continuación, se proporcionará un ejemplo para un elemento de par de canales. Un ejemplo puede ser una señal de una única fuente de sonido de armónico, situada dentro del panorama estéreo. En este caso, los contornos de altura tonal relativa para el primer canal y el segundo canal serán iguales o diferirán sólo ligeramente debido a algunos errores pequeños en la estimación de la variación. En este caso, el codificador puede decidir en lugar de enviar dos contornos de altura tonal codificados separados para cada canal, enviar sólo un contorno de altura tonal que es un promedio de los contornos de altura tonal del primer y segundo canal, y usar el mismo contorno al aplicar la TW-MDCT en ambos canales. Por otro lado, puede haber una señal en la que la estimación del contorno de altura tonal proporciona diferentes resultados para el primer y segundo canal respectivamente. En este caso, los contornos de altura tonal individualmente codificados se envían dentro del canal correspondiente.
A continuación, se describirá una decodificación ventajosa de datos de contorno de altura tonal, según un aspecto de la invención. Por ejemplo, si el indicador “active PitchData” es 0, el contorno de altura tonal se establece a 1 para todas las muestras en la trama, de lo contrario los nodos de contorno de altura tonal individuales se calculan tal como sigue:
hay numPitches + 1 nodos,
node [0] es siempre 1,0;
node [i]=node[i-1]ereIChange[i] (i=1..numPitches+ 1), en el que se obtiene el relChange mediante cuantificación inversa del pitchdx[i].
Entonces se genera el contorno de altura tonal mediante la interpolación lineal entre los nodos, en la que las posiciones de muestra de nodo son O:frameLen/numPitches:frameLen.
Alternativas de implementación
Dependiendo de determinados requisitos de implementación, pueden implementarse realizaciones de la invención en hardware o en software. La implementación puede realizarse usando un medio de almacenamiento digital, por ejemplo un disco flexible, un DVD, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria FLASH, que tiene señales de control electrónicamente legibles almacenadas en el mismo, que actúa conjuntamente (o puede actuar conjuntamente) con un sistema informático programable de manera que se realiza el método respectivo.
Algunas realizaciones según la invención comprenden un soporte de datos que tiene señales de control electrónicamente legibles, que pueden actuar conjuntamente con un sistema informático programable, de manera que se realiza uno de los métodos descritos en el presente documento.
Generalmente, pueden implementarse realizaciones de la presente invención como un producto de programa informático con un código de programa, pudiendo hacerse funcionar el código de programa para realizar uno de los métodos cuando se ejecuta el producto de programa informático en un ordenador. El código de programa puede almacenarse por ejemplo en un soporte legible por máquina.
Otras realizaciones comprenden el programa informático para realizar uno de los métodos descritos en el presente documento, almacenado en un soporte legible por máquina.
En otras palabras, una realización del método de la invención es, por tanto, un programa informático que tiene un código de programa para realizar uno de los métodos descritos en el presente documento, cuando el programa informático se ejecuta en un ordenador.
Una realización adicional de los métodos de la invención es, por tanto, un soporte de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, registrado en el mismo, el programa informático para realizar uno de los métodos descritos en el presente documento.
Una realización adicional del método de la invención es, por tanto, un flujo de datos o una secuencia de señales que representan el programa informático para realizar uno de los métodos descritos en el presente documento. El flujo de datos o la secuencia de señales puede configurarse por ejemplo para transferirse a través de una conexión de comunicación de datos, por ejemplo a través de Internet.
Una realización adicional comprende un medio de procesamiento, por ejemplo un ordenador, o un dispositivo lógico programable, configurado o adaptado para realizar uno de los métodos descritos en el presente documento.
Una realización adicional comprende un ordenador que tiene instalado en el mismo el programa informático para realizar uno de los métodos descritos en el presente documento.
En algunas realizaciones, puede usarse un dispositivo lógico programable (por ejemplo una disposición de puertas programables en campo) para realizar algunas o todas las funcionalidades de los métodos descritos en el presente documento. En algunas realizaciones, una disposición de puertas programables en campo puede actuar conjuntamente con un microprocesador con el fin de realizar uno de los métodos descritos en el presente documento.
Bibliografía
[1] L. Villemoes, “Time Warped Transform Coding of Audio Signals”, PCT/EP2006/010246, solicitud de patente internacional, noviembre de 2005.
[2] Generic Coding of Moving Pictures and Associated Audio: Advanced Audio Coding. Norma internacional 13818-7, ISO/IECJTC1/SC29/WG11 Moving Pictures Expert Group, 1997.

Claims (14)

  1. REIVINDICACIONES
    1. Decodificador (200; 300) de señal de audio configurado para proporcionar una representación (232; 312) de señal de audio decodificada basándose en una representación (211, 212; 310) de señal de audio codificada que comprende una información (212; 316) de evolución de contorno de alineación de tiempo, comprendiendo el decodificador de señal de audio:
    un calculador (210, 219, 220; 320) de alineación de tiempo configurado para generar datos (last_warp_contour, cur_warp_contour, new_warp_contour, 716, 718, 722) de contorno de alineación de tiempo que se reinician de manera repetida desde un valor (1) de inicio de contorno de alineación de tiempo predeterminado basándose en la información (212; 316; tw_ratio[k]) de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo;
    un reajustador (330) a escala de contorno de alineación de tiempo configurado para reajustar a escala al menos una parte (past_warp_contour, 716, 718) de los datos de contorno de alineación de tiempo de manera que una discontinuidad en un reinicio se reduce o elimina en a una versión (332, 716’, 718’, 722) reajustada a escala del contorno de alineación de tiempo; y
    un decodificador (340) de alineación configurado para proporcionar la representación (232; 312) de señal de audio decodificada basándose en la representación (211, 212; 310) de señal de audio codificada y usando la versión (332, 716’, 718’, 722) reajustada a escala del contorno de alineación de tiempo.
  2. 2. Decodificador (200; 300) de señal de audio según la reivindicación 1, en el que el calculador (320) de contorno de alineación de tiempo está configurado para calcular, partiendo del valor (1) de inicio predeterminado y usando en primer lugar una información (316, tw_ratio[k]) de cambio relativa, una evolución temporal de una primera parte (718) del contorno de alineación de tiempo, y para calcular, partiendo del valor
    (1) de inicio predeterminado y usando segunda información (316, tw_ratio[k]) de cambio relativa, una evolución temporal de una segunda parte (722) del contorno de alineación de tiempo, en el que la primera parte (718) del contorno de alineación de tiempo y la segunda parte (722) del contorno de alineación de tiempo son partes subsiguientes del contorno de alineación de tiempo,
    y en el que el reajustador (330) a escala de contorno de alineación de tiempo está configurado para reajustar a escala una de las partes (718) del contorno de alineación de tiempo, para obtener una transición (718b’, 722a) continua entre la primera parte (718’) del contorno de alineación de tiempo y la segunda parte (722) del contorno de alineación de tiempo.
  3. 3.
    Decodificador (200; 300) de señal de audio según la reivindicación 2, en el que el reajustador (330) a escala de contorno de alineación de tiempo está configurado para reajustar a escala la primera parte (718) del contorno de alineación de tiempo de manera que un último valor (718b’) de la versión (718’) ajustada a escala de la primera parte (718) de contorno de alineación de tiempo toma el valor (1) de inicio predeterminado o se desvía del valor de inicio predeterminado por no más de un valor de tolerancia predeterminado.
  4. 4.
    Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1 a 3, en el que el reajustador (330) a escala de contorno de alineación de tiempo está configurado para multiplicar valores de datos de contorno de alineación de tiempo (past_warp_contour[i]) con un factor de normalización (norm_fac), para ajustar a escala la parte (718) del contorno de alineación de tiempo, o para dividir valores de datos de contorno de alineación de tiempo entre un factor de normalización para ajustar a escala la parte (718) del contorno de alineación de tiempo.
  5. 5.
    Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1 a 4, en el que el calculador (320) de contorno de alineación de tiempo está configurado para obtener un valor de suma de contorno de alineación (last_warp_sum, cur_warp_sum) de una parte (last_warp_contour, cur_warp_contour, 716, 718) dada del contorno de alineación de tiempo, y para ajustar a escala la parte (last_warp_contour) dada del contorno de alineación de tiempo y del valor de suma de contorno de alineación (last_warp_sum, cur_warp_sum) de la parte dada del contorno de alineación de tiempo usando un valor de ajuste a escala común (norm_fac).
  6. 6.
    Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1 a 5, en el que el decodificador de señal de audio comprende además un calculador (570) de contorno de tiempo configurado para calcular un primer contorno de tiempo usando valores de datos de contorno de alineación de tiempo de una primera parte (716’) del contorno de alineación de tiempo, de una segunda parte (718’) del contorno de alineación de tiempo y de una tercera parte (722) del contorno de alineación de tiempo, y
    para calcular un segundo contorno de tiempo usando valores de datos de contorno de alineación de tiempo de la segunda parte (718”) del contorno de alineación de tiempo, de la tercera parte (722’) del contorno de alineación de tiempo y de una cuarta parte (752) del contorno de alineación de tiempo;
    en el que el calculador de contorno de alineación de tiempo está configurado para generar datos de contorno de alineación de tiempo de la primera parte (716) del contorno de alineación de tiempo partiendo de un valor
    (1) de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal de la primera parte (716) del contorno de alineación de tiempo;
    en el que el reajustador a escala de datos de contorno de alineación de tiempo está configurado para reajustar a escala la primera parte del contorno de alineación de tiempo de manera que un último valor de la primera parte (716) del contorno de alineación de tiempo comprende el valor de inicio de contorno de alineación de tiempo predeterminado;
    en el que el calculador de contorno de alineación de tiempo está configurado para generar datos de contorno de alineación de la segunda parte (718) del contorno de alineación de tiempo partiendo del valor (1) de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal de la segunda parte (718) del contorno de alineación de tiempo;
    en el que el reajustador a escala de datos de contorno de alineación de tiempo está configurado para reajustar a escala conjuntamente la primera parte (716) del contorno de alineación de tiempo y la segunda parte (718) del contorno de alineación de tiempo usando un factor de ajuste a escala común, de manera que un último valor (718b) de la segunda parte (718’) del contorno de alineación de tiempo comprende el valor (1) de inicio de contorno de alineación de tiempo predeterminado, para obtener conjuntamente unos valores (716’, 718’) de datos de contorno de alineación de tiempo reajustados a escala;
    en el que el calculador de contorno de alineación de tiempo está configurado para generar valores de datos de contorno de alineación de tiempo originales de la tercera parte (722) del contorno de alineación de tiempo partiendo del valor (1) de inicio de contorno de alineación de tiempo predeterminado, basándose en una información de evolución de contorno de alineación de tiempo de la tercera parte (722) del contorno de alineación de tiempo;
    en el que el calculador (570) de contorno de tiempo está configurado para calcular el primer contorno de tiempo usando los valores de datos de contorno de alineación de tiempo reajustados conjuntamente a escala de las partes (716’, 718’) de contorno de alineación de tiempo primera y segunda y los valores de datos de contorno de alineación de tiempo de la tercera parte (722) de contorno de alineación de tiempo;
    en el que el reajustador (330) a escala de datos de contorno de alineación de tiempo está configurado para reajustar a escala conjuntamente valores de datos de contorno de alineación de tiempo de la segunda parte (718’) reajustada a escala del contorno de alineación de tiempo y de la tercera parte (722) del contorno de alineación de tiempo usando otro factor de ajuste a escala común, de manera que un último valor de la tercera parte (722) del contorno de alineación de tiempo comprende el valor (1) de inicio de contorno de alineación de tiempo predeterminado, para obtener una versión (718”) reajustada a escala dos veces de la segunda parte
    (718) del contorno de alineación de tiempo y una versión (722’) reajustada a escala una vez de la tercera parte
    (722) del contorno de alineación de tiempo;
    en el que el calculador de contorno de alineación de tiempo está configurado para generar valores de datos de contorno de alineación de tiempo originales de la cuarta parte (752) del contorno de alineación de tiempo partiendo del valor (1) de inicio de contorno de alineación de tiempo predeterminado basándose en una información de evolución de contorno de alineación de tiempo de la cuarta parte (752) del contorno de alineación de tiempo; y
    en el que el calculador (570) de contorno de tiempo está configurado para calcular el segundo contorno de tiempo usando la versión (718”) reajustada a escala dos veces de la segunda parte (718) del contorno de alineación de tiempo, la versión (722’) reajustada a escala una vez de la tercera parte del contorno de alineación de tiempo y la versión (752) original de la cuarta parte del contorno de alineación de tiempo.
  7. 7. Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1-6, comprendiendo el decodificador de señal de audio un calculador (530) de información de control de alineación de tiempo configurado para calcular una información (512) de control de alineación de tiempo usando una pluralidad de partes del contorno de alineación de tiempo,
    en el que el calculador (530) de información de control de alineación de tiempo está configurado para calcular una información de control de alineación de tiempo para una reconstrucción de una primera trama de la señal de audio basándose en datos de contorno de alineación de tiempo de una primera pluralidad (716, 718, 722) de partes de contorno de alineación de tiempo, y calcular una información de control de alineación de tiempo para una reconstrucción de una segunda trama de la señal de audio, que se solapa o no se solapa con la primera trama de la señal de audio, basándose en datos de contorno de alineación de tiempo de una segunda pluralidad (718, 722, 752) de partes de contorno de alineación de tiempo,
    en el que la primera pluralidad (716’, 718’, 722) de partes de contorno de alineación de tiempo está desplazada, con respecto al tiempo, en comparación con la segunda pluralidad (718”, 722’, 752) de partes de contorno de alineación de tiempo, y
    en el que la primera pluralidad de partes de contorno de alineación de tiempo comprende al menos una parte (718,722) de contorno de alineación de tiempo común con la segunda pluralidad de partes de contorno de alineación de tiempo.
  8. 8.
    Decodificador (200; 300) de señal de audio según la reivindicación 7, en el que el calculador (320) de contorno de alineación de tiempo está configurado para generar el contorno de alineación de tiempo de manera que el contorno de alineación de tiempo se reinicia desde el valor (1) de inicio de contorno de alineación de tiempo predeterminado en una posición (724) dentro de la primera pluralidad (716, 718, 722) de partes de contorno de alineación de tiempo, o en una posición (754) dentro de la segunda pluralidad (718, 722, 752) de partes de contorno de alineación de tiempo, de manera que existe una discontinuidad (724, 754) del contorno de alineación de tiempo en la ubicación del reinicio; y
    en el que el reajustador a escala de contorno de alineación de tiempo está configurado para reajustar a escala una o más de las partes (716, 718; 718’, 722) de contorno de alineación de tiempo, de manera que se reduce o se elimina la discontinuidad (724, 754).
  9. 9.
    Decodificador (200; 300) de señal de audio según la reivindicación 8, en el que el calculador (320) de contorno de alineación de tiempo está configurado para generar el contorno de alineación de tiempo de manera que existe un primer reinicio del contorno de alineación de tiempo desde el valor (1) de inicio de contorno de alineación de tiempo predeterminado en una posición (724) dentro de la primera pluralidad (716’, 718’, 722) de partes de contorno de alineación de tiempo, de manera que existe una primera discontinuidad (724) en la posición del primer reinicio,
    en el que el reajustador (330) a escala de contorno de alineación de tiempo está configurado para reajustar a escala el contorno de alineación de tiempo de manera que se reduce la primera discontinuidad (724),
    en el que el calculador de contorno de alineación de tiempo está configurado para generar también el contorno de alineación de tiempo de manera que existe un segundo reinicio del contorno de alineación de tiempo desde el valor (1) de inicio de contorno de alineación de tiempo predeterminado en una posición dentro de la segunda pluralidad (718, 722, 752) de partes de contorno de alineación de tiempo, de manera que existe una segunda discontinuidad en la posición del segundo reinicio; y
    en el que el reajustador (330) a escala de datos de contorno de alineación de tiempo está configurado para reajustar a escala también el contorno de alineación de tiempo de manera que se reduce o se elimina la segunda discontinuidad.
  10. 10. Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1 a 9, en el que el calculador (320) de contorno de alineación de tiempo está configurado para reiniciar periódicamente el contorno de alineación de tiempo partiendo del valor (1) de inicio de contorno de alineación de tiempo predeterminado, de manera que existan discontinuidades periódicas en los reinicios;
    en el que el reajustador (330) a escala de datos de contorno de alineación de tiempo está adaptado para reajustar a escala sucesivamente al menos una parte del contorno de alineación de tiempo en todo momento, para reducir sucesivamente o eliminar las discontinuidades del contorno de alineación de tiempo en los reinicios; y
    en el que el decodificador de señal de audio comprende un calculador de información de control de alineación de tiempo configurado para combinar datos de contorno de alineación de tiempo de antes y después del reinicio para obtener una información de control de alineación de tiempo.
  11. 11. Decodificador (200; 300) de señal de audio según una de las reivindicaciones 1 a 10, en el que el calculador (320) de contorno de alineación de tiempo está configurado para recibir una información de proporción de alineación codificada (tw_ratio[k]), para derivar una secuencia de valores de proporción de alineación de tiempo (warp_value_tbl) a partir de la información de proporción de alineación de tiempo codificada, y para obtener valores de nodo de contorno de alineación de tiempo partiendo del valor (1) de inicio de contorno de alineación de tiempo;
    en el que las proporciones entre el valor (1) de inicio de contorno de alineación de tiempo asociado con un nodo de inicio de contorno de alineación de tiempo y los valores de nodo de contorno de alineación de tiempo de nodos de contorno de alineación de tiempo posteriores se determinan mediante los valores de proporción de alineación de tiempo:
    en el que el calculador de contorno de alineación de tiempo está configurado para calcular un valor de nodo de contorno de alineación de tiempo de un nodo de contorno de alineación de tiempo dado, que se separa del nodo de inicio de contorno de alineación de tiempo por un nodo de contorno de alineación de tiempo intermedio, basándose en una formación de producto que comprende una proporción entre el valor de inicio de contorno de alineación de tiempo y el valor de nodo de contorno de alineación de tiempo del nodo de contorno de alineación de tiempo intermedio y una proporción entre el valor de nodo de contorno de alineación de tiempo del nodo de contorno de alineación de tiempo intermedio y el valor de nodo de contorno de alineación de tiempo del nodo de contorno de alineación de tiempo dado como factores.
  12. 12. Método para proporcionar una representación de señal de audio decodificada basándose en una representación de señal de audio codificada que comprende una información de evolución de contorno de alineación de tiempo, comprendiendo el método:
    generar datos de contorno de alineación de tiempo (valores warp_node) que se reinician de manera repetida desde un valor (1) de inicio de contorno de alineación de tiempo predeterminado basándose en la información de evolución de contorno de alineación de tiempo (tw_ratio[k]) que describe una evolución temporal del contorno de alineación de tiempo;
    reajustar a escala al menos una parte de los datos de contorno de alineación de tiempo, de manera que una discontinuidad en un reinicio se reduce o se elimina en una versión reajustada a escala del contorno de alineación de tiempo; y
    proporcionar la representación de señal de audio decodificada basándose en la representación de señal de audio codificada y usando la versión reajustada a escala del contorno de alineación de tiempo.
  13. 13.
    Programa informático adaptado para realizar el método según la reivindicación 12, cuando el programa informático se ejecuta en un ordenador.
  14. 14.
    Proveedor de datos de contorno de alineación de tiempo para proporcionar datos de contorno de alineación de tiempo que representan una evolución temporal de una altura tonal relativa de una señal de audio basándose en una información de evolución de contorno de alineación de tiempo, comprendiendo el proveedor de datos de contorno de alineación de tiempo:
    un calculador de contorno de alineación de tiempo configurado para generar datos de contorno de alineación de tiempo basándose en una información de evolución de contorno de alineación de tiempo que describe una evolución temporal del contorno de alineación de tiempo, estando el calculador de contorno de alineación de tiempo configurado para reiniciar de manera repetida o periódica, en una posición de reinicio, un cálculo de los datos de contorno de alineación de tiempo desde un valor (1) de inicio de contorno de alineación de tiempo predeterminado, creando así discontinuidades del contorno de alineación de tiempo y reduciendo un intervalo de los valores de datos de contorno de alineación de tiempo; y
    un reajustador a escala de contorno de alineación de tiempo configurado para reajustar a escala de manera repetida partes del contorno de alineación de tiempo, para reducir o eliminar las discontinuidades en las posiciones de reinicio en secciones reajustadas a escala del contorno de alineación de tiempo.
ES09776909T 2008-07-11 2009-07-01 Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático Active ES2376974T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US79873 1979-09-28
US7987308P 2008-07-11 2008-07-11
US10382008P 2008-10-08 2008-10-08
US103820 2008-10-08
PCT/EP2009/004757 WO2010003582A1 (en) 2008-07-11 2009-07-01 Audio signal decoder, time warp contour data provider, method and computer program

Publications (1)

Publication Number Publication Date
ES2376974T3 true ES2376974T3 (es) 2012-03-21

Family

ID=41131685

Family Applications (3)

Application Number Title Priority Date Filing Date
ES09776908T Active ES2376849T3 (es) 2008-07-11 2009-07-01 Calculador de contorno de alineación de tiempo, codificador de señal de audio, representación de señal de audio codificada, métodos y programa informático
ES09776910T Active ES2404132T3 (es) 2008-07-11 2009-07-01 Descodificador de señal de audio, codificador de señal de audio, representacón de señal de audio de multi-canal modificada, procedimientos y programa de computadora
ES09776909T Active ES2376974T3 (es) 2008-07-11 2009-07-01 Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES09776908T Active ES2376849T3 (es) 2008-07-11 2009-07-01 Calculador de contorno de alineación de tiempo, codificador de señal de audio, representación de señal de audio codificada, métodos y programa informático
ES09776910T Active ES2404132T3 (es) 2008-07-11 2009-07-01 Descodificador de señal de audio, codificador de señal de audio, representacón de señal de audio de multi-canal modificada, procedimientos y programa de computadora

Country Status (17)

Country Link
US (3) US9299363B2 (es)
EP (3) EP2257945B1 (es)
JP (4) JP5323180B2 (es)
KR (3) KR101205644B1 (es)
CN (3) CN102007537B (es)
AR (3) AR072739A1 (es)
AT (2) ATE532176T1 (es)
AU (3) AU2009267485B2 (es)
BR (2) BRPI0906320B1 (es)
CA (3) CA2718859C (es)
ES (3) ES2376849T3 (es)
MX (3) MX2010010747A (es)
MY (1) MY154452A (es)
PL (3) PL2257944T3 (es)
RU (3) RU2509381C2 (es)
TW (3) TWI459374B (es)
WO (3) WO2010003582A1 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720677B2 (en) * 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
EP2107556A1 (en) * 2008-04-04 2009-10-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio transform coding using pitch correction
RU2621965C2 (ru) 2008-07-11 2017-06-08 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Передатчик сигнала активации с деформацией по времени, кодер звукового сигнала, способ преобразования сигнала активации с деформацией по времени, способ кодирования звукового сигнала и компьютерные программы
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
ES2441069T3 (es) * 2009-10-08 2014-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador multimodo para señal de audio, codificador multimodo para señal de audio, procedimiento y programa de computación que usan un modelado de ruido en base a linealidad-predicción-codificación
ES2458354T3 (es) * 2010-03-10 2014-05-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador de señales de audio, codificador de señales de audio, métodos y programa de ordenador que utiliza tasa de muestreo dependiente de la codificación del contorno de distorsión en el tiempo
EP2372704A1 (en) * 2010-03-11 2011-10-05 Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. Signal processor and method for processing a signal
SG184230A1 (en) * 2010-03-26 2012-11-29 Agency Science Tech & Res Methods and devices for providing an encoded digital signal
KR20130111611A (ko) * 2011-01-25 2013-10-10 니뽄 덴신 덴와 가부시키가이샤 부호화 방법, 부호화 장치, 주기성 특징량 결정 방법, 주기성 특징량 결정 장치, 프로그램, 기록 매체
TWI479478B (zh) 2011-02-14 2015-04-01 弗勞恩霍夫爾協會 用以使用對齊的預看部分將音訊信號解碼的裝置與方法
TWI488176B (zh) 2011-02-14 2015-06-11 Fraunhofer Ges Forschung 音訊信號音軌脈衝位置之編碼與解碼技術
TWI564882B (zh) 2011-02-14 2017-01-01 弗勞恩霍夫爾協會 利用重疊變換之資訊信號表示技術(一)
WO2012110448A1 (en) 2011-02-14 2012-08-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result
KR101613673B1 (ko) 2011-02-14 2016-04-29 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 불활성 위상 동안에 잡음 합성을 사용하는 오디오 코덱
BR112013020324B8 (pt) 2011-02-14 2022-02-08 Fraunhofer Ges Forschung Aparelho e método para supressão de erro em fala unificada de baixo atraso e codificação de áudio
KR101699898B1 (ko) * 2011-02-14 2017-01-25 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 스펙트럼 영역에서 디코딩된 오디오 신호를 처리하기 위한 방법 및 장치
MY165853A (en) 2011-02-14 2018-05-18 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
EP2676267B1 (en) 2011-02-14 2017-07-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoding and decoding of pulse positions of tracks of an audio signal
SG194199A1 (en) 2011-03-18 2013-12-30 Fraunhofer Ges Forschung Frame element positioning in frames of a bitstream representing audio content
TWI450266B (zh) * 2011-04-19 2014-08-21 Hon Hai Prec Ind Co Ltd 電子裝置及音頻資料的解碼方法
US9967600B2 (en) * 2011-05-26 2018-05-08 Nbcuniversal Media, Llc Multi-channel digital content watermark system and method
ES2549953T3 (es) * 2012-08-27 2015-11-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para la reproducción de una señal de audio, aparato y método para la generación de una señal de audio codificada, programa de ordenador y señal de audio codificada
CN102855884B (zh) * 2012-09-11 2014-08-13 中国人民解放军理工大学 基于短时连续非负矩阵分解的语音时长调整方法
CN105976824B (zh) 2012-12-06 2021-06-08 华为技术有限公司 信号解码的方法和设备
WO2014096236A2 (en) * 2012-12-19 2014-06-26 Dolby International Ab Signal adaptive fir/iir predictors for minimizing entropy
RU2638734C2 (ru) 2013-10-18 2017-12-15 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Кодирование спектральных коэффициентов спектра аудиосигнала
FR3015754A1 (fr) * 2013-12-20 2015-06-26 Orange Re-echantillonnage d'un signal audio cadence a une frequence d'echantillonnage variable selon la trame
EP2980791A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions
US10553230B2 (en) * 2015-11-09 2020-02-04 Sony Corporation Decoding apparatus, decoding method, and program
US10074373B2 (en) * 2015-12-21 2018-09-11 Qualcomm Incorporated Channel adjustment for inter-frame temporal shift variations
RU2704733C1 (ru) * 2016-01-22 2019-10-30 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Устройство и способ кодирования или декодирования многоканального сигнала с использованием параметра широкополосного выравнивания и множества параметров узкополосного выравнивания
CN107749304B (zh) * 2017-09-07 2021-04-06 电信科学技术研究院 有限冲激响应滤波器系数矢量的可持续更新方法及装置
CN114424282B (zh) * 2019-09-03 2026-03-24 杜比实验室特许公司 低时延低频率效应编译码器
TWI752551B (zh) * 2020-07-13 2022-01-11 國立屏東大學 迅吃偵測方法、迅吃偵測裝置與電腦程式產品

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5054075A (en) 1989-09-05 1991-10-01 Motorola, Inc. Subband decoding method and apparatus
JP3076859B2 (ja) * 1992-04-20 2000-08-14 三菱電機株式会社 ディジタルオーディオ信号の信号処理装置
US5408580A (en) 1992-09-21 1995-04-18 Aware, Inc. Audio compression system employing multi-rate signal analysis
JPH0784597A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd 音声符号化装置および音声復号化装置
US5717823A (en) * 1994-04-14 1998-02-10 Lucent Technologies Inc. Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders
FI105001B (fi) * 1995-06-30 2000-05-15 Nokia Mobile Phones Ltd Menetelmä odotusajan selvittämiseksi puhedekooderissa epäjatkuvassa lähetyksessä ja puhedekooderi sekä lähetin-vastaanotin
US5704003A (en) 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
JP3707116B2 (ja) 1995-10-26 2005-10-19 ソニー株式会社 音声復号化方法及び装置
US5659622A (en) 1995-11-13 1997-08-19 Motorola, Inc. Method and apparatus for suppressing noise in a communication system
US5848391A (en) 1996-07-11 1998-12-08 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Method subband of coding and decoding audio signals using variable length windows
US6134518A (en) 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
KR100261253B1 (ko) * 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치
US6070137A (en) 1998-01-07 2000-05-30 Ericsson Inc. Integrated frequency-domain voice coding using an adaptive spectral enhancement filter
DE69926821T2 (de) 1998-01-22 2007-12-06 Deutsche Telekom Ag Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6453285B1 (en) * 1998-08-21 2002-09-17 Polycom, Inc. Speech activity detector for use in noise reduction system, and methods therefor
US6330533B2 (en) 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
US6449590B1 (en) * 1998-08-24 2002-09-10 Conexant Systems, Inc. Speech encoder using warping in long term preprocessing
US7047185B1 (en) * 1998-09-15 2006-05-16 Skyworks Solutions, Inc. Method and apparatus for dynamically switching between speech coders of a mobile unit as a function of received signal quality
US6424938B1 (en) * 1998-11-23 2002-07-23 Telefonaktiebolaget L M Ericsson Complex signal activity detection for improved speech/noise classification of an audio signal
US6691084B2 (en) 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
US6223151B1 (en) 1999-02-10 2001-04-24 Telefon Aktie Bolaget Lm Ericsson Method and apparatus for pre-processing speech signals prior to coding by transform-based speech coders
DE19910833C1 (de) 1999-03-11 2000-05-31 Mayer Textilmaschf Kurzketten-Schärmaschine
EP1099215B1 (en) * 1999-05-26 2005-02-23 Koninklijke Philips Electronics N.V. Audio signal transmission system
US6782360B1 (en) 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
US6978236B1 (en) * 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
US6366880B1 (en) 1999-11-30 2002-04-02 Motorola, Inc. Method and apparatus for suppressing acoustic background noise in a communication system by equaliztion of pre-and post-comb-filtered subband spectral energies
JP2001255882A (ja) * 2000-03-09 2001-09-21 Sony Corp 音声信号処理装置及びその信号処理方法
JP2002149200A (ja) 2000-08-31 2002-05-24 Matsushita Electric Ind Co Ltd 音声処理装置及び音声処理方法
US6850884B2 (en) * 2000-09-15 2005-02-01 Mindspeed Technologies, Inc. Selection of coding parameters based on spectral content of a speech signal
EP1340317A1 (en) * 2000-11-03 2003-09-03 Koninklijke Philips Electronics N.V. Parametric coding of audio signals
US6925435B1 (en) 2000-11-27 2005-08-02 Mindspeed Technologies, Inc. Method and apparatus for improved noise reduction in a speech encoder
SE0004818D0 (sv) 2000-12-22 2000-12-22 Coding Technologies Sweden Ab Enhancing source coding systems by adaptive transposition
ATE338333T1 (de) 2001-04-05 2006-09-15 Koninkl Philips Electronics Nv Zeitskalenmodifikation von signalen mit spezifischem verfahren je nach ermitteltem signaltyp
FI110729B (fi) 2001-04-11 2003-03-14 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
DK1386312T3 (da) 2001-05-10 2008-06-09 Dolby Lab Licensing Corp Forbedring af transient ydeevne af audio kodningssystemer med lav bithastighed ved reduktion af forudgående stöj
DE20108778U1 (de) 2001-05-25 2001-08-02 Mannesmann VDO AG, 60388 Frankfurt Gehäuse für ein in einem Fahrzeug verwendbares Gerät zur automatischen Ermittlung von Straßenbenutzungsgebühren
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
EP1278185A3 (en) 2001-07-13 2005-02-09 Alcatel Method for improving noise reduction in speech transmission
US6963842B2 (en) 2001-09-05 2005-11-08 Creative Technology Ltd. Efficient system and method for converting between different transform-domain signal representations
EP1446796A1 (en) * 2001-10-26 2004-08-18 Koninklijke Philips Electronics N.V. Tracking of sinusoidal parameters in an audio coder
CA2365203A1 (en) * 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
JP2003316392A (ja) * 2002-04-22 2003-11-07 Mitsubishi Electric Corp オーディオ信号の復号化及び符号化装置、復号化装置並びに符号化装置
US7457757B1 (en) 2002-05-30 2008-11-25 Plantronics, Inc. Intelligibility control for speech communications systems
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
US7043423B2 (en) 2002-07-16 2006-05-09 Dolby Laboratories Licensing Corporation Low bit-rate audio coding systems and methods that use expanding quantizers with arithmetic coding
CN1703736A (zh) 2002-10-11 2005-11-30 诺基亚有限公司 用于源控制可变比特率宽带语音编码的方法和装置
US7379866B2 (en) * 2003-03-15 2008-05-27 Mindspeed Technologies, Inc. Simple noise suppression model
JP4629353B2 (ja) * 2003-04-17 2011-02-09 インベンテイオ・アクテイエンゲゼルシヤフト エスカレータまたは動く歩道のための移動手摺り駆動装置
CN1820306B (zh) 2003-05-01 2010-05-05 诺基亚有限公司 可变比特率宽带语音编码中增益量化的方法和装置
US7363221B2 (en) 2003-08-19 2008-04-22 Microsoft Corporation Method of noise reduction using instantaneous signal-to-noise ratio as the principal quantity for optimal estimation
KR100604897B1 (ko) 2004-09-07 2006-07-28 삼성전자주식회사 하드 디스크 드라이브 조립체, 하드 디스크 드라이브의장착 구조 및 이를 채용한 휴대폰
KR100640893B1 (ko) 2004-09-07 2006-11-02 엘지전자 주식회사 음성 인식용 베이스밴드 모뎀 및 이동통신용 단말기
WO2006079813A1 (en) 2005-01-27 2006-08-03 Synchro Arts Limited Methods and apparatus for use in sound modification
CN101171626B (zh) * 2005-03-11 2012-03-21 高通股份有限公司 通过修改残余对声码器内的帧进行时间扭曲
US8155965B2 (en) 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
US8260611B2 (en) 2005-04-01 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for highband excitation generation
JP4550652B2 (ja) * 2005-04-14 2010-09-22 株式会社東芝 音響信号処理装置、音響信号処理プログラム及び音響信号処理方法
US7885809B2 (en) 2005-04-20 2011-02-08 Ntt Docomo, Inc. Quantization of speech and audio coding parameters using partial information on atypical subsequences
PT1875463T (pt) 2005-04-22 2019-01-24 Qualcomm Inc Sistemas, métodos e aparelho para nivelamento de fator de ganho
JP4450324B2 (ja) 2005-08-15 2010-04-14 日立オートモティブシステムズ株式会社 内燃機関の始動制御装置
JP2007084597A (ja) 2005-09-20 2007-04-05 Fuji Shikiso Kk 表面処理カーボンブラック組成物およびその製造方法
US7720677B2 (en) * 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
US7366658B2 (en) 2005-12-09 2008-04-29 Texas Instruments Incorporated Noise pre-processor for enhanced variable rate speech codec
US7991494B2 (en) * 2006-02-23 2011-08-02 Lg Electronics Inc. Method and apparatus for processing an audio signal
TWI294107B (en) 2006-04-28 2008-03-01 Univ Nat Kaohsiung 1St Univ Sc A pronunciation-scored method for the application of voice and image in the e-learning
US7873511B2 (en) * 2006-06-30 2011-01-18 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder and audio processor having a dynamically variable warping characteristic
US8682652B2 (en) * 2006-06-30 2014-03-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder and audio processor having a dynamically variable warping characteristic
MX2008016163A (es) 2006-06-30 2009-02-04 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio y procesador de audio con caracteristicas de warping variable de manera dinamica.
CN100489964C (zh) * 2006-08-18 2009-05-20 广州广晟数码技术有限公司 音频解码
US8239190B2 (en) 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
CN101025918B (zh) 2007-01-19 2011-06-29 清华大学 一种语音/音乐双模编解码无缝切换方法
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
EP2107556A1 (en) 2008-04-04 2009-10-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio transform coding using pitch correction
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
RU2621965C2 (ru) 2008-07-11 2017-06-08 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Передатчик сигнала активации с деформацией по времени, кодер звукового сигнала, способ преобразования сигнала активации с деформацией по времени, способ кодирования звукового сигнала и компьютерные программы
JP5297891B2 (ja) 2009-05-25 2013-09-25 京楽産業.株式会社 遊技機
US8670990B2 (en) 2009-08-03 2014-03-11 Broadcom Corporation Dynamic time scale modification for reduced bit rate audio coding
CN102257564B (zh) * 2009-10-21 2013-07-10 松下电器产业株式会社 音频编码装置、解码装置、方法、电路及程序

Also Published As

Publication number Publication date
WO2010003581A1 (en) 2010-01-14
JP5323180B2 (ja) 2013-10-23
ATE532176T1 (de) 2011-11-15
EP2257944A1 (en) 2010-12-08
EP2257945B1 (en) 2011-11-02
US9025777B2 (en) 2015-05-05
AU2009267484A1 (en) 2010-01-14
CA2718857A1 (en) 2010-01-14
KR20100125372A (ko) 2010-11-30
WO2010003583A1 (en) 2010-01-14
TWI459374B (zh) 2014-11-01
RU2527760C2 (ru) 2014-09-10
CA2718859A1 (en) 2010-01-14
AU2009267484B2 (en) 2011-09-01
BRPI0906320B1 (pt) 2021-05-18
KR20100134627A (ko) 2010-12-23
AR072498A1 (es) 2010-09-01
MX2010010748A (es) 2010-11-30
TW201009810A (en) 2010-03-01
US20110158415A1 (en) 2011-06-30
CA2718859C (en) 2015-09-29
PL2260485T3 (pl) 2013-08-30
HK1151620A1 (en) 2012-02-03
US9043216B2 (en) 2015-05-26
JP2011521305A (ja) 2011-07-21
MX2010010749A (es) 2010-11-30
WO2010003582A1 (en) 2010-01-14
CA2718740A1 (en) 2010-01-14
ATE532177T1 (de) 2011-11-15
EP2260485A1 (en) 2010-12-15
CA2718857C (en) 2014-09-09
RU2010139021A (ru) 2012-03-27
EP2257945A1 (en) 2010-12-08
JP6041815B2 (ja) 2016-12-14
RU2010139023A (ru) 2012-03-27
AR072500A1 (es) 2010-09-01
EP2257944B1 (en) 2011-11-02
AU2009267486B2 (en) 2011-09-15
EP2260485B1 (en) 2013-04-03
KR101205644B1 (ko) 2012-11-27
ES2404132T3 (es) 2013-05-24
RU2509381C2 (ru) 2014-03-10
TW201009809A (en) 2010-03-01
US9299363B2 (en) 2016-03-29
KR101205615B1 (ko) 2012-11-27
TWI451402B (zh) 2014-09-01
CN102007536A (zh) 2011-04-06
JP2011521304A (ja) 2011-07-21
CN102007537B (zh) 2013-08-28
RU2486484C2 (ru) 2013-06-27
BRPI0906319A2 (pt) 2023-03-14
PL2257944T3 (pl) 2012-04-30
CN102007531A (zh) 2011-04-06
RU2010139022A (ru) 2012-03-27
US20110161088A1 (en) 2011-06-30
JP5323179B2 (ja) 2013-10-23
AU2009267486A1 (en) 2010-01-14
ES2376849T3 (es) 2012-03-20
HK1151619A1 (en) 2012-02-03
JP2014130359A (ja) 2014-07-10
MX2010010747A (es) 2010-11-30
AU2009267485B2 (en) 2011-10-06
JP5551686B2 (ja) 2014-07-16
BRPI0906300B1 (pt) 2021-11-09
US20110106542A1 (en) 2011-05-05
BRPI0906300A2 (pt) 2020-09-24
CA2718740C (en) 2015-10-27
AR072739A1 (es) 2010-09-15
TW201009811A (en) 2010-03-01
BRPI0906320A2 (pt) 2020-01-14
KR101205593B1 (ko) 2012-11-27
KR20100134625A (ko) 2010-12-23
TWI453732B (zh) 2014-09-21
CN102007537A (zh) 2011-04-06
HK1151883A1 (en) 2012-02-10
CN102007536B (zh) 2012-09-05
JP2011521303A (ja) 2011-07-21
PL2257945T3 (pl) 2012-04-30
MY154452A (en) 2015-06-15
AU2009267485A1 (en) 2010-01-14
CN102007531B (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
ES2376974T3 (es) Decodificador de señal de audio, proveedor de datos de contorno de alineación de tiempo, método y programa informático
HK1151620B (en) Audio signal decoder, time warp contour data provider, method and computer program
BRPI0906319B1 (pt) Decodificador de sinal de áudio, codificador de sinal de áudio, representação de sinal de áudio multi-canal codificado e métodos
HK1151619B (en) Time warp contour calculator, audio signal encoder, encoded audio signal representation, methods and computer program
HK1151883B (en) Audio signal decoder, audio signal encoder, encoded multi-channel audio signal representation, methods and computer program