ES2714356T3 - Reconstrucción de vectores descompuestos a partir de señales de audio ambisónicas de orden superior - Google Patents

Reconstrucción de vectores descompuestos a partir de señales de audio ambisónicas de orden superior Download PDF

Info

Publication number
ES2714356T3
ES2714356T3 ES15725955T ES15725955T ES2714356T3 ES 2714356 T3 ES2714356 T3 ES 2714356T3 ES 15725955 T ES15725955 T ES 15725955T ES 15725955 T ES15725955 T ES 15725955T ES 2714356 T3 ES2714356 T3 ES 2714356T3
Authority
ES
Spain
Prior art keywords
vector
vectors
code
unit
code vectors
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
ES15725955T
Other languages
English (en)
Inventor
Moo Young Kim
Nils Günther Peters
Dipanjan Sen
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2714356T3 publication Critical patent/ES2714356T3/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/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks

Landscapes

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

Abstract

Un dispositivo configurado para obtener una pluralidad de coeficientes ambisónicos de orden superior, HOA, representativos de un campo sonoro, con el dispositivo que comprende: uno o más procesadores configurados para: obtener a partir de un flujo de bits datos indicativos de una pluralidad de valores de ponderación que representan un vector, con cada uno de los valores de ponderación correspondiente a una respectiva de una pluralidad de ponderaciones en una suma ponderada de vectores de código que representa el vector, definido el vector en un dominio armónico esférico, y representativo de un componente direccional de un objeto de audio correspondiente presente en el campo sonoro representado por la pluralidad de coeficientes HOA; obtener, a partir del flujo de bits, datos indicativos de cuál de una pluralidad de vectores de código usar para reconstruir el vector; seleccionar un subconjunto de los vectores de código basándose en los datos indicativos de cuál de una pluralidad de vectores de código usar para reconstruir el vector; reconstruir el vector basándose en los valores de ponderación y el subconjunto seleccionado de los vectores de código; y renderizar, basándose en el vector reconstruido, alimentaciones de altavoces para reproducción mediante altavoces para reproducir el campo sonoro; una memoria acoplada al uno o más procesadores, y configurada para almacenar el vector reconstruido.

Description

DESCRIPCION
Reconstruccion de vectores descompuestos a partir de senales de audio ambisonicas de orden superior
[0001] Esta solicitud reivindica el beneficio de las siguientes Solicitudes Provisionales de los Estados Unidos:
Solicitud Provisional de los Estados Unidos Numero 61/994.794, presentada el 16 de mayo de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL
[CODIFICACION DE VECTORES V DE UNA SENAL DE AUDIO AMBISONICA DE ORDEN SUPERIOR (HOA)
DESCOMPUESTA]";
Solicitud Provisional de los Estados Unidos Numero 62/004.128, presentada el 28 de mayo de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Solicitud Provisional de los Estados Unidos Numero 62/019.663, presentada el 1 de julio de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Solicitud Provisional de los Estados Unidos Numero 62/027.702, presentada el 22 de julio de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Solicitud Provisional de los Estados Unidos Numero 62/028.282, presentada el 23 de julio de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL";
Solicitud Provisional de los Estados Unidos Numero 62/032.440, presentada el 1 de agosto de 2014, titulada
"CODING V-VECTORS OF A DECOMPOSED HIGHER ORDER AMBISONICS (HOA) AUDIO SIGNAL".
CAMPO TECNICO
[0002] Esta divulgacion se refiere a datos de audio y, mas especificamente, a la codificacion de datos de audio ambisonicos de orden superior.
ANTECEDENTES
[0003] Una senal ambisonica de orden superior (HOA) (a menudo representada por una pluralidad de coeficientes armonicos esfericos (SHC) u otros elementos jerarquicos) es una representacion tridimensional de un campo sonoro. Esta representacion de HOA o SHC puede representar el campo sonoro de una manera que sea independiente de la geometria del altavoz local utilizado para reproducir una senal de audio multicanal producida a partir de esta senal SHC. Esta senal SHC tambien puede facilitar la compatibilidad inversa, ya que la senal SHC puede reproducirse en formatos multicanal bien conocidos y sumamente adoptados, tales como un formato de canal de audio 5.1 o un formato de canal de audio 7.1. La representacion SHC puede, por lo tanto, permitir una mejor representacion de un campo sonoro que tambien asimila la compatibilidad inversa.
[0004] El documento “WD1-HOA Text of MPEG-H 3D Audio” [Texto WD1-HOA de MPEG-H 3D Audio], 107. REUNION DE MPEG; 13-1-2014 - 17-1-2014; SAN JOSE; (GRUPO DE EXPERTOS DE IMAGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), n.2 N14264, 21 de febrero de 2014 (21-02-2014), XP030021001 divulga cuantificacion y descuantificacion escalar de la representacion de HOA de un campo sonoro.
RESUMEN
[0005] En general, las tecnicas se describen para representar de manera eficiente los vectores v (que pueden representar informacion espacial, como el ancho, la forma, la direccion y la ubicacion de un objeto de audio asociado) de una senal de audio ambisonica de orden superior (HOA) descompuesta basandose en un conjunto de vectores de codigos. Las tecnicas pueden implicar descomponer el vector v en una suma ponderada de vectores de codigos, seleccionar un subconjunto de una pluralidad de ponderaciones y vectores de codigos correspondientes, cuantificar el subconjunto seleccionado de las ponderaciones e indexar el subconjunto seleccionado de vectores de codigos. Las tecnicas pueden proporcionar velocidades de bits mejoradas para la codificacion de senales de audio HOA.
[0006] En un aspecto, un procedimiento para obtener una pluralidad de coeficientes ambisonicos de orden superior (HOA), el procedimiento comprende obtener datos de un flujo de bits, indicativos de una pluralidad de valores de ponderacion que representan un vector que se incluye en una version descompuesta de la pluralidad de coeficientes HOA. Cada uno de los valores de ponderacion corresponde a uno respectivo de una pluralidad de ponderaciones en una suma ponderada de vectores de codigos que representa el vector que incluye un conjunto de vectores de codigos. El procedimiento comprende, ademas, reconstruir el vector basandose en los valores de ponderacion y los vectores de codigos.
[0007] En otro aspecto, un dispositivo configurado para obtener una pluralidad de coeficientes ambisonicos de orden superior (HOA), el dispositivo comprende uno o mas procesadores configurados para obtener datos de un flujo de bits, indicativos de una pluralidad de valores de ponderacion que representan un vector que se incluye en una version descompuesta de la pluralidad de coeficientes HOA. Cada uno de los valores de ponderacion corresponde a uno respectivo de una pluralidad de ponderaciones en una suma ponderada de vectores de codigos que representa el vector y que incluye un conjunto de vectores de codigos. El uno o mas procesadores configurados, ademas, para reconstruir el vector basandose en los valores de ponderacion y los vectores de codigos. El dispositivo tambien comprende una memoria configurada para almacenar el vector reconstruido.
[0008] En otro aspecto, un dispositivo configurado para obtener una pluralidad de coeficientes ambisonicos de orden superior (HOA), el dispositivo comprende medios para obtener datos de un flujo de bits, indicativos de una pluralidad de valores de ponderacion que representan un vector que se incluye en una version descompuesta de la pluralidad de coeficientes HOA, cada uno de los valores de ponderacion correspondientes a una respectiva ponderacion de una pluralidad de ponderaciones en una suma ponderada de vectores de codigos que representa el vector que incluye un conjunto de vectores de codigos, y medios para reconstruir el vector basandose en los valores de ponderacion y los vectores de codigos.
[0009] En otro aspecto, un medio de almacenamiento legible por ordenador no transitorio tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que uno o mas procesadores obtengan datos de un flujo de bits, indicativos de una pluralidad de valores de ponderacion que representan un vector que se incluye en la version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA), cada uno de los valores de ponderacion correspondiente a una ponderacion respectiva de una pluralidad de ponderaciones en una suma ponderada de vectores de codigos que representa el vector que incluye un conjunto de vectores de codigos y reconstruye el vector basandose en los valores de ponderacion y los vectores de codigos.
[0010] En otro aspecto, un procedimiento comprende determinar, basandose en un conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en una version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA), cada uno de los valores de ponderacion correspondiente a una ponderacion respectiva de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
[0011] En otro aspecto, un dispositivo comprende una memoria configurada para almacenar un conjunto de vectores de codigos, y uno o mas procesadores configurados para determinar, basandose en el conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en una version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA), cada uno de los valores de ponderacion correspondiente a una ponderacion respectiva de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
[0012] En otro aspecto, un aparato comprende medios para realizar una descomposicion con respecto a una pluralidad de coeficientes ambisonicos de orden superior (HOA) para generar una version descompuesta de los coeficientes HOA. El aparato comprende, ademas, medios para determinar, basandose en un conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en la version descompuesta de los coeficientes HOA, cada uno de los valores de ponderacion correspondiente a una ponderacion respectiva de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
[0013] En otro aspecto, un medio de almacenamiento legible por ordenador no transitorio tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que uno o mas procesadores determinen, basandose en un conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en una version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA), cada uno de los valores de ponderacion correspondiente a una ponderacion respectiva de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
[0014] En otro aspecto, un procedimiento de descodificacion de datos de audio indicativos de una pluralidad de coeficientes ambisonicos de orden superior (HOA), el procedimiento comprende determinar si se debe realizar una descuantificacion vectorial o una descuantificacion escalar con respecto a una version descompuesta de la pluralidad de coeficientes HOA.
[0015] En otro aspecto, un dispositivo configurado para descodificar datos de audio indicativos de una pluralidad de coeficientes ambisonicos de orden superior (HOA), el dispositivo comprende una memoria configurada para almacenar los datos de audio y uno o mas procesadores configurados para determinar si realizar una descuantificacion vectorial o una descuantificacion escalar con respecto a una version descompuesta de la pluralidad de coeficientes HOA.
[0016] En otro aspecto, un procedimiento para codificar datos de audio, el procedimiento comprende determinar si realizar la cuantificacion vectorial o la cuantificacion escalar con respecto a una version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA).
[0017] En otro aspecto, un procedimiento para descodificar datos de audio, el procedimiento comprende seleccionar uno de una pluralidad de libros de codigos para usar cuando se realiza una descuantificacion vectorial con respecto a una componente espacial cuantificada vectorialmente de un campo sonoro, la componente espacial cuantificada vectorialmente obtenida mediante la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior.
[0018] En otro aspecto, un dispositivo comprende una memoria configurada para almacenar una pluralidad de libros de codigos para usar cuando se realiza una descuantificacion vectorial con respecto a una componente espacial cuantificada vectorialmente de un campo sonoro, la componente espacial cuantificada vectorialmente obtenida mediante la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior y uno o mas procesadores configurados para seleccionar uno de la pluralidad de libros de codigos.
[0019] En otro aspecto, un dispositivo comprende medios para almacenar una pluralidad de libros de codigos para usar cuando se realiza una descuantificacion vectorial con respecto a una componente espacial cuantificada vectorialmente de un campo sonoro, la componente espacial cuantificada vectorialmente obtenida a traves de la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior, y medios para seleccionar uno de la pluralidad de libros de codigos.
[0020] En otro aspecto, un medio de almacenamiento legible por ordenador no transitorio tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que uno o mas procesadores seleccionen uno de una pluralidad de libros de codigos para usar cuando se realiza la descuantificacion vectorial con respecto a una componente espacial cuantificada vectorialmente de un campo sonoro, la componente espacial cuantificada vectorialmente obtenida mediante la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior.
[0021] En otro aspecto, un procedimiento para codificar datos de audio, el procedimiento comprende seleccionar uno de una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida mediante la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior.
[0022] En otro aspecto, un dispositivo comprende una memoria configurada para almacenar una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida a traves de la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior. El dispositivo tambien comprende uno o mas procesadores configurados para seleccionar uno de la pluralidad de libros de codigos.
[0023] En otro aspecto, un dispositivo comprende medios para almacenar una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida a traves de la aplicacion de una síntesis basada en vectores a una pluralidad de coeficientes ambisonicos de orden superior, y medios para seleccionar uno de la pluralidad de libros de codigos.
[0024] En otro aspecto, un medio de almacenamiento legible por ordenador no transitorio tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que uno o mas procesadores seleccionen uno de una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida mediante la aplicacion de una síntesis basada en vectores a una pluralidad de coeficientes ambisonicos de orden superior.
[0025] Los detalles de uno o mas aspectos de las tecnicas se exponen en los dibujos adjuntos y la descripcion a continuacion. Otras caracteristicas, objetos y ventajas de las tecnicas resultaran evidentes a partir de la descripcion y de los dibujos. La invencion se define a partir de las reivindicaciones adjuntas.
BREVE DESCRIPCION DE LOS DIBUJOS
[0026]
La FIG. 1 es un diagrama que ilustra funciones de base armonicas esfericas de varias ordenes y subordenes.
La FIG. 2 es un diagrama que ilustra un sistema que puede realizar diversos aspectos de las tecnicas descritas en esta divulgacion.
Las FIG. 3A y 3B son diagramas de bloque que ilustran, con mas detalle, diferentes ejemplos del dispositivo de codificacion de audio mostrado en el ejemplo de la FIG. 2 que puede realizar diversos aspectos de las tecnicas descritas en esta divulgacion.
Las FIG. 4A y 4B son diagramas de bloque que ilustran diferentes versiones del dispositivo de descodificacion de audio de la FIG. 2 con mas detalle.
La FIG. 5 es un diagrama de flujo que ilustra un funcionamiento a modo de ejemplo de un dispositivo de codificacion de audio en la realizacion de diversos aspectos de las tecnicas de síntesis basadas en vectores descritas en esta divulgacion.
La FIG. 6 es un diagrama de flujo que ilustra un funcionamiento a modo de ejemplo de un dispositivo de descodificacion de audio en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. Las FIG. 7 y 8 son diagramas que ilustran diferentes versiones de la unidad de codificacion de vector V del dispositivo de codificacion de audio de la FIG. 3A o la FIG. 3B con mas detalle.
La FIG. 9 es un diagrama conceptual que ilustra un campo sonoro generado a partir de un vector v.
La FIG. 10 es un diagrama conceptual que ilustra un campo sonoro generado a partir de un modelo de 25.° orden del vector v.
La FIG. 11 es un diagrama conceptual que ilustra la ponderacion de cada orden para el modelo de 25.° orden que se muestra en la FIG. 10.
La FIG. 12 es un diagrama conceptual que ilustra un modelo de 5.° orden del vector v descrito mas arriba con respecto a la FIG. 9.
La FIG. 13 es un diagrama conceptual que ilustra la ponderacion de cada orden para el modelo de 5.° orden mostrado en la FIG. 12.
La FIG. 14 es un diagrama conceptual que ilustra dimensiones de ejemplo de las matrices de ejemplo utilizadas para realizar la descomposicion en valores singulares.
La FIG. 15 es un grafico que ilustra mejoras de rendimiento de ejemplo que pueden obtenerse utilizando las tecnicas de codificacion de vectores v de esta divulgacion.
La FIG. 16 es un numero de diagramas que muestran un ejemplo de la codificacion de vectores V cuando se realiza de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 17 es un diagrama conceptual que ilustra un ejemplo de descomposicion basada en vector de codigo de un vector V de acuerdo con esta divulgacion.
La FIG. 18 es un diagrama que ilustra diferentes maneras en que los 16 vectores de codigo diferentes pueden ser empleados por la unidad de codificacion de vectores V mostrada en el ejemplo de cualquiera o ambas de las FIG. 10 y 11.
Las FIG. 19A y 19B son diagramas que ilustran libros de codigos con 256 filas teniendo cada fila 10 valores y 16 valores, respectivamente, que pueden usarse de acuerdo con diversos aspectos de las tecnicas descritas en esta divulgacion.
La FIG. 20 es un diagrama que ilustra un grafico de ejemplo que muestra un error umbral utilizado para seleccionar X* numero de vectores de codigo de acuerdo con diversos aspectos de las tecnicas descritas en esta divulgacion.
La FIG. 21 es un diagrama de bloques que ilustra una unidad de cuantificacion vectorial 520 de ejemplo de acuerdo con esta divulgacion.
Las FIG. 22, 24 y 26 son diagramas de flujo que ilustran un funcionamiento a modo de ejemplo de la unidad de cuantificacion vectorial en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. Las FIG. 23, 25 y 27 son diagramas de flujo que ilustran el funcionamiento a modo de ejemplo de la unidad de reconstruccion de vectores V en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. DESCRIPCION DETALLADA
[0027] En general, las tecnicas se describen para representar de manera eficiente los vectores v (que pueden representar informacion espacial, como el ancho, la forma, la direccion y la ubicacion de un objeto de audio asociado) de una senal de audio ambisonica de orden superior (HOA) descompuesta basandose en un conjunto de vectores de codigos. Las tecnicas pueden implicar descomponer el vector v en una suma ponderada de vectores de codigos, seleccionar un subconjunto de una pluralidad de ponderaciones y vectores de codigos correspondientes, cuantificar el subconjunto seleccionado de las ponderaciones e indexar el subconjunto seleccionado de vectores de codigos. Las tecnicas pueden proporcionar velocidades de bits mejoradas para la codificacion de senales de audio HOA.
[0028] La evolucion del sonido envolvente ha dejado disponibles muchos formatos de salida para el entretenimiento de hoy en dia. Los ejemplos de tales formatos de sonido envolvente para el consumidor son en su mayoria "canales" basados en que, implicitamente, especifican las senales a los altavoces en ciertas coordenadas geometricas. Los formatos de sonido envolvente para el consumidor incluyen el popular formato 5.1 (que incluye los siguientes seis canales: delantero izquierdo (FL), delantero derecho (FR), central o delantero central, posterior izquierdo o envolvente izquierdo, posterior derecho o envolvente derecho, y los efectos de baja frecuencia (LFE)), el formato creciente 7.1, varios formatos que incluyen altavoces de altura tales como el formato 7.1.4 y el formato 22.2 (por ejemplo, para usar con la norma de Television de Ultra Alta Definicion). Los formatos que no son para el consumidor pueden abarcar cualquier numero de altavoces (en geometrias simetricas y no simetricas) a menudo denominados "formaciones envolventes". Un ejemplo de una configuracion de este tipo incluye 32 altavoces colocados en coordenadas en las esquinas de un icosaedro truncado.
[0029] La entrada a un futuro codificador de MPEG es, opcionalmente, uno de tres formatos posibles: (i) audio tradicional basado en canales (como se ha analizado anteriormente), que esta destinado a ser reproducido mediante altavoces en posiciones preestablecidas; (ii) audio basado en objetos, que implica datos discretos de modulacion por codigo de pulso (PCM) para objetos de audio individuales con metadatos asociados que contienen sus coordenadas de ubicacion (entre otra informacion); y (iii) audio basado en la escena, que implica la representacion del campo sonoro utilizando coeficientes de funciones de base armonica esferica (tambien llamados "coeficientes armonicos esfericos" o SHC, "ambisonicos de orden superior" o HOA y "coeficientes HOA"). El futuro codificador de MPEG se puede describir con mayor detalle en un documento titulado "Call for Proposals for 3D Audio [Convocatoria de propuestas para audio tridimensional]", de la Organizacion Internacional para la Estandarizacion/Comision Electrotecnica Internacional (ISO)/(IEC) JTC1/SC29/WG11/N13411, publicado en enero de 2013 en Ginebra, Suiza, y disponible en http://mpeg.chiariglione.org/sites/default/files/files/standards/parts/docs/w13411.zip.
[0030] Hay varios formatos basados en canales de "sonido envolvente" en el mercado. Vartan, por ejemplo, desde el sistema de cine en casa 5.1 (que es el que ha tenido el mayor exito en cuanto a irrumpir en las salas de estar, mas alla del estereo) hasta el sistema 22.2 desarrollado por NHK (Nippon Hoso Kyokai o Corporacion Difusora de Japon). Los creadores de contenido (por ejemplo, los estudios de Hollywood) desearian producir la banda sonora de una pelicula una vez y no gastar esfuerzos en remezclarla para cada configuracion de altavoces. Recientemente, las Organizaciones de Desarrollo de Normas han estado considerando maneras de proporcionar una codificacion en un flujo de bits estandarizado y una descodificacion subsiguiente que sea adaptable e indiferente con respecto a la geometria (y numero) de los altavoces y a las condiciones acusticas en la ubicacion de la reproduccion (que implica un reproductor).
[0031] Para proporcionar dicha flexibilidad a los creadores de contenido, se puede usar un conjunto jerarquico de elementos para representar un campo sonoro. El conjunto jerarquico de elementos puede referirse a un conjunto de elementos en el que los elementos estan ordenados de tal manera que un conjunto basico de elementos de orden inferior proporciona una representacion completa del campo sonoro modelado. A medida que el conjunto se extiende para incluir elementos de orden superior, la representacion se torna mas detallada, aumentando la resolucion.
[0032] Un ejemplo de un conjunto jerarquico de elementos es un conjunto de coeficientes armonicos esfericos (SHC). La siguiente expresion demuestra una descripcion o representacion de un campo sonoro usando SHC:
Figure imgf000006_0001
[0033] La expresion muestra que la presion pc en cualquier punto {rr, Or, <pr} del campo sonoro, en el tiempo t,
puede representarse unicamente por el SHC,
Figure imgf000006_0003
Aqut,
Figure imgf000006_0002
ces la velocidad del sonido (-343 m/s), {rr, Or, q>r} es un punto de referencia (o punto de observacion), jn(-) es la funcion de Bessel esferica de orden n, y ym ro a
n yvr’ V r) Son las funciones de base armonica esferica de orden n y suborden m. Se puede reconocer que el termino entre corchetes es una representacion de la senal en el dominio de la frecuencia (es decir, S(w, rr, Or, fr)) que se puede aproximar mediante varias transformaciones de tiempo-frecuencia, como la transformada de Fourier discreta (DFT), la transformada de coseno discreta (DCT), o una transformada de ondiculas. Otros ejemplos de conjuntos jerarquicos incluyen conjuntos de coeficientes de transformada de ondiculas y otros conjuntos de coeficientes de funciones de base de multiresolucion.
[0034] La FIG. 1 es un diagrama que ilustra las funciones de base armonicas esfericas desde el orden cero (n = 0) hasta el cuarto orden (n = 4). Como puede verse, para cada orden, hay una expansion de los subordenes m que se muestran, pero no se senalan explicitamente en el ejemplo de la FIG. 1, con fines de facilidad de ilustracion.
[0035] Los SHC n Am n ( vk'-J 1 pueden ser adquiridos f isicamente (por ejemplo, registrados) con varias configuraciones de formaciones de microfonos o, de forma alternativa, se pueden obtener de descripciones basadas en canales o basadas en objetos del campo sonoro. Los SHC representan el audio basado en la escena, donde los SHC pueden ser introducidos en un codificador de audio para obtener SHC codificados que pueden fomentar una transmision o un almacenamiento mas eficaz. Por ejemplo, puede utilizarse una representacion de cuarto orden que implique coeficientes (1+4)2 (25 y, por lo tanto, de cuarto orden).
[0036] Como se ha senalado anteriormente, los SHC pueden obtenerse de una grabacion con microfono utilizando una formacion de microfonos. En el articulo de Poletti, M., "Three-Dimensional Surround Sound Systems Based on Spherical Harmonics [Sistemas tridimensionales de sonido envolvente basados en armonicos esfericos]", J. Audio Eng. Soc., Vol. 53, n.° 11, noviembre de 2005, pags. 1004-1025, se describen varios ejemplos de como se pueden obtener los SHC a partir de formaciones de microfonos.
[0037] Para ilustrar como los SHC se pueden obtener a partir de una descripcion basada en objetos, considerese
la siguiente ecuacion. Los coeficientes n A nm f W k ) para el campo sonoro correspondiente a un objeto de audio individual pueden expresarse como:
Figure imgf000007_0001
donde i es aP I h n (2)0 v ) / es la funcion esferica de Hankel (del segundo tipo) de orden n y {rs, GS} <ps} es la ubicacion del objeto. Conocer la energia fuente del objeto g(w) como funcion de la frecuencia (por ejemplo, utilizando tecnicas de analisis de tiempo-frecuencia, tales como realizar una transformacion rapida de Fourier en el flujo de PCM) nos
permite convertir cada objeto de PCM y la ubicacion correspondiente en el SHC Am( Lb'V\- Ademas, se puede mostrar (dado que lo anterior es una descomposicion lineal y ortogonal) que los coeficientes para cada objeto son aditivos. De esta manera, una multitud de objetos de PCM puede ser representada por los coeficientes
C^)(por ejemplo, como una sumade los vectores de coeficientes para los objetos individuales). Esencialmente, los coeficientes contienen informacion sobre el campo sonoro (la presion como una funcion de las coordenadas 3D), y lo anterior representa la transformacion de objetos individuales a una representacion del campo sonoro global, en la proximidad del punto de observacion {rr, dr, q>r}. Las figuras restantes se describen a continuacion en el contexto de la codificacion de audio basada en objetos y basada en SHC.
[0038] La FIG. 2 es un diagrama que ilustra un sistema 10 que puede realizar diversos aspectos de las tecnicas descritas en esta divulgacion. Como se muestra en el ejemplo de la FIG. 2, el sistema 10 incluye un dispositivo creador de contenido 12 y un dispositivo consumidor de contenido 14. Aunque se describen en el contexto del dispositivo creador de contenido 12 y del dispositivo consumidor de contenido 14, las tecnicas pueden implementarse en cualquier contexto en el que los SHC (que tambien pueden denominarse coeficientes HOA), o cualquier otra representacion jerarquica de un campo sonoro, se codifican para formar un flujo de bits representativo de los datos de audio. Ademas, el dispositivo creador de contenido 12 puede representar cualquier forma de dispositivo informatico capaz de implementar las tecnicas descritas en esta divulgacion, incluido un equipo manual (o telefono celular), un ordenador tipo tableta, un telefono inteligente o un ordenador de escritorio, para proporcionar unos pocos ejemplos. Del mismo modo, el dispositivo consumidor de contenido 14 puede representar cualquier forma de dispositivo informatico capaz de implementar las tecnicas descritas en esta divulgacion, incluido un equipo manual (o telefono celular), un ordenador tipo tableta, un telefono inteligente, un descodificador o un ordenador de escritorio, para proporcionar unos pocos ejemplos.
[0039] El dispositivo creador de contenido 12 puede ser operado por un estudio de cine u otra entidad que pueda generar contenido de audio multicanal para el consumo por parte de los operadores de los dispositivos consumidores de contenido, tales como el dispositivo consumidor de contenido 14. En algunos ejemplos, el dispositivo creador de contenido 12 puede ser operado por un usuario individual que desea comprimir los coeficientes HOA 11. A menudo, este creador de contenido genera contenido de audio junto con el contenido de video. El dispositivo consumidor de contenido 14 puede ser operado por un individuo. El dispositivo consumidor de contenido 14 puede incluir un sistema de reproduccion de audio 16, que puede referirse a cualquier forma de sistema de reproduccion de audio capaz de representar los SHC para su reproduccion como contenido de audio multicanal.
[0040] El dispositivo creador de contenido 12 incluye un sistema de edicion de audio 18. El dispositivo creador de contenido 12 obtiene grabaciones en vivo 7 en diversos formatos (incluso directamente como coeficientes HOA) y objetos de audio 9, que el dispositivo creador de contenido 12 puede editar utilizando el sistema de edicion de audio 18. Un microfono 5 puede capturar las grabaciones en vivo 7. El creador de contenido puede, durante el proceso de edicion, representar los coeficientes HOA 11 de los objetos de audio 9, escuchando las senales de los altavoces representadas en un intento de identificar varios aspectos del campo sonoro que requieran una edicion adicional. El dispositivo creador de contenido 12 puede entonces editar los coeficientes HOA 11 (potencialmente, de manera indirecta mediante la manipulacion de diferentes objetos entre los objetos de audio 9 a partir de los cuales pueden obtenerse los coeficientes HOA originales, de la manera descrita anteriormente). El dispositivo creador de contenido 12 puede emplear el sistema de edicion de audio 18 para generar los coeficientes HOA 11. El sistema de edicion de audio 18 representa cualquier sistema capaz de editar datos de audio y emitir los datos de audio como uno o mas coeficientes armonicos esfericos originales.
[0041] Cuando se completa el proceso de edicion, el dispositivo creador de contenido 12 puede generar un flujo de bits 21 basandose en los coeficientes HOA 11. Es decir, el dispositivo creador de contenido 12 incluye un dispositivo de codificacion de audio 20 que representa un dispositivo configurado para codificar o comprimir de otro modo los coeficientes HOA 11 de acuerdo con diversos aspectos de las tecnicas descritas en esta divulgacion para generar el flujo de bits 21. El dispositivo de codificacion de audio 20 puede generar el flujo de bits 21 para su transmision, por ejemplo, a traves de un canal de transmision, que puede ser un canal cableado o inalambrico, un dispositivo de almacenamiento de datos o algo similar. El flujo de bits 21 puede representar una version codificada de los coeficientes HOA 11 y puede incluir un flujo de bits primario y otro flujo de bits lateral, que se puede denominar informacion de canal lateral.
[0042] Mientras se muestra en la FIG. 2 como transmitido directamente al dispositivo consumidor de contenido 14, el dispositivo creador de contenido 12 puede emitir el flujo de bits 21 a un dispositivo intermedio situado entre el dispositivo creador de contenido 12 y el dispositivo consumidor de contenido 14. Este dispositivo intermedio puede almacenar el flujo de bits 21 para su posterior suministro al dispositivo consumidor de contenido 14, que puede solicitar el flujo de bits. El dispositivo intermedio puede comprender un servidor de ficheros, un servidor de la Red, un ordenador de escritorio, un ordenador portatil, un ordenador tipo tableta, un telefono movil, un telefono inteligente o cualquier otro dispositivo capaz de almacenar el flujo de bits 21 para su posterior recuperacion mediante un descodificador de audio. Este dispositivo intermedio puede residir en una red de suministro de contenido, capaz de transmitir en flujo continuo el flujo de bits 21 (y posiblemente junto con la transmision de un correspondiente flujo de bits de datos de video) a los abonados, tales como el dispositivo consumidor de contenido 14 que solicita el flujo de bits 21.
[0043] De forma alternativa, el dispositivo creador de contenido 12 puede almacenar el flujo de bits 21 en un medio de almacenamiento, tal como un disco compacto, un disco de video digital, un disco de video de alta definicion u otros medios de almacenamiento, la mayoria de los cuales pueden ser leidos por un ordenador y, por lo tanto, pueden denominarse medios de almacenamiento legibles por ordenador o medios de almacenamiento no transitorio legibles por ordenador. En este contexto, el canal de transmision puede referirse a aquellos canales por los cuales se transmiten contenidos almacenados en los medios (y pueden incluir tiendas minoristas y otros mecanismos de suministro basados en almacenes). En cualquier caso, las tecnicas de esta divulgacion no deberian, por lo tanto, limitarse, a este respecto, al ejemplo de la FIG. 2.
[0044] Como se muestra adicionalmente en el ejemplo de la FIG. 2, el dispositivo consumidor de contenido 14 incluye el sistema de reproduccion de audio 16. El sistema de reproduccion de audio 16 puede representar cualquier sistema de reproduccion de audio capaz de reproducir datos de audio multicanal. El sistema de reproduccion de audio 16 puede incluir un numero de diferentes reproductores 22. Los reproductores 22 pueden proporcionar, cada uno, una forma diferente de reproduccion, donde las diferentes formas de reproduccion pueden incluir una o mas de las diversas formas de realizar la exploracion de amplitud de base vectorial (VBAP) y/o una o mas de las diversas formas de realizar la síntesis del campo sonoro. Como se usa en el presente documento, "A y/o B" significa "A o B" o ambos "A y B".
[0045] El sistema de reproduccion de audio 16 puede incluir ademas un dispositivo de descodificacion de audio 24. El dispositivo de descodificacion de audio 24 puede representar un dispositivo configurado para descodificar los coeficientes HOA 11' a partir del flujo de bits 21, donde los coeficientes HOA 11' pueden ser similares a los coeficientes HOA 11, pero difieren debido a las operaciones con perdidas (por ejemplo, cuantificacion) y/o a la transmision mediante el canal de transmision. El sistema de reproduccion de audio 16 puede, despues de descodificar el flujo de bits 21, obtener los coeficientes HOA 11' y reproducir los coeficientes HOA 11' en las senales de salida de los altavoces 25. Las senales de los altavoces 25 pueden accionar uno o mas altavoces (que no se muestran en el ejemplo de la FIG. 2, con fines de facilidad de ilustracion).
[0046] Para seleccionar el reproductor apropiado o, en algunos casos, generar un reproductor apropiado, el sistema de reproduccion de audio 16 puede obtener informacion de los altavoces 13 indicativa de un numero de altavoces y/o una geometria espacial de los altavoces. En algunos casos, el sistema de reproduccion de audio 16 puede obtener la informacion de los altavoces 13 usando un microfono de referencia y accionando los altavoces de tal manera como para determinar dinamicamente la informacion de los altavoces 13. En otros casos, o conjuntamente con la determinacion dinamica de la informacion de los altavoces 13, el sistema de reproduccion de audio 16 puede inducir a un usuario a interactuar con el sistema de reproduccion de audio 16 e introducir la informacion de los altavoces 13.
[0047] El sistema de reproduccion de audio 16 puede entonces seleccionar uno de los reproductores de audio 22 basandose en la informacion de los altavoces 13. En algunos casos, el sistema de reproduccion de audio 16 puede, cuando ninguno de los reproductores de audio 22 esta dentro de ninguna medicion de similitud de umbral (en cuanto a geometria de altavoces) con la geometria de los altavoces especificada en la informacion de los altavoces 13, generar uno de los reproductores de audio 22 basandose en la informacion de los altavoces 13. El sistema de reproduccion de audio 16 puede, en algunos casos, generar uno de los reproductores de audio 22 basandose en la informacion de los altavoces 13 sin intentar primero seleccionar un reproductor existente entre los reproductores de audio 22. Uno o mas altavoces 3 pueden a continuacion reproducir las senales de altavoz representadas 25.
[0048] La FIG. 3A es un diagrama de bloques que ilustra, con mayor detalle, un ejemplo del dispositivo de codificacion de audio 20 mostrado en el ejemplo de la FIG. 2 que puede realizar diversos aspectos de las tecnicas descritas en esta divulgacion. El dispositivo de codificacion de audio 20 incluye una unidad de analisis de contenido 26, una unidad de descomposicion basada en vectores 27 y una unidad de descomposicion basada en la direccion 28. Aunque se describe brevemente a continuacion, en la Publicacion de Solicitud de Patente Internacional n.° WO 2014/194099, titulada "INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD [INTERPOLACION PARA REPRESENTACIONES DESCOMPUESTAS DE UN CAMPO SONORO]", presentada el 29 de mayo de 2014, esta disponible mas informacion sobre el dispositivo de codificacion de audio 20 y los diversos aspectos de compresion o codificacion de otro modo de los coeficientes HOA.
[0049] La unidad de analisis de contenido 26 representa una unidad configurada para analizar el contenido de los coeficientes HOA 11 y que identifica si los coeficientes HOA 11 representan contenido generado a partir de una grabacion en directo o un objeto de audio. La unidad de analisis de contenido 26 puede determinar si los coeficientes HOA 11 se generaron a partir de una grabacion de un campo sonoro real o de un objeto de audio artificial. En algunos casos, cuando los coeficientes HOA en tramas 11 se generaron a partir de una grabacion, la unidad de analisis de contenido 26 pasa los coeficientes HOA 11 a la unidad de descomposicion basada en vectores 27. En algunos casos, cuando los coeficientes HOA por tramas 11 se generaron a partir de un objeto de audio sintetico, la unidad de analisis de contenido 26 pasa los coeficientes HOA 11 a la unidad de síntesis basada en la direccion 28. La unidad de síntesis basada en la direccion 28 puede representar una unidad configurada para realizar una síntesis basada en la direccion de los coeficientes HOA 11 para generar un flujo de bits 21 basado en la direccion.
[0050] Como se muestra en el ejemplo de la FIG. 3A, la unidad de descomposicion basada en vectores 27 puede incluir una unidad de transformada invertible lineal (LIT) 30, una unidad de calculo de parametros 32, una unidad de reordenacion 34, una unidad de seleccion del primer plano 36, una unidad de compensacion de energia 38, una unidad codificadora de audio psicoacustico 40, una unidad de generacion de flujo de bits 42, una unidad de analisis del campo sonoro 44, una unidad de reduccion de coeficientes 46, una unidad de seleccion de fondo (BG) 48, una unidad de interpolacion espacio-temporal 50 y una unidad de codificacion de vectores V 52.
[0051] La unidad de transformada invertible lineal (LIT) 30 recibe los coeficientes HOA 11 en forma de canales HOA, siendo cada canal representativo de un bloque o trama de un coeficiente asociado a un orden dado, suborden de las funciones de base esferica (que se puede indicar como HOA[k], donde k puede indicar la trama o bloque actual de muestras). La matriz de coeficientes HOA 11 puede tener las dimensiones D: M x (N+1)2.
[0052] La unidad de LIT 30 puede representar una unidad configurada para realizar una forma de analisis denominada descomposicion en valores singulares. Aunque se describen con respecto a la SVD, las tecnicas descritas en esta divulgacion pueden realizarse con respecto a cualquier transformacion o descomposicion similar que proporcione conjuntos de salida de energia compactada y no correlacionada linealmente. Tambien, la referencia a "conjuntos" en esta divulgacion esta en general concebida para referirse a conjuntos no nulos, a menos que se indique especificamente lo contrario y no se pretende referir a la definicion matematica clasica de conjuntos que incluye el denominado "conjunto vacio". Una transformacion alternativa puede comprender un analisis de componentes principales, que se denomina a menudo "PCA". Dependiendo del contexto, el PCA puede ser mencionado con varios nombres diferentes, tales como la transformada discreta de Karhunen-Loeve, la transformada de Hotelling, la descomposicion ortogonal propia (POD) y la descomposicion en autovalores (EVD), para nombrar unos pocos ejemplos. Las propiedades de dichas operaciones que conducen a la meta subyacente de compresion de datos de audio son la "compactacion energetica" y la "descorrelacion" de los datos de audio multicanal.
[0053] En cualquier caso, suponiendo que la unidad de LIT 30 realiza una descomposicion en valores singulares (que, de nuevo, puede denominarse "SVD") con fines de ejemplo, la unidad de LIT 30 puede transformar los coeficientes HOA 11 en dos o mas conjuntos de coeficientes HOA transformados. Estos "conjuntos" de coeficientes HOA transformados pueden incluir vectores de coeficientes HOA transformados. En el ejemplo de la FIG. 3A, la unidad de LIT 30 puede realizar la SVD con respecto a los coeficientes HOA 11 para generar las llamadas matriz V, matriz S y matriz U. La SVD, en algebra lineal, puede representar una factorizacion de una matriz X real o compleja de y por z (donde X puede representar datos de audio multicanal, tales como los coeficientes HOA 11) de la siguiente forma:
X = USV*
U puede representar una matriz unitaria real o compleja de y por y, donde las y columnas de U se conocen como los vectores singulares izquierdos de los datos de audio multicanal. S puede representar una matriz diagonal rectangular de y-por-z con numeros reales no negativos en la diagonal, donde los valores diagonales de S se conocen comunmente como los valores singulares de los datos de audio multicanal. V* (que puede indicar una traspuesta conjugada de V) puede representar una matriz unitaria real o compleja de z-por-z, donde las z columnas de V* son conocidas como vectores singulares derechos de los datos de audio multicanal.
[0054] En algunos ejemplos, la matriz V* en la expresion matematica de SVD mencionada anteriormente se indica como la traspuesta conjugada de la matriz V para reflejar que la SVD se puede aplicar a matrices que comprenden numeros complejos. Cuando se aplica a matrices que comprenden solo numeros reales, la conjugada compleja de la matriz V (o, en otras palabras, la matriz V*) puede considerarse como la traspuesta de la matriz V. A continuacion, se supone, con fines de facilitar la ilustracion, que los coeficientes HOA 11 comprenden numeros reales, con el resultado de que la matriz V se emite mediante la SVD, en lugar de la matriz V*. Ademas, aunque se indica como la matriz V en esta divulgacion, la referencia a la matriz V deberia entenderse como referencia a la traspuesta de la matriz V cuando corresponda. Aunque se supone que es la matriz V, las tecnicas pueden aplicarse de manera similar a los coeficientes HOA 11 que tienen coeficientes complejos, donde la salida de la SVD es la matriz V*. Por consiguiente, las tecnicas no deberian estar limitadas a este respecto para proporcionar solamente la aplicacion de la SVD para generar una matriz V, sino que pueden incluir la aplicacion de la SVD a coeficientes HOA 11 que tengan componentes complejos para generar una matriz V*.
[0055] De esta manera, la unidad de LIT 30 puede realizar una SVD con respecto a los coeficientes HOA 11 para emitir vectores US[k] 33 (que pueden representar una version combinada de los vectores S y los vectores U) que tienen dimensiones D: M x (N+1)2, y vectores V[k] 35 con dimensiones D: (N+1)2 x (N+1)2. Los elementos vectoriales individuales en la matriz US[k] tambien pueden denominarse Xps(k), mientras que los vectores individuales de la matriz V[k] tambien pueden denominarse v(k).
[0056] Un analisis de las matrices U, S y V puede revelar que las matrices llevan o representan caracteristicas espaciales y temporales del campo sonoro subyacente representado anteriormente por X. Cada uno de los N vectores en U (de muestras de longitud M) puede representar senales de audio normalizadas separadas como una funcion del tiempo (para el periodo de tiempo representado por las M muestras), que son ortogonales entre si y que han sido desacopladas de cualquier caracteristica espacial (que tambien puede denominarse informacion direccional). Las caracteristicas espaciales, que representan la forma y la posicion espacial (r, theta, phi), pueden representarse en cambio por vectores resimos individuales, v(i)(k), en la matriz V (cada uno de longitud (N+1)2). Los elementos individuales de cada uno de los vectores v^(k) pueden representar un coeficiente HOA que describe la forma (incluida la anchura) y la posicion del campo sonoro para un objeto de audio asociado. Tanto los vectores de la matriz U como los de la matriz V se normalizan de tal manera que sus energias de media cuadratica son iguales a la unidad. La energia de las senales de audio en U esta de este modo representada por los elementos diagonales en S. Multiplicar U por S para formar US[k] (con los elementos vectoriales individuales Xps(k)), representa de este modo la senal de audio con energias. La capacidad de la descomposicion SVD para desacoplar las senales de tiempo de audio (en U), sus energias (en S) y sus caracteristicas espaciales (en V) puede dar soporte a varios aspectos de las tecnicas descritas en esta divulgacion. Ademas, el modelo de síntesis de los coeficientes HOA[k] subyacentes, X, por una multiplicacion de vectores de US[k] y V[k] da lugar al termino "descomposicion basada en vectores" que se utiliza en todo este documento.
[0057] Aunque se describe como realizada directamente con respecto a los coeficientes HOA 11, la unidad de LIT 30 puede aplicar la trasformada invertible lineal a los derivados de los coeficientes HOA 11. Por ejemplo, la unidad de LIT 30 puede aplicar una SVD con respecto a una matriz de densidad espectral de potencia obtenida a partir de los coeficientes HOA 11. Mediante la realizacion de la SVD con respecto a la densidad espectral de potencia (PSD) de los coeficientes HOA, en lugar de los coeficientes en si, la unidad de LIT 30 puede reducir potencialmente la complejidad de calculo para realizar la SVD en terminos de uno o mas ciclos de procesador y espacio de almacenamiento, mientras se consigue la misma eficacia en la codificacion de la fuente de audio como si la SVD se aplicara directamente a los coeficientes HOA.
[0058] La unidad de calculo de parametros 32 representa una unidad configurada para calcular varios parametros, tales como un parametro de correlacion (R), parametros de propiedades direccionales (0, p, r), y una propiedad de energia (e). Cada uno de los parametros para la trama actual puede indicarse como R[k], 0[k], p[k], r[k] y e[k]. La unidad de calculo de parametros 32 puede realizar un analisis de energia y/o correlacion (o lo que se denomina correlacion cruzada) con respecto a los vectores US[k] 33 para identificar los parametros. La unidad de calculo de parametros 32 tambien puede determinar los parametros para la trama anterior, donde los parametros de la trama anterior pueden indicarse como R[k-1], 0[k-1], <p[k-1], r[k-1] y e[k-1], basandose en la trama anterior del vector US[k-1] y los vectores V[A-1 ]. La unidad de calculo de parametros 32 puede emitir los parametros actuales 37 y los parametros anteriores 39 para reordenar la unidad 34.
[0059] Los parametros calculados por la unidad de calculo de parametros 32 pueden ser utilizados por la unidad de reordenacion 34 para reordenar los objetos de audio para representar su evaluacion natural o su continuidad en el tiempo. La unidad de reordenacion 34 puede comparar cada uno de los parametros 37 de los primeros vectores US[k] 33, por orden, con cada uno de los parametros 39 para los segundos vectores US[k-1] 33. La unidad de reordenacion 34 puede reordenar (utilizando como ejemplo un algoritmo hungaro) los diversos vectores dentro de la matriz US[k] 33 y la matriz V[k] 35 basandose en los parametros actuales 37 y los parametros anteriores 39 para emitir una matriz US[k] reordenada 33' (que se puede indicar matematicamente como US[k]) y una matriz V[k] reordenada 35' (que se puede indicar matematicamente como V [k]) a una unidad de seleccion de sonido de primer plano 36 (o sonido predominante - PS) ("unidad de seleccion del primer plano 36") y una unidad de compensacion de energia 38.
[0060] La unidad de analisis del campo sonoro 44 puede representar una unidad configurada para realizar un analisis de campo sonoro con respecto a los coeficientes HOA 11 para alcanzar potencialmente una velocidad de bits deseada 41. La unidad de analisis del campo sonoro 44 puede, basandose en este analisis y/o en una velocidad de bits deseada recibida 41, determinar el numero total de instanciaciones del codificador psicoacustico (que puede ser una funcion del numero total de canales ambientales o de fondo BGtot) y el numero de canales de primer plano o, en otras palabras, canales predominantes. El numero total de instanciaciones del codificador psicoacustico se puede indicar como numHOATransportChannels.
[0061] La unidad de analisis del campo sonoro 44 tambien puede determinar, de nuevo para alcanzar potencialmente la velocidad de bits deseada 41, el numero total de canales de primer plano (nFG) 45, el orden minimo del campo sonoro de fondo (o, en otras palabras, ambiente) (Nbg o, de forma alternativa, MinAmbHOAorder), el numero correspondiente de canales reales representativos del orden minimo del campo sonoro de fondo (nBGa = (MinAmbHOAorder 1 )2), y los indices (i) de los canales HOA adicionales de BG a enviar (que pueden indicarse colectivamente como informacion de canal de fondo 43 en el ejemplo de la FIG. 3A). La informacion de canal de fondo 42 tambien puede denominarse informacion de canal ambiental 43. Cada uno de los canales que queda de numHOATransportChannels- nBGa puede ser un "canal de fondo/ambiental adicional", un "canal predominante basado en un vector activo", una "senal predominante basada en direccion activa" o estar "completamente inactivo". En un aspecto, los tipos de canales se pueden indicar como un elemento sintactico ("ChannelType") con dos bits (por ejemplo, 00: senal basada en direccion; 01: senal predominante basada en vectores; 10: senal ambiental adicional; 11: senal inactiva). El numero total de senales de fondo o de ambiente, nBGa, puede estar dado por (MinAmbHOAorder 1 )2 el numero de veces que el indice 10 (en el ejemplo anterior) aparece como un tipo de canal en el flujo de bits para esa trama.
[0062] La unidad de analisis del campo sonoro 44 puede seleccionar el numero de canales de fondo (o, en otras palabras, de ambiente) y el numero de canales de primer plano (o, en otras palabras, predominantes) basandose en la velocidad de bits deseada 41, seleccionando mas canales de fondo y/o de primer plano cuando la velocidad de bits deseada 41 es relativamente mayor (por ejemplo, cuando la velocidad de bits deseada 41 es igual o mayor que 512 Kbps). En un aspecto, el numHOATransportChannels se puede fijar en 8 mientras que el MinAmbHOAorder puede ser fijado en 1 en la seccion de cabecera del flujo de bits. En este escenario, en cada trama se pueden dedicar cuatro canales para representar la parte de fondo o de ambiente del campo sonoro, mientras que los otros 4 canales pueden variar, de trama a trama, segun el tipo de canal, por ejemplo, usado como un canal de fondo/ambiente adicional o un canal de primer plano/predominante. Las senales de primer plano/predominantes pueden ser una entre senales basadas en vectores o en la direccion, como se ha descrito anteriormente.
[0063] En algunos casos, el numero total de senales predominantes basadas en vectores para una trama puede estar dado por el numero de veces que el indice ChannelType es 01 en el flujo de bits de dicha trama. En el aspecto anterior, para cada canal de fondo/ambiental adicional (por ejemplo, correspondiente a un ChannelType de 10), informacion correspondiente de cual de los posibles coeficientes HOA (mas alla de los cuatro primeros) se puede representar en ese canal. La informacion, para contenido HOA de cuarto orden, puede ser un indice para indicar los coeficientes HOA 5-25. Los cuatro primeros coeficientes HOA ambientales 1-4 pueden enviarse todo el tiempo cuando minAmbHOAorder se fija en 1, por lo tanto, el dispositivo de codificacion de audio solo puede necesitar indicar uno de los coeficientes HOA ambientales adicionales que tengan un indice de 5-25. Esta informacion, por tanto, podria ser enviada utilizando un elemento sintactico de 5 bits (para el contenido de 4° orden), que puede denominarse "CodedAmbCoeffldx". En cualquier caso, la unidad de analisis del campo sonoro 44 emite la informacion de canal de fondo 43 y los coeficientes HOA 11 a la unidad de seleccion de fondo (BG) 36, la informacion de canal de fondo 43 a la unidad de reduccion de coeficientes 46 y a la unidad de generacion del flujo de bits 42, y el nFG 45 a una unidad de seleccion de primer plano 36.
[0064] La unidad de seleccion de fondo 48 puede representar una unidad configurada para determinar los coeficientes HOA de fondo o ambientales 47 basandose en la informacion de canal de fondo (por ejemplo, el campo sonoro de fondo (Nbg) y el numero (nBGa) y los indices (i) de los canales HOA de BG adicionales a enviar).
Por ejemplo, cuando Nbg es igual a uno, la unidad de seleccion de fondo 48 puede seleccionar los coeficientes HOA 11 para cada muestra de la trama de audio que tenga un orden igual o inferior a uno. La unidad de seleccion de fondo 48 puede, en este ejemplo, seleccionar entonces los coeficientes HOA 11 que tengan un indice identificado por uno de los indices (i) como coeficientes HOA de BG adicionales, donde el nBGa se proporciona a la unidad de generacion del flujo de bits 42 para que se especifique en el flujo de bits 21 para permitir al dispositivo de descodificacion de audio, tal como el dispositivo de descodificacion de audio 24, que se muestra en el ejemplo de las FIG. 4A y 4B, analizar los coeficientes HOA de fondo 47 del flujo de bits 21. La unidad de seleccion de fondo 48 puede emitir entonces los coeficientes HOA ambientales 47 a la unidad de compensacion de energia 38. Los coeficientes HOA ambientales 47 pueden tener dimensiones D: M x [(Nbg+1)2 nBGa], Los coeficientes HOA ambientales 47 tambien pueden denominarse "coeficientes HOA ambientales 47", donde cada uno de los coeficientes HOA ambientales 47 corresponde a un canal HOA ambiental independiente 47, a codificar por la unidad codificadora de audio psicoacustica 40.
[0065] La unidad de seleccion del primer plano 36 puede representar una unidad configurada para seleccionar la matriz US[k] reordenada 33' y la matriz V[k] reordenada 35', que representan componentes de primer plano, o distintas, del campo sonoro basandose en nFG 45 (que pueden representar uno o mas indices que identifican los vectores de primer piano). La unidad de seleccion del primer piano 36 puede emitir nFG senales 49 (que se pueden X^1"nFG\ l i ')
indicar como una US[k]i, , nFG reordenada 49, FGi, , nFG[k] 49, o PS L 749) a |a unidad codificadora de audio psicoacustica 40, en donde las nFG senales 49 pueden tener dimensiones D: M x nFG y cada una representa objetos de monoaudio. La unidad de seleccion del primer plano 36 tambien puede emitir la matriz V[k] reordenada 35' (o v(1-nFG)(k) 35'), correspondiente a los componentes de primer plano del campo sonoro, a la unidad de interpolacion espacio-temporal 50, donde un subconjunto de la matriz V[k] reordenada 35', correspondiente a los componentes de primer plano, se puede indicar como la matriz V[k] de primer plano 51k (que se puede indicar matematicamente como V 1,...,nFG[k]) con dimensiones D: (N+1)2 x nFG.
[0066] La unidad de compensacion de energia 38 puede representar una unidad configurada para realizar compensacion de energia con respecto a los coeficientes HOA ambientales 47, para compensar la perdida de energia debida a la eliminacion de varios de los canales HOA por la unidad de seleccion de fondo 48. La unidad de compensacion de energia 38 puede realizar un analisis energetico con respecto a una o mas entre la matriz US[k] reordenada 33', la matriz V[k] reordenada 35', las nFG senales 49, los vectores V[k] de primer plano 51k y los coeficientes HOA ambientales 47, y luego realizar una compensacion de energia basandose en el analisis de energia para generar los coeficientes HOA ambientales compensados en energia 47'. La unidad de compensacion de energia 38 puede emitir los coeficientes HOA ambientales compensados en energia 47' a la unidad codificadora de audio psicoacustica 40.
[0067] La unidad de interpolacion espacio-temporal 50 puede representar una unidad configurada para recibir los vectores V[k] de primer plano 51k para la k-esima trama y los vectores V[k-1 ] de primer plano 51 k-1 para la trama anterior (de ahi la notacion k-1) y realizar una interpolacion espacio-temporal para generar los vectores V[k] de primer plano interpolados. La unidad de interpolacion espacio-temporal 50 puede recombinar las nFG senales 49 con los vectores V[k] de primer plano 51k para recuperar los coeficientes HOA de primer plano reordenados. La unidad de interpolacion espacio-temporal 50 puede entonces dividir los coeficientes HOA de primer plano reordenados por los vectores V[k] interpolados para generar nFG senales interpoladas 49'. La unidad de interpolacion espacio-temporal 50 tambien puede emitir los vectores V[k] de primer plano 51k que se usaron para generar los vectores V[k] de primer plano interpolados, de modo que un dispositivo de descodificacion de audio, tal como el dispositivo de descodificacion de audio 24, pueda generar los vectores V[k] de primer plano interpolados y recuperar asi los vectores V[k] de primer plano 51k. Los vectores V[k] de primer plano 51k utilizados para generar los vectores V[k] de primer plano interpolados se indican como los vectores V[k] de primer plano restantes 53. Con el fin de asegurar que los mismos V[k] y V[k-1] se usen en el codificador y el descodificador (para crear los vectores interpolados V[k]) se pueden usar versiones cuantificadas/descuantificadas de los vectores en el codificador y el descodificador. La unidad de interpolacion espacio-temporal 50 puede emitir las nFG senales interpoladas 49' a la unidad codificadora de audio psicoacustica 46 y los vectores V[k] de primer plano interpolados 51k a la unidad de reduccion de coeficientes 46.
[0068] La unidad de reduccion de coeficientes 46 puede representar una unidad configurada para realizar una reduccion de coeficientes con respecto a los restantes vectores V[k] de primer plano 53, basandose en la informacion de canal de fondo 43 para emitir los vectores V[k] de primer plano reducidos 55 a la unidad de codificacion de vectores V 52. Los vectores V[k] de primer plano reducidos 55 pueden tener dimensiones D:
[(N+1)2- (Nbg+1)2-BGtot] x nFG. La unidad de reduccion de coeficientes 46 puede, a este respecto, representar una unidad configurada para reducir el numero de coeficientes de los restantes vectores V[k] de primer plano 53. En otras palabras, la unidad de reduccion de coeficientes 46 puede representar una unidad configurada para eliminar los coeficientes en los vectores V[k] de primer plano (que forman los restantes vectores V[k] de primer plano 53) que tienen poca o ninguna informacion direccional. En algunos ejemplos, los coeficientes de los vectores V[k] distintos o, en otras palabras, de primer plano que corresponden a funciones de base de primer orden y de orden cero (que pueden indicarse como Nbg) proporcionan poca informacion direccional y por lo tanto pueden ser eliminados de los vectores V de primer plano (mediante un proceso que se puede denominar "reduccion de coeficientes"). En este ejemplo, se puede proporcionar mayor flexibilidad para identificar no solo los coeficientes que corresponden a Nbg, sino para identificar canales HOA adicionales (que pueden indicarse con la variable TotalOfAddAmbHOAChan) a partir del conjunto de [(Nbg +1)2+1, (N+1 )2].
[0069] La unidad de codificacion de vectores V 52 puede representar una unidad configurada para realizar cualquier forma de cuantificacion para comprimir los vectores V[ft] de primer plano reducidos 55 y generar vectores V[ft] de primer plano codificados 57, emitiendo los vectores V[ft] de primer plano codificados 57 a la unidad de generacion del flujo de bits 42. En funcionamiento, la unidad de codificacion de vectores V 52 puede representar una unidad configurada para comprimir una componente espacial del campo sonoro, es decir, uno o mas de los vectores V[ft] de primer plano reducidos 55 en este ejemplo. La unidad de codificacion de vectores V 52 puede realizar cualquiera de los siguientes 12 modos de cuantificacion, como se indica mediante un elemento sintactico de modo de cuantificacion denominado "NbitsQ":
Valor de NbitsQ Tipo de Modo de Cuantificacion
0-3: Reservado
4: Cuantificacion de Vector
5: Cuantificacion Escalar sin Codificacion Huffman
6: Cuantificacion Escalar de 6 bits con Codificacion Huffman 7: Cuantificacion Escalar de 7 bits con Codificacion Huffman 8: Cuantificacion Escalar de 8 bits con Codificacion Huffman
16: Cuantificacion Escalar de 16 bits con Codificacion Huffman
La unidad de codificacion de vectores V 52 tambien puede realizar versiones predichas de cualquiera de los tipos anteriores de modos de cuantificacion, donde se determina una diferencia entre un elemento de (o una ponderacion cuando se realiza la cuantificacion del vector) del vector V de una trama previa y el elemento (o ponderacion cuando se realiza la cuantificacion del vector) del vector V de una trama actual. La unidad de codificacion de vectores V 52 puede entonces cuantificar la diferencia entre los elementos o ponderaciones de la trama actual y de la trama anterior en lugar del valor del elemento del vector V de la propia trama actual.
[0070] La unidad de codificacion de vectores V 52 puede realizar multiples formas de cuantificacion con respecto a cada uno de los vectores V[ft] de primer plano reducidos 55 para obtener multiples versiones codificadas de los vectores V[ft] de primer plano reducidos 55. La unidad de codificacion de vectores V 52 puede seleccionar una de las versiones codificadas de los vectores V[ft] de primer plano reducidos 55 como el vector V[ft] de primer plano codificado 57. La unidad de codificacion de vectores V 52 puede, en otras palabras, seleccionar uno del vector V cuantificado vectorialmente no predicho, el vector V cuantificado vectorialmente predicho, el vector V cuantificado escalarmente sin codificacion Huffman y el vector V cuantificado escalarmente con codificacion Huffman para usar como el vector V cuantificado conmutado de salida basado en cualquier combinacion de los criterios analizados en esta divulgacion.
[0071] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar un modo de cuantificacion de un conjunto de modos de cuantificacion que incluye un modo de cuantificacion vectorial y uno o mas modos de cuantificacion escalar, y cuantificar un vector V de entrada basandose en (o de acuerdo con) el modo seleccionado. La unidad de codificacion de vectores V 52 puede proporcionar entonces uno del vector V cuantificado vectorialmente no predicho (por ejemplo, en terminos de valores de ponderacion o bits indicativos del mismo), el vector V cuantificado vectorialmente predicho (por ejemplo, en terminos de valores de error o bits indicativos del mismo), el vector V cuantificado escalarmente sin codificacion Huffman y el vector V cuantificado escalarmente con codificacion Huffman a la unidad de generacion de flujo de bits 52 como los vectores V[ft] de primer plano codificados 57. La unidad de codificacion de vectores V 52 tambien puede proporcionar los elementos sintacticos indicativos del modo de cuantificacion (por ejemplo, el elemento sintactico NbitsQ) y cualquier otro elemento sintactico utilizado para descuantificar o reconstruir de otro modo el vector V.
[0072] Con respecto a la cuantificacion de vectores, la unidad de codificacion de vectores v 52 puede codificar los vectores V[ft] de primer plano reducidos 55 basandose en los vectores de codigos 63 para generar vectores V[ft] codificados. Como se muestra en la FIG. 3A, la unidad de codificacion de vectores v 52 puede emitir, en algunos ejemplos, las ponderaciones codificadas 57 y los indices 73. Las ponderaciones codificadas 57 y los indices 73, en tales ejemplos, pueden representar juntos los vectores V[ft] codificados. Los indices 73 pueden representar que vectores de codigos en una suma ponderada de vectores de codificacion corresponden a cada una de las ponderaciones en las ponderaciones 57 codificadas.
[0073] Para codificar los vectores V[ft] de primer plano reducidos 55, la unidad de codificacion de vectores v 52 puede descomponer, en algunos ejemplos, cada uno de los vectores V[ft] de primer plano reducidos 55 en una suma ponderada de vectores de codigos basados en los vectores de codigos 63. La suma ponderada de los vectores de codigos puede incluir una pluralidad de ponderaciones y una pluralidad de vectores de codigos, y puede representar que la suma de los productos de cada una de las ponderaciones puede multiplicarse por uno respectivo de los vectores de codigos. La pluralidad de vectores de codigos incluidos en la suma ponderada de los vectores de codigos puede corresponder a los vectores de codigos 63 recibidos por la unidad de codificacion de vectores v 52. La descomposicion de uno de los vectores V[k] de primer plano reducidos 55 en una suma ponderada de vectores de codigos puede implicar la determinacion de valores de ponderacion para una o mas de las ponderaciones incluidas en la suma ponderada de vectores de codigos.
[0074] Despues de determinar los valores de ponderacion que corresponden a las ponderaciones incluidas en la suma ponderada de los vectores de codigos, la unidad de codificacion de vectores v 52 puede codificar uno o mas de los valores de ponderacion para generar las ponderaciones codificadas 57. En algunos ejemplos, la codificacion de los valores de ponderacion puede incluir la cuantificacion de los valores de ponderacion. En ejemplos adicionales, la codificacion de los valores de ponderacion puede incluir cuantificar los valores de ponderacion y realizar la codificacion de Huffman con respecto a los valores de ponderacion cuantificados. En ejemplos adicionales, la codificacion de los valores de ponderacion puede incluir la codificacion de uno o mas de los valores de ponderacion, datos indicativos de los valores de ponderacion, los valores de ponderacion cuantificados, datos indicativos de los valores de ponderacion cuantificados utilizando cualquier tecnica de codificacion.
[0075] En algunos ejemplos, los vectores de codigos 63 pueden ser un conjunto de vectores ortonormales. En ejemplos adicionales, los vectores de codigos 63 pueden ser un conjunto de vectores pseudoortonormales. En ejemplos adicionales, los vectores de codigos 63 pueden ser uno o mas de los siguientes: un conjunto de vectores direccionales, un conjunto de vectores direccionales ortogonales, un conjunto de vectores direccionales ortonormales, un conjunto de vectores direccionales pseudoortonormales, un conjunto de vectores direccionales pseudoortogonales, un conjunto de vectores de base direccional, un conjunto de vectores ortogonales, un conjunto de vectores pseudoortogonales, un conjunto de vectores de base armonicos esfericos, un conjunto de vectores normalizados y un conjunto de vectores basicos. En ejemplos en los que los vectores de codigos 63 incluyen vectores direccionales, cada uno de los vectores direccionales puede tener una direccionalidad que corresponde a una direccion o patron de radiacion direccional en el espacio 2d o 3D.
[0076] En algunos ejemplos, los vectores de codigos 63 pueden ser un conjunto predefinido y/o predeterminado de vectores de codigos 63. En ejemplos adicionales, los vectores de codigos pueden ser independientes de los coeficientes HOA de campo sonoro subyacentes y/o no generarse en base a los coeficientes HOA de campo sonoro subyacentes. En ejemplos adicionales, los vectores de codigos 63 pueden ser los mismos cuando se codifican diferentes tramas de coeficientes HOA. En ejemplos adicionales, los vectores de codigos 63 pueden ser diferentes cuando se codifican diferentes tramas de coeficientes HOA. En ejemplos adicionales, los vectores de codigos 63 pueden denominarse, de forma alternativa, vectores de libro de codigos y/o vectores de codigos candidatos.
[0077] En algunos ejemplos, para determinar los valores de ponderacion correspondientes a uno de los vectores V[k] de primer plano reducidos 55, la unidad de codificacion de vectores v 52 puede, para cada uno de los valores de ponderacion en la suma ponderada de vectores de codigos, multiplicar el vector V[k] de primer plano reducido por uno respectivo de los vectores de codigos 63 para determinar el valor de ponderacion respectivo. En algunos casos, para multiplicar el vector V[k] de primer plano reducido por el vector de codigos, la unidad de codificacion de vectores v 52 puede multiplicar el vector V[k] de primer plano reducido por una transposicion del vector respectivo de los vectores de codigos 63 para determinar el valor de ponderacion respectivo.
[0078] Para cuantificar las ponderaciones, la unidad de codificacion de vectores v 52 puede realizar cualquier tipo de cuantificacion. Por ejemplo, la unidad de codificacion de vectores v 52 puede realizar cuantificacion escalar, cuantificacion vectorial o cuantificacion matricial con respecto a los valores de ponderacion.
[0079] En algunos ejemplos, en lugar de codificar todos los valores de ponderacion para generar las ponderaciones codificadas 57, la unidad de codificacion de vectores v 52 puede codificar un subconjunto de los valores de ponderacion incluidos en la suma ponderada de vectores de codigos para generar las ponderaciones codificadas 57. Por ejemplo, la unidad de codificacion de vectores v 52 puede cuantificar un conjunto de los valores de ponderacion incluidos en la suma ponderada de los vectores de codigos. Un subconjunto de los valores de ponderacion incluidos en la suma ponderada de los vectores de codigos puede referirse a un conjunto de valores de ponderacion que tiene un numero de valores de ponderacion que es menor que el numero de valores de ponderacion en el conjunto completo de valores de ponderacion incluidos en la suma ponderada de vectores de codigos.
[0080] En algun ejemplo, la unidad de codificacion de vectores v 52 puede seleccionar un subconjunto de los valores de ponderacion incluidos en la suma ponderada de los vectores de codigos para codificar y/o cuantificar en base a diversos criterios. En un ejemplo, el numero entero N puede representar el numero total de valores de ponderacion incluidos en la suma ponderada de los vectores de codigos, y la unidad de codificacion de vectores v 52 puede seleccionar los M valores de ponderacion mayores (es decir, los maximos valores de ponderacion) del conjunto de N valores de ponderacion para formar el subconjunto de valores de ponderacion donde M es un numero entero menor que N. De esta manera, las contribuciones de los vectores de codigos que contribuyen una cantidad relativamente grande al vector v descompuesto se pueden conservar, mientras que las contribuciones de los vectores de codigos que contribuyen una cantidad relativamente pequena al vector v descompuesto se pueden descartar para aumentar la eficiencia de la codificacion. Tambien se pueden usar otros criterios para seleccionar el subconjunto de los valores de ponderacion para la codificacion y/o cuantificacion.
[0081] En algunos ejemplos, los M valores de ponderacion mayores pueden ser los M valores de ponderacion del conjunto de N valores de ponderacion que tienen el mayor valor. En otros ejemplos, los M valores de ponderacion mayores pueden ser los M valores de ponderacion del conjunto de N valores de ponderacion que tienen el mayor valor absoluto.
[0082] En ejemplos en los que la unidad de codificacion de vectores v 52 codifica y/o cuantifica un subconjunto de los valores de ponderacion, las ponderaciones 57 codificadas pueden incluir datos indicativos de cual de los valores de ponderacion se seleccionaron para cuantificar y/o codificar ademas de los datos cuantificados indicativos de los valores de ponderacion. En algunos ejemplos, los datos indicativos de cual de los valores de ponderacion se seleccionaron para cuantificar y/o codificar pueden incluir uno o mas indices de un conjunto de indices que corresponden a los vectores de codigos en la suma ponderada de vectores de codigos. En tales ejemplos, para cada una de las ponderaciones que se seleccionaron para la codificacion y/o la cuantificacion, un valor de indice del vector de codigos que corresponde al valor de ponderacion en la suma ponderada de los vectores de codigos puede incluirse en el flujo de bits.
[0083] En algunos ejemplos, cada uno de los vectores V[k] de primer plano reducidos 55 puede representarse en base a la siguiente expresion:
Figure imgf000015_0001
donde Oj representa el vector de codigos j-esimo en un conjunto de vectores de codigos ({Oj}), Wj representa la j-esima ponderacion en un conjunto de ponderaciones ({Wj}), y Vfg corresponde al vector v que esta siendo representado, descompuesto y/o codificado por la unidad de codificacion de vectores v 52. El lado derecho de la expresion (1) puede representar una suma ponderada de vectores de codigos que incluye un conjunto de ponderaciones ({wj}) y un conjunto de vectores de codigos ({Oj}).
[0084] En algunos ejemplos, la unidad de codificacion de vectores v 52 puede determinar los valores de ponderacion en base a la siguiente ecuacion:
Figure imgf000015_0004
donde " O * r representa una transposicion del vector de codigos k-esimo en un conjunto de vectores de codigos ({Ok}), Vfg corresponde al vector v que esta siendo representado, descompuesto y/o codificado por la unidad de codificacion de vectores v 52, y Wk representa la j-esima ponderacion en un conjunto de ponderaciones ({wk} ).
[0085] En ejemplos en los que el conjunto de vectores de codigos ({Oj}) es ortonormal, se puede aplicar la siguiente expresion:
Figure imgf000015_0002
En tales ejemplos, el lado derecho de la ecuacion (2) puede simplificarse de la siguiente manera:
Figure imgf000015_0003
donde Wk corresponde a la ponderacion k-esima en la suma ponderada de los vectores de codigos.
[0086] Para el ejemplo de la suma ponderada de los vectores de codigos utilizados en la ecuacion (1), la unidad de codificacion de vectores v 52 puede calcular los valores de ponderacion para cada una de las ponderaciones en la suma ponderada de los vectores de codigos utilizando la ecuacion (2) y las ponderaciones resultantes pueden ser representadas como:
{ f a k } k=1 25 (5)
Considerese un ejemplo en el que la unidad de codificacion de vectores v 52 selecciona los cinco valores de ponderacion maximos (es decir, las ponderaciones con valores o valores absolutos mas grandes). El subconjunto de los valores de ponderacion a cuantificar se puede representar como:
{ & k } k = i 5 (6)
El subconjunto de los valores de ponderacion junto con sus vectores de codigos correspondientes se puede usar para formar una suma ponderada de vectores de codigos que estima el vector v, como se muestra en la siguiente expresion:
VFG ~ 'E te jO .j (7)
j=1
donde Qj representa el vector de codigos j-esimo en un subconjunto de los vectores de codigos ({Oy}), Qj representa la j-esima ponderacion en un subconjunto de ponderaciones ({Qj}), y Vfg corresponde a un vector v estimado que corresponde al vector v que se descompone y/o codifica por la unidad de codificacion de vectores v 52. El lado derecho de la expresion (1) puede representar una suma ponderada de vectores de codigos que incluye un conjunto de ponderaciones ({Qj}) y un conjunto de vectores de codigos ({Qj}).
[0087] La unidad de codificacion de vectores v 52 puede cuantificar el subconjunto de los valores de ponderacion para generar valores de ponderacion cuantificados que se pueden representar como:
{ Q k } k=1 5 (8)
Los valores de ponderacion cuantificados junto con sus vectores de codigos correspondientes se pueden usar para formar una suma ponderada de vectores de codigos que representa una version cuantificada del vector v estimado, como se muestra en la siguiente expresion:
^ 5
V FG ~ ^ Q j f y (9)
j=1
donde Oy representa el j-esimo vector de codigos en un subconjunto de los vectores de codigos ({Qj}), Qj representa la j-esima ponderacion en un subconjunto de ponderaciones ({Qj}), y Vfg corresponde a un vector v estimado que corresponde al vector v que se descompone y/o codifica por la unidad de codificacion de vectores v 52. El lado derecho de la expresion (1) puede representar una suma ponderada de un subconjunto de los vectores de codigos que incluye un conjunto de ponderaciones ({Qj}) y un conjunto de vectores de codigos ({Qj}).
[0088] Una actualizacion alternativa de lo anterior (que es bastante equivalente a la descrita anteriormente) puede ser la siguiente. Los vectores V pueden codificarse en base a un conjunto predefinido de vectores de codigos. Para codificar los vectores V, cada vector V se descompone en una suma ponderada de vectores de codigos. La suma ponderada de los vectores de codigos consiste en k pares de vectores de codigos predefinidos y ponderaciones asociadas:
k
v = Z j j
j=0
donde Oj representa el vector de codigos j-esimo en un conjunto de vectores de codigos predefinidos ({Qj}), Wj representa la j-esima ponderacion real en un conjunto de ponderaciones predefinidas ({w/}), k corresponde al indice de los sumandos, que puede ser de hasta 7, y V corresponde al vector V que se esta codificando. La eleccion de k depende del codificador. Si el codificador elige una suma ponderada de dos o mas vectores de codigos, el numero total de vectores de codigos predefinidos que el codificador puede elegir es (N+1 )2, donde los vectores de codigos predefinidos se obtienen como coeficientes de expansion HOA de, en algunos ejemplos, las tablas F.2 a F.11. La referencia a las tablas indicadas por F seguidas por un punto y un numero se refieren a las tablas especificadas en el Anexo F de la Norma de audio 3D de MPEG-H, titulada "Information Technology - High efficiency coding and media delivery in heterogeneous environments - Part 3: 3D Audio [Tecnologia de la informacion - Codificacion de alta eficiencia y entrega de medios en entornos heterogeneos - Parte 3: Audio 3D]", ISO/IEC JTC1/SC 29, con fecha 20-02-2015 (20 de febrero de 2015), ISO/IEC 23008-3:2015(E), ISO/IEC JTC 1/SC 29/WG 11 (nombre de archivo: ISO_IEC_23008-3(E)-Word_document_v33.doc).
[0089] Cuando N es 4, se usa la tabla en el Anexo F.6 con 32 direcciones predefinidas. En todos los casos, los valores absolutos de las ponderaciones w se cuantifican vectorialmente con respecto a los valores de ponderacion predefinidos ru que se encuentran en las primeras k + 1 columnas de la tabla en la tabla F.12 que se muestran a continuacion y se senalizan con el indice de numero de fila asociado.
[0090] Los signos numericos de las ponderaciones w se codifican por separado como
_ ( l , u j > 0
s _ { 0 , a j < 0 (12)
[0091] En otras palabras, despues de senalizar el valor k, un vector V se codifica con los indices k + 1 que apuntan a los k + 1 vectores de codigos predefinidos {Oy}, un indice que apunta a las k ponderaciones cuantificadas {Wk} en el libro de codigos de ponderacion predefinido y k + 1 valores de signo numerico sj:
k
V = £ ( 2 . s- ; - 1 V W ( 13)
y-n
Si el codificador selecciona una suma ponderada de un vector de codigos, se utiliza un libro de codigos obtenido de la tabla F.8 en combinacion con los valores de ponderacion absolutos <y en la tabla de la tabla F.11, donde se muestran las dos tablas a continuacion. Ademas, el signo numerico del valor de ponderacion w puede codificarse por separado.
[0092] A este respecto, las tecnicas pueden permitir que el dispositivo de codificacion de audio 20 seleccione uno de una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida mediante la aplicacion de una síntesis basada en vectores para una pluralidad de coeficientes ambisonicos de orden superior.
[0093] Ademas, las tecnicas pueden permitir que el dispositivo de codificacion de audio 20 seleccione entre una pluralidad de libros de codigos emparejados para ser utilizados cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenida mediante la aplicacion de una síntesis basada en vectores a pluralidad de coeficientes ambisonicos de orden superior.
[0094] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede determinar, basandose en un conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en una version descompuesta de una pluralidad de coeficientes ambisonicos de orden superior (HOA). Cada uno de los valores de ponderacion puede corresponder a uno respectivo de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
[0095] En tales ejemplos, la unidad de codificacion de vectores V 52, en algunos ejemplos, puede cuantificar los datos indicativos de los valores de ponderacion. En tales ejemplos, para cuantificar los datos indicativos de los valores de ponderacion, la unidad de codificacion de vectores V 52 puede, en algunos ejemplos, seleccionar un subconjunto de los valores de ponderacion para cuantificar, y cuantificar los datos indicativos del subconjunto seleccionado de los valores de ponderacion. En tales ejemplos, la unidad de codificacion de vectores V 52 puede, en algunos ejemplos, no cuantificar datos indicativos de valores de ponderacion que no estan incluidos en el subconjunto seleccionado de los valores de ponderacion.
[0096] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede determinar un conjunto de N valores de ponderacion. En tales ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar los M valores de ponderacion mayores del conjunto de N valores de ponderacion para formar el subconjunto de los valores de ponderacion donde M es menor que N.
[0097] Para cuantificar los datos indicativos de los valores de ponderacion, la unidad de codificacion de vectores V 52 puede realizar al menos uno de cuantificacion escalar, cuantificacion vectorial y cuantificacion matricial con respecto a los datos indicativos de los valores de ponderacion. Tambien se pueden realizar otras tecnicas de cuantificacion, ademas de o en lugar de las tecnicas de cuantificacion mencionadas anteriormente.
[0098] Para determinar los valores de ponderacion, la unidad de codificacion de vectores V 52 puede, para cada uno de los valores de ponderacion, determinar el valor de ponderacion respectivo basado en uno respectivo de los vectores de codigos 63. Por ejemplo, la unidad de codificacion de vectores V 52 puede multiplicar el vector por uno respectivo de los vectores de codigos 63 para determinar el valor de ponderacion respectivo. En algunos casos, la unidad de codificacion de vectores V 52 puede implicar multiplicar el vector por una transposicion del respectivo de los vectores de codigos 63 para determinar el valor de ponderacion respectivo.
[0099] En algunos ejemplos, la version descompuesta de los coeficientes HOA puede ser una version descompuesta en valores singulares de los coeficientes HOA. En otros ejemplos, la version descompuesta de los coeficientes HOA puede ser al menos una de la version analizada de componentes principales (PCA) de los coeficientes HOA, una version transformada de Karhunen-Loeve de los coeficientes HOA, una version transformada de Hotelling de los coeficientes HOA, una version descompuesta ortogonal propia (POD) de los coeficientes HOA, y una version descompuesta en valores propios (EVD) de los coeficientes HOA.
[0100] En ejemplos adicionales, el conjunto de vectores de codigos 63 puede incluir al menos uno de un conjunto de vectores direccionales, un conjunto de vectores direccionales ortogonales, un conjunto de vectores direccionales ortonormales, un conjunto de vectores direccionales pseudoortonormales, un conjunto de vectores direccionales pseudoortogonales, un conjunto de vectores de base direccional, un conjunto de vectores ortogonales, un conjunto de vectores ortonormales, un conjunto de vectores pseudoortonormales, un conjunto de vectores pseudoortogonales, un conjunto de vectores de base armonica esferica, un conjunto de vectores normalizados, y un conjunto de vectores de base.
[0101] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede usar un libro de codigos de descomposicion para determinar las ponderaciones que se utilizan para representar un vector V (por ejemplo, un vector V[k] de primer plano reducido). Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de descomposicion de un conjunto de libros de codigos de descomposicion candidatos, y determinar las ponderaciones que representan el vector V en base a al libro de codigos de descomposicion seleccionado.
[0102] En algunos ejemplos, cada uno de los libros de codigos de descomposicion candidatos puede corresponder a un conjunto de vectores de codigos 63 que pueden usarse para descomponer un vector V y/o para determinar las ponderaciones que corresponden al vector V. En otras palabras, cada libro de codigos de descomposicion diferente corresponde a un conjunto diferente de vectores de codigos 63 que pueden usarse para descomponer un vector V. Cada entrada en el libro de codigos de descomposicion corresponde a uno de los vectores en el conjunto de vectores de codigos.
[0103] El conjunto de vectores de codigos de un libro de codigos de descomposicion puede corresponder a todos los vectores de codigos incluidos en una suma ponderada de vectores de codigos que se utiliza para descomponer un vector V. Por ejemplo, el conjunto de vectores de codigos puede corresponder al conjunto de vectores de codigos 63 ({Oy}) incluido en la suma ponderada de vectores de codigos que se muestra en el lado derecho de la expresion (l). En este ejemplo, cada uno de los vectores de codigos 63 (es decir, Oy) puede corresponder a una entrada en el libro de codigos de descomposicion.
[0104] Diferentes libros de codigos de descomposicion pueden tener un mismo numero de vectores de codigos 63 en algunos ejemplos. En otros ejemplos, diferentes libros de codigos de descomposicion pueden tener un numero diferente de vectores de codigos 63.
[0105] Por ejemplo, al menos dos de los libros de codigos de descomposicion candidatos pueden tener un numero diferente de entradas (es decir, los vectores de codigos 63 en este ejemplo). Como otro ejemplo, todos los libros de codigos de descomposicion candidatos pueden tener un numero diferente de entradas 63. Como un ejemplo adicional, al menos dos de los libros de codigos de descomposicion candidatos pueden tener un mismo numero de entradas 63. Como ejemplo adicional, todos los libros de codigos de descomposicion candidatos pueden tener el mismo numero de entradas 63.
[0106] La unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de descomposicion del conjunto de libros de codigos de descomposicion candidatos basandose en uno o mas criterios diversos. Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de descomposicion basandose en las ponderaciones correspondientes a cada libro de codigos de descomposicion. Por ejemplo, la unidad de codificacion de vectores V 52 puede realizar un analisis de las ponderaciones correspondientes a cada libro de codigos de descomposicion (a partir de la suma ponderada correspondiente que representa el vector V) para determinar cuantas ponderaciones se requieren para representar el vector V dentro de cierto margen de precision (como se define, por ejemplo, por un error de umbral). La unidad de codificacion de vectores V 52 puede seleccionar el libro de codigos de descomposicion que requiere el menor numero de ponderaciones. En ejemplos adicionales, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de descomposicion basado en las caracteristicas del campo sonoro subyacente (por ejemplo, creado artificialmente, grabado de forma natural, altamente difuso, etc.).
[0107] Para determinar las ponderaciones (es decir, los valores de ponderacion) basados en un libro de codigos seleccionado, la unidad de codificacion de vectores V 52 puede, para cada una de las ponderaciones, seleccionar una entrada del libro de codigos (es decir, el vector de codigo) que corresponde a la ponderacion respectiva (como se identifica, por ejemplo, mediante el elemento sintactico "WeightIdx"), y determinar el valor de ponderacion para la ponderacion respectiva en base a la entrada del libro de codigos seleccionada. Para determinar el valor de ponderacion basado en la entrada seleccionada del libro de codigos, la unidad de codificacion de vectores V 52 puede, en algunos ejemplos, multiplicar el vector V por el vector de codigos 63 que se especifica en la entrada del libro de codigos seleccionada para generar el valor de ponderacion. Por ejemplo, la unidad de codificacion de vectores V 52 puede multiplicar el vector V por la transposicion del vector de codigos 63 que se especifica por la entrada del libro de codigos seleccionada para generar un valor de ponderacion escalar. Como otro ejemplo, la ecuacion (2) se puede usar para determinar los valores de ponderacion.
[0108] En algunos ejemplos, cada uno de los libros de codigos de descomposicion puede corresponder a uno respectivo de una pluralidad de libros de codigos de cuantificacion. En tales ejemplos, cuando la unidad de codificacion de vectores V 52 selecciona un libro de codigos de descomposicion, la unidad de codificacion de vectores V 52 tambien puede seleccionar un libro de codigos de cuantificacion que corresponde al libro de codigos de descomposicion.
[0109] La unidad de codificacion de vectores V 52 puede proporcionar a la unidad de generacion del flujo de bits 42 datos indicativos de que libro de codigos de descomposicion se selecciono (por ejemplo, el elemento sintactico CodebkIdx) para codificar uno o mas de los vectores V[k] de primer plano reducidos 55 para que la unidad de generacion del flujo de bits 42 pueda incluir dichos datos en el flujo de bits resultante. En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de descomposicion para usar para cada trama de los coeficientes HOA a codificar. En tales ejemplos, la unidad de codificacion de vectores V 52 puede proporcionar datos indicativos de que libro de codigos de descomposicion se selecciono para codificar cada trama (por ejemplo, el elemento sintactico CodebkIdx) a la unidad de generacion de flujo de bits 42. En algunos ejemplos, los datos indicativos de que libro de codigos de descomposicion se selecciono pueden ser un indice del libro de codigos y/o un valor de identificacion que corresponde al libro de codigos seleccionado.
[0110] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar un numero indicativo de cuantas ponderaciones se utilizaran para estimar un vector V (por ejemplo, un vector V[k] de primer plano reducido). El numero indicativo de cuantas ponderaciones deben usarse para estimar un vector V tambien puede ser indicativo del numero de ponderaciones que se cuantificaran y/o codificaran por la unidad de codificacion de vectores V 52 y/o el dispositivo de codificacion de audio 20. El numero indicativo de cuantas ponderaciones se deben usar para estimar un vector V tambien se puede denominar como el numero de ponderaciones a cuantificar y/o codificar. Este numero indicativo de cuantas ponderaciones puede representarse de forma alternativa como el numero de vectores de codigos 63 a los que corresponden estas ponderaciones. Por lo tanto, este numero tambien se puede denotar como el numero de vectores de codigos 63 utilizados para descuantificar un vector V cuantificado vectorialmente, y se puede denotar mediante un elemento sintactico NumVecIndices.
[0111] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar el numero de ponderaciones a cuantificar y/o codificar para un vector V particular en base a los valores de ponderacion que se determinaron para ese vector V particular. En ejemplos adicionales, la unidad de codificacion de vectores V 52 puede seleccionar el numero de ponderaciones a cuantificar y/o codificar para un vector V particular en base a un error asociado con la estimacion del vector V usando uno o mas numeros de ponderacion particulares.
[0112] Por ejemplo, la unidad de codificacion de vectores V 52 puede determinar un umbral de error maximo para un error asociado con la estimacion de un vector V, y puede determinar cuantas ponderaciones se necesitan para hacer que el error este entre un vector V estimado que se estima con ese numero de ponderaciones y el vector V menor o igual al umbral de error maximo. El vector estimado puede corresponder a la suma ponderada de los vectores de codigos, donde se utilizan menos que todos los vectores de codigos del libro de codigos en la suma ponderada.
[0113] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede determinar cuantas ponderaciones se necesitan para hacer que el error este por debajo de un umbral basado en la siguiente ecuacion:
X a
error = V FG - X i= i C ® , * a , ) (14)
donde Q/ representa el /-esimo vector de codigos, Oi representa la i -esima ponderacion, Vfg corresponde al vector V que esta siendo descompuesto, cuantificado y/o codificado por la unidad de codificacion de vectores V 52, y |x|a es la norma del valor x, donde a es un valor indicativo de que tipo de norma se utiliza. Por ejemplo, a = 1 representa una norma L1 y a = 2 representa una norma L2. La FIG. 20 es un diagrama que ilustra un grafico 700 de ejemplo que muestra un error umbral utilizado para seleccionar X* numero de vectores de codigos de acuerdo con diversos aspectos de las tecnicas descritas en esta divulgacion. El grafico 700 incluye una linea 702 que ilustra como el error disminuye a medida que aumenta el numero de vectores de codigos.
[0114] En el ejemplo mencionado anteriormente, los indices, /, pueden, en algunos ejemplos, indexar las ponderaciones en una secuencia de orden tal que las ponderaciones de mayor magnitud (por ejemplo, mayor valor absoluto) ocurran antes de las ponderaciones de menor magnitud (por ejemplo, menor valor absoluto) en la secuencia ordenada. En otras palabras, 01 puede representar el valor de ponderacion mas grande, 02 puede representar el siguiente valor de ponderacion mas grande, y asi sucesivamente. De manera similar, o x puede representar el valor de ponderacion mas bajo.
[0115] La unidad de codificacion de vectores V 52 puede proporcionar a la unidad de generacion de flujo de bits 42 datos indicativos de cuantas ponderaciones se seleccionaron para la codificacion de uno o mas de los vectores V[k] de primer plano reducidos 55, de modo que la unidad de generacion de flujo de bits 42 pueda incluir dichos datos en el flujo de bits resultante. En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar un numero de ponderaciones para usar para codificar un vector V para cada trama de coeficientes HOA a codificar. En tales ejemplos, la unidad de codificacion de vectores V 52 puede proporcionar a la unidad de generacion de flujo de bits 42 datos indicativos de cuantas ponderaciones se seleccionaron para la codificacion de cada trama seleccionada a la unidad de generacion de flujo de bits 42. En algunos ejemplos, los datos indicativos de cuantas ponderaciones se seleccionaron pueden ser un numero indicativo de cuantas ponderaciones se seleccionaron para la codificacion y/o cuantificacion.
[0116] En algunos ejemplos, la unidad de codificacion de vectores V 52 puede usar un libro de codigos de cuantificacion para cuantificar el conjunto de ponderaciones que se utilizan para representar y/o estimar un vector V (por ejemplo, un vector V[k] de primer plano reducido). Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de cuantificacion de un conjunto de libros de codigos de cuantificacion candidatos, y cuantificar el vector V en base al libro de codigos de cuantificacion seleccionado.
[0117] En algunos ejemplos, cada uno de los libros de codigos de cuantificacion candidatos puede corresponder a un conjunto de vectores de cuantificacion candidatos que pueden usarse para cuantificar un conjunto de ponderaciones. El conjunto de ponderaciones puede formar un vector de ponderaciones que se cuantificaran utilizando estos libros de codigos de cuantificacion. En otras palabras, cada libro de codigos de cuantificacion diferente corresponde a un conjunto diferente de vectores de cuantificacion de los que se puede seleccionar un unico vector de cuantificacion para cuantificar el vector V.
[0118] Cada entrada en el libro de codigos puede corresponder a un vector de cuantificacion candidato. El numero de componentes en cada uno de los vectores de cuantificacion candidatos puede, en algunos ejemplos, ser igual al numero de ponderaciones a cuantificar.
[0119] En algunos ejemplos, diferentes libros de codigos de cuantificacion pueden tener el mismo numero de vectores de cuantificacion candidatos. En ejemplos adicionales, diferentes libros de codigos de cuantificacion pueden tener un numero diferente de vectores de cuantificacion candidatos.
[0120] Por ejemplo, al menos dos de los libros de codigos de cuantificacion candidatos pueden tener un numero diferente de vectores de cuantificacion candidatos. Como otro ejemplo, todos los libros de codigos de cuantificacion candidatos pueden tener un numero diferente de vectores de cuantificacion candidatos. Como un ejemplo adicional, al menos dos de los libros de codigos de cuantificacion candidatos pueden tener un mismo numero de vectores de cuantificacion candidatos. Como ejemplo adicional, todos los libros de codigos de cuantificacion candidatos pueden tener el mismo numero de vectores de cuantificacion candidatos.
[0121] La unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de cuantificacion del conjunto de libros de codigos de cuantificacion candidatos basandose en uno o mas criterios diversos. Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de cuantificacion para un vector V basado en un libro de codigos de descomposicion que se uso para determinar las ponderaciones para el vector V. Como otro ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar el libro de codigos de cuantificacion para un vector V basandose en una distribucion de probabilidad de los valores de ponderacion a cuantificar. En otros ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar el libro de codigos de cuantificacion para un vector V basandose en una combinacion de la seleccion del libro de codigos de descomposicion que se uso para determinar las ponderaciones para el vector V, asi como el numero de las ponderaciones que se consideraron necesarias para representar el vector V dentro de algun umbral de error (por ejemplo, segun la Ecuacion 14).
[0122] Para cuantificar las ponderaciones en base al libro de codigos de cuantificacion seleccionado, la unidad de codificacion de vectores V 52 puede, en algunos ejemplos, determinar un vector de cuantificacion a usar para cuantificar el vector V en base al libro de codigos de cuantificacion seleccionado. Por ejemplo, la unidad de codificacion de vectores V 52 puede realizar la cuantificacion del vector (VQ) para determinar el vector de cuantificacion a usar para cuantificar el vector V.
[0123] En ejemplos adicionales, para cuantificar las ponderaciones en base al libro de codigos de cuantificacion seleccionado, la unidad de codificacion de vectores V 52 puede, para cada vector V, seleccionar un vector de cuantificacion del libro de codigos de cuantificacion seleccionado en base a un error de cuantificacion asociado al uso de uno o mas de los vectores de cuantificacion para representar el vector V. Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un vector de cuantificacion candidato del libro de codigos de cuantificacion seleccionado que minimiza un error de cuantificacion (por ejemplo, minimiza un error de minimos cuadrados).
[0124] En algunos ejemplos, cada uno de los libros de codigos de cuantificacion puede corresponder a un libro respectivo de una pluralidad de libros de codigos de descomposicion. En tales ejemplos, la unidad de codificacion de vectores V 52 tambien puede seleccionar un libro de codigos de cuantificacion para cuantificar el conjunto de ponderaciones asociadas con un vector V basandose en el libro de codigos de descomposicion que se uso para determinar las ponderaciones para el vector V. Por ejemplo, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de cuantificacion que corresponde al libro de codigos de descomposicion que se uso para determinar las ponderaciones para el vector V.
[0125] La unidad de codificacion de vectores V 52 puede proporcionar a la unidad de generacion de flujo de bits 42 datos indicativos de que libro de codigos de cuantificacion se selecciono para cuantificar las ponderaciones correspondientes a uno o mas de los vectores V[ft] de primer plano reducidos 55, de modo que la unidad de generacion de flujo de bits 42 pueda incluir dichos datos en el flujo de bits resultante. En algunos ejemplos, la unidad de codificacion de vectores V 52 puede seleccionar un libro de codigos de cuantificacion para usar para cada trama de los coeficientes HOA que se codificaran. En tales ejemplos, la unidad de codificacion de vectores V 52 puede proporcionar datos indicativos de que libro de codigos de cuantificacion se selecciono para cuantificar las ponderaciones en cada trama a la unidad de generacion del flujo de bits 42. En algunos ejemplos, los datos indicativos de que libro de codigos de cuantificacion se selecciono pueden ser un indice del libro de codigos y/o un valor de identificacion que corresponde al libro de codigos seleccionado.
[0126] La unidad codificadora de audio psicoacustica 40 incluida dentro del dispositivo de codificacion de audio 20 puede representar multiples instancias de un codificador de audio psicoacustico, cada una de las cuales se utiliza para codificar un objeto de audio diferente o canal HOA de cada uno de los coeficientes HOA ambientales compensados en energia 47' y las nFG senales interpoladas 49' para generar los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 61. La unidad codificadora de audio psicoacustica 40 puede emitir los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 61 a la unidad de generacion de flujo de bits 42.
[0127] La unidad de generacion del flujo de bits 42 incluida dentro del dispositivo de codificacion de audio 20 representa una unidad que formatea datos para adaptarse a un formato conocido (que puede referirse a un formato conocido por un dispositivo de descodificacion), generando de este modo el flujo de bits basado en vectores 21. El flujo de bits 21 puede, en otras palabras, representar datos de audio codificados, que se han codificado de la manera descrita anteriormente. La unidad de generacion de flujo de bits 42 puede representar un multiplexor en algunos ejemplos, que puede recibir los vectores codificados V[ft] de primer plano 57, los coeficientes HOA ambientales codificados 59, las nFG senales codificadas 61 y la informacion de canal de fondo 43. La unidad de generacion del flujo de bits 42 puede generar entonces un flujo de bits 21 basado en los vectores codificados V[ft] de primer plano 57, los coeficientes HOA ambientales codificados 59, las nFG senales codificadas 61 y la informacion de canal de fondo 43. De esta forma, la unidad de generacion de flujo de bits 42 puede especificar de ese modo los vectores 57 en el flujo de bits 21 para obtener el flujo de bits 21. El flujo de bits 21 puede incluir un flujo de bits primario o principal y uno o mas flujos de bits de canal lateral.
[0128] Aunque no se muestra en el ejemplo de la FIG. 3A, el dispositivo de codificacion de audio 20 tambien puede incluir una unidad de salida de flujo de bits que conmuta la salida del flujo de bits desde el dispositivo de codificacion de audio 20 (por ejemplo, entre el flujo de bits basado en la direccion 21 y el flujo de bits basado en vectores 21), basandose en si una trama actual va a ser codificada usando la síntesis basada en la direccion o la síntesis basada en vectores. La unidad de salida de flujo de bits puede realizar la conmutacion basandose en el elemento sintactico emitido por la unidad de analisis de contenido 26, indicando si se realizo una síntesis basada en la direccion (como resultado de detectar que los coeficientes HOA 11 se generaron a partir de un objeto de audio sintetico) o si se realizo una síntesis basada en vectores (como resultado de detectar que se registraron los coeficientes HOA). La unidad de salida del flujo de bits puede especificar la sintaxis de cabecera correcta para indicar la conmutacion o codificacion actual utilizada para la trama actual, junto con la respectiva de los flujos de bits 21.
[0129] Ademas, como se ha indicado anteriormente, la unidad de analisis del campo sonoro 44 puede identificar BGtot coeficientes HOA ambientales 47, que pueden cambiar de trama a trama (aunque a veces BGtot puede permanecer constante o igual entre dos o mas tramas adyacentes (en el tiempo)). El cambio en BGtot puede dar como resultado cambios en los coeficientes expresados en los vectores V[k] de primer plano reducidos 55. El cambio en BGtot puede dar como resultado los coeficientes HOA de fondo (que tambien pueden denominarse "coeficientes HOA ambientales") que cambian de trama a trama (aunque, de nuevo, a veces BGtot puede permanecer constante o igual entre dos o mas tramas adyacentes (en el tiempo)). Los cambios a menudo dan como resultado un cambio de energia para los aspectos del campo sonoro representados por la adicion o eliminacion de los coeficientes HOA ambientales adicionales y la correspondiente eliminacion de coeficientes de, o adicion de coeficientes a, los vectores V[k] de primer plano reducidos 55.
[0130] Como resultado, la unidad de analisis del campo sonoro 44 puede determinar ademas cuando los coeficientes HOA ambientales cambian de trama a trama, y generar un indicador u otro elemento sintactico indicativo del cambio para el coeficiente HOA ambiental, en terminos de ser utilizado para representar los componentes ambientales del campo sonoro (donde el cambio tambien puede denominarse una "transicion" del coeficiente HOA ambiental o una "transicion" del coeficiente HOA ambiental). En particular, la unidad de reduccion de coeficientes 46 puede generar el indicador (que puede indicarse como un indicador AmbCoeffTransition o un indicador AmbCoeffIdxTransition), proporcionando el indicador a la unidad de generacion de flujo de bits 42 para que el indicador pueda incluirse en el flujo de bits 21 (posiblemente como parte de la informacion de canal lateral).
[0131] La unidad de reduccion de coeficientes 46 puede, ademas de especificar el indicador de transicion de coeficientes ambientales, tambien modificar como se generan los vectores V[k] de primer plano reducidos 55. En un ejemplo, al determinar que uno de los coeficientes HOA ambientales esta en transicion durante la trama actual, la unidad de reduccion de coeficientes 46 puede especificar un coeficiente vectorial (que tambien puede denominarse "elemento vectorial" o "elemento") para cada uno de los vectores V de los vectores V[k] de primer plano reducidos 55, que corresponde al coeficiente HOA ambiental en transicion. De nuevo, el coeficiente HOA ambiental en transicion puede agregar o eliminar del numero total BGtot de coeficientes de fondo. Por lo tanto, el cambio resultante en el numero total de coeficientes de fondo afecta si el coeficiente HOA ambiental se incluye o no en el flujo de bits, y si el elemento correspondiente de los vectores V se incluye para los vectores V especificados en el flujo de bits en los modos de configuracion segundo y tercero, descritos anteriormente. Se proporciona mas informacion sobre como la unidad de reduccion de coeficientes 46 puede especificar los vectores V[k] de primer plano reducidos 55 para superar los cambios en la energia en la Solicitud de EE.UU. con n.° de serie 14/594.533, titulada "TRANSITIONING OF AMBIENT HIGHER_ORDER AMBISONIC COEFFICIENTS [TRANSICION DE COEFICIENTES AMBISONICOS DE ORDEN SUPERIOR AMBIENTALES]", presentada 12 de enero de 2015.
[0132] La FIG. 3B es un diagrama de bloques que ilustra, con mayor detalle, otro ejemplo del dispositivo de codificacion de audio 420 mostrado en el ejemplo de la FIG. 3 que puede realizar diversos aspectos de las tecnicas descritas en esta divulgacion. El dispositivo de codificacion de audio 420 mostrado en la FIG. 3B es similar al dispositivo de codificacion de audio 20, excepto que la unidad de codificacion de vectores v 52 en el dispositivo de codificacion de audio 420 tambien proporciona informacion de valor de ponderacion 71 a la unidad de reordenacion 34.
[0133] En algunos ejemplos, la informacion del valor de ponderacion 71 puede incluir uno o mas de los valores de ponderacion calculados por la unidad de codificacion de vectores v 52. En otros ejemplos, la informacion de valor de ponderacion 71 puede incluir informacion indicativa de que ponderaciones se seleccionaron para la cuantificacion y/o codificacion por la unidad de codificacion de vectores v 52. En ejemplos adicionales, la informacion de valor de ponderacion 71 puede incluir informacion indicativa de que ponderaciones no se seleccionaron para la cuantificacion y/o codificacion por la unidad de codificacion de vectores v 52. La informacion de valor de ponderacion 71 puede incluir cualquier combinacion de cualquiera de los elementos de informacion mencionados anteriormente, asi como otros elementos, ademas de o en lugar de los elementos de informacion mencionados anteriormente.
[0134] En algunos ejemplos, la unidad de reordenacion 34 puede reordenar los vectores basandose en la informacion del valor de ponderacion 71 (por ejemplo, basandose en los valores de ponderacion). En los ejemplos en los que la unidad de codificacion de vectores v 52 selecciona un subconjunto de los valores de ponderacion para cuantificar y/o codificar, la unidad de reordenacion 34 puede, en algunos ejemplos, reordenar los vectores basandose en cual de los valores de ponderacion se seleccionaron para cuantificar o codificar (lo que puede ser indicado por la informacion de valor de ponderacion 71).
[0135] La FIG. 4A es un diagrama de bloques que ilustra con mayor detalle el dispositivo de descodificacion de audio 24 de la FIG. 2. Como se muestra en el ejemplo de la FIG. 4A, el dispositivo de descodificacion de audio 24 puede incluir una unidad de extraccion 72, una unidad de reconstruccion basada en la direccionalidad 90 y una unidad de reconstruccion basada en vectores 92. Aunque se describe a continuacion, en la Publicacion de Solicitud de Patente Internacional numero WO 2014/194099, titulada "INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD" ["INTERPOLACION PARA REPRESENTACIONES DESCOMPUESTAS DE UN CAMPO SONORO"], presentada el 29 de mayo de 2014, hay mas informacion disponible sobre el dispositivo de descodificacion de audio 24 y los diversos aspectos de descompresion, o de descodificar de otro modo, de los coeficientes HOA.
[0136] La unidad de extraccion 72 puede representar una unidad configurada para recibir el flujo de bits 21 y extraer las diversas versiones codificadas (por ejemplo, una version codificada basada en la direccion o una version codificada basada en vector) de los coeficientes HOA 11. La unidad de extraccion 72 puede determinar a partir del elemento sintactico indicado anteriormente indicativo de si los coeficientes HOA 11 se codificaron a traves de varias versiones basadas en la direccion o en vectores. Cuando se realizo una codificacion basada en la direccion, la unidad de extraccion 72 puede extraer la version basada en la direccion de los coeficientes HOA 11 y los elementos sintacticos asociados a la version codificada (que se indica como informacion basada en la direccion 91 en el ejemplo de la FIG. 4A), pasando la informacion basada en la direccion 91 a la unidad de reconstruccion basada en la direccion 90. La unidad de reconstruccion basada en la direccion 90 puede representar una unidad configurada para reconstruir los coeficientes HOA en forma de coeficientes HOA 11', basandose en la informacion basada en la direccion 91.
[0137] Cuando el elemento sintactico indica que los coeficientes HOA 11 se han codificado utilizando una síntesis basada en vectores, la unidad de extraccion 72 puede extraer los vectores V[ft] codificados de primer plano (que pueden incluir las ponderaciones codificadas 57 y/o los indices 73), los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 59. La unidad de extraccion 72 puede pasar las ponderaciones codificadas 57 a la unidad de cuantificacion 74 y los coeficientes HOA ambientales codificados 59, junto con las nFG senales codificadas 61, a la unidad de descodificacion psicoacustica 80.
[0138] Para extraer las ponderaciones codificadas 57, los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 59, la unidad de extraccion 72 puede obtener un contenedor HOADecoderConfig que incluye el elemento sintactico denominado CodedVVecLength. La unidad de extraccion 72 puede analizar sintacticamente el CodedVVecLength del contenedor HOADecoderConfig. La unidad de extraccion 72 puede estar configurada para funcionar en una cualquiera de los modos de configuracion descritas anteriormente, basandose en el elemento sintactico CodedVVecLength.
[0139] En algunos ejemplos, la unidad de extraccion 72 puede funcionar de acuerdo con la instruccion de conmutacion presentada en el siguiente pseudocodigo con la sintaxis presentada en la siguiente tabla de sintaxis (donde el tachado indica la eliminacion del objeto tachado y los subrayados indican la adicion del objeto subrayado en relacion con las versiones anteriores de la tabla de sintaxis) para VVectorData como se entiende en vista de la semantica que lo acompana:
switch CodedVVecLength{
case 0:
VVecLength = NumOfHoaCoeffs;
for (m=0; m<VVecLength; +m){
VVecCoeffId[m] = m;
}
break;
case 1:
VVecLength = NumOfHoaCoeffs - MinNumOfCoeffsForAmbHOA -NumOfContAddHoaChans;
CoeffIdx = MinNumOfCoeffsForAmbHOA+1;
for (m=0; m<VVecLength; +m){
bIsInArray = isMemberOf(CoeffIdx, ContAddHoaCoeff,
NumOfContAddHoaChans);
while(bIsInAnnay){
CoeffIdx++;
bIsInArray = isMembenOf(CoeffIdx, ContAddHoaCoeff,
NumOfContAddHoaChans);
}
VVecCoeffId[m] = CoeffIdx-1;
}
break;
case 2:
VVecLength = NumOfHoaCoeffs - MinNumOfCoeffsForAmbHOA;
for (m=0; m< VVecLength; +m){
VVecCoeffId[m] = m MinNumOfCoeffsForAmbHOA;
}
}
Figure imgf000024_0001
VVectorData(VecSigChannelIds(i))
[0140] Esta estructura contiene los datos de Vector V codificado utilizados para la síntesis de senales basada en vectores.
VVec(k)[i] Este es el Vector V para la k-esima HOAframe() para el i-esimo canal.
VVecLength Esta variable indica el numero de elementos vectoriales a leer.
VVecCoeffld Este vector contiene los indices de los coeficientes del Vector V transmitidos.
VecVal Un valor entero entre 0 y 255.
aVal Una variable temporal utilizada durante la descodificacion de VVectorData.
huffVal Una palabra de codigo de Huffman, para ser descodificada por Huffman.
sgnVal Este es el valor de signo codificado utilizado durante la descodificacion.
intAddVal Este es un valor entero adicional utilizado durante la descodificacion.
NumVecIndices El numero de vectores utilizados para descuantificar un vector V cuantificado por vectores. WeightIdx El indice en WeightValCdbk utilizado para descuantificar un vector V cuantificado por vectores.
nbitsW Tamano de campo para leer WeightIdx para descodificar un vector V cuantificado por vectores.
WeightValCdbk Libro de codigos que contiene un vector de coeficientes de ponderacion de valor real positivo.
Si NumVecIndices se establece en 1, se usa WeightValCdbk con 16 entradas, de lo contrario se usa WeightValCdbk con 256 entradas.
VvecIdx Un indice para VecDict, utilizado para descuantificar un vector V cuantificado por vectores. nbitsIdx Tamano de campo para leer VvecIdxs individuales para descodificar un vector V cuantificado por vectores.
WeightVal Un coeficiente de ponderacion de valor real para descodificar un vector V cuantificado por vectores.
[0141] En la tabla de sintaxis anterior, la primera instruccion de conmutacion con los cuatro casos (casos 0-3) proporciona una forma mediante la cual se determina la longitud del vector Vtdist en terminos del numero (VVecLength) y los indices de los coeficientes (VVecCoeffId). El primer caso, caso 0, indica que se especifican todos los coeficientes para los vectores Vtdist (NumOfHoaCoeffs). El segundo caso, caso 1, indica que solo se especifican aquellos coeficientes del vector Vtdist que corresponden al numero mayor que un MinNumOfCoeffsForAmbHOA, que puede indicar lo que se denomina (Ndist + 1)2 - (Nbg + 1)2 anteriormente. Ademas, estos coeficientes NumOfContAddAmbHoaChan identificados en ContAddAmbHoaChan se restan. La lista ContAddAmbHoaChan especifica canales adicionales (donde "canales" se refiere a un coeficiente particular correspondiente a un cierta combinacion de orden y suborden) correspondiente a un orden que excede el orden MinAmbHoaOrder. El tercer caso, caso 2, indica que se especifican aquellos coeficientes del vector Vtdist que corresponden al numero mayor que un MinNumOfCoeffsForAmbHOA, que puede indicar lo que se denomina (Ndist + 1)2 - (Nbg + 1)2 anteriormente. Tanto la VVecLength como la lista VVecCoeffId son validas para todos los VVectors dentro de HOAFrame.
[0142] Despues de esta instruccion de conmutacion, la decision de realizar una cuantificacion vectorial o una descuantificacion escalar uniforme puede controlarse mediante NbitsQ (o, como se indica anteriormente, nbits). Anteriormente, solo se proponia la cuantificacion escalar para cuantificar los Vvectors (por ejemplo, cuando NbitsQ es igual a 4). Si bien la cuantificacion escalar todavia se proporciona cuando NBitsQ es igual a 5, se puede realizar una cuantificacion vectorial de acuerdo con las tecnicas descritas en esta divulgacion cuando, como ejemplo, NbitsQ es igual a 4.
[0143] En otras palabras, una senal HOA que tiene una direccionalidad fuerte se representa mediante una senal de audio de primer plano y la informacion espacial correspondiente, es decir, un vector V en los ejemplos de esta divulgacion. En las tecnicas de codificacion del vector V descritas en esta divulgacion, cada vector V se representa mediante una suma ponderada de vectores direccionales predefinidos, como se indica en la siguiente ecuacion:
V - i t O iO i
=1
donde Wi y Qi son un valor de ponderacion i-esimo y el vector direccional correspondiente, respectivamente.
[0144] Un ejemplo de la codificacion del vector V se ilustra en la FIG. 16. Como se muestra en la FIG. 16 (a), un vector V original puede representarse por una mezcla de varios vectores direccionales. El vector V original puede entonces estimarse por una suma ponderada como se muestra en la FIG. 16 (b) donde se muestra un vector de ponderacion en la FIG. 16 (e). Las FlG. 16 (c) y (f) ilustran los casos en que solo se seleccionan los Is (Is^ I) valores de ponderacion mas altos. La cuantificacion vectorial (VQ) se puede realizar para los valores de ponderacion seleccionados y el resultado se ilustra en las FIG. 16 (d) y (g).
[0145] La complejidad computacional de este esquema de codificacion de vectores v puede determinarse de la siguiente manera:
0,06 MOPS (orden de HOA = 6) / 0,05 MOPS (orden de HOA = 5);
y
0,03 MOPS (orden de HOA = 4) / 0,02 MOPS (orden de HOA = 3).
La complejidad de la ROM se puede determinar como 16,29 kbytes (para las ordenes de HOA 3, 4, 5 y 6), mientras que el retardo algoritmico se determina como 0 muestras.
[0146] La modificacion requerida a la version actual de la norma de codificacion de audio 3D mencionada anteriormente puede indicarse dentro de la tabla de sintaxis VVectorData que se muestra anteriormente mediante el uso de subrayados. Es decir, en el CD de la norma propuesta de audio MPEG-H 3D mencionada anteriormente, la codificacion de vectores V se realizo con cuantificacion escalar (SQ) o SQ seguida de la codificacion Huffman.
Los bits requeridos del procedimiento de cuantificacion vectorial (VQ) propuesto pueden ser mas bajos que los procedimientos de codificacion SQ convencionales. Para los 12 elementos de prueba de referencia, los bits requeridos en promedio son los siguientes:
• SQ+Huffman: 16,25 kbps
• VQ propuesta: 5,25 kbps
Los bits guardados pueden ser reutilizados para su uso en la codificacion de audio perceptual.
[0147] La unidad de reconstruccion de vectores v 74 puede, en otras palabras, operar de acuerdo con el siguiente pseudocodigo para reconstruir los vectores V:
Figure imgf000026_0001
[0148] De acuerdo con el pseudocodigo anterior (con tachados que indican la eliminacion del objeto tachado), la unidad de reconstruccion de vectores v 74 puede determinar VVecLength por el pseudocodigo para la instruccion de conmutacion basada en el valor de CodedVVecLength. Basandose en este VVecLength, la unidad de reconstruccion de vectores v 74 puede iterar a traves de las siguientes instrucciones if/elseif, que consideran el valor de NbitsQ. Cuando el valor NbitsQ i-esimo para la trama k-esima es igual a 4, la unidad de reconstruccion de vectores v 74 determina que se debe realizar una descuantificacion del vector.
[0149] El elemento sintactico cdbLen indica el numero de entradas en el diccionario o el libro de codigos de los vectores de codigos (donde este diccionario se denota como "VecDict" en el pseudocodigo anterior y representa un libro de codigos con entradas del libro de codigos cdbLen que contienen vectores de coeficientes de expansion HOA, utilizados para descodificar un vector V cuantificado por vectores), que se obtiene en base a los NumVvecIndicies y el orden HOA. Cuando el valor de NumVvecIndicies es igual a uno, los coeficientes de expansion HOA del libro de codigos de vectores se obtienen de la tabla F.8 anterior junto con un libro de codigos de valores de ponderacion de 8x1 que se muestra en la tabla F.11 anterior. Cuando el valor de NumVvecIndicies es mayor que uno, el libro de codigos de vectores con O vectores se usa en combinacion con los valores de ponderacion de 256x8 que se muestran en la tabla F.12 anterior.
[0150] Aunque se describe anteriormente como utilizando un libro de codigos de tamano 256x8, se pueden usar diferentes libros de codigos con diferentes numeros de valores. Es decir, en lugar de val0-val7, se puede usar un libro de codigos con 256 filas estando indexada cada fila por un valor de indice diferente (indice 0 - indice 255) y con un numero diferente de valores, como val 0 - val 9 (para un total de diez valores) o val 0 - val 15 (para un total de 16 valores). Las FIG. 19A y 19B son diagramas que ilustran libros de codigos con 256 filas y teniendo cada fila 10 valores y 16 valores, respectivamente, que pueden usarse de acuerdo con diversos aspectos de las tecnicas descritas en esta divulgacion.
[0151] La unidad de reconstruccion del vector v 74 puede obtener el valor de ponderacion para cada vector de codigos correspondiente utilizado para reconstruir el vector V basandose en un libro de codigos de valor de ponderacion (indicado como "WeightValCdbk"), que puede representar una tabla multidimensional indexada en base a uno o mas de un indice del libro de codigos (denotado "CodebkIdx" en la tabla de sintaxis VVectorData(i) anterior) y un indice de ponderaciones (denotado "WeightIdx" en la tabla de sintaxis VVectorData(i) anterior). Este elemento sintactico CodebkIdx puede definirse en una parte de la informacion del canal lateral, como se muestra en la siguiente tabla de sintaxis ChannelSidelnfoData(i).
Tabla - Sintaxis de ChannelSideInfoData(i)
Figure imgf000027_0001
[0152] Los subrayados en la tabla anterior denotan cambios en la tabla de sintaxis existente para adaptar la adicion de CodebkIdx. La semantica para la tabla anterior es la siguiente.
Esta carga util contiene la informacion lateral para el i-esimo canal. El tamano y los datos de la carga util dependen del tipo de canal.
ChannelType[i] Este elemento almacena el tipo del i-esimo canal que se define en la Tabla 95. ActiveDirsIds[i] Este elemento indica la direccion de la senal direccional activa utilizando un indice de los 900 puntos predefinidos y distribuidos uniformemente del Anexo F.7. La palabra de codigo 0 se utiliza para senalizar el final de una senal direccional.
PFlag[i] El indicador de prediccion utilizado para la descodificacion de Huffman del vector V cuantificado escalarmente asociado con la senal basada en vectores del i-esimo canal.
CbFlag[i] El indicador del libro de codigos utilizado para la descodificacion de Huffman del vector V cuantificado escalarmente asociado con la senal basada en vectores del i-esimo canal.
CodebkIdxfil Senaliza el libro de codigos especifico utilizado para descuantificar el vector V cuantificado por vectores asociado con la senal basada en vectores del i-esimo canal. NbitsQ[i] Este indice determina la tabla de Huffman utilizada para la descodificacion de Huffman de los datos asociados con la senal basada en vectores del i-esimo canal. La palabra de codigo 5 determina el uso de un descuantificador de 8 bits uniforme. Los dos MSB 00 determinan la reutilizacion de los datos NbitsQ[i], PFlag[i] y CbFlag[i] de la trama anterior (k-1).
bA, bB El msb (bA) y el segundo msb (bB) del campo NbitsQ[i].
uintC La palabra de codigo de los dos bits restantes del campo NbitsQ[i].
AddAmbHoalnfoChannel(i) Esta carga util contiene la informacion para coeficientes HOA ambientales adicionales.
[0153] De acuerdo con la semantica de la tabla de sintaxis de VVectorData, el elemento sintactico nbitsW representa un tamano de campo para leer WeightIdx para descodificar un vector V cuantificado por vectores, mientras que el elemento sintactico WeightValCdbk representa un libro de codigos que contiene un vector de coeficientes de ponderacion de valor real positivo. Si NumVeclndices se establece en 1, se usa WeightValCdbk con 8 entradas, de lo contrario se usa WeightValCdbk con 256 entradas. Segun la tabla de sintaxis de VVectorData, cuando CodebkIdx es igual a cero, la unidad de reconstruccion de vectores v 74 determina que nbitsW es igual a 3 y que WeightIdx puede tener un valor en el intervalo de 0-7. En este caso, el diccionario de vectores de codigos VecDict tiene un numero relativamente grande de entradas (por ejemplo, 900) y esta emparejado con un libro de codigos de ponderaciones que tiene solo 8 entradas. Cuando el CodebkIdx no es igual a cero, la unidad de reconstruccion de vectores v 74 determina que nbitsW es igual a 8 y el WeightIdx puede tener un valor en el intervalo de 0-255. En este caso, el VecDict tiene un numero relativamente pequeno de entradas (por ejemplo, 25 o 32 entradas) y se requiere un numero relativamente mayor de ponderaciones (por ejemplo, 256) en el libro de codigos de ponderaciones para garantizar un error aceptable. De esta manera, las tecnicas pueden proporcionar libros de codigos emparejados (en referencia al VecDict emparejado utilizado y los libros de codigos de ponderaciones). El valor de ponderacion (indicado como "WeightVal" en la tabla de sintaxis VVectorData anterior) se puede calcular de la siguiente manera:
Este WeightVal se puede aplicar luego por el pseudocodigo anterior a un vector de codigos correspondiente para descuantificar por vectores el vector v.
[0154] A este respecto, las tecnicas pueden permitir que un dispositivo de descodificacion de audio, por ejemplo, el dispositivo de descodificacion de audio 24, seleccione uno de una pluralidad de libros de codigos para usar cuando se realiza la descuantificacion vectorial con respecto a una componente espacial cuantificada por vectores de un campo sonoro, la componente espacial cuantificada por vectores obtenida mediante la aplicacion de una síntesis basada en vectores a una pluralidad de coeficientes ambisonicos de orden superior.
[0155] Ademas, las tecnicas pueden permitir que el dispositivo de descodificacion de audio 24 seleccione entre una pluralidad de libros de codigos emparejados para ser utilizados cuando se realiza una descuantificacion vectorial con respecto a una componente espacial cuantificada vectorialmente de un campo sonoro, la componente espacial cuantificada vectorialmente obtenida a traves de la aplicacion de una síntesis basada en vectores en una pluralidad de coeficientes ambisonicos de orden superior.
[0156] Cuando NbitsQ es igual a 5, se realiza una descuantificacion escalar uniforme de 8 bits. Por el contrario, un valor de NbitsQ mayor o igual a 6 puede resultar en la aplicacion de la descodificacion de Huffman. El valor cid mencionado anteriormente puede ser igual a los dos bits menos significativos del valor NbitsQ. El modo de prediccion analizado anteriormente se designa como PFlag en la tabla de sintaxis anterior, mientras que el bit de informacion HT se designa como CbFIag en la tabla de sintaxis anterior. La sintaxis restante especifica como ocurre la descodificacion de una manera esencialmente similar a la descrita anteriormente.
[0157] La unidad de reconstruccion basada en vectores 92 representa una unidad configurada para realizar operaciones reciprocas a las descritas anteriormente con respecto a la unidad de síntesis basada en vectores 27 para reconstruir los coeficientes HOA 11'. La unidad de reconstruccion basada en vectores 92 puede incluir una unidad de reconstruccion de vectores v 74, una unidad de interpolacion espacio-temporal 76, una unidad de formulacion del primer plano 78, una unidad de descodificacion psicoacustica 80, una unidad de formulacion de coeficientes HOA 82 y una unidad de reordenacion 84.
[0158] La unidad de reconstruccion de vectores v 74 puede recibir ponderaciones codificadas 57 y generar vectores V[k] de primer plano reducidos 55k. La unidad de reconstruccion de vectores v 74 puede reenviar los vectores V[k] de primer plano reducidos 55k a la unidad de reordenacion 84.
[0159] Por ejemplo, la unidad de reconstruccion de vectores v 74 puede obtener las ponderaciones codificadas 57 del flujo de bits 21 a traves de la unidad de extraccion 72, y reconstruir los vectores V[k] de primer plano reducidos 55k en base a las ponderaciones codificadas 57 y uno o mas vectores de codigos. En algunos ejemplos, las ponderaciones codificadas 57 pueden incluir valores de ponderacion correspondientes a todos los vectores de codigos en un conjunto de vectores de codigos que se utilizan para representar los vectores V[k] de primer plano reducidos 55k. En tales ejemplos, la unidad de reconstruccion de vectores v 74 puede reconstruir los vectores V[k] de primer plano reducidos 55k en base a todo el conjunto de vectores de codigos.
[0160] Las ponderaciones codificadas 57 pueden incluir valores de ponderacion correspondientes a un subconjunto de un conjunto de vectores de codigos que se utiliza para representar los vectores V[k] de primer plano reducidos 55k. En tales ejemplos, las ponderaciones codificadas 57 pueden incluir ademas datos indicativos de cual de una pluralidad de vectores de codigos deben usarse para reconstruir los vectores V[k] de primer plano reducidos 55k, y la unidad de reconstruccion de vectores v 74 puede usar un subconjunto de los vectores de codigos indicados por dichos datos para reconstruir los vectores V[k] de primer plano reducidos 55k. En algunos ejemplos, los datos indicativos de cual de una pluralidad de vectores de codigos deben usarse para reconstruir los vectores V[k] de primer plano reducidos 55k pueden corresponder a los indices 57.
[0161] En algunos ejemplos, la unidad de reconstruccion de vectores v 74 puede obtener de un flujo de bits datos indicativos de una pluralidad de valores de ponderacion que representan un vector que se incluye en una version descompuesta de una pluralidad de coeficientes HOA, y reconstruir el vector basandose en los valores de ponderacion y los vectores de codigos. Cada uno de los valores de ponderacion puede corresponder a una respectiva de una pluralidad de ponderaciones en una suma ponderada de vectores de codigos que representa el vector.
[0162] En algunos ejemplos, para reconstruir el vector, la unidad de reconstruccion de vectores v 74 puede determinar una suma ponderada de los vectores de codigos donde los vectores de codigos estan ponderados por los valores de ponderacion. En otros ejemplos, para reconstruir el vector, la unidad de reconstruccion de vectores v 74 puede, para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo de los vectores de codigos para generar un vector de codigos ponderado respectivo incluido en una pluralidad de vectores de codigos ponderados, y sumar la pluralidad de vectores de codigos ponderados para determinar el vector.
[0163] En algunos ejemplos, la unidad de reconstruccion de vectores v 74 puede obtener, a partir del flujo de bits, datos indicativos de cual de una pluralidad de vectores de codigos usar para reconstruir el vector, y reconstruir el vector basandose en los valores de ponderacion (por ejemplo, el elemento WeightVal obtenido de WeightValCdbk basado en los elementos sintacticos CodebkIdx y WeightIdx), los vectores de codigos y los datos indicativos de cual de una pluralidad de vectores de codigos (como lo identifica, por ejemplo, el elemento sintactico VVecldx, ademas del NumVecIndices) se debe usar para reconstruir los vector. En tales ejemplos, para reconstruir el vector, la unidad de reconstruccion de vectores v 74 puede, en algunos ejemplos, seleccionar un subconjunto de los vectores de codigos basandose en los datos indicativos de cual de una pluralidad de vectores de codigos se deben usar para reconstruir el vector, y reconstruir el vector basandose en los valores de ponderacion y el subconjunto seleccionado de los vectores de codigos.
[0164] En tales ejemplos, para reconstruir el vector basandose en los valores de ponderacion y el subconjunto seleccionado de los vectores de codigos, la unidad de reconstruccion de vectores v 74 puede, para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo de los vectores de codigos en el subconjunto de vectores de codigos para generar un respectivo vector de codigos ponderado, y sumar la pluralidad de vectores de codigos ponderados para determinar el vector.
[0165] La unidad de descodificacion psicoacustica 80 puede funcionar de una manera reciproca a la unidad de codificacion de audio psicoacustica 40 mostrada en el ejemplo de la FIG. 4A para descodificar los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 61 y generar de ese modo coeficientes HOA ambientales compensados en energfa 47' y las nFG senales interpoladas 49' (que tambien pueden denominarse nFG objetos de audio interpolados 49'). Aunque se muestran separados entre si, los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 61 pueden no estar separados entre si y, en cambio, pueden especificarse como canales codificados, como se describe a continuacion con respecto a la FIG. 4B. La unidad de descodificacion psicoacustica 80, cuando los coeficientes HOA ambientales codificados 59 y las nFG senales codificadas 61 se especifican juntas como canales codificados, pueden descodificar los canales codificados para obtener canales descodificados y luego realizar una forma de reasignacion de canal con respecto a los canales descodificados para obtener los coeficientes HOA ambientales compensados en energfa 47' y las nFG senales interpoladas 49'.
[0166] En otras palabras, la unidad de descodificacion psicoacustica 80 puede obtener las nFG senales interpoladas 49' de todas las senales de sonido predominantes, que se pueden denotar como la trama Xps(k), los coeficientes HOA ambientales compensados en energfa 47', representativos de la representacion intermedia de la componente HOA ambiental, que se puede denotar como la trama Ci,AMB(k). La unidad de descodificacion psicoacustica 80 puede realizar esta reasignacion de canal en base a los elementos sintacticos especificados en el flujo de bits 21 o 29, que puede incluir un vector de asignacion que especifica, para cada canal de transporte, el indice de una secuencia de coeficientes posiblemente contenida de la componente HOA ambiental y otros elementos sintacticos indicativos de un conjunto de vectores V activos. En cualquier caso, la unidad de descodificacion psicoacustica 80 puede pasar los coeficientes HOA ambientales compensados en energfa 47' a la unidad de formulacion de coeficientes HOA 82 y las nFG senales 49' al reordenador 84.
[0167] En otras palabras, la unidad de descodificacion psicoacustica 80 puede obtener las nFG senales interpoladas 49' de todas las senales de sonido predominantes, que se pueden denotar como la trama Xps(k), los coeficientes HOA ambientales compensados en energfa 47', representativos de la representacion intermedia de la componente HOA ambiental, que se puede denotar como la trama Ci,AMB(k). La unidad de descodificacion psicoacustica 80 puede realizar esta reasignacion de canal en base a los elementos sintacticos especificados en el flujo de bits 21 o 29, que puede incluir un vector de asignacion que especifica, para cada canal de transporte, el indice de una secuencia de coeficientes posiblemente contenida de la componente HOA ambiental y otros elementos sintacticos indicativos de un conjunto de vectores V activos. En cualquier caso, la unidad de descodificacion psicoacustica 80 puede pasar los coeficientes HOA ambientales compensados en energfa 47' a la unidad de formulacion de coeficientes HOA 82 y las nFG senales 49' al reordenador 84.
[0168] Para reafirmar lo anterior, los coeficientes HOA se pueden reformular a partir de las senales basadas en vectores de la manera descrita anteriormente. La descuantificacion escalar se puede realizar primero con respecto a cada vector V para generar M/Ec(k), donde los /-®s'mos vectores individuales de la trama actual se pueden denotar
como v l ^ ( k ^ ) Los vectores V pueden haberse descompuesto a partir de los coeficientes HOA usando una transformada lineal invertible (como una descomposicion en valores singulares, un analisis de componentes principales, una transformada de Karhunen-Loeve, una transformada de Hotelling, una descomposicion ortogonal propia o una descomposicion en valores propios), como se describio anteriormente. La descomposicion tambien produce, en el caso de una descomposicion en valores singulares, vectores S[k] y U[k], que pueden combinarse para formar US[k]. Los elementos vectoriales individuales en la matriz US[k] se pueden denotar como Xps(k,l).
[0169] La interpolacion espacio-temporal se puede realizar con respecto a M/Ec(k) y MvEc(k-1) (que denota
vectores V de una trama anterior con vectores individuales de M/Ec(k-1) denotado como v o W ) . □ procedimiento de interpolacion espacial es, como un ejemplo, controlado por i/ia/ec(/). Despues de la interpolacion, el r 6s,mo vector
V interpolado (v ^ (k , ?)) se multiplica luego por el r §slmo US[/r] (que se denota como Xps,(k,l)) para generar la r6
columna de la representacion HOA O v VEC m^ ’ )). Los vectores de columna pueden luego sumarse para formular la representacion HOA de las senales basadas en vectores. De esta manera, la representacion interpolada descompuesta de los coeficientes HOA se obtiene para una trama al realizar una interpolacion con respecto a v.,C0
(fc) v (o
y v o como se describe con mas detalle a continuacion.
[0170] La FIG. 4B es un diagrama de bloques que ilustra otro ejemplo del dispositivo de descodificacion de audio 24 con mas detalle. El ejemplo mostrado en la FiG. 4B del dispositivo de descodificacion de audio 24 se denota como el dispositivo de descodificacion de audio 24'. El dispositivo de descodificacion de audio 24' es sustancialmente similar al dispositivo de descodificacion de audio 24 mostrado en el ejemplo de la FIG. 4A excepto que la unidad de descodificacion psicoacustica 902 del dispositivo de descodificacion de audio 24' no realiza la reasignacion de canal descrita anteriormente. En su lugar, el dispositivo de codificacion de audio 24' incluye una unidad de reasignacion de canal separada 904 que realiza la reasignacion de canal descrita anteriormente. En el ejemplo de la FIG. 4B, la unidad de descodificacion psicoacustica 902 recibe los canales codificados 900 y realiza la descodificacion psicoacustica con respecto a los canales codificados 900 para obtener los canales descodificados 901. La unidad de descodificacion psicoacustica 902 puede enviar el canal descodificado 901 a la unidad de reasignacion de canal 904. La unidad de reasignacion de canal 904 puede entonces realizar la reasignacion de canal descrita anteriormente con respecto al canal descodificado 901 para obtener los coeficientes HOA ambientales compensados en energfa 47' y las nFG senales interpoladas 49'.
[0171] La unidad de interpolacion espacio-temporal 76 puede funcionar de una manera similar a la descrita anteriormente con respecto a la unidad de interpolacion espacio-temporal 50. La unidad de interpolacion espaciotemporal 76 puede recibir los vectores V[k] de primer plano reducidos 55k y realizar la interpolacion espaciotemporal con respecto a los vectores V[k] de primer plano 55k y los vectores V[k-1] de primer plano reducidos 55ki para generar vectores V[k] de primer plano interpolados 55k". La unidad de interpolacion espacio-temporal 76 puede reenviar los vectores V[k] de primer plano interpolados 55k" a la unidad de fundido 770.
[0172] La unidad de extraccion 72 tambien puede emitir una senal 757 indicativa de cuando uno de los coeficientes HOA ambientales esta en transicion hacia la unidad de fundido 770, que puede entonces determinar cual de los SHCbg 47' (donde los SHCbg 47' tambien se pueden indicar como "canales HOA ambientales 47'" o "coeficientes HOA ambientales 47'") y los elementos de los vectores V[k] de primer plano interpolados 55k" han de incorporarse o eliminarse. En algunos ejemplos, la unidad de fundido 770 puede funcionar opuesta con respecto a cada uno de los coeficientes HOA ambientales 47' y los elementos de los vectores V[k] de primer plano interpolados 55k". Es decir, la unidad de fundido 770 puede realizar un fundido de entrada o un fundido de salida o tanto un fundido de entrada como un fundido de salida, con respecto al correspondiente de los coeficiente HOA ambientales 47', mientras realiza un fundido de entrada o un fundido de salida, o tanto un fundido de entrada como un fundido de salida, con respecto al correspondiente de los elementos de los vectores V[k] de primer plano interpolados 55k". La unidad de fundido 770 puede emitir coeficientes HOA ambientales ajustados 47'' a la unidad de formulacion de coeficientes HOA 82 y los vectores V[k] de primer plano ajustados 55k'" a la unidad de formulacion de primer plano 78. A este respecto, la unidad de fundido 770 representa una unidad configurada para realizar una operacion de fundido con respecto a diversos aspectos de los coeficientes HOA o sus derivados, por ejemplo, en forma de los coeficientes HOA ambientales 47' y los elementos de los vectores V[k] de primer plano interpolados 55k".
[0173] La unidad de formulacion del primer plano 78 puede representar una unidad configurada para realizar la multiplicacion matricial con respecto a los vectores V[k] de primer plano ajustados 55k’" y las nFG senales interpoladas 49' para generar los coeficientes HOA de primer plano 65. A este respecto, la unidad de formulacion de primer plano 78 puede combinar los objetos de audio 49' (que es otra manera mediante la cual denotar las nFG senales interpoladas 49') con los vectores 55k'" para reconstruir el primer plano o, en otras palabras, los aspectos predominantes de los coeficientes HOA 11'. La unidad de formulacion de primer plano 78 puede realizar una multiplicacion matricial de las nFG senales interpoladas 49' por los vectores V[k] de primer plano ajustados 55k '".
[0174] La unidad de formulacion de coeficientes HOA 82 puede representar una unidad configurada para combinar los coeficientes HOA de primer plano 65 a los coeficientes HOA ambientales ajustados 47'' para obtener los coeficientes HOA 11'. La notacion principal refleja que los coeficientes HOA 11' pueden ser similares, pero no iguales a los coeficientes HOA 11. Las diferencias entre los coeficientes HOA 11 y 11' pueden ser el resultado de perdidas debidas a la transmision por un medio de transmision con perdidas, cuantificacion u otras operaciones con perdidas.
[0175] La FIG. 5 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de un dispositivo de codificacion de audio, tal como el dispositivo de codificacion de audio 20 mostrado en el ejemplo de la FlG. 3A, en la realizacion de diversos aspectos de las tecnicas de sfntesis basadas en vectores descritas en esta divulgacion. Inicialmente, el dispositivo de codificacion de audio 20 recibe los coeficientes HOA 11 (106). El dispositivo de codificacion de audio 20 puede invocar la unidad de LIT 30, que puede aplicar una LIT con respecto a los coeficientes HOA para emitir los coeficientes HOA transformados (por ejemplo, en el caso de la SVD, los coeficientes HOA transformados pueden comprender los vectores US[k] 33 y los vectores V[k] 35) (107).
[0176] El dispositivo de codificacion de audio 20 puede invocar, a continuacion, la unidad de calculo de parametros 32 para realizar el analisis descrito anteriormente con respecto a cualquier combinacion de los vectores US[k] 33, los vectores US[k-1] 33, los vectores V[k] y/o V[k-1] 35, para identificar varios parametros de la manera descrita anteriormente. Es decir, la unidad de calculo de parametros 32 puede determinar al menos un parametro basandose en un analisis de los coeficientes HOA transformados 33/35 (108).
[0177] El dispositivo de codificacion de audio 20 puede entonces invocar la unidad de reordenacion 34, que puede reordenar los coeficientes HOA transformados (que, de nuevo en el contexto de la SVD, puede referirse a los vectores US[k] 33 y a los vectores V[k] 35) basandose en el parametro para generar los coeficientes HOA transformados reordenados 33'/35' (o, en otras palabras, los vectores US[k] 33' y los vectores V[k] 35'), como se ha descrito anteriormente (109). El dispositivo de codificacion de audio 20 puede, durante cualquiera de las operaciones anteriores u operaciones subsiguientes, invocar tambien la unidad de analisis del campo sonoro 44. La unidad de analisis del campo sonoro 44 puede, como se ha descrito anteriormente, realizar un analisis del campo sonoro con respecto a los coeficientes HOA 11 y/o los coeficientes HOA transformados 33/35 para determinar el numero total de canales de primer plano (nFG) 45, el orden del campo sonoro de fondo (Nbg) y el numero (nBGa) y los indices (i) de los canales HOA de BG adicionales a enviar (que pueden indicarse colectivamente como informacion de canal de fondo 43 en el ejemplo de la FIG. 3A) (109).
[0178] El dispositivo de codificacion de audio 20 tambien puede invocar la unidad de seleccion de fondo 48. La unidad de seleccion de fondo 48 puede determinar los coeficientes HOA de fondo o ambientales 47 basandose en la informacion de canal de fondo 43 (110). El dispositivo de codificacion de audio 20 puede invocar adicionalmente la unidad de seleccion del primer plano 36, la cual puede seleccionar los vectores US[k] reordenados 33' y los vectores V[k] reordenados 35' que representan componentes de primer plano o distintos del campo sonoro basandose en nFG 45 (que puede representar uno o mas indices que identifican los vectores de primer plano) (112).
[0179] El dispositivo de codificacion de audio 20 puede invocar la unidad de compensacion de energia 38. La unidad de compensacion de energia 38 puede realizar compensacion de energia con respecto a los coeficientes HOA ambientales 47 para compensar la perdida de energia debida a la eliminacion de varios de los coeficientes HOA por la unidad de seleccion de fondo 48 (114) y generar asi coeficientes HOA ambientales compensados en energia 47'.
[0180] El dispositivo de codificacion de audio 20 puede tambien invocar la unidad de interpolacion espaciotemporal 50. La unidad de interpolacion espacio-temporal 50 puede realizar interpolacion espacio-temporal con respecto a los coeficientes HOA transformados reordenados 33'/35' para obtener las senales de primer plano interpoladas 49' (que tambien pueden denominarse como "nFG senales interpoladas 49'") y la informacion direccional restante de primer plano 53 (que tambien se puede denominar como vectores "V[k] 53") (116). El dispositivo de codificacion de audio 20 puede entonces invocar la unidad de reduccion de coeficientes 46. La unidad de reduccion de coeficientes 46 puede realizar una reduccion de los coeficientes con respecto a los restantes vectores V[k] de primer plano 53, basandose en la informacion de canal de fondo 43, para obtener informacion direccional reducida de primer plano 55 (que tambien se puede denominar como vectores V[k] de primer plano reducidos 55) (118).
[0181] El dispositivo de codificacion de audio 20 puede entonces invocar la unidad de codificacion de vectores V 52 para comprimir, de la manera descrita anteriormente, los vectores V[k] de primer plano reducidos 55 y generar los vectores V[k] de primer plano codificados 57 (120).
[0182] El dispositivo de codificacion de audio 20 tambien puede invocar la unidad codificadora de audio psicoacustica 40. La unidad codificadora de audio psicoacustica 40 puede codificar psicoacusticamente cada vector de los coeficientes HOA ambientales compensados en energia 47' y las nFG senales interpoladas 49' para generar coeficientes HOA ambientales codificados 59 y nFG senales codificadas 61. El dispositivo de codificacion de audio puede entonces invocar la unidad de generacion de flujo de bits 42. La unidad de generacion del flujo de bits 42 puede generar el flujo de bits 21 basandose en la informacion direccional codificada de primer plano 57, los coeficientes HOA ambientales codificados 59, las nFG senales codificadas 61 y la informacion de canal de fondo 43.
[0183] La FIG. 6 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de un dispositivo de descodificacion de audio, como el dispositivo de descodificacion de audio 24 mostrado en la FIG. 4A, en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. Inicialmente, el dispositivo descodificador de audio 24 puede recibir el flujo de bits 21 (130). Al recibir el flujo de bits, el dispositivo de descodificacion de audio 24 puede invocar la unidad de extraccion 72. Suponiendo, a efectos de analisis, que el flujo de bits 21 indica que se va a realizar una reconstruccion basada en vectores, la unidad de extraccion 72 puede analizar sintacticamente el flujo de bits para recuperar la informacion indicada anteriormente, pasando la informacion a la unidad de reconstruccion basada en vectores 92.
[0184] En otras palabras, la unidad de extraccion 72 puede extraer la informacion direccional codificada de primer plano 57 (que, de nuevo, tambien se puede denominar como los vectores V[k] de primer plano codificados 57), los coeficientes HOA ambientales codificados 59 y las senales de primer plano codificadas (que tambien se pueden denominar como las nFG senales de primer plano codificadas 59 o los objetos de audio de primer plano codificados 59) del flujo de bits 21, de la manera descrita anteriormente (132).
[0185] El dispositivo de descodificacion de audio 24 puede invocar adicionalmente la unidad de descuantificacion 74. La unidad de descuantificacion 74 puede descodificar por entropia y descuantificar la informacion direccional codificada de primer plano 57 para obtener informacion direccional reducida de primer plano 55k (136). El dispositivo de descodificacion de audio 24 tambien puede invocar la unidad de descodificacion psicoacustica 80. La unidad de codificacion de audio psicoacustica 80 puede descodificar los coeficientes HOA ambientales codificados 59 y las senales de primer plano codificadas 61 para obtener coeficientes HOA ambientales compensados en energia 47' y las senales de primer plano interpoladas 49' (138). La unidad de descodificacion psicoacustica 80 puede pasar los coeficientes HOA ambientales compensados en energia 47' a la unidad de fundido 770 y las nFG senales 49' a la unidad de formulacion de primer plano 78.
[0186] El dispositivo de descodificacion de audio 24 puede invocar a continuacion la unidad de interpolacion espacio-temporal 76. La unidad de interpolacion espacio-temporal 76 puede recibir la informacion direccional de primer plano reordenada 55^' y realizar la interpolacion espacio-temporal con respecto a la informacion direccional reducida de primer plano 55k/55k-1 para generar la informacion direccional de primer plano interpolada 55k" (140). La unidad de interpolacion espacio-temporal 76 puede remitir los vectores V[k] de primer plano interpolados 55k" a la unidad de fundido 770.
[0187] El dispositivo de descodificacion de audio 24 puede invocar la unidad de fundido 770. La unidad de fundido 770 puede recibir u obtener de otro modo elementos sintacticos (por ejemplo, desde la unidad de extraccion 72) indicativos de cuando los coeficientes HOA ambientales compensados en energia 47' estan en transicion (por ejemplo, el elemento sintactico AmbCoeffTransition). La unidad de fundido 770 puede, basandose en los elementos sintacticos de transicion y la informacion de estado de transicion mantenida, realizar un fundido de entrada o un fundido de salida en los coeficientes HOA ambientales compensados en energia 47', emitiendo los coeficientes HOA ambientales ajustados 47'' a la unidad de formulacion de coeficientes HOA 82. La unidad de fundido 770 puede tambien, basandose en los elementos sintacticos y la informacion de estado de transicion mantenida, y realizar un fundido de salida o un fundido de entrada en los correspondientes uno o mas elementos de los vectores V[k] de primer plano interpolados 55k", emitiendo los vectores V[k] de primer plano ajustados 55k'" a la unidad de formulacion de primer plano 78 (142).
[0188] El dispositivo de descodificacion de audio 24 puede invocar la unidad de formulacion del primer plano 78. La unidad de formulacion del primer plano 78 puede realizar la multiplicacion matricial de las nFG senales 49' por la informacion direccional de primer plano ajustada 55k'" para obtener los coeficientes HOA de primer plano 65 (144). El dispositivo de descodificacion de audio 24 tambien puede invocar la unidad de formulacion de coeficientes HOA 82. La unidad de formulacion de coeficientes HOA 82 puede anadir los coeficientes HOA de primer plano 65 a los coeficientes HOA ambientales ajustados 47'' para obtener los coeficientes HOA 11' (146).
[0189] La FIG. 7 es un diagrama de bloques que ilustra, con mas detalle, un ejemplo de unidad de codificacion de vectores v 52 que puede usarse en el dispositivo de codificacion de audio 20 de la FIG. 3A. La unidad de codificacion de vectores v 52 incluye una unidad de descomposicion 502 y una unidad de cuantificacion 504. La unidad de descomposicion 502 puede descomponer cada uno de los vectores V[k] de primer plano reducidos 55 en una suma ponderada de vectores de codigos en base a los vectores de codigos 63. La unidad de descomposicion 502 puede generar las ponderaciones 506 y proporcionar las ponderaciones 506 a la unidad de cuantificacion 504. La unidad de cuantificacion 504 puede cuantificar las ponderaciones 506 para generar las ponderaciones codificadas 57.
[0190] La FIG. 8 es un diagrama de bloques que ilustra, con mas detalle, un ejemplo de unidad de codificacion de vectores v 52 que puede usarse en el dispositivo de codificacion de audio 20 de la FIG. 3A. La unidad de codificacion de vectores v 52 incluye una unidad de descomposicion 502, una unidad de seleccion de ponderaciones 510 y una unidad de cuantificacion 504. La unidad de descomposicion 502 puede descomponer cada uno de los vectores V[k] de primer plano reducidos 55 en una suma ponderada de vectores de codigos basada en los vectores de codigos 63. La unidad de descomposicion 502 puede generar ponderaciones 514 y proporcionar las ponderaciones 514 a la unidad de seleccion de ponderaciones 510. La unidad de seleccion de ponderaciones 510 puede seleccionar un subconjunto de las ponderaciones 514 para generar un subconjunto seleccionado de ponderaciones 516, y proporcionar el subconjunto seleccionado de ponderaciones 516 a la unidad de cuantificacion 504. La unidad de cuantificacion 504 puede cuantificar el subconjunto seleccionado de ponderaciones 516 para generar las ponderaciones codificadas 57.
[0191] La FIG. 9 es un diagrama conceptual que ilustra un campo sonoro generado a partir de un vector v. La FIG. 10 es un diagrama conceptual que ilustra un campo sonoro generado a partir de un modelo de 25.° orden del vector v descrito anteriormente con respecto a la FIG. 9. La FIG. 11 es un diagrama conceptual que ilustra la ponderacion de cada orden para el modelo de 25.° orden que se muestra en la FIG. 10. La FIG. 12 es un diagrama conceptual que ilustra un modelo de 5.° orden del vector v descrito anteriormente con respecto a la FIG. 9. La FIG.
13 es un diagrama conceptual que ilustra la ponderacion de cada orden para el modelo de 5.° orden mostrado en la FIG. 12.
[0192] La FIG. 14 es un diagrama conceptual que ilustra dimensiones de ejemplo de las matrices de ejemplo utilizadas para realizar la descomposicion en valores singulares. Como se muestra en la FIG. 14, una matriz Ufg esta incluida en una matriz U, una matriz Sfg esta incluida en una matriz S, y una matriz Vfgt esta incluida en una matriz Vt .
[0193] En las matrices de ejemplo de la FIG. 14, la matriz Ufg tiene dimensiones 1280 por 2, donde 1280 corresponde al numero de muestras y 2 corresponde al numero de vectores de primer plano seleccionados para la codificacion de primer plano. La matriz U tiene dimensiones de 1280 por 25, donde 1280 corresponde al numero de muestras y 25 corresponde al numero de canales en la senal de audio HOA. El numero de canales puede ser igual a (N+1)2 donde N es igual al orden de la senal de audio HOA.
[0194] La matriz Sfg tiene dimensiones de 2 por 2, donde cada 2 corresponde al numero de vectores de primer plano seleccionados para la codificacion de primer plano. La matriz S tiene dimensiones de 25 por 25, donde cada 25 corresponde al numero de canales en la senal de audio de HOA.
[0195] La matriz Vfgt tiene dimensiones de 25 por 2, donde 25 corresponde al numero de canales en la senal de audio HOA, y 2 corresponde al numero de vectores de primer plano seleccionados para la codificacion de primer plano. La matriz VT tiene dimensiones de 25 por 25, donde cada 25 corresponde al numero de canales en la senal de audio HOA.
[0196] Como se muestra en la figura 14, la matriz Ufg, la matriz S fg y la matriz Vfgt pueden multiplicarse juntas para generar una matriz Hfg. La matriz Hfg tiene dimensiones de 1280 por 25, donde 1280 corresponde al numero de muestras y 25 corresponde al numero de canales en la senal de audio de HOA.
[0197] La FIG. 15 es un grafico que ilustra mejoras de rendimiento de ejemplo que pueden obtenerse utilizando las tecnicas de codificacion de vectores v de esta divulgacion. Cada fila representa un elemento de prueba, y las columnas indican de izquierda a derecha, el numero del elemento de prueba, el nombre del elemento de prueba, los bits por trama asociados con el elemento de prueba, la velocidad de bits que utiliza uno o mas de las tecnicas de codificacion de vectores v de ejemplo de esta divulgacion, y la velocidad de bits obtenida utilizando otras tecnicas de codificacion de vectores v (por ejemplo, cuantificando escalarmente los componentes del vector v sin descomponer el vector v). Como se muestra en la FIG. 15, las tecnicas de esta divulgacion pueden, en algunos ejemplos, proporcionar mejoras significativas en la velocidad de bits en relacion con otras tecnicas que no descomponen los vectores v en ponderaciones y/o seleccionan un subconjunto de las ponderaciones para cuantificar.
[0198] En algunos ejemplos, las tecnicas de esta divulgacion pueden realizar una cuantificacion de vectores V basada en un conjunto de vectores direccionales. Un vector V puede representarse por una suma ponderada de vectores direccionales. En algunos ejemplos, para un conjunto dado de vectores direccionales que son ortonormales entre si, la unidad de codificacion de vectores v 52 puede calcular el valor de ponderacion para cada vector direccional. La unidad de codificacion de vectores v 52 puede seleccionar los N valores de ponderacion maximos, {w_i}, y los vectores direccionales correspondientes, {o_i}. La unidad de codificacion de vectores v 52 puede transmitir indices {i} al descodificador que corresponden a los valores de ponderacion y/o vectores direccionales seleccionados. En algunos ejemplos, al calcular los maximos, la unidad de codificacion de vectores v 52 puede usar valores absolutos (descuidando la informacion del signo). La unidad de codificacion de vectores v 52 puede cuantificar los N valores de ponderacion maximos, {w_i}, para generar valores de ponderacion cuantificados {wA_i}. La unidad de codificacion de vectores v 52 puede transmitir los indices de cuantificacion para {wA_i} al descodificador. En el descodificador, el vector V cuantificado se puede sintetizar como la suma_i {wA_i} * o_i)
[0199] En algunos ejemplos, las tecnicas de esta divulgacion pueden proporcionar una mejora significativa en el rendimiento. Por ejemplo, en comparacion con el uso de la cuantificacion escalar seguida de la codificacion de Huffman, se puede obtener una reduccion de aproximadamente el 85 % de la velocidad de bits. Por ejemplo, la cuantificacion escalar seguida por la codificacion de Huffman puede, en algunos ejemplos, requerir una velocidad de bits de 16,26 kbps (kilo bits por segundo), mientras que las tecnicas de esta divulgacion pueden, en algunos ejemplos, ser capaces de codificar a una velocidad de bits de 2,75 kbsp.
[0200] Considere un ejemplo en el que los vectores de codigos X de un libro de codigos (y X ponderaciones correspondientes) se utilizan para codificar un vector v. En algunos ejemplos, la unidad de generacion del flujo de bits 42 puede generar el flujo de bits 21 de manera que cada vector v este representado por 3 categorias de parametros: (1) X numero de indices, cada uno de los cuales apunta a un vector particular en un libro de codigos de vectores de codigos (por ejemplo, un libro de codigos de vectores direccionales normalizados); (2) un numero correspondiente (X) de ponderaciones para ir con los indices anteriores; y (3) un bit de signo para cada uno de los numeros (X) de las ponderaciones anteriores. En algunos casos, el numero X de ponderaciones puede cuantificarse aun mas utilizando otra cuantificacion vectorial (VQ).
[0201] El libro de codigos de descomposicion utilizado para determinar las ponderaciones en este ejemplo puede seleccionarse de un conjunto de libros de codigos candidatos. Por ejemplo, el libro de codigos puede ser 1 de 8 libros de codigos diferentes. Cada uno de estos libros de codigos puede tener diferentes longitudes. Entonces, por ejemplo, no solo se puede usar un libro de codigos de tamano 49 para determinar las ponderaciones para el contenido de HOA de sexto orden, sino que las tecnicas de esta divulgacion pueden dar la opcion de usar cualquiera de los 8 libros de codigos de diferentes tamanos.
[0202] El libro de codigos de cuantificacion utilizado para la VQ de las ponderaciones puede, en algunos ejemplos, tambien tener el mismo numero correspondiente de posibles libros de codigos que la cantidad de posibles libros de codigos de descomposicion utilizados para determinar las ponderaciones. Por lo tanto, en algunos ejemplos, puede haber un numero variable de libros de codigos diferentes para determinar las ponderaciones y un numero variable de libros de codigos para cuantificar las ponderaciones.
[0203] En algunos ejemplos, el numero de ponderaciones utilizadas para estimar un vector v (es decir, el numero de ponderaciones seleccionadas para la cuantificacion) puede ser variable. Por ejemplo, se puede establecer un criterio de error de umbral, y el numero (X) de ponderaciones seleccionadas para la cuantificacion puede depender de alcanzar el umbral de error donde el umbral de error se define anteriormente en la ecuacion (10).
[0204] En algunos ejemplos, uno o mas de los conceptos mencionados anteriormente se pueden senalizar en un flujo de bits. Considere un ejemplo en el que el numero maximo de ponderaciones utilizadas para codificar vectores v se establece en 128 ponderaciones, y se utilizan ocho libros de codigos de cuantificacion diferentes para cuantificar las ponderaciones. En tal ejemplo, la unidad de generacion de flujo de bits 42 puede generar el flujo de bits 21 de tal manera que una unidad de trama de acceso en el flujo de bits 21 indica el numero maximo de indices que se pueden usar de trama a trama. En este ejemplo, el numero maximo de indices es un numero de 0-128, por lo que los datos mencionados anteriormente pueden consumir 7 bits en la Unidad de Trama de Acceso.
[0205] En el ejemplo mencionado anteriormente, de trama a trama, la unidad de generacion del flujo de bits 42 puede generar el flujo de bits 21 para incluir datos indicativos de: (1) cual de los 8 libros de codigos diferentes se uso para hacer la VQ (para cada vector v); y (2) el numero real de indices (X) utilizados para codificar cada vector v. Los datos indicativos de cual de los 8 libros de codigos diferentes se utilizo para hacer la VQ pueden consumir 3 bits en este ejemplo. Los datos indicativos del numero real de indices (X) utilizados para codificar cada vector v pueden estar dados por el numero maximo de indices especificado en la Unidad de Trama de Acceso. Esto puede variar de 0 bits a 7 bits en este ejemplo.
[0206] En algunos ejemplos, la unidad de generacion de flujo de bits 42 puede generar el flujo de bits 21 para incluir: (1) indices que indican que vectores direccionales se seleccionan y transmiten (segun los valores de ponderacion calculados); y (2) valor(es) de ponderacion para cada vector direccional seleccionado. En algunos ejemplos, la presente divulgacion puede proporcionar tecnicas para la cuantificacion de vectores V utilizando una descomposicion en un libro de codigos de vectores de codigos armonicos esfericos normalizados.
[0207] La FIG. 17 es un diagrama que ilustra 16 vectores de codigos diferentes 63A-63P representados en un dominio espacial que puede ser usado por la unidad de codificacion de vectores V 52 mostrada en el ejemplo de una o ambas de las FIG. 7 y 8. Los vectores de codigos 63A-63P pueden representar uno o mas de los vectores de codigos 63 analizados anteriormente.
[0208] La FIG. 18 es un diagrama que ilustra diferentes maneras en que los 16 vectores de codigos diferentes 63A-63P pueden ser empleados por la unidad de codificacion de vectores V 52 mostrada en el ejemplo de una o ambas de las FIG. 7 y 8. La unidad de codificacion de vectores V 52 puede recibir uno de los vectores V[k] 55 de primer plano reducidos, que se muestra despues de procesarse en el dominio espacial y se denota como vector V 55. La unidad de codificacion de vectores V 52 puede realizar la cuantificacion vectorial analizada anteriormente para producir tres versiones codificadas diferentes del vector V 55. Las tres versiones codificadas diferentes del vector V 55 se muestran despues de ser procesadas al dominio espacial y se designan como vector V codificado 57A, vector V codificado 57B y vectores V codificados 57C. La unidad de codificacion de vectores V 52 puede seleccionar uno de los vectores V codificados 57A-57C como uno de los vectores V[k] codificados de primer plano 57 correspondientes al vector V 55.
[0209] La unidad de codificacion de vectores V 52 puede generar cada uno de los vectores V codificados 57A-57C basandose en los vectores de codigos 63A-63P ("vectores de codigos 63") mostrados con mejor detalle en el ejemplo de la FIG. 17. La unidad de codificacion de vectores V 52 puede generar el vector V codificado 57A en base a los 16 vectores de codigos 63 como se muestra en el grafico 300A, donde se especifican los 16 indices junto con 16 valores de ponderacion. La unidad de codificacion de vectores V 52 puede generar el vector V codificado 57A basandose en un subconjunto distinto de cero de los vectores de codigos 63 (por ejemplo, los vectores de codigos 63 encerrados en el recuadro y asociados con los indices 2, 6 y 7 como se muestra en el grafico 300B dado que los otros indices tienen una ponderacion de cero). La unidad de codificacion de vectores V 52 puede generar el vector V codificado 57C usando los mismos tres vectores de codigos 63 que se usaron cuando se genero el vector V codificado 57B, excepto que el vector V original 55 se cuantifica primero.
[0210] La revision de las representaciones de los vectores V codificados 57A-57C en comparacion con el vector V original 55 ilustra que la cuantificacion del vector puede proporcionar una representacion sustancialmente similar al vector V original 55 (lo que significa que el error entre cada uno de los vectores V codificados 57A-57C es probablemente pequeno). La comparacion de los vectores V codificados 57A-57C entre si tambien revela que solo hay pequenas o leves diferencias. Como tal, el uno de los vectores V codificados 57A-57C que proporciona la mejor reduccion de bits es probablemente el de los vectores V codificados 57A-57C que la unidad de codificacion de vectores V 52 puede seleccionar. Dado que el vector V codificado 57C proporciona la velocidad de bits mas pequena mas probable (dado que el vector V codificado 57C utiliza una version cuantificada del vector V 55 mientras que tambien usa solo tres de los vectores de codigos 63), la unidad de codificacion de vectores V 52 puede seleccionar el vector V codificado 57C como uno de los vectores V[k] codificados de primer plano 57 correspondientes al vector V 55.
[0211] La FIG. 21 es un diagrama de bloques que ilustra una unidad de cuantificacion vectorial 520 de ejemplo de acuerdo con esta divulgacion. En algunos ejemplos, la unidad de cuantificacion vectorial 520 puede ser un ejemplo de la unidad de codificacion de vectores V 52 en el dispositivo de codificacion de audio 20 de la FIG. 3A o en el dispositivo de codificacion de audio 20 de la FIG. 3B. La unidad de cuantificacion vectorial 520 incluye una unidad de descomposicion 522, una unidad de seleccion y orden de ponderaciones 524 y una unidad de seleccion de vectores 526. La unidad de descomposicion 522 puede descomponer cada uno de los vectores V[k] de primer plano reducidos 55 en una suma ponderada de vectores de codigos en base a los vectores de codigos 63. La unidad de descomposicion 522 puede generar valores de ponderacion 528 y proporcionar los valores de ponderacion 528 a la unidad de seleccion y orden de ponderaciones 524.
[0212] La unidad de seleccion y orden de ponderaciones 524 puede seleccionar un subconjunto de los valores de ponderacion 528 para generar un subconjunto seleccionado de valores de ponderacion. Por ejemplo, la unidad de seleccion y orden de ponderaciones 524 puede seleccionar los M valores de ponderacion de mayor magnitud del conjunto de valores de ponderacion 528. La unidad de seleccion y orden de ponderaciones 524 puede reordenar adicionalmente el subconjunto seleccionado de valores de ponderacion basandose en las magnitudes de los valores de ponderacion para generar un subconjunto seleccionado reordenado de valores de ponderacion 530, y proporcionar el subconjunto seleccionado reordenado de valores de ponderacion 530 a la unidad de seleccion de vectores 526.
[0213] La unidad de seleccion de vectores 526 puede seleccionar un vector de M componentes de un libro de codigos de cuantificacion 532 para representar M valores de ponderacion. En otras palabras, la unidad de seleccion de vectores 526 puede cuantificar vectorialmente los M valores de ponderacion. En algunos ejemplos, M puede corresponder al numero de valores de ponderacion seleccionados por la unidad de seleccion y orden de ponderaciones 524 para representar un solo vector V. La unidad de seleccion de vectores 526 puede generar datos indicativos del vector de M componentes seleccionado para representar los M valores de ponderacion, y proporcionar estos datos a la unidad de generacion del flujo de bits 42 como las ponderaciones 57 codificadas. En algunos ejemplos, el libro de codigos de cuantificacion 532 puede incluir una pluralidad de vectores de M componentes que se indexan, y los datos indicativos del vector de M componentes pueden ser un valor de indice en el libro de codigos de cuantificacion 532 que apunta al vector seleccionado. En tales ejemplos, el descodificador puede incluir un libro de codigos de cuantificacion indexado de manera similar para descodificar el valor del indice.
[0214] La FIG. 22 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de la unidad de cuantificacion vectorial en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. Como se describio anteriormente con respecto al ejemplo de la FIG. 21, la unidad de cuantificacion vectorial 520 incluye una unidad de descomposicion 522, una unidad de seleccion y orden de ponderaciones 524 y una unidad de seleccion vectorial 526. La unidad de descomposicion 522 puede descomponer cada uno de los vectores V[k] de primer plano reducidos 55 en una suma ponderada de vectores de codigos en base a los vectores de codigos 63 (750). La unidad de descomposicion 522 puede obtener valores de ponderacion 528 y proporcionar los valores de ponderacion 528 a la unidad de seleccion y orden de ponderaciones 524 (752).
[0215] La unidad de seleccion y orden de ponderaciones 524 puede seleccionar un subconjunto de los valores de ponderacion 528 para generar un subconjunto seleccionado de valores de ponderacion (754). Por ejemplo, la unidad de seleccion y orden de ponderaciones 524 puede seleccionar los M valores de ponderacion de mayor magnitud del conjunto de valores de ponderacion 528. La unidad de seleccion y orden de ponderaciones 524 puede reordenar adicionalmente el subconjunto seleccionado de valores de ponderacion basandose en las magnitudes de los valores de ponderacion para generar un subconjunto seleccionado reordenado de valores de ponderacion 530, y proporcionar el subconjunto seleccionado reordenado de valores de ponderacion 530 a la unidad de seleccion de vectores 526 (756).
[0216] La unidad de seleccion de vectores 526 puede seleccionar un vector de M componentes de un libro de codigos de cuantificacion 532 para representar M valores de ponderacion. En otras palabras, la unidad de seleccion de vectores 526 puede cuantificar vectorialmente M valores de ponderacion (758). En algunos ejemplos, M puede corresponder al numero de valores de ponderacion seleccionados por la unidad de seleccion y orden de ponderaciones 524 para representar un solo vector V. La unidad de seleccion de vectores 526 puede generar datos indicativos del vector de M componentes seleccionado para representar los M valores de ponderacion, y proporcionar estos datos a la unidad de generacion del flujo de bits 42 como las ponderaciones 57 codificadas. En algunos ejemplos, el libro de codigos de cuantificacion 532 puede incluir una pluralidad de vectores de M componentes que se indexan, y los datos indicativos del vector de M componentes pueden ser un valor de indice en el libro de codigos de cuantificacion 532 que apunta al vector seleccionado. En tales ejemplos, el descodificador puede incluir un libro de codigos de cuantificacion indexado de manera similar para descodificar el valor del indice.
[0217] La FIG. 23 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de la unidad de reconstruccion de vectores V en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. La unidad de reconstruccion de vectores V 74 de la FIG. 4A o 4B pueden obtener primero los valores de ponderacion, por ejemplo, de la unidad de extraccion 72 despues de analizarse desde el flujo de bits 21 (760). La unidad de reconstruccion de vectores V 74 tambien puede obtener vectores de codigos, por ejemplo, de un libro de codigos que utiliza un fndice senalizado en el flujo de bits 21 de la manera descrita anteriormente (762). La unidad de reconstruccion de vectores V 74 puede luego reconstruir los vectores V[k] de primer plano reducidos (que tambien pueden denominarse vectores V) 55 en base a los valores de ponderacion y los vectores de codigos en una o mas de las diversas formas descritas arriba (764).
[0218] La FIG. 24 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de una unidad de codificacion de vectores V de la FIG. 3A o 3B en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. La unidad de codificacion de vectores V 52 puede obtener una velocidad de bits deseada (que tambien se puede denominar como una velocidad de bits umbral) 41 (770). Cuando la velocidad de bits de destino 41 es mayor que 256 Kbps (o cualquier otra velocidad de bits especificada, configurada o determinada) ("NO" 772), la unidad de codificacion de vectores V 52 puede determinar la aplicacion y luego aplicar la cuantificacion escalar a los vectores V 55 (774). Cuando la velocidad de bits deseada 41 es menor o igual a 256 Kbps ("SI" 772), la unidad de reconstruccion de vectores V 52 puede determinar la aplicacion y luego aplicar la cuantificacion vectorial a los vectores V 55 (776). La unidad de codificacion de vectores V 52 tambien puede indicar en el flujo de bits 21 que la cuantificacion escalar o vectorial se realizo con respecto a los vectores V 55 (778).
[0219] La FIG. 25 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de una unidad de reconstruccion de vectores V en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. La unidad de reconstruccion de vectores V 74 de la FIG. 4A o 4B pueden obtener primero una indicacion (como un elemento sintactico) de si la cuantificacion escalar o vectorial se realizo con respecto a los vectores V 55 (780). Cuando el elemento sintactico indica que no se realizo la cuantificacion escalar ("NO" 782), la unidad de reconstruccion de vectores V 74 puede realizar la descuantificacion vectorial para reconstruir los vectores V 55 (784). Cuando el elemento sintactico indica que se realizo la cuantificacion escalar ("SI" 782), la unidad de reconstruccion de vectores V 74 puede realizar una descuantificacion escalar para reconstruir los vectores V 55 (786).
[0220] La FIG. 26 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de una unidad de codificacion de vectores V de la FIG. 3A o 3B en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. La unidad de codificacion de vectores V 52 puede seleccionar uno de una pluralidad (es decir, dos o mas) de libros de codigos para usar al cuantificar vectorialmente los vectores V 55 (790). La unidad de codificacion de vectores V 52 puede entonces realizar la cuantificacion vectorial de la manera descrita anteriormente con respecto a los vectores V 55 utilizando el seleccionado de los dos o mas libros de codigos (792). La unidad de codificacion de vectores V 52 puede entonces indicar o senalizar de otro modo que se uso uno de los dos o mas libros de codigos para cuantificar el vector V 55 en el flujo de bits 21 (794).
[0221] La FIG. 27 es un diagrama de flujo que ilustra el funcionamiento a modo de ejemplo de una unidad de reconstruccion de vectores V en la realizacion de varios aspectos de las tecnicas descritas en esta divulgacion. La unidad de reconstruccion de vectores V 74 de la FIG. 4A o 4B pueden obtener primero una indicacion (como un elemento sintactico) de uno de dos o mas libros de codigos utilizados cuando se cuantifica vectorialmente un vector V 55 (800). La unidad de reconstruccion de vectores V 74 puede entonces realizar una descuantificacion vectorial para reconstruir el vector V 55 usando el seleccionado de uno o dos libros de codigos de la manera descrita anteriormente (802).
[0222] Varios aspectos de las tecnicas pueden habilitar un dispositivo expuesto en las siguientes clausulas:
Clausula 1. Un dispositivo que comprende medios para almacenar una pluralidad de libros de codigos para usar cuando se realiza la cuantificacion vectorial con respecto a una componente espacial de un campo sonoro, la componente espacial obtenido mediante la aplicacion de una descomposicion a una pluralidad de coeficientes ambisonicos de orden superior, y medios para seleccionar uno de la pluralidad de libros de codigos.
Clausula 2. El dispositivo segun la clausula 1, que comprende, ademas, medios para especificar un elemento sintactico en un flujo de bits que incluye la componente espacial cuantificada vectorialmente, identificando el elemento sintactico un fndice en el seleccionado de la pluralidad de libros de codigos que tienen un valor de ponderacion utilizado cuando se realiza la cuantificacion vectorial de la componente espacial.
Clausula 3. El dispositivo segun la clausula 1, que comprende ademas medios para especificar un elemento sintactico en un flujo de bits que incluye la componente espacial cuantificada vectorialmente, identificando el elemento sintactico un fndice en un diccionario de vectores que tiene un vector de codigos utilizado cuando se realiza la cuantificacion vectorial de la componente espacial.
Clausula 4. El procedimiento segun la clausula 1, en el que los medios para seleccionar uno de una pluralidad de libros de codigos comprenden medios para seleccionar uno de la pluralidad de libros de codigos en base a una serie de vectores de codigos utilizados cuando se realiza la cuantificacion vectorial.
[0223] Varios aspectos de las tecnicas tambien pueden habilitar un dispositivo expuesto en las siguientes clausulas:
Clausula 5. Un aparato que comprende medios para realizar una descomposicion con respecto a una pluralidad de coeficientes ambisonicos de orden superior (HOA) para generar una version descompuesta de los coeficientes HOA, y medios para determinar, en base a un conjunto de vectores de codigos, uno o mas valores de ponderacion que representan un vector que se incluye en la version descompuesta de los coeficientes HOA, correspondiendo cada uno de los valores de ponderacion a uno respectivo de una pluralidad de ponderaciones incluidas en una suma ponderada de los vectores de codigos que representa el vector.
Clausula 6. El aparato segun la clausula 5, que comprende ademas medios para seleccionar un libro de codigos de descomposicion de un conjunto de libros de codigos de descomposicion candidatos, en el que los medios para determinar, basandose en el conjunto de vectores de codigos, el uno o mas valores de ponderacion comprenden medios para determinar los valores de ponderacion basados en el conjunto de vectores de codigos especificados por el libro de codigos de descomposicion seleccionado.
Clausula 7. El aparato de la clausula 6, en el que cada uno de los libros de codigos de descomposicion candidatos incluye una pluralidad de vectores de codigos, y en el que al menos dos de los libros de codigos de descomposicion candidatos tienen un numero diferente de vectores de codigos.
Clausula 8. El aparato segun la reivindicacion 5, que comprende ademas medios para generar un flujo de bits para incluir uno o mas indices que indican que vectores de codigos se usan para determinar las ponderaciones, y medios para generar el flujo de bits para incluir ademas valores de ponderacion correspondientes a cada uno de los indices.
[0224] Cualquiera de las tecnicas anteriores puede realizarse con respecto a cualquier cantidad de contextos y ecosistemas de audio diferentes. A continuacion, se describen varios contextos a modo de ejemplo, aunque las tecnicas deberian limitarse a los contextos a modo de ejemplo. Un ecosistema a modo de ejemplo de audio puede incluir contenido de audio, estudios de cine, estudios de musica, estudios de audio de juegos, contenido de audio basado en canales, motores de codificacion, derivaciones de audio de juegos, motores de codificacion/reproduccion de audio de juegos y sistemas de suministro.
[0225] Los estudios de cine, los estudios de musica y los estudios de audio de juegos pueden recibir contenido de audio. En algunos ejemplos, el contenido de audio puede representar el resultado de una adquisicion. Los estudios de cine pueden emitir contenido de audio basado en canales (por ejemplo, en 2.0, 5.1 y 7.1), tal como utilizando una estacion de trabajo de audio digital (DAW). Los estudios de musica pueden emitir contenido de audio basado en canales (por ejemplo, en 2.0 y 5.1), tal como utilizando una DAW. En cualquier caso, los motores de codificacion pueden recibir y codificar el contenido de audio basado en canales basandose en uno o mas codecs (por ejemplo, AAC, AC3, Dolby True HD, Dolby Digital Plus y DTS Master Audio) para emitir por los sistemas de suministro. Los estudios de audio de juegos pueden emitir uno o mas fragmentos de audio de juego, por ejemplo, mediante una DAW. Los motores de codificacion/reproduccion de audios de juego pueden codificar y/o reproducir las derivaciones de audio como contenido de audio basado en canales para su emision por los sistemas de suministro. Otro ejemplo de contexto en el que se pueden realizar las tecnicas comprende un ecosistema de audio que puede incluir grabacion difundida de objetos de audio, sistemas de audio profesionales, captura de consumidores en el dispositivo, formato de audio HOA, renderizacion en el dispositivo, audio del consumidor, television y accesorios, y sistemas de audio para el automovil.
[0226] Los objetos de audio de grabacion difundida, los sistemas de audio profesionales 320 y la captura de consumidores en el dispositivo pueden codificar todos sus resultados utilizando el formato de audio HOA. De esta manera, el contenido de audio puede codificarse utilizando el formato de audio HOA en una representacion unica que puede reproducirse utilizando la reproduccion en dispositivo, el audio de consumidor, la television y accesorios y los sistemas de audio para automoviles. En otras palabras, la representacion unica del contenido de audio se puede reproducir en un sistema generico de reproduccion de audio (es decir, en lugar de requerir una configuracion particular tal como 5.1,7.1, etc.), tal como un sistema de reproduccion de audio 16.
[0227] Otros ejemplos de contexto en los que se pueden realizar las tecnicas incluyen un ecosistema de audio que puede incluir elementos de adquisicion y elementos de reproduccion. Los elementos de adquisicion pueden incluir dispositivos de adquisicion alambricos y/o inalambricos (por ejemplo, microfonos Eigen), captura de sonido envolvente en dispositivo y dispositivos moviles (por ejemplo, telefonos inteligentes y tablets). En algunos ejemplos, los dispositivos de adquisicion alambricos y/o inalambricos pueden estar acoplados al dispositivo movil mediante uno o mas canales de comunicacion alambricos y/o inalambricos.
[0228] De acuerdo con una o mas tecnicas de esta divulgacion, el dispositivo movil puede usarse para adquirir un campo sonoro. Por ejemplo, el dispositivo movil puede adquirir un campo sonoro mediante dispositivos de adquisicion alambricos y/o inalambricos y/o la captura de sonido envolvente en el dispositivo (por ejemplo, una pluralidad de microfonos integrados en el dispositivo movil). El dispositivo movil puede entonces codificar el campo sonoro adquirido en los coeficientes HOA para la reproduccion por uno o mas de los elementos de reproduccion. Por ejemplo, un usuario del dispositivo movil puede grabar (adquirir un campo sonoro de) un suceso en vivo (por ejemplo, una reunion, una conferencia, una obra de teatro, un concierto, etc.) y codificar la grabacion en coeficientes HOA.
[0229] El dispositivo movil tambien puede utilizar uno o mas de los elementos de reproduccion para reproducir el campo sonoro codificado por HOA. Por ejemplo, el dispositivo movil puede descodificar el campo sonoro codificado por HOA y emitir una senal a uno o mas de los elementos de reproduccion, que hace que los uno o mas de los elementos de reproduccion recreen el campo sonoro. Como ejemplo, el dispositivo movil puede utilizar los canales de comunicacion inalambricos y/o inalambricos para emitir la senal a uno o mas altavoces (por ejemplo, matrices de altavoces, barras de sonido, etc.). Como otro ejemplo, el dispositivo movil puede utilizar soluciones de acoplamiento para emitir la senal a una o mas estaciones de acoplamiento y/o uno o mas altavoces acoplados (por ejemplo, sistemas de sonido en coches inteligentes y/u hogares). Como otro ejemplo, el dispositivo movil puede utilizar la reproduccion de auriculares para emitir la senal a un conjunto de auriculares, por ejemplo, para crear un sonido binaural realista.
[0230] En algunos ejemplos, un dispositivo movil particular puede adquirir un campo sonoro tridimensional y reproducir el mismo campo sonoro tridimensional en un momento posterior. En algunos ejemplos, el dispositivo movil puede adquirir un campo sonoro tridimensional, codificar el campo sonoro tridimensional en HOA y transmitir el campo sonoro tridimensional codificado a otros uno o mas dispositivos (por ejemplo, otros dispositivos moviles y/u otros dispositivos no moviles) para su reproduccion.
[0231] Otro contexto mas en el que las tecnicas se pueden realizar incluye un ecosistema de audio que puede incluir contenido de audio, estudios de juegos, contenido de audio codificado, motores de reproduccion y sistemas de suministro. En algunos ejemplos, los estudios de juego pueden incluir una o mas DAW que pueden prestar soporte a la edicion de senales HOA. Por ejemplo, las una o mas DAW pueden incluir acoples HOA y/o herramientas que pueden ser configuradas para funcionar con (por ejemplo, trabajar con) uno o mas sistemas de audio de juegos. En algunos ejemplos, los estudios de juego pueden producir nuevos formatos de derivacion que den soporte a HOA. En cualquier caso, los estudios de juego pueden emitir contenido de audio codificado a los motores de reproduccion que pueden representar un campo sonoro para su reproduccion mediante los sistemas de suministro.
[0232] Las tecnicas tambien se pueden realizar con respecto a dispositivos a modo de ejemplo de adquisicion de audio. Por ejemplo, las tecnicas se pueden realizar con respecto a un microfono Eigen que puede incluir una pluralidad de microfonos que estan configurados colectivamente para grabar un campo sonoro tridimensional. En algunos ejemplos, la pluralidad de microfonos del microfono Eigen puede estar situada en la superficie de una bola esencialmente esferica con un radio de aproximadamente 4 cm. En algunos ejemplos, el dispositivo de codificacion de audio 20 puede estar integrado en el microfono Eigen a fin de emitir un flujo de bits 21 directamente desde el microfono.
[0233] Otro contexto a modo de ejemplo de adquisicion de audio puede incluir un camion de produccion que puede configurarse para recibir una senal desde uno o mas microfonos, tal como uno o mas microfonos Eigen. El camion de produccion tambien puede incluir un codificador de audio, tal como el codificador de audio 20 de la FIG.
3A.
[0234] El dispositivo movil puede incluir tambien, en algunos casos, una pluralidad de microfonos que estan configurados colectivamente para grabar un campo sonoro tridimensional. En otras palabras, la pluralidad de microfonos puede tener diversidad X, Y, Z. En algunos ejemplos, el dispositivo movil puede incluir un microfono que puede ser girado para proporcionar diversidad X, Y, Z con respecto a otros uno o mas microfonos del dispositivo movil. El dispositivo movil tambien puede incluir un codificador de audio, tal como el codificador de audio 20 de la FIG. 3A.
[0235] Un dispositivo de captura de video robustecido puede configurarse adicionalmente para grabar un campo sonoro tridimensional. En algunos ejemplos, el dispositivo de captura de video robustecido puede estar unido a un casco de un usuario que participa en una actividad. Por ejemplo, el dispositivo de captura de video robustecido puede estar unido a un casco de un usuario que realiza descenso de rios. De esta manera, el dispositivo de captura de video robustecido puede capturar un campo sonoro tridimensional que representa la accion alrededor del usuario (por ejemplo, agua que se estrella detras del usuario, otro navegante que habla delante del usuario, etc.).
[0236] Las tecnicas tambien se pueden realizar con respecto a un dispositivo movil mejorado accesorio, que se puede configurar para grabar un campo sonoro tridimensional. En algunos ejemplos, el dispositivo movil puede ser similar a los dispositivos moviles analizados anteriormente, con la adicion de uno o mas accesorios. Por ejemplo, un microfono Eigen se puede unir al dispositivo movil mencionado anteriormente para formar un dispositivo movil mejorado accesorio. De esta manera, el dispositivo movil mejorado accesorio puede capturar una version del campo sonoro tridimensional de calidad superior que utilizando unicamente componentes de captura de sonido integrados en el dispositivo movil mejorado accesorio.
[0237] Los dispositivos a modo de ejemplo de reproduccion de audio que pueden llevar a cabo diversos aspectos de las tecnicas descritas en esta divulgacion se analizan adicionalmente a continuacion. De acuerdo con una o mas tecnicas de esta divulgacion, los altavoces y/o las barras de sonido pueden disponerse en cualquier configuracion arbitraria mientras se sigue reproduciendo un campo sonoro tridimensional. Ademas, en algunos ejemplos, los dispositivos de reproduccion de auriculares pueden estar acoplados a un descodificador 24 mediante una conexion por cable o bien inalambrica. De acuerdo con una o mas tecnicas de esta divulgacion, se puede utilizar una unica representacion generica de un campo sonoro para reproducir el campo sonoro sobre cualquier combinacion de altavoces, barras de sonido y dispositivos de reproduccion de auriculares.
[0238] Un cierto numero de diferentes entornos de reproduccion de audio de ejemplo tambien pueden ser adecuados para realizar diversos aspectos de las tecnicas descritas en esta divulgacion. Por ejemplo, un entorno de reproduccion de altavoces 5.1, un entorno de reproduccion de altavoces 2.0 (por ejemplo, estereo), un entorno de reproduccion de altavoces 9.1 con altavoces frontales de altura completa, un entorno de reproduccion de altavoces 22.2, un entorno de reproduccion de altavoces 16.0, un entorno de reproduccion de altavoces automotrices y un dispositivo movil con entorno de reproduccion por audifono pueden ser entornos adecuados para realizar diversos aspectos de las tecnicas descritas en esta divulgacion.
[0239] De acuerdo con una o mas tecnicas de esta divulgacion, se puede utilizar una unica representacion generica de un campo sonoro para representar el campo sonoro en cualquiera de los entornos de reproduccion precedentes. Adicionalmente, las tecnicas de esta divulgacion permiten a un reproductor reproducir un campo sonoro a partir de una representacion generica para la reproduccion en entornos de reproduccion distintos al descrito anteriormente. Por ejemplo, si las consideraciones de diseno prohiben la colocacion correcta de los altavoces de acuerdo con un entorno de reproduccion de altavoces 7.1 (por ejemplo, si no es posible colocar un altavoz envolvente derecho), las tecnicas de esta divulgacion permiten que un reproductor compense con los otros 6 altavoces de modo que la reproduccion se pueda lograr en un entorno de reproduccion de altavoces 6.1.
[0240] Ademas, un usuario puede observar un juego deportivo mientras utiliza los auriculares. De acuerdo con una o mas tecnicas de esta divulgacion, el campo sonoro tridimensional del juego deportivo puede ser adquirido (por ejemplo, uno o mas microfonos Eigen pueden ser colocados en y/o alrededor del estadio de beisbol), los coeficientes HOA correspondientes al campo sonoro tridimensional pueden obtenerse y transmitirse a un descodificador, el descodificador puede reconstruir el campo sonoro tridimensional basandose en los coeficientes HOA y emitir el campo sonoro tridimensional reconstruido a un reproductor, el reproductor puede obtener una indicacion en cuanto al tipo de entorno de reproduccion (por ejemplo, los auriculares) y reproducir el campo sonoro tridimensional reconstruido en senales que hacen que los auriculares emitan una representacion del campo sonoro tridimensional del juego deportivo.
[0241] En cada uno de los diversos casos descritos anteriormente, deberia entenderse que el dispositivo de codificacion de audio 20 puede realizar un procedimiento o comprender de otro modo medios para realizar cada etapa del procedimiento, para el cual el dispositivo de codificacion de audio 20 esta configurado, en algunos casos; estos medios pueden comprender uno o mas procesadores. En algunos casos, los uno o mas procesadores pueden representar un procesador de proposito especial configurado por medio de instrucciones almacenadas en un medio de almacenamiento no transitorio legible por ordenador. En otras palabras, varios aspectos de las tecnicas en cada uno de los conjuntos de ejemplos de codificacion pueden proporcionar un medio de almacenamiento no transitorio legible por ordenador que tiene almacenadas en el mismo instrucciones que, cuando se ejecutan, hacen que los uno o mas procesadores realicen el procedimiento, para el cual el dispositivo de codificacion de audio 20 ha sido configurado.
[0242] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, las funciones pueden almacenarse en, y transmitirse por, un medio legible por ordenador, como una o mas instrucciones o codigo, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[0243] Analogamente, en cada uno de los diversos casos descritos anteriormente, deberia entenderse que el dispositivo de descodificacion de audio 24 puede realizar un procedimiento o comprender de otro modo medios para realizar cada etapa del procedimiento para realizar el cual esta configurado el dispositivo de descodificacion de audio 24. En algunos casos, estos medios pueden comprender uno o mas procesadores. En algunos casos, los uno o mas procesadores pueden representar un procesador de proposito especial configurado por medio de instrucciones almacenadas en un medio de almacenamiento no transitorio legible por ordenador. En otras palabras, varios aspectos de las tecnicas en cada uno de los conjuntos de ejemplos de codificacion pueden proporcionar un medio de almacenamiento no transitorio legible por ordenador que tiene almacenadas en el instrucciones que, cuando se ejecutan, hacen que uno o mas procesadores realicen el procedimiento para realizar el cual el dispositivo de descodificacion de audio 24 ha sido configurado.
[0244] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, estan orientados a medios de almacenamiento tangibles no transitorios. El termino disco, como se usa en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos normalmente emiten datos magneticamente, mientras que otros discos emiten datos opticamente con laseres. Las combinaciones de lo anterior tambien deberian incluirse dentro del alcance de los medios legibles por ordenador.
[0245] Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), formaciones de compuertas programables in situ (FPGA) u otros circuitos logicos, integrados o discretos, equivalentes. En consecuencia, el termino "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de modulos de hardware y/o software dedicados, configurados para la codificacion y la descodificacion, o incorporados en un codec combinado. Ademas, las tecnicas se podrian implementar totalmente en uno o mas circuitos o elementos logicos.
[0246] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalambrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de codec, o ser proporcionadas por un grupo de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, conjuntamente con software y/o firmware adecuados.

Claims (17)

REIVINDICACIONES
1. Un dispositivo configurado para obtener una pluralidad de coeficientes ambisonicos de orden superior, HOA, representatives de un campo sonoro, con el dispositivo que comprende:
uno o mas procesadores configurados para:
obtener a partir de un flujo de bits datos indicativos de una pluralidad de valores de ponderacion que representan un vector, con cada uno de los valores de ponderacion correspondiente a una respectiva de una pluralidad de ponderaciones en una suma ponderada de vectores de codigo que representa el vector, definido el vector en un dominio armonico esferico, y representativo de un componente direccional de un objeto de audio correspondiente presente en el campo sonoro representado por la pluralidad de coeficientes HOA;
obtener, a partir del flujo de bits, datos indicativos de cual de una pluralidad de vectores de codigo usar para reconstruir el vector;
seleccionar un subconjunto de los vectores de codigo basandose en los datos indicativos de cual de una pluralidad de vectores de codigo usar para reconstruir el vector;
reconstruir el vector basandose en los valores de ponderacion y el subconjunto seleccionado de los vectores de codigo; y
renderizar, basandose en el vector reconstruido, alimentaciones de altavoces para reproduccion mediante altavoces para reproducir el campo sonoro;
una memoria acoplada al uno o mas procesadores, y configurada para almacenar el vector reconstruido.
2. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados ademas para determinar una suma ponderada del subconjunto seleccionado de los vectores de codigo donde el subconjunto seleccionado de los vectores de codigo esta ponderado por los valores de ponderacion.
3. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados, ademas, para:
para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo de los vectores de codigo para generar un vector de codigo ponderado respectivo incluido en una pluralidad de vectores de codigo ponderados; y
sumar la pluralidad de vectores de codigo ponderados para determinar el vector.
4. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados, ademas, para:
para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo de los vectores de codigo en el subconjunto de vectores de codigo para generar un vector de codigo ponderado respectivo; y
sumar la pluralidad de vectores de codigo ponderados para determinar el vector.
5. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados ademas para obtener a partir del flujo de bits los datos indicativos de una pluralidad de valores de ponderacion que representan el vector que se incluye en la version descompuesta de la pluralidad de coeficientes HOA, correspondiendo cada uno de los valores de ponderacion a la una respectiva de la pluralidad de ponderaciones en la suma ponderada de vectores de codigo que representa el vector y que incluye el conjunto de vectores de codigo, comprendiendo el conjunto de vectores de codigo al menos uno de un conjunto de vectores direccionales, un conjunto de vectores direccionales ortogonales, un conjunto de vectores direccionales ortonormales, un conjunto de vectores direccionales pseudoortonormales, un conjunto de vectores direccionales pseudoortogonales, un conjunto de vectores de base direccionales, un conjunto de vectores ortogonales, un conjunto de vectores ortonormales, un conjunto de vectores pseudoortonormales, un conjunto de vectores pseudoortogonales y un conjunto de vectores de base.
6. El dispositivo de la reivindicacion 1, que comprende ademas los altavoces accionados por las alimentaciones de altavoces para reproducir el campo sonoro, con los altavoces acoplados a uno o mas procesadores.
7. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados ademas para determinar una suma ponderada del subconjunto seleccionado de los vectores de codigo donde el subconjunto seleccionado de los vectores de codigo esta ponderado por los valores de ponderacion.
8. El dispositivo de la reivindicacion 1, en el que el uno o mas procesadores estan configurados ademas, para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo del subconjunto seleccionado de los vectores de codigo para generar un vector de codigo ponderado respectivo incluido en una pluralidad de vectores de codigo ponderados, y sumar la pluralidad de vectores de codigo ponderados para determinar el vector.
9. El dispositivo de la reivindicacion 1, que comprende ademas los altavoces, en el que el uno o mas procesadores estan acoplados a los altavoces.
10. El dispositivo de la reivindicacion 1,
en el que el uno o mas procesadores estan configurados ademas para reconstruir los coeficientes HOA basandose en el vector reconstruido y renderizar los coeficientes HOA a las alimentaciones de altavoces, y en el que el dispositivo comprende ademas altavoces accionados por las alimentaciones de altavoces para reproducir un campo sonoro representado por los coeficientes HOA.
11. Un procedimiento para obtener una pluralidad de coeficientes ambisonicos de orden superior, HOA, representativos de un campo sonoro, comprendiendo el procedimiento:
obtener mediante un descodificador de audio y a partir de unos datos de flujo de bits indicativos de una pluralidad de valores de ponderacion que representan un vector, cada uno de los valores de ponderacion correspondiente a uno respectivo de una pluralidad de ponderaciones en una suma ponderada de vectores de codigo utilizados para representar el vector el vector definido en un dominio armonico esferico, y representativo de un componente direccional de un objeto de audio correspondiente presente en el campo sonoro representado por la pluralidad de coeficientes HOA;
obtener, a partir del flujo de bits, datos indicativos de cual de una pluralidad de vectores de codigo usar para reconstruir el vector;
seleccionar, mediante el descodificador de audio, un subconjunto de los vectores de codigo basandose en los datos indicativos de cual de una pluralidad de vectores de codigo usar para reconstruir el vector; reconstruir, mediante el descodificador de audio, el vector basandose en los valores de ponderacion y el subconjunto seleccionado de los vectores de codigo;
renderizar, mediante el descodificador de audio y basandose en el vector reconstruido, alimentaciones de altavoces para su reproduccion mediante altavoces para reproducir el campo sonoro.
12. El procedimiento de la reivindicacion 11, en el que la reconstruccion del vector comprende determinar una suma ponderada del subconjunto seleccionado de los vectores de codigo donde el subconjunto seleccionado de vectores de codigo esta ponderado por los valores de ponderacion.
13. El procedimiento de la reivindicacion 11, en el que la reconstruccion del vector comprende:
para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo del subconjunto de los vectores de codigo para generar un vector de codigo ponderado respectivo incluido en una pluralidad de vectores de codigo ponderados; y
sumar la pluralidad de vectores de codigo ponderados para determinar el vector.
14. El procedimiento de la reivindicacion 11, en el que la reconstruccion del vector basandose en los valores de ponderacion y el subconjunto seleccionado de los vectores de codigo comprende:
para cada uno de los valores de ponderacion, multiplicar el valor de ponderacion por uno respectivo de los vectores de codigo en el subconjunto de vectores de codigo para generar un vector de codigo ponderado respectivo incluido en una pluralidad de vectores de codigo ponderados; y
sumar la pluralidad de vectores de codigo ponderados para determinar el vector.
15. El procedimiento de la reivindicacion 1, en el que el conjunto de vectores de codigo comprende al menos uno de un conjunto de vectores direccionales, un conjunto de vectores direccionales ortogonales, un conjunto de vectores direccionales ortonormales, un conjunto de vectores direccionales pseudoortonormales, un conjunto de vectores direccionales pseudoortogonales, un conjunto de vectores de base direccionales, un conjunto de vectores ortogonales, un conjunto de vectores ortonormales, un conjunto de vectores pseudoortonormales, un conjunto de vectores pseudoortogonales, y un conjunto de vectores de base.
16. El procedimiento de la reivindicacion 1, que comprende, ademas, reconstruir los coeficientes HOA basandose en el vector reconstruido, en el que la renderizacion de las alimentaciones de altavoces comprende la renderizacion, basada en los coeficientes HOA reconstruidos, de las alimentaciones de altavoces para que los altavoces reproduzcan el campo sonoro.
17. Un medio legible por ordenador que comprende codigo que, cuando se ejecuta por un ordenador, hace que el ordenador lleve a cabo el procedimiento de cualquiera de las reivindicaciones 11 a 16.
ES15725955T 2014-05-16 2015-05-15 Reconstrucción de vectores descompuestos a partir de señales de audio ambisónicas de orden superior Active ES2714356T3 (es)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201461994794P 2014-05-16 2014-05-16
US201462004128P 2014-05-28 2014-05-28
US201462019663P 2014-07-01 2014-07-01
US201462027702P 2014-07-22 2014-07-22
US201462028282P 2014-07-23 2014-07-23
US201462032440P 2014-08-01 2014-08-01
US14/712,836 US9852737B2 (en) 2014-05-16 2015-05-14 Coding vectors decomposed from higher-order ambisonics audio signals
PCT/US2015/031156 WO2015175981A1 (en) 2014-05-16 2015-05-15 Coding vectors decomposed from higher-order ambisonics audio signals

Publications (1)

Publication Number Publication Date
ES2714356T3 true ES2714356T3 (es) 2019-05-28

Family

ID=53274838

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15725955T Active ES2714356T3 (es) 2014-05-16 2015-05-15 Reconstrucción de vectores descompuestos a partir de señales de audio ambisónicas de orden superior

Country Status (20)

Country Link
US (1) US9852737B2 (es)
EP (1) EP3143614B1 (es)
JP (1) JP6549156B2 (es)
KR (1) KR102032021B1 (es)
CN (2) CN111312263B (es)
AU (1) AU2015258899B2 (es)
BR (1) BR112016026724B1 (es)
CA (1) CA2946820C (es)
CL (1) CL2016002867A1 (es)
DK (1) DK3143614T3 (es)
ES (1) ES2714356T3 (es)
HU (1) HUE042623T2 (es)
MX (1) MX360614B (es)
MY (1) MY176232A (es)
PH (1) PH12016502120B1 (es)
RU (1) RU2685997C2 (es)
SG (1) SG11201608518TA (es)
TW (1) TWI670709B (es)
WO (1) WO2015175981A1 (es)
ZA (1) ZA201607875B (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9667959B2 (en) 2013-03-29 2017-05-30 Qualcomm Incorporated RTP payload format designs
US9854377B2 (en) 2013-05-29 2017-12-26 Qualcomm Incorporated Interpolation for decomposed representations of a sound field
US9466305B2 (en) 2013-05-29 2016-10-11 Qualcomm Incorporated Performing positional analysis to code spherical harmonic coefficients
US9502045B2 (en) 2014-01-30 2016-11-22 Qualcomm Incorporated Coding independent frames of ambient higher-order ambisonic coefficients
US9922656B2 (en) 2014-01-30 2018-03-20 Qualcomm Incorporated Transitioning of ambient higher-order ambisonic coefficients
US10770087B2 (en) 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
US9620137B2 (en) 2014-05-16 2017-04-11 Qualcomm Incorporated Determining between scalar and vector quantization in higher order ambisonic coefficients
US9736606B2 (en) 2014-08-01 2017-08-15 Qualcomm Incorporated Editing of higher-order ambisonic audio data
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
US10249312B2 (en) 2015-10-08 2019-04-02 Qualcomm Incorporated Quantization of spatial vectors
US9961467B2 (en) 2015-10-08 2018-05-01 Qualcomm Incorporated Conversion from channel-based audio to HOA
US9961475B2 (en) 2015-10-08 2018-05-01 Qualcomm Incorporated Conversion from object-based audio to HOA
EP3297298B1 (en) 2016-09-19 2020-05-06 A-Volute Method for reproducing spatially distributed sounds
GB2554446A (en) 2016-09-28 2018-04-04 Nokia Technologies Oy Spatial audio signal format generation from a microphone array using adaptive capture
WO2018162803A1 (en) * 2017-03-09 2018-09-13 Aalto University Foundation Sr Method and arrangement for parametric analysis and processing of ambisonically encoded spatial sound scenes
US10242486B2 (en) * 2017-04-17 2019-03-26 Intel Corporation Augmented reality and virtual reality feedback enhancement system, apparatus and method
US10405126B2 (en) * 2017-06-30 2019-09-03 Qualcomm Incorporated Mixed-order ambisonics (MOA) audio data for computer-mediated reality systems
US10942914B2 (en) 2017-10-19 2021-03-09 Adobe Inc. Latency optimization for digital asset compression
US11086843B2 (en) 2017-10-19 2021-08-10 Adobe Inc. Embedding codebooks for resource optimization
US11120363B2 (en) * 2017-10-19 2021-09-14 Adobe Inc. Latency mitigation for encoding data
US11270711B2 (en) * 2017-12-21 2022-03-08 Qualcomm Incorproated Higher order ambisonic audio data
US10657974B2 (en) * 2017-12-21 2020-05-19 Qualcomm Incorporated Priority information for higher order ambisonic audio data
US10264386B1 (en) * 2018-02-09 2019-04-16 Google Llc Directional emphasis in ambisonics
CN110876100B (zh) * 2018-08-29 2022-12-09 嘉楠明芯(北京)科技有限公司 一种音源定向方法与系统
US11361776B2 (en) 2019-06-24 2022-06-14 Qualcomm Incorporated Coding scaled spatial components
US11538489B2 (en) 2019-06-24 2022-12-27 Qualcomm Incorporated Correlating scene-based audio data for psychoacoustic audio coding
US11368456B2 (en) 2020-09-11 2022-06-21 Bank Of America Corporation User security profile for multi-media identity verification
US11356266B2 (en) 2020-09-11 2022-06-07 Bank Of America Corporation User authentication using diverse media inputs and hash-based ledgers
US11743670B2 (en) 2020-12-18 2023-08-29 Qualcomm Incorporated Correlation-based rendering with multiple distributed streams accounting for an occlusion for six degree of freedom applications
US11521623B2 (en) 2021-01-11 2022-12-06 Bank Of America Corporation System and method for single-speaker identification in a multi-speaker environment on a low-frequency audio recording
US11600282B2 (en) * 2021-07-02 2023-03-07 Google Llc Compressing audio waveforms using neural networks and vector quantizers
US20240070941A1 (en) * 2022-08-31 2024-02-29 Sonaria 3D Music, Inc. Frequency interval visualization education and entertainment system and method
CN117556431B (zh) * 2024-01-12 2024-06-11 北京北大软件工程股份有限公司 一种混合软件漏洞分析方法和系统

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1159034B (it) 1983-06-10 1987-02-25 Cselt Centro Studi Lab Telecom Sintetizzatore vocale
US5012518A (en) 1989-07-26 1991-04-30 Itt Corporation Low-bit-rate speech coder using LPC data reduction processing
ATE138238T1 (de) 1991-01-08 1996-06-15 Dolby Lab Licensing Corp Kodierer/dekodierer für mehrdimensionale schallfelder
US5757927A (en) 1992-03-02 1998-05-26 Trifield Productions Ltd. Surround sound apparatus
JP2626492B2 (ja) * 1993-09-13 1997-07-02 日本電気株式会社 ベクトル量子化装置
US5790759A (en) 1995-09-19 1998-08-04 Lucent Technologies Inc. Perceptual noise masking measure based on synthesis filter frequency response
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
JP3849210B2 (ja) 1996-09-24 2006-11-22 ヤマハ株式会社 音声符号化復号方式
US5821887A (en) 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
US6167375A (en) 1997-03-17 2000-12-26 Kabushiki Kaisha Toshiba Method for encoding and decoding a speech signal including background noise
US6263312B1 (en) 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
AUPP272698A0 (en) 1998-03-31 1998-04-23 Lake Dsp Pty Limited Soundfield playback from a single speaker system
EP1018840A3 (en) 1998-12-08 2005-12-21 Canon Kabushiki Kaisha Digital receiving apparatus and method
US6370502B1 (en) 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US20020049586A1 (en) 2000-09-11 2002-04-25 Kousuke Nishio Audio encoder, audio decoder, and broadcasting system
JP2002094989A (ja) 2000-09-14 2002-03-29 Pioneer Electronic Corp ビデオ信号符号化装置及びビデオ信号符号化方法
US20020169735A1 (en) 2001-03-07 2002-11-14 David Kil Automatic mapping from data to preprocessing algorithms
GB2379147B (en) 2001-04-18 2003-10-22 Univ York Sound processing
US20030147539A1 (en) 2002-01-11 2003-08-07 Mh Acoustics, Llc, A Delaware Corporation Audio system based on at least second-order eigenbeams
US7262770B2 (en) 2002-03-21 2007-08-28 Microsoft Corporation Graphics image rendering with radiance self-transfer for low-frequency lighting environments
US8160269B2 (en) 2003-08-27 2012-04-17 Sony Computer Entertainment Inc. Methods and apparatuses for adjusting a listening area for capturing sounds
DK2282310T3 (da) 2002-09-04 2012-02-20 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde /niveau-moduser
FR2844894B1 (fr) 2002-09-23 2004-12-17 Remy Henri Denis Bruno Procede et systeme de traitement d'une representation d'un champ acoustique
US6961696B2 (en) 2003-02-07 2005-11-01 Motorola, Inc. Class quantization for distributed speech recognition
US7920709B1 (en) 2003-03-25 2011-04-05 Robert Hickling Vector sound-intensity probes operating in a half-space
JP2005086486A (ja) 2003-09-09 2005-03-31 Alpine Electronics Inc オーディオ装置およびオーディオ処理方法
US7433815B2 (en) 2003-09-10 2008-10-07 Dilithium Networks Pty Ltd. Method and apparatus for voice transcoding between variable rate coders
US7283634B2 (en) 2004-08-31 2007-10-16 Dts, Inc. Method of mixing audio channels using correlated outputs
FR2880755A1 (fr) 2005-01-10 2006-07-14 France Telecom Procede et dispositif d'individualisation de hrtfs par modelisation
WO2006122146A2 (en) 2005-05-10 2006-11-16 William Marsh Rice University Method and apparatus for distributed compressed sensing
EP1737267B1 (en) 2005-06-23 2007-11-14 AKG Acoustics GmbH Modelling of a microphone
US8510105B2 (en) 2005-10-21 2013-08-13 Nokia Corporation Compression and decompression of data vectors
EP1946612B1 (fr) 2005-10-27 2012-11-14 France Télécom Individualisation de hrtfs utilisant une modelisation par elements finis couplee a un modele correctif
US8190425B2 (en) 2006-01-20 2012-05-29 Microsoft Corporation Complex cross-correlation parameters for multi-channel audio
US8345899B2 (en) 2006-05-17 2013-01-01 Creative Technology Ltd Phase-amplitude matrixed surround decoder
US8712061B2 (en) 2006-05-17 2014-04-29 Creative Technology Ltd Phase-amplitude 3-D stereo encoder and decoder
US8379868B2 (en) 2006-05-17 2013-02-19 Creative Technology Ltd Spatial audio coding based on universal spatial cues
US20080004729A1 (en) 2006-06-30 2008-01-03 Nokia Corporation Direct encoding into a directional audio coding format
DE102006053919A1 (de) 2006-10-11 2008-04-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer Anzahl von Lautsprechersignalen für ein Lautsprecher-Array, das einen Wiedergaberaum definiert
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US7663623B2 (en) 2006-12-18 2010-02-16 Microsoft Corporation Spherical harmonics scaling
US8908873B2 (en) 2007-03-21 2014-12-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for conversion between multi-channel audio formats
US8290167B2 (en) * 2007-03-21 2012-10-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for conversion between multi-channel audio formats
US9015051B2 (en) 2007-03-21 2015-04-21 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Reconstruction of audio channels with direction parameters indicating direction of origin
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
US8612220B2 (en) 2007-07-03 2013-12-17 France Telecom Quantization after linear transformation combining the audio signals of a sound scene, and related coder
WO2009033288A1 (en) * 2007-09-11 2009-03-19 Voiceage Corporation Method and device for fast algebraic codebook search in speech and audio coding
GB2467668B (en) 2007-10-03 2011-12-07 Creative Tech Ltd Spatial audio analysis and synthesis for binaural reproduction and format conversion
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
WO2009090876A1 (ja) 2008-01-16 2009-07-23 Panasonic Corporation ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法
MX2010009932A (es) 2008-03-10 2010-11-30 Fraunhofer Ges Forschung Metodo y dispositivo para manipular una señal de audio que tiene un evento transitorio.
US8219409B2 (en) 2008-03-31 2012-07-10 Ecole Polytechnique Federale De Lausanne Audio wave field encoding
US8452587B2 (en) 2008-05-30 2013-05-28 Panasonic Corporation Encoder, decoder, and the methods therefor
EP2297557B1 (en) 2008-07-08 2013-10-30 Brüel & Kjaer Sound & Vibration Measurement A/S Reconstructing an acoustic field
GB0817950D0 (en) 2008-10-01 2008-11-05 Univ Southampton Apparatus and method for sound reproduction
JP5697301B2 (ja) 2008-10-01 2015-04-08 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム
US8207890B2 (en) 2008-10-08 2012-06-26 Qualcomm Atheros, Inc. Providing ephemeris data and clock corrections to a satellite navigation system receiver
US8391500B2 (en) 2008-10-17 2013-03-05 University Of Kentucky Research Foundation Method and system for creating three-dimensional spatial audio
FR2938688A1 (fr) 2008-11-18 2010-05-21 France Telecom Codage avec mise en forme du bruit dans un codeur hierarchique
US8817991B2 (en) 2008-12-15 2014-08-26 Orange Advanced encoding of multi-channel digital audio signals
EP2374123B1 (fr) 2008-12-15 2019-04-10 Orange Codage perfectionne de signaux audionumeriques multicanaux
EP2205007B1 (en) 2008-12-30 2019-01-09 Dolby International AB Method and apparatus for three-dimensional acoustic field encoding and optimal reconstruction
GB2467534B (en) * 2009-02-04 2014-12-24 Richard Furse Sound system
EP2237270B1 (en) 2009-03-30 2012-07-04 Nuance Communications, Inc. A method for determining a noise reference signal for noise compensation and/or noise reduction
GB0906269D0 (en) 2009-04-09 2009-05-20 Ntnu Technology Transfer As Optimal modal beamformer for sensor arrays
WO2011022027A2 (en) 2009-05-08 2011-02-24 University Of Utah Research Foundation Annular thermoacoustic energy converter
CN102227696B (zh) 2009-05-21 2014-09-24 松下电器产业株式会社 触感处理装置
US8705750B2 (en) 2009-06-25 2014-04-22 Berges Allmenndigitale Rådgivningstjeneste Device and method for converting spatial audio signal
EP2486561B1 (en) 2009-10-07 2016-03-30 The University Of Sydney Reconstruction of a recorded sound field
AU2009353896B2 (en) 2009-10-15 2013-05-23 Widex A/S Hearing aid with audio codec and method
GEP20146081B (en) 2009-12-07 2014-04-25 Dolby Laboratories Licensing Corp Decoding of multichannel aufio encoded bit streams using adaptive hybrid transformation
CN102104452B (zh) 2009-12-22 2013-09-11 华为技术有限公司 信道状态信息反馈方法、信道状态信息获得方法及设备
EP2539892B1 (fr) 2010-02-26 2014-04-02 Orange Compression de flux audio multicanal
EP2532001B1 (en) 2010-03-10 2014-04-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal decoder, audio signal encoder, methods and computer program using a sampling rate dependent time-warp contour encoding
PT2553947E (pt) 2010-03-26 2014-06-24 Thomson Licensing Método e dispositivo para descodificar uma representação de um campo sonoro de áudio para a reprodução de áudio
JP5850216B2 (ja) 2010-04-13 2016-02-03 ソニー株式会社 信号処理装置および方法、符号化装置および方法、復号装置および方法、並びにプログラム
US9053697B2 (en) 2010-06-01 2015-06-09 Qualcomm Incorporated Systems, methods, devices, apparatus, and computer program products for audio equalization
NZ587483A (en) * 2010-08-20 2012-12-21 Ind Res Ltd Holophonic speaker system with filters that are pre-configured based on acoustic transfer functions
WO2012025580A1 (en) 2010-08-27 2012-03-01 Sonicemotion Ag Method and device for enhanced sound field reproduction of spatially encoded audio input signals
US9084049B2 (en) 2010-10-14 2015-07-14 Dolby Laboratories Licensing Corporation Automatic equalization using adaptive frequency-domain filtering and dynamic fast convolution
US9552840B2 (en) 2010-10-25 2017-01-24 Qualcomm Incorporated Three-dimensional sound capturing and reproducing with multi-microphones
EP2450880A1 (en) 2010-11-05 2012-05-09 Thomson Licensing Data structure for Higher Order Ambisonics audio data
KR101401775B1 (ko) 2010-11-10 2014-05-30 한국전자통신연구원 스피커 어레이 기반 음장 합성을 이용한 음장 재생 장치 및 방법
EP2469741A1 (en) 2010-12-21 2012-06-27 Thomson Licensing Method and apparatus for encoding and decoding successive frames of an ambisonics representation of a 2- or 3-dimensional sound field
US20120163622A1 (en) 2010-12-28 2012-06-28 Stmicroelectronics Asia Pacific Pte Ltd Noise detection and reduction in audio devices
WO2012094644A2 (en) 2011-01-06 2012-07-12 Hank Risan Synthetic simulation of a media recording
EP2541547A1 (en) * 2011-06-30 2013-01-02 Thomson Licensing Method and apparatus for changing the relative positions of sound objects contained within a higher-order ambisonics representation
US8548803B2 (en) 2011-08-08 2013-10-01 The Intellisis Corporation System and method of processing a sound signal including transforming the sound signal into a frequency-chirp domain
US9641951B2 (en) 2011-08-10 2017-05-02 The Johns Hopkins University System and method for fast binaural rendering of complex acoustic scenes
EP2560161A1 (en) 2011-08-17 2013-02-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Optimal mixing matrices and usage of decorrelators in spatial audio processing
EP2592845A1 (en) * 2011-11-11 2013-05-15 Thomson Licensing Method and Apparatus for processing signals of a spherical microphone array on a rigid sphere used for generating an Ambisonics representation of the sound field
EP2592846A1 (en) * 2011-11-11 2013-05-15 Thomson Licensing Method and apparatus for processing signals of a spherical microphone array on a rigid sphere used for generating an Ambisonics representation of the sound field
EP2805326B1 (en) 2012-01-19 2015-10-14 Koninklijke Philips N.V. Spatial audio rendering and encoding
EP2665208A1 (en) 2012-05-14 2013-11-20 Thomson Licensing Method and apparatus for compressing and decompressing a Higher Order Ambisonics signal representation
US9288603B2 (en) 2012-07-15 2016-03-15 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for backward-compatible audio coding
US9190065B2 (en) 2012-07-15 2015-11-17 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for three-dimensional audio coding using basis function coefficients
EP2688066A1 (en) * 2012-07-16 2014-01-22 Thomson Licensing Method and apparatus for encoding multi-channel HOA audio signals for noise reduction, and method and apparatus for decoding multi-channel HOA audio signals for noise reduction
US9473870B2 (en) 2012-07-16 2016-10-18 Qualcomm Incorporated Loudspeaker position compensation with 3D-audio hierarchical coding
KR102681514B1 (ko) 2012-07-16 2024-07-05 돌비 인터네셔널 에이비 오디오 재생을 위한 오디오 음장 표현을 렌더링하는 방법 및 장치
EP2875511B1 (en) 2012-07-19 2018-02-21 Dolby International AB Audio coding for improving the rendering of multi-channel audio signals
US9761229B2 (en) 2012-07-20 2017-09-12 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for audio object clustering
US9516446B2 (en) 2012-07-20 2016-12-06 Qualcomm Incorporated Scalable downmix design for object-based surround codec with cluster analysis by synthesis
JP5967571B2 (ja) 2012-07-26 2016-08-10 本田技研工業株式会社 音響信号処理装置、音響信号処理方法、及び音響信号処理プログラム
CN104756187B (zh) 2012-10-30 2018-04-27 诺基亚技术有限公司 用于能复原的矢量量化的方法和装置
US9336771B2 (en) 2012-11-01 2016-05-10 Google Inc. Speech recognition using non-parametric models
EP2743922A1 (en) 2012-12-12 2014-06-18 Thomson Licensing Method and apparatus for compressing and decompressing a higher order ambisonics representation for a sound field
US9736609B2 (en) 2013-02-07 2017-08-15 Qualcomm Incorporated Determining renderers for spherical harmonic coefficients
US10178489B2 (en) 2013-02-08 2019-01-08 Qualcomm Incorporated Signaling audio rendering information in a bitstream
US9883310B2 (en) 2013-02-08 2018-01-30 Qualcomm Incorporated Obtaining symmetry information for higher order ambisonic audio renderers
US9609452B2 (en) 2013-02-08 2017-03-28 Qualcomm Incorporated Obtaining sparseness information for higher order ambisonic audio renderers
EP2765791A1 (en) 2013-02-08 2014-08-13 Thomson Licensing Method and apparatus for determining directions of uncorrelated sound sources in a higher order ambisonics representation of a sound field
US9338420B2 (en) 2013-02-15 2016-05-10 Qualcomm Incorporated Video analysis assisted generation of multi-channel audio data
US9959875B2 (en) 2013-03-01 2018-05-01 Qualcomm Incorporated Specifying spherical harmonic and/or higher order ambisonics coefficients in bitstreams
WO2014135235A1 (en) 2013-03-05 2014-09-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for multichannel direct-ambient decomposition for audio signal processing
US9197962B2 (en) 2013-03-15 2015-11-24 Mh Acoustics Llc Polyhedral audio system based on at least second-order eigenbeams
EP2800401A1 (en) 2013-04-29 2014-11-05 Thomson Licensing Method and Apparatus for compressing and decompressing a Higher Order Ambisonics representation
US9384741B2 (en) 2013-05-29 2016-07-05 Qualcomm Incorporated Binauralization of rotated higher order ambisonics
US9466305B2 (en) 2013-05-29 2016-10-11 Qualcomm Incorporated Performing positional analysis to code spherical harmonic coefficients
US9854377B2 (en) 2013-05-29 2017-12-26 Qualcomm Incorporated Interpolation for decomposed representations of a sound field
EP4425489A2 (en) 2013-07-05 2024-09-04 Dolby International AB Enhanced soundfield coding using parametric component generation
TWI673707B (zh) 2013-07-19 2019-10-01 瑞典商杜比國際公司 將以L<sub>1</sub>個頻道為基礎之輸入聲音訊號產生至L<sub>2</sub>個揚聲器頻道之方法及裝置,以及得到一能量保留混音矩陣之方法及裝置,用以將以輸入頻道為基礎之聲音訊號混音以用於L<sub>1</sub>個聲音頻道至L<sub>2</sub>個揚聲器頻道
US20150127354A1 (en) 2013-10-03 2015-05-07 Qualcomm Incorporated Near field compensation for decomposed representations of a sound field
US9922656B2 (en) 2014-01-30 2018-03-20 Qualcomm Incorporated Transitioning of ambient higher-order ambisonic coefficients
US9502045B2 (en) 2014-01-30 2016-11-22 Qualcomm Incorporated Coding independent frames of ambient higher-order ambisonic coefficients
US20150264483A1 (en) 2014-03-14 2015-09-17 Qualcomm Incorporated Low frequency rendering of higher-order ambisonic audio data
US10770087B2 (en) 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
US9620137B2 (en) 2014-05-16 2017-04-11 Qualcomm Incorporated Determining between scalar and vector quantization in higher order ambisonic coefficients
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
US20160093308A1 (en) 2014-09-26 2016-03-31 Qualcomm Incorporated Predictive vector quantization techniques in a higher order ambisonics (hoa) framework

Also Published As

Publication number Publication date
BR112016026724A2 (pt) 2017-08-15
BR112016026724B1 (pt) 2022-10-11
MX360614B (es) 2018-11-09
CA2946820A1 (en) 2015-11-19
CN106463127B (zh) 2020-03-17
PH12016502120A1 (en) 2017-01-09
KR20170007801A (ko) 2017-01-20
CL2016002867A1 (es) 2017-05-26
JP6549156B2 (ja) 2019-07-24
CN106463127A (zh) 2017-02-22
CA2946820C (en) 2021-08-10
RU2016144327A (ru) 2018-06-20
JP2017516149A (ja) 2017-06-15
MX2016014929A (es) 2017-03-31
RU2016144327A3 (es) 2018-12-12
EP3143614B1 (en) 2018-12-05
ZA201607875B (en) 2019-08-28
MY176232A (en) 2020-07-24
US20150332690A1 (en) 2015-11-19
TW201603006A (zh) 2016-01-16
KR102032021B1 (ko) 2019-10-14
EP3143614A1 (en) 2017-03-22
CN111312263B (zh) 2024-05-24
CN111312263A (zh) 2020-06-19
AU2015258899B2 (en) 2019-09-19
PH12016502120B1 (en) 2017-01-09
TWI670709B (zh) 2019-09-01
DK3143614T3 (en) 2019-03-18
RU2685997C2 (ru) 2019-04-23
HUE042623T2 (hu) 2019-07-29
AU2015258899A1 (en) 2016-11-10
SG11201608518TA (en) 2016-11-29
WO2015175981A1 (en) 2015-11-19
US9852737B2 (en) 2017-12-26

Similar Documents

Publication Publication Date Title
ES2714356T3 (es) Reconstrucción de vectores descompuestos a partir de señales de audio ambisónicas de orden superior
ES2714275T3 (es) Determinación entre cuantificación escalar y vectorial en coeficientes ambisónicos de orden superior
ES2922451T3 (es) Indicación de la reusabilidad de parámetros de un marco para la codificación de vectores
ES2729624T3 (es) Reducción de la correlación entre canales de fondo ambisónicos de orden superior (HOA)
CA2948563C (en) Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals
ES2699657T3 (es) Obtención de información de dispersión para renderizadores de audio ambisónicos de orden superior
ES2696930T3 (es) Obtención de información de simetría para renderizadores de audio ambisónicos de orden superior