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

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

Info

Publication number
ES2461183T3
ES2461183T3 ES11707415T ES11707415T ES2461183T3 ES 2461183 T3 ES2461183 T3 ES 2461183T3 ES 11707415 T ES11707415 T ES 11707415T ES 11707415 T ES11707415 T ES 11707415T ES 2461183 T3 ES2461183 T3 ES 2461183T3
Authority
ES
Spain
Prior art keywords
context
frequency
audio signal
representation
information
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
ES11707415T
Other languages
English (en)
Inventor
Stefan Bayer
Tom BÄCKSTRÖM
Ralf Geiger
Bernd Edler
Sascha Disch
Lars Villemoes
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 Forderung der Angewandten Forschung eV
Dolby International AB
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Dolby International AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV, Dolby International AB filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Application granted granted Critical
Publication of ES2461183T3 publication Critical patent/ES2461183T3/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
    • 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
    • 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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals

Landscapes

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

Abstract

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

Description

Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación
Campo Técnico
[0001] Las realizaciones de acuerdo con la invención se relacionan con un decodificador de señales de audio para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada.
[0002] Otras realizaciones de acuerdo con la invención se relacionan con un codificador de señales de audio para producir una representación codificada de una señal de audio de entrada.
[0003] Otras realizaciones de acuerdo con la invención se relacionan con un procedimiento para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada.
[0004] Otras realizaciones de acuerdo con la invención se relacionan con un procedimiento para producir una representación de señal de audio codificada.
[0005] Otras realizaciones de acuerdo con la invención se relacionan con programas de computación.
[0006] Algunas realizaciones de acuerdo con la invención se relacionan con un concepto para adaptar el contexto de un codificador aritmético usando información de distorsión, que se puede utilizar en combinación con una transformada de coseno discreta con distorsión de tiempo (designada en forma abreviada TW–MDCT).
Antecedentes de la invención
[0007] A continuación se presenta una breve introducción en el campo de la codificación de audio con distorsión de tiempo, conceptos de lo cual se pueden aplicar en combinación con algunas de las realizaciones de la invención.
[0008] En los últimos años, se han desarrollado técnicas para transformar una señal de audio en una representación en el dominio de la frecuencia y para codificar la representación en el dominio de la frecuencia de manera eficiente, por ejemplo, tomando en cuenta umbrales de enmascaramiento perceptual. Este concepto de codificación de señales de audio es particularmente eficiente si la longitud del bloque, por el cual se transmite una serie de coeficientes espectrales codificados es grande, y si sólo un número comparativamente pequeño está muy por encima del umbral global de enmascaramiento, en tanto que un gran número de coeficientes espectrales están próximos o por debajo del umbral de enmascaramiento global y, por consiguiente, puede ser no tenido en cuenta (o codificado con una longitud mínima de código). Un espectro en el cual reina esa condición se denomina en ocasiones espectro disperso (sparse).
[0009] Por ejemplo, con frecuencia se utilizan transformadas de coseno o seno moduladas solapadas en aplicaciones para la codificación de origen debido a sus propiedades de compactación de energía. Es decir que en el caso de tonos armónicos con frecuencias fundamentales constantes (tono), concentran la energía de la señal en un bajo número de componentes espectrales (subbandas), lo que lleva a una representación eficiente de la señal.
[0010] En general, se ha de entender que el tono (fundamental) de una señal es la frecuencia dominante más baja que se distingue del espectro de la señal. En el modelo de voz común, el tono es la frecuencia de la señal de excitación modulada por la garganta humana. Si estuviera presente una única frecuencia fundamental, el espectro sería sumamente sencillo, y comprendería únicamente la frecuencia fundamental y los sobretonos o armónicos
superiores. Ese tipo de espectro podría ser codificado con gran eficiencia. Sin embargo, en el caso de señales con tonos variados, la energía correspondiente a cada componente armónico se propaga a varios coeficientes de transformada, llevando así a una reducción de la eficiencia codificadora.
[0011] Para superar la reducción de la eficiencia de codificación, se remuestrea efectivamente la señal de audio a codificar en una grilla temporal no uniforme. En el procesamiento subsiguiente, las posiciones de muestreo obtenidas por el remuestreo no uniforme se procesan como si representaran valores de una grilla temporal uniforme. Esta operación se describe por lo general con la frase “distorsión de tiempo” (time warping). Se puede elegir ventajosamente el número de veces de muestreo dependiendo de la variación temporal del tono, de tal manera que una variación del tono en la versión con distorsión de tiempo de la señal de audio sea menor que la variación de tono de la versión original de la señal de audio (antes de la distorsión de tiempo). Después de la distorsión de tiempo de la señal de audio, la versión de la señal de audio con distorsión de tiempo se convierte al dominio de la frecuencia. La distorsión de tiempo dependiente del tono tiene como efecto que la representación en el dominio de la frecuencia de la señal de audio con distorsión de tiempo exhibe por lo general compacta la energía formando un
número de componentes espectrales mucho menor que una representación en el dominio de la frecuencia de la original (señal de audio sin distorsión de tiempo).
[0012] Del lado del decodificador la representación en el dominio de la frecuencia de la señal de audio con distorsión de tiempo se convierte al dominio del tiempo, de tal manera que una representación en el domino del tiempo de la señal de audio con distorsión de tiempo esté disponible del lado del decodificador. Sin embargo, en la representación en el domino del tiempo la señal de audio con distorsión de tiempo reconstruida del lado del decodificador, las variaciones de tono originales de la señal de audio de entrada del lado del codificador no están incluidas. En consecuencia, se aplica una distorsión de tiempo adicional mediante el remuestreo de la representación en el dominio del tiempo reconstruida del lado del decodificador de la señal de audio con distorsión de tiempo.
[0013] Para obtener una buena reconstrucción de la señal de audio de entrada del lado del codificador en el decodificador es conveniente que la distorsión de tiempo del lado del decodificador constituya por lo menos aproximadamente la operación inversa con respecto a la distorsión de tiempo del lado del codificador. Para obtener una distorsión de tiempo apropiada, es conveniente contar con una información disponible en el decodificador, lo que da lugar al ajuste de la distorsión de tiempo del lado del decodificador.
[0014] Como por lo general es indispensable transferir esa información desde el codificador de señales de audio al decodificador de señales de audio, es conveniente mantener baja la velocidad de transferencia de bits necesaria para esta transmisión, aunque dando lugar igualmente a una reconstrucción confiable de la información de distorsión de tiempo necesaria del lado del decodificador.
[0015] Más aun, en ocasiones se incrementa la eficiencia codificadora al codificar o decodificar valores espectrales mediante el uso de un codificador dependiente del contexto o un decodificador dependiente del contexto.
[0016] El documento US 2007/0100607 describe un esquema de codificación de audio digital que aplica distorsión de tiempo.
[0017] Sin embargo, se ha encontrado que con frecuencia la eficiencia codificadora de un codificador de audio o de un decodificador de audio es comparativamente baja en presencia de una variación de una frecuencia fundamental o de un tono, aunque se aplique el concepto de distorsión de tiempo.
[0018] En vista de esta situación, existe la necesidad de contar con un concepto que dé lugar a una eficiencia codificadora favorable aun en presencia de una variación de una frecuencia fundamental.
Síntesis de la invención
[0019] Una realización de acuerdo con la invención da origen a un decodificador de señales de audio para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada que comprende una representación de espectro codificado y una información de distorsión de tiempo codificada. El decodificador de señales de audio comprende un decodificador de valores espectrales basado en el contexto configurado para decodificar una palabra en código que describe uno o más valores espectrales o por lo menos una porción de una representación numérica de uno o más valores espectrales que depende de un estado del contexto, para obtener valores espectrales decodificados. El decodificador de señales de audio también comprende un determinador del estado del contexto configurado para determinar un estado actual del contexto dependiendo de uno o más valores espectrales anteriormente decodificados. El decodificador de señales de audio también comprende un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo configurado para producir una representación en el dominio del tiempo con distorsión de tiempo de un cuadro de audio sobre la base de una serie de valores espectrales decodificados asociados al cuadro de audio dado y provista por el determinador de valores espectrales basado en el contexto y dependiendo de la información de distorsión de tiempo. El determinador del estado del contexto está configurado para adaptar la determinación del estado del contexto a un cambio de la frecuencia fundamental entre los cuadros subsiguientes.
[0020] Esta realización de acuerdo con la invención se basa en el hallazgo de que se mejora la eficiencia de codificación, que se obtiene merced a un decodificador de valores espectrales basado en el contexto en presencia de una señal de audio que tiene una frecuencia fundamental con variaciones de tiempo si se adapta el estado del contexto a un cambio de una frecuencia fundamental entre los cuadros subsiguientes debido a un cambio de la frecuencia fundamental en el tiempo (que es equivalente a una variación del tono en muchos casos) tiene el efecto de que un cuadro de audio dado por lo general es similar a una versión escalada en la frecuencia de un espectro de un cuadro de audio anterior (precedente al cuadro de audio dado), por lo que la adaptación de la determinación del contexto con dependencia del cambio de la frecuencia fundamental permite explotar dicha similitud para mejorar la eficiencia de codificación.
[0021] En otras palabras, se ha descubierto que la eficiencia de codificación (o la eficiencia de decodificación) de la codificación de valores espectrales basada en el contexto es comparativamente baja en presencia de un cambio
significativo de una frecuencia fundamental entre dos cuadros subsiguientes, y que se puede mejorar la eficiencia de codificación adaptando la determinación del estado del contexto en esa situación. La adaptación de la determinación del estado del contexto permite aprovechar similitudes entre los espectros del cuadro de audio anterior y del cuadro de audio actual, aunque tomando en cuenta además las diferencias sistemáticas entre los espectros del cuadro de audio anterior y del cuadro de audio actual, como por ejemplo el escalamiento de frecuencia del espectro que por lo general aparece en presencia de un cambio de la frecuencia fundamental en el tiempo (es decir entre dos cuadros de audio).
[0022] Para resumir, esta realización de acuerdo con la invención contribuye a mejorar la eficiencia de codificación sin necesidad de información complementaria adicional o velocidad de transmisión de bits (suponiendo que se dispone, de todas maneras, de una información que describe el cambio de la frecuencia fundamental entre los cuadros subsiguientes en un flujo de bits de audio usando la característica de distorsión de tiempo de un codificador
o decodificador de señales de audio).
[0023] En una realización preferida, el convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo comprende un el convertidor del dominio de la frecuencia al dominio del tiempo normal (sin distorsión de tiempo) configurado para producir una representación en el domino del tiempo de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados asociados a un cuadro de audio dado y producida por el decodificador de valores espectrales basado en el contexto y un remuestreador con distorsión de tiempo configurado para el remuestreo de la representación en el domino del tiempo del cuadro de audio dado, o una versión procesada de la misma, dependiendo de la información de distorsión de tiempo, para obtener una representación remuestreada (con distorsión de tiempo) en el dominio del tiempo del cuadro de audio dado. Dicha implementación de un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo es fácil de llevar a cabo, puesto que se basa en un convertidor del dominio de la frecuencia al dominio del tiempo “normal” y comprende, como extensión funcional, un remuestreador de distorsión de tiempo, cuya función puede ser independiente de la función del convertidor del dominio de la frecuencia al dominio del tiempo. En consecuencia, el convertidor del dominio de la frecuencia al dominio del tiempo puede ser reutilizado tanto en un modo de operación en el cual la distorsión de tiempo (o la reversión de la distorsión de tiempo) está inactiva y en un modo de operación en el cual la distorsión de tiempo (o la reversión de la distorsión de tiempo) está activa.
[0024] En una realización preferida, la información de distorsión de tiempo describe una variación del tono en el tiempo. En esta realización, el determinador del estado del contexto está configurado para derivar una información de estiramiento del tiempo (es decir, una información de escalamiento de la frecuencia) a partir de la información de distorsión de tiempo. Más aun, el determinador del estado del contexto está configurado preferentemente para estirar o comprimir un contexto anterior asociado a un cuadro de audio anterior a lo largo del eje de la frecuencia dependiendo de la información de estiramiento, para obtener un contexto adaptado para la decodificación basada en el contexto de uno de uno o más valores espectrales de un cuadro de audio actual. Se ha encontrado que una información de distorsión de tiempo, que describe una variación de un tono en el tiempo, es muy adecuada para derivar la información de estiramiento de la frecuencia. Además, se ha descubierto que el estiramiento o la compresión del contexto anterior asociado a un cuadro de audio anterior a lo largo del eje de frecuencia da lugar a un contexto estirado o comprimido, lo que permite una derivación de una información significativa del estado del contexto que se adapta favorablemente al espectro del cuadro de audio en curso y, en consecuencia, trae aparejada una eficiencia codificadora satisfactoria.
[0025] En una realización preferida, el determinador del estado del contexto está configurado para derivar una primera información de frecuencia promedio de un primer cuadro de audio de la información de distorsión de tiempo, y para derivar una segunda información de frecuencia promedio por un segundo cuadro de audio posterior al primer cuadro de audio de la información de distorsión de tiempo. En este caso, el determinador del estado del contexto está configurado para computar una relación entre la segunda información de frecuencia promedio en el segundo cuadro de audio y la primera información de frecuencia promedio del primer cuadro de audio a fin de determinar la información de estiramiento de la frecuencia. Se ha descubierto que por lo general es muy posible derivar la información de frecuencia promedio de la información de distorsión de tiempo, también se ha encontrado que la relación entre información de la primera y segunda de frecuencias promedio permite una derivación eficiente desde el punto de vista informático de la información de estiramiento de la frecuencia.
[0026] En otra realización preferida, el determinador del estado del contexto está configurado para derivar una primera información promedio de contorno con distorsión de tiempo en un primer cuadro de audio de la información de distorsión de tiempo, y para derivar una segunda información promedio de contorno con distorsión de tiempo enviada por un segundo cuadro de audio posterior al primer cuadro de audio, de la información de distorsión de tiempo. En este caso, el determinador del estado del contexto está configurado para computar una relación entre la primera información de contorno con distorsión de tiempo promedio transmitida por el primer cuadro de audio y la segunda información de contorno con distorsión de tiempo promedio transmitida por el segundo cuadro de audio, a fin de determinar la información de estiramiento de la frecuencia. Se ha descubierto que es particularmente eficiente desde el punto de vista informático computar los promedios de la información de contorno con distorsión de tiempo (que puede estar solapada) y que una relación entre dicha primera información de contorno con distorsión de tiempo
promedio y dicha segunda información de contorno con distorsión de tiempo promedio ofrece una información de estiramiento de la frecuencia suficientemente precisa.
[0027] En una realización preferida, el determinador del estado del contexto está configurado para derivar la primera y segunda informaciones de frecuencia promedio o la primera y segunda informaciones de contorno con distorsión de tiempo promedio a partir de un contorno común de distorsión de tiempo que se extiende a lo largo de una pluralidad de cuadros de audio consecutivos. Se ha descubierto que el concepto de establecimiento de un contorno común de distorsión de tiempo que se extiende a lo largo de una pluralidad de cuadros de audio consecutivos no sólo facilita el cómputo preciso y sin distorsiones del tiempo de remuestreo, sino también otorga una muy buena
base para el cálculo del cambio de una frecuencia fundamental entre dos cuadros de audio subsiguientes. En consecuencia, se ha identificado al contorno común de distorsión de tiempo como medio muy favorable para identificar un cambio de frecuencias relativas en el tiempo entre diferentes cuadros de audio.
[0028] En una realización preferida, el decodificador de señales de audio comprende una calculadora de contorno de distorsión de tiempo configurada para calcular una información de contorno de distorsión de tiempo que describe una evolución temporal de un tono relativo a lo largo de una pluralidad de cuadros de audio consecutivos sobre la base de la información de distorsión de tiempo. En este caso, el determinador del estado del contexto está configurado para usar la información de contorno de distorsión de tiempo para derivar la información de estiramiento de la frecuencia. Se ha descubierto que una información de contorno de distorsión de tiempo, que puede estar definida, por ejemplo, por cada muestra de un cuadro de audio, constituye una muy buena base para la adaptación de la determinación del estado del contexto.
[0029] En una realización preferida, el decodificador de señales de audio comprende una calculadora de posiciones de remuestreo. La calculadora de posiciones de remuestreo está configurada para calcular posiciones de remuestreo para ser utilizadas por un remuestreador de distorsión de tiempo sobre la base de la información de contorno de distorsión de tiempo, de tal manera que se determine una variación temporal de las posiciones de remuestreo por la información de contorno de distorsión de tiempo. Se ha descubierto que el uso común de la información de contorno de distorsión de tiempo para la determinación de la información de estiramiento de la frecuencia y para la determinación de las posiciones de remuestreo tiene el efecto de obtener un contexto estirado aplicando la información de estiramiento de la frecuencia, se adapta bien a las características del espectro de un cuadro de audio actual, donde la señal de audio del cuadro de audio actual es, por lo menos aproximadamente, una continuación de la señal de audio anterior reconstruida por la operación de remuestreo usando las posiciones de remuestreo calculadas.
[0030] En una realización preferida, el determinador del estado del contexto está configurado para derivar un valor numérico del contexto actual dependiendo de una pluralidad de valores espectrales anteriormente decodificados (que pueden estar incluidos en una estructura de memoria contextual o descritos en ella), y para seleccionar una regla de mapeo que describe el mapeo de un valor de código sobre un código de símbolo que representa uno o más valores espectrales, o una porción de una representación numérica de uno o más valores espectrales, dependiendo del valor numérico del contexto actual. En este caso, el decodificador de valores espectrales basado en el contexto está configurado para decodificador el valor código que describe uno o más valores espectrales, o por lo menos una porción de una representación numérica de uno o más valores espectrales, utilizando la regla de mapeo
seleccionada por el determinador del estado del contexto. Se ha descubierto que una adaptación del contexto, en la cual se deriva un valor numérico del contexto actual de una pluralidad de valores espectrales anteriormente decodificados, y en la cual se selecciona una regla de mapeo de acuerdo con dicho valor numérico (actual) del contexto, se beneficia significativamente por una adaptación de la determinación del estado del contexto, por ejemplo, del valor numérico (actual) del contexto, puesto que utilizando este concepto se puede evitar la detección de una regla de mapeo considerablemente inapropiada. Por el contrario, si la derivación del estado del contexto, es decir el valor numérico del contexto actual no estuviera adaptada según el cambio de la frecuencia fundamental entre los cuadros subsiguientes, con frecuencia tendría lugar una selección errónea de la regla de mapeo en presencia de un cambio de la frecuencia fundamental, por lo que se reduciría la ganancia de codificación. Dicha reducción de la ganancia de codificación se evita en virtud del mecanismo descrito.
[0031] En una realización preferida, el determinador del estado del contexto está configurado para establecer y actualizar una estructura de memoria contextual preliminar, de manera que las entradas de la estructura de memoria contextual preliminar describan uno o más valores espectrales de un primer cuadro de audio, donde los índices de entrada de la estructura de memoria contextual preliminar son indicativos de una caja de frecuencia o de una serie de cajas de frecuencia del convertidor del dominio de la frecuencia al dominio del tiempo al cual están asociadas las respectivas entradas (por ej., en la presentación de una representación en el domino del tiempo del primer cuadro de audio). El determinador del estado del contexto está configurado además para obtener una estructura de memoria contextual con escalamiento de la frecuencia sobre la base de la estructura de memoria contextual preliminar de tal manera que una determinada entrada o subentrada de la estructura de memoria contextual preliminar que tiene un primer índice de frecuencia se mapee sobre una correspondiente entrada o subentrada de la estructura de memoria contextual con escalamiento de la frecuencia que tiene un segundo índice de frecuencia. El segundo índice de frecuencia está asociado a una caja diferente o a una serie diferente de cajas de
frecuencia adyacente del convertidor del dominio de la frecuencia al dominio del tiempo con respecto al primer índice de frecuencia.
[0032] En otras palabras, una entrada de la estructura de memoria contextual preliminar, que se obtiene sobre la base de uno o más valores espectrales que corresponden a una ia caja espectral del convertidor del dominio de la frecuencia al dominio del tiempo (o la ia serie de cajas espectrales del convertidor del dominio de la frecuencia al dominio del tiempo) se mapea sobre una entrada de la estructura de memoria contextual con escalamiento de la frecuencia que está asociada a una ja caja de frecuencia (o la ja serie de cajas de frecuencia) del convertidor del dominio de la frecuencia al dominio del tiempo, donde j es diferente de i. Se ha descubierto que este concepto de mapeo de las entradas de la estructura de memoria contextual preliminar sobre las entradas de la estructura de memoria contextual con escalamiento de la frecuencia da lugar a un procedimiento particularmente eficiente desde el punto de vista informático para adaptar la determinación del estado del contexto al cambio de la frecuencia fundamental. Se puede obtener un escalamiento de frecuencia del contexto con bajo esfuerzo utilizando este concepto. En consecuencia, la derivación del valor numérico de contexto actual de la estructura de memoria contextual con escalamiento de la frecuencia puede ser idéntica a la derivación de un valor numérico del contexto actual de una estructura de memoria contextual convencional (por ej. preliminar) en ausencia de una variación significativa de tonos. Por consiguiente, el concepto descrito permite la implementación de la adaptación del contexto en un decodificador de audio existente con mínimo esfuerzo.
[0033] En una realización preferida, el determinador del estado del contexto está configurado para derivar un valor de estado del contexto que describe el estado actual del contexto para la decodificación de una palabra en código que describe uno o más valores espectrales de un segundo cuadro de audio o por lo menos una porción de una representación numérica de uno o más valores espectrales de un segundo cuadro de audio que está asociado a un tercer índice de frecuencia que utiliza valores de la estructura de memoria contextual con escalamiento de la frecuencia, índices de frecuencia de los cuales los valores de la estructura de memoria contextual con escalamiento de la frecuencia están en una relación predeterminada con el tercer índice de frecuencia. En este caso, el tercer índice de frecuencia designa una caja de frecuencia o una serie de cajas de frecuencia adyacentes del decodificador del dominio de la frecuencia al dominio del tiempo al cual está asociado uno o más valores espectrales del cuadro de audio a decodificar usando el valor de estado actual del contexto.
[0034] Se ha descubierto que el uso de un entorno relativo (en términos de cajas de frecuencia) predeterminado (y preferentemente fijo) de dichos uno o más valores espectrales a decodificar para la derivación del valor de estado del contexto (por ejemplo, un valor numérico del contexto actual) permite mantener el cómputo de dicho valor de estado del contexto razonablemente sencillo. Mediante el uso de la estructura de memoria contextual con escalamiento de la frecuencia como entrada para la derivación del valor de estado del contexto, se puede tener en cuenta con eficiencia la variación de la frecuencia fundamental.
[0035] En una realización preferida, el determinador del estado del contexto está configurado para establecer cada una de una pluralidad de entradas de la estructura de memoria contextual con escalamiento de la frecuencia que tiene un correspondiente índice de frecuencia objetivo a un valor de una entrada correspondiente de la estructura de memoria contextual preliminar que tiene un correspondiente índice de frecuencia de origen. El determinador del estado del contexto está configurado para determinar los índices de frecuencia correspondientes de una entrada de la estructura de memoria contextual con escalamiento de la frecuencia y de una entrada correspondiente de la estructura de memoria contextual preliminar de tal manera que la relación entre dichos índices de frecuencia correspondientes está determinada por el cambio de la frecuencia fundamental entre un cuadro de audio actual al cual están asociadas las entradas de la estructura de memoria contextual preliminar y un cuadro de audio subsiguiente, el contexto de decodificación del cual está determinado por las entradas de la estructura de memoria contextual con escalamiento de la frecuencia. Utilizando ese concepto para la derivación de las entradas de la estructura de memoria contextual con escalamiento de la frecuencia, se puede mantener baja la complejidad, aunque de todas maneras es posible adaptar la estructura de memoria contextual con escalamiento de la frecuencia al cambio de la frecuencia fundamental.
[0036] En una realización preferida, el determinador del estado del contexto está configurado para configurar la estructura de memoria contextual preliminar de tal manera que cada una de una pluralidad de entradas de la estructura de memoria contextual preliminar se basa en una pluralidad de valores espectrales de un primer cuadro de audio, donde los índices de entrada de las entradas de la estructura de memoria contextual preliminar son indicativas de una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo a las cuales están asociadas las respectivas entradas (con respecto al primer cuadro de audio). El determinador del estado del contexto está configurado para extraer valores individuales preliminares de las cajas de frecuencia que tienen índices de caja de frecuencia individuales asociados de las entradas de la estructura de memoria contextual preliminar. Además, el determinador del estado del contexto está configurado para obtener valores de contexto individuales de cajas de frecuencia con escalamiento de la frecuencia que tienen índices de cajas de frecuencia individuales asociados, de tal manera que un determinado valor preliminar de contexto de caja individual de frecuencia con escalamiento de la frecuencia que tiene un primer índice de caja de frecuencia se mapee sobre un correspondiente valor de contexto individual de caja de frecuencia con escalamiento de la frecuencia que tiene un segundo índice de caja de frecuencia, de tal manera que se obtiene un mapeo de mapeo
individual de las cajas de frecuencia de los valores preliminares de contexto individual de las caja de frecuencia. El determinador del estado del contexto está configurado además para combinar una pluralidad de valores de contexto individuales de cajas de frecuencia con escalamiento de la frecuencia en una entrada combinada de la estructura de memoria contextual con escalamiento de la frecuencia. En consecuencia, es posible adaptar la estructura de memoria contextual con escalamiento de la frecuencia a un cambio de la frecuencia fundamental de manera muy minuciosa, aun en el caso de resumirse una pluralidad de cajas de frecuencia en una sola entrada de la estructura de memoria contextual. Por consiguiente, se puede obtener una adaptación particularmente precisa del contexto al cambio la frecuencia fundamental.
[0037] Otra realización de acuerdo con la invención genera un codificador de señales de audio para producir una representación codificada de una señal de audio de entrada que comprende una representación de espectro codificado y una información de distorsión de tiempo codificada. El codificador de señales de audio comprende un generador de representaciones en el dominio de la frecuencia configurado para aportar una representación en el dominio de la frecuencia que representa una versión con distorsión de tiempo de la señal de audio de entrada, con distorsión de tiempo ejecutada de acuerdo con una información de distorsión de tiempo. El codificador de señales de audio comprende además un codificador de valores espectrales sobre la base del contexto configurado para codificar una palabra en código que describe uno o más valores espectrales de la representación en el dominio de la frecuencia o por lo menos una porción de una representación numérica de uno o más valores espectrales de la representación en el dominio de la frecuencia, dependiendo de un estado del contexto, para obtener valores espectrales codificados de la representación espectral codificada. El decodificador de señales de audio también comprende un determinador del estado del contexto configurado para determinar un estado actual del contexto dependiendo de uno o más o more valores espectrales anteriormente codificados. El determinador del estado del contexto está configurado para adaptar la determinación del contexto a un cambio de una frecuencia fundamental entre los cuadros subsiguientes.
[0038] Este codificador de señales de audio se basa en las mismas ideas y hallazgos que el decodificador de señales de audio antes descrito. Además, el codificador de señales de audio puede ser suplementado por cualquiera de las características y funcionalidades descritas con respecto al decodificador de señales de audio, donde los valores espectrales anteriormente codificados asumen el rol de valores espectrales previamente decodificados en el cálculo del estado del contexto.
[0039] En una realización preferida, el determinador del estado del contexto está configurado para derivar un valor numérico del contexto actual dependiendo de una pluralidad de valores espectrales anteriormente codificados, y para seleccionar una regla de mapeo que describe el mapeo de uno o más valores espectrales, o de una porción de una representación numérica de uno o más valores espectrales, sobre un valor de código dependiendo del valor numérico de contexto actual. En este caso, el codificador de valores espectrales sobre la base del contexto está configurado para suministrar el valor de código que describe uno o más valores espectrales o por lo menos una porción de una representación numérica de uno o más valores espectrales utilizando la regla de mapeo seleccionada por el determinador del estado del contexto.
[0040] Otra realización de acuerdo con la invención presenta un procedimiento para producir una representación de señal de audio decodificada sobre la base de una representación de señal de audio codificada.
[0041] Otra realización de acuerdo con la invención presenta un procedimiento para producir una representación codificada de una señal de audio de entrada.
[0042] Otra realización de acuerdo con la invención presenta un programa de ordenador para la ejecución de uno de dichos procedimientos.
[0043] Los procedimientos y el programa de ordenador se basan en los mismos principios que el decodificador de señales de audio y el codificador de señales de audio antes descritos.
[0044] Más aun, el codificador de señales de audio, los procedimientos y los programas de computación pueden ser complementados por cualquiera de las características y funcionalidades antes explicadas y descritas a continuación con respecto al decodificador de señales de audio.
Breve Descripción de las Figuras
[0045] A continuación se describen las realizaciones de acuerdo con la presente invención tomando como referencia las figuras adjuntas, en las cuales:
Fig. 1 a ilustra un diagrama esquemático de bloques de un codificador de señales de audio, de acuerdo con una realización de la invención;
Fig. 1b ilustra un diagrama esquemático de bloques de un decodificador de señales de audio, de acuerdo con una realización de la invención;
Fig. 2a ilustra un diagrama esquemático de bloques de un codificador de señales de audio, de acuerdo con otra realización de la invención;
5 Fig. 2b ilustra un diagrama esquemático de bloques de un decodificador de señales de audio, de acuerdo con otra realización de la invención;
Fig. 2c ilustra un diagrama esquemático de bloques de un codificador aritmético para usar en el codificador de audio de acuerdo con las realizaciones de la invención;
10 Fig. 2d ilustra un diagrama esquemático de bloques de un decodificador aritmético para usar en el decodificador de señales de audio de acuerdo con las realizaciones de la invención;
Fig. 3a ilustra una representación gráfica de una codificación (codificación/decodificación) aritmética con 15 adaptación del contexto;
Fig. 3b ilustra una representación gráfica de contornos de tono relativos;
Fig. 3c ilustra una representación gráfica de un efecto de estiramiento de la transformada de coseno discreta 20 modificada con distorsión de tiempo (TW–MDCT);
Fig. 4a ilustra un diagrama esquemático de bloques de un determinador del estado del contexto para usar en los codificadores de señales de audio y decodificadores de señales de audio de acuerdo con las realizaciones de la presente invención;
25 Fig. 4b ilustra una representación gráfica de una compresión de frecuencia del contexto, que puede ser ejecutada por el determinador del estado del contexto de acuerdo con la Fig. 4a;
Fig. 4c ilustra una representación de pseudo código de programa de un algoritmo para estirar o comprimir un 30 contexto, que se puede aplicar en las realizaciones de acuerdo con la invención;
Figs. 4d y 4e ilustran una representación de pseudo código de programa de un algoritmo para estirar o comprimir un contexto, que se puede utilizar en las realizaciones de acuerdo con la invención;
35 Figs. 5a, 5b ilustran un extracto detallado de un diagrama esquemático de bloques de un decodificador de señales de audio, de acuerdo con una realización de la invención;
Figs. 6a, 6b ilustran un extracto detallado de un gráfico de flujo de un mapeador para producir una representación de señal de audio decodificada, de acuerdo con una realización de la invención;
40 Fig. 7a ilustra una leyenda de las definiciones de elementos de datos y elementos de ayuda que se utilizan en un decodificador de audio de acuerdo con una realización de la invención;
Fig. 7b ilustra una leyenda de las definiciones de constantes que se utilizan en un decodificador de audio de 45 acuerdo con una realización de la invención;
Fig. 8 ilustra una representación tabulada del mapeo de un índice de palabras en código sobre un valor decodificado con distorsión de tiempo correspondiente;
50 Fig. 9 ilustra una representación de pseudo código de programa de un algoritmo para interpolar en forma lineal entre nodos de distorsión igualmente espaciados;
Fig. 10a ilustra una representación de pseudo código de programa de una función de ayuda "warp_time_inv";
55 Fig. 10b ilustra una representación de pseudo código de programa de una función de ayuda "warp_inv_vec";
Fig. 11 ilustra una representación de pseudo código de programa de un algoritmo para computar un vector de posición de muestras y una longitud de transición;
60 Fig. 12 ilustra una representación tabulada de los valores de una longitud de ventana de síntesis N dependiendo de una secuencia de ventanas y una longitud de cuadro del codificador del núcleo;
Fig. 13 ilustra una representación de matriz de las secuencias de ventanas habilitadas;
Fig. 14 ilustra una representación de pseudo código de programa de un algoritmo para el enventanado y para el solapamiento y suma interno de una secuencia de ventanas del tipo "EIGHT_SHORT_SEQUENCE";
Fig. 15 ilustra una representación de pseudo código de programa de un algoritmo para el enventanado y el solapamiento y suma interno de otra secuencia de ventanas que no son del tipo "EIGHT–SHORT–SEQUENCE";
Fig. 16 ilustra una representación de pseudo código de programa de un algoritmo para remuestrear y
Fig. 17 ilustra una representación gráfica de un contexto para el cálculo de estado que se puede utilizar en algunas realizaciones de acuerdo con la invención;
Fig. 18 ilustra una leyenda de definiciones;
Fig. 19 ilustra una representación de pseudo código de programa de un algoritmo "arith_map_contextQ";
Fig. 20 ilustra una representación de pseudo código de programa de un algoritmo "arith_get_contextQ";
Fig. 21 ilustra una representación de pseudo código de programa de un algoritmo "arith_get_pkQ";
Fig. 22 ilustra una representación de pseudo código de programa de un algoritmo "arith decode()";
Fig. 23 ilustra una representación de pseudo código de programa de un algoritmo para decodificar uno o más planos de bits menos significativos;
Fig. 24 ilustra una representación de pseudo código de programa de un algoritmo para configurar las entradas de una matriz de valores espectrales decodificados aritméticamente;
Fig. 25 ilustra una representación de pseudo código de programa de una función "arith update_contextQ";
Fig. 26 ilustra una representación de pseudo código de programa de un algoritmo "arith_finish()";
Figs. 27a–27f ilustran representaciones de elementos de sintaxis del flujo de audio de acuerdo con una realización de la invención.
Descripción Detallada de las Realizaciones
1. Codificador de señales de audio de acuerdo con la Fig. 1a
[0046] La Fig. 1a ilustra un diagrama esquemático de bloques de un codificador de señales de audio 100, de acuerdo con una realización de la invención.
[0047] El codificador de señales de audio 100 está configurado para recibir una señal de audio de entrada 110 y para producir una representación codificada 112 de la señal de audio de entrada. La representación codificada 112 de la señal de audio de entrada comprende una representación de espectro codificado y una información de distorsión de tiempo codificada.
[0048] El codificador de señales de audio 100 comprende un generador de representaciones en el dominio de la frecuencia 120 que está configurado para recibir la señal de audio de entrada 110 y una información de distorsión de tiempo 122. El generador de representaciones en el dominio de la frecuencia 120 (que se puede considerar como generador de representaciones en el dominio de la frecuencia con distorsión de tiempo) está configurado para producir una representación en el dominio de la frecuencia 124 que representa una versión con distorsión de tiempo de la señal de audio de entrada 110, con distorsión de tiempo ejecutada de acuerdo con la información de distorsión de tiempo 122. El codificador de señales de audio 100 también comprende un codificador de valores espectrales sobre la base del contexto 130 configurado para suministrar una palabra en código 132 que describe uno o más valores espectrales de la representación en el dominio de la frecuencia 124, o por lo menos una porción de una representación numérica de uno o más valores espectrales de la representación en el dominio de la frecuencia 124, dependiendo de un estado del contexto, para obtener valores espectrales codificados de la representación espectral codificada. El estado del contexto se puede describir, por ejemplo, mediante una información de estado del contexto
134. El codificador de señales de audio 100 también comprende un determinador del estado del contexto 140 que está configurado para determinar un estado actual del contexto dependiendo de uno o más valores espectrales anteriormente codificados 124. El determinador del estado del contexto 140 puede ofrecer, en consecuencia, la información de estado del contexto 134 al codificador de valores espectrales sobre la base del contexto 130, donde la información de estado del contexto puede asumir la forma, por ejemplo, de un valor numérico del contexto actual (para la selección de una regla de mapeo o tabla de mapeo) o de una referencia a una regla de mapeo o tabla de mapeo seleccionada. El determinador del estado del contexto 140 está configurado para adaptar la determinación
del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros subsiguientes. En consecuencia, el determinador del estado del contexto puede evaluar una información acerca de un cambio de una frecuencia fundamental entre cuadros de audio subsiguientes. Esta información acerca del cambio de la frecuencia fundamental entre cuadros subsiguientes se puede basar, por ejemplo, en la información de distorsión de tiempo 122 que es utilizada por el generador de representaciones en el dominio de la frecuencia 120.
[0049] En consecuencia, el codificador de señales de audio puede ofrecer una eficiencia codificadora especialmente elevada en el caso de porciones de señales de audio que comprenden una frecuencia fundamental que varía en el tiempo, o un tono que varía en el tiempo, puesto que la derivación de la información de estado del contexto 134 está adaptada a la variación de la frecuencia fundamental entre dos cuadros de audio. En consecuencia, el contexto que utiliza el codificador de valores espectrales sobre la base del contexto 130, se adapta bien a la compresión espectral (con respecto a la frecuencia) o a la expansión espectral (con respecto a la frecuencia) de la representación en el dominio de la frecuencia 124, que tiene lugar si la frecuencia fundamental cambia de un cuadro de audio al siguiente cuadro de audio (es decir, entre los dos cuadros de audio). En consecuencia, la información de estado del contexto 134 se adapta bien, en término medio, a la representación en el dominio de la frecuencia 124 aun en el caso de un cambio de la frecuencia fundamental, lo que a su vez da lugar a una buena eficiencia de codificador del codificador de valores espectrales sobre la base del contexto. Se ha descubierto que si, por el contrario, el estado del contexto no se adaptara al cambio de la frecuencia fundamental, el contexto sería inapropiado en situaciones en que cambia la frecuencia fundamental, dando lugar así a una degradación significativa de la eficiencia de codificación.
[0050] En consecuencia, se puede afirmar que el codificador de señales de audio por lo general actúa con más eficiencia que los codificadores convencionales de señales de audio que utilizan la codificación de valores espectrales basada en el contexto en situaciones en que cambia la frecuencia fundamental.
[0051] Cabe señalar aquí que existen numerosas implementaciones diferentes para adaptar la determinación del estado del contexto a un cambio de la frecuencia fundamental entre los cuadros subsiguientes (es decir de un primer a un segundo cuadro subsiguiente). Por ejemplo, una estructura de memoria contextual, las entradas de la cual se definen o derivan de los valores espectrales de la representación en el dominio de la frecuencia 124, (o, más precisamente, un contenido de la misma) se pueden estirar o comprimir en frecuencia antes de derivar un valor numérico del contexto actual que describe el estado del contexto. Dichos conceptos serán descritos en forma detallada más adelante. Sin embargo también es posible, por otro lado, cambiar (o adaptar) el algoritmo para derivar la información de estado del contexto 134 de las entradas de una estructura de memoria contextual, las entradas de la cual se basan en la representación en el dominio de la frecuencia 124. Por ejemplo, se podría ajustar la entrada (o entradas) de dicha estructura de memoria contextual sin escalamiento de la frecuencia, aunque en la presente no se describe esa solución en forma detallada.
2. Decodificador de señales de audio de acuerdo con la Fig. 1b
[0052] La Fig. lb ilustra un diagrama esquemático de bloques de un decodificador de señales de audio 150.
[0053] El decodificador de señales de audio 150 está configurado para recibir una representación de señal de audio codificada 152, que puede comprender una representación de espectro codificado y una información de distorsión de tiempo codificada. El decodificador de señales de audio 150 está configurado para producir una representación de señal de audio decodificada 154 sobre la base de la representación de señal de audio codificada 152.
[0054] El decodificador de señales de audio 150 comprende un decodificador de valores espectrales basado en el contexto 160, que está configurado para recibir palabras en código de la representación de espectro codificada y para suministrar, sobre la base de la misma, valores espectrales decodificados 162. Más aun, el decodificador de valores espectrales basado en el contexto 160 está configurado para recibir una información de estado del contexto 164 que puede asumir la forma, por ejemplo, de un valor numérico del contexto actual, de una regla de mapeo seleccionada o de una referencia a una regla de mapeo seleccionada. El decodificador de valores espectrales basado en el contexto 160 está configurado para decodificar una palabra en código que describe uno o más valores espectrales, o por lo menos una porción de una representación numérica de uno o más valores espectrales, dependiendo de un estado del contexto (que puede ser descrito por la información de estado del contexto 164) para obtener los valores espectrales decodificados 162. El decodificador de señales de audio 150 también comprende un determinador de estado del contexto 170 que está configurado para determinar un estado actual del contexto dependiendo de uno o más valores espectrales anteriormente decodificados 162. El decodificador de señales de audio 150 también comprende un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 que está configurado para producir una representación en el dominio del tiempo con distorsión de tiempo 182 sobre la base de una serie de valores espectrales decodificados 162 asociados a un cuadro de audio dado y provistos por el decodificador de valores espectrales basado en el contexto. El convertidor del dominio de la
frecuencia al dominio del tiempo con distorsión de tiempo 180 está configurado para recibir una información de distorsión de tiempo 184 para adaptar la provisión de la representación en el dominio del tiempo con distorsión de tiempo 182 a la distorsión de tiempo deseada mediante la información de distorsión de tiempo codificada de la representación de señal de audio codificada 152, por lo que la representación en el dominio del tiempo con
distorsión de tiempo 182 constituye la representación de señal de audio decodificada 154 (o, de manera equivalente, conforma la base de la representación de señal de audio decodificada, en caso de utilizarse un post– procesamiento).
[0055] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 puede comprender, por ejemplo, un convertidor del dominio de la frecuencia al dominio del tiempo configurado para producir una representación en el dominio del tiempo de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados 162 asociados a un cuadro de audio dado y provistos por el decodificador de
valores espectrales basado en el contexto 160. El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo puede comprender asimismo un remuestreador de distorsión de tiempo configurado para remuestrear la representación en el domino del tiempo el cuadro de audio dado, o una versión procesada de la misma, dependiendo de la información de distorsión de tiempo 184, para obtener la representación en el dominio del tiempo remuestreada 182 del cuadro de audio dado.
[0056] Más aun, el determinador del estado del contexto 170 está configurado para adaptar la determinación del estado del contexto (descrito por la información de estado del contexto 164) a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes (es decir, de un primer cuadro de audio a un segundo cuadro de audio subsiguiente).
[0057] El decodificador de señales de audio 150 se basa en los hallazgos que ya se han descrito con respecto al codificador de señales de audio 100. En particular, el decodificador de señales de audio está configurado para adaptar la determinación del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes, de manera tal que el estado del contexto (y, en consecuencia, las presunciones utilizadas por el
decodificador de valores espectrales basado en el contexto 160 con respecto a la probabilidad estadística de aparición de diferentes valores espectrales) se adapte favorablemente, por lo menos término medio, al espectro de un cuadro de audio actual a decodificar usando dicha información de contexto. En consecuencia, las palabras en código que codifican los valores espectrales de dicho cuadro de audio actual pueden ser particularmente cortas, puesto que una buena equivalencia entre el contexto seleccionado, seleccionado de acuerdo con la información de estado del contexto provista por el determinador de estado del contexto 170 y los valores espectrales a decodificar por lo general da lugar a palabras en código comparativamente cortas, lo que trae aparejada una buena eficiencia de velocidad de transmisión de bits.
[0058] Por añadidura, el determinador del estado del contexto 170 puede ser implementado con eficiencia, puesto que la información de distorsión de tiempo 184, que está incluida en la representación de señal de audio codificada 152 de todas maneras para ser utilizada por convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo, puede ser reutilizada por el determinador del estado del contexto 170 como información sobre un cambio de la frecuencia fundamental entre los cuadros de audio subsiguientes, o para derivar una información acerca de un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.
[0059] En consecuencia, la adaptación de la determinación del estado del contexto al cambio de la frecuencia fundamental entre los cuadros subsiguientes ni siquiera requiere información complementaria adicional alguna. En consecuencia, el decodificador de señales de audio 150 trae aparejada una eficiencia codificadora mejorada de la decodificación de valores espectrales basada en el contexto (y da lugar a una eficiencia codificadora mejorada del lado del codificador 100) sin que se requiera información complementaria adicional alguna, lo que constituye una mejora significativa de la eficiencia de la velocidad de transmisión de bits.
[0060] Más aun, se debe tener en cuenta que se pueden utilizar diferentes conceptos para adaptar la determinación del estado del contexto a un cambio de la frecuencia fundamental entre los cuadros subsiguientes (es decir de un primer cuadro de audio a un segundo cuadro de audio subsiguiente). Por ejemplo, se puede adaptar una estructura de memoria contextual, las entradas de la cual se basan en los valores espectrales decodificados 162, por ejemplo, usando un escalamiento de la frecuencia (por ejemplo, un estiramiento de la frecuencia o compresión de la frecuencia) antes de derivar la información de estado del contexto 164 de la estructura de memoria contextual con escalamiento de la frecuencia mediante el determinador del estado del contexto 170. Por otro lado, sin embargo, el determinador del estado del contexto 170 puede utilizar otro algoritmo para derivar la información de estado del contexto 164. Por ejemplo, se puede adaptar cuáles entradas de una estructura de memoria contextual se utilizan para determinar un estado del contexto para la decodificación de una palabra en código que tiene un índice de frecuencia de palabras en código dado. Aunque no se ha descrito en detalle este último concepto, se lo puede aplicar, por supuesto, en algunas realizaciones de acuerdo con la invención. Además, se pueden aplicar diferentes conceptos para determinar el cambio de la frecuencia fundamental.
3. Codificador de señales de audio de acuerdo con la Fig. 2a
[0061] La Fig. 2a ilustra un diagrama esquemático de bloques de un codificador de señales de audio 200 de acuerdo con una realización de la invención. Se debe notar que el codificador de señales de audio 200 de acuerdo
con la Fig. 2 es muy similar al codificador de señales de audio 100 de acuerdo con la Fig. la, por lo que los elementos y señales idénticos se designan con números de referencia idénticos y no se los vuelve a explicar en detalle.
[0062] El codificador de señales de audio 200 está configurado para recibir una señal de audio de entrada 110 y para suministrar, sobre la base de la misma, una representación de señal de audio codificada 112. Opcionalmente, el codificador de señales de audio 200 también está configurado para recibir información de distorsión de tiempo generada en forma externa 214.
[0063] El codificador de señales de audio 200 comprende un generador de representaciones en el dominio de la frecuencia 120, cuya funcionalidad puede ser idéntica a la funcionalidad del generador de representaciones en el dominio de la frecuencia 120 del codificador de señales de audio 100. El generador de representaciones en el dominio de la frecuencia 120 produce una representación en el dominio de la frecuencia que representa una versión con distorsión de tiempo de la señal de audio de entrada 110, representación en el dominio de la frecuencia que se designa con 124. El codificador de señales de audio 200 también comprende un codificador de valores espectrales sobre la base del contexto 130 y un determinador del estado del contexto 140, que operan de la manera descrita con respecto al codificador de señales de audio 100. En consecuencia, el codificador de valores espectrales sobre la
base del contexto 130 suministra palabras en código (por ej., acod_m), donde cada palabra clave representa uno o más valores espectrales de la representación de espectro codificada, o por lo menos una porción de una representación numérica de uno o más valores espectrales.
[0064] El codificador de señales de audio comprende opcionalmente un analizador de distorsión de tiempo o analizador de frecuencia fundamental o analizador de tono 220, que está configurado para recibir la señal de audio de entrada 110 y para comunicar, sobre la base de la misma, una información de contorno de distorsión de tiempo 222, que describe, por ejemplo, una distorsión de tiempo que ha de aplicar el generador de representaciones en el dominio de la frecuencia 120 a la señal de audio de entrada 110, a fin de compensar un cambio de la frecuencia fundamental durante un cuadro de audio y/o una evolución temporal de una frecuencia fundamental de la señal de
audio de entrada 110 y/o una evolución temporal del tono de la señal de audio de entrada 110. El codificador de señales de audio 200 también comprende un codificador de contorno con distorsión de audio 224, que está configurado para producir una información de distorsión de tiempo codificada 226 sobre la base de la información de contorno de distorsión de tiempo 222. La información de distorsión de tiempo codificada 226 está incluida preferentemente en la representación de señal de audio codificada 112, y puede asumir la forma, por ejemplo, de valores de relación de distorsión de tiempo (codificados) tw_ratio [i]".
[0065] Más aun, se debe tener en cuenta que la información de contorno de distorsión de tiempo 222 puede ser transmitida al generador de representaciones en el dominio de la frecuencia 120 y también al determinador del estado del contexto 140.
[0066] El codificador de señales de audio 200 puede comprender además un procesador de modelos psicoacústicos 228, que está configurado para recibir la señal de audio de entrada 110, o una versión preprocesada de la misma, y para ejecutar un análisis psicoacústico a fin de determinar, por ejemplo, los efectos de enmascaramiento temporal y/o los efectos de enmascaramiento de frecuencia. En consecuencia, el procesador de modelos psicoacústicos 228 puede proveer una información de control 230, que representa, por ejemplo, una relevancia psicoacústica de diferentes bandas de frecuencia de la señal de audio de entrada, como se conoce con respecto a los codificadores de audio en el dominio de la frecuencia.
[0067] A continuación se describe brevemente el trayecto de las señales del generador de representaciones en el dominio de la frecuencia 120. El generador de representaciones en el dominio de la frecuencia 120 comprende un preprocesamiento opcional 120a, que puede procesar previamente la señal de audio de entrada 110, para producir una versión preprocesada 120b de la señal de audio de entrada 110. El generador de representaciones en el dominio de la frecuencia 120 también comprende un muestreador/remuestreador configurado para muestrear o remuestrear la señal de audio de entrada 110, o la versión preprocesada 120b de la misma, dependiendo de una información sobre posiciones de muestreo 120d recibida de una calculadora de posiciones de muestreo 120e. En consecuencia, el muestreador/remuestreador 120c puede aplicar un muestreo o remuestreo con variación de tiempo a la señal de audio de entrada 110 (o la versión preprocesada 120b de la misma). Mediante la aplicación de dicho muestreo con variación de tiempo (que varía temporalmente las distancias temporales entre puntos de muestreo efectivos) se obtiene una representación muestreada o remuestreada en el dominio del tiempo 120f, en la cual la variación temporal del tono de una frecuencia fundamental está reducida en comparación con la señal de audio de entrada 110. Las posiciones de muestreo son calculadas por la calculadora de posiciones de muestreo 120e dependiendo de la información de contorno de distorsión de tiempo 222. El generador de representaciones en el dominio de la frecuencia 120 también comprende un enventanador 120g, donde el enventanador 120g está configurado para enventanar la representación en el dominio del tiempo muestreada o remuestreada 120f provista por el muestreador o remuestreador 120c. El enventanado se lleva a cabo para reducir o eliminar las anomalías de bloqueo, para dar lugar así a una operación sin altibajos de la operación de traslape y suma en un decodificador de señales de audio. El generador de representaciones en el dominio de la frecuencia 120 también comprende un
convertidor del dominio del tiempo al dominio de la frecuencia 120i que está configurado para recibir la representación en el dominio del tiempo enventanada y muestreada/remuestreada 120h y para presentar, sobre la base de la misma, una representación en el dominio de la frecuencia 120j que puede comprender, por ejemplo, una serie de serie de coeficientes espectrales por cada cuadro de audio de la señal de audio de entrada 110 (donde los cuadros de audio de la señal de audio de entrada pueden estar, por ejemplo, traslapados o no traslapados, donde en algunas realizaciones es preferible un traslape de aproximadamente 50 % para traslapar cuadros de audio). Sin embargo, se debe apreciar que, en algunas realizaciones, se puede incluir una pluralidad de series de coeficientes espectrales para un solo cuadro de audio.
[0068] El generador de representaciones en el dominio de la frecuencia 120 comprende opcionalmente un procesador espectral 120k que está configurado para ejecutar un modelado de ruido temporal y/o una predicción a largo plazo y/o cualquier otra forma de post–procesamiento espectral, para obtener así una representación postprocesada en el dominio de la frecuencia 120l.
[0069] El generador de representaciones en el dominio de la frecuencia 120 comprende opcionalmente un escalador/cuantizador 120m, donde el escalador/cuantizador 120m puede estar configurado, por ejemplo, para escalar diferentes cajas de frecuencia (o bandas de frecuencia) de la representación en el dominio de la frecuencia 120j o de la versión post–procesada 1201 de la misma, de conformidad con la información de control 230 provista por el procesador de modelos psicoacústicos 228. En consecuencia, las cajas de frecuencia (o bandas de frecuencia, que comprenden una pluralidad de las cajas de frecuencia) pueden ser escaladas, por ejemplo, de conformidad con la relevancia psicoacústica, de tal manera que, en efecto, las cajas de frecuencia (o bandas de frecuencia) con gran relevancia psicoacústica sean codificadas con gran precisión por un codificador de valores espectrales sobre la base del contexto, en tanto que las cajas de frecuencia (o bandas de frecuencia) con baja relevancia psicoacústica son codificadas con baja precisión. Más aun, se debe apreciar que la información de control 230 puede ajustar, opcionalmente, los parámetros del enventanado del convertidor del dominio del tiempo al dominio de la frecuencia y/o del post–procesamiento espectral. Además, la información de control 230 puede estar incluida, en forma codificada, en la representación de señal de audio codificada 112, como es de conocimiento de la persona con capacitación en la técnica.
[0070] En lo que respecta a la funcionalidad del codificador de señales de audio 200, se puede decir que una distorsión de tiempo (en el sentido de un muestreo o remuestreo no uniforme con variación de tiempo) es aplicada por el muestreador/remuestreador 120c de conformidad con la información de contorno de distorsión de tiempo 220. En consecuencia, es posible obtener una representación en el dominio de la frecuencia 120j con picos y valles espectrales pronunciados aun en presencia de una señal de audio de entrada que presenta una variación temporal del tono que, en ausencia del muestreo/remuestreo con variación de tiempo, daría lugar a un espectro confuso. Además, la derivación del estado del contexto para ser utilizada por el codificador de valores espectrales sobre la base del contexto 130 se adapta dependiendo de un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes, lo que da como resultado una eficiencia codificadora particularmente alta, como ya se mencionara. Por añadidura, la información de contorno de distorsión de tiempo 222, que sirve como base tanto para el cómputo de la posición de muestreo para el muestreador/remuestreador 120c como para la adaptación de la determinación del estado del contexto, se codifica utilizando el codificador de contorno con distorsión de audio 224, de tal manera que una información de distorsión de tiempo codificada 226 que describe la información de contorno de distorsión de tiempo 222 esté incluida en la representación de señal de audio codificada 112. En consecuencia, la representación de señal de audio codificada 112 aporta la información necesaria para la decodificación eficiente de la señal de audio de entrada codificada 110 del lado de un decodificador de señales de audio.
[0071] Además, se debe apreciar que los componentes individuales del codificador de señales de audio 200 puede ejecutar sustancialmente una funcionalidad inversa de los componentes individuales del decodificador de señales de audio 240, que se describen más adelante tomando como referencia la Fig. 2b. Además, también se hace referencia a la descripción detallada atinente a la funcionalidad del decodificador de señales de audio en la totalidad de la presente memoria, que también permite comprender el decodificador de señales de audio.
[0072] Se debe apreciar asimismo que se pueden efectuar modificaciones sustánciales al decodificador de señales de audio y los componentes individuales del mismo. Por ejemplo, se pueden combinar algunas funcionalidades, como por ejemplo, el muestreo/remuestreo, el enventanado y la conversión del dominio del tiempo al dominio de la frecuencia. Además, se pueden introducir pasos adicionales de procesamiento en caso de ser apropiado.
[0073] Además, la representación de señal de audio codificada puede comprender, naturalmente, información complementaria adicional, si resulta conveniente o necesario.
4. Decodificador de señales de audio de acuerdo con la Fig. 2b
[0074] La Fig. 2b ilustra un diagrama esquemático de bloques de un decodificador de señales de audio 240 de
acuerdo con una realización de la invención. El decodificador de señales de audio 240 puede ser muy similar al decodificador de señales de audio 150 de acuerdo con la Fig. lb, de manera tal que los medios y señales idénticos se designan con números de referencia idénticos y no se los vuelve a describir en detalle.
[0075] El decodificador de señales de audio 240 está configurado para recibir una representación de señal de audio codificada 152, por ejemplo, en la forma de un flujo de bits. La representación de señal de audio codificada 152 comprende una representación de espectro codificado, por ejemplo, en forma de palabras en código (por ej., acod_m) que representan uno o más valores espectrales, o por lo menos una porción de una representación numérica de uno o más valores espectrales. La representación de señal de audio codificada 152 también comprende una información de distorsión de tiempo codificada. Además, el decodificador de señales de audio 240 está configurado para producir una representación de señal de audio decodificada 154, por ejemplo, una representación en el domino del tiempo del contenido de audio.
[0076] El decodificador de señales de audio 240 comprende un decodificador de valores espectrales basado en el contexto 160, que está configurado para recibir las palabras en código que representan valores espectrales de la representación de señal de audio codificada 152 y para producir, sobre la base de la misma, valores espectrales decodificados 162. Además, el decodificador de señales de audio 240 también comprende un determinador del estado del contexto 170, que está configurado para producir la información de estado del contexto 164 al decodificador de valores espectrales basado en el contexto 160. El decodificador de señales de audio 240 también comprende un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180, que recibe los valores espectrales decodificados 162 y que produce la representación de señal de audio codificada 154.
[0077] El decodificador de señales de audio 240 también comprende una calculadora de distorsión de tiempo (o decodificador de distorsión de tiempo) 250, que está configurada para recibir la información de distorsión de tiempo codificada, que está incluida en la representación de señal de audio codificada 152, y para producir, sobre la base de la misma, información de distorsión de tiempo decodificada 254. La información de distorsión de tiempo codificada puede comprender, por ejemplo, palabras en código "tw ratio[i]" que describen una variación temporal de una frecuencia fundamental o de un tono. La información de distorsión tiempo decodificada 254 puede asumir la forma, por ejemplo, de una información de contorno de distorsión. Por ejemplo, la información de distorsión tiempo decodificada 254 puede comprender los valores "warp_value_tbl[tw ratio[i]]" o valores prel[n], como se describe más adelante en forma detallada. Opcionalmente, el decodificador de señales de audio 240 también comprende una calculadora de contorno de distorsión de tiempo 256, que está configurada para derivar una información de contorno de distorsión de tiempo 258 de la información de distorsión tiempo decodificada 254. La información de contorno de distorsión de tiempo 258 puede servir, por ejemplo, como información de entrada para el determinador de estado del contexto 170, y también para el convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180.
[0078] A continuación se describen algunos detalles con respecto al convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo. El convertidor 180 puede comprender, opcionalmente, un cuantizador inverso/reescalador 180a, que puede estar configurado para recibir los valores espectrales decodificados 162 del decodificador de valores espectrales basado en el contexto 160 y para producir una versión inversamente cuantizada y/o reescalada 180b de los valores espectrales decodificados 162. Por ejemplo, el cuantizador inverso/reescalador 180a puede estar configurado para ejecutar una operación que es por lo menos aproximadamente inversa a la operación del cuantizador inverso/reescalador opcional 120m del codificador de señales de audio 200. En consecuencia, el cuantizador inverso/reescalador opcional 180a puede recibir una información de control que puede corresponder a la información de control 230.
[0079] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 comprende opcionalmente un preprocesador espectral 180c que está configurado para recibir los valores espectrales decodificados 162 o los valores inversamente cuantizados/reescalados 180b y para producir, sobre la base de estos, valores espectrales espectralmente preprocesados 180d. Por ejemplo, el preprocesador espectral 180c puede ejecutar una operación inversa en comparación con el post–procesador 120k del codificador de señales de audio
200.
[0080] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 también comprende un convertidor del dominio de la frecuencia al dominio del tiempo 180e, que está configurado para recibir los valores espectrales decodificados 162, los valores inversamente cuantizados/reescalados 180b o los valores espectrales espectralmente preprocesados 180d y para generar, sobre la base de los mismos, una representación en el dominio del tiempo 180f. Por ejemplo, el convertidor del dominio de la frecuencia al dominio del tiempo puede estar configurado para ejecutar una transformada inversa del dominio espectral al dominio del tiempo, por ejemplo, una transformada de coseno discreta modificada inversa (IMDCT). El convertidor del dominio de la frecuencia al dominio del tiempo 180e puede generar, por ejemplo, una representación en el domino del tiempo de un cuadro de audio de la señal de audio codificada sobre la base de una serie de valores espectrales decodificados o, de lo contrario, sobre la base de una pluralidad de series de valores espectrales decodificados. Sin embargo, los cuadros de audio de la señal de audio codificada pueden traslaparse, por ejemplo, en el tiempo en algunos casos. De todas maneras, los cuadros de audio pueden no traslaparse en otros casos.
[0081] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 también
comprende un enventanador 180g, que está configurado para enventanar la representación en el dominio del tiempo 180f y para generar una representación en el dominio del tiempo enventanada 180h sobre la base de la representación en el dominio del tiempo 180f provista por el convertidor del dominio de la frecuencia al dominio del tiempo 180e.
[0082] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 también comprende un remuestreador 180i, que está configurado para remuestrear la representación en el dominio del tiempo enventanada 180h y para generar, sobre la base de la misma, una representación en el dominio del tiempo enventanada y remuestreada 180j. El remuestreador 180i está configurado para recibir una información sobre posiciones de muestreo 180k de una calculadora de posiciones de muestreo 1801. En consecuencia, el remuestreador 180i genera una representación en el dominio del tiempo enventanada y remuestreada 180j por cada cuadro de la representación de señal de audio codificada, donde los cuadros subsiguientes pueden estar traslapados.
[0083] En consecuencia, un dispositivo de traslape/suma 180m recibe las representaciones en el dominio del tiempo enventanadas y remuestreadas 180j de los cuadros de audio subsiguientes de la representación de señal de audio codificada 152 y traslapa y suma dichas representaciones en el dominio del tiempo enventanadas y remuestreadas 180j a fin de obtener transiciones sin altibajos entre los cuadros de audio subsiguientes.
[0084] El convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo comprende opcionalmente un post–procesamiento en el dominio del tiempo 180o configurado para ejecutar un post– procesamiento sobre la base de una señal de audio combinada 180n provista por el dispositivo de traslape/suma 180m.
[0085] La información de contorno de distorsión de tiempo 258 sirve como información de entrada para el determinador del estado del contexto 170, que está configurado para adaptar la derivación de la información de estado del contexto 164 dependiendo de la información de contorno de distorsión de tiempo 258. Además, la calculadora de posiciones de muestreo 1801 del convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 recibe asimismo la información de contorno de distorsión de tiempo y genera la información sobre posiciones de muestreo 180k sobre la base de dicha información de contorno de distorsión de tiempo 258, para adaptar así el remuestreo con variación de tiempo ejecutado por el remuestreador 180l dependiendo del contorno de distorsión de tiempo descrito por la información de contorno de distorsión de tiempo. En consecuencia, se introduce una variación de tono en la señal en el dominio del tiempo descrita por la representación en el dominio del tiempo 180f de conformidad con el contorno de distorsión de tiempo descrito por la información de contorno de distorsión de tiempo 258. De esa manera, es posible generar una representación en el dominio del tiempo 180j de una señal de audio que presenta una variación significativa del tono en el tiempo (o un cambio significativo de la frecuencia fundamental en el tiempo) sobre la base de un espectro disperso 180d con picos y valles pronunciados. Dicho espectro puede ser codificado con alta eficiencia de velocidad de transmisión de bits y, en consecuencia, da lugar a una demanda de velocidad de bits comparativamente baja de la representación de señal de audio codificada
152.
[0086] Además, el contexto (o, más generalmente, la derivación de la información de estado del contexto 164) también se adapta dependiendo de la información de contorno de distorsión de tiempo 258 usando el determinador del estado del contexto 170. En consecuencia, la información de distorsión de tiempo codificada 252 se reutiliza dos veces y contribuye a una mejora de la eficiencia de codificación dando lugar a la codificación de de un espectro disperso y dando lugar a una adaptación de la información de estado del contexto a las características específicas del espectro en presencia de una distorsión de tiempo o de una variación de la frecuencia fundamental en el tiempo.
[0087] A continuación se describen más detalles con respecto a la funcionalidad de los componentes individuales del codificador de señales de audio 240.
5. Codificador aritmético de acuerdo con la Fig. 2c
[0088] A continuación se describe un codificador aritmético 290, que puede tomar el lugar del codificador de valores espectrales sobre la base del contexto 130 en combinación con el determinador del estado del contexto 140 en el codificador de señales de audio 100 o en el codificador de señales de audio 200. El codificador aritmético 290 está configurado para recibir valores espectrales 291 (por ejemplo, los valores espectrales de la representación en el dominio de la frecuencia 124) y para generar palabras en código 292a, 292b sobre la base de estos valores espectrales 291.
[0089] En otras palabras, el codificador aritmético 290 puede estar configurado, por ejemplo, para recibir una pluralidad de valores espectrales post–procesados y escalados y cuantizados 291 de la representación de audio en el dominio de la frecuencia 124. El codificador aritmético comprende un extractor de planos de bits más significativos 290a, que está configurado para extraer un plano de bits más significativos a partir de un valor espectral. Se debe notar aquí que los planos de bits más significativos pueden comprender uno o incluso más bits (por ej., dos o tres
bits), que son los bits más significativos del valor espectral.
[0090] Por consiguiente, el extractor de planos de bits más significativos 290a ofrece un valor de plano de bits más significativos 290b de un valor espectral. El codificador aritmético 290 también comprende un primer determinador de palabras clave 290c, que está configurado para determinar una palabra clave aritmética acod m[pki][m] que representa el valor de planos de bits más significativos m.
[0091] Opcionalmente, el primer determinador de palabras en código 290c también puede generar una o más palabras en código de escape (en la presente también designadas con "ARITH_ESCAPE") que indican, por ejemplo, cuántos planos de bits menos significativos hay disponibles (y, en consecuencia, que indican el peso numérico de los planos de bits más significativos). El primer determinador de palabras en código 290c puede estar configurado para producir la palabra en código asociada a un valor de plano de bits más significativos al usar una a tabla de frecuencias cumulativas seleccionada que tiene (o a la que se hace referencia por) un índice de tabla de frecuencias cumulativas pki
[0092] A fin de determinar cuál de las tablas de frecuencias cumulativas se debe seleccionar, el codificador aritmético comprende preferentemente un rastreador de estado 290d que puede asumir la función, por ejemplo, del determinador del estado del contexto 140. El rastreador de estado 290d está configurado para rastrear el estado del codificador aritmético, por ejemplo, observando qué valores espectrales han sido ya codificados. El rastreador de estado 290d ofrece, en consecuencia, una información de estado 290e que puede ser equivalente a la información de estado del contexto 134, por ejemplo, en forma de un valor de estado designado con "s" o "t" en ocasiones (donde no se debe confundir el valor de estado s con el factor de estiramiento de la frecuencia s).
[0093] El codificador aritmético 290 también comprende un selector de tablas de frecuencias cumulativas 290f, que está configurado para recibir la información de estado 290e y para transferir una información 290g que describe la tabla de frecuencias cumulativas seleccionada al determinador de palabras en código 290c. Por ejemplo, el selector de tablas de frecuencias cumulativas 290f puede generar un índice de tabla de frecuencias cumulativas "pki" que describe qué tabla de frecuencias cumulativas, de una serie de, por ejemplo, 64 tablas de frecuencias cumulativas, seleccionar para ser utilizada por el determinador de palabras en código 290c. Por otro lado, el selector de tablas de frecuencias cumulativas 290f puede comunicar la totalidad de la tabla de frecuencias cumulativas al determinador de palabras en código 290c. De esa manera, el determinador de palabras en código 290c puede empelar la tabla de frecuencias cumulativas seleccionada para la generación de la palabra en código acod m[pki] [m] del valor de plano de bits más significativos m, de tal manera que la palabra en código real acod m[pki][m] que codifica el valor de plano de bits más significativos depende del valor de m y el índice de tabla de frecuencias cumulativas pki y, en consecuencia, de la información de estado actual 290e. Más adelante se describen más detalles con respecto al proceso de codificación y el formado de palabras en código. Además, más adelante también se describen detalles con respecto a la operación del rastreador de estado 290d, que es equivalente al determinador del estado del contexto 140.
[0094] El codificador aritmético 290 comprende además un extractor de planos de bits menos significativos 290h, que está configurado para extraer uno o más planos de bits menos significativos de la representación de audio en el dominio de la frecuencia escalada y cuantizada 291, si uno o más de los valores espectrales a codificar exceden el rango de valores codificables con el uso del plano de bits más significativos solamente. Los planos de bits menos significativos pueden comprender uno o más bits, según convenga. En consecuencia, el extractor de planos de bits menos significativos 290h ofrece una información de planos de bits menos significativos 290i.
[0095] El codificador aritmético 290 también comprende un segundo determinador de palabras en código 290j, que está configurado para recibir la información de planos de bits menos significativos 290i y para generar, sobre la base de la misma, cero, una o incluso más palabras en código "acod r" que representan el contenido de cero, uno o más planos de bits menos significativos. El segundo determinador de palabras en código 290j puede estar configurado para aplicar un algoritmo de codificación aritmética o cualquier otro algoritmo de codificación para derivar la palabra en código de planos de bits menos significativos "acod r" de la información planos de bits menos significativos 290i.
[0096] Se debe apreciar aquí que el número de planos de bits menos significativos puede variar dependiendo del valor de los valores espectrales escalados y cuantizados 291, por lo que puede no haber incluso ningún plano de bits menos significativos, si el valor espectral escalado y cuantizado a codificar es comparativamente bajo, por lo que puede haber un plano de bits menos significativos si el valor espectral escalado y cuantizado actual a codificar es de un rango medio y de manera que puede haber más de un plano de bits menos significativos si el valor espectral escalado y cuantizado a codificar asume un valor comparativamente alto.
[0097] En resumen de lo expuesto, el codificador aritmético 290 está configurado para codificar valores espectrales escalados y cuantizados, descritos por la información 29l, usando un proceso de codificación jerárquica. Se codifica el plano de bits más significativos (que comprende, por ejemplo, uno, dos o tres bits por valor espectral) para obtener una palabra clave aritmética "acod m[pki] [m]" de un valor plano de bits más significativos. Se codifica uno o más planos de bits menos significativos (donde cada uno de los planos de bits menos significativos comprende, por ejemplo, uno, dos o tres bits) para obtener una o más palabras en código "acod r". Al codificar el plano de bits más
significativos, se mapea el valor que figura en el plano de bits más significativos con una palabra en código acod
m[pki][m]. Existen 64 tablas de frecuencias cumulativas diferentes para la codificación del valor m dependiendo de un estado del codificador aritmético 170, es decir dependiendo de valores espectrales anteriormente codificados. En consecuencia, se obtiene la palabra en código "acod_m[pki][m]". Asimismo, se genera una o más palabras en código "acod r" y se la incluye en el flujo de bits si está presente uno o más planos de bits menos significativos.
[0098] Sin embargo, de conformidad con la presente invención, la derivación de la información de estado 290e, que es equivalente a la información de estado del contexto 134, se adapta a los cambios de una frecuencia fundamental de un primer cuadro de audio a un segundo cuadro de audio subsiguiente (es decir entre dos cuadros de audio subsiguientes). Más adelante se describen los detalles con respecto a esta adaptación, que puede ser ejecutada por el rastreador de estado 290d.
6. Decodificador aritmético de acuerdo con la Fig. 2d
[0099] Fig. 2d ilustra un diagrama esquemático de bloques de un decodificador aritmético 295, que puede tomar el lugar del decodificador de valores espectrales basado en el contexto 160 y del determinador del estado del contexto 170 en el decodificador de señales de audio 150 de acuerdo con la Fig. 1d y el decodificador de señales de audio 240 de acuerdo con la Fig. 2b.
[0100] El decodificador aritmético 295 está configurado para recibir una representación codificada en el dominio de
la frecuencia 296, que puede comprender, por ejemplo, datos espectrales aritméticamente codificados en forma de palabras en código "acod m" y "acod r". La representación codificada en el dominio de la frecuencia 296 puede ser equivalente a las palabras en código ingresadas en decodificador de valores espectrales basado en el contexto 160. Además, el decodificador aritmético está configurado para producir una representación de audio decodificada en el dominio de la frecuencia 297, que puede ser equivalente a los valores espectrales decodificados 162 provistos por el decodificador de valores espectrales basado en el contexto 160.
[0101] El decodificador aritmético 295 comprende un determinador de planos de bits más significativos 295a, que está configurado para recibir la palabra en código aritmética acod m[pki][m] que describe el valor de plano de bits más significativos m. El determinador de planos de bits más significativos 295a puede estar configurado para usar una tabla de frecuencias cumulativas de una serie que comprende una pluralidad de, por ejemplo, 64 tablas de
frecuencias cumulativas para derivar el valor de plano de bits más significativos m de la palabra en código aritmética "acod m[pki][m]".
[0102] El determinador de planos de bits más significativos 295a está configurado para derivar valores 295b de un plano de bits más significativos de valores espectrales sobre la base de la palabra en código "acod m". El decodificador aritmético 295 comprende además un determinador de planos de bits menos significativos 295c, que está configurado para recibir una o más palabras en código "acod r" que representan una o más planos de bits menos significativos de un valor espectral. En consecuencia, el determinador de planos de bits menos significativos 295c está configurado para generar valores decodificados 295d de uno o más planos de bits menos significativos. El decodificador aritmético 295 también comprende un combinador de planos de bits 295e, que está configurado para recibir los valores decodificados 295b del plano de bits más significativos de los valores espectrales y los valores decodificados 295b de uno o más planos de bits menos significativos de los valores espectrales si dichos planos de bits menos significativos están disponibles para los valores espectrales actuales. En consecuencia, el combinador de planos de bits 295e proveer los valores espectrales codificados, que son parte de la representación de audio decodificada en el dominio de la frecuencia 297. Naturalmente, el decodificador aritmético 295 por lo general está configurado para generar una pluralidad de valores espectrales a fin de obtener una serie completa de valores espectrales decodificados asociados a un cuadro actual del contenido de audio.
[0103] El decodificador aritmético 295 comprende además un selector de tablas de frecuencias cumulativas 295f, que está configurado para seleccionar, por ejemplo, una de las 64 tablas de frecuencias cumulativas dependiendo de un índice de estado 295g que describe un estado del decodificador aritmético 295. El decodificador aritmético 295 comprende además un rastreador de estado 295h, que está configurado para rastrear un estado del decodificador aritmético dependiendo de los valores espectrales antes decodificados. El rastreador de estado 295h puede corresponder al determinador del estado del contexto 170. Más adelante se describen detalles con respecto al rastreador de estado 295h.
[0104] En consecuencia, el selector de tablas de frecuencias cumulativas 295f está configurado para producir un índice (por ejemplo, pki) de una tabla de frecuencias cumulativas seleccionada, o una tabla de frecuencias cumulativas seleccionada en sí, para la aplicación en la decodificación del valor de plano de bits más significativos m dependiendo de la palabra en código "acod m".
[0105] En consecuencia, el decodificador aritmético 295 aprovecha diferentes probabilidades de diferentes combinaciones de valores del plano de bits más significativos de los valores espectrales adyacentes. Se seleccionan y aplican diferentes tablas de frecuencias cumulativas dependiendo del contexto. En otras palabras, las
dependencias estadísticas entre los valores espectrales se aprovechan seleccionando diferentes tablas de frecuencias cumulativas de una serie que comprende, por ejemplo, 64 tablas de frecuencias cumulativas diferentes, dependiendo de un índice de estado 295g (que puede ser equivalente a la información de estado del contexto 164), que se obtiene mediante la observación de los valores espectrales anteriormente decodificados. Se considera un escalamiento espectral adaptando la derivación del índice de estado 295g (o de la información de estado del contexto 164) dependiendo de una información acerca de un cambio de una frecuencia fundamental (o de un tono) entre los cuadros de audio subsiguientes.
7. Reseña General del concepto de Adaptación del contexto
[0106] A continuación, se presenta una reseña general del concepto de adaptación del contexto de un codificador aritmético usando la información de distorsión de tiempo.
7.1 Información de Antecedentes
[0107] A continuación, se presenta cierta información de antecedentes a fin de facilitar la comprensión de la presente invención. Se debe apreciar que, en la Referencia [3], se utiliza un codificador aritmético con adaptación del contexto (ver, por ejemplo, la Referencia [5]) para codificar sin pérdidas las cajas espectrales cuantizadas.
[0108] El contexto utilizado está ilustrado en la Fig. 3a, que ilustra una representación gráfica de dicha codificación aritmética adaptada al contexto. En la Fig. 3a, se puede ver que se utilizan las cajas ya decodificadas del cuadro anterior para determinar el contexto correspondiente a las cajas de frecuencia que se deben decodificar. Se debe apreciar aquí que no importa, para la invención descrita, si el contexto y la codificación están organizados en cuatro– tuplos o en línea u otros n–tuplos, donde n puede variar.
[0109] Haciendo referencia, una vez más, a la Fig. 3a, que ilustra una codificación o decodificación aritmética de adaptación del contexto, se debe apreciar que una abscisa 310 describe un tiempo y que una ordenada 312 describe una frecuencia. Se debe apreciar aquí que los cuatro–tuplos de valores espectrales se decodifican utilizando un estado común del contexto de conformidad con el contexto expuesto en la Fig. 3a. Por ejemplo, un contexto para una decodificación de un cuatro–tuplo 320 de valores espectrales asociados a un cuadro de audio que
tiene el índice de tiempo k y el índice de frecuencia i se basa en los valores espectrales de un primer cuatro–tuplo 322 que tiene el índice de tiempo k y el índice de frecuencia i - 1, un segundo cuatro–tuplo 324 que tiene el índice de tiempo k - 1 y el índice de frecuencia i -1, un tercer cuatro–tuplo 326 que tiene el índice de tiempo k – 1 y el índice de frecuencia i y un cuarto cuatro–tuplo 328 que tiene el índice de tiempo k – 1 y el índice de frecuencia i + 1. Se debe apreciar que cada uno de los índices de frecuencia i - 1, i, i + 1 designa (o, más precisamente, está asociado a) cuatro cajas de frecuencia de la conversión del dominio del tiempo al dominio de la frecuencia o la conversión del dominio de la frecuencia al dominio del tiempo. En consecuencia, el contexto para la decodificación del cuatro–tuplo 320 se basa en los valores espectrales de los cuatro–tuplos 322, 324, 326, 328 de valores espectrales. En consecuencia, se utilizan los valores espectrales con los índices de frecuencia de tuplos i - 1, i e i + 1 del cuadro de audio anterior que tiene el índice de tiempo k - 1 para derivar el contexto para la decodificación de los valores espectrales con el índice de frecuencia de tuplos i del cuadro de audio actual que tiene el índice de tiempo k (típicamente en combinación con los valores espectrales con índices de frecuencia de tuplos i - 1 del cuadro de audio decodificado actualmente que tiene el índice de tiempo k).
[0110] Se ha descubierto que la transformada de distorsión de tiempo lleva por lo general a una mejor compactación de la energía en el caso de señales armónicas con variaciones de las frecuencias fundamentales, que llevan a espectros que exhiben una estructura armónica clara en lugar de parciales más altas más o menos difusas que se producirían si no se aplicara la distorsión de tiempo. Un efecto adicional de la distorsión de tiempo es causado por las diferentes frecuencias de muestreo locales promedio de los cuadros consecutivos. Se ha descubierto que este efecto causa el estiramiento a lo largo del eje de frecuencia de los espectros consecutivos de una señal sin una estructura armónica de otro modo constante pero con frecuencia fundamental variada.
[0111] Un trazado inferior 390 de la Fig. 3c ilustra un ejemplo de ello. Contiene los trazados (por ejemplo, de una magnitud en dB en función de un índice de caja de frecuencia) de dos cuadros consecutivos (por ejemplo, los cuadros designados “último cuadro” y “este cuadro”, donde se codifica una señal armónica con una variación de la frecuencia fundamental mediante un codificador de transformada de coseno discreta modificada con distorsión de tiempo (codificador TW–MDCT).
[0112] La evolución del tono relativo correspondiente se puede encontrar en un trazado 370 de la Fig. 3b, que ilustra un tono relativo decreciente y, por lo tanto, una frecuencia relativa creciente de las líneas armónicas.
[0113] Esto lleva a una frecuencia incrementada de las líneas armónicas después de la aplicación del algoritmo de distorsión de tiempo (por ejemplo, el muestreo o remuestreo de distorsión de tiempo). Se puede apreciar claramente que este espectro del cuadro actual (también designado como "este cuadro") es una copia aproximada del espectro del último cuadro, aunque se estira a lo largo del eje de frecuencia 392 (rotulado en términos de cajas de frecuencia
de la transformada de coseno discreta modificada). Esto significaría además que, si utilizáramos el cuadro anterior (también designado como “último cuadro”) como contexto para el codificador aritmético (por ejemplo, para la decodificación de los valores espectrales del cuadro actual (también designado como "este cuadro"), el contexto sería subóptimo, puesto que en este caso se producirían parciales apareados en diferentes cajas de frecuencia.
[0114] Un trazado superior 380 de la Fig. 3c ilustra esto (por ej., una demanda de bits para codificar valores espectrales usando una codificación aritmética dependiente del contexto) en comparación con un esquema de codificación de Huffman que normalmente se considera menos eficaz que un esquema de codificación aritmética. Debido al contexto anterior subóptimo (que puede estar definido, por ejemplo, por los valores espectrales del "último cuadro", que están representados en el trazado 390 de la Fig. 3c), el esquema de codificación aritmética dedica más bits a donde están situados los tonos parciales del cuadro actual en áreas con baja energía del cuadro anterior y viceversa. Por otra parte, el trazado 380 de la Fig. 3c ilustra que, si el contexto es favorable, lo que ocurre por lo menos en el caso del tono parcial fundamental, la distribución de bits es más baja (por ejemplo, cuando se utiliza la codificación aritmética dependiente del contexto) que con la codificación de Huffman, en comparación.
[0115] Resumiendo lo expuesto, el trazado 370 de la Fig. 3b ilustra un ejemplo de una evolución temporal de un contorno de tono relativo. Una abscisa 372 describe el tiempo y una ordenada 374 describes tanto un tono relativo prel, como una frecuencia relativa frel. Una primera curva 376 describe una evolución temporal del tono relativo y una segunda curva 377 describe una evolución temporal de la frecuencia relativa. Como se puede apreciar, el tono relativo decrece con el transcurso del tiempo, en tanto que la frecuencia relativa se incrementa con el transcurso del tiempo. Además, se debe apreciar que una extensión temporal 378a de un cuadro anterior (que también se designa como "último cuadro") y una extensión temporal 378b de un cuadro actual (que también se designa como "este cuadro") no se traslapan en el trazado 370 de la Fig. 3b. Sin embargo, por lo general, las extensiones temporales 378a, 378b de los cuadros de audio subsiguientes se pueden traslapar. Por ejemplo, el traslape puede ser de aproximadamente 50%.
[0116] Haciendo referencia ahora a la Fig. 3c, se debe apreciar que el trazado 390 ilustra espectros de MDCT correspondientes a dos cuadros subsiguientes. Una abscisa 392 describe la frecuencia en términos de cajas de frecuencia de la transformada de coseno discreta modificada. Una ordenada 394 describe una magnitud relativa (en términos de decibelios) de las cajas espectrales individuales. Como se puede apreciar, los picos espectrales del espectro del cuadro actual ("este cuadro") están desplazados en la frecuencia (en forma dependiente de la
frecuencia) con respecto a los picos espectrales correspondientes del espectro del cuadro anterior ("último cuadro"). En consecuencia, se ha descubierto que un contexto para la codificación basada en el contexto de los valores espectrales del cuadro actual no se adapta bien si dicho contexto se forma sobre la base de la versión original de los valores espectrales del cuadro de audio anterior, puesto que los picos espectrales del espectro del cuadro actual no coinciden (en términos de frecuencia) con los picos espectrales del espectro del cuadro de audio anterior. Por consiguiente, la demanda de velocidad de transmisión de bits para la codificación basada en el contexto de los valores espectrales es comparativamente alta e incluso puede ser mayor que en el caso de la codificación de Huffman no basada en el contexto. Esto se puede ver en el trazado 380 de la Fig. 3c, en el cual una abscisa describe la frecuencia (en términos de cajas de la transformada de coseno discreta modificada) y donde una ordenada 384 describe un número de bits necesarios para la codificación de los valores espectrales.
7.2. Descripción de la Solución
[0117] Sin embargo, las realizaciones de acuerdo con la presente invención ofrecen una solución al problema precedentemente descrito. Se ha descubierto que se puede usar la información sobre variación de tonos para derivar una aproximación del factor de estiramiento de la frecuencia entre espectros consecutivos de un codificador de transformada de coseno discreta modificada con distorsión de tiempo (por ej., entre espectros de cuadros de audio consecutivos). Se ha descubierto que este factor de estiramiento se puede utilizar entonces para estirar el contexto anterior a lo largo del eje de la frecuencia para derivar un contexto mejor y para reducir, por lo tanto, el número de bits necesario para codificar una línea de frecuencia y aumentar la ganancia de codificación.
[0118] Se ha descubierto que se pueden obtener buenos resultados si este factor de estiramiento es aproximadamente la relación de las frecuencias promedio del último cuadro y del cuadro actual. Además, se ha descubierto que esto se podría hacer por línea o, si el codificador aritmético codifica n–tuplos de líneas como un solo elemento, por tuplos.
[0119] En otras palabras, el estiramiento del contexto se puede realizar por líneas (es decir, individualmente por caja de frecuencia de la transformada de coseno discreta modificada) o por tuplos (es decir por tuplo o serie de una pluralidad de cajas espectrales de la transformada de coseno discreta modificada).
[0120] Además, la resolución para el cómputo del factor de estiramiento también puede variar dependiendo de los requisitos de las realizaciones.
7.3 Ejemplos correspondientes a la Derivación del Factor de estiramiento
[0121] A continuación, se describen en detalle algunos conceptos para derivar el factor de estiramiento. El procedimiento de transformada de coseno discreta modificada con distorsión de tiempo descrito en la referencia [3], y, por otro lado, el procedimiento de transformada de coseno discreta modificada con distorsión de tiempo descrito 5 en la presente, produce un llamado contorno de tono suave como información intermedia. Este contorno de tono suavizado (que puede estar descrito, por ejemplo, por las entradas de la matriz "warp_contour[]", o por las entradas de las matrices "new warp_contour[]" y "past_warp_contour[]") contiene la información de la evolución del tono relativo a través de varios cuadros consecutivos, por lo que, por cada muestra dentro de un cuadro, se conoce un cálculo estimativo del tono relativo. La frecuencia relativa correspondiente a esta muestra es entonces simplemente
10 la inversa de este tono relativo.
[0122] Por ejemplo, se puede dar la siguiente relación:
15 [0123] En la ecuación precedente, prel[n] designa el tono relativo para un índice de tiempo dado n, que puede ser un tono relativo a corto plazo (donde el índice temporal n puede designar, por ejemplo, una muestra individual). Además, frel [n] puede designar una frecuencia relativa correspondiente al índice de tiempo n y puede ser un valor de frecuencia relativa a corto plazo.
7.3.1 Primera Alternativa
[0124] Se puede describir entonces la frecuencia relativa promedio a través de un cuadro k (donde k es un índice de cuadro) como media aritmética de todas las frecuencias relativas dentro de este cuadro k: 25
[0125] En la ecuación precedente frel,media,k designa la frecuencia relativa promedio a través del cuadro de audio que tiene el índice de cuadro temporal k. N designa un número de muestras en el dominio del tiempo correspondientes al
30 cuadro de audio con el índice de cuadro temporal k. n es una variable que se ejecuta con los índices de muestras en el dominio del tiempo n=0 a n–N–1 de las muestras en el dominio del tiempo del cuadro de audio actual que tiene el índice de cuadro temporal k. frel[n] designa el valor local de frecuencia relativa asociado a la muestra en el dominio del tiempo que tiene un índice temporal de muestra en el dominio del tiempo n.
35 [0126] De esto (es decir del cómputo de frel,media,k correspondiente al cuadro de audio actual y del cómputo de frel,media,k–1 correspondiente al cuadro de audio anterior), se puede derivar entonces el factor de estiramiento s para el cuadro de audio actual k de la siguiente manera:
7.3.2 Segunda Alternativa
[0127] A continuación se describe otra alternativa para el cómputo del factor de estiramiento s. Se puede encontrar una aproximación más sencilla y menos exacta del factor de estiramiento s (por ejemplo, en comparación con la
45 primera alternativa) si se toma en cuenta que, en término medio, el tono relativo es aproximado a uno, por lo que la relación de tono relativo y frecuencia relativa es aproximadamente lineal y por lo que se puede omitir el paso de inversión del tono relativo para obtener la frecuencia relativa, y usando la media de tono relativo:
[0128] En la ecuación precedente, prel,media,k designa una media de tono relativo correspondiente al cuadro de audio que tiene el índice de cuadro de audio k. N designa un número de muestras en el dominio del tiempo del cuadro de audio que tiene el índice de cuadro de audio temporal k. La variable en ejecución n toma valores entre 0 y N–1 y, de esa manera, se ejecuta sobre las muestras en el dominio del tiempo que tiene los índices temporales n del cuadro de audio actual. prel[n] designa un valor de tono relativo (local) correspondiente a la muestra en el dominio del tiempo que tiene el índice en el dominio del tiempo n. Por ejemplo, el valor de tono relativo prel[n] puede ser igual a la entrada warp_contour[n] de la matriz de contornos de distorsión "warp–contour[]".
[0129] En este caso, el factor de estiramiento s correspondiente al cuadro de audio que tiene el cuadro temporal k se puede aproximar de la siguiente manera:
[0130] En la ecuación precedente prel,mean,k–e designa un valor de tono promedio para el cuadro de audio que tiene el índice de cuadro de audio temporal k–1, y la variable Prel,mean,k describe un valor de tono relativo promedio correspondiente al cuadro de audio que tiene el cuadro de audio temporal k.
7.3.3
Otras Alternativas
[0131] Sin embargo, se debe apreciar que se pueden utilizar conceptos significativamente diferentes para el cómputo o estimación del factor de estiramiento s, donde el factor de estiramiento s por lo general describe también un cambio de la frecuencia fundamental entre el primer cuadro de audio y un segundo cuadro de audio subsiguiente. Por ejemplo, se pueden comparar los espectros del primer cuadro de audio y del segundo cuadro de audio subsiguiente por medio de un concepto de comparación de patrones, para derivar así el factor de estiramiento. De todas maneras, parece que el cómputo del factor de estiramiento de la frecuencia s usando la información de contorno de distorsión antes descrita, es particularmente eficiente desde el punto de vista informático, por lo que ésta es la opción preferible.
8.
Detalles con respecto a la Determinación del estado del contexto
8.1. Ejemplo de acuerdo con las Figs. 4a y 4b
[0132] A continuación se describen detalles con respecto a la determinación del estado del contexto. Pare este fin, se describe la funcionalidad del determinador del estado del contexto 400, del cual se presenta un diagrama esquemático de bloques en la Fig. 4a.
[0133] El determinador del estado del contexto 400 puede tomar el lugar, por ejemplo, del determinador de estado del contexto 140 o del determinador del estado del contexto 170. Aunque se describen detalles con respecto al determinador del estado del contexto en los párrafos siguientes en el caso de un decodificador de señales de audio, también se puede utilizar el determinador del estado del contexto 400 en el contexto de un codificador de señales de audio.
[0134] El determinador del estado del contexto 400 está configurado para recibir una información 410 acerca de valores espectrales antes decodificados o acerca de valores espectrales anteriormente codificados. Además, el determinador del estado del contexto 400 recibe una información de distorsión de tiempo o información de contorno de distorsión de tiempo 412. La información de distorsión de tiempo o información de contorno de distorsión de tiempo 412 puede ser igual, por ejemplo, a la información de distorsión de tiempo 122 y, en consecuencia, puede describir (por lo menos implícitamente) un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes. La información de distorsión de tiempo o información de contorno de distorsión de tiempo 412 puede ser equivalente, por otro lado, a la información de distorsión de tiempo 184 y, en consecuencia, puede describir un cambio de una frecuencia fundamental entre los cuadros subsiguientes. Sin embargo, la información de distorsión de tiempo/información de contorno de distorsión de tiempo 412 puede ser equivalente, por otro lado, a la información de contorno de distorsión de tiempo 222 o a la información de contorno de distorsión de tiempo 258. En términos generales, se puede afirmar que la información de distorsión de tiempo/información de contorno de distorsión de tiempo 412 puede describir la variación de frecuencia entre los cuadros de audio subsiguientes directa o indirectamente. Por ejemplo, la información de distorsión de tiempo/información de contorno de distorsión de tiempo 212 puede describir el contorno de distorsión y, en consecuencia, puede comprender las entradas de la matriz "warp_contour[]", o puede describir el contorno de tiempo y, en consecuencia, puede comprender las entradas de la matriz "time–contour[]".
[0135] El determinador del estado del contexto 400 genera un valor de estado del contexto 420, que describe el contexto que se ha de utilizar para la codificación o decodificación de los valores espectrales del cuadro actual, y que puede ser utilizado por el codificador de valores espectrales basado en el contexto o el decodificador espectral basado en el contexto para la selección de una regla de mapeo apropiada para la codificación o decodificación de los valores espectrales del cuadro de audio actual. El valor de estado del contexto 420 puede ser equivalente, por ejemplo, a la información de estado del contexto 134 o a la información de estado del contexto 164.
[0136] El determinador del estado del contexto 400 comprende un generador de estructuras de memoria contextual preliminar 430, que está configurado para generar una estructura de memoria contextual preliminar 432 como, por ejemplo, la matriz q[1][]. Por ejemplo, el generador de estructuras de memoria contextual preliminar 430 puede estar configurado para ejecutar la funcionalidad de los algoritmos de acuerdo con las Figs. 25 y 26, para producir así una serie de, por ejemplo, N/4 entradas q[ l ] [i] de la matriz q[1][](correspondiente a i=0 a i=M/4–1).
[0137] En términos generales, el generador de estructuras de memoria contextual preliminar 430 puede estar configurado para producir las entradas de la estructura de memoria contextual preliminar 432 de tal manera que una entrada que tiene un índice de frecuencia de entradas i se basa en un (único) valor espectral que tiene el índice de frecuencia i, o en una serie de valores espectrales que tienen un índice de frecuencia común i. Sin embargo, el generador de estructuras de memoria contextual preliminar 430 está configurado preferentemente para generar la estructura de memoria contextual preliminar 432 de tal manera que haya una relación fija de índices de frecuencia entre un índice de frecuencia de una entrada de la estructura de memoria contextual preliminar 432 y los índices de frecuencia de uno o más valores espectrales codificados o valores espectrales decodificados en los cuales se basa la entrada de la estructura de memoria contextual preliminar 432. Por ejemplo, dicha relación predeterminada de índices puede ser tal que la entrada q[1] [i] de la estructura de memoria contextual preliminar se base en el valor espectral de la caja de frecuencia que tiene el índice de caja de frecuencia i (o i–const, donde const es una constante) del convertidor del dominio del tiempo al dominio de la frecuencia o del convertidor del dominio de la frecuencia al dominio del tiempo. Por otro lado, la entrada q[1][i] de la estructura de memoria contextual preliminar 432 se puede basar en los valores espectrales de las cajas de frecuencia que tienen los índices de cajas de frecuencia 2i -1 y 2i del convertidor del dominio del tiempo al dominio de la frecuencia o del convertidor del dominio de la frecuencia al dominio del tiempo (o un rango de índices de cajas de frecuencia desplazado). Por otro lado, sin embargo, un índice q[1] [i] de la estructura de memoria contextual preliminar 432 se puede basar en los valores espectrales de las cajas de frecuencia que tienen los índices de cajas de frecuencia 4i – 3, 4i – 2, 4i –1 y 4i del convertidor del dominio del tiempo al dominio de la frecuencia o del convertidor del dominio de la frecuencia al dominio del tiempo (o un rango de índices de cajas de frecuencia desplazado). Por consiguiente, cada entrada de la estructura de memoria contextual preliminar 432 puede estar asociada a un valor espectral de un índice de frecuencia predeterminado o a una serie de valores espectrales de índices de frecuencia predeterminados de los cuadros de audio, sobre la base de los cuales se configura la estructura de memoria contextual preliminar 432.
[0138] El determinador del estado del contexto 400 también comprende una calculadora de factores de estiramiento de la frecuencia 434, que está configurada para recibir la información de distorsión de tiempo/información de contorno de distorsión de tiempo 412 y para generar, sobre la base de la misma, una información de factor de estiramiento de la frecuencia 436. Por ejemplo, la calculadora de factores de estiramiento de la frecuencia 434 puede estar configurada para derivar una información de tono relativo prel[n] de las entradas de la matriz warp_contour[] (donde la información de tono relativo prel[n] puede ser igual, por ejemplo, a una entrada correspondiente de la matriz warp_contour[]). Además, la calculadora de factores de estiramiento de la frecuencia 434 puede estar configurada para aplicar una de las ecuaciones expuestas para derivar la información sobre factores de estiramiento de la frecuencia s de dicha información de tono relativo prel de dos cuadros de audio subsiguientes. En términos generales, la calculadora de factores de estiramiento de la frecuencia 434 puede estar configurada para generar la información sobre factores de estiramiento de la frecuencia (por ejemplo, un valor s o, de manera equivalente, un valor m_ContextUpdateRatio) de tal manera que la información sobre factores de estiramiento de la frecuencia describa un cambio de una frecuencia fundamental entre un cuadro de audio antes codificado o decodificado y el cuadro de audio actual a codificar o decodificar utilizando el valor del estado actual del contexto 420.
[0139] El determinador del estado del contexto 400 también comprende un generador de estructuras de memorias contextuales con escalamiento de la frecuencia, que está configurado para recibir la estructura de memoria contextual preliminar 432 y para generar, sobre la base de la misma, una estructura de memoria contextual con escalamiento de la frecuencia. Por ejemplo, la estructura de memoria contextual con escalamiento de la frecuencia puede estar representada por una versión actualizada de la matriz 20 que acarrea la estructura de memoria contextual preliminar 432.
[0140] El generador de estructuras de memorias contextuales con escalamiento de la frecuencia puede estar configurado para derivar la estructura de memoria contextual con escalamiento de la frecuencia de la estructura de memoria contextual preliminar 432 usando un escalamiento de la frecuencia. En el escalamiento de la frecuencia se puede copiar o desplazar un valor de una entrada que tiene un índice de entrada i de la estructura de memoria contextual preliminar 432, a una entrada que tiene el índice de entrada j de la estructura de memoria contextual con
escalamiento de la frecuencia 440, donde el índice de frecuencia i puede ser diferente del índice de frecuencia j. Por ejemplo, si se ejecuta un estiramiento de la frecuencia del contenido de la estructura de memoria contextual preliminar 432, se puede establecer que una entrada que tiene el índice de entrada j1 de la estructura de memoria contextual con escalamiento de la frecuencia 440 tenga el valor de una entrada con el índice de entrada i1 de la estructura de memoria contextual preliminar 432, y se puede dar a una entrada que tiene el índice de entrada j2 de la estructura de memoria contextual con escalamiento de la frecuencia 440 el valor de una entrada que tiene el índice de entrada i2 de la estructura de memoria contextual preliminar 432, donde j2 es mayor que i2, y donde j1 es mayor que i1. Una relación entre índices de frecuencia correspondientes (por ejemplo, j1 y i1, o j2 y i2) puede asumir un valor predeterminado (excepto por los errores de redondeo). Del mismo modo, si la compresión de frecuencia del contenido descrito por la estructura de memoria contextual preliminar 432 ha de ser ejecutada por el generador de estructura de memoria contextual con escalamiento de la frecuencia 438, se puede fijar el valor de una entrada que tiene el índice de entrada j3 de la estructura de memoria contextual con escalamiento de la frecuencia 440 en el valor de una entrada que tiene el índice de entrada i3 de la estructura de memoria contextual preliminar 432, y se puede dar a una entrada que tiene el índice de entrada j4 de la estructura de memoria contextual con escalamiento de la frecuencia 440 el valor de una entrada que tiene el índice de entrada i4 de la estructura de memoria contextual preliminar 432. En este caso, el índice de entrada j3 puede ser menor que el índice de entrada i3, y el índice de entrada j4 puede ser menor que el índice de entrada i4. Además, una relación entre índices de entrada correspondientes (por ejemplo, entre los índices de entrada j3 y i3, o entre los índices de entrada j4 y i4), puede ser constante (excepto por los errores de redondeo) y puede estar determinado por la información de factor de estiramiento de la frecuencia 436. A continuación se describen más detalles con respecto a la operación del generador de estructuras de memoria contextual con escalamiento de la frecuencia 440.
[0141] El determinador del estado del contexto 400 también comprende un generador de valores de estado del contexto 442, que está configurado para generar el valor de estado del contexto 420 sobre la base de la estructura de memoria contextual con escalamiento de la frecuencia 440. Por ejemplo, el generador de valores de estado del contexto 442 puede estar configurado para generar un valor de estado del contexto 420 que describe el contexto para la decodificación de un valor espectral que tiene un índice de frecuencia sobre la base de las entradas de la estructura de memoria contextual con escalamiento de la frecuencia 440, entradas cuyos índices de frecuencia están en una relación predeterminada con el índice de frecuencia 10. Por ejemplo, el generador de valores de estado del contexto 442 puede estar configurado para generar el valor de estado del contexto 420 para la decodificación del valor espectral (o el tuplo de valores espectrales) con el índice de frecuencia 10 sobre la base de las entradas de la estructura de memoria contextual con escalamiento de la frecuencia 440 que tienen los índices de frecuencia 10 - 1,10 y 10 + 1.
[0142] En consecuencia, el determinador del estado del contexto 400 puede generar efectivamente el valor de estado del contexto 420 para la decodificación de un valor espectral (o tuplo de valores espectrales) que tiene un índice de frecuencia 10 sobre la base de las entradas de la estructura de memoria contextual preliminar 432 que tienen respectivos índices de frecuencia menores que 10 - 1, menores que 10 y menores que 10 + 1 si el estiramiento de la frecuencia es ejecutado por el generador de estructura de memoria contextual con escalamiento de la frecuencia 438, y sobre la base de las entradas de la estructura de memoria contextual preliminar 432 que tienen respectivos índices de frecuencia mayores que 10 - 1, mayores que 10 y mayores que 10 + 1, respectivamente, en el caso de que el generador de estructuras memoria contextual con escalamiento de la frecuencia 438 ejecute una compresión de la frecuencia.
[0143] Por consiguiente, el determinador del estado del contexto 400 está configurado para adaptar la determinación del contexto a un cambio de una frecuencia fundamental entre los cuadros subsiguientes mediante la generación del valor de estado del contexto 420 sobre la base de una estructura de memoria contextual con escalamiento de la frecuencia, que es una versión con escalamiento de la frecuencia de la estructura de memoria contextual preliminar 432, escalamiento de la frecuencia que depende del factor de estiramiento de la frecuencia 436, que a su vez describe una variación de la frecuencia fundamental con el transcurso del tiempo.
[0144] La Fig. 4b ilustra una representación gráfica de la determinación del estado del contexto de acuerdo con una realización de la invención. La Fig. 4b ilustra una representación esquemática de las entradas de la estructura de memoria contextual preliminar 432, provisto por el generador de estructuras de memoria contextual preliminar 430, en el número de referencia 450. Por ejemplo, una entrada 450a que tiene el índice de frecuencia i1 + 1, una entrada 450b y una entrada 450c que tiene el índice de frecuencia i2 + 2 están marcadas. Sin embargo, al generar la estructura de memoria contextual con escalamiento de la frecuencia 440, que está indicada con el número de referencia 452, se establece que una entrada 452a que tiene el índice de frecuencia i1 tome el valor de la entrada 450a que tiene el índice de frecuencia i1 + 1, y se establece que una entrada 452c que tiene el índice de frecuencia i2 1 asuma el valor de la entrada 450c que tiene el índice de frecuencia i2 + 2. De modo similar, las demás entradas de la estructura de memoria contextual con escalamiento de la frecuencia 440 se pueden configurar dependiendo de las entradas de la estructura de memoria contextual preliminar 430, donde, por lo general, se descartan algunas de las entradas de la estructura de memoria contextual preliminar en el caso de una compresión de la frecuencia y donde, por lo general, se copian algunas de las entradas de la estructura de memoria contextual preliminar 432 en más de una entrada de la estructura de memoria contextual con escalamiento de la frecuencia 440 en el caso de un estiramiento de la frecuencia.
[0145] Además, la Fig. 4b ilustra cómo se determina el estado del contexto para la decodificación de valores espectrales del cuadro de audio con el índice temporal k sobre la base de las entradas de la estructura de memoria contextual con escalamiento de la frecuencia 440 (que están representadas por el número de referencia 452). Por ejemplo, al determinar el estado del contexto (representado, por ejemplo, por el valor de estado del contexto 420) para la decodificación del valor espectral (o tuplo de valores espectrales) que tiene el índice de frecuencia i1 del cuadro de audio con el índice temporal k, se evalúa un valor de contexto que tiene el índice de frecuencia i1 –1 del cuadro de audio con el índice temporal k y las entradas de la estructura de memoria contextual con escalamiento de la frecuencia del cuadro de audio con el índice temporal k - y los índices de frecuencia i1 – 1, i1 y i1 + 1. En
consecuencia, se evalúan efectivamente las entradas de la estructura de memoria contextual preliminar del cuadro
de audio con el índice temporal k -1 y los índices de frecuencia i1 – 1, i1 +1 y i1 + 2 para determinar el contexto para la decodificación del valor espectral (o tuplo de valores espectrales) del cuadro de audio con el índice temporal k y el índice de frecuencia i1. De esa manera, el entorno de los valores espectrales que se utilizan para la determinación del estado del contexto cambia efectivamente por el estiramiento de la frecuencia o la compresión de la frecuencia de la estructura de memoria contextual preliminar (o de los contenidos de la misma).
8.2. Implementación de acuerdo con la Fig. 4c
[0146] A continuación se describe un ejemplo de mapeo del contexto de un codificador aritmético usando 4– tuplos tomando como referencia la Fig 4c, que ilustra un procesamiento por tuplos.
[0147] La Fig. 4c ilustra una representación de pseudo código de programa de un algoritmo para obtener la estructura de memoria contextual con escalamiento de la frecuencia (por ejemplo, la estructura de memoria contextual con escalamiento de la frecuencia 440) sobre la base de la estructura de memoria contextual preliminar (por ejemplo, la estructura de memoria contextual preliminar 432).
[0148] El algoritmo 460 de acuerdo con la Fig. 4c presume que la estructura de memoria contextual preliminar 432 se almacena en una matriz "self–>base.m_gbuf". Además, el algoritmo 460 presume que la información de factor de estiramiento de la frecuencia 436 está almacenada en una variable "self–>base.m ContextUpdateRatio".
[0149] En un primer paso 460a, se inicializa un número de variables. En particular, se inicializa a cero una variable objetivo de índice de tuplo "nLinTupleldx" y una variable índice de tuplo de origen "nWarpTupleldx". Además, se inicializa una matriz de memoria intermedia de reordenamiento "Tqi4".
[0150] En el paso 460b se copian las entradas de la estructura de memoria contextual preliminar "self–>base.m gbuf' en la matriz de memoria intermedia de reordenamiento.
[0151] Seguidamente, se repite un algoritmo de copiado 460c siempre que tanto la variable índice de tuplo objetivo como la variable índice de tuplo de origen sean menores que una variable nTuples que describe un número máximo de tuplos.
[0152] En el paso 460ca, se copian cuatro entradas de la memoria intermedia de reordenamiento, un (tuplo) índice de frecuencia del cual está determinado por un valor actual de la variable índice de tuplo de origen (en combinación con una primera constante de índice "firstldx") en las entradas de la estructura de memoria contextual (self– >base.m_gbuf[] []), donde los índices de frecuencia de dichas entradas están determinados por la variable índice de tuplo objetivo (nLinTupleldx) (en combinación con la primera constante de índice "firstldx").
[0153] En el paso 460cb, se incrementa en uno la variable índice de tuplo.
[0154] En el paso 460cc, la variable índice de tuplo de origen se establece en un valor, que4 es un producto del valor actual de la variable índice de tuplo objetivo (nLinTupleldx) y la información de factor de estiramiento de la frecuencia (self–>base.m ContextUpdateRatio), redondeada al valor entero más cercano. En consecuencia, el valor de la variable índice de tuplo de origen puede ser mayor que el valor de la variable índice de tuplo objetivo si la variable factor de estiramiento de la frecuencia es superior a uno, y menor que la variable índice de tuplo objetivo si la variable factor de estiramiento de la frecuencia es inferior a uno.
[0155] En consecuencia, un valor de la variable tuplo de origen está asociado a la variable índice de tuplo de origen (siempre que tanto el valor de la variable índice de tuplo objetivo como el valor de la variable tuplo de origen sea menor que la constante nTuples). Con posterioridad a la ejecución de los pasos 460cb y 460cc, el copiado de las entradas de la memoria intermedia de reordenamiento en la estructura de memoria contextual se repite en el paso 460ca, usando la asociación actualizada entre un tuplo de origen y un tuplo objetivo.
[0156] De esa manera, el algoritmo 460 de acuerdo con la Fig. 4c ejecuta la funcionalidad del generador de la estructura de memoria contextual con escalamiento de la frecuencia 430a, donde la estructura de memoria contextual preliminar está representada por las entradas iniciales de la matriz "self–>base.m _gbuf", y donde la
estructura de memoria contextual con escalamiento de la frecuencia 440 está representada por las entradas actualizadas de la matriz "self–>base.m_gbuf".
8.3. Implementación de acuerdo con las Figs. 4d y 4e
[0157] A continuación se describe un ejemplo de mapeo del contexto de un codificador aritmético utilizando 4– tuplos haciendo referencia a la Fig 4c, que ilustra un procesamiento por línea.
[0158] Las Figs. 4d y 4e ilustran una representación de pseudo código de programa de un algoritmo para ejecutar el escalamiento de la frecuencia (es decir, el estiramiento de la frecuencia o la compresión de la frecuencia) de un contexto.
[0159] El algoritmo 470 de acuerdo con las Figs. 4d y 4e recibe, como información de entrada, la matriz "self– >base.m_gbuf[] []" (o por lo menos una referencia a dicha matriz) y la información de factor de estiramiento de la frecuencia "self self–>base.m_ContextUpdateRatio". Además, el algoritmo 470 recibe, como información de entrada, una variable "self–>base.m_Icslnfo–>m _ScaleFactorBandsTransmitted", que describe un número de líneas activas. Además, el algoritmo 470 modifica la matriz self–>base.m_gbuf[][], de tal manera que las entradas de dicha matriz representan la estructura de memoria contextual con escalamiento de la frecuencia.
[0160] El algoritmo 470 comprende, en el paso 470a, una inicialización de una pluralidad de variables. En particular, una variable índice de línea objetivo (linLineldx) y una variable índice de línea de origen (warpLineldx) se inicializan a cero.
[0161] En el paso 470b, se computa un número de tuplos activos y un número de líneas activas.
[0162] A continuación, se procesan dos series de contextos, que comprenden diferentes índices de contexto (designados por la variable "contextldx"). Sin embargo, en otras realizaciones también es suficiente procesar sólo un contexto.
[0163] En el paso 470c, se inicializan con entradas de cero la matriz de memoria intermedia temporaria de línea "lineTmpBuf' y una matriz de memoria intermedia de reordenamiento de línea "lineReorderBuf'.
[0164] En el paso 470d, se copian las entradas de la estructura de memoria contextual preliminar asociadas a las diferentes cajas de frecuencia de una pluralidad de tuplos de valores espectrales en la matriz de memoria intermedia de reordenamiento de líneas. En consecuencia, las entradas de la matriz de memoria intermedia de reordenamiento de líneas que tienen índices de frecuencia subsiguientes se configuran con las entradas de la estructura de memoria contextual preliminar que están asociadas a las diferentes cajas de frecuencia. En otras palabras, la estructura de memoria contextual preliminar comprende una entrada "self–>base.m gbuf[CurTuple] [contextldx]" por tuplo de valores espectrales; donde la entrada asociada a un tuplo de valores espectrales comprende las subentradas a, b, c, d asociadas a las líneas espectrales individuales (o cajas espectrales). Cada una de las subentradas a,b,c,d se copia en una entrada individual de la matriz de memoria intermedia de reordenamiento de líneas "lineReorderBuf[]" en el paso 470d.
[0165] En consecuencia, se copia el contenido la matriz de memoria intermedia de reordenamiento de líneas en la matriz de memoria intermedia temporal de líneas "lineTmpBuf[]" en el paso 470e.
[0166] Seguidamente, la variable índice de línea objetivo y la variable índice de línea de origen son inicializadas para tomar el valor de cero en el paso 470f.
[0167] Seguidamente, las entradas "lineReorderBuf[warpLineldx]" de la matriz de memoria intermedia de reordenamiento de líneas se copian en la matriz de memoria intermedia temporal de líneas correspondiente a una pluralidad de valores de la variable índice de línea objetivo "linLineldx" en el paso 470g. El paso 470g se repite en tanto la variable índice de línea objetivo y la variable índice de línea de origen sean menores que una variable "activeLines", que indica un número total de líneas espectrales activas (no cero). Una entrada de la matriz de memoria intermedia temporaria de líneas designada por el valor actual de la variable índice de línea objetivo "linLineldx" se fija en un valor de la matriz de memoria intermedia de reordenamiento de líneas designada por el valor actual de la variable índice de línea de origen. Seguidamente, el índice de línea objetivo se incrementa en uno. Se configura la variable índice de línea de origen "warpLineldx" para que asuma un valor que se determina por el producto del valor actual de la variable índice de línea objetivo y la información de factor de estiramiento de la frecuencia. (representada por la variable "self–>base.m ContextUpdateRatio".
[0168] Después de la actualización de la variable índice de línea objetivo y la variable índice de línea de origen, se repite el paso 470g, siempre que tanto la variable índice de línea objetivo como la variable índice de línea de origen sean inferiores al valor de la variable "activeLines".
[0169] En consecuencia, se escala la frecuencia de las entradas de contexto de la estructura de memoria contextual
preliminar por línea, en lugar de hacerlo por tuplos.
[0170] En un paso final 470h, se reconstruye una representación de tuplos sobre la base de las entradas por línea de la matriz de memoria intermedia temporal por línea. Las entradas a, b, c, d, de una representación de tuplos 5 "self–>base.m gbuflcurTuple] [contextldx]" del contexto se configuran de conformidad con cuatro entradas "lineTmpBuf[(curTuple–1)*4+0]" a "lineTmpBuf[(curTuple–1)*4+3]" de la matriz de memoria intermedia temporal por línea, entradas que están adyacentes en la frecuencia. Además, se configura un campo de energía de tuplos "e", opcionalmente, para que represente una energía de los valores espectrales asociados al tuplo respectivo. Más aun, opcionalmente se fija un campo adicional "v" de la representación de tupos, si la magnitud de los valores espectrales
10 asociados a dicho tuplo es comparativamente baja.
[0171] Sin embargo, se debe apreciar que los detalles referentes al cálculo de los nuevos tuplos, que se ejecuta en el paso 470h, tienen una fuerte dependencia de la representación real del contexto y que, por lo tanto, pueden variar significativamente. Sin embargo, se puede decir en general que se crea una representación basada en tuplos sobre
15 la base de una representación basada en líneas individuales del contexto con frecuencia escalada en el paso 470h.
[0172] En resumen, de conformidad con el algoritmo 470, se divide en primer lugar una representación del contexto por tuplos (las entradas de la matriz "self–>base.m gbuf[curTuple] [contextldx] ") en una representación del contexto por líneas de frecuencia (o representación del contexto por cajas de frecuencia) (paso 470d). Seguidamente, se
20 ejecuta el escalamiento de la frecuencia por línea (paso 470g). Por último, se reconstruye una representación por tuplos del contexto (entradas actualizadas de la matriz "self–>base.m gbuf[curTuple][contextldx]") (paso 470h) sobre la base de la información con frecuencia escalada por líneas.
Algoritmo de decodificación 25
9.1. Reseña general
[0173] A continuación se describen en detalle algunos de los algoritmos ejecutados por un decodificador de audio de acuerdo con una realización de la invención. Para este fin se hace referencia a las Figs. 5a, 5b, 6a, 6b, 7a, 7b, 8, 9,
30 10a, l0b, 11, 12, 13, 14, 15 y 16.
[0174] Antes que nada, se hace referencia a la Fig. 7a, que ilustra una leyenda de las definiciones de los elementos de datos y una leyenda de definiciones de los elementos de ayuda. Además, se hace referencia a la Fig. 7b, que ilustra una leyenda de las definiciones de las constantes.
35 [0175] En términos generales, se puede decir que los procedimientos aquí descritos se pueden utilizar para la decodificación de un flujo de audio que se codifica de acuerdo con una transformada de coseno discreta modificada con distorsión de tiempo. Por consiguiente, cuando se habilita la TW–MDCT para un flujo de audio (que puede estar indicado por una bandera a la que, por ejemplo, se hace referencia como bandera "twMDCT", que puede estar
40 comprendida en una información de configuración específica), un banco de filtros con distorsión de tiempo y un conmutador de bloques pueden reemplazar a un banco de filtros standard y al conmutador de bloques en un decodificador de audio. Además de la transformada inversa de coseno discreta modificada con distorsión de tiempo (IMCT) el banco de filtros con distorsión de tiempo y el conmutador de bloques contienen un mapeo del dominio del tiempo a dominio del tiempo de una grilla de tiempo espaciada arbitrariamente sobre una grilla de tiempo espaciada
45 regularmente en forma normal o lineal y una adaptación correspondiente de las formas de ventanas.
[0176] Sin embargo, se debe apreciar aquí que el algoritmo de decodificación descrito en este documento puede ser ejecutado, por ejemplo, por el convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 sobre la base de la representación codificada del espectro y también sobre la base de la información de
50 distorsión de tiempo codificada 184, 252.
9.2. Definiciones:
[0177] Con respecto a la definición de los elementos de datos, los elementos de ayuda y las constantes, se hace 55 referencia a las Figs. 7a y 7b.
9.3. Proceso de Decodificación–Contorno de Distorsión
[0178] Los índices de libros de códigos de los nodos del contorno de distorsión se decodifican de la siguiente 60 manera para torcer los valores correspondientes a los nodos individuales:
[0179] Sin embargo, el mapeo de las palabras en código de distorsión de tiempo "tw ratio[k]" sobre los valores de distorsión de tiempo decodificados, designados en este caso "warp_value_tbl[tw ratio[k]]", puede depender,
5 opcionalmente, de la frecuencia de muestreo en las realizaciones de acuerdo con la invención. En consecuencia, no hay una única tabla de mapeo en algunas realizaciones de acuerdo con la invención, sino que hay tablas de mapeo individuales para diferentes frecuencias de muestreo.
[0180] Para obtener los nuevos datos de contorno de distorsión por muestra (muestras n_long (de longitud n))
10 "new_warp_contour[]", ahora se interpolan los valores de nodos de distorsión "warp_node_values[]" en forma lineal entre los nodos igualmente espaciados (interp_dist apart) utilizando un algoritmo, una representación de pseudo código de programa del cual está expuesta en la Fig. 9.
[0181] Antes de obtener el contorno de distorsión completo correspondiente a este cuadro (por ejemplo, para un
15 cuadro actual), se pueden reescalar los valores guardados en memoria intermedia del pasado, por lo que el último valor de distorsión del contorno de distorsión anterior "past warp_contour[]" = 1.
[0182] Se obtiene el contorno de distorsión total "warp_contour[]" concatenando el contorno de distorsión anterior "past warp_contour" y el nuevo contorno de distorsión "new warp_contour", y se calcula la nueva suma de distorsión "new warp_sum" en términos de suma de todos los nuevos valores de contorno de distorsión "new warp_contour[]":
9.4. Proceso de descodificación – posiciones de muestreo y Ajuste de longitud de ventana
30 [0183] Del contorno de distorsión "warp_contour[]", se calcula un vector de las posiciones de muestreo de las muestras distorsionadas en una escala temporal lineal. Para ello, se genera el contorno de distorsión de tiempo de acuerdo con las siguientes ecuaciones:
[0184] Con las funciones de ayuda "warp_inv_vecO" y "warp time_invO", representaciones de pseudo código de programa de las cuales están expuestas en las Figs. 10a y 10b, respectivamente, se calcula el vector de posición de muestras y la longitud de transición de conformidad con un algoritmo, un representación de pseudo código de programa de la cual está expuesta en la Fig. 11.
9.5. Transformada de Coseno Discreta Modificada Inversa del Proceso de Decodificación (IMDCT) [0185] A continuación se describe brevemente la transformada de coseno discreta modificada inversa. [0186] La expresión analítica de la transformada de coseno discreta modificada inversa es la siguiente:
10 donde:
n = índice de muestreo
i = índice de ventana 15 k = índice de coeficientes espectrales
N = longitud de ventana basada en el valor de secuencia de ventanas
20 n0 = (N/2+1)/2
[0187] La longitud de las ventanas de síntesis para la transformada inversa es una función del elemento de sintaxis "window sequence" (que puede estar incluido en el flujo de bits) y el contexto algorítmico. La longitud de las ventanas de síntesis se puede definir, por ejemplo, de conformidad con la tabla de la Fig. 12.
25 [0188] Las transiciones significativas de bloques están enumeradas en la tabla de la Fig. 13. Una marca tilde en una celda dada de la tabla indica que a una secuencia de ventanas enumerada en esta fila específica le sigue una secuencia de ventanas consignada en esta columna específica.
30 [0189] En lo que respecta a las secuencias de ventanas permitidas, se debe apreciar que el decodificador de audio puede ser conmutable, por ejemplo, entre ventanas de diferentes longitudes. Sin embargo, la conmutación de longitudes de ventana no es de particular relevancia para la presente invención. Por el contrario, la presente invención puede ser entendida basándose en la presunción de que hay una secuencia de ventanas del tipo "only_long_sequence" y que la longitud de cuadro del codificador del núcleo es igual a 1024.
35 [0190] Además, se debe apreciar que el decodificador de señales de audio puede conmutar entre un modo de codificación en el dominio de la frecuencia y un modo en el dominio del tiempo. Sin embargo, esta posibilidad no es de particular relevancia para la presente invención. Por el contrario, la presente invención se puede aplicar en decodificadores de señales de audio con capacidad para administrar el modo de codificación en la frecuencia, como
40 se describe, por ejemplo, con referencia a las Figs. 1 b y 2b.
9.6. Proceso de Decodificación–Enventanado y Conmutación de Bloques
[0191] A continuación se describe el enventanado y conmutación de bloques que pueden ser ejecutados por el 45 convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 y, en particular, por el enventanador 180g del mismo.
[0192] Dependiendo del elemento "window shape" (forma de la ventana) (que puede estar incluido en un flujo de bits que representa la señal de audio), se utilizan diferentes prototipos de ventanas de transformada 50 sobremuestreadas y la longitud de las ventanas sobremuestreadas es:
[0193] Para window_shape = 1, los coeficientes de ventana vienen dados por la ventana derivada de Kaiser – 55 Bessel (KBD) tal como se indica a continuación:
donde W1, la función de núcleo de Kaiser–Besser se define de la siguiente manera:
α = factor alfa de ventana del núcleo α = 4 [0194] De lo contrario, en el caso de "window shape" == 0 se emplea una ventana de seno, a saber:
15 [0195] En el caso de todos los tipos de secuencias de ventanas, el prototipo utilizado para la parte izquierda de la ventana es la determinada por la forma de ventanas del bloque anterior. La siguiente fórmula expresa este hecho:
20 [0196] Del mismo modo, el prototipo para la parte derecha de la ventana se determina utilizando la siguiente fórmula:
25 [0197] Dado que ya se han determinado las longitudes de ventanas de transición, sólo “se debe diferenciar entre la secuencia de ventanas del tipo "EIGHT_SHORT_SEQUENCE" y todas las demás secuencias de ventanas.
[0198] En caso de que el cuadro actual sea del tipo "EIGHT SHORT_SEQUENCE", se ejecuta un enventanado y traslape y suma interno (interno de los cuadros). La porción del tipo código C de la Fig. 14 describe el enventanado y 30 el traslape–suma interno del cuadro que tiene el tipo de ventana "EIGHT–SHORTSEQUENCE".
[0199] En el caso de los cuadros de cualquier otro tipo, se puede utilizar un algoritmo, una representación de pseudo código de programa del cual está expuesto en la Fig. 15.
9.7. Proceso de Decodificación–Remuestreado con Variación de Tiempo
[0200] A continuación se describe el remuestreo con variación de tiempo, que puede ser ejecutado por el convertidor 5 del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180 y, en particular, por el remuestreador 180i.
[0201] Se remuestrea el bloque enventanado z[] de acuerdo con las posiciones de las muestras (que son provistas por la calculadora de posiciones de muestreo 1801 sobre la base de la información de contorno de distorsión de 10 tiempo decodificada 258) usando la siguiente respuesta de impulsos:
[0202] Con anterioridad al remuestreo, se rellena con ceros el bloque enventanado en ambos extremos:
[0203] Se describe el remuestreo en sí en una sección sobre pseudo códigos de programas expuesta en la Fig. 16.
9.8. Proceso de decodificación–Traslape y Suma con la Secuencia de Ventanas Anterior
[0204] El traslape y suma, que es ejecutado por el dispositivo de traslape/suma 180m del convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo 180, es igual para todas las secuencias y se lo puede describir matemáticamente de la siguiente manera:
9.9. Proceso de Decodificación-Actualización de la Memoria
[0205] A continuación se describe la actualización de la memoria. Aunque en la Fig. 2b no se ilustra ningún medio específico, cabe señalar que la actualización de la memoria puede ser ejecutado por el convertidor del dominio de la 30 frecuencia al domino del tiempo con distorsión de tiempo 180.
[0206] Los buffers de memoria (memoria intermedia) necesarios para la decodificación del cuadro siguiente se actualizan de la siguiente manera:
35 past _ warp _ contour[n] = warp _ contour[n + n_ long], para 0 <_ n < 2 • n _ long cur_warp_sum =new_warp_sum last _ warp _ sum = cur _ warp _ sum
[0207] Antes de decodificar el primer cuadro, o si el último cuadro fue codificado con un codificador de dominio LPC 40 óptico, los estados de la memoria se configuran de la siguiente manera:
past_ warp_contour[n] =1, para 0 <_ n < 2 n _ long cur_warp_sum =n_long
last _ warp _ sum = n _ long
9.10. Proceso de Decodificación-Conclusión
[0208] Para resumir lo expuesto, se ha descrito un proceso de decodificación que puede ser ejecutado por el convertidor del dominio de la frecuencia al domino del tiempo con distorsión de tiempo 180. Como se puede ver, se genera una representación en el dominio del tiempo para un cuadro de audio de, por ejemplo, 2048 muestras en el dominio del tiempo, y los cuadros subsiguientes se pueden traslapar, por ejemplo, en aproximadamente 50% de tal manera que se garantice una transición suave entre las representaciones en el dominio del tiempo de los cuadros de audio subsiguientes.
[0209] Puede haber una serie de, por ejemplo NUM_TW_NODES = 16 valores de distorsión de tiempo decodificados asociada a cada uno de los cuadros de audio (siempre que la distorsión de tiempo esté activa en dicho cuadro de audio), independientemente de la frecuencia de muestreo real de las muestras en el dominio del tiempo del cuadro de audio.
10. Codificación Espectral sin Ruido
[0210] A continuación se describen algunos detalles con respecto a la codificación espectral sin ruido, que puede ser ejecutada por el decodificador de valores espectrales basado en el contexto 160 en combinación con el determinador del estado del contexto 170. Se debe apreciar que una codificación correspondiente puede ser ejecutada por el codificador de valores espectrales de contexto en combinación con el determinador del estado del contexto 140, donde una persona con capacitación en la técnica deducirá los respectivos pasos de codificación de la descripción detallada de los pasos de decodificación.
10.1. Codificación Espectral sin Ruido–Descripción de la Herramienta
[0211] La codificación espectral sin ruido se utiliza para reducir aun más la redundancia del espectro cuantizado. El esquema de codificación espectral sin ruido se basa en una codificación aritmética, conjuntamente con un contexto dinámicamente adaptado. El esquema de codificación espectral sin ruido que se describe a continuación se basa en 2–tuplos, es decir que se combinan dos coeficientes espectrales vecinos. Cada 2–tuplo se divide en el signo, el plano de 2–bits más significativos y el resto de los planos de bits menos significativos. La codificación sin ruido correspondiente al plano de 2 bits más significativos, m, utiliza tablas de frecuencias cumulativas dependientes del contexto derivadas de cuatro 2–tuplos anteriormente decodificados. La codificación sin ruido es alimentada por los valores espectrales cuantizados y usa tablas de frecuencias cumulativas dependientes del contexto derivadas de (por ej., seleccionadas de conformidad con) 2–tuplos vecinos anteriormente decodificados. En este caso, se toma en cuenta la vecindad, tanto en tiempo como en frecuencia, como se ilustra en la Fig. 16, que expone una representación gráfica de un contexto para el cálculo de estado. A continuación se utilizan las tablas de frecuencias cumulativas en el codificador aritmético (codificador o decodificador) para generar un código binario de longitud variable.
[0212] Sin embargo, se debe apreciar que se puede optar por un tamaño diferente de contexto. Por ejemplo, se puede utilizar un número más bajo o alto de tuplos que estén en el entorno del tuplo a decodificar, para la determinación del contexto. Además, un tuplo puede comprender un número menor o mayor de valores espectrales. Por otro lado, se pueden utilizar valores espectrales individuales para obtener el contexto, en lugar de tuplos.
[0213] El codificador aritmético produce un código binario para una determinada serie de símbolos y sus respectivas probabilidades. Se genera el código binario mapeando un intervalo de probabilidades donde yace la serie de símbolos, sobre una palabra en código.
10.2 Codificación espectral sin ruido Definiciones
[0214] Con respecto a las definiciones de variables, constantes y demás, se hace referencia a la Fig. 18, que ilustra una leyenda de definiciones.
10.3 Proceso de decodificación
[0215] Los coeficientes espectrales cuantizados "x_ac_dec[]" son decodificados sin ruido a partir del coeficiente con la frecuencia más baja y progresando hasta el coeficiente con la frecuencia más alta. Son decodificados, por ejemplo, por grupos de dos coeficientes sucesivos a y b reunidos en lo que se denomina 2–tuplo (a, b).
[0216] Los coeficientes decodificados x_ac_dec[] correspondientes a un modo de codificación en la frecuencia (antes descrito) so almacenados luego en la matriz "x_ac_quant[g][win][sfb][bin]". El orden de transmisión de las palabras en código para la codificación sin ruido es tal que cuando son decodificadas en el orden recibido y guardado en la matriz, bin es el índice de incremento más rápido y g es el índice que se incrementa con más lentitud. Dentro de una palabra clave, el orden de decodificación es a y luego b.
[0217] Opcionalmente, también se pueden evaluar los coeficientes para un modo de excitación codificado por transformada. Si bien los ejemplos que anteceden se relacionan solamente con la codificación de audio en el dominio de la frecuencia y la decodificación de audio en el dominio de la frecuencia, los conceptos vertidos en la presente se pueden utilizar en realidad para muchos codificadores de audio y decodificadores de audio que funcionan en el dominio de la excitación codificada por transformadas. Los coeficientes decodificados x_ac_dec[] para la excitación codificada por transformadas (TCX) son almacenados directamente en una matriz x_tcx_invquant[win][bin], y el orden de la transmisión de las palabras codificadoras sin ruido es tal que cuando se las decodifica en el orden recibido y guardado en la matriz, bin es el índice de incremento más rápido y win es el índice que se incrementa con más lentitud. Dentro de una palabra clave, el orden de decodificación es a y luego b.
[0218] En primer lugar, la bandera (opcional) “arith_reset_flag” determina si el contexto debe ser reiniciado (sería conveniente reiniciarlo). Si la bandera es VERDADERA, se ejecuta la inicialización.
[0219] El proceso decomienza con una fase de inicialización en la cual el vector de elementos de contexto “q” se actualiza copiando y mapeando los elementos de contexto del cuadro anterior almacenado en las matrices o submatrices “q[1][]” en “q[0][]”. Los elementos de contexto dentro de “q” se almacenan en 4 bits por 2–tuplo. Para ver detalles sobre la inicialización, se hace referencia al algoritmo, una representación de pseudo código de programa del cual está expuesta en la Fig. 19.
[0220] Con posterioridad a la inicialización, que se puede ejecutar de conformidad con el algoritmo de la Fig. 19, se puede ejecutar el escalamiento del contexto en la frecuencia, que ya ha sido descrito. Por ejemplo, se puede considerar que la matriz (o submatriz) q[0][] es la estructura de memoria contextual preliminar 432 (o puede ser equivalente a la matriz self–>base.m gbuf[] [], excepto por los detalles con respecto a las dimensiones y con respecto a las entradas e y v). Además, el contexto con frecuencia escalada puede ser vuelto a almacenar en la matriz q[0][] (o en la matriz "self–>base.m_gbuf[J [] "). Por otro lado, sin embargo, o además, se puede escalar la frecuencia del contenido de la matriz (o submatriz) q[1] [] mediante el aparato 43 8.
[0221] En resumen, el decodificador sin ruido o da salida a 2–tuplos de coeficientes espectrales cuantizados sin signo. Al principio (o, por lo general, después del escalamiento de la frecuencia), se calcula el estado c del contexto sobre la base de los coeficientes espectrales anteriormente decodificados que rodean al 2–tuplo a decodificar. Por lo tanto, el estado se actualiza en incrementos utilizando el estado del contexto del último 2–tuplo decodificado tomando en cuenta sólo dos nuevos 2–tuplos. El estado se codifica, por ejemplo en 17–10 bits y es devuelto por la función “arith_get_context[]”, una representación de pseudo código de programa de la cual está expuesta en la Fig.
20.
[0222] El estado del contexto c, que se obtiene en forma de valor de retorno de la función "arith get_context[]"determina la tabla de frecuencias cumulativas usada para decodificar el plano de 2 bits más significativos m. El mapeo de c al correspondiente índice de tabla de frecuencias cumulativas “pki” es ejecutado por la función “arith_get_pk[]”.una representación de pseudo código de programa de la cual está expuesta en la Fig. 21.
[0223] El valor m es decodificado utilizando la función “arith_decode[]” evocada con la tabla de frecuencias cumulativas, “arith_cf_m[pki][]”, donde pki corresponde al índice devuelto por la función “arith_get_pk[]”. El codificador aritmético es una implementación de números enteros que utiliza un procedimiento de generación de etiquetas con escalamiento. El pseudo código C de acuerdo con la Fig. 22 describe el algoritmo utilizado.
[0224] Cuando el valor decodificado m es el símbolo de escape “ARITH_ESCAPE”, las variables “lev” y “esc_nb” se incrementan 1 y se decodifica otro valor m. En este caso, la función “get_pk[]” es evocada una vez más con el valor “c+ esc_nb<<17” como argumento de entrada, donde “esc_nb” es el número de símbolos de escape previamente decodificado para el mismo 2–tuplo y limitado a 7.
[0225] Una vez que el valor m ya no es el símbolo de escape “ARITH_ESCAPE”, el decodificador verifica si el m sucesivo forma un símbolo “ARITH_STOP”. Si la condición “(esc_nb>0&&m==0)” es cierta, se detecta el símbolo “ARITH_STOP” y el proceso de decodificación finaliza. El decodificador salta directamente a la decodificación de signos que se describe más adelante. La condición significa que el resto del cuadro está compuesto por valores 0.
[0226] Si ya no aparece el símbolo “ARITH_STOP”, luego se decodifica el resto de los planos de bits, luego se decodifica el resto de los planos de bits, en caso de haberlos, correspondientes al presente 2–tuplo. El resto de los planos de bits son decodificados desde el nivel más significativo al menos significativo, evocando “arith_decode[]" lev número de veces. Los planos de bits decodificados r permiten la refinación de los valores a, b antes decodificados de acuerdo con el algoritmo cuyo pseudo código de programa se ilustra en la Fig. 23.
[0227] En este punto, el valor sin signo del 2–tuplo (a,b) está completamente decodificado. Se lo guarda en la matriz "x_ac_dec[]" que contiene los coeficientes espectrales como se ilustra en el pseudo código de programa de la Fig.
24.
[0228] El contexto q también se actualiza respecto del siguiente 2–tuplo. Se debe tener en cuenta que esta
actualización del contexto también puede ser ejecutada para el último 2–tuplo. Esta actualización del contexto es ejecutada por la función “arith_update_context[]”, una representación de pseudo código de programa de la cual está expuesta en la Fig. 25.
[0229] A continuación se decodifica el siguiente 2–tuplo del cuadro incrementando i en 1 y repitiendo el mismo proceso antes descrito. En particular, se puede ejecutar el escalamiento de la frecuencia del contexto y se puede reiniciar el proceso antes descrito a partir de la función “arith_get_context[]”. Cuando se decodifican lg/2 2–tuplos dentro del cuadro, o cuando aparece el símbolo de parada “ARITH_STOP”, el proceso de decodificación de la amplitud espectral finaliza y comienza la decodificación de los signos.
[0230] Una vez decodificados todos los coeficientes espectrales cuantizados sin signo, se agrega el signo correspondiente. Por cada valor cuantizado no nulo de “x_ac_dec”, se lee un bit. Si el valor del bit leído es igual a uno, el valor cuantizado es positivo, no se hace nada y el valor con signo es igual al valor sin signo anteriormente decodificado. De lo contrario, el coeficiente decodificado es negativo y se toma el complemento de dos del valor sin signo. Los bits con signo se leen desde las frecuencias bajas a las altas
[0231] La decodificación termina mediante la evocación de la función “arith_finish[]”, una representación de pseudo código de programa de la cual está expuesta en la Fig. 26. El resto de los coeficientes espectrales son puestos en cero. Se actualizan de manera correspondiente los respectivos estados del contexto.
[0232] Resumiendo lo expuesto, se ejecuta una decodificación basada en el contexto (o dependiente del contexto) de los valores espectrales, donde se pueden decodificar los valores espectrales individuales o donde se pueden decodificar los valores espectrales por tuplos (como se ilustrara anteriormente). El contexto puede sufrir escalamiento de la frecuencia, como se describe en este documento, para obtener una buena eficiencia de codificación/decodificación en el caso de una variación temporal de la frecuencia fundamental (o, en forma equivalente, del tono).
11. Flujo de Audio De acuerdo con las Figs. 27a–27f
[0233] A continuación, se describe un flujo de audio que comprende una representación codificada de uno o más canales de señales de audio y uno o más contornos de distorsión de tiempo. El flujo de audio descrito a continuación puede acarrear, por ejemplo, la representación de señal de audio codificada 112 o la representación de señal de audio codificada 152.
[0234] La Fig. 27a ilustra una representación gráfica de un denominado “bloque de datos crudos USAC”, que puede comprender un elemento de canal de señal (SCE), un elemento de par de canales (CPE) o una combinación de uno
o más elementos de canales individuales y/o uno o más pares de elementos de canales.
[0235] El bloque de datos crudos USAC”, puede comprender, por lo general, un bloque de datos de audio codificados, en tanto que la información adicional de contorno de distorsión de tiempo puede provenir de un elemento de flujo de datos separado. De todas maneras, naturalmente es posible codificar algunos datos de contorno de distorsión de tiempo en el “bloque de datos crudos USAC”.
[0236] Como se puede apreciar en la Fig. 27b, un elemento de canal único comprende por lo general un flujo de canales en el dominio de la frecuencia ("fd channel_stream"), que se explica en forma detallada con referencia a la Fig. 27d.
[0237] Como se puede apreciar en la Fig. 27c, un elemento de par de canales ("channel_pair_element") comprende por lo general una pluralidad de flujos de canales en el dominio de la frecuencia. Además, el elemento de par de canales puede comprender información de distorsión de tiempo, como por ejemplo, una bandera de activación de distorsión de tiempo ("tw MDCT"), que se puede transmitir en un elemento de flujo de datos de configuración o en el “bloque de datos crudos USAC”, y que determina si la información de distorsión de tiempo está incluida en el elemento de par de canales. Por ejemplo, si la bandera "tw MDCT" indica que la distorsión de tiempo está activa, el elemento de par de canales puede comprender una bandera ("common_tw"), que indica si hay una distorsión de tiempo común para los canales de audio del elemento de par de canales. Si dicha bandera ("common tw") indica que hay una distorsión de tiempo común para múltiples canales de audio, luego se incluye una información de distorsión de tiempo común ("tw data") en el elemento de par de canales, por ejemplo separado de los flujos de canales en el dominio de la frecuencia.
[0238] Haciendo referencia ahora a la Fig. 27d, se describe el flujo de canales en el dominio de la frecuencia. Como se puede apreciar en la Fig. 27d el flujo de canales en el dominio de la frecuencia comprende, por ejemplo, una información de ganancia global. Además, el flujo de canales en el dominio de la frecuencia comprende datos de distorsión de tiempo, si la distorsión de tiempo está activa (si la bandera "tw MDCT" está activa) y si no hay ninguna información de distorsión de tiempo correspondiente a múltiples canales de señales de audio (la bandera "common tw" está inactiva).
[0239] Además, un flujo de canales en el dominio de la frecuencia comprende además datos de factor de escalamiento ("scale–factor–data") y datos espectrales codificados (por ejemplo, datos espectrales aritméticamente codificados "ac–Spectral–data").
[0240] Haciendo referencia ahora a la Fig. 27e, se explica brevemente la sintaxis de los datos de distorsión de tiempo. Los datos de distorsión de tiempo pueden comprender, opcionalmente pe una bandera (por ej., "tw data_present" o "active_pitch_data") que indica si hay datos de distorsión de tiempo presentes. Si hay datos de distorsión de tiempo presentes (es decir, si el contorno de distorsión de tiempo no es plano), los datos de distorsión de tiempo pueden comprender la secuencia de una pluralidad de valores de relación de distorsión de tiempo codificados (por ej., "tw_ratio[i]" o "pitch Idx[i]"), que pueden ser codificados, por ejemplo, de acuerdo con una tabla de libros de códigos dependientes de la frecuencia de muestreo, como se describiera anteriormente.
[0241] Por consiguiente, los datos de distorsión de tiempo pueden comprender una bandera que indique que no hay datos de distorsión de tiempo disponibles, que puede ser establecida por un codificador de señales de audio, si el contorno de distorsión de tiempo es constante (las relaciones de distorsión de tiempo son aproximadamente iguales a 1,000). Por el contrario, si el contorno de distorsión de tiempo es variado, las relaciones entre los nodos del contorno de distorsión de tiempo subsiguientes pueden ser codificadas utilizando los índices de libros de códigos, que constituyen la información de libros de códigos "tw ratio".
[0242] La Fig. 27f ilustra una representación gráfica de la sintaxis de los datos espectrales aritméticamente codificados "ac_spectral_data()”. Los datos espectrales aritméticamente codificados son codificados dependiendo del estado de una bandera de independencia (en este caso: "indepFlag"), que indica, en caso de estar activa, que los datos aritméticamente codificados son independientes de los datos aritméticamente codificados de un cuadro anterior. Si la bandera de independencia está activa "indepFlag" se establece que se active la otra bandera de reinicio "arith reset flag". De lo contrario, el valor de la bandera de reinicio aritmético está determinado por un bit de los datos espectrales aritméticamente codificados.
[0243] Además, el bloque de datos espectrales aritméticamente codificados "ac spectral_data() " comprende uno o más unidades de datos aritméticamente codificados, donde el número de unidades de datos aritméticamente codificados "arith data()" depende de un número de bloques (o ventanas) del cuadro actual. En el modo de bloques largos, hay sólo una ventana por cuadro de audio. Sin embargo, en una modalidad de bloques cortos puede haber, por ejemplo, ocho ventanas por cuadro de audio. Cada unidad de datos espectrales aritméticamente codificados "arith data" comprende una serie de coeficientes espectrales, que pueden servir como entrada para una transformada del dominio de la frecuencia al dominio del tiempo, que puede ser ejecutada, por ejemplo, por la transformada inversa 180e.
[0244] El número de coeficientes espectrales por unidad de datos aritméticamente codificados "arith_data" puede ser independiente, por ejemplo, de la frecuencia de muestreo, pero puede depender del modo de longitud de bloques (modo de bloques cortos "EIGHT–SHORT–SEQUENCE" o modo de bloques largos "ONLY– LONGSEQUENCE").
12. Conclusiones
[0245] Para resumir lo expuesto, se han descrito mejoras del contexto de la transformada de coseno discreta modificada con distorsión de tiempo. La invención aquí descrita se halla en el campo de un codificador de transformada de coseno discreta modificada con distorsión de tiempo (ver, por ejemplo, las referencias [1] y [2]) y comprende procedimientos para una eficiencia mejorada de un codificador de transformada MDCT con distorsión. Una implementación de ese tipo de codificador de transformada de coseno discreta modificada con distorsión de tiempo es la instrumentada en trabajo de normalización de la codificación de audio MPEG USAC 5 (ver, por ejemplo,
la referencia [3]). Se pueden encontrar detalles sobre la implementación de TW–MDCT utilizada, por ejemplo, en la referencia [4].
[0246] Sin embargo, en la presente se sugieren mejoras de los conceptos mencionados.
13. Alternativas de Implementación
[0247] Si bien se han descrito algunos aspectos en el contexto de un aparato, es evidente que estos aspectos también representan una descripción del correspondiente procedimiento, donde un bloque o dispositivo corresponde a un paso del procedimiento o a una característica de un paso del procedimiento. De manera análoga, los aspectos descritos en el contexto de un paso del procedimiento también representan una descripción de un correspondiente bloque o elemento o característica de un aparato correspondiente. Algunos o todos los pasos del procedimiento pueden ser ejecutados (o utilizando) un aparato de hardware, como por ejemplo un microprocesador, una computadora programable o un circuito electrónico. En algunas realizaciones, uno o más de los pasos más importantes del procedimiento pueden ser ejecutados por ese tipo de aparato.
[0248] La señal de audio codificada de acuerdo con la presente invención puede ser almacenada en un medio de almacenamiento digital o puede ser transmitida en un medio de transmisión tal como un medio de transmisión inalámbrico o un medio de transmisión conectado por cables tal como la Internet.
[0249] Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención se pueden implementar en hardware o en software. La implementación se puede ejecutar empleando un medio de almacenamiento digital, por ejemplo un disco blando, un DVD, un Blue–Ray, un CD, una ROM, una PROM, una EPROM, una EEPROM o una memoria FLASH, que tiene almacenadas en la misma señales control legibles electrónicamente, que cooperan (o tienen capacidad para cooperar) con un sistema de computación programable de tal manera que se ejecute el procedimiento respectivo. Por lo tanto, el medio de almacenamiento digital puede ser legible por computadora
[0250] Algunas realizaciones de acuerdo con la invención comprenden un transportador de datos que comprende señales de control legibles electrónicamente, con capacidad para cooperar con un sistema de computación programable de tal manera que se ejecute uno de los procedimientos descritos en la presente.
[0251] En general, las realizaciones de la presente invención pueden ser implementadas en forma de producto programa de ordenador con un código de programa, donde el código de programa cumple la función de ejecutar uno de los procedimientos al ejecutarse el programa de ordenador en una computadora. El código de programa puede ser almacenado, por ejemplo, en un portador legible por una máquina.
[0252] Otras realizaciones comprenden el programa de ordenador para ejecutar uno de los procedimientos aquí descritos, almacenado en un portador legible por una máquina.
[0253] En otras palabras, una realización del procedimiento de la invención consiste, por lo tanto, en un programa de ordenador que consta de un código de programa para realizar uno de los procedimientos aquí descritos al ejecutarse el programa de ordenador en una computadora.
[0254] Otra de las realizaciones de los procedimientos de la invención consiste, por lo tanto, en un portador de datos (o medio de almacenamiento digital, o medio legible por computadora) que comprende, grabado en el mismo, el programa de ordenador para ejecutar uno de los procedimientos aquí descritos. El portador de datos, medio de almacenamiento digital, o medio legible por computadora son por lo general tangibles y no transitorios.
[0255] Otra de las realizaciones del procedimiento de la invención es, por lo tanto, un flujo de bits de datos o una secuencia de señales que representa el programa de ordenador para ejecutar uno de los procedimientos aquí descritos. El flujo de datos o la secuencia de señales puede estar configurado, por ejemplo, para ser transferido a través de una conexión de comunicación de datos, por ejemplo por la Internet.
[0256] Otra de las realizaciones comprende un medio de procesamiento, por ejemplo una computadora, un dispositivo lógico programable, configurado o adaptado para ejecutar uno de los procedimientos aquí descritos.
[0257] Otra de las realizaciones comprende una computadora en la que se ha instalado el programa de ordenador para ejecutar uno de los procedimientos aquí descritos.
[0258] Otra de las realizaciones de acuerdo con la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, por vía electrónica u óptica) un programa de ordenador para ejecutar uno de los procedimientos aquí descritos a un receptor. El receptor puede ser, por ejemplo, una computadora, un dispositivo móvil, un dispositivo de memoria o similar. El aparato o sistema puede comprender, por ejemplo, un servidor de archivos para transferir el programa de ordenador al receptor.
[0259] En algunas realizaciones, se puede utilizar un dispositivo lógico programable (por ejemplo una matriz de puertas programables en el campo) para ejecutar algunas o todas las funcionalidades de los procedimientos aquí descritos. En algunas realizaciones, una matriz de puertas programables en el campo puede cooperar con un microprocesador para ejecutar uno de los procedimientos aquí descritos. Por lo general, los procedimientos son ejecutados preferentemente por cualquier aparato de hardware.
[0260] Las realizaciones precedentemente descritas son meramente ilustrativas de los principios de la presente invención. Se entiende que las modificaciones y variaciones de las disposiciones y detalles aquí descritos han de ser evidentes para las personas con capacitación en la técnica. Por lo tanto, sólo es intención limitarse al alcance de las siguientes reivindicaciones de patente y no a los detalles específicos presentados a manera de descripción y explicación de las realizaciones aquí presentadas.
Referencias
[0261]
[1] Bernd Edler et.al., "Time Warped MDCT", US 61/042,314, Provisional application for patent,
[2] L. Villemoes, "Time Warped Transform Coding of Audio Signals", PCT/EP2006/010246, International. Patent application, November 2005.
[3] "WD6 of USAC", ISO/IEC JTC1/SC29/WG11 N11213, 2010
[4] Bernd Edler et. al., "A Time-Warped MDCT Approach to Speech Transform Coding",126th AES Convention, Munich, May 2009, preprint 7710
[5] Nikolaus Meine, "Vektorquantisierung und kontextabhängige arithmetische Codierung für MPEG-4 AAC", VDI, Hannover, 2007

Claims (16)

  1. REIVINDICACIONES
    1. Un decodificador de señales de audio (150; 240) para generar una representación de señal de audio decodificada
    (154) sobre la base de una representación de señal de audio codificada (152) que comprende una representación de espectro codificado (ac spectral_data[]) y una información de distorsión de tiempo codificada (tw data[]), donde el decodificador de señales de audio comprende:
    un decodificador de valores espectrales basado en el contexto (160) configurado para decodificar una palabra en código (acod m) que describe uno o más valores espectrales o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales que depende de un estado del contexto, para obtener valores espectrales decodificados (162, 297, x ac dec[]); un determinador del estado del contexto (170; 400) configurado para determinar un estado actual del contexto––(164; c) dependiendo de uno o más valores espectrales anteriormente decodificados (162, 297); un convertidor del dominio de la frecuencia al dominio del tiempo con distorsión de tiempo (180) configurado para generar una representación en el dominio del tiempo con distorsión de tiempo (182) de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados (162, 297) asociados al cuadro de audio dado y provistos por el decodificador de valores espectrales basado en el contexto y dependiendo de la información de distorsión de tiempo; donde el determinador del estado del contexto (170; 400) está configurado para adaptar la determinación del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.
  2. 2.
    El decodificador de señales de audio de acuerdo con la reivindicación 1, donde la información de distorsión de tiempo (tw_data) describe una variación (prel) de un tono con el transcurso del tiempo; y donde el determinador del estado del contexto (170; 400) está configurado para derivar una información de estiramiento de la frecuencia (s; m_ContextUpdateRatio) de la información de distorsión de tiempo (tw_data); y donde el determinador del estado del contexto está configurado para estirar o comprimir un contexto anterior (432, q[0][], 450) asociado al cuadro de audio anterior a lo largo del eje de frecuencia dependiendo de la información de estiramiento de la frecuencia (s, m_ContextUpdateRatio), para obtener un contexto adaptado (440, q[0] [], 452) para una decodificación basada en el contexto de uno o más valores espectrales de un cuadro de audio actual.
  3. 3.
    El decodificador de señales de audio de acuerdo con la reivindicación 2, donde el determinador del estado del contexto (170, 400) está configurado para derivar una primera información de frecuencia promedio (frel,mean,k–1) durante un primer cuadro de audio de la información de distorsión de tiempo (tw_data, prel, warp_contour[]), y para derivar una segunda información de frecuencia promedio (frel,mean,k) correspondiente a un segundo cuadro de audio posterior al primer cuadro de audio de la información de distorsión de tiempo; y donde el determinador del estado del contexto está configurado para computar una relación entre la segunda información de frecuencia promedio (frel,mean,k) a través del segundo cuadro de audio y la primera información de frecuencia promedio (frel,mean,k–1) a través del primer cuadro de audio a fin de determinar la información de estiramiento de la frecuencia (s; m_ ContextUpdateRatio).
  4. 4.
    El decodificador de señales de audio de acuerdo con la reivindicación 2, donde el determinador del estado del contexto (170; 400) está configurado para determinar una primera información promedio de contorno con distorsión de tiempo (prel,mean,k–1) a través de un primer cuadro de audio de la información de distorsión de tiempo (tw_data, prel warp_contour[]), y donde el determinador del estado del contexto está configurado para derivar una segunda información de contorno con distorsión de tiempo promedio (Prel,mean,k) correspondiente a un segundo cuadro de audio después del primer cuadro de audio de la información de distorsión de tiempo (252, tw data, prel, warp_contour[]), y donde el determinador del estado del contexto está configurado para computar una relación entre la primera información de contorno con distorsión de tiempo promedio (prel,mean,k–1) a través del primer cuadro de audio y la segunda información de contorno con distorsión de tiempo promedio (prel,mean,k) a través del segundo cuadro de audio, a fin de determinar la información de estiramiento de la frecuencia (s, m_ContextUpdateRatio).
  5. 5.
    El decodificador de señales de audio de acuerdo con la reivindicación 3 o la reivindicación 4, donde el determinador del estado del contexto (170, 400) está configurado para derivar la primera y segunda información de frecuencia media o la primera y segunda información de contorno con distorsión de tiempo promedio a partir de un contorno común de distorsión de tiempo (warp contour[]) que se extiende una pluralidad de cuadros de audio consecutivos.
  6. 6.
    El decodificador de señales de audio de acuerdo con la reivindicación 3, la reivindicación 4 o la reivindicación 5, donde el decodificador de señales de audio comprende una calculadora de distorsión de tiempo (250) configurada para calcular una información de contorno de distorsión de tiempo (prel[], warp_contour[], 258) que describe una evolución temporal de un tono relativo en toda una pluralidad de cuadros de audio consecutivos sobre la base de la información de distorsión de tiempo (tw_data, 252), y donde el determinador del estado del contexto (170, 400) está configurado para usar la información de contorno de distorsión de tiempo para derivar la información de estiramiento de la frecuencia.
  7. 7.
    El decodificador de señales de audio de acuerdo con la reivindicación 6, donde el decodificador de señales de audio comprende una calculadora de posiciones de remuestreo (1801), donde la calculadora de posiciones de remuestreo (1801) está configurado para calcular posiciones de remuestreo para usar por un remuestreador de distorsión de tiempo (180i) sobre la base de la información de contorno de distorsión de tiempo (prel[], warp_contour[], 258), de tal manera que una variación temporal de las posiciones de remuestreo sea determinada por la información de contorno de distorsión de tiempo.
  8. 8.
    El decodificador de señales de audio de acuerdo con una de las reivindicaciones 1 a 7, donde el determinador del estado del contexto (170, 400) está configurado para derivar un valor numérico del contexto actual (164, c), que describe el estado del contexto, dependiendo de una pluralidad de valores espectrales antes decodificados, y para seleccionar una regla de mapeo (cum_freq[]) que describe el mapeo de un valor código (acod m) sobre un código de símbolo (símbolo) que representa uno o más valores espectrales, o una porción (m) de una representación numérica de uno o más valores espectrales, dependiendo del valor numérico de contexto actual, donde el decodificador de valores espectrales basado en el contexto (160) está configurado para decodificador el valor código (acod m) que describe uno o más valores espectrales, o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales, usando la regla de mapeo (cum freq[]) seleccionada por el determinador del estado del contexto.
  9. 9.
    El decodificador de señales de audio de acuerdo con la reivindicación 8, donde el determinador del estado del contexto (170, 400) está configurado para configurar y actualizar una estructura de memoria contextual preliminar (432, m_gbuf), de manera tal que las entradas de la estructura de memoria contextual preliminar describe uno o más valores espectrales (162, 297) de un primer cuadro de audio, donde los índices de entrada de las entradas de la estructura de memoria contextual preliminar son indicativos de una caja de frecuencia o una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) al cual están asociadas las respectivas entradas; donde el determinador del estado del contexto está configurado para obtener una estructura de memoria contextual con escalamiento de la frecuencia (440; m_ gbuf) para una decodificación de un segundo cuadro de audio posterior al primer cuadro de audio sobre la base de la estructura de memoria contextual preliminar, de manera tal que una entrada dada (450a, 450c, self–>base.m_gbuf[nWarpTupleldx]) o una subentrada (self– >base.m_qbuf[nWarpTupleldx].a) de la estructura de memoria contextual preliminar que tiene un primer índice de frecuencia (i1+1, i2+2,nWarpTupleldx) se mapea sobre una correspondiente entrada (452a, 452c, self–>base.m gbuf[nLinTupleldx]) o subentrada (self–>base.m gbuf[nLinTupleldx].a) de una estructura de memoria contextual con escalamiento de la frecuencia (440, m_qbuf,452) que tiene un segundo índice de frecuencia (i1, i2–1, nLinTupleldx), donde el segundo índice de frecuencia está asociado a una caja de frecuencia o a una serie de cajas de frecuencia adyacentes diferentes del primer índice de frecuencia del convertidor del dominio de la frecuencia al dominio del tiempo (180e).
  10. 10.
    El decodificador de señales de audio de acuerdo con la reivindicación 9, donde el determinador del estado del contexto (170, 400) está configurado para derivar un valor de estado del contexto (164,420) que describe el estado actual del contexto para la decodificación de una palabra en código (acod m) que describe uno o más valores espectrales del segundo cuadro de audio, o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales de un segundo cuadro de audio, que tiene asociado un tercer índice de frecuencia (il) usando valores de la estructura de memoria contextual con frecuencia escalada (440, m_gbuf, 452) , índices de frecuencia (i1–1, i1,i 1+1) de los cuales los valores de la estructura de memoria contextual con escalamiento de la frecuencia están en relación predeterminada con el tercer índice de frecuencia (i 1), donde el tercer índice de frecuencia (i1) designa una caja de frecuencia o una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) a las cuales están asociados uno o más valores espectrales del segundo cuadro de audio a decodificar usando el estado actual del contexto.
  11. 11.
    El decodificador de señales de audio de acuerdo con la reivindicación 9 o la reivindicación 10, donde el determinador del estado del contexto (170;400) está configurado para establecer cada una de una pluralidad de entradas (452a, 452c, self–>base.m gbuf[nLinTupleldx]) de la estructura de memoria contextual con escalamiento de la frecuencia (440,452,m_qbuf) que tiene un correspondiente índice de frecuencia objetivo (il, i2–1, nLinTupleldx) con un valor de una entrada correspondiente (450a, 450c, self–>base.m gbuf[nWarpTupleldx]) de la estructura de memoria contextual preliminar (432,450,m_gbuf) que tiene un índice de frecuencia de origen correspondiente (i1+1, i2+2, nWarpTupleldx), donde el determinador del estado del contexto está configurado para determinar los correspondientes índices de frecuencia (i1, i1 + 1; i2– 1, i2+2; nLinTupleldx, nWarpTupleldx) de una entrada de la estructura de memoria contextual con escalamiento de la frecuencia y de una correspondiente entrada de la estructura de memoria contextual preliminar por lo que una relación entre dichos índices de frecuencia correspondientes (nLinTupleldx, nWarpTupleldx) está determinada por el cambio de la frecuencia fundamental entre un cuadro de audio actual, al cual las entradas de la estructura de memoria contextual preliminar están asociadas, y un cuadro de audio subsiguiente, el contexto de decodificación del cual está determinado por las entradas de la estructura de memoria contextual con escalamiento de la frecuencia.
  12. 12.
    El decodificador de señales de audio de acuerdo con la reivindicación 9 o la reivindicación 10, donde el determinador del estado del contexto (170, 400) está configurado para establecer la estructura de memoria contextual preliminar (432,m_qbuf, 450) de tal manera que cada una de una pluralidad de entradas (450a, 450c, self >base_m_gbuf[nWarpTupleldx]) de la estructura de memoria contextual preliminar se basa en una pluralidad de valores espectrales (a,b,c,d) de un primer cuadro de audio, donde los índices de entrada (i1+1, i2+2, nWarpTupleldx) de las entradas de la estructura de memoria contextual preliminar (432,450,m_gbuf) son indicativos de una serie de cajas de frecuencia adyacentes del convertidor del dominio de la frecuencia al dominio del tiempo (180e) al cual están asociadas las respectivas entradas; donde el determinador del estado del contexto está configurado para extraer valores preliminares individuales de contexto de las cajas de frecuencia (lineReorderBuf[(curTuple–l)*4+0]., lineReorderBuf[(curTuple–1)*4+3]) que tienen índices individuales asociados de cajas de frecuencia de las entradas (self–>base.m_gbuf[curTuple[][]) de la estructura de memoria contextual preliminar; donde el determinador del estado del contexto está configurado para obtener valores de contexto individuales de cajas de frecuencia con escalamiento de la frecuencia (lineTmpBuf[linLineldx]) que tienen índices de cajas de frecuencia individuales asociados (linLineldx), por lo que se mapea un valor dado de contexto individual de caja de frecuencia preliminar (lineReorderBuf[warpLineldx]) que tiene un primer índice de caja de frecuencia (warpLineldx) sobre un correspondiente valor de contexto individual de caja de frecuencia con escalamiento de la frecuencia (lineTmpBuf[linLineldx]) que tiene un segundo índice de caja de frecuencia (linLineIdx), de tal manera que se obtenga el mapeo individual de las cajas de frecuencia del valor de contexto individual preliminar de las cajas de frecuencia y donde el determinador de estado del contexto está configurado para combinar una pluralidad de valores de contexto individuales de las cajas de frecuencia con escalamiento de la frecuencia (lineTmpBuff(curTuple_1)*4+0,..., lineTmpBuf[(curTuple–1)*4+3] en una entrada combinada (self– >base.m_gbufjcurTuple][]) de la estructura de memoria contextual con escalamiento de la frecuencia.
  13. 13.
    Un codificador de señales de audio (100; 200) para generar una representación codificada (112) de una señal de audio de entrada (110) que comprende una representación de espectro codificado (132) y una información de distorsión de tiempo codificada (226), donde el codificador de señales de audio comprende:
    un generador de representaciones en el dominio de la frecuencia (120) configurado para generar una representación en el dominio de la frecuencia (124) que representa una versión con distorsión de tiempo de la señal de audio de entrada, con distorsión de tiempo ejecutada de conformidad con la información de distorsión de tiempo (122); un codificador de valores espectrales sobre la base del contexto (130) configurado para generar una palabra en código (acod_m) que describe uno o más valores espectrales de la representación en el dominio de la frecuencia (124), o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales de la representación en el dominio de la frecuencia (124), que depende de un estado del contexto (134), para obtener valores espectrales codificados (acod_m) de la representación de espectro codificada (132); y un determinador del estado del contexto (140) configurado para determinar un estado actual del contexto
    (134) dependiendo de uno o más valores espectrales anteriormente decodificados, donde el determinador del estado del contexto (140) está configurado para adaptar la determinación del estado del contexto a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.
  14. 14.
    El codificador de señales de audio de acuerdo con la reivindicación 13, donde el determinador del estado del contexto está configurado para derivar un valor numérico del contexto actual (134, c) dependiendo de una pluralidad de valores espectrales anteriormente codificados, y para seleccionar una regla de mapeo que describe un mapeo de uno o más valores espectrales, o de una porción (m) de una representación numérica de uno o más valores espectrales, sobre un valor de código (acod_m) dependiendo del valor numérico de contexto actual, donde el codificador de valores espectrales sobre la base del contexto está configurado para generar el valor código que describe uno o más valores espectrales, o por lo menos una porción de una representación numérica de uno o más valores espectrales, utilizando la regla de mapeo seleccionada por el determinador del estado del contexto.
  15. 15.
    Un procedimiento para generar una representación de señal de audio decodificada (154) sobre la base de una representación de señal de audio codificada (152) que comprende una representación de espectro codificado (ac_spectral _data[]) y una información de distorsión de tiempo codificada (tw data[]), donde el procedimiento comprende:
    decodificar una palabra en código (acod m) que describe uno o más valores espectrales o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales que depende de un estado del contexto, para obtener valores espectrales decodificados (162, 297, x_ac_dec[]); determinar un estado actual del contexto (164, c) dependiendo de uno o más valores espectrales anteriormente decodificados (162, 297); generar una representación en el dominio del tiempo con distorsión de tiempo (182) de un cuadro de audio dado sobre la base de una serie de valores espectrales decodificados (162, 297) asociados al cuadro de audio dado y generados por el decodificador de valores espectrales basado en el contexto y dependiendo de la información de distorsión de tiempo; donde la determinación del estado del contexto está adaptada a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.
  16. 16. Un procedimiento para generar una representación codificada (112) de una señal de audio de entrada (110) que
    comprende una representación de espectro codificado (132) y una información de distorsión de tiempo codificada 5 (226), procedimiento que comprende:
    generar una representación en el dominio de la frecuencia (124) que representa una versión con distorsión de tiempo de la señal de audio de entrada, con distorsión de tiempo ejecutada de conformidad con la información de distorsión de tiempo (122);
    10 generar una palabra en código (acod_m) que describe uno o más valores espectrales de la representación en el dominio de la frecuencia (124), o por lo menos una porción (m) de una representación numérica de uno o más valores espectrales de la representación en el dominio de la frecuencia (124), dependiendo de un estado del contexto (134), para obtener valores espectrales codificados (acod_m) de la representación de espectro codificada (132); y
    15 determinar un estado actual del contexto (134) dependiendo de uno o más valores espectrales anteriormente codificados, donde la determinación del estado del contexto está adaptada a un cambio de una frecuencia fundamental entre los cuadros de audio subsiguientes.
    20 17. Un programa de ordenador para poner en práctica el procedimiento de acuerdo con la reivindicación 15 o la reivindicación 16 al ejecutarse el programa de ordenador en una computadora.
ES11707415T 2010-03-10 2011-03-09 Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación Active ES2461183T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31250310P 2010-03-10 2010-03-10
US312503P 2010-03-10
PCT/EP2011/053541 WO2011110594A1 (en) 2010-03-10 2011-03-09 Audio signal decoder, audio signal encoder, method for decoding an audio signal, method for encoding an audio signal and computer program using a pitch-dependent adaptation of a coding context

Publications (1)

Publication Number Publication Date
ES2461183T3 true ES2461183T3 (es) 2014-05-19

Family

ID=43829343

Family Applications (2)

Application Number Title Priority Date Filing Date
ES11707415T Active ES2461183T3 (es) 2010-03-10 2011-03-09 Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación
ES11707665T Active ES2458354T3 (es) 2010-03-10 2011-03-09 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

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES11707665T Active ES2458354T3 (es) 2010-03-10 2011-03-09 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

Country Status (16)

Country Link
US (2) US9129597B2 (es)
EP (2) EP2539893B1 (es)
JP (2) JP5625076B2 (es)
KR (2) KR101445296B1 (es)
CN (2) CN102884572B (es)
AR (2) AR080396A1 (es)
AU (2) AU2011226143B9 (es)
BR (2) BR112012022744B1 (es)
CA (2) CA2792500C (es)
ES (2) ES2461183T3 (es)
HK (2) HK1179743A1 (es)
MX (2) MX2012010439A (es)
PL (2) PL2539893T3 (es)
RU (2) RU2607264C2 (es)
TW (2) TWI455113B (es)
WO (2) WO2011110591A1 (es)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2083418A1 (en) * 2008-01-24 2009-07-29 Deutsche Thomson OHG Method and Apparatus for determining and using the sampling frequency for decoding watermark information embedded in a received signal sampled with an original sampling frequency at encoder side
US8924222B2 (en) 2010-07-30 2014-12-30 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for coding of harmonic signals
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
CN103035249B (zh) * 2012-11-14 2015-04-08 北京理工大学 一种基于时频平面上下文的音频算术编码方法
US9466305B2 (en) 2013-05-29 2016-10-11 Qualcomm Incorporated Performing positional analysis to code spherical harmonic coefficients
US9716959B2 (en) 2013-05-29 2017-07-25 Qualcomm Incorporated Compensating for error in decomposed representations of sound fields
MX355850B (es) 2013-06-21 2018-05-02 Fraunhofer Ges Forschung Escalador de tiempo, decodificador de audio, metodo y programa de computadora usando un control de calidad.
CA2964362C (en) 2013-06-21 2020-03-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Jitter buffer control, audio decoder, method and computer program
ES2638201T3 (es) 2013-10-18 2017-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Codificación de las posiciones de los picos espectrales
PT3058566T (pt) * 2013-10-18 2018-03-01 Fraunhofer Ges Forschung Codificação de coeficientes espectrais de um espectro de um sinal de áudio
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
US9502045B2 (en) 2014-01-30 2016-11-22 Qualcomm Incorporated Coding independent frames of ambient higher-order ambisonic coefficients
US9922656B2 (en) 2014-01-30 2018-03-20 Qualcomm Incorporated Transitioning of ambient higher-order ambisonic coefficients
CN110619884B (zh) * 2014-03-14 2023-03-07 瑞典爱立信有限公司 音频编码方法和装置
US10770087B2 (en) * 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
US9620137B2 (en) 2014-05-16 2017-04-11 Qualcomm Incorporated Determining between scalar and vector quantization in higher order ambisonic coefficients
US9852737B2 (en) 2014-05-16 2017-12-26 Qualcomm Incorporated Coding vectors decomposed from higher-order ambisonics audio signals
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
WO2016142002A1 (en) * 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
CN105070292B (zh) * 2015-07-10 2018-11-16 珠海市杰理科技股份有限公司 音频文件数据重排序的方法和系统
CN117238300A (zh) * 2016-01-22 2023-12-15 弗劳恩霍夫应用研究促进协会 使用帧控制同步来编码或解码多声道音频信号的装置和方法
EP3306609A1 (en) * 2016-10-04 2018-04-11 Fraunhofer Gesellschaft zur Förderung der Angewand Apparatus and method for determining a pitch information
JP7123134B2 (ja) * 2017-10-27 2022-08-22 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. デコーダにおけるノイズ減衰
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11776562B2 (en) * 2020-05-29 2023-10-03 Qualcomm Incorporated Context-aware hardware-based voice activity detection
AU2021359779A1 (en) * 2020-10-13 2023-06-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding a plurality of audio objects and apparatus and method for decoding using two or more relevant audio objects
CN114488105B (zh) * 2022-04-15 2022-08-23 四川锐明智通科技有限公司 一种基于运动特征及方向模板滤波的雷达目标检测方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272556B1 (en) 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
JP4196235B2 (ja) * 1999-01-19 2008-12-17 ソニー株式会社 オーディオデータ処理装置
KR20010072035A (ko) * 1999-05-26 2001-07-31 요트.게.아. 롤페즈 오디오 신호 송신 시스템
US6581032B1 (en) * 1999-09-22 2003-06-17 Conexant Systems, Inc. Bitstream protocol for transmission of encoded voice signals
CA2365203A1 (en) * 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
US20040098255A1 (en) * 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
US7394833B2 (en) * 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
JP4364544B2 (ja) * 2003-04-09 2009-11-18 株式会社神戸製鋼所 音声信号処理装置及びその方法
CN101167125B (zh) * 2005-03-11 2012-02-29 高通股份有限公司 用于对声码器内的帧进行相位匹配的方法及设备
AU2006232361B2 (en) * 2005-04-01 2010-12-23 Qualcomm Incorporated Methods and apparatus for encoding and decoding an highband portion of a speech signal
US7720677B2 (en) 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
DE602007004502D1 (de) 2006-08-15 2010-03-11 Broadcom Corp Neuphasierung des status eines dekodiergerätes nach einem paketverlust
CN101361112B (zh) * 2006-08-15 2012-02-15 美国博通公司 隐藏丢包后解码器状态的更新
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
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
EP2015293A1 (en) 2007-06-14 2009-01-14 Deutsche Thomson OHG Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain
EP2107556A1 (en) * 2008-04-04 2009-10-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio transform coding using pitch correction
CN102150201B (zh) 2008-07-11 2013-04-17 弗劳恩霍夫应用研究促进协会 提供时间扭曲激活信号以及使用该时间扭曲激活信号对音频信号编码
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
AU2009267543B2 (en) * 2008-07-11 2013-01-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and audio decoder
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding

Also Published As

Publication number Publication date
EP2539893B1 (en) 2014-04-02
AU2011226143B9 (en) 2015-03-19
MX2012010439A (es) 2013-04-29
JP5625076B2 (ja) 2014-11-12
JP2013522658A (ja) 2013-06-13
RU2607264C2 (ru) 2017-01-10
TWI455113B (zh) 2014-10-01
BR112012022744A2 (pt) 2017-12-12
EP2539893A1 (en) 2013-01-02
RU2012143323A (ru) 2014-04-20
CN102884572B (zh) 2015-06-17
CA2792500C (en) 2016-05-03
WO2011110591A1 (en) 2011-09-15
CA2792504C (en) 2016-05-31
US20130117015A1 (en) 2013-05-09
KR101445294B1 (ko) 2014-09-29
KR20130018761A (ko) 2013-02-25
RU2586848C2 (ru) 2016-06-10
CN102884573B (zh) 2014-09-10
AU2011226143A1 (en) 2012-10-25
EP2532001A1 (en) 2012-12-12
US9524726B2 (en) 2016-12-20
AU2011226140B2 (en) 2014-08-14
JP5456914B2 (ja) 2014-04-02
ES2458354T3 (es) 2014-05-05
CN102884572A (zh) 2013-01-16
BR112012022744B1 (pt) 2021-02-17
BR112012022741A2 (pt) 2020-11-24
EP2532001B1 (en) 2014-04-02
CA2792500A1 (en) 2011-09-15
US20130073296A1 (en) 2013-03-21
RU2012143340A (ru) 2014-04-20
TW201203224A (en) 2012-01-16
WO2011110594A1 (en) 2011-09-15
AU2011226140A1 (en) 2012-10-18
BR112012022741B1 (pt) 2021-09-21
TW201207846A (en) 2012-02-16
AR084465A1 (es) 2013-05-22
AU2011226143B2 (en) 2014-08-28
HK1179743A1 (en) 2013-10-04
TWI441170B (zh) 2014-06-11
PL2532001T3 (pl) 2014-09-30
MX2012010469A (es) 2012-12-10
AR080396A1 (es) 2012-04-04
KR101445296B1 (ko) 2014-09-29
JP2013521540A (ja) 2013-06-10
HK1181540A1 (en) 2013-11-08
PL2539893T3 (pl) 2014-09-30
US9129597B2 (en) 2015-09-08
CN102884573A (zh) 2013-01-16
KR20120128156A (ko) 2012-11-26
CA2792504A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
ES2461183T3 (es) Decodificador de señales de audio, codificador de señales de audio, procedimiento para decodificar una señal de audio, método para codificar una señal de audio y programa de ordenador que utilizan una adaptación dependiente de la frecuencia de un contexto de codificación
ES2454020T3 (es) Codificador de audio, decodificador de audio, procedimiento para codificar información de audio, procedimiento y programa de computación que usa una regla dependiente de la región para un mapeado mediante codificación aritmética
ES2911893T3 (es) Codificador de audio, decodificador de audio y métodos relacionados para procesar señales de audio estéreo usando una dirección de predicción variable
ES2701456T3 (es) Codificación de señales de audio multicanal usando predicción compleja y codificación diferencial
ES2615891T3 (es) Codificador de audio, decodificador de audio, método para codificar una información de audio, método para decodificar una información de audio y programa informático que utiliza una tabla de troceo que describe tanto valores de estado significativos como límites de intervalo
ES2642906T3 (es) Codificador de audio, procedimientos para proporcionar un flujo de audio y programa de ordenador
ES2433043T3 (es) Conmutación del modo de codificación ACELP a TCX
ES2558508T3 (es) Método de codificación, codificador, método de determinación de la cantidad de una característica periódica, aparato de determinación de la cantidad de una característica periódica, programa y medio de grabación
ES2687249T3 (es) Decisión no sonora/sonora para el procesamiento de la voz
CA2792453C (en) Signal processor and method for processing a signal
KR20200012862A (ko) 디지털 오디오 신호들에서의 가변 알파벳 크기
ES2635026T3 (es) Aparato y procedimiento de codificación, procesamiento y decodificación de envolvente de señal de audio por división de la envolvente de la señal de audio utilizando cuantización y codificación de distribución
ES2704891T3 (es) Codificación de audio multicanal usando predicción compleja e indicador real