ES2316678T3 - Codificacion y descodificacion audio multicanal. - Google Patents

Codificacion y descodificacion audio multicanal. Download PDF

Info

Publication number
ES2316678T3
ES2316678T3 ES03020110T ES03020110T ES2316678T3 ES 2316678 T3 ES2316678 T3 ES 2316678T3 ES 03020110 T ES03020110 T ES 03020110T ES 03020110 T ES03020110 T ES 03020110T ES 2316678 T3 ES2316678 T3 ES 2316678T3
Authority
ES
Spain
Prior art keywords
channels
encoder
channel
multichannel
decoder
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.)
Expired - Lifetime
Application number
ES03020110T
Other languages
English (en)
Inventor
Naveen Thumpudi
Wei-Ge Chen
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2316678T3 publication Critical patent/ES2316678T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stereophonic System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

Un procedimiento de codificación de audio implementado por ordenador, que comprende. recibir un marco de datos de audio multicanal; agrupar ventanas plurales de diferentes canales en el marco en una o más placas, en el que cada placa de la una o más placas agrupa una o más ventanas colocadas conjuntamente entre las ventanas múltiples de los diferentes canales en el marco, en el que, para cada placa de la una o más placas, el grupo de la una o más ventanas colocadas conjuntamente para la placa comparte una posición de inicio para la placa y comparte una posición de finalización para la placa, en el que los canales plurales de los diferentes canales tienen diferentes configuraciones de ventanas en el marco, y en el que al menos una placa del uno o más grupos de placas colocadas conjuntamente de los canales plurales tienen diferentes configuraciones de ventanas en el marco; y producir como salida información de configuración de placas para la una o más placas, indicando la información de configuración de placas cómo las ventanas plurales están agrupadas en la una o más placas.

Description

Codificación y descodificación audio multicanal.
Las solicitudes provisionales de patente norteamericanas siguientes están relacionadas con la actual solicitud: (1) Solicitud de Patente Provisional norteamericana número de serie (60/408.432) titulada "Compresión de Audio Unificada Con Pérdida y Sin Pérdida", presentada el 4 de septiembre de 2002 y (2) Solicitud de Patente Provisional norteamericana número de serie 60/408.538 titulada "Codificación de Entropía por Adaptación de Codificación entre Modos de Nivel y de Longitud de Ejecución/Nivel", presentada el 4 de septiembre de 2002.
La presente invención se refiere al procesado de información de audio multicanal en codificación y descodificación.
Con la introducción de discos compactos, redes telefónicas inalámbricas digitales y envío de audio por Internet, el audio digital es un hecho común. Los ingenieros utilizan una variedad de técnicas para procesar audio digital eficientemente manteniendo al mismo tiempo la calidad del audio digital. Para comprender estas técnicas, ayuda comprender cómo se representa y se procesa en un ordenador la información de audio.
I. Representación de la información de audio en un ordenador
Un ordenador procesa información de audio como una serie de números que representan la información de audio. Por ejemplo, un único número puede representar una muestra de audio, que es un valor de amplitud (es decir, sonoridad) en un momento en particular. Varios factores afectan la calidad de la información de audio, incluyendo la profundidad de la muestra, la velocidad de muestreo, y el modo de canal.
La profundidad de la muestra (o precisión) indica el rango de números utilizados para representar una muestra. Cuanto más valores sean posibles para la muestra, más alta será la calidad debido a que el número puede capturar variaciones más sutiles en amplitud. Por ejemplo, una muestra de 8 bits tiene 256 valores posibles, mientras que una muestra de 16 bits tiene 65.536 valores posibles. Una muestra de 24 bits puede capturar las variaciones de sonoridad normales muy ajustadamente, y también puede capturar sonoridades anormalmente altas.
La velocidad de muestreo (que se mide normalmente como el número de muestras por segundo) también afecta la calidad. Cuanta más alta sea la velocidad de muestreo, más alta será la calidad debido a que se pueden representar más frecuencias de sonido. Algunas velocidades de muestreo comunes son 8.000, 11.025, 22.050, 32.000, 44.100, 48.000 y 96.000 muestras por segundo.
El mono y el estéreo son dos modos de canal comunes para el audio. En el modo mono, la información de audio está presente en un canal. En el modo estéreo, la información de audio está presente en dos canales normalmente etiquetado como canales izquierdo y derecho. Otros modos con más canales, tales como sonido envolvente de canal 5.1, 7.1 o 9.1 (el número "1" indica un sub - woofer (altavoz de bajos) o canal de efectos de baja frecuencia) también son posible. La tabla 1 muestra varios formatos de audio con diferentes niveles de calidad, junto con los costes en velocidad binaria en bruto correspondientes.
\vskip1.000000\baselineskip
TABLA 1 Velocidades binarias de información de audio de diferentes calidades
1
El audio de sonido envolvente típicamente tiene una velocidad binaria bruta incluso más elevada. Como se muestra en la tabla 1, el coste de la información de audio de alta calidad es una velocidad binaria elevada. La información de audio de alta calidad consume grandes cantidades de capacidad de almacenamiento y transmisión del ordenador. Sin embargo, las compañías y los consumidores dependen crecientemente de los ordenadores para crear, distribuir y reproducir los contenidos de audio multicanal de alta calidad.
II. Procesado de Información de Audio en un Ordenador
Muchos ordenadores y redes de ordenadores no tienen los recursos para procesar audio digital en bruto. La compresión (también denominada codificación) disminuye el costo de almacenar y transmitir información de audio convirtiendo la información a una forma de velocidad binaria más baja. La compresión puede ser sin pérdida (en la cual la calidad no sufre) o con pérdida (en la cual la calidad sufre pero la reducción binaria de la compresión sin pérdida posterior es más importante). La descompresión (también denominada descodificación) extrae una versión reconstruida de la versión original a partir de la forma comprimida.
A. Codificadores y descodificadores de audio perceptual estándar
Generalmente, el objetivo de la compresión de audio es representar digitalmente las señales de audio para proporcionar la máxima calidad de señal con la mínima cantidad posible de bits. Un sistema codificador/descodificador ("codec") de audio convencional utiliza una codificación de subbanda/transformación, cuantificación, control de velocidad y codificación de longitud variable para conseguir su compresión. La cuantificación y otras técnicas de compresión con pérdida introducen ruidos audibles potencialmente en la señal de audio. La audibilidad del ruido depende de cuanto ruido exista y de cuanto del ruido percibe el oyente. El primer factor se refiere principalmente a la calidad objetiva, mientras que el segundo factor depende de la percepción humana del sonido.
La figura 1 muestra un diagrama generalizado de un codificador (100) de audio perceptual, basado en transformación, de acuerdo con la técnica anterior. La figura 2 muestra un diagrama generalizado de un descodificador (200) de audio correspondiente de acuerdo con la técnica anterior. Aunque el sistema codec que se muestra en las figuras 1 y 2 es generalizado, tiene características que se encuentran en varios sistemas codec del mundo real, incluyendo versiones del codificador y del descodificador Windows Medio de Audio ("WMA") de la Microsoft Corporation. Otros sistemas codec están provistos o especificados por el Grupo de Expertos de Películas Cinematográficas, estándar Capa de Audio 3 ("MP3"), el estándar del Grupo 2 de Expertos de Películas Cinematográficas, estándar de Codificación de Audio Avanzada ("AAC") y Dolbi AC3. Para información adicional respecto a los sistemas codec, véanse los estándares o publicaciones técnicas respectivas.
1. Codificador de audio perceptual
En conjunto, el codificador (100) recibe una serie temporal de muestras (105) de audio de entrada, comprime las muestras (105) de audio y multiplexa la información producida por los distintos módulos del codificador (100) para producir como salida un tren binario (195). El codificador (100) incluye un transformador de frecuencia (110), un transformador multicanal (120), un modelizador de percepción (130), un ponderador (140), un cuantificador (150), un codificador de entropía (160), un controlador (170) y un multiplexor ("MUX") (180) de tren binario.
El transformador de frecuencia (110) recibe las muestras de audio (105) y las convierte en datas en el dominio de frecuencia. Por ejemplo, el transformador de frecuencia (110) divide las muestras de audio (105) en bloques, que pueden tener un tamaño variable para permitir una resolución temporal variable. Los bloques pequeños permiten una mayor preservación de detalles temporales que los segmentos cortos pero de transición activa en la entrada de muestras de audio (105), pero sacrifica alguna resolución de frecuencia. Como contraste, los bloques grandes tienen mejor resolución de frecuencia y peor resolución temporal, y normalmente permiten una eficiencia de compresión mayor en segmentos más largos y menos activos. Los bloques pueden solaparse para reducir las discontinuidades perceptibles entre bloques que de otra manera serian introducidas por una cuantificación posterior. Para audio de canales múltiples, el transformador de frecuencia (110) utiliza el mismo patrón de ventanas para cada canal en un marco en particular. El transformador de frecuencia (110) produce como salida bloques de datos de coeficientes de frecuencia al transformador multicanal (120),
\hbox{y produce como salida información lateral tal como
tamaños  de bloques al MUX (180).}
Para datos de audio de multicanal, los canales múltiples de los datos de coeficiente de frecuencia producidos por el transformador de frecuencia (110) a menudo se correlacionan. Para explotar esta correlación, el transformador multicanal (120) puede convertir los canales codificados independientemente múltiples originales en canales codificados conjuntamente. Por ejemplo, si la entrada está en modo estéreo, el transformador multicanal (120) puede convertir los canales izquierdo y derecho en canales de suma y diferencia:
2
O el transformador multicanal (120) puede pasar los canales izquierdo y derecho a través de canales codificados independientemente. La decisión de utilizar canales codificados independiente o conjuntamente es predeterminada o se realiza adaptativamente durante la codificación. Por ejemplo, el codificador (100) determina si codificar los canales estéreo conjunta o independientemente con una decisión de selección de bucle abierto que considera la (a) separación de energía entre codificar canales con y sin la transformación multicanal y (b) la disparidad en los patrones de excitación entre los canales de entrada izquierdo y derecho. Una decisión de este tipo puede realizarse en una base de ventana a ventana o solamente una vez por marco para simplificar la decisión. El transformador multicanal (120) produce información lateral al MUX (180) que indica el modo de canal utilizado.
El codificador (100) puede aplicar la rematrización multicanal a un bloque de datos de audio después de una transformación multicanal. Para velocidades binarias bajas, los datos de audio multicanal en canales codificados conjuntamente, el codificador (100) suprime selectivamente información en ciertos canales (por ejemplo, el canal diferencia) para mejorar la calidad de los canales restantes (por ejemplo, el canal suma). Por ejemplo, el codificador (100) escala el canal diferencia por un factor de escala \rho:
3
en la que el valor de \rho está basado en: (a) niveles medios actuales de una medida de la calidad de audio perceptual tal como la Relación de Ruido a Excitación ("NER"), (b) plenitud actual de un tampón de memoria virtual, (c) ajustes de la velocidad binaria y de la velocidad de muestreo del codificador (100), y (d) la separación de canales en los canales de entrada izquierdo y derecho.
El modelizador (130) de percepción, procesa los datos de audio de acuerdo con un modelo del sistema auditivo humano para mejorar la calidad percibida de la señal de audio reconstruida para una velocidad binaria dada. Por ejemplo, un modelo auditivo típicamente considera el rango de la escucha humana y las bandas críticas. El sistema nervioso humano integra subrangos de frecuencia. Por esta razón, un modelo auditivo puede organizar y procesar información de audio en bandas críticas. Diferentes modelos auditivos utilizan un número diferente de bandas críticas (por ejemplo, 25, 32, 55 o 109) y/o frecuencias de corte diferentes para las bandas críticas. Las bandas de corteza son un ejemplo bien conocido de bandas críticas. Además del rango y de las bandas críticas, las interacciones entre señales de audio pueden afectar espectacularmente la percepción. Una señal de audio que es claramente audible si se presenta ella sola puede ser completamente inaudible en presencia de otra señal de radio, llamada enmascadora o señal de máscara. El oído humano es relativamente insensible a la distorsión u otra pérdida de fidelidad (es decir, ruido) en la señal enmascarada, de manera que la señal enmascarada puede incluir más distorsión sin degradar la señal de audio percibida. Además, un modelo auditivo puede consistir en una variedad de otros factores que se refieren a los aspectos físicos o neurológicos de la percepción humana del sonido.
El modelizador de percepción (130) produce como salida información que el ponderador (140) utiliza para conformar ruido en los datos de audio para reducir la audibilidad del ruido, por ejemplo, utilizando cualesquiera de las distintas técnicas, el ponderador (140) genera factores de ponderación (algunas veces denominado factores de escala) para cuantificar matrices (algunas veces denominadas máscaras) en base a la información recibida. Los factores de ponderación en una matriz de cuantificación incluyen una ponderación de cada una de las bandas de cuantificación múltiples en los datos de audio, en el que las bandas de cuantificación son rangos de frecuencia de coeficientes de frecuencia. El número de bandas de cuantificación puede ser el mismo o menor que el número de bandas críticas. De esta manera, los factores de ponderación indican proporciones a las cuales el ruido es expandido a través de las bandas de cuantificación, con el objetivo de minimizar la audibilidad del ruido poniendo más ruido en bandas en los que es menos audible, y viceversa. Los factores de ponderación pueden variar en sus amplitudes y número de bandas de cuantificación de bloque a bloque. El ponderador (140) a continuación aplica los factores de ponderación a los datos recibidos del transformador multicanal (120).
En una implementación, el ponderador (140) genera un conjunto de factores de ponderación para cada ventana de cada canal de audio multicanal, o comparte un único conjunto de factores de ponderación para ventanas paralelas de canales codificados conjuntamente. El ponderador (140) produce como salida bloques de ponderación de datos de coeficientes al cuantificador (150) y produce como salida información lateral tal como los conjuntos de factores de ponderación al MUX (180).
Un conjunto de factores de ponderación puede ser comprimido para conseguir una representación más eficiente utilizando compresión directa. En la técnica de compresión directa, el codificador (100) cuantifica uniformemente cada elemento de una matriz de cuantificación. El codificador a continuación codifica diferencialmente los elementos cuantificados en relación con los elementos precedentes en la matriz, y Huffman codifica los elementos codificados diferencialmente. En algunos casos (por ejemplo, cuando todos los coeficientes de bandas de cuantificación particulares han sido cuantificados o truncados a un valor de 0, el descodificador (200) no requiere factores de ponderación para todas las bandas de cuantificación. En tales casos, el codificador (100) proporciona valores a un o más factores de ponderación no necesitados que son idénticos a los valores del siguiente factor de ponderación necesitado en una serie, lo cual hace que la codificación diferencial de elementos de la matriz de cuantificación sea más eficiente.
O, para aplicaciones de baja velocidad binaria, el codificador (100) puede comprimir paramétricamente una matriz de cuantificación para representar la matriz de cuantificación como un conjunto de parámetros, por ejemplo, utilizando codificación predictiva lineal ("LPC") de parámetros de pseudo - autocorrelación calculados de la matriz de cuantificación.
El cuantificador (150) cuantifica la salida del ponderador (140), produciendo datos de coeficientes cuantificados al codificador de entropía (160) e información lateral, incluyendo tamaño de paso de cuantificación al MUX (180). Los mapas de cuantificación varían en los valores de entrada a valores únicos, introduciendo pérdidas de información irreversibles, pero también permitiendo que el codificador (100) regule la calidad y la velocidad binaria del tren binario de salida (195) en conjunto con el controlador (170). En la figura 1, el cuantificador (150) es un cuantificador adaptativo, uniforme, escalar. El cuantificador (150) aplica el mismo paso de cuantificación a cada coeficiente de frecuencia, pero el mismo tamaño de paso de cuantificación puede cambiar de una interacción de un bucle de cuantificación a la siguiente, afectando la velocidad binaria de la salida del codificador de entropía (160). Otros tipos de cuantificación son no uniforme, cuantificación de vectores y/o cuantificación no adaptativa.
El codificador de entropía (160) comprime sin pérdida datos de coeficientes cuantificados recibidos del cuantificador (150). El codificador de entropía (150) puede calcular el número de bits gastados codificando información de audio y pasar esta información al controlador de velocidad/calidad (170).
El controlador (170) trabaja con el cuantificador (150) para regular la velocidad binaria y/o calidad de la salida del codificador (100). El controlador (170) recibe información de otros módulos del codificador (100) y procesa la información recibida para determinar un tamaño de paso de cuantificación deseado en vista de las condiciones actuales. El controlador (170) produce como salida el tamaño de paso de cuantificación al cuantificador (150) con el objetivo de satisfacer límites de velocidad binaria y de calidad.
El codificador (100) puede aplicar sustitución de ruido y/o truncamiento de banda a un bloque de datos de audio. A velocidades binarias bajas y medias, el codificador de audio (100) puede usar sustitución de ruido para transportar información en ciertas bandas. En el truncamiento de banda, si la calidad medida de un bloque indica una calidad pobre, el codificador (100) puede eliminar completamente los coeficientes en ciertas bandas (normalmente de frecuencia más elevada) para mejorar la calidad total en las bandas restantes.
El MUX (180) multiplexa la información lateral recibida de otros módulos del codificador de audio (100) junto con los datos de entropía codificados recibidos del codificador de entropía (160). El MUX (180) produce la salida de la información en un formato que el decodificador de audio reconoce. El MUX (180) incluye una memoria tampón virtual que almacena el tren binario (195) para que sea producido como salida por el codificador (100) con el fin de suavizar fluctuaciones a corto térmico en la velocidad binaria producidas por cambios de complejidad en el
audio.
2. Descodificador de Audio Perceptual
En conjunto, el descodificador (200) recibe un tren binario (205) de información de audio comprimida que incluye datos codificados de entropía así como información lateral, a partir de la cual el descodificador (200) reconstruye las muestras de audio (295). El descodificador de audio (200) incluye un desmultiplexor ("DEMUX") (210) de tren binario, un descodificador de entropía (220), un cuantificador inverso (230), un generador de ruido (240), un ponderador inverso (250), un transformador multicanal inverso (260), y un transformador de frecuencia inversa (270).
El DEMUX (210) analiza información en el tren binario (205) y envía información a los módulos del descodificador (200). El DEMUX (210) incluye una o más memorias tampón para compensar las variaciones a corto término en la velocidad binaria producidas por las fluctuaciones en la complejidad del audio, inestabilidad en la red, y/o otros factores.
El descodificador de entropía (220) descomprime sin pérdida los códigos de entropía recibidos del DEMUX (210), produciendo datos de coeficientes de frecuencia cuantificados. El descodificador de entropía (220) típicamente aplica la inversa de la técnica de codificación de entropía utilizada en el codificador.
El cuantificador inverso (230) recibe un tamaño de paso de cuantificación del DEMUX (210) y recibe datos de coeficientes de frecuencia cuantificados del descodificador de entropía (220). El cuantificador inverso (230) aplica el tamaño de paso de cuantificación a los datos de coeficientes de frecuencia cuantificados para reconstruir parcialmente los datos de coeficientes de frecuencia.
Desde el DEMUX (210), el generador de ruido (240) recibe información que indica cuales bandas en un bloque de datos son sustituidas por ruido, así como cualquier parámetro para la forma del ruido. El generador de ruido (240) genera los patrones para las bandas indicadas, y pasa la información al cuantificador inverso (250).
El cuantificador inverso (250) recibe los factores de cuantificación del DEMUX (210), los patrones de cualquier banda sustituida por ruido del generador de ruido (240), y los datos de coeficientes de frecuencia parcialmente reconstruidos del cuantificador inverso (230). Como sea necesario, el cuantificador inverso (250) descomprime los factores de cuantificación, por ejemplo, descodificación de entropía, codificación inversa diferencialmente, y cuantificación inversa de los elementos de la matriz de cuantificación. El ponderador inverso (250) aplica los factores de ponderación a los datos de coeficientes de frecuencia parcialmente reconstruidos para las bandas que no han sido sustituidas por ruido. El cuantificador inverso (250) a continuación suma los patronos de ruido recibidos del generador de ruido (240) para las bandas sustituidas por ruido.
El transformador multicanal inverso (260) recibe los datos de coeficientes de frecuencia reconstruidos del ponderador inverso (250), y la información de modo de canal del DEMUX (210). Si el audio multicanal está en canales codificados independientemente, el transformador multicanal inverso (260) hace pasar los canales a través suyo. Si los datos multicanal se encuentran en canales codificados conjuntamente, el transformador multicanal inverso (260) convierte los datos en canales codificados independientemente.
El transformador de frecuencia inversa (270) recibe la salida de los datos de coeficientes de frecuencia del transformador multicanal (260), así como información lateral tal como los tamaños de bloque del DEMUX (210). El transformador de frecuencia inversa (270) aplica el inverso de la transformación de frecuencia utilizado en el codificador y produce como salida bloques de las muestras de audio reconstruidas (295).
B. Desventajas de los Codificadores de audio perceptual estándar y de los Descodificadores
Aunque los codificadores y descodificadores perceptuales como se han descrito más arriba tienen una buena eficiencia en conjunto en muchas aplicaciones, presentan varios inconvenientes, especialmente para la compresión y descompresión de audio multicanal. Los inconvenientes limitan la calidad del audio multicanal reconstruido en algunos casos, por ejemplo cuando la velocidad binaria es pequeña en relación con el número de canales de entrada de audio.
1. Inflexibilidad en la Partición de Marcos para Audio Multicanal
En varios aspectos, la partición de marcos ejecutada por el codificador (100) de la figura (1) es inflexible.
Como se ha mencionado previamente, el transformador de frecuencia (110) rompe un marco de entrada de muestras de audio (105) en una o más ventanas que se solapan para la transformación de frecuencia, en la que ventanas más grandes proporcionan mejor resolución de frecuencias y eliminación de la redundancia, y ventanas pequeñas proporcionan mejor resolución temporal. La mejor resolución temporal ayuda a controlar artefactos pre - eco introducidos cuando la señal realiza la transición desde una energía baja a una energía alta, pero la utilización de ventanas menores reduce la comprensibilidad, de manera que el codificador debe compensar estas consideraciones cuando selecciona tamaños de ventanas. En el audio multicanal, el transformador de frecuencia (110) realiza la partición de los canales de un marco idénticamente (es decir, configuraciones de ventanas idénticas en los canales), lo cual puede ser ineficiente en algunos casos, como se ilustra en las figuras 3a - 3c.
La figura 3a muestra las formas de onda (300) de una señal de audio estéreo ejemplar. La señal en el canal 0 incluye una actividad transitoria, mientras que la señal en el canal 1 es relativamente estacionaria. El codificador (100) detecta la transición de señal en el canal 0 y, para reducir el pre - eco, divide el marco en ventanas moduladas solapadas más pequeñas (301), como se muestra en la figura 3b. Con la finalidad de simplicidad, la figura 3c muestra la configuración (302) de ventanas solapadas en cajas, con líneas de trazos que delimitan los límites del marco. Otras figuras posteriores también utilizan esta convención.
Un inconveniente de forzar todos los canales para que tengan una configuración de ventanas idéntica, es que una señal estacionaria en uno o más canales (por ejemplo, canal 1 en las figuras 3a - 3c) puede dividirse en ventanas menores, disminuyendo las ganancias de codificación. Alternativamente, el codificador (100) puede forzar a que todos los canales utilicen ventanas mayores, introduciendo pre - eco en uno o más canales que tienen transitorios. Este problema se agrava cuando más de dos canales deben ser codificados.
AAC permite una agrupación emparejada de canales para las transformaciones multicanal. Entre los canales izquierdo, derecho, central, trasero izquierdo y trasero derecho, por ejemplo, los canales izquierdo y derecho pueden estar agrupados para la codificación estéreo, y los canales trasero izquierdo y trasero derecho pueden estar agrupados para la codificación estéreo. Diferentes grupos pueden tener diferentes configuraciones de ventanas, pero ambos canales de un grupo particular tienen la misma configuración de ventana si se utiliza codificación estéreo. Esto limita la flexibilidad de dividir en las transformaciones multicanal en el sistema AAC, como lo hace la utilización de solamente agrupamientos emparejados.
2. Inflexibilidad en Transformaciones Multicanal
El codificador (100) de la figura 1 se aprovecha de alguna redundancia intercanal, pero es inflexible en distintos aspectos en términos de transformaciones multicanal. El codificador (100) permite dos clases de transformaciones: (a) una transformación de identidad (que es equivalente a ninguna transformación), ó (b) codificación de suma - diferencia de parejas estéreo. Estas limitaciones limitan la codificación multicanal de más de dos canales. Incluso en AAC, que puede trabajar con más de dos canales, una transformación multicanal está limitada a solamente una pareja de canales en un momento dado.
Varios grupos han experimentado transformaciones multicanal para los canales de sonido envolvente. Por ejemplo, véase Yang et al; "Enfoque de Eliminación de Redundancia Intercanal para la Compresión de Audio Multicanal de Alta Calidad", Convención Aes número 109, Los Angeles, Septiembre 2000 ("Yang"), y Wang et al., "Un Algoritmo de Codificación de Audio multicanal para la Eliminación de Redundancia Intercanal", convención AES número 110, Amsterdam, Holanda, mayo 2001 ("Wang"). El sistema Yang utiliza una Transformación de Karhunen - Loeve ("KLT") entre canales para descorrelacionar los canales para conseguir factores de compresión buenos. El sistema Wang utiliza una Transformación de Coseno Discreto ("DCT") de número entero a número entero. Ambos sistemas proporcionan algunos resultados buenos, pero todavía presentan varias limitaciones.
En primer lugar, utilizando una KLT en muestras de audio (ya sea en el dominio temporal o en el dominio de frecuencia como en el sistema Yang), no controla la distorsión introducida en la reconstrucción. La KLT en el sistema Yang no se usa con éxito para la codificación de audio perceptual de audio multicanal. El sistema Yang no controla la cantidad de fugas de un canal codificado (por ejemplo, cuantificado en gran medida) en múltiples canales reconstruidos en la transformación multicanal inversa. Este inconveniente es señalado en el documento de Kuo et al., "Un Estudio de Por qué la Predicción de Canales Cruzados no es aplicable a la Codificación de Audio Perceptual", IEEE Cartas de Señales Proc. volumen 8, número 9, septiembre 2001. En otras palabras, la cuantificación que es "inaudible" en un canal codificado puede ser audible cuando se reparte en múltiples canales reconstruidos, puesto que la ponderación inversa es efectuada antes de la transformación multicanal inversa. El sistema Wang soluciona este problema disponiendo la transformación multicanal después de la ponderación y la cuantificación en el codificador (y disponiendo la transformación multicanal inversa antes de la cuantificación inversa y la ponderación inversa en el descodificador). Sin embargo, el sistema Wang tiene otros varios inconvenientes. Ejecutar la cuantificación antes de la transformación multicanal significa que la transformación multicanal debe ser de número entero a número entero, limitando el número de transformaciones posibles y limitando la eliminación de redundancia en los canales.
En segundo lugar, el sistema Yang está limitado a las transformaciones KLT. Aunque las transformaciones KLT adaptan los datos de audio que están siendo comprimidos, la flexibilidad del sistema Yang para utilizar diferentes fases de transformaciones es limitada. De manera similar, el sistema Wang utiliza la DCT de número entero a número entero en las transformaciones multicanal, lo cual no es tan bueno como las DCT convencionales en lo que se refiere a la compactación de energía, y la flexibilidad del sistema Wang para utilizar tipos diferentes de transformaciones es limitada.
En tercer lugar, en los sistemas Yang y Wang no hay mecanismos para controlar cuales canales son transformados conjuntamente, tampoco hay un mecanismo para agrupar selectivamente canales diferentes en momentos diferentes para la transformación multicanal. Un control de este tipo ayuda a limitar las fugas de contenido en canales totalmente incompatibles. Además, incluso canales que son compatibles en conjunto pueden ser incompatibles en algunos periodos.
En cuarto lugar, en el sistema Yang, a la transformación multicanal le falta control respecto a aplicar la transformación multicanal al nivel de banda de frecuencia. Incluso entre canales que son compatibles en conjunto, los canales pueden no ser compatibles en algunas frecuencias o en algunas bandas de frecuencia. De manera similar, a la transformación multicanal del codificador (100) de la figura 1 le falta el control a nivel de subcanal; no controla cuales bandas de los datos de coeficientes de frecuencias son transformadas multicanal, lo cual ignora las ineficiencias que se pueden producir cuando se correlacionan menos de todas las bandas de frecuencia de los canales de entrada.
En quinto lugar, incluso cuando los canales fuente son compatibles, a menudo hay una necesidad de controlar el número de canales transformados conjuntamente para limitar el derrame de datos y reducir los accesos de memoria cuando se implementa la transformación. En particular, la KLT del sistema Yang es compleja en cálculo. Por otro lado, reducir el tamaño de transformación también reduce potencialmente la ganancia de codificación en comparación con las transformaciones mayores.
En sexto lugar, enviar la información especificando las transformaciones multicanal puede ser costoso en términos de velocidad binaria. Esto es particularmente cierto en la KLT del sistema Yang, puesto que los coeficientes de transformación para la matriz de covarianza enviada son números reales.
En séptimo lugar, para el audio multicanal de velocidad binaria baja, la calidad de los canales reconstruidos es muy limitada. Además de los requisitos de codificación de velocidades binarias bajas, esto es en parte debido a la incapacidad del sistema para cortar selectiva y elegantemente el número de canales para los que la información se codifica actualmente.
3. Ineficiencias en la Cuantificación y en la Ponderación
En el codificador (100) de la figura 1, el ponderador (140) conforma las distorsiones a través de bandas en datos de audio y el cuantificador (150) establece tamaños de paso de cuantificación para cambiar la amplitud de la distorsión en un marco, y de esta manera compensar la calidad con respecto a la velocidad binaria. Aunque el codificador (100) consigue un buen equilibrio de calidad y velocidad binaria en la mayor parte de las aplicaciones, el codificador (100) todavía tiene varios inconvenientes.
En primer lugar, el codificador (100) carece de control directo sobre la calidad a nivel de canal. Los factores de ponderación conforman la distorsión total en las bandas de cuantificación de un canal individual. El tamaño del paso de cuantificación uniforme, escalar, afecta la amplitud de la distorsión en todas las bandas de frecuencia y canales para un marco. A falta de imponer una calidad muy alta o muy baja en todos los canales, el codificador (100) carece de control directo sobre la disposición igual, o al menos de calidad comparable, en la salida reconstruida de todos los canales.
En segundo lugar, cuando los factores de ponderación están comprimidos con pérdida, el codificador (100) carece de control sobre la resolución de cuantificación de los factores de ponderación. Para la compresión directa de una matriz de cuantificación, el codificador (100) cuantifica uniformemente elementos de la matriz de cuantificación, y a continuación utiliza codificación diferencial y codificación Huffman. La cuantificación uniforme de los elementos de máscara no se adapta a los cambios en la velocidad binaria disponible o a la complejidad de la señal. Como resultado, en algunos casos las matrices de cuantificación están codificadas con más resolución de la que sería necesaria dada la calidad baja en conjunto del audio reconstruido, y en otros casos, las matrices de cuantificación están codificadas con menos resolución que la que se debería utilizar dada la alta calidad del audio reconstruido.
En tercer lugar, la compresión directa de las matrices de cuantificación en el codificador (100) falla en explotar las redundancias temporales de las matrices de cuantificación. La compresión directa elimina la redundancia dentro de una matriz de cuantificación particular, pero ignora la redundancia temporal en una serie de matrices de cuantificación.
C. Mezcla En disminución de Canales de Audio
Además de la codificación y descodificación de audio multicanal, el sistema Dolbi Pro - Logic y distintos otros sistemas ejecutan la mezcla en disminución de audio multicanal para facilitar la compatibilidad con las configuraciones de altavoces con números diferentes de altavoces. En la mezcla en disminución Dolbi Pro - Logic, por ejemplo, cuatro canales se mezclan en disminución hasta dos canales, teniendo cada uno de los dos canales alguna combinación de datos de audio de los cuatro canales originales. Los dos canales pueden ser producidos como salida en el equipo de canal estéreo, o los cuatro canales pueden ser reconstruidos a partir de los dos canales para la salida en equipo de cuatro canales.
Aunque la mezcla en disminución de esta naturaleza soluciona algunos problemas de incompatibilidad, está limitada a ciertas configuraciones establecidas, por ejemplo, mezcla en disminución de cuatro a dos canales. Además, las fórmulas de mezcla están predeterminadas y no permiten cambios en el tiempo para adaptarse a la señal.
"Tecnología de información - codificación genérica de fotografías en movimiento e información de audio asociada - parte 7: Codificación de Audio Avanzada (AAC)", ISO/IEC13818 - 7, XX, XX, 1 de diciembre de 1997, paginas 1 - 6,
describe un elemento de canal de acoplamiento (CCE). El CCE se utiliza para compartir información común (por ejemplo, elementos de ganancia) entre múltiples canales. En el caso de un CCE conmutado de manera dependiente, su estado de ventana se debe corresponder a cualquier canal único (SCE) o elementos de pareja de canales (CPE) a los cuales está acoplado. Los cuatro tipos de secuencias de ventana para un canal están ilustrados.
El documento WO 99/43110 A, describe el agrupamiento de dos canales conjuntamente y utiliza un único bloque FFT para calcular MDCT. Las parejas de canales con la misma longitud de transformación (una larga o dos cortas) pueden ser agrupados conjuntamente.
Es el objeto de la presente invención proporcionar un procedimiento de codificación y descodificación mejorado para procesar información de audio multicanal.
Este objeto se soluciona por el asunto de la invención de las reivindicaciones independientes.
Realizaciones preferentes están definidas en las reivindicaciones dependientes.
En resumen, la descripción detallada se refiere a estrategias para codificar y descodificar audio multicanal. Por ejemplo, un codificador de audio utiliza una o más técnicas para mejorar la calidad y/o velocidad binaria de los datos de audio multicanal. Esto mejora la experiencia de percepción en conjunto y hace que los sistemas de ordenador sean una plataforma más atractiva para crear, distribuir y reproducir audio multicanal de alta calidad. Las estrategias de codificación y descodificación descritas en la presente memoria descriptiva incluyen varias técnicas y herramientas que se pueden utilizar en combinación o independientemente.
De acuerdo con un primer aspecto de las estrategias descritas en la presente memoria descriptiva, un codificador de audio ejecuta una transformación multicanal preprocesado en los datos de audio multicanal. El codificador varía la transformación durante la codificación para controlar la calidad. En la codificación de velocidad binaria baja, por ejemplo, el codificador altera o baja uno o más de los canales de audio originales para reducir la complejidad de la codificación y mejorar la calidad percibida en conjunto del audio.
De acuerdo con un segundo aspecto de las estrategias que se describen en la presente memoria descriptiva, un decodificador de audio ejecuta una transformación multicanal de postprocesado en datos de audio multicanal descodificados. El descodificador utiliza la transformación para cualquier de múltiples propósitos diferentes. Por ejemplo, el descodificador vuelve a realizar opcionalmente la matriz de las muestras de audio del dominio temporal para producir canales fantasmas en la reproducción o para ejecutar efectos especiales.
De acuerdo con un tercer aspecto de las estrategias que se han descrito en la presente memoria descriptiva, un codificador de audio agrupa múltiples ventanas de diferentes canales en uno o más placas y produce como salida información de configuración de las placas. Por ejemplo, el codificador agrupa ventanas de diferentes canales en una única placa cuando las ventanas tienen el mismo momento del inicio y el mismo momento de parada, lo cual permite que el codificador aísle los transitorios para que aparecen en un canal en particular con ventanas pequeñas (reduciendo los artefactos pre - eco), pero utiliza ventanas grandes para la resolución de frecuencia y la resolución de redundancia temporal en otros canales.
De acuerdo con un cuarto aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio pondera los datos de audio multicanal y a continuación, después de ponderar pero antes de la cuantificación posterior, ejecuta una transformación multicanal de los datos de audio ponderados. Esta ordenación puede reducir las fugas del ruido de cuantificación audible en los canales con la reconstrucción.
De acuerdo con un quinto aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio agrupa selectivamente canales múltiples de datos de audio en grupos de canales múltiples para las transformaciones multicanal. El codificador agrupa los canales múltiples diferentemente en momentos diferentes en la secuencia de audio. Esto puede mejorar la eficiencia proporcionando al codificador un control más preciso en la aplicación de las transformaciones multicanal a partes relativamente correlacionadas de los datos.
De acuerdo con un sexto aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio conexiona/desconexiona selectivamente una transformación seleccionada en bandas de frecuencias múltiples. Por ejemplo, el codificador excluye selectivamente bandas que no son compatibles en las transformaciones multicanal, lo cual de nuevo proporciona al codificador un control más preciso sobre la aplicación de las transformaciones multicanal a partes relativamente correlacionadas de los datos.
De acuerdo con un séptimo aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio transforma datos de audio multicanal de acuerdo con una jerarquía de transformaciones multicanal en etapas múltiples. Por ejemplo, la jerarquía emula otra transformación al mismo tiempo que reduce la complejidad de cálculo en comparación con la otra transformación.
De acuerdo con un octavo aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio selecciona una transformación multicanal entre múltiples tipos disponibles de transformaciones multicanal. Por ejemplo, los tipos incluyen transformaciones múltiples predefinidas, así como transformaciones a medida. De esta manera, el codificador reduce la velocidad binaria utilizada para especificar transformaciones.
De acuerdo con un noveno aspecto de las estrategias que se describen en la presente memoria descriptiva, un codificador de audio calcula una matriz de transformación unitaria arbitraria y a continuación la factoriza. El codificador ejecuta la transformación factorizada y produce como salida información de la misma. De esta manera, el codificador comprime eficientemente matrices de transformación multicanal efectivas.
Para varios de los aspectos que se han descrito más arriba en términos de un codificador de audio, un descodificador de audio ejecuta el procesado y descodificación correspondiente.
Las distintas características y ventajas de la invención serán evidentes a partir de la descripción detallada que sigue de realizaciones que se describen con referencia a los dibujos que se acompañan.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques de un codificador de audio de acuerdo con la técnica anterior.
La figura 2 es un diagrama de bloques de un descodificador de audio de acuerdo con la técnica anterior.
Las figuras 3a - 3c son gráficos que muestran configuraciones de ventanas de un marco de dato de audio estéreo de acuerdo con la técnica anterior.
La figura 4 es un gráfico que muestra seis canales en una configuración 5.1) de canal/altavoz.
La figura 5 es un diagrama de bloques de un entorno de cálculo adecuado en el cual se pueden implementar las realizaciones descritas.
La figura 6 es un diagrama de bloques de un codificador de audio en el cual se pueden implementar las realizaciones descritas.
La figura 7 es un diagrama de bloques de un descodificador de audio en el cual se pueden implementar las realizaciones descritas.
La figura 8 es un diagrama de flujo que muestra una técnica generalizada para el preprocesado multicanal.
Las figuras 9a - 9e son gráficos que muestran matrices ejemplares de preprocesado multicanal.
La figura 10 es un diagrama de flujo que muestra una técnica para el preprocesado multicanal en la cual la matriz de transformación cambia potencialmente en una base de marco a marco.
Las figuras 11a y 11b son gráficos que muestran configuraciones de placas ejemplares para audio multicanal.
La figura 12 es un diagrama de flujo que muestra una técnica generalizada para configurar placas de audio multicanal.
La figura 13 es un diagrama de flujo que muestra una técnica para configurar concurrentemente placas y enviar información de placas de audio multicanal de acuerdo con una sintaxis de velocidad binaria particular.
La figura 14 es un diagrama de flujo que muestra una técnica generalizada para ejecutar una transformación multicanal después de la ponderación perceptual.
La figura 15 es un diagrama de flujo que muestra una técnica generalizada para ejecutar una transformación multicanal inversa antes de la ponderación perceptual inversa.
La figura 16 es un diagrama de flujo que muestra una técnica para agrupar canales en una placa para la transformación multicanal en una implementación.
La figura 17 es un diagrama de flujo que muestra una técnica para recuperar información de grupos de canales e información de transformación multicanal para una placa de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 18 es un diagrama de flujo que muestra una técnica para incluir selectivamente bandas de frecuencia de un grupo de canales y una transformación multicanal en una implementación.
La figura 19 es un diagrama de flujo que muestra una técnica para recuperar información de conexión/desconexión de banda de una transformación multicanal para un grupo de canales de una placa de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 20 es un diagrama de flujo que muestra una técnica generalizada para emular una transformación multicanal utilizando una jerarquía de transformaciones de canal más simple.
La figura 21 es un gráfico que muestra una jerarquía ejemplar de transformaciones multicanal.
La figura 22 es un diagrama de flujo que muestra una técnica para recuperar información de una jerarquía de transformaciones multicanal para grupos de canales de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 23 es un diagrama de flujo que muestra una técnica generalizada para seleccionar un tipo de transformación multicanal entre varios tipos disponibles.
La figura 24 es una diagrama de flujo que muestra una técnica generalizada para recuperar un tipo de transformación multicanal entre tipos plurales disponibles y ejecutar una transformación multicanal inversa.
La figura 25 es un diagrama de flujo que muestra una técnica para recuperar información de transformación multicanal para un grupo de canales de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 26 es un gráfico que muestra la forma general de una matriz de rotación para rotaciones Givens que representan una matriz de transformación multicanal.
Las figuras 27a - 27c son gráficos que muestra matrices de rotación ejemplares para rotaciones Givens que representan una matriz de transformación multicanal.
La figura 28 es un diagrama de flujo que muestra una técnica generalizada para representar una matriz de transformación multicanal que utiliza rotaciones de factorización Givens cuantificadas.
La figura 29 es un diagrama de flujo que muestra una técnica para recuperar información de una transformación unitaria genérica para un grupo de canales de un tren binario de acuerdo con una sintaxis de tren binario particu-
lar.
La figura 30 es un diagrama de flujo que muestra una técnica para recuperar un factor de cuantificación de placa en conjunto para una placa de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 31 es un diagrama de flujo que muestra una técnica generalizada para calcular modificadores de paso de cuantificación por canal para datos de audio multicanal.
La figura 32 es un diagrama de flujo que muestra una técnica para recuperar modificadores de paso de cuantificación precanal de un tren binario de acuerdo con una sintaxis de tren binario particular.
La figura 33 es un diagrama de flujo que muestra una técnica generalizada para establecer adaptativamente un tamaño de paso de cuantificación para los elementos de matriz de cuantificación.
La figura 34 es un diagrama de flujo que muestra una técnica generalizada para recuperar un tamaño de paso de cuantificación adaptativo para elementos de matriz de cuantificación.
Las figuras 35 y 36 son diagramas de flujo que muestran técnicas para comprimir matrices de cuantificación utilizando predicción temporal.
La figura 37 es un gráfico que muestra un mapeo de bandas para la predicción de elementos de matriz de cuantificación.
La figura 38 es un diagrama de flujo que muestra una técnica para recuperar y descodificar matrices de cuantificación comprimidas utilizando predicción temporal de acuerdo con la sintaxis de tren binario particular.
La figura 39 es un diagrama de flujo que muestra una técnica generalizada para un postprocesado multicanal.
La figura 40 es un gráfico que muestra una matriz ejemplar para un postprocesado multicanal.
La figura 41 es un diagrama de flujo que muestra una técnica para un posprocesado multicanal en el cual la matriz de transformación cambia potencialmente en base de marco a marco.
La figura 42 es un diagrama de flujo que muestra una técnica para identificar y recuperar una matriz de transformación para un postprocesado multicanal de acuerdo con una sintaxis de tren binario particular.
Descripción detallada
Las realizaciones descritas de la presente invención se refieren a técnicas y herramientas para procesar información de audio en la codificación y descodificación. En las realizaciones descritas, un codificador de audio utiliza varias técnicas para procesar el audio durante la codificación. Un descodificador de audio utiliza varias técnicas para procesar el audio durante la descodificación. Aunque las técnicas se describen en lugares en la presente memoria descriptiva como parte de un sistema integrado único, las técnicas pueden ser aplicadas por separado, potencialmente en combinación con otras técnicas. En realizaciones alternativas, una herramienta de procesado de audio distinta de un codificador o un descodificador, implementa una o más de las técnicas.
En algunas realizaciones, un codificador ejecuta preprocesado multicanal. Para una codificación de velocidad binaria baja, por ejemplo, el codificador opcionalmente vuelve a realizar la matriz de las muestras de audio en el dominio del tiempo para incrementar artificialmente la correlación entre los canales. Esto hace que la compresión posterior de los canales afectados se más eficiente, reduciendo la complejidad de codificación. El preprocesado disminuye la separación de canales, pero puede mejorar la calidad en conjunto.
En algunas realizaciones, un codificador y descodificador trabajan con audio multicanal configurado en placas de ventanas. Por ejemplo, el codificador divide los marcos de audio multicanal en base a los canales, de manera que cada canal pueda tener una configuración de ventana independiente de los otros canales. A continuación, el codificador agrupa ventanas de los canales divididos en placas para transformaciones multicanal. Esto permite que el codificador aísle los transitorios que aparecen en un canal particular de un marco con pequeñas ventanas (reduciendo los artefactos pre - eco), pero utiliza ventanas grandes para la resolución de frecuencia y la reducción de redundancia temporal en otros canales del marco.
En algunas realizaciones, un codificador ejecuta una o más técnicas de transformación multicanal flexible. Un descodificador ejecuta las técnicas de transformación multicanal inversas correspondientes. En las primeras técnicas, el codificador ejecuta una transformación multicanal después de la ponderación perceptual en el codificador, lo cual reduce las fugas de ruido de cuantificación audible en los canales con la reconstrucción. En técnicas segundas, un codificador agrupa flexiblemente canales para las transformaciones multicanal para incluir selectivamente canales en momentos diferentes. En técnicas terceras, un codificador incluye o excluye flexiblemente bandas de frecuencia particulares en transformaciones multicanal, para incluir selectivamente bandas compatibles. En técnicas cuartas, un codificador reduce la velocidad binaria asociada a matrices de transformación utilizando selectivamente matrices predefinidas o utilizando rotaciones Givens para parametrizar matrices de transformación a medida. En técnicas quintas, un codificador ejecuta las transformaciones multicanal de jerarquía flexible.
En algunas realizaciones, un codificador ejecuta una o más técnicas mejoradas de cuantificación o ponderación. Un descodificador correspondiente ejecuta la cuantificación inversa correspondiente con las técnicas de ponderación inversa. En técnicas primeras, un codificador calcula y aplica los modificadores de paso de cuantificación por canal, lo cual proporciona al codificador más control respecto al balance de la calidad de reconstrucción entre canales. En técnicas segundas, un codificador utiliza un tamaño de paso de cuantificación flexible para cuantificar elementos de matriz, lo cual permite que el codificador cambie la resolución de los elementos de las matrices de cuantificación. En técnicas terceras, un codificador utiliza predicción temporal en compresión de matrices de cuantificación para reducir la velocidad binaria.
En algunas realizaciones, un descodificador efectúa postprocesado multicanal. Por ejemplo, el descodificador vuelve a realizar opcionalmente la matriz de las muestras de audio en el dominio de tiempo para crear canales fantasmas en la reproducción, ejecutar efectos especiales, plegar canales para la reproducción en menos altavoces, o para cualquier otro propósito.
En las realizaciones descritas, el audio multicanal incluye seis canales de una configuración estándar 5.1 de canal/altavoz como se muestra en la matriz (400) de la figura 4. Los canales "5" son el izquierdo, derecho, central, trasero izquierdo y trasero derecho y están orientados espacialmente de manera convencional para el sonido envolvente. En el canal "1" es el sub - woofer o canal de efectos de baja frecuencia. Con la finalidad de claridad, el orden de los canales que se muestran en la matriz (400) también se utilizan para matrices y ecuaciones en el resto de la memoria descriptiva. Realizaciones alternativas utilizan audio multicanal que tiene diferentes órdenes, números (por ejemplo, 7.1, 9.1, 2 y/o configuración de canales.
En las realizaciones descritas, el codificador y descodificador de audio ejecutan distintas técnicas. Aunque las operaciones de estas técnicas típicamente son descritas en un orden particular, secuencial, con el fin de la presentación, se debe entender que esta manera de solución incluye reajustes menores en el orden de las operaciones, a no ser que se requiera un orden en particular. Por ejemplo, las operaciones descritas secuencialmente en algunos casos se pueden disponer o ejecutar concurrentemente. Además, con el fin de simplicidad, los gráficos de flujo típicamente no muestran las distintas maneras en las cuales las técnicas particulares pueden ser utilizadas en conjunto con otras técnicas.
i. Entorno Informático
La figura 5 ilustra un ejemplo generalizado de un entorno informático adecuado (500) en el cual se pueden implementar las realizaciones descritas. Este entorno informático (500) no pretende sugerir ninguna limitación respecto al alcance de utilización o funcionalidad de la invención, puesto que la presente invención se puede implementar en distintos entornos informáticos de propósito general o de propósito especial.
Con referencia a la figura 5, el entorno informático (500) incluye al menos una unidad de procesado (510) y una memoria (520. En la figura 5, esta configuración más básica (530) está incluida en el interior de una línea de trazos. La unidad de procesado (510) ejecuta instrucciones ejecutables por ordenador y puede ser un procesador real o virtual. En un sistema de multiprocesado, unidades de procesado múltiples ejecutan instrucciones ejecutables por ordenador para incrementar la potencia del procesado. La memoria (520) puede ser una memoria volátil (por ejemplo, registros, caché; RAM), memoria no volátil (por ejemplo, ROM, EEPROM, memoria flash, etc.) o alguna combinación de las dos. La memoria (520) almacena programas lógicos (580) que implementan técnicas de procesado de audio de acuerdo con una o más de las realizaciones descritas.
Un entorno informático puede tener características adicionales. Por ejemplo, el entorno informático (500) incluye un almacén (540), uno o más dispositivos de entrada (550, uno o más dispositivos de salida (560) y una o más conexiones de comunicación (570). Un mecanismo de interconexión (no mostrado) tal como un bus, controlador o red interconecta los componentes del entorno informático (500). Típicamente, el programa lógico (no mostrado) del sistema operativo proporciona un entorno de operación para otros programas lógicos que funcionan en el entorno informático (500), y coordina las actividades de los componentes del entorno informático (500).
El almacén (540) puede ser retirable o no retirable, e incluye discos magnéticos, cintas magnéticas o casetes, CD-ROM, CD-RW, DVD, o cualquier otro medio que se pueda utilizar para almacenar información, y al que se pueda acceder en el entorno informático (500). El almacén (540) almacena instrucciones para el programa lógico (580), implementando técnicas de procesado de audio de acuerdo con una o más realizaciones descritas.
El, o los dispositivos de entrada (550) pueden ser dispositivos de entrada táctil, tal como un teclado, ratón, lápiz o dispositivo de puntero, un dispositivo de entrada por voz, un dispositivo de exploración, un adaptador de red, o cualquier dispositivo que proporcione entradas al entorno informático (500). Para audio, el dispositivo de entrada (550) puede ser una tarjeta de sonido o dispositivo similar que acepta entradas de audio en forma analógica o digital, o un lector CD-ROM/DVD que proporcione muestras de audio al entorno informático. El dispositivo de salida (560) puede ser una pantalla, impresora, altavoz, dispositivo de escritura CD/DVD, adaptador de red u otro dispositivo que proporcione salida desde el entorno informático (500).
Las conexiones de comunicación (570) permiten la comunicación en un medio de comunicación a otra entidad de entorno informático. El medio de comunicación transporta información tal como instrucciones ejecutables por ordenador, información de audio comprimida u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características establecidas o cambiadas de tal manera que codifique información en la señal. A titulo de ejemplo, y no de limitación, el medio de comunicación incluye técnicas con cable o inalámbricas implementadas con un portador eléctrico, óptico, de RF, infrarrojo, acústico o de otro tipo.
La invención se puede describir en el contexto general de los medios legibles por ordenador. Los medios legibles por ordenador son cualquier medio disponible al que se pueda acceder en un entorno informático. A titulo de ejemplo y no de limitación, en el entorno informático (500) los medios legibles por ordenador incluyen memorias (520), almacenamientos (540), medios de comunicación y combinaciones de cualquiera de los anteriores.
La invención se puede describir en el contexto general de las instrucciones ejecutables por ordenador, tales como aquellas que incluyen módulos de programa, que son ejecutadas en un entorno informático en un procesador objetivo real o virtual. En general, los módulos de programa incluyen rutinas, programas, librerías, objetos, clases, componentes, datos, estructuras, etc. que ejecutan las tares particulares o implementan tipos de datos abstractos en particular. La funcionalidad de los módulos de programa se puede combinar o dividir entre módulos de programa como se desee en distintos entornos. Las instrucciones ejecutables por ordenador de los módulos de programa pueden ser ejecutadas en un entorno informático local o distribuido.
Con la finalidad de presentación, la descripción detallada utiliza expresiones tales como "determinar", "generar", "ajustar", y "aplicar" para describir operaciones de ordenador en el entorno informático. Estas expresiones son abstracciones de alto nivel para las operaciones ejecutadas por un ordenador y no se deben confundir con los actos ejecutados por los seres humanos. Las operaciones de ordenador actuales que se corresponden a estas expresiones varían dependiendo de la implementación.
II. Codificador y Descodificador de Audio Generalizados
La figura 6 es un diagrama de bloques de un codificador (600) de audio generalizado en el cual se pueden implementar las realizaciones descritas. La figura 7 es un diagrama de bloques de un descodificador (700) de audio generalizado en el cual se pueden implementar las realizaciones descritas.
Las relaciones mostradas entre los módulos en el codificador y descodificador indican flujos de información en el codificador y en el descodificador; otras relaciones no se muestran con el fin de simplicidad. Dependiendo de la implementación y del tipo de compresión deseada, los módulos de codificador o descodificador pueden ser añadidos, omitidos, divididos en módulos múltiples, combinados con otros módulos y/o reemplazados por módulos similares. En realizaciones alternativas, los codificadores y descodificadores con distintos módulos y/o otras configuraciones procesan datos de audio.
A. Codificador de Audio Generalizado
El codificador (600) de audio generalizado incluye un selector (608), un preprocesador multicanal (610), un configurador (620) divisor/placa, un transformador (630) de frecuencia, un modelizador (640) de percepción, un ponderador (642) de banda de cuantificación, un cuantificador (644) de canal, un transformador (650) multicanal, un cuantificador (660), un codificador de entropía (670), un controlador (680), un Codec (672) sin pérdida mixto/puro y codificador de entropía asociado (674), y un multiplexor MUX (690) de tren binario.
El codificador (600) recibe una serie temporal de entrada de muestras (605) de audio con alguna profundidad de muestreo y velocidad en formato modulado de códigos de impulsos ["PCM"]. En la mayor parte de las realizaciones descritas, la entrada de muestras de audio (605) son para audio multicanal (por ejemplo, estéreo, envolvente) pero la entrada de muestras de audio (605), por el contrario pueden ser mono. El codificador (600) comprime las muestras (605) de audio y multiplexa la información producida por los distintos módulos del codificador (600) para producir como salida un tren binario (695) en un formato tal como formato de Windows Media Audio ["WMA"] o Formato de Tren Avanzado ["ASF"]. Alternativamente, el codificador (600) trabaja con otros formatos de entrada y/o salida.
El selector (608) selecciona entre múltiples modos de codificación para las muestras (605) de audio. En la figura 6, el selector (608) conmuta entre un modo de codificación mixto/puro sin pérdida y un modo de codificación con pérdida. El modo de codificación sin perdida incluye el codificador (672) mixto/puro sin perdida y típicamente se utiliza para la compresión de alta calidad (y alta velocidad binaria). El modo de codificación con perdida incluye componentes tales como el ponderador (642) y cuantificador (660) y típicamente se utiliza para compresión de calidad ajustable (y velocidad binaria controlada). La decisión de selección en el selector (608) depende de la entrada del usuario o de otros criterios. En algunas circunstancias (por ejemplo, cuando la compresión con perdida falla en el suministro de una calidad adecuada o sobreproduce bits), el codificador (600) puede conmutarse desde la codificación con perdida a la codificación mixta/pura sin perdida para un marco o un conjunto de marcos.
Para la codificación con perdida de datos de audio multicanal, el preprocesador multicanal (610) opcionalmente vuelve a realizar la matriz de las muestras de audio (605) en el dominio temporal. En algunas realizaciones, el preprocesador (610) multicanal vuelve a revisar selectivamente la matriz de las muestras de audio (605) para bajar uno o más canales codificados o incrementar la correlación intercanal en el codificador (600), pero permite la reconstrucción (de alguna manera) en el descodificador (700). Esto proporciona al codificador control adicional sobre la calidad a nivel de canal. El preprocesador multicanal (610) puede enviar información lateral tal como instrucciones para el postprocesado multicanal al MUX (690). Para detalles adicionales respecto a la operación del preprocesador multicanal en algunas realizaciones, véase la sección titulada "Preproceso multicanal". Alternativamente, el codificador (600) ejecuta otra forma de preproceso multicanal.
El configurador (620) de divisor/placa divide un marco (605) de muestras de entrada de audio en bloques de submarcos (por ejemplo, ventanas) con tamaños que varían con el tiempo y funciones de conformación de ventanas. Los tamaños y ventanas de los bloques de submarcos dependen de la detección de señales transitorias en el marco, modo de codificación, así como de otros factores.
Si el codificador (600) realiza la conmutación de codificación con pérdida a codificación mixta/pura sin pérdida, los bloques de submarcos no necesitan solaparse o pueden tener en teoría una función de ventana (es decir, bloques de ventanas rectangulares, no solapantes), pero las transiciones entre marcos codificados con pérdida y otros marcos pueden requerir tratamiento especial. El configurador (620) divisor/placa produce como salida bloques de datos divididos al codificador mixto/puro sin pérdida (672) y produce como salida información lateral tal como un tamaño de bloque al MUX (690). Para detalles adicionales con respecto a la división y formación de ventanas para marcos codificados sin pérdida mixtos o puros, véase la solicitud relacionada titulada "Compresión de Audio Unificada con pérdida y sin pérdida".
Cuando el codificador (600) utiliza codificación con pérdida, una ventana de tamaño variable permite la resolución temporal variable. Bloques pequeños permiten una preservación mayor de detalles temporales en segmentos de transición cortos pero activos. Los bloques grandes presentan una mejor resolución de frecuencias y una peor resolución temporal, y normalmente permiten una eficiencia de compresión mayor en segmentos más grandes o menos activos, en parte debido a que el encabezado de marco y de información lateral es proporcionalmente menor en bloques pequeños, y en parte debido a que permite una mejor supresión de redundancia. Los bloques se pueden solapar para reducir las discontinuidades perceptibles entre bloques que de otra manera serían introducidas por una cuantificación posterior. El configurador (620) divisor/placa produce como salida bloques de datos divididos al transformador (630) de frecuencia y produce como salida información lateral tal como tamaños de bloque al MUX (690). Para información adicional respecto a la detección de transitorios y los criterios de partición en algunas realizaciones, véase la Solicitud de Patente norteamericana número de serie 10/016.918, titulada "Selección Adaptativa de Ventana -Tamaño en la Codificación de Transformación", presentada el 14 de diciembre de 2001. Alternativamente, el configurador (620) divisor/placa utiliza otros criterios de partición o tamaños de bloques cuando divide un marco en
ventanas.
En algunas realizaciones, el configurador (620) divisor/placa divide marcos de audio multicanal en base a los canales. El configurador (620) divisor/placa divide independientemente cada canal en el marco, si lo permite la calidad/velocidad binaria. Esto permite, por ejemplo, que el configurador (620) divisor/ placa aísle los transitorios que aparecen en un canal en particular en ventanas más pequeñas, pero utiliza ventanas mayores para la resolución de frecuencias o la eficiencia de compresión en otros canales. Esto puede mejorar la eficiencia de compresión aislando transitorios en base a los canales, pero es necesaria en muchos casos información adicional que especifique las particiones en canales individuales. Las ventanas del mismo tamaño que están colocadas en la misma posición temporalmente pueden cualificar para una reducción de redundancia adicional por medio de la trasformación multicanal. De esta manera, el configurador (620) divisor/placa agrupa ventanas del mismo tamaño que están colocadas en la misma posición temporalmente como una placa. Para detalles adicionales referentes a la colocación de placas en algunas realizaciones, véase la sección denominada "Configuración de Placa".
El transformador (630) de frecuencia recibe muestras de audio y las convierte en datos en el dominio de la frecuencia. El transformador de frecuencia (630) produce como salida bloques de datos de coeficientes de frecuencias al ponderador (642) y produce como salida información lateral tal como tamaños de bloque al MUX (690). El transformador de frecuencia (630) produce como salida coeficientes de frecuencias así como información lateral al modelador (640) de percepción. En algunas realizaciones, el transformador (630) de frecuencia aplica una Transformación Solapada Modular ["MLT"] variable con el tiempo a los bloques de submarcos que operan como una DCT modulada por la(s) función(es) sinusoidales de ventana de los bloques de submarcos. Realizaciones alternativas utilizan otro variedades de MLT, o una DCT u otro tipo de transformación de frecuencia modulada o no modulada, solapada o no solapada, o utilizan codificación de subbandas o de ondas pequeñas.
El modelador (640) de percepción modeliza propiedades del sistema auditivo humano para mejorar la calidad percibida de la señal de audio reconstruida para una velocidad binaria dada. En general, el modelador (640) de percepción procesa los datos de audio de acuerdo con un modelo auditivo, y a continuación proporciona información al ponderador (642) que puede ser utilizada para generar factores de ponderación para los datos de audio. El modelador (640) de percepción utiliza cualquiera de los distintos modelos auditivos y pasa la información del patrón de situación u otra información al ponderador (642).
El ponderador (642) de banda de cuantificación genera factores de ponderación para matrices de cuantificación en base a la información recibida del modelador (640) de percepción y aplica los factores de ponderación a los datos recibidos del transformador (630) de frecuencia. Los factores de ponderación para una matriz de cuantificación incluyen una ponderación para cada una de las múltiples bandas de cuantificación en los datos de audio. Las bandas de cuantificación puede ser las mismas o diferentes en número o posición que las bandas críticas utilizadas en otros sitios en el codificador (600), y los factores de ponderación pueden variar en amplitud y número de bandas de cuantificación de bloque a bloque. El ponderador (642) de banda de cuantificación produce como salida bloques ponderados de datos de coeficientes al ponderador (644) de canales y produce como salida información lateral tal como el conjunto de factores de ponderación al MUX (690). El conjunto de factores de ponderación puede ser comprimido para una representación más eficiente. Si los factores de ponderación son comprimidos con pérdida, los factores de ponderación reconstruidos se utilizan típicamente para ponderar los bloques de datos de coeficientes. Para detalles adicionales respecto al cálculo y compresión de los factores de ponderación en algunas realizaciones, véase de la sección titulada "Cuantificación y Ponderación". Alternativamente, el codificador (600) utiliza otra forma de ponderación o evita la
ponderación.
El ponderador (644) de canales genera factores de ponderación (que son escalares) específicos para canales en base a la información recibida del modelador (640) de percepción y también en la calidad de la señal reconstruida localmente. Las ponderaciones escalares (también llamadas modificadores de paso de cuantificación) permiten que el codificador (600) proporcione una calidad aproximadamente uniforme a los canales reconstruidos. Los factores de ponderación de los canales pueden variar en amplitud de canal a canal y de bloque a bloque, o a algún otro nivel. El ponderador (644) de canales produce como salida bloques ponderados de datos de coeficientes al transformador (650) multicanal y produce como salida información lateral tal como el conjunto de factores de ponderación de canales al MUX (690). El ponderador (644) de canales y el ponderador (642) de bandas de cuantificación en el diagrama de flujo pueden ser intercambiados o combinados conjuntamente Para detalles adicionales respecto al cálculo y compresión de los factores de ponderación en alguna realizaciones, véase de la sección titulada "Cuantificación y Ponderación". Alternativamente, el codificador (600) utiliza otra forma de ponderación o evita la ponderación.
Para datos de audio multicanal, los canales múltiples de datos de coeficientes de frecuencias en forma de ruido producidos por el ponderador (644) de canales a menudo se correlacionan, de manera que el transformador (650) multicanal puede aplicar una transformación multicanal. Por ejemplo, el transformador multicanal (650) aplica selectiva y flexiblemente la trasformación multicanal a algunos pero no a todos los canales y/o bandas de cuantificación en la placa. Este proporciona al transformador (650) multicanal un control más preciso respecto a la aplicación de la trasformación a las partes correlacionadas relativamente de la placa. Para reducir la complejidad del cálculo, el transformador multicanal (650) puede utilizar una transformación jerárquica en lugar de una transformación de un nivel. Para reducir la velocidad binaria asociada a la matriz de transformación, el transformador multicanal (650) utiliza selectivamente matrices predefinidas (por ejemplo, de identidad/no transformación, Hadamart, DCT tipo II) o matrices a medida, y aplica compresión eficiente a las matrices a medida. Finalmente, puesto que la trasformación multicanal se encuentra aguas abajo del ponderador (642), la perceptibilidad del ruido (por ejemplo debido a la cuantificación posterior) que fuga entre canales después de la trasformación multicanal inversa en el decodificador (700) está controlada por ponderación inversa. Para detalles adicionales respecto a las transformaciones multicanal en algunos entornos, véase la sección titulada "Transformaciones Multicanal Flexibles". Alternativamente, el codificador (600) utiliza otras formas de transformaciones multicanal o ninguna transformación. El transformador multicanal (650) produce información lateral al MUX (690) indicando, por ejemplo, las transformaciones multicanal utilizadas en las partes de las placas multicanal transformadas.
El codificador (660) cuantifica la salida del transformador (650) multicanal, produciendo datos de coeficientes cuantificados al codificador de entropía (670) e información lateral que incluye tamaños de paso de cuantificación al MUX (690). En la figura 6, el cuantificador (660) es un cuantificador adaptativo, uniforme, escalar que calcula un coeficiente de cuantificación de placa. El factor de cuantificación de placa puede cambiar de una interacción de un bucle de cuantificación al siguiente afectando la velocidad binaria de la salida del codificador de entropía (660), y los modificadores de paso de cuantificación por canal se pueden utilizar para compensar la calidad de reconstrucción entre los canales. Para detalles adicionales respecto a la cuantificación en algunos entornos, véase la sección titulada "Cuantificación y Ponderación". En realizaciones alternativas, el cuantificador es un cuantificador no uniforme, un cuantificador detector, y/o un cuantificador no adaptativo, o utiliza una forma diferente de cuantificación adaptativa, uniforme, escalar. En otras realizaciones alternativas, el cuantificador es un cuantificador no uniforme, un vector cuantificador y/o un cuantificador no adaptativo, o utiliza una forma diferente de cuantificación escalar, adaptativa, uniforme. En otras realizaciones alternativas, el cuantificador (660), el ponderador (642) de banda de cuantificación, el ponderador (644) de canales y el transformador (650) multicanal están fusionados y el módulo fusionado determina distintas ponderaciones en el mismo momento.
El codificador de entropía (670) comprime sin pérdida datos de coeficientes cuantificados recibidos del cuantificador (660). En algunas realizaciones, el codificador de entropía (670) utiliza codificación de entropía adaptativa como se describe en la Solicitud relacionada titulada "Codificación de Entropía por Codificación Adaptativa entre Modos de Nivel y Longitud de Ejecución/Nivel". Alternativamente, el codificador de entropía (670) utiliza alguna otra forma o combinación de codificación de nivel múltiple de longitud de ejecución, codificación de longitud variable a variable, codificación del longitud de ejecución, codificación de Huffman, codificación de diccionario, codificación aritmética, codificación LZ, o alguna otra técnica de codificación de entropía. El codificador de entropía (670) puede calcular el número de bits utilizados codificando información de audio y pasar esta información al controlador (680) de velocidad/calidad.
El controlador (680) trabaja con el cuantificador (660) para regular la velocidad binaria y/o calidad de la salida del codificador (600). El controlador (680) recibe información de otros módulos del codificador (600) y procesa la información recibida para determinar los factores de cuantificación deseados dadas las condiciones actuales. El controlador (670) produce como salida los factores de cuantificación al cuantificador (660) con el objetivo de satisfacer los límites de calidad y/o velocidad binaria.
El codificador (672) mixt0/puro sin pérdida y el codificador de entropía asociado (674) comprimen datos de audio para el modo de codificación mixta/puro sin pérdida. El codificador (600) utiliza el modo de codificación mixta/pura sin pérdida para una secuencia completa o conmutar entre los modos de codificación de marco a marco, de bloque a bloque, de placa a placa o en otra base. Para detalles adicionales respecto al modo de codificación mixta/pura sin pérdida, véase la Solicitud relacionada titulada "Compresión de Audio Unificada con pérdida y sin pérdida". Alternativamente, el codificador (600) utiliza otras técnicas para la codificación mixta y/o pura sin pérdida.
El MUX (690) multiplexa la información lateral recibida de otros módulos del codificador (600) de audio junto con los datos codificados de entropía recibidos de los codificadores de entropía (670, 674). El MUX (690) produce como salida la información en un formato WMA o en otro formato que reconozca el descodificador de audio. El MUX (690) incluye una memoria tampón virtual que almacena el tren binario (695) que va a ser producido como salida por el codificador (600). A continuación, el tampón de memoria virtual produce como salida datos a una velocidad binaria relativamente constante, aunque la calidad puede cambiar debido a los cambios de complejidad en la entrada. La plenitud actual y otras características de la memoria tampón podrán ser utilizadas por el controlador (680) para regular la calidad y/o una velocidad binaria. Alternativamente, la salida de velocidad binaria puede variar con el tiempo, y la calidad se mantiene relativamente constante. O la velocidad binaria de salida solamente está limitada para que sea menor que una velocidad binaria particular, que puede ser constante o variable con el
tiempo.
B. Descodificador de Audio Generalizado
Con referencia la figura 7, el descodificador (700) de audio generalizado incluye un desmultiplexor de tren de datos ["DEMUX"] (710), uno o más descodificadores de entropía (720), un descodificador mixto/puro sin pérdida (722), un descodificador (730) de configuración de placa, un transformador (740) multicanal inverso, un cuantificador/ponderador inverso (750), un transformador inverso de frecuencia (760, un solapador/sumador (770) y un postprocesador (780) multicanal. El descodificador (700) es de alguna forma más simple que el codificador (700) debido a que el descodificador (700) no incluye módulos de control de velocidad/calidad o modelización de percep-
ción.
El descodificador (700) recibe un tren binario (705) de información de audio comprimida en un formato WMA u otro tipo de formato. El tren binario (705) incluye datos codificados de entropía así como información lateral a partir de la cual el descodificador (700) reconstruye las muestras (795) de audio.
El DEMUX (710) analiza información en el tren binario (705) y envía información a los módulos del descodificador (700) El DEMUX (710) incluye una o más memorias tampón para compensar las variaciones a corto término en la velocidad binaria producidas por las fluctuaciones en la complejidad del audio, inestabilidades de red y/o otros factores.
El uno o más descodificadores de entropía (720) descomprime sin pérdida códigos de entropía recibidos del DEMUX (710). El descodificador de entropía (720) típicamente aplica la inversa de la técnica de codificación de entropía utilizada en el codificador (600). Con el finalidad de simplicidad, un módulo descodificador de entropía se muestra en la figura 7, aunque se podrán utilizar diferentes descodificadores de entropía para modos de codificación con pérdida y sin pérdida, o incluso en el interior de módulos. También por la finalidad de simplicidad, la figura 7 muestra la lógica de selección de modos. Cuando se descodifican los datos comprimidos en el modo de codificación compartida, el descodificador de entropía (720) produce datos de coeficientes de frecuencias cuantificados.
El descodificador (722) mixto./puro sin pérdidas y los descodificadores de entropía asociados (720) descomprimen sin pérdidas datos de audio codificados para el modo de codificación mixta/pura sin pérdida. Para detalles adicionales respecto a la descompresión en el modo de descodificación mixta/pura sin pérdida, véase la solicitud relacionada titulada "Compresión de Audio Unificada con Pérdida y sin Pérdida". Alternativamente, el descodificador (700) utiliza otras técnicas para descodificación mixta y/o pura sin pérdidas.
El descodificador (730) de configuración de placas recibe y, en caso necesario, descodifica la información que indica los patrones de placas para marcos del DEMUX (790). La información de patrón de marcos puede ser codificada en entropía o parametrizada de otra manera. El descodificador (730) de configuración de placas a continuación pasa la información de patrón de placas a otros módulos distintos del descodificador (700). Para detalles adicionales respecto a la descodificación de la configuración de placas en algunas realizaciones, véase la sección titulada "Configuración de Placas". Alternativamente, el descodificador (700) utiliza otras técnicas para parametrizar patrones de ventana en marcos.
El transformador multicanal inverso (740) recibe los datos de coeficientes de frecuencias cuantificados del descodificador de entropía (720) así como la información del patrón de placas del descodificador (730) de configuración de placas e información lateral del DEMUX (710) que indica, por ejemplo, la transformación multicanal utilizada y las partes transformadas de las placas. Usando esta información, el transformador multicanal inverso (740) descomprime la matriz de transformación como sea necesario, y aplica selectiva y flexiblemente una o más transformaciones multicanal inversas a los datos de audio. La colocación del transformador multicanal inverso (740) en relación con el cuantificador/ponderador inverso (750) ayuda a conformar el ruido de cuantificación que puede fugar a través de los canales. Para detalles adicionales respecto a las trasformaciones multicanal inversas en algunas realizaciones, véase las sección titulada "Transformaciones Multicanal Flexibles".
El cuantificador/ponderador inverso (750) recibe los factores de cuantificación de placas y de canales así como las matrices de cuantificación del DEMUX (710) y recibe los datos de coeficientes de frecuencias cuantificados del transformador multicanal inverso (740). Un El cuantificador/ponderador inverso (750) descomprime la información de factor/matriz de cuantificación recibida como sea necesario, y a continuación ejecuta la cuantificación y la ponderación inversa. Para detalles adicionales respecto a la cuantificación y ponderación inversa en algunas realizaciones, véase en la sección titulada "Cuantificación y Ponderación". En realizaciones alternativas, el cuantificador/ponderador inverso aplica la inversa de algunas otras técnicas de cuantificación utilizadas en el
codificador.
El transformador de frecuencia inverso (760) recibe la salida de datos de coeficientes de frecuencias del cuantificador/ponderador inverso (750) así como información lateral del DEMUX (710) e información del patrón de placas del descodificador (730) de configuración de placas. El transformador de frecuencia inverso (770) aplica la inversa de la transformación de frecuencia utilizada en el codificador y produce como salida bloques al solapador/sumador
(770).
Además de recibir la información del patrón de placas del descodificador (730) de placas, el solapador/sumador (770) recibe información descodificada del transformador de frecuencia inversa (760) y/o del descodificador mixto/sin pérdidas (722). El solapador/sumador (770) solapa y añade datos de audio como sea necesario e intercala marcos u otras secuencias de datos de audio codificadas con modos diferentes. Para detalles adicionales respecto al solapamiento, suma e intercalado de marcos codificados sin pérdida o mixtos, véase la solicitud relacionada titulada "Compresión Unificada de Audio con pérdida y sin pérdida". Alternativamente, el descodificador (700) utiliza otras técnicas para el solapamiento, suma e intercalado de marcos.
El postprocesador multicanal (780) opcionalmente vuelve a realizar la matriz de la salida de muestras de audio en el dominio temporal por el solapador/sumador (770). El procesador multicanal selectivamente vuelve a realizar la matriz de los datos de audio para crear canales fantasmas para la reproducción, ejecuta efectos especiales tales como rotación espacial de canales entre los altavoces, pliega canales para la reproducción con menos altavoces, o con cualquier otro propósito. Para el postprocesado controlado del tren de binario, las matrices de transformación de postprocesado varían en el tiempo y están señalizadas o incluidas en el tren binario (705). Para detalles adicionales respecto a la operación del postprocesador multicanal en algunas realizaciones, véase la sección titulada "Postprocesado Multicanal". Alternativamente, el descodificador (700) ejecuta otra forma de postprocesado
multicanal.
III. Postprocesado multicanal
En algunas realizaciones, un codificador tal como el codificador (600) de la figura 6 ejecuta preprocesado multicanal en entrada de muestras de audio en el dominio temporal.
En general, cuando hay en N fuentes de canales de audio como entrada, el número de canales codificados producidos por el codificador también es N. Los canales codificados pueden corresponder uno a uno a los canales fuente, o los canales codificados pueden ser canales codificados por transformación multicanal. Cuando la complejidad de codificación de la fuente hace que la compresión sea difícil o cuando la memoria tan está llena, sin embargo, el codificador puede alterar o dejar caer (es decir, no codificar) uno o más de los canales de audio de entrada originales. Esto se puede realizar para reducir la complejidad de codificación y mejorar la calidad percibida en conjunto del audio. Para el preprocesado dirigido por calidad, el codificador ejecuta el preprocesado multicanal como reacción a la calidad de audio medida de manera que controle suavemente la calidad de audio en conjunto y la separación de canales.
Por ejemplo, el codificador puede alterar la imagen de audio multicanal para hacer que uno o más canales sean menos críticos de manera que los canales se dejen caer en el codificador siendo reconstruidos en el codificador como canales "fantasma". El borrado directo de los canales puede tener un efecto muy importante en la calidad, de manera que solamente se realiza cuando la complejidad de codificación es muy alta o la memoria tampón está tan llena que no se puede conseguir buena calidad de reproducción por otros medios.
El codificador pueden indicar al descodificador que acción se debe tomar cuando el número de canales codificados es menor que el número de canales de salida. A continuación, se puede utilizar una transformación multicanal postprocesado en el descodificador para crear canales fantasmas, como se describirá más adelante en la sección titulada "Postprocesado Multicanal". O el codificador puede indicar al descodificador que ejecute postprocesado multicanal con otro propósito.
La figura 8 muestra una técnica generalizada (800) para preprocesado multicanal. El codificador ejecuta (810) preprocesado multicanal sobre los datos (805) de audio multicanal en el dominio temporal, produciendo datos (815) de audio transformados en el dominio temporal. Por ejemplo, el preprocesado incluye una transformación en conjunto N a N, donde N es el número de canales. El codificador multiplica N muestras por una matriz A,
4
en donde x_{pre} e y_{pre} son la entrada de N canales y la salida del preprocesado, y A_{pre} es una matriz de trasformación general N x N con elementos de valor real (es decir, continuos). La matriz A_{pre} se puede elegir para incrementar artificialmente la correlación intercanales en y_{pre} en comparación con x_{pre}. Esto reduce la complejidad para el resto del codificador, pero al coste de separación de canales perdida.
La salida y_{pre} a continuación es alimentada al resto del codificador, que codifica (820) los datos utilizando las técnicas que se muestran en las figuras 6 u otras técnicas de compresión, produciendo datos de audio multicanal codificados (825).
La sintaxis utilizada por el codificador y descodificador permite la descripción de matrices de trasformación multicanal de postprocesado generales o predefinidas, que pueden variar o ser conectadas/desconectadas en una base de marco a marco. El codificador utiliza esta flexibilidad para limitar el daño a las imágenes estéreo/envolvente, compensando la separación de canal con una calidad en conjunto mejor en ciertas circunstancias, incrementando artificialmente la correlación entre canales. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para el preprocesado y postprocesado multicanal, por ejemplo, una que permita cambios en las matrices de trasformación en una base diferente que la de marco a marco.
Las figuras 9a - 9e muestran matrices de transformación preprocesado multicanal (900 - 904) utilizadas para incrementar artificialmente la correlación entre canales bajo ciertas circunstancias en el codificador. El codificador conmuta entre matrices de preprocesado para cambiar la cantidad de correlación entre canales que es incrementada artificialmente entre los canales izquierdo, derecho y central, y entre los canales trasero izquierdo y trasero derecho en un entorno de reproducción de canales 5.1.
En una implementación, con bajas velocidades binarias, el codificador evalúa la calidad de audio reconstruida en algún período de tiempo, y dependiendo del resultado, selecciona una de las matrices de preprocesado. La medida de calidad evaluada por el codificador es la Relación de Ruido a Excitación ["NER"], que es la relación de energía en el patrón de un ruido para un clip de audio reconstruido respecto a la energía en el clip de audio digital original. Valores bajos de la NER indican buena calidad, y valores altos de la NER indican calidad pobre. El codificador evalúa la NER para uno o más marcos codificados previamente. Para información adicional respecto a la NER y otras mediciones de calidad, véase la Solicitud de Patente norteamericana número de serie 10/017.861, titulada "Técnicas para la Medición de Calidad de Audio Perceptual", presentada el 14 de diciembre de 2001. Alternativamente, el codificador utiliza otra medida de calidad, plenitud de la memoria tampón y/o algunos otros criterios para seleccionar una matriz de trasformación de preprocesado, o el codificador evalúa un período diferente de audio multicanal.
Volviendo a continuación a los ejemplos que se muestran en las figuras 9a - 9e a bajas velocidades binarias, el codificador cambia lentamente la matriz de transformación de preprocesado en base al valor de n de la NER de un tramo particular de clip de audio. El codificador compara el valor de n con los valores umbral n_{bajo} y n_{alto} que dependen de la implementación. En una implementación, n_{bajo} y n_{alto} tienen los valores predeterminados n_{bajo} = 0,05 y n_{alto} = 0,1. Alternativamente, n_{bajo} y n_{alto} tienen valores diferentes o valores que cambian con el tiempo como reacción a la velocidad binaria u otros criterios, o el codificador conmuta entre un número diferente de matrices.
Un valor bajo de n (por ejemplo, n \leq n_{bajo} ) indica codificación de buena calidad. De esta manera, el codificador utiliza la matriz de identidad A_{alta,1} (900) que se muestra en la figura 9a, desconectando efectivamente el
preprocesado.
Por otra parte, un valor alto de n (por ejemplo, n \geq n_{alto}) indica una codificación de calidad pobre. De esta manera, el codificador utiliza la matriz A_{alta,1} (902) que se muestra en la figura 9c. La matriz A_{alta,1} (902) introduce una distorsión de imagen envolvente grave, pero al mismo tiempo impone una correlación muy elevada entre los canales izquierdo, derecho y central, lo cual mejora la eficiencia de codificación posterior al reducir la complejidad. El canal central transformado multicanal es el promedio de los canales originales izquierdo, derecho y central. La matriz A_{alta,1} (902) también compromete la separación de canales entre los canales traseros - los canales de entrada trasero izquierdo y trasero derecho son promediados.
Un valor intermedio de n (por ejemplo, n_{bajo} < n < n_{alto}) indica una codificación de calidad intermedia. De esta manera, el codificador puede utilizar la matriz intermedia A_{inter,1} (901) que se muestra en la figura 9b. En la matriz intermedia A_{inter, 1} (901), el factor \alpha mide la posición relativa de n entre n_{bajo} y n_{alto}.
5
La matriz intermedia A_{inter,1} (901) realiza gradualmente la transición desde la matriz de identidad A_{baja} (900) a la matriz A_{alta,1} (902) de baja calidad.
Para las matrices A_{inter,1} (901) y A_{alta,1} (902) que se muestran en las figuras 9b y 9c., el codificador posteriormente se aprovecha de la redundancia entre los canales para lo cual el codificador incrementa artificialmente la correlación entre los canales y el codificador no necesita indicar al descodificador que ejecute cualquier postprocesado multicanal para estos canales.
Cuando el descodificador tiene la capacidad de ejecutar postprocesado multicanal, el codificador puede delegar la reconstrucción del canal central al descodificador. Si es así, cuando el valor n de la NER indica una codificación de calidad pobre, el codificador utiliza la matriz A_{alta,2} (904) que se muestra en 9e con lo cual el canal central de entrada fuga en los canales izquierdo y derecho. En la salida, el canal central es cero, produciendo la complejidad de codificación.
\vskip1.000000\baselineskip
6
\vskip1.000000\baselineskip
Cuando el codificador utiliza la matriz A_{alta,2} de trasformación de preprocesado (904), el codificador (por medio del tren binario) instruye al descodificador para crear un centro fantasma promediando los canales descodificados izquierdo y derecho. Transformaciones multicanal posteriores en el codificador pueden aprovechar la redundancia entre los canales promediados trasero izquierdo y trasero derecho (sin postprocesado) o el codificador puede instruir al descodificador para que ejecute algún postprocesado multicanal para los canales trasero izquierdo y trasero derecho.
Cuando el valor n de la NER indica una codificación de calidad intermedia, el codificador puede utilizar la matriz intermedia A_{inter, 2} (903) que se muestra en la figura 9d para realizar la transición entre las matrices que se muestran en las figuras 9a y 9e.
La figura (10) muestran la técnica (1000) para el procesado multicanal en la cual la matriz de transformación cambia potencialmente en una base de marco a marco. Cambiar la matriz de transformación puede conducir a un ruido audible (por ejemplo chasquido) en la salida final si no se maneja cuidadosamente. Para evitar la introducción de ruido de chasquido, el codificador realiza transiciones gradualmente desde una matriz de trasformación a otra entre marcos.
El codificador en primer lugar establece (1010) la matriz de trasformación de preprocesado, como se ha descrito más arriba. El codificador a continuación determina (1020) si la matriz para el marco actual es la diferencia con la matriz del marco previo (si ha habido un marco previo). Si la matriz actual es la misma o no ha habido una matriz previa, el codificador aplica (1030) la matriz a la entrada de muestras de audio para el marco actual. Si no es así, el codificador aplica (1040) la matriz de trasformación mezclada a las muestras de audio de entrada para el marco actual. La función de mezclado depende de la implementación. En una implementación, en la muestra i en el marco actual, el codificador utiliza una matriz A_{ipre,i} mezclada de corto término
7
en la que, A_{pre,prev} y A_{pre, actual} son las matrices de preprocesado para los marcos previo y actual, respectivamente, y NumMuestras es el número de muestras en el marco actual. Alternativamente, el codificador utiliza otra función de mezclado para suavizar las discontinuidades en las matrices de trasformación de preprocesado.
A continuación, el codificador codifica (1050) los datos de audio multicanal para el marco, utilizando las técnicas que se muestran en la figura 6 u otras técnicas de compresión. El codificador repite la técnica (1000) en base de marco a marco. Alternativamente, el codificador cambia el preprocesado multicanal en alguna otra base.
IV. Configuración de Placas
En algunas realizaciones, un codificador tal como el codificador (600) de la figura 6 agrupa ventanas de audio multicanal en placas para la codificación posterior. Esto proporciona al codificador flexibilidad para utilizar diferentes configuraciones de ventanas para diferentes canales en un marco, al mismo tiempo que también permite transformaciones multicanal en distintas combinaciones de canales para el marco. Un descodificador tal como el descodificador (700) de la figura 7 de funciona con placas durante la descodificación.
Cada canal puede tener una configuración de ventanas independiente de los otros canales. Las ventanas que tienen idénticos momentos de inicio y finalización se consideran que son partes de una placa. La placa puede tener uno o más canales, y el codificador ejecuta transformaciones multicanal para los canales en una placa.
La figura 11a muestra un ejemplo de configuración de placas (1100) para un canal de un audio estéreo. En la figura 11a, cada placa incluye una única ventana. Ninguna ventana en ningún canal del audio estéreo empieza y finaliza en el mismo momento que una ventana en el otro canal.
La figura 11b muestra una configuración de placa ejemplar (1101) para una placa de un canal de audio 5.1. La configuración de placa (1101) incluye varias placas, numeradas de 0 a 6. La placa 0 incluye muestras de los canales 0, 2, 3 y 4 y abarca el primer cuarto del marco. La placa 1 incluye muestras del canal 1 y abarca la primera mitad del marco. La placa 2 incluye muestras de canal 5 y abarca el marco completo. La placa 3 es como la placa 0, pero abarca el segundo cuarto del marco. Las placas 5 y 6 incluyen muestras en los canales 0, 2, y 3 y abarca los cuartos tercero y cuarto, respectivamente, del marco. Finalmente, la placa 5 incluye muestras de los canales 1 y 4 y abarca la última mitad del marco. Como se muestra en la figura 11b, una placa particular puede incluir ventanas en canales no contiguos.
En la figura 12 se muestra una técnica generalizada (1200) para configurar placas de un marco de audio multicanal. El codificador establece (1210) las configuraciones de ventanas para los canales en el marco, dividiendo cada canal en ventanas de tamaño variable para compensar la resolución temporal y la resolución de frecuencia. Por ejemplo, un configurador divisor/placa del codificador divide cada canal independientemente de los otros canales en el marco.
A continuación el codificador agrupa (1220) las ventanas de los diferentes canales en placas para el marco. Por ejemplo, el codificador pone las ventanas de canales diferentes en una única placa si las ventanas tienen idéntica posición de inicio e idéntica posición de finalización. Alternativamente, el codificador utiliza criterios distintos o además de las posiciones de inicio/finalización para determinar que secciones de los canales diferentes agrupa conjuntamente en un una placa.
En una implementación, el codificador ejecuta el agrupamiento de placas (1220) (después e independientemente) del establecimiento (1210) de las configuraciones de ventanas para un marco. En otras implementaciones, el codificador establece (1210) concurrentemente configuraciones de ventanas y agrupa (1220) las ventanas en placas, por ejemplo para favorecer la correlación temporal (utilizando ventanas más grandes) o la correlación de canales (disponiendo más canales en placas únicas), o para controlar el número de placas forzando a que las ventanas se ajusten en un conjunto particular de placas.
El codificador a continuación envía (1230) la información de configuración de placas para el marco a la salida con los datos de audio codificados. Por ejemplo, el configurador divisor/placa del codificador envía información del tamaño de las placas y del miembro de canal de las placas a un MUX. Alternativamente, el codificador envía otra información que especifica las configuraciones de placas. En una implementación, el codificador envía (1230) la información de configuración de las placas después del agrupamiento de las placas (1220). En otras implementaciones, el codificador ejecuta estas acciones concurrentemente.
La figura 3 muestra una técnica (1300) para configurar placas y enviar la información de configuración de placas de un marco de audio multicanal de acuerdo con una sintaxis de tren binario particular. La figura 3 muestra la técnica (1300) ejecutada por el codificador para poner la información en el tren binario; el descodificador ejecuta una técnica correspondiente (leer banderas, conseguir la información de configuración para las placas particulares, etc.) para recuperar la información de las configuración de las placas para el marco de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para una o más de las opciones que se muestran en la figura 13, por ejemplo una que utilice diferentes banderas o diferentes órdenes.
El codificador comprueba inicialmente (1310) si ninguno de los canales en el marco está dividido en ventanas. Si es así, el codificador envía (1312) un bit de bandera (que indica que ningún canal está dividido), y a continuación sale. De esta manera, un único bit indica si un marco dado es una placa única o si tiene placas múltiples.
Por otro lado, si al menos un canal está dividido en ventanas, el codificador comprueba (1320) si todos los canales del marco tienen la misma configuración de ventanas. Si es así, el codificador envía (1322) un bit de bandera (que indica que todos los canales tienen la misma configuración de ventanas, cada placa en el marco tiene todos los canales) y una secuencia de los tamaños de las placas, y a continuación sale. De esta manera, el bit único indica si todos los canales tienen la misma configuración (como en un tren binario codificador convencional) o si tienen una configuración de placas flexible.
Si al menos algunos canales tienen distintas configuraciones de ventanas, el codificador explora las posiciones de muestras del marco para identificar ventanas que tengan la misma posición de inicio así como la misma posición de finalización. Pero en primer lugar, el codificador marca (1330) todas las posiciones de la muestra en el marco como no agrupadas. A continuación, el codificador explora (1340) la siguiente posición de muestra no agrupada en el marco de acuerdo con un patrón de exploración de canal/tiempo. En una implementación, el codificador explora todo los canales en un momento particular buscando posiciones de muestras no agrupadas, y a continuación repite lo mismo para la siguiente posición de muestra en el tiempo, etc. En otras implementaciones, el codificador utiliza otro patrón de exploración.
En la posición de muestras no agrupadas detectada, el codificador agrupa (1350) las mismas ventanas conjuntamente en una placa. En particular, el codificador agrupa ventanas que empiezan en la posición de inicio de la ventana, incluyendo la posición de muestras no agrupadas detectada, y que también finaliza en la misma posición que la ventana que incluye la posición de muestras no agrupadas detectada. En el marco que se muestra en la figura 11b, por ejemplo, el codificador en primer lugar detectaría la posición de la muestra al principio del canal 0. El codificador agruparía las ventanas de longitud de un cuarto de marco de los canales 0, 2, 3 y 4 conjuntamente en una placa puesto que cada una de estas ventanas tiene la misma posición de inicio y la misma posición de finalización que las otras ventanas en la placa.
A continuación el codificador envía (1360) la información de la configuración de las placas especificando las placas para la salida con los datos de audio codificados. La información de la configuración de las placas incluye el tamaño de las placas y un mapa que indica cuáles canales con posiciones de muestras no agrupados en el marco en ese punto se encuentran en la placa. El mapa de los canales incluye un bit por canal posible para la placa. En base a la secuencia de información de las placas, el descodificador determina cuando una placa inicia y finaliza en un marco. El codificador reduce la velocidad binaria del mapa de canales tomando en consideración cuales canales pueden estar presentes en la placa. Por ejemplo, la información para la placa 0 en la figura 11b incluye el tamaño de la placa y un patrón binario "101110" para indicar que los canales 0, 2, 3 y 4 son parte de la placa. Después de ese punto, solamente las posiciones de muestra en los canales 1 y 5 se encuentran no agrupadas. De esta manera, la información para la placa 1 incluye el tamaño de placa y el patrón binario "10" para indicar que el canal 1 es parte de la placa pero que el canal 5 no lo es. Esto ahorra cuatro bits en el patrón binario. La información de placas para la placa 2 a continuación incluye solamente el tamaño de la placa (y no el mapa de canales) puesto que el canal 5 es el único canal que puede tener una ventana que comienza en la placa 2. La información de placas para la placa 3 incluye el tamaño de la placa y el patrón binario "1111" puesto que los canales 1 y 5 tienen posiciones agrupadas en el rango de la placa 3. Alternativamente, el codificador y el descodificador utilizan otra técnica para señalizar patronos de canales en la sintaxis.
A continuación, el codificador analiza (1370) como agrupadas las posiciones de la muestra para las ventanas en el marco y determina (1380) si continúa o no. Si no hay más posiciones de muestras no agrupadas en el marco, el codificador sale. En caso contrario, el codificador explora (1340) la siguiente posición de muestras no agrupadas en el marco de acuerdo con el patrón de exploración canal/tiempo.
V. Transformaciones Multicanal Flexibles
En algunas realizaciones, un codificador tal como el codificador (600) de la figura 6 ejecuta transformaciones multicanal flexibles que se aprovechan efectivamente de la correlación entre los canales. Un descodificador tal como el descodificador (700) de la figura 7 efectúa las transformaciones multicanal inversas correspondientes.
Específicamente, el codificador y el descodificador realizan uno o más de lo que sigue para mejorar las transformaciones multicanal en situaciones diferentes.
1. El codificador efectúa la transformación multicanal después de la ponderación perceptual, y el descodificador efectúa la transformación multicanal inversa correspondiente antes de la ponderación inversa. Esto produce el desenmascarado del ruido de cuantificación en los canales después de la transformación multicanal inversa.
2. El codificador y el descodificador agrupan canales para transformaciones multicanal para limitar cuáles canales son transformados conjuntamente.
3. El codificador y el descodificador conectan selectivamente en conexión y desconexión las transformaciones multicanal es el nivel de banda de frecuencia para controlar cuales bandas son transformadas conjuntamente.
4. El codificador y el descodificador utilizan transformaciones multicanal jerárquicas para limitar la complejidad de cálculo (especialmente en el descodificador).
5. El codificador y el descodificador utilizan matrices de transformación multicanal predefinidas para reducir la velocidad binaria utilizada para especificar las matrices de trasformación.
6. El codificador y el descodificador utilizan parámetros de factorización en base a la rotación cuantificada de Givens para especificar matrices de transformación multicanal para eficiencia de bit.
A. Transformación Multicanal en Audio Multicanal Ponderado
En algunas realizaciones, el codificador posiciona la transformación multicanal después de la ponderación porcentual (y el descodificador posiciona la transformación multicanal inversa antes de la ponderación inversa) de manera que la señal fugada a través del canal esté controlada, sea medible, y tenga un espectro como la señal original.
La figura 14 muestra una técnica (1400) para ejecutar una o más transformaciones multicanal después de la ponderación porcentual en el descodificador. El codificador pondera perceptualmente (1410) el audio multicanal, por ejemplo, aplicando factores de ponderación al audio multicanal en el dominio de la frecuencia. En algunas implementaciones, el codificador aplica ambos factores de ponderación y modificaciones de paso de cuantificación por canal a los datos de audio multicanal antes de las transformaciones multicanal.
A continuación, el codificador ejecuta (1420) una o más transformaciones multicanal en los datos de audio ponderados, por ejemplo como se describe más adelante. Finalmente, el codificador cuantifica (1430) los datos de audio transformados multicanal.
La figura 15 muestra una técnica (1500) para ejecutar una transformación multicanal inversa antes de la ponderación inversa en el descodificador. El descodificador ejecuta (1510) una o más transformaciones multicanal inversas en datos de audio cuantificados, por ejemplo como se describe más adelante. En particular, el descodificador recoge muestras de canales múltiples con un índice de frecuencia particular en un vector x_{mc} y ejecuta la transformación multicanal inversa A_{mc} para generar la salida y_{mc}.
8
Posteriormente, el descodificador cuantifica inversamente y pondera inversamente (1520) el audio multicanal, coloreando la salida de datos de la transformación multicanal inversa con máscara(s). De esta manera, la fuga que se produce a través de los canales (debidas a la cuantificación) está conformada espectralmente de manera que la audibilidad de la señal fugada es medible y controlable, y la fuga de otros canales en un canal reconstruido dado está conformada espectralmente como la señal no corrompida original del canal dado. (En algunas implementaciones, los modificadores de paso de cuantificación por canal también permiten que el codificador realice una calidad de señal reconstruida aproximadamente la misma a través de todos los canales reconstruidos).
B. Grupos de canales
En algunas realizaciones, el codificador y el descodificador agrupan canales para transformaciones multicanal para limitar que canales son transformados conjuntamente. Por ejemplo, en realizaciones que utilizan configuración de placas, el descodificador determina que canales dentro de una placa se correlacionan y agrupa los canales correlacionados. Alternativamente, un codificador y descodificador no utilizan configuración de placas, pero todavía agrupan canales para marcos o en algún otro nivel.
La figura 16 muestra una técnica (1600) para agrupar canales de una placa para la transformación multicanal en una implementación. En la técnica (1600), el codificador considera correlaciones emparejadas entre las señales de los canales así como correlaciones entre bandas en algunos casos. Alternativamente, un codificador considera otros factores adicionales cuando agrupa canales para la transformación multicanal.
En primer lugar, el codificador obtiene (1610) los canales para una placa. Por ejemplo, en la configuración de placas que se muestra en la figura 11b, la placa 3 tiene cuatro canales en la misma: 0, 2, 3 y 4.
El codificador calcula (1620) correlaciones emparejadas entre las señales en los canales, y a continuación agrupa (1630) consecuentemente los canales. Supóngase que para la placa 3 de la figura 11b, los canales 0 y 2 están correlacionados emparejados, pero ninguno de estos canales está correlacionado emparejado con el canal 3 o con el canal 4, y el canal 3 no está correlacionado emparejado con el canal 4. El codificador agrupa (1630) los canales 0 y 2 conjuntamente, pone el canal 3 en un grupo separado, y pone el canal 4 en todavía otro grupo.
Un canal que no está correlacionado emparejado con cualquiera de los canales en un grupo todavía puede ser compatible con ese grupo. Por lo tanto, para los canales que son incompatibles con un grupo, el codificador comprueba opcionalmente (1640) la compatibilidad a nivel de banda y ajusta consecuentemente (1650) el uno o más grupos de canales. En particular, esto identifica los canales que son compatibles con un grupo en algunas bandas, pero son incompatibles en otras bandas. Por ejemplo, supóngase que el canal 4 de la placa 3 en la figura 11b actualmente es compatible con los canales 0 y 2 en la mayor parte de las bandas, pero esa incompatibilidad en unas pocas bandas desvía los resultados de la correlación emparejada. El codificador ajusta (1650) los grupos para poner los canales 0, 2 y 4 juntos, dejando al canal 3 en su propio grupo. El codificador puede ejecutar también algunas pruebas cuando algunos canales están correlacionados "en general", pero tienen bandas incompatibles. La desconexión de la transformación en estas bandas incompatibles mejora la correlación entre las bandas que realmente obtienen la transformación multicanal codificada, y de esta manera mejora la eficiencia de codificación.
Un canal en una placa dada pertenece a un grupo de canales. Los canales en un grupo de canales no tienen que ser contiguos. Una única placa puede incluir múltiples grupos de canales, y cada grupo de canales puede tener una transformación multicanal asociada diferente. Después de decidir que canales son compatibles, el codificador pone la información de grupos de canales en el tren binario.
La figura 17 muestra una técnica (1700) para recuperar la información de grupos de canales y la información de transformación multicanal para una placa de un tren binario de acuerdo con una sintaxis de tren binario particular, con independencia de cómo el codificador calcula los grupos de canales. La figura 17 muestra la técnica (1700) ejecutada por el descodificador para recuperar información del tren binario; el codificador ejecuta una técnica correspondiente para formatear la información de grupos de canales y la información de transformación multicanal para la placa de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para una o más de las opciones que se muestran en la figura 17.
En primer lugar, el descodificador inicializa varias variables utilizadas en la técnica (1700). El codificador establece (1710) #CanalesAVisitar igual al número de canales en la placa #CanalesEnPlaca y establece (1712) el número de grupos de canales #GruposDeCanales en cero.
El descodificador comprueba (1720) si #CanalesAVisitar es mayor que 2. En caso contrario, el descodificador comprueba (1730) si #CanalesAVisitar es igual a 2. Si es así, el descodificador descodifica (1740) la transformación multicanal para el grupo de dos canales, utilizando por ejemplo la técnica que se describe más adelante. La sintaxis permite que cada uno de canales tenga una transformación multicanal diferente. Por otro lado, si #CanalesAVisitar es igual a 1 ó 0, el descodificador sale sin descodificar una transformación multicanal.
Si #CanalesAVisitar es mayor que 2, el descodificador descodifica (1750) la máscara de canal para un grupo en la placa. Específicamente, el descodificador lee los bits de #CanalesAVisitar del tren binario para la máscara de canal. Cada bit en la máscara de canal indica si un canal particular ésta o no está en el grupo de canales. Por ejemplo, si la máscara de canal es "10110", entonces la placa incluye 5 canales, y los canales 0, 2 y 3 se encuentran en el grupo de canales.
A continuación, el descodificador cuenta (1760) el número de canales en el grupo y descodifica (1770) la transformación multicanal para el grupo, utilizando por ejemplo una técnica que se describe más adelante. El descodificador actualiza (1780) #CanalesAVisitar restando el número contado de canales del grupo de canales actual, incrementa (1790) #GruposDeCanales y comprueba (1720) si el número de canales que quedan por visitar #CanalesAVisitar es mayor que dos.
Alternativamente, en realizaciones que no utilizan configuraciones de placas, el descodificador recuperara la información de grupos de canales y la información de transformación multicanal para un marco o en algún otro nivel.
C. Control de Conexión/Desconexión de Banda para Transformación Multicanal
En algunas realizaciones, el codificador y el descodificador conectan selectivamente las transformaciones multicanal en conexión/desconexión a nivel de banda de frecuencia para controlar cuales bandas son transformadas conjuntamente. De esta manera, el codificador y el descodificador excluyen selectivamente bandas que no son compatibles en transformaciones multicanal. Cuando la transformación multicanal es desconectada para una banda en particular, el codificador y el descodificador utilizan la trasformación de identidad para esa banda, pasando a través de los datos en la banda sin alterarla.
Las bandas de frecuencia son bandas críticas o bandas de cuantificación. El número de bandas de frecuencia se refiere a la frecuencia de muestreo de los datos de audio y al tamaño de la placa. En general, cuanto más alta sea la frecuencia de muestreo o mayor sea el tamaño de la placa, mayor será el número de bandas de frecuencia.
En algunas implementaciones, el codificador dispone selectivamente las transformaciones multicanal en conexión/desconexión a nivel de banda de frecuencia para los canales de un grupo de canales de una placa. El codificador puede disponer bandas en conexión/desconexión cuando el codificador agrupa los canales de una placa o después de la agrupación de canales de la placa. Alternativamente, un codificador y un descodificador no utilizan la configuración de placas, pero todavía conectan las transformaciones multicanal en conexión/desconexión a las bandas de frecuencia para un marco o en algún otro nivel.
La figura 18 muestra una técnica (1800) para incluir selectivamente bandas de frecuencia de canales de un grupo de canales en una transformación multicanal en una implementación. En la técnica (1800), el codificador considera correlaciones emparejadas entre las señales de los canales en una banda para determinar si debe habilitar o deshabilitar la transformación multicanal de la banda. Alternativamente, un codificador considera otros y/o factores adicionales cuando dispone selectivamente bandas de frecuencia en conexión/desconexión para una transformación
multicanal.
En primer lugar, el codificador obtiene (1810) los canales para un grupo de canales, por ejemplo como se describe con referencia a la figura 18. A continuación, el codificador calcula (1820) correlaciones emparejadas entre las señales en los canales de diferentes bandas de frecuencia. Por ejemplo, si el grupo de canales incluye dos canales, el codificador calcula una correlación emparejada en cada banda de frecuencia. O si el grupo de canales incluye más de dos canales, el codificador calcula correlaciones emparejadas entre algunas o todas las parejas de canales respectivas en cada banda de frecuencia.
A continuación el codificador dispone (1830) las bandas en conexión o desconexión para la transformación multicanal para el grupo de canales. Por ejemplo, si el grupo de canales incluye dos canales, el codificador habilita la transformación multicanal para una banda en una correlación emparejada en la banda que satisface un umbral particular. O si el grupo de canales incluye más de dos canales, el codificador habilita la transformación multicanal para una banda si cada una o la mayoría de las correlaciones emparejadas en la banda satisface un umbral particular. En realizaciones alternativas, en lugar de disponer una banda de frecuencia particular en conexión o desconexión para todos los canales, el codificador dispone la banda en conexión para algunos canales y en desconexión para otros canales.
Después de decidir cuales bandas están incluidas en las transformaciones multicanal, el codificador coloca la información de bandas de conexión/desconexión en el tren binario.
La figura 19 muestra una técnica (1900) para recuperar información de conexión/desconexión de bandas de una transformación multicanal de un grupo de canales de una placa a partir de un tren binario de acuerdo con una sintaxis de tren binario particular, con independencia de cómo el codificador decide disponer las bandas en conexión o en desconexión. La figura 19 muestra la técnica (1900) ejecutada por el descodificador para recuperar información del tren binario; el codificador ejecuta una técnica correspondiente para formatear la información de banda en conexión/desconexión para el grupo de canales de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para una o más de las opciones que se muestran en la figura 19.
En algunas implementaciones, el descodificador ejecuta la técnica (1900) como parte de la descodificación de la transformación multicanal (1740 ó 1770) de la técnica (1700). Alternativamente, el descodificador ejecuta la técnica (1900) por separado.
El descodificador obtiene (1910) un bit y comprueba (1920) el bit para determinar si todas las bandas están habilitadas para el grupo de canales. Si es así, el descodificador habilita (1930) la transformación multicanal para todas bandas del grupo de canales.
Por otro lado, si el bit indica que todas bandas no están habilitadas para el grupo de canales, el descodificador descodifica (1940) la máscara de banda para el grupo de canales. Específicamente, el descodificador lee un número de bits del tren binario, en el que el número es el número de bandas para el grupo de canales. Cada bit en la máscara de banda indica si una banda particular está en conexión o desconexión en el grupo de canales. Por ejemplo, si la máscara de banda es "111111110110000", entonces el grupo de canales incluye 15 bandas, y las bandas 0, 1, 2, 3, 4, 5, 6, 7, 9, y 10 están conectadas para la transformación multicanal. A continuación el descodificador habilita (1950) la transformación multicanal de las bandas indicadas.
Alternativamente, en realizaciones que no utilizan las configuraciones de placas, el descodificador recupera la información de banda de conexión/desconexión para un marco o en algún otro nivel.
D. Transformaciones Multicanal Jerárquicas
En algunas realizaciones, el codificador y el descodificador utilizan dos transformaciones multicanal jerárquicas para limitar la complejidad del cálculo, especialmente en el descodificador. Con la transformación jerárquica, un codificador divide una trasformación general en múltiples etapas, reduciendo la complejidad de cálculo de las etapas individuales y en algunos casos produciendo la cantidad de información necesaria para especificar la(s) transformación(es) multicanal. Utilizando esta estructura en cascada, el codificador emula la trasformación general mayor con menores transformaciones, hasta alcanzar una precisión. El descodificador ejecuta una transformación inversa jerárquica correspondiente.
En algunas implementaciones, cada etapa de la transformación jerárquica es idéntica en estructura, y en el tren binario, cada etapa está descrita independientemente de una o más de las otras etapas. En particular, cada etapa tiene sus propios grupos de canales y una matriz de transformación multicanal por cada grupo de canales. En implementaciones alternativas, diferentes etapas tienen diferentes estructuras, el codificador y el descodificador utilizan una sintaxis de tren binario diferente, y/o las etapas utilizan otra configuración para los canales y las transformaciones.
La figura 20 muestra una técnica generalizada (2000) para emular una transformación multicanal utilizando una jerarquía de transformaciones multicanal más simple. La figura 20 muestra una jerarquía de etapa n, en donde n es el número de etapas de transformación multicanal. Por ejemplo, en una implementación, n es 2. Alternativamente, n es mayor que 2.
El codificador determina (2010) una jerarquía de transformaciones multicanal para una transformación general. El codificador decide los tamaños de transformación (es decir, el tamaño de los grupos de canales) en base a la complejidad del descodificador que ejecutará las dos transformaciones inversas. O el codificador considera un perfil de descodificador objetivo/nivel del descodificador o algunos otros criterios.
La figura 21 es un gráfico que muestra una jerarquía ejemplar (2100) de transformaciones multicanal. La jerarquía (2100) incluye 2 etapas. La primera etapa incluye N + 1 grupos de canales y transformaciones, numerados de 0 a N; la segunda etapa incluye M + 1 grupos de canales y transformaciones, numerados de 0 a M. Cada grupo de canales incluye uno o más canales. Para cada una de las transformaciones N + 1 de la primera etapa, los canales de entrada son alguna combinación de la entrada de canales al transformador multicanal. No todos los canales de entrada deben ser transformados en la primera etapa. Uno o más canales de entrada pueden pasar a través de la primera etapa inalterados (por ejemplo, el codificador puede incluir tales canales en un grupo de canales que utiliza una matriz de identidad). Para cada una de las transformaciones M + 1 de la segunda etapa, los canales de entrada son alguna combinación de canales de salida de la primera etapa,
\hbox{incluyendo
canales que pueden haber pasado inalterados a través de la primera
tapa.}
Volviendo a la figura 20, el codificador ejecuta (2020) la primera etapa de las transformaciones multicanal, ejecuta la siguiente etapa de las transformaciones multicanal, ejecutando finalmente (2030) la etapa n^{th} (enésima) de las transformaciones multicanal. Un descodificador ejecuta las transformaciones multicanal inversas correspondientes durante la descodificación.
En algunas implementaciones, los grupos de canales son los mismos en las múltiples etapas de la jerarquía, pero las transformaciones multicanal son diferentes. En tales casos, y también en ciertos otros casos, el codificador puede combinar la información de conexión/desconexión de bandas de frecuencia para las transformaciones multicanal múltiples. Por ejemplo, supóngase que hay dos transformaciones multicanal y los mismos tres canales en el grupo de canales de cada una. El codificador puede especificar no transformación/transformación de identidad en ambas etapas para la banda 0, solamente etapa 1 de transformación multicanal para la banda 1 (no transformación en etapa 2), solamente transformación multicanal de etapa 2 para la banda 2 (no hay transformación de etapa 1), transformaciones multicanal de ambas etapas para la banda 3, no trasformación en ambas etapas para la banda 4, etcétera.
La figura 22 muestra una técnica (2200) para recuperar información para una jerarquía de transformaciones multicanal para grupos de canales de un tren binario de acuerdo con una sintaxis de tren binario particular. La figura 22 muestra la técnica (2200) ejecutada por el descodificador para analizar el tren binario; el codificador ejecuta una técnica correspondiente para formatear la jerarquía de las transformaciones multicanal de acuerdo con la sintaxis de tren binario. Alternativamente, el codificador y el descodificador utilizan otra sintaxis, por ejemplo una que incluye banderas adicionales y bits de señalización para más de dos etapas.
El descodificador en primer lugar establece (2210) un valor temporal iTmp igual al siguiente bit en el tren binario. A continuación, el descodificador comprueba (2220) el valor del valor temporal, el cual indica si el descodificador debe descodificar (2230), o no, el grupo de canales y la información de transformación multicanal para un grupo de etapa 1.
Después de que el descodificador descodifique (2230) el grupo de canales y la información de transformación multicanal para un grupo de etapa 1, el descodificador establece (2240) iTmp igual a siguiente bit en el tren binario. El descodificador comprueba de nuevo (2220) el valor de iTmp, que indica si el tren binario incluye, o no, grupos de canales e información de otras transformación multicanal para cualquier grupo adicional de etapa 1. Solamente los grupos de canales con transformaciones de no identidad está especificados en la porción de la etapa 1 de tren binario; los canales que no están descritos en la parte de la etapa 1 del tren binario se supone que son parte de un grupo de canales que utiliza una transformación de identidad.
Si el tren binario no incluye más grupos de canales y de información de transformación multicanal para los grupos de etapa 1, el descodificador descodificar (2250) los grupos de canales y la información de transformación multicanal para todos los grupos de etapa 2.
E. Transformaciones Multicanal Predefinidas o a medida
En algunas realizaciones, el codificador y el descodificador utilizan matrices de transformación multicanal predefinidas para reducir la velocidad binaria utilizada para especificar matrices de transformación. El codificador selecciona entre múltiples tipos de matriz predefinida disponibles y señaliza la matriz seleccionada en el tren binario con un número menor (por ejemplo 1, 2) de bits. Algunos tipos de matrices no requieren señalización adicional en el tren binario, pero otros tipos de matrices requieren especificación adicional. El descodificador recupera la información que indica el tipo de matriz y (en caso necesario) la información adicional que especifica la matriz.
En algunas implementaciones, el codificador y el descodificador utilizan los siguientes tipos de matrices definidas: de identidad, de Hadamard, DCT tipo II, o unitaria arbitraria. Alternativamente, el codificador y el descodificador utilizan tipos de matrices predefinidas diferentes y/o adicionales.
La figura 9a muestra un ejemplo de una matriz de identidad para 6 canales en otro contexto. El codificador especifica eficientemente una matriz de identidad en el tren binario utilizando bits de bandera, asumiendo que el número de dimensiones para la matriz de identidad son conocidos para el codificador así como para el descodificador de transformación (por ejemplo, el número de canales en un grupo).
Una matriz de Hadamard tiene la siguiente forma
9
en la que \rho es un escalar de normalización (\surd2). El codificador especifica eficientemente una matriz de Hadamard para los datos estéreo en el tren binario utilizando bits de bandera.
Una matriz DCT tipo II tiene la siguiente forma:
\vskip1.000000\baselineskip
10
\vskip1.000000\baselineskip
en la que
11
Y en la que
12
Para información adicional respecto a las matrices DCT tipo II, véase Rao et al., Transformación de Coseno Discreta, Academic Press (1990). La matriz DCT tipo II puede tener cualquier tamaño (es decir, funciona para cualquier tamaño de grupo de canales). El codificador especifica eficientemente una matriz DCT tipo II en el tren binario utilizando bits de bandera, asumiendo que el número de dimensiones para la matriz DCT tipo II es conocido tanto como para el codificador como para el descodificador, a partir de otra información (por ejemplo, el número de canales en un grupo).
Una matriz A_{cuadrada} es unitaria si su transposición es en su inversa.
120
En la que I es la matriz de identidad. El codificador utiliza matrices unitarias arbitrarias para especificar las transformaciones KLT para la supresión efectiva de la redundancia. El codificador especifica eficientemente una matriz unitaria arbitraria en el tren binario utilizando bits de bandera y una parametrización de la matriz. En algunas implementaciones, el codificador parametriza la matriz utilizando rotaciones de factorización cuantificadas de Givens, como se describe más adelante. Alternativamente, el codificador utiliza otra parametrización.
La figura 23 muestra una técnica (2300) para seleccionar un tipo de transformación multicanal entre distintos tipos disponibles. El codificador selecciona un tipo de transformación en una base de grupos de canales por grupos de canales o en algún otro nivel.
El codificador selecciona (2310) un tipo de transformación multicanal entre múltiples tipos disponibles. Por ejemplo, los tipos disponibles incluyen matriz de identidad, de Hadamard, DCT tipo II, y unitaria arbitraria. Alternativamente, los tipos incluyen tipos de matrices diferentes y/o adicionales. El codificador utiliza una matriz de identidad, de Hadamard o DCT tipo II (en lugar de una matriz unitaria arbitraria) si es posible o si es necesario con el fin de reducir los bits necesarios para especificar la matriz de trasformación. Por ejemplo, el codificador utiliza una matriz de identidad, de Hadamard o de DCT tipo II si la supresión de la redundancia es comparable o próxima (por algún criterio) a la supresión de la redundancia con matriz unitaria arbitraria. O el codificador utiliza una matriz de identidad, de Hadamard o DCT tipo II si el codificador debe reducir la velocidad binaria. En una situación general, sin embargo, el codificador utiliza una matriz unitaria arbitraria para la mejor eficiencia de
compresión.
A continuación el codificador aplica (2320) una transformación multicanal del tipo seleccionado a los datos de audio multicanal.
La figura 24 muestra una técnica (2400) para recuperar un tipo de transformación multicanal entre tipos plurales disponibles y ejecutar una transformación multicanal inversa. El descodificador recupera información de tipo de transformación en una base de grupo de canales por grupo de canales o a algún otro nivel.
El descodificador recupera (2410) un tipo de transformación multicanal de entre los múltiples tipos disponibles. Por ejemplo, los tipos disponibles incluyen matriz de identidad, de Hadamard, DCT tipo II y unitaria arbitraria. Alternativamente, los tipos incluyen tipos de matrices diferentes y/o adicionales. En caso necesario, el descodificador recupera la información adicional que especifica la matriz.
Después de reconstruir la matriz, el descodificador aplica (2420) una transformación multicanal inversa del tipo seleccionado a los datos de audio multicanal.
La figura 25 muestra una técnica (2520) para recuperar la información de la transformación multicanal para un grupo de canales desde un tren binario de acuerdo con una sintaxis particular de tren binario. La figura 25 muestra la técnica (2500) ejecutada por el descodificador para analizar el tren binario; el codificador ejecuta una técnica correspondiente para formatear la información de trasformación multicanal de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis, por ejemplo una que utiliza diferentes bits de bandera, diferentes órdenes, o diferentes tipos de transformación.
Inicialmente, el descodificador comprueba (2510) si el número de canales en el grupo #CanalesEnGrupo es mayor que 1. Si no es así, el grupo de canales es para audio mono, y el descodificador utiliza (2512) una transformación de identidad para el grupo.
Si #CanalesEnGrupo es mayor que 1, el descodificador comprueba (2520) si #CanalesEnGrupo es mayor que 2. Si no es así, el grupo de canales es para audio estéreo, y el descodificador establece (2522) un valor temporal iTmp igual al siguiente bit en el tren binario. A continuación, el descodificador comprueba (2524) el valor el valor temporal, lo cual indica si el descodificador debería utilizar (2530) una transformación de Hadamard para el grupo de canales. Si no es así, el descodificador establece (2526) iTmp igual al siguiente bit en el tren binario y comprueba (2528) el valor de iTmp que indica si el descodificador debería utilizar (2550) una transformación de identidad para el grupo de canales. Si no es así, el descodificador descodifica (2570) una transformación unitaria genérica para el grupo de canales.
Si #CanalesEnGrupo es mayor que 2, el grupo de canales es para audio de sonido envolvente, y el descodificador establece (2540) un valor temporal de iTmp igual al siguiente bit en el tren binario. El descodificador comprueba (2542) el valor del valor temporal, que indicará si el descodificador debería utilizar (2550) una transformación de identidad del tamaño de #CanalesenGrupo. para el grupo de canales. Si no es así, el descodificador establece (2560) iTmp igual al siguiente bit en el tren binario y comprueba (2562) el valor de iTmp El bit indica si el descodificador debería descodificar (2570) una transformación unitaria genérica para el grupo de canales o utilizar (2580) una trasformación DC tipo II de tamaño #CanalesEnGrupo para el grupo de canales.
Cuando el descodificador utilizada una matriz de transformación de Hadamart, DCT tipo II o unitaria genérica para el grupo de canales, el descodificador descodifica (2590) la información de conexión/desconexión de la banda de transformación para la matriz, y a continuación sale.
F. Representación de Rotación de Givens de Matrices de Transformación
En algunas realizaciones, el codificador y el descodificador utilizan parámetros de factorización en base a la rotación de Givens cuantificados para especificar una matriz de transformación unitaria arbitraria para la eficiencia de bits.
En general, una matriz de transformación unitaria puede ser representada utilizando rotaciones de factorización de Givens. Utilizando esta factorización, una matriz de transformación unitaria estar representada como:
13
En la que \alpha_{1} es +1 o -1 (signo de la rotación) y cada \theta es de la forma de la matriz de rotación (2600) que se muestra en la figura 26. La matriz de rotación (2600) es casi como una matriz de identidad, pero tiene cuatro términos seno/coseno con posiciones variables. Las figuras 27a - 27c muestran matrices de rotación ejemplares para rotaciones de Givens. para representar una matriz de transformación multicanal. Los dos términos de coseno siempre están en la diagonal, los dos términos del seno están en la misma fila/columna que los términos de coseno. Cada \theta tiene un ángulo de rotación y su valor puede tener un rango de -\pi/2 \leq \omega_{k} \leq \pi/2. El número de tales matrices de rotación \theta que se necesita para describir completamente una matriz unitaria A_{unitaria} N x N es:
14
Para información adicional respecto a las rotaciones de factorización de Givens., véase el documento de Vaidyanathan, Sistemas de Multirelación y Bancos de Filtros, capituló 14.6, "Factorización de Matrices Unitarias", Prentice Hall (1993).
En algunas realizaciones, el codificador cuantifica los ángulos de rotación de la factorización de Givens para reducir la velocidad binaria. La figura 28 muestra la técnica (2800) para representar una matriz de trasformación multicanal utilizando rotaciones de factorización de Givens cuantificadas. Alternativamente, un codificador o herramienta de procesado utiliza rotaciones de factorización de Givens cuantificadas para representar una matriz unitaria para algún otro propósito distinto de la transformación multicanal de canales de audio.
El codificador en primer lugar calcula (2810) una matriz unitaria arbitraria para la transformación multicanal. A continuación, el codificador calcula (2820) las rotaciones de factorización de Givens para la matriz unitaria.
Para reducir la velocidad binaria, el codificador cuantifica (2830) los ángulos de rotación. En una implementación, el codificador cuantifica uniformemente cada ángulo de rotación a uno de los 64) valores posibles (2^{8} = 64). Los signos de rotación están indicados con un bit cada uno, de manera que el codificador utiliza el siguiente número de bits para representar la matriz unitaria N x N
15
Este nivel de cuantificación permite que el codificador represente la matriz unitaria N x N para la trasformación multicanal con un grado de precisión muy bueno. Alternativamente, el codificador utiliza algún otro nivel y/o tipo de cuantificación.
La figura 29 muestra una técnica (2900) para recuperar información para una transformación unitaria genérica de un grupo de canales desde un tren binario de acuerdo con una sintaxis particular de tren binario. La figura 29 muestra la técnica (2900) ejecutada por el descodificador para marcar el tren binario; el codificador ejecuta una técnica correspondiente para formatear la información de la transformación unitaria genérica de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis, por ejemplo una que utilice diferentes órdenes o resoluciones para los ángulos de rotación.
En primer lugar, el descodificador inicializa varias variables utilizadas en el resto de la descodificación. Específicamente, el descodificador establece (2910) el número de ángulos para descodificar #AngulosADescodificar en base al número de canales en el grupo de canales #CanalesEnGrupo como se muestra en la ecuación 14. El descodificador también establece (2912) el número de señales de signos para descodificar #SignosADescodificar en base a #CanalesEnGrupo. El descodificador también reestablece (2914, 2916) un contador de ángulos descodificados iAngulosDescodificados y un contador de signos descodificados iSignosDescodificados.
El descodificador comprueba (2920) si hay cualquier ángulo para descodificar, y si es así, establece (2922) el valor para el siguiente ángulo de rotación, reconstruyendo el ángulo de rotación del valor cuantificado de 6 bits.
100
A continuación, el descodificador incrementa (2924) el contador de ángulos descodificados y comprueba (2920) si hay cualquier ángulo adicional para descodificar.
Cuando no hay más ángulos para descodificar, el descodificador comprueba (2940) si hay cualquier signo adicional para descodificar y si es así, establece (2942) el valor para el siguiente signo, reconstruyendo el signo del valor de 1 bit.
101
El descodificador a continuación incrementa (2944) el contador de signos descodificados y comprueba (2940) si hay cualquier signo adicional para descodificar. Cuando no hay más signos para descodificar, el descodificador sale.
VI. Cuantificación y Ponderación
En algunas realizaciones, un codificador tal como el codificador (630) de la figura 6 ejecuta la cuantificación y ponderación en los datos de audio utilizando varias técnicas que se describen más adelante. Para audio multicanal configurado en placas, el codificador calcula y aplica matrices de cuantificación para los canales de placas, modificadores de paso de cuantificación por canal, y factores de cuantificación de placas general. Esto permite que el codificador conforme un ruido de acuerdo con un modelo auditivo, equilibre el ruido entre los canales, y controle la distorsión general.
Un descodificador correspondiente tal como el descodificador (700) de la figura 7 ejecuta la cuantificación inversa y la ponderación inversa. Para audio multicanal configurado en placas, el descodificador descodifica y aplica factores de placas de cuantificación general, modificadores de paso de cuantificación por canal, y matrices de cuantificación para canales de placas. La cuantificación inversa y la ponderación inversa se funden en un único paso.
A. Factor de Cuantificación de Placas General
En algunas realizaciones, para controlar la calidad y la velocidad binaria de los datos de audio de una placa, un cuantificador en un codificador calcula un tamaño de paso de cuantificación Q_{i} para la placa. El cuantificador puede trabajar en conjunto con un controlador de velocidad/calidad para evaluar diferentes tamaños de paso de cuantificación para la placa antes de seleccionar un tamaño de paso de cuantificación de placa que satisfaga la velocidad binaria y/o los límites de calidad. Por ejemplo, el cuantificador y el controlador funcionan como se describe en la Solicitud de Patente norteamericana número de serie 10/017.694, titulada "Estrategia de Control de Calidad y Velocidad en Audio Digital", presentada el 14 de diciembre de 2001.
La figura 30 muestra una técnica (3000) para recuperar un factor de cuantificación de placas general a partir de un tren binario de acuerdo con una sintaxis particular de tren binario. La figura 30 muestra la técnica (3000) ejecutada por el descodificador para analizar el tren binario; el codificador ejecuta una técnica correspondiente para formatear el factor de cuantificación de placas de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis, por ejemplo, una que funcione con rangos diferentes para el factor de cuantificación de placas, utilice una lógica diferente para codificar el factor de placas, o codifique grupos de factores de placas.
En primer lugar, el descodificador inicializa (3010) el tamaño de paso de cuantificación Q_{i} para la placa. En una implementación, el descodificador establece Q_{i} en:
16
en la que BitsValidosPorMuestra es un número 16 \leq BitsValidosPorMuestra \leq 24 que se establece para el descodificador o para el clip de audio, o se establece en algún otro nivel.
A continuación, el descodificador obtiene (3020) seis bits que indican la primera modificación de Q_{i} en relación con el valor inicializado de Q_{i}, y almacena el valor -32 \leq Tmp \leq 31 en la variable temporal Tmp. La función ExtendSigno( ) determina un valor signado desde un valor sin signo. El descodificador añade (3030) el valor de Tmp al valor inicializado de Q_{i}, a continuación determina (3040) el signo de la variable Tmp que es almacenado en la variable SignoDeDelta.
El descodificador comprueba (3050) si el valor de Tmp es igual a -32 o 31. Si no es así, el descodificador sale. Si el valor de Tmp es igual a -32 o 31, el codificador puede haber señalizado que Tmp debería ser modificado adicionalmente. La dirección (positiva o negativa) de las modificaciones adicionales es indicada por SignoDeDelta, y el descodificador obtiene (3060) los siguientes cinco bits para determinar la magnitud 0 \leq Tmp \leq 31 de la siguiente modificación. El descodificador cambia (3070) el valor actual de Q_{i} en la dirección de SignoDeDelta por el valor de Tmp, a continuación comprueba (3080) si valor de Tmp es 31. Si no es así, el descodificador sale. Si el valor de Tmp es 31, el descodificador obtiene (3060) los siguientes cinco bits y continua desde ese punto.
En realizaciones que no utilizan configuraciones de placas, el codificador calcula un tamaño de paso de cuantificación general para un marco u otra porción de datos de audio.
B. Modificadores de Paso de Cuantificación por Canal
En algunas realizaciones, un codificador calcula un modificador de paso de cuantificación para cada canal en una placa: Q_{c,0}, Q_{c,1}, ... , Q_{c,#CanalesEnPlaca-1}. El codificador normalmente calcula estos factores de cuantificación específicos de los canales para compensar la calidad de reconstrucción a través de todos los canales. Incluso en realizaciones que no utilizan configuraciones de placas, el codificador puede calcular todavía factores de cuantificación por canal para los canales en un marco u otra unidad de datos de audio. Como contraste, las técnicas de cuantificación previas, tales como aquellas utilizadas en el codificador (100) de la figura 1, utilizan un elemento de matriz de cuantificación por banda de una ventana en un canal, pero no tienen modificador general para el canal.
La figura 31 muestra una técnica generalizada (3100) para calcular los modificadores de paso de cuantificación por canal de los datos de audio multicanal. El codificador utiliza distintos criterios para calcular los modificadores de paso de cuantificación. En primer lugar, el codificador busca igualar aproximadamente la calidad a través de todos los canales de los datos de audio reconstruidos. En segundo lugar, si las posiciones de los altavoces son conocidas, el codificador favorece los altavoces que son más importantes para la percepción en usos típicos de la configuración de altavoces. En tercer lugar, si los tipos de altavoces son conocidos, el codificador favorece los mejores altavoces en la configuración de altavoces. Alternativamente, el codificador considera criterios distintos o adicionales a estos criterios.
El codificador empieza estableciendo (3110) los modificadores de paso de cuantificación para los canales. En una implementación, el codificador establece (3110) los modificadores en base a la energía en los canales respectivos. Por ejemplo, para un canal con energía relativamente más alta (es decir, más sonora) que los otros canales, los modificadores de paso de cuantificación para los otros canales se hacen relativamente más altos. Alternativamente, el codificador establece (3110) los modificadores en base a otros criterios o adicionales en un procesado de estimación de "bucle abierto". O el codificador puede establecer (3110) los modificadores para igualar los valores inicialmente (basándose en la evaluación de resultados de "bucle cerrado" para que converjan en los valores finales para los modificadores).
El codificador cuantifica (3120) los datos de audio multicanal utilizando los modificadores de paso de cuantificación así como otros factores de cuantificación (incluyendo la ponderación), si estos otros factores no ha sido ya aplicados.
Después de la reconstrucción posterior, el codificador evalúa (3130) la calidad de los canales de audio reconstruidos utilizando NER o alguna otra medida de calidad. El codificador comprueba (3140) si el audio reconstruido satisface los criterios de calidad (y/o otros criterios) y si es así, sale. Si no es así, el codificador establece (3110) nuevos valores para los modificadores de paso de cuantificación, ajustando los modificadores en vista a los resultados evaluados. Alternativamente, para un establecimiento de un paso, en bucle abierto de los modificadores de paso, el codificador salta la evaluación (3130) y la comprobación (3140).
Los modificadores de paso de cuantificación por canal tienden a cambiar de ventana/placa a ventana/placa. El codificador codifica los modificadores de paso de cuantificación como literales o códigos de longitud variable, y a continuación los empaqueta en el tren binario con los datos de audio. O el codificador utiliza algunas otras técnicas para procesar los modificadores de paso de cuantificación.
La figura 32 muestra una técnica (3200) para recuperar los modificadores de paso de cuantificación por canal desde un tren binario de acuerdo con una sintaxis de tren binario particular. La figura 32 muestran la técnica (3200) ejecutada por el descodificador para analizar el tren binario; el codificador ejecuta una técnica correspondiente (establecer banderas, empaquetar datos para los modificadores de paso de cuantificación, etc.) para formatear los modificadores de paso de cuantificación de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis, por ejemplo una que funcione con diferentes banderas o lógica para codificar los modificadores de paso de cuantificación.
La figura 32 muestra la recuperación de los modificadores de paso de cuantificación por canal para una placa. Alternativamente, en realizaciones que no utilizan placas, el descodificador recupera los modificadores de paso por canal para marcos u otras unidades de datos de audio.
Para empezar, el descodificador comprueba (3210) si el número de canales en la placa es mayor que 1. Si no es así, los datos de audio son mono. El descodificador establece (3212) el modificador de paso de cuantificación para el canal mono en 0 y sale.
Para audio multicanal, el descodificador inicializa varias variables. El descodificador obtiene (3220) bits que indican el número de bits por modificador de paso de cuantificación (#BitsPorQ) para la placa. En una implementación, el descodificador obtiene tres bits. A continuación, el descodificador dispone (3222) un contador de canales iCanales Hecho en 0.
El descodificador comprueba (3230) si el contador de canales es menor que el número de canales en la placa. Si no es así, todos los modificadores de paso de cuantificación de canales para la placa han sido recuperados, y el descodificador sale.
Por otro lado, si el contador de canales es menor que el número de canales en la placa, el descodificador obtiene (3232) un bit y comprueba (3240) el bit para determinar si el modificador de paso de cuantificación para los canales actuales es 0. Si es así, el descodificador dispone (3242) el modificador de paso de cuantificación para el canal actual en 0.
Si el modificador de paso de cuantificación para el canal actual no es 0, el descodificador comprueba (3250) si #BitsPorQ es mayor que 0 para determinar si el modificador de paso de cuantificación para el canal actual es 1. Si es así, el descodificador dispone (3252) el modificador de paso de cuantificación para el canal actual en 1.
Si #BitsPorQ es mayor que 0, el descodificador obtiene los siguientes bits #BitsPorQ en el tren binario, añade 1 (puesto que el valor 0 dispara una condición de salida anterior) y dispone (3260) el modificador de paso de cuantificación para el canal actual al resultado.
Después de que el descodificador disponga el modificador de paso de cuantificación para el canal actual, el descodificador incrementa (3270) el contador de canales y comprueba (3230) si el contador de canales es menor que el número de canales en la placa.
C. Codificación y Descodificación de la Matriz de Cuantificación
En algunas realizaciones, un codificador calcula una matriz de cuantificación para cada canal en una placa. El codificador mejora las técnicas de cuantificación anteriores tales como aquellas que se utilizaban en el codificador (100) de la figura 1 de distintas maneras. Para la compresión con pérdida de matrices de cuantificación, el codificador utiliza un tamaño de paso flexible para los elementos de la matriz de cuantificación, lo cual permite que el descodificador cambie la resolución de los elementos de las matrices de cuantificación. Además de esta característica, el codificador se aprovecha de la correlación temporal en los valores de la matriz de cuantificación durante la compresión de las matrices de cuantificación.
Como se ha explicado previamente, una matriz de cuantificación sirve como una agrupación de tamaño de paso, un valor de paso por cada banda de frecuencia de corteza (u otra banda de cuantificación dividida de otra manera) para cada canal en una placa. El codificador utiliza matrices de cuantificación para "colorear" la señal de audio reconstruida de manera que tenga una forma espectral comparable a la de la señal original. El codificador normalmente determina las matrices de cuantificación en base a la psicoacústica y comprime las matrices de cuantificación para reducir la velocidad binaria. La compresión de las matrices de cuantificación puede ser con pérdida.
Las técnicas que se han descrito en esta sección se han descrito con referencia a las matrices de cuantificación para canales de placas. En la notación, Q_{mjCanaljBanda} representa el elemento de matriz de cuantificación para el canal iCanal para la banda iBanda. En realizaciones que no utilizan configuraciones de placas, el codificador todavía puede usar un tamaño de paso flexible para los elementos de la matriz de cuantificación y/o aprovecharse de la correlación temporal de los valores de la matriz de cuantificación durante la compresión.
1. Tamaño de Paso de Cuantificación Flexible para la Información de Máscara
La figura 33 muestra una técnica generalizada (3300) para establecer adaptativamente un tamaño de paso de cuantificación para la cuantificación de elementos de matriz de cuantificación. Esto permite que el codificador cuantifique la información de máscara toscamente ó finamente. En una implementación, el codificador establece el tamaño de paso de cuantificación para los elementos de la matriz de cuantificación en una base de canal a canal para una placa (es decir, en base de matriz a matriz cuando cada canal de la placa tiene una matriz). Alternativamente, el codificador establece el tamaño de paso de cuantificación para los elementos de máscara en una placa en una base de placa a placa o marco a marco, para una secuencia de audio completa, o en algún otro nivel.
El codificador empieza estableciendo (3310) un tamaño de paso de cuantificación para una o más máscaras. (El número de máscaras afectadas depende del nivel en el cual el codificador asigna el tamaño de paso de cuantificación flexible). En una implementación, el codificador evalúa la calidad de audio reconstruido en algún período de tiempo, y dependiendo del resultado, selecciona el tamaño de paso de cuantificación para que sea 1, 2, 3 o 4 dB para la información de máscara. La medida de calidad evaluada por el codificador es NER para uno o más de los marcos codificados previamente. Por ejemplo, si la calidad en conjunto es pobre, el codificador puede establecer (3310) un valor más elevado para el tamaño de paso de cuantificación para la información de máscara, puesto que la resolución de la matriz de cuantificación no es un uso eficiente de la velocidad binaria. Por otro lado, si la calidad en conjunto es buena, el codificador puede establecer (3310) un valor inferior de tamaño de paso de cuantificación para información de máscara, puesto que la resolución mejor en la matriz de cuantificación puede mejorar eficientemente la calidad percibida. Alternativamente, el codificador utiliza otra medida de calidad, evaluación en un período diferente y/o otros criterios en una estimación de bucle abierto para el tamaño de paso de cuantificación. El codificador también puede utilizar tamaños de paso de cuantificación diferentes o adicionales para la información de máscara. O el codificador puede saltar la estimación de bucle abierto, en lugar de basarse en una evaluación de resultados de bucle cerrado para que converjan en el valor final del tamaño de paso.
El codificador cuantifica (3320) la una o más matrices de cuantificación utilizando el tamaño de paso de cuantificación para los elementos de máscara, y pondera y cuantifica los datos de audio multicanal.
Después de la reconstrucción posterior, el codificador evalúa (3330) la calidad de audio reconstruido utilizando la NER o alguna otra medida de calidad. El codificador comprueba (3340) si la calidad de audio reconstruido justifica el establecimiento actual del tamaño de paso de cuantificación para la información de máscara. Si no es así, el codificador puede establecer (3310) un valor más alto o más bajo del tamaño de paso de cuantificación para la información de máscara. En otro caso, el codificador sale. Alternativamente, para un establecimiento de un paso, de bucle abierto del tamaño de paso de cuantificación para la información de máscara, el codificador salta la evaluación (3330) y la comprobación (3340).
Después de la selección, el codificador indica el tamaño del paso de cuantificación para la información de máscara en el nivel apropiado en el tren binario.
La figura 34 muestra una técnica generalizada (3400) para recuperar un tamaño de paso de cuantificación adaptativo para los elementos de la matriz de cuantificación. De esta manera el descodificador puede cambiar el tamaño de paso de cuantificación para los elementos de máscara en una base de canal a canal para una placa, o de placa a placa o de marco a marco, para una secuencia de audio completa, o en algún otro nivel.
El descodificador empieza obteniendo (3410) un tamaño de paso de cuantificación para una o más máscaras. (El número de máscaras afectadas depende del nivel en el cual el codificador asigna el tamaño de paso de cuantificación flexible). En una implementación, el tamaño de paso de cuantificación es 1, 2, 3 o 4 dB para la información de máscaras. Alternativamente, el codificador y el descodificador utilizan tamaños de paso de cuantificación diferentes o adicionales para la información de máscaras.
A continuación el descodificador cuantifica inversamente (3420) la una o más matrices de cuantificación utilizando el tamaño de paso de cuantificación para la información de máscara, y reconstruye los datos de audio multi-
canal.
2. Predicción Temporal de Matrices de Cuantificación
La figura 35 muestra una técnica generalizada (3500) para la compresión de las matrices de cuantificación utilizando la predicción temporal. Con la técnica (3500), el codificador se aprovecha de la correlación temporal en los valores de la máscara. Esto reduce la velocidad binaria asociada con las matrices de cuantificación.
Las figuras 35 y 36 muestran la predicción temporal para las matrices de cuantificación en un canal de un marco de datos de audio. Alternativamente, un codificador comprime las matrices de cuantificación utilizando predicción temporal entre múltiples marcos, en alguna otra secuencia de audio, o para una configuración diferente de las matrices de cuantificación.
Con referencia a la figura 35, el codificado obtiene (3510) matrices de cuantificación para un marco. Las matrices de cuantificación en un canal tienden a ser las mismas de ventana a ventana, haciéndolas buenas candidatas para la codificación predictiva.
A continuación el codificador codifica (3520) las matrices de cuantificación utilizando la predicción temporal. Por ejemplo, el codificador utiliza la técnica (3600) que se muestra en la figura 36. Alternativamente, el codificador utiliza otra técnica con predicción temporal.
El codificador determina (3530) si hay más matrices para comprimir, y si no es así, sale. En caso contrario, el codificador obtiene las siguientes matrices de cuantificación. Por ejemplo, el codificador comprueba si hay disponibles matrices para el siguiente marco para la codificación.
La figura 36 muestra una técnica más detallada (3600) para comprimir las matrices de cuantificación en un canal utilizando predicción temporal en una implementación. La predicción temporal utiliza un procesado del retoma de muestras en las placas de diferentes tamaños de ventana y utiliza la codificación de nivel de longitud de ejecución en residuales de predicción para reducir la velocidad binaria.
El codificador empieza (3610) la compresión de la siguiente matriz de cuantificación que va a ser comprimida y comprueba (3620) si hay disponible una matriz de anclaje, que normalmente depende de que la matriz sea la primera en su canal. Si no hay disponible una matriz de anclaje, el codificador comprime directamente (3630) la matriz de cuantificación. Por ejemplo, el codificador codifica diferencialmente los elementos de la matriz de cuantificación (cuando la diferencia para un elemento es relativa al elemento de la banda previa) y asigna códigos Huffman a los diferenciales. Para el primer elemento en la matriz (es decir, el elemento de máscara para la banda 0), el codificador utiliza una constante de predicción que depende del tamaño de paso de cuantificación de los elementos de
máscara.
17
Alternativamente, el codificador utiliza otra técnica de compresión para la matriz de anclaje.
A continuación, el codificador establece (3640) la matriz de cuantificación como matriz de anclaje para el canal del marco. Cuando el codificador utiliza placas, la placa que incluye la matriz de anclaje para un canal puede ser denominada placa de anclaje. El codificador anota el tamaño de la matriz de anclaje o el tamaño de placa de la placa de anclaje, que puede ser utilizado para formar predicciones para matrices con un tamaño diferente.
Por otro lado, si hay disponible una matriz de anclaje, el codificador comprime la matriz de cuantificación utilizando predicción temporal. El codificador calcula (3650) una predicción para la matriz de cuantificación en base a la matriz de anclaje para el canal. Si la matriz de cuantificación que está siendo comprimida tiene el mismo número de bandas que la matriz de anclaje, la predicción son los elementos de la matriz de anclaje. Si la matriz de cuantificación que está siendo comprimida tiene un diferente número de bandas que la matriz de anclaje, sin embargo, el codificador retoma muestras de la matriz de anclaje para calcular la predicción.
El procesado de retoma de muestras utiliza el tamaño de la matriz de cuantificación que está siendo comprimida/tamaño de la placa actual y el tamaño de la matriz de anclaje/tamaño de la placa de anclaje.
\vskip1.000000\baselineskip
102
\vskip1.000000\baselineskip
en la que iBandaEscalada es la banda de matriz de anclaje que incluye la frecuencia representativa (por ejemplo, el promedio) de iBanda. iBanda es en términos de la matriz de cuantificación actual/tamaño de la placa actual, mientras que iBandaEscalada. es en términos del tamaño de la matriz de anclaje/placa de anclaje.
La figura 37 ilustra una técnica para retomar muestras de la matriz de anclaje cuando el codificador utiliza placas. La figura 37 muestra un mapeo ejemplar (3700) de bandas de una placa actual a bandas de otra placa de anclaje para formar una predicción. Las frecuencias en el medio de los límites de las bandas (3720) para la matriz de codificación en la placa actual son mapeadas (3730) a frecuencias de la matriz de anclaje en la placa de anclaje. Los valores de la máscara de predicción se establecen dependiendo si las frecuencias mapeadas son relativas a los límites de la banda (3710) o a la matriz de anclaje en la placa de anclaje. Alternativamente, el codificador utiliza predicción temporal relativa a la matriz de cuantificación precedente en el canal o alguna otra matriz precedente, o utiliza otra técnica para retomar muestras.
Volviendo a la figura 36, el codificador calcula (3660) un residual de la matriz de cuantificación relativa a la predicción. Idealmente, la predicción es perfecta y el residual no tiene energía. Sin embargo, en caso necesario, el codificador codifica (3670) el residual. Por ejemplo, el codificador utiliza codificación de nivel de desplazamiento u otra técnica de compresión para el residual de la predicción.
A continuación el codificador determina (3680) si hay cualquier otra matiz que va a ser comprimida y si no es así, sale. En caso contrario, el codificador obtiene (3610) la siguiente matriz de cuantificación y continua.
La figura 38 muestra una técnica (3800) para recuperar y descodificar matrices de cuantificación comprimidas utilizando predicción temporal de acuerdo con una sintaxis de tren binario particular. Las matrices que cuantificación son para los canales de una única placa de un marco. La figura 38 muestra la técnica (3800) ejecutada por el descodificador para marcar información en el tren binario y el codificador ejecuta una técnica correspondiente. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para una o más de las opciones que se muestran en la figura 38, por ejemplo una que utiliza diferentes banderas, diferentes órdenes, o una que no utiliza
placas.
El descodificador comprueba (3810) si el codificador ha alcanzado el inicio de un marco. Si es así, el descodificador marca (3812) todas las matrices de anclaje para el marco como que no han sido dispuestas.
A continuación el descodificador comprueba (3820) si la matriz de anclaje está dispuesta en el canal de la siguiente matriz de cuantificación que debe ser codificada. Sin no hay disponible ninguna matriz de anclaje, el descodificador obtiene (3830) el tamaño del paso de cuantificación para la matriz de cuantificación para el canal. En una implementación, el descodificador obtiene el valor 1, 2, 3 o 4 dB.
18
A continuación el descodificador descodifica (3832) la matriz de anclaje para el canal. Por ejemplo, el descodificador Huffman descodifica diferentes elementos codificados de la matriz de anclaje (donde la diferencia para un elemento es relativa al elemento de la banda previa) y reconstruye los elementos. Para el primer elemento, el descodificador utiliza la constante de predicción utilizada en el codificador.
19
Alternativamente, el descodificador utiliza otra técnica de descompresión para la matriz de anclaje en un canal en el marco.
A continuación el descodificador establece (3834) la matriz de cuantificación como matriz de anclaje para el canal del marco y establecer los valores de la matriz de cuantificación para el canal en aquellos de la matriz de anclaje.
20
El descodificador también anota el tamaño de placa para la placa de anclaje, que puede ser utilizado para formar predicciones de matrices en placas con diferente tamaño que la placa de anclaje.
Por otro lado, si hay disponible una matriz de anclaje para el canal, el descodificador descomprime la matriz de cuantificación utilizando predicción temporal. El descodificador calcula (3840) una predicción para la matriz de cuantificación en base a la matriz de anclaje de canal si la matriz de cuantificación para la placa actual tiene el mismo número de bandas que la matriz de anclaje, la predicción es los elementos de la matriz de anclaje. Sin embargo, si la matriz de cuantificación para la placa actual tiene un número diferente de bandas que la matriz de anclaje, el codificador vuelve a tomar muestras en la matriz de anclaje para obtener la predicción, por ejemplo utilizando el tamaño de placa actual y el tamaño de placa de anclaje como se muestra en la figura 37.
\vskip1.000000\baselineskip
21
\vskip1.000000\baselineskip
Alternativamente, el descodificador utiliza predicción temporal relativa a la matriz de cuantificación precedente en el canal o a una matriz precedente, o utiliza otra técnica de retoma de muestras.
El descodificador obtiene (3842) el siguiente bit en el tren binario y comprueba (3850) si el tren binario incluye un residual para la matriz de cuantificación. Si no hay actualización de máscara para este canal en la placa actual, el residual de predicción de máscara es 0, de manera que:
22
Por otro lado, si hay un residual de predicción, el descodificador descodifica (3852) el residual, por ejemplo utilizando descodificación de nivel de longitud de ejecución o alguna otra técnica de descompresión. A continuación el descodificador añade (3854) el residual de predicción a la predicción para reconstruir la matriz de cuantificación. Por ejemplo, la adición es una simple adición escalar en una base de banda a banda para obtener los elementos para la banda iBanda para el canal actual iCanal
23
El descodificador a continuación comprueba (3860) si las matrices de descodificación para todo los canales en la placa actual han sido descodificadas y si es así, sale. En caso contrario, el descodificador continúa descodificando la siguiente matriz de cuantificación en la placa actual.
D. CuantificaciónI y Ponderación Inversa Combinadas
Una vez que el descodificador recupera toda la información necesaria de cuantificación y ponderación, el descodificador cuantifica inversamente y pondera inversamente los datos de audio. En una implementación, el descodificador ejecuta la cuantificación inversa y la ponderación inversa en una etapa, que se muestra en las dos ecuaciones que siguen con la finalidad de que la impresión sea clara.
24
en la que x_{lqw} es la entrada (es decir, coeficiente de transformación MC inversa) del canal iCanal, y n es un índice de coeficiente en la banda iBanda. Max(Q_{c,iCanal}, *) es el valor de máscara máximo para el canal iCanal en todas las bandas. (La diferencia entre los factores de ponderación mayor y menor para una máscara típicamente es mucho menor que el rango de los valores potenciales para los elementos de máscara, de manera que la cantidad de ajuste de cuantificación por factor de ponderación es calculada en relación con el máximo). MultiplicadorQuantMascara_{iCanal} es el multiplicador de paso de cuantificación de máscara para la matriz de cuantificación del canal iCanal, e Y_{lqw} es la salida de este paso.
Alternativamente, el descodificador ejecuta la cuantificación inversa en la ponderación separadamente utilizando técnicas diferentes.
VII. Postprocesado Multicanal
En algunas realizaciones, un descodificador tal como el descodificador (700) de la figura 7 ejecuta procesado multicanal en muestras de audio reconstruidas en el dominio temporal.
El postprocesado multicanal puede ser utilizado con muchos propósitos diferentes. Por ejemplo, el número de canales descodificados puede ser menor que el número de canales para la salida (por ejemplo, debido a que el codificador dejó caer uno o más canales de entrada y canales transformados multicanal para reducir la complejidad de codificación o la plenitud de la memoria tampón). Si es así, una transformación postprocesado multicanal puede ser utilizada para crear uno o más canales fantasmas en base a los datos actuales en los canales descodificados. O incluso si el número de canales descodificados iguala al número de canales de salida, la transformación de postprocesado se puede utilizar para la rotación espacial arbitraria en la presentación, volviendo a mapear los canales de salida entre las posiciones de los altavoces, u otros efectos espaciales o especiales. O si el número de canales descodificados es mayor que el número de canales de salida (por ejemplo, cuando se reproduce audio de sonido envolvente en equipo estéreo), la transformación postprocesado se puede utilizar para plegar canales. En algunas realizaciones, los coeficientes de plegado varían potencialmente en el tiempo - el postprocesado multicanal está controlado por el tren binario. Las matrices de transformación para estos escenarios y aplicaciones están previstas o señalizadas por el codificador.
En la figura 39 se muestra una técnica generalizada (3900) para postprocesado multicanal. El descodificador descodifica (3910) datos de audio multicanal codificados (3905) utilizando las técnicas que se muestran en la figura 7 u otras técnicas de descompresión, produciendo datos de audio multicanal en el dominio temporal reconstruido (3915).
A continuación el descodificador ejecuta (3920) postprocesado multicanal en los datos de audio multicanal del dominio temporal (3915). Por ejemplo, cuando el codificador produce M canales descodificados y el descodificador produce como salida N canales, el procesado incluye una transformación en conjunto M a N. El descodificador, toma M muestras colocadas conjuntamente (en tiempo), una para cada uno de los M canales codificados reconstruidos, a continuación amortigua cualquier canal que falta (es decir, los canales N - M canales que han sido dejados caer por el codificador) con ceros. El descodificador multiplica las N muestras por una matriz A_{post}.
25
En donde x_{post} y Y_{post} son la entrada de N canales y la salida del procesado multicanal, A_{post} es una matriz de transformación en conjunto N x N, y x_{post} está amortiguado con ceros para hacer coincidir con la longitud del vector de salida N.
La matriz A_{post} puede ser una matriz con elementos predeterminados, o puede ser una matriz en conjunto con los elementos especificados por el codificador. El codificador indica al descodificador que debe utilizar una matriz determinada (por ejemplo, con uno o más bits de bandera) o envía los elementos de una matriz en conjunto al descodificador, o el descodificador puede estar configurado para utilizar siempre la misma matriz A_{post}. La matriz A_{post} no necesita poseer ninguna característica especial tal como ser simétrica o invertible. Para flexibilidad adicional, el procesado multicanal puede estar dispuesto en conexión/desconexión en una base de marco a marco u otra (en cuyo caso, el descodificador puede utilizar una matriz de identidad para dejar inalterados los canales).
En la figura 40 se muestra una matriz ejemplar A_{p-centro} (4000) utilizada para crear un canal central fantasma desde los canales izquierdo y derecho en un entorno de reproducción de canales 5.1, estando los canales ordenados como se muestra en la figura 4. La matriz ejemplar A_{p-centro} (4000) pasa por los otros canales inalterada. El descodificador obtiene muestras colocadas conjuntamente en tiempo desde los canales izquierdo, derecho, sub-woofer, trasero izquierdo y trasero derecho y amortigua el canal central con ceros. El descodificador a continuación multiplica las seis muestras de entrada por la matriz A_{p-centro} (4000).
26
Alternativamente, el descodificador utiliza una matriz con diferentes coeficientes o un número diferente de canales. Por ejemplo, el descodificador utiliza una matriz para crear canales fantasmas en un canal 7.1, canal 9.1 o algún otro entorno de reproducción de los canales codificados para una audición multicanal 5.1.
La figura 41 muestra una técnica (4100) para el postprocesado multicanal en la cual la matriz de transformación cambia potencialmente en una base de marco a marco. Cambiar la matriz de transformación puede conducir a ruidos audibles (por ejemplo, chasquidos) en la salida final si no se maneja cuidadosamente. Para evitar la introducción de ruidos de chasquidos, el descodificador realiza gradualmente la transición desde una matriz de transformación a otra entre marcos.
El descodificador en primer lugar descodifica (4110) los datos de audio multicanal codificados para un marco, utilizando las técnicas que se muestran en la figura 7 u otras técnicas de descompresión, y produciendo datos de audio multicanal del dominio temporal reconstruidos. El descodificador a continuación obtiene (4120) la matriz del postprocesado para el marco, por ejemplo como se muestra en la figura 42.
El descodificador determina (4130) si la matriz para el marco actual es diferente de la matriz del marco previo (si ha habido un marco previo). Si la matriz actual es la misma o no hay una matriz previa, el descodificador aplica (4140) la matriz a las muestras de audio reconstruidas del marco actual. En caso contrario, el descodificador aplica (4150) una matriz de trasformación mezclada a las muestras de audio reconstruidas para el marco actual. La función de mezcla depende de la implementación. En una implementación, en la muestra i en el marco actual, el descodificador utiliza una matriz mezclada de corto termino.
27
en la que A_{post,prev} y A_{post,actual} son las matrices de postprocesado de los marcos previo y actual, respectivamente, y NumMuestras es el número de muestras en el marco actual. Alternativamente, el descodificador utilizar otra función de mezcla para suavizar las discontinuidades en las matrices de transformación de postprocesado.
El descodificador repite la técnica (4100) en una base de marco a marco. Alternativamente, el descodificador cambia el postprocesado multicanal en alguna otra base.
La figura 42 muestra una técnica (4200) para identificar y recuperar una matriz de transformación para el postprocesado multicanal de acuerdo con una sintaxis de tren binario particular. La sintaxis permite especificar matrices de trasformación definidas así como matrices a medida para el postprocesado multicanal. La figura 42 muestra la técnica (4200) ejecutada por el descodificador para analizar el tren binario; el codificador ejecuta una técnica correspondiente (establecer banderas, empaquetar datos de elementos, etc.) para formatear la matriz de trasformación de acuerdo con la sintaxis de tren binario. Alternativamente, el descodificador y el codificador utilizan otra sintaxis para una o más de las opciones que se muestran en la figura 42, por ejemplo una que utiliza diferentes banderas o diferentes órdenes.
En primer lugar, el descodificador determina (4210) si el número de canales #Canales es mayor que 1. Si #Canales es 1, los datos de audio son mono, y el descodificador utiliza (4212) una matriz de identidad (es decir, no ejecuta procesado multicanal por sí mismo).
Por otro lado, si #Canales > 1, el descodificador establece (4220) un valor temporal iTmp igual al siguiente bit en el tren binario. A continuación el descodificador comprueba (4230) el valor del valor temporal, lo cual indica si el descodificador debe utilizar (4232), o no, una matriz de identidad.
Si el descodificador utiliza algo distinto de una matriz de identidad para el audio multicanal, el descodificador establece (4240) el valor temporal iTmp igual al siguiente bit en el tren binario. A continuación, el descodificador comprueba (4250) el valor del valor temporal, lo cual indica si el descodificador debe usar (4252) o no una matriz de trasformación multicanal predefinida. Si el descodificador utiliza (4252) una matriz predefinida, el descodificador puede obtener uno o más bits adicionales del tren binario (no mostrado) que indica cuál de las diferentes matrices predefinidas disponibles debería utilizar el descodificador.
Si el descodificador no utiliza una matriz predefinida, el descodificador inicializa distintos valores temporales para descodificar una matriz a medida. El descodificador establece (4260) un contador iCoefHecho para los coeficientes establecidos en 0 y establece (4262) el número de coeficientes #CoefParaHacer. para descodificar e igualar el número de elementos en la matriz (#Canales^{2}). Para matrices que se conocen que tienen propiedades particulares (por ejemplo, simétricas), el número de coeficientes a descodificar puede disminuir. A continuación el descodificador determina (4270) si todos los coeficientes han sido recuperados del tren binario y si es así, finaliza. En caso contrario, el descodificador obtiene (4272) el valor del siguiente elemento A[iCoefHecho] en la matriz e incrementa (4274) iCoefHecho. La manera en la que los elementos son codificados y empaquetados en el tren binario depende de la implementación. En la figura (42, la sintaxis permite cuatro bits de precisión por elemento de la matriz de trasformación, y el valor absoluto de cada elemento es menor o iguala a uno. En otras implementaciones, la precisión por elemento es diferente, el descodificador y el codificador utilizan compresión para aprovechar patronos de redundancia en la matriz de trasformación, y/o la sintaxis es diferente de alguna otra manera.
Habiendo descrito e ilustrado los principios de la invención con referencia a las realizaciones que se han descrito, se reconocerá que las realizaciones descritas pueden ser modificadas en disposiciones y detalles sin separarse de tales principios. Se debe entender que los programas, procesos o procedimientos descritos en la presente memoria descriptiva no están relacionados o limitados a un tipo particular de entorno informático, a no ser que se indique lo contrario. Distintos tipos de entornos informáticos de propósito general o especializados pueden ser utilizados o ejecutar operaciones de acuerdo con las enseñanzas que se describen en la presente memoria descriptiva. Los elementos de las realizaciones descritas que se muestran en programas lógicos se pueden implementar en equipos físicos o viceversa.

Claims (21)

1. Un procedimiento de codificación de audio implementado por ordenador, que comprende.
recibir un marco de datos de audio multicanal;
agrupar ventanas plurales de diferentes canales en el marco en una o más placas, en el que cada placa de la una o más placas agrupa una o más ventanas colocadas conjuntamente entre las ventanas múltiples de los diferentes canales en el marco, en el que, para cada placa de la una o más placas, el grupo de la una o más ventanas colocadas conjuntamente para la placa comparte una posición de inicio para la placa y comparte una posición de finalización para la placa, en el que los canales plurales de los diferentes canales tienen diferentes configuraciones de ventanas en el marco, y en el que al menos una placa del uno o más grupos de placas colocadas conjuntamente de los canales plurales tienen diferentes configuraciones de ventanas en el marco; y
producir como salida información de configuración de placas para la una o más placas, indicando la información de configuración de placas cómo las ventanas plurales están agrupadas en la una o más placas.
2. El procedimiento de la Reivindicación 1, en el que los datos de audio multicanal se encuentran en dos canales.
3. El procedimiento de la Reivindicación 1, en el que los datos de audio multicanal se encuentran en más de dos canales.
4. El procedimiento de la Reivindicación 1, en el que los diferentes canales incluyen canales primero, segundo y tercero, en el que el primer canal incluye una primera ventana y una segunda ventana, en el que el segundo canal incluye una ventana colocada conjuntamente en posición con la primera ventana del primer canal, en el que el tercer canal incluye una ventana colocada conjuntamente en posición con la segunda ventana del primer canal, en el que la primera ventana del primer canal se encuentra en una primera placa junto con la ventana del segundo canal, y en el que la segunda ventana del primer canal se encuentra en una segunda placa junto con la ventana del tercer
canal.
5. El procedimiento de la Reivindicación 1, en el que la información de configuración de placa incluye tamaño de placa e información del miembro de canal.
6. El procedimiento de la Reivindicación 1, en el que la salida comprende enviar una señal que indique si todos los diferentes canales tienen una configuración de ventana idéntica.
7. El procedimiento de la Reivindicación 6, en el que la salida comprende además, si los canales diferentes no tienen todos ellos una configuración de ventanas idéntica, enviar una o más máscaras de canal y enviar uno o más tamaños de placas.
8. Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que un ordenador programado de esta manera realice el procedimiento de la reivindicación 1.
9. Un procedimiento de descodificación de audio implementado por ordenador que comprende:
recibir datos de audio codificados en canales plurales en un marco;
recuperar la información de configuración de placas de una o más placas, indicando la información de configuración de placas como están agrupadas las ventanas plurales en la una o más placas, en el que cada una de la una o más placas agrupa una o más ventanas colocadas conjuntamente entre las ventanas plurales de los canales plurales en el marco, en el que para cada placa de la una o más placas, el grupo de una o más ventanas colocadas conjuntamente para la placa comparte una posición de inicio para la placa y comparte una posición de finalización para la placa, en el que al menos algunos de los canales plurales tienen diferentes configuraciones de ventana en el marco, y en el que al menos una placa de la una o más placas agrupa ventanas colocadas conjuntamente de al menos algunos canales que tienen configuraciones de ventanas diferentes en el marco, y
descodificar los datos de audio en base al menos en parte a la información de configuración de placas recuperada.
10. El procedimiento de la Reivindicación 9, en el que los canales plurales consisten en dos canales.
11. El procedimiento de la Reivindicación 9, en el que los canales plurales consisten en más de dos canales.
12. El procedimiento de la Reivindicación 9, en el que la información de configuración de placas incluye el tamaño de las placas e información de miembros de canal.
13. El procedimiento de la Reivindicación 9, en el que la recuperación comprende obtener una señal que indique si todos los canales plurales tienen una configuración de ventanas idéntica.
14. El procedimiento de la Reivindicación 13, en el que la recuperación comprende además, si los canales plurales no tienen todos ellos una configuración de ventanas idéntica, obtener una o más máscaras de canal y obtener uno o más tamaños de placas.
15. Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que un ordenador programado de esta manera realice el procedimiento de la reivindicación 9.
16. El procedimiento de la Reivindicación 1, que comprende además:
agrupar selectivamente los diferentes canales en grupos de canales plurales para transformaciones multicanal, en el que la agrupación selectiva está basada al menos en parte en las relaciones de miembros de canal de la una o más placas; y
realizar un una trasformación multicanal en los datos de audio para cada uno del uno o más grupos de canales plurales.
17. El procedimiento de la Reivindicación 16, que comprende además:
producir como salida información de grupos de canales de los grupos de canales plurales.
18. El procedimiento de la Reivindicación 9, que comprende además:
recuperar información para los grupos de canales plurales de los canales plurales para las transformaciones multicanal inversas, en el que los canales plurales son agrupados diferentemente en diferentes momentos en la secuencia de audio;
en el que la descodificación comprende ejecutar una trasformación multicanal inversa de los datos de audio para cada uno del uno o más grupos de canal plurales.
19. El procedimiento de cualquiera de las Reivindicaciones 1 - 18, en el que una primera placa de la una o más placas agrupa una ventana única de las ventanas plurales, no incluyendo las ventanas plurales ninguna otra ventana colocada conjuntamente con la ventana única.
20. El procedimiento de cualquiera de las Reivindicaciones 1 - 18, en el que una primera placa de la una o más placas agrupa dos o más ventanas de las ventanas plurales, no incluyendo las ventanas plurales ninguna otra ventana colocada conjuntamente con las dos o más ventanas.
21. El procedimiento de cualquiera de las Reivindicaciones 1 a 20, en el que las ventanas plurales tienen tamaños seleccionados entre tres o más tamaños diferentes.
ES03020110T 2002-09-04 2003-09-04 Codificacion y descodificacion audio multicanal. Expired - Lifetime ES2316678T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US40851702P 2002-09-04 2002-09-04
US408517P 2002-09-04
US642550P 2003-08-15
US10/642,550 US7502743B2 (en) 2002-09-04 2003-08-15 Multi-channel audio encoding and decoding with multi-channel transform selection

Publications (1)

Publication Number Publication Date
ES2316678T3 true ES2316678T3 (es) 2009-04-16

Family

ID=31997748

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03020110T Expired - Lifetime ES2316678T3 (es) 2002-09-04 2003-09-04 Codificacion y descodificacion audio multicanal.

Country Status (6)

Country Link
US (7) US7502743B2 (es)
EP (2) EP2028648B1 (es)
JP (2) JP4676139B2 (es)
AT (1) ATE418137T1 (es)
DE (1) DE60325314D1 (es)
ES (1) ES2316678T3 (es)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742927B2 (en) * 2000-04-18 2010-06-22 France Telecom Spectral enhancing method and device
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US20030187663A1 (en) 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
US8228849B2 (en) * 2002-07-15 2012-07-24 Broadcom Corporation Communication gateway supporting WLAN communications in multiple communication protocols and in multiple frequency bands
DK1400954T3 (da) 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
US7502743B2 (en) 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7813513B2 (en) * 2004-04-05 2010-10-12 Koninklijke Philips Electronics N.V. Multi-channel encoder
CN1954362B (zh) * 2004-05-19 2011-02-02 松下电器产业株式会社 音频信号编码装置及音频信号解码装置
EP1768107B1 (en) * 2004-07-02 2016-03-09 Panasonic Intellectual Property Corporation of America Audio signal decoding device
US8744862B2 (en) * 2006-08-18 2014-06-03 Digital Rise Technology Co., Ltd. Window selection based on transient detection and location to provide variable time resolution in processing frame-based data
EP1691348A1 (en) * 2005-02-14 2006-08-16 Ecole Polytechnique Federale De Lausanne Parametric joint-coding of audio sources
US7788106B2 (en) * 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US20060235683A1 (en) * 2005-04-13 2006-10-19 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Lossless encoding of information with guaranteed maximum bitrate
US7983922B2 (en) * 2005-04-15 2011-07-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for generating multi-channel synthesizer control signal and apparatus and method for multi-channel synthesizing
KR20080015878A (ko) * 2005-05-25 2008-02-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 복수 채널 신호의 예측 엔코딩
JP4988716B2 (ja) 2005-05-26 2012-08-01 エルジー エレクトロニクス インコーポレイティド オーディオ信号のデコーディング方法及び装置
WO2006126859A2 (en) * 2005-05-26 2006-11-30 Lg Electronics Inc. Method of encoding and decoding an audio signal
EP1905002B1 (en) * 2005-05-26 2013-05-22 LG Electronics Inc. Method and apparatus for decoding audio signal
EP1887567B1 (en) * 2005-05-31 2010-07-14 Panasonic Corporation Scalable encoding device, and scalable encoding method
EP1892702A4 (en) * 2005-06-17 2010-12-29 Panasonic Corp POST-FILTER, DECODER AND POST-FILTRATION METHOD
WO2007004833A2 (en) * 2005-06-30 2007-01-11 Lg Electronics Inc. Method and apparatus for encoding and decoding an audio signal
US8073702B2 (en) * 2005-06-30 2011-12-06 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
JP5227794B2 (ja) * 2005-06-30 2013-07-03 エルジー エレクトロニクス インコーポレイティド オーディオ信号をエンコーディング及びデコーディングするための装置とその方法
US8121836B2 (en) * 2005-07-11 2012-02-21 Lg Electronics Inc. Apparatus and method of processing an audio signal
US8626503B2 (en) * 2005-07-14 2014-01-07 Erik Gosuinus Petrus Schuijers Audio encoding and decoding
ES2374309T3 (es) * 2005-07-14 2012-02-15 Koninklijke Philips Electronics N.V. Decodificación de audio.
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
DE602006018618D1 (de) * 2005-07-22 2011-01-13 France Telecom Verfahren zum umschalten der raten- und bandbreitenskalierbaren audiodecodierungsrate
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
JP4568363B2 (ja) * 2005-08-30 2010-10-27 エルジー エレクトロニクス インコーポレイティド オーディオ信号デコーディング方法及びその装置
WO2007027051A1 (en) * 2005-08-30 2007-03-08 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
US7788107B2 (en) * 2005-08-30 2010-08-31 Lg Electronics Inc. Method for decoding an audio signal
US8577483B2 (en) * 2005-08-30 2013-11-05 Lg Electronics, Inc. Method for decoding an audio signal
CN101310252B (zh) * 2005-09-15 2013-09-11 数字层公司 用于传送媒体层的方法、***和装置
US7672379B2 (en) * 2005-10-05 2010-03-02 Lg Electronics Inc. Audio signal processing, encoding, and decoding
US8068569B2 (en) * 2005-10-05 2011-11-29 Lg Electronics, Inc. Method and apparatus for signal processing and encoding and decoding
WO2007040364A1 (en) * 2005-10-05 2007-04-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7696907B2 (en) * 2005-10-05 2010-04-13 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857111B1 (ko) * 2005-10-05 2008-09-08 엘지전자 주식회사 신호 처리 방법 및 이의 장치, 그리고 인코딩 및 디코딩방법 및 이의 장치
US7751485B2 (en) * 2005-10-05 2010-07-06 Lg Electronics Inc. Signal processing using pilot based coding
US7646319B2 (en) * 2005-10-05 2010-01-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7653533B2 (en) * 2005-10-24 2010-01-26 Lg Electronics Inc. Removing time delays in signal paths
KR101218776B1 (ko) 2006-01-11 2013-01-18 삼성전자주식회사 다운믹스된 신호로부터 멀티채널 신호 생성방법 및 그 기록매체
WO2007083952A1 (en) * 2006-01-19 2007-07-26 Lg Electronics Inc. Method and apparatus for processing a media signal
US7831434B2 (en) * 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
US8190425B2 (en) * 2006-01-20 2012-05-29 Microsoft Corporation Complex cross-correlation parameters for multi-channel audio
US7953604B2 (en) * 2006-01-20 2011-05-31 Microsoft Corporation Shape and scale parameters for extended-band frequency coding
EP1984913A4 (en) 2006-02-07 2011-01-12 Lg Electronics Inc DEVICE AND METHOD FOR CODING / DECODING A SIGNAL
US8260620B2 (en) * 2006-02-14 2012-09-04 France Telecom Device for perceptual weighting in audio encoding/decoding
US8032672B2 (en) 2006-04-14 2011-10-04 Apple Inc. Increased speed of processing of audio samples received over a serial communications link by use of channel map and steering table
US9100765B2 (en) * 2006-05-05 2015-08-04 Creative Technology Ltd Audio enhancement module for portable media player
US8571875B2 (en) 2006-10-18 2013-10-29 Samsung Electronics Co., Ltd. Method, medium, and apparatus encoding and/or decoding multichannel audio signals
EP2095365A4 (en) * 2006-11-24 2009-11-18 Lg Electronics Inc METHOD FOR ENCODING AND DECODING AUDIO SIGNALS BASED ON OBJECTS AND APPARATUS THEREOF
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US8612237B2 (en) * 2007-04-04 2013-12-17 Apple Inc. Method and apparatus for determining audio spatial quality
WO2008142874A1 (ja) * 2007-05-21 2008-11-27 Panasonic Corporation 音声符号化及び再生装置
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
AU2008202703B2 (en) * 2007-06-20 2012-03-08 Mcomms Design Pty Ltd Apparatus and method for providing multimedia content
US8046214B2 (en) * 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound
US20090006081A1 (en) * 2007-06-27 2009-01-01 Samsung Electronics Co., Ltd. Method, medium and apparatus for encoding and/or decoding signal
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
KR101464977B1 (ko) * 2007-10-01 2014-11-25 삼성전자주식회사 메모리 관리 방법, 및 멀티 채널 데이터의 복호화 방법 및장치
US8249883B2 (en) * 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
JP5404412B2 (ja) * 2007-11-01 2014-01-29 パナソニック株式会社 符号化装置、復号装置およびこれらの方法
US8457958B2 (en) * 2007-11-09 2013-06-04 Microsoft Corporation Audio transcoder using encoder-generated side information to transcode to target bit-rate
US8600532B2 (en) * 2007-12-09 2013-12-03 Lg Electronics Inc. Method and an apparatus for processing a signal
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8442836B2 (en) * 2008-01-31 2013-05-14 Agency For Science, Technology And Research Method and device of bitrate distribution/truncation for scalable audio coding
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
WO2010003479A1 (en) 2008-07-11 2010-01-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
CN101677399B (zh) * 2008-09-18 2014-07-09 香港科技大学 基于流密码的安全编码方案的多媒体内容编码方法和***
EP3040986B1 (en) * 2008-10-06 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for delivery of aligned multi-channel audio
CN103177725B (zh) * 2008-10-06 2017-01-18 爱立信电话股份有限公司 用于输送对齐的多通道音频的方法和设备
CN102292769B (zh) * 2009-02-13 2012-12-19 华为技术有限公司 一种立体声编码方法和装置
WO2010105695A1 (en) * 2009-03-20 2010-09-23 Nokia Corporation Multi channel audio coding
US9245529B2 (en) * 2009-06-18 2016-01-26 Texas Instruments Incorporated Adaptive encoding of a digital signal with one or more missing values
WO2011060816A1 (en) * 2009-11-18 2011-05-26 Nokia Corporation Data processing
AP3301A (en) 2009-12-07 2015-06-30 Dolby Lab Licensing Corp Decoding of multichannel audio encoded bit streamsusing adaptive hybrid transformation
EP2510709A4 (en) * 2009-12-10 2015-04-08 Reality Ip Pty Ltd IMPROVED MATRIX DECODER FOR SURROUND SOUND
JP5511848B2 (ja) * 2009-12-28 2014-06-04 パナソニック株式会社 音声符号化装置および音声符号化方法
EP2553928A4 (en) * 2010-03-26 2014-06-25 Agency Science Tech & Res METHODS AND DEVICES FOR OBTAINING AN ENCODED DIGITAL SIGNAL
KR101641685B1 (ko) 2010-03-29 2016-07-22 삼성전자주식회사 멀티채널 오디오의 다운믹스 방법 및 장치
US8855205B2 (en) 2010-05-26 2014-10-07 Newratek Inc. Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same
CN102332266B (zh) * 2010-07-13 2013-04-24 炬力集成电路设计有限公司 一种音频数据的编码方法及装置
KR101666465B1 (ko) * 2010-07-22 2016-10-17 삼성전자주식회사 다채널 오디오 신호 부호화/복호화 장치 및 방법
WO2012037515A1 (en) 2010-09-17 2012-03-22 Xiph. Org. Methods and systems for adaptive time-frequency resolution in digital data coding
TWI462087B (zh) * 2010-11-12 2014-11-21 Dolby Lab Licensing Corp 複數音頻信號之降混方法、編解碼方法及混合系統
US9167252B2 (en) * 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
US8620166B2 (en) * 2011-01-07 2013-12-31 Raytheon Bbn Technologies Corp. Holevo capacity achieving joint detection receiver
US8842842B2 (en) * 2011-02-01 2014-09-23 Apple Inc. Detection of audio channel configuration
TWI483245B (zh) * 2011-02-14 2015-05-01 Fraunhofer Ges Forschung 利用重疊變換之資訊信號表示技術
MY165853A (en) 2011-02-14 2018-05-18 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
EP2676270B1 (en) 2011-02-14 2017-02-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding a portion of an audio signal using a transient detection and a quality result
TR201903388T4 (tr) 2011-02-14 2019-04-22 Fraunhofer Ges Forschung Bir ses sinyalinin parçalarının darbe konumlarının şifrelenmesi ve çözülmesi.
EP2676268B1 (en) 2011-02-14 2014-12-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing a decoded audio signal in a spectral domain
WO2012122297A1 (en) 2011-03-07 2012-09-13 Xiph. Org. Methods and systems for avoiding partial collapse in multi-block audio coding
US8838442B2 (en) * 2011-03-07 2014-09-16 Xiph.org Foundation Method and system for two-step spreading for tonal artifact avoidance in audio coding
US9009036B2 (en) 2011-03-07 2015-04-14 Xiph.org Foundation Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding
RU2571561C2 (ru) 2011-04-05 2015-12-20 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования, способ декодирования, кодер, декодер, программа и носитель записи
TW201243643A (en) * 2011-04-22 2012-11-01 Inst Information Industry Hierarchical encryption/decryption device and method thereof
US8693697B2 (en) * 2011-06-06 2014-04-08 Reality Ip Pty Ltd Matrix encoder with improved channel separation
US9009122B2 (en) * 2011-12-08 2015-04-14 International Business Machines Corporation Optimized resizing for RCU-protected hash tables
US9043201B2 (en) * 2012-01-03 2015-05-26 Google Technology Holdings LLC Method and apparatus for processing audio frames to transition between different codecs
US8692696B2 (en) 2012-01-03 2014-04-08 International Business Machines Corporation Generating a code alphabet of symbols to generate codewords for words used with a program
EP2801194B1 (en) * 2012-01-09 2021-10-27 Huawei Technologies Co., Ltd. Quantization matrix (qm) coding based on weighted prediction
WO2013122387A1 (en) 2012-02-15 2013-08-22 Samsung Electronics Co., Ltd. Data transmitting apparatus, data receiving apparatus, data transceiving system, data transmitting method, and data receiving method
WO2013122385A1 (en) 2012-02-15 2013-08-22 Samsung Electronics Co., Ltd. Data transmitting apparatus, data receiving apparatus, data transreceiving system, data transmitting method, data receiving method and data transreceiving method
WO2013122386A1 (en) 2012-02-15 2013-08-22 Samsung Electronics Co., Ltd. Data transmitting apparatus, data receiving apparatus, data transreceiving system, data transmitting method, data receiving method and data transreceiving method
US9026451B1 (en) * 2012-05-09 2015-05-05 Google Inc. Pitch post-filter
CA2843226A1 (en) 2012-07-02 2014-01-09 Sony Corporation Decoding device, decoding method, encoding device, encoding method, and program
TWI517142B (zh) 2012-07-02 2016-01-11 Sony Corp Audio decoding apparatus and method, audio coding apparatus and method, and program
KR20150032651A (ko) 2012-07-02 2015-03-27 소니 주식회사 복호 장치 및 방법, 부호화 장치 및 방법, 및 프로그램
AU2013284703B2 (en) 2012-07-02 2019-01-17 Sony Corporation Decoding device and method, encoding device and method, and program
KR20230137492A (ko) * 2012-07-19 2023-10-04 돌비 인터네셔널 에이비 다채널 오디오 신호들의 렌더링을 향상시키기 위한 방법 및 디바이스
US9396732B2 (en) * 2012-10-18 2016-07-19 Google Inc. Hierarchical deccorelation of multichannel audio
RU2621003C2 (ru) 2013-01-29 2017-05-30 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Адаптивное к тональности квантование низкой сложности аудиосигналов
JP6179122B2 (ja) * 2013-02-20 2017-08-16 富士通株式会社 オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム
TWI546799B (zh) 2013-04-05 2016-08-21 杜比國際公司 音頻編碼器及解碼器
CN117012210A (zh) * 2013-05-24 2023-11-07 杜比国际公司 对音频场景进行解码的方法、装置及计算机可读介质
US9530422B2 (en) * 2013-06-27 2016-12-27 Dolby Laboratories Licensing Corporation Bitstream syntax for spatial voice coding
EP3017446B1 (en) * 2013-07-05 2021-08-25 Dolby International AB Enhanced soundfield coding using parametric component generation
EP2830064A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding and encoding an audio signal using adaptive spectral tile selection
RU2665281C2 (ru) * 2013-09-12 2018-08-28 Долби Интернэшнл Аб Временное согласование данных обработки на основе квадратурного зеркального фильтра
TWI713018B (zh) 2013-09-12 2020-12-11 瑞典商杜比國際公司 多聲道音訊系統中之解碼方法、解碼裝置、包含用於執行解碼方法的指令之非暫態電腦可讀取的媒體之電腦程式產品、包含解碼裝置的音訊系統
KR102315920B1 (ko) * 2013-09-16 2021-10-21 삼성전자주식회사 신호 부호화방법 및 장치와 신호 복호화방법 및 장치
JP6243540B2 (ja) 2013-09-16 2017-12-06 サムスン エレクトロニクス カンパニー リミテッド スペクトル符号化方法及びスペクトル復号化方法
KR101805630B1 (ko) 2013-09-27 2017-12-07 삼성전자주식회사 멀티 디코딩 처리 방법 및 이를 수행하기 위한 멀티 디코더
SG11201602628TA (en) 2013-10-21 2016-05-30 Dolby Int Ab Decorrelator structure for parametric reconstruction of audio signals
WO2015173422A1 (de) * 2014-05-15 2015-11-19 Stormingswiss Sàrl Verfahren und vorrichtung zur residualfreien erzeugung eines upmix aus einem downmix
US9959876B2 (en) 2014-05-16 2018-05-01 Qualcomm Incorporated Closed loop quantization of higher order ambisonic coefficients
EP4372746A2 (en) * 2014-10-10 2024-05-22 Dolby Laboratories Licensing Corporation Transmission-agnostic presentation-based program loudness
EP3067885A1 (en) * 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding or decoding a multi-channel signal
CN113035212A (zh) * 2015-05-20 2021-06-25 瑞典爱立信有限公司 多声道音频信号的编码
US10672408B2 (en) 2015-08-25 2020-06-02 Dolby Laboratories Licensing Corporation Audio decoder and decoding method
CA2987808C (en) 2016-01-22 2020-03-10 Guillaume Fuchs Apparatus and method for encoding or decoding an audio multi-channel signal using spectral-domain resampling
US10349085B2 (en) 2016-02-15 2019-07-09 Qualcomm Incorporated Efficient parameter storage for compact multi-pass transforms
US10448053B2 (en) * 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
US10390048B2 (en) 2016-02-15 2019-08-20 Qualcomm Incorporated Efficient transform coding using optimized compact multi-pass transforms
CN106209773A (zh) * 2016-06-24 2016-12-07 深圳羚羊极速科技有限公司 一种音频分组采样传输再重组的方法
WO2018044125A1 (ko) * 2016-09-01 2018-03-08 엘지전자(주) 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
CN107895580B (zh) * 2016-09-30 2021-06-01 华为技术有限公司 一种音频信号的重建方法和装置
KR102392804B1 (ko) * 2017-07-28 2022-04-29 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 인코딩된 다채널 신호를 광대역 필터에 의해 생성된 충전 신호를 사용하여 인코딩 또는 디코딩하는 장치
US10891960B2 (en) * 2017-09-11 2021-01-12 Qualcomm Incorproated Temporal offset estimation
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
WO2019091573A1 (en) * 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
CN110559012B (zh) * 2019-10-21 2022-09-09 江苏鹿得医疗电子股份有限公司 电子听诊器及其控制方法及医疗设备的控制方法
WO2022124620A1 (en) * 2020-12-08 2022-06-16 Samsung Electronics Co., Ltd. Method and system to render n-channel audio on m number of output speakers based on preserving audio-intensities of n-channel audio in real-time
KR20220125026A (ko) * 2021-03-04 2022-09-14 삼성전자주식회사 오디오 처리 방법 및 이를 포함하는 전자 장치
CN115691514A (zh) * 2021-07-29 2023-02-03 华为技术有限公司 一种多声道信号的编解码方法和装置

Family Cites Families (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US614996A (en) * 1898-11-29 sloan
US1769401A (en) 1928-04-23 1930-07-01 William W Tancre Fruit clipper
US3255052A (en) * 1963-12-09 1966-06-07 Magnetics Inc Flake magnetic core and method of making same
US4251688A (en) 1979-01-15 1981-02-17 Ana Maria Furner Audio-digital processing system for demultiplexing stereophonic/quadriphonic input audio signals into 4-to-72 output audio signals
DE3171990D1 (en) * 1981-04-30 1985-10-03 Ibm Speech coding methods and apparatus for carrying out the method
JPS5921039B2 (ja) 1981-11-04 1984-05-17 日本電信電話株式会社 適応予測符号化方式
CA1253255A (en) 1983-05-16 1989-04-25 Nec Corporation System for simultaneously coding and decoding a plurality of signals
GB8421498D0 (en) 1984-08-24 1984-09-26 British Telecomm Frequency domain speech coding
GB2205465B (en) * 1987-05-13 1991-09-04 Ricoh Kk Image transmission system
US4922537A (en) 1987-06-02 1990-05-01 Frederiksen & Shu Laboratories, Inc. Method and apparatus employing audio frequency offset extraction and floating-point conversion for digitally encoding and decoding high-fidelity audio signals
US4907276A (en) * 1988-04-05 1990-03-06 The Dsp Group (Israel) Ltd. Fast search method for vector quantizer communication and pattern recognition systems
NL8901032A (nl) 1988-11-10 1990-06-01 Philips Nv Coder om extra informatie op te nemen in een digitaal audiosignaal met een tevoren bepaald formaat, een decoder om deze extra informatie uit dit digitale signaal af te leiden, een inrichting voor het opnemen van een digitaal signaal op een registratiedrager, voorzien van de coder, en een registratiedrager verkregen met deze inrichting.
US5222189A (en) 1989-01-27 1993-06-22 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5479562A (en) 1989-01-27 1995-12-26 Dolby Laboratories Licensing Corporation Method and apparatus for encoding and decoding audio information
AU643677B2 (en) 1989-01-27 1993-11-25 Dolby Laboratories Licensing Corporation Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio
US5752225A (en) 1989-01-27 1998-05-12 Dolby Laboratories Licensing Corporation Method and apparatus for split-band encoding and split-band decoding of audio information using adaptive bit allocation to adjacent subbands
US5142656A (en) 1989-01-27 1992-08-25 Dolby Laboratories Licensing Corporation Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
DE59008047D1 (de) 1989-03-06 1995-02-02 Bosch Gmbh Robert Verfahren zur Datenreduktion bei digitalen Tonsignalen und zur genäherten Rückgewinnung der digitalen Tonsignale.
DE69029120T2 (de) 1989-04-25 1997-04-30 Toshiba Kawasaki Kk Stimmenkodierer
US5539829A (en) 1989-06-02 1996-07-23 U.S. Philips Corporation Subband coded digital transmission system using some composite signals
JP2844695B2 (ja) * 1989-07-19 1999-01-06 ソニー株式会社 信号符号化装置
US5115240A (en) 1989-09-26 1992-05-19 Sony Corporation Method and apparatus for encoding voice signals divided into a plurality of frequency bands
JP2921879B2 (ja) 1989-09-29 1999-07-19 株式会社東芝 画像データ処理装置
US5185800A (en) 1989-10-13 1993-02-09 Centre National D'etudes Des Telecommunications Bit allocation device for transformed digital audio broadcasting signals with adaptive quantization based on psychoauditive criterion
JP2560873B2 (ja) 1990-02-28 1996-12-04 日本ビクター株式会社 直交変換符号化復号化方法
JP2861238B2 (ja) 1990-04-20 1999-02-24 ソニー株式会社 ディジタル信号符号化方法
US5388181A (en) 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
JP3033156B2 (ja) 1990-08-24 2000-04-17 ソニー株式会社 ディジタル信号符号化装置
US5274740A (en) 1991-01-08 1993-12-28 Dolby Laboratories Licensing Corporation Decoder for variable number of channel presentation of multidimensional sound fields
US5559900A (en) 1991-03-12 1996-09-24 Lucent Technologies Inc. Compression of signals for perceptual quality by selecting frequency bands having relatively high energy
US5487086A (en) * 1991-09-13 1996-01-23 Comsat Corporation Transform vector quantization for adaptive predictive coding
JP3141450B2 (ja) 1991-09-30 2001-03-05 ソニー株式会社 オーディオ信号処理方法
US5369724A (en) 1992-01-17 1994-11-29 Massachusetts Institute Of Technology Method and apparatus for encoding, decoding and compression of audio-type data using reference coefficients located within a band of coefficients
EP0559348A3 (en) 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
US5285498A (en) 1992-03-02 1994-02-08 At&T Bell Laboratories Method and apparatus for coding audio signals based on perceptual model
JP2693893B2 (ja) * 1992-03-30 1997-12-24 松下電器産業株式会社 ステレオ音声符号化方法
JP3343965B2 (ja) 1992-10-31 2002-11-11 ソニー株式会社 音声符号化方法及び復号化方法
JP3343962B2 (ja) 1992-11-11 2002-11-11 ソニー株式会社 高能率符号化方法及び装置
US5455888A (en) 1992-12-04 1995-10-03 Northern Telecom Limited Speech bandwidth extension method and apparatus
SG43996A1 (en) 1993-06-22 1997-11-14 Thomson Brandt Gmbh Method for obtaining a multi-channel decoder matrix
US5632003A (en) 1993-07-16 1997-05-20 Dolby Laboratories Licensing Corporation Computationally efficient adaptive bit allocation for coding method and apparatus
TW272341B (es) 1993-07-16 1996-03-11 Sony Co Ltd
US5623577A (en) * 1993-07-16 1997-04-22 Dolby Laboratories Licensing Corporation Computationally efficient adaptive bit allocation for encoding method and apparatus with allowance for decoder spectral distortions
US7158654B2 (en) 1993-11-18 2007-01-02 Digimarc Corporation Image processor and image processing method
US5684920A (en) 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
DE4409368A1 (de) 1994-03-18 1995-09-21 Fraunhofer Ges Forschung Verfahren zum Codieren mehrerer Audiosignale
JP3277677B2 (ja) 1994-04-01 2002-04-22 ソニー株式会社 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置
US5635930A (en) * 1994-10-03 1997-06-03 Sony Corporation Information encoding method and apparatus, information decoding method and apparatus and recording medium
ATE214524T1 (de) 1994-11-04 2002-03-15 Koninkl Philips Electronics Nv Kodierung und dekodierung eines breitbandigen digitalen informationssignals
US5774846A (en) 1994-12-19 1998-06-30 Matsushita Electric Industrial Co., Ltd. Speech coding apparatus, linear prediction coefficient analyzing apparatus and noise reducing apparatus
US5629780A (en) 1994-12-19 1997-05-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Image data compression having minimum perceptual error
US5701389A (en) * 1995-01-31 1997-12-23 Lucent Technologies, Inc. Window switching based on interblock and intrablock frequency band energy
JP3307138B2 (ja) * 1995-02-27 2002-07-24 ソニー株式会社 信号符号化方法及び装置、並びに信号復号化方法及び装置
US6041295A (en) 1995-04-10 2000-03-21 Corporate Computer Systems Comparing CODEC input/output to adjust psycho-acoustic parameters
US6940840B2 (en) 1995-06-30 2005-09-06 Interdigital Technology Corporation Apparatus for adaptive reverse power control for spread-spectrum communications
US5774837A (en) 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
US5790759A (en) * 1995-09-19 1998-08-04 Lucent Technologies Inc. Perceptual noise masking measure based on synthesis filter frequency response
US5960390A (en) * 1995-10-05 1999-09-28 Sony Corporation Coding method for using multi channel audio signals
DE19549621B4 (de) 1995-10-06 2004-07-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Codieren von Audiosignalen
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
US6807534B1 (en) * 1995-10-13 2004-10-19 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
JPH09152896A (ja) 1995-11-30 1997-06-10 Oki Electric Ind Co Ltd 声道予測係数符号化・復号化回路、声道予測係数符号化回路、声道予測係数復号化回路、音声符号化装置及び音声復号化装置
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5686964A (en) 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
US5687191A (en) * 1995-12-06 1997-11-11 Solana Technology Development Corporation Post-compression hidden data transport
FR2742568B1 (fr) 1995-12-15 1998-02-13 Catherine Quinquis Procede d'analyse par prediction lineaire d'un signal audiofrequence, et procedes de codage et de decodage d'un signal audiofrequence en comportant application
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US5822370A (en) * 1996-04-16 1998-10-13 Aura Systems, Inc. Compression/decompression for preservation of high fidelity speech quality at low bandwidth
DE19628292B4 (de) 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19628293C1 (de) 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
US6697491B1 (en) 1996-07-19 2004-02-24 Harman International Industries, Incorporated 5-2-5 matrix encoder and decoder system
US5969750A (en) 1996-09-04 1999-10-19 Winbcnd Electronics Corporation Moving picture camera with universal serial bus interface
GB2318029B (en) 1996-10-01 2000-11-08 Nokia Mobile Phones Ltd Audio coding method and apparatus
US5745275A (en) 1996-10-15 1998-04-28 Lucent Technologies Inc. Multi-channel stabilization of a multi-channel transmitter through correlation feedback
SG54379A1 (en) * 1996-10-24 1998-11-16 Sgs Thomson Microelectronics A Audio decoder with an adaptive frequency domain downmixer
SG54383A1 (en) * 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
KR100488537B1 (ko) * 1996-11-20 2005-09-30 삼성전자주식회사 듀얼모드오디오디코더의재현방법및필터
JP3339335B2 (ja) 1996-12-12 2002-10-28 ヤマハ株式会社 圧縮符号化復号方式
JP3283200B2 (ja) 1996-12-19 2002-05-20 ケイディーディーアイ株式会社 符号化音声データの符号化レート変換方法および装置
FI970266A (fi) 1997-01-22 1998-07-23 Nokia Telecommunications Oy Menetelmä solukkoradiojärjestelmän ohjauskanavien kantaman pidentämiseksi ja solukkoradiojärjestelmä
DE69805583T2 (de) 1997-02-08 2003-01-23 Matsushita Electric Ind Co Ltd Quantisierungsmatrix für die codierung von stand- und bewegtbildern
JP3143406B2 (ja) 1997-02-19 2001-03-07 三洋電機株式会社 音声符号化方法
FI114248B (fi) 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
KR100265112B1 (ko) 1997-03-31 2000-10-02 윤종용 디브이디 디스크와 디브이디 디스크를 재생하는 장치 및 방법
US6064954A (en) 1997-04-03 2000-05-16 International Business Machines Corp. Digital audio signal coding
US6741965B1 (en) 1997-04-10 2004-05-25 Sony Corporation Differential stereo using two coding techniques
SE512719C2 (sv) 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
DE19730129C2 (de) 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
US5890125A (en) * 1997-07-16 1999-03-30 Dolby Laboratories Licensing Corporation Method and apparatus for encoding and decoding multiple audio channels at low bit rates using adaptive selection of encoding method
US6016111A (en) 1997-07-31 2000-01-18 Samsung Electronics Co., Ltd. Digital data coding/decoding method and apparatus
US6185253B1 (en) 1997-10-31 2001-02-06 Lucent Technology, Inc. Perceptual compression and robust bit-rate control system
US6959220B1 (en) 1997-11-07 2005-10-25 Microsoft Corporation Digital audio signal filtering mechanism and method
WO1999043110A1 (en) 1998-02-21 1999-08-26 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd A fast frequency transformation techique for transform audio coders
US6253185B1 (en) 1998-02-25 2001-06-26 Lucent Technologies Inc. Multiple description transform coding of audio using optimal transforms of arbitrary dimension
US6249614B1 (en) 1998-03-06 2001-06-19 Alaris, Inc. Video compression and decompression using dynamic quantization and/or encoding
US6353807B1 (en) * 1998-05-15 2002-03-05 Sony Corporation Information coding method and apparatus, code transform method and apparatus, code transform control method and apparatus, information recording method and apparatus, and program providing medium
JP3437445B2 (ja) 1998-05-22 2003-08-18 松下電器産業株式会社 線形信号予測を用いた受信装置及び方法
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
JP3998330B2 (ja) 1998-06-08 2007-10-24 沖電気工業株式会社 符号化装置
JP3541680B2 (ja) 1998-06-15 2004-07-14 日本電気株式会社 音声音楽信号の符号化装置および復号装置
JP2002520760A (ja) * 1998-07-03 2002-07-09 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション 固定及び可変転送速度データストリームのためのトランスコーダー
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
SE519552C2 (sv) 1998-09-30 2003-03-11 Ericsson Telefon Ab L M Flerkanalig signalkodning och -avkodning
CA2252170A1 (en) 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
JP2000155344A (ja) * 1998-11-20 2000-06-06 Murakami Corp エレクトロクロミック素子
SE9903553D0 (sv) 1999-01-27 1999-10-01 Lars Liljeryd Enhancing percepptual performance of SBR and related coding methods by adaptive noise addition (ANA) and noise substitution limiting (NSL)
US6611212B1 (en) 1999-04-07 2003-08-26 Dolby Laboratories Licensing Corp. Matrix improvements to lossless encoding and decoding
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
US6226616B1 (en) * 1999-06-21 2001-05-01 Digital Theater Systems, Inc. Sound quality of established low bit-rate audio coding systems without loss of decoder compatibility
US6658162B1 (en) 1999-06-26 2003-12-02 Sharp Laboratories Of America Image coding method using visual optimization
JP4005359B2 (ja) 1999-09-14 2007-11-07 富士通株式会社 音声符号化及び音声復号化装置
US6496798B1 (en) 1999-09-30 2002-12-17 Motorola, Inc. Method and apparatus for encoding and decoding frames of voice model parameters into a low bit rate digital voice message
US6418405B1 (en) 1999-09-30 2002-07-09 Motorola, Inc. Method and apparatus for dynamic segmentation of a low bit rate digital voice message
US6836761B1 (en) 1999-10-21 2004-12-28 Yamaha Corporation Voice converter for assimilation by frame synthesis with temporal alignment
WO2001033726A1 (en) 1999-10-30 2001-05-10 Stmicroelectronics Asia Pacific Pte Ltd. Channel coupling for an ac-3 encoder
US6738074B2 (en) 1999-12-29 2004-05-18 Texas Instruments Incorporated Image compression system and method
US6499010B1 (en) 2000-01-04 2002-12-24 Agere Systems Inc. Perceptual audio coder bit allocation scheme providing improved perceptual quality consistency
US6704711B2 (en) 2000-01-28 2004-03-09 Telefonaktiebolaget Lm Ericsson (Publ) System and method for modifying speech signals
AU2000250291A1 (en) 2000-02-10 2001-08-20 Telogy Networks, Inc. A generalized precoder for the upstream voiceband modem channel
JP2001285073A (ja) * 2000-03-29 2001-10-12 Sony Corp 信号処理装置及び方法
US6757654B1 (en) 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
EP1175030B1 (en) 2000-07-07 2008-02-20 Nokia Siemens Networks Oy Method and system for multichannel perceptual audio coding using the cascaded discrete cosine transform or modified discrete cosine transform
DE10041512B4 (de) 2000-08-24 2005-05-04 Infineon Technologies Ag Verfahren und Vorrichtung zur künstlichen Erweiterung der Bandbreite von Sprachsignalen
US6760698B2 (en) * 2000-09-15 2004-07-06 Mindspeed Technologies Inc. System for coding speech information using an adaptive codebook with enhanced variable resolution scheme
SE0004187D0 (sv) 2000-11-15 2000-11-15 Coding Technologies Sweden Ab Enhancing the performance of coding systems that use high frequency reconstruction methods
JP4857468B2 (ja) 2001-01-25 2012-01-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
US7062445B2 (en) 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
US20040062401A1 (en) * 2002-02-07 2004-04-01 Davis Mark Franklin Audio channel translation
US7254239B2 (en) * 2001-02-09 2007-08-07 Thx Ltd. Sound system and method of sound reproduction
MXPA03009357A (es) * 2001-04-13 2004-02-18 Dolby Lab Licensing Corp Escalamiento en el tiempo y escalamiento en el tono de alta calidad de senales de audio.
SE522553C2 (sv) 2001-04-23 2004-02-17 Ericsson Telefon Ab L M Bandbreddsutsträckning av akustiska signaler
US7136418B2 (en) 2001-05-03 2006-11-14 University Of Washington Scalable and perceptually ranked signal coding and decoding
US7583805B2 (en) 2004-02-12 2009-09-01 Agere Systems Inc. Late reverberation-based synthesis of auditory scenes
CA2447911C (en) * 2001-05-25 2011-07-05 Dolby Laboratories Licensing Corporation Comparing audio using characterizations based on auditory events
MXPA03010751A (es) * 2001-05-25 2005-03-07 Dolby Lab Licensing Corp Segmentacion de senales de audio en eventos auditivos.
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7146313B2 (en) 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7460993B2 (en) 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US20030215013A1 (en) * 2002-04-10 2003-11-20 Budnikov Dmitry N. Audio encoder with adaptive short window grouping
US7072726B2 (en) 2002-06-19 2006-07-04 Microsoft Corporation Converting M channels of digital audio data into N channels of digital audio data
EP1527442B1 (en) 2002-08-01 2006-04-05 Matsushita Electric Industrial Co., Ltd. Audio decoding apparatus and audio decoding method based on spectral band replication
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
US7299190B2 (en) 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
EP1543307B1 (en) 2002-09-19 2006-02-22 Matsushita Electric Industrial Co., Ltd. Audio decoding apparatus and method
KR20040060718A (ko) * 2002-12-28 2004-07-06 삼성전자주식회사 오디오 스트림 믹싱 방법, 그 장치 및 그 정보저장매체
KR101169596B1 (ko) 2003-04-17 2012-07-30 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 신호 합성
US7263483B2 (en) 2003-04-28 2007-08-28 Dictaphone Corporation USB dictation device
AU2003222397A1 (en) 2003-04-30 2004-11-23 Nokia Corporation Support of a multichannel audio extension
US7318035B2 (en) * 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
KR101106026B1 (ko) 2003-10-30 2012-01-17 돌비 인터네셔널 에이비 오디오 신호 인코딩 또는 디코딩
US7394903B2 (en) 2004-01-20 2008-07-01 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and method for constructing a multi-channel output signal or for generating a downmix signal
EP1914722B1 (en) 2004-03-01 2009-04-29 Dolby Laboratories Licensing Corporation Multichannel audio decoding
EP1735774B1 (en) 2004-04-05 2008-05-14 Koninklijke Philips Electronics N.V. Multi-channel encoder
FI119533B (fi) 2004-04-15 2008-12-15 Nokia Corp Audiosignaalien koodaus
EP1749296B1 (en) 2004-05-28 2010-07-14 Nokia Corporation Multichannel audio extension
KR100773539B1 (ko) 2004-07-14 2007-11-05 삼성전자주식회사 멀티채널 오디오 데이터 부호화/복호화 방법 및 장치
US7233174B2 (en) * 2004-07-19 2007-06-19 Texas Instruments Incorporated Dual polarity, high input voltage swing comparator using MOS input transistors
DE602004020765D1 (de) 2004-09-17 2009-06-04 Harman Becker Automotive Sys Bandbreitenerweiterung von bandbegrenzten Tonsignalen
US20060259303A1 (en) 2005-05-12 2006-11-16 Raimo Bakis Systems and methods for pitch smoothing for text-to-speech synthesis
EP1949693B1 (en) 2005-10-12 2012-04-18 Samsung Electronics Co., Ltd. Method and apparatus for processing/transmitting bit-stream, and method and apparatus for receiving/processing bit-stream
US20070168197A1 (en) 2006-01-18 2007-07-19 Nokia Corporation Audio coding
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
US8190425B2 (en) 2006-01-20 2012-05-29 Microsoft Corporation Complex cross-correlation parameters for multi-channel audio

Also Published As

Publication number Publication date
US8099292B2 (en) 2012-01-17
DE60325314D1 (de) 2009-01-29
US8620674B2 (en) 2013-12-31
EP2028648A3 (en) 2009-04-29
EP1403854B1 (en) 2008-12-17
US20120087504A1 (en) 2012-04-12
EP1403854A3 (en) 2006-05-10
US20130144630A1 (en) 2013-06-06
US20110054916A1 (en) 2011-03-03
JP5097242B2 (ja) 2012-12-12
US8255230B2 (en) 2012-08-28
US7860720B2 (en) 2010-12-28
EP2028648B1 (en) 2012-06-06
US20110060597A1 (en) 2011-03-10
US8386269B2 (en) 2013-02-26
EP1403854A2 (en) 2004-03-31
EP2028648A2 (en) 2009-02-25
US8069050B2 (en) 2011-11-29
US20120082316A1 (en) 2012-04-05
JP4676139B2 (ja) 2011-04-27
US7502743B2 (en) 2009-03-10
ATE418137T1 (de) 2009-01-15
US20040049379A1 (en) 2004-03-11
JP2010217900A (ja) 2010-09-30
JP2004264810A (ja) 2004-09-24
US20080221908A1 (en) 2008-09-11

Similar Documents

Publication Publication Date Title
ES2316678T3 (es) Codificacion y descodificacion audio multicanal.
ES2316679T3 (es) Cuantificacion y cuantificacion inversa para señales audio.
US7299190B2 (en) Quantization and inverse quantization for audio
ES2644730T3 (es) Postfiltro de código de audio
KR101143225B1 (ko) 오디오 인코더 및 오디오 디코더에서의 컴퓨터 구현 방법및 컴퓨터 판독 가능 매체
US8817992B2 (en) Multichannel audio coder and decoder
JP2009151183A (ja) マルチチャネル音声音響信号符号化装置および方法、並びにマルチチャネル音声音響信号復号装置および方法
MX2008009186A (es) Codificacion de canal de transformacion compleja con codificacion de frecuencia de banda extendida