ES2567129T3 - Codificador de audio, decodificador de audio, información de audio codificada, métodos para la codificación y decodificación de una señal de audio y programa de ordenador - Google Patents
Codificador de audio, decodificador de audio, información de audio codificada, métodos para la codificación y decodificación de una señal de audio y programa de ordenador Download PDFInfo
- Publication number
- ES2567129T3 ES2567129T3 ES10720358.0T ES10720358T ES2567129T3 ES 2567129 T3 ES2567129 T3 ES 2567129T3 ES 10720358 T ES10720358 T ES 10720358T ES 2567129 T3 ES2567129 T3 ES 2567129T3
- Authority
- ES
- Spain
- Prior art keywords
- window
- information
- length
- audio
- slope
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un decodificador de audio (200) para proveer una información de audio decodificada (212) sobre la base de una información de audio codificada (210), el decodificador de audio que comprende: un transformador de señal basado en ventanas (250) configurado para mapear una representación de tiempo- frecuencia (242) de la información de audio, la cual es descrita por la información de audio codificada (210) sobre una representación en el dominio del tiempo (252) de la información de audio, en el cual el transformador de señal basado en ventanas está configurado para seleccionar una ventana, desde una pluralidad de ventanas (310, 312, 314, 316, 318) que comprende ventanas con distintas pendientes de transición (310a, 312a, 314a, 316a, 318a, 310b, 312b, 314b, 316b, 318b) y ventanas que tienen asociadas con ellas distintas longitudes de transformación, mediante el uso de una información de ventana (272); en el cual el decodificador de audio (200) comprende un selector de ventana (270) configurado para evaluar una información de ventana de longitud de palabra de código variable (224) a fin de seleccionar una ventana para un procesamiento de una porción dada de la representación de tiempo-frecuencia asociada con un cuadro dado de la información de audio; en el cual el decodificador de audio comprende un analizador de transmisión de bits (220) configurado para analizar una transmisión de bits (210) que representa la información de audio codificada y para extraer desde la transmisión de bits (210) una información de longitud de pendiente de ventana de un bit ("window_length") y para extraer de manera selectiva, en dependencia de un valor de la información de longitud de pendiente de ventana de un bit, una información de longitud de transformación de un bit ("transform_length"); y en el cual el selector de ventana (270) está configurado para usar o denegar de manera selectiva, en dependencia de la información de longitud de pendiente de ventana, la información de longitud de transformación a fin de seleccionar un tipo de ventana (310, 312, 314, 316, 318) para un procesamiento de una porción dada de la representación de tiempo-frecuencia (242), en el cual la información de longitud de transformación determina una longitud de un núcleo de una MDCT.
Description
5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Codificador de audio, decodificador de audio, informacion de audio codificada, metodos para la codificacion y decodificacion de una senal de audio y programa de ordenador
Antecedentes de la invencion
Las realizaciones de acuerdo con la invencion se refieren a un codificador de audio para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada, y un decodificador de audio para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada. Otras realizaciones de acuerdo con la invencion se refieren a una informacion de audio codificada. Otras realizaciones mas de acuerdo con la invencion se refieren a un metodo para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada, y a un metodo para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada. Otras realizaciones se refieren a programas de ordenador para llevar a cabo los metodos inventivos.
Una realizacion de la invencion se refiere a una actualizacion propuesta sobre una sintaxis de la transmision de bits de codificacion de voz y audio unificada (USAC) (ver ISO/IEC JTC1/SC29/WG11, WD en “Unified Speech and Audio Coding”, MPEG 2008/N10215).
En lo que sigue se explicaran los antecedentes de la invencion a fin de facilitar la comprension de la invencion y de las ventajas del mismo. Durante la decada pasada, se han hecho grandes esfuerzos para crear la posibilidad para guardar digitalmente y distribuir los contenidos de audio. Un logro importante en este camino es le definicion de la norma internacional ISO/IEC 14496-3. La parte 3 de esta norma se refiere a una codificacion y una decodificacion de contenidos de audio y la sub-parte 4 de la parte 3 se refiere a la codificacion de audio en general. ISO/IEC 14496, parte 3, sub-parte 4 define un concepto para codificar y decodificar un contenido de audio en general. Ademas se han propuesto unas mejoras adicionales a fin de mejorar la calidad y/o reducir la velocidad necesaria de transmision de bits.
Sin embargo, de acuerdo con el concepto descrito en dicha norma, se convierte una senal de audio del dominio del tiempo en una representacion de tiempo y frecuencia. La transformacion desde el dominio del tiempo al dominio de tiempo-frecuencia se lleva tlpicamente a cabo mediante el uso de bloques de transformacion que tambien son designados como "cuadros" de muestras en el dominio del tiempo. Se ha encontrado que es ventajoso usar cuadros superpuestos que se desplazan, por ejemplo, por la mitad de un cuadro, porque le superposicion permite evitar de manera eficiente (o por lo menos reducir) los artefactos. Ademas, se ha encontrado que un ventaneo deber ser realizado a fin de evitar los artefactos que se generan por este procesamiento de los cuadros limitados en el tiempo. El ventaneo permite tambien una optimizacion del proceso de superposicion-y-suma de cuadros subsiguientemente desplazados en el tiempo, pero superpuestos.
Sin embargo, se ha encontrado, que es problematico representar eficientemente los bordes, es decir las transiciones bruscas o tal denominados componentes transitorios, dentro del contenido de audio, si se usan ventanas de una longitud uniforme, porque la energla de una transicion se dispersara en forma horizontal a lo largo de la duracion total de una ventana, lo cual da como resultado unos artefactos audibles. Por ende, se ha propuesto conmutar entre ventanas de distintas longitudes de modo que se codifiquen las porciones aproximadamente estacionarias de un contenido de audio mediante el uso de ventanas largas y de modo que se codifiquen la porciones transitorias (es decir las porciones que comprenden un componente transitorio) del contenido de audio mediante el uso de ventanas mas cortas.
Sin embargo, en un sistema que permite elegir entre distintas ventanas para transformar un contenido de audio desde el dominio del tiempo al dominio de tiempo-frecuencia, por supuesto es necesario senalar a un decodificador cual ventana debe ser usada para una decodificacion de un contenido de audio codificado de un cuadro dado.
En los sistemas convencionales, por ejemplo en un decodificador de audio de acuerdo con la norma internacional ISO/IEC 14496-3, parte 3, sub-parte 4, se escribe un elemento denominado ”window_sequence”, que indica la secuencia de ventana usada en el cuadro actual, con dos bits dentro de una transmision de bits en un elemento de transmision de bits denominado como “ics_info”. Tomando en cuenta la secuencia de ventana del cuadro anterior, se senalan ocho secuencias diferentes de ventana.
5
10
15
20
25
30
35
40
45
50
55
60
En visto de la anterior discusion, se puede ver que se crea una carga de bits de la transmision de bits codificada, que representa una informacion de audio, por la necesidad de senalar el tipo de la ventana usada.
En vista de esta situacion, existe el deseo de crear un concepto que permite una senalizacion mas eficiente para la cantidad de bits transmitidos de un tipo de ventana usada para una transformacion entre una representacion en el dominio del tiempo de un contenido de audio y una representacion en el dominio de tiempo-frecuencia del contenido de audio. Una estrategia que utiliza informacion de palabra codificada de longitud variable se describe en Dong Soo Kim et al: “Proposed syntax revision regarding window sequence on USAC RMO”, ISO/IEC JTC1/SC29/WG11, MPEG2008/M16125, 29 de Enero de 2009.
Descripcion de la invencion
Este objetivo se resuelve mediante un codificador de audio de acuerdo con la reivindicacion 8, un decodificador de audio de acuerdo con la reivindicacion 1, una informacion de audio codificada de acuerdo con la reivindicacion 10, un metodo para proveer una informacion de audio decodificada de acuerdo con la reivindicacion 11, un metodo para proveer una informacion de audio codificada de acuerdo con la reivindicacion 12 y un programa de ordenador de acuerdo con la reivindicacion 13.
Una realizacion de acuerdo con la invencion crea un metodo para proveer una representacion de senal de audio decodificada sobre la base de una representacion de senal de audio codificada. El decodificador de audio comprende un transformador de senal basado en ventanas configurado para mapear una representacion de tiempo-frecuencia, la cual esta descrita mediante la informacion de audio codificada, sobre una representacion en el dominio del tiempo del contenido de audio. El transformador de senal basado en ventanas esta configurado para seleccionar una ventana desde una pluralidad de ventanas que comprende ventanas de distintas pendientes de transicion y ventanas de distintas longitudes de transformacion sobre la base de una informacion de ventana. El decodificador de audio comprende un selector de ventana configurado para evaluar una informacion de ventana de longitud variable de palabra de codigo a fin de seleccionar una ventana de un procesamiento de una porcion dada (por ejemplo un cuadro) de la representacion de tiempo-frecuencia asociada con un cuadro dado de la informacion de audio.
Esta realizacion de la invencion se basa sobre el hallazgo que una cantidad requerida de bits transmitidos para guardar o transmitir una informacion que indica que tipo de ventana deber ser usado para que se pueda reducir la transformacion de una representacion en el dominio de tiempo-frecuencia de un contenido de audio a una representacion en el dominio del tiempo mediante el uso de una informacion de ventana de longitud variable de palabra de codigo. Se ha encontrado que una informacion de ventana de longitud variable de palabra de codigo es bien adecuada porque la informacion requerida para seleccionar la ventana apropiada es bien adecuada para una semejante representacion de longitud variable de palabra de codigo.
Por ejemplo, mediante el uso de una informacion de ventana de longitud variable de palabra de codigo se puede aprovechar que exista una dependencia entre una seleccion de una pendiente de transicion y una seleccion de una longitud de transformacion, porque tlpicamente no se usara una longitud corta de transformacion para una ventana que tiene una dos pendientes de transicion largas. Por ende, se puede evitar una transmision de informacion redundante mediante el uso de una informacion de ventana de longitud variable de palabra de codigo, con lo cual se mejora la eficiencia de la cantidad de bits transmitidos de la informacion de audio codificada.
Como un ejemplo adicional, se debe notar que tlpicamente existe una correlacion entre las formas de ventana de cuadros adyacentes que se pueden aprovechar tambien para reducir de manera selectiva la longitud de una palabra de codigo de la informacion de ventana para casos en los cuales el tipo de ventana de una o mas ventanas adyacentes (adyacente a la ventana considerada actualmente) limitan una eleccion de tipos de ventana para el cuadro actual.
Para resumir lo anterior, el uso de una informacion de ventana de longitud variable de palabra de codigo permite reducir la cantidad de bits transmitidos sin aumentar de manera significativa una complejidad del decodificador de audio y sin alterar una forma de onda de salida del decodificador de audio (en comparacion con una informacion de ventana de longitud constante de palabra de codigo). Tambien la sintaxis de la informacion de audio codificada puede ser simplificada aun mas en algunos casos, tal como se describira en detalle mas adelante.
5
10
15
20
25
30
35
40
45
50
55
60
El decodificador de audio comprende un analizador de transmision de bits configurado para analizar una transmision de bits que representa la informacion de audio codificada y para extraer desde la transmision de bits una informacion de longitud de pendiente de ventana de un bit y para extraer de manera selectiva, en dependencia de un valor de la informacion de longitud de pendiente de ventana de un bit, desde la transmision de bits una informacion de longitud de transformacion de un bit. En este caso, el selector de ventana es configurado preferiblemente para usar o denegar de manera selectiva, en dependencia de la informacion de longitud de pendiente de ventana, la informacion de longitud de transformacion a fin de seleccionar una ventana para un procesamiento de una porcion dada de la representacion de tiempo- frecuencia.
Usando este concepto, se puede obtener una separacion entre la informacion de longitud de pendiente de ventana y la informacion de longitud de transformacion, la cual contribuye a una simplificacion del mapeo en algunos casos. Tambien una division de la informacion de ventana en un bit obligatorio de longitud de pendiente de ventana y un bit de longitud de transformacion, la presencia del cual depende del estado del bit de longitud de pendiente de ventana, permite una reduccion muy eficiente de la cantidad de bits transmitidos, la cual se puede obtener mientras se mantiene la sintaxis de la transmision de bits suficientemente sencilla. Por ende, se mantiene la complejidad del analizador de transmision de bits suficientemente pequena.
En una realizacion preferida, el selector de ventana esta configurado para seleccionar un tipo de ventana para procesar una porcion actual de la informacion de tiempo-frecuencia (por ejemplo, un cuadro de audio actual) en dependencia de un tipo de ventana seleccionada para procesamiento de una porcion previa (por ejemplo, un cuadro de audio previo) de la informacion de tiempo-frecuencia, tal que se hace coincidir una longitud de pendiente de ventana de lado izquierdo de la ventana para procesar la porcion actual de la informacion de tiempo-frecuencia con una longitud de pendiente de ventana de lado derecho seleccionada para procesar la porcion previa de la informacion de tiempo-frecuencia. Aprovechando esta informacion, una cantidad de bits transmitidos requerida para seleccionar un tipo de ventana para procesamiento de la porcion actual de la informacion de tiempo-frecuencia es particularmente pequena, ya que la informacion para seleccionar un tipo de ventana es codificada con una particularmente baja complejidad. En particular, no es necesario "gastar" un bit para codificar una longitud de pendiente de ventana de lado izquierdo de la ventana asociada con la porcion actual de la informacion de tiempo-frecuencia. Por ende, usando la informacion acerca de la longitud de pendiente de ventana de lado derecha usada para un procesamiento de una porcion previa de la informacion de tiempo-frecuencia, se pueden usar dos bits (por ejemplo, el bit obligatorio de longitud de pendiente de ventana y el bit facultativo de longitud de transformacion) para seleccionar una ventana apropiada desde una pluralidad de mas que cuatro ventanas seleccionables. Asl, se evita una redundancia innecesaria, y se mejora la eficiencia de la cantidad de bits transmitidos de la transmision de bits codificada.
En una realizacion preferida, el selector de ventana esta configurado para seleccionar entre un primer tipo de ventana y un segundo tipo de ventana en dependencia de un valor de una informacion de longitud de pendiente de ventana de un bit, si una longitud de pendiente de ventana de lado derecho de la ventana para procesar la porcion previa de la informacion de tiempo-frecuencia toma un valor "largo" (que indica una longitud de pendiente de ventana comparativamente mas larga en comparacion con un valor "corto" que indica una longitud de pendiente de ventana comparativamente mas corta de la longitud de pendiente de ventana) y si una porcion previa de la informacion de tiempo-frecuencia, una porcion actual de la informacion de tiempo-frecuencia y una porcion subsiguiente de la informacion de tiempo-frecuencia son todas codificadas en un modo nucleo en el dominio de la frecuencia.
El selector de ventana preferiblemente tambien esta configurado para seleccionar un tercer tipo de ventana en respuesta a un primer valor (por ejemplo, un valor de "uno") de la informacion de longitud de pendiente de ventana de un bit, si una longitud de pendiente de ventana de lado derecho de la ventana para procesar la porcion previa de la informacion de tiempo-frecuencia toma un valor "corto" (segun se discutio arriba), y si una porcion previa de la informacion de tiempo-frecuencia, una porcion actual de la informacion de tiempo- frecuencia y una porcion subsiguiente de la informacion de tiempo-frecuencia son todas codificadas en un modo nucleo en el dominio de la frecuencia.
Asimismo, el selector de ventana preferiblemente tambien esta configurado para seleccionar entre un cuarto tipo de ventana y una secuencia de ventana (la cual puede ser considerada como un quinto tipo de ventana) en dependencia de una informacion de longitud de transformacion de un bit, si la informacion de longitud de pendiente de ventana toma un segundo valor (por ejemplo, un valor de "cero") que indica una pendiente de ventana de lado derecho corta, y si la longitud de pendiente de ventana de lado derecho de la ventana para procesar la porcion previa de la informacion de tiempo-frecuencia toma un valor "corto" (segun se discutio
5
10
15
20
25
30
35
40
45
50
55
60
mas arriba), y si la porcion previa de la informacion de tiempo-frecuencia y la porcion subsiguiente de la informacion de tiempo-frecuencia son todas codificadas en un modo nucleo en el dominio de la frecuencia.
Para este caso, el primer tipo de ventana comprende una longitud de pendiente de ventana de lado izquierdo (comparativamente) larga, una longitud de pendiente de ventana de lado izquierdo (comparativamente) larga y una longitud de transformacion (comparativamente) larga, el segundo tipo de ventana comprende una longitud de pendiente de ventana de lado izquierdo (comparativamente) larga, longitud de pendiente de ventana de lado derecho (comparativamente) corta y una longitud de transformacion (comparativamente) larga, el tercer tipo de ventana comprende una longitud de pendiente de ventana de lado izquierdo (comparativamente) corta, una longitud de pendiente de ventana de lado derecho (comparativamente) larga y una longitud de transformacion (comparativamente) larga, y el cuarto tipo de ventana comprende una longitud de pendiente de ventana de lado izquierdo (comparativamente) corta, una longitud de pendiente de ventana de lado derecho (comparativamente) corta y una longitud de transformacion (comparativamente) larga. La "secuencia de ventana " (o quinto tipo de ventana) define una secuencia o superposicion de una pluralidad de sub-ventanas asociadas con una sola porcion (por ejemplo, cuadro) de la informacion de tiempo-frecuencia, teniendo cada una de la pluralidad de sub-ventanas, una longitud de transformacion (comparativamente) corta, una longitud de pendiente de ventana de lado izquierdo (comparativamente) corta y una longitud de pendiente de ventana de lado derecho (comparativamente) corta. Usando un semejante enfoque, se pueden seleccionar un total de cinco tipos de ventana (incluyendo el tipo "secuencia de ventana") usando solo dos bits, en lo cual una informacion de bit unico (a saber, la informacion de longitud de pendiente de ventana de un bit) es suficiente para senalizar la secuencia muy comun de una pluralidad de ventanas que tienen longitudes de pendiente de ventana comparativamente largas del lado izquierdo y del lado derecho. En contraste, solo se requiere una informacion de ventana de dos bits en la preparacion de una secuencia de ventanas cortas ("secuencia de ventana" o "quinto tipo de ventana") y durante una serie extendida en el tiempo (a traves de una pluralidad de cuadros) de cuadros de "secuencia de ventana".
Para sintetizar, el concepto descrito arriba de seleccionar un tipo de ventana desde una pluralidad de, por ejemplo, cinco diferentes tipos de ventanas, permite una fuerte reduccion de la cantidad requerida de bits transmitidos. Mientras convencionalmente se necesitarlan tres bits dedicados para seleccionar un tipo de ventana de entre, por ejemplo, cinco tipos de ventanas, solo se necesita uno o dos bits de acuerdo con el presente invento para realizar una seleccion asl. Por tanto, se puede lograr un significativo ahorro de bits, reduciendo de ese modo la cantidad requerida de bits transmitidos y/o proveyendo la oportunidad de mejorar la calidad de audio.
En una realizacion preferida, el selector de ventana esta configurado para evaluar selectivamente un bit de longitud de transformacion de la informacion de ventana de longitud de palabra de codigo variable solo si un tipo de ventana para un procesamiento de una porcion previa (por ejemplo, un cuadro) de la informacion de tiempo-frecuencia comprende una longitud de pendiente de ventana de lado derecho que coincide con una longitud de pendiente de ventana de lado izquierdo de una corta secuencia de ventana y si una informacion de longitud de pendiente de ventana de un bit asociada con la porcion actual (por ejemplo el cuadro actual) de la informacion de tiempo-frecuencia define una longitud de pendiente de ventana de lado derecho que coincide con la longitud de pendiente de ventana de lado derecho de la corta secuencia de ventana.
En una realizacion preferida, el selector de ventana es configurado ademas para recibir una informacion de modo nucleo previa asociada con una porcion previa (por ejemplo, un cuadro) de la informacion de audio y que describe un modo nucleo usado para codificar la porcion previa (por ejemplo, el cuadro) de la informacion de audio. En este caso, el selector de ventana esta configurado para seleccionar una ventana para un procesamiento de una porcion actual (por ejemplo, un cuadro) de la representacion de tiempo-frecuencia en dependencia de la informacion de modo nucleo previa y tambien en dependencia de la informacion de ventana de longitud de palabra de codigo variable asociada con la porcion actual de la representacion de tiempo-frecuencia. De ese modo, se puede aprovechar el modo nucleo de un cuadro previo para seleccionar una ventana apropiada para una transicion (por ejemplo, en la forma de una operacion de superposicion-y- suma) entre el cuadro previo y el cuadro actual. Otra vez, el uso de una informacion de ventana de longitud de palabra de codigo variable es muy ventajosa, porque otra vez es posible ahorra una cantidad significativa de bits. Se puede obtener un particularmente buen ahorro si la cantidad de tipos de ventana, que es disponible (o valida) para un cuadro de audio codificado, en un dominio de prediccion lineal, es pequena. De ese modo, es a menudo posible usar una palabra de codigo corta, tomada de una palabra de codigo mas larga y una corta palabra de codigo mas corta, en una transicion entre dos distintos modos nucleo(por ejemplo, entre un modo nucleo en el dominio de prediccion lineal y un modo nucleo del dominio de la frecuencia.
5
10
15
20
25
30
35
40
45
50
55
60
En una realizacion preferida, el selector de ventana es configurado ademas para recibir una informacion de modo nucleo subsiguiente asociada con una porcion subsiguiente (por ejemplo, un cuadro) de la informacion de audio y que describe un modo nucleo usado para codificar el cuadro subsiguiente de la informacion de audio. En este caso, el selector de ventana es configurado preferiblemente para seleccionar una ventana para un procesamiento de una porcion actual (por ejemplo, un cuadro) de la representacion de tiempo-frecuencia en dependencia de la informacion de modo nucleo subsiguiente y tambien en dependencia de la informacion de ventana de longitud de palabra de codigo variable asociada con la porcion actual de la representacion de tiempo-frecuencia. Otra vez, se puede aprovechar la informacion de ventana de longitud de palabra de codigo variable en combinacion con la informacion de modo nucleo subsiguiente a fin de determinar el tipo de ventana con un requerimiento de bajo conteo de bits.
En una realizacion preferida, el selector de ventana esta configurado para seleccionar ventanas que tienen una pendiente acortada de lado derecho, si la informacion de modo nucleo subsiguiente indica que un cuadro subsiguiente de la informacion de audio es codificado usando un modo nucleo del dominio de prediccion lineal. De esa manera, se puede establecer una adaptacion de las ventanas a una transicion entre el modo nucleo del dominio de la frecuencia y el modo nucleo del dominio del tiempo sin necesitar en esfuerzo de senalizacion adicional.
Otra realizacion adicional de acuerdo con la invencion crea un codificador de audio para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada. El codificador de audio comprende un transformador de senal basado en ventanas y configurado para proveer una secuencia de parametros de senal de audio (por ejemplo, una representacion de dominio de tiempo-frecuencia de la informacion de audio de entrada) sobre la base de una pluralidad de porciones ventaneadas (por ejemplo cuadros superpuestos y no superpuestos) de la informacion de audio de entrada. El transformador de senal basado en ventanas es configurado preferiblemente para adaptar una forma de ventana para obtener las porciones ventaneadas de la informacion de audio de entrada en dependencia de las caracterlsticas de la informacion de audio de entrada. El transformador de senal basado en ventanas esta configurado para conmutar entre un uso de ventanas que tienen una pendiente de transicion (comparativamente) mas larga y ventanas que tienen una pendiente de transicion (comparativamente) mas corta, y tambien para conmutar entre el uso de ventanas que tienen dos o mas longitudes de transformacion diferentes. El transformador de senal basado en ventanas es configurado tambien para determinar un tipo de ventana usado para transformar una porcion actual (por ejemplo, un cuadro) de la informacion de audio de entrada en dependencia de un tipo de ventana usado para transformar una porcion precedente (por ejemplo, un cuadro) de la informacion de audio de entrada y un contenido de audio de la porcion actual de la informacion de audio de entrada. Tambien el codificador de audio esta configurado para codificar una informacion de ventana que describe un tipo de ventana usada para transformar una porcion actual de la informacion de audio de entrada que usa una palabra de codigo de longitud variable. Este codificador de audio provee las ventajas que ya se discutieron con respecto al decodificador de audio inventivo. En particular, es posible reducir la cantidad de bits transmitidos de la informacion de audio codificada evitando el uso de una palabra de codigo comparativamente larga en algunas o todas las situaciones en las cuales sea posible.
Otra realizacion de acuerdo con la invencion crea una informacion de audio codificada. La informacion de audio codificada comprende una representacion codificada de tiempo-frecuencia que describe un contenido de audio de una pluralidad de porciones ventaneadas de una senal de audio. Se asocian las ventanas de distintas pendientes de transicion (por ejemplo, de longitudes de pendiente de transicion) y de distintas longitudes de transformacion con distintas porciones ventaneadas de la senal de audio. La informacion de audio codificada comprende tambien una informacion de ventana codificada que codifica unos tipos de ventana usados para obtener las representaciones codificadas de tiempo-frecuencia de una pluralidad de porciones ventaneadas de la senal de audio. La informacion de ventana codificada es una informacion de ventana de longitud variable que codifica uno o mas tipos de ventanas usando una primera cantidad mas baja de bits y que codifica uno o mas tipos de ventanas usando una segunda cantidad mas alta de bits. La informacion de audio codificada trae consigo las ventajas que ya se discutieron mas arriba con respecto al decodificador de audio inventivo y al codificador de audio inventivo.
Otra realizacion de acuerdo con la invencion crea un metodo para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada. El metodo comprende evaluar una informacion de ventana de longitud de palabra de codigo variable a fin de seleccionar una ventana desde una pluralidad de ventanas que comprende ventanas de distintas pendientes de transicion (por ejemplo, de distintas longitudes de pendiente de transicion) y ventanas de distintas longitudes de transformacion para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia asociada con un cuadro dado
5
10
15
20
25
30
35
40
45
50
55
60
de la informacion de audio. El metodo comprende tambien mapear la porcion dada de la representacion de tiempo-frecuencia, que es descrita por la informacion de audio codificada, sobre una representacion en el dominio del tiempo que usa la ventana seleccionada.
Otra realizacion de acuerdo con la invencion crea un metodo para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada. El metodo comprende proveer una secuencia de parametros de senal de audio (por ejemplo, una representacion en el dominio de tiempo- frecuencia) sobre la base de una pluralidad de porciones ventaneadas de la informacion de audio de entrada. Para proveer la secuencia de parametros de senal de audio, se lleva a cabo una conmutacion entre el uso de ventanas que tienen una pendiente de transicion mas larga y el uso de ventanas que tienen una pendiente de transicion mas corta, y tambien entre el uso de ventanas que tienen dos o mas distintas longitudes de transformacion, para adaptar las formas de ventana para obtener las porciones ventaneadas de la informacion de audio de entrada en dependencia de las caracterlsticas de la informacion de audio de entrada. El metodo tambien comprende codificar una informacion de ventana que describe un tipo de ventana usada para transformar una porcion actual de la informacion de audio de entrada que usa una palabra de codigo de longitud variable.
Ademas, algunas realizaciones de acuerdo con la invencion crean un programa de ordenador para implementar dichos metodos.
Breve Descripcion de las Figuras
Subsiguientemente se describiran unas realizaciones de acuerdo con la invencion, tomando como referencia las figuras adjuntas, en las cuales:
la Figura 1 muestra un diagrama de bloques esquematico de un codificador de audio, de acuerdo con una realizacion de la invencion;
la Figura 2 muestra un diagrama de bloques esquematico de un decodificador de audio, de acuerdo con una realizacion de la invencion.
la Figura 3 muestra una representacion esquematica de distintos tipos de ventana, los cuales se pueden usar de acuerdo con el concepto inventivo;
la Figura 4 muestra una representacion grafica de unas transiciones permitidas entre ventanas de distintos tipos de ventana, las cuales pueden ser aplicadas en el diseno de las realizaciones de acuerdo con la invencion;
la Figura 5 muestra una representacion grafica de una secuencia de distintos tipos de ventana, los cuales pueden ser generadas por un codificador inventivo o los cuales pueden ser procesados por un decodificador de audio inventivo;
La Figura 6a muestra una tabla de una sintaxis propuesta de la transmision de bits de acuerdo con una realizacion de la invencion;
la Figura 6b muestra una representacion grafica de un mapeo desde un tipo de ventana del cuadro actual a una informacion de “window_length” y a una informacion de “transform_length”;
la Figura 6c muestra una representacion grafica de un mapeo para obtener el tipo de ventana del cuadro actual sobre la base de una informacion de modo nucleo previa, una informacion de “window_length” del cuadro previo, una informacion de “window_length” del cuadro actual y una informacion de “transform_length” del cuadro actual;
la Figura 7a muestra una tabla que representa una sintaxis de una informacion de “window_length”;
la Figura 7b muestra una tabla que representa una sintaxis de una informacion de “transform_length”;
la Figura 7c muestra una tabla que representa una nueva sintaxis y unas nuevas transiciones de la transmision de bits;
5
10
15
20
25
30
35
40
45
50
55
60
la Figura 8 muestra una tabla que da una vista global sobre todas las combinaciones de la informacion de “window_length” y la informacion de “transform_length”;
la Figura 9 muestra una tabla que representa un ahorro de bits que se puede obtener con el uso de una realizacion de la invencion;
la Figura 10a muestra una representacion de sintaxis de un tal denominado bloque de datos sin procesar USAC;
la Figura 10b muestra una representacion de sintaxis de un tal denominado elemento de canal unico;
la Figura 10c muestra una representacion de sintaxis de un tal denominado elemento de par de canal;
la Figura 10d muestra una representacion de sintaxis de una tal denominada informacion ICS;
la Figura 10e muestra una representacion de sintaxis de una tal denominada transmision de canal en el
dominio de la frecuencia;
la Figura 11 muestra un diagrama de flujo de un metodo para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada; y
la Figura 12 muestra un diagrama de flujo de un metodo para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada.
Descripcion Detallada de las Realizaciones Vista global del codificador de audio
En lo que sigue se describira un codificador de audio en el cual se puede aplicar el concepto inventivo. Sin embargo, se debe notar que el codificador de audio descrito con referencia a la Figura 1 debe ser considerado solo como un ejemplo de un codificador de audio en el cual se puede aplicar la invencion. Sin embargo, a pesar de que se discute un codificador de audio comparativamente simple con referencia a la Figura 1, se debe notar que la invencion tambien puede ser aplicado en codificadores de audio mucho mas elaborados, por ejemplo, en codificadores de audio que son capaces de conmutar entre distintos modos nucleo de codificacion (por ejemplo, entre una codificacion en el dominio de la frecuencia y una codificacion en el dominio de la prediccion lineal). No obstante, por el bien de la simplicidad, parece ser de gran utilidad para entender las ideas basicas de un codificador de audio simple del dominio de la frecuencia.
El codificador de audio mostrado en la Figura 1 es muy similar a un codificador de audio descrito en la norma internacional ISO/IEC 14496-3:2005 (E), parte 3, sub-parte 4 y tambien en los documentos que se citan como referencia en la misma. Por ende, se debe hacer referencia a esta norma, los documentos citados en la misma y la literatura extensiva con referencia a la codificacion de audio MPEG.
El codificador de audio 100, que se muestra en la Figura 1, esta configurado para recibir una informacion de audio de entrada 110 por ejemplo una senal de audio en el dominio del tiempo. El codificador de audio 100 comprende ademas de manera opcional un pre-procesador 120 configurado para pre-procesar opcionalmente la informacion de audio de entrada 110, por ejemplo mediante la reduccion de la tasa de muestreo de la informacion de audio de entrada 110 o mediante el control de ganancia de la informacion de audio de entrada 110. El codificador de audio 100 comprende tambien, como un componente clave, un transformador de senal basado en ventanas 130 que esta configurado para recibir la informacion de audio de entrada 110 o una version pre-procesada 122 de la misma y para transformar la informacion de audio de entrada 110 o la version pre-procesada 122 de la misma hacia el dominio de la frecuencia (o el dominio de tiempo-frecuencia) a fin de obtener una secuencia de los parametros de la senal de audio, los cuales pueden ser unos valores espectrales en un dominio de tiempo-frecuencia. Para este proposito, el transformador de senal basado en ventanas 130 comprende un elemento de ventaneo/transformador 136 que puede ser configurado para transformar bloques de muestras (por ejemplo, "cuadros") de la informacion de audio de entrada 110, 122 en unos conjuntos de valores espectrales 132. Por ejemplo, el elemento de ventaneo/transformador puede ser configurado para proveer un conjunto de valores espectrales para cada bloque de muestras (es decir, para cada "cuadro") de la informacion de audio de entrada Sin embargo, los
5
10
15
20
25
30
35
40
45
50
55
60
bloques de muestras es decir los "cuadros") de la informacion de audio de entrada 110, 122, preferiblemente pueden estar superpuestos entre si de modo que los bloques de las muestras (los cuadros) adyacentes en el tiempo de la informacion de audio de entrada 110, 122 comparten una pluralidad de muestras. Por ejemplo, dos bloques de las muestras (los cuadros) subsiguientes en el tiempo pueden ser superpuestos en aproximadamente 50% de las muestras. Por ende, el elemento de ventaneo/transformador 136 puede ser configurado para llevar a cabo una tal denominada transformacion solapada, por ejemplo, una transformacion discreta del coseno modificada (MDCT). Sin embargo, cuando se lleva a cabo la transformacion discreta del coseno modificada, el elemento de ventaneo/transformador 136 puede aplicar una ventana a cada bloque de muestras, con lo cual se ponderan las muestras centrales (dispuestas en el tiempo en la proximidad de un centro en el tiempo de un bloque de muestras) mas fuerte que las muestras perifericas (dispuestas en el tiempo en la proximidad en el tiempo de los extremos frontal y posterior de un bloque de muestras). El ventaneo puede ayudar a evitar artefactos, que tendrian si origen en la segmentacion de la informacion de audio de entrada 110, 122 en unos bloques. De ese modo, la aplicacion de ventanas antes o durante la transformacion desde el dominio del tiempo hacia el dominio de tiempo-frecuencia permite una transicion suave entre bloques subsiguientes de muestras de la informacion de audio de entrada 110, 122. Para mas detalles con respecto al ventaneo, se hace otra vez referencia a la norma internacional ISO/IEC 14496, parte 3, sub-parte 4 y a los documentos a los cuales se hace referencia en la misma. En una version muy simple del codificador de audio, una cantidad de muestras 2N de un cuadro de audio (definido como un bloque de muestras) sera transformado en un conjunto de 2N coeficientes espectrales, independientes de las caracteristicas de senal. Sin embargo, se ha encontrado que un semejante concepto, en el cual se usa una longitud uniforme de transformacion de 2N muestras de la informacion de audio 110, 122 independiente de las caracteristicas de la informacion de audio de entrada 110, 122 da como resultado una degradacion grave de las transiciones, porque en el caso de una transicion, la energia de la transicion es expandida a lo largo del cuadro entero cuando se decodifica la informacion de audio. No obstante, se ha encontrado que se puede obtener una mejora en la codificacion de los bordes si se elige una longitud de transformacion mas corta (por ejemplo 2N/8 = N/4 muestras por transformacion). Sin embargo, tambien se ha encontrado que la eleccion de una longitud de transformacion mas corta aumenta tipicamente la cantidad requerida de bits transmitidos, aun si se obtienen menos valores espectrales para una longitud de transformacion mas corta en comparacion con una longitud de transformacion mas larga. Por ende, se ha encontrado que es recomendable conmutar de una longitud de transformacion larga (por ejemplo, 2N muestras por transformacion) a una longitud de transformacion corta (por ejemplo, 2N/8 = N/4 muestras por transformacion) en la proximidad de una transicion (tambien designada como borde) del contenido de audio y de conmutar de vuelta a una longitud de transformacion larga (por ejemplo, 2N muestras por transformacion) despues de la transicion. La conmutacion de la longitud de transformacion esta relacionada con un cambio de una ventana aplicada para el ventaneo de las muestras de la informacion de audio de entrada 110, 122 antes o durante dela transformacion.
Con respecto a este asunto, se debe notar que en muchos casos un codificador de audio es capaz de usar mas de dos ventanas diferentes. Por ejemplo, una tal denominado “only_long_sequence” puede ser usada para codificar un cuadro de audio actual, si tanto el cuadro precedente (precedente al cuadro considerado actualmente) como el cuadro siguiente (siguiente al cuadro considerado actualmente) son codificados usando una longitud de transformacion larga (por ejemplo 2N muestras). En contraste, se puede usar una tal denominada “long_start_sequence” en un cuadro que es transformado usando una longitud de transformacion larga, el cual esta precedido por un cuadro transformado usando una longitud de transformacion larga y el cual es seguido por un cuadro transformado usando una longitud de transformacion corta. En un cuadro, que es transformado usando una longitud de transformacion corta, se puede aplicar una tal denominada secuencia de ventanas “eight_short_sequence” que comprende 8 (sub-)ventanas cortas y superpuestas. Ademas, se puede aplicar una tal denominada ventana “long_stop_sequence” para transformar un cuadro, el cual esta precedido por un cuadro previo transformado usando una longitud de transformacion corta y el cual es seguido por un cuadro transformado usando una longitud de transformacion larga. Para mas detalles con respecto a las posibles secuencias de ventanas, se hace referencia a la norma Internacional IOC/IEC 144963; 2005 (E), parte 3, sub-parte 4. Tambien se hace referencia a las Figuras 3, 4, 5 y 6, que se explicaran en detalle mas abajo.
Sin embargo, se debe notar que en algunas realizaciones, se pueden usar uno o mas tipos adicionales de ventanas. Por ejemplo, se puede aplicar una tal denominada ventana “stop_start_sequence”, si el cuadro actual esta precedido por un cuadro, en el cual se usa una longitud de transformacion corta, y si el cuadro actual esta seguido por un cuadro, en el cual se usa una longitud de transformacion corta.
Por ende, el transformador de senal basado en ventanas 130 comprende un elemento de determinacion se secuencia de ventana 138 que esta configurado para proveer una informacion de tipo de ventana 140 al
5
10
15
20
25
30
35
40
45
50
55
60
elemento de ventaneo/transformador 136, de modo que el elemento de ventaneo/transformador 136 pueda usar un tipo de ventana apropiado ("secuencia de ventana"). Por ejemplo, el elemento de determinacion de secuencia de ventana 130 puede ser configurado para evaluar directamente la informacion de audio de entrada 110 o la informacion de audio de entrada pre-procesada 122. Sin embargo, de manera alternativa, el codificador de audio 100 puede comprender un procesador de modelo psicoacustico 150 que esta configurado para recibir la informacion de audio de entrada 110 o la informacion de audio de entrada pre-procesada 122, y para aplicar un modelo psicoacustico a fin de extraer una informacion que es importante para la codificacion de la informacion de audio de entrada 110, 122 desde la informacion de audio de entrada 110, 122. Por ejemplo, el procesador de modelo psicoacustico 150 puede ser configurado para identificar transiciones dentro de la informacion de audio de entrada 110, 122, y para proveer una informacion de longitud de ventana 152 que pueden ser cuadros de senal, en los cuales se desea una longitud de transformacion corta debido a la presencia de una transicion en la informacion de audio de entrada correspondiente 110, 122.
El procesador de modelo psicoacustico 150 tambien puede ser configurado para determinar cuales valores espectrales requieren ser codificados con una alta resolucion (es decir con una cuantificacion fina) y cuales valores espectrales requieren ser codificados con una resolucion mas baja (es decir con una cuantificacion mas gruesa) sin obtener una degradacion grave del contenido de audio. Para este proposito, el procesador de modelo psicoacustico 150 puede ser configurado para evaluar los efectos de enmascaramiento psicoacustico, con lo cual se identifican los valores espectrales (o las bandas de valores espectrales), que son de una importancia psicoacustica mas baja, y otros valores espectrales (u otras bandas de valores espectrales), que son de una importancia psicoacustica mas alta. Por ende, el procesador de modelo psicoacustico 150 provee una informacion de importancia psicoacustica 154.
El codificador de audio 100 comprende ademas de manera opcional un procesador espectral 160 que esta configurado para recibir la secuencia de parametros de senal de audio 132 (por ejemplo, una representacion en el dominio de tiempo-frecuencia de la informacion de audio de entrada 110, 122) y para proveer, sobre la base de la misma, una secuencia pos-procesada de los parametros de senal de audio 162. Por ejemplo, el pos-procesador espectral 160 puede ser configurado para llevar a cabo una formacion de ruido en el tiempo, una prediccion a largo plazo, una sustitucion de ruido perceptiva y/o un procesamiento de canal de audio.
El codificador de audio 100 tambien comprende de manera opcional un procesador de ajuste, cuantificacion y codificacion 170 que esta configurado para ajustar los parametros de senal de audio (por ejemplo los valores en el dominio de tiempo-frecuencia o los "valores espectrales") 132, 162, para llevar a cabo una cuantificacion y para codificar los valores ajustados y cuantificados. Para este proposito, el procesador de ajuste, cuantificacion y codificacion 170 puede ser configurado para usar la informacion 154 suministrado por el procesador de modelo psicoacustico, por ejemplo, a fin de decidir cual ajuste y/o cual cuantificacion deben ser aplicados a cuales parametros de senal de audio (o valores espectrales). Por ende el ajuste y la cuantificacion pueden ser adaptadas de modo que se obtenga la cantidad deseada de bits transmitidos de los parametros de senal de audio (o valores espectrales) ajustados, cuantificados y codificados.
Ademas, el codificador de audio 100 comprende un codificador de palabra de codigo de longitud variable 180 que esta configurado para recibir la informacion de tipo de ventana 140 desde el elemento de determinacion de secuencia de ventana 138 y para proveer, sobre la base de la misma, una palabra de codigo de longitud variable 182 que describe el tipo de ventana usado para la operacion de ventaneo y transformacion realizado por el elemento de ventaneo(transformador 136. En lo que sigue, se describiran los detalles con respecto al codificador de palabra de codigo de longitud variable 180.
Mas aun, el codificador de audio 100 comprende de manera opcional un formateador de carga util para la transmision de bits 190 que esta configurado para recibir la informacion espectral ajustada, cuantificada y codificada 172 (que describe la secuencia de los parametros de senal de audio o de los valores espectrales 132) y la palabra de codigo de longitud variable 182 que describe el tipo de ventana usado para la operacion de ventaneo y transformacion. Por ende, el formateador de carga util para la transmision de bits 190 provee, una transmision de bits 192 en la cual se incorpora la informacion 172 y la palabra de codigo de longitud variable 182. La transmision de bits 192 sirve como una informacion de audio codificada y puede ser guardada en un medio y/o transferida desde el codificador de audio 100 a un decodificador de audio.
Para resumir lo anterior, el codificador de audio 100 esta configurado para proveer la informacion de audio codificada 192 sobre la base de una informacion de audio de entrada 110. El codificador de audio 100 comprende, como un componente importante, el transformador de senal basado en ventanas 130 que esta configurado para proveer una secuencia de parametros de senal de audio 132 (por ejemplo una secuencia de
5
10
15
20
25
30
35
40
45
50
55
60
valores espectrales) sobre la base de una pluralidad de porciones ventaneadas de la informacion de audio de entrad 110. El transformador de senal basado en ventanas 130 es configurado de modo que se selecciona un tipo de ventana para obtener las porciones ventaneadas de la informacion de audio de entrada en dependencia de las caracterlsticas de la informacion de audio. El transformador de senal basado en ventanas 130 esta configurado para conmutar entre un uso de ventanas que tienen una pendiente de transicion mas larga y ventanas que tienen una pendiente de transicion ( mas corta, y tambien para conmutar entre un uso de ventanas que tienen dos o mas longitudes de transformacion diferentes. Por ejemplo, el transformador de senal basado en ventanas 130 esta configurado para determinar un tipo de ventana usado para transformar una porcion actual (por ejemplo, un cuadro) de la informacion de audio de entrada en dependencia de un tipo de ventana usado para transformar una porcion precedente (por ejemplo, un cuadro) de la informacion de audio de entrada, y en dependencia de un contenido de audio de la porcion actual de la informacion de audio de entrada. Sin embargo, el codificador de audio esta configurado para codificar, mediante el uso del codificador de palabra de codigo de longitud variable 180, una informacion de tipo de ventana 140 que describe un tipo de ventana usada para transformar una porcion actual (por ejemplo, un cuadro) de la informacion de audio de entrada que usa una palabra de codigo de longitud variable.
Tipos de ventana de transformacion
En lo que sigue se describiran una descripcion detallada de las distintas ventanas que pueden ser aplicadas por el elemento de ventaneo/transformador 136 y que pueden ser seleccionadas por el elemento de determinacion de ventana 138. Sin embargo, las ventanas que se discuten en la presente, se deben tomar solo como un ejemplo. En lo que sigue, se discutiran los conceptos inventivos para la codificacion eficiente del tipo de ventana.
Tomando referencia ahora a la Figura 3, la cual muestra una representacion grafica de distintos tipos de ventanas de transformacion, se dara una vista global sobre las nuevas ventanas de muestreo. Sin embargo, se hace ademas referencia a la norma ISO/IEC 14496-3, parte 3, sub-parte 4, en la cual se describen los conceptos para la aplicacion de ventanas de transformacion aun mas detallada.
La Figura 3 muestra una representacion grafica de un primer tipo de ventana 310 que comprende una pendiente de ventana de lado izquierdo (comparativamente) larga 310a (1024 muestras) y una pendiente de ventana de lado derecho (comparativamente) larga 310b (1024 muestras). Se asocian un total de 2048 muestras y 1024 coeficientes espectrales con el primer tipo de ventana 310, de modo que el primer tipo de ventana 310 comprende una tal denominada "longitud de transformacion larga".
Un segundo tipo de ventana 312 es designado como “long_start_sequence” o “long_start_window”. El segundo tipo de ventana comprende una pendiente de ventana de lado izquierdo (comparativamente) larga 312a (1024 muestras) y una pendiente de ventana de lado derecho (comparativamente) corta 312b (128 muestras). Se asocian un total de 2048 muestras y 1024 coeficientes espectrales con el segundo tipo de ventana, de modo que el segundo tipo de ventana 312 comprende una longitud de transformacion larga.
Un tercer tipo de ventana 314 es designado como “long_stop_sequence” o “long_stop_window”. El tercer tipo de ventana comprende una pendiente de ventana de lado izquierdo corta 314a (128 muestras) y una pendiente de ventana de lado derecho larga 314b (1024 muestras). Se asocian un total de 2048 muestras y 1024 coeficientes espectrales con el tercer tipo de ventana 314, de modo que el tercer tipo de ventana comprende una longitud de transformacion larga.
Un cuarto tipo de ventana 316 es designado como “stop_start_sequence” o “stop_start_window”. El cuarto tipo de ventana comprende una pendiente de ventana de lado izquierdo corta 316a (128 muestras) y una pendiente de ventana de lado derecho corta 316b (128 muestras). Se asocian un total de 2048 muestras y 1024 coeficientes espectrales con el cuarto tipo de ventana, de modo que el cuarto tipo de ventana comprende una "longitud de transformacion larga".
Un quinto tipo de ventana 318 difiere significativamente de los tipos de ventana primero a cuarto. El quinto tipo de ventana comprende una superposicion de ocho "ventanas cortas" o sub-ventanas 319a a 319h, las cuales estan dispuestas con uns superposicion en el tiempo. Cada una de las ventanas cortas 319a a 319h comprende una longitud de 256 muestras. Por ende, se asocia una transformacion MDCT corta que transforma 256 muestras en 128 valores espectrales, a cada una de las ventanas cortas 319a a 319h. Por ende, se asocian ocho conjuntos cada uno de 128 llneas espectrales con el quinto tipo de ventana 318
5
10
15
20
25
30
35
40
45
50
55
60
mientras se asocia un unico conjunto de 1024 valores espectrales con cada uno de los tipos de ventana primero a cuarto 310, 312, 314, 316. Por ende, se puede decir que el quinto tipo de ventana comprende una longitud de transformacion corta. No obstante, el quinto tipo de ventana comprende una pendiente de ventana de lado izquierdo corta 318a y una pendiente de ventana de lado derecho corta 318b.
De ese modo, para un cuadro, al cual se asocia el primer tipo de ventana 310, el segundo tipo de ventana 312, el tercer tipo de ventana 312 o el cuarto tipo de ventana 316, 2048 muestras de la informacion de audio de entrada son ventaneadas en conjunto y transformadas por MDCT como un unico grupo, hacia el dominio de tiempo-frecuencia. En contraste, para un cuadro, al cual se asocia el quinto tipo de ventana 318, se transforman de manera individual (o de manera separada) mediante MDCT ocho sub-conjuntos cada una de 256 muestras (por lo menos parcialmente superpuestas), de modo que se obtengan ocho conjuntos de coeficientes de MDCT (valores de tiempo-frecuencia).
Tomando otra vez una referencia a la Figura 3 se debe notar, que la Figura 3 muestra una pluralidad de ventanas adicionales Estas ventanas adicionales, a saber las tal denominadas “stop_1152_sequence” o “stop_window_1152” 330 y una tal denominada “stop_start_1152_sequence” o “stop_start_window_1152” 332, pueden ser aplicadas si el cuadro actual es precedido por un cuadro previo, el cual es codificado en un dominio de la prediccion lineal. En tales casos, se adapta una longitud de la transformacion a fin de permitir una eliminacion de los artefactos de aliasing en el dominio del tiempo.
Tambien se pueden aplicar de manera opcional unas ventanas adicionales 362, 366, 368, 382, si el cuadro actual es seguido por un cuadro subsiguiente que es codificado en el dominio de la prediccion lineal. Sin embargo los tipos de ventana 330, 332, 362, 366, 368, 382 deben ser considerados como opcional y no son necesarios para la implementacion del concepto inventivo.
Transiciones entre los tipos de ventana de transformacion
Tomando ahora referencia a la Figura 4, que muestra una representacion esquematica de las transiciones permitidas entre las secuencias de ventana (o tipos de ventana de transformacion), se explicaran algunos detalles adicionales. Si se toma nota que se aplican dos ventanas de transformacion subsiguientes, las cuales tienen uno de los tipos de ventana 310, 312, 314, 316, 318 para formar unos bloques de muestras de audio que se superponen parcialmente, se puede entender que una pendiente de ventana de lado derecho de una primera ventana debe ser elegida para coincidir con na pendiente de ventana de lado izquierdo de una segunda ventana subsiguiente a fin de evitar cualquier artefacto causado por la superposicion parcial. Por ende, una eleccion de los tipos de ventana para el segundo cuadro (a partir de dos cuadros subsiguientes) es limitada, si el tipo de ventana para el primer cuadro (a partir de dos cuadros subsiguientes) es dado. Tal como se puede ver en la Figura 4, si una primera ventana es una ventana “only_long_sequence”, la primera ventana puede ser seguida solo por una ventana “only_long_sequence” o una ventana “long_start_sequence”. En contraste, no esta permitido usar una ventana “eight_short_sequence”, una ventana “long_stop_sequence” o una ventana “stop_start_sequence” para el segundo cuadro que sigue al primer cuadro, si se usa la ventana “only_long_sequence” para la transformacion del primer cuadro. De manera similar, si se usa en el primer cuadro una ventana “long_stop_sequence”, el segundo cuadro puede usar solo una ventana “only_long_sequence” o una ventana “long_start_sequence”, pero el segundo cuadro no puede usar una ventana “eight_short_sequence”, una ventana “long_stop_sequence” o una ventana “stop_start_sequence”.
En contraste, si el primer cuadro (a partir de dos cuadros subsiguientes) usa una ventana “long_start_sequence”, una ventana “eight_short_sequence” o una ventana “stop_start_sequence”, el segundo cuadro (a partir de dos cuadros subsiguientes) no puede usar una ventana “only_long_sequence” o una ventana “long_start_sequence”, pero si puede usar una ventana “eight_short_sequence”, una ventana “long_stop_sequence” o una ventana “stop_start_sequence”.
Las transiciones permitidas entre los tipos de ventana “only_long_sequence”, “long_start_sequence”, “eight_short_sequence”, “long_stop_sequence” y “stop_start_sequence” se muestran mediante un “tilde” en la Figura 4. En contraste, las transiciones entre tipos de ventana para los cuales no hay un "tilde", no estan permitidas en algunas realizaciones.
Ademas se debe notar que pueden ser aplicables los tipos de ventana adicionales “LPD_sequence”, “stop_1152_sequence” y “stop_start_1152_sequence”, si son posibles las transiciones entre un modo nucleo en el dominio de la frecuencia y un modo nucleo en el dominio de la prediccion lineal. No obstante, una semejante posibilidad se debe considerar opcional y se discutira mas abajo.
5
10
15
20
25
30
35
40
45
50
55
60
Ejemplo de una secuencia de ventana
En lo que sigue, se describira una secuencia de ventana que hace uso de los tipos de ventana 310, 312, 314, 316, 318. La Figura 5 muestra una representacion grafica de una semejante secuencia de ventana. Tal como se puede ver, la abscisa 510 indica el tiempo. Los cuadros, que estan superpuestos por aproximadamente 50%, estan marcados en la Figura 5 y designados con "cuadro 1" a "cuadro 7". La Figura 5 muestra un primer cuadro 520 que puede comprender, por ejemplo, 2048 muestras. Un segundo cuadro 522 esta desplazado en el tiempo con respecto al primer cuadro 520 por (aproximadamente) 1024 muestras, de modo que el segundo cuadro esta superpuesto sobre el primer cuadro 520 por (aproximadamente) 50%. En la Figura 5 se puede ver una alineacion en el tiempo de un tercer cuadro 524, un cuarto cuadro 526, un quinto cuadro 528, un sexto cuadro 530 y un septimo cuadro 532. Al primer cuadro 520 esta asociada una ventana “only_long_sequence” 540 (del tipo 310). Al segundo cuadro 522 tambien esta asociada una ventana “only_long_sequence” 542 (del tipo 310). Una ventana “long_start_sequence” 544 (del tipe 312) es asociada al tercero cuadro, una ventana “eight_short_sequence” 546 (del tipo 318) es asociada al cuarto cuadro526, una ventana “stop_start_sequence” 548 (del tipo 316) es asociada al quinto cuadro, una ventana “eight_short_sequence” 550 (del tipo 318) es asociada al sexto cuadro frame 530 y una ventana “long_stop_sequence” 552 (del tipo 314) es asociada con el septimo cuadro 532. Por ende, un unico conjunto de 1024 coeficientes de MDCT es asociado con el primer cuadro 520, otro unico conjunto de 1024 coeficientes de MDCT es asociado con el segundo cuadro 522 y otro unico conjunto mas de 1024 coeficientes de MDCT es asociado con el tercer cuadro 524. Sin embargo ocho conjuntos de 128 coeficientes de MDCT son asociados con el cuarto cuadro 526. Un unico conjunto de 1024 coeficientes de MDCT es asociado con el quinto cuadro 528.
La secuencia de ventana que se muestra en la Figura 5, puede traer consigo, por ejemplo, un resultado de codificacion con una cantidad de bits transmitidos particularmente eficiente, si hay un evento transitorio en una porcion central del cuarto cuadro 526, y si hay otro evento transitorio en una porcion central del sexto cuadro 530 mientras la senal es aproximadamente estacionaria durante el resto del tiempo (por ejemplo durante el primer cuadro 520, el segundo cuadro 522, el comienzo del tercer cuadro 524, el centro del quinto cuadro 528 y al final del septimo cuadro 532).
Sin embargo, tal como se explicara en detalle en lo que sigue, el presente invento crea un concepto particularmente eficiente para codificar los tipos de ventana asociados con los cuadros de audio. Con respecto a este asunto, se deberla notar que se usan un total de cinco distintos tipos de ventana 310, 312, 314, 316, 318 en la secuencia de ventana 500 de la Figura 5. Por ende, "normalmente" serla necesario usar tres bits para codificar el tipo de cuadro. En contraste, el presente invento crea un concepto que permite una codificacion del tipo de ventana con una demanda reducida de bits.
Tomando ahora referencia a la Figuras 6a y tambien a las Figuras 7a, 7b y 7c, se explicara el concepto inventivo para la codificacion del tipo de ventana. La Figura 6a muestra una tabla que representa una sintaxis propuesta para una informacion de tipo de ventana que incluye una regla para la codificacion del tipo de ventana. Por el proposito de la explicacion, se supone que la informacion de tipo de ventana 140, la cual es suministrada al codificador de palabra de codigo de longitud variable 180 por el elemento de determinacion de secuencia de ventana 138, describe el tipo de ventana del cuadro actual y puede tomar uno de los valores “only_long_sequence”, “long_start_sequence”, “eight_short_sequence”, “long_stop_sequence”, “stop_start_sequence” y de manera opcional e incluso uno de los valores “stop_1152_sequence” y “stop_start_1152_sequence”. Sin embargo, de acuerdo con el concepto inventivo de codificacion, el codificador de palabra de codigo de longitud variable 180 provee una informacion de “window_length” de 1 bit, que describe una longitud de una pendiente de ventana del lado derecho de la ventana asociada con el cuadro actual. Tal como se puede ver en la Figura 7a, un valor de "0" de la informacion de “window_length” de 1 bit puede representar una longitud de la pendiente de ventana del lado derecho de 1024 muestras y un valor de "1" puede representar una longitud de la pendiente de ventana del lado derecho de 128 muestras. Por ende, el codificador de palabra de codigo de longitud variable 180 puede proveer un valor de "0" de la informacion de “window_length” si el tipo de ventana es “only_long_sequence” (primer tipo de ventana 310) o “long_stop_sequence” (tercer tipo de ventana 314). De manera opcional, el codificador de palabra de codigo de longitud variable 180 tambien puede proveer una informacion de “window_length” de "0" para un tipo de ventana “only_long_sequence” (tipo de ventana 330). En contraste, el codificador de palabra de codigo de longitud variable 180 puede proveer un valor de "1" de la informacion para una ventana “long_start_sequence” (segundo tipo de ventana 312), para una ventana “stop_start_sequence” (cuarto tipo de ventana 316) y para una ventana “eight_short_sequence” (quinto tipo de ventana 318). De manera opcional, el codificador de palabra de codigo de longitud variable 180 tambien puede proveer una informacion de “window_length” de "1"
5
10
15
20
25
30
35
40
45
50
55
para una ventana “only_long_sequence” (tipo de ventana 332). Ademas, el codificador de palabra de codigo de longitud variable 180 tambien puede proveer de manera opcional un valor de "1" de la informacion de “window_length” para uno o mas tipos de ventana 362, 366, 368, 382.
Sin embargo, el codificador de palabra de codigo de longitud variable 180 esta configurado para proveer de manera selectiva otra informacion de 1 bit, a saber, la tal denominada informacion de “transform_length” del cuadro actual, en dependencia del valor de la informacion de “window_length” de 1 bit del cuadro actual. Si la informacion de “transform_length” del cuadro actual toma el valor "0" (es decir para los tipos de ventana “only_long_sequence”, “long_stop_sequence” y de manera opcional “stop_1152_sequence”), el codificador de palabra de codigo de longitud variable 180 no provee una informacion de “transform_length” para la inclusion dentro de la transmision de bits 192. En contraste, si la informacion de “transform_length” del cuadro actual toma el valor "1" (es decir para los tipos de ventana “long_start_sequence”, “stop_start_sequence”, “eight_short_sequence” y, de manera opcional, “LPD_start_sequence” y “stop_start_1152_sequence”), el codificador de palabra de codigo de longitud variable 180 provee una informacion de “transform_length” de 1 bit para la inclusion dentro de la transmision de bits 192. Dado el caso que se provea la informacion de “transform_length”, la misma es suministrada de modo que la informacion de “transform_length” represente la longitud de transformacion aplicada al cuadro actual. De ese modo, se provee la informacion de “transform_length” para tomar un primer valor (por ejemplo el valor de "0") para los tipos de ventana “long_start_sequence”, “stop_start_sequence” y, de manera opcional, “stop_start_1152_sequence” y “LPD_start_sequence”, con lo cual se indica que el tamano de nucleo de MDCT aplicado al cuadro actual es de 1024 muestras (o de 1152 muestras). En contraste, la informacion de “transform_length” es suministrada por el codificador de palabra de codigo de longitud variable 180 para tomar un segundo valor (por ejemplo el valor de "1") si se asocia un tipo de ventana “eight_short_sequence” con el cuadro actual, con lo cual se indica que el tamano de nucleo de MDCT asociado al cuadro actual es de 128 muestras (ver la representacion de sintaxis de la Figura 7b).
Para resumir, el codificador de palabra de codigo de longitud variable 180 provee una palabra de codigo de 1 bit, que comprende solo la informacion de “window_length” de 1 bit del cuadro actual, para la inclusion dentro de la transmision de bits 192, si la pendiente de ventana del lado derecho de la ventana asociada al cuadro actual es comparativamente larga (la pendiente de ventana larga 310b, 314b, 330b), es decir para los tipos de ventana “only_long_sequence”, “long_stop_sequence” y “stop_1152_sequence”. En contraste, el codificador de palabra de codigo de longitud variable 180 provee una palabra de codigo de 2 bit, que comprende la informacion de “window_length” de 1 bit y la informacion de “transform_length” de 1 bit, para la inclusion dentro de la transmision de bits 192, si la pendiente de ventana del lado derecho de la ventana asociada al cuadro actual es una pendiente de ventana corta 312b, 316b, 318b, 332b, es decir para los tipos de ventana “long_start_sequence”, “eight_short_sequence”, “stop_start_sequence” y, de manera opcional, “stop_start_1152_sequence”. De ese modo, se ahorra 1 bit en le caso del tipo de ventana “only_long_sequence” y del tipo de ventana “long_stop_sequence” (y de manera opcional para un tipo de ventana stop_1152_sequence”).
De ese modo, solo son necesarios un o dos bits, dependiendo del tipo de ventana asociada con el cuadro actual, para la codificacion de una seleccion de un grupo de cinco (o aun mas) posibles tipos de ventana.
Se deberla notar aqul, que la Figura 6a muestra un mapeo de un tipo de ventana, el cual es definido en una columna de tipos de ventana 630, sobre un valor de la informacion de “window_length” la cual se muestra en la columna 620 y tambien sobre un estado de provision y un valor de provision (si es necesario) de la informacion de “window_length”, lo cual se muestra en una columna 624.
La Figura 6b muestra una representacion grafica de un mapeo para derivar la informacion de window_length” del cuadro actual y la informacion de “transform_length” (o una indicacion que la informacion de “transform_length” es omitida de la transmision de bits 192) a partir del tipo de ventana del cuadro actual. El mapeo puede ser realizado mediante el codificador de palabra de codigo de longitud variable 180, el cual recibe la informacion de tipo de ventana 140 que describe el tipo de ventana del cuadro actual y la mapea sobre la informacion de "window_length” como se muestra en una columna 660 de la tabla de la Figura 6b y sobre una informacion de “transform_length” como se muestra en una columna 662 de la tabla de la Figura 6b. En particular, el codificador de palabra de codigo de longitud variable 180 puede proveer la informacion de “transform_length” solo si la informacion de “window_length” toma un valor predeterminado (por ejemplo, de "1") y en otro caso omitir la provision de la informacion de “transform_length” dentro de la transmision de bits 192. Por ende, puede variar un numero de bits de tipo de ventana incluidos dentro de la transmision de bits
5
10
15
20
25
30
35
40
45
50
55
60
192 para un cuadro dado, como se indica en una columna 664 de la tabla de la Figura 6b, en dependencia del tipo de ventana del cuadro actual.
Tambien se debe notar que en algunas realizaciones el tipo de ventana del cuadro actual puede ser adaptado o modificado, si el cuadro actual es seguido por un cuadro codificado en el dominio de la prediccion lineal. Sin embargo, tlpicamente esto no afecta el mapeo del tipo de ventana sobre la informacion de “window_length” y la informacion de “transform_length” suministrada de manera selectiva.
Por ende, el codificador de audio 100 esta configurado para proveer una transmision de bits 192, de modo que la transmision de bits 192 obedece a la sintaxis, lo cual sera discutido mas abajo haciendo referencia a las Figuras 10a a 10e.
Vista global del decodificador de audio
En lo que sigue, se describira en detalle un decodificador de audio de acuerdo con una realizacion de la invencion tomando referencia a la Figura 2. La Figura 2 muestra un diagrama esquematico de un decodificador de audio, de acuerdo con una realizacion de la invencion. El decodificador de audio 200 de la Figura 2 esta configurado para recibir una transmision de bits 210 que comprende una informacion de audio codificada y para proveer, sobre la base de la misma, una informacion de audio decodificada 212 (por ejemplo en la forma de una senal de audio en el dominio del tiempo). El decodificador de audio 200 comprende de manera opcional un deformateador de carga util para la transmision de bits 220 el cual esta configurado para recibir la transmision de bits 210 y para extraer de la transmision de bits 210 una informacion de valor espectral codificada 222 y una informacion de ventana de longitud de palabra de codigo variable 224. El deformateador de carga util para la transmision de bits 220 puede ser configurado para extraer informacion adicional, como una informacion de control, una informacion de ganancia y una informacion de parametro de audio adicional, desde la transmision de bits 210. Sin embargo, esta informacion adicional es bien conocida para un experto en la materia y no es importante para el presente invento. Para mas detalles, se hace referencia, por ejemplo, a la norma Internacional IOC/IEC 14496-3; 2005 (E), parte 3, sub-parte 4.
El decodificador de audio 200 comprende un decodificador/cuantificador inverso/medio de re-ajuste 230 el cual esta configurado para decodificar la informacion de valor espectral codificada 222, para llevar a cabo una cuantificacion inversa y para tambien llevar a cabo un re-ajuste de la informacion de valor espectral cuantificada inversamente, obteniendo de ese modo una informacion de valor espectral decodificada 232. El decodificador de audio 200 comprende ademas de manera opcional un pre-procesador espectral 240, el cual puede ser configurado para llevar a cabo una o mas etapas de procesamiento espectral. Algunos de los posibles pasos de pre-procesamiento espectral son explicados, por ejemplo, en la norma internacional ISO/IEC 14496-3: 2005 (E), parte 3: sub-parte 4. Por ende, la funcionalidad del decodificador/cuantificador inverso/medio de re-ajuste y el pre-procesador espectral opcional 240 da como resultado la provision de una representacion de tiempo-frecuencia (decodificada y, de manera opcional, pre-procesada) 242 de la informacion de audio codificada representada por la transmision de bits 210. El decodificador de audio 200 comprende, como un componente clave, un transformador de senal basado en ventanas 250. El transformador de senal basado en ventanas 250 esta configurado para transformar la representacion de tiempo-frecuencia (decodificada) 242 en una senal de audio en el dominio del tiempo 252. Para este proposito, se puede configurar el transformador de senal basado en ventanas 250 para llevar a cabo una transformacion del dominio de tiempo-frecuencia al dominio del tiempo. Por ejemplo, el transformador/elemento de ventaneo 254 del transformador de senal basado en ventanas 250 puede ser configurado para recibir, como la representacion de tiempo-frecuencia 242, unos coeficientes de transformacion discreta del coseno modificada (coeficientes de MDCT) asociados con cuadros superpuestos en el tiempo de la informacion de audio codificada. Por ende, el transformador/elemento de ventaneo 254 puede ser configurado para llevar a cabo una transformacion solapada, en la forma de una transformacion discreta del coseno modificada inversa (IMDCT), para obtener las porciones ventaneadas en el dominio del tiempo (los cuadros) de la informacion de audio codificada y para superponer-y-sumar las subsiguientes porciones ventaneadas en el dominio del tiempo (los cuadros) usando una operacion de superposicion-y- suma. Cuando se reconstruye la senal de audio en el dominio del tiempo 252, sobre la base de la representacion de tiempo-frecuencia 242, es decir cuando se lleva a cabo la transformacion discreta del coseno modificada inversa en combinacion con el ventaneo y la operacion de superposicion-y-suma, el transformador/elemento de ventaneo 254 puede seleccionar una ventana, desde una pluralidad de tipos de ventana disponibles, a fin de permitir una reconstruccion apropiada y tambien para evitar cualquier artefacto del armado de bloques.
5
10
15
20
25
30
35
40
45
50
55
60
El decodificador de audio tambien comprende de manera opcional un pos-procesador en el dominio del tiempo 260 que esta configurado para obtener la informacion de audio decodificada 212 sobre la base de la senal de audio del dominio del tiempo 252. Sin embargo, se debe notar que en algunas realizaciones, la informacion de audio decodificada 212 puede ser identica a la senal de audio en el dominio del tiempo. El decodificador de audio 200 comprende ademas un selector de ventana 270 que esta configurado para recibir la informacion de ventana de longitud de palabra de codigo variable 224, por ejemplo, desde el deformateador de carga util de la transmision de bits opcional 220. El selector de ventana 270 esta configurado para proveer una informacion de ventana 272 (por ejemplo una informacion de tipo de ventana o una informacion de secuencia de ventana) al transformador/elemento de ventaneo 254. Se deberla notar que el selector de ventana 270 puede ser o no puede ser parte del transformador de senal basado en ventanas 250, lo cual depende de la implementacion real.
Para resumir lo anterior, el decodificador de audio 200 esta configurado para proveer la informacion de audio decodificada 212 sobre la base de una informacion de audio codificada 210. El decodificador de audio 200 comprende, como un componente clave, un transformador de senal basado en ventanas 250, el cual esta configurado para mapear una representacion de tiempo-frecuencia 242, la cual esta descrita por la informacion de audio codificada 210, sobre una representacion en el dominio del tiempo 252. El transformador de senal basado en ventanas 250 esta configurado para seleccionar una ventana desde una pluralidad de ventanas que comprende ventanas de distintas pendientes de transicion (por ejemplo, de distintas longitudes de pendiente de transicion) y ventanas de distintas longitudes de transformacion, sobre la base de la informacion de ventana 272. El decodificador de audio 200 comprende, como otro componente clave, un selector de ventana 270 que esta configurado para evaluar una informacion de ventana de longitud de palabra de codigo variable 224 a fin de seleccionar una ventana para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia 242 asociada con un cuadro dado de la informacion de audio. Los otros componentes del decodificador de audio, a saber el deformateador de carga util de la transmision de bits 220, el decodificador/cuantificador inverso/medio de re-ajuste 230, el pre-procesador espectral 240 y el pos- procesador en el dominio del tiempo 260 pueden ser considerados como opcional, pero pueden ser presentes en algunas implementaciones del decodificador de audio 200.
En lo que sigue, se describiran unos detalles con respecto a la ventana para la transformacion y el ventaneo llevado a cabo por el transformador/elemento de ventaneo 254. Sin embargo, con respecto a la importancia de la eleccion de distintas ventanas se hace referencia a las explicaciones hechas mas arriba.
El decodificador de audio 200 preferiblemente es capaz de usar los tipos de ventana “only_long_sequence”, “long_start_sequence”, “eight_short_sequence”, “long_stop_sequence” y “stop_start_sequence” descritos mas arriba. Sin embargo, de manera opcional, el decodificador de audio puede ser capaz de usar tipos de ventana adicionales, por ejemplo el tal denominado “stop_1152_sequence” y el tal denominado “stop_start_1152_sequence” (los cuales pueden se usados ambos para una transicion desde un cuadro codificado en el dominio de la prediccion lineal a un cuadro codificado en el dominio de la frecuencia). Ademas, el decodificador de audio 200 puede ser configurado adicionalmente para el uso de tipos de ventana adicionales, como, por ejemplo, los tipos de ventana 362, 366, 368, 382, todos los cuales pueden ser adaptados para una transicion desde un cuadro codificado en el dominio de la frecuencia a un cuadro codificado en el dominio de la prediccion lineal. Sin embargo, el uso de los tipos de ventana 330, 332, 362, 366, 368, 382 puede ser considerado como opcional.
Sin embargo, es una caracterlstica importante del decodificador de audio inventivo proveer una solucion particularmente eficiente para derivar el tipo de ventana apropiado desde la informacion de ventana de longitud de palabra de codigo variable 224. Como se discutio mas arriba, eso se explicara en detalle mas abajo tomando referencia a las Figuras 10a a 10e.
La informacion de ventana de longitud de palabra de codigo variable 224 comprende tlpicamente 1 o 2 bits por cuadro. Preferiblemente, la informacion de ventana de longitud de palabra de codigo variable comprende un primer bit que lleva la informacion de “window_length” del cuadro actual y un segundo bit que lleva la informacion de “transform_length” del cuadro actual, en lo cual la presencia del segundo bit (bit de “transform_length”) es dependiente del valor del primer bit (bit de “window_length”). De ese modo el selector de ventana 270 esta configurado para evaluar de manera selectiva los uno o dos bits de informacion de ventana (“window_length” y “transform_length”) para decidir sobre el tipo de ventana asociado con el cuadro actual en dependencia del valor del bit de “window_length” asociado con el cuadro actual. No obstante, en la ausencia del bit de “transform_length”, el selector de ventana 270 puede asumir naturalmente que el bit de “transform_length” toma un valor por defecto.
5
10
15
20
25
30
35
40
45
50
55
60
En una realizacion preferida, el selector de ventana 270 puede ser configurado para evaluar la sintaxis como esta descrito mas arriba con referencia a la Figura 6a y para proveer la informacion de ventana 272 de acuerdo con dicha sintaxis.
Suponiendo primero, que el decodificador de audio 200 siempre funciona en un modo nucleo del dominio de la frecuencia, es decir que no hay ninguna conmutacion entre el modo nucleo del dominio de la frecuencia y el modo nucleo del dominio de la prediccion lineal, puede ser suficiente distinguir los cinco tipos de ventana mencionados mas arriba (“only_long_sequence”, “long_start_sequence”, “long_stop_sequence”, “stop_start_sequence” y“eight_short_sequence”). En este caso, la informacion de “window_length” del cuadro previo, la informacion de “window_length” del cuadro actual y la informacion de “transform_length” del cuadro actual (si es disponible) puede ser suficiente para decidir sobre el tipo de ventana.
Por ejemplo, si se supone una operacion solo en el modo nucleo del dominio de la frecuencia (por lo menos a lo largo de una secuencia de tres cuadros subsiguientes), se puede concluir desde el hecho de que la informacion de “window_length” del cuadro previo indica una pendiente de transicion larga (valor "0") y que la informacion de “window_length” del cuadro actual indica una pendiente de transicion larga (valor "0") que el tipo de ventana “only_long_sequence” es asociado con el cuadro actual sin evaluar la informacion de “transform_length” que, en este caso, no es transmitida por el codificador.
Si se supone otra vez una operacion solo en el modo nucleo del dominio de la frecuencia, se puede concluir desde el hecho de que la informacion de “window_length” del cuadro previo indica una pendiente de transicion (del lado derecho) larga, y del hecho de que la informacion de “window_length” del cuadro actual indica una pendiente de transicion (del lado derecho) corta (valor "1") que el tipo de ventana “long_start_sequence” es asociado con el cuadro actual aun sin evaluar la informacion de “transform_length” de un cuadro actual (que, en este caso, puede ser o no puede ser generada y/o transmitida por el codificador).
Si se supone otra vez una operacion solo en el modo nucleo del dominio de la frecuencia, se puede concluir desde el hecho de que la informacion de “window_length” del cuadro previo indica una pendiente de transicion (del lado derecho) corta (valor "1"), y que la informacion de “window_length” del cuadro actual indica una pendiente de transicion (del lado derecho) larga (valor "0") que el tipo de ventana “long_stop_sequence” es asociado con el cuadro actual aun sin evaluar la informacion de “transform_length” del cuadro actual (que de cualquier manera tlpicamente no es suministrada por el codificador de audio correspondiente).
Sin embargo, si la informacion de “window_length” del cuadro previo indica la presencia de una pendiente de transicion (del lado derecho) corta y la informacion de “window_length” del cuadro actual tambien indica la presencia de una pendiente de transicion (del lado derecho) corta (valor "1"), podrla ser necesario evaluar la informacion de “transform_length” del cuadro actual. En este caso, si la informacion de “transform_length” del cuadro actual toma un primer valor (por ejemplo cero), el tipo de ventana “stop_start_sequence” es asociado con el cuadro actual. En otro caso, es decir, si la informacion de “transform_length” del cuadro actual toma un segundo valor (por ejemplo uno), se puede concluir que el tipo de ventana “eight_short_sequence” es asociado con el cuadro actual.
Para resumir lo anterior, el selector de ventana 270 esta configurado para evaluar la informacion de “window_length” del cuadro previo y la informacion de “window_length” del cuadro actual a fin de determinar el tipo de ventana asociado con el cuadro actual. Ademas, el selector de ventana 270 esta configurado para tomar en cuanta de manera selectiva, en dependencia del valor de la informacion de “window_length” del cuadro actual (y posiblemente tambien en dependencia de la informacion de “window_length” del cuadro previo, o de una informacion del modo nucleo), la informacion de “transform_length” del cuadro actual para determinar el tipo de ventana asociado con el cuadro actual. De ese modo, el selector de ventana 270 esta configurado para evaluar una informacion de ventana de longitud de palabra de codigo variable a fin de determinar el tipo de ventana asociado con el cuadro actual.
La Figura 6c muestra una table que representa un mapeo de la informacion de “window_length” del cuadro previo, una informacion de “window_length” del cuadro actual y una informacion de “transform_length” del cuadro actual sobre el tipo de ventana del cuadro actual. La informacion de “window_length” del cuadro actual y la informacion de “transform_length” del cuadro actual pueden ser representadas por la informacion de ventana de longitud de palabra de codigo variable 224. El tipo de ventana del cuadro actual puede ser representado por la informacion de ventana 272. El mapeo descrito en la Figura 6c puede ser realizado por el selector de ventana 270.
5
10
15
20
25
30
35
40
45
50
55
Tal como se puede ver, el mapeo puede depender del modo nucleo previo. Si el modo nucleo previo es un "modo nucleo del dominio de la frecuencia" (abreviado por "FD"), el mapeo puede tomar la forma que se discutio mas arriba. Sin embargo, si el modo nucleo previo es un "modo nucleo del dominio de la prediccion lineal" (abreviado por "LPD"), el mapeo puede ser alterado, tal como se puede ver en las dos ultimas filas de la tabla de la Figura 6c.
Ademas, el mapeo puede ser alterado si el modo nucleo subsiguiente (es decir el modo nucleo asociado con el cuadro subsiguiente) no es un modo nucleo del dominio de la frecuencia sino un modo nucleo del dominio de la prediccion lineal.
El decodificador de audio 200 puede comprender de manera opcional un analizador de transmision de bits configurado para analizar la transmision de bits 210 que representa la informacion de audio codificada y para extraer desde la transmision de bits una informacion de longitud de pendiente de ventana de un bit (tambien designada en la presente como informacion de “window_length”) y para extraer de manera selectiva, en dependencia de un valor de la informacion de longitud de pendiente de ventana de un bit, una informacion de longitud de transformacion de un bit (designada en la presente como informacion de “transform_length”). En este caso, el selector de ventana 270 esta configurado para usar o denegar de manera selectiva, en dependencia de la informacion de longitud de pendiente de ventana del cuadro actual, la informacion de longitud de transformacion a fin de seleccionar una ventana para un procesamiento de una porcion dada (por ejemplo, un cuadro) de la representacion de tiempo-frecuencia 242. El analizador de transmision de bits, por ejemplo, puede formar parte del deformateador de carga util de la transmision de bits 220 y puede habilitar al decodificador de audio 200 para manejar de manera apropiada la informacion de ventana de longitud de palabra de codigo variable como se discutio mas arriba y como tambien se describio con referencia a las Figuras 10a a 10e.
Conmutacion entre el modo nucleo del dominio de la frecuencia y el modo nucleo del dominio del tiempo
En algunas realizaciones, el codificador de audio 100 y el decodificador de audio 200 pueden ser configurados para conmutar entre un modo nucleo del dominio de la frecuencia y un modo nucleo del dominio de la prediccion lineal. Tal como se explico mas arriba, se supone que el modo nucleo del dominio de la frecuencia es el modo nucleo basico para el cual valen las explicaciones anteriores. Sin embargo, si el codificador de audio es capaz de conmutar entre el modo nucleo del dominio de la frecuencia y un modo nucleo del dominio de la prediccion lineal, todavla puede haber una sobrepuesta cruzada (en el sentido de una operacion de superposicion-y-suma) entre los cuadros codificados en el modo nucleo del dominio de la frecuencia y los cuadros codificados en el modo nucleo del dominio de la prediccion lineal. Por ende, se tiene que seleccionar las ventanas apropiadas a fin de asegurar una sobrepuesta cruzada apropiada entre los cuadros a ser codificados en distintos modos nucleo. Por ejemplo, en algunas realizaciones puede haber dos tipos de ventana, a saber los tipos de ventana 330 y 332 mostrados en la Figura 2B, que estan adaptados para una transicion desde un modo nucleo del dominio de la prediccion lineal a un modo nucleo del dominio de la frecuencia. Por ejemplo, el tipo de ventana 330 puede permitir que una transicion entre un cuadro codificado en el dominio de la prediccion lineal y un cuadro codificado en el dominio de la frecuencia, la cual tiene una pendiente de transicion del lado izquierdo larga, por ejemplo, desde el cuadro codificado en el dominio de la prediccion lineal al cuadro codificado en el dominio de la frecuencia use un tipo de ventana “only_long_sequence” o un tipo de ventana “long_start_sequence”. De manera similar, el tipo de ventana 332 puede permitir que una transicion desde un cuadro codificado en el dominio de la prediccion lineal a un cuadro codificado en el dominio de la frecuencia la cual tiene una pendiente de transicion del lado izquierdo corta, (por ejemplo desde un cuadro codificado en el dominio de la prediccion lineal a un cuadro que tiene asociado el tipo de ventana “eight_short_sequence” o “long_stop_sequence” o “stop_start_sequence). Por ende, el selector de ventana 270 puede ser configurado para seleccionar el tipo de ventana 330, si se ha encontrado que el cuadro previo (que precede el cuadro actual) es codificado en el dominio de la prediccion lineal, que el cuadro actual es codificado en el dominio de la frecuencia y que la informacion de “window_length” del cuadro actual indica una pendiente de transicion del lado derecho larga del cuadro actual (por ejemplo, un valor "0"). En contraste, el selector de ventana 270 esta configurado para seleccionar el tipo de ventana 332 para el cuadro actual, si se ha encontrado que el cuadro previo es codificado en el dominio de la prediccion lineal, que el cuadro actual es codificado en el dominio de la frecuencia y que la informacion de “window_length” del cuadro actual indica que una pendiente de transicion del lado derecho larga es asociada al cuadro actual (por ejemplo, un valor "1").
5
10
15
20
25
30
35
40
45
50
55
De manera similar, el selector de ventana 270 puede ser configurado para reaccionar al hecho de que el cuadro subsiguiente (que sigue al cuadro actual) es codificado en el dominio de la prediccion lineal mientras el cuadro actual es codificado en el dominio de la frecuencia. En este caso, el selector de ventana 270 puede seleccionar uno de los tipos de ventana 362, 366, 368, 384, los cuales estan adaptados a ser seguidos por un cuadro codificado en el dominio de la prediccion lineal, en lugar de uno de los tipos de ventana 312, 316, 118, 332, los cuales estan adaptados a ser seguidos por un cuadro codificado en el dominio de la frecuencia. Sin embargo, con la excepcion del reemplazo del tipo de ventana 312 por el tipo de ventana 362, del reemplazo del tipo de ventana 318 por el tipo de ventana 368, del reemplazo del tipo de ventana 360 por el tipo de ventana 366 y del reemplazo del tipo de ventana 332 por el tipo de ventana 382, la seleccion del tipo de ventana puede quedar sin cambios en comparacion con una situacion en la cual solo hay cuadros codificados en el dominio de la frecuencia.
De ese modo, el mecanismo inventivo de usar una informacion de ventana de longitud de palabra de codigo variable puede ser aplicado aun en el caso en el cual ocurren unas transiciones entre una codificacion en el dominio de la frecuencia y una codificacion en el dominio de la prediccion lineal, sin que se comprometa significativamente la eficiencia de codificar.
Detalles de sintaxis de la transmision de bits
En lo que sigue, se discutiran unos detalles con respecto a la sintaxis de la transmision de bits de la transmision de bits 192, 210, tomando referencia a las Figuras 10a a 10e. La Figura 10a muestra una representacion de sintaxis de un bloque de datos sin procesar, “USAC_raw_data_block”, de una tal denominada codificacion de voz y audio unificada ("USAC"). Tal como se puede ver, el bloque de datos sin procesar USAC puede comprender un tal denominado elemento de canal unico (“single_channel_element()”) y/o un elemento de par de canales (“channel_pair_element()”). Sin embargo, el bloque de datos sin procesar USAC puede comprender naturalmente mas de un elemento de canal unico y/o mas de un elemento de par de canales.
Tomando ahora referencia a la Figura 10b, que muestra una representacion de sintaxis de un elemento de canal unico, se explicaran algunos detalles mas. Tal como se puede ver en La Figura 10b, un elemento de canal unico puede comprender una informacion de modo nucleo, por ejemplo, en la forma de un bit de “core_mode”. La informacion de modo nucleo puede indicar si el cuadro actual es codificado en un modo nucleo del dominio de la prediccion lineal o en un modo nucleo del dominio de la frecuencia. En el caso que el cuadro actual es codificado en el modo nucleo del dominio de la prediccion lineal, el elemento de canal unico puede comprender una transmision de canal en el dominio de la prediccion lineal (“LPD_channel_stream()”). En el caso que el cuadro actual es codificado en el dominio de la frecuencia, el elemento de canal unico puede comprender una transmision de canal en el dominio de la frecuencia (“FD_channel_stream()”).
Tomando ahora referencia a la Figura 10c, que muestra una representacion de sintaxis de un elemento de par de canal, se explicaran algunos detalles mas. Un elemento de par de canal puede comprender una primera informacion de modo nucleo, por ejemplo, en la forma de un bit de “core_mode0”, que describe un modo nucleo del primer canal. Ademas, el elemento de par de canal puede comprender una segunda informacion de modo nucleo en la forma de un bit de “core_mode1 ”, que describe un modo nucleo del segundo canal. De ese modo, se pueden seleccionar modos nucleo diferentes o identicos para los dos canales descritos por el elemento de par de canal. De manera opcional, el elemento de par de canal puede comprender una (“ICS_info()”) para ambos canales. Esta informacion ICS en comun es ventajosa, si la configuracion de los dos canales descrita por el elemento de par de canal es muy similar. Naturalmente, una informacion ICS en comun es usada preferiblemente solo si ambos canales son codificados en el mismo modo nucleo.
El elemento de par de canal comprende ademas una transmision de canal en el dominio de la prediccion lineal (“LPD_channel_stream()”) o una transmision de canal en el dominio de la frecuencia (“FD_channel_stream()”) asociada con el primer canal en dependencia del modo nucleo definido para el primer canal (por la informacion de modo nucleo “core_mode0”).
El elemento de par de canal comprende tambien una transmision de canal en el dominio de la prediccion lineal (“LPD_channel_stream()”) o una transmision de canal en el dominio de la frecuencia (“FD_channel_stream()”) para el segundo canal en dependencia del modo nucleo usado para la codificacion del segundo canal (la cual puede ser senalada por la informacion de modo nucleo “core_mode1 ”).
5
10
15
20
25
30
35
40
45
50
55
60
Tomando ahora referencia a la Figura 10d, que muestra una sintaxis para una representacion de la informacion ICS, se describiran algunos detalles adicionales. Se deberla notar, que la informacion ICS puede ser incluida el el elemento de par de canal o en las transmisiones de canal individuales en el dominio de la frecuencia (tal como se discutira con referencia a la Figura 10e).
La informacion ICS comprende una informacion de “window_length” de un bit (o de bit unico), la cual describe una longitud de una pendiente de transicion del lado derecho de la ventana asociada con el cuadro actual, por ejemplo, de acuerdo con la definicion dada en la Figura 7a. Siempre y cuando, y solo cuando la informacion de “window_length” toma un valor predeterminado (por ejemplo "1"), la informacion ICS comprende una informacion de “transform_length” de un bit (o de bit unico) adicional. La informacion de “transform_length” describe un tamano de un nucleo de MDCT, por ejemplo, de acuerdo con a definicion dada en la Figura 7b. Si la informacion de “window_length” toma un valor diferente del valor predeterminado (po ejemplo el valor "0"), la informacion de “transform_length” no es incluida en (o es omitida de) la informacion ICS (o en la transmision de bits correspondiente). Sin embargo, en este caso un analizador de transmision de bits de un decodificador de audio puede fijar el valor recuperado de una informacion de “transform_length” variable del decodificador a un valor por defecto (por ejemplo "0").
La informacion ICS puede comprender ademas una tal denominada informacion de “window_shape”, la cual puede ser una informacion de un bit (o de un bit unico), la cual describe una forma de una transicion de ventana. Por ejemplo, la informacion de “window_shape” puede describir si una transicion de ventana tiene una forma de seno/coseno o una forma derivada de Kaiser-Bessel. Para mas detalles con respecto al significado de la informacion de “window_shape”, se hace referencia, por ejemplo, a la norma Internacional IOC/IEC 14496-3: 2005 (E), parte 3, sub-parte 4. Sin embargo, se deberla notar que la informacion de “window_shape” deja el tipo de ventana basico sin alteraciones y que las caracterlsticas generales (pendiente de transicion larga o pendiente de transicion corta, longitud de transformacion larga o longitud de transformacion corta) quedan no alteradas por la informacion de “window_shape”.
De ese modo, en la realizaciones de acuerdo con la invencion, se determina la informacion de “window_shape”, es decir la forma de las transiciones, de manera separada del tipo de ventana, es decir de la longitud general de las pendientes de transicion (larga o corta) y de la longitud de transformacion (larga o corta).
La informacion ICS puede comprender ademas una informacion de factor de ajuste dependiente del tipo de ventana. Por ejemplo si la informacion de “window_shape” y la informacion de “transform_shape” indican que el tipo de ventana actual es “eight_short_sequence”, la informacion ICS puede comprender una informacion de “max_sfb” que describe una banda de factor de ajuste maxima y una informacion de “scale_factor_grouping” que describe un agrupamiento de las bandas de factor de ajuste. Se describen mas detalles con respecto a esta informacion, por ejemplo, en la norma internacional IOC/IEC 14496-3: 2005 (E), parte 3, sub-parte 4. De manera alternativa, es decir si la informacion de “window_shape” y la informacion de “transform_shape” indican que el cuadro actual no es un tipo de ventana “eight_short_sequence”, la informacion ICS puede comprender solo una informacion de “max_sfb” (pero ninguna informacion de “scale_factor_grouping”).
En lo que sigue, se describiran algunos detalles adicionales tomando referencia a la Figura 10e, que muestra una representacion de sintaxis de una transmision de canal en el dominio de la frecuencia (“FD_channel_stream()”). La transmision de canal en el dominio de la frecuencia comprende una informacion de “global_gain” que describe una ganancia global asociada con los valores espectrales. La transmision de canal en el dominio de la frecuencia comprende ademas una informacion ICS (“ICS_info()”), salvo que una semejante informacion ya es incluida en un elemento de par de canal que comprende la transmision de canal actual en el dominio de la frecuencia. Con respecto a la informacion ICS se describieron unos detalles con referencia a la Figura 10d.
La transmision de canal en el dominio de la frecuencia comprende ademas unos datos de factor de ajuste (“scale_factor_data()”), los cuales describen un ajuste a ser aplicado a los valores (o las bandas de factor de ajuste) de la informacion de valor espectral decodificada o a la representacion de tiempo-frecuencia. La transmision de canal en el dominio de la frecuencia comprende ademas unos datos espectrales codificados, los cuales pueden ser, por ejemplo, unos datos espectrales codificados de manera aritmetica (ac_spectral_data()”). Sin embargo, se puede usar tambien una codificacion diferente de los datos espectrales. Con respecto a los datos de factor de ajuste y los datos espectrales codificados, se hace otra vez referencia a la norma internacional IOC/IEC 14496-3: 2005 (E), parte 3, sub-parte 4. Sin embargo, si se
5
10
15
20
25
30
35
40
45
50
55
desea, se pueden aplicar naturalmente tambien distintas codificaciones de los datos de factor de ajuste y de los datos espectrales
Conclusiones y evaluaciones de rendimiento
En lo que sigue, se toman algunas conclusiones y se dara una evaluacion de rendimiento del concepto inventivo. Las realizaciones del presente invento crean un concepto para una reduccion de la cantidad de bits transmitidos requerida, el cual puede ser aplicado, por ejemplo, en combinacion con los esquemas de codificacion de audio definidos en la norma internacional ISO/IEC 14496-3: 2005 (E), parte 3, sub-parte 4. Sin embargo, tambien se puede usar el concepto discutido en la presente en combinacion con el tal denominado enfoque de "codificacion de voz y audio unificada" (USAC). Sobre la base de definiciones existentes de transmision de bits y arquitecturas de decodificador existentes, el presente invento crea una modificacion de la sintaxis de la transmision de bits, la cual simplifica la sintaxis de la senalizacion de las secuencias de ventana, ahorra en la cantidad de bits transmitidos sin incrementar la complejidad y no altera la forma de onda de la salida del decodificador.
En lo que sigue, se discutira y resumira brevemente el fondo y las ideas que subyacen al presente invento. En la codificacion de audio actual de acuerdo con la norma ISO/IEC 14496-3: 2005 (E) parte 3, sub-parte 4 y tambien con el borrador de trabajo de USAC, se transmite una palabra de codigo con una longitud fija de dos bits para senalar la secuencia de ventana. Ademas, se necesita de vez en cuando la informacion de secuencia de ventana del cuadro previo para determinar la secuencia correcta.
Sin embargo, se ha encontrado, que tomando en cuenta esta informacion y haciendo que la longitud de la palabra de codigo sea variable (uno o dos bits) se puede reducir la cantidad de bits transmitidos. Una nueva palabra de codigo tiene una longitud maxima de dos bits (“window_length” y en algunos casos “transform_length”). De ese modo, nunca se aumenta la cantidad de bits transmitidos (en comparacion con el enfoque convencional).
La nueva palabra de codigo (“window_length” y en algunos casos “transform_length”) consiste en un bit (“window_length”) que indica la longitud de la pendiente de ventana del lado derecho y un bit (“transform_length”) que indica la longitud de transformacion. En muchos casos, la longitud de transformacion puede ser derivada de manera no ambigua mediante unas informaciones del cuadro previo, a saber la secuencia de ventana y el modo nucleo. De ese modo, no es necesario re-transmitir esta informacion. Por ende, se omita en tales casos el bit de “transform_length”, con lo cual se alcanza una reduccion de la cantidad de bits transmitidos.
En lo que sigue, se discutiran algunos detalles con respecto a la propuesta para una nueva sintaxis de la transmision de bits de acuerdo con el presente invento. La nueva sintaxis de la transmision de bits propuesta permite una implementacion y una senalizacion de las secuencias de ventanas con menos complicaciones, porque se transporta solo la informacion que se necesita realmente para determinar la secuencia de ventana del cuadro actual, es decir una pendiente de ventana del lado derecho y una longitud de transformacion. La pendiente de ventana del lado izquierdo s es derivada desde la pendiente de ventana del lado derecho del cuadro previo.
La propuesta (o la nueva transmision de bits propuesta) separa de manera expllcita la informacion sobre la longitud de la pendiente de ventana (informacion de “window_length”) y sobre la longitud de transformacion (informacion de “transform_length”). La palabra de codigo de longitud variable es una combinacion de ambos, donde el primer bit de “window_length” determina la longitud de la pendiente de ventana del lado derecho (del cuadro actual) y el segundo bit de “transform_length” determina la longitud de la MDCT (para el cuadro actual) de acuerdo con las Figuras 7a y 7d. En el caso de “window_length” = 0, es decir se selecciona una pendiente de ventana larga, la transmision de “transform_length” puede ser omitida (o se omite realmente), ya que es obligatorio un tamano de nucleo de una MDCT de 1024 muestras (o, en algunos casos, de 1152 muestras).
La figura 7c da una vista global sobre todas las combinaciones de “window_length” y “transform_length”. Tal como se puede ver, existen solo tres combinaciones significativas de los dos elementos de informacion de un bit “window_length” y “transform_length”, de modo que la transmision de la informacion de “transform_length” puede ser omitida, si la informacion de “window_length” toma el valor cero sin que se afecte de manera negativa a la transmision de la informacion deseada.
5
10
15
20
25
30
35
40
45
50
55
En lo que sigue, se resumira brevemente el mapeo de la informacion de “window_length” y de la informacion de “transform_length” sobre una informacion de “window_sequence” (la cual describe un tipo de ventana a ser usada para el cuadro actual). La tabla de la Figura 6a muestra como el elemento de transmision de bits “window_sequence” del estado actual de los borradores de trabajo de la norma previsto de USAC puede ser derivado desde los nuevos elementos propuestos de la transmision de bits. Esto demuestra que el cambio propuesto es "transparente" en los terminos de contenido de informacion.
En otras palabras, la sintaxis inventiva reducida en la cantidad de bits transmitidos para la senalizacion del tipo de ventana, la cual se basa en el uso de una informacion de ventana de longitud de palabra de codigo variable, es capaz de llevar el contenido de informacion "completo", el cual se transmite convencionalmente usando una cantidad mas alta de bits transmitidos. Tambien se puede aplicar el concepto inventivo en los codificadores y decodificadores de audio convencionales, por ejemplo, en el codificador de audio o en el decodificador de audio de acuerdo con la norma ISO/IEC 14496-3: 2005 (E), parte 3, sub-parte 4 o de acuerdo con el borrador de trabajo de USAC actual sin modificacion importante alguna.
En lo que sigue, se presentara una evaluacion de los ahorros de bits alcanzables. Sin embargo, se deberla notar que en algunos casos los ahorros de bits pueden ser levemente mas pequenos que los que se indican aqul, y que en otros casos los ahorros de bits pueden ser aun significativamente mas grandes que los ahorros de bits discutidos. La "evaluacion de ahorros de bits", que se muestra en la Figura 9, ilustra la evaluacion de ahorros de bits para una transcodificacion sin perdida, en lo cual se comparan las transmisiones de bits usando la nueva sintaxis de la transmision de bits con las transmisiones de bits convencionales (en lo cual las transmisiones de bits convencionales han sido presentadas en un concurso de propuestas). Tal como se puede ver claramente, la transmision del bit de “transform_length” de acuerdo con la invencion puede ser omitida en 95,67% de todos los cuadros del dominio de la frecuencia para 12 kbps mono y hasta un 95.15 % de todos los cuadros del dominio de la frecuencia para 64 kbps.
Tal como se puede ver en la Figura 9, se pueden ahorrar en promedio entre 2 y 24 bits por segundo, sin comprometer la calidad del contenido de audio. En vista del hecho de que la cantidad de bits transmitidos es un recurso muy critico para el guardado y la transmision del contenido de audio, esta mejora puede ser considerada de ser muy valiosa. Tambien, se deberla notar que en algunos casos la mejora en la cantidad de bits transmitidos puede ser significativamente mas grande, por ejemplo, si los cuadros se eligen a ser comparativamente cortos.
Para resumir lo anterior, el presente invento propone una nueva sintaxis de la transmision de bits para la senalizacion de las secuencias de ventana. La nueva sintaxis de la transmision de bits ahorra la cantidad de datos transmitidos y es mas logica y mas flexible en comparacion con las sintaxis viejas. Es facil de implementar y no tiene ningun inconveniente con respecto a complejidad.
Comparacion con el borrador de trabajo de USAC actual
En lo que sigue, se discutiran los cambios de texto propuesto para una descripcion tecnica del borrador de trabajo de USAC actual. A fin de incorporar los cambios inventivos propuestos de acuerdo con el presente invento, las siguientes secciones requieren una actualizacion.
En la definicion pendiente de las "cargas utiles para los objetos de audio del tipo USAC", en la cual se describe la sintaxis de la tal denominada informacion ICS, la sintaxis convencional deberla ser reemplazada por la sintaxis que se muestra en la Figura 10b.
Tambien el "elemento de datos" “window_sequence” deberla ser reemplazado por la siguiente definicion de los elementos de datos “window_length” y “transform_length”:
window_length: un campo de un bit que determina cual longitud de pendiente de ventana es usada
para la parte del lado derecho de esta secuencia de ventana; y
transform_length: un campo de un bit que determina cual longitud de transformacion es usada para
esta secuencia de ventana.
Ademas, se deberla agregar la definicion del elemento de ayuda “window_sequence” en la siguiente version:
5
10
15
20
25
30
35
40
45
50
55
window_sequence: indica la secuencia de ventanas como esta definida por la informacion de
“window_length” del cuadro previo, la informacion de “transform_length” y la informacion de “window_length” del cuadro actual y la informacion de “core_mode” del cuadro siguiente de acuerdo con la tabla que se muestra en la Figura 8.
La Figura 8 muestra la definicion del elemento de ayuda “window_sequence”, la cual puede ser derivada, de manera opcional, desde la informacion de “window_length” del cuadro previo, la informacion de “window_length” del cuadro actual, la informacion de “transform_length” del cuadro actual y la informacion del “modo nucleo” del cuadro siguiente.
Mas aun, la definicion convencional de la informacion de “window_sequence” y la informacion de “window_shape” pueden ser reemplazadas por las siguientes definiciones mas apropiadas de “window_length”, “transform_length” y “window_shape”:
window_length: un campo de un bit que determina cual longitud de pendiente de ventana es usada
para la parte del lado derecho de esta ventana;
transform_length: un campo de un bit que determina cual longitud de transformacion es usada para
esta ventana; y
window_shape: un bit que indica cual funcion de ventana es seleccionada.
Metodo de acuerdo con la Figura 11
La Figura 11 muestra un diagrama de flujo de un metodo para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada. El metodo 1100 de acuerdo con la Figura 11 comprende una etapa 1110 de proveer una secuencia de parametros de senal de audio sobre la base de una pluralidad de porciones ventaneadas de la informacion de audio de entrada. Cuando se provee la secuencia de parametros de senal de audio, se lleva a cabo una conmutacion entre el uso de ventanas que tienen una pendiente de transicion mas larga y el uso de ventanas que tienen una pendiente de transicion mas corta, y tambien entre el uso de ventanas que tienen asociadas con eso dos o mas distintas longitudes de transformacion, a fin de adaptar los tipos de ventana para obtener las porciones ventaneadas de la informacion de audio de entrada en dependencia de las caracterlsticas de la informacion de audio de entrada. El metodo 1100 tambien comprende una etapa 1120 de codificar una informacion de ventana que describe un tipo de ventana usada para transformar una porcion actual de la informacion de audio de entrada que usa una palabra de codigo de longitud variable.
Metodo de acuerdo con la Figura 12
La Figura 12 muestra un diagrama de flujo de un metodo para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada. El metodo 1200 de acuerdo con la Figura 12 comprende la etapa 1210 de evaluar una informacion de ventana de longitud de palabra de codigo variable a fin de seleccionar una ventana desde una pluralidad de ventanas que comprende ventanas de distintas pendientes de transicion y ventanas que tienen asociadas con eso distintas longitudes de transformacion para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia asociada con un cuadro dado de la informacion de audio. El metodo 1200 comprende tambien la etapa 1220 de mapear la porcion dada de la representacion de tiempo-frecuencia, que es descrita por la informacion de audio codificada, sobre una representacion en el dominio del tiempo que usa la ventana seleccionada.
Se deberla notar que los metodos de acuerdo con las Figuras 11 y 12 pueden ser complementados por cualquiera de las caracterlsticas y funcionalidades descritas en la presente con respecto a loas aparatos inventivos y las caracterlsticas inventivas de la transmision de bits.
Alternativas de Implementacion
A pesar de que se han descrito algunos aspectos en el contexto de un aparato, es claro que estos aspectos tambien representan una descripcion del metodo correspondiente, donde un bloque o dispositivo corresponde a una etapa de metodo o a un rasgo de una etapa de metodo. Analogamente, los aspectos descritos en el
5
10
15
20
25
30
35
40
45
50
55
contexto de una etapa de metodo tambien representan una descripcion de un correspondiente bloque o componente o rasgo de un correspondiente aparato.
Cualquiera de las etapas del metodo inventivo puede ser llevado a cabo mediante el uso d un microprocesador, un ordenador programable, una matriz de puertas programable por el usuario (FPGA) o cualquier otro hardware, tal como, por ejemplo un hardware de procesamiento de datos.
La senal de audio codificada inventiva puede ser almacenada en un medio de almacenamiento digital o puede ser transmitida a traves de un medio de transmision tal como un medio de transmision inalambrico o un medio de transmision flsico tal como Internet.
Dependiendo de ciertos requerimientos de implementacion, las realizaciones de la invencion pueden ser implementadas en hardware o en software. La implementacion puede ser realizada usando una medio de almacenamiento digital, por ejemplo, un disco flexible, un DVD, un CD, una memoria de solo lectura, una PROM, una EEPROM o una memoria FLASH, teniendo senales de control legibles electronicamente almacenadas en las mismas, las cuales cooperan (o son capaces de cooperar) con un sistema de ordenador programable tal que se ejecute el respectivo metodo. Por lo tanto, el medio de almacenamiento digital puede ser legible por computadora.
Algunas realizaciones de acuerdo con la invencion comprenden un portador de datos que tiene senales de control legibles electronicamente, las cuales son capaces de cooperar con un sistema de ordenador programable, tal que uno de los metodos descrito en la presente sea ejecutado.
Generalmente, realizaciones del presente invento pueden ser implementadas como un programa de computador con un codigo de programa, siendo codigo de programa operativo para ejecutar uno de los metodos cuando el producto de programa de ordenador corre en un ordenador. El codigo de programa puede ser almacenado, por ejemplo, sobre un portador legible por una maquina.
Otras realizaciones comprenden el programa de ordenador para ejecutar uno de los metodos descritos en la presente, almacenado en un portador legible por una maquina.
En otras palabras, una realizacion del metodo inventivo es, por lo tanto, un programa de ordenador que un codigo de programa para ejecutar uno de los metodos descritos en la presente, cuando el programa de ordenador corre en un ordenador.
Una realizacion adicional de los metodos inventivos es, por lo tanto, un portador de datos (o un medio de almacenamiento digital, o un medio legible por computadora) que comprende, grabado en el mismo, el programa de ordenador para ejecutar uno de los metodos descritos en la presente.
Una realizacion adicional del metodo inventivo es, por lo tanto, una transmision de datos o una secuencia de senales que representan el programa de computador para ejecutar uno de los metodos descritos en la presente. La transmision de datos o la secuencia de senales pueden ser configuradas, por ejemplo, para ser transferidos via una conexion de comunicacion de datos, por ejemplo, via Internet.
Una realizacion adicional comprende un medio de procesamiento, por ejemplo, un ordenador, o un dispositivo logico programable, configurado para o adaptado para ejecutar uno de los metodos descritos en la presente.
Una realizacion adicional comprende un ordenador que tiene instalado en ella el programa de ordenador para ejecutar uno de los metodos descritos en la presente.
En algunas realizaciones se puede usar un dispositivo de logica programable (por ejemplo un arreglo de compuesta programable de campo) para realizar algunas o todas las funcionalidades de los metodos descritos en la presente. En algunas realizaciones, el arreglo de compuerta programable de campo puede cooperar con un microprocesador para realizar uno de los metodos descritos en la presente. Generalmente, los metodos preferiblemente son realizados mediante algun aparato de hardware.
Las realizaciones que se describieron mas arriba son puramente ilustrativas para los principios del presente invento. Se entiende que las modificaciones y variaciones posibles de las disposiciones y de los detalles descritos en la presente seran evidentes para los expertos en la materia. Por lo tanto, es la intencion que la
invencion este limitado solo por el alcance de las siguientes reivindicaciones de patente y no por los detalles especlficos presentados por la descripcion y la explicacion de las realizaciones en el presente documento.
Claims (13)
- 51015202530354045505560REIVINDICACIONES1. Un decodificador de audio (200) para proveer una informacion de audio decodificada (212) sobre la base de una informacion de audio codificada (210), el decodificador de audio que comprende:un transformador de senal basado en ventanas (250) configurado para mapear una representacion de tiempo- frecuencia (242) de la informacion de audio, la cual es descrita por la informacion de audio codificada (210) sobre una representacion en el dominio del tiempo (252) de la informacion de audio,en el cual el transformador de senal basado en ventanas esta configurado para seleccionar una ventana, desde una pluralidad de ventanas (310, 312, 314, 316, 318) que comprende ventanas con distintas pendientes de transicion (310a, 312a, 314a, 316a, 318a, 310b, 312b, 314b, 316b, 318b) y ventanas que tienen asociadas con ellas distintas longitudes de transformacion, mediante el uso de una informacion de ventana (272);en el cual el decodificador de audio (200) comprende un selector de ventana (270) configurado para evaluar una informacion de ventana de longitud de palabra de codigo variable (224) a fin de seleccionar una ventana para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia asociada con un cuadro dado de la informacion de audio;en el cual el decodificador de audio comprende un analizador de transmision de bits (220) configurado para analizar una transmision de bits (210) que representa la informacion de audio codificada y para extraer desde la transmision de bits (210) una informacion de longitud de pendiente de ventana de un bit (“window_length”) y para extraer de manera selectiva, en dependencia de un valor de la informacion de longitud de pendiente de ventana de un bit, una informacion de longitud de transformacion de un bit (“transform_length”); yen el cual el selector de ventana (270) esta configurado para usar o denegar de manera selectiva, en dependencia de la informacion de longitud de pendiente de ventana, la informacion de longitud de transformacion a fin de seleccionar un tipo de ventana (310, 312, 314, 316, 318) para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia (242),en el cual la informacion de longitud de transformacion determina una longitud de un nucleo de una MDCT.
- 2. El decodificador de audio (200) de acuerdo con la reivindicacion 1, en el cual el selector de ventana (270) esta configurado para seleccionar un tipo de ventana (310, 312, 314, 316, 318) para un procesamiento de una porcion actual de la informacion de tiempo-frecuencia (242), de modo que una longitud de pendiente de ventana del lado izquierdo de la ventana para el procesamiento de la porcion actual de la representacion de tiempo-frecuencia (242) coincida con una longitud de pendiente de ventana del lado derecho de una ventana utilizada para el procesamiento de una porcion previa de la representacion de tiempo-frecuencia (242).
- 3. El decodificador de audio (200) de acuerdo con la reivindicacion 2, en el cual el selector de ventana (270) esta configurado para seleccionar entre un primer tipo (310) de ventana y un segundo tipo (312) de ventana en dependencia de un valor de la informacion de longitud de pendiente de ventana de un bit, si una longitud de pendiente de ventana de lado derecho de la ventana para el procesamiento de la porcion previa de la representacion de tiempo-frecuencia (242) toma un valor largo y si una porcion previa de la informacion de audio, una porcion actual de la informacion de audio y una porcion subsiguiente de la informacion de audio son todas codificadas usando un modo nucleo del dominio de la frecuencia;en el cual el selector de ventana (270) esta configurado para seleccionar un tercer tipo (314) de ventana en respuesta a un primer valor de la informacion de longitud de pendiente de ventana de un bit que indica una pendiente de ventana del lado derecho larga, si una longitud de pendiente de ventana de lado derecho de la ventana para el procesamiento de una porcion previa de la informacion de audio toma un valor corto, y si la porcion previa de la informacion de audio, la porcion actual de la informacion de audio y la porcion subsiguiente de la informacion de audio son todas codificadas usando un modo nucleo del dominio de la frecuencia; yen el cual el selector de ventana (270) esta configurado para seleccionar un cuarto tipo (316) de ventana y un quinto tipo (318) de ventana, que define una secuencia de ventanas cortas (319a a 319h), en dependencia de51015202530354045505560una informacion de longitud de transformacion de un bit, si la informacion de longitud de pendiente de ventana de un bit toma un segundo valor que indica una pendiente de ventana del lado derecho corta, si la longitud de pendiente de ventana del lado derecho de la ventana para el procesamiento de una porcion previa de la informacion de audio (242) toma un valor corto, y si la porcion previa de la informacion de audio, la porcion actual de la informacion de audio y la porcion subsiguiente de la informacion de audio son todas codificadas usando un modo nucleo del dominio de la frecuencia;en el cual el primer tipo (310) de ventana comprende una longitud de pendiente de ventana de lado izquierdo comparativamente larga, una longitud de pendiente de ventana de lado derecho comparativamente larga y una longitud de transformacion comparativamente larga;en el cual el segundo tipo (312) de ventana comprende una longitud de pendiente de ventana de lado izquierdo comparativamente larga, una longitud de pendiente de ventana de lado derecho comparativamente corta y una longitud de transformacion comparativamente larga;en el cual el tercer tipo (314) de ventana comprende una longitud de pendiente de ventana de lado izquierdo comparativamente corta, una longitud de pendiente de ventana de lado derecho comparativamente larga y una longitud de transformacion comparativamente larga;en el cual el cuarto tipo (316) de ventana comprende una longitud de pendiente de ventana de lado izquierdo comparativamente corta, una longitud de pendiente de ventana de lado derecho comparativamente corta y una longitud de transformacion comparativamente larga; yen el cual la secuencia de ventanas (319a a 319h) del quinto tipo (318) de ventana define una superposicion de una pluralidad de ventanas (319a a 319h) asociadas a una unica porcion de la informacion de audio (242), y en el cual cada de una de las ventanas (319a a 319h) de la pluralidad de ventanas comprende una longitud de transformacion comparativamente corta, una pendiente de ventana de lado izquierdo comparativamente corta y una pendiente de ventana de lado derecho comparativamente corta.
- 4. El decodificador de audio (200) de acuerdo con una cualquiera de las reivindicaciones 1 a 3, en el cual el selector de ventana (270) esta configurado para evaluar de manera selectiva el bit de longitud de transformacion de la informacion de ventana de longitud de palabra de codigo variable (224) de una porcion actual de la informacion de audio solo si un tipo de ventana para un procesamiento de una porcion previa de la informacion de audio (242) comprende una longitud de pendiente de ventana de lado derecho que coincide con la longitud de pendiente de ventana de lado izquierdo de una secuencia de ventana (318) de ventanas cortas y si la informacion de longitud de pendiente de ventana de un bit asociada con la porcion actual de la representacion de tiempo-frecuencia (242) define una longitud de pendiente de ventana de lado derecho que coincide con la longitud de pendiente de ventana de lado derecho de la secuencia de ventana (318) de ventanas cortas.
- 5. El decodificador de audio (200) de acuerdo con una cualquiera de las reivindicaciones 1 a 4, en el cual el selector de ventana (270) esta configurado ademas para recibir una informacion de modo nucleo previa asociada con un cuadro previo de la informacion de audio y que describe un modo nucleo para codificar el cuadro previo de la informacion de audio; yen el cual, el selector de ventana (270) esta configurado para seleccionar un tipo de ventana para un procesamiento de una porcion actual de la representacion de tiempo-frecuencia (242) en dependencia de la informacion de modo nucleo previa y tambien en dependencia de la informacion de ventana de longitud de palabra de codigo variable (224) asociada con la porcion actual de la informacion de audio (242).
- 6. El decodificador de audio (200) de acuerdo con cualquiera de las reivindicaciones 1 a 5, en el cual el selector de ventana (270) esta configurado ademas para recibir una informacion de modo nucleo subsiguiente asociada con una porcion subsiguiente de la informacion de audio (242) y que describe un modo nucleo para codificar la porcion subsiguiente de la informacion de audio; yen el cual, el selector de ventana (270) esta configurado para seleccionar una ventana para un procesamiento de una porcion actual de la informacion de audio (242) en dependencia de la informacion de modo nucleo subsiguiente y tambien en dependencia de la informacion de ventana de longitud de palabra de codigo variable (224) asociada con la porcion actual de la representacion de tiempo-frecuencia (242).51015202530354045505560
- 7. El decodificador de audio (200) de acuerdo con la reivindicacion 6, en el cual el selector de ventana (270) esta configurado para seleccionar ventanas (362, 366, 368, 382) que tienen una pendiente acortada de lado derecho, si la informacion de modo nucleo subsiguiente indica que una porcion subsiguiente de la informacion de audio esta codificada usando un modo nucleo del dominio de prediccion lineal.
- 8. Un codificador de audio (100) para proveer una informacion de audio codificada (192) sobre la base de una informacion de audio de entrada (110), el codificador de audio que comprende:un transformador de senal basado en ventanas (130) configurado para proveer una secuencia de parametros de senal de audio (132) sobre la base de una pluralidad de porciones ventaneadas de la informacion de audio de entrada (110);en el cual el transformador de senal basado en ventanas esta configurado para transformar bloques de muestras de la informacion de audio de entrada (110) en conjuntos de valores espectrales (132),en el cual el transformador de senal basado en ventanas (130) esta configurado para adaptar unos tipos de ventana para obtener la porciones ventaneadas de la informacion de audio de entrada en dependencia de las caracterlsticas de la informacion de audio de entrada (110).en el cual el transformador de senal basado en ventanas (130) esta configurado para conmutar entre un uso de ventanas (310, 312, 314, 316, 318) que tienen una pendiente de transicion mas larga y ventanas que tienen una pendiente de transicion mas corta, y tambien para conmutar entre un uso de ventanas que tienen dos o mas longitudes de transformacion diferentes;y en el cual el transformador de senal basado en ventanas (130) esta configurado para determinar un tipo de ventana usado para transformar una porcion actual de la informacion de audio de entrada en dependencia de un tipo de ventana usado para transformar una porcion precedente de la informacion de audio de entrada, y en dependencia de un contenido de audio de la porcion actual de la informacion de audio de entradaen el cual el codificador de audio esta configurado para codificar una informacion de ventana (140) que describe un tipo de ventana usado para transformar una porcion actual de la informacion de audio de entrada (110) que usa una palabra de codigo de longitud variable,en el cual el codificador de audio esta configurado para proveer la palabra de codigo de longitud variable de modo que la palabra de codigo de longitud variable asociada con una porcion dada de la representacion de tiempo-frecuencia comprenda una informacion de un unico bit que describe una longitud de pendiente de ventana de una ventana aplicada para obtener la porcion dada de la representacion de tiempo-frecuencia (132); yen el cual el codificador de audio (100) esta configurado para proveer la palabra de codigo de longitud variable de modo que la palabra de codigo de longitud variable comprenda de manera seleccionable una informacion de longitud de transformacion de un unico bit que describe una longitud de transformacion aplicada para obtener la porcion dada de la representacion de tiempo-frecuencia (132), si, y solo si, la informacion de un unico bit que describe la longitud de pendiente de ventana toma un valor predeterminado;en el cual la informacion de longitud de transformacion determina una longitud de un nucleo de una MDCT.
- 9. El codificador de audio (100) de acuerdo con la reivindicacion 8, en el cual el codificador de audio esta configurado para codificar una informacion de longitud de pendiente de ventana que describe una longitud de pendiente de ventana de lado derecho de una ventana aplicada para obtener una porcion dada de la representacion de tiempo-frecuencia y una informacion de longitud de transformacion que describe una longitud de transformacion aplicada para obtener la porcion dada de la representacion de tiempo-frecuencia (132) utilizando bits separados de la transmision de bits (192), y para decidir sobre la presencia de un bit que lleva la informacion de longitud de transformacion en dependencia del valor de la informacion de longitud de pendiente de ventana.
- 10. Una informacion de audio codificada, la informacion de audio codificada que comprende:una representacion de tiempo-frecuencia codificada que comprende un contenido de audio de una pluralidad de porciones ventaneadas de una senal de audio, en la cual unas ventanas de distintas pendientes de51015202530354045505560transicion y de distintas longitudes de transformacion son asociadas con diferentes porciones de las porciones ventaneadas de la senal de audio; yuna informacion de ventana codificada que codifica unos tipos de ventanas usados para obtener la representacion de tiempo-frecuencia codificada de una pluralidad de porciones ventaneadas de la senal de audio;en la cual la informacion de ventana codificada es una informacion de ventana de longitud variable que codifica uno o mas tipos de ventanas usando una primera cantidad mas baja de bits y que codifica uno o mas otros tipos de ventanas usando una segunda cantidad mas alta de bits;en la cual la representacion de tiempo-frecuencia codificada comprende una informacion espectral escalada, cuantificada y codificada que describe una secuencia de valores espectrales,en la cual la informacion de audio codificada comprende unas unidades de informacion de longitud de pendiente de ventana de un bit asociadas con correspondientes porciones ventaneadas de una senal de audio codificada utilizando un modo nucleo del dominio de la frecuencia, yunas unidades de informacion de longitud de transformacion de un bit asociadas selectivamente con porciones ventaneadas de la senal de audio para las que la informacion de longitud de pendiente de ventana de un bit toma un valor predeterminado;en la cual la informacion de longitud de transformacion determina una longitud de un nucleo de una MDCT.
- 11. Un metodo (1200) para proveer una informacion de audio decodificada sobre la base de una informacion de audio codificada, el metodo que comprende:evaluar (1210) una informacion de ventana de longitud de palabra de codigo variable a fin de seleccionar una ventana, desde una pluralidad de ventanas que comprende ventanas de distintas pendientes de transicion y ventanas que tienen asociadas con las mismas distintas longitudes de transformacion, para un procesamiento de una porcion dada de una representacion de tiempo-frecuencia asociada con un cuadro dado de la informacion de audio; ymapear (1220) la porcion dada de la representacion de tiempo-frecuencia, que es descrita por la informacion de audio codificada, sobre una representacion en el dominio del tiempo que usa la ventana seleccionada;en el cual el metodo comprende analizar una transmision de bits (210) que representa la informacion de audio codificada y extraer desde la transmision de bits (210) una informacion de longitud de pendiente de ventana de un bit (“window_length”) y extraer de manera selectiva, en dependencia de un valor de la informacion de longitud de pendiente de ventana de un bit, una informacion de longitud de transformacion de un bit (“transform_length”); yen el cual el metodo comprende usar o denegar de manera selectiva, en dependencia de la informacion de longitud de pendiente de ventana, la informacion de longitud de transformacion a fin de seleccionar un tipo de ventana (310, 312, 314, 316, 318) para un procesamiento de una porcion dada de la representacion de tiempo-frecuencia (242),en el cual la informacion de longitud de transformacion determina una longitud de un nucleo de una MDCT.
- 12. Un metodo (1100) para proveer una informacion de audio codificada sobre la base de una informacion de audio de entrada, el metodo que comprende:proveer (1110) una secuencia de unos parametros de senal de audio sobre la base de una pluralidad de porciones ventaneadas de la informacion de audio de entrada, en el cual bloques de muestras de la informacion de audio de entrada son transformados en conjuntos de valores espectrales, y en el cual se lleva a cabo una conmutacion entre el uso de ventanas que tienen una pendiente de transicion mas larga y el uso de ventanas que tienen una pendiente de transicion mas corta, y tambien entre el uso de ventanas que tienen asociadas con ellas dos o mas distintas longitudes de transformacion, para adaptar los tipos de ventana para obtener las porciones ventaneadas de la informacion de audio de entrada en dependencia de caracterlsticas de la informacion de audio de entrada; ycodificar una informacion que describe los tipos de ventanas usados para la transformacion de porciones de la informacion de audio de entrada, usando palabras de codigo de longitud variable;5 en el cual el metodo comprende proveer la palabra de codigo de longitud variable de modo que la palabra de codigo de longitud variable asociada con una porcion dada de la representacion de tiempo-frecuencia comprenda una informacion de un unico bit que describe una longitud de pendiente de ventana de una ventana aplicada para obtener la porcion dada de la representacion de tiempo-frecuencia (132); y10 en el cual el metodo comprende proveer la palabra de codigo de longitud variable de modo que la palabra de codigo de longitud variable comprenda de manera seleccionable una informacion de longitud de transformacion de un unico bit que describe una longitud de transformacion aplicada para obtener la porcion dada de la representacion de tiempo-frecuencia (132), si, y solo si, la informacion de un unico bit que describe la longitud de pendiente de ventana toma un valor predeterminado;15en el cual la informacion de longitud de transformacion determina una longitud de un nucleo de una MDCT.
- 13. Un programa de ordenador para realizar el metodo de acuerdo con la reivindicacion 11 o la reivindicacion 12, cuando el programa de ordenador se ejecuta en un ordenador.20
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14788709P | 2009-01-28 | 2009-01-28 | |
| US147887P | 2009-01-28 | ||
| PCT/EP2010/050998 WO2010086373A2 (en) | 2009-01-28 | 2010-01-28 | Audio encoder, audio decoder, encoded audio information, methods for encoding and decoding an audio signal and computer program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2567129T3 true ES2567129T3 (es) | 2016-04-20 |
Family
ID=42289346
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10720358.0T Active ES2567129T3 (es) | 2009-01-28 | 2010-01-28 | Codificador de audio, decodificador de audio, información de audio codificada, métodos para la codificación y decodificación de una señal de audio y programa de ordenador |
Country Status (14)
| Country | Link |
|---|---|
| US (1) | US8762159B2 (es) |
| EP (1) | EP2382625B1 (es) |
| JP (1) | JP2012516462A (es) |
| KR (1) | KR101316979B1 (es) |
| CN (1) | CN102334160B (es) |
| AR (1) | AR075199A1 (es) |
| AU (1) | AU2010209756B2 (es) |
| BR (1) | BRPI1005300B1 (es) |
| CA (1) | CA2750795C (es) |
| ES (1) | ES2567129T3 (es) |
| MX (1) | MX2011007925A (es) |
| RU (1) | RU2542668C2 (es) |
| TW (1) | TWI459375B (es) |
| WO (1) | WO2010086373A2 (es) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| MX2011000375A (es) * | 2008-07-11 | 2011-05-19 | Fraunhofer Ges Forschung | Codificador y decodificador de audio para codificar y decodificar tramas de una señal de audio muestreada. |
| MY181247A (en) * | 2008-07-11 | 2020-12-21 | Frauenhofer Ges Zur Forderung Der Angenwandten Forschung E V | Audio encoder and decoder for encoding and decoding audio samples |
| 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 |
| KR101137652B1 (ko) * | 2009-10-14 | 2012-04-23 | 광운대학교 산학협력단 | 천이 구간에 기초하여 윈도우의 오버랩 영역을 조절하는 통합 음성/오디오 부호화/복호화 장치 및 방법 |
| MY159444A (en) | 2011-02-14 | 2017-01-13 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V | Encoding and decoding of pulse positions of tracks of an audio signal |
| AR085218A1 (es) | 2011-02-14 | 2013-09-18 | Fraunhofer Ges Forschung | Aparato y metodo para ocultamiento de error en voz unificada con bajo retardo y codificacion de audio |
| PL2676267T3 (pl) | 2011-02-14 | 2017-12-29 | Fraunhofergesellschaft Zur Förderung Der Angewandten Forschung E V | Kodowanie i dekodowanie pozycji impulsów ścieżek sygnału audio |
| MX2013009303A (es) | 2011-02-14 | 2013-09-13 | Fraunhofer Ges Forschung | Codec de audio utilizando sintesis de ruido durante fases inactivas. |
| ES2458436T3 (es) | 2011-02-14 | 2014-05-05 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Representación de señal de información utilizando transformada superpuesta |
| AU2012217216B2 (en) | 2011-02-14 | 2015-09-17 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result |
| EP2676266B1 (en) | 2011-02-14 | 2015-03-11 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Linear prediction based coding scheme using spectral domain noise shaping |
| TR201908598T4 (tr) * | 2011-02-14 | 2019-07-22 | Fraunhofer Ges Forschung | Bir ses sinyalinin hizalı bir ileriye dönük kısımdan faydalanılarak enkode edilmesi için cihaz ve yöntem. |
| AR085362A1 (es) | 2011-02-14 | 2013-09-25 | Fraunhofer Ges Forschung | Aparato y metodo para procesar una señal de audio decodificada en un dominio espectral |
| KR101742136B1 (ko) * | 2011-03-18 | 2017-05-31 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치 |
| US8838261B2 (en) * | 2011-06-03 | 2014-09-16 | Apple Inc. | Audio configuration based on selectable audio modes |
| JP5799707B2 (ja) * | 2011-09-26 | 2015-10-28 | ソニー株式会社 | オーディオ符号化装置およびオーディオ符号化方法、オーディオ復号装置およびオーディオ復号方法、並びにプログラム |
| CN104718572B (zh) * | 2012-06-04 | 2018-07-31 | 三星电子株式会社 | 音频编码方法和装置、音频解码方法和装置及采用该方法和装置的多媒体装置 |
| KR20140075466A (ko) | 2012-12-11 | 2014-06-19 | 삼성전자주식회사 | 오디오 신호의 인코딩 및 디코딩 방법, 및 오디오 신호의 인코딩 및 디코딩 장치 |
| ES2736309T3 (es) | 2013-02-20 | 2019-12-27 | Fraunhofer Ges Forschung | Aparato y procedimiento para codificar o descodificar una señal de audio utilizando una superposición que depende de una ubicación de transitorios |
| US20150100324A1 (en) * | 2013-10-04 | 2015-04-09 | Nvidia Corporation | Audio encoder performance for miracast |
| EP2980791A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
| FR3024582A1 (fr) * | 2014-07-29 | 2016-02-05 | Orange | Gestion de la perte de trame dans un contexte de transition fd/lpd |
| CN105632503B (zh) * | 2014-10-28 | 2019-09-03 | 南宁富桂精密工业有限公司 | 信息隐藏方法及系统 |
| US10504530B2 (en) * | 2015-11-03 | 2019-12-10 | Dolby Laboratories Licensing Corporation | Switching between transforms |
| MY181992A (en) | 2016-01-22 | 2021-01-18 | Fraunhofer Ges Forschung | Apparatus and method for encoding or decoding a multi-channel signal using spectral-domain resampling |
| CN117037806A (zh) * | 2017-01-10 | 2023-11-10 | 弗劳恩霍夫应用研究促进协会 | 音频解码器和编码器、提供解码的音频信号的方法、提供编码的音频信号的方法、使用流标识符的音频流、音频流提供器和计算机程序 |
| EP3382700A1 (en) * | 2017-03-31 | 2018-10-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for post-processing an audio signal using a transient location detection |
| KR102632136B1 (ko) | 2017-04-28 | 2024-01-31 | 디티에스, 인코포레이티드 | 오디오 코더 윈도우 사이즈 및 시간-주파수 변환 |
| EP3483880A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Temporal noise shaping |
| 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 |
| EP3483886A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Selecting pitch lag |
| EP3483884A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Signal filtering |
| 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 |
| 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 |
| 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 |
| 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 |
| EP3813064B1 (en) * | 2018-06-21 | 2025-04-09 | Sony Group Corporation | Audio encoder, audio encoding method, and computer program |
| CN111862953B (zh) * | 2019-12-05 | 2023-08-22 | 北京嘀嘀无限科技发展有限公司 | 语音识别模型的训练方法、语音识别方法及装置 |
| CN120934528A (zh) | 2020-10-06 | 2025-11-11 | 弗劳恩霍夫应用研究促进协会 | 对信息值序列进行算术编码的算术编码器与进行算数解码的算数解码器及用于算术编码与解码信息值序列的方法及实现方法的计算机程序 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2654294B1 (fr) | 1989-11-08 | 1992-02-14 | Aerospatiale | Torche a plasma a amorcage par court-circuit. |
| JP2853553B2 (ja) * | 1994-02-22 | 1999-02-03 | 日本電気株式会社 | 動画像符号化方式 |
| US5848391A (en) * | 1996-07-11 | 1998-12-08 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Method subband of coding and decoding audio signals using variable length windows |
| KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
| KR100335611B1 (ko) * | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
| US6446037B1 (en) * | 1999-08-09 | 2002-09-03 | Dolby Laboratories Licensing Corporation | Scalable coding method for high quality audio |
| US6978236B1 (en) * | 1999-10-01 | 2005-12-20 | Coding Technologies Ab | Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching |
| US7110953B1 (en) * | 2000-06-02 | 2006-09-19 | Agere Systems Inc. | Perceptual coding of audio signals using separated irrelevancy reduction and redundancy reduction |
| CN100431355C (zh) * | 2000-08-16 | 2008-11-05 | 多尔拜实验特许公司 | 响应补充信息修改音频或视频感知编码系统的一个或多个参数 |
| DE10345995B4 (de) * | 2003-10-02 | 2005-07-07 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Verarbeiten eines Signals mit einer Sequenz von diskreten Werten |
| SE0402651D0 (sv) * | 2004-11-02 | 2004-11-02 | Coding Tech Ab | Advanced methods for interpolation and parameter signalling |
| US8121836B2 (en) | 2005-07-11 | 2012-02-21 | Lg Electronics Inc. | Apparatus and method of processing an audio signal |
| KR101215937B1 (ko) * | 2006-02-07 | 2012-12-27 | 엘지전자 주식회사 | IOI 카운트(inter onset intervalcount) 기반 템포 추정 방법 및 이를 위한 템포 추정장치 |
| US7953595B2 (en) * | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
| US8036903B2 (en) | 2006-10-18 | 2011-10-11 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
| EP2015293A1 (en) * | 2007-06-14 | 2009-01-14 | Deutsche Thomson OHG | Method and apparatus for encoding and decoding an audio signal using adaptively switched temporal resolution in the spectral domain |
| KR101490246B1 (ko) * | 2007-07-02 | 2015-02-05 | 엘지전자 주식회사 | 방송 수신기 및 방송신호 처리방법 |
-
2010
- 2010-01-28 ES ES10720358.0T patent/ES2567129T3/es active Active
- 2010-01-28 JP JP2011546842A patent/JP2012516462A/ja active Pending
- 2010-01-28 CA CA2750795A patent/CA2750795C/en active Active
- 2010-01-28 MX MX2011007925A patent/MX2011007925A/es active IP Right Grant
- 2010-01-28 WO PCT/EP2010/050998 patent/WO2010086373A2/en not_active Ceased
- 2010-01-28 AR ARP100100218A patent/AR075199A1/es active IP Right Grant
- 2010-01-28 AU AU2010209756A patent/AU2010209756B2/en active Active
- 2010-01-28 RU RU2011133691/08A patent/RU2542668C2/ru active
- 2010-01-28 CN CN201080009687.5A patent/CN102334160B/zh active Active
- 2010-01-28 KR KR1020117018596A patent/KR101316979B1/ko active Active
- 2010-01-28 BR BRPI1005300-0A patent/BRPI1005300B1/pt active IP Right Grant
- 2010-01-28 EP EP10720358.0A patent/EP2382625B1/en active Active
- 2010-01-28 TW TW099102406A patent/TWI459375B/zh active
-
2011
- 2011-07-26 US US13/191,246 patent/US8762159B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| BRPI1005300A2 (pt) | 2016-12-06 |
| RU2011133691A (ru) | 2013-03-10 |
| EP2382625B1 (en) | 2016-01-06 |
| AU2010209756B2 (en) | 2013-10-31 |
| RU2542668C2 (ru) | 2015-02-20 |
| CN102334160B (zh) | 2014-05-07 |
| KR101316979B1 (ko) | 2013-10-11 |
| HK1163914A1 (zh) | 2012-09-14 |
| WO2010086373A3 (en) | 2010-10-07 |
| US20120022881A1 (en) | 2012-01-26 |
| TW201032218A (en) | 2010-09-01 |
| BRPI1005300B1 (pt) | 2021-06-29 |
| US8762159B2 (en) | 2014-06-24 |
| CA2750795C (en) | 2015-05-26 |
| WO2010086373A2 (en) | 2010-08-05 |
| MX2011007925A (es) | 2011-08-17 |
| AU2010209756A1 (en) | 2011-08-25 |
| JP2012516462A (ja) | 2012-07-19 |
| CA2750795A1 (en) | 2010-08-05 |
| EP2382625A2 (en) | 2011-11-02 |
| CN102334160A (zh) | 2012-01-25 |
| TWI459375B (zh) | 2014-11-01 |
| KR20110124229A (ko) | 2011-11-16 |
| AR075199A1 (es) | 2011-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2567129T3 (es) | Codificador de audio, decodificador de audio, información de audio codificada, métodos para la codificación y decodificación de una señal de audio y programa de ordenador | |
| JP7227204B2 (ja) | フォワードエイリアシング消去を用いた符号器 | |
| RU2571388C2 (ru) | Передача длины элемента кадра при кодировании аудио | |
| ES2897660T3 (es) | Decodificación de secuencias de bits de audio con metadatos de replicación de banda espectral mejorada en al menos un elemento de relleno | |
| ES2901109T3 (es) | Codificador de audio para la codificación de una señal de múltiples canales y un decodificador de audio para la decodificación de una señal de audio codificada | |
| ES2391117T3 (es) | Método y aparato para procesar una señal de audio | |
| ES2746934T3 (es) | Relleno de ruido en codificación de audio multicanal | |
| JP7311940B2 (ja) | 変換長切替えをサポートする周波数ドメインオーディオ符号化 | |
| ES2953832T3 (es) | 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 | |
| ES3021383T3 (en) | Backward-compatible integration of harmonic transposer for high frequency reconstruction of audio signals | |
| ES2948839T3 (es) | Integración retrocompatible de técnicas de reconstrucción de alta frecuencia para señales de audio | |
| ES2770029T3 (es) | Decodificación de secuencias de bits de audio con metadatos de replicación de banda espectral mejorada en al menos un elemento de relleno | |
| HK1163914B (en) | Audio encoder, audio decoder, encoded audio information, methods for encoding and decoding an audio signal and computer program |