MX2012004572A - Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica. - Google Patents

Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica.

Info

Publication number
MX2012004572A
MX2012004572A MX2012004572A MX2012004572A MX2012004572A MX 2012004572 A MX2012004572 A MX 2012004572A MX 2012004572 A MX2012004572 A MX 2012004572A MX 2012004572 A MX2012004572 A MX 2012004572A MX 2012004572 A MX2012004572 A MX 2012004572A
Authority
MX
Mexico
Prior art keywords
value
spectral
audio
decoded
frequency
Prior art date
Application number
MX2012004572A
Other languages
English (en)
Inventor
Markus Multrus
Nikolaus Rettelbach
Marc Gayer
Guillaume Fuchs
Vignesh Subbaraman
Christian Griebel
Oliver Weiss
Patrick Warmbold
Original Assignee
Fraunhofer Ges Forschung
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 Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of MX2012004572A publication Critical patent/MX2012004572A/es

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech 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 subband decomposition
    • G10L19/0208Subband vocoders

Abstract

Un decodificador de audio para proveer una información de audio decodificada sobre la base de una información de audio codificada comprende un decodificador aritmético para proveer una pluralidad de valores espectrales decodificados sobre la base de una representación aritméticamente codificada de los valores espectrales y un convertidor de dominio frecuencial a dominio temporal para proveer una representación de audio de dominio temporal que usa valores espectrales decodificados, para obtener la información de audio decodificada. El decodificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor de código a un código de símbolos de manera dependiente de un estado contextual. El decodificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente decodificados y también de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada. Un codificador de audio provee una información de audio codificada sobre la base de una información de audio entrante.

Description

CODIFICADOR DE AUDIO, DECODIFICADOR DE AUDIO, MÉTODO PARA CODIFICAR INFORMACIÓN DE AUDIO, MÉTODO PARA DECODIFICAR INFORMACIÓN DE AUDIO Y PROGRAMA DE COMPUTACIÓN QUE USA UNA REGLA DEPENDIENTE DE LA REGIÓN PARA UN MAPEADO MEDIANTE CODIFICACIÓN ARITMÉTICA Campo técnico Las formas de realización de acuerdo con la invención se refieren a un decodificador de audio para proveer información de audio decodificada sobre la base de una información de audio codificada, un codificador de audio para proveer una información de audio codificada sobre la base de una información de audio entrante, un método para proveer información de audio decodificada sobre la base de una información de audio codificada, un método para proveer una información de audio codificada sobre la base de una información de audio entrante y un programa de computación.
Las formas de realización de acuerdo con la invención se refieren a una codificación espectral insonorizada mejorada, que se puede usar en un codificador o decodificador de audio, por ejemplo, como el llamado codificador de lenguaje y audio unificados (USAC, por sus siglas en inglés).
Antecedentes de la invención A continuación se explicarán brevemente los antecedentes de la invención para facilitar la comprensión de la invención y sus ventajas. Durante la última década, se han hecho grandes esfuerzos para desarrollar la posibilidad de almacenar y distribuir en forma digital contenidos de audio con buena eficacia en la velocidad de transmisión de bits. Un logro importante con respecto a lo anterior es la definición de la Norma Internacional ISO/IEC 14496-3. La parte 3 de esta Norma se relaciona con la codificación y decodificación de contenidos de audio, y la subparte 4 de la parte 3 se relaciona con codificación general de audio. La ISO/IEC 14496, parte 3, subparte 4 define un concepto para la codificación y decodificación de contenidos de audio en general. Además, se han propuesto otras mejoras para aumentar la calidad y/o reducir la velocidad de transmisión de bits requerida.
De acuerdo con el concepto descripto en dicha Norma, una señal de audio de dominio temporal se convierte en una representación tiempo-frecuencia. La transformación del dominio temporal al dominio tiempo-frecuencia se lleva a cabo generalmente usando bloques transformadores, que también reciben el nombre de "marcos", de muestras de dominio temporal. Se ha descubierto que es conveniente usar marcos superpuestos, que sufren un desplazamiento, por ejemplo, de medio marco, porque la superposición permite evitar (o por lo menos reducir) con eficiencia artefactos. Además, se ha descubierto que debería ejecutarse un sistema de ventanas para evitar los artefactos que se originan de este procesamiento de marcos temporalmente limitados.
Transformando una porción de ventana de la señal de audio entrante desde el dominio temporal al dominio tiempo-frecuencia, en muchos casos se obtiene una compactacion de la energía, de manera que algunos de los valores espectrales comprenden una magnitud enormemente mayor que una pluralidad de otros valores espectrales. En consecuencia, en muchos casos, existe un número comparativamente pequeño de valores espectrales que poseen una magnitud considerablemente superior a una magnitud promedio de los valores espectrales. Un ejemplo típico de una transformación de dominio temporal a dominio tiempo- frecuencia que proporciona una compactación de energía es la denominada transformada discreta del coseno modificada (MDCT, por sus siglas en inglés).
Los valores espectrales generalmente están escalados y cuantificados de acuerdo con un modelo psicoacústico, de modo tal que los errores de cuantificación son comparativamente más pequeños para los valores espectrales psicoacústicamente más importantes, y son comparativamente mayores para los valores espectrales psicoacústicamente menos importantes. Los valores espectrales escalados y cuantificados son codificados para proveer una representación eficaz de la velocidad de transmisión de bits de aquellos.
Por ejemplo, la utilización de una codificación denominada de Huffman de coeficientes espectrales cuantificados está descripta en la Norma Internacional ISO/IEC 14496-3:2005(E), parte 3, subparte 4.
Sin embargo, se ha descubierto que la calidad de la codificación de los valores espectrales tiene un importantísimo efecto en la velocidad de transmisión de bits requerida. Asimismo, se ha descubierto que la complejidad de un decodificador de audio, que generalmente está implementado como un dispositivo portátil para uso del consumidor y que debería ser, por lo tanto, barato y de bajo consumo de energía, depende dé la codificación que se haya usado para codificar los valores espectrales.
En vista de esta situación, es necesario desarrollar un concepto para la codificación y decodificación de un contenido de audio, que proporcione una mejor correlación entre la eficacia de la velocidad de transmisión de bits y la eficacia de recursos.
Síntesis de la invención Una forma de realización de acuerdo con la invención crea un decodificador de audio para proveer una información de audio decodificacla sobre la base de una información de audio codificada. El decodificador de audio comprende un decodificador aritmético para proveer una pluralidad de valores espectrales decodificados sobre la base de una representación aritméticamente codificada de los valores espectrales. El decodificador de audio comprende además un convertidor de dominio frecuencial a dominio temporal para proveer una representación de audio de dominio temporal que usa los valores espectrales decodificados, para obtener la información de audio decodificada. El decodificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor de código (que puede extraerse de una corriente de bits que representa la información de audio codificada) a un código de símbolos (que puede ser un valor numérico que representa un valor espectral decodificado, o un plano de bits más significativos de éste) de manera dependiente de un estado contextual. El decodificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente decodificados y también de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
Se ha descubierto que una consideración de la región frecuencial, en la que se encuentra un valor espectral que se va a decodificar actualmente, da lugar a una mejora importantísima de la calidad de la computación del contexto sin que aumente de manera relevante el esfuerzo computacional requerido para la computación del contexto. Asimismo, teniendo en cuenta el hecho de que las dependencias estadísticas entre valores espectrales previamente decodificados que se encuentran en la proximidad de un valor espectral que se ha de decodificar actualmente, varían con la frecuencia, se puede seleccionar el contexto para dar lugar a una eficacia de codificación elevada, tanto para la decodificación de valores espectrales asociados con frecuencias comparativamente bajas como para la decodificación de valores espectrales asociados con frecuencias comparativamente altas. Una buena adaptación del contexto a los detalles de las dependencias estadísticas entre el valor espectral que se ha de decodificar actualmente y los valores espectrales previamente decodificados (en general de una proximidad directa o indirecta con respecto al valor espectral que se ha de decodificar actualmente) genera la posibilidad de aumentar la eficacia de codificación a la vez que se mantiene el esfuerzo computacional razonablemente pequeño. Se ha descubierto que la consideración de la región frecuencial es posible con muy poco esfuerzo, ya que un índice frecuencial del valor espectral que se ha de decodificar actualmente es habitual en el proceso de la decodificación aritmética. Por consiguiente, la adaptación selectiva del contexto puede ejecutarse con poco esfuerzo computacional y aún así dar lugar a una mejora de la eficacia de codificación.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite modificar selectivamente el valor contextual actual numérico de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada. Una modificación selectiva del valor contextual actual numérico, además de una computación previa (u otra determinación) del valor contextual actual numérico, permite una combinación de una computación "normal" (u otra determinación) del valor contextual actual numérico con una consideración de la región frecuencial en la que se encuentran los valores espectrales que se han de decodificar actualmente. La computación "normal" del valor contextual actual numérico puede ser manejada por separado de la adaptación dependiente de la región del valor contextual actual numérico, lo que normalmente reduce la complejidad del algoritmo y el esfuerzo computacional. Además, es posible mejorar fácilmente sistemas que comprenden una computación "normal" del valor contextual actual numérico por el solo hecho de aplicar este concepto.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite determinar el valor contextual actual numérico de modo tal que el valor contextual actual numérico se basa en una combinación de una pluralidad de valores espectrales previamente decodificados, o en una combinación de una pluralidad de valores intermedios derivados de una pluralidad de valores espectrales previamente decodificados, y de modo tal que el valor contextual actual numérico aumenta en forma selectiva con respecto a un valor obtenido sobre la base de una combinación de una pluralidad de valores espectrales previamente decodificados o sobre la base de una combinación de una pluralidad de valores intermedios derivados de una pluralidad de valores espectrales previamente decodificados, de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada. Se ha descubierto que un aumento selectivo del valor contextual actual numérico de manera dependiente de la región frecuencial en la que se encuentra el valor espectral que se ha de decodificar actualmente permite una evaluación eficiente del valor contextual actual numérico manteniendo al mismo tiempo el esfuerzo computacional bajo.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite distinguir por lo menos entre una primera región frecuencial y una segunda región frecuencial para determinar el valor contextual actual numérico, donde la primera región frecuencial comprende por lo menos 15% de los valores espectrales asociados con una porción temporal dada (por ejemplo, un marco o un submarco) del contenido de audio, y donde la primera región frecuencial es una región de baja frecuencia y comprende un valor espectral asociado que tiene una frecuencia mínima (dentro del conjunto de valores espectrales asociados con la porción temporal (actual) dada del contenido de audio). Se ha descubierto que se puede conseguir una buena adaptación del contexto simplemente considerando una parte inferior de un espectro (que comprende por lo menos 15% de los valores espectrales) como primera región frecuencial, debido a que las dependencias estadísticas entre los valores espectrales no comprenden una fuerte variación con respecto a esta región de baja frecuencia. En consecuencia, la cantidad de diferentes regiones puede mantenerse lo suficientemente pequeña, lo que a su vez ayuda a evitar el uso de una cantidad excesiva de normas de mapeo diferentes. Sin embargo, en algunas formas de realización puede ser suficiente si la primera región frecuencial comprende por lo menos un valor espectral, por lo menos dos valores espectrales o por lo menos tres valores espectrales, aún cuando se prefiera escoger una primera región espectral más extendida.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite distinguir por lo menos entre una primera región frecuencial y una segunda región frecuencial para determinar el valor contextual actual numérico, donde la segunda región frecuencial comprende por lo menos 15% de los valores espectrales asociados con una porción temporal dada (por ejemplo, un marco o un submarco) del contenido de audio, y donde la segunda región frecuencial es una región de alta frecuencia y comprende un valor espectral asociado que tiene una frecuencia más alta (dentro del conjunto de valores espectrales asociados con la porción temporal (actual) dada del contenido de audio). Se ha descubierto que se puede conseguir una buena adaptación del contexto simplemente considerando una parte superior de un espectro (que comprende por lo menos 15% de los valores espectrales) como segunda región frecuencial, debido a que las dependencias estadísticas entre los valores espectrales no comprenden una fuerte variación con respecto a esta región de alta frecuencia. En consecuencia, la cantidad de regiones diferentes puede mantenerse lo suficientemente pequeña, lo que a su vez ayuda a evitar el uso de una cantidad excesiva de normas de mapeo diferentes. Sin embargo, en algunas formas de realización puede ser suficiente si la segunda región frecuencial comprende por lo menos un valor espectral, por lo menos dos valores espectrales o por lo menos tres valores espectrales, aún cuando se prefiera escoger una primera región espectral más extendida.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite distinguir por lo menos entre una primera región frecuencial, una segunda región frecuencial y una tercera región frecuencial, para determinar el valor contextual actual numérico apoyándose en el hecho de determinar en cuál de las por lo menos tres regiones frecuenciales se encuentra el valor espectral que se ha de decodificar. En este caso, cada una de la primera región frecuencial, la segunda región frecuencia! y la tercera región frecuencial comprende una pluralidad de valores espectrales asociados. Se ha descubierto que para las señales de audio típicas, es recomendable distinguir por lo menos tres regiones frecuenciales diferentes, porque típicamente hay por lo menos tres regiones frecuenciales en las que hay diferentes dependencias estadísticas entre los valores espectrales. Se ha descubierto que es recomendable (aunque no esencial) distinguir entre tres o más regiones frecuenciales aún en el caso de las señales de audio de banda angosta (por ejemplo, para las señales de audio que tienen un rango de frecuencia entre 300 Hz y 3 KHz). Además, para las señales de audio que tienen un ancho de banda mayor, se ha descubierto que es recomendable (aunque no esencial) distinguir tres o más regiones frecuenciales extendidas (cada una de las cuales tiene más de un valor espectral asociado a ellas).
En una forma de realización preferida, por lo menos un octavo de los valores espectrales de la porción temporal (actual) de la información de audio están asociados con la primera región frecuencial, y por lo menos un quinto de los valores espectrales de la porción temporal (actual) de la información de audio están asociados con la segunda región frecuencial, y por lo menos un cuarto de los valores espectrales de la porción temporal (actual) de la información de audio están asociados con la tercera región frecuencial. Se ha descubierto que es recomendable tener regiones frecuenciales suficientemente grandes, porque dichas regiones frecuenciales suficientemente grandes dan lugar a un buen compromiso entre la eficacia de codificación y la complejidad .computacional. Además, se ha descubierto que el uso de regiones frecuenciales muy pequeñas (por ejemplo, de regiones frecuenciales que comprenden sólo un valor espectral asociado a ellas) es ineficaz desde el punto de vista computacional e incluso pueden degradar la eficacia de codificación. Asimismo, debe observarse que la elección de regiones frecuenciales suficientemente grandes (por ejemplo, de regiones frecuenciales que comprenden por lo menos dos valores espectrales asociados a ellas) es recomendable aún cuando se usen solamente dos regiones frecuenciales.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite calcular una suma que comprende por lo menos un primer sumando y un segundo sumando, para obtener el valor contextual actual numérico como resultado de la suma. En este caso, el primer sumando se obtiene combinando una pluralidad de valores intermedios que describen magnitudes de valores espectrales previamente decodificados, y el segundo sumando describe a cuál de las regiones frecuenciales, de una pluralidad de regiones frecuenciales, está asociado un valor espectral que ha de ser (actualmente) decodificado. Por medio de este método, se puede obtener una separación entre un cálculo contextual basado en una información de las magnitudes sobre valores espectrales previamente decodificados y una adaptación del contexto de manera dependiente de la región a la cual está asociado el valor espectral que se ha de decodificar actualmente. Se ha descubierto que las magnitudes de los valores espectrales previamente decodificados son una indicación importante sobre un entorno del valor espectral que se ha de decodificar actualmente. Sin embargo, también se ha descubierto que la evaluación de las dependencias estadísticas, que se basa en una evaluación de las magnitudes de los valores espectrales previamente decodificados, puede mejorar si se tiene en consideración la región frecuencial a la cual está asociado el valor espectral que se ha de decodificar actualmente. Sin embargo, se ha descubierto que es suficiente desde el punto de vista computacional incluir la información de la región en el valor contextual actual numérico como un valor de sumatoria, y que incluso un mecanismo así de simple da lugar a una buena mejora del valor contextual actual numérico.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite modificar una o varias posiciones de bits predeterminadas de una representación binaria del valor contextual actual numérico apoyándose en el hecho de determinar en cuál región frecuencial, de una pluralidad de regiones frecuenciales diferentes, se encuentra el valor espectral que se ha de decodificar. Se ha descubierto que el uso de posiciones de bits específicas para la información de la región facilita la selección de una norma de mapeo de manera dependiente del valor contextual actual numérico. Por ejemplo, mediante el uso de una posición de bits predeterminada del valor contextual actual numérico para describir la región frecuencial a la que está asociado el valor espectral que se ha de decodificar actualmente, se puede simplificar la selección de una norma de mapeo. Por ejemplo, normalmente hay una cantidad de situaciones contextúales en las que se puede usar la misma norma de mapeo en presencia de un determinado entorno (en términos de valores espectrales) del valor espectral que se ha de decodificar actualmente, independientemente de la región frecuencial a la que está asociado el valor espectral que se ha de decodificar actualmente. En dichos casos, se puede ignorar la información relacionada con la región frecuencial, a la que está asociado el valor espectral que se ha de decodificar actualmente, lo cual es facilitado por el uso de una posición de bits predeterminada para codificar la información. Sin embargo, en otros casos, es decir para diferentes constelaciones de entorno (en términos de valores espectrales) del valor espectral que se ha de decodificar actualmente, se puede aprovechar al máximo la información sobre la región frecuencial asociada a los valores espectrales que se han de decodificar actualmente a la hora de escoger una norma de mapeo.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo de manera dependiente de un valor contextual actual numérico, de modo tal que una pluralidad de diferentes valores contextúales actuales numéricos dan como resultado una selección de una misma norma de mapeo. Se ha descubierto que el concepto de tomar en cuenta la región frecuencial a la cual está asociado el valor espectral que se ha de decodificar actualmente puede combinarse con un concepto en el cual está asociada la misma norma de mapeo con múltiples valores contextúales actuales numéricos diferentes. Se ha descubierto que nó es necesario tener en cuenta la frecuencia, que está asociada al valor espectral que se ha de decodificar actualmente, en todos los casos, pero que es recomendable considerar una información sobre la región frecuencial, a la que está asociado el valor espectral que se ha de decodificar actualmente, por lo menos en algunos casos.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite ejecutar una selección en dos etapas de una norma de mapeo de manera dependiente del valor contextual actual numérico. En este caso, el decodificador aritmético tiene una configuración que le permite verificar, en un primer paso de selección, si el valor contextual actual numérico es igual a un valor de estado significativo descripto por una entrada de una tabla de aciertos directos. El decodificador aritmético también tiene una configuración que le permite determinar, en un segundo paso de selección, que solamente es ejecutado si el valor contextual actual numérico es diferente de los valores de estado significativos descriptos por las entradas de la tabla de aciertos directos, en cuyo intervalo, de una pluralidad de intervalos, se encuentra el valor contextual actual numérico. En este caso, el decodificador aritmético tiene una configuración que le permite seleccionar la norma de mapeo de manera dependiente de un resultado del primer paso de selección y/o del segundo paso de selección. El decodificador aritmético también tiene una configuración que le permite seleccionar la norma de mapeo de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial o en una segunda región frecuencial. Se ha descubierto que una combinación del concepto recién analizado para la computación del valor contextual actual numérico con una selección de normas de mapeo en dos pasos da lugar a ventajas particulares. Por ejemplo, mediante el uso de este concepto, es posible definir diferentes configuraciones de contextos de aciertos directos "direct-hit", a los cuales se asocia una norma de mapeo en el primer paso de selección, para los valores espectrales que se han de decodificar y distribuir en regiones frecuenciales diferentes. Además, el segundo paso de selección, en el cual se ejecuta una selección de la norma de mapeo basada en intervalos, está perfectamente adecuada para manejar estas situaciones (entornos de valores espectrales previamente decodificados) en las que no se desea (o, por lo menos, no es necesario) considerar la región frecuencial a la que está asociado el valor espectral que se ha de decodificar actualmente.
En una forma de realización preferida, el decodificador aritmético tiene una configuración que le permite modificar selectivamente una o varias posiciones de bits menos significativos de una representación binaria del valor contextual actual numérico apoyándose en el hecho de determinar en cuál región frecuencial, de una pluralidad de regiones frecuenciales diferentes, se encuentra el valor espectral que se ha de decodificar. En este caso, el decodificador aritmético tiene una configuración que le permite determinar, en el segundo paso de selección, en cuál intervalo, de una pluralidad de intervalos, se encuentra la representación binaria del valor contextual actual numérico para seleccionar el mapeo, de modo tal que algunos valores contextúales actuales numéricos dan como resultado la selección de la misma norma de mapeo sin que importe en cuál región frecuencial se encuentra el valor espectral que se ha de decodificar, y de modo tal que para algunos valores contextúales actuales numéricos, la norma de mapeo se selecciona teniendo en cuenta en cuál región frecuencial se encuentra el valor espectral que se ha de codificar. Se ha descubierto que el mecanismo en el cual la región frecuencial se codifica en los bits menos significativos de una representación binaria del valor contextual actual numérico es perfectamente adecuado para que ocurra una cooperación eficaz con la selección de normas de mapeo en dos pasos.
Una forma de realización de acuerdo con la invención crea un codificador de audio para proveer una información de audio codificada sobre la base de una información de audio entrante. El codificador de audio comprende un convertidor de dominio temporal a dominio frecuencial compactador de energía para proveer una representación de audio de dominio frecuencial sobre la base de una representación de dominio temporal de la información de audio entrante, de modo tal que la representación de audio de dominio frecuencial comprende un conjunto de valores espectrales. El codificador aritmético tiene una configuración que le permite codificar un valor espectral, o una versión preprocesada de éste, empleando una palabra de código de longitud variable. El codificador aritmético tiene una configuración que le permite mapear un valor espectral, o un valor de un plano de bits más significativos de un valor espectral, a un valor de código (que puede estar incluido en una corriente de bits que representa la información de audio entrante en forma codificada). El codificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor espectral o de un plano de bits más significativos del valor espectral, a un valor de código de manera dependiente de un estado contextual. El codificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente codificados y también de manera dependiente de que un valor espectral que se ha de codificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
Este codificador de señales de audio se base en los mismos hallazgos que el decodificador de señales de audio analizado más arriba. Se ha descubierto que el mecanismo para la adaptación del contexto, que ha demostrado ser eficaz para la decodificación de un contenido de audio, también podría aplicarse respecto del codificador, para permitir un sistema conveniente.
Una forma de realización de acuerdo con la invención crea un método para proveer información de audio decodificada sobre la base de información de audio codificada.
Aún otra forma de realización de acuerdo con la invención crea un método para proveer información de audio codificada sobre la base de una información de audio entrante.
Otra forma de realización de acuerdo con la invención crea un programa de computación para ejecutar uno de dichos métodos.
Los métodos y el programa de computación se basan en los mismos hallazgos que el decodificador de audio descripto más arriba y el codificador de audio descripto más arriba.
Breve descripción de las Figuras A continuación se describirán las formas de realización de acuerdo con la presente invención con referencia a las figuras que se acompañan, en las cuales: La Fig. 1A-B muestra un diagrama esquemático en bloque de un codificador de audio, de acuerdo con una forma de realización de la invención; La Fig. 2A-B muestra un diagrama esquemático en bloque de un decodificador de audio, de acuerdo con una forma de realización de la invención; La Fig. 3 muestra una representación de pseudocódigo de programa de un algoritmo "value_decode()" para decodificar un valor espectral; La Fig. 4 muestra una representación esquemática de un contexto para un cálculo de estados; La Fig. 5A muestra una representación de pseudocódigo de programa de un algoritmo "arith_map_context ()" para el mapeo de un contexto; Las Fig. 5B y 5C muestran una representación de pseudocódigo de programa de un algoritmo "arith_get_context ()" para obtener un valor de estado contextual; La Fig. 5D1 -5D2 muestra una representación de pseudocódigo de programa de un algoritmo "get_pk(s)" para derivar un valor de índice de tablas de frecuencias acumulativas„pki" de una variable de estado; La Fig. 5E muestra una representación de pseudocódigo de programa de un algoritmo "arith_get_pk(s)" para derivar un valor de índice de tablas de frecuencias acumulativas„pki" de un valor de estado; La Fig. 5F muestra una representación de pseudocódigo de programa de un algoritmo "get_pk(unsigned long s)" para derivar un valor de índice de tablas de frecuencias acumulativas„pki" de un valor de estado; La Fig. 5G1 -5G2 muestra una representación de pseudocódigo de programa de un algoritmo "arith_decode ()" para decodificar aritméticamente un símbolo de una palabra de código de longitud variable; La Fig. 5H muestra una representación de pseudocódigo de programa de un algoritmo "arith_update_context ()" para actualizar el contexto; La Fig. 51 muestra una leyenda de definiciones y variables; La Fig. 6A muestra una representación sintáctica de un bloque de datos crudos de codificación de lenguaje y audio unificados (USAC); La Fig. 6B muestra una representación sintáctica de un elemento de canal simple; La Fig. 6C muestra una representación sintáctica de un elemento de canal par; La Fig. 6D muestra una representación sintáctica de una información de control "ics"; La Fig. 6E muestra una representación sintáctica de una corriente de canal de dominio frecuencial; La Fig. 6F muestra una representación sintáctica de datos espectrales codificados aritméticamente; La Fig. 6G muestra una representación sintáctica para decodificar un conjunto de valores espectrales; La Fig. 6H muestra una leyenda de elementos y variables de datos; La Fig. 7 muestra un diagrama esquemático en bloque de un codificador de audio, de acuerdo con otra forma de realización de la invención: La Fig. 8 muestra un diagrama esquemático en bloque de un decodificador de audio, de acuerdo con otra forma de realización de la invención; La Fig. 9 muestra una disposición para la comparación de una codificación insonorizada de acuerdo con una propuesta de trabajo 3 del estándar de propuestas del USAC con un esquema de codificación de acuerdo con la presente invención; La Fig. 10A muestra una representación esquemática de un contexto para un cálculo de estados, tal como se usa de acuerdo con la propuesta de trabajo 4 del estándar de propuestas del USAC; La Fig. 10B muestra una representación esquemática de un contexto para un cálculo de estados, tal como se usa en las formas de realización de acuerdo con la invención; La Fig. 11 A muestra un resumen de la tabla tal como se usa en el esquema de codificación aritmética de acuerdo con la propuesta de trabajo 4 del estándar de propuestas del USAC; La Fig. 11 B muestra un resumen de la tabla tal como se usa en el esquema de codificación aritmética de acuerdo con la presente invención; La Fig. 12A muestra una representación gráfica de una demanda de memoria de solo lectura para los esquemas de codificación insonorizada de acuerdo con la presente invención y de acuerdo con la propuesta de trabajo 4 del estándar de propuestas del USAC; La Fig. 12B muestra una representación gráfica de una demanda de memoria de solo lectura de datos de un decodificador USAC total de acuerdo con la presente invención y de acuerdo con el concepto de acuerdo con la propuesta de trabajo 4 del estándar de propuestas del USAC; La Fig. 13A muestra una representación en forma de tabla de las velocidades promedio de transmisión de bits que son usadas por un codificador de codificación de lenguaje y audio unificados, empleando un codificador aritmético de acuerdo con la propuesta de trabajo 3 del estándar de propuestas del USAC y un decodificador aritmético de acuerdo con una forma de realización de la presente invención; La Fig. 13B muestra una representación en forma de tabla de un control de depósito de bits para un codificador de codificación de lenguaje y audio unificados, empleando el codificador aritmético de acuerdo con la propuesta de trabajo 3 del estándar de propuestas del USAC y el codificador aritmético de acuerdo con una forma de realización de la invención; La Fig. 14 muestra una representación en forma de tabla de las velocidades promedio de transmisión de bits para un codificador de tipo USAC de acuerdo con la propuesta de trabajo 3 del estándar de propuestas del USAC, y de acuerdo con una forma de realización de la presente invención; La Fig. 15 muestra una representación en forma de tabla de las velocidades mínimas, máximas y promedio de transmisión de bits del USAC sobre la base de un marco; La Fig. 16 muestra una representación en forma de tabla de los casos mejores y peores sobre la base de un marco; Las Figs. 17-1 y 17-2 muestran una representación en forma de tabla de un contenido de una tabla "ari_s_hash[387]"; La Fig. 18 muestra una representación en forma de tabla de un contenido de una tabla "ari_gs_hash[225]"; Las Figs. 19-1 y 19-2 muestran una representación en forma de tabla de un contenido de una tabla "ari_cf_m[64][9]"; y Las Figs. 20-1 y 20-2 muestran una representación en forma de tabla de un contenido de una tabla "ari_s_hash[387]; La Fig. 21 muestra un diagrama esquemático en bloque de un codificador de audio, de acuerdo con una forma de realización de la invención; y La Fig. 22 muestra un diagrama esquemático en bloque de un decodificador de audio, de acuerdo con una forma de realización de la invención.
Descripción detallada de las formas de realización 1. Codificador de audio de acuerdo con la Fig. 7 La Fig. 7 muestra un diagrama esquemático en bloque de un codificador de audio, de acuerdo con una forma de realización de la invención. El codificador de audio 700 tiene una configuración que le permite recibir una información de audio entrante 710 y proveer, sobre esta base, una información de audio codificada 712.
El codificador de audio comprende un convertidor de dominio temporal a dominio frecuencial que compacta la energía 720 que tiene una configuración que le permite proveer una representación de audio de dominio frecuencial 722 sobre la base de una representación de dominio temporal de la información de audio entrante 710, de modo tal que la representación de audio de dominio frecuencial 722 comprende un conjunto de valores espectrales. El codificador de audio 700 también comprende un codificador aritmético 730 que tiene una configuración para codificar un valor espectral (tomado del conjunto de valores espectrales que forman la representación de audio de dominio frecuencial 722), o una versión preprocesada de aquel, que utiliza una palabra de código de longitud variable, para obtener la información de audio codificada 712 (que puede comprender, por ejemplo, una pluralidad de palabras de código de longitud variable).
El codificador aritmético 730 tiene una configuración que le permite mapear un valor espectral o un valor de un plano de bits más significativos de un valor espectral a un valor de código (es decir, a una palabra de código de longitud variable), de manera dependiente de un estado contextual. El codificador aritmético 730 tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor espectral, o de un plano de bits más significativos de un valor espectral, a un valor de código, de manera dependiente de un estado contextual. El codificador aritmético tiene una configuración que le permite determinar el estado contextual actual de manera dependiente de una pluralidad de valores espectrales adyacentes previamente codificados. Con esta finalidad, el codificador aritmético tiene una configuración que le permite detectar un grupo de una pluralidad de valores espectrales adyacentes previamente codificados, que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes, y determinar el estado contextual actual de manera dependiente de un resultado obtenido con la detección.
Según puede observarse, el mapeo de un valor espectral o de un plano de bits más significativos de un valor espectral a un valor de código puede realizarse mediante una codificación de valores espectrales 740 usando una norma de mapeo 742. Se puede configurar un rastreador de estados 750 para que rastree el estado contextual y puede comprender un grupo detector 752 para detectar un grupo de una pluralidad de valores espectrales adyacentes previamente codificados que satisfacen, considerados individualmente o en conjunto, la condición predeterminada relacionada con sus magnitudes. El rastreador de estados 750 también tiene, de preferencia, una configuración que le permite determinar el estado contextual actual dependiendo del resultado de dicha detección ejecutada por el detector de grupos 752. En consecuencia, el rastreador de estados 750 provee una información 754 que describe el estado contextual actual. Un selector de normas de mapeo 760 puede seleccionar una norma de mapeo, por ejemplo, una tabla de frecuencias acumulativas, que describe un mapeo de un valor espectral, o de un plano de bits más significativos de un valor espectral, a un valor de código. En consecuencia, el selector de normas de mapeo 760 provee la información de normas de mapeo 742 a la codificación espectral 740.
Para resumir lo anterior, el codificador de audio 700 realiza una codificación aritmética de una representación de audio de dominio frecuencial provista por el convertidor de dominio temporal a dominio frecuencial. La codificación aritmética depende del contexto, de modo tal qué una norma de mapeo (p. ej., una tabla de frecuencias acumulativas) se selecciona de manera dependiente de los valores espectrales previamente codificados. En consecuencia, los valores espectrales adyacentes en tiempo y/o frecuencia (o por lo menos, dentro de un entorno predeterminado) entre sí y/o al valor espectral codificado actualmente (es decir, valores espectrales dentro de un entorno predeterminado del valor espectral codificado actualmente) se consideran en la codificación aritmética para ajusfar la distribución de probabilidades evaluada por la codificación aritmética. Cuando se escoge una norma de mapeo apropiada, se realiza una detección para detectar si hay un grupo de una pluralidad de valores espectrales adyacentes previamente codificados que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes. El resultado de esta detección se aplica en la selección del estado contextual actual, es decir, en la selección de una norma de mapeo. Al detectar si hay un grupo de una pluralidad de valores espectrales que son particularmente pequeños o particularmente grandes, es posible reconocer rasgos especiales dentro de la representación de audio de dominio frecuencial, que puede ser una representación tiempo-frecuencia. Los rasgos especiales comó, por ejemplo, un grupo de una pluralidad de valores espectrales particularmente pequeños o particularmente grandes, indican que debería usarse un estado contextual específico ya que este estado contextual específico puede proveer una eficacia de codificación particularmente buena. Por consiguiente, la detección del grupo de valores espectrales adyacentes que satisfacen la condición predeterminada, que normalmente se usa en combinación con una evaluación alternativa del contexto basada en una combinación de una pluralidad de valores espectrales previamente codificados, provee un mecanismo que permite una selección eficaz de un contexto apropiado si la información de audio entrante adopta algunos estados especiales (p. ej., comprende un intervalo grande de frecuencias enmascaradas).
En consecuencia, se puede obtener una codificación eficaz a la vez que el cálculo del contexto se mantiene lo suficientemente simple. 2. Decodificador de audio de acuerdo con la Fig. 8 La Fig. 8 muestra un diagrama esquemático en bloque de un decodificador de audio 800. El decodificador de audio 800 tiene una configuración que le permite recibir una información de audio codificada 810 y proveer, sobre esta base, información de audio decodificada 812. El decodificador de audio 800 comprende un decodificador aritmético 820 que tiene una configuración que le permite proveer una pluralidad de valores espectrales decodificados 822 sobre la base de una representación aritméticamente codificada 821 de los valores espectrales. El decodificador de audio 800 también comprende un convertidor de dominio frecuencial a dominio temporal 830 que tiene una configuración que le permite recibir los valores espectrales decodificados 822 y proveer la representación de audio de dominio temporal 812, que puede constituir la información de audio decodificada, que utiliza los valores espectrales decodificados 822, para obtener información de audio decodificada 812.
El decodificador aritmético 820 comprende un determinador de valores espectrales 824 que tiene una configuración que le permite mapear un valor de código de la representación aritméticamente codificada 821 de valores espectrales a un código de símbolos que representa uno o varios de los valores espectrales decodificados, o por lo menos una porción (por ejemplo, un plano de bits más significativos) de uno o varios de los valores espectrales decodificados. El determinador de valores espectrales 824 puede tener una configuración que le permite realizar el mapeo de manera dependiente de una norma de mapeo, que puede ser descripta por una información de las normas de mapeo 828a.
El decodificador aritmético 820 tiene una configuración que le permite seleccionar una norma de mapeo (p. ej. una tabla de frecuencias acumulativas) que describe un mapeo de un valor de código (descripto por la representación aritméticamente codificada 821 de valores espectrales) a un código de símbolos (que describe uno o varios valores espectrales) de manera dependiente de un estado contextual (que puede ser descripto por la información del estado contextual 826a). El decodificador aritmético 820 tiene una configuración que le permite determinar el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente decodificados 822. Con esta finalidad, se puede usar un rastreador de estados 826, que recibe una información que describe los valores espectrales previamente decodificados. El decodificador aritmético también tiene una configuración que le permite detectar un grupo de una pluralidad de valores espectrales adyacentes previamente decodificados, que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes, y determinar el estado contextual actual (descripto, por ejemplo, por la información del estado contextual 826a) de manera dependiente de un resultado obtenido con la detección.
La detección del grupo de una pluralidad de valores espectrales adyacentes previamente decodificados que satisfacen la condición predeterminada relacionada con sus magnitudes puede ser realizada, por ejemplo, por un detector de grupos, que es parte del rastreador de estados 826. En consecuencia, se obtiene una información del estado contextual actual 826a. La selección de la norma de mapeo puede ser realizada por un selector de normas de mapeo 828, que deriva una información de las normas de mapeo 828a de la información del estado contextual actual 826a, y que provee la información de las normas de mapeo 828a al determinador de valores espectrales 824.
Respecto de la funcionalidad del decodificador de señales de audio 800, debe tenerse en cuenta que el decodificador aritmético 820 tiene una configuración que le permite seleccionar una norma de mapeo (p. ej. una tabla de frecuencias acumulativas) que se adapta bien, en promedio, al valor espectral que se ha de decodificar, ya que la norma de mapeo se selecciona de manera dependiente del estado contextual actual, que, a su vez, es determinado de manera dependiente de una pluralidad de valores espectrales previamente decodificados. En consecuencia, se pueden explotar las dependencias estadísticas entre valores espectrales adyacentes que se han de decodificar. Además, al detectar un grupo de una pluralidad de valores espectrales adyacentes previamente decodificados que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes, es posible adaptar la norma de mapeo a condiciones (o patrones) especiales de valores espectrales previamente decodificados. Por ejemplo, se puede seleccionar una norma de mapeo específica si se identifica un grupo de una pluralidad de valores espectrales adyacentes previamente decodificados comparativamente pequeños, o si se identifica un grupo de una pluralidad de valores espectrales adyacentes previamente decodificados comparativamente grandes. Se ha descubierto que la presencia de un grupo de valores espectrales comparativamente grandes o de un grupo de valores espectrales comparativamente pequeños puede ser considerada una significativa indicación de que debería usarse una norma de mapeo dedicada, adaptada específicamente a dicha condición. En consecuencia, se puede facilitar (o acelerar) una computación contextual mediante la explotación de la detección de dicho grupo de una pluralidad de valores espectrales. Asimismo, se pueden considerar características de un contenido de audio que no podrían ser consideradas tan fácilmente sin aplicar el concepto antes mencionado. Por ejemplo, se puede realizar la detección de un grupo de una pluralidad de valores espectrales que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes, sobre la base de un conjunto diferente de valores espectrales, cuando se compara con el conjunto de valores espectrales utilizados para una computación contextual normal.
A continuación se describirán otros detalles adicionales. 3. Codificador de audio de acuerdo con la Fig. 1 A continuación se describirá un codificador de audio de acuerdo con una forma de realización de la invención. La Fig. 1 muestra un diagrama esquemático en bloque de dicho codificador de audio 100.
El codificador de audio 100 tiene una configuración que le permite recibir una información de audio entrante 1 10 y proveer, sobre esta base, una corriente de bits 1 12, que constituye una información de audio codificada. El codificador de audio 100 comprende opcionalmente un preprocesador 120, que tiene una configuración que le permite recibir la información de audio entrante 1 10 y proveer, sobre esta base, una información de audio entrante preprocesada 1 10a. El codificador de audio 100 también comprende un transformador de señales de dominio temporal a dominio frecuencial que compacta la energía 130, que también recibe el nombre de convertidor de señales. El convertidor de señales 130 tiene una configuración que le permite recibir la información de audio entrante 1 10, 1 10a y proveer, sobre esta base, una información de audio de dominio frecuencial 132, que, de preferencia, adopta la forma de un conjunto de valores espectrales. Por ejemplo, el transformador de señales 130 puede tener una configuración que le permite recibir un marco de la información de audio entrante 1 10, 1 10a (p. ej. un bloque de muestras de dominio temporal) y proveer un conjunto de valores espectrales que representan el contenido de audio del respectivo marco de audio. Además, el transformador de señales 130 puede tener una configuración que le permite recibir una pluralidad de marcos de audio consecutivos, que se superponen o no, de la información de audio entrante 1 10, 1 10a y proveer, sobre esta base, una representación de audio de dominio tiempo-frecuencia, que comprende una secuencia de conjuntos consecutivos de valores espectrales, un conjunto de valores espectrales asociados con cada marco.
El transformador de señales de dominio temporal a dominio frecuencial que compacta la energía 130 puede comprender un banco de filtros que compacta la energía, que provee valores espectrales asociados con rangos de frecuencia diferentes, superpuestos o no superpuestos. Por ejemplo, el transformador de señales 130 puede comprender un transformador de MDCT de ventanas 130a, que tiene una configuración que le permite sistematizar en ventanas la información de audio entrante 1 10, 110a (o un marco de ésta) por medio de una ventana de transformación y llevar a cabo una transformada discreta del coseno modificada, de la información de audio entrante sistematizada en ventanas 1 10, 1 10a (o del marco sistematizado en ventanas de ésta). En consecuencia, la representación de audio de dominio frecuencial 132 puede comprender un conjunto, por ejemplo, 1024, de valores espectrales en forma de coeficientes de MDCT asociados con un marco de la información de audio entrante.
El codificador de audio 100 puede comprender además, como opción, un postprocesador espectral 140, que tiene una configuración que le permite recibir la representación de audio de dominio frecuencial 132 y proveer, sobre esta base, una representación de audio de dominio frecuencial postprocesada 142. El postprocesador espectral 140 puede tener, por ejemplo, una configuración que le permite realizar un perfilado de ruido temporal y/o una predicción a largo plazo y/o cualquier otro postprocesamiento espectral conocido en la técnica. El codificador de audio comprende además, opcionalmente, un escalador/cuantificador 150, que tiene una configuración que le permite recibir la representación de audio de dominio frecuencial 132 o la versión postprocesada 142 de ésta y proveer una representación de audio de dominio frecuencial escalada y cuantificada 152.
El codificador de audio 100 comprende además, opcionalmente, un procesador de modelos psicoacústicos 160, que tiene una configuración que le permite recibir la información de audio entrante 1 10 (o la versión postprocesada 110a de aquella) y proveer, sobre esta base, una información de control opcional, que puede ser usada para controlar el transformador de señales de dominio temporal a dominio frecuencial que compacta la energía 130, para controlar el postprocesador espectral opcional 140 y/o para controlar el escalador/cuantificador 150. Por ejemplo, el procesador de modelos psicoacústicos 160 puede tener una configuración que le permite analizar la información de audio entrante, determinar qué componentes de la información de audio entrante 110, 1 10a son especialmente importantes para la percepción humana del contenido de audio y qué componentes de la información de audio entrante 110, 110a son menos importantes para la percepción del contenido de audio. En consecuencia, el procesador de modelos psicoacústicos 160 puede proveer información de control, que es utilizada por el codificador de audio 100 para ajustar la escala de la representación de audio de dominio frecuencial 132, 142 mediante el escalador/cuantificador 150 y/o la resolución de cuantificación aplicada por el escalador/cuantificador 150. En consecuencia, las bandas de factores de escala importantes para la percepción (es decir, los grupos de valores espectrales adyacentes que son especialmente importantes para la percepción humana del contenido de audio) son graduados con un factor de escala enorme y cuantificados con resolución comparativamente alta, mientras que las bandas de factores de escala menos importantes para la percepción (es decir, los grupos de valores espectrales adyacentes) son graduados con un factor de escala comparativamente más pequeño y cuantificados con una resolución de cuantificación comparativamente menor. En consecuencia, los valores espectrales graduados de las frecuencias más importantes desde el punto de vista de la percepción generalmente son significativamente más altos que los valores espectrales de las frecuencias menos importantes desde el punto de vista de la percepción.
El codificador de audio también comprende un codificador aritmético 170, que tiene una configuración que le permite recibir la versión escalada y cuantificada 152 de la representación de audio de dominio frecuencial 132 (o, alternativamente, la versión postprocesada 142 de la representación de audio de dominio frecuencial 132, o incluso la representación misma de audio de dominio frecuencial 132) y proveer información de las palabras de código aritmético 172a sobre esta base, de tal modo que la información de las palabras de código aritmético representa la representación de audio de dominio frecuencial 152.
El codificador de audio 100 también comprende un formateador de carga útil de una corriente de bits 190, que tiene una configuración que le permite recibir la información de las palabras de código aritmético 172a. El formateador de carga útil de una corriente de bits 190 también tiene, por lo general, una configuración que le permite recibir información adicional como, por ejemplo, información de factores de escala que describen cuáles factores de escala han sido aplicados por el escalador/cuantificador 150. Además, el formateador de carga útil de una corriente de bits 190 puede tener una configuración que le permite recibir otra información de control. El formateador de carga útil de una corriente de bits 190 tiene una configuración que le permite proveer la corriente de bits 1 12 sobre la base de la información recibida ensamblando la corriente de bits de acuerdo con una sintaxis deseada de corriente de bits, que se analizará más adelante.
A continuación se describirán detalles relacionados con el codificador aritmético 170. El codificador aritmético 170 tiene una configuración que le permite recibir una pluralidad de valores espectrales postprocesados y escalados y cuantificados de la representación de audio de dominio frecuencial 132. El codificador aritmético comprende un extractor de planos de bits más significativos 174, que tiene una configuración que le permite extraer un plano de bits más significativos m de un valor espectral. En este punto debe hacerse notar que el plano de bits más significativos puede comprender uno o incluso más bits (p. ej. dos o tres bits), que son los bits más significativos del valor espectral. Por consiguiente, el extractor de planos de bits más significativos 174 proporciona un valor del plano de bits más significativos 176 de un valor espectral.
El codificador aritmético 170 también comprende un primer determinador de palabras de código 180, que tiene una configuración que le permite determinar una palabra de código aritmético acod_m [pki][m] que representa el valor del plano de bits más significativos m. Opcionalmente, el determinador de palabras de código 180 también puede proveer una o varias palabras de código de escape (también denominadas aquí "ARITH_ESCAPE") que indican, por ejemplo, cuántos planos de bits menos significativos hay disponibles (y, en consecuencia, indican el peso numérico del plano de bits más significativos). El primer determinador de palabras de código 180 puede tener una configuración que le permite proveer la palabra de código asociada con un valor del plano de bits más significativos m usando una tabla escogida de frecuencias acumulativas que tiene (o que está en referencia con) un índice de tabla de frecuencias acumulativas pki.
Para determinar cuál tabla de frecuencias acumulativas debería escogerse, el codificador aritmético comprende, preferiblemente, un rastreador de estados 182, que tiene una configuración que le permite rastrear el estado del codificador aritmético, por ejemplo, mediante la observación de cuáles valores espectrales han sido codificados previamente. El rastreador de estados 182 proporciona, en consecuencia, una información de estado 184, por ejemplo, un valor de estado designado con "s" o "t". El codificador aritmético 170 también comprende un selector de tablas de frecuencias acumulativas 186, que tiene una configuración que le permite recibir la información de estado 184 y proveer una información 188 que describe la tabla de frecuencias acumulativas escogida al determinador de palabras de código 180. Por ejemplo, el selector de tablas de frecuencias acumulativas 186 puede proveer un índice de tablas de frecuencias acumulativas „pki" que describe cuál tabla de frecuencias acumulativas escoger, de un conjunto de 64 tablas de frecuencias acumulativas, para que utilice el determinador de palabras de código. Alternativamente, el selector de tablas de frecuencias acumulativas 186 puede proporcionar la tabla completa de frecuencias acumulativas escogida al determinador de palabras de código. Por consiguiente, el determinador de palabras de código 180 puede usar la tabla de frecuencias acumulativas escogida para proporcionar la palabra de código acod_m[pki][m] del valor del plano de bits más significativos m, de tal modo que la palabra de código actual acod_m[pki][m] que codifica el valor del plano de bits más significativos m depende del valor de m y el índice de tablas de frecuencias acumulativas pki y, en consecuencia, de la información del estado actual 184. A continuación se describirán más detalles relacionados con el proceso de codificación y el formato de palabras de código obtenido.
El codificador aritmético 170 comprende además un extractor de planos de bits menos significativos 189a, que tiene una configuración que le permite extraer uno o varios planos de bits menos significativos de la representación de audio de dominio frecuencial escalada y cuantificada 152, si uno o varios de los valores espectrales a codificar exceden el intervalo de valores codificable usando solamente el plano de bits más significativos. Los planos de bits menos significativos pueden comprender uno o varios bits, según se desee. En consecuencia, el extractor de planos de bits menos significativos 189a provee una información de los planos de bits menos significativos 189b. El codificador aritmético 170 también comprende un segundo determinador de palabras de código 189c, que tiene una configuración que le permite recibir la información de los planos de bits menos significativos 189d y proveer, sobre esta base, 0, 1 o más palabras de código "acod_r" que representan el contenido de 0, 1 o más planos de bits menos significativos. El segundo determinador de palabras de código 189c puede tener una configuración que le permite aplicar un algoritmo de codificación aritmética o cualquier otro algoritmo de codificación para derivar las palabras de código del plano de bits menos significativos "acod_r" de la información de los planos de bits menos significativos 189b.
En este punto debe hacerse notar que la cantidad de planos de bits menos significativos puede variar según el valor de los valores espectrales escalados y cuantificados 152, de modo que podría no haber ningún plano de bits menos significativos en absoluto, si el valor espectral escalado y cuantificado a codificar es comparativamente pequeño, de modo que podría haber un plano de bits menos significativos si el valor espectral escalado y cuantificado actual a codificar pertenece a un intervalo medio y de modo que podría haber más de un plano de bits menos significativos si el valor espectral escalado y cuantificado a codificar alcanza un valor comparativamente grande.
Para resumir lo anterior, el codificador aritmético 170 tiene una configuración que le permite codificar valores espectrales escalados y cuantificados, que son descriptos por la información 152, mediante un proceso de codificación jerárquico. El plano de bits más significativos (que comprende, por ejemplo, uno, dos o tres bits por valor espectral) está codificado para obtener una palabra de código aritmético "acod_m[pki][m]" de un valor del plano de bits más significativos. Uno o varios planos de bits menos significativos (cada uno de los planos de bits menos significativos comprende, por ejemplo, uno, dos o tres bits) están codificados para obtener una o varias palabras de código "acod_r". Cuando se codifica el plano de bits más significativos, el valor m del plano de bits más significativos es mapeado a una palabra de código acod_m[pki][m]. Con esta finalidad, se dispone de 64 tablas de frecuencias acumulativas diferentes para codificar el valor m en forma dependiente de un estado del codificador aritmético 170, es decir, de manera dependiente de los valores espectrales previamente codificados. En consecuencia, se obtiene la palabra de código "acod_m[pki][m]". Además, se proporcionan una o varias palabras de código "acod_r" y se las incluye en la corriente de bits si se encuentran presentes uno o varios planos de bits menos significativos.
Descripción de la reiniciación El codificador de audio 100 puede tener opcionalmente una configuración que le permite decidir si se puede obtener una mejora en la velocidad de transmisión de bits reiniciando el contexto, por ejemplo ajustando el índice de estados a un valor por defecto. En consecuencia, el codificador de audio 100 puede tener una configuración que le permite proveer una información de reiniciación (p. ej. llamada "arith reset flag") que indica si el contexto para la codificación aritmética está reiniciado, y que también indica si el contexto para la decodificación aritmética en un decodificador correspondiente debería ser reiniciado.
A continuación se describirán detalles relacionados con el formato de la corriente de bits y las tablas de frecuencias acumulativas aplicadas. 4. Decodificador de audio A continuación, se describirá un decodificador de audio de acuerdo con una forma de realización de la invención. La Fig. 2 muestra un diagrama esquemático en bloque de dicho decodificador de audio 200.
El decodificador de audio 200 tiene una configuración que le permite recibir una corriente de bits 210, que representa una información de audio codificada y que puede ser idéntica a la corriente de bits 112 provista por el codificador de audio 100. El decodificador de audio 200 provee información de audio decodificada 212 sobre la base de la corriente de bits 210.
El decodificador de audio 200 comprende un desformateador de la carga útil de la corriente de bits opcional 220, que tiene una configuración que le permite recibir la corriente de bits 210 y extraer de la corriente de bits 210 una representación de audio de dominio frecuencial codificada 222. Por ejemplo, el desformateador de la carga útil de la corriente de bits 220 puede tener una configuración que le permite extraer de la corriente de bits 210 datos espectrales codificados aritméticamente como, por ejemplo, una palabra de código aritmético "acod_m [pki][m]" que representa el valor del plano de bits más significativo m de un valor espectral a, y una palabra de código "acod_r" que representa un contenido de un plano de bits menos significativo del valor espectral a de la representación de audio de dominio frecuencial. Por consiguiente, la representación de audio de dominio frecuencial codificada 222 constituye (o comprende) una representación aritméticamente codificada de valores espectrales. El desformateador de la carga útil de la corriente de bits 220 tiene además una configuración que le permite extraer de la corriente de bits información adicional de control, que no aparece ilustrada en la Fig. 2. Además, el desformateador de la carga útil de la corriente de bits tiene opcionalmente una configuración que le permite extraer de la corriente de bits 210 una información de reiniciación de estados 224, también denominada bandera de reiniciación aritmética o "arith_reset_flag".
El decodificador de audio 200 comprende un decodificador aritmético 230, también denominado "decodificador espectral insonorizado". El decodificador aritmético 230 tiene una configuración que le permite recibir la representación de audio de dominio frecuencial codificada 220 y, opcionalmente, la información de reiniciación de estados 224. El decodificador aritmético 230 también tiene una configuración que le permite proveer una representación de audio de dominio frecuencial decodificada 232, que puede comprender una representación decodificada de valores espectrales. Por ejemplo, la representación de audio de dominio frecuencial decodificada 232 puede comprender una representación decodificada de valores espectrales, que son descriptos por la representación de audio de dominio frecuencial codificada 220.
El decodificador de audio 200 también comprende un cuantificador/reescalador inverso opcional 240, que tiene una configuración que le permite recibir la representación de audio de dominio frecuencial decodificada 232 y proveer, sobre esta base, una representación de audio de dominio frecuencial inversamente cuantificada y reescalada 242.
El decodificador de audio 200 comprende además un preprocesador espectral opcional 250, que tiene una configuración que le permite recibir la representación de audió de dominio frecuencial inversamente cuantificada y reescalada 242 y proveer, sobre esta base, una versión preprocesada 252 de la representación de audio de dominio frecuencial inversamente cuantificada y reescalada 242. El decodificador de audio 200 también comprende un transformador de señales de dominio frecuencial a dominio temporal 260, también denominado "convertidor de señales". El transformador de señales 260 tiene una configuración que le permite recibir la versión preprocesada 252 de la representación de audio de dominio frecuencial inversamente cuantificada y reescalada 242 (o, alternativamente, la representación de audio de dominio frecuencial inversamente cuantificada y reescalada 242 o la representación de audio de dominio frecuencial decodificada 232) y proveer, sobre esta base, una representación de dominio temporal 262 de la información de audio. El transformador de señales de dominio frecuencial a dominio temporal 260 puede comprender, por ejemplo, un transformador para ejecutar una transformada discreta del coseno modificada inversa (IMDCT) y una sistematización en ventanas apropiada (además de otras funcionalidades auxiliares como, por ejemplo, una superposición y adición).
El decodificador de audio 200 puede comprender además un postprocesador de dominio temporal opcional 270, que tiene una configuración que le permite recibir la representación de dominio temporal 262 de la información de audio y obtener la información de audio decodificada 212 usando un de dominio temporal. Sin embargo, si se omite el postprocesamiento, la representación de dominio temporal 262 puede ser idéntica a la información de audio decodificada 212.
En este punto debe hacerse notar que el cuantificador/reescalador inverso 240, el preprocesador espectral 250, el transformador de señales de dominio frecuencial a dominio temporal 260 y el postprocesador de dominio temporal 270 pueden ser controlados en forma dependiente de la información de control, que es extraída de la corriente de bits 210 por el desformateador de la carga útil de la corriente de bits 220.
Para resumir la forma de funcionamiento general del decodificador de audio 200, se puede obtener una representación de audio de dominio frecuencial decodificada 232, por ejemplo, un conjunto de valores espectrales asociados con un marco de audio de la información de audio codificada, sobre la base de la representación de dominio frecuencial codificada 222 usando el decodificador aritmético 230. A continuación, se cuantifica inversamente, reescala y preprocesa el conjunto, por ejemplo, de 1024 valores espectrales, que pueden ser los coeficientes de MDCT. En consecuencia, se obtiene un conjunto de valores espectrales cuantificado inversamente, reescalado y preprocesado espectralmente (p. ej., 1024 coeficientes de MDCT). Luego, se deriva una representación de dominio temporal de un marco de audio del conjunto de valores de dominio frecuencial cuantificado inversamente, reescalado y preprocesado espectralmente (p. ej. coeficientes de MDCT). En consecuencia, se obtiene una representación de dominio temporal de un marco de audio. La representación de dominio temporal de un determinado marco de audio puede combinarse con representaciones de dominio temporal de marcos de audio previos y/o posteriores. Por ejemplo, puede realizarse una superposición y adición entre representaciones de dominio temporal de marcos de audio posteriores para filtrar las transiciones entre las representaciones de dominio temporal de los marcos de audio adyacentes y para obtener una cancelación de las distorsiones (aliasing). En cuanto a los detalles relacionados con la reconstrucción de la información de audio decodificada 212 sobre la base de la representación de audio de dominio tiempo-frecuencia decodificada 232, se hace referencia, por ejemplo, a la Norma Internacional ISO/IEC 14496-3, parte 3, sub-parte 4 donde se proporciona un análisis detallado. Sin embargo, se pueden usar otros esquemas más elaborados de superposición y cancelación de las distorsiones {aliasing).
A continuación, se describirán algunos detalles relacionados con el decodificador aritmético 230. El decodificador aritmético 230 comprende un determinador de planos de bits más significativos 284, que tiene una configuración que le permite recibir la palabra de código aritmético acod_m [pki][m] que describe el valor del plano de bits más significativos m. El determinador de planos de bits más significativos 284 puede tener una configuración que le permite usar una tabla de frecuencias acumulativas de un conjunto que comprende una pluralidad de 64 tablas de frecuencias acumulativas para derivar el valor del plano de bits más significativos m de la palabra de código aritmético "acod_m [pki][m]".
El determinador de planos de bits más significativos 284 tiene una configuración que le permite derivar valores 286 de un plano de bits más significativos de valores espectrales sobre la base de la palabra de código acod_m. El decodificador aritmético 230 comprende además un determinador de planos de bits menos significativos 288, que tiene una configuración que le permite recibir una o varias palabras de código "acod_r" que representan uno o varios planos de bits menos significativos de un valor espectral. En consecuencia, el determinador de planos de bits menos significativos 288 tiene una configuración que le permite proveer valores decodificados 290 de uno o varios planos de bits menos significativos. El decodificador de audio 200 también comprende un combinador de planos de bits 292, que tiene una configuración que le permite recibir los valores decodificados 286 del plano de bits más significativos de los valores espectrales y los valores decodificados 290 de uno o varios 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 292 provee valores espectrales decodificados, que forman parte de la representación de audio de dominio frecuencial decodificada 232. Naturalmente, el decodificador aritmético 230 tiene habitualmente una configuración que le permite proveer una pluralidad de valores espectrales para obtener un conjunto completo de valores espectrales decodificados asociados con un marco actual del contenido de audio.
El decodificador aritmético 230 comprende además un selector de tablas de frecuencias acumulativas 296, que tiene una configuración que le permite seleccionar una de las 64 tablas de frecuencias acumulativas en forma dependiente de un índice de estados 298 que describe un estado del decodificador aritmético. El decodificador aritmético 230 comprende además un rastreador de estados 299, que tiene una configuración que le permite rastrear un estado del decodificador aritmético dependiente de los valores espectrales previamente decodificados. La información de estados puede reiniciarse opcionalmente a una información de estados por defecto en respuesta a la información de reiniciación de estados 224. En consecuencia, el selector de tablas de frecuencias acumulativas 296 tiene una configuración que le permite proveer un índice (p. ej. pki) de una tabla de frecuencias acumulativas escogida, o una tabla de frecuencias acumulativas escogida por sí misma, para aplicar en la decodificación del valor del plano de bits más significativos m dependiente de la palabra de código "acodjn".
Para resumir la forma de funcionamiento del decodificador de audio 200, el decodificador de audio 200 tiene una configuración que le permite recibir una representación de audio de dominio frecuencial eficientemente codificada por la velocidad de transmisión de bits 222 y obtener una representación de audio de dominio frecuencial decodificada sobre esta base. En el decodificador aritmético 230, que se emplea para obtener la representación de audio de dominio frecuencial decodificada 232 sobre la base de la representación de audio de dominio frecuencial codificada 222, se explota una probabilidad de distintas combinaciones de valores del plano de bits más significativos de valores espectrales adyacentes mediante la utilización de un decodificador aritmético 280, que tiene una configuración que le permite aplicar una tabla de frecuencias acumulativas. En otras palabras, se explotan las dependencias estadísticas entre valores espectrales seleccionando distintas tablas de frecuencias acumulativas de un conjunto que comprende 64 tablas de frecuencias acumulativas diferentes en forma dependiente de un índice de estados 298, que se obtiene observando los valores espectrales decodificados computados previamente. 5. Compendio sobre la herramienta de codificación espectral insonorizada A continuación, se explicarán detalles sobre el algoritmo de codificación y decodificación, que es ejecutado, por ejemplo, por el codificador aritmético 170 y el decodificador aritmético 230.
Se pone el acento en la descripción del algoritmo de decodificación. Debe notarse, sin embargo, que un algoritmo de codificación correspondiente puede ejecutarse de conformidad con lo que se establece sobre el algoritmo de decodificación, en el que se invierten los mapeos.
Debe tenerse en cuenta que la decodificación, que se analizará a continuación, se usa para permitir lo que se llama "codificación espectral insonorizada" de valores espectrales normalmente postprocesados, escalados y cuantificados. La codificación espectral insonorizada se usa en un concepto de codificación/decodificación de audio para disminuir la redundancia del espectro cuantificado, que se obtiene, por ejemplo, por medio de un transformador de dominio temporal a dominio frecuencial compactador de la energía.
El esquema de codificación espectral insonorizada, que se usa en las formas de realización de la invención, se basa en una codificación aritmética en conjunción con un contexto adaptado dinámicamente. La codificación insonorizada es suministrada por (representaciones originales o codificadas de) valores espectrales cuantificados y utiliza tablas de frecuencias acumulativas dependientes del contexto, derivadas, por ejemplo, de una pluralidad de valores espectrales próximos previamente decodificados. En la presente se tiene en cuenta la proximidad tanto en tiempo como en frecuencia, tal como se ilustra en la Fig. 4. Las tablas de frecuencias acumulativas (que serán explicadas más adelante) son usadas entonces por el codificador aritmético para generar un código binario de longitud variable y por el decodificador aritmético para derivar valores decodificados desde un código binario de longitud variable.
Por ejemplo, el codificador aritmético 170 produce un código binario para un determinado conjunto de símbolos de manera dependiente de las respectivas probabilidades. El código binario es generado por el mapeo de un intervalo de probabilidades, donde se encuentra el conjunto de símbolos, a una palabra de código.
A continuación, se brindará otra breve reseña de la herramienta de codificación espectral insonorizada. La codificación espectral insonorizada se usa para disminuir aún más la redundancia del espectro cuantificado. El esquema de codificación espectral insonorizada se basa en una codificación aritmética en conjunción con un contexto adaptado dinámicamente. La codificación insonorizada es suministrada por los valores espectrales cuantificados y utiliza tablas de frecuencias acumulativas dependientes del contexto derivadas, por ejemplo, de siete valores espectrales próximos previamente decodificados.
En la presente se tiene en cuenta la proximidad tanto en tiempo como en frecuencia, tal como se ilustra en la Fig. 4. Las tablas de frecuencias acumulativas son usadas entonces por el codificador aritmético para generar un código binario de longitud variable.
El codificador aritmético produce un código binario para un determinado conjunto de símbolos y sus respectivas probabilidades. El código binario es generado por el mapeo de un intervalo de probabilidades, donde se encuentra el conjunto de símbolos, a una palabra de código. 6. Proceso de decodificación 6.1 Compendio sobre el proceso de decodificación A continuación, se presenta un resumen del proceso de decodificación de un valor espectral con respecto a la Fig. 3, que muestra una representación de pseudocódigo de programa del proceso de decodificación de una pluralidad de valores espectrales.
El proceso de decodificación de una pluralidad de valores espectrales comprende una inicialización 310 de un contexto. La inicialización 310 del contexto comprende una derivación del contexto actual a partir de un contexto previo utilizando la función "arith_map_context (lg)". La derivación del contexto actual a partir de un contexto previo puede comprender una reiniciación del contexto. Tanto la reiniciación del contexto como la derivación del contexto actual a partir de un contexto previo serán discutidos a continuación.
La decodificación de una pluralidad de valores espectrales también comprende una iteración de una decodificación de valores espectrales 312 y una actualización contextual 314, actualización contextual que es ejecutada por una función "Arith_update_context(a,i,lg)" que se describirá a continuación. La decodificación de valores espectrales 312 y la actualización contextual 314 se repiten Ig veces, donde Ig indica la cantidad de valores espectrales que se han de decodificar (p. ej. para un marco de audio). La decodificación de valores espectrales 312 comprende un cálculo de valores contextúales 312a, una decodificación de planos de bits más significativos 312b, y una adición de planos de bits menos significativos 312c.
La computación de valores de estado 312a comprende la computación de un primer valor de estado s utilizando la función "arith_get_context(i, Ig, arith_reset_flag, N/2)", función que retorna el primer valor de estado s. La computación de valores de estado 312a también comprende una computación de un valor de nivel "levO" y de un valor de nivel "lev", valores de nivel "levO",„lev" que se obtienen haciendo desplazar el primer valor de estado s hacia la derecha en 24 bits. La computación de valores de estado 312a también comprende una computación de un segundo valor de estado t de acuerdo con la fórmula que se muestra en la Fig. 3 con el número de referencia 312a.
La decodificación de los planos de bits más significativos 312b comprende una ejecución iterativa de un algoritmo de decodificación 312ba, donde una variable j es inicializada a 0 antes de una primera ejecución del algoritmo 312ba.
El algoritmo 312ba comprende una computación de un índice de estados „pki" (que también sirve como índice de tablas de frecuencias acumulativas) en forma dependiente del segundo valor de estado t, y también en forma dependiente de los valores de nivel„lev" y levO, usando una función "arith_get_pk()", que se analizará a continuación. El algoritmo 312ba también comprende la selección de una tabla de frecuencias acumulativas en forma dependiente del índice de estados pki, donde una variable "cum_freq" puede ser establecida a una dirección de comienzo de una de 64 tablas de frecuencias acumulativas en forma dependiente del índice de estados pki. Asimismo, se puede inicializar una variable "cfl" a un tramo de la tabla de frecuencias acumulativas escogida, que es, por ejemplo, igual a la cantidad de símbolos del abecedario, es decir, la cantidad de valores diferentes que pueden decodificarse. Las longitudes de todas las tablas de frecuencias acumulativas desde "arith_cf_m[pki=0][9]" hasta "arith_cf_m[pki=63][9]" disponibles para la decodificación del valor del plano de bits más significativos m es 9, ya que se pueden decodificar ocho valores diferentes del plano de bits más significativos y un símbolo de escape. Seguidamente, se puede obtener un valor del plano de bits más significativos m ejecutando una función "arith_decode()", tomando en cuenta la tabla de frecuencias acumulativas escogida (descripta por la variable "cum_freq" y la variable "cfl"). Cuando se está derivando el valor del plano de bits más significativos m, se pueden evaluar los bits denominados "acod_m" de la corriente de bits 210 (véase, por ejemplo, la Fig. 6g).
El algoritmo 312ba también comprende la verificación de que el valor del plano de bits más significativos m es igual a un símbolo de escape "ARITH_ESCAPE", o no. Si el valor del plano de bits más significativos m no es igual al símbolo de escape aritmético, el algoritmo 312ba es abortado (condición "break") y, por lo tanto, se pasa por alto el resto de las instrucciones del algoritmo 312ba. En consecuencia, se continúa la ejecución del proceso estableciendo que el valor espectral a es igual al valor del plano de bits más significativos m (instrucción "a=m"). Por el contrario, si el valor decodificado del plano de bits más significativos m es idéntico al símbolo de escape aritmético "ARITH_ESCAPE", el valor de nivel„lev" aumenta en uno. Como ya se indicó, el algoritmo 312ba se repite entonces hasta que el valor decodificado del plano de bits más significativos m es diferente del símbolo de escape aritmético.
En cuanto se completa la decodificación de los planos de bits más significativos, es decir, cuando se ha decodificado un valor del plano de bits más significativos m diferente del símbolo de escape aritmético, se establece que la variable de valor espectral„a" sea igual al valor del plano de bits más significativos m. A continuación se obtienen los planos de bits menos significativos, por ejemplo, como se indica con el número de referencia 312c en la Fig. 3. Para cada plano de bits menos significativos del valor espectral, se decodifica uno de dos valores binarios. Por ejemplo, se obtiene un valor del plano de bits menos significativos r. A continuación se actualiza la variable de valor espectral „a" desplazando el contenido de la variable de valor espectral „a" hacia la izquierda en 1 bit y agregando el valor del plano de bits menos significativos actualmente decodificado r como el bit menos significativo. Sin embargo, debe tenerse en cuenta que el concepto para obtener los valores de los planos de bits menos significativos no es de particular importancia para la presente invención. En algunas formas de realización, se puede incluso omitir la decodificación de cualquier plano de bits menos significativos. Alternativamente, se pueden usar diferentes algoritmos de decodificación con esta finalidad. 6.2 Orden de decodificación de acuerdo con la Fig. 4 A continuación, se describirá el orden de decodificación de los valores espectrales.
Los coeficientes espectrales se codifican y transmiten de manera insonorizada (p. ej. en la corriente de bits) comenzando con el coeficiente de menor frecuencia y avanzando progresivamente hasta el coeficiente de mayor frecuencia.
Los coeficientes de una codificación de audio avanzada (que se obtiene, por ejemplo, usando una transformada discreta del coseno modificada, como se discute en la ISO/IEC 14496, parte 3, subparte 4) son almacenados en una red denominada "x_ac_quant[g][win][sfb][bin]", y el orden de transmisión de la palabra de código de codificación insonorizada (p. ej. acodjn, acod_r) es tal que cuando son decodificados en el orden recibido y almacenados en la red, "bin" (el índice de frecuencias) es el índice de incrementación más rápida y "g" es el índice de incrementación menos rápida.
Los coeficientes espectrales asociados con una frecuencia menor son codificados antes que los coeficientes espectrales asociados con una frecuencia más alta.
Los coeficientes de la excitación codificada por la transformada (tcx) son almacenados directamente en una red x_tcx_invquant[win][bin], y el orden de la transmisión de las palabras de código de codificación insonorizada es tal que cuando son decodificadas en el orden recibido y almacenadas en la red, "bin" es el índice de incrementación más rápida y "win" es el índice de incrementación menos rápida. En otras palabras, si los valores espectrales describen una excitación codificada por la transformada del filtro de predicción lineal de un codificador de lenguaje, los valores espectrales a están asociados a frecuencias adyacentes y crecientes de la excitación codificada por la transformada.
Los coeficientes espectrales asociados a una frecuencia menor son codificados antes que los coeficientes espectrales asociados con una frecuencia más alta.
Es notable que el decodificador de audio 200 puede tener una configuración que le permite aplicar la representación de audio de dominio frecuencial decodificada 232, provista por el decodificador aritmético 230, tanto para una generación "directa" de una representación de señales de audio de dominio temporal que usa una transformación de señales de dominio frecuencial a dominio temporal como para una provisión "indirecta" de una representación de señales de audio que emplea, además de un decodificador de dominio frecuencial a dominio temporal, un filtro de predicción lineal excitado por la salida del transformador de señales de dominio frecuencial a dominio temporal.
En otras palabras, el decodificador aritmético 200, cuya funcionalidad se analiza minuciosamente en la presente, es perfectamente adecuado para decodificar valores espectrales de una representación de dominio tiempo-frecuencia de un contenido de audio codificado en el dominio frecuencial y para proveer una representación de dominio tiempo-frecuencia de una señal de estímulo para un filtro de predicción lineal adaptado para decodificar una señal de lenguaje codificada en el dominio de predicción lineal. Por consiguiente, el decodificador aritmético es perfectamente adecuado para usar en un decodificador de audio que puede manejar tanto el contenido de audio codificado por el dominio frecuencial como el contenido de audio codificado por el dominio frecuencial predictivo lineal (modo de dominio de predicción lineal de excitaciones codificadas por la transformada). 6.3. Inicialización del contexto de acuerdo con las Figs. 5a y 5b A continuación, se describirá la inicialización del contexto (también denominada "mapeo contextúa!"), que se realiza en una etapa 310.
La inicialización del contexto comprende un mapeo entre un contexto pasado y un contexto actual de acuerdo con el algoritmo "arith_map_ contexto", que se ilustra en la Fig. 5a. Según puede observarse, el contexto actual es almacenado en una variable global q[2][n_context] que adopta la forma de una red que tiene una primera dimensión de dos y una segunda dimensión de n_context. Un contexto pasado es almacenado en una variable qs[n_context], que adopta la forma de una tabla que tiene una dimensión de n_context. La variable "previousjg" describe una serie de valores espectrales de un contexto pasado.
La variable "lg" describe una serie de coeficientes espectrales para decodificar en el marco. La variable "previousjg" describe una cantidad previa de líneas espectrales de un marco previo.
Se puede ejecutar un mapeo del contexto de acuerdo con el algoritmo "arith_map_context()". En este punto debe hacerse notar que la función "arith_map_context()" ajusta las entradas q[0][i] de la red de contextos actuales q a los valores qs[i] de la red de contextos pasados qs, si la cantidad de valores espectrales asociados con el marco de audio actual (p. ej. codificados por el dominio frecuencial) es idéntico a la cantidad de valores espectrales asociados con el marco de audio previo para i=0 a i=lg-1.
Sin embargo, se realiza un mapeo más complicado si la cantidad de valores espectrales asociados al marco de audio actual es diferente de la cantidad de valores espectrales asociados al marco de audio previo. Sin embargo, los detalles relacionados con el mapeo en este caso no son de importancia especial para la idea clave de la presente invención, por lo que se hace referencia al pseudocódigo de programa de la Fig. 5a para los detalles. 6.4 Computación de los valores de estado de acuerdo con las Figs. 5b y 5c A continuación, se describirá con más detalles la computación de los valores de estado 312a.
Debe tenerse en cuenta que el primer valor de estado s (ilustrado en la Fig. 3) puede obtenerse como valor de retorno de la función "arith_get_context(i, Ig, arith_reset_flag, N/2)", del que se muestra una representación de pseudocódigo de programa en las Figs. 5b y 5c.
Con respecto a la computación del valor de estado, se hace referencia también a la Fig. 4, que muestra el contexto usado para una evaluación de estados. La Fig. 4 muestra una representación bidimensional de valores espectrales, tanto en función del tiempo como de la frecuencia. Una abscisa 410 describe el tiempo y una ordenada 412 describe la frecuencia. Según puede observarse en la Fig. 4, un valor espectral 420 a decodificar, está asociado a un índice de tiempo tO y un índice de frecuencia i. Según puede observarse, para el índice de tiempo tO, las tupias que tienen índices de frecuencia i-1 , i-2 e i-3 ya están decodificados para cuando se está por decodificar el valor espectral 420 que tiene el índice de frecuencia i. Según puede observarse en la Fig. 4, un valor espectral 430 que tiene un índice de tiempo tO y un índice de frecuencia i-1 ya está decodificado antes de que el valor espectral 420 sea decodificado, y el valor espectral 430 es considerado para el contexto que se usa para la decodificación del valor espectral 420. De modo similar, un valor espectral 434 que tiene un índice de tiempo tO y un índice de frecuencia i-2, ya está decodificado antes de que el valor espectral 420 sea decodificado, y el valor espectral 434 es considerado para el contexto que se usa para decodificar el valor espectral 420. De modo similar, un valor espectral 440 que tiene un índice de tiempo t-1 y un índice de frecuencia de i-2, un valor espectral 444 que tiene un índice de tiempo t-1 y un índice de frecuencia i-1 , un valor espectral 448 que tiene un índice de tiempo t-1 y un índice de frecuencia i, un valor espectral 452 que tiene un índice de tiempo t-1 y un índice de frecuencia i+1 , y un valor espectral 456 que tiene un índice de tiempo t-1 y un índice de frecuencia i+2, ya están decodificados antes de que el valor espectral 420 sea decodificado, y son considerados para la determinación del contexto, que se usa para decodificar el valor espectral 420. Los valores (coeficientes) espectrales ya decodificados en el momento en que el valor espectral 420 es decodificado y considerado para el contexto están ilustrados con cuadrados sombreados. Por el contrario, algunos otros valores espectrales ya decodificados (en el momento en que el valor espectral 420 es decodificado), que están representados por cuadrados con líneas entrecortadas, y otros valores espectrales, que todavía no están decodificados (en el momento en que el valor espectral 420 es decodificado) y que aparecen con círculos de líneas entrecortadas, no se utilizan para determinar el contexto para decodificar el valor espectral 420.
Sin embargo, debe tenerse en cuenta que algunos de estos valores espectrales, que no se usan para la computación "regular" (o "normal") del contexto para decodificar el valor espectral 420 pueden evaluarse, sin embargo, para una detección de una pluralidad de valores espectrales adyacentes previamente decodificados que satisfacen, considerados individualmente o en conjunto, una condición predeterminada relacionada con sus magnitudes.
Haciendo referencia ahora a las Figs. 5b y 5c, que muestran la funcionalidad de la función "arith_get_context()" en forma de un pseudocódigo de programa, se describirán algunos detalles adicionales relacionados con el cálculo del primer valor de contexto "s", que es ejecutado por la función "arith_get_context()".
Debe tenerse en cuenta que la función "arith_get_context()" recibe, como variables entrantes, un índice ¡ del valor espectral que se ha de decodificar. El índice i normalmente es un índice de frecuencias. Una variable entrante Ig describe un número (total) de coeficientes cuantificados esperados (para un marco de audio actual). Una variable N describe una cantidad de líneas de la transformación. Una bandera "arith reset flag" indica si el contexto debería ser reiniciado. La función "arith_get_context" provee, como valor de salida, una variable„t", que representa un índice de estados concatenados s y un nivel de ' planos de bits predicho levO.
La función "arith_get_context()" utiliza variables con números enteros aO, cO, c1 , c2, c3, c4, c5, c6, levO, y "región".
La función "arith_get_context()" comprende como bloques funcionales principales, un primer procesamiento de reiniciación aritmética 510, una detección 512 de un grupo de una pluralidad de valores espectrales cero adyacentes previamente decodificados, un primer ajuste de variable 514, un segundo ajuste de variable 516, una adaptación de nivel 518, un ajuste de valores de región 520, una adaptación de nivel 522, una limitación de nivel 524, un procesamiento de reiniciación aritmética 526, un tercer ajuste de variable 528, un cuarto ajuste de variable 530, un quinto ajuste de variable 532, una adaptación de nivel 534, y una computación selectiva de valores de retorno 536.
En el primer procesamiento de reiniciación aritmética 510, se verifica que la bandera de reiniciación aritmética "arith reset flag" esté establecida, mientras que el índice del valor espectral que se ha de decodificar es igual a cero. En este caso, se retorna un valor contextual de cero, y se aborta la función.
En la detección 512 de un grupo de una pluralidad de valores espectrales cero previamente decodificados, que solamente se ejecuta si la bandera de reiniciación aritmética está inactiva y el índice i del valor espectral que se ha de decodificar es diferente de cero, una variable denominada "flag" (bandera) es inicializada a 1 , indicada con el número de referencia 512a, y se determina una región de valor espectral que ha de ser evaluada, indicada con el número de referencia 512b. A continuación, la región de valores espectrales, que es determinada como se indica con el número de referencia 512b, es evaluada como se señala con el número de referencia 512c. Si resulta que hay una región suficiente de valores espectrales cero previamente decodificados, se retorna un valor contextual de 1 , indicado con el número de referencia 512d. Por ejemplo, un límite de índice de frecuencia superior "lim_max" se ajusta a i+6, a menos que el índice i del valor espectral que se ha de decodificar sea cercano a un índice de frecuencia máximo lg-1 , en cuyo caso se realiza un ajuste especial del límite de índice de frecuencia superior, indicado con el número de referencia 512b.
Además, un límite de índice de frecuencia inferior "Nm_min" se ajusta a -5, a menos que el índice i del valor espectral que se ha de decodificar esté cercano a cero (i+lim_min<0), en cuyo caso se realiza una computación especial del límite de índice de frecuencia inferior lim_min, indicado con el número de referencia 512b. Cuando se evalúa la región de valores espectrales determinada en el paso 512b, se realiza primero una evaluación para los índices de frecuencia negativos k entre el límite de índice de frecuencia inferior lim_min y cero. Para los índices de frecuencia k entre lim min y cero, se verifica que por lo menos uno de los valores contextúales q[0][k].c y q[1][k].c es igual a cero. Sin embargo, si ambos valores contextúales q[0][k].c y q[1 ][k].c son diferentes de cero para cualquiera de los índices de frecuencia k entre lim min y cero, se concluye que no existe un grupo suficiente de valores espectrales cero y la evaluación 512c se aborta. A continuación, se evalúan los valores contextúales q[0][k].c para los índices de frecuencia entre cero y lim_max. Si resulta que alguno de los valores contextúales q[0][k].c para cualquiera de los índices de frecuencia entre cero y lim_max es diferente de cero, se concluye que no existe un grupo suficiente de valores espectrales cero previamente decodificados, y la evaluación 512c se aborta. Sin embargo, si resulta que para cada índice de frecuencia k entre lim_min y cero, hay por lo menos un valor contextual q[0][k].c o q[1 ][k].c que es igual a cero y que hay un valor contextual cero q[0][k].c para cada índice de frecuencia k entre cero y lim max, se concluye que hay un grupo suficiente de valores espectrales cero previamente decodificados. En consecuencia, en este caso, se retorna un valor contextual de 1 para indicar esta condición, sin realizar cálculos adicionales. En otras palabras, se pasan por alto los cálculos 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, si se identifica un grupo suficiente de una pluralidad de valores contextúales q[0][k].c, q[1 ][k].c que tienen un valor de cero. En otras palabras, el valor contextual retornado, que describe el estado contextual (s), es determinado independientemente de los valores espectrales previamente decodificados en respuesta a la detección de que la condición predeterminada ha sido satisfecha.
Por el contrario, es decir, si no hay un grupo suficiente de valores contextúales [q][0][k].c, [q][1][k].c, que son cero, por lo menos algunos de los cálculos 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536 deben ejecutarse.
En el primer ajuste de variable 514, que se ejecuta en forma selectiva si (y sólo si) el índice i del valor espectral que se ha de decodificar es inferior a 1 , la variable ao es inicializada para que tome el valor contextual q[1 ][i-1], y la variable cO es inicializada para que tome el valor absoluto de la variable aO. La variable JevO" es inicializada para que tome el valor de cero. Luego, las variables JevO" y cO son incrementadas si la variable aO comprende un valor absoluto comparativamente grande, es decir, es inferior a -4, o mayor o igual a 4. El aumento de las variables JevO" y cO se ejecuta de manera iterativa, hasta que el valor de la variable aO llega a un rango entre -4 y 3 por medio de una operación de desplazamiento hacia la derecha (paso 514b).
Luego, las variables cO y JevO" son limitadas a los valores máximos de 7 y 3, respectivamente (paso 514c).
Si el índice i del valor espectral que se ha de decodificar es igual a 1 y la bandera de reiniciación aritmética ("arith_reset_flag") está activa, se retorna un valor contextual, que se computa meramente sobre la base de las variables cO y levO (paso 514d). En consecuencia, solo se considera un único valor espectral decodificado previamente que tiene el mismo índice de tiempo que el valor espectral que se ha de decodificar y que tiene un índice de frecuencia que es menor, en 1 , que el índice de frecuencia i del valor espectral que se ha de decodificar, para la computación del contexto (paso 514d). Por el contrario, es decir, si no hay funcionalidad de reiniciación aritmética, la variable c4 es inicializada (paso 514e).
En conclusión, en el primer ajuste de variable 514, las variables cO y JevO" son inicializadas en forma dependiente de un valor espectral decodificado previamente, decodificadas para el mismo marco como el valor espectral que ha de ser actualmente decodificado y para un bin espectral precedente i-1 . La variable c4 es inicializada en forma dependiente de un valor espectral decodificado previamente, decodificado para un marco de audio previo (que tiene índice de tiempo t-1 ) y que tiene una frecuencia que es inferior (p. ej., en un bin de frecuencia) a la frecuencia asociada con el valor espectral que ha de ser actualmente decodificado.
El segundo ajuste de variable 516 que se ejecuta en forma selectiva si (y solo si) el índice de frecuencia del valor espectral que ha de ser actualmente decodificado es superior a 1 , comprende una inicialización de las variables c1 y c6 y una actualización de la variable levO. La variable d es actualizada en forma dependiente de un valor contextual q[1 ][i-2].c asociado con un valor espectral decodificado previamente del marco de audio actual, una frecuencia del cual es más pequeña (p. ej. en dos bins de frecuencia) que una frecuencia de un valor espectral que se ha de decodificar actualmente. De modo similar, la variable c6 es inicializada en forma dependiente de un valor contextual q[0][i-2].c, que describe un valor espectral decodificado previamente de un marco previo (que tiene índice de tiempo t-1 ), una frecuencia asociada del cual es más pequeña (p. ej. en dos bins de frecuencia) que una frecuencia asociada con el valor espectral que se ha de decodificar actualmente. Además, la variable de nivel„levO" se ajusta a un valor de nivel q[1 ][i-2].l asociado con un valor espectral decodificado previamente del marco actual, una frecuencia asociada del cual es más pequeña (p. ej. en dos bins de frecuencia) que una frecuencia asociada con el valor espectral que se ha de decodificar actualmente, si q[1 ][i-2].l es mayor que levO.
La adaptación de niveles 518 y el ajuste de valores de región 520 se ejecutan en forma selectiva, si (y solo si) el índice i del valor espectral que se ha de decodificar es mayor que 2. En la adaptación de niveles 518, la variable de nivel„lev0" aumenta a un valor de q[1 ][i-3].l, si el valor de nivel q[1][i-3].l que está asociado a un valor espectral decodificado previamente del marco actual, una frecuencia asociada del cual es más pequeña (p. ej. en tres bins de frecuencia) que la frecuencia asociada con el valor espectral que se ha de decodificar actualmente, es mayor que el valor de nivel levO.
En el ajuste de valores de región 520, se establece una variable de región "región" en forma dependiente de una evaluación, en cuya región espectral, de una pluralidad de regiones espectrales, se dispondrá el valor espectral que se ha de decodificar actualmente. Por ejemplo, si resulta que el valor espectral que ha de ser actualmente decodificado está asociado a un bin de frecuencia (que tiene índice de bins de frecuencia i) que está en el primer (es decir, el más bajo) cuarto de los bins de frecuencia (0= i < N/4), la variable de región "región" se ajusta a cero. Por el contrario, si el valor espectral que se ha de decodificar actualmente está asociado a un bin de frecuencia que está en un segundo cuarto de los bins de frecuencia asociados al marco actual (N/4 < i < N/2), la variable de región se ajusta a un valor de 1. Por el contrario, es decir, si el valor espectral que se ha de decodificar actualmente está asociado a un bin de frecuencia que está en la segunda (es decir, la más alta) mitad de los bins de frecuencia (N/2 < i < N), la variable de región se ajusta a 2. Por consiguiente, se establece una variable de región en forma dependiente de una evaluación a cuya región de frecuencia se asocia el valor espectral que se ha de decodificar actualmente. Se pueden distinguir dos o más regiones de frecuencia.
Se ejecuta una adaptación de niveles adicional 522 si (y solo si) el valor espectral que se ha de decodificar actualmente comprende un índice espectral que es mayor que 3. En este caso, la variable de nivel JevO" es aumentada (ajustada al valor q[1][i-4].l) si el valor de nivel q[i][i-4].l, que está asociado a un valor espectral decodificado previamente del marco actual, que está asociado a una frecuencia que es más pequeña, por ejemplo, en cuatro bins de frecuencia, que una frecuencia asociada al valor espectral que se ha de decodificar actualmente es mayor que el nivel actual JevO" (paso 522). La variable de nivel JevO" está limitada a un valor máximo de 3 (paso 524).
Si se detecta una condición de reiniciación aritmética y el índice i del valor espectral que se ha de decodificar actualmente es mayor que 1 , el valor de estado retorna en forma dependiente de las variables cO, c1 , levO, así como en forma dependiente de la variable de región "región" (paso 526). En consecuencia, los valores espectrales previamente decodificados de cualquiera de los marcos previos no son tenidos en consideración si se da una condición de reiniciación aritmética.
En el tercer ajuste de variable 528, se ajusta la variable c2 al valor contextual q[0][i].c, que está asociado a un valor espectral decodificado previamente del marco de audio previo (que tiene índice de tiempo t-1 ), valor espectral decodificado previamente que está asociado con la misma frecuencia que el valor espectral que se ha de decodificar actualmente.
En el cuarto ajuste de variable 530, se ajusta la variable c3 al valor contextual q[0][i+1].c, que está asociado a un valor espectral decodificado previamente del marco de audio previo que tiene un índice de frecuencia i+1 , a menos que el valor espectral que se ha de decodificar actualmente esté asociado con el índice de frecuencia máximo posible lg-1.
En el quinto ajuste de variable 532, se ajusta la variable c5 al valor contextual q[0][i+2].c, que está asociado a un valor espectral decodificado previamente del marco de audio previo que tiene índice de frecuencia i+2, a menos que el índice de frecuencia i del valor espectral que se ha de decodificar actualmente esté demasiado cercano al valor de índice de frecuencia máximo (es decir, toma el valor de índice de frecuencia lg-2 o lg-1 ).
Se ejecuta una adaptación adicional de la variable de nivel„lev0" si el índice de frecuencia i es igual a cero (es decir, si el valor espectral que se ha de decodificar actualmente es el valor espectral más bajo). En este caso, la variable de nivel„lev0" es aumentada de cero a 1 , si la variable c2 o c3 toma un valor de 3, lo que indica que un valor espectral decodificado previamente de un marco de audio previo, que está asociado con la misma frecuencia o incluso una frecuencia más alta, cuando se compara con la frecuencia asociada al valor espectral que se ha de codificar actualmente, alcanza un valor comparativamente grande.
En la computación selectiva de valores de retorno 536, el valor de retorno es computado en forma dependiente de que el índice i de los valores espectrales que se han de decodificar actualmente tome el valor cero, 1 , o un valor mayor. El valor de retorno es computado en forma dependiente de las variables c2, c3, c5 y levO, indicado con el número de referencia 536a, si el índice i toma el valor de cero. El valor de retorno es computado en forma dependiente de las variables cO, c2, c3, c4, c5, y„levO" indicado con el número de referencia 536b, si el índice i toma el valor de 1. El valor de retorno es computado en forma dependiente de la variable cO, c2, c3, c4, c1 , c5, c6, "región", y levO, si el índice i toma un valor que es diferente de cero o 1 (número de referencia 536c).
Para resumir lo anterior, la computación de valores contextúales "arith_get_context()" comprende una detección 512 de un grupo de una pluralidad de valores espectrales cero previamente decodificados (o por lo menos, valores espectrales suficientemente pequeños). Si se encuentra un grupo suficiente de valores espectrales cero previamente decodificados, se indica la presencia de un contexto especial ajustando el valor de retorno a 1. De lo contrario, se ejecuta la computación de valores contextúales. Se puede decir, en términos generales, que en la computación de valores contextúales, se evalúa el valor de índice i para decidir cuántos valores espectrales previamente decodificados deberían ser evaluados. Por ejemplo, una cantidad de valores espectrales previamente decodificados evaluados se reduce si un índice de frecuencia i del valor espectral que se ha de decodificar actualmente está cercano a un límite inferior (p. ej. cero), o cercano a un límite superior (p. ej. lg-1). Además, incluso si el índice de frecuencia i del valor espectral que se ha de decodificar actualmente está lo suficientemente alejado de un valor mínimo, las regiones espectrales diferentes se distinguen por el ajuste de valores de región 520. En consecuencia, se tienen en cuenta diferentes propiedades estadísticas de distintas regiones espectrales (p. ej. primero, región espectral de frecuencia baja; segundo, región espectral de frecuencia media y tercero, región espectral de frecuencia alta). El valor contextual, que se calcula como valor de retorno, depende de la variable de región "región", de modo tal que el valor contextual retornado depende de que un valor espectral que se ha de decodificar actualmente esté en una primera región de frecuencia predeterminada o en una segunda región de frecuencia predeterminada (o en cualquier otra región de frecuencia predeterminada). 6.5 Selección de normas de mapeo A continuación, se explicará la selección de una norma de mapeo, por ejemplo, una tabla de frecuencias acumulativas, que describe un mapeo de un valor de código a un código de símbolo. La selección de la norma de mapeo se hace en forma dependiente del estado contextual, que es descripto por el valor de estado s o t. 6.5.1 Selección de normas de mapeo usando el algoritmo de acuerdo con la Fi . 5d A continuación, se describirá la selección de una norma de mapeo utilizando la función "get_pk" de acuerdo con la Fig. 5d. Debe tenerse en cuenta que la función "get_pk" puede ejecutarse para obtener el valor de "pki" en el subalgoritmo 312ba del algoritmo de la Fig. 3. Por consiguiente, la función "get_pk" puede tomar el lugar de la función "arith_get_pk" en el algoritmo de la Fig. 3.
También debe observarse que una función "get_pk" de acuerdo con la Fig. 5d puede evaluar la tabla "ari_s_hash[387]" de acuerdo con las Figs. 17(1) y 17(2) y una tabla "ari_gs_hash"[225] de acuerdo con la Fig. 18.
La función„get_pk" recibe, como variable entrante, un valor de estado s, que se puede obtener mediante una combinación de la variable„t" de acuerdo con la Fig. 3 y las variables "lev", JevO" de acuerdo con la Fig. 3. La función„get_pk" también tiene una configuración que le permite retornar, como valor de retorno, un valor de una variable "pki", que designa una norma de mapeo o una tabla de frecuencias acumulativas. La función „get_pk" tiene una configuración que le permite mapear el valor de estado s a un valor de índice de normas de mapeo "pki".
La función„get_pk" comprende una primera evaluación de tabla 540, y una segunda evaluación de tabla 544. La primera evaluación de tabla 540 comprende una inicialización de variables 541 en la que son inicializadas las variables i_min, i_max, e i, indicada con el número de referencia 541. La primera evaluación de tabla 540 también comprende una búsqueda de tablas iterativa 542, en el curso de la cual se determina si hay una entrada de la tabla "ari_s_hash" que coincide con el valor de estado s. Si durante la búsqueda de tablas iterativa 542 dicha coincidencia es identificada, la función get_pk es abortada, donde un valor de retorno de la función es determinado por la entrada de la tabla "ari_s_hash" que coincide con el valor de estado s, como ya se explicará con más detalles. Sin embargo, si no se produce coincidencia perfecta entre el valor de estado s y se encuentra una entrada de la tabla "ari_s_hash" en el transcurso de la búsqueda de tablas iterativa 542, se ejecuta una verificación de las entradas límite 543.
Volviendo ahora a los detalles de la primera evaluación de tabla 540, se puede ver que queda definido un intervalo de búsqueda por las variables i_min e ¡_max. La búsqueda de tablas iterativa 542 es repetida mientras que el intervalo definido por las variables i_min e i_max sea suficientemente grande, lo que puede ser así si se cumple la condición i_max-i_min > 1. Consiguientemente, se establece la variable i, por lo menos de manera aproximada, para designar el punto medio del intervalo (i=i_min+(i_max-i_min)/2). Seguidamente, se ajusta una variable j a un valor que está determinado por la red "ari_s_hash" en una posición de red designada por la variable i (número de referencia 542). En este punto debe hacerse notar que cada entrada de la tabla "ari_s_hash" describe tanto un valor de estado, que está asociado a la entrada en la tabla, como un valor de índice de normas de mapeo que está asociado a la entrada en la tabla. El valor de estado, que está asociado a la entrada en la tabla, está descripto por los bits más significativos (bits 8-31 ) de la entrada en la tabla, mientras que los valores del índice de normas de mapeo son descriptos por los bits inferiores (p. ej. bits 0-7) de dicha entrada en la tabla. El límite inferior i_min o el límite superior i_max están adaptados en forma dependiente de que el valor de estado s sea más pequeño que un valor de estado descripto por los 24 bits más significativos de la entrada "ari_s_hash[i]" de la tabla "ari_s_hash" referida por la variable i. Por ejemplo, si el valor de estado s es más pequeño que el valor de estado descripto por los 24 bits más significativos de la entrada "ari_s_hash[i]", se ajusta el límite superior i_max del intervalo de tabla al valor i. En consecuencia, el intervalo de tabla para la próxima iteración de la búsqueda de tablas iterativa 542 queda restringido a la mitad inferior del intervalo de tabla (de i_min a i_max) que se usó para la presente iteración de la búsqueda de tablas iterativa 542. Si, por el contrario, el valor de estado s es mayor que los valores de estado descriptos por los 24 bits más significativos de la entrada en la tabla "ari_s_hash[i]", entonces el límite inferior i_min del intervalo de tabla para la próxima iteración de la búsqueda de tablas iterativa 542 se ajusta al valor i, de modo tal que se usa la mitad superior del intervalo de tabla actual (entre i_min e i_max) como intervalo de tabla para la próxima búsqueda de tablas iterativa. Sin embargo, si resulta que el valor de estado s es idéntico al valor de estado descripto por los 24 bits más significativos de la entrada en la tabla "ari_s_hash[i]", el valor de índice de normas de mapeo descripto por los 8 bits menos significativos de la entrada en la tabla "ari_s_hash[i]" es retornado por la función "get_pk", y la función es abortada.
La búsqueda de tablas iterativa 542 es repetida hasta que el intervalo de tabla definido por las variables i_min e i_max es lo suficientemente pequeño.
(Opcionalmente) se ejecuta una verificación de las entradas límite 543 para suplementar la búsqueda de tablas iterativa 542. Si la variable de índice i es igual a la variable de índice i_max después de completarse la búsqueda de tablas iterativa 542, se hace una verificación final sobre si el valor de estado s es igual a un valor de estado descripto por los 24 bits más significativos de una entrada de tabla "ari_s_hash[i_min]", y se retorna un valor de índice de normas de mapeo descripto por los 8 bits menos significativos de la entrada "ari_s_hash[i_min]", en este caso, como resultado de la función "get pk". Por el contrario, si la variable de índice i es diferente de la variable de índice i_max, entonces se verifica si un valor de estado s es igual a un valor de estado descripto por los 24 bits más significativos de la entrada en la tabla "ari_s_hash[i_max]", y se retorna un valor de índice de normas de mapeo descripto por los 8 bits menos significativos de dicha entrada en la tabla "ari_s_hash[i_max]" como valor de retorno de la función "get_pk" en este caso.
Sin embargo, debe tenerse en cuenta que la verificación de las entradas límite 543 puede considerarse opcional en su totalidad.
A continuación de la primera evaluación de tabla 540, se ejecuta la segunda evaluación de tabla 544, a menos que se haya producido un acierto directo "direct hit" durante la primera evaluación de tabla 540, donde el valor de estado s es idéntico a uno de los valores de estado descriptos por las entradas de la tabla "ari_s_hash" (o, más precisamente, por sus 24 bits más significativos).
La segunda evaluación de tabla 544 comprende una inicialización de variable 545, en la que las variables de índice i_min, i e ¡_max son inicializadas, como se indica con el número de referencia 545. La segunda evaluación de tabla 544 también comprende una búsqueda de tablas iterativa 546, en el curso de la cual se hace una búsqueda en la tabla "ari_gs_hash" para encontrar una entrada que representa un valor de estado idéntico al valor de estado s. Por último, la segunda búsqueda en la tabla 544 comprende una determinación de valor de retorno 547.
La búsqueda de tablas iterativa 546 se repite mientras que el intervalo de tabla definido por las variables de índice i_min e i_max es lo suficientemente grande (p. ej. de una longitud i_max - Mnin > 1 ). En la iteración de la búsqueda de tablas iterativa 546, se establece la variable i en el centro del intervalo de tabla definido por i_min e ¡ max (paso 546a). Luego, se obtiene una entrada j de la tabla "ari_gs_hash" en una ubicación de la tabla determinada por la variable de índice i (546b). En otras palabras, la entrada en la tabla "ari_gs_hash[i]" es una entrada de tabla en el centro del intervalo de tabla actual definido por los índices de tabla i_min e i_max. A continuación, se determina el intervalo de tabla para la próxima iteración de la búsqueda de tablas iterativa 546. Con esta finalidad, el valor de índice i_max que describe el límite superior del intervalo de tabla es ajustado al valor i, si el valor de estado s es más pequeño que un valor de estado descripto por los 24 bits más significativos de la entrada en la tabla "j=ar¡_gs_hash[i]" (546c). En otras palabras, se selecciona la mitad inferior del intervalo de tabla actual como nuevo intervalo de tabla para la próxima iteración de la búsqueda de tablas iterativa 546 (paso 546c). Por el contrario, si el valor de estado s es mayor que un valor de estado descripto por los 24 bits más significativos de la entrada en la tabla "j=ari_gs_hash[i]", el valor de índice i_min se ajusta al valor i. En consecuencia, se selecciona la mitad superior del intervalo de tabla actual como nuevo intervalo de tabla para la próxima iteración de la búsqueda de tablas iterativa 546 (paso 546d). Sin embargo, si resulta que el valor de estado s es idéntico a un valor de estado descripto por los 24 bits más altos de la entrada en la tabla "j=ari_gs_hash[i]", la variable de índice i_max se ajusta al valor i+1 o al valor 224 (si i+1 es mayor que 224), y la búsqueda de tablas iterativa 546 es abortada. Sin embargo, si el valor de estado s es diferente del valor de estado descripto por los 24 bits más significativos de "j=ari_gs_hash[i]", la búsqueda de tablas iterativa 546 es repetida con el intervalo de tabla recién ajustado definido por los valores de índice actualizados i_min e i_max, a menos que el intervalo de tabla sea demasiado pequeño (i_max - i_min = 1 ). Por consiguiente, el tamaño de intervalo del intervalo de tabla (definido por i_min e i_max ) es reducido iterativamente hasta que se detecta un acierto directo "direct hit" (s==(j»8)) o el intervalo alcanza un tamaño mínimo permisible (i_max - i_min < 1 ). Finalmente, luego de abortar la búsqueda de tablas iterativa 546, se determina una entrada de tabla "j=ari_gs_hash[i_max]" y se retorna un valor de índice de normas de mapeo, que está descripto por los 8 bits menos significativos de dicha entrada en la tabla "j=ari_gs_hash[i_max]" como el valor de retorno de la función "get_pk". En consecuencia, el valor de índice de normas de mapeo es determinado en forma dependiente del límite superior i_max del intervalo de tabla (definido por i_min e i_max) luego de completarse o abortarse la búsqueda de tablas iterativa 546.
Las evaluaciones de tabla 540, 544 recién descriptas, que utilizan ambas la búsqueda de tablas iterativa 542, 546, permiten examinar las tablas "ari_s_hash" y "ari_gs_hash" en busca de la presencia de un estado significativo determinado con una eficacia computacional muy elevada. En particular, se puede mantener un número de operaciones de acceso a las tablas razonablemente pequeño, aún en el peor de los casos. Se ha descubierto que un ordenamiento numérico de la tabla "ari_s_hash" y "ari_gs_hash" permite la aceleración de la búsqueda de un valor hash apropiado. Además, se puede mantener un tamaño de tabla pequeño ya que no se requiere la inclusión de símbolos de escape en las tablas "ari_s_hash" y "ari_gs_hash". Por consiguiente, se establece un mecanismo eficaz de hash de contextos aún cuando haya un gran número de estados diferentes. En una primera etapa (primera evaluación de tabla 540), se realiza una búsqueda de un acierto directo (s==G»8)).
En la segunda etapa (segunda evaluación de tabla 544) se pueden mapear los rangos del valor de estado s a valores del índice de normas de mapeo. Por consiguiente, se puede ejecutar un manejo bien equilibrado de los estados particularmente significativos, para los cuales hay una entrada asociada en la tabla "ari_s_hash", y los estados menos significativos, para los cuales hay un manejo basado en rangos. En consecuencia, la función "get_pk" constituye una implementación eficaz de una selección de normas de mapeo.
Para más detalle, se hace referencia al pseudocódigo de programa de la Fig. 5d, que representa la funcionalidad de la función "get_pk" en una representación de acuerdo con el lenguaje de programación C ampliamente difundido. 6.5.2 Selección de normas de mapeo usando el algoritmo de acuerdo con la Fia. 5e A continuación, se describirá otro algoritmo para seleccionar la norma de mapeo tomando como referencia la Fig. 5e. Debe tenerse en cuenta que el algoritmo "arith_get_pk" de acuerdo con la Fig. 5e recibe, como variable entrante, un valor de estado s que describe un estado del contexto. La función "arith_get_pk" provee como valor de salida, o valor de retorno, un índice "pki" de un modelo de probabilidades, que puede ser un índice para seleccionar una norma de mapeo, (p. ej., una tabla de frecuencias acumulativas).
Debe tenerse en cuenta que la función„arith_get_pk" de acuerdo con la Fig. 5e puede adoptar la funcionalidad de la función "arith_get_pk" de la función "value_decode" de la Fig. 3.
También debe observarse que la función "arith_get_pk" puede, por ejemplo, evaluar la tabla ari_s_hash de acuerdo con la Fig. 20, y la tabla ari_gs_hash de acuerdo con la Fig. 18.
La función "arith_get_pk" de acuerdo con la Fig. 5e comprende una primera evaluación de tabla 550 y una segunda evaluación de tabla 560. En la primera evaluación de tabla 550, se hace un barrido lineal a través de la tabla ari s hash, para obtener una entrada j=ari_s_hash[i] de dicha tabla. Si un valor de estado descripto por los 24 bits más significativos de una entrada de tabla j=ari_s_hash[i] de la tabla ari_s_hash es igual al valor de estado s, se retorna un valor de índice de normas de mapeo„pki" descripto por los 8 bits menos significativos de dicha entrada de tabla identificada j=ari_s_hash[i] y la función "arith_get_pk" es abortada. En consecuencia, se evalúa cada una de las 387 entradas de la tabla ari_s_hash en una secuencia ascendente a menos que se identifique un acierto directo "direct hit" (valor de estado s igual al valor de estado descripto por los 24 bits más significativos de una entrada de tabla j).
Si no se identifica un acierto directo dentro de la primera evaluación de tabla 550, se ejecuta una segunda evaluación de tabla 560. En el transcurso de la segunda evaluación de tabla, se ejecuta un barrido lineal con índices de entrada i que aumentan linealmente desde cero hasta un valor máximo de 224. Durante la segunda evaluación de tabla, se lee una entrada "ari_gs_hash[i]" de la tabla "ari_gs_hash" para la tabla i, y se evalúa la entrada en la tabla "j=ari_gs_hash[i]" para determinar si el valor de estado representado por los 24 bits más significativos de la entrada en la tabla j es mayor que el valor de estado s. Si este es el caso, se retorna un valor de índice de normas de mapeo descripto por los 8 bits menos significativos de dicha entrada en la tabla j como el valor de retorno de la función "arith_get_pk", y la ejecución de la función "arith_get_pk" es abortada. Sin embargo, si el valor de estado s no es menor que el valor de estado descripto por los 24 bits más significativos de la entrada de tabla actual j=ari_gs_hash[i], se continúa el barrido a través de las entradas de la tabla ari_gs_hash aumentando el índice de la tabla i. Sin embargo, si el valor de estado s es superior o igual a cualquiera de los valores de estado descriptos por las entradas de la tabla ari_gs_hash, se retorna un valor de índice de normas de mapeo„pki" definido por los 8 bits menos significativos de la última entrada de la tabla ari_gs_hash como el valor de retorno de la función "arith_get_pk".
En síntesis, la función "arith_get_pk" de acuerdo con la Fig. 5e ejecuta una operación hash de dos pasos. En un primer paso, se ejecuta una búsqueda de un acierto directo, donde se determina si el valor de estado s es igual al valor de estado definido por cualquiera de las entradas de una primera tabla "ari_s_hash". Si se identifica un acierto directo en la primera evaluación de tabla 550, se obtiene un valor de retorno de la primera tabla "ari_s_hash" y la función "arith_get_pk" es abortada. Sin embargo, si no se identifica un acierto directo en la primera evaluación de tabla 550, se ejecuta la segunda evaluación de tabla 560. En la segunda evaluación de tabla, se ejecuta una evaluación basada en rangos. Las entradas siguientes de la segunda tabla "ari_gs_hash" definen rangos. Si resulta que el valor de estado s se encuentra dentro de dicho rango (que está indicado por el hecho de que el valor de estado descripto por los 24 bits más significativos de la entrada de tabla actual "j=ari_gs_hash[¡]" es mayor que el valor de estado s, se retorna el valor de índice de normas de mapeo "pki" descripto por los 8 bits menos significativos de la entrada en la tabla j=ari_gs_hash[i]. 6.5.3 Selección de normas de mapeo usando el algoritmo de acuerdo con la Fia. 5f La función "get_pk" de acuerdo con la Fig. 5f es sustancialmente equivalente a la función "arith get pk" de acuerdo con la Fig. 5e. En consecuencia, se hace referencia al análisis anterior. Para más detalles, se hace referencia a la representación del pseudoprograma en la Fig. 5f.
Debe tenerse en cuenta que la función„get_pk" de acuerdo con la Fig. 5f puede tomar el lugar de la función "arith_get_pk" denominada la función "value_decode" de la Fig. 3. 6.6. Función "arith decodeO" de acuerdo con la Fia. 5a A continuación, se analizará la funcionalidad de la función "arith_decode()" en detalle con respecto a la Fig. 5g. Debe tenerse en cuenta que la función "arith_decode()" utiliza la función ayudante "arith_first_symbol(void)", que da TRUE (VERDADERO) como retorno, si es el primer símbolo de la secuencia y FALSE (FALSO) en caso contrario. La función "arith_decode()" también usa la función ayudante "arith_get_next_bit(void)", que obtiene y provee el próximo bit de la corriente de bits.
Además, la función "arith_decode()" usa las variables globales "low", "high" y "valué" (bajo, alto y valor). Asimismo, la función "arith_decode()" recibe, como una variable entrante, la variable "cum_freqQ", que señala hacia una primera entrada o elemento (que tiene índice de elementos o índice de entradas 0) de la tabla de frecuencias acumulativas escogida. Asimismo, la función "arith_decode()" usa la variable de entradas "cf I", que indica la longitud de la tabla de frecuencias acumulativas escogida designada por la variable "cum_freqQ".
La función "arith_decode()" comprende, como primer paso, una inicialización de variable 570a, que se ejecuta si la función ayudante "arith_first_symbol()" indica que el primer símbolo de una secuencia de símbolos está siendo decodificado. La inicialización de valores 550a inicializa la variable "valué" (valor) de manera dependiente de una pluralidad, por ejemplo, de 20 bits, que se obtienen de la corriente de bits usando la función ayudante "arith_get_next_bit", de modo tal que la variable "valué" (valor) toma el valor representado por dichos bits. Asimismo, la variable "low" (bajo) es inicializada para tomar el valor de 0, y la variable "high" (alto) es inicializada para tomar el valor de 1048575.
En un segundo paso 570b, se ajusta la variable rango "range" a un valor, que es mayor, en 1 , que la diferencia entre los valores de las variables "high" y "low" (alto y bajo). La variable "cum" se estable a un valor que representa una posición relativa del valor de la variable "valué" (valor) entre el valor de la variable "low" (bajo) y el valor de la variable "high" (alto). En consecuencia, la variable "cum" toma, por ejemplo, un valor entre 0 y 216 dependiente del valor de la variable "valué" (valor).
El indicador p es inicializado a un valor que es menor, en 1 , que la dirección de comienzo de la tabla de frecuencias acumulativas escogida.
El algoritmo "arith_decode()" también comprende una búsqueda iterativa de tablas de frecuencias acumulativas 570c. La búsqueda iterativa de tablas de frecuencias acumulativas se repite hasta que la variable cfl es inferior o igual a 1 . En la búsqueda iterativa de tablas de frecuencias acumulativas 570c, la variable de indicadores q se ajusta a un valor, que es igual a la suma del valor actual de la variable de indicadores p y la mitad del valor de la variable "cfl". Si el valor de la entrada *q de la tabla de frecuencias acumulativas escogida, entrada que es señalada por la variable de indicadores q, es mayor que el valor de la variable "cum", la variable de indicadores p es ajustada al valor de la variable de indicadores q, y la variable "cfl" aumenta. Finalmente, la variable "cfl" se desplaza hacia la derecha en un bit, dividiéndose así de manera eficaz el valor de la variable "cfl" por 2 y despreciando la porción modular.
En consecuencia, la búsqueda iterativa de tablas de frecuencias acumulativas 570c compara efectivamente el valor de la variable "cum" con una pluralidad de entradas de la tabla de frecuencias acumulativas escogida, para identificar un intervalo dentro de la tabla de frecuencias acumulativas escogida, que está limitado por las entradas de la tabla de frecuencias acumulativas, de modo tal que el valor "cum" se encuentra dentro del intervalo identificado. En consecuencia, las entradas de la tabla de frecuencias acumulativas escogida definen intervalos, donde un respectivo valor de símbolo está asociado a cada uno de los. intervalos de la tabla de frecuencias acumulativas escogida. Asimismo, los anchos de los intervalos entre dos valores adyacentes de la tabla de frecuencias acumulativas definen probabilidades de los símbolos asociados con dichos intervalos, de tal modo que la tabla de frecuencias acumulativas escogida define en su totalidad una distribución de probabilidades de los diferentes símbolos (o valores de símbolo). Más adelante se explicarán detalles sobre las tablas de frecuencias acumulativas disponibles con referencia a la Fig. 19.
Con respecto nuevamente a la Fig. 5g, el valor de símbolo se deriva del valor de la variable de indicadores p, donde se deriva el valor de símbolo, lo cual está indicado con el número de referencia 570d. Por consiguiente, se evalúa la diferencia entre el valor de la variable de indicadores p y la dirección de comienzo "cum_freq" para obtener el valor de símbolo, que está representado por la variable "symbol".
El algoritmo "arith_decode" también comprende una adaptación 570e de las variables "high" y "low" (alto y bajo). Si el valor de símbolo representado por la variable "symbol" (símbolo) es diferente de 0, la variable "high" (alto) es actualizada, lo cual está indicado con el número de referencia 570e. Asimismo, el valor de la variable "low" (bajo) es actualizado, indicado con el número de referencia 570e. La variable "high" (alto) se ajusta a un valor determinado por el valor de la variable "low" (bajo), la variable "range" (rango) y la entrada que tiene el índice "symbol -1 " de la tabla de frecuencias acumulativas escogida. La variable "low" (bajo) aumenta, donde la magnitud del aumento queda determinado por la variable "range" (rango) y la entrada de la tabla de frecuencias acumulativas escogida que tiene el índice "symbol" (símbolo). En consecuencia, se ajusta la diferencia entre los valores de las variables "low" y "high" (bajo y alto) en forma dependiente de la diferencia numérica entre dos entradas adyacentes de la tabla de frecuencias acumulativas escogida.
En consecuencia, si se detecta un valor de símbolo que tiene una baja probabilidad, el intervalo entre los valores de las variables "low" y "high" (bajo y alto) se reduce hasta un ancho estrecho. Por el contrario, si el valor de símbolo detectado comprende una probabilidad relativamente grande, el ancho del intervalo entre los valores de las variables "low" y "high" (bajo y alto) se ajusta a un valor comparativamente grande. Una vez más, el ancho del intervalo entre los valores de las variables "low" y "high" (bajo y alto) depende del símbolo detectado y las entradas correspondientes de la tabla de frecuencias acumulativas.
El algoritmo "arith_decode()" también comprende una renormalización de intervalos 570f, en la que el intervalo determinado en el paso 570e es desplazado iterativamente y escalado hasta que se alcanza la condición "break" (rotura). En la renormalización de intervalos 570f, se ejecuta una operación selectiva de desplazamiento descendente 570fa. Si la variable "high" (alto) es inferior a 524286, no se hace nada, y la renormalización de intervalos continúa con una operación de incremento de tamaño de intervalo 570fb. Sin embargo, si la variable "high" (alto) no es inferior a 524286 y la variable "low" (bajo) es superior o igual a 524286, las variables "valúes", "low" y "high" (valores, bajo y alto) se reducen todas en 524286, de modo tal que un intervalo definido por las variables "low" y "high" (bajo y alto) es desplazado hacia abajo, y de modo tal que el valor de la variable "valué" (valor) también es desplazado hacia abajo. Sin embargo, si resulta que el valor de la variable "high" (alto) no es inferior a 524286, y que la variable "low" (bajo) no es superior o igual a 524286, y que la variable "low" (bajo) es superior o igual a 262143 y que la variable "high" (alto) es inferior a 786429, las variables "valué", "low" y "high" (valor, bajo y alto) se reducen todas en 262143, desplazando de esta manera hacia abajo el intervalo entre los valores de las variables "high" y "low" (alto y bajo) y también el valor de la variable "valué" (valor). Sin embargo, si no se satisface ninguna de las condiciones anteriores, la renormalización de intervalos es abortada.
Sin embargo, si se satisface alguna de las condiciones antes mencionadas, que son evaluadas en el paso 570fa, se ejecuta la operación de incremento de intervalo 570fb. En la operación de incremento de intervalo 570fb, el valor de la variable "low" (bajo) se duplica. Asimismo, se duplica el valor de la variable "high" (alto), y el resultado de la duplicación aumenta en 1 . Asimismo, se duplica el valor de la variable "valué" (valor) (desplazada hacia la izquierda en un bit), y se usa un bit de la corriente de bits, que se obtiene por la función ayudante "arith_get_next_bit", como el bit menos significativo. En consecuencia, el tamaño del intervalo entre los valores de las variables "low" y "high" (bajo y alto) es duplicado de manera aproximada, y la precisión de la variable "valué" (valor) es aumentada usando un nuevo bit de la corriente de bits. Como ya se indicó anteriormente, se repiten los pasos 570fa y 570fb hasta que se alcanza la condición "break" (rotura), es decir, hasta que el intervalo entre los valores de las variables "low" y "high" (bajo y alto) es lo suficientemente grande.
Respecto de la funcionalidad del algoritmo "arith_decode()", debe tenerse en cuenta que el intervalo entre los valores de las variables "low" y "high" (bajo y alto) se reduce en el paso 570e en forma dependiente de dos entradas adyacentes de la tabla de frecuencias acumulativas referidas por la variable "cum_freq". Si un intervalo entre dos valores adyacentes de la tabla de frecuencias acumulativas escogida es pequeño, es decir, si los valores adyacentes se encuentran comparativamente cercanos uno del otro, el intervalo entre los valores de las variables "low" y "high" (bajo y alto), que se obtiene en el paso 570e, será comparativamente pequeño. Por el contrario, si dos entradas adyacentes de la tabla de frecuencias acumulativas se encuentran más espaciadas, el intervalo entre los valores de las variables "low" y "high" (bajo y alto), que se obtiene en el paso 570e, será comparativamente grande.
En consecuencia, si el intervalo entre los valores de las variables "low" y "high" (bajo y alto), que se obtiene en el paso 570e, es comparativamente pequeño, se ejecutará una gran cantidad de pasos de renormalización de intervalos para reescalar el intervalo hasta un tamaño "suficiente" (de tal modo que no se satisface ninguna de las condiciones de la evaluación de condiciones 570fa). En consecuencia, se usará un número comparativamente grande de bits de la corriente de bits para aumentar la precisión de la variable "valué" (valor). Si, por el contrario, el tamaño de intervalo obtenido en el paso 570e es comparativamente grande, sólo se necesitará un número más pequeño de repeticiones de los pasos de la normalización de intervalo 570fa y 570fb para renormalizar el intervalo entre los valores de las variables "low" y "high" (bajo y alto) hasta un tamaño "suficiente". En consecuencia, se usará solamente un número comparativamente pequeño de bits de la corriente de bits para aumentar la precisión de la variable "valué" (valor) y para preparar una decodificación de un próximo símbolo.
Para resumir lo anterior, si se decodifica un símbolo, que comprende una probabilidad comparativamente alta, y al que se asocia un intervalo grande por las entradas de la tabla de frecuencias acumulativas escogida, sólo se leerá una cantidad comparativamente pequeña de bits de la corriente de bits para permitir la decodificación de un símbolo subsiguiente. Por el contrario, si se decodifica un símbolo, que comprende una probabilidad comparativamente pequeña y al que se asocia un intervalo pequeño por las entradas de la tabla de frecuencias acumulativas escogida, se tomará un número comparativamente grande de bits de la corriente de bits para preparar una decodificación del próximo símbolo.
En consecuencia, las entradas de las tablas de frecuencias acumulativas reflejan las probabilidades de los diferentes símbolos y también reflejan una cantidad de bits necesaria para decodificar una secuencia de símbolos. Si se varía la tabla de frecuencias acumulativas en forma dependiente de un contexto, es decir, en forma dependiente de símbolos previamente decodificados (o valores espectrales), por ejemplo, seleccionando tablas de frecuencias acumulativas diferentes en forma dependiente del contexto, se pueden explotar dependencias estocásticas entre los diferentes símbolos, lo que permite una codificación eficaz de la velocidad de transmisión de bits particular de los símbolos subsiguientes (o adyacentes).
Para resumir lo anterior, la función "arith_decode()", que ha sido descripta con referencia a la Fig. 5g, es pedida con la tabla de frecuencias acumulativas "arith_cf_m[pk¡][]", correspondiente al índice "pki" retornado por la función "„arith_get_pk()" para determinar el valor del plano de bits más significativo m (que puede ser ajustado al valor de símbolo representado por la variable de retorno "symbol" (símbolo)). 6.7 Mecanismo de escape A pesar de que el valor decodificado del plano de bits más significativo m (que es retornado como un valor de símbolo por la función "arith decode ()") es el símbolo de escape "ARITH_ESCAPE", se decodifica un valor del plano de bits más significativo m adicional y la variable "lev" es incrementada en 1. En consecuencia, se obtiene una información acerca del significado numérico del valor del plano de bits más significativo m así como de la cantidad de planos de bits menos significativos que se han de decodificar.
Si se decodifica un símbolo de escape "ARITH_ESCAPE", la variable de nivel "lev" es aumentada en 1. En consecuencia, el valor de estado que ingresa a la función "arith_get_pk" también se modifica en el hecho de que aumenta un valor representado por los bits superiores (bits 24 en adelante) para las próximas iteraciones del algoritmo 312ba. 6.8 Actualización contextual de acuerdo con la Fig. 5h Una vez que se ha decodificado completamente el valor espectral (es decir, se han añadido todos los planos de bits menos significativos, las tablas de contexto q y qs son actualizadas pidiendo la función "arith_update_context(a,i,lg))". A continuación, se explicarán detalles sobre la función "arith_update_context(a,i,lg)" con referencia a la Fig. 5h, que muestra una representación del pseudocódigo de programa de dicha función.
La función "arith_update_context()" recibe, como variable de ingreso, el coeficiente espectral cuantificado decodificado a, el índice i del valor espectral que se ha de decodificar (o del valor espectral decodificado) y la cantidad Ig de valores espectrales (o coeficientes) asociados con el marco de audio actual.
En un paso 580, se copia el valor (o coeficiente) espectral cuantificado actualmente decodificado a en la tabla de contextos o red de contextos q. En consecuencia, la entrada q[1][i] de la tabla de contextos q se ajusta a a. Asimismo, la variable "aO" es ajustada al valor de "a".
En un paso 582, se determina el valor de nivel q[1][i].l de la tabla de contextos q. Por defecto, el valor de nivel q[1][i].l de la tabla de contextos q se ajusta a cero. Sin embargo, si el valor absoluto del valor espectral codificado actualmente a es mayor que 4, se incrementa el valor de nivel q[1][i].l. Con cada incremento, la variable "a" es desplazada hacia la derecha en un bit. El incremento del valor de nivel q[1][i].l se repite hasta que el valor absoluto de la variable aO es inferior o igual a 4.
En un paso 584, se establece un valor contextual de 2 bits q[1][i].c de la tabla de contextos q. El valor contextual de 2 bits q[1][i].c es ajustado al valor de cero si el valor espectral actualmente decodificado a es igual a cero. Por el contrario, si el valor absoluto del valor espectral decodificado a es inferior o igual a 1 , el valor contextual de 2 bits q[1][i].c se ajusta a 1. Por el contrario, si el valor absoluto del valor espectral actualmente decodificado a es inferior o igual a 3, el valor contextual de 2 bits q[1][i].c se ajusta a 2. Por el contrario, es decir, si el valor absoluto del valor espectral actualmente decodificado a es mayor que 3, el valor contextual de 2 bits q[1][i].c se ajusta a 3. En consecuencia, el valor contextual de 2 bits q[1][i].c se obtiene por medio de una cuantificación grosso modo del coeficiente espectral actualmente decodificado a.
En un paso posterior 586, que sólo es ejecutado si el índice i del valor espectral actualmente decodificado es igual a la cantidad Ig de coeficientes (valores espectrales) en el marco, es decir, si el último valor espectral del marco ha sido decodificado) y el modo núcleo es un modo núcleo de dominio de predicción lineal (indicado por "core_mode==1 "), se copian las entradas q[1]0] c en la tabla de contextos qs[k]. Se ejecuta la acción de copiado indicada con el número de referencia 586, de modo tal que se tiene en cuenta la cantidad Ig de valores espectrales en el marco actual para el copiado de las entradas q[1][j]-c a la tabla de contextos qs[k]. Además, la variable "previousjg" toma el valor 1024.
Alternativamente, sin embargo, las entradas q[1]U] c de la tabla de contextos q se copian en la tabla de contextos qs[j] si el índice i del coeficiente espectral actualmente decodificado alcanza el valor de Ig y el modo núcleo es un modo núcleo de dominio frecuencial (indicado por "core_mode==0").
En este caso, la variable "previousjg" es ajustada al mínimo entre el valor de 1024 y la cantidad Ig de valores espectrales en el marco. 6.9 Síntesis del proceso de decodificación A continuación, se explicará brevemente el proceso de decodificación. Para los detalles, se hace referencia al análisis anterior y también a las Figs. 3, 4 y 5a a 5i.
Los coeficientes espectrales cuantificados a son codificados de manera insonorizada y transmitidos, comenzando del coeficiente de frecuencia menor y progresando hasta el coeficiente de frecuencia más elevado.
Los coeficientes de la codificación de audio avanzada (AAC, por sus siglas en inglés) son almacenados en la red "x_ac_quant[g][win][sfb][bin]", y el orden de transmisión de las palabras de código de codificación insonorizada es tal que cuando estas son decodificadas en el orden recibido y almacenadas en la red, "bin" es el índice de incrementación más rápida y g es el índice de incrementación menos rápida. El índice bin designa bins de frecuencias. El índice "sfb" designa bandas de factores de escala. El índice "win" designa ventanas. El índice "g" designa marcos de audio.
Los coeficientes de la excitación codificada por la transformada se almacenan directamente en una red "x_tcx_invquant[win][bin]", y el orden de la transmisión de las palabras de código de codificación insonorizada es tal que cuando son decodificadas en el orden recibido y almacenadas en la red, "bin" es el índice de incrementación más rápida y "win" es índice de incrementación menos rápida.
En primer lugar se hace un mapeo entre el contexto pasado guardado almacenado en la tabla o red de contextos "qs" y el contexto del marco actual q (almacenado en la tabla o red de contextos q). El contexto pasado "qs" es almacenado a 2 bits por línea de frecuencia (o por bin de frecuencia).
El mapeo entre el contexto pasado guardado almacenado en la tabla de contextos "qs" y el contexto del marco actual almacenado en la tabla de contextos "q" es ejecutado usando la función "arith_map_context()", una representación de pseudocódigo de programa que se ilustra en la Fig. 5a.
El decodificador insonorizado da salida a coeficientes espectrales cuantificados identificados "a".
Al principio, se calcula el estado del contexto sobre la base de los coeficientes espectrales previamente decodificados que rodean a los coeficientes espectrales cuantificados que se han de decodificar. El estado del contexto s corresponde a los 24 primeros bits del valor retornado por la función "arith_get_context()". Los bits que se encuentran más allá del bit 24 del valor retornado corresponden al nivel de plano de bits predicho levO. La variable„lev" es inicializada a levO. En las Figs. 5b y 5c se muestra una representación del pseudocódigo de programa de la función "arith_get_context".
Una vez conocidos el estado s y el nivel predicho JevO", se decodifica el plano discreto de 2 bits más significativos m usando la función "arith_decode()", alimentada con la tabla de frecuencias acumulativas apropiada que corresponde al modelo de probabilidades correspondiente al estado contextual.
La correspondencia es realizada por la función "arith_get_pk()".
En la Fig. 5e se muestra una representación de pseudocódigo de programa de la función "arith_get_pk()".
En la Fig. 5f se muestra un pseudocódigo de programa de otra función "get_pk" que puede tomar el lugar de la función "arith_get_pk()".En la Fig. 5d se muestra un pseudocódigo de programa de otra función "get_pk", que puede tomar el lugar de la función "arith_get_pk()".
El valor m es decodificado usando la función "arith_decode()" pedida con la tabla de frecuencias acumulativas, "arith_cf_m[pki]Q, donde„pki" corresponde al índice retornado por la función "arith_get_pk()" (o, alternativamente, por la función "get_pk()").
El codificador aritmético es una implementación de números enteros que usa el método de generación de marcas con escalamiento (véase, p. ej., K.
Sayood "Introduction to Data Compression", Tercera edición, 2006, Elsevier Inc.). El pseudocódigo C que se muestra en la Fig. 5g describe el algoritmo usado.
Cuando el valor decodificado m es el símbolo de escape, "ARITH_ESCAPE", se decodifica otro valor m y se incrementa la variable„lev" en 1. Cuando el valor m ya no es el símbolo de escape, "ARITH_ESCAPE", el resto de los planos de bits es decodificado desde el nivel más significativo al menos significativo, pidiendo „lev" veces la función "arith_decode()" con la tabla de frecuencias acumulativas "arith_cf_rQ". Dicha tabla de frecuencias acumulativas "arith_cf_rQ puede describir, por ejemplo, una distribución par de probabilidades.
Los planos de bits decodificados r permiten el refinamiento del valor previamente decodificado m de la siguiente manera: a = m; for (i=0; ¡<lev;i++) { r = arith_decode (arith_cf_r,2); a = (a«1 ) | (r&1 ); } Una vez que el coeficiente espectral cuantificado a ha sido completamente decodificado, las tablas de contextos q, o el contexto almacenado qs, es actualizado por la función "arith_update_context()", para los próximos coeficientes espectrales cuantificados que se han de decodificar.
En la Fig. 5h se muestra una representación del pseudocódigo de programa de la función "arith_update_context()".
Además, en la Fig. 5i se muestra una leyenda de las definiciones. 7. Tablas de mapeo En una forma de realización de acuerdo con la invención, se usan tablas "ari_s_hash" y "ari_gs_hash" y "ari_cf_m" que son especialmente ventajosas para la ejecución de la función "get_pk", que ha sido analizada con referencia a la Fig. 5d, o para la ejecución de la función "arith_get_pk", que ha sido analizada con referencia a la 5e, o para la ejecución de la función "get_pk", que ha sido analizada con referencia a la Fig. 5f, y para la ejecución de la función "arith_decode" que ha sido analizada con referencia a la Fig. 5g. 7.1 . Tabla "ari s hash[3871" de acuerdo con la Fig. 17 En la tabla de la Fig. 17 se muestra un contenido de una implementación especialmente ventajosa de la tabla "ari_s_hash", que es utilizada por la función "get_pk" que fue descripta con referencia a la Fig. 5d. Debe tenerse en cuenta que la tabla de la Fig. 17 enumera las 387 entradas de la tabla "ari_s_hash[387]". También debe observarse que la representación de tabla de la Fig. 17 muestra los elementos en el orden de los índices de elementos, de modo tal que el primer valor "0x00000200" corresponde a una entrada de tabla "ari_s_hash[0]" que tiene índice de elementos (o índice de tablas) 0, de tal modo que el último valor "0x03D0713D" corresponde a una entrada de tabla "ari_s_hash[386]" que tiene índice de elementos o índice de tablas 386. En este punto debe hacerse notar asimismo que "Ox" indica que las entradas de tabla de la tabla "ari_s_hash" están representadas en un formato hexadecimal. Por otra parte, las entradas de tabla de la tabla "ari_s_hash" de acuerdo con la Fig. 17 están distribuidas en un orden numérico para permitir la ejecución de la primera evaluación de tabla 540 de la función "get_pk".
Debería hacerse notar asimismo que los 24 bits más significativos de las entradas de tabla de la tabla "ari_s_hash" representan valores de estado, mientras que los 8 bits menos significativos representan valores del índice de normas de mapeo pki.
Por consiguiente, las entradas de la tabla "ari_s_hash" describen un mapeo de aciertos directos "direct hit" de un valor de estado a un valor de índice de normas de mapeo "pki". 7.2 Tabla "ari gs hash" de acuerdo con la Fiq. 18 En la tabla de la Fig. 18 se muestra un contenido de una forma de realización especialmente ventajosa de la tabla "ari_gs_hash". En este punto debe hacerse notar que la tabla de tabla 18 enumera las entradas de la tabla "ari_gs_hash". Dichas entradas están referidas por un índice de entradas unidimensionales del tipo de números enteros (también denominado "índice de elementos" o "índice de red" o "índice de tablas"), que está designado, por ejemplo, con "i". Debe tenerse en cuenta que la tabla "ari_gs_hash" que comprende un total de 225 entradas es perfectamente adecuada para su uso por la segunda evaluación de tabla 544 de la función "get_pk" descripta en la Fig. 5d.
Debe tenerse en cuenta que las entradas de la tabla "ari_gs_hash" están enumeradas en orden ascendente del índice de la tabla i para valores de índice de tablas i entre cero y 224. El término "Ox" indica que las entradas de tabla están descriptas en un formato hexadecimal. En consecuencia, la primera entrada de tabla "0X00000401 " corresponde a la entrada de tabla "ari_gs_hash[0]" que tiene índice de tabla O y la última entrada de tabla "0Xffffff3f corresponde a la entrada de tabla "ari_gs_hash[224]" que tiene índice de tabla 224.
También debe observarse que las entradas de tabla están ordenadas en forma numéricamente ascendente, de tal modo que las entradas de tabla están perfectamente adecuadas para la segunda evaluación de tabla 544 de la función "get_pk". Los 24 bits más significativos de las entradas de tabla de la tabla "ari_gs_hash" describen límites entre rangos de valores de estado, y los 8 bits menos significativos de las entradas describen valores del índice de normas de mapeo "pki" asociados con los rangos de valores de estado definidos por los 24 bits más significativos. 7.3 Tabla "ari cf m" de acuerdo con la Fig. 19 La Fig. 19 muestra un conjunto de 64 tablas de frecuencias acumulativas "ari_cf_m[pki][9]", una de las cuales es seleccionada por un codificador de audio 100, 700, o un decodificador de audio 200, 800, por ejemplo, para la ejecución de la función "arith_decode", es decir, para la decodificación del valor del plano de bits más significativo. La tabla seleccionada de las 64 tablas de frecuencias acumulativas de la Fig. 19 toma la función de la tabla "cum_freq[|" en la ejecución de la función "arith_decode()".
Según puede observarse en la Fig. 19, cada línea representa una tabla de frecuencias acumulativas que tiene 9 entradas. Por ejemplo, una primera línea 1910 representa las 9 entradas de una tabla de frecuencias acumulativas para "pki=0". Una segunda línea 1912 representa las 9 entradas de una tabla de frecuencias acumulativas para "pki=1 ". Por último, una línea 64, 1964, representa las 9 entradas de una tabla de frecuencias acumulativas para "pki=63". Por consiguiente, la Fig. 19 representa efectivamente las 64 tablas de frecuencias acumulativas diferentes para "pki=0" hasta una "pki=63", donde cada una de las 64 tablas de frecuencias acumulativas está representada por una única línea y donde cada una de dichas tablas de frecuencias acumulativas comprende 9 entradas.
En una línea (p. ej. una línea 1910 o una línea 1912 o una línea 1964), el valor que se encuentra más a la izquierda describe una primera entrada de una tabla de frecuencias acumulativas y el valor que se encuentra más a la derecha describe la última entrada de una tabla de frecuencias acumulativas.
En consecuencia, cada línea 1910, 1912, 1964 de la representación de tablas de la Fig. 19 representa las entradas de una tabla de frecuencias acumulativas para ser usada por la función "arith decode" de acuerdo con la Fig. 5g. La variable de ingresos "cum_freqQ" de la función "arith_decode" describe cuál de las 64 tablas de frecuencias acumulativas (representadas por líneas individuales de 9 entradas) de la tabla "ari_cf_m" debería emplearse para la decodificación de los coeficientes espectrales actuales. 7.4 Tabla "ari s hash" de acuerdo con la Fig. 20 La Fig. 20 muestra una alternativa para la tabla "ari_s_hash", que puede usarse en combinación con la función alternativa "arith_get_pk()" o "get_pk()" de acuerdo con la Fig. 5e o 5f.
La tabla "ari_s_hash" de acuerdo con la Fig. 20 comprende 386 entradas, que están enumeradas en la Fig. 20 en un orden ascendente del índice de tabla. Por consiguiente, el primer valor de tabla "0x0090D52E" corresponde a la entrada en la tabla "ari_s_hash[0]" que tiene índice de tabla 0, y la última entrada de tabla "0x03D0513C" corresponde a la entrada en la tabla "arl_s_hash[386]" que tiene índice de tabla 386.
"Ox" indica que las entradas de tabla están representadas en una forma hexadecimal. Los 24 bits más significativos de las entradas de la tabla "ari_s_hash" describen estados significativos, y los 8 bits menos significativos de las entradas de la tabla "ari_s_hash" describen valores del índice de normas de mapeo.
En consecuencia, las entradas de la tabla "ari_s_hash" describen un mapeo de estados significativos a valores del índice de normas de mapeo "pki". 8. Evaluación v ventajas del desempeño Las formas de realización de acuerdo con la invención usan funciones (o algoritmos) actualizadas y un conjunto actualizado de tablas, tal como ya se analizó antes, para obtener una correlación mejorada entre la complejidad de la computación, los requerimientos de memoria y la eficacia de codificación.
En términos generales, las formas de realización de acuerdo con la invención crean una codificación espectral insonorizada mejorada.
La presente descripción describe formas de realización para CE sobre codificación espectral insonorizada mejorada de coeficientes espectrales. El esquema propuesto se basa en el esquema de codificación aritmética basado en el contexto "original", como se describe en la propuesta de trabajo 4 del estándar de propuestas del USAC, pero reduce significativamente los requerimientos de memoria (RAM, ROM), a la vez que se mantiene un desempeño de la codificación insonorizada. Se demostró que es posible una transcodificación sin pérdidas de la WD3 (es decir, de la salida de un codificador de audio que provee una corriente de bits de acuerdo con la propuesta de trabajo 3 del estándar de propuestas del USAC). El esquema descripto en la presente, en general, es escalable, lo que permite correlaciones alternativas adicionales entre los requerimientos de memoria y el desempeño de codificación. Las formas de realización de acuerdo con la invención tienen como objetivo reemplazar el esquema de codificación espectral insonorizada tal como se usa en la propuesta de trabajo 4 del estándar de propuestas del USAC.
El esquema de codificación aritmética descripto en la presente se basa en el esquema del modelo de referencia 0 (RMO) o la propuesta de trabajo 4 (WD4) del estándar de propuestas del USAC. Los coeficientes espectrales previos en frecuencia o en tiempo forman un modelo de contexto. Este contexto se usa para la selección de tablas de frecuencias acumulativas para el codificador (codificador o decodificador) aritmético. Comparado con la forma de realización de acuerdo con la WD4, el modelado de contexto es mejor y las tablas que contienen las probabilidades de símbolos fueron restringidas. La cantidad de modelos de probabilidades diferentes aumentó de 32 a 64.
Las formas de realización de acuerdo con la invención reducen el tamaño de las tablas (demanda de datos ROM) a 900 palabras de 32 bits o 3600 bytes de longitud. Por el contrario, las formas de realización de acuerdo con la WD4 del estándar de propuestas del USAC exigen 16894,5 palabras o 76578 bytes. La demanda estática RAM se reduce, en algunas formas de realización de acuerdo con la invención, de 666 palabras (2664 bytes) a 72 (288 bytes) por canal codificador de núcleo. Al mismo tiempo, preserva completamente el desempeño de la codificación e incluso puede alcanzar una ganancia de aproximadamente 1 ,04% a 1 ,39%, en comparación con la velocidad general de información en todos y cada uno de los 9 puntos operativos. Todas las corrientes de bits de la propuesta de trabajo 3 (WD3) pueden transcodificarse sin sufrir pérdidas y sin afectar las restricciones del depósito de bits.
El esquema propuesto de acuerdo con las formas de realización de la invención es escalable: son posibles correlaciones flexibles entre la demanda de memoria y el desempeño de la codificación. Aumentando el tamaño de las tablas a la codificación, se puede incrementar asimismo la ganancia.
A continuación, se presenta un breve análisis del concepto de codificación de acuerdo con la WD4 del estándar de propuestas del USAC para facilitar la comprensión de las ventajas del concepto descripto en la presente. En la WD4 del USAC, se usa un esquema de codificación aritmética basado en contextos para la codificación insonorizada de coeficientes espectrales cuantificados. Como contexto, se usan los coeficientes espectrales decodificados, que son previos en frecuencia y tiempo. De acuerdo con la WD4, se usa como contexto un número máximo de 16 coeficientes espectrales, 12 de los cuales son previos en tiempo. Ambos, los coeficientes espectrales usados para el contexto y que se han de decodificar, están agrupados en 4 tupias (es decir, cuatro coeficientes espectrales próximos en frecuencia, ver Fig. 10a). El contexto se reduce y se mapea en una tabla de frecuencias acumulativas, que entonces se usa para decodificar las próximas 4 tupias de coeficientes espectrales.
Para el esquema de codificación insonorizada WD4 completo, se requiere una demanda de memoria (ROM) de 16894,5 palabras (67578 bytes). Además, se necesitan 666 palabras (2664 bytes) de ROM estática por canal de codificador de núcleo para almacenar los estados para el próximo marco.
La representación de tablas de la Fig. 11 a describe las tablas como se utilizan en el esquema de codificación aritmética WD4 del USAC.
Se calcula que la demanda total de memoria de un decodificador completo de acuerdo con la WD4 del USAC es de 37000 palabras (148000 bytes) para la ROM de datos sin un código de programa y de 10000 a 17000 palabras para la RAM estática. Se puede ver claramente que las tablas de codificador insonorizado consumen aproximadamente 45% de la demanda total de ROM de datos. La tabla individual más grande consume de por sí 4096 palabras (16384 bytes).
Se ha descubierto que tanto el tamaño de la combinación de todas las tablas como las tablas individuales grandes exceden los tamaños de almacenamiento típicos provistos por los chips de puntos fijos para los dispositivos portátiles de bajo presupuesto, que están en un rango típico de 8-32 kByte (p. ej. ARM9e, TIC64xx, etc.). Esto significa que el conjunto de tablas podría no ser almacenado en la RAM de datos rápidos, que permite un acceso aleatorio rápido a los datos. Esto provoca que el proceso de decodificación completo se desacelere.
A continuación, se describirá brevemente el nuevo esquema propuesto. Para resolver los problemas mencionados anteriormente, se propone un esquema de codificación insonorizada mejorado para reemplazar el esquema de la WD4 del estándar de propuestas del USAC. Como esquema de codificación aritmética basado en contextos, se basa en el esquema de la WD4 del. estándar de propuestas del USAC, pero tiene las características de un esquema modificado para la derivación de tablas de frecuencias acumulativas del contexto. Más aún, se ejecuta una derivación de contexto y una codificación de símbolos según la granularidad de un único coeficiente espectral (opuesto a 4 tupias, como en la WD4 del estándar de propuestas del USAC). En total, se usan 7 coeficientes espectrales para el contexto (por lo menos en algunos casos). Mediante la reducción del mapeo, se selecciona uno de un total de 64 modelos de probabilidades o tablas de frecuencia acumulativas (en la WD4: 32).
La Fig. 10b muestra una representación gráfica de un contexto para el cálculo de estados, como se usa en el esquema propuesto (donde un contexto usado para la detección de la región cero no aparece ilustrado en la Fig. 10b).
A continuación, se presenta una breve reseña respecto de la reducción de la demanda de memoria, que se puede conseguir usando el esquema de codificación propuesto. El nuevo esquema propuesto exhibe una demanda total ROM de 900 palabras (3600 bytes) (ver la tabla de la Fig. 11 b que describe las tablas como se usan en el esquema de codificación propuesto).
En comparación con la demanda ROM del esquema de codificación insonorizada en la WD4 del estándar de propuestas del USAC, la demanda ROM se reduce en 15994,5 palabras (64978 bytes) (ver también la Fig. 12a, que muestra una representación gráfica de la demanda ROM del esquema de codificación insonorizada propuesto y del esquema de codificación insonorizada en la WD4 del estándar de propuestas del USAC). Esto reduce la demanda ROM total de un decodificador ÜSAC completo de aproximadamente 37000 palabras a aproximadamente 21000 palabras, o en más del 43% (ver la Fig. 12b, que muestra una representación gráfica de una demanda ROM total de datos del decodificador USAC de acuerdo con la WD4 del estándar de propuestas del USAC, de acuerdo, además, con la propuesta presentada aquí).
Todavía más, se reduce también la cantidad de información necesaria para la derivación contextual en el próximo marco (RAM estática). De acuerdo con la WD4, el conjunto de coeficientes completo (máximo 1152) con una resolución de 16 bits normalmente además de un índice de grupos por 4 tupias de 10 bits de resolución necesarios para almacenar, lo que totaliza hasta 666 palabras (2664 bytes) por canal de codificador de núcleo (decodificador completo de la WD4 del USAC: aproximadamente 10000 a 17000 palabras).
El nuevo esquema, que se usa en las formas de realización de acuerdo con la invención, reduce la información persistente a sólo 2 bits por coeficiente espectral, lo que totaliza hasta 72 palabras (288 bytes) en total por canal de codificador de núcleo. La demanda de memoria estática puede reducirse en 594 palabras (2376 bytes).
A continuación, se describirán algunos detalles sobre un posible aumento de la eficacia de codificación. La eficacia de codificación de las formas de realización de acuerdo con la nueva propuesta se comparó con las corrientes de bits de acuerdo con la WD3 del estándar de propuestas del USAC como calidad de referencia. La comparación se realizó por medio de un transcodificador, basado en un decodificador de software de referencia. Respecto de los detalles relacionados con la comparación entre la codificación insonorizada de acuerdo con la WD3 del estándar de propuestas del USAC y el esquema de codificación propuesto, se hace referencia a la Fig. 9, que muestra una representación esquemática de una distribución de prueba.
Aunque la demanda de memoria se reduce drásticamente en las formas de realización de acuerdo con la invención cuando se compara con las formas de realización de acuerdo con la WD3 o WD4 del estándar de propuestas del USAC, la eficacia de codificación no sólo se mantiene sino que aumenta ligeramente. La eficacia de codificación aumenta en promedio en un 1 ,04% a 1 ,39%. Para ver detalles, se hace referencia a la tabla de la Fig. 13a, que muestra una representación en forma de tabla de las velocidades promedio de transmisión de bits producida por el Codificador USAC usando el codificador aritmético de la propuesta de trabajo y un codificador de audio (p. ej., Codificador de audio USAC) de acuerdo con una forma de realización de la invención.
Midiendo el nivel de carga del depósito de bits, se demostró que la codificación insonorizada propuesta puede transcodificar sin pérdidas la corriente de bits de la WD3 para cada punto operativo. Con respecto a los detalles, se hace referencia a la tabla de la Fig. 13b que muestra una representación en forma de tabla de un control de depósito de bits para un codificador de audio de acuerdo con la WD3 del USAC y un codificador de audio de acuerdo con una forma de realización de la invención.
Los detalles sobre las velocidades promedio de transmisión de bits por modo operativo, las velocidades mínimas, máximas y promedio de transmisión de bits sobre la base de un marco y un caso mejor y peor de desempeño sobre la base de un marco se pueden consultar en las tablas de las Figs. 14, 15, y 16, donde la tabla de la Fig. 14 muestra una representación en forma de tabla de las velocidades promedio de transmisión de bits para un codificador de audio de acuerdo con la WD3 del USAC y para un codificador de audio de acuerdo con una forma de realización de la invención, donde la tabla de la Fig. 15 muestra una representación en forma de tabla de las velocidades mínimas, máximas y promedio de transmisión de bits de un codificador de audio USAC sobre la base de un marco, y donde la tabla de la Fig. 16 muestra una representación en forma de tabla de casos mejores y peores sobre la base de un marco.
Además, debe tenerse en cuenta que las formas de realización de acuerdo con la presente invención proveen una buena escalabilidad. Adaptando el tamaño de tabla, se puede ajustar una correlación entre los requerimientos de memoria, la complejidad computacional y la eficacia de codificación de acuerdo con los requerimientos. 9. Sintaxis de la corriente de bits 9.1. Cargas útiles del codificador espectral insonorizado A continuación, se explicarán algunos detalles sobre las cargas útiles del codificador espectral insonorizado. En algunas formas de realización, hay una pluralidad de diferentes modos de codificación, como por ejemplo, uno que recibe el nombre de dominio de predicción lineal, "modo de codificación" y un modo de codificación de "dominio frecuencial". En el modo de codificación llamado dominio de predicción lineal, se realiza un perfilado de ruidos sobre la base de un análisis de predicción lineal de la señal de audio, y se codifica una señal de perfilado de ruidos en el dominio frecuencial. En el modo de dominio frecuencial, se ejecuta un perfilado de ruidos sobre la base de un análisis psicoacústico y se codifica una versión de perfilado de ruidos del contenido de audio en el dominio frecuencial.
Los coeficientes espectrales tanto de una señal codificada por "dominio de predicción lineal" como de una señal codificada por "dominio frecuencial" son cuantificados por escala y luego codificados en forma insonorizada por una codificación aritmética que depende adaptativamente del contexto. Los coeficientes cuantificados se transmiten de la frecuencia más baja a la frecuencia más alta. Cada coeficiente cuantificado individual se divide en el plano discreto de 2 bits más significativos m, y el resto de los planos de bits menos significativos r. El valor m es codificado de acuerdo con el entorno de los coeficientes. El resto de los planos de bits menos significativos r son codificados por entropía, sin considerar el contexto. Los valores m y r forman los símbolos del codificador aritmético.
En la presente se describe un procedimiento de decodificación aritmética en detalle. 9.2. Elementos de sintaxis A continuación, se describirá la sintaxis de corriente de bits de una corriente de bits que porta la información espectral aritméticamente codificada tomando como referencia las Figs. 6a a 6h.
La Fig. 6a muestra una representación sintáctica del denominado bloque de datos crudos del USAC ("usac_raw_data_block()").
El bloque de datos crudos del USAC comprende uno o varios elementos simples de canal ("single_channel_element()") y/o uno o varios elementos pares de canal ("channel_pair_element()").
Tomando como referencia ahora a la Fig. 6b, se describe la sintaxis de un elemento simple de canal. El elemento simple de canal comprende una corriente de .canales de dominio de predicción lineal ("lpd_channel_stream ()") o una corriente de canal de dominio frecuencial ("fd_channel_stream ()") en forma dependiente del modo núcleo.
La Fig. 6c muestra una representación sintáctica de un elemento par de canal. Un elemento par de canal comprende información de modo núcleo ("core_mode0", "core_mode1"). Además, el elemento par de canal puede comprender una información de configuración "ics_info()". Adicionalmente, según la información de modo núcleo, el elemento par de canal comprende una corriente de canales de dominio de predicción lineal o una corriente de canales de dominio frecuencial asociada con uno primero de los canales, y el elemento par de canal también comprende una corriente de canales de dominio de predicción lineal o una corriente de canales de dominio frecuencial asociada con uno segundo de los canales.
La información de configuración "ics_info()", de la cual se ilustra una representación sintáctica en la Fig. 6d, comprende una pluralidad de diferentes ítems de información de configuración, que no son de particular relevancia para la presente invención.
Una corriente de canales de dominio frecuencial ("fd_channel_stream ()"), de la cual se ¡lustra una representación sintáctica en la Fig. 6e, comprende una información de ganancia ("global_gain") y una información de configuración ("ics_info ()"). Además, la corriente de canales de dominio frecuencial comprende datos de factor de escala ("scale_factor_data ()"), que describen factores de escala usados para escalar los valores espectrales de diferentes bandas de factor de escala, y que son aplicados, por ejemplo, por el escalador 150 y el reescalador 240. La corriente de canales de dominio frecuencial también comprende datos espectrales codificados aritméticamente ("ac_spectral_data ()"), que representan valores espectrales aritméticamente codificados.
Los datos espectrales codificados aritméticamente ("ac_spectral_data()"), de los cuales se muestra una representación sintáctica en la Fig. 6f, comprenden una bandera opcional de reiniciación aritmética ("arith_reset_flag"), que se usa para reiniciar de manera selectiva el contexto, como se describió anteriormente. Además, los datos espectrales codificados aritméticamente comprenden una pluralidad de bloques de datos aritméticos ("arith data"), que portan los valores espectrales codificados aritméticamente. La estructura de los bloques de datos aritméticamente codificados depende de la cantidad de bandas de frecuencia (representas por la variable "num_bands") y también del estado de la bandera de reiriiciación aritmética, como será analizado a continuación.
La estructura del bloque de datos aritméticamente codificados será descripta con referencia a la Fig. 6g, que muestra una representación sintáctica de dichos bloques de datos aritméticamente codificados. La representación de los datos dentro del bloque de datos aritméticamente codificados depende de la cantidad Ig de valores espectrales que han de ser codificados, el status de la bandera de reiniciación aritmética y también del contexto, es decir, los valores espectrales previamente codificados.
El contexto para codificar el conjunto actual de valores espectrales es determinado de acuerdo con el algoritmo de determinación de contextos ilustrado con el número de referencia 660. Los detalles respecto del algoritmo de determinación de contextos han sido analizados más arriba con referencia a la Fig. 5a. El bloque de datos aritméticamente codificados comprende Ig conjuntos de palabras de código, donde cada conjunto de palabras de código representa un valor espectral. Un conjunto de palabras de código comprende una palabra de código aritmético "acod m [pki][m]" que representa un valor del plano de bits más significativos m del valor espectral que usa entre 1 y 20 bits. Además, el conjunto de palabras de código comprende una o varias palabras de código "acod_r[r]" si el valor espectral requiere más planos de bits que el plano de bits más significativos para una correcta representación. La palabra de código "acod_r [r]" representa un plano de bits menos significativos que usa entre 1 y 20 bits.
Sin embargo, si son necesarios uno o varios planos de bits menos significativos (además del plano de bits más significativos) para una representación adecuada del valor espectral, esto es señalado por una o varias palabras de código de escape aritmético ("ARITH_ESCAPE"). Por consiguiente, se puede decir en general que para un valor espectral, se determina cuántos planos de bits (el plano de bits más significativos y, posiblemente, uno o varios planos adicionales de bits menos significativos) se necesitan. Si son necesarios uno o varios planos de bits menos significativos, esto es señalado por una o varias palabras de código de escape aritmético "acod_m [pki][ARITH_ESCAPE]", que se codifican de acuerdo con una tabla de frecuencias acumulativas actualmente escogida, de la cual la variable pki proporciona un índice de tablas de frecuencias acumulativas. Además, el contexto es adaptado, según puede observarse en los números de referencia 664, 662, si se incluyen una o varias palabras de código de escape aritmético en la corriente de bits. Luego de las una o varias palabras de código de escape aritmético, se incluye una palabra de código aritmético "acod_m [pki][m]" en la corriente de bits, indicado con el número de referencia 663, donde pki designa el índice de modelos de probabilidades actualmente válidos (tomando en cuenta la adaptación del contexto causada por la inclusión de las palabras de código de escape aritmético), y donde m designa el valor del plano de bits más significativo del valor espectral a codificar o decodificar.
Como se analizó anteriormente, la presencia de algún plano de bits menos significativos da como resultado la presencia de una o varias palabras de código "acod_r [r]", cada una de las cuales representa un bit del plano de bits menos significativos. Las una o varias palabras de código "acod_r[r]" están codificadas de acuerdo con una tabla de frecuencias acumulativas correspondiente, que es constante e independiente del contexto.
Además, debe tenerse en cuenta que el contexto es actualizado después de la codificación de cada valor espectral, indicado con el número de referencia 668, de modo tal que el contexto normalmente es diferente para codificar dos valores espectrales consecutivos.
La Fig. 6h muestra una leyenda de definiciones y elementos ayudantes que definen la sintaxis del bloque de datos aritméticamente codificados.
Para resumir lo anterior, se ha descripto un formato de corriente de bits, que puede ser provisto por el codificador de audio 100, y que puede ser evaluado por el decodificador de audio 200. La corriente de bits de los valores espectrales aritméticamente codificados está codificada de tal modo que se ajusta al algoritmo de decodificación analizado más arriba.
Además, debe observarse en general que la codificación es la operación inversa de la decodificación, de modo tal que se puede asumir en general que el codificador ejecuta una búsqueda tabular empleando las tablas ya analizadas, que es aproximadamente inversa a la búsqueda tabular ejecutada por el decodificador. En general, se puede decir que el experto en la técnica que conoce el algoritmo de decodificación y/o la sintaxis deseada de corriente de bits podrá diseñar sin problemas un codificador aritmético, que provee los datos definidos en la sintaxis de la corriente de bits y requerida por el decodificador aritmético. 10. Formas de realización adicionales de acuerdo con las Figs. 21 y 22 A continuación, se describirán algunas formas de realización adicionales simplificadas de acuerdo con la invención.
La Fig. 21 muestra un diagrama esquemático en bloque de un codificador de audio 2100, de acuerdo con una forma de realización de la invención. El codificador de audio 2100 tiene una configuración que le permite recibir una información de audio entrante 21 10 y proveer, sobre esta base, una información de audio codificada 21 12. El codificador de audio 2100 comprende un convertidor de dominio temporal a dominio frecuencial compactador de energía 2120, que tiene una configuración que le permite recibir una representación de dominio temporal 2122 de la información de audio entrante 21 10, y proveer, sobre esta base, una representación de audio de dominio frecuencial 2124, de modo tal que la representación de audio de dominio frecuencial comprende un conjunto de valores espectrales (por ejemplo, valores espectrales a). El codificador de señales de audio 2100 comprende además un codificador aritmético 2130, que tiene una configuración que le permite codificar valores espectrales 2124, o una versión preprocesada de estos, usando una palabra de código de longitud variable. El codificador aritmético 2130 tiene una configuración que le permite mapear un valor espectral, o un valor de un plano de bits más significativos de un valor espectral, a un valor de código (por ejemplo, un valor de código que representa la palabra de código de longitud variable).
El codificador aritmético 2130 comprende una selección de normas de mapeo 2132 y una determinación de valores de contexto 2136. El codificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor espectral 2124, o de un plano de bits más significativos de un valor espectral 2124, a un valor de código (que puede representar una palabra de código de longitud variable) de manera dependiente de un valor contextual actual numérico que describe un estado contextual. El decodificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico 2134, que se usa para la selección de normas de mapeo 2132, de manera dependiente de una pluralidad de valores espectrales previamente codificados y también de manera dependiente de que un valor espectral que ha de ser codificado esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada. En consecuencia, el mapeo 2131 está adaptado a las características específicas de las diferentes regiones frecuenciales.
La Fig. 22 muestra un diagrama esquemático en bloque de un decodificador de señales de audio 2200 de acuerdo con otra forma de realización de la invención. El decodificador de señales de audio 2200 tiene una configuración que le permite recibir una información de audio codificada 2210 y proveer, sobre esta base, una información de audio decodificada 2212. El decodificador de señales de audio 2200 comprende un decodificador aritmético 2220, que tiene una configuración que le permite recibir una representación aritméticamente codificada 2222 de los valores espectrales y proveer, sobre esta base, una pluralidad de valores espectrales decodificados 2224 (por ejemplo, valores espectrales decodificados a). El decodificador de señales de audio 2200 comprende además un convertidor de dominio frecuencial a dominio temporal 2230, que tiene una configuración que le permite recibir los valores espectrales decodificados 2224 y proveer una representación de audio de dominio temporal que usa los valores espectrales decodificados, para obtener la información de audio decodificada 2212.
El decodificador aritmético 2220 comprende un mapeo 2225, que se usa para mapear un valor de código (por ejemplo, un valor de código extraído de una corriente de bits que representa la información de audio codificada) a un código de símbolos (código de símbolos que puede describir, por ejemplo, un valor espectral decodificado o un plano de bits más significativos del valor espectral decodificado). El decodificador aritmético comprende además una selección de normas de mapeo 2226, que provee una información de selección de normas de mapeo 2227 para el mapeo 2225. El decodificador aritmético 2220 comprende además una determinación de valores de contexto 2228, que provee un valor contextual actual numérico 2229 a la selección de normas de mapeo 2226. El decodificador aritmético 2220 tiene una configuración que le permite seleccionar una norma de mapeo que describe un mapeo de un valor de código (por ejemplo, un valor de código extraído de una corriente de bits que representa la información de audio codificada) a un código de símbolos (por ejemplo, un valor numérico que representa el valor espectral decodificado o un valor numérico que representa un plano de bits más significativos del valor espectral decodificado) de manera dependiente de un estado contextual. El decodificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente decodificados y también de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
En consecuencia, se consideran diferentes características de regiones frecuenciales distintas en el mapeo 2225, que normalmente genera un aumento de la eficacia de codificación sin que aumente de manera relevante el esfuerzo computacional. 11. Alternativas de implementación Si bien se han descripto algunos aspectos del contexto de un aparato, está claro que estos aspectos también representan una descripción del método correspondiente, donde un bloque o dispositivo corresponde a un paso de método o una característica de un paso de método. De manera análoga, los aspectos descriptos en el contexto de un paso de método también representan una descripción de un bloque o ítem o característica correspondiente de un aparato específico. Algunos de los pasos del método, o todos, pueden ser ejecutados (o usados) por un aparato de hardware, como por ejemplo, un microprocesador, una computadora programable o un circuito electrónico. En algunas formas de realización, uno o varios de los pasos más importantes del método pueden ser ejecutados por un aparato de ese tipo.
La señal de audio codificada de la invención puede almacenarse en un medio de almacenamiento digital o puede ser transmitida por un medio de transmisión tal como un medio de transmisión inalámbrico o un medio de transmisión cableado tal como Internet.
Según los requerimientos de la implementación, se pueden implementar las formas de realización de la invención en hardware o en software. La implementación puede ser ejecutada usando un medio de almacenamiento digital, por ejemplo un disco flexible, un DVD, un Blue-Ray, un CD, una memoria ROM, ! una PROM, una EPROM, una EEPROM o una FLASH, que tiene señales de control para su lectura electrónica almacenadas en aquel, que cooperan (o pueden cooperar) con un sistema de computadora programable para que se lleve a cabo el respectivo método. Por lo tanto, el medio de almacenamiento digital puede ser leído por una computadora.
Algunas formas de realización de acuerdo con la invención comprenden un portador de datos que tiene señales de control de lectura electrónica, que pueden cooperar con un sistema de computadora programable, para que se lleve a cabo uno de los métodos descriptos en la presente.
En términos generales, las formas de realización de la presente invención pueden implementarse como un producto que consiste en un programa de computación con un código de programa, donde el código de programa resulta operativo para realizar uno de los métodos cuando se trabaja el producto que consiste en un programa de computación en una computadora. El código de programa puede almacenarse, por ejemplo, en un portador que puede ser leído por una máquina.
Otras formas de realización comprenden el programa de computación para ejecutar uno de los métodos descriptos en la presente, almacenado en un portador que puede ser leído por una máquina.
En otras palabras, una forma de realización del método de la invención es, por lo tanto, un programa de computación que tiene un código de programa para ejecutar uno de los métodos descriptos en la presente, cuando se trabaja el producto que consiste en un programa de computación en una computadora.
Otra forma de realización de los métodos de la invención es, por lo tanto, un portador de datos (o un medio de almacenamiento digital o un medio para que lea una computadora) que comprende, registrado en sí mismo, el programa de computación para ejecutar uno de los métodos descriptos en la presente.
Otra forma de realización del método de la invención es, por lo tanto, una corriente de datos o una secuencia de señales que representa el programa de computación para ejecutar uno de los métodos descriptos en la presente. La corriente de datos o la secuencia de señales pueden ser configuradas, por ejemplo, para ser transferidas mediante una conexión de comunicación de datos, por ejemplo vía Internet.
Otra forma de realización comprende un medio de procesamiento, por ejemplo una computadora, o un dispositivo lógico programable, configurado o adaptado para ejecutar uno de los métodos descriptos en la presente.
Otra forma de realización comprende una computadora que tiene instalado en sí el programa de computación para ejecutar uno de los métodos descriptos en la presente.
En algunas formas de realización, se puede usar un dispositivo lógico programable (por ejemplo una red de puertas programable por campo) para ejecutar algunas de las funcionalidades de los métodos descriptos en la presente, o todas ellas. En algunas formas de realización, una red de puertas programable por campo puede cooperar con un microprocesador para ejecutar uno de los métodos descriptos en la presente. En general, los métodos son ejecutados, preferiblemente, por algún aparato de hardware.
Las formas de realización antes descriptas son meramente ilustrativas para los principios de la presente invención. Se entiende que las modificaciones y variaciones de las modalidades y los detalles descriptos en la presente resultarán obvias a las personas expertas en la técnica. Por lo tanto, la intención es que sólo estén limitadas por el alcance de las reivindicaciones anexas a esta patente pero no por los detalles específicos presentados con el objetivo de describir y explicar las formas de realización de la presente.
Si bien lo anterior ha sido ilustrado y descripto con referencia a las formas de realización particulares precedentes, los expertos en la técnica comprenderán que se pueden llevar a la práctica formas y detalles sin apartarse del espíritu y alcance de la presente. Debe aclararse que los distintos cambios se pueden hacer para adaptar a las diferentes formas de realización sin apartarse del concepto más amplio divulgado en la presente y comprendido por las reivindicaciones que se adjuntan. 12. Conclusión A modo de conclusión, se puede hacer notar que las formas de realización de acuerdo con la invención crean un esquema mejorado de codificación espectral insonorizada. Las formas de realización de acuerdo con la nueva propuesta permiten una importante reducción de la demanda de memoria de 16894,5 palabras a 900 palabras (ROM) y de 666 palabras a 72 (RAM estática por canal de codificador de núcleo). Esto permite una reducción de la demanda de datos ROM del sistema completo en aproximadamente 43% en una forma de realización. Al mismo tiempo, el desempeño de la codificación no sólo se mantiene completamente, sino que incluso aumenta en promedio. Se ha demostrado que es posible una transcodificación sin pérdidas de la WD3 (o de una corriente de bits provista de acuerdo con la WD3 del estándar de propuestas del USAC). En consecuencia, se obtiene una forma de realización de acuerdo con la invención al adoptar la decodificación insonorizada descripta en la presente a la propuesta de trabajo del estándar de propuestas del USAC.
En síntesis, en una forma de realización, la nueva codificación insonorizada propuesta puede generar las modificaciones en la propuesta de trabajo MPEG del USAC con respecto a la sintaxis del elemento de la corriente de bits "arith_data()" ilustrado en la Fig. 6g, con respecto a las cargas útiles del codificador espectral insonorizado como se describió anteriormente e ilustrado en la Fig. 5h, con respecto a la codificación espectral insonorizada, como se describió anteriormente, con respecto al contexto para el cálculo de estados ¡lustrado en la Fig. 4, con respecto a las definiciones ilustradas en la Fig. 5i, con respecto al proceso de decodificación como se describió anteriormente con referencia a la Figs. 5a, 5b, 5c, 5e, 5g, 5h, y con respecto a las tablas ilustradas en las Figs. 17, 18, 20, y con respecto a la función "get_pk" ilustrada en la Fig. 5d. Alternativamente, sin embargo, se puede usar la tabla "ari_s_hash" de acuerdo con la Fig. 20 en lugar de la tabla "ari_s_hash" de la Fig. 17, y se puede usar la función "get_pk" de la Fig. 5f en lugar de la función "get_pk" de acuerdo con la Fig. 5d.

Claims (16)

REIVINDICACIONES Habiendo así especialmente descripto y determinado la naturaleza de la presente invención y la forma en que la misma ha de ser llevada a la práctica, se declara reivindicar como de propiedad y derecho exclusivo:
1. Un decodificador de audio (200; 800; 2200) para proveer una información de audio decodificada (212; 812; 2212) sobre la base de una información de audio codificada (210; 810; 2210), codificador de audio que comprende: un decodificador aritmético (230; 820; 2220) para proveer una pluralidad de valores espectrales decodificados (232; 822; 2224; a) sobre la base de una representación aritméticamente codificada (222; 821 ; 2222; acod_m[pki][m], acod_r[r]) de los valores espectrales; y un convertidor de dominio frecuencial a dominio temporal (260; 830; 2230) para proveer una representación de audio de dominio temporal que usa los valores espectrales decodificados (232; 822; 2224; a), para obtener la información de audio decodificada; donde el decodificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo (cum_freq, ari_cf_m[pki][9]) que describe un mapeo de un valor de código (acod_m[pki][m]; valor) a un código de símbolos (symbol) de manera dependiente de un estado contextual; donde el decodificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico (s) que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente decodificados (a) y también de manera dependiente de que un valor espectral (a) que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
2. El decodificador de audio de acuerdo con la reivindicación 1 , donde el decodificador aritmético tiene una configuración que le permite modificar selectivamente el valor contextual actual numérico (s) de manera dependiente de que el valor espectral (a) que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
3. El decodificador de audio de acuerdo con la reivindicación 1 o la reivindicación 2, donde el decodificador aritmético tiene una configuración que le permite determinar el valor contextual actual numérico (s) de modo tal que el valor contextual actual numérico (s) se basa en una combinación de una pluralidad de valores espectrales previamente decodificados, o en una combinación de una pluralidad de valores intermedios (cO, c1 , c2, c3, c4, c5, c6) derivados de una pluralidad de valores espectrales previamente decodificados (a), y de modo tal que el valor contextual actual numérico (s) aumenta en forma selectiva respecto de un valor obtenido sobre la base de una combinación de una pluralidad de valores espectrales previamente decodificados, o sobre la base de una combinación de una pluralidad de valores intermedios (cO, c1 , c2, c3, c4, c5, c6) derivados de una pluralidad de valores espectrales previamente decodificados, de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
4. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 3, donde el decodificador aritmético tiene una configuración que le permite distinguir entre por lo menos una primera región frecuencial y una segunda región frecuencial para determinar el valor contextual actual numérico (s), donde la primera región frecuencial comprende por lo menos 15% de los valores espectrales asociados con una porción temporal dada del contenido de audio, y donde la primera región frecuencial es una región de baja frecuencia y comprende un valor espectral asociado que tiene la frecuencia más baja.
5. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 4, donde el decodificador aritmético tiene una configuración que le permite distinguir entre por lo menos una primera región frecuencial y una segunda región frecuencial para determinar el valor contextual actual numérico (s), donde la segunda región frecuencial comprende por lo menos 15% de los valores espectrales asociados con una porción temporal dada del contenido de audio, y donde la segunda región frecuencial es una región de alta frecuencia y comprende un valor espectral asociado que tiene la frecuencia más alta.
6. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 5, donde el decodificador aritmético tiene una configuración que le permite distinguir por lo menos entre una primera región frecuencial, una segunda región frecuencial y una tercera región frecuencial, para determinar el valor contextual actual numérico (s) apoyándose en el hecho de determinar en cuál de las por lo menos tres regiones frecuenciales se encuentra el valor espectral que se ha de decodificar; y donde cada una de la primera región frecuencial, la segunda región frecuencial y la tercera región frecuencial comprende una pluralidad de valores espectrales asociados.
7. El decodificador de audio de acuerdo con la reivindicación 6, donde por lo menos un octavo de los valores espectrales de una porción temporal dada de la información de audio están asociados con la primera región frecuencial, y donde por lo menos un quinto de los valores espectrales de la porción temporal dada de la información de audio están asociados con la segunda región frecuencial, y donde por lo menos un cuarto de los valores espectrales de la porción temporal dada de la información de audio están asociados con la tercera región frecuencial.
8. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 7, donde el decodificador aritmético tiene una configuración que le permite calcular una suma que comprende por lo menos un primer sumando y un segundo sumando, para obtener el valor contextual actual numérico (s) como resultado de la suma, donde el primer sumando se obtiene combinando una pluralidad de valores intermedios (cO, d , c2, c3, c4, c5, c6) que describen magnitudes de valores espectrales previamente decodificados (a), y donde el segundo sumando (región) describe a cuál región frecuencial, de una pluralidad de regiones frecuenciales, está asociado un valor espectral que se ha de decodificar.
9. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 8, donde el decodificador aritmético tiene una configuración que le permite modificar una o varias posiciones de bits predeterminadas de una representación binaria del valor contextual actual numérico (s) apoyándose en el hecho de determinar en cuál región frecuencial, de una pluralidad de regiones frecuenciales diferentes, se encuentra el valor espectral que se ha de decodificar.
10. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 9, donde el decodificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo de manera dependiente del valor contextual actual numérico (s), de modo tal que una pluralidad de diferentes valores contextúales actuales numéricos (s) dan como resultado una selección de una misma norma de mapeo.
11. El decodificador de audio de acuerdo con una de las reivindicaciones 1 a 10, donde el decodificador aritmético tiene una configuración que le permite ejecutar una selección en dos pasos de una norma de mapeo de manera dependiente del valor contextual actual numérico; donde el decodificador aritmético tiene una configuración que le permite verificar, en un primer paso de selección, si el valor contextual actual numérico (s) o un valor derivado de éste, es igual a un valor de estado significativo descripto por una entrada de una tabla de aciertos directos (ari_s_hash); y donde el decodificador aritmético tiene una configuración que le permite determinar, en un segundo paso de selección, que solamente es ejecutado si el valor contextual actual numérico (s), o un valor derivado de éste, es diferente de los valores de estado significativos descriptos por las entradas de la tabla de aciertos directos, en cuál intervalo, de una pluralidad de intervalos, se encuentra el valor contextual actual numérico (s); y donde el decodificador aritmético tiene una configuración que le permite seleccionar la norma de mapeo de manera dependiente de un resultado del primer paso de selección o el segundo paso de selección; y donde el decodificador aritmético tiene una configuración que le permite seleccionar la norma de mapeo, en el primer paso de selección o en el segundo paso de selección, de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial o en una segunda región frecuencial.
12. El decodificador de audio de acuerdo con la reivindicación 1 1 , donde el decodificador aritmético tiene una configuración que le permite modificar selectivamente una o más porciones de bits menos significativos de una representación binaria del valor contextual actual numérico (s) apoyándose en el hecho de determinar en cuál región frecuencial, de una pluralidad de regiones frecuenciales diferentes, se encuentra el valor espectral que se ha de decodificar; donde el decodificador aritmético tiene una configuración que le permite determinar, en el segundo paso de selección, en cuál intervalo, de una pluralidad de intervalos, se encuentra la representación binaria del valor contextual actual numérico (s), seleccionar el mapeo, de modo tal que algunos valores contextúales actuales numéricos dan como resultado una selección de la misma norma de mapeo sin que importe en cuál región frecuencial se encuentra el valor espectral que se ha de decodificar, y de modo tal que para algunos valores contextúales actuales numéricos, la norma de mapeo se selecciona teniendo en cuenta en cuál región frecuencial se encuentra el valor espectral que se ha de decodificar.
13. Un codificador de señales de audio (100; 700; 2100) para proveer una información de audio codificada (1 12; 712; 21 12) sobre la base de una información de audio entrante (1 10; 710; 21 10), codificador de audio que comprende: un convertidor de dominio temporal a dominio frecuencial compactador de energía (130; 720; 2120) para proveer una representación de audio de dominio frecuencial (132; 722; 2124) sobre la base de una representación de dominio frecuencial (1 10; 710; 2122) de la información de audio entrante, de modo tal que la representación de audio de dominio frecuencial comprende un conjunto de valores espectrales (a); un codificador aritmético (170; 730; 2130) que tiene una configuración que le permite codificar valores espectrales (a), o una versión preprocesada de estos, usando una palabra de código de longitud variable (acod_m, acod r), donde el codificador aritmético tiene una configuración que le permite mapear un valor espectral (a) o un valor (m) de un plano de bits más significativos de un valor espectral (a), a un valor de código (acod_m), donde el codificador aritmético tiene una configuración que le permite seleccionar una norma de mapeo (ari_cf_m[pki][9]) que describe un mapeo de un valor espectral (a), o de un plano de bits más significativos (m) de un valor espectral (a), a un valor de código de manera dependiente de un estado contextual (s), donde el codificador aritmético tiene una configuración que le permite determinar un valor contextual actual numérico (s) que describe el estado contextual actual de manera dependiente de una pluralidad de valores espectrales previamente codificados y también de manera dependiente de que un valor espectral que se ha de codificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
14. Un método para proveer una información de audio decodificada sobre la base de una información de audio codificada, método que comprende: proveer una pluralidad de valores espectrales decodificados sobre la base de una representación aritméticamente codificada de los valores espectrales; y ejecutar una conversión de dominio frecuencial a dominio temporal, para proveer una representación de audio de dominio temporal que usa los valores espectrales decodificados, para obtener la información de audio decodificada; donde una norma de mapeo que describe un mapeo de un valor de código a un código de símbolos se selecciona de manera dependiente de un estado contextual; y donde un valor contextual actual numérico que describe el estado contextual actual es determinado de manera dependiente de una pluralidad de valores espectrales previamente decodificados y también de manera dependiente de que un valor espectral que se ha de decodificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
15. Un método para proveer una información de audio codificada sobre la base de una información de audio entrante, método que comprende: ejecutar una conversión de frecuencias de dominio temporal a dominio frecuencial compactadora de energía, para proveer una representación de audio de dominio frecuencial sobre la base de una representación de dominio temporal de la información de audio entrante, de modo tal que la representación de audio de dominio frecuencial comprende un conjunto de valores espectrales; y codificar un valor espectral, o una versión preprocesada de éste empleando una palabra de código de longitud variable; donde un valor espectral, o un valor de un plano de bits más significativos de un valor espectral, es mapeado a un valor de código; donde una norma de mapeo que describe un mapeo de un valor espectral, o de un plano de bits más significativos de un valor espectral, a un valor de código se selecciona de manera dependiente de un estado contextual; donde un valor contextual actual numérico que describe el estado contextual actual es determinado de manera dependiente de una pluralidad de valores espectrales previamente codificados y también de manera dependiente de que un valor espectral que se ha de codificar esté en una primera región frecuencial predeterminada o en una segunda región frecuencial predeterminada.
16. Un programa de computación para ejecutar uno de los métodos de acuerdo con la reivindicación 14 o la reivindicación 15 cuando el programa de computación trabaja en una computadora.
MX2012004572A 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica. MX2012004572A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25345909P 2009-10-20 2009-10-20
PCT/EP2010/065726 WO2011048099A1 (en) 2009-10-20 2010-10-19 Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a region-dependent arithmetic coding mapping rule

Publications (1)

Publication Number Publication Date
MX2012004572A true MX2012004572A (es) 2012-06-08

Family

ID=43259832

Family Applications (3)

Application Number Title Priority Date Filing Date
MX2012004572A MX2012004572A (es) 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica.
MX2012004569A MX2012004569A (es) 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa la deteccion de un grupo de valores espectrales previamente decodificados.
MX2012004564A MX2012004564A (es) 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio y programa de computacion que utiliza una reduccion de tamaño de intervalo interactiva.

Family Applications After (2)

Application Number Title Priority Date Filing Date
MX2012004569A MX2012004569A (es) 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa la deteccion de un grupo de valores espectrales previamente decodificados.
MX2012004564A MX2012004564A (es) 2009-10-20 2010-10-19 Codificador de audio, decodificador de audio, metodo para codificar informacion de audio y programa de computacion que utiliza una reduccion de tamaño de intervalo interactiva.

Country Status (19)

Country Link
US (6) US8706510B2 (es)
EP (3) EP2491552B1 (es)
JP (3) JP5589084B2 (es)
KR (3) KR101419148B1 (es)
CN (3) CN102667923B (es)
AR (3) AR078705A1 (es)
AU (1) AU2010309820B2 (es)
BR (6) BR112012009445B1 (es)
CA (4) CA2778325C (es)
ES (3) ES2610163T3 (es)
HK (2) HK1175289A1 (es)
MX (3) MX2012004572A (es)
MY (3) MY188408A (es)
PL (3) PL2491552T3 (es)
PT (1) PT2491553T (es)
RU (3) RU2596596C2 (es)
TW (3) TWI430262B (es)
WO (3) WO2011048098A1 (es)
ZA (3) ZA201203610B (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2934052T3 (es) 2008-07-11 2023-02-16 Fraunhofer Ges Forschung Codificador de audio y decodificador de audio
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
BR112012009445B1 (pt) 2009-10-20 2023-02-14 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio que utiliza uma detecção de um grupo de valores espectrais previamente decodificados
CN102859583B (zh) * 2010-01-12 2014-09-10 弗劳恩霍弗实用研究促进协会 利用对数值先前脉络值的数字表示之修改的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法
AU2011287747B2 (en) * 2010-07-20 2015-02-05 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an optimized hash table
CN110706715B (zh) 2012-03-29 2022-05-24 华为技术有限公司 信号编码和解码的方法和设备
LT2869563T (lt) 2012-07-02 2018-07-10 Samsung Electronics Co., Ltd. Vaizdo entropinio dekodavimo būdas
TWI557727B (zh) 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
EP2830055A1 (en) * 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Context-based entropy coding of sample values of a spectral envelope
WO2015037969A1 (ko) * 2013-09-16 2015-03-19 삼성전자 주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
CN110867190B (zh) * 2013-09-16 2023-10-13 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
JP6763849B2 (ja) 2014-07-28 2020-09-30 サムスン エレクトロニクス カンパニー リミテッド スペクトル符号化方法
EP3799044B1 (en) * 2014-09-04 2023-12-20 Sony Group Corporation Transmission device, transmission method, reception device and reception method
TWI693595B (zh) * 2015-03-13 2020-05-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
TWI758146B (zh) * 2015-03-13 2022-03-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
WO2017050398A1 (en) * 2015-09-25 2017-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for signal-adaptive switching of the overlap ratio in audio transform coding
US10812550B1 (en) * 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
ES2953832T3 (es) 2017-01-10 2023-11-16 Fraunhofer Ges Forschung Decodificador de audio, codificador de audio, método para proporcionar una señal de audio decodificada, método para proporcionar una señal de audio codificada, flujo de audio, proveedor de flujos de audio y programa informático que utiliza un identificador de flujo
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
KR20200000649A (ko) 2018-06-25 2020-01-03 네이버 주식회사 오디오 병렬 트랜스코딩을 위한 방법 및 시스템
TWI672911B (zh) * 2019-03-06 2019-09-21 瑞昱半導體股份有限公司 解碼方法及相關電路
CN111757168B (zh) * 2019-03-29 2022-08-19 腾讯科技(深圳)有限公司 音频解码方法、装置、存储介质及设备
US11024322B2 (en) * 2019-05-31 2021-06-01 Verizon Patent And Licensing Inc. Methods and systems for encoding frequency-domain data

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222189A (en) 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
US5835792A (en) 1993-06-24 1998-11-10 Discovision Associates Token-based adaptive video processing arrangement
US5659659A (en) 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
CN1126264C (zh) * 1996-02-08 2003-10-29 松下电器产业株式会社 宽频带声音信号编码装置和宽频带声音信号编码解码装置
JP3305190B2 (ja) * 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置
US6269338B1 (en) 1996-10-10 2001-07-31 U.S. Philips Corporation Data compression and expansion of an audio signal
JP3367370B2 (ja) 1997-03-14 2003-01-14 三菱電機株式会社 適応符号化方法
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
JPH11225078A (ja) * 1997-09-29 1999-08-17 Canon Inf Syst Res Australia Pty Ltd データ圧縮方法及び装置
RU2214047C2 (ru) * 1997-11-19 2003-10-10 Самсунг Электроникс Ко., Лтд. Способ и устройство для масштабируемого кодирования/декодирования аудиосигналов
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
KR100335611B1 (ko) * 1997-11-20 2002-10-09 삼성전자 주식회사 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
CA2246532A1 (en) 1998-09-04 2000-03-04 Northern Telecom Limited Perceptual audio coding
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
JP4504572B2 (ja) 1999-01-13 2010-07-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 符号化された信号への補足データの組み込み
DE19910621C2 (de) * 1999-03-10 2001-01-25 Thomas Poetter Vorrichtung und Verfahren zum Verbergen von Informationen und Vorrichtung und Verfahren zum Extrahieren von Informationen
US6751641B1 (en) 1999-08-17 2004-06-15 Eric Swanson Time domain data converter with output frequency domain conversion
US6978236B1 (en) 1999-10-01 2005-12-20 Coding Technologies Ab Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching
JP2001119302A (ja) 1999-10-15 2001-04-27 Canon Inc 符号化装置、復号装置、情報処理システム、情報処理方法、及び記憶媒体
US7260523B2 (en) 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US20020016161A1 (en) 2000-02-10 2002-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for compression of speech encoded parameters
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
US6538583B1 (en) * 2001-03-16 2003-03-25 Analog Devices, Inc. Method and apparatus for context modeling
EP1405303A1 (en) 2001-06-28 2004-04-07 Koninklijke Philips Electronics N.V. Wideband signal transmission system
US20030093451A1 (en) 2001-09-21 2003-05-15 International Business Machines Corporation Reversible arithmetic coding for quantum data compression
DE10204617B4 (de) * 2002-02-05 2005-02-03 Siemens Ag Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
JP2003255999A (ja) 2002-03-06 2003-09-10 Toshiba Corp 符号化デジタルオーディオ信号の変速再生装置
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
PT1467491E (pt) * 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
US7555434B2 (en) * 2002-07-19 2009-06-30 Nec Corporation Audio decoding device, decoding method, and program
DE20321883U1 (de) * 2002-09-04 2012-01-20 Microsoft Corp. Computervorrichtung und -system zum Entropiedecodieren quantisierter Transformationskoeffizienten eines Blockes
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
AU2003272833A1 (en) * 2002-09-17 2004-04-08 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
FR2846179B1 (fr) 2002-10-21 2005-02-04 Medialive Embrouillage adaptatif et progressif de flux audio
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
AU2003208517A1 (en) 2003-03-11 2004-09-30 Nokia Corporation Switching between coding schemes
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7562145B2 (en) 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
JP2005130099A (ja) 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
DE102004007200B3 (de) * 2004-02-13 2005-08-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
CA2457988A1 (en) 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
KR20050087956A (ko) 2004-02-27 2005-09-01 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
US20090299756A1 (en) 2004-03-01 2009-12-03 Dolby Laboratories Licensing Corporation Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
WO2005086139A1 (en) 2004-03-01 2005-09-15 Dolby Laboratories Licensing Corporation Multichannel audio coding
KR100561869B1 (ko) * 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
US7577844B2 (en) 2004-03-17 2009-08-18 Microsoft Corporation Systems and methods for encoding randomly distributed features in an object
CN100584023C (zh) * 2004-07-14 2010-01-20 新加坡科技研究局 用于基于上下文的信号编码和解码的方法和设备
KR100624432B1 (ko) * 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US20060047704A1 (en) 2004-08-31 2006-03-02 Kumar Chitra Gopalakrishnan Method and system for providing information services relevant to visual imagery
RU2387024C2 (ru) 2004-11-05 2010-04-20 Панасоник Корпорэйшн Кодер, декодер, способ кодирования и способ декодирования
US7903824B2 (en) 2005-01-10 2011-03-08 Agere Systems Inc. Compact side information for parametric coding of spatial audio
KR100829558B1 (ko) * 2005-01-12 2008-05-14 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
CA2590705A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
WO2006107837A1 (en) 2005-04-01 2006-10-12 Qualcomm Incorporated Methods and apparatus for encoding and decoding an highband portion of a speech signal
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
KR100703773B1 (ko) 2005-04-13 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치
US7196641B2 (en) 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
ATE433182T1 (de) 2005-07-14 2009-06-15 Koninkl Philips Electronics Nv Audiokodierung und audiodekodierung
US7546240B2 (en) 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
KR100851970B1 (ko) * 2005-07-15 2008-08-12 삼성전자주식회사 오디오 신호의 중요주파수 성분 추출방법 및 장치와 이를이용한 저비트율 오디오 신호 부호화/복호화 방법 및 장치
US7539612B2 (en) 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
US20070036228A1 (en) 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
US20080221907A1 (en) 2005-09-14 2008-09-11 Lg Electronics, Inc. Method and Apparatus for Decoding an Audio Signal
EP1932361A1 (en) * 2005-10-03 2008-06-18 Nokia Corporation Adaptive variable length codes for independent variables
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
KR100803206B1 (ko) 2005-11-11 2008-02-14 삼성전자주식회사 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법
EP1995974B1 (en) 2005-12-05 2015-05-20 Huawei Technologies Co., Ltd. Method for realizing arithmetic coding
CN101133649B (zh) * 2005-12-07 2010-08-25 索尼株式会社 编码装置、编码方法以及解码装置、解码方法
KR101237413B1 (ko) * 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치
US7283073B2 (en) 2005-12-19 2007-10-16 Primax Electronics Ltd. System for speeding up the arithmetic coding processing and method thereof
WO2007080211A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
WO2007080225A1 (en) 2006-01-09 2007-07-19 Nokia Corporation Decoding of binaural audio signals
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
KR100774585B1 (ko) 2006-02-10 2007-11-09 삼성전자주식회사 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
US8027479B2 (en) 2006-06-02 2011-09-27 Coding Technologies Ab Binaural multi-channel decoder in the context of non-energy conserving upmix rules
US7948409B2 (en) 2006-06-05 2011-05-24 Mediatek Inc. Automatic power control system for optical disc drive and method thereof
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
EP1883067A1 (en) * 2006-07-24 2008-01-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream
US8706507B2 (en) 2006-08-15 2014-04-22 Dolby Laboratories Licensing Corporation Arbitrary shaping of temporal noise envelope without side-information utilizing unchanged quantization
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
JP4785706B2 (ja) 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
DE102007017254B4 (de) 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
US20080243518A1 (en) 2006-11-16 2008-10-02 Alexey Oraevsky System And Method For Compressing And Reconstructing Audio Files
KR100868763B1 (ko) 2006-12-04 2008-11-13 삼성전자주식회사 오디오 신호의 중요 주파수 성분 추출 방법 및 장치와 이를이용한 오디오 신호의 부호화/복호화 방법 및 장치
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
ES2474915T3 (es) 2006-12-13 2014-07-09 Panasonic Intellectual Property Corporation Of America Dispositivo de codificación, dispositivo de decodificación y métodos correspondientes
CN101231850B (zh) 2007-01-23 2012-02-29 华为技术有限公司 编解码方法及装置
KR101365989B1 (ko) 2007-03-08 2014-02-25 삼성전자주식회사 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법
US7498960B2 (en) * 2007-04-19 2009-03-03 Analog Devices, Inc. Programmable compute system for executing an H.264 binary decode symbol instruction
JP2008289125A (ja) 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
ES2452348T3 (es) 2007-04-26 2014-04-01 Dolby International Ab Aparato y procedimiento para sintetizar una señal de salida
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
JP4748113B2 (ja) 2007-06-04 2011-08-17 ソニー株式会社 学習装置および学習方法、並びにプログラムおよび記録媒体
JP5291096B2 (ja) * 2007-06-08 2013-09-18 エルジー エレクトロニクス インコーポレイティド オーディオ信号処理方法及び装置
CN101743586B (zh) 2007-06-11 2012-10-17 弗劳恩霍夫应用研究促进协会 音频编码器、编码方法、解码器、解码方法
US8521540B2 (en) 2007-08-17 2013-08-27 Qualcomm Incorporated Encoding and/or decoding digital signals using a permutation value
US20110116542A1 (en) * 2007-08-24 2011-05-19 France Telecom Symbol plane encoding/decoding with dynamic calculation of probability tables
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
TWI351180B (en) * 2007-09-29 2011-10-21 Novatek Microelectronics Corp Data encoding/decoding method and related apparatus capable of lowering signal power spectral density
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8527265B2 (en) 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
US7714753B2 (en) 2007-12-11 2010-05-11 Intel Corporation Scalable context adaptive binary arithmetic coding
US8631060B2 (en) 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
ATE500588T1 (de) * 2008-01-04 2011-03-15 Dolby Sweden Ab Audiokodierer und -dekodierer
US8600740B2 (en) 2008-01-28 2013-12-03 Qualcomm Incorporated Systems, methods and apparatus for context descriptor transmission
JP4893657B2 (ja) 2008-02-29 2012-03-07 ソニー株式会社 算術復号装置
WO2009110738A2 (ko) 2008-03-03 2009-09-11 엘지전자(주) 오디오 신호 처리 방법 및 장치
CN102789784B (zh) 2008-03-10 2016-06-08 弗劳恩霍夫应用研究促进协会 操纵具有瞬变事件的音频信号的方法和设备
JP5449133B2 (ja) * 2008-03-14 2014-03-19 パナソニック株式会社 符号化装置、復号装置およびこれらの方法
KR101247891B1 (ko) 2008-04-28 2013-03-26 고리츠다이가쿠호징 오사카후리츠다이가쿠 물체 인식용 화상 데이터베이스의 작성 방법, 처리 장치 및 처리용 프로그램
US7864083B2 (en) 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
ES2934052T3 (es) 2008-07-11 2023-02-16 Fraunhofer Ges Forschung Codificador de audio y decodificador de audio
EP2346029B1 (en) * 2008-07-11 2013-06-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for encoding an audio signal and corresponding computer program
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
EP2146344B1 (en) * 2008-07-17 2016-07-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoding/decoding scheme having a switchable bypass
JPWO2010016270A1 (ja) 2008-08-08 2012-01-19 パナソニック株式会社 量子化装置、符号化装置、量子化方法及び符号化方法
US20100088090A1 (en) * 2008-10-08 2010-04-08 Motorola, Inc. Arithmetic encoding for celp speech encoders
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
GB2466666B (en) * 2009-01-06 2013-01-23 Skype Speech coding
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US8457975B2 (en) 2009-01-28 2013-06-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio decoder, audio encoder, methods for decoding and encoding an audio signal and computer program
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
CA2763793C (en) 2009-06-23 2017-05-09 Voiceage Corporation Forward time-domain aliasing cancellation with application in weighted or original signal domain
MY163358A (en) 2009-10-08 2017-09-15 Fraunhofer-Gesellschaft Zur Förderung Der Angenwandten Forschung E V Multi-mode audio signal decoder,multi-mode audio signal encoder,methods and computer program using a linear-prediction-coding based noise shaping
EP2315358A1 (en) * 2009-10-09 2011-04-27 Thomson Licensing Method and device for arithmetic encoding or arithmetic decoding
BR112012009445B1 (pt) 2009-10-20 2023-02-14 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio que utiliza uma detecção de um grupo de valores espectrais previamente decodificados
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
CN102859583B (zh) * 2010-01-12 2014-09-10 弗劳恩霍弗实用研究促进协会 利用对数值先前脉络值的数字表示之修改的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法
CN102131081A (zh) 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
AU2011287747B2 (en) * 2010-07-20 2015-02-05 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an optimized hash table
EP2619758B1 (en) 2010-10-15 2015-08-19 Huawei Technologies Co., Ltd. Audio signal transformer and inverse transformer, methods for audio signal analysis and synthesis
US20120207400A1 (en) * 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US8170333B2 (en) * 2011-10-13 2012-05-01 University Of Dayton Image processing systems employing image compression

Also Published As

Publication number Publication date
CA2778368C (en) 2016-01-26
EP2491552A1 (en) 2012-08-29
JP5589084B2 (ja) 2014-09-10
ZA201203607B (en) 2013-01-30
AU2010309821A1 (en) 2012-06-07
KR20120074312A (ko) 2012-07-05
US20230162742A1 (en) 2023-05-25
TWI426504B (zh) 2014-02-11
US8612240B2 (en) 2013-12-17
HK1175290A1 (en) 2013-06-28
JP2013508762A (ja) 2013-03-07
ZA201203609B (en) 2013-01-30
BR112012009445B1 (pt) 2023-02-14
ZA201203610B (en) 2013-01-30
BR122022013482B1 (pt) 2023-04-04
CN102667921A (zh) 2012-09-12
MY188408A (en) 2021-12-08
CN102667923A (zh) 2012-09-12
CA2907353C (en) 2018-02-06
JP2013508764A (ja) 2013-03-07
CA2907353A1 (en) 2011-04-28
TW201137857A (en) 2011-11-01
CN102667922B (zh) 2014-09-10
WO2011048099A1 (en) 2011-04-28
RU2605677C2 (ru) 2016-12-27
CA2778323A1 (en) 2011-04-28
BR112012009446B1 (pt) 2023-03-21
KR101419148B1 (ko) 2014-07-11
US9978380B2 (en) 2018-05-22
AR078706A1 (es) 2011-11-30
TWI451403B (zh) 2014-09-01
RU2012122278A (ru) 2013-11-27
PL2491554T3 (pl) 2014-08-29
TW201129969A (en) 2011-09-01
RU2012122275A (ru) 2013-11-27
CN102667923B (zh) 2014-11-05
JP5245014B2 (ja) 2013-07-24
CN102667921B (zh) 2014-09-10
RU2591663C2 (ru) 2016-07-20
CA2778323C (en) 2016-09-20
BR112012009446A2 (es) 2021-12-07
EP2491554B1 (en) 2014-03-05
CA2778368A1 (en) 2011-04-28
KR101411780B1 (ko) 2014-06-24
US20120265540A1 (en) 2012-10-18
US11443752B2 (en) 2022-09-13
MY160813A (en) 2017-03-31
US20120330670A1 (en) 2012-12-27
JP5707410B2 (ja) 2015-04-30
US8655669B2 (en) 2014-02-18
ES2610163T3 (es) 2017-04-26
AR078705A1 (es) 2011-11-30
PT2491553T (pt) 2017-01-20
TW201137858A (en) 2011-11-01
EP2491554A1 (en) 2012-08-29
US20180174593A1 (en) 2018-06-21
RU2596596C2 (ru) 2016-09-10
ES2531013T3 (es) 2015-03-10
US20120278086A1 (en) 2012-11-01
MY160807A (en) 2017-03-31
RU2012122277A (ru) 2013-11-27
PL2491552T3 (pl) 2015-06-30
KR101419151B1 (ko) 2014-07-11
BR112012009448A2 (pt) 2022-03-08
EP2491552B1 (en) 2014-12-31
ES2454020T3 (es) 2014-04-09
US8706510B2 (en) 2014-04-22
TWI430262B (zh) 2014-03-11
AU2010309820B2 (en) 2014-05-08
MX2012004569A (es) 2012-06-08
CN102667922A (zh) 2012-09-12
MX2012004564A (es) 2012-06-08
BR122022013496B1 (pt) 2023-05-16
BR122022013454B1 (pt) 2023-05-16
PL2491553T3 (pl) 2017-05-31
AU2010309820A1 (en) 2012-06-07
WO2011048098A1 (en) 2011-04-28
CA2778325A1 (en) 2011-04-28
US20140081645A1 (en) 2014-03-20
EP2491553A1 (en) 2012-08-29
AU2010309898A1 (en) 2012-06-07
HK1175289A1 (en) 2013-06-28
BR112012009445A2 (pt) 2022-03-03
EP2491553B1 (en) 2016-10-12
AR078707A1 (es) 2011-11-30
KR20120074306A (ko) 2012-07-05
WO2011048100A1 (en) 2011-04-28
CA2778325C (en) 2015-10-06
KR20120074310A (ko) 2012-07-05
JP2013508763A (ja) 2013-03-07

Similar Documents

Publication Publication Date Title
MX2012004572A (es) Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica.
JP5624159B2 (ja) オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化および復号するための方法、ならびに以前に復号されたスペクトル値のノルムに基づいてコンテキストサブ領域値を取得するコンピュータプログラム
JP5600805B2 (ja) 最適化されたハッシュテーブルを用いるオーディオエンコーダ、オーディオデコーダ、オーディオ情報を符号化するための方法、オーディオ情報を復号化するための方法およびコンピュータプログラム
AU2010309898B2 (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
AU2010309821B2 (en) Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction

Legal Events

Date Code Title Description
FG Grant or registration