ES2968494T3 - Determinación de codificación de parámetros de audio espacial y decodificación asociada - Google Patents

Determinación de codificación de parámetros de audio espacial y decodificación asociada Download PDF

Info

Publication number
ES2968494T3
ES2968494T3 ES19878287T ES19878287T ES2968494T3 ES 2968494 T3 ES2968494 T3 ES 2968494T3 ES 19878287 T ES19878287 T ES 19878287T ES 19878287 T ES19878287 T ES 19878287T ES 2968494 T3 ES2968494 T3 ES 2968494T3
Authority
ES
Spain
Prior art keywords
value
subband
coherence
index
codebook
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
ES19878287T
Other languages
English (en)
Inventor
Adriana Vasilache
Mikko-Ville Laitinen
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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
Priority claimed from GB1817807.9A external-priority patent/GB2578603A/en
Priority claimed from GBGB1903850.4A external-priority patent/GB201903850D0/en
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Application granted granted Critical
Publication of ES2968494T3 publication Critical patent/ES2968494T3/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/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S3/00Systems employing more than two channels, e.g. quadraphonic
    • H04S3/008Systems employing more than two channels, e.g. quadraphonic in which the audio signals are in digital form, i.e. employing more than two discrete digital channels
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/15Aspects of sound capture and related signal processing for recording or reproduction
    • 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)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un aparato que comprende medios para: recibir valores para subbandas de una trama de una señal de audio, comprendiendo los valores al menos un valor de acimut, al menos un valor de elevación, al menos un valor de relación de energía y al menos una coherencia ensanchada y/o envolvente. valor para cada subbanda; determinar un libro de códigos para codificar al menos un valor de coherencia ensanchada y/o envolvente para cada subbanda en base al al menos un valor de relación de energía y al menos un valor de acimut para cada subbanda para una trama ; coseno discreto que transforma al menos un vector, comprendiendo el al menos un vector el al menos un valor de coherencia ensanchada y/o envolvente para una subbanda para la trama; y codificar un primer número de componentes del vector transformado en coseno discreto basándose en el libro de códigos determinado. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Determinación de codificación de parámetros de audio espacial y decodificación asociada
Campo
La presente solicitud se refiere a aparatos para codificación de parámetros relacionados con el campo de sonido, pero no exclusivamente para parámetros relacionados con la dirección de dominio de tiempo-frecuencia que codifican un codificador y decodificador de audio.
Antecedentes
El procesamiento de audio espacial paramétrico es un campo de procesamiento de señales de audio donde el aspecto espacial del sonido se describe usando un conjunto de parámetros. Por ejemplo, en la captura de audio espacial paramétrica a partir de matrices de micrófonos, una elección típica y efectiva es estimar, a partir de las señales de matriz de micrófonos, un conjunto de parámetros tales como direcciones del sonido en bandas de frecuencia, y los coeficientes entre las partes direccionales y no direccionales del sonido capturado en las bandas de frecuencia. Se sabe que estos parámetros describen bien las propiedades espaciales perceptuales del sonido captado en la posición de la matriz de micrófonos. Estos parámetros pueden usarse en la síntesis del sonido espacial, por consiguiente, para auriculares de manera binaural, para altavoces o para otros formatos, tales como ambisónico.
Por tanto, las direcciones y las razones de energía directa con respecto a total en bandas de frecuencia son de este modo una parametrización que es particularmente eficaz para la captación de audio espacial.
También puede usarse un conjunto de parámetros que consiste en un parámetro de dirección en bandas de frecuencia y un parámetro de razón de energía en bandas de frecuencia (que indica la direccionalidad del sonido) como metadatos espaciales (que también pueden incluir otros parámetros como la coherencia, coherencia de propagación, número de direcciones, distancia, etc.) para un códec de audio. Por ejemplo, estos parámetros pueden estimarse a partir de señales de audio captadas en matriz de micrófonos y, por ejemplo, se puede generar una señal estéreo a partir de las señales de matriz de micrófonos que se transportan con los metadatos espaciales. La señal estéreo puede codificarse, por ejemplo, con un codificador AAC. Un decodificador puede decodificar las señales de audio para dar señales de PCM, y procesar el sonido en bandas de frecuencia (usando los metadatos espaciales) para obtener la salida espacial, por ejemplo, una salida binaural.
La solución mencionada anteriormente es particularmente adecuada para codificar sonido espacial capturado a partir de matrices de micrófonos (por ejemplo, en teléfonos móviles, cámaras de RV, matrices de micrófono independientes). Sin embargo, puede ser deseable que dicho codificador tenga también otros tipos de entrada que las señales capturadas de matriz de micrófonos, por ejemplo, señales de altavoces, señales de objeto de audio o señales ambisónicas.
El análisis de entradas ambisónicas (FOA) de primer orden para la extracción de metadatos espaciales se ha documentado completamente en la literatura científica relacionada con la codificación de audio direccional (DirAC) y la expansión de onda de plano armónico (Harpex). Esto es dado que existen matrices de micrófono que proporcionan directamente una señal FOA (de forma más precisa: su variante, la señal de formato B) y el análisis de dicha entrada ha sido por lo tanto un punto de estudio en el campo.
Una entrada adicional para el codificador también es la entrada de altavoz multicanal, como las entradas envolventes del canal 5.1 o 7.1.
Sin embargo, con respecto a los componentes de la compresión de metadatos, es un tema de investigación actual.
3GPP document T.doc S4 (18)0789, Addressing open issues for spatial audio (MASA) format, from Nokia Corporation discusses the metadata assisted spatial audio format (MASA) for the immersive voice and audio service (IVAS.) En particular, se describen los parámetros de audio espacial que comprenden el formato MASA.
La publicación de patente EP2509308 describe un método para codificar los componentes de color de datos de píxeles por primer coseno discreto (DCT) que transforma los datos de píxeles seguidos por la longitud de ejecución que codifica los coeficientes de transformación DCT.
Resumen
Se proporciona según un primer aspecto un aparato que comprende medios para: recibir valores para subbandas de un fotograma de una señal de audio, comprendiendo los valores al menos un valor de acimut, al menos un valor de elevación, al menos un valor de relación de energía y al menos un valor de coherencia de propagación y/o envolvente para cada subbanda; determinar un libro de códigos para codificar al menos un valor de coherencia de propagación y/o envolvente para cada subbanda basándose en el al menos un valor de relación de energía y una varianza del al menos un valor de acimut para cada subbanda para un fotograma; realizar la transformada en coseno discreto de al menos un vector, comprendiendo el al menos un vector el al menos un valor de coherencia de propagación y/o envolvente para una subbanda para el fotograma; y codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado.
Los medios para determinar un libro de códigos para codificar al menos un valor de coherencia para cada subbanda basándose en el al menos un valor de relación de energía y la varianza del al menos un valor de acimut para cada subbanda para una trama pueden ser además para: obtener un índice que represente un promedio ponderado del al menos un valor de relación de energía para cada subbanda para el fotograma; determinar si una medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado; y seleccionar el libro de códigos basándose en el índice y determinar si una medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado.
Los medios para seleccionar el libro de códigos basándose en el índice y la determinación de si una medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado puede ser además para seleccionar un número de palabras de código para un libro de códigos basándose en el índice.
Los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado pueden ser además para: determinar el primer número de componentes del vector de transformada de coseno discreto dependiente de la subbanda; codificar un primer componente del primer número de los componentes del vector de transformada de coseno discreta basándose en el libro de códigos.
Los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado pueden ser además para: determinar un libro de códigos para realización la cuantificación escalar basándose en un índice de una subbanda, comprendiendo cada libro de códigos un número determinado de palabras de código; generar al menos un índice adicional para el resto de los componentes del primer número de los componentes de vector de transformada de coseno discreta basándose en el libro de códigos determinado; generar un índice medio eliminado basado en el al menos un índice adicional para el resto de los componentes del primer número de los componentes del vector de transformada en coseno individual; y la entropía que codifica el índice de eliminación medio.
Los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado pueden ser además para: determinar al menos un índice adicional para el resto de los componentes del primer número de componentes de vector de transformada de coseno discreta basándose en un libro de códigos con un número definido de palabras de código, estando el libro de códigos además basado en un índice de subbanda del vector; determinar un índice de eliminación medio basado en el al menos un índice adicional para el resto de los componentes del primer número de los componentes del vector de transformada de coseno discreta; y la entropía que codifica el índice de eliminación medio.
Los medios para codificar por entropía el índice medio extraído pueden ser además para Golomb-Rice que codifica el índice de eliminación medio.
Los medios pueden ser más para: almacenar y/o transmitir el primer número codificado de componentes del vector de transformada de coseno discreto.
El aparato puede comprender además medios para realización la cuantificación escalar el al menos un valor de relación de energía, para generar al menos un índice de relación de energía adecuado para determinar el libro de códigos para codificar al menos un valor de coherencia para cada subbanda.
Los medios pueden ser además para: estimar un número de bits restantes para codificar el al menos un valor de acimut y al menos un valor de elevación basándose en un número objetivo de bits, una estimación de un número de bits para codificar el primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado antes de la codificación, un número de bits que representan el al menos un índice de relación de energía, y un número de bits que representan la codificación de entropía del índice de eliminación medio; codificar el al menos un valor de acimut y al menos un valor de elevación para generar al menos un índice de acimut y al menos un índice de elevación basándose en el número de bits restantes, donde la determinación del libro de códigos para codificar al menos un valor de coherencia para cada subbanda se basa en el al menos un índice de acimut.
Según un segundo aspecto, se proporciona un aparato que comprende medios para: obtener valores codificados para subbandas de un fotograma de una señal de audio, comprendiendo los valores al menos un índice de acimut, al menos un índice de elevación al menos un índice de relación de energía y al menos un índice de coherencia de propagación y/o envolvente para cada subbanda; decodificar el al menos un índice de acimut para dar al menos un valor de acimut; determinar un libro de códigos para decodificar el al menos un índice de coherencia de propagación y/o envolvente para cada subbanda basándose en el al menos un índice de relación de energía y una varianza del al menos un valor de acimut; realizar la transformada en coseno discreto inverso del al menos un índice de coherencia de propagación y/o envolvente para generar al menos un vector, comprendiendo el al menos un vector el al menos un valor de coherencia de propagación y/o envolvente para una subbanda para el fotograma; y analizar el vector para generar al menos un valor de coherencia de propagación y/o envolvente para cada subbanda.
Los medios para determinar un libro de códigos para decodificar el al menos un índice de coherencia de propagación y/o envolvente para cada subbanda basándose en el al menos un índice de relación de energía y la varianza del al menos un valor de acimut pueden ser además para: determinar si una medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado; y seleccionar el libro de códigos basándose en el al menos un índice de relación de energía y determinar si la medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado.
Los medios para seleccionar el libro de códigos basándose en el al menos un índice de relación de energía y la determinación de si la medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado puede ser además para seleccionar un número de palabras de código para el libro de códigos basándose en el al menos un índice de relación de energía.
Las realizaciones de la presente solicitud tienen como objetivo abordar problemas asociados con el estado de la técnica.
Resumen de las figuras
Para una mejor comprensión de la presente solicitud, ahora se hará referencia a modo de ejemplo a los dibujos adjuntos, en los que:
la Figura 1 muestra esquemáticamente un sistema de aparato adecuado para implementar algunas realizaciones;
La figura 2 muestra esquemáticamente un sistema de códec de audio según algunas realizaciones;
La figura 3 muestra un diagrama de flujo de la operación del procesador de análisis como se muestra en la figura 2 según algunas realizaciones;
La figura 4 muestra esquemáticamente un codificador como se muestra en la figura 2 según algunas realizaciones;
La figura 5 muestra un diagrama de flujo de la operación del procesador de análisis como se muestra en la figura 4 según algunas realizaciones;
La figura 6 muestra un diagrama de flujo del funcionamiento del codificador de coherencia que codifica los primeros y otros componentes de coherencia según algunas realizaciones;
La figura 7 muestra un diagrama de flujo de un funcionamiento adicional del codificador de coherencia que codifica los primeros y otros componentes de coherencia según algunas realizaciones adicionales;
La figura 8 muestra esquemáticamente el decodificador de metadatos con respecto a la decodificación de coherencia según la invención;
La figura 9 muestra un diagrama de la operación del sistema como se muestra en la figura 8 según algunas realizaciones; y
la Figura 10 muestra esquemáticamente un dispositivo ilustrativo adecuado para implementar el aparato mostrado.
Realizaciones de la solicitud
A continuación se describe con más detalle un aparato adecuado y mecanismos posibles para la provisión de parámetros de metadatos derivados de análisis espacial efectivos. En la siguiente discusión, el sistema multicanal se analiza con respecto a una implementación de micrófono multicanal. Sin embargo, como se discutió anteriormente, el formato de entrada puede ser cualquier formato de entrada adecuado, tal como un altavoz multicanal, ambisónica (FOA/HOA), etc. Se entiende que en algunas realizaciones la ubicación del canal se basa en una ubicación del micrófono o es una ubicación o dirección virtual. Además, la salida del sistema de ejemplo es una disposición de altavoz multicanal. Sin embargo, se entiende que la salida puede hacerse al usuario mediante medios distintos a los altavoces. Además, las señales del altavoz multicanal pueden generalizarse para ser dos o más señales de audio de reproducción.
Los metadatos consisten en al menos una dirección (elevación, acimut), relación de energía de una dirección resultante y componentes de coherencia extendida de una dirección resultante, para cada bloque de tiempo-frecuencia considerado (subbanda de tiempo/frecuencia). Además, independientemente de la dirección, la coherencia circundante puede determinarse e incluirse para cada bloque de tiempo-frecuencia. Todos estos datos se codifican y transmiten (o almacenan) por el codificador para poder reconstruir la señal espacial en el decodificador.
Las tasas de funcionamiento generales típicas del códec dejan 3,0 kbps, 4,0 kbps, 8 kbps o 10 kbps para la transmisión/almacenamiento de metadatos. La codificación de los parámetros de dirección y los componentes de relación de energía se han examinado antes, pero la codificación de los datos de coherencia no se ha explorado y a velocidades de bits más bajas se elimina y no se transmite o almacena.
El concepto como se describe a continuación es codificar los parámetros de coherencia junto con los parámetros de dirección y relación de energía para cada bloque de tiempo-frecuencia. En los siguientes ejemplos, la codificación se realiza en el dominio de transformación de coseno discreto, y depende del índice de subbanda actual, y la relación de energía actual y valores de acimut. La transformación DCT se ha elegido en las siguientes realizaciones de la invención, ya que está optimizada para implementaciones de baja complejidad, sin embargo, pueden aplicarse otras transformaciones del dominio de tiempo-frecuencia y usarse en realizaciones que no forman parte de la presente invención.
En algunas realizaciones, un enfoque de codificación de tasa de bits fija puede combinarse con codificación de tasa de bits variable que distribuye bits de codificación para datos a comprimir entre segmentos diferentes, de modo que la tasa de bits global por fotograma es fija. Dentro de los bloques de frecuencia de tiempo, los bits pueden transferirse entre subbandas de frecuencia.
Con respecto a la figura 1, se muestran un aparato y un sistema de ejemplo para implementar realizaciones de la solicitud. El sistema 100 se muestra con una parte de “ análisis” 121 y una parte de “ síntesis” 131. La parte de “ análisis” 121 es la parte desde la recepción de las señales de altavoces de múltiples canales hasta la codificación de los metadatos y la señal de mezcla descendente; y la parte de “ síntesis” 131 es la parte de una decodificación de los metadatos codificados y la señal de mezcla descendente a la presentación de la señal regenerada (por ejemplo, en forma de altavoces de múltiples canales).
La entrada al sistema 100 y la parte de análisis 121 son las señales multicanal 102. En los siguientes ejemplos, se describe una entrada de señal de canal de micrófono, aunque puede implementarse cualquier formato de entrada (o multicanal sintético) adecuado en otras realizaciones. Por ejemplo, en algunas realizaciones, el analizador espacial y el análisis espacial pueden implementarse de forma externa al codificador. Por ejemplo, en algunas realizaciones, los metadatos espaciales asociados con las señales de audio pueden ser proporcionados a un codificador como un flujo de bits separado. En algunas realizaciones, los metadatos espaciales pueden proporcionarse como un conjunto de valores de índice espacial (dirección).
Las señales multicanal se pasan a un mezclador de señales de transporte 103 y a un procesador de análisis 105.
En algunas realizaciones, el generador de señal de transporte 103 está configurado para recibir las señales multicanal y generar una señal de transporte adecuada formada por un número determinado de canales y emitir las señales de transporte 104. Por ejemplo, el generador de señales de transporte 103 puede configurarse para generar una mezcla de canales de audio 2 de las señales multicanal. El número determinado de canales puede ser cualquier número adecuado de canales. El generador de señales de transporte en algunas realizaciones está configurado para seleccionar o combinar de otro modo, por ejemplo, mediante técnicas de formación de haces las señales de audio de entrada al número determinado de canales y emitir estas como señales de transporte.
En algunas realizaciones, el mezclador de señales de transporte 103 es opcional y las señales multicanal se pasan sin procesar a un codificador 107 de la misma manera que la señal de transporte en este ejemplo.
En algunas realizaciones, el procesador de análisis 105 también está configurado para recibir las señales multicanal y analizar las señales para producir metadatos 106 asociados con las señales multicanal y, por lo tanto, asociarse con las señales de transporte 104. El procesador de análisis 105 puede configurarse para generar los metadatos que pueden comprender, para cada intervalo de análisis de tiempo-frecuencia, un parámetro de dirección 108, un parámetro de relación de energía 110 y un parámetro de coherencia 112 (y en algunas realizaciones un parámetro de difusión). La dirección, la relación de energía y los parámetros de coherencia pueden considerarse en algunas realizaciones como parámetros de audio espacial. En otras palabras, los parámetros de audio espacial comprenden parámetros que tienen como objetivo caracterizar el campo sonoro creado por las señales multicanal (o dos o más señales de audio de reproducción en general).
En algunas realizaciones, los parámetros generados pueden diferir entre las bandas de frecuencia. Por lo tanto, por ejemplo, en la banda X todos los parámetros se generan y transmiten, mientras que en la banda Y solo se genera y transmite uno de los parámetros, y además en la banda Z no se generan o transmiten parámetros. Un ejemplo práctico de esto es que para algunas bandas de frecuencia, tales como la banda más alta, no se requieren algunos de los parámetros por motivos perceptuales. Las señales de transporte 104 y los metadatos 106 pueden pasarse a un codificador 107.
El codificador 107 puede comprender un núcleo de codificador de audio 109 que está configurado para recibir las señales de transporte (para un ejemplo de mezcla descendente) 104 y generar una codificación adecuada de estas señales de audio. En algunas realizaciones, el codificador 107 puede ser un ordenador (que ejecuta un software adecuado almacenado en la memoria y en al menos un procesador), o alternativamente un dispositivo específico que utiliza, por ejemplo, FPGAs o ASIC. La codificación puede implementarse usando cualquier esquema adecuado. El codificador 107 puede comprender además un codificador de metadatos o cuantificador 111 que está configurado para recibir los metadatos y emitir una forma codificada o comprimida de la información. En algunas realizaciones, el codificador 107 puede además intercalar, multiplexar a un flujo de datos individual o incorporar los metadatos dentro de las señales de mezcla descendente codificadas antes de la transmisión o el almacenamiento mostrado en la Figura 1 por la línea discontinua. La multiplexación puede implementarse usando cualquier esquema adecuado.
En el lado del decodificador, los datos recibidos o recuperados (flujo) pueden ser recibidos por un decodificador/demultiplexor 133. El decodificador/demultiplexor 133 puede demultiplexar los flujos codificados y pasar la corriente codificada de audio a un extractor de transporte 135 que está configurado para decodificar las señales de audio para obtener las señales de transporte. De manera similar, el decodificador/demultiplexor 133 puede comprender un extractor de metadatos 137 que está configurado para recibir los metadatos codificados y generar metadatos. En algunas realizaciones, el decodificador/demultiplexor 133 puede ser un ordenador (que ejecuta un software adecuado almacenado en la memoria y en al menos un procesador), o alternativamente un dispositivo específico que utiliza, por ejemplo, FPGA o ASIC.
Las señales de audio de transporte y metadatos decodificados pueden pasarse a un procesador de síntesis 139. La parte de “ síntesis” 100 del sistema muestra además un procesador de síntesis 139 configurado para recibir los datos de transporte y los metadatos, y vuelve a crear en cualquier formato adecuado un audio espacial sintetizado en forma de señales multicanal 110 (pueden ser un formato de altavoces multicanal o en algunas realizaciones cualquier formato de salida adecuado como las señales binaural o ambisónica, dependiendo del caso de uso) en base a las señales de transporte y los metadatos.
Por lo tanto, en resumen, el sistema (parte de análisis) está configurado para recibir señales de audio multicanal. A continuación, el sistema (parte de análisis) está configurado para generar una señal de audio de transporte adecuada (por ejemplo, seleccionando o remezclando algunas de las canales de señal de audio).
El sistema se configura entonces para codificar para su almacenamiento/transmisión la señal de transporte y los metadatos.
Después de esto, el sistema puede almacenar/transmitir los datos de transporte codificado y los metadatos.
El sistema puede recuperar/recibir los datos de transporte codificado y los metadatos.
Posteriormente, el sistema se configura para extraer los datos de transporte y los metadatos de los parámetros codificados de transporte y metadatos, por ejemplo demultiplexar y decodificar los parámetros codificados de transporte y metadatos.
El sistema (parte de síntesis) está configurado para sintetizar una señal de audio multicanal de salida basándose en señales de audio de transporte extraídas y metadatos.
Con respecto a la Figura 2, se describe con más detalle un procesador de análisis de ejemplo 105 y un codificador/cuantificador de metadatos 111 (como puede verse en la Figura 1) según algunas realizaciones con más detalle.
El procesador de análisis 105 en algunas realizaciones comprende un transformador de dominio de tiempo-frecuencia 201.
En algunas realizaciones, el transformador de dominio de tiempo-frecuencia 201 está configurado para recibir las señales multicanal 102 y aplicar una transformación de dominio de tiempo a frecuencia adecuada tal como una Transformación de Fourier de Tiempo Corto (STFT) para convertir las señales de dominio del tiempo de entrada en una señal de tiempo-frecuencia adecuada. Estas señales de tiempo-frecuencia pueden pasar a un analizador espacial 203 y a un analizador de señal 205.
Por lo tanto, por ejemplo, las señales de tiempo-frecuencia 202 pueden representarse en la representación del dominio de tiempo-frecuencia en
si (b, n),
donde b es el índice del intervalo de frecuencia y n es el índice del bloque de frecuencia (fotograma) e i es el índice de canal. En otra expresión, n puede considerarse un índice de tiempo con una tasa de muestreo más baja que la de las señales originales del dominio del tiempo. Estos binarios de frecuencia pueden agruparse en subbandas que forman uno o más de los binarios en una subbanda de un índice de banda K = 0,.,., K-1. Cada subbanda k tiene un contenedor b más bajo<k, bajo>y un depósito más alto b<k, alto>, y la subbanda contiene todos los intervalos de b<k, bajo>a b<k, alto>. Las anchuras de las subbandas pueden aproximarse a cualquier distribución adecuada. Por ejemplo, la escala de ancho de banda rectangular equivalente (ERB) o la escala Bark.
En algunas realizaciones, el procesador de análisis 105 comprende un analizador espacial 203. El analizador espacial 203 puede configurarse para recibir las señales de frecuencia de tiempo 202 y basándose en estas señales estima los parámetros de dirección 108. Los parámetros de dirección se pueden determinar basándose en cualquier determinación de “ dirección” basada en audio.
Por ejemplo, en algunas realizaciones, el analizador espacial 203 está configurado para estimar la dirección con dos o más entradas de señal. Esto representa la configuración más simple para estimar una “ dirección” y un procesamiento más complejo puede realizarse con incluso más señales.
El analizador espacial 203 puede configurarse para proporcionar al menos un acimut y una elevación para cada banda de frecuencia y bloque temporal-frecuencia de tiempo dentro de un fotograma de una señal de audio, denotado como acimut $ (k, n) y elevación 0 (k, n). Los parámetros de dirección 108 también se pueden pasar a un analizador de índice de dirección 205.
El analizador especial 203 también puede configurarse para determinar un parámetro de relación de energía 110. Se puede considerar que la relación de energía es una determinación de la energía de la señal de audio que puede considerarse que llega desde una dirección. La relación de energía directa a total r (k, n) puede estimarse, por ejemplo, usando una medida de estabilidad de la estimación direccional, o usando cualquier medida de correlación, o cualquier otro método adecuado para obtener un parámetro de relación. La relación de energía se puede pasar a un codificador de relación de energía 207.
El analizador espacial 203 puede configurarse además para determinar un número de parámetros de coherencia 112 que pueden incluircoherencia circundante (Y(k, n)ycoherencia extendida (Z(k, n)),ambas analizadas en el dominio de tiempo-frecuencia. Un parámetro decoherencia extendidapuede tener valores de 0 a 1. Un valor decoherencia extendidade 0 indica una fuente puntual, en otras palabras, cuando se reproduce la señal de audio usando un sistema de múltiples altavoces, el sonido debe reproducirse con tan pocos altavoces como sea posible (por ejemplo, solo un altavoz central cuando la dirección es central). Cuando el valor de lacoherencia extendidaaumenta, más energía se dispersa a los otros altavoces alrededor del altavoz central hasta en el valor 0,5, la energía se distribuye uniformemente entre los altavoces centrales y vecinos. Cuando el valor decoherencia extendidaaumenta por encima de 0,5, la energía en el altavoz central disminuye hasta que en el valor 1, no hay energía en el altavoz central, y toda la energía está en altavoces vecinos. El parámetro de coherencia circundante tiene valores de 0 a 1. Un valor de 1 significa que hay coherencia entre todos los canales de altavoces (o casi todos). Un valor de 0 significa que no hay coherencia entre todos los canales de altavoces (o incluso casi todos). Esto se explica adicionalmente en la solicitud GB N.° 1718341.9 (NOKIA TECHNOLOGIES OY) 06.11.2017 y la solicitud PCT/FI 2018/050788 (NOKIA TECHNOLOGIES OY) 30.10.2018.
Por lo tanto, en resumen, el procesador de análisis está configurado para recibir un canal multicanal de dominio de tiempo u otro formato tal como señales de micrófono o audio ambisónica.
Después de esto, el procesador de análisis puede aplicar una transformación de dominio de tiempo a dominio de frecuencia (por ejemplo, STFT) para generar señales de dominio de tiempo-frecuencia adecuadas para su análisis y luego aplicar análisis de dirección para determinar parámetros de dirección y relación de energía.
El procesador de análisis puede configurarse entonces para emitir los parámetros determinados.
Aunque aquí se expresan direcciones, relaciones de energía y parámetros de coherencia para cada índice de tiempo n, en algunas realizaciones los parámetros se combinan durante varios índices de tiempo. Lo mismo se aplica para el eje de frecuencia, como se ha expresado, la dirección de varios intervalos de frecuencia b podría expresarse por un parámetro de dirección en la banda k que consiste en varios binarios de frecuencia b. Lo mismo se aplica para todos los parámetros espaciales analizados en la presente memoria.
En algunas realizaciones, los datos direccionales pueden representarse usando 16 bits de manera que cada parámetro de acimut esté representado aproximadamente en 9 bits, y la elevación en 7 bits. En tales realizaciones, el parámetro de relación de energía puede representarse en 8 bits. Para cada fotograma, puede haber N=5 subbandas y M=4 bloques de frecuencia de tiempo (TF). Por lo tanto, en este ejemplo hay (16+ 8) bits xMxN necesarios para almacenar los metadatos de la dirección sin comprimir y de la relación de energía para cada fotograma. Los datos de coherencia para cada bloque TF pueden ser una representación de punto flotante entre 0 y 1 y pueden representarse originalmente en 8 bits.
Como también se muestra en la figura 2, se muestra un codificador/cuantificador de metadatos 111 de ejemplo según la invención.
El codificador/cuantificador de metadatos 111 comprende un codificador de dirección 205. El codificador de dirección 205 está configurado para recibir los parámetros de dirección azimut A(k, n) y elevación 0 (k, n) 108 (y en algunas realizaciones una asignación de bits esperada) y de esto genera una salida codificada adecuada. En algunas realizaciones, la codificación se basa en una disposición de esferas que forman una retícula esférica dispuesta en anillos en una esfera de “ superficie” que se define por una tabla de consulta definida por la resolución de cuantificación determinada. En otras palabras, la retícula esférica utiliza la idea de cubrir una esfera con esferas más pequeñas y considerar los centros de las esferas más pequeñas como puntos que definen una retícula de direcciones casi equidistantes. Por lo tanto, las esferas más pequeñas definen conos o ángulos sólidos alrededor del punto central que pueden indexarse según cualquier algoritmo de indexación adecuado. Aunque la cuantificación esférica se describe aquí cualquier cuantificación adecuada, lineal o no lineal.
Además, según la invención, el codificador de dirección 205 está configurado para determinar una varianza del valor de parámetro de acimut y pasarlo al codificador de coherencia 209.
Los parámetros de dirección codificados pueden pasarse entonces al combinador 211.
El codificador/cuantificador 111 de metadatos puede comprender un codificador de relación de energía 207. El codificador de relación de energía 207 está configurado para recibir las relaciones de energía y determinar una codificación adecuada para comprimir las relaciones de energía para las subbandas y los bloques de tiempofrecuencia. Por ejemplo, en algunas realizaciones, el codificador de relación de energía 207 está configurado para usar 3 bits para codificar cada valor de parámetro de relación de energía.
Además, en algunas realizaciones en lugar de transmitir o almacenar todos los valores de relación de energía para todos los bloques TF, solo se transmite o almacena un valor promedio ponderado por subbanda. El promedio puede determinarse teniendo en cuenta la energía total de cada bloque de tiempo, lo que favorece, por lo tanto, los valores de las subbandas que tienen más energía.
En tales realizaciones, el valor de relación de energía cuantificado es el mismo para todos los bloques TF de una subbanda dada.
En algunas realizaciones, el codificador de relación de energía 207 está configurado además para pasar el valor de relación de energía cuantificado (codificado) al combinador 211 y al codificador de coherencia 209.
El codificador/cuantificador de metadatos 111 comprende un codificador de coherencia 209. El codificador de coherencia 209 está configurado para recibir los valores de coherencia y determinar una codificación adecuada para comprimir los valores de coherencia para las subbandas y los bloques de tiempo-frecuencia. Se ha demostrado que un valor de precisión de 3 bits para los valores de parámetro de coherencia produce resultados aceptables de síntesis de audio, pero incluso esto requeriría un total de 3 x 20 bits para los datos de coherencia para todos los bloques TF (en el ejemplo 8 de subbanda y 5 bloques TF por fotograma).
Como se describe a continuación de acuerdo con la invención, la codificación se implementa en el dominio DCT, y depende del índice de subbanda actual, y la relación de energía actual y varianza de los valores de acimut.
Los valores de parámetros de coherencia codificados pueden pasarse entonces al combinador 211.
El codificador/cuantificador 111 de metadatos puede comprender un combinador 211. El combinador está configurado para recibir los parámetros direccionales codificados (o cuantificados/comprimidos), parámetros de relación de energía y parámetros de coherencia y combinar estos para generar una salida adecuada (por ejemplo, un flujo de bits de metadatos que puede combinarse con la señal de transporte o transmitirse o almacenarse por separado desde la señal de transporte).
Con respecto a la figura 3 se muestra un ejemplo de operación del codificador/cuantificador de metadatos como se muestra en la figura 2 de acuerdo con algunas realizaciones.
La operación inicial es obtener los metadatos (tales como valores de acimut, valores de elevación, relaciones de energía, coherencia, etc.) como se muestra en la figura 3 por la etapa 301.
Los valores direccionales (elevación, acimut) pueden ser comprimidos o codificados (por ejemplo, aplicando una cuantificación esférica o cualquier compresión adecuada) como se muestra en la figura 3 por la etapa 303.
Los valores de relación de energía se comprimen o codifican (por ejemplo, generando un promedio ponderado por subbanda y luego cuantificando estos como un valor de 3 bits) como se muestra en la figura 3 por la etapa 305.
Los valores de coherencia también se comprimen o codifican (mediante codificación en el dominio de DCT como se indica a continuación) como se muestra en la figura 3 por la etapa 307.
Los valores direccionales codificados, las relaciones de energía, los valores de coherencia se combinan para generar los metadatos codificados como se muestra en la figura 3 por la etapa 305.
Con respecto a la figura 4 se muestra un codificador 209 de coherencia de ejemplo como se muestra en la figura 2. Según la invención, el codificador 209 de coherencia comprende un generador de vector de coherencia 401. El generador de vector de coherencia 401 está configurado para recibir los valores de coherencia 112, que pueden ser representaciones de punto flotante de 8 bits entre 0 y 1.
El de vector de coherencia 401 está configurado para cada subbanda para generar un vector de valores de coherencia. Por lo tanto, en el ejemplo donde hay M bloques de tiempo-frecuencia, entonces el generador de vector de coherencia 401 está configurado para generar un vector dimensional M de datos de coherencia 402.
El vector de datos de coherencia 402 se emite al transformador de coseno discreto 403.
El codificador de coherencia 209 comprende el transformador de coseno discreto. El transformador de coseno discreto está configurado para recibir el vector de datos de coherencia dimensional M 402 y la transformación de coseno discreto (DCT) el vector.
Se puede implementar cualquier método adecuado para realizar una DCT. Por ejemplo, en algunas realizaciones donde el vector comprende un vector 4 dimensional de coherencia correspondiente a una subbanda. Entonces, el vector x = (x1, X2, X3, X4)' la multiplicación de matriz con la matriz DCT del orden 4 es equivalente a:
’ 0.5 (a 4- b) '
y = DCT{x) = 0.6533 c 0.2706 d
0.5(a — b)
.0.2706 c - 0.6533 d.
donde
a= X1 X2
<b>=<X2>+<X3>
<c>=<X1>-<X4>
d=<X2>+<X3>
Esto reduce el número de operaciones para la transformación DCT de 28 a 14.
El vector de coherencia de DCT 404 se envía entonces al codificador de vectores 405.
El codificador de coherencia 209 comprende un codificador de vectores 405. El codificador de vectores 405 está configurado para recibir el vector de coherencia de DCT 404 y codificar el mismo usando un libro de códigos adecuado. El codificador de vectores 405 comprende un determinador de libro de códigos 415. El determinador de libro de códigos está configurado para recibir la relación de energía codificada/cuantificada 412 y la varianza del acimut 414 cuantificado (que puede determinarse a partir del codificador de relación de energía y el codificador de dirección como se muestra en la figura 2) y determinar un libro de códigos adecuado para aplicar a los valores de vector de coherencia de DCT.
En algunas realizaciones, la codificación del primer parámetro DCT se implementa de manera diferente a la codificación de los parámetros de DCT adicionales. Esto se debe a que los parámetros de DCT primero y adicional tienen distribuciones significativamente diferentes. Además, la distribución del primer parámetro DCT también depende de dos factores: el valor de la relación de energía para la subbanda actual y la varianza del acimut dentro de la subbanda actual.
En algunas realizaciones (y como se discutió anteriormente) se usan 3 bits para codificar cada valor de relación de energía y solo se genera y transmite un valor promedio ponderado por subbanda (y/o almacena). Esto significa que el valor de relación de energía cuantificado es el mismo para todos los bloques TF de una subbanda dada.
Además, la varianza del acimut influye en la distribución del primer parámetro DCT basándose en si la varianza del acimut cuantificado dentro de la subbanda es muy pequeña (bajo un umbral determinado) o mayor que el umbral. En algunas realizaciones, se selecciona un número de subbandas I_N. Por ejemplo, en algunas realizaciones I_N = 3. En tales realizaciones, las subbandas hacia el límite de subbanda seleccionado se codifican usando un primer número de parámetros de DCT secundarios y las subbandas restantes codificadas usando un segundo número de parámetros de DCT secundarios. El primer número en algunas realizaciones es 1 y el segundo número es 2. En otras palabras, en algunas realizaciones, el codificador vectorial está configurado de tal manera que las subbandas<= I_N codificar los 2 primeros componentes del vector de transformada DCT (uno primario y otro secundario) y las subbandas>I_N codifican los 3 primeros componentes del vector de transformada DCT (un primario y dos secundarios). Estos dos componentes adicionales pueden codificarse con un cuantificador vectorial bidimensional o, podrían añadirse como dimensiones adicionales al cuantificador vectorial N-dimensional de los segundos parámetros DCT y usar un cuantificador vectorial N+ 2 dimensional para la codificación de todos los parámetros secundarios a una vez.
La visión general de la codificación del parámetro de coherencia se muestra en un diagrama de flujo, figura 6.
La primera operación obtiene los valores del parámetro de coherencia como se muestra en la figura 6 por la etapa 501.
Habiendo obtenido los valores de parámetros de coherencia para el fotograma, la siguiente operación es generar vectores de coherencia dimensional M para cada subbanda como se muestra en la figura 6 por la etapa 503.
Los vectores de coherencia dimensional M se transforman luego usando una transformación de coseno discreto (DCT), como se muestra en la figura 6 por la etapa 505.
A continuación, las representaciones DCT se clasifican en subbandas por debajo del valor de selección de subbanda determinado y por encima del valor como se muestra en la figura 6 etapa 507. En otras palabras, determinar si una subbanda actual que se procesa es menor o igual que I_N o más de I_N.
Las representaciones DCT para vectores de coherencia dimensional M para subbandas menores o iguales a I_N se codifican luego codificando los primeros 2 componentes del vector de transformada DCT como se muestra en la etapa 509 de la figura 6.
Las representaciones DCT para vectores de coherencia dimensional M para subbandas más de I_N se codifican luego codificando los primeros 3 componentes del vector de transformada DCT como se muestra en la etapa 511 de la figura 6.
Esto puede resumirse como la siguiente forma de pseudocódigo. Para cada subbanda i=1:N
El vector dimensional M de datos de coherencia se transforma en DCT
Si i<=i_N
Codifica los primeros 2 componentes del vector de transformada DCE
De lo contrario
Codifica los 3 primeros componentes del vector de transformada DCT
Finalizar si
Finalizar para
Con respecto a la figura 5 se muestra más detalladamente el codificador de vector 405 según algunas realizaciones, el codificador de vector 405 se muestra recibiendo el vector 404 de coherencia de DCT como una entrada.
El codificador de vector en algunas realizaciones comprende un estimador de codificación de bits de coherencia de propagación de orden de DCT (o primer/primer estimador de parámetro de coherencia de DCT primaria) 451.
El estimador de codificación de bit de coherencia de propagación de orden de DCT 0 (o el primer estimador de parámetro de coherencia de DCT primaria) 451 está configurado para recibir el vector de coherencia 404 de DCT y de este determinar si todos los valores de coherencia son no nulos. Cuando al menos un valor de coherencia no es nulo, el estimador de codificación de bits de coherencia de propagación de orden de DCT 0 está configurado para estimar el número de bits para la codificación del parámetro de DCT de orden 0 para la coherencia de propagación, para una unión que cod Jiiffiiccaa-: |1" &2 ^ 111len- cb_dctO [indexERj]]1 dondeindexanes el índice de la relación de energía cuantificada de la subbandaie len_cb_dct0 [] = {7,6, ,5, ,4, ,44,¿,4,4,3,2}.
Esta estimación se pasa a un determinador de libro de códigos 415.
El codificador de vector puede comprender además en algunas realizaciones un codificador de coherencia de propagación de orden de DCT 1 (y 2 en adelante) 455 (o codificador de parámetro de coherencia de DCT adicional/secundario) 455. El codificador de coherencia de orden 455 de DCT (y 2 en adelante) está configurado para recibir el vector de coherencia 404 de DCT y codifica el parámetro de DCT de orden 1 (y 2 en adelante para las subbandas que codifican parámetros secundarios adicionales) para la coherencia de propagación, usando una codificación de Golomb Rice para los índices de referencia medios de los índices cuantificados. Los índices en algunas realizaciones se obtienen a partir de cuantificación escalar en libros de códigos dependiendo del índice de la subbanda. El número de palabras de código es el mismo para todas las subbandas, por ejemplo, 5 palabras de código.
La salida codificada de los parámetros de coherencia de propagación codificados 1 (y 2 en adelante) se puede preparar para emitir como parte del vector de coherencia codificado 404.
El codificador de vector también puede comprender en algunas realizaciones un codificador de coherencia envolvente 457. El codificador de coherencia envolvente 457 está configurado para recibir los parámetros de coherencia envolvente y codificar el parámetro de coherencia envolvente y calcular el número de bits para la coherencia envolvente. En algunas realizaciones, el codificador de coherencia envolvente 457 está configurado para transmitir un valor de coherencia envolvente por subbanda. De una manera que se describe con respecto a la codificación de la relación de energía, el valor puede obtenerse en algunas realizaciones como un promedio ponderado de los bloques de tiempo-frecuencia de la subbanda, determinándose las ponderaciones por las energías de señal.
En algunas realizaciones, los valores de coherencia envolvente promediados son escalares cuantificados con libros de códigos cuya longitud (número de palabras de código) depende del índice de relación de energía (palabras de código 2,3,4,5,6,8,8,8,8 para los índices: 0,1,2,3,4,5,6,7). Los índices en algunas realizaciones se codifican usando un codificador de Golomb Rice en los valores de eliminación media o mediante codificación conjunta teniendo en cuenta el número de palabras de código utilizadas (en otras palabras, seleccionando la codificación de entropía, tal como codificación de GR, o codificación conjunta basada en cuál codifica el valor como menos bits).
En algunas realizaciones, se determina el número total de bits estimados (para codificar la coherencia de dispersión primaria) y usados (para codificar los parámetros de dispersión secundaria y coherencia circundante) y de este total el número restante de bits disponibles para codificar los parámetros direccionales determinados. Esto, por ejemplo, puede determinarse matemáticamente como
ED=B-(EPSC+SSC+SC+EP)
Donde ED es el número restante de bits disponibles, B el objetivo de bit original, EPSC el número estimado de bits para codificar los parámetros de coherencia de dispersión primaria, SSC el número de bits utilizados para codificar los parámetros de coherencia de propagación secundaria,<s>C el número de bits utilizados para codificar los parámetros de coherencia envolvente, y EP el número de bits utilizados para codificar las relaciones de energía.
El número restante de bits disponibles puede pasarse al codificador de dirección y usarse para determinar el número de bits a usar para codificar los parámetros de dirección de acuerdo con cualquier método de codificación adecuado (por ejemplo, como se mencionó anteriormente).
Además, en algunas realizaciones, el codificador de vector puede comprender además un determinador de libro de códigos 415 como se ha analizado anteriormente. El determinador de libro de códigos 415 en algunas realizaciones está configurado para recibir la estimación del número de bits para codificar el parámetro de coherencia de propagación de orden de DCT 0 y además la relación de energía codificada/cuantificada 412 y la varianza codificada del acimut 414. El determinador de libro de códigos 415 puede a partir de estas entradas determinar un libro de códigos adecuado para la codificación del parámetro de coherencia de propagación de orden de DCT 0. Esta determinación en algunas realizaciones se basa en la relación de energía y el valor de acimut cuantificado (la varianza del valor de acimut cuantificado para la subbanda actual). Si la varianza del acimut para la subbanda es menor que un umbral determinado (por ejemplo, el umbral es 30) se usa un primer libro de códigos determinado, de lo contrario se usa otro libro de códigos determinado. En algunas realizaciones, hay un total de 16 libros de códigos para el coeficiente de DCT de orden 0 (en base a que hay 8 índices para relaciones de energía y 2 posibilidades para la varianza de acimut en relación con el umbral dado).
El libro de códigos seleccionado se pasa a un codificador de coherencia de propagación de orden de DCT 453. Además, en algunas realizaciones, el codificador vectorial puede comprender además un codificador de coherencia de propagación de orden de DCT 453. El codificador de coherencia de propagación de orden de DCT 453 que ha recibido el libro de códigos determinado y el vector de coherencia de DCT está configurado para usar el libro de códigos para codificar la coherencia de propagación de orden de DCT 0 y pasar esto a ser emitido como el vector de coherencia codificada 404.
Con respecto a la figura 7 se muestra un diagrama de flujo del método para la codificación de los parámetros de relación de energía y los parámetros de dirección (como se muestra en la izquierda de la línea discontinua) y los parámetros de coherencia (a la derecha de la línea discontinua) según algunas realizaciones.
En algunas realizaciones, las relaciones de energía se codifican usando 3 bits por valor y mediante el uso de un método de cuantificación escalar optimizado (SQ) como se muestra en la figura 7 por la etapa 601.
Entonces, si al menos un valor de coherencia no es nulo, entonces el número de bits para la codificación del parámetro DCT del orden 0 para la coherencia dispersada se estima como se muestra en la figura 7 por la etapa 603. De lo contrario, si la salida es todo cero, entonces simplemente envía un bit para señalizar que el valor es cero.
Además, el procedimiento puede comprender codificar el parámetro de DCT de orden 1 para la coherencia de propagación, usando una codificación de Golomb Rice para los índices de retirada medios de los índices cuantificados como se muestra en la figura 7 por la etapa 605. Los índices descritos anteriormente pueden obtenerse en algunas realizaciones de cuantificación escalar en libros de códigos dependiendo del índice de la subbanda. El número de palabras de código es el mismo para todas las subbandas (por ejemplo 5).
Además, en algunas realizaciones, el método comprende además codificar y calcular el número de bits para la coherencia circundante como se muestra en la figura 7 por la etapa 607. En algunas realizaciones como se discutió anteriormente, un valor de coherencia envolvente se transmite por subbanda. Además, en algunas realizaciones, el valor se obtiene, de una manera similar al método usado para la relación de energía como en la etapa 601, como un promedio ponderado de los bloques de tiempo-frecuencia de la subbanda, siendo las ponderaciones las energías de señal. Los valores de coherencia envolvente promediados son entonces escalares cuantificados con libros de códigos cuya longitud (número de palabras de código) depende del índice de relación de energía (2,3,4,5,6,8,8,8,8 palabras de código para los índices: 0,1,2,3,4,5,6,7). Los índices están codificados por Golomb Rice codificado en los valores de eliminación media o mediante codificación conjunta teniendo en cuenta el número de palabras de código utilizadas.
En algunas realizaciones, el método comprende calcular el número restante de bits para codificar los parámetros de dirección como se muestra en la figura 7 por la etapa 609.
Habiendo determinado el número restante de bits para codificar los parámetros de dirección, entonces los parámetros de dirección se codifican como se muestra en la figura 7 por la etapa 611.
Además, el método comprende codificar el coeficiente de DCT de orden 0 para la coherencia de propagación, usando un libro de códigos dependiente de la relación de energía y el valor de acimut cuantificado (la varianza del valor de acimut cuantificado para la subbanda actual) como se muestra en la figura 7 por la etapa 613. Esta determinación puede basarse en seleccionar uno u otro de dos libros de códigos posibles para un intervalo de valores de relación de energía, la selección se basa en la varianza del acimut para que la subbanda sea menor (o mayor) que un valor umbral. De tal manera, puede haber un total de 16 libros de códigos para el coeficiente de DCT de orden 0 (8 índices para relaciones de energía y 2 posibilidades para la varianza de acimut en relación con el umbral dado).
Esta operación puede representarse en código mediante lo siguiente
static short quatize_coherence(IVAS_MASA_QDIRECTION* q_direction,
unsigned char coding_subbands
unsigned char no_directions,
short all_coherence_zero,
short maz_bits coherence,
IVAS_MASA_METADATA_FRAME* metadata,
short write_flag,
int * first_pos)
{
short i, j, k;
float dct_coh[MASA_MAXIMUM_CODING_SUBBANDS][MASA_SUBFRAMES]; unsigned short idx_dct[MASA_SUBFRAMES*MASA_MAXIMUM_CODING_SUBBANDS]; short nbits;
int no_cb;
short no_cb_vec[MASA_MAXIMUM_CODING_SUBBANDS];
short bits_surround_coh;
if (all_coherence_zero == 1)
{
nibits = 0;
return nbits;
}
else
{
for (i = 0; i < no_directions; i++
{
k = 0;
no_cb = 1;
for (j = 0; j < coding_subbands; j++)
{
/* DCT transform */
dct4_transform(q_direction[i].spread_coherence[j],
dct_coh[j]);
if (write_flag)
{
/* quantize first DCT parameter */
dct_coh[j][0] = quantize_DCT_0_coh(dct_coh[j][0], j,
coherence_cb0, DELTA_AZI_DCT0. NO_CV_COH, &q_direction[i], &idx_dct[k], &no_cb_vec[j]);
}
no_cb *= len_cb_dct0[q_direction->energy_ratio_index[j][0]];
idx_dct[k coding_subbands] = quantize_sq(dct_coh[j][1],
&coherence_cb1[j * NO_CV_COH1], NO_CV_COH1, &dct_coh[j][1 ]);
k++;
/* pick second DCT parameter for quantization */
/*vec_dct_coh1[j] = dct_coh[j][1 ];*/
if (j > 2)
{
dct_coh[j][2] = 0.0f; /* dct_coh[j][2]; */
}
else
{
dct_coh[j][2] = 0.0f;
}
dct_coh[j][3] = 0.0f;
}
if (write_flag)
{
for (j = 0; j < coding_subbands; j++)
{
/* inverse DCT transform */
invdct4_transform(dct_coh[j],
q_direction[i].spread_coherence[j]);
}
}
/* encode indexes and write bitstream */
nbits = ceilf(logf((float)no_cb)*INV_LOG2);
if (write_flag)
{
nbits = encode_coherence_indexesDCT0(idx_dct,
coding_subbands, no_cb_vec, metadata, *first_pos);
}
else
{
*first_pos = metadata->bit_pos;
metadata->bit_pos = nbits;
nbits =
encode_coherence_indexesDCT 1 (&idx_dct[coding_subbands], coding_subbands, no_cb_vec, metadata);
}
}
if (write_flag == 0)
{
bits_surround_coh = max_bits_coherence - nbits;
if (bits_surround_coh < MIN_BITS_SURR_COH)
{
bits_surround_coh = 0;
}
else
{
/* encode surround coherence */
bits_surround_coh =
encode_surround_coherence(bits_surround_coh, q_direction, coding_subbands, no_directions, all_coherence_zero, metadata);
}
/* output number of bits */
return nbits bits_surround_coh;
}
else
{
return nbits;
}
}
}
static short encode_coherence_indexesDCT0(unsinged short* idx_dct, short leo, short* no_cb_vec, IVAN_MASA_METADATA_FRAME* metadata, int first_pos) {
short nbits = 0;
short i;
int no_cb;
unsigned short idx;
/* calcúlate bits for dct0 components with joint encoding */
no_cb = no_cb_vec[0];
for (i = 1; i < len; i++)
{
no_cb *= no_cb_vec[i];
}
nbits = ceilf(logf((float)no_cb)*INV_LOG_2);
/* create combined index */
idx = create_combined_index(idx_dct, len, no_cb_vec);
/* write combined index */
first_pos = write_in_bit_buff(metadata->bit_buffer, idx, first_pos,
nbits);
return nbits;
}
static short encode_coherence_indexesDCT1(unsigned short* idz_dct, short len, short* no_cb_vec, IVAS_MASA_METADATA_FRAME* metadata)
{
short nbits = 0;
short i;
short GR_ord;
short av;
short data, bits_GR;
unsigned short me_idx_dct[MASA_MAXIMUM_CODING_SUBBANDS];
GR_ord = 0;
bits_GR = mean_removed_GR(idx_dct, len, 0, &GR_ord, &av, metadata, mr_idx_dct);
for (i = 0; i < len; i++)
{
data = GR_data(mr_idx_dct[i], GR_ord, &bits_GR, 0);
nbits = bits_GR;
metadata->bit_pos = write_in_bit_buff(metadata->bit_buffer, data, metadata->bit_pos, bits_GR);
}
nbits = len_huf[av];
metadata->bit_pos = write_in_bit_buff(metadata->bit_buffer, huff_code_av[av], metadata->bit_pos, len-huf[av]);
return nbits;
}
static short mean_removed_GR(unsigned short* idx,
short len,
short adapt_GR,
short* GR_ord,
short* p_av,
IVAS_MASA_METADATA_FRAME* metadata,
unsigned short * mr_idx)
{
short av, i, nbits;
short sh_idx[5];
av = (short)roundf(sum_s((short*) idz, len) / (float)len);
*p_av = av:
for (i = 0; i < len; i++)
{
sh_idx[i] = idx[i] - av;
}
for (i = 0; i < len: i++)
{
if (sh_idx[i] < 0)
{
sh_idx[i] = -2*sh_idx[i];
}
else if (sh_idx[i] > 0)
{
sh_idx[i] = sh_idx[i] * 2 - 1;
}
else
{
sh_idx[i] = 0;
}
mr_idz[i] = (unsigned short)sh_idx[i]
}
nbit = GR bits(mr_idz, len, *GR_ord, adapt_GR, GR_ord);
return nbits;
}
Con respecto a la figura 8 se muestra un extractor de metadatos 137 de ejemplo como parte del decodificador 133 desde el punto de vista de la extracción y decodificación de los valores de coherencia según la invención.
En algunas realizaciones, el flujo de datos codificado se pasa a un demultiplexor. El demultiplexor extrae los índices de dirección codificados, los índices de relación de energía y los índices de coherencia y también puede extraer en algunas realizaciones las otras señales de audio de transporte y metadatos (no mostradas).
Los índices de relación de energía pueden decodificarse por un decodificador de relación de energía para generar las relaciones de energía para el fotograma realizando la inversa de la codificación de las relaciones de energía implementadas por el codificador de relación de energía. Además, el índice de relación de energía se pasa a un generador de vector de DCT de coherencia (y a un determinador de libro de códigos 815).
Los índices de dirección son decodificados por un decodificador de dirección configurado para realizar la inversa de la codificación de los valores de dirección implementados por el codificador de dirección. Según la invención, que ha decodificado los valores de dirección una varianza de los valores de acimut se determina y emite al generador de vector de coherencia DCT (y a un determinador de libro de códigos 815).
El extractor de metadatos 137 comprende un generador de vector DCT 801 de coherencia (y un determinador de libro de códigos 815). El generador de vector DCT 801 de coherencia está configurado para recibir los valores de coherencia 800 codificados y además recibir la relación de energía codificada 815 y la varianza de los valores de acimut 814 (decodificados). Basándose en estos valores, se selecciona o determina un libro de códigos (por ejemplo, el determinador de libro de códigos 815 puede ser el mismo que el determinador de libro de códigos 415 del codificador de coherencia 209).
Habiendo determinado un libro de códigos, el índice de coherencia codificado recibido se decodifica a continuación usando el inverso de los métodos de codificación utilizados en el codificador de coherencia para generar un vector de coherencia DCT 802 adecuado para los valores de coherencia de propagación y los valores de coherencia envolvente. El vector de coherencia DCT 802 se pasa a continuación a un transformador de coseno discreto inverso 803.
El extractor de metadatos 137 comprende un transformador de coseno inverso 803. El transformador de coseno discreto inverso 803 está configurado para recibir el vector de coherencia DCT 802 (decodificada) y generar un vector de coherencia 804 que se emite al decodificador de vector 805.
El extractor de metadatos 137 comprende decodificador de vector 805. El decodificador de vector 805 está configurado para recibir el vector de coherencia decodificado 804 y el extracto de los parámetros de coherencia 806 para la subbanda.
Con respecto a la figura 9 se muestra un diagrama de flujo del método para la decodificación de los parámetros de coherencia extendida.
La primera operación es obtener (por ejemplo, recibir o recuperar) valores de coherencia extendida codificados como se muestra en la figura 9 por la etapa 901.
Habiendo obtenido los valores de coherencia extendida codificados, entonces la siguiente operación es para (cada) subbanda: Leer un primer índice de parámetro de coherencia de dispersión DCT (parámetro de DCT primario) como se muestra en la figura 9 por la etapa 903.
Aunque no se muestra en la figura 9 además de obtener los valores de coherencia de dispersión codificados, se obtienen los valores de coherencia envolvente codificados, las relaciones de energía codificadas y los valores de acimut y de elevación codificados.
Las relaciones de energía codificadas y el valor de acimut y de elevación codificado se decodifican aplicando el inverso del proceso de codificación realizado en el codificador. Las relaciones de energía se decodifican primero. El número de bits utilizados para los índices de DCT de coherencia de propagación se conoce basándose en los valores de relación de energía. Los índices transmitidos para codificar los parámetros DCT de orden cero de la coherencia extendida son primero leídos y pueden decodificarse solo después de la decodificación de los valores de acimut.
Además, el valor de coherencia envolvente codificado se decodifica basándose en la aplicación de la inversa del proceso de codificación en el codificador. Esto implica, por ejemplo, seleccionar un libro de códigos adecuado basándose en el valor de relación de energía.
La siguiente operación es determinar un libro de códigos para un primer parámetro de coherencia de dispersión DCT basándose en la relación de energía cuantificada y la varianza cuantificada decodificada del acimut. Habiendo determinado el libro de códigos, el primer índice de parámetro de coherencia de dispersión de DCT se decodifica como se muestra en la figura 9 por la etapa 905.
La siguiente operación es determinar si la subbanda actual que se decodifica es menor o igual que el valor de subbanda usado en el codificador (I_N) como se muestra en la figura 9 por la etapa 907.
Cuando la subbanda actual que se decodifica es menor o igual que el valor de subbanda usado en el codificador (I_N), entonces el siguiente parámetro de coherencia de dispersión de DCT (primer secundario) se lee y decodifica usando la inversa de la codificación implementada en el codificador como se muestra en la figura 9 por la etapa 909.
Cuando la subbanda actual que se decodifica es más que el valor de subbanda usado en el codificador (I_N), entonces los siguientes dos parámetros de coherencia de dispersión de DCT de DCT (primero y segundo secundario) se leen y decodifican usando la inversa de la codificación implementada en el codificador como se muestra en la figura 9 por la etapa 911.
Habiendo decodificado dos (o tres) parámetros DCT, la siguiente operación es realizar una DCT inversa en los parámetros para generar un vector decodificado como se muestra en la figura 9 por la etapa 913.
El vector decodificado puede leerse entonces como valores de coherencia de dispersión de bloque de tiempofrecuencia para la subbanda. La siguiente operación está comprobando si todas las subbandas han sido decodificadas a continuación en la figura 9 por la etapa 915.
Cuando hay otra subbanda para decodificarse, la operación puede volver a pasar a la etapa 903.
Cuando todas las subbandas se decodifican, entonces la siguiente decodificación de fotograma puede iniciarse como se muestra en la figura 9 por la etapa 917 (en otras palabras, la operación vuelve a la etapa 901).
Con respecto a la Figura 10, se muestra un dispositivo electrónico de ejemplo que puede usarse como dispositivo de análisis o síntesis. El dispositivo puede ser cualquier dispositivo o aparato electrónico adecuado. Por ejemplo, en algunas realizaciones, el dispositivo 1400 es un dispositivo móvil, un equipo de usuario, un ordenador de tipo tableta, un ordenador, un aparato de reproducción de audio, etc.
En algunas realizaciones, el dispositivo 1400 comprende al menos un procesador o unidad 1407 de procesamiento central. El procesador 1407 puede estar configurado para ejecutar diversos códigos de programa tales como los métodos tales como los descritos en la presente memoria.
En algunas realizaciones, el dispositivo 1400 comprende una memoria 1411. En algunas realizaciones, el al menos un procesador 1407 está acoplado a la memoria 1411. La memoria 1411 puede ser cualquier medio de almacenamiento adecuado. En algunas realizaciones, la memoria 1411 comprende una sección de código de programa para almacenar códigos de programa que pueden implementarse en el procesador 1407. Además, en algunas realizaciones, la memoria 1411 puede comprender además una sección de datos almacenados para almacenar datos, por ejemplo datos que se han procesado o que van a procesarse según las realizaciones como se describe en la presente memoria. El código de programa implementado almacenado dentro de la sección de código de programa y los datos almacenados dentro de la sección de datos almacenados pueden recuperarse por el procesador 1407 siempre que sea necesario a través del acoplamiento de memoria-procesador.
En algunas realizaciones, el dispositivo 1400 comprende una interfaz 1405 de usuario. En algunas realizaciones, la interfaz 1405 de usuario puede estar acoplada al procesador 1407. En algunas realizaciones, el procesador 1407 puede controlar el funcionamiento de la interfaz 1405 de usuario y recibir entradas de la interfaz 1405 de usuario. En algunas realizaciones, la interfaz 1405 de usuario puede permitir que un usuario introduzca comandos al dispositivo 1400, por ejemplo, a través de un teclado. En algunas realizaciones, la interfaz 1405 de usuario puede permitir que el usuario obtenga información a partir del dispositivo 1400. Por ejemplo, la interfaz 1405 de usuario puede comprender un elemento de visualización configurado para visualizar información del dispositivo 1400 al usuario. En algunas realizaciones, la interfaz 1405 de usuario puede comprender una pantalla táctil o una interfaz táctil que puede tanto permitir introducir información al dispositivo 1400 como visualizar adicionalmente información al usuario del dispositivo 1400. En algunas realizaciones, la interfaz 1405 de usuario puede ser la interfaz de usuario para comunicarse con el determinador de posición como se describe en la presente memoria.
En algunas realizaciones, el dispositivo 1400 comprende un puerto 1409 de entrada/salida. En algunas realizaciones, el puerto 1409 de entrada/salida comprende un transceptor. En tales realizaciones, el transceptor puede estar acoplado al procesador 1407 y configurado para permitir una comunicación con otros aparatos o dispositivos electrónicos, por ejemplo, a través de una red de comunicación inalámbrica. En algunas realizaciones, el transceptor o cualquier transceptor o medios de transmisor y/o receptor adecuado puede estar configurado para comunicarse con otros dispositivos o aparatos electrónicos a través de un cable o acoplamiento por cable.
El transceptor puede comunicarse con un aparato adicional mediante cualquier protocolo de comunicaciones conocido adecuado. Por ejemplo, en algunas realizaciones, el transceptor puede usar un protocolo de universal mobile telecommunications system (sistema universal de telecomunicaciones móviles - UMTS), un protocolo de wireless local area network (red de área local inalámbrica - WLAN) tal como por ejemplo IEEE 802.X, un protocolo de comunicación de radiofrecuencia de corto alcance adecuado tal como Bluetooth, o infrared data communication pathway (ruta de comunicación de datos por infrarrojos - IRDA).
El puerto 1409 de entrada/salida del transceptor puede estar configurado para recibir las señales y, en algunas realizaciones, determinar los parámetros como se describe en la presente memoria mediante el uso del procesador 1407 que ejecuta un código adecuado. Además, el dispositivo puede generar una salida de señal de mezcla descendente y de parámetros adecuada que va a transmitirse al dispositivo de síntesis.
En algunas realizaciones, el dispositivo 1400 puede emplearse como al menos parte del dispositivo de síntesis. Como tal, el puerto 1409 de entrada/salida puede estar configurado para recibir las señales de mezcla descendente y, en algunas realizaciones, los parámetros determinados en el dispositivo de captación o dispositivo de procesamiento como se describe en la presente memoria, y generar una salida de formato de señal de audio adecuada mediante el uso del procesador 1407 que ejecuta un código adecuado. El puerto 1409 de entrada/salida puede acoplarse a cualquier salida de audio adecuada, por ejemplo, a un sistema de altavoces de múltiples canales y/o auriculares o similar.
En general, las diversas realizaciones de la invención pueden implementarse en hardware o circuitos de propósito especial, software, lógica o cualquier combinación de los mismos. Por ejemplo, algunos aspectos pueden implementarse en hardware, mientras que otros aspectos pueden implementarse en firmware o software que puede ejecutarse por un controlador, microprocesador u otro dispositivo informático, aunque la invención no se limita a los mismos. Aunque diversos aspectos de la invención pueden ilustrarse y describirse como diagramas de bloques, diagramas de flujo, o usando alguna otra representación gráfica, se entiende que estos bloques, aparatos, sistemas, técnicas o métodos descritos en la presente memoria pueden implementarse, como ejemplos no limitativos, en hardware, software, firmware, circuitos o lógica de propósito especial, hardware de propósito general o controlador u otros dispositivos informáticos, o alguna combinación de los mismos.
Las realizaciones de esta invención pueden implementarse mediante software informático ejecutable por un procesador de datos del dispositivo móvil, tal como en la entidad de procesador, o mediante hardware, o mediante una combinación de software y hardware. Además, en este sentido, cabe señalar que cualesquiera bloques del flujo lógico como en las Figuras puede representar pasos del programa, o circuitos lógicos interconectados, bloques y funciones, o una combinación de pasos de programa y circuitos lógicos, bloques y funciones. El software puede almacenarse en medios físicos tales como chips de memoria, o bloques de memoria implementados dentro del procesador, medios magnéticos tales como disco duro o disquetes, y medios ópticos tales como, por ejemplo, DVD y sus variantes de datos, CD.
La memoria puede ser de cualquier tipo adecuado para el entorno técnico local y puede implementarse usando cualquier tecnología de almacenamiento de datos adecuada, tal como dispositivos de memoria basados en semiconductores, dispositivos y sistemas de memoria magnéticos, dispositivos y sistemas de memoria ópticos, memoria fija y memoria extraíble. Los procesadores de datos pueden ser de cualquier tipo adecuado para el entorno técnico local, y pueden incluir uno o más de ordenadores de propósito general, ordenadores de propósito especial, microprocesadores, digital signal processors (procesadores de señales digitales - DSP), application specific integrated circuits (circuitos integrados específicos de aplicación - ASIC), circuitos de nivel de puerta y procesadores basados en arquitectura de procesador de múltiples núcleos, como ejemplos no limitativos.
Las realizaciones de las invenciones pueden ponerse en práctica en diversos componentes tales como módulos de circuito integrado. El diseño de circuitos integrados es, en gran medida, un proceso altamente automatizado. Hay herramientas de software complejas y potentes disponibles para convertir un diseño de nivel lógico en un diseño de circuito de semiconductores listo para grabarse y formarse en un sustrato semiconductor.
Los programas, tales como los proporcionados por Synopsys, Inc. de Mountain View, California y Cadence Design, de San Jose, California, enrutan automáticamente conductores y localizan componentes en un chip de semiconductor usando reglas de diseño bien establecidas, así como bibliotecas de módulos de diseño previamente almacenados. Una vez que se ha completado el diseño para un circuito de semiconductor, el diseño resultante, en un formato electrónico normalizado (p. ej., Opus, GDSII o similar) puede transmitirse a una instalación de fabricación de semiconductores o “ fab” para su fabricación.
La descripción anterior ha proporcionado, a modo de ejemplo y como ejemplos no limitativos, una descripción completa e informativa de la realización ilustrativa de esta invención. Sin embargo, diversas modificaciones y adaptaciones pueden resultar evidentes para los expertos en las técnicas relevantes a la vista de la descripción anterior, cuando se lee junto con los dibujos adjuntos y las reivindicaciones adjuntas. Sin embargo, todas estas modificaciones y similares de las enseñanzas de la presente invención seguirán estando dentro del alcance de la presente invención como se define en las reivindicaciones adjuntas.

Claims (12)

REIVINDICACIONES
1. Un aparato (1400) que comprende medios para:
recibir valores para subbandas de un fotograma de señal de audio, comprendiendo los valores al menos un valor de acimut, al menos un valor de elevación (108), al menos un valor de relación de energía (110) y al menos un valor de coherencia de propagación y/o envolvente (112) para cada subbanda;
determinar un libro de códigos (415) para codificar al menos un valor de coherencia de propagación y/o envolvente (112) para cada subbanda basándose en el al menos un valor de relación de energía (110) y una varianza del al menos un valor (414) de acimut para cada subbanda para un fotograma; realizar la transformada de coseno discreta (403) de al menos un vector, comprendiendo el al menos un vector el al menos un valor de coherencia de propagación y/o envolvente para una subbanda para el fotograma (402); y
codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado (405).
2. El aparato según la reivindicación 1, donde los medios para determinar un libro de códigos para codificar al menos un valor de coherencia para cada subbanda basándose en el al menos un valor de relación de energía y la varianza del al menos un valor de acimut para cada subbanda para un fotograma es además para:
obtener un índice que representa un promedio ponderado del al menos un valor de relación de energía para cada subbanda para el fotograma;
determinar si una medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado; y
seleccionar el libro de códigos basándose en el índice y determinar si una medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado.
3. El aparato según la reivindicación 2, donde los medios para seleccionar el libro de códigos basándose en el índice y la determinación de si una medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado es además para seleccionar un número de palabras de código para un libro de códigos basado en el índice.
4. El aparato según cualquiera de las reivindicaciones 1 a 3, donde los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado son además para:
determinar el primer número de componentes del vector de transformada de coseno discreto dependiente de la subbanda;
codificar un primer componente del primer número de los componentes del vector de transformada en coseno discreta basándose en el libro de códigos (453).
5. El aparato según la reivindicación 4, donde los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado son además para:
determinar un libro de códigos (415) para realizar la cuantificación escalar basándose en un índice de una subbanda, comprendiendo cada libro de códigos un número determinado de palabras de código;
generar al menos un índice adicional para el resto de los componentes del primer número de los componentes de vector de transformada de coseno discreta basándose en el libro de códigos determinado;
generar un índice medio eliminado basado en el al menos un índice adicional para el resto de los componentes del primer número de los componentes del vector de transformada en coseno individual; y
entropía que codifica el índice de eliminación medio.
6. El aparato según la reivindicación 4, donde los medios para codificar un primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado son además para:
determinar al menos un índice adicional para el resto de los componentes del primer número de componentes de vector de transformada de coseno discreta basándose en un libro de códigos con un número definido de palabras de código, estando el libro de códigos además basado en un índice de subbanda del vector;
determinar un índice de eliminación medio basado en el al menos un índice adicional para el resto de los componentes del primer número de los componentes del vector de transformada de coseno discreta; y
entropía que codifica el índice de eliminación medio.
7. El aparato de acuerdo con cualquiera de las reivindicaciones 5 y 6, donde los medios para codificar por entropía el índice medio extraído son además para Golomb-Rice que codifica el índice de eliminación medio.
8. El aparato según cualquiera de las reivindicaciones 1 a 7, donde el aparato comprende además medios para realización la cuantificación escalar del al menos un valor de relación de energía, para generar al menos un índice de relación de energía adecuado para determinar el libro de códigos para codificar al menos un valor de coherencia para cada subbanda.
9. El aparato según la reivindicación 8 cuando depende de la reivindicación 5 o 6, donde los medios son además para:
estimar un número de bits restantes para codificar el al menos un valor de acimut y al menos un valor de elevación basándose en un número objetivo de bits, una estimación de un número de bits para codificar el primer número de componentes del vector de transformada de coseno discreta basándose en el libro de códigos determinado antes de la codificación, un número de bits que representan el al menos un índice de relación de energía, y un número de bits que representan la codificación de entropía del índice de eliminación medio;
codificar el al menos un valor de acimut y al menos un valor de elevación para generar al menos un índice de acimut y al menos un índice de elevación basándose en el número de bits restantes, donde la determinación del libro de códigos para codificar al menos un valor de coherencia para cada subbanda se basa en el al menos un índice de acimut
10. Un aparato (1400) que comprende medios para:
obtener valores codificados para subbandas de un fotograma de una señal de audio, comprendiendo los valores al menos un índice de acimut, al menos un índice de elevación al menos un índice de relación de energía y al menos un índice de coherencia de propagación y/o envolvente para cada subbanda;
decodificar el al menos un índice de acimut para dar al menos un valor de acimut; determinar un libro de códigos (815) para decodificar el al menos un índice de coherencia de propagación y/o envolvente (800) para cada subbanda basándose en el al menos un índice de relación de energía (812) y una varianza del al menos un valor de acimut (814);
realizar la transformada en coseno discreto (803) inverso del al menos un índice (802) de coherencia de propagación y/o envolvente para generar al menos un vector (804), comprendiendo el al menos un vector el al menos un valor de coherencia de propagación y/o envolvente para una subbanda para el fotograma; y
analizar el vector (805) para generar al menos un valor de coherencia de propagación y/o envolvente para cada subbanda (806).
11. El aparato según la reivindicación 10, donde los medios para determinar un libro de códigos para decodificar el al menos un índice de coherencia de propagación y/o envolvente para cada subbanda basándose en el al menos un índice de relación de energía y la varianza del al menos un valor de acimut es además para:
determinar si una medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado; y
seleccionar el libro de códigos basándose en el al menos un índice de relación de energía y determinar si la medida de la varianza del al menos un valor de acimut para la subbanda para un fotograma es mayor o igual que un valor umbral determinado.
12. El aparato según la reivindicación 11, donde los medios para seleccionar el libro de códigos basándose en el al menos un índice de relación de energía y la determinación de si la medida de la varianza del al menos un valor de acimut para una subbanda para un fotograma es mayor o igual que un valor umbral determinado es además para seleccionar un número de palabras de código para el libro de códigos basándose en el al menos un índice de relación de energía.
ES19878287T 2018-10-31 2019-10-01 Determinación de codificación de parámetros de audio espacial y decodificación asociada Active ES2968494T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1817807.9A GB2578603A (en) 2018-10-31 2018-10-31 Determination of spatial audio parameter encoding and associated decoding
GBGB1903850.4A GB201903850D0 (en) 2019-03-21 2019-03-21 Determination of spatial audio parameter encoding and associated decoding
PCT/FI2019/050704 WO2020089510A1 (en) 2018-10-31 2019-10-01 Determination of spatial audio parameter encoding and associated decoding

Publications (1)

Publication Number Publication Date
ES2968494T3 true ES2968494T3 (es) 2024-05-09

Family

ID=70462154

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19878287T Active ES2968494T3 (es) 2018-10-31 2019-10-01 Determinación de codificación de parámetros de audio espacial y decodificación asociada

Country Status (9)

Country Link
US (1) US12009001B2 (es)
EP (1) EP3874492B1 (es)
JP (1) JP7213364B2 (es)
KR (1) KR102587641B1 (es)
CN (1) CN112997248A (es)
ES (1) ES2968494T3 (es)
FI (1) FI3874492T3 (es)
PT (1) PT3874492T (es)
WO (1) WO2020089510A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2582749A (en) * 2019-03-28 2020-10-07 Nokia Technologies Oy Determination of the significance of spatial audio parameters and associated encoding
US20200402523A1 (en) * 2019-06-24 2020-12-24 Qualcomm Incorporated Psychoacoustic audio coding of ambisonic audio data
GB2592896A (en) * 2020-01-13 2021-09-15 Nokia Technologies Oy Spatial audio parameter encoding and associated decoding
KR20230119209A (ko) * 2020-12-15 2023-08-16 노키아 테크놀로지스 오와이 공간 오디오 파라미터 양자화
WO2022223133A1 (en) * 2021-04-23 2022-10-27 Nokia Technologies Oy Spatial audio parameter encoding and associated decoding
GB2624874A (en) * 2022-11-29 2024-06-05 Nokia Technologies Oy Parametric spatial audio encoding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US6735254B2 (en) 2001-06-29 2004-05-11 Qualcomm, Inc. DCT compression using Golomb-Rice coding
US7646875B2 (en) 2004-04-05 2010-01-12 Koninklijke Philips Electronics N.V. Stereo coding and decoding methods and apparatus thereof
RU2376655C2 (ru) 2005-04-19 2009-12-20 Коудинг Текнолоджиз Аб Зависящее от энергии квантование для эффективного кодирования пространственных параметров звука
US8090587B2 (en) 2005-09-27 2012-01-03 Lg Electronics Inc. Method and apparatus for encoding/decoding multi-channel audio signal
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
EP2360681A1 (en) 2010-01-15 2011-08-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for extracting a direct/ambience signal from a downmix signal and spatial parametric information
PT3319087T (pt) 2011-03-10 2019-10-09 Ericsson Telefon Ab L M Preenchimento de subvetores não codificados em sinais de áudio codificados por transformada
WO2014174344A1 (en) 2013-04-26 2014-10-30 Nokia Corporation Audio signal encoder
US9854377B2 (en) * 2013-05-29 2017-12-26 Qualcomm Incorporated Interpolation for decomposed representations of a sound field
CN107221334B (zh) 2016-11-01 2020-12-29 武汉大学深圳研究院 一种音频带宽扩展的方法及扩展装置
GB201718341D0 (en) 2017-11-06 2017-12-20 Nokia Technologies Oy Determination of targeted spatial audio parameters and associated spatial audio playback
GB2572761A (en) 2018-04-09 2019-10-16 Nokia Technologies Oy Quantization of spatial audio parameters
GB2575305A (en) 2018-07-05 2020-01-08 Nokia Technologies Oy Determination of spatial audio parameter encoding and associated decoding
GB2577698A (en) 2018-10-02 2020-04-08 Nokia Technologies Oy Selection of quantisation schemes for spatial audio parameter encoding
GB2578603A (en) 2018-10-31 2020-05-20 Nokia Technologies Oy Determination of spatial audio parameter encoding and associated decoding

Also Published As

Publication number Publication date
JP7213364B2 (ja) 2023-01-26
KR20210089184A (ko) 2021-07-15
EP3874492A4 (en) 2022-08-10
WO2020089510A1 (en) 2020-05-07
CN112997248A (zh) 2021-06-18
US12009001B2 (en) 2024-06-11
PT3874492T (pt) 2024-01-09
JP2022509440A (ja) 2022-01-20
US20210407525A1 (en) 2021-12-30
EP3874492B1 (en) 2023-12-06
KR102587641B1 (ko) 2023-10-10
FI3874492T3 (fi) 2024-01-08
EP3874492A1 (en) 2021-09-08

Similar Documents

Publication Publication Date Title
ES2968494T3 (es) Determinación de codificación de parámetros de audio espacial y decodificación asociada
ES2965395T3 (es) Determinación de codificación de parámetros de audio espacial y decodificación asociada
KR102564298B1 (ko) 공간적 오디오 파라미터 인코딩을 위한 양자화 체계의 선택
US11328735B2 (en) Determination of spatial audio parameter encoding and associated decoding
JP7405962B2 (ja) 空間オーディオパラメータ符号化および関連する復号化の決定
CA3212985A1 (en) Combining spatial audio streams
US11475904B2 (en) Quantization of spatial audio parameters
KR20220043159A (ko) 공간 오디오 방향 파라미터의 양자화
GB2578603A (en) Determination of spatial audio parameter encoding and associated decoding
JPWO2020089510A5 (es)
KR20220047821A (ko) 공간 오디오 방향 파라미터의 양자화
WO2022074283A1 (en) Quantisation of audio parameters
WO2020089509A1 (en) Determination of spatial audio parameter encoding and associated decoding
US20240079014A1 (en) Transforming spatial audio parameters
GB2582916A (en) Spatial audio representation and associated rendering