ES2902518T3 - Codificador de audio - Google Patents

Codificador de audio Download PDF

Info

Publication number
ES2902518T3
ES2902518T3 ES19193266T ES19193266T ES2902518T3 ES 2902518 T3 ES2902518 T3 ES 2902518T3 ES 19193266 T ES19193266 T ES 19193266T ES 19193266 T ES19193266 T ES 19193266T ES 2902518 T3 ES2902518 T3 ES 2902518T3
Authority
ES
Spain
Prior art keywords
vector
symbol
elements
encoding
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19193266T
Other languages
English (en)
Inventor
Jonas Samuelsson Leif
Heiko Purnhagen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby International AB
Original Assignee
Dolby International AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International AB filed Critical Dolby International AB
Application granted granted Critical
Publication of ES2902518T3 publication Critical patent/ES2902518T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S3/00Systems employing more than two channels, e.g. quadraphonic
    • H04S3/02Systems employing more than two channels, e.g. quadraphonic of the matrix type, i.e. in which input signals are combined algebraically, e.g. after having been phase shifted with respect to each other
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/01Multi-channel, i.e. more than two input channels, sound reproduction with two speakers wherein the multi-channel information is substantially preserved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2420/00Techniques used stereophonic systems covered by H04S but not provided for in its groups
    • H04S2420/03Application of parametric coding in stereophonic audio systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Stereophonic System (AREA)

Abstract

Un procedimiento para codificar una matriz de mezcla ascendente en un sistema de codificación de audio (100), comprendiendo cada fila de matriz de mezcla ascendente M elementos que permiten la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio desde una señal de mezcla descendente que comprende M canales, comprendiendo el procedimiento: para cada fila en la matriz de mezcla ascendente: seleccionar un subconjunto de elementos de los M elementos de la fila en la matriz de mezcla ascendente, en el que el subconjunto seleccionado de elementos comprende el mismo número de elementos para cada fila de la matriz de mezcla ascendente; representar cada elemento en el subconjunto seleccionado de elementos por un valor y una posición en la matriz de mezcla ascendente; codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto seleccionado de elementos, en el que, para cada fila en la matriz de mezcla ascendente y para una pluralidad de bandas de frecuencia o una pluralidad de tramas de tiempo, los valores de los elementos y/o las posiciones de los elementos de los subconjuntos seleccionados de elementos forman uno o más vectores (114, 902, 1002) de parámetros, correspondiendo cada parámetro del vector de parámetros con una de la pluralidad de bandas de frecuencia o la pluralidad de tramas de tiempo, en el que cada vector de uno o más vectores de parámetros tiene un primer elemento (1002) y al menos un segundo elemento (902), y en el que uno o más vectores de parámetros se codifican mediante: representar (S702, S802) cada parámetro del vector mediante un valor de índice que adopta uno de N posibles valores; asociar cada uno de dicho por lo menos un segundo elemento con un símbolo, calculándose el símbolo mediante: calcular (S704) la diferencia entre el valor de índice del segundo elemento y el valor de índice de su elemento anterior en el vector; y aplicar (S706) módulo N a la diferencia; codificar (S708) cada uno de dicho por lo menos un segundo elemento mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento, en base a una tabla de probabilidades que comprende probabilidades de los símbolos; asociar el primer elemento del vector con un símbolo, calculándose el símbolo mediante: desplazar (S804) el valor de índice que representa el primer elemento del vector, restando del valor de índice un valor de desplazamiento; aplicar (S806) módulo N al valor de índice desplazado; codificar el primer elemento mediante la codificación entrópica del símbolo asociado con el primer elemento utilizando la misma tabla de probabilidades que se ha utilizado para codificar dicho por lo menos un segundo elemento.

Description

DESCRIPCIÓN
Codificador de audio
Referencia cruzada con las solicitudes relacionadas
La presente solicitud reivindica el beneficio de la fecha de presentación de la solicitud de patente provisional de Estados Unidos n ° 61/827,264 presentada el 24 de mayo de 2013.
Esta solicitud es una solicitud divisional europea de la solicitud de patente europea EP 17164543.5 (referencia: D13055EP02), para la cual el formulario OEP 1001 fue presentada el 3 de abril de 2017. El documento 17164543.5 es en sí una solicitud divisional europea de la solicitud de patente Euro-PCT EP 14725736.4 (referencia: D13055EP01), presentada el 23 de mayo y concedida como EP 3005350 el 10 de mayo de 2017.
Sector técnico
La invención de la presente memoria se refiere, en general, a codificación de audio. En particular, se refiere a la codificación y descodificación de un vector de parámetros en un sistema de codificación de audio. La invención se refiere además a un procedimiento y un aparato para reconstruir un objeto de audio en un sistema de descodificación de audio.
Técnica anterior
En los sistemas de audio convencionales se utiliza un enfoque basado en canales. Cada canal puede representar, por ejemplo, el contenido de un altavoz o de un conjunto de altavoces. Los posibles esquemas de codificación para dichos sistemas incluyen codificación multicanal discreta o codificación paramétrica, tal como MPEG Surround. Más recientemente se ha desarrollado un nuevo enfoque. Este enfoque está basado en objetos. En un sistema que utiliza el enfoque basado en objetos, una escena de audio tridimensional se representa mediante objetos de audio con sus metadatos posicionales asociados. Estos objetos de audio se desplazan en la escena de audio tridimensional durante la reproducción de la señal de audio. El sistema puede incluir además los denominados canales de base, que se pueden describir como objetos de audio estacionarios que están mapeados directamente a las posiciones de altavoz, por ejemplo, de un sistema de audio convencional tal como el descrito anteriormente. Un problema que puede surgir en un sistema de audio basado en objetos es cómo codificar y descodificar eficientemente la señal de audio y conservar la calidad de la señal codificada. Un posible esquema de codificación incluye, en el lado del codificador, crear una señal de mezcla descendente que comprende una serie de canales a partir de los objetos de audio y los canales de base, e información lateral que permite la recreación de los objetos de audio y los canales de base en el lado del descodificador.
La codificación de objetos de audio espacial MPEG (MPEG SAOC, MPEG Spatial Audio Object Coding) describe un sistema para la codificación paramétrica de objetos de audio. El sistema envía información lateral, ver la matriz de mezcla ascendente, que describe las propiedades de los objetos por medio de parámetros tales como diferencia de nivel y correlación transversal de los objetos. Estos parámetros son utilizados a continuación para controlar la recreación de los objetos de audio en el lado del descodificador. Este proceso puede ser matemáticamente complejo y a menudo se tiene que basar en hipótesis sobre propiedades de objetos de audio que los parámetros no describen explícitamente. El procedimiento presentado en MPEG SAOC puede reducir la tasa de bits necesaria para un sistema de audio basado en objetos, pero pueden ser necesarias mejoras adicionales para seguir aumentando la eficiencia y la calidad, tal como se ha descrito anteriormente.
El documento US 2004/0039568 A1 describe un aparato de codificación, en el que cuando el valor diferencial entre unidades de cuantificación adyacentes de información de precisión de cuantificación donde, por ejemplo, el intervalo de distribución es 0-7, por ejemplo, si el valor diferencial es de 3 o mayor se resta 8, y si el valor diferencial es menor de - 4 se suma 8, para transformar de ese modo dos valores diferenciales, donde la diferencia entre ambos es de 8, en el mismo valor. Por lo tanto, el intervalo de distribución del valor diferencial pasa a ser de -4-3, y el tamaño del libro de código (tabla) se puede limitar al mismo tamaño en el caso en que no se toma la diferencia. El documento "Multichannel Coding of Applause Signals" (Hotho, et al., EURASIP Journal on Advances in Signal Processing, 2 de agosto de 2007) describe un códec de audio de multicanal paramétrico dedicado a señales de codificación que consisten en una serie densa de eventos de tipo transitorio, tales como el aplaudo. El diseño de códec se basa en la preservación tanto de timbre como densidad de evento de tipo transitorio.
El documento US 2004/268334 A1 describe el uso de canalización de software para traducir programas, de lenguajes de alto nivel a objeto equivalente o código de lenguaje de máquina para su ejecución en la computadora, incluidos conjuntos/matrices dispersos.
El documento "An efficient Huffman table sharing method for memory-constrained entropy encoding of multiple sources" (Seung et al.) se refiere a la compartición de tablas de Huffman entre diferentes fuentes.
Breve descripción de los dibujos
A continuación se describirán realizaciones de ejemplo haciendo referencia a los dibujos adjuntos, en los cuales: la figura 1 es un diagrama de bloques generalizado de un sistema de codificación de audio de acuerdo con un ejemplo de realización;
la figura 2 es un diagrama de bloques generalizado del codificador de matriz de mezcla ascendente a modo de ejemplo mostrado en la figura 1;
la figura 3 muestra una distribución de probabilidad a modo de ejemplo para un primer elemento en un vector de parámetros correspondiente a un elemento en una matriz de mezcla ascendente determinada mediante el sistema de codificación de audio de la figura 1;
la figura 4 muestra una distribución de probabilidad a modo de ejemplo, para por lo menos un segundo elemento de codificación diferencial con módulo, en un vector de parámetros correspondiente a un elemento en una matriz de mezcla ascendente determinada por el sistema de codificación de audio de la figura 1;
la figura 5 es un diagrama de bloques generalizado de un sistema de descodificación de audio;
la figura 6 es un diagrama de bloques generalizado del descodificador de matriz de mezcla ascendente mostrado en la figura 5;
la figura 7 describe un procedimiento de codificación para los segundos elementos en un vector de parámetros correspondiente a un elemento en una matriz de mezcla ascendente determinada por el sistema de codificación de audio de la figura 1;
la figura 8 describe un procedimiento de codificación para un primer elemento en un vector de parámetros correspondiente a un elemento en una matriz de mezcla ascendente determinada mediante el sistema de codificación de audio de la figura 1;
la figura 9 describe las partes del procedimiento de codificación de la figura 7 para los segundos elementos en un vector de parámetros a modo de ejemplo;
la figura 10 describe las partes del procedimiento de codificación de la figura 8 para el primer elemento en un vector de parámetros a modo de ejemplo;
la figura 11 es un diagrama de bloques generalizado de un segundo codificador de matriz de mezcla ascendente a modo de ejemplo mostrado en la figura 1;
la figura 12 es un diagrama de bloques generalizado de un sistema de descodificación de audio;
la figura 13 describe un procedimiento de codificación para la codificación ligera de una fila de una matriz de mezcla ascendente;
la figura 14 describe partes del procedimiento de codificación de la figura 10 para una fila de ejemplo de una matriz de mezcla ascendente;
la figura 15 describe partes del procedimiento de codificación de la figura 10 para una fila de ejemplo de una matriz de mezcla ascendente.
Todas las figuras son esquemáticas y generalmente muestran sólo las partes que son necesarias para explicar la invención, mientras que otras partes pueden estar omitidas o tan sólo sugeridas. Salvo que se indique lo contrario, los numerales de referencia similares se refieren a partes similares en las diferentes figuras.
Descripción detallada
En vista de lo anterior, un objetivo es dar a conocer codificadores y descodificadores, y procedimientos asociados, que proporcionen una mayor eficiencia y calidad de la señal de audio codificada.
I. Visión general - codificador
De acuerdo con un primer aspecto, los ejemplos proponen procedimientos de codificación, codificadores y productos de programa informático para codificar. Los procedimientos, codificadores y productos de programa informático propuestos pueden tener, en general, las mismas características y ventajas.
De acuerdo con ejemplos, se da a conocer un procedimiento para codificar un vector de parámetros en un sistema de codificación de audio, correspondiendo cada parámetro a una cantidad no periódica, teniendo el vector un primer elemento y por lo menos un segundo elemento, comprendiendo el procedimiento: representar cada parámetro en el vector por un valor de índice que adopta uno de N posibles valores; asociar cada uno de dicho por lo menos un segundo elemento con un símbolo, calculándose el símbolo mediante: calcular la diferencia entre el valor de índice del segundo elemento y el valor de índice de su elemento anterior en el vector; aplicar módulo N a la diferencia. El procedimiento comprende además la etapa de codificar cada uno de dicho por lo menos un segundo elemento mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento en base a una tabla de probabilidades que comprende probabilidades de los símbolos.
Una ventaja de este procedimiento es que el número de posibles símbolos se reduce aproximadamente en un factor dos en comparación con las estrategias convencionales de codificación diferencial donde no se aplica módulo N a la diferencia. Por consiguiente, el tamaño de la tabla de probabilidades se reduce aproximadamente en un factor dos. Como resultado, se requiere menos memoria para almacenar la tabla de probabilidades y, dado que la tabla de probabilidades se almacena a menudo en memoria costosa en el codificador, el codificador puede de este modo abaratarse. Además, se puede aumentar la velocidad de búsqueda del símbolo en la tabla de probabilidades. Otra ventaja es que la eficiencia de la codificación puede aumentar dado que todos los símbolos de la tabla de probabilidades son posibles candidatos a asociar con un segundo elemento específico. Esto se puede comparar con estrategias convencionales de codificación diferencial donde solo aproximadamente la mitad de los símbolos en la tabla de probabilidades son candidatos a ser asociados con un segundo elemento específico.
Según ejemplos, el procedimiento comprende además asociar el primer elemento en el vector con un símbolo, calculándose el símbolo mediante: desplazar el valor de índice que representa el primer elemento en el vector mediante un valor de desplazamiento; aplicar módulo N al valor de índice desplazado. El procedimiento comprende además la etapa de codificar el primer elemento mediante la codificación entrópica del símbolo asociado con el primer elemento utilizando la misma tabla de probabilidades que se utilizó para codificar dicho por lo menos un segundo elemento.
Este ejemplo utiliza el hecho de que la distribución de probabilidad del valor de índice del primer elemento y la distribución de probabilidad de los símbolos de dicho por lo menos un segundo elemento son similares, aunque están desplazadas entre sí por un valor de desplazamiento. Como consecuencia, se puede utilizar la misma tabla de probabilidades para el primer elemento en el vector, en lugar de una tabla de probabilidades dedicada. Esto puede tener como resultado unos menores requisitos de memoria y un codificador más económico, según lo anterior. De acuerdo con un ejemplo, el valor de desplazamiento es igual a la diferencia entre el valor de índice más probable para el primer elemento y el símbolo más probable para dicho por lo menos un segundo elemento en la tabla de probabilidades. Esto significa que se alinean los picos de las distribuciones de probabilidad. Por consiguiente, se mantiene sustancialmente la misma eficiencia de codificación para el primer elemento en comparación con si se utilizara una tabla de probabilidades dedicada a dicho el primer elemento.
De acuerdo con ejemplos, el primer elemento y dicho por lo menos un segundo elemento del vector de parámetros corresponden a bandas de frecuencia diferentes utilizadas en el sistema de codificación de audio en una trama de tiempo específica. Esto significa que se pueden codificar en la misma operación los datos correspondientes a una serie de bandas de frecuencia. Por ejemplo, el vector de parámetros puede corresponder a un coeficiente de mezcla ascendente o reconstrucción, que varía sobre una serie de bandas de frecuencia.
De acuerdo con un ejemplo, el primer elemento y dicho por lo menos un segundo elemento del vector de parámetros corresponden a tramas de tiempo diferentes utilizadas en el sistema de codificación de audio en una banda de frecuencia específica. Esto significa que se pueden codificar en la misma operación datos correspondientes a una serie de tramas de tiempo. Por ejemplo, el vector de parámetros puede corresponder a un coeficiente de mezcla ascendente o reconstrucción, que varía sobre una serie de tramas de tiempo.
De acuerdo con ejemplos, la tabla de probabilidades se traduce a un libro de códigos de Huffman, donde el símbolo asociado con un elemento en el vector se utiliza como un índice del libro de códigos, y donde la etapa de codificación comprende codificar cada uno de dicho por lo menos un segundo elemento representando el segundo elemento con una palabra de código del libro de códigos que está indexada por el índice del libro de códigos asociado con el segundo elemento. Al utilizar el símbolo como índice del libro de códigos, se puede aumentar la velocidad de consulta de la palabra de código para representar el elemento.
De acuerdo con ejemplos, la etapa de codificación comprende codificar el primer elemento en el vector utilizando el mismo libro de códigos de Huffman que se ha utilizado para codificar dicho por lo menos un segundo elemento, representando el primer elemento con una palabra de código en el libro de códigos de Huffman que está indexada por el índice del libro de códigos asociado con el primer elemento. Por consiguiente, solamente es necesario almacenar un libro de códigos de Huffman en la memoria del codificador, lo que puede conducir a un codificador más económico según lo anterior.
Según otro ejemplo, el vector de parámetros corresponde a un elemento en una matriz de mezcla ascendente determinada por el sistema de codificación de audio. Esto puede reducir la tasa de bits necesaria en un sistema de codificación/descodificación de audio, dado que la matriz de mezcla ascendente se puede codificar eficientemente. De acuerdo con ejemplos, se da a conocer un medio legible por ordenador que comprende instrucciones de código informático adaptadas para llevar a cabo cualquier procedimiento del primer aspecto cuando son ejecutadas en un dispositivo con capacidad de procesamiento.
De acuerdo con ejemplos, se da a conocer un codificador para codificar un vector de parámetros en un sistema de codificación de audio, correspondiendo cada parámetro a una cantidad no periódica, teniendo el vector un primer elemento y por lo menos un segundo elemento, comprendiendo el codificador: un componente de recepción adaptado para recibir el vector, un componente de indexación adaptado para representar cada parámetro en el vector mediante un valor de índice que puede adoptar N valores; un componente de asociación adaptado para asociar cada uno de dicho por lo menos un segundo elemento con un símbolo, calculándose el símbolo mediante: calcular la diferencia entre el valor de índice del segundo elemento y el valor de índice de su elemento precedente en el vector; aplicar módulo N a la diferencia. El codificador comprende además un componente de codificación para codificar cada uno de dicho por lo menos un segundo elemento mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento, en base a una tabla de probabilidades que comprende las probabilidades de los símbolos.
II. Visión general - descodificador
Según un segundo aspecto, los ejemplos proponen procedimientos de descodificación, descodificadores y productos de programa informático para descodificar. Los procedimientos, descodificadores y productos de programa informático propuestos pueden tener, en general, las mismas características y ventajas.
Las ventajas relativas a características y configuraciones presentadas en la visión general del codificador anterior pueden ser válidas en general para las correspondientes características y configuraciones para el descodificador. De acuerdo con ejemplos, se da a conocer un procedimiento para descodificar un vector de símbolos codificados por entropía en un sistema de descodificación de audio, en un vector de parámetros correspondientes a una cantidad no periódica, comprendiendo el vector de símbolos codificados por entropía un primer símbolo codificado por entropía y por lo menos un segundo símbolo codificado por entropía, y comprendiendo el vector de parámetros un primer elemento y por lo menos un segundo elemento, comprendiendo el procedimiento: representar cada símbolo codificado por entropía en el vector de símbolos codificados por entropía mediante un símbolo que puede adoptar N valores enteros utilizando una tabla de probabilidades; asociar el primer símbolo codificado por entropía con un valor de índice; asociar cada uno de dicho por lo menos un segundo símbolo codificado por entropía con un valor de índice, calculándose el valor de índice de dicho por lo menos un segundo símbolo codificado por entropía mediante: calcular la suma del valor de índice asociado con el símbolo codificado por entropía anterior al segundo símbolo codificado por entropía en el vector de símbolos codificados por entropía y el símbolo que representa el segundo símbolo codificado por entropía; aplicar módulo N a la suma. El procedimiento comprende además la etapa de representar dicho por lo menos un segundo elemento del vector de parámetros mediante un valor de parámetro correspondiente al valor de índice asociado con dicho por lo menos un segundo símbolo codificado por entropía. De acuerdo con ejemplos, la etapa de representar cada símbolo codificado por entropía en el vector de símbolos codificados por entropía mediante un símbolo se realiza utilizando la misma tabla de probabilidades para todos los símbolos codificados por entropía en el vector de símbolos codificados por entropía, donde el valor de índice asociado con el primer símbolo codificado por entropía se calcula mediante: desplazar el símbolo que representa el primer símbolo codificado por entropía en el vector de símbolos codificados por entropía mediante un valor de desplazamiento; aplicar módulo N al símbolo desplazado. Comprendiendo además el procedimiento la etapa de: representar el primer elemento del vector de parámetros mediante un valor de parámetro correspondiente al valor de índice asociado con el primer símbolo codificado por entropía.
De acuerdo con un ejemplo, la tabla de probabilidades se traduce a un libro de códigos de Huffman, y cada símbolo codificado por entropía corresponde a una palabra de código en el libro de códigos de Huffman.
De acuerdo con otros ejemplos, cada palabra de código en el libro de códigos de Huffman está asociada con un índice del libro de códigos, y la etapa de representar cada símbolo codificado por entropía en el vector de símbolos codificados por entropía mediante un símbolo comprende representar el símbolo codificado por entropía mediante el índice del libro de códigos que está asociado con la palabra de código correspondiente al símbolo codificado por entropía.
De acuerdo con ejemplos, cada símbolo codificado por entropía en el vector de símbolos codificados por entropía corresponde a bandas de frecuencia diferentes utilizadas en el sistema de descodificación de audio en una trama de tiempo específica.
De acuerdo con un ejemplo, cada símbolo codificado por entropía en el vector de símbolos codificados por entropía corresponde a tramas de tiempo diferentes utilizadas en el sistema de descodificación de audio en una banda de frecuencia específica.
De acuerdo con ejemplos, el vector de parámetros corresponde a un elemento en una matriz de mezcla ascendente utilizada por el sistema de descodificación de audio.
De acuerdo con ejemplos, se da a conocer un medio legible por ordenador que comprende instrucciones de código informático adaptadas para llevar a cabo cualquier procedimiento del segundo aspecto cuando son ejecutadas en un dispositivo con capacidad de procesamiento.
De acuerdo con ejemplos, se da a conocer un descodificador para descodificar un vector de símbolos codificados por entropía en un sistema de descodificación de audio, en un vector de parámetros correspondientes a una cantidad no periódica, comprendiendo el vector de símbolos codificados por entropía un primer símbolo codificado por entropía y por lo menos un segundo símbolo codificado por entropía, y comprendiendo el vector de parámetros un primer elemento y por lo menos un segundo elemento, comprendiendo el descodificador: un componente de recepción configurado para recibir el vector de símbolos codificados por entropía; un componente de indexación configurado para representar cada símbolo codificado por entropía en el vector de símbolos codificados por entropía mediante un símbolo que puede adoptar N valores enteros, utilizando una tabla de probabilidades; un componente de asociación configurado para asociar el primer símbolo codificado por entropía con un valor de índice; el componente de asociación configurado además para asociar cada uno de dicho por lo menos un segundo símbolo codificado por entropía con un valor de índice, el valor de índice de dicho por lo menos un segundo símbolo codificado por entropía calculándose mediante: calcular la suma del valor de índice asociado con el símbolo codificado por entropía anterior al segundo símbolo codificado por entropía en el vector de símbolos codificados por entropía y el símbolo que representa el segundo símbolo codificado por entropía; aplicar módulo N a la suma. El descodificador comprende además un componente de descodificación configurado para representar dicho por lo menos un segundo elemento del vector de parámetros mediante un valor de parámetro correspondiente al valor de índice asociado con dicho por lo menos un segundo símbolo codificado por entropía.
III. Visión general - codificador de matriz ligera
De acuerdo con un tercer aspecto, las realizaciones de ejemplo proponen procedimientos de codificación, codificadores y productos de programa informático para codificar. Los procedimientos, codificadores y productos de programa informático propuestos pueden tener, en general, las mismas características y ventajas.
De acuerdo con realizaciones de ejemplo, se da a conocer un procedimiento para codificar una matriz de mezcla ascendente en un sistema de codificación de audio, comprendiendo cada fila de la matriz de mezcla ascendente M elementos que permiten la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio a partir de una señal de mezcla descendente que comprende M canales, comprendiendo el procedimiento: para cada fila de la matriz de mezcla ascendente: seleccionar un subconjunto de elementos a partir de los M elementos de la fila de la matriz de mezcla ascendente; representar cada elemento en el subconjunto de elementos seleccionado mediante un valor y una posición en la matriz de mezcla ascendente; codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto de elementos seleccionado.
Tal como se utiliza en la presente memoria, el término señal de mezcla descendente que comprende M canales significa una señal que comprende M señales, o canales, donde cada uno de los canales es una combinación de una serie de objetos de audio, que incluyen los objetos de audio a reconstruir. El número de canales es habitualmente mayor que uno y, en muchos casos, el número de canales es de cinco o más.
Tal como se utiliza en la presente memoria, el término matriz de mezcla ascendente se refiere a una matriz que tiene N filas y M columnas, que permite la reconstrucción de N objetos de audio a partir de una señal de mezcla descendente que comprende M canales. Los elementos en cada fila de la matriz de mezcla ascendente corresponden a un objeto de audio, y proporcionan coeficientes a multiplicar por los M canales de la mezcla descendente para reconstruir el objeto de audio.
Tal como se utiliza en la presente memoria, una posición en la matriz de mezcla ascendente significa, en general, un índice de fila y de columna que indica la fila y la columna del elemento de matriz. El término posición puede significar asimismo un índice de columna en una fila determinada de la matriz de mezcla ascendente.
En algunos casos, enviar todos los elementos de una matriz de mezcla ascendente por cada tesela de tiempo/frecuencia requiere una tasa de bits indeseablemente alta en un sistema de codificación/descodificación de audio. Una ventaja del procedimiento es que solamente es necesario codificar y transmitir al descodificador un subconjunto de los elementos de la matriz de mezcla ascendente. Esto puede reducir la tasa de bits de un sistema de codificación/descodificación de audio, dado que se transmiten menos datos y estos se pueden codificar de manera más eficiente.
Los sistemas de codificación/descodificación de audio dividen habitualmente el espacio de tiempo-frecuencia en teselas de tiempo/frecuencia, por ejemplo, aplicando bancos de filtros adecuados a las señales de audio de entrada. Una tesela de tiempo/frecuencia significa generalmente una parte de un espacio de tiempo-frecuencia correspondiente un intervalo de tiempo y a una sub-banda de frecuencia. El intervalo de tiempo puede corresponder habitualmente a la duración de una trama de tiempo utilizada en el sistema de codificación/descodificación de audio. La sub-banda de frecuencia puede corresponder habitualmente a una o varias sub-bandas de frecuencia contiguas definidas por el banco de filtros utilizado en el sistema de codificación/descodificación. En caso de que la sub-banda de frecuencia corresponda a varias sub-bandas de frecuencia contiguas definidas por el banco de filtros, esto permite tener sub-bandas de frecuencia no uniformes en el proceso de descodificación de la señal de audio, por ejemplo, sub-bandas de frecuencia más anchas para frecuencias mayores de la señal de audio. En un caso de banda ancha, en el que el sistema de codificación/descodificación de audio funciona sobre todo el intervalo de frecuencias, la sub-banda de frecuencia de la tesela de tiempo/frecuencia puede corresponder a todo el intervalo de frecuencias. El procedimiento anterior da a conocer las etapas de codificación para codificar una matriz de mezcla ascendente en un sistema de codificación de audio con el fin de permitir la reconstrucción de un objeto de audio durante una tesela de tiempo/frecuencia. Sin embargo, se debe entender que el procedimiento se puede repetir para cada tesela de tiempo/frecuencia del sistema de codificación/descodificación de audio. Se debe entender asimismo que se pueden codificar simultáneamente varias teselas de tiempo/frecuencia. Habitualmente, las teselas de tiempo/frecuencia contiguas pueden solapar un poco en tiempo y/o frecuencia. Por ejemplo, un solape en el tiempo puede ser equivalente a una interpolación lineal de los elementos de la matriz de reconstrucción en el tiempo, es decir desde un intervalo de tiempo al siguiente. Sin embargo, esta invención se dirige a otras partes del sistema de codificación/descodificación, y cualquier solape en tiempo y/o frecuencia entre teselas de tiempo/frecuencia contiguas se deja para su implementación por el experto en la materia.
De acuerdo con realizaciones, para cada fila de la matriz de mezcla ascendente, las posiciones en la matriz de mezcla ascendente del subconjunto de elementos seleccionado varían a través de una serie de bandas de frecuencia y/o de una serie de tramas de tiempo. Por consiguiente, la selección de los elementos puede depender de la tesela de tiempo/frecuencia particular, de tal modo que se pueden seleccionar diferentes elementos para diferentes teselas de tiempo/frecuencia. Esto proporciona un procedimiento de codificación más flexible que aumenta la calidad de la señal codificada.
De acuerdo con realizaciones, el subconjunto de elementos seleccionado comprende el mismo número de elementos para cada fila de la matriz de mezcla ascendente. En otras realizaciones, el número de elementos seleccionados puede ser de exactamente uno. Esto reduce la complejidad del codificador, dado que el algoritmo solamente tiene que seleccionar el número de elemento o elementos para cada fila, es decir, el elemento o elementos que son más importantes cuando se lleva a cabo una mezcla ascendente en el lado de descodificador. De acuerdo con realizaciones, para cada fila de la matriz de mezcla ascendente y para una serie de bandas de frecuencia o una serie de tramas de tiempo, los valores de los elementos de los subconjuntos seleccionados de elementos forman uno o varios vectores de parámetros, correspondiendo cada parámetro en el vector de parámetros a una de la serie de bandas de frecuencia o la serie de tramas de tiempo, y donde dichos uno o varios vectores de parámetros se codifican utilizando el procedimiento acorde con el primer aspecto. En otras palabras, los valores de los elementos seleccionados se pueden codificar de manera eficiente. Las ventajas relativas a características y configuraciones presentadas en la visión general del primer aspecto anterior pueden, en general, ser válidas para esta realización.
De acuerdo con realizaciones, para cada fila de la matriz de mezcla ascendente y para una serie de bandas de frecuencia o una serie de tramas de tiempo, las posiciones de los elementos de los subconjuntos seleccionados de elementos forman uno o varios vectores de parámetros, correspondiendo cada parámetro en el vector de parámetros a una de la serie de bandas de frecuencia o la serie de tramas de tiempo, y donde dichos uno o varios vectores de parámetros se codifican utilizando el procedimiento acorde con el primer aspecto. En otras palabras, las posiciones de los elementos seleccionados se pueden codificar de manera eficiente. Las ventajas relativas a características y configuraciones presentadas en la visión general del primer aspecto anterior pueden, en general, ser válidas para esta realización.
De acuerdo con realizaciones de ejemplo, se da a conocer un producto de programa informático que comprende instrucciones de código informático adaptadas para llevar a cabo cualquier procedimiento del tercer aspecto cuando son ejecutadas en un dispositivo con capacidad de procesamiento.
De acuerdo con realizaciones de ejemplo, se da a conocer un codificador para codificar una matriz de mezcla ascendente en un sistema de codificación de audio, comprendiendo cada fila de la matriz de mezcla ascendente M elementos que permiten la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio a partir de una señal de mezcla descendente que comprende M canales, comprendiendo el codificador: un componente de recepción adaptado para recibir cada fila de la matriz de mezcla ascendente; un componente de selección adaptado para seleccionar un subconjunto de elementos a partir de los M elementos de la fila de la matriz de mezcla ascendente; un componente de codificación adaptado para representar cada elemento en el subconjunto de elementos seleccionado mediante un valor y una posición en la matriz de mezcla ascendente, el componente de codificación adaptado además para codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto de elementos seleccionado.
IV. Visión general - descodificador de matriz ligera
El siguiente cuarto aspecto y las realizaciones de ejemplo correspondientes no son según la invención y están presentes solo con fines ilustrativos. Según un cuarto aspecto, las realizaciones de ejemplo proponen procedimientos de descodificación, descodificadores y productos de programa informático para descodificar. Los procedimientos, descodificadores y productos de programa informático propuestos pueden tener, en general, las mismas características y ventajas.
Las ventajas relativas a características y configuraciones presentadas en la visión general del anterior codificador de matriz ligera pueden ser válidas, en general, para las correspondientes características y configuraciones para el descodificador.
De acuerdo con realizaciones de ejemplo, se da a conocer un procedimiento para la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio en un sistema de descodificación de audio, que comprende: recibir una señal de mezcla descendente que comprende M canales; recibir por lo menos un elemento codificado que representa un subconjunto de M elementos de una fila en una matriz de mezcla ascendente, comprendiendo cada elemento codificado un valor y una posición en la fila de la matriz de mezcla ascendente, indicando la posición uno de los M canales de la señal de mezcla descendente a los que corresponde el elemento codificado; y reconstruir la tesela de tiempo/frecuencia del objeto de audio a partir de la señal de mezcla descendente mediante la formación de una combinación lineal de los canales de mezcla descendente que corresponden a dicho por lo menos un elemento codificado, donde en dicha combinación lineal cada canal de mezcla descendente está multiplicado por el valor de su correspondiente elemento codificado.
Por lo tanto, de acuerdo con este procedimiento, una tesela de tiempo/frecuencia de un objeto de audio se reconstruye formando una combinación lineal de un subconjunto de los canales de mezcla descendente. El subconjunto de los canales de mezcla descendente corresponde a aquellos canales para los que se han recibido coeficientes de mezcla ascendente codificados. Por lo tanto, el procedimiento permite reconstruir un objeto de audio a pesar de que se recibe solamente un subconjunto, tal como un subconjunto ligero, de la matriz de mezcla ascendente. Al formar una combinación lineal de solamente los canales de mezcla descendente que corresponden a dicho por lo menos un elemento codificado, se puede reducir la complejidad del proceso de descodificación. Una alternativa podría ser formar una combinación lineal de todas las señales de mezcla descendente y multiplicar a continuación algunas de éstas (las que no corresponden a dicho por lo menos un elemento codificado) por el valor cero.
De acuerdo con realizaciones, las posiciones de dicho por lo menos un elemento codificado pueden variar a través de una serie de bandas de frecuencia y/o a través de una serie de tramas de tiempo. En otras palabras, se pueden codificar diferentes elementos de la matriz de mezcla ascendente para diferentes teselas de tiempo/frecuencia. De acuerdo con realizaciones, el número de elementos de dicho por lo menos un elemento codificado es igual a uno. Esto significa que el objeto de audio se reconstruye a partir de un canal de mezcla descendente en cada tesela de tiempo/frecuencia. Sin embargo, dicho canal de mezcla descendente utilizado para reconstruir el objeto de audio puede variar entre diferentes teselas de tiempo/frecuencia.
De acuerdo con realizaciones, para una serie de bandas de frecuencia o una serie de tramas de tiempo, los valores de dicho por lo menos un elemento codificado forman uno o varios vectores, donde cada valor está representado por un símbolo codificado por entropía, donde cada símbolo en cada vector de símbolos codificados por entropía corresponde a una de la serie de bandas de frecuencia o una de la serie de tramas de tiempo, y donde dichos uno o varios vectores de símbolos codificados por entropía se descodifican utilizando el procedimiento según el segundo aspecto. De este modo, los valores de los elementos de la matriz de mezcla ascendente se pueden codificar eficientemente.
De acuerdo con realizaciones, para una serie de bandas de frecuencia o una serie de tramas de tiempo, las posiciones de dicho por lo menos un elemento codificado forman uno o varios vectores, donde cada posición está representada por un símbolo codificado por entropía, donde cada símbolo en cada vector de símbolos codificados por entropía corresponde a una de la serie de bandas de frecuencia o la serie de tramas de tiempo, y donde dichos uno o varios vectores de símbolos codificados por entropía se descodifican utilizando el procedimiento según el segundo aspecto. De este modo, las posiciones de los elementos de la matriz de mezcla ascendente se pueden codificar eficientemente.
De acuerdo con realizaciones de ejemplo, se da a conocer un producto de programa informático que comprende instrucciones de código informático adaptadas para llevar a cabo cualquier procedimiento del tercer aspecto cuando son ejecutadas en un dispositivo con capacidad de procesamiento.
De acuerdo con realizaciones de ejemplo, se da a conocer un descodificador para reconstruir una tesela de tiempo/frecuencia de un objeto de audio, que comprende: un componente de recepción configurado para recibir una señal de mezcla descendente que comprende M canales y por lo menos un elemento codificado que representa un subconjunto de M elementos de una fila en una matriz de mezcla ascendente, comprendiendo cada elemento codificado un valor y una posición en la fila de la matriz de mezcla ascendente, indicando la posición uno de los M canales de la señal de mezcla descendente a los que corresponde el elemento codificado; y un componente de reconstrucción configurado para reconstruir la tesela de tiempo/frecuencia del objeto de audio a partir de la señal de mezcla descendente, mediante la formación de una combinación lineal de los canales de mezcla descendente que corresponden a dicho por lo menos un elemento codificado, donde en dicha combinación lineal cada canal de mezcla descendente está multiplicado por el valor de su correspondiente elemento codificado.
V. Realizaciones de ejemplo
La figura 1 muestra un diagrama de bloques generalizado de un sistema de codificación de audio 100 para codificar objetos de audio 104. El sistema de codificación de audio comprende un componente de mezcla descendente 106 que crea una señal de mezcla descendente 110 a partir de los objetos de audio 104. La señal de mezcla descendente 110 puede ser, por ejemplo, una señal envolvente 5.1 o 7.1 que es retrocompatible con sistemas de descodificación de sonido consolidados, tales como Dolby Digital Plus, o estándares MPEG tales como AAC, USAC o MP3. En otras realizaciones, la señal de mezcla descendente no es retrocompatible.
Para poder reconstruir los objetos de audio 104 a partir de la señal de mezcla descendente 110, se determinan parámetros de mezcla ascendente en un componente 112 de análisis de parámetros de mezcla ascendente, a partir de la señal de mezcla descendente 110 y de los objetos de audio 104. Por ejemplo, los parámetros de mezcla ascendente pueden corresponder a elementos de una matriz de mezcla ascendente que permiten la reconstrucción de los objetos de audio 104 partir de la señal de mezcla descendente 110. El componente 112 de análisis de los parámetros de mezcla ascendente procesa la señal de mezcla descendente 110 y los objetos de audio 104 con respecto a teselas de tiempo/frecuencia individuales. De este modo, se determinan los parámetros de mezcla ascendente para cada tesela de tiempo/frecuencia. Por ejemplo, se puede determinar una matriz de mezcla ascendente para cada tesela de tiempo/frecuencia. Por ejemplo, el componente 112 de análisis de los parámetros de mezcla ascendente puede funcionar en un dominio de frecuencia, tal como un dominio de filtros espejo en cuadratura (QMF, Quadrature Mirror Filters), que permite un procesamiento selectivo en frecuencias. Por esta razón, la señal de mezcla descendente 110 y los objetos de audio 104 se pueden transformar al dominio de frecuencia sometiendo la señal de mezcla descendente 110 y los objetos de audio 104 a un banco de filtros 108. Esto se puede realizar, por ejemplo, aplicando una transformada QMF o cualquier otra transformada adecuada.
Los parámetros de mezcla ascendente 114 se pueden organizar en un formato vectorial. Un vector puede representar un parámetro de mezcla ascendente para reconstruir un objeto de audio específico a partir de los objetos de audio 104, a diferentes bandas de frecuencia en una trama de tiempo específica. Por ejemplo, un vector puede corresponder a un cierto elemento de matriz en la matriz de mezcla ascendente, donde el vector comprende los valores de dicho cierto elemento de matriz para las bandas de frecuencia siguientes. En otras realizaciones, el vector puede representar parámetros de mezcla ascendente para reconstruir un objeto de audio específico a partir de los objetos de audio 104 en diferentes tramas de tiempo en una banda de frecuencia específica. Por ejemplo, un vector puede corresponder a un cierto elemento de matriz en la matriz de mezcla ascendente, donde el vector comprende los valores de dicho cierto elemento de matriz para las tramas de tiempo siguientes pero en la misma banda de frecuencia.
Cada parámetro del vector corresponde a una cantidad no periódica, por ejemplo, una cantidad que adopta un valor entre -9,6 y 9,4. Una cantidad no periódica significa, en general, una cantidad que no presenta periodicidad en los valores que puede adoptar. Esto contrasta con una cantidad periódica, tal como un ángulo, donde existe una clara correspondencia periódica entre los valores que la cantidad puede adoptar. Por ejemplo, para un ángulo, existe una periodicidad de 2n, de tal modo que, por ejemplo, el ángulo cero corresponde al ángulo 2n.
Los parámetros de mezcla ascendente 114 son recibidos a continuación por un codificador 102 de matriz de mezcla ascendente en el formato vectorial. El codificador de matriz de mezcla ascendente se explicará en detalle a continuación junto con la figura 2. El vector es recibido por un componente de recepción 202 y tiene un primer elemento y por lo menos un segundo elemento. El número de elementos depende, por ejemplo, del número de bandas de frecuencia en la señal de audio. El número de elementos puede depender asimismo del número de tramas de tiempo de la señal de audio que está siendo codificada en una operación de codificación.
El vector se indexa a continuación mediante un componente de indexación 204. El componente de indexación está adaptado para representar cada parámetro del vector mediante un valor de índice que puede adoptar un número predefinido de valores. Esta representación se puede realizar en dos etapas. En primer lugar, el parámetro es cuantificado, y a continuación el valor cuantificado es indexado mediante un valor de índice. A modo de ejemplo, en el caso en que cada parámetro del vector puede adoptar un valor entre -9,6 y 9,4, esto se puede realizar utilizando pasos de cuantificación de 0,2. A continuación, los valores cuantificados pueden ser indexados mediante índices 0­ 95, es decir, 96 valores diferentes. En los ejemplos siguientes, el valor de índice está en el intervalo de 0-95, pero por supuesto esto es solamente un ejemplo, siendo igualmente posibles otros intervalos de valor de índice, por ejemplo, 0-191 o 0-63. Pasos de cuantificación menores pueden producir una señal de audio descodificada menos distorsionada en el lado del descodificador, pero pueden dar lugar asimismo a una mayor tasa de bits necesaria para la transmisión de los datos entre el sistema de codificación de audio 100 y el descodificador.
Los valores indexados se envían a continuación a un componente de asociación 206 que asocia cada uno de dicho por lo menos un segundo elemento con un símbolo, utilizando una estrategia de codificación diferencial con módulo. El componente de asociación 206 está adaptado para calcular la diferencia entre el valor de índice del segundo elemento y el valor de índice del elemento anterior en el vector. Limitándose a utilizar una estrategia convencional de codificación diferencial, la diferencia puede ser cualquiera en el intervalo de -95 a 95, es decir, tiene 191 posibles valores. Esto significa que cuando la diferencia se codifica utilizando codificación entrópica, es necesaria una tabla de probabilidades que comprenda 191 probabilidades, es decir, una probabilidad para cada uno de los 191 posibles valores de las diferencias. Además, la eficiencia de la codificación disminuiría dado que, para cada diferencia, son imposibles aproximadamente la mitad de las 191 probabilidades. Por ejemplo, si el segundo elemento a someter a codificación diferencial tiene el valor de índice 90, las posibles diferencias están en el intervalo de -5 a 90. Normalmente, tener una estrategia de codificación entrópica en la que algunas de las probabilidades son imposibles para cada valor a codificar reducirá la eficiencia de la codificación. La estrategia de codificación diferencial en esta invención puede superar este problema y, al mismo tiempo, reducir a 96 el número de códigos necesarios, mediante aplicar una operación módulo 96 a la diferencia. De este modo, el algoritmo de asociación se puede expresar como:
A idx(b) — ( id x (b ) — idx(b — 1 ) ) mod Nq (Ecuación 1)
donde b es el elemento en el vector sometido a codificación diferencial, N q es el número de posibles valores de índice, y Aidx(b) es el símbolo asociado con el elemento b.
De acuerdo con algunos ejemplos, la tabla de probabilidades se traduce a un libro de códigos de Huffman. En este caso, el símbolo asociado con un elemento del vector se utiliza como un índice del libro de códigos. El componente de codificación 208 puede codificar a continuación cada uno de dicho por lo menos un segundo elemento, representando el segundo elemento con una palabra de código en el libro de códigos de Huffman que está indexada mediante el índice del libro de códigos asociado con el segundo elemento.
En el componente de codificación 208 se puede implementar cualquier otra estrategia adecuada de codificación de entropía. A modo de ejemplo, dicha estrategia de codificación puede ser una estrategia de codificación por intervalos o una estrategia de codificación aritmética.
A continuación se muestra que la entropía del enfoque de módulo es siempre menor o igual que la entropía del enfoque diferencial convencional. La entropía, Ep, del enfoque diferencial convencional es:
Ev = l NnQ=-NQ+ 1(p(n)log2p(n)) (Ecuación 2)
donde p(n)p(n) es la probabilidad del valor de índice diferencial simple n.
La entropía, Eq, del enfoque de módulo es:
Eq = T i l o 1(q(n)log2q(n)) (Ecuación 3)
donde q(n) es la probabilidad del valor de índice diferencial con módulo, que está dada por:
q (0) = p(0) (Ecuación 4)
q (n ) = p (n ) + p (n — NQ) f o r n = 1... NQ — 1 (,Ecuación 5) Por lo tanto, se tiene que
Figure imgf000011_0001
Sustituyendo n = j - N q en el último sumatorio, se obtiene
Figure imgf000011_0002
Además,
Figure imgf000011_0003
Comparando las sumas término a término, dado que
l°g2p(n) < log2(p(n) p(n - Nq)) ( Ecuación 9) y, análogamente,
l°g2p ( n - N Q) < log2(p(n) p ( n - NQ)) ( Ecuación 10) se tiene que Ep > Eq.
Tal como se ha mostrado anteriormente, la entropía para el enfoque de módulo es siempre menor o igual que la entropía del enfoque diferencial convencional. El caso en que la entropía es igual es un caso extraño en que los datos a codificar son datos patológicos, es decir, datos que no se comportan bien, lo cual no aplica en la mayor parte de los casos, por ejemplo, en una matriz de mezcla ascendente.
Dado que la entropía para el enfoque de módulo es siempre menor o igual que la entropía del enfoque diferencial convencional, la codificación entrópica de los símbolos calculados mediante el enfoque de módulo proporcionará una tasa de bits menor, o en todo caso igual, en comparación con la codificación entrópica de símbolos calculados mediante el enfoque diferencial convencional. En otras palabras, la codificación entrópica de los símbolos calculados mediante el enfoque de módulo es, en la mayor parte de los casos, más eficiente que la codificación entrópica de los símbolos calculados mediante el enfoque diferencial convencional.
Otra ventaja es que, tal como se ha mencionado anteriormente, el número de probabilidades necesarias en la tabla de probabilidades en el enfoque de módulo es aproximadamente la mitad del número de probabilidades necesarias en el enfoque convencional sin módulo.
En lo anterior se ha descrito un enfoque de módulo para codificar dicho por lo menos un segundo elemento en el vector de parámetros. El primer elemento se puede codificar utilizando el valor indexado mediante el cual se representa el primer elemento. Dado que la distribución de probabilidad del valor de índice del primer elemento y del valor diferencial con módulo de dicho por lo menos un segundo elemento pueden ser muy diferentes (ver la figura 3 para una distribución de probabilidad del primer elemento indexado, y la figura 4 para una distribución de probabilidad del valor diferencial con módulo, es decir, el símbolo, para dicho por lo menos un segundo elemento), para el primer elemento puede ser necesaria una tabla de probabilidades dedicada. Esto requiere que tanto el sistema de codificación de audio 100 como un correspondiente descodificador tengan en su memoria dicha tabla de probabilidades dedicada.
Sin embargo, los inventores han observado que en algunos casos la forma de las distribuciones de probabilidad puede ser muy similar, aunque desplazada entre sí. Esta observación puede ser utilizada para aproximar la distribución de probabilidad del primer elemento indexado mediante una versión desplazada de la distribución de probabilidad del símbolo para dicho por lo menos un segundo elemento. Dicho desplazamiento se puede implementar adaptando el componente de asociación 206 para asociar el primer elemento del vector con un símbolo, mediante desplazar el valor de índice que representa el primer elemento del vector mediante un valor de desplazamiento y aplicar a continuación módulo 96 (o un valor correspondiente) al valor de índice desplazado.
De este modo, el cálculo del símbolo asociado con el primer elemento se puede expresar como:
id-XjespiazadS-^ ) = (J-dx(l) - abs_offset)modNQ (Ecuación 11)
El símbolo así obtenido es utilizado por el componente de codificación 208, que codifica el primer elemento mediante la codificación entrópica del símbolo asociado con el primer elemento utilizando la misma tabla de probabilidades que se ha utilizado para codificar dicho por lo menos un segundo elemento. El valor de desplazamiento puede ser igual, o como mínimo próximo a la diferencia entre el valor de índice más probable para el primer elemento y el símbolo más probable para dicho por lo menos un segundo elemento en la tabla de probabilidades. En la figura 3, el valor de índice más probable para el primer elemento se indica mediante la fecha 302. Suponiendo que el símbolo más probable para dicho por lo menos un segundo elemento es cero, el valor indicado por la flecha 302 será el valor de desplazamiento utilizado. Al utilizar el enfoque de desplazamiento, los picos de las distribuciones de las figuras 3 y 4 se alinean. Este enfoque evita la necesidad de una tabla de probabilidades dedicada para el primer elemento y, de este modo, ahorra memoria en el sistema de codificación de audio 100 y el descodificador correspondiente, a menudo manteniendo al mismo tiempo casi la misma eficiencia de codificación que proporcionaría una tabla de probabilidades dedicada.
En el caso en que la codificación entrópica de dicho por lo menos un segundo elemento se realiza utilizando un libro de códigos de Huffman, el componente de codificación 208 puede codificar el primer elemento del vector utilizando el mismo libro de códigos de Huffman que se ha utilizado para codificar dicho por lo menos un segundo elemento, representando el primer elemento con una palabra de código en el libro de códigos de Huffman que está indexada mediante el índice del libro de códigos asociado con el primer elemento.
Dado que la velocidad de búsqueda puede ser importante cuando se codifica un parámetro en un sistema de descodificación de audio, la memoria en la que se almacena el libro de códigos es ventajosamente una memoria rápida, y por lo tanto costosa. Por lo tanto, utilizar sólo una tabla de probabilidades del codificador puede ser más económico que el caso en el que se utilizan dos tablas de probabilidades.
Se debe observar que a menudo las distribuciones de probabilidad mostradas en la figura 3 y la figura 4 se calculan previamente sobre un conjunto de datos de aprendizaje y, por lo tanto, no se calculan durante la codificación del vector, pero por supuesto es posible calcular las distribuciones "sobre la marcha" al mismo tiempo que la codificación.
Se debe observar asimismo que la descripción anterior de un sistema de codificación de audio 100 que utiliza un vector procedente de una matriz de mezcla ascendente como el vector de parámetros que se está codificando es tan solo un ejemplo de aplicación. El procedimiento para codificar un vector de parámetros, según esta invención, puede ser utilizado en otras aplicaciones en un sistema de codificación de audio, por ejemplo, cuando se codifican otros parámetros internos en un sistema de codificación de mezcla descendente, tales como parámetros utilizados en un sistema paramétrico de extensión de banda ancha, tal como replicación de banda espectral (SBR, spectral band replication).
La figura 5 es un diagrama de bloques generalizado de un sistema de descodificación de audio 500 para recrear objetos de audio codificados a partir de una señal de mezcla descendente codificada 510 y una matriz de mezcla ascendente codificada 512. La señal de mezcla descendente codificada 510 es recibida por un componente de recepción de mezcla descendente 506 donde la señal es descodificada y, si no está ya en un dominio de frecuencia adecuado, transformada a un dominio de frecuencia adecuado. La señal de mezcla descendente descodificada 516 es enviada a continuación al componente de mezcla ascendente 508. En el componente de mezcla ascendente 508, se recrean los objetos de audio codificados utilizando la señal de mezcla descendente descodificada 516 y una matriz de mezcla ascendente descodificada 504. Más específicamente, el componente de mezcla ascendente 508 puede llevar a cabo una operación matricial en la que la matriz de mezcla ascendente descodificada 504 es multiplicada por un vector que comprende las señales de mezcla descendente descodificadas 516. El proceso de descodificación de la matriz de mezcla ascendente se describe a continuación. El sistema de descodificación de audio 500 comprende además un componente de generación 514 que entrega una señal de audio en base a los objetos de audio reconstruidos 518, en función del tipo de unidad de reproducción que está conectada al sistema de descodificación de audio 500.
Una matriz de mezcla ascendente codificada 512 es recibida por un descodificador de matriz de mezcla ascendente 502, que se explicará en detalle a continuación junto con la figura 6. El descodificador de matriz de mezcla ascendente 502 está configurado para descodificar en un sistema de descodificación de audio un vector de símbolos codificados por entropía, en un vector de parámetros correspondientes a una cantidad no periódica. El vector de símbolos codificados por entropía comprende un primer símbolo codificado por entropía y por lo menos un segundo símbolo codificado por entropía, y el vector de parámetros comprende un primer elemento y por lo menos un segundo elemento. Por lo tanto, la matriz de mezcla ascendente codificada 512 es recibida por un componente de recepción 602 en formato vectorial. El descodificador 502 comprende además un componente de indexación 604 configurado para representar cada símbolo codificado por entropía en el vector mediante un símbolo que puede adoptar N valores, utilizando una tabla de probabilidades. N puede ser, por ejemplo, 96. Un componente de asociación 606 está configurado para asociar el primer símbolo codificado por entropía con un valor de índice mediante cualquier medio adecuado, en función del procedimiento de codificación utilizado para codificar el primer elemento en el vector de parámetros. El símbolo para cada uno de los segundos códigos y el valor de índice para el primer código son utilizados a continuación por el componente de asociación 606, que asocia cada uno de dicho por lo menos un segundo símbolo codificado por entropía con un valor de índice. El valor de índice de dicho por lo menos un segundo símbolo codificado por entropía se calcula mediante calcular en primer lugar la suma del valor de índice asociado con el símbolo codificado por entropía anterior al segundo símbolo codificado por entropía en el vector de símbolos codificados por entropía y el símbolo que representa el segundo símbolo codificado por entropía. A continuación, se aplica módulo N la suma. Se supone, sin pérdida de generalidad, que el valor de índice mínimo es 0 y el valor de índice máximo es N-1, por ejemplo, 95. De este modo, el algoritmo de asociación se puede expresar como:
idx(b) = ( idx(b — 1) Aidx(b)) mod NQ ( Ecuación 12)
donde b es el elemento del vector que está siendo descodificado y N q N es el número de posibles valores de índice.
El descodificador de matriz de mezcla ascendente 502 comprende además un componente de descodificación 608 que está configurado para representar dicho por lo menos un segundo elemento del vector de parámetros mediante un valor de parámetro correspondiente al valor de índice asociado con dicho por lo menos un segundo símbolo codificado por entropía. Por lo tanto, esta representación es la versión descodificada del parámetro codificado, por ejemplo, mediante el sistema de codificación de audio 100 mostrado en la figura 1. En otras palabras, esta representación es igual al parámetro cuantificado, codificado mediante el sistema de codificación de audio 100 mostrado en la figura 1.
De acuerdo con una realización de la presente invención, cada símbolo codificado por entropía en el vector de símbolos codificados por entropía es representado por un símbolo utilizando la misma tabla de probabilidades para todos los símbolos codificados por entropía en el vector de símbolos codificados por entropía. Una ventaja de esto es que solamente es necesario almacenar una tabla de probabilidades en la memoria del descodificador. Dado que la velocidad de búsqueda puede ser importante cuando se descodifica un símbolo codificado por entropía en un sistema de descodificación de audio, la memoria en la que se almacena la tabla de probabilidades es ventajosamente una memoria rápida, y por lo tanto costosa. Por lo tanto, utilizar sólo una tabla de probabilidades del descodificador puede ser más económico que el caso en el que se utilizan dos tablas de probabilidades. De acuerdo con esta realización, el componente de asociación 606 puede estar configurado para asociar el primer símbolo codificado por entropía con un valor de índice, en primer lugar desplazando mediante un valor de desplazamiento el símbolo que representa el primer símbolo codificado por entropía en el vector de símbolos codificados por entropía. A continuación, se aplica módulo N al símbolo desplazado. De este modo, el algoritmo de asociación se puede expresar como:
i dx( l ) = (ídxdesplazado( 1) abs_offset) mod Nq (Ecuación 13)
El componente de descodificación 608 está configurado para representar el primer elemento del vector de parámetros mediante un valor de parámetro correspondiente al valor de índice asociado con el primer símbolo codificado por entropía. Por lo tanto, esta representación es la versión descodificada del parámetro codificado, por ejemplo, mediante el sistema de codificación de audio 100 mostrado en la figura 1.
Junto con las figuras 7 a 10, se explicará a continuación el procedimiento de codificación diferencial de una cantidad no periódica.
Las figuras 7 y 9 describen un procedimiento de codificación para cuatro (4) segundos elementos en un vector de parámetros. Por lo tanto, el vector de entrada 902 comprende cinco parámetros. Los parámetros pueden adoptar cualquier valor entre un valor mínimo y un valor máximo. En este ejemplo, el valor mínimo es -9,6 y el valor máximo es 9,4. La primera etapa S702 en el procedimiento de codificación es para representar cada parámetro en el vector 902 mediante un valor de índice que puede adoptar N valores. En este caso, N se escoge con el valor 96, lo que significa que el tamaño del paso de cuantificación es de 0,2. Esto produce el vector 904. La siguiente etapa S704 consiste en calcular la diferencia entre cada uno de los segundos elementos, es decir, los cuatro parámetros superiores del vector 904, y su elemento anterior. De este modo, el vector resultante 906 comprende cuatro valores diferenciales -los cuatro valores superiores del vector 906. Tal como se puede ver en la figura 9, los valores diferenciales pueden ser tanto negativos, como cero y positivos. Tal como se ha explicado anteriormente, es ventajoso tener valores diferenciales que solamente puedan adoptar N valores, en este caso 96 valores. Para conseguir esto, en la siguiente etapa S706 de este procedimiento se aplica módulo 96 a los segundos elementos del vector 906. El vector resultante 908 no contiene ningún valor negativo. El símbolo conseguido de este modo, mostrado en el vector 908, se utiliza a continuación para codificar los segundos elementos del vector en la etapa final S708 del procedimiento mostrado en la figura 7 mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento en base a una tabla de probabilidades que comprende probabilidades de los símbolos mostrados en el vector 908.
Tal como se ve en la figura 9, el primer elemento no se ha procesado después de la etapa de indexación S702. En las figuras 8 y 10 se describe un procedimiento para codificar el primer elemento del vector de entrada. En la descripción de las figuras 8 y 10 son válidas las mismas hipótesis realizadas en la descripción anterior de las figuras 7 y 9 en relación con los valores mínimo y máximo de los parámetros y el número de posibles valores de índice. El primer elemento 1002 es recibido por el codificador. En la primera etapa S802 del procedimiento de codificación, el parámetro del primer elemento está representado por un valor de índice 1004. En la siguiente etapa S804, el valor indexado 1004 es desplazado mediante un valor de desplazamiento. En este ejemplo, el valor del desplazamiento es 49. Este valor se calcula tal como se ha descrito anteriormente. En la siguiente etapa S806, se aplica módulo 96 al valor de índice desplazado 1006. A continuación, el valor resultante 1008 puede ser utilizado en una etapa de codificación S802 para codificar el primer elemento mediante la codificación entrópica del símbolo 1008 utilizando la misma tabla de probabilidades que se ha utilizado para codificar dicho por lo menos un segundo elemento en la figura 7.
La figura 11 muestra una realización 102' del componente de codificación 102 de la matriz de mezcla ascendente de la figura 1. El codificador 102' de la matriz de mezcla ascendente puede ser utilizado para codificar una matriz de mezcla ascendente en un sistema de codificación de audio, por ejemplo, el sistema de codificación de audio 100 mostrado en la figura 1. Tal como se ha descrito anteriormente, cada fila de la matriz de mezcla ascendente comprende M elementos que permiten la reconstrucción de un objeto de audio a partir de una señal de mezcla descendente que comprende M canales.
A bajas tasas de bits globales objetivo, la codificación y el envío de la totalidad de los M elementos de matriz de mezcla ascendente por cada objeto y tesela T/F, uno por cada canal de mezcla descendente, puede requerir una tasa de bits indeseablemente elevada. Esto se puede reducir "aligerando" la matriz de mezcla ascendente, es decir, intentando reducir el número de elementos distintos de cero. En algunos casos, cuatro de entre cinco elementos son cero y se utiliza solamente un único canal de mezcla descendente como base para la reconstrucción del objeto de audio. Las matrices ligeras tienen distribuciones de probabilidad de los índices codificados (absolutos o diferenciales) diferentes a las de las matrices no ligeras. En los casos en que la matriz de mezcla ascendente comprende una gran parte de ceros, tal como cuando el valor cero se hace más probable que 0,5, y se utiliza codificación Huffman, la eficiencia de codificación disminuirá dado que el algoritmo de codificación Huffman es ineficiente cuando un valor específico, por ejemplo, cero, tiene una probabilidad mayor de 0,5. Además, dado que muchos de los elementos en la matriz de mezcla ascendente tienen el valor cero, estos no contienen ninguna información. Por lo tanto, una estrategia puede ser seleccionar un subconjunto de los elementos de la matriz de mezcla ascendente, y solamente codificar y transmitir estos a un descodificador. Esto puede reducir la tasa de bits necesaria de un sistema de codificación/descodificación de audio, dado que se transmiten menos datos.
Para aumentar la eficiencia de la codificación de la matriz de mezcla ascendente, se puede utilizar un modo de codificación dedicado para matrices ligeras, que se explicará en detalle a continuación.
El codificador 102' comprende un componente de recepción 1102 adaptado para recibir cada fila de la matriz de mezcla ascendente. El codificador 102' comprende además un componente de selección 1104 adaptado para seleccionar un subconjunto de elementos a partir de los M elementos de la fila de la matriz de mezcla ascendente. En la mayor parte de los casos, el subconjunto comprende todos los elementos que no tienen valor cero. Pero de acuerdo con algunas realizaciones, el componente de selección puede elegir no seleccionar un elemento que tenga un valor distinto de cero, por ejemplo, un elemento con un valor próximo a cero. De acuerdo con realizaciones, el subconjunto de elementos seleccionado puede comprender el mismo número de elementos para cada fila de la matriz de mezcla ascendente. Para reducir más la tasa de bits necesaria, el número de elementos seleccionados puede ser uno (1).
El codificador 102' comprende además un componente de codificación 1106 que está adaptado para representar cada elemento en el subconjunto de elementos seleccionado, mediante un valor y una posición en la matriz de mezcla ascendente. El componente de codificación 1106 está adaptado además para codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto de elementos seleccionado. Puede estar adaptado, por ejemplo, para codificar el valor utilizando codificación diferencial con módulo, tal como se ha descrito anteriormente. En este caso, para cada fila de la matriz de mezcla ascendente y para una serie de bandas de frecuencia o una serie de tramas de tiempo, los valores de los elementos de los subconjuntos seleccionados de elementos forman uno o varios vectores de parámetros. Cada parámetro del vector de parámetros corresponde a una de la serie de bandas de frecuencia o de la serie de tramas de tiempo. Por lo tanto, el vector de parámetros puede ser codificado utilizando codificación diferencial con módulo, tal como se ha descrito anteriormente. En realizaciones, el vector de parámetros puede ser codificado utilizando codificación diferencial regular. En otra realización más, el componente de codificación 1106 está adaptado para codificar cada valor por separado, utilizando codificación a tasa fija del verdadero valor de cuantificación de cada valor, es decir no del sometido a codificación diferencial.
Se han observado los siguientes ejemplos de tasas de bits promedio para contenidos habituales. Las tasas de bits se han medido para el caso en que M = 5, el número de objetos de audio a reconstruir en el lado del descodificador es 11, el número de bandas de frecuencia es 12 y el tamaño del paso del cuantificador de parámetros es 0,1 y tiene 192 niveles. Para el caso en que se han codificado la totalidad de los cinco elementos por fila en la matriz de mezcla ascendente, se han observado las siguientes tasas de bits promedio:
Codificación a tasa fija: 165 kb/s,
Codificación diferencial: 51 kb/s,
Codificación diferencial con módulo: 51 kb/s, pero con la mitad del tamaño de la tabla de probabilidades o del libro de códigos, tal como se ha descrito anteriormente.
Para el caso en que se elige solamente un elemento para cada fila de la matriz de mezcla ascendente, es decir, codificación ligera, mediante el componente de selección 1104, se han observado las siguientes tasas de bits promedio.
Codificación a tasa fija (utilizando 8 bits para el valor y 3 bits para la posición): 45 kb/s,
Codificación diferencial con módulo tanto para el valor del elemento como para la posición del elemento: 20 kb/s. El componente de codificación 1106 puede estar adaptado para codificar la posición en la matriz de mezcla ascendente de cada elemento del subconjunto de elementos, del mismo modo que el valor. El componente de codificación 1106 puede estar adaptado asimismo para codificar la posición en la matriz de mezcla ascendente de cada elemento del subconjunto de elementos, de una manera diferente respecto a la codificación del valor. En el caso de codificar la posición utilizando codificación diferencial o codificación diferencial con módulo, para cada fila de la matriz de mezcla ascendente y para una serie de bandas de frecuencia o una serie de tramas de tiempo, las posiciones de los elementos de los subconjuntos seleccionados de elementos forman uno o varios vectores de parámetros. Cada parámetro del vector de parámetros corresponde a una de la serie de bandas de frecuencia o de la serie de tramas de tiempo. Por lo tanto, el vector de parámetros se codifica utilizando codificación diferencial o codificación diferencial con módulo, tal como se ha descrito anteriormente.
Cabe señalar que el codificador 102' se puede combinar con el codificador 102 de la figura 2 para conseguir codificación diferencial con módulo de una matriz de mezcla ascendente ligera, según lo anterior.
Se debe observar además que el procedimiento de codificación de una fila en una matriz ligera se ha ejemplificado anteriormente para codificar una fila en una matriz de mezcla ascendente ligera, pero el procedimiento puede ser utilizado para codificar otros tipos de matrices ligeras bien conocidas por los expertos en la materia.
A continuación se explicará en mayor detalle junto con las figuras 13 a 15 el procedimiento para codificar una matriz de mezcla ascendente ligera.
Una matriz de mezcla ascendente es recibida, por ejemplo, por el componente de recepción 1102 de la figura 11. Comprendiendo el procedimiento seleccionar, para cada fila 1402, 1502 de la matriz de mezcla ascendente, un subconjunto S1302 a partir de los M, por ejemplo, 5, elementos de la fila en la matriz de mezcla ascendente. Cada elemento en el subconjunto de elementos seleccionado se representa S1304 a continuación mediante un valor y una posición en la matriz de mezcla ascendente. En la figura 14, se selecciona S1302 como subconjunto un elemento, por ejemplo, el elemento número 3 que tiene un valor de 2,34. Por lo tanto, la representación puede ser un vector 1404 que tiene dos campos. El primer campo del vector 1404 representa el valor, por ejemplo, 2,34 y el segundo campo del vector 1404 representa la posición, por ejemplo, 3. En la figura 15 se seleccionan como subconjunto dos elementos S1302, por ejemplo, el elemento número 3 que tiene un valor de 2,34 y el elemento número 5 que tiene un valor de -1,81. Por lo tanto, la representación puede ser un vector 1504 que tiene cuatro campos. El primer campo del vector 1504 representa el valor del primer elemento, por ejemplo, 2,34, y el segundo campo del vector 1504 representa la posición del primer elemento, por ejemplo, 3. El tercer campo del vector 1504 representa el valor del segundo elemento, por ejemplo, -1,81, y el cuarto campo del vector 1504 representa la posición del segundo elemento, por ejemplo, 5. Las representaciones 1404, 1504 se codifican S1306 a continuación, según lo anterior. La figura 12 es un diagrama de bloques generalizado de un sistema de descodificación de audio 1200 de acuerdo con una realización de ejemplo. El descodificador 1200 comprende un componente de recepción 1206 configurado para recibir una señal de mezcla descendente 1210 que comprende M canales y por lo menos un elemento codificado 1204 que representa un subconjunto de M elementos en una fila de una matriz de mezcla ascendente. Cada uno de los elementos codificados comprende un valor y una posición en la fila de la matriz de mezcla ascendente, la posición indicando uno de los M canales de la señal de mezcla descendente 1210 a los que corresponde el elemento codificado. Dicho por lo menos un elemento codificado 1204 es descodificado por un componente 1202 de descodificación de elementos de matriz de mezcla ascendente. El componente 1202 de descodificación de elementos de matriz de mezcla ascendente está configurado para descodificar dicho por lo menos un elemento codificado 1204, según la estrategia de codificación utilizada para codificar dicho por lo menos un elemento codificado 1204. Se han dado conocer anteriormente ejemplos de dichas estrategias de codificación. Dicho por lo menos un elemento descodificado 1214 se envía a continuación al componente de reconstrucción 1208, que está configurado para reconstruir una tesela de tiempo/frecuencia del objeto de audio a partir de la señal de mezcla descendente 1210, formando una combinación lineal de los canales de mezcla descendente que corresponden a dicho por lo menos un elemento codificado 1204. Cuando se forma la combinación lineal, cada canal de mezcla descendente se multiplica por el valor de su elemento codificado 1204 correspondiente.
Por ejemplo, si el elemento descodificado 1214 comprende el valor 1,1 y la posición 2, la tesela de tiempo/frecuencia del segundo canal de mezcla descendente se multiplica por 1,1 y esto se utiliza a continuación para reconstruir el objeto de audio.
El sistema de descodificación de audio 500 comprende además un componente de generación 1216 que entrega una señal de audio en base al objeto de audio reconstruido 1218. El tipo de señal de audio depende del tipo de unidad de reproducción que está conectada al sistema de descodificación de audio 1200. Por ejemplo, si están conectados un par de auriculares al sistema de descodificación de audio 1200, el componente de generación 1216 entregará una señal estéreo.
Equivalentes, extensiones, alternativas y miscelánea
Tras el estudio de la descripción anterior, resultarán evidentes para un experto en la materia otras realizaciones de la presente invención. Aunque la presente descripción y los dibujos dan a conocer realizaciones y ejemplos, la invención no se limita a estos ejemplos específicos. Se pueden realizar numerosas modificaciones y variaciones sin apartarse del alcance de la presente invención, que se define mediante las reivindicaciones adjuntas. Ningún signo de referencia que aparezca en las reivindicaciones se debe entender como limitando el alcance de éstas.
Adicionalmente, en la práctica de la invención, a partir de un estudio de los dibujos, de la invención y de las reivindicaciones adjuntas un experto en la materia puede comprender y efectuar variaciones sobre las realizaciones dadas a conocer. En las reivindicaciones, el término "comprende" no excluye otros elementos o etapas, y el artículo indefinido "un" o "una" no excluye una pluralidad. El mero hecho de que ciertas disposiciones se expongan en reivindicaciones dependientes diferentes entre sí, no indica que no se pueda utilizar ventajosamente una combinación de estas disposiciones.
Los sistemas y procedimientos dados a conocer en lo anterior se pueden implementar como software, software inalterable, hardware o una combinación de los mismos. En una implementación en hardware, la división de tareas entre unidades funcionales a las que se hace referencia en la descripción anterior no corresponde necesariamente a la división en unidades físicas; por el contrario, un componente físico puede tener múltiples funcionalidades, y una tarea puede ser realizada por varios componentes físicos en cooperación. Determinados componentes o todos los componentes se pueden implementar como software ejecutado por un procesador de señal digital o un microprocesador, o se pueden implementar como hardware o como un circuito integrado de aplicación específica. Dicho software puede estar distribuido en un medio legible por ordenador, que puede comprender medios de almacenamiento informático (o medios no transitorios) y medios de comunicaciones (o medios transitorios). Tal como es bien sabido por un experto en la materia, el término medios de almacenamiento informático incluye medios volátiles y no volátiles, extraíbles y no extraíbles implementados en cualquier procedimiento o tecnología para el almacenamiento de información, tal como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento informático incluyen, de forma no limitativa, RAM, ROM, EEPROM, memorias flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD, digital versatile disks) u otro almacenamiento en disco óptico, casetes magnéticas, cintas magnéticas, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar la información deseada y al que se pueda acceder mediante un ordenador. Además, es bien conocido por un experto en la materia que los medios de comunicación incorporan habitualmente instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluyen cualesquiera medios de distribución de información.

Claims (3)

REIVINDICACIONES
1. Un procedimiento para codificar una matriz de mezcla ascendente en un sistema de codificación de audio (100), comprendiendo cada fila de matriz de mezcla ascendente M elementos que permiten la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio desde una señal de mezcla descendente que comprende M canales, comprendiendo el procedimiento:
para cada fila en la matriz de mezcla ascendente:
seleccionar un subconjunto de elementos de los M elementos de la fila en la matriz de mezcla ascendente, en el que el subconjunto seleccionado de elementos comprende el mismo número de elementos para cada fila de la matriz de mezcla ascendente;
representar cada elemento en el subconjunto seleccionado de elementos por un valor y una posición en la matriz de mezcla ascendente;
codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto seleccionado de elementos,
en el que, para cada fila en la matriz de mezcla ascendente y para una pluralidad de bandas de frecuencia o una pluralidad de tramas de tiempo, los valores de los elementos y/o las posiciones de los elementos de los subconjuntos seleccionados de elementos forman uno o más vectores (114, 902, 1002) de parámetros, correspondiendo cada parámetro del vector de parámetros con una de la pluralidad de bandas de frecuencia o la pluralidad de tramas de tiempo, en el que cada vector de uno o más vectores de parámetros tiene un primer elemento (1002) y al menos un segundo elemento (902), y en el que uno o más vectores de parámetros se codifican mediante:
representar (S702, S802) cada parámetro del vector mediante un valor de índice que adopta uno de N posibles valores;
asociar cada uno de dicho por lo menos un segundo elemento con un símbolo, calculándose el símbolo mediante:
calcular (S704) la diferencia entre el valor de índice del segundo elemento y el valor de índice de su elemento anterior en el vector; y
aplicar (S706) módulo N a la diferencia;
codificar (S708) cada uno de dicho por lo menos un segundo elemento mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento, en base a una tabla de probabilidades que comprende probabilidades de los símbolos;
asociar el primer elemento del vector con un símbolo, calculándose el símbolo mediante:
desplazar (S804) el valor de índice que representa el primer elemento del vector, restando del valor de índice un valor de desplazamiento;
aplicar (S806) módulo N al valor de índice desplazado;
codificar el primer elemento mediante la codificación entrópica del símbolo asociado con el primer elemento utilizando la misma tabla de probabilidades que se ha utilizado para codificar dicho por lo menos un segundo elemento.
2. Un producto de programa informático que comprende instrucciones de código informático adaptadas para llevar a cabo el procedimiento de la reivindicación 1 cuando se ejecuta en un dispositivo que tiene capacidad de procesamiento.
3. Un codificador (100) para codificar una matriz de mezcla ascendente en un sistema de codificación de audio (100), comprendiendo cada fila de la matriz de mezcla ascendente M elementos que permiten la reconstrucción de una tesela de tiempo/frecuencia de un objeto de audio desde una señal de mezcla descendente que comprende M canales, el codificador comprendiendo:
un componente de recepción adaptado para recibir cada fila en la matriz de mezcla ascendente;
un componente de selección adaptado para seleccionar un subconjunto de elementos de los M elementos de la fila en la matriz de mezcla ascendente, en el que el subconjunto seleccionado de elementos comprende el mismo número de elementos para cada fila de la matriz de mezcla ascendente;
un componente de codificación adaptado para representar cada elemento en el subconjunto seleccionado de elementos por un valor y una posición en la matriz de mezcla ascendente, el componente de codificación adaptado además para codificar el valor y la posición en la matriz de mezcla ascendente de cada elemento en el subconjunto seleccionado de elementos en el que, para cada fila de la matriz de mezcla ascendente y para una pluralidad de bandas de frecuencia o una pluralidad de tramas de tiempo, los valores de los elementos y/o las posiciones de los elementos de los subconjuntos seleccionados de los elementos forman uno o más vectores (114, 902, 1002) de parámetros, correspondiendo cada parámetro del vector de parámetros a una de la pluralidad de bandas de frecuencia o la pluralidad de tramas de tiempo, teniendo el vector de parámetros un primer elemento (1002) y al menos un segundo elemento (902), en el que el componente de codificación se adapta para codificar el uno o más vectores de parámetros por cada vector:
representar (S702, S802) cada parámetro del vector mediante un valor de índice que adopta uno de N posibles valores;
asociar cada uno de dicho por lo menos un segundo elemento con un símbolo, calculándose el símbolo mediante:
calcular (S704) la diferencia entre el valor de índice del segundo elemento y el valor de índice de su elemento anterior en el vector; y
aplicar (S706) módulo N a la diferencia;
codificar (S708) cada uno de dicho por lo menos un segundo elemento mediante la codificación entrópica del símbolo asociado con dicho por lo menos un segundo elemento, en base a una tabla de probabilidades que comprende probabilidades de los símbolos;
asociar el primer elemento del vector con un símbolo, calculándose el símbolo mediante:
desplazar (S804) el valor de índice que representa el primer elemento del vector, restando del valor de índice un valor de desplazamiento;
aplicar (S806) módulo N al valor de índice desplazado;
codificar el primer elemento mediante la codificación entrópica del símbolo asociado con el primer elemento utilizando la misma tabla de probabilidades que se ha utilizado para codificar dicho por lo menos un segundo elemento.
ES19193266T 2013-05-24 2014-05-23 Codificador de audio Active ES2902518T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361827264P 2013-05-24 2013-05-24

Publications (1)

Publication Number Publication Date
ES2902518T3 true ES2902518T3 (es) 2022-03-28

Family

ID=50771514

Family Applications (3)

Application Number Title Priority Date Filing Date
ES14725736.4T Active ES2629025T3 (es) 2013-05-24 2014-05-23 Codificador y descodificador de audio
ES21198240T Active ES2965423T3 (es) 2013-05-24 2014-05-23 Codificador de audio
ES19193266T Active ES2902518T3 (es) 2013-05-24 2014-05-23 Codificador de audio

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES14725736.4T Active ES2629025T3 (es) 2013-05-24 2014-05-23 Codificador y descodificador de audio
ES21198240T Active ES2965423T3 (es) 2013-05-24 2014-05-23 Codificador de audio

Country Status (19)

Country Link
US (7) US9704493B2 (es)
EP (5) EP3961622B1 (es)
JP (5) JP6105159B2 (es)
KR (8) KR101763131B1 (es)
CN (2) CN105229729B (es)
AU (1) AU2014270301B2 (es)
BR (1) BR112015029031B1 (es)
CA (4) CA3163664A1 (es)
DK (1) DK3005350T3 (es)
ES (3) ES2629025T3 (es)
HK (1) HK1217246A1 (es)
IL (1) IL242410B (es)
MX (2) MX350117B (es)
MY (1) MY173644A (es)
PL (1) PL3005350T3 (es)
RU (3) RU2643489C2 (es)
SG (2) SG11201509001YA (es)
UA (1) UA112833C2 (es)
WO (1) WO2014187988A2 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2973551B1 (en) 2013-05-24 2017-05-03 Dolby International AB Reconstruction of audio scenes from a downmix
CA3211308A1 (en) 2013-05-24 2014-11-27 Dolby International Ab Coding of audio scenes
CA3163664A1 (en) * 2013-05-24 2014-11-27 Dolby International Ab Audio encoder and decoder
RU2630754C2 (ru) 2013-05-24 2017-09-12 Долби Интернешнл Аб Эффективное кодирование звуковых сцен, содержащих звуковые объекты
EP3005353B1 (en) 2013-05-24 2017-08-16 Dolby International AB Efficient coding of audio scenes comprising audio objects
US10049683B2 (en) 2013-10-21 2018-08-14 Dolby International Ab Audio encoder and decoder
WO2015150384A1 (en) 2014-04-01 2015-10-08 Dolby International Ab Efficient coding of audio scenes comprising audio objects
GB2528460B (en) 2014-07-21 2018-05-30 Gurulogic Microsystems Oy Encoder, decoder and method
US10580416B2 (en) * 2015-07-06 2020-03-03 Nokia Technologies Oy Bit error detector for an audio signal decoder
US9961475B2 (en) * 2015-10-08 2018-05-01 Qualcomm Incorporated Conversion from object-based audio to HOA
US10249312B2 (en) 2015-10-08 2019-04-02 Qualcomm Incorporated Quantization of spatial vectors
KR102546098B1 (ko) * 2016-03-21 2023-06-22 한국전자통신연구원 블록 기반의 오디오 부호화/복호화 장치 및 그 방법
CN107886960B (zh) * 2016-09-30 2020-12-01 华为技术有限公司 一种音频信号重建方法及装置
EP4202921A4 (en) * 2020-09-28 2024-02-21 Samsung Electronics Co., Ltd. AUDIO ENCODING APPARATUS AND METHOD AND AUDIO DECODING APPARATUS AND METHOD

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5470801A (en) 1977-11-16 1979-06-07 Mitsubishi Monsanto Chem Sound shielding plate
JPS615159A (ja) 1984-06-16 1986-01-10 株式会社アイジー技術研究所 サイデイングボ−ド
DE4423612A1 (de) 1994-07-06 1996-01-11 Basf Ag 2-[(Dihydro)pyrazolyl-3'-oxymethylen]-anilide, Verfahren zu ihrer Herstelung und ihre Verwendung
US7016502B2 (en) * 2000-12-22 2006-03-21 Sony Corporation Encoder and decoder
SE0202159D0 (sv) * 2001-07-10 2002-07-09 Coding Technologies Sweden Ab Efficientand scalable parametric stereo coding for low bitrate applications
JP2003110429A (ja) * 2001-09-28 2003-04-11 Sony Corp 符号化方法及び装置、復号方法及び装置、伝送方法及び装置、並びに記録媒体
JP3982397B2 (ja) * 2001-11-28 2007-09-26 日本ビクター株式会社 可変長符号化データ復号化用プログラム及び可変長符号化データ受信用プログラム
US7263692B2 (en) * 2003-06-30 2007-08-28 Intel Corporation System and method for software-pipelining of loops with sparse matrix routines
KR101169895B1 (ko) 2004-01-20 2012-07-31 파나소닉 주식회사 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치, 화상 복호화 장치 및 그 프로그램
US7895034B2 (en) 2004-09-17 2011-02-22 Digital Rise Technology Co., Ltd. Audio encoding system
US20060080090A1 (en) 2004-10-07 2006-04-13 Nokia Corporation Reusing codebooks in parameter quantization
US20070055510A1 (en) 2005-07-19 2007-03-08 Johannes Hilpert Concept for bridging the gap between parametric multi-channel audio coding and matrixed-surround multi-channel coding
TWI396188B (zh) 2005-08-02 2013-05-11 Dolby Lab Licensing Corp 依聆聽事件之函數控制空間音訊編碼參數的技術
KR100857111B1 (ko) 2005-10-05 2008-09-08 엘지전자 주식회사 신호 처리 방법 및 이의 장치, 그리고 인코딩 및 디코딩방법 및 이의 장치
ATE520121T1 (de) 2006-02-22 2011-08-15 France Telecom Verbesserte celp kodierung oder dekodierung eines digitalen audiosignals
EP1989707A2 (fr) * 2006-02-24 2008-11-12 France Telecom Procede de codage binaire d'indices de quantification d'une enveloppe d'un signal, procede de decodage d'une enveloppe d'un signal et modules de codage et decodage correspondants
DE602007013415D1 (de) * 2006-10-16 2011-05-05 Dolby Sweden Ab Erweiterte codierung und parameterrepräsentation einer mehrkanaligen heruntergemischten objektcodierung
US7953595B2 (en) 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
CA2972808C (en) 2008-07-10 2018-12-18 Voiceage Corporation Multi-reference lpc filter quantization and inverse quantization device and method
EP4407610A1 (en) * 2008-07-11 2024-07-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program
CN102177426B (zh) 2008-10-08 2014-11-05 弗兰霍菲尔运输应用研究公司 多分辨率切换音频编码/解码方案
EP2214161A1 (en) * 2009-01-28 2010-08-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for upmixing a downmix audio signal
US8194862B2 (en) 2009-07-31 2012-06-05 Activevideo Networks, Inc. Video game system with mixing of independent pre-encoded digital audio bitstreams
UA48138U (ru) 2009-08-31 2010-03-10 Винницкий Национальный Технический Университет Способ направленного поиска векторов при уплотнении языковых сигналов
US9117458B2 (en) 2009-11-12 2015-08-25 Lg Electronics Inc. Apparatus for processing an audio signal and method thereof
US8692848B2 (en) 2009-12-17 2014-04-08 Broadcom Corporation Method and system for tile mode renderer with coordinate shader
CA3097372C (en) 2010-04-09 2021-11-30 Dolby International Ab Mdct-based complex prediction stereo coding
EP3779975B1 (en) 2010-04-13 2023-07-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder and related methods for processing multi-channel audio signals using a variable prediction direction
US9112591B2 (en) 2010-04-16 2015-08-18 Samsung Electronics Co., Ltd. Apparatus for encoding/decoding multichannel signal and method thereof
KR101798079B1 (ko) * 2010-05-10 2017-11-16 삼성전자주식회사 픽셀값의 차분을 이용하여 영상 프레임을 부호화하는 방법 및 이를 위한 장치
US8660195B2 (en) 2010-08-10 2014-02-25 Qualcomm Incorporated Using quantized prediction memory during fast recovery coding
US9111526B2 (en) * 2010-10-25 2015-08-18 Qualcomm Incorporated Systems, method, apparatus, and computer-readable media for decomposition of a multichannel music signal
EP2701144B1 (en) * 2011-04-20 2016-07-27 Panasonic Intellectual Property Corporation of America Device and method for execution of huffman coding
IN2014CN03413A (es) * 2011-11-01 2015-07-03 Koninkl Philips Nv
EP3748632A1 (en) * 2012-07-09 2020-12-09 Koninklijke Philips N.V. Encoding and decoding of audio signals
CA3163664A1 (en) * 2013-05-24 2014-11-27 Dolby International Ab Audio encoder and decoder

Also Published As

Publication number Publication date
US10418038B2 (en) 2019-09-17
US10714104B2 (en) 2020-07-14
KR20230129576A (ko) 2023-09-08
AU2014270301A1 (en) 2015-11-19
UA112833C2 (uk) 2016-10-25
MX2015015926A (es) 2016-04-06
JP6105159B2 (ja) 2017-03-29
EP3252757B1 (en) 2019-12-25
EP3005350B1 (en) 2017-05-10
EP4290510A2 (en) 2023-12-13
US20200411017A1 (en) 2020-12-31
CN105229729A (zh) 2016-01-06
EP3961622A1 (en) 2022-03-02
BR112015029031B1 (pt) 2021-02-23
PL3005350T3 (pl) 2017-09-29
US9704493B2 (en) 2017-07-11
JP6573640B2 (ja) 2019-09-11
MX2020010038A (es) 2020-10-14
CN105229729B (zh) 2019-03-19
RU2015155311A (ru) 2017-06-30
KR20220045259A (ko) 2022-04-12
KR102192245B1 (ko) 2020-12-17
KR20170087971A (ko) 2017-07-31
ES2965423T3 (es) 2024-04-15
JP2017102484A (ja) 2017-06-08
EP4290510A3 (en) 2024-02-14
IL242410B (en) 2018-11-29
JP2021179627A (ja) 2021-11-18
US20200013415A1 (en) 2020-01-09
RU2710909C1 (ru) 2020-01-14
RU2643489C2 (ru) 2018-02-01
SG10201710019SA (en) 2018-01-30
EP3605532A1 (en) 2020-02-05
KR20180099942A (ko) 2018-09-05
BR112015029031A2 (pt) 2017-07-25
CA3077876C (en) 2022-08-09
CA2911746C (en) 2018-02-13
CA2911746A1 (en) 2014-11-27
CN110085238B (zh) 2023-06-02
EP3961622B1 (en) 2023-11-01
JP2016526186A (ja) 2016-09-01
KR101763131B1 (ko) 2017-07-31
RU2676041C1 (ru) 2018-12-25
JP7258086B2 (ja) 2023-04-14
AU2014270301B2 (en) 2017-08-03
KR20160013154A (ko) 2016-02-03
RU2019141091A (ru) 2021-06-15
US9940939B2 (en) 2018-04-10
US11594233B2 (en) 2023-02-28
KR102384348B1 (ko) 2022-04-08
JP2023076575A (ja) 2023-06-01
SG11201509001YA (en) 2015-12-30
EP3005350A2 (en) 2016-04-13
US20160111098A1 (en) 2016-04-21
CN110085238A (zh) 2019-08-02
KR102280461B1 (ko) 2021-07-22
EP3605532B1 (en) 2021-09-29
KR102572382B1 (ko) 2023-09-01
US20170309279A1 (en) 2017-10-26
MY173644A (en) 2020-02-13
CA3077876A1 (en) 2014-11-27
WO2014187988A3 (en) 2015-02-05
US11024320B2 (en) 2021-06-01
EP3252757A1 (en) 2017-12-06
JP6920382B2 (ja) 2021-08-18
KR102459010B1 (ko) 2022-10-27
CA2990261A1 (en) 2014-11-27
KR20220148314A (ko) 2022-11-04
DK3005350T3 (en) 2017-07-17
MX350117B (es) 2017-08-28
JP2020016884A (ja) 2020-01-30
HK1217246A1 (zh) 2016-12-30
KR20210060660A (ko) 2021-05-26
KR20200013091A (ko) 2020-02-05
US20230282219A1 (en) 2023-09-07
KR20200145837A (ko) 2020-12-30
US20180240465A1 (en) 2018-08-23
CA3163664A1 (en) 2014-11-27
KR102072777B1 (ko) 2020-02-03
CA2990261C (en) 2020-06-16
ES2629025T3 (es) 2017-08-07
US20210390963A1 (en) 2021-12-16
WO2014187988A2 (en) 2014-11-27
KR101895198B1 (ko) 2018-09-07

Similar Documents

Publication Publication Date Title
ES2902518T3 (es) Codificador de audio
RU2810027C2 (ru) Аудиокодер и аудиодекодер
KR102715092B1 (ko) 오디오 인코더 및 디코더
KR20240151867A (ko) 오디오 인코더 및 디코더