ES2316679T3 - Cuantificacion y cuantificacion inversa para señales audio. - Google Patents
Cuantificacion y cuantificacion inversa para señales audio. Download PDFInfo
- Publication number
- ES2316679T3 ES2316679T3 ES03020111T ES03020111T ES2316679T3 ES 2316679 T3 ES2316679 T3 ES 2316679T3 ES 03020111 T ES03020111 T ES 03020111T ES 03020111 T ES03020111 T ES 03020111T ES 2316679 T3 ES2316679 T3 ES 2316679T3
- Authority
- ES
- Spain
- Prior art keywords
- channels
- encoder
- channel
- quantification
- 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
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
Abstract
Un procedimiento de codificación audio implementado por computadora que comprende: la recepción de los datos audio en una pluralidad de canales; la tabicación de cada canal de la pluralidad de canales en ventanas de tamaño variable, en el que la configuración de ventana de cada canal de los diversos canales es independiente de los otros canales de la pluralidad de canales; la agrupación de las ventanas en una pluralidad de mosaicos, en el que para cada una de la pluralidad de mosaicos las ventanas agrupadas en el mosaico tienen unas posiciones de partida idénticas y unas posiciones finales idénticas; y la cuantificación de los datos audio, que incluye para un mosaico de la pluralidad de mosaicos la aplicación de un factor de cuantificación específica de un canal para cada canal de la pluralidad de canales para las ventanas agrupadas en el mosaico y la aplicación de un factor de cuantificación general de mosaico para el mosaico.
Description
Cuantificación y cuantificación inversa para
señales audio.
La presente invención se refiere al
procesamiento de información de señales audio en la codificación y
descodificación. Específicamente, la presente invención se refiere
a la cuantificación y a la cuantificación inversa en la codificación
y descodificación de señales audio.
Con la introducción de discos compactos, redes
telefónicas e inalámbricas digitales, y la distribución audio por
Internet, el audio digital se ha convertido en algo habitual. Los
expertos utilizan diversas técnicas para procesar eficazmente la
señal audiodigital manteniendo al tiempo la calidad de la señal
audio digital. Para comprender estas técnicas, es útil comprender
cómo se representa y procesa la información audio en una
computadora.
Una computadora procesa una información audio
como una serie de números que representan la información audio. Por
ejemplo, un solo número puede representar una muestra audio, la cual
es un valor de amplitud (esto es, de intensidad sonora) en un
momento determinado. Diversos factores afectan a la calidad de la
información audio, incluyendo la profundidad de la muestra, la
velocidad de la muestra, y el modo de canal.
La profundidad de la muestra (o precisión)
indica el rango de números utilizado para representar una muestra.
Cuantos más valores posibles haya para la muestra, más alta será la
calidad porque el número puede captar variaciones de amplitud más
sutiles. Por ejemplo, una muestra de 8 bits tiene 256 valores
posibles, mientras que una muestra de 16 bits tiene 65.536 posibles
valores. Una muestra de 24 bits puede captar con gran precisión
variaciones de intensidad sonora normales, y puede también captar
una intensidad sonora insólitamente alta.
La velocidad de muestreo (generalmente medida
como el número de muestras por segundo) también afecta a la
calidad. Cuánto más alta sea la velocidad de muestreo, más alta será
la calidad porque pueden ser representadas más frecuencias de
sonido. Algunas velocidades de muestreo de velocidades son 8.000,
11.025, 22.050, 32.000, 44.100, 48.000 y 96.000
muestras/segundo.
Mono y estéreo son dos modos de canal habituales
para audio. En el modo mono, la información audio está presente en
un canal. En el modo estéreo, la información audio está presente en
dos canales generalmente designados como canales izquierdo y
derecho. También son posibles otros modos con más canales, como por
ejemplo un sonido envolvente de un canal 5.1, de un canal 7.1, o de
un canal 9.1 (el "1" indica un canal de efectos de
"sub-woofer" o de baja frecuencia). La tabla 1
muestra varios formatos de audio con diferentes niveles de calidad,
junto con los costes brutos de velocidad de transmisión de bits.
\vskip1.000000\baselineskip
La señal audio de sonido envolvente típicamente
tiene una velocidad de transmisión de bits bruta más alta. Como
muestra la Tabla 1, el coste de la información audio de alta calidad
es una velocidad de transmisión de bits alta. La información audio
de alta calidad consume grandes cantidades de capacidad de
transmisión y almacenaje informáticas. Sin embargo, las empresas y
los consumidores dependen cada vez más de las computadoras, para
crear, distribuir, y reproducir contenidos audio multicanal de alta
calidad.
Muchas computadoras y redes informáticas
carecen de los recursos para procesar señales audiodigitales en
bruto. La compresión (también llamada codificación) reduce el coste
de la información audio de almacenaje y transmisión mediante la
conversión de la información en una forma de velocidad de
transmisión de bits más baja. La compresión puede ser sin pérdidas
(en la cual la calidad no se resiente) o con pérdidas (en la cual
la calidad se resiente pero es más grave la reducción de la
velocidad de transmisión de bits derivada de la compresión sin
pérdidas subsecuente). La descompresión (también llamada
descodificación) extrae una versión reconstruida de la información
original a partir de la forma comprimida.
En general, el objetivo de la compresión audio
es representar digitalmente señales audio para proporcionar una
calidad máxima de las señales con la menor cantidad de bits posible.
Un sistema de codificador/descodificador audio convencional
["codec"] utiliza una codificación de subbanda/transformación,
cuantificación, control de velocidad, y una codificación de
longitud variable para conseguir su compresión. La cuantificación y
otras técnicas de compresión con pérdidas introducen un ruido
potencialmente audible dentro de una señal audio. La audibilidad
del ruido depende de la cantidad de ruido que existe y de la
cantidad de ruido que el oyente percibe. 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 genérico de un
codificador (100) audio perceptual basado en una transformación. La
figura 2 muestra un diagrama genérico de un descodificador audio
correspondiente (200) de acuerdo con la técnica anterior. Aunque el
sistema codec mostrado en las figuras 1 y 2 es genérico, presenta
características que se encuentran en diversos sistemas codec del
mundo real, incluyendo las versiones del codificador y
descodificador Audio Media Windows ["WMA"] de la empresa
Microsofot Corporation. Otros sistemas codec se proporcionan o
especifican con el estándar Audio Layer 3 ["MP3"] del Motion
Picture Experts Group, el estándar Advanced Audio Coding
["AAC"], del Motion Picture Experts Group 2, y el Dolby AC3.
Para más información acerca de los sistemas codec, véanse los
respectivos estándares o publicaciones técnicas.
En términos generales, el codificador (100)
recibe una serie temporal de muestras de entrada audio (105),
comprime las muestras audio (105), y multiplexa la información
producida por los diversos módulos del codificador (100) para
emitir de salida un flujo de bits (195). El codificador (100)
incluye un transformador de frecuencia (110), un transformador
multicanal (120), un modelador perceptual (130), un ponderador
(140), un cuantificador (150), un codificador de entropía (160), un
controlador (170), y un multiplexor de flujo de bits ["MUX"]
(180).
El transformador de frecuencia (110) recibe las
muestras audio (105) y las convierte en datos en el ámbito de la
frecuencia. Por ejemplo, el transformador de frecuencia (110) divide
las muestras audio (105) en bloques, bloques que tienen tamaño
variable para posibilitar una resolución temporal variable. Unos
bloques pequeños posibilitan una mayor preservación de detalle de
tiempo en segmentos de transición cortos pero activos en las
muestras audio de entrada (105), pero a expensas de una cierta
resolución de frecuencia. Por el contrario, unos bloques grandes
tienen una mejor resolución de frecuencia y una peor resolución de
tiempo, y generalmente posibilitan una mayor eficiencia de
compresión en segmentos más largos y menos activos. Los bloques
pueden superponerse para reducir las discontinuidades perceptibles
entre bloques que en otro caso serían introducidas mediante una
cuantificación posterior. Para señales audio multicanal, el
transformador de frecuencia (110) utiliza el mismo patrón de
ventanas para cada canal de una trama concreta. Este transformador
de frecuencia (110) emite de salida unos bloques de datos de
coeficientes de frecuencia hasta el transformador multicanal (120)
y emite de salida la información colateral, como por ejemplo los
tamaños de los bloques, hasta el MUX (180).
Para datos audio multicanal, a menudo se
correlacionan múltiples canales de datos de coeficientes de
frecuencia convertidos por el transformador de frecuencia (110).
Para explotar esta correlación, el transformador multicanal (120)
puede convertir los canales originales múltiples, independientemente
codificados, en canales conjuntamente codificados. Por ejemplo, si
la entrada es de modo estéreo, el transformador multicanal (120)
puede convertir los canales izquierdo y derecho en canales de suma y
diferencia:
(1),X_{Sum}
[k] = \frac{X_{izquierdo} [k] + X_{derecho}
[k]}{2}
(2).X_{Dif}
[k] = \frac{X_{izquierdo} [k] - X_{derecho}
[k]}{2}
O, el transformador multicanal (120) puede
atravesar los canales izquierdo y derecho como canales
independientemente codificados. La decisión de utilizar canales
codificados de manera independiente o conjunta se predetermina o
efectúa durante la codificación de acuerdo con las condiciones
específicas. Por ejemplo, el codificador (100) determina si para
codificar conjunta o independientemente canales estéreo con una
decisión de selección de bucle abierto que considera la a)
separación de energía entre los canales de codificación con o sin la
transformación multicanal y b) la disparidad en los patrones de
excitación entre los canales de entrada izquierdo y derecho. Dicha
decisión puede efectuarse sobre una base de ventana por ventana o
solo una vez por trama para simplificar la decisión. El
transformador multicanal (120) emite una información lateral hasta
el MUX (180) que indica el modo de canal utilizado.
El codificador (100) puede aplicar una
rematrización multicanal a un bloque de datos audio después de una
transformación multicanal. Para una velocidad de transmisión de bits
baja, datos multicanal en canales codificados conjuntamente, el
codificador (100) suprime de manera selectiva la información de
determinados canales (por ejemplo, el canal diferencial) para
mejorar la calidad del(de los) canal(es)
restante(s) (por ejemplo, el canal de suma). Por ejemplo, el
codificador (100) cambia de escala el canal diferencial mediante un
factor de escala \rho:
(3),\overline{X}_{Dif} [k] =
\rho \cdot X_{Diff}
[k]
donde el valor de \rho se basa
en: a) los niveles medios actuales de una medición de calidad de
audio perceptual como la Noise to Excitation Ratio ["NER"], b)
la plenitud actual de una memoria intermedia virtual, c) los
ajustes de la velocidad de transmisión de bits y de la velocidad de
muestreo del codificador (100), y d) la separación de canal en los
canales de entrada izquierdo y
derecho.
El modelador de percepción (130) procesa los
datos audio de acuerdo con un modelo del sistema auditivo humano
para mejorar la calidad percibida de la señal audio reconstruida
para una velocidad de transmisión de bits determinada. Por ejemplo,
un modelo auditivo típicamente considera los límites de la audición
humana y las bandas críticas. El sistema nervioso humano integra
unos subrangos de frecuencias. Por esta razón, un modelo auditivo
puede organizar y procesar información audio mediante 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 cierre diferentes para las bandas críticas. Las bandas Bark son
un ejemplo bien conocido de bandas críticas. Junto con las bandas
límite y críticas, las interacciones entre las señales audio pueden
afectar seriamente la percepción. Una señal audio claramente
perceptible, si se presenta sola puede ser completamente inaudible
en presencia de otra señal audio, llamada enmascaradora o señal de
enmascaramiento. El oído humano es relativamente insensible a la
distorsión o a otras pérdidas de la fidelidad, (esto es, el ruido),
de la señal enmascarada, de forma que la señal enmascarada puede
incluir más distorsiones sin degradar la calidad audio percibida.
Así mismo, un modelo auditivo puede considerar una pluralidad de
otros factores relacionados con aspectos físicos o neuronales de la
percepción humana del sonido.
El modelador de percepción (130) emite de salida
una información que el ponderador (140) utiliza para conformar el
ruido de los datos audio para reducir la audibilidad del ruido. Por
ejemplo, utilizando cualquiera de las múltiples técnicas
existentes, el ponderador (140) genera unos factores de ponderación
(a veces llamados factores de escala) para las matrices de
cuantificación (a veces llamadas máscaras) en base a la información
recibida. Los factores de ponderación de una matriz de
cuantificación incluyen una ponderación para cada una de las
múltiples bandas de cuantificación de los datos audio, donde las
bandas de cuantificación son gamas de frecuencia de coeficientes de
frecuencia. El número de bandas de cuantificación puede ser el mismo
que o menor al número de bandas críticas. Así, los factores de
ponderación indican las proporciones en las cuales el ruido se
difunde a través de las bandas de cuantificación con el objetivo de
reducir al mínimo la audibilidad del ruido mediante la introducción
de más ruido en las bandas donde es menos audible, y viceversa. Los
factores de ponderación pueden variar de bloque a bloque en
amplitudes y número de bandas de cuantificación. El ponderador (140)
aplica a continuación 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 audio multicanal, o comparte un solo conjunto de factores
de ponderación para ventanas paralelas de canales conjuntamente
codificados. El ponderador (140) emite de salida unos bloques
ponderados de coeficientes al cuantificador (150) y emite de salida
una información colateral, como por ejemplo los conjuntos de
factores de ponderación hasta el MUX (180).
Un conjunto de factores de ponderación puede ser
comprimido para una representación más eficiente utilizando una
compresión directa. En la técnica de compresión directa, el
codificador (100) cuantifica de manera uniforme cada elemento de
una matriz de cuantificación. El codificador a continuación codifica
de manera diferencial los elementos cuantificados con respecto a
los elementos diferentes de la matriz, y codifica con el Código de
Huffman los elementos codificados de manera diferencial. En algunos
casos (por ejemplo, cuando todos los coeficientes de las bandas de
cuantificación concretas han sido cuantificados o truncados hasta un
valor de 0), el descodificador (200) no requiere factores de
ponderación para todas las bandas de cuantificación. En dichos
casos, el codificador (100) proporciona unos valores a uno o más
factores de ponderación no requeridos que son idénticos al valor
del siguiente factor de ponderación requerido de una serie, lo que
hace más eficaz la codificación diferencial de los elementos de la
matriz de cuantificación.
O, para aplicaciones de velocidad de transmisión
de datos baja, 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 una Linear Predictive Coding ["LPC"] de parámetros
de pseudoautocorrelación computados a partir de la matriz de
cuantificación.
El cuantificador (150) cuantifica la salida del
ponderador (140), transmitiendo los datos de los coeficientes
cuantificados al codificador de entropía (160) y la información
colateral que incluye el tamaño de la etapa de cuantificación hasta
el MUX (180). La cuantificación cartografía los límites de los
valores de entrada en valores únicos, introduciendo la pérdida
irreversible de información, pero posibilitando también que el
codificador (100) regule la calidad y la velocidad de transmisión de
bits del flujo de bits de salida (195) en combinación con el
controlador (170). En la Figura 1, el cuantificador (150) es un
cuantificador escalar, uniforme, adaptativo. El cuantificador (150)
aplica el mismo tamaño de paso de cuantificación a cada coeficiente
de frecuencia, pero el tamaño de paso de cuantificación propiamente
dicho puede cambiar de una repetición de un bucle de cuantificación
al siguiente para afectar a la velocidad de transmisión de bits de
la salida del cuantificador de entropía (160). Otros tipos de
cuantificación son la cuantificación no uniforme, la cuantificación
de vectores y/o la cuantificación no adaptativa.
El codificador de entropía (160) comprime sin
pérdidas los datos de los coeficientes cuantificados recibidos del
cuantificador (150). El codificador de entropía (160) puede computar
el número de bits empleados en la información audio de
descodificación y pasar esta información al controlador (170) de la
velocidad/calidad.
El controlador (170) opera con el cuantificador
(150) para regular la velocidad de transmisión de bits y/o la
calidad de la salida del codificador (100). El controlador (170)
recibe la información procedente de otros módulos del codificador
(100) y la procesa la información recibida para determinar un tamaño
de etapa de cuantificación deseado dadas las condiciones actuales.
El controlador (170) emite de salida el tamaño de etapa de
cuantificación al cuantificador (150) con el objetivo de satisfacer
los condicionamientos de la velocidad de transmisión de bits y de la
calidad.
El codificador (100) puede aplicar una
sustitución de ruido y/o un truncamiento de banda a un bloque de
datos audio. A velocidades de transmisión de bits medias y bajas, el
codificador audio (100) puede utilizar la sustitución de ruido para
transmitir información en determinadas bandas. En el truncamiento de
bandas, si la calidad medida de un bloque indica una calidad
eficiente, el codificador (100) puede eliminar completamente los
coeficientes de determinadas bandas (de frecuencia generalmente más
alta) para mejorar la calidad global de las bandas restanes.
El MUX (180) multiplexa la información colateral
recibida de los otros módulos del codificador (100) audio junto con
los datos codificados por entropía recibidos del codificador de
entropía (160). El MUX (180) emite de salida la información en un
formato que reconoce el descodificador audio. El MUX (180) incluye
una memoria intermedia virtual que almacena el flujo de bits (195)
que van a ser emitidos de salida por el codificador (100) con el
fin de suavizar las fluctuaciones a corto plazo de la velocidad de
transmisión de bits debidas a la complejidad de los cambios del
audio.
En términos generales, el descodificador (200)
recibe un flujo de bits (205) de información audio comprimida que
incluye datos codificados por entropía así como información
colateral, a partir de la cual el descodificador (200) reconstruye
muestras audio (295). El descodificador audio (200) incluye un
desmultiplexador ["DEMUX"] (210) del flujo de bits, un
descoficador 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 la información del flujo
de bits (205) y envía la información a los módulos del descoficador
(200). El DEMUX (210) incluye una o más memorias intermedias para
compensar las variaciones a corto plazo de la velocidad de
transmisión de bits debidas a las fluctuaciones de la complejidad de
la señal audio, las fluctuaciones de la red, y/u otros factores.
El descodificador de entropía (220) descomprime
sin pérdidas los códigos de entropía recibidos del DEMUX (210),
produciendo unos datos de coeficientes de frecuencia cuantificados.
El descodificador de entropía (220) típicamente aplica la técnica
inversa 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 los datos de los
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 los coeficientes de frecuencia
cuantificados para reconstruir parcialmente los datos de los
coeficientes de frecuencia.
Del DEMUX (210), el generador de ruido (240)
recibe información indicativa de las bandas de un bloque de datos
que son sustituidas por ruido así como cualquier parámetro de la
forma del ruido. El generador de ruido (240) genera las pautas de
las bandas indicadas, y pasa la información al ponderador inverso
(250).
El ponderador inverso (250) recibe los factores
de ponderación del DEMUX (210), establece los patrones de cualquier
banda de ruido sustituido desde el generador de ruido (240), y los
datos de los coeficientes de frecuencia parcialmente reconstruidos
a partir del cuantificador inverso (230). En caso necesario, el
ponderador inverso (250) descomprime los factores de ponderación,
por ejemplo, la codificación de entropía, la codificación inversa
de forma diferencial, y lleva a cabo la 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 los
coeficientes de frecuencia parcialmente reconstruidos de las bandas
que no han sido reemplazadas en cuanto al ruido. El ponderador
inverso (250) a continuación suma los patrones de ruido recibidos
del generador (240) de ruidos de las bandas substituidas por ruido
sustituido.
El transformador inverso multicanal (260) recibe
los datos de frecuencia reconstruidos del ponderador inverso (250)
y la información del modo de canal desde el DEMUX (210). Si la señal
audio multicanal está en los canales independientemente
codificados, el transformador inverso multicanal (260) pasa a través
de los canales. Si los datos multicanal están en los canales
conjuntamente codificados, el transformador inverso multicanal (260)
convierte los datos en canales independientemente codificados.
El transformador de frecuencia inversa (270)
recibe los datos de los coeficientes de frecuencia emitidos de
salida por el transformador multicanal (260), así como información
colateral, como por ejemplo los tamaños de los bloques desde el
DEMUX (210). El transformador de frecuencia inversa (270) aplica la
inversa de la transformación de frecuencia utilizada en el
codificador y emite de salida los bloques de las muestras audio
reconstruidas (295).
Aunque los codificadores y descodificadores
preceptuales de acuerdo con lo anteriormente descrito tienen un
rendimiento global satisfactorio en muchas aplicaciones, presentan
diversos inconvenientes, especialmente respecto de la compresión y
descompresión de señales audio multicanal. Los inconvenientes
limitan en algunos casos la calidad de la señal audio multicanal
reconstruida, por ejemplo, cuando la velocidad de transmisión de
bits disponible es pequeña con respecto a los canales audio de
entrada.
En diversos aspectos, la tabicación por tramas
llevada a cabo por el codificador (100) de la Figura 1 es
inflexible.
Como se indicó anteriormente, el transformador
de frecuencia (110) divide una trama de muestras audio de entrada
(105) en una o más ventanas superpuestas para la transformación de
frecuencia, donde unas ventanas mayores proporcionan una mejor
resolución de frecuencia y la supresión de redundancias y ventanas
más pequeñas proporcionan una mejor resolución de tiempo. La mejor
resolución de tiempo ayuda al control de los artefactos preeco
audibles introducidos cuando la señal efectúa la transición desde
la energía baja a la energía alta, pero la utilización de ventanas
más pequeñas reduce la compresibilidad de forma que el codificador
debe ponderar estas consideraciones al considerar los tamaños de
ventana. Para el canal multiaudio, el transformador de frecuencia
(110) tabica los canales de una trama de forma idéntica (esto es,
configuraciones de ventana idéntica de los canales), lo que 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 audioestéreo ejemplar. La señal del canal 0 incluye una
actividad transitoria, mientras que la señal en el canal 1 es
relativamente fija. El codificador 100 detecta la transición en el
canal 0 y, para reducir el preeco, divide la trama en ventanas
moduladas superpuestas más pequeñas (301), como se muestra en la
Figura 3b. En aras de la sencillez, la Figura 3c muestra la
configuración de ventanas superpuestas (302) en cuadrículas, con
líneas de puntos que delimitan los límites de las tramas. Figuras
posteriores siguen también este sistema convencional.
Un inconveniente de forzar a todos los canales a
que tengan una configuración de ventana idéntica es que una señal
fija en uno o más canales (por ejemplo, el canal 1 en las Figuras 3a
- 3c) puede dividirse en ventanas más pequeñas, disminuyendo las
ventajas de la codificación. Como una alternativa, el codificador
(100) puede forzar a los canales a usar ventanas más grandes,
introduciendo el preeco en uno o más canales que tienen transeúntes.
Este problema se exacerba cuando tienen que codificarse más de dos
canales.
El AAC posibilita el agrupamiento de canales por
pares para las transformaciones multicanal. Entre los canales
izquierdo, derecho, central, izquierdo trasero, y derecho trasero,
por ejemplo, los canales derecho e izquierdo deben ser agrupados
para su codificación estéreo, y los canales izquierdo trasero y
derecho trasero, podrían ser agrupados para su codificación
estéreo. Grupos diferentes pueden tener configuraciones de ventana
diferentes, pero ambos canales de un grupo determinado tienen la
misma configuración de ventana si se utiliza una codificación
estéreo. Esto limita la flexibilidad de la tabicación de las
transformaciones multicanal en el sistema AAC, como lo hace el uso
de agrupamientos solo por pares.
El codificador (100) de la Figura 1 muestra una
determinada redundancia intercanal, pero es inflexible en diversos
aspectos en términos de transformaciones multicanal. El codificador
(100) posibilita dos tipos de transformaciones: a) una
transformación de identidad (que es equivalente a ninguna
transformación) o b) una codificación de diferencia de suma de
pares estéreo. Estas limitaciones constriñen la codificacion
multicanal de más de dos canales. Incluso en el AAC, que puede
trabajar con más de dos canales, una transformación multicanal se
limita a un solo par de canales cada vez.
Varios grupos han experimentado con
transformaciones multicanal para canales de sonido envolvente. Por
ejemplo, véase Yang et al., "Una Propuesta de Supresión de
Redundancias Intercanal para una Compresión Audio Multicanal de
Alta Calidad" ["An Inter-Channel Redundancy
Removal Approach For High-Quality Multichannel Audio
Compression"], Centésimo Novena Convención de la AES, Los
Angeles, Septiembre 2000 ["Yang"], y Wang et al., "Un
Algoritmo de Codificación Audio Multicanal para la Supresión de
Redundancias Multicanal" ["A Multichannel Audio Coding
Algorithm for Inter-Channel Redundancy Removal"],
Centésimo Décima Convención de la AES, Ámsterdam, Países Bajos,
Mayo 2001 ["Wang"]. El sistema Yang utiliza una Transformación
Karthunen-Loeve ["KLT"] a través de los
canales para descorrelacionar los canales para unos factores de
compresión satisfactorios. El sistema Wang utiliza una
Transformación discreta de coseno ["DCT"]. Ambos sistemas
proporcionan resultados satisfactorios, pero presentan todavía
diversas limitaciones.
En primer lugar, la utilización de una KLT en
muestras audio (ya sea a través del dominio temporal o del dominio
de frecuencia, como en el sistema Yang) no controla la distorsión
introducida en la reconstrucción. La KLT del sistema Yang no se
utiliza de modo satisfactorio para codificaciones audio preceptuales
de señal audio multicanal. El sistema Yang no controla la cantidad
de fugas procedentes de un canal codificado (por ejemplo,
fuertemente cuantificado) a través de múltiples canales
reconstruidos en la transformación inversa multicanal. Este
inconveniente es señalado en Kuo et al, "Un Estudio de Por
Qué la Predicción de Canal Transversal no es Aplicable a la
Percepción Audio Perceptual" ["A Study of Why Cross Channel
Prediction Is Not Applicable to Perceptual Audio Coding"], IEEE
Signal Proc. Letters, vol. 8, no. 9, Septiembre 2001. En otras
palabras, la cuantificación que es "inaudible" en un canal
codificado puede convertirse en audible cuando se difunde en
múltiples canales reconstruidos, dado que la ponderación inversa se
lleva a cabo antes de la transformación inversa multicanal. El
sistema Wang supera este problema colocando la transformación
multicanal después de la ponderación y cuantificación en el
codificador (y colocando la transformación inversa multicanal antes
de la cuantificación inversa y de la ponderación inversa en el
descodificador). El sistema Wang, sin embargo, tiene otros
defectos. La ejecución de la cuantificación antes de la
transformación multicanal significa que la transformación
multicanal debe ser de entero a entero, limitando el número de
transformaciones posibles y limitando la supresión de redundancias a
través de los canales.
En segundo lugar, el sistema Yang se limita a
las transformaciones KLT. Aunque las transformaciones KLT adaptan
los datos audio que están siendo comprimidos, la flexibilidad del
sistema Yang para utilizar diferentes tipos de transformaciones es
limitada. De modo similar, el sistema Wang utiliza una DCT de entero
a entero para transformaciones multicanal, los que no es tan
satisfactorio como en las DCTs convencionales en términos de
compresión de energía, y la flexibilidad del sistema Wang para usar
diferentes tipos de transformaciones es limitada.
En tercer lugar, en los sistemas Yang y Wang, no
hay ningún mecanismo para controlar cuáles son los canales que se
transforman conjuntamente, ni existe un mecanismo para agrupar
selectivamente diferentes canales en momentos diferentes para una
transformación multicanal. Dicho control contribuye a limitar las
fugas de contenidos a través de canales totalmente incompatibles.
Así mismo, canales que pueden ser compatibles en conjunto pueden ser
incompatibles durante algunos periodos.
En cuarto lugar, en el sistema Yang, el
transformador multicanal carece de control en cuanto a la aplicación
de la transformación multicanal en el nivel de bandas de
frecuencias. Incluso entre canales que son compatibles en conjunto,
los canales podrían no ser compatibles en algunas frecuencias, o en
algunas bandas de frecuencias. De modo similar, la transformación
multicanal del codificador (100) de la Figura 1 carece de control al
nivel de subcanal; no controla qué bandas de datos de coeficientes
de frecuencia son transformados en el multicanal, lo que ignora las
ineficiencias que pueden producirse cuando menos de la totalidad de
las bandas de frecuencia de los canales de entrada se
correlacionan.
correlacionan.
En quinto lugar, incluso cuando canales de
origen son compatibles hay a menudo necesidad de controlar el número
de canales transformados conjuntamente, para limitar el sobreflujo
de datos y reducir los accesos de memoria mientras se implementa al
tiempo la transformación. En particular, la KLT del sistema Yang es
computacionalmente compleja. Por otro lado, la reducción del tamaño
de la transformación reduce también potencialmente la ganancia de
codificación en comparación con transformaciones mayores.
En sexto lugar, el envío de información que
especifique las transformaciones multicanal puede ser costoso en
términos de velocidad de transmisión de bits. Esto es
particularmente cierto para la KLT del sistema Yang, en cuanto los
coeficientes de transformación para la matriz de covariancia
enviados son números reales.
En séptimo lugar para una señal audio multicanal
de una velocidad de transmisión de datos baja, la calidad de los
canales reconstruidos es muy limitada. A parte de los requisitos de
codificación de la velocidad de transmisión de datos baja, ello se
debe en parte a la incapacidad del sistema para recortar de modo
selectivo y con elegancia el número de canales para los cuales la
información está realmente codificada.
En el codificador (100) de la Figura 1, el
ponderador (140) conforma la distorsión a través de las bandas en
datos audio y el cuantificador (150) fija los tamaños de las etapas
de cuantificación para cambiar la amplitud de la distorsión de una
trama y, de esta forma, equilibrar la calidad con respecto a la
velocidad de transmisión de bits. Aunque el codificador (100)
consigue un equilibrio satisfactorio de la calidad y de la velocidad
de transmisión de bits en la mayoría de las aplicaciones, el
codificador (100) presenta todavía diversos inconvenientes.
En primer lugar, el codificador (100) carece de
control directo respecto de la calidad del nivel de los canales.
Los factores de ponderación conforman la distorsión global a través
de las bandas de cuantificación para un canal determinado. El
tamaño uniforme de paso de cuantificación escalar afecta a la
amplitud de la distorsión a través de todas las bandas y canales de
frecuencia para una trama. Lejos de imponer una calidad muy alta o
muy baja sobre todos los canales, el codificador (100) carece de
control directo sobre un ajuste de la calidad igual o al menos
comparable en la salida reconstruida de todos los canales.
En segundo lugar, cuando los factores de
ponderación son comprimidos con pérdidas, el codificador (100)
carece de control sobre la resolución de la cuantificación de los
factores de ponderación. Para una compresión directa de una matriz
de cuantificación, el codificador (100) cuantifica de manera
uniforme los elementos de la matriz de cuantificación, a
continuación utiliza la codificación diferencial y la codificación
de Huffman. La cuantificación uniforme de los elementos de máscara
no se adapta a los cambios de la complejidad de la velocidad de la
transmisión de bits o de la señal. Como resultado de ello, en
algunos casos la matriz de cuantificación son codificadas con más
resolución de la necesaria dada la baja calidad global de la señal
audio reconstruida, y en otros casos las matrices de cuantificación
son codificadas con menos resolución de la que debería utilizarse
dada la alta calidad de la señal audio
reconstruida.
reconstruida.
En tercer lugar, la compresión directa de las
matrices de cuantificación del codificador (100) no consigue
explotar las redundancias temporales de las matrices de
cuantificación. La compresión directa elimina la redundancia dentro
de una matriz de cuantificación concreta, pero ignora la redundancia
temporal en una serie de matrices de cuantificación.
Aparte de la codificación y descodificación
multicanal, el Dolby Pro-Logic y otros diversos
sistemas llevan a cabo una reconversión de la señal audio
multicanal para facilitar la compatibilidad con las configuraciones
de altavoz con diferentes números de altavoces. En la reconversión
Dolby Pro-Logic, por ejemplo, cuatro canales son
reconvertidos en dos canales, teniendo cada uno de los dos canales
alguna combinación de los datos audio de los cuatro canales
originales. Los dos canales pueden ser emitidos de salida sobre el
equipamiento de canal estéreo, o los cuatro canales pueden ser
reconstruidos a partir de los dos canales para su emisión de salida
para el equipo de los cuatro canales.
Aunque la reconversión de esta naturaleza
resuelve algunos problemas de compatibilidad, está limitada a
diversas configuraciones determinadas, por ejemplo, la reconversión
de cuatro a dos canales. Así mismo, las fórmulas de reconversión
están predeterminadas y no permiten cambios a lo largo del tiempo
para adaptarse a la señal.
El documento
EP-A-0 669 724 divulga un
procedimiento de codificación de gran eficacia que distribuye bits
variables entre canales a las muestras en las regiones de tiempo o
en las regiones de frecuencia de una pluralidad de canales. El
procedimiento de codificación de gran eficacia cuantifica la
cantidad de distribución de bits de los canales que distribuye la
cantidad de bits mayor que una cantidad de referencia
predeterminada (por ejemplo, 147 kbps) descomponiéndola en una
primera cantidad de distribución de bits que no excede de 147 kbps y
una segunda cantidad restante de distribución de bits (que excede de
147 kbps).
El documento
EP-A-0 597 649 divulga un
procedimiento y un aparato de codificación de gran eficacia que
incluye la ejecución de una cuantificación teniendo en cuenta la
correlación de las señales de entrada de varios canales en la
compresión y/o la expansión de señales de entrada de los respectivos
canales simultáneamente.
BOSI M. ET AL: "CODIFICACIÓN AUDIO
AVANZADA DEL ISO/IEC MPEG-2" REVISTA DE LA
SOCIEDAD DE INGENIERIA AUDIO, SOCIEDAD DE INGENIERIA AUDIO, NEW
YORK, NY, EE.UU. vo. 45, no. 10, Octubre 1997
(1997-10), páginas 789 a 812 ["ISO/IEC
MPEG-2 ADVANCED AUDIO CODING" JOURNAL OF THE
AUDIO ENGINEERING SOCIETY, AUDIO ENGINEERING SOCIETY, NEW YORK, NY,
US, vol. 45, no. 10, October 1997 (1997-10) pages
789-812], describen un sistema de codificación
audio avanzado MPEG-2 que combina la eficacia de la
codificación de un banco de filtros de gran resolución, de técnicas
de predicción, y de la codificación de Huffman con funcionalidades
adicionales destinadas a suministrar una gran calidad audio a una
pluralidad de velocidades de transmisión de datos.
El documento "Tecnología de información -
Codificación Genérica de Películas e Información audio asociada -
Parte 7: Codificación Audio Avanzada (AAC)" ISO/IEC
13818-7, 1 de Diciembre de 1997
(1997-12-01) ["Information
technology - Generic Coding of moving Pictures and associated audio
Information - Part 7: Advanced Audio Coding (AAC)" ISO/IEC
13818-7, 1 December 1997
(1997-12-01)] describe el estándar
MPEG-2 de codificación audio estándar avanzada.
Constituye el objetivo de la presente invención
posibilitar una codificación y descodificación audio mejoradas que
utilicen la cuantificación y la cuantificación inversa.
El objetivo se consigue mediante la materia
objeto de las reivindicaciones independientes.
Determinadas formas de realización preferentes
de la presente invención se definen mediante las reivindicaciones
dependientes.
En resumen, la descripción detallada tiene por
objeto determinadas estrategias de cuantificación y de
cuantificación inversa en la codificación y descodificación de
señales audio. Por ejemplo, un codificador audio utiliza una o más
técnicas de cuantificación (por ejemplo, la ponderación) para
mejorar la calidad y/o la velocidad de transmisión de bits de los
datos audio. Ello mejora la sensación de audición global y convierte
a los sistemas informáticos en una plataforma más convincente para
crear, distribuir y reproducir señales audio de gran calidad. Las
estrategias descritas en la presente memoria incluyen diversas
técnicas y herramientas, las cuales pueden utilizarse en combinación
o independientemente.
De acuerdo con un primer aspecto de las
estrategias descritas en la presente memoria, un codificador audio
cuantifica unos datos audio en múltiples canales, aplicando
múltiples factores de cuantificación específicos de un canal para
los múltiples canales. Por ejemplo, los factores de cuantificación
específicos de un canal son modificadores de paso de cuantificador,
los cuales proporcionan al codificador más control respecto del
equilibrio de la calidad de la reconstrucción entre canales.
De acuerdo con un segundo aspecto de las
estrategias descritas en la presente memoria, un cuantificador audio
cuantifica unos datos audio, aplicando múltiples matrices de
cuantificación. El codificador varía la resolución de las matrices
de cuantificación. Ello permite, por ejemplo, al codificador cambia
la resolución de los elementos de las matrices de cuantificación
para utilizar más resolución si la calidad global es buena y
utilizar menos resolución si la calidad global es deficiente.
De acuerdo con tercer aspecto de las estrategias
descritas en la presente memoria, un codificador audio comprime una
o más matrices de cuantificación utilizando una predicción temporal.
Por ejemplo, el codificador computa una predicción para una matriz
actual con respecto a otra matriz, a continuación computa un residuo
a partir de la matriz actual y de predicción. De esta forma, el
codificador reduce la velocidad de transmisión de bits asociada con
las matrices de cuantificación.
Para los aspectos descritos anteriormente en
términos de un codificador audio, un descodificador audio lleva a
cabo el procesamiento y la descodificación inversas
correspondientes.
Las diversas características y ventajas de la
invención se pondrán de manifiesto a partir de la descripción
detallada subsecuente de determinadas formas de realización que se
exponen con referencia a los dibujos que se acompañan.
La Figura 1 es un diagrama de bloques de un
codificador audio de acuerdo con la técnica anterior.
La Figura 2 es un diagrama de bloques de un
descodificador audio de acuerdo con la técnica anterior.
Las Figuras 3a-3c son gráficos
que muestran las configuraciones de ventana para una trama de datos
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 de canal/altavoz 5.1.
La Figura 5 es un diagrama de bloques de un
entorno informático apropiado en el cual pueden ser implementadas
las formas de realización descritas.
La Figura 6 es un diagrama de bloques de un
codificador audio en el cual pueden ser implementadas las formas de
realización descritas.
La Figura 7 es un diagrama de bloques de un
descodificador audio en el cual pueden ser implementadas las formas
de realización descritas.
La Figura 8 es un diagrama de flujo que muestra
una técnica generalizada de un preprocesamiento multicanal.
Las Figuras 9a-9e son gráficos
que muestran matrices ejemplares de un preprocesamiento
multicanal.
La Figura 10 es un diagrama de flujo que muestra
una técnica de un preprocesamiento multicanal en el cual la matriz
de transformación potencialmente cambia sobre una base de trama por
trama.
Las Figuras 11a y 11b son gráficos que muestran
configuraciones de mosaico ejemplares para señales audio
multicanal.
La Figura 12 es un diagrama de flujo que muestra
una técnica generalizada de configurar mosaicos de señales audio
multicanal.
\newpage
La Figura 13 es un diagrama de flujo que muestra
una técnica para configurar conjuntamente mosaicos y enviar
información de mosaicos para señales multicanal de acuerdo con una
sintaxis de flujo de bits concreta.
La Figura 14 es un diagrama de flujo que muestra
una técnica generalizada para llevara a cabo una función multicanal
después de una ponderación perceptual.
La Figura 15 es un diagrama de flujo que muestra
una técnica generalizada para llevar a cabo 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 de agrupación de canales en un mosaico para una
transformación multicanal en una implementaación.
La Figura 17 es un diagrama de flujo que muestra
una técnica para extraer información de un grupo de canales e
información de una transformación multicanal para un mosaico a
partir de un flujo de bits de acuerdo con una sintaxis de un flujo
de bits concreta.
La Figura 18 es un diagrama de flujo que muestra
una técnica para incluir de forma selectiva unas bandas de
frecuencia de un grupo de canales de una transformación multicanal
en una implementación.
La Figura 19 es un diagrama de flujo que muestra
una técnica para extraer información de conexión/desconexión de
bandas para una transformación multicanal para un grupo de canales
de un mosaico a partir de un flujo de bits de acuerdo con una
sintaxis de flujo de datos concreta
La Figura 20 es un diagrama de flujo que muestra
una técnica generalizada para emular una transformación multicanal
que utiliza una jerarquía de transformaciones multicanal más
sencillas.
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 extraer información para una jerarquía de
transformaciones multicanal para grupos de canales a partir de un
flujo de bits de acuerdo con una sintaxis de flujo de bits
concreta.
La Figura 23 es un diagrama de flujo que muestra
una técnica generalizada para la selección de un tipo de
transformación multicanal de entre varios tipos disponibles.
La Figura 24 es un diagrama de flujo que muestra
una técnica generalizada para extraer un tipo de información
multicanal de entre varios tipos disponibles y llevar a cabo una
transformación multicanal inversa.
La Figura 25 es un diagrama de flujo que muestra
una técnica para extraer una información de transformación
multicanal para un grupo de canales a partir de un flujo de bits de
acuerdo con una sintaxis de flujo de bits concreta.
La Figura 26 es un gráfico que muestra la forma
general de una matriz de rotación para rotaciones Givens para la
representación de una matriz multicanal.
Las Figuras 27a-27c son gráficos
que muestran matrices de rotación ejemplares para rotaciones Givens
para la representación de una matriz multicanal.
La Figura 28 es un diagrama de flujo que muestra
una técnica generalizada para la representación de 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 extraer información para una transformación
unitaria genérica para un grupo de canales a partir de un flujo de
bits de acuerdo con una sintaxis de flujo de bits concreta.
La Figura 30 es un diagrama de flujo que muestra
una técnica para extraer un factor global de cuantificación de
mosaico para un mosaico a partir de un flujo de bits de acuerdo con
una sintaxis de flujo de bits concreta.
La Figura 31 es un diagrama de flujo que muestra
una técnica generalizada para la computación de los modificadores de
paso de cuantificación por canal para datos audio multicanal.
La Figura 32 es un diagrama de flujo que muestra
una técnica para extraer los modificadores de canal de paso de
cuantificación por canal a partir de un flujo de bits de acuerdo con
una sintaxis de flujo de bits concreta.
La Figura 33 es un diagrama de flujo que muestra
una técnica generalizada para regular adaptadamente un tamaño de
paso de cuantificación para los elementos de las matrices de
cuantificación.
La Figura 34 es un diagrama de flujo que muestra
una técnica generalizada para extraer un tamaño de paso de
cuantificación adaptativa para unos elementos de las matrices de
cuantificación.
Las Figuras 35 y 36 son diagramas de flujo que
muestran técnicas para la compresión de las matrices de
cuantificación que utilizan una predicción temporal.
La Figura 37 es un gráfico que muestra un
cartografiado de bandas para la predicción de unos elementos de las
matrices de cuantificación.
La Figura 38 es un diagrama de flujo que muestra
una técnica para extraer y descodificar las matrices de
cuantificación comprimidas utilizando la predicción temporal de
acuerdo con una sintaxis de flujo de bits concreta.
La Figura 39 es un diagrama de flujo que muestra
una técnica generalizada de un postprocesamiento multicanal.
La Figura 40 es un gráfico que muestra una
matriz ejemplar de un postprocesamiento multicanal.
La Figura 41 es un diagrama de flujo que muestra
una técnica de postprocesamiento multicanal en la cual la matriz de
transformación cambia potencialmente sobre una base de trama por
trama.
La Figura 42 es un diagrama de flujo que muestra
una técnica para la identificación y extracción de una matriz de
transformación para un postprocesamiento multicanal de acuerdo con
una sintaxis de flujo de bits concreta.
Las formas de realización descritas de la
presente invención tienen por objeto determinadas técnicas y
herramientas de procesamiento de información audio en la
descodificación y codificación. En las formas de realización
descritas, un codificador audio utiliza diversas técnicas para
procesar señales audio durante la codificación. Un descodificador
audio utiliza diversas técnicas para procesar señales audio durante
la descodificación. Aunque las técnicas se describen en
determinados puntos de la memoria como parte de un único sistema
integrado, las técnicas pueden aplicarse por separado,
eventualmente en combinación con otras técnicas. En formas de
realización alternativas, una herramienta de procesamiento audio
distinta de un codificador o descodificador implementa una o más de
las técnicas.
En algunas formas de realización, un codificador
lleva a cabo un preprocesamiento multicanal. Para una codificación
con una velocidad de transmisión de bits baja, por ejemplo, un
codificador opcionalmente rematriza muestras de señal audio de
dominio temporal para incrementar artificialmente la correlación
intercanal. Esto hace más eficaz la compresión subsecuente de los
canales afectados mediante la reducción de la complejidad de la
codificación. El preprocesamiento reduce la separación de canales,
pero puede mejorar la calidad global.
En algunas formas de realización, un codificador
y un descodificador trabajan con una señal audio multicanal
configurada en mosaicos de ventanas. Por ejemplo, el codificador
tabica tramas de señales audio multicanal sobre una base de por
canal, de forma que cada canal puede tener una configuración de
ventanas independiente de los otros canales. El codificador a
continuación agrupa las ventanas de los canales tabicados en
mosaicos para las transformaciones multicanal. Ello permite que el
codificador aísle los transistorios que aparecen en un canal
concreto de una trama con ventanas pequeñas (reduciendo artefactos
preeco), pero utilizar grandes ventanas para la resolución de
frecuencia y para la reducción temporal de redundancias en otros
canales de la trama.
En algunas formas de realización, un codificador
lleva a cabo una o más técnicas de transformación multicanal
posibles. Un descodificador lleva a cabo las correspondientes
técnicas de transformación multicanal inversa. En las primeras
técnicas, el codificador lleva a cabo una transformación multicanal
después de la ponderación perceptual en el codificador, lo que
reduce las fugas de ruido de cuantificación audibles a través de los
canales tras la reconstrucción. En las segundas técnicas, un
codificador agrupa flexiblemente los canales para las
transformaciones multicanal para incluir de manera selectiva canales
en momentos diferentes. En unas terceras técnicas, un codificador
incluye o excluye flexiblemente unas bandas de frecuencia concretas
de las transformaciones multicanal, para incluir de forma selectiva
bandas compatibles. En unas cuartas técnicas, un codificador reduce
la velocidad de transmisión de bits asociada con las matrices de
transformación mediante la utilización de forma selectiva de unas
matrices predefinidas o la utilización de rotaciones Givens para
parametrizar matrices de transformación personalizadas. En unas
quintas técnicas, un codificador lleva a cabo unas transformaciones
multicanal jerárquicas flexibles.
En algunas formas de realización, un codificador
lleva a cabo una o más técnicas de cuantificación o ponderación
mejoradas. Un codificador correspondiente lleva a cabo las técnicas
correspondientes de cuantificación inversa o de ponderación
inversa. En las primeras técnicas, un codificador computa y aplica
unos modificadores de paso de cuantificación por canal, y
proporciona al codificador más control respecto al equilibrio de la
calidad de la reconstrucción entre canales. En las segundas
técnicas, un codificador utiliza un tamaño flexible de paso de
cuantificación para los elementos de las matrices de
cuantificación, lo que posibilita que el codificador cambie la
resolución de los elementos de las matrices de cuantificación. En
las terceras técnicas, un codificador utiliza una predicción
temporal en la compresión de matrices de cuantificación para reducir
la velocidad de transmisión de bits.
En algunas formas de realización, un
descodificador lleva a cabo un postprocesamiento multicanal. Por
ejemplo, el descodificador opcionalmente rematriza muestras audio
de dominio temporal para crear canales fantasma en la reproducción,
llevar a cabo efectos especiales, reconvertir canales a estéreo para
su reproducción sobre un menor número de altavoces, o para cualquier
otra finalidad.
En las formas de realización descritas, la señal
audio multicanal incluye seis canales de una configuración estándar
canal/speaker 5.1 como se muestra en la matriz (400) de la Figura 4.
Los "5" canales son el izquierdo, el derecho, el central, el
trasero izquierdo, y el trasero derecho, y están orientados
espacialmente de la manera habitual para el sonido envolvente. El
canal "1" es el canal de efectos de
sub-woofer o de baja frecuencia. En aras de
la claridad, el orden de los canales mostrado en la matriz (400) se
usa también para las matrices y ecuaciones del resto de la memoria
descriptiva. Formas de realización alternativas utilizan señales
audio multicanal con un número de ordenación diferente (por ejemplo,
7.1, 9.1, 2), y/o una configuración de canales.
En las formas de realización descritas, el
codificador y el descodificador audio ejecutan diversas técnicas.
Aunque las operaciones de estas técnicas se describen en un orden
concreto, secuencial, con fines de presentación, debe entenderse
que esta forma de descripción abarca redisposiciones menores en el
orden de las operaciones, a menos que se requiera una ordenación
particular. Por ejemplo, las operaciones descritas secuencialmente
pueden en algunos casos redisponerse o llevarse a cabo
conjuntamente. Así mismo, por razones de sencillez, los diagramas
de flujo típicamente no muestran las diversas formas en las cuales
pueden utilizarse las diversas técnicas en combinación con otras
técnicas.
La Figura 5 ilustra un ejemplo generalizado de
un entorno informático apropiado (500) en el cual las formas de
realización descritas pueden ser implementadas. El entorno
informático (500) no pretende sugerir limitación alguna en cuanto
al alcance del uso o funcionalidad de la invención, en cuanto la
presente invención puede ser implementada en 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 procesamiento (510)
y una memoria (520). En la Figura 5 la configuración más básica
(530) está incluida dentro de una línea de puntos. La unidad de
procesamiento (510) ejecuta unas instrucciones ejecutables por
computadora y puede ser un procesador real o virtual. En un sistema
multiprocesamiento, múltiples unidades de procesamiento ejecutan
las instrucciones ejecutables de la computadora para incrementar la
potencia de procesamiento. La memoria (520) puede ser una memoria
volátil (por ejemplo registros, caché, RAM), una memoria no volátil
(por ejemplo ROM, EEPROM, memoria flash, etc.), o alguna
combinación de las dos. La memoria (520) almacena un software (580)
que implementa técnicas de procesamiento audio de acuerdo con una o
más de las formas de realización descritas.
Un entorno informático puede tener otras
características. Por ejemplo, el entorno informático (500) incluye
un almacenamiento (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) como
por ejemplo un bus, un controlador, o una red interconecta los
componentes del entorno informático (500). Típicamente, el software
del sistema operativo (no mostrado) proporciona un entorno operativo
para otro software ejecutivo del entorno informático (500), y
coordina las actividades de los componentes del entorno informático
(500).
El almacenamiento (540) puede ser extraíble o no
extraíble, e incluye discos magnéticos, cintas magnéticas o
casetes, CD-ROMs, CD-RWs, DVDs, o
cualquier otro medio que pueda ser utilizado para almacenar la
información y al que puede tenerse acceso dentro del sistema
informático (500). El almacenamiento (540) almacena instrucciones
destinadas al software (580) que implementan técnicas de
procesamiento audio de acuerdo con una o más de las formas de
realización descritas.
El(los) dispositivo(s) de entrada
(550) puede(n) ser un dispositivo de entrada táctil, como por
ejemplo un teclado, un ratón, un lápiz, una bola, un dispositivo de
entrada de voz, un dispositivo de escaneo, una adaptador de red, u
otro dispositivo que proporcione una entrada al entorno informático
(500). Para la señal audio, el(los) dispositivo(s) de
entrada (550) puede(n) ser una tarjeta de sonido o
dispositivo similar que acepte una entrada audio de forma analógica
o digital, un lector de CD-ROM/DVD que proporcione
muestras audio al entorno informático. El(los)
dispositivo(s) de salida (560) puede(n) ser una
pantalla, una impresora, un altavoz, un escritor CD/DVD, un
adaptador de red, u otro dispositivo que proporcione una salida
desde el entorno informático (500).
La(s) conexión(es) de comunicación
(570) permite(n) la comunicación a través de un medio de
comunicación con otra entidad informática. El medio de comunicación
transmite información, como por ejemplo instrucciones ejecutables
por computadora, información 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 dispuestas o modificadas
de tal manera que se codifique una información de la señal. A modo
de ejemplo, y no de limitación, los medios de comunicación incluyen
técnicas por cable o sin cable implementadas con una portadora
eléctrica, óptica, de RF, de infrarrojos, acústica, u otra
portadora.
La invención puede ser descrita en el contexto
general de unos medios legibles por computadora. Los medios
legibles por computadora son cualquier medio disponible al que se
pueda acceder dentro de un entorno informático. A modo de ejemplo,
y no de limitación, con el entorno informático (500), los medios
legibles por computadora incluyen una memoria (520), un
almacenamiento (540), unos medios de comunicación y combinaciones de
cualquiera de los anteriores.
La invención puede describirse en el contexto
general de unas instrucciones ejecutables por computadora, como por
ejemplo las incluidas en módulos de programas, que se ejecutan en un
entorno informático sobre un procesador elegido como objetivo real
o virtual. Por regla general, los módulos de programas incluyen
rutinas, programas, bibliotecas, objetos, clases, componentes,
estructuras de datos, etc. que llevan a cabo tareas concretas o
implementan tipos de datos abstractos concretos. La funcionalidad de
los módulos de programas puede ser combinada o dividida entre
módulos de programas de acuerdo con lo deseado en las distintas
formas de realización. Las instrucciones ejecutables por
computadora destinadas a los módulos de programas pueden ser
ejecutadas dentro de un entorno informático local o distribuido.
Por razones de presentación, la descripción
detallada utiliza términos como "determinar", "generar",
"ajustar", y "aplicar" para describir operaciones
informáticas de un entorno informático. Estos términos son
abstracciones de alto nivel para operaciones llevadas a cabo por
una computadora, y no deben confundirse con actos llevados a cabo
por un ser humano. Las operaciones informáticas reales
correspondientes a estos términos varían dependiendo de la
implementación.
La Figura 6 es un diagrama de bloques de un
codificador audio generalizado (600) en el cual pueden ser
implementadas las formas de realización descritas. La Figura 7 es
un diagrama de bloques de un descodificador audio generalizado (700)
en el cual pueden ser implementadas las formas de realización
descritas.
Las relaciones mostradas entre módulos
existentes dentro del codificador y el descodificador indican flujos
de información dentro del codificador y el descodificador; no se
muestran otras relaciones por razones de sencillez. Dependiendo de
la implementación y del tipo de compresión deseada, pueden añadirse,
suprimirse, o dividirse en múltiples módulos determinados módulos
del codificador o descodificador, combinarse con otros módulos, y/o
sustituirse por otros módulos. En formas de realización
alternativas, los codificadores o descodificadores con diferentes
módulos y/u otras configuraciones procesan los datos audio.
El codificador audio generalizado (600) incluye
un seleccionador (608), un preprocesador multicanal (610), un
configurador (620) de tabicador/mosaico, un transformador de
frecuencia (630), un modelador de percepciones (640), un ponderador
de bandas de cuantificación (642), un ponderador de canales (644),
un transformador multicanal (650), un cuantificador (660), un
codificador de entropía (670), un controlador (680), un codificador
sin pérdidas mixto/puro (672) y un codificador de entropía asociado
(674), y un multiplexor de flujo de bits ["MUX"] (690).
El codificador (600) recibe una serie temporal
de muestras audio de entrada (605) a una cierta profundidad y
velocidad de muestreo en un formato modulado por impulsos
codificados ["PCM"]. Para la mayoría de las formas de
realización descritas, las muestras audio de entrada 605 son para
señales audio multicanal (p. ej. estéreo, envolvente), pero las
muestras audio de entrada (605) pueden por el contrario ser mono. El
codificador (600) comprime las muestras audio (605), y multiplexa
la información producida por los diversos módulos del codificador
(600) para emitir de salida un flujo de bits (695) en un formato que
puede ser un formato Windows Media Audio ["WMA"] o un Advanced
Streaming Format ["ASF"]. Como una alternativa, el codificador
(600) trabaja con otros formatos de entrada y/o salida.
El seleccionador (608) selecciona entre
múltiples modos de codificación para las muestras audio (605). En
la Figura 6, el seleccionador (608) pasa de un modo de codificación
sin pérdidas mixto/puro a un modo de codificación con pérdidas. El
modo de codificación sin pérdidas incluye el codificador sin
pérdidas mixto/puro (672) y se utiliza típicamente para una
compresión de alta calidad (y una velocidad de transmisión de bits
alta). El modo de codificación con pérdidas incluye componentes
tales como el ponderador (642) y el cuantificador (660) y se
utiliza típicamente para una compresión de la calidad ajustable (y
una velocidad de transmisión de bits controlada). La decisión de
selección en el seleccionador (608) depende de la entrada de
usuario o de otros criterios. En determinadas circunstancias (por
ejemplo, cuando la compresión con pérdidas no consigue suministrar
una cantidad suficiente o produce un exceso de bits), el codificador
(600) puede pasar de una codificación con pérdidas a una
codificación sin pérdidas mixta/pura para una trama o conjunto de
tramas.
Para una codificación con pérdidas de datos
audio multicanal, el preprocesador multicanal (610) opcionalmente
rematriza las muestras audio (605) de dominio temporal. En algunas
formas de realización, el preprocesador multicanal (610)
selectivamente rematriza las muestras audio (605) para abandonar uno
o más canales codificados o incrementar la correlación intercanal
del codificador (600), pero permitiendo la reconstrucción (de alguna
forma) del codificador (700). Esto proporciona al codificador un
control adicional respecto de la calidad en el nivel de los
canales. El preprocesador multicanal (610) puede enviar una
información colateral, como por ejemplo instrucciones para el
postprocesamiento multicanal hasta el MUX (690). Para mayor detalle
acerca del funcionamiento del preprocesador multicanal en algunas
formas de realización, véase la sección titulada
"Preprocesamiento Multicanal". Como una alternativa, el
codificador (600) lleva a cabo otra forma de preprocesamiento
multicanal.
El configurador de tabicador/mosaico (620)
tabica una trama de muestras de entrada audio (605) en bloques de
subtramas (esto es, ventanas) con funciones de tamaño de tiempo
variables y conformación de ventanas. Los tamaños y las ventanas de
los bloques de subtramas dependen de la detección de las señales
transitorias de la trama, del modo de codificación, así como de
otros factores.
Si el codificador (600) pasa de la codificación
con pérdidas a la codificación sin pérdidas mixta/pura, los bloques
subtramas no necesitan en teoría solaparse o incorporar una función
de gestión de ventanas (esto es, no superposición, bloques de
ventanas rectangulares), pero las transiciones entre las tramas
codificadas con pérdidas y las otras tramas pueden requerir
especial tratamiento. El configurador de particionadores/mosaicos
(620) emite de salida unos bloques de los datos particionados hasta
el codificador sin pérdidas mixto/puro (672) y emite de salida una
información colateral como por ejemplo los tamaños de los bloques
hasta el MUX (690). Para mayor detalle acerca de la tabicación y de
la gestión de ventanas para las tramas codificadas sin pérdidas
mixtas o puras, véase la solicitud relacionada con el título
"Compresión Audio Unificada con Pérdidas y sin Pérdidas"
["Unified Lossy and Lossles Audio Compression"].
Cuando el codificador (600) utiliza la
codificación con pérdidas, las ventanas de tamaño variable
posibilitan una resolución temporal variable. Los pequeños bloques
posibilitan una mayor preservación del detalle del tiempo en
segmentos de transición cortos pero activos. Los grandes bloques
tienen una resolución de frecuencia mejor y una resolución de
tiempo peor, y generalmente permiten una eficacia de compresión
mayor en segmentos más largos y menos activos, en parte porque la
cabecera de la trama y la información colateral es proporcionalmente
menor que en los bloques pequeños, y en parte porque posibilita una
mejor supresión de las redundancias. Los bloques pueden
superponerse para reducir las discontinuidades perceptuales entre
los bloques que, en otro caso, podrían ser introducidas mediante
una cuantificación posterior. El configurador de tabicadores/mosaico
(620) emite de salida determinados bloques de datos particionados
hasta el transformador de frecuencias (630) y emite de salida
información colateral como por ejemplo los tamaños de los bloques
hasta el MUX (690). Para más información acerca de los criterios de
detección y tabicación transitorios en algunas formas de
realización, véase la Solicitud de Patente estadounidense con el
número de serie 10/016,918 titulada "Selección Adaptativa del
Tamaño de las Ventanas en la Codificación de Transformación "
["Adaptative Window-Size Selection in Transform
Coding"], depositada el 14 de Diciembre de 2001. Como una
alternativa, el configurador de tabicador/mosaico (620) utiliza
otros criterios de tabicación o de tamaños de bloques al tabicar una
trama en ventanas.
En algunas formas de realización, el
configurador de tabicadores/mosaico (620) tabica tramas de señales
audio multicanal sobre una base de por canal. El configurador de
tabicador/mosaico (620) tabica independientemente cada canal de
trama, si lo permite la calidad/velocidad de transmisión de bits.
Ello permite, por ejemplo, que el configurador de tabicador/mosaico
(620) aísle transitorios que aparecen en un canal concreto con
ventanas más pequeñas, pero utilicen ventanas más grandes para una
resolución de frecuencia o una eficacia de la compresión en otros
canales. Ello puede mejorar la eficacia de la compresión mediante el
aislamiento de los transitorios sobre una base de por canal, pero
en muchos casos se necesita una información adicional que
especifique las tabicaciones de los canales individuales. Las
ventanas del mismo tamaño que están cosituadas en el tiempo pueden
estar calificadas para una ulterior reducción de las redundancias a
través de la transformación multicanal. Así, el configurador de
tabicadores/mosaico (620) agrupa ventanas del mismo tamaño que están
cosituadas en el tiempo como un mosaico. Para mayor detalle acerca
de la disposición en mosaico en algunas formas de realización, veáse
la sección titulada "Configuración en Mosaico".
El transformador de frecuencia (630) recibe las
muestras audio y las convierte en datos en el dominio de frecuencia.
El transformador de frecuencia (630) emite de salida unos bloques
de datos de coeficientes de frecuencia hasta el ponderador (642) y
emite de salida información colateral, como por ejemplo los tamaños
de los bloques hasta el MUX (690). El transformador de frecuencias
(630) emite de salida tanto los coeficientes de frecuencia como la
información colateral hasta el modelador perceptual (640). En
algunas formas de realización, el transformador de frecuencia (630)
aplica una Transformación Lineal Ortogonal Modulada ["MLT"] de
tiempo variable hasta los bloques de subtramas la cual opera como
una DCT modulado por la(s) función(es) de ventanas
sinusoidales de los bloques de subtramas. Formas de realización
alternativas utilizan otras variantes de la MLT, o una DCT u otro
tipo de transformación de frecuen-
cia modulada o no modulada, superpuesta o no superpuesta, o utilizan una codificación de subbanda o de wavelet.
cia modulada o no modulada, superpuesta o no superpuesta, o utilizan una codificación de subbanda o de wavelet.
El modelador (640) de la percepción modela las
propiedades del sistema auditivo humano para mejorar la calidad
percibida de la señal audio reconstruida para una velocidad de
transmisión de bits determinada. En términos generales, el
modelador (640) de la percepción procesa los datos audio de acuerdo
con un modelo auditivo, a continuación suministra la información al
ponderador (642) el cual puede ser utilizado para generar factores
de ponderación para los datos audio. El modelador (640) de la
percepción utiliza cualquiera de los modelos auditivos y pasa la
información de la pauta de excitación u otra información al
ponderador (642).
El ponderador (642) de las bandas de
cuantificación genera unos factores de ponderación para las matrices
de cuantificación en base a la información recibida del modelador
(640) de la percepción y aplica los factores de ponderación a los
datos recibidos del transformador de frecuencia (630). Los factores
de ponderación de una matriz de cuantificación incluyen un peso
para cada una de las múltiples bandas de cuantificación de los
datos audio. Las bandas de cuantificación pueden ser las mismas o
diferentes en número o posición respecto de las bandas críticas
utilizadas en cualquier parte del codificador (600), y los factores
de ponderación pueden variar en amplitudes y número de bandas de
cuantificación de bloque a bloque. El ponderador (642) de las
bandas de cuantificación emite de salida unos bloques ponderados de
datos de coeficientes hasta el ponderador de canales (644) y emite
de salida determinada información colateral, como por ejemplo 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 eficaz. Si los factores de ponderación son comprimidos con
pérdidas, los factores de ponderación reconstruidos son típicamente
utilizados para ponderar los bloques de datos de los coeficientes.
Para mayor detalle acerca de la computación y compresión de los
factores de ponderación en algunas formas de realización, véase la
sección titulada "Cuantificación y Ponderación". Como una
alternativa, el codificador (600) omite la ponderación.
El ponderador de canales (644) genera unos
factores de peso específicos de un canal (que son escalares) para
canales basados en la información recibida del modelador (640) de la
percepción y también en la calidad de la señal localmente
reconstruida. Los pesos escalares (también llamados modificadores de
paso de cuantificación) posibilitan que el codificador (600)
ofrezca a los canales reconstruidos una calidad aproximadamente
uniforme. Los factores de peso de los canales pueden variar en
amplitudes de canal a canal y de bloque a bloque, o en algún otro
nivel. El ponderador de canales (644) emite de salida los bloques
ponderados de datos de los coeficientes al transformador multicanal
(650) y emite de salida determinada información colateral, como por
ejemplo el conjunto de los factores de peso de los canales hasta el
MUX (690). El ponderador de canales (644) y el ponderador (642) de
las bandas de cuantificación del diagrama de flujo pueden ser
intercambiados o combinados entre sí. Para mayor detalle acerca de
la computación y la compresión de los factores de ponderación en
algunas formas de realización, véase la sección titulada
"Cuantificación y Ponderación". Como una alternativa, el
codificador (600) omite la ponderación.
Para datos audio multicanal, los múltiples
canales de datos de los coeficientes de frecuencia de ruido
conformado producidos por el ponderador (644) de los canales a
menudo se correlacionan, de forma que el transformador multicanal
(650) puede aplicar una transformación multicanal. Por ejemplo. el
transformador multicanal (650) aplica de forma selectiva y flexible
la transformación multicanal a algunos pero no a todos los canales
y/o las bandas de cuantificación del mosaico. Ello proporciona al
transformador multicanal (650) un control más preciso respecto de
la aplicación de la transformación sobre partes relativamente
correlacionadas del mosaico. Para reducir la complejidad
computacional, el transformador multicanal (650) puede utilizar una
transformación jerárquica mejor que una transformación de un nivel.
Para reducir la velocidad de transmisión de bits asociada con la
matriz de transformación, el transformador multicanal (650) utiliza
selectivamente matrices predefinidas (por ejemplo, de identidad/no
transformación, Hadamard, DCT Tipo II) o matrices personalizadas, y
aplica una compresión eficiente a las matrices personalizadas.
Finalmente, dado que la transformación multicanal se encuentra
corriente abajo del ponderador (642), la perceptibilidad del ruido
(por ejemplo, debida a la cuantificación subsecuente) que se filtra
entre canales después de la transformación multicanal inversa del
descodificador (700) es controlada mediante ponderación inversa.
Para más detalle acerca de las transformaciones multicanal en
algunas formas de realización, véase la sección titulada
"Transformaciones Multicanal Flexibles". Como una alternativa,
el codificador (600) utiliza otras formas de transformaciones
multicanal o ninguna transformación. El transformador multicanal
(650) envía una información colateral al MUX (690) indicativa de,
por ejemplo, las transformaciones multicanal utilizadas y las
partes multicanal transformadas de mosaicos.
El cuantificador (660) cuantifica la salida del
transformador multicanal (650), enviando los datos de los
coeficientes cuantificados al codificador de entropía (670) y la
información colateral que incluye los tamaños de paso de
cuantificación hasta el MUX (690). En la Figura 6, el cuantificador
(660) es un cuantificador escalar uniforme adaptativa que computa
un factor de cuantificación por mosaico. El factor de cuantificación
de mosaicos puede cambiar de una iteración de un bucle de
cuantificación a la siguiente para afectar a la velocidad de
transmisión de bits de la salida del codificador de entropía (660),
y los modificadores de paso de cuantificación por canal pueden ser
utilizados para calibrar la calidad de la reconstrucción entre
canales. Para más detalle acerca de la cuantificación en algunas
formas de realización véase la sección titulada "Cuantificación y
Ponderación". En formas de realización alternativas, el
cuantificador es un cuantificador no uniforme, un cuantificador de
vectores, y/o un cuantificador no adaptativo, o utiliza una forma
diferente de cuantificación escalar, uniforme, adaptativa. En otras
formas de realización alternativas, el cuantificador (660), el
ponderador (642) de las bandas de cuantificación, el ponderador
(644) de los canales y el transformador multicanal (650) están
fundidos y el módulo fundido determina los diversos pesos de una
sola vez.
El codificador de entropía (670) comprime sin
pérdidas los datos de los coeficientes cuantificados recibidos del
cuantificador (660). En algunas formas de realización, el
codificador de entropía (670) utiliza una codificación de entropía
adaptativa tal como la descrita en la solicitud relacionada con el
título, "Codificación de Entropía mediante Codificación
Adaptativa entre Modos de Nivel y Longitud de Recorrido/Nivel"
["Entropy Coding by Adaptating Coding Between Level and Run
Length/Level Modes"]. Como una alternativa, el codificador de
entropía 670 utiliza alguna otra forma o combinación de
codificación de longitud de recorrido de nivel, de codificación de
longitud variable a variable, de codificación de longitud de
recorrido, de codificación de Huffman, de codificación de
diccionario, codificación aritmética, de codificación LZ, o alguna
otra técnica de codificación de entropía. El codificador de
entropía (670) puede computar el número de bits gastados codificando
la información audio y pasar esta información al controlador de la
velocidad/calidad (680).
El controlador (680) trabaja con el
cuantificador (660) para regular la velocidad de transmisión de bits
y/o la calidad de la salida del codificador (600). El controlador
(680) recibe la 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 actuales condiciones. El
controlador (670) emite de salida los factores de cuantificación
hasta el cuantificador (660) con el objetivo de satisfacer los
condicionamientos de calidad y/o de velocidad de transmisión de
datos.
El codificador sin pérdidas mixto/puro (672) y
el codificador de entropía asociado (674) comprimen los datos audio
para el modo de codificación sin pérdidas mixto/puro. El codificador
(600) utiliza el modo de codificación sin pérdidas mixto/puro para
una entera secuencia o cambia de modo de codificación sobre una base
de trama por trama, bloque por bloque, mosaico por mosaico u otra.
Para mayor detalle acerca del modo de codificación sin pérdidas
mixto/puro véase la solicitud relacionada con el título
"Compresión Audio Unificada con Pérdidas y sin Pérdidas"
["Unified Lossy and Lossless Audio Compression"]. Como una
alternativa, el codificador (600) utiliza otras técnicas para la
codificación sin pérdidas mixta y/o pura.
El MUX (690) multiplexa la información colateral
recibida de los otros módulos del codificador audio (600) junto con
los datos codificados por entropía recibidos de los codificadores de
entropía (670), (674). El MUX (690) emite de salida la información
en un formato WMA u otro formato que reconoce un descodificador
audio. El MUX (690) incluye una memoria intermedia virtual que
almacena el flujo de bits (695) que va a ser emitido de salida por
el codificador (600). La memoria intermedia virtual a continuación
emite de salida los datos a una velocidad de transmisión de bits
relativamente constante, aunque la calidad puede cambiar debido a
los cambios de la complejidad de la entrada. La plenitud actual u
otras características de la memoria intermedia, pueden ser
utilizadas por el controlador (680) para regular la calidad y/o la
velocidad de transmisión de bits. Como una alternativa, la
velocidad de transmisión de bits de salida puede variar con el
tiempo, y la calidad se mantiene relativamente constante. O, la
velocidad de transmisión de bits de salida se restringe únicamente
para que sea menor de una velocidad de transmisión de bits
determinada, la cual es o bien constante o bien varía con el
tiempo.
Con referencia a la Figura 7, el descodificador
audio generalizado (700) incluye un desmultiplexor ["DEMUX"] de
flujo de bits (710), uno o más codificadores de entropía (720), un
descodificador sin pérdidas mixto/puro (722), un descodificador de
configuración de mosaicos (730), un transformador multicanal inverso
(740), un cuantificador/ponderador inverso (750), un transformador
de frecuencia inverso (760), un solapador/sumador (770), y un
postprocesador multicanal (780). El descodificador (700) es algo más
sencillo que el codificador (700) porque el descodificador (700) no
incluye módulos para el control de la velocidad/calidad o para la
modelación de la percepción.
El descodificador (700) recibe un flujo de bits
(705) de información audio comprimida en un formato WMA u otro
formato. El flujo de bits (705) incluye datos codificados por
entropía así como información colateral a partir de la cual el
descodificador (700) reconstruye unas muestras audio (795).
El DEMUX (710) analiza la información del flujo
de bits (705) y envía la información a los módulos del
descodificador (700). El DEMUX (710) incluye una o más memorias
intermedias para compensar las variaciones a corto plazo de la
velocidad de transmisión de bits debidas a las fluctuaciones en la
complejidad del audio, la fluctuación de red, y/u otros
factores.
Los uno o más codificadores de entropía (720)
descomprimen sin pérdidas los 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). Por razones de sencillez, en la Figura 7 se
muestra solo un módulo de descodificador de entropía, aunque pueden
ser utilizados diferentes descodificadores de entropía para módulos
de codificación con pérdidas o sin pérdidas, o incluso dentro de los
modos. Así mismo, por razones de sencillez, la Figura 7 no muestra
una lógica de la selección de los modos. Al descodificar los datos
de descodificación comprimidos en el modo de configuración con
pérdidas, el descodificador de entropía (720) produce unos datos de
coeficiente de frecuencia cuantificados.
El descodificador sin pérdidas mixto/puro (722)
y el(los) descodificador(es) de entropía
asociado(s) (720) descomprime(n) los datos audio
codificados sin pérdidas destinados al modo de codificación sin
pérdidas mixto/puro. Para más detalle acerca de la descompresión
del modo de descodificación sin pérdidas mixto/puro, véase la
solicitud relacionada con el título "Compresión Audio Codificada
con Pérdidas y sin Pérdidas" ["Unified Lossy and Lossless
Audio Compression"]. Como una alternativa, el descodificador 700
utiliza otras técnicas de descodificación sin pérdidas mixtas y/o
puras.
El descodificador de configuración de mosaicos
(730) recibe y, en caso necesario, descodifica la información
indicativa de los patrones de los mosaicos para las tramas
procedentes del DEMUX (790). La información de la pauta de los
mosaicos puede ser codificada por entropía o parametrizada de
cualquier otra forma. El descodificador de configuración de
mosaicos (730) a continuación pasa la información de la pauta de los
mosaicos a otros diversos módulos del descodificador (700). Para
mayor detalle acerca de la configuración de mosaicos en algunas
formas de realización, véase la sección titulada "Configuración de
Mosaicos": Como una alternativa, el descodificador (700) utiliza
otras técnicas para parametrizar patrones de ventanas en tramas.
El transformador multicanal inverso (740) recibe
los datos de los coeficientes de frecuencias cuantificados del
descodificador de entropía (720) así como la información de la pauta
de mosaicos procedente del descodificador de configuración de
mosaicos (730) y la información colateral procedente del DEMUX (710)
indicativa, por ejemplo, de la transformación multicanal utilizada
y de las partes transformadas de los mosaicos. Utilizando esta
información, en transformador multicanal inverso (740) descomprime
la matriz de transformación la medida necesaria, y aplica de forma
selectiva y flexible una o más transformaciones multicanal inversas
a los datos audio. El emplazamiento del transformador multicanal
inverso (740) con respecto al cuantificador/ponderador inverso (750)
contribuye a transformar el ruido de cuantificación que puede
filtrarse a través de los canales. Para mayor detalle acerca de las
transformaciones multicanal inversas en algunas formas de
realización, véase la sección titulada "Transformaciones
Multicanal Flexibles".
El cuantificador/ponderador inverso (750) recibe
los factores de cuantificación de mosaicos y canales así como las
matrices de cuantificación del DEMUX (710) y recibe los datos de
los coeficientes de frecuencia cuantificados del transformador
multicanal inverso (740). El cuantificador/ponderador inverso (750)
lleva a cabo la cuantificación y ponderación inversas. Para mayor
detalle acerca de la cuantificación y ponderación inversas en
algunas formas de realización, véase la sección titulada
"Cuantificación y Ponderación".
El transformador de frecuencia inversa (760)
recibe los datos de los coeficientes de frecuencia emitidos de
salida por el cuantificador/ponderador inverso (750) así como la
información colateral procedente del DEMUX (710) y la información
de la pauta de los mosaicos procedentes del descodificador de
configuración de mosaicos (730). El transformador de frecuencia
inversa (770) aplica la inversa de la transformación de frecuencia
utilizada en el codificador y emite de salida unos bloques hasta el
solapador/sumador (770).
Además de recibir la información de la pauta de
los mosaicos procedente del descodificador de configuración de
mosaicos (730), el solapador/sumador (770) recibe la información
descodificada del transformador de frecuencia inversa (760) y/o el
descodificador sin pérdidas mixto/puro (722). El solapador/sumador
(770) solapa y suma los datos audio de la forma necesaria e
intercala las tramas u otras secuencias de datos audio codificadas
con los diferentes modos. Para mayor detalle acerca del
solapamiento, suma, e intercalación de tramas codificadas sin
pérdidas mixtas o puras, véase la solicitud relacionada con el
título "Compresión Audio Unificada con Pérdidas y sin
Pérdidas". Como una alternativa, el descodificador (700) utiliza
otras técnicas de solapamiento, suma, y tramas de intercalación.
El postprocesador multicanal (780) opcionalmente
rematriza las muestras audio de dominio temporal emitidas de salida
por el solapador/sumador (770). El postprocesador multicanal
rematriza selectivamente los datos audio para crear unos canales
fantasma de reproducción, llevar a cabo efectos especiales, como por
ejemplo la rotación espacial de canales entre altavoces,
reconvertir canales para su reproducción en un menor número de
altavoces, o para cualquier otra finalidad. Para un
postprocesamiento controlado del flujo de bits, las matrices de
transformación de postprocesamiento varían con el tiempo o se
señalan o se incluyen en el flujo de bits (705). Para mayor detalle
acerca del funcionamiento del postprocesador multicanal en algunas
formas de realización véase la sección titulada
"Postprocesamiento Multicanal". Como una alternativa, el
descodificador (700) lleva a cabo otra forma de procesamiento
multicanal.
En algunas formas de realización, un
codificador, como por ejemplo el codificador (600) de la Figura 6,
lleva a cabo un preprocesamiento multicanal sobre muestras audio de
entrada en el dominio temporal.
En general, cuando hay unos canales audio de
origen N como entrada, el número de canales codificados
producidos por el codificador es también N. Los canales
codificados pueden corresponderse de uno en uno con los canales
origen, o los canales codificados pueden ser canales de
transformación codificada multicanal. Cuando la complejidad de la
codificación del origen hace difícil la compresión o cuando la
memoria intermedia del codificador está llena, sin embargo, el
codificador puede alterar o soltar (esto es, no codificar) uno o más
de los canales audio de entrada originales. Esto puede llevarse a
cabo para reducir la complejidad de la codificación y mejorar la
calidad global percibida de la señal audio. Para un preprocesamiento
junto motivado por la calidad, el codificador lleva a cabo el
preprocesamiento multicanal en reacción a la calidad audio medida
para controlar suavemente la calidad audio global y la separación de
canales.
Por ejemplo, el codificador puede alterar la
imagen audio multicanal para hacer que uno o más canales sean menos
críticos de forma que los canales sean eliminados en el codificador
ya reconstruidos en el descodificador como canales "fantasma".
La supresión directa de canales puede tener un efecto dramático
sobre la calidad, de forma que se lleva únicamente a cabo cuando la
complejidad de la codificación es muy alta o la memoria intermedia
está tan llena que no puede conseguirse por otros medios una buena
calidad de reproducción.
El codificador puede indicar al descodificador
que acción adoptar cuando el número de canales codificados es
inferior al número de canales para emitir de salida. A continuación,
puede utilizarse una transformación de posprocesamiento multicanal
en el descodificador para crear canales fantasma, de acuerdo con lo
descrito más adelante en la sección titulada "Postprocesamiento
Multicanal". O, el codificador puede señalar al descodificador
que lleve a cabo el postprocesamiento multicanal para otra
finalidad.
La Figura 8 muestra otra técnica generalizada
(800) de preprocesamiento multicanal. El codificador lleva a cabo
(810) el preprocesamiento multicanal sobre los datos audio
multicanal (805) de dominio temporal, produciendo unos datos audio
transformados (815) en el dominio temporal. Por ejemplo, el
preprocesamiento implica una transformación general N a
N, donde N es el número de canales. El codificador
multiplica unas muestras N con una matriz A.
(4),y_{pre} =
A_{pre} \cdot
x_{pre}
donde x_{pre} e y_{pre} son la
entrada de los canales N hasta la salida desde el
preprocesamiento, y A_{pre} es una matriz de
transformación N x N con elementos valorados reales (esto es,
continuos). La matriz A_{pre} puede escogerse para
incrementar la correlación intercanal en y_{pre} en
comparación con x_{pre}. Esto reduce la complejidad para
el resto del codificador, pero al coste de la separación de los
canales
perdidos.
\newpage
La salida y_{pre} es a continuación
alimentada al resto del codificador, el cual codifica (820) los
datos utilizando las técnicas mostradas en la Figura 6 u otras
técnicas de compresión, produciendo los datos multicanal codificados
(825).
La sintaxis utilizada por el codificador y el
descodificador posibilita la descripción de matrices de
transformación multicanal de postprocesamiento generales o
predefinidas, las cuales pueden variar o ser activadas/o
desactivadas sobre una base de trama por trama. El codificador
utiliza esta flexibilidad para limitar las discapacidades de imagen
estéreo/envolvente, sacrificando la separación de canales para una
calidad global en determinadas circunstancias mediante un
incremento artificial de la correlación intercanal. Como una
alternativa, el descodificador y el codificador utilizan otra
sintaxis para el pre y postprocesamiento multicanal, por ejemplo,
uno que posibilite cambios en las matrices de transformación sobre
una base distinta de trama a trama.
Las Figuras 9a-9e muestran unas
matrices de transformación de preprocesamiento multicanal
(900-904) utilizadas para incrementar
artificialmente la correlación entre canales bajo determinadas
circunstancias del codificador. El codificador conmuta entre
matrices de preprocesamiento para cambiar cuánta relación intercanal
es artificialmente incrementada entre los canales izquierdo,
derecho, y central, y entre los canales trasero izquierdo y trasero
derecho, en un entorno de reproducción del canal 5.1.
En una implementación, a velocidades de
transmisión de bits baja, el codificador evalúa la calidad de la
señal audio reconstruida con respecto a un periodo de tiempo y,
dependiendo del resultado, selecciona una de las matrices de
preprocesamiento. La medición de la calidad evaluada por el
codificador es una Relación Ruido a Excitación ["NER"],
la cual es la relación de la energía de la pauta de ruido para un
clip de audio reconstruido con respecto a la energía del clip de
audio digital original. Unos valores NER bajos indican una
buena calidad, y unos valores NER altos indican una calidad
deficiente. El codificador evalúa la NER respecto una o más
tramas previamente codificadas. Para una información adicional
acerca de la NER y otras mediciones de la calidad, véase la
Solicitud de Patente estadounidense con el número de serie
10/017,861, titulada "Técnicas de Medición de la Calidad Audio
Perceptuall" ["Techniques for Meassurement of Perceptual Audio
Quality"], depositada el 14 de Diciembre de 2001. Como una
alternativa, el codificador utiliza otra medición de la calidad,
la totalidad de la memoria descriptiva y/o algunos otros criterios
para seleccionar una matriz de transformación de preprocesamiento y
el codificador evalúa un periodo diferente de señal audio
multicanal.
Volviendo a los ejemplos mostrados en las
Figuras 9a-9e, a velocidades de transmisión de bits
bajas, el codificador lentamente cambia la matriz de transformación
de preprocesamiento en base a la NER n de una
extensión particular del clip de audio. El codificador compara el
valor de n con los valores de umbral n_{bajo} y
n_{alto}, los cuales 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. Como una alternativa, n_{bajo} y n_{alto}
tienen valores diferentes o valores que cambian con el tiempo como
reacción a la velocidad de transmisión de bits u otros criterios, o
el codificador cambia entre un número diferente de matrices.
Un valor bajo de n (por ejemplo, n
\leq n_{bajo}) indica una codificación de buena calidad. De
forma que, el codificador utiliza la matriz de identidad
A_{bajo} (900) mostrada en la Figura 9a efectivamente
desactivando el preprocesamiento.
Por otro lado, un valor alto de n (por
ejemplo, n \geq n_{alto}) indica una codificación de
calidad deficiente. De forma que, el codificador utiliza la matriz
A_{alto, \ 1} (902) mostrada en la Figura 9c. La matriz
A_{alto, \ 1} (902) introduce una severa distorsión de
imágenes envolventes, pero al mismo tiempo impone una correlación
muy alta entre los canales izquierdo, derecho, y central, lo que
mejora la subsecuente eficacia de la codificación mediante la
reducción de la complejidad. El canal central transformado
multicanal es la media de los canales izquierdo, central izquierdo,
derecho y central originales. La matriz A_{alto, \ 1}
(902) comprende también la separación de canales entre los canales
traseros - los canales trasero izquierdo y trasero derecha
introducidos son promediados.
Un valor intermedio de n (por ejemplo
n_{bajo} < n < n_{alto}) indica una
codificación de calidad intermedia, de forma que, el codificador
puede utilizar la matriz intermedia A_{inter, \ 1} (901)
mostrada 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}.
\alpha =
\frac{n - n_{alto}}{n_{alto} -
n_{bajo}}
La matriz intermedia A_{inter, \ 1}
(901) gradualmente transiciona desde la matriz de identidad
A_{bajo} (900) a la matriz de baja calidad A_{alto,
\ 1} (902).
Para las matrices A_{inter, \ 1} (901)
y A_{alto, \ 1} (902) mostradas en las Figuras 9b y 9c, el
codificador explota más adelante la redundancia entre los canales
para los cuales el codificador artificialmente incrementó la
correlación entre canales, y el codificador no necesita instruir al
descodificador para llevar a cabo ningún postprocesamiento
multicanal para esos canales.
Cuando el descodificador tiene la capacidad para
llevar a cabo el postprocesamiento multicanal, el codificador puede
delegar la reconstrucción del canal central al descodificador. En
este caso, cuando el valor NER n indica una codificación de
calidad deficiente, el codificador utiliza la matriz
A_{alto, \ 2} (904) mostrada en la Figura 9e, con la cual
el canal central de entrada se fuga por el interior de los canales
izquierdo y derecho. En la salida, el canal central es cero,
reduciendo la complejidad de la codificación.
Cuando el codificador utiliza la matriz de
transformación de preprocesamiento A_{alto, 2} (904), el
codificador (a través del flujo de bits) instruye al codificador
para crear un centro fantasma mediante la promediación de los
canales izquierdo y derecho descodificados. Las transformaciones
multicanal posteriores del codificador pueden explotar la
redundancia entre los canales trasero izquierdo y trasero derecho
(sin postprocesamiento), o el codificador puede instruir al
descodificador para que lleve a cabo algún postprocesamiento
multicanal para los canales trasero izquierdo y derecho.
Cuando el valor NER n indica una
codificación de calidad intermedia, el codificador puede utilizar la
matriz intermedia A_{inter, \ 2} (903) mostrada en la Figura 9d
para llevar a cabo la transición de las matrices mostrada en las
Figuras 9a y 9e.
La Figura 10 muestra una técnica (1000) de
preprocesamiento multicanal en la cual la matriz de transformación
potencialmente cambia sobre una base de trama por trama. El cambio
de la matriz de transformación puede conducir a un ruido audible
(por ejemplo, pum) en la salida final si no se maneja
cuidadosamente. Para evitar la introducción de ruidos pum, el
codificador gradualmente efectúa una transición de una matriz de
transformación a otra entre tramas.
El codificador primeramente establece (1010) la
matriz de transformación de preprocesamiento, de acuerdo con lo
descrito anteriormente. El codificador a continuación determina
(1020) si la matriz de la trama actual es diferente de la matriz de
la trama anterior (si había una trama anterior). Si la trama actual
es la misma o no hay una matriz anterior, el codificador aplica
(1030) la matriz a las muestras audio de entrada para la trama
actual. De no ser así, el codificador aplica (1040) una matriz de
transformación mezclada a las muestras audio de entrada para la
trama actual. La función de mezcla depende de la implementación. En
una implementación, en la muestra i de la trama actual, el
codificador utiliza una matriz mezclada a corto plazo
A_{pre, \ i}.
(6),A_{pre, \
i} = \frac{NumSamples-i}{NumSamples} A_{pre, \
prev} + \frac{i}{NumSamples} A_{pre, \
actual}
donde A_{pre, \ prev} y
A_{pre, \ actual} son las matrices de preprocesamiento para
las tramas previa y actual, respectivamente, y NumMuestras
es el número de muestras de la trama actual. Como una alternativa,
el codificador utiliza otra función de mezcla para suavizar las
discontinuidades de las matrices de transformación de
preprocesamiento.
A continuación, el codificador codifica (1050)
los datos audio multicanal para la trama, utilizando las técnicas
mostradas en la Figura 6 u otras técnicas de compresión. El
codificador repite la técnica (1000) sobre una base de trama por
trama. Como una alternativa, el codificador cambia el
preprocesamiento multicanal sobre alguna otra base.
En algunas formas de realización, un
codificador, como por ejemplo el codificador (600) de la Figura 6
agrupa ventanas de la señal audio multicanal en mosaicos para su
codificación subsecuente. Esto proporciona al codificador la
flexibilidad de utilizar configuraciones de ventanas diferentes para
los diferentes canales de una trama, aunque permitiendo también
transformaciones multicanal en varias combinaciones de canales para
la trama. Un descodificador, como por ejemplo el descodificador
(700) de la Figura 7, trabaja con mosaicos durante la
descodificación.
Cada canal puede tener una configuración de
ventanas independiente de los demás canales. Las ventanas que
tienen unos tiempos de partida y final idénticos se consideran como
parte de un mosaico. Un mosaico puede tener uno o más canales, y el
codificador lleva a cabo transformaciones multicanal para los
canales de un mosaico.
\newpage
La Figura 11a muestra una configuración de
mosaicos ejemplar (1100) para una trama de audio estéreo. En la
Figura 11a, cada mosaico incluye una sola ventana. Ninguna ventana
en uno u otro canal del audio estéreo empieza o finaliza al mismo
tiempo que otra ventana del otro canal.
La Figura 11b muestra una configuración de
mosaicos ejemplar (1101) para una trama de señal audio de un canal
5.1. La configuración de mosaicos (1101) incluye siete mosaicos,
numerados del 0 al 6. El mosaico 0 incluye unas muestras
procedentes de los canales 0, 2, 3 y 4 y abarca el primer cuarto de
la trama. El mosaico 1 incluye las tramas procedentes del canal 1 y
abarca la primera mitad de la trama. El mosaico 2 incluye las tramas
procedentes del canal 5 y abarca la entera trama. El mosaico 3 es
como el mosaico 0 pero abarca el segundo cuarto de la trama. Los
mosaicos 4 y 6 incluyen las muestras de los canales 0, 2 y 3, y
abarcan los tercero y cuarto cuartos, respectivamente, de la trama.
Finalmente, el mosaico 5 incluye las muestras procedentes de los
canales 1 y 4 y abarca la última mitad de la trama. Como se muestra
en la Figura 11b, un mosaico concreto puede incluir ventanas de
canales no contiguos.
La Figura 12 muestra una técnica generalizada
(1200) para configurar mosaicos de una trama de señal audio
multicanal. El codificador establece (1210) las configuraciones de
ventanas para los canales de la trama, tabicando cada canal en
ventanas de tamaño variable para efectuar un compromiso entre la
resolución de tiempo y la resolución de frecuencia. Por ejemplo, un
configurador de tabicadores/mosaicos del codificador tabica cada
canal independientemente de los demás canales de la trama.
El codificador a continuación agrupa (1220) las
ventanas procedentes de los diferentes canales en mosaicos para la
trama. Por ejemplo, el codificador coloca las ventanas procedentes
de diferentes canales en un solo mosaico si las ventanas tienen
posiciones de partida idénticas y posiciones finales idénticas. Como
una alternativa, el codificador utiliza criterios distintos de o
además de las posiciones de partida/final para determinar qué
secciones de los diferentes canales se agrupan conjuntamente
formando un mosaico.
En una implementación, el codificador lleva a
cabo el agrupamiento de mosaicos (1220) después (e
independientemente) de la regulación (1210) de las configuraciones
de ventanas para una trama. En otras implementaciones, el
codificador conjuntamente regula (1210) las configuraciones de
ventanas y agrupa (1220) las ventanas en mosaicos, por ejemplo,
para favorecer la correlación del tiempo (que utiliza ventanas más
largas) o la correlación de los canales (poniendo más canales en
los mosaicos simples), o para controlar el número de mosaicos
obligando a las ventanas a encajar dentro de un conjunto concreto de
mosaicos.
El codificador a continuación envía (1230) la
información de la configuración de mosaicos para la trama para la
emisión de salida con los datos audio codificados. Por ejemplo, el
configurador de tabicadores/mosaico del codificador envía la
información de los miembros de los canales y del tamaño de los
mosaicos para los mosaicos hasta un MUX. Como una alternativa, el
codificador envía otra información que especifique las
configuraciones de los mosaicos. En una implementación, el
codificador envía (1230) la información de la configuración de
mosaicos después del agrupamiento (1220) de los mosaicos. En otras
implementaciones, el codificador lleva a cabo estas acciones
simultáneamente.
La Figura 13 muestra una técnica (1300) de
configurar mosaicos y enviar información de la configuración de
mosaicos para una trama de señales audio multicanal de acuerdo con
una sintaxis de flujo de bits concreta. La Figura 13 muestra la
técnica (1300) llevada a cabo por el codificador para introducir la
información en el flujo de bits; el descodificador lleva a cabo una
técnica correspondiente (lectura de indicadores, obtención de
información de la configuración para los mosaicos concretos, etc.)
para extraer la información de la configuración de los mosaicos
para la trama de acuerdo con la sintaxis del flujo de bits. Como una
alternativa, el descodificador y el codificador utilizan otras
sintaxis para una o más de las opciones mostradas en la Figura 13,
por ejemplo, una que utiliza indicadores diferentes o una ordenación
diferente.
El codificador inicialmente verifica (1310) si
ninguno de los canales de la trama está divididos en ventanas. Si
es así, el codificador envía (1312) un bit indicador (que indica que
no hay ningún canal dividido), y a continuación sale. Así, un único
bit indica si una trama determinada tiene un solo mosaico o tiene
múltiples mosaicos.
Por otro lado, si al menos un canal está
dividido en ventanas, el codificador verifica (1320) si todos los
canales de la trama tienen la misma configuración de ventanas. Si es
así, el codificador envía (1322) un bit indicador (que indica que
todos los canales tienen la misma configuración de ventanas - cada
mosaico de ventana tiene todos los canales) y una secuencia de los
tamaños de los mosaicos, y a continuación sale. Así, el único bit
indica si los canales tienen todos la misma configuración (como en
un flujo de bits de un codificador convencional) o tienen una
configuración de mosaicos flexible.
Si al menos algunos canales tienen
configuraciones de ventanas diferentes, el codificador escanea las
posiciones de las muestras de la trama para identificar las
ventanas que tienen tanto la misma posición de partida como la
misma posición final. Pero primeramente, el codificador marca
(1330) todas las posiciones de muestra de la trama como no
agrupadas. El codificador a continuación escanea (1340) la siguiente
posición de muestras no agrupadas de la trama de acuerdo con un
patrón de escaneo por canal/tiempo. En una implementación, el
codificador escanea todos los canales en un momento determinado
buscando las posiciones de muestra no agrupadas, a continuación
repite para la siguiente posición de muestra en el tiempo, etc. En
otras implementaciones, el codificador utiliza otra pauta de
escaneo.
Para la posición de muestra no agrupadas
detectadas, el codificador agrupa (1350) las mismas ventanas juntas
en un mosaico. En particular, el codificador agrupa las ventanas
que empiezan en la posición de partida de la ventana que incluye la
posición de muestras no agrupadas detectadas, y que también terminan
en la misma posición que la ventana que incluye la posición de
muestras no agrupadas detectadas. En la trama mostrada en la Figura
11b, por ejemplo, el codificador detectaría primeramente la posición
de las muestras al principio del canal 0. El codificador agruparía
las ventanas con una longitud de un cuarto de trama a partir de los
canales 0, 2, 3 y 4 conjuntamente en un mosaico, dado que estas
ventanas tienen cada una la misma posición de partida y la misma
posición final que las otras ventanas del mosaico.
El codificador a continuación envía (1360) la
información de la configuración de los mosaicos que especifica el
mosaico para la emisión de salida con los datos audio codificados.
La información de la configuración de los mosaicos incluye el
tamaño de los mosaicos y un mapa indicativo de qué canales con
posiciones de las muestras no agrupadas de la trama en ese punto
están dentro del mosaico. El mapa de canales incluye un bit por
canal posible para el mosaico. En base a la secuencia de
información de los mosaicos, el descodificador determina donde un
mosaico empieza y termina en una trama. El codificador reduce la
velocidad de transmisión de bits para el mapa de los canales
teniendo en cuenta qué canales puede haber en el mosaico. Por
ejemplo, la información para el mosaico 0 de la Figura 11b incluye
el tamaño de mosaico, y un patrón binario "101110" para indicar
que los canales 0, 2, 3, y 4 son parte de mosaico. Después de ese
punto, solo las posiciones de las muestras de los canales 1 y 5 no
están agrupadas. De forma que la información del mosaico 1 incluye
el tamaño de mosaico y la pauta binaria "10" para indicar que
el canal 1 es parte del mosaico pero que el canal 5 no lo es. Esto
ahorra cuatro bits de la pauta binaria. La información de mosaico
del mosaico 2 a continuación incluye únicamente el tamaño de
mosaico (y no el mapa de canal), dado que el canal 5 es el único
canal que puede tener una ventana de partida en el mosaico 2. La
información de mosaico para el mosaico 3 incluye el tamaño de
mosaico y la pauta binaria "1111" dado que los canales 1 y 5
han agrupado las posiciones dentro del rango del mosaico 3. Como
una alternativa, el codificador y el descodificador utilizan otra
técnica para señalar pautas de canal en la sintaxis.
El codificador a continuación marca (1370) las
posiciones de las muestras de las ventanas en el mosaico como
agrupadas y determina (1380) si continuar o no. Si no hay más
posiciones de las muestras no agrupadas en la trama, el codificador
sale. En otro caso, el codificador escanea (1340) la siguiente
posición de las muestras no agrupadas de la trama de acuerdo con la
pauta de escaneo canal/tiempo.
En algunas formas de realización, un
codificador, como por ejemplo el codificador (600) de la Figura 6,
lleva a cabo unas transformaciones flexibles multicanal que
aprovechan eficazmente la correlación entre canales. Un
descodificador, como por ejemplo el descodificador (700) de la
Figura 7, lleva a cabo las correspondientes transformaciones
multicanal inversas.
Específicamente, el codificador y el
descodificador llevan a cabo una o más de las siguientes funciones
para mejorar las transformaciones multicanal en diferentes
situaciones.
1. El codificador lleva a cabo la transformación
multicanal después de la ponderación sensorial; y el descodificador
lleva a cabo la correspondiente transformación multicanal inversa
antes de la ponderación inversa. Ello reduce el desenmascaramiento
del ruido de cuantificación a través de los canales después de la
transformación multicanal inversa.
2. El codificador y el descodificador agrupan
los canales para las transformaciones multicanal para limitar qué
canales son transformados conjuntamente.
3. El codificador y el descodificador
selectivamente activan/desactivan las transformaciones multicanal en
el nivel de bandas de frecuencia para controlar que bandas son
transformadas conjuntamente.
4. El codificador y el descodificador utilizan
unas transformaciones multicanal jerárquicas para limitar la
complejidad computacional (especialmente del descodificador).
5. El codificador y el descodificador utilizan
matrices de transformación multicanal predefinidas para reducir la
velocidad de transmisión de bits utilizada para especificar las
matrices de transformación.
6. El codificador y el descodificador utilizan
parámetros de factorización de Givens cuantificados basados en la
rotación para especificar las matrices de transformación multicanal
para la eficacia de los bits.
En algunas formas de realización, el codificador
sitúa la transformación multicanal después de la ponderación
perceptual (y el descodificador sitúa la transformación multicanal
inversa antes de la ponderación inversa) de forma que la señal
fugada a través del canal es controlada, es susceptible de medición,
y tiene un espectro como la señal original.
La Figura 14 muestra una técnica (1400) para
llevar a cabo una o más transformaciones multicanal después de la
ponderación perceptual del codificador. El codificador pondera
perceptualmente (1410) la señal multicanal, por ejemplo, aplicando
factores de ponderación a la señal audio multicanal en el dominio de
frecuencia. En algunas implementaciones, el codificador aplica
tanto los factores de ponderación como los modificadores de paso de
cuantificación por canal a los datos audio multicanal antes de
la(s) transformación(es) multicanal.
El codificador a continuación lleva a cabo
(1420) una o más transformaciones multicanal sobre los datos audio
ponderados; por ejemplo, de acuerdo con lo descrito más adelante.
Finalmente, el modificador cuantifica (1430) los datos audio
multicanal transformados.
La Figura 15 muestra una técnica (1500) para
llevar a cabo una transformación multicanal inversa antes de la
ponderación inversa del descodificador. El descodificador lleva a
cabo (1510) una o más transformaciones multicanal inversas sobre
los datos audio cuantificados, por ejemplo, de acuerdo con lo
descrito más adelante. En particular, el descodificador recoge
muestras de los múltiples canales en un índice de frecuencias
concreto formando un vector x_{mc} y lleva a cabo la
transformación multicanal inversa A_{mc} para generar la
salida y_{mc}.
(7).y_{mc} =
A_{mc} \cdot
x_{mc}
A continuación, el descodificador efectúa una
cuantificación inversa y una ponderación inversa (1520) de la señal
audio multicanal, coloreando la salida de la transformación
multicanal inversa con máscara(s). Así, el escape que se
produce a través de los canales (debido a la cuantificación) es
espectralmente conformado de tal manera que la audibilidad de la
señal fugada puede medirse y controlarse, y la fuga de los otros
canales en un canal reconstruido determinado es conformado
espectralmente como la señal no corrompida original del canal
determinado. (En algunas implementaciones, los modificadores de paso
de cuantificación por canal permite también que el codificador haga
que la señal reconstruida tenga una calidad aproximadamente igual a
través de todos los canales reconstruidos).
En algunas formas de realización, el codificador
y el descodificador agrupan los canales de las transformaciones
multicanal para limitar qué canales se transforman conjuntamente.
Por ejemplo, en formas de realización que utilizan una
configuración de mosaicos, el codificador determina qué canales
situados dentro de un mosaico se correlacionan, y agrupan los
canales correlacionados. Como una alternativa, un codificador y un
descodificador no utilizan una configuración de mosaicos, pero
siguen agrupando los canales para las tramas o en algún otro
nivel.
La Figura 16 muestra una técnica (1600) para
agrupar canales de un mosaico para la transformación multicanal en
una implementación. En la técnica (1600), el codificador considera
correlaciones por pares de entre las señales de los canales así
como las correlaciones entre bandas en algunos casos. Como una
alternativa, un codificador considera factores distintos y/o
adicionales al agrupar canales para una transformación
multicanal.
En primer lugar, el codificador obtiene (1610)
los canales para un mosaico. Por ejemplo, en la configuración de
mosaicos mostrada en la Figura 11b, el mosaico 3 tiene cuatro
canales en ella: 0, 2, 3, y 4.
El codificador computa (1620) las correlaciones
por pares entre las señales de los canales y a continuación agrupa
(1630) los canales en la medida correspondiente. Supóngase que para
el mosaico 3 de la Figura 11b, los canales 0 y 2 están
correlacionados por pares, pero ninguno de esos canales está
correlacionado por pares con el canal 3 o el canal 4, y el canal 3
no está correlacionado por pares con el canal 4. El codificador
agrupa (1630) los canales 0 y 2 entre sí, sitúa el canal 3 en un
grupo separado y sitúa el canal 4 en otro grupo separado.
Un canal que no está correlacionado por pares
con ninguno de los canales de un grupo puede seguir siendo
compatible con ese grupo. De esta forma, para los canales que son
incompatibles con un grupo, el codificador opcionalmente verifica
(1640) la compatibilidad en el nivel de bandas y ajusta (1650) los
uno o más grupos de canales de la forma correspondiente. En
particular, esto identifica los canales que son compatibles con un
grupo en algunas bandas, pero incompatibles en algunas otras
bandas. Por ejemplo, supóngase que el canal 4 del mosaico 3 de la
Figura 11b es efectivamente compatible con los canales 0 y 2 en la
mayoría de las bandas, pero que la incompatibilidad en unas pocas
bandas oblicúa los resultados de la correlación por pares. El
codificador ajusta (1650) los grupos para situar los canales 0, 2,
y 4 conjuntamente, dejando el canal 3 en su propio grupo. El
codificador puede también llevar a cabo dicha comprobación cuando
dichos canales están (globalmente) correlacionados, pero tienen
bandas incompatibles. La desconexión de la transformación en esas
bandas incompatibles mejora la correlación de esas bandas que de
hecho obtienen una transformación multicanal mejorada, y por tanto
mejora la eficacia de la
codificación.
codificación.
Un canal de un mosaico determinado pertenece a
un grupo de canales. Los canales de un grupo de canales no
necesitan ser contiguos. Un solo mosaico puede incluir múltiples
grupos de canales y cada grupo de canales puede tener una
transformación multicanal asociada diferente. Después de decidir qué
canales son compatibles, el codificador introduce la información
del grupo de canales dentro del flujo de bits.
\newpage
La Figura 17 muestra una técnica (1700) para
extraer una información de un grupo de canales y de una información
de una transformación multicanal para un mosaico a partir de un
flujo de bits de acuerdo con una sintaxis de flujo de bits
concreta, con independencia de cómo el codificador computa los
grupos de canales. La Figura 17 muestra la técnica (1700) llevada a
cabo por el descodificador y extrae la información a partir del
flujo de bits; el codificador lleva a cabo una técnica
correspondiente a la información del grupo de canales para
formatear la información de la transformación multicanal para el
mosaico de acuerdo con la sintaxis del grupo de bits. Como una
alternativa, el descodificador y el codificador utilizan otra
sintaxis para una o más de las opciones mostradas en la Figura
17.
En primer lugar, el descodificador inicializa
diversas variables utilizadas en la técnica (1700). El
descodificador establece (1710) #ChannelsToVisit igual al
número de canales del mosaico #ChannelsInTile y fija (1712)
el número de grupos de canales #ChannelsGroups en 0.
El descodificador verifica (1720) si
#ChannelsToVisit es mayor de 2. Si no, el descodificador
verifica (1730) si #ChannelsToVisit es igual a 2. Si es así,
el descodificador descodifica (1740) la transformación multicanal
para el grupo de dos canales, por ejemplo, utilizando una técnica
descrita más adelante. La sintaxis posibilita que cada grupo de
canales tenga una transformación multicanal diferente. Por otro
lado, si #ChannelsToVisit es igual a 1 o 0, el
descodificador sale sin descodificar una transformación
multicanal.
Si #ChannelsToVisit es mayor de 2, el
descodificador descodifica (1750) la máscara de los canales para un
grupo del mosaico. Específicamente, el descodificador lee
#ChannelsToVisit a partir del flujo de bits para la máscara
de los canales. Cada bit de la máscara de los canales indica si un
canal concreto está o no en el grupo de canales. Por ejemplo, si la
máscara de los canales es "10110" entonces el mosaico incluye 5
canales, y los canales 0, 2, y 3 están en el grupo de canales.
El descodificador a continuación cuenta (1760)
el número de canales del grupo y descodifica (1770) la
transformación multicanal para el grupo, por ejemplo, utilizando
una técnica descrita más adelante. El descodificador actualiza
(1780) #ChannelsToVisit mediante la sustracción del número
contado de canales del grupo de canales actual, incrementa (1790)
#ChannelsGroup, y verifica (1720) si el número de canales
dejados de visitar #ChannelsToVisit es mayor de 2.
Como una alternativa, en formas de realización
que no usan configuraciones de mosaicos, el descodificador extrae
la información del grupo de canales y la información de la
transformación multicanal para una trama o en algún otro nivel.
En algunas formas de realización, el codificador
y el descodificador selectivamente activan/desactivan las
transformaciones multicanal en el nivel de bandas de frecuencia para
controlar qué bandas son transformadas conjuntamente. De esta
forma, el codificador y el descodificador selectivamente excluyen
las bandas que no son compatibles en las transformaciones
multicanal. Cuando la transformación multicanal es desactivada para
una banda concreta, el codificador y el descodificador utilizan la
transformación de identidad para esa banda, pasando a través de los
datos en esa banda sin alterarlos.
Las bandas de frecuencia son bandas críticas o
bandas de identificación. El número de bandas de frecuencia, se
refiere a la frecuencia de muestreo de los datos audio y al tamaño
de los mosaicos. En general, cuanto mayor es la frecuencia de
muestreo o mayor es el tamaño de los mosaicos, mayor es el número de
las bandas de frecuencia.
En algunas implementaciones, el codificador
selectivamente activa/desactiva las transformaciones multicanal en
el nivel de bandas de frecuencia para canales de un grupo de canales
de un mosaico. El codificador puede activar/desactivar las bandas
cuando el codificador agrupa los canales para un mosaico o después
del agrupamiento de canales para el mosaico. Como una alternativa,
un codificador y un descodificador no utilizan una configuración de
mosaicos, pero siguen activando/desactivando las transformaciones
multicanal en bandas de frecuencia para una trama o en algún otro
nivel.
La Figura 18 muestra una técnica (1800) para
incluir selectivamente bandas de frecuencia de un grupo de canales
de una transformación multicanal de una implementación. En la
técnica (1800), el codificador considera unas correlaciones por
pares entre las señales de los canales en una banda para determinar
si se habilita o deshabilita la transformación multicanal para la
banda. Como una alternativa, un codificador considera factores
distintos y/o adicionales al activar o desactivar selectivamente
las bandas de frecuencia para una transformación multicanal.
En primer lugar, el codificador obtiene (1810),
los canales para un grupo de canales, por ejemplo, de acuerdo con
lo descrito con referencia a la Figura 16. El codificador a
continuación computa (1820) las correlaciones por pares entre las
señales de los canales para bandas de frecuencia diferentes. Por
ejemplo, si el grupo de canales incluye dos canales, el codificador
computa unas correlaciones por pares entre algunos o todos los pares
respectivos de los canales en cada banda de frecuencia.
El codificador a continuación activa o desactiva
(1830) para la transformación multicanal para el grupo de canales.
Por ejemplo, si el grupo de canales incluye dos canales, el
codificador posibilita la transformación multicanal para una banda
si la correlación por pares en la banda satisface un concreto
umbral. O, si el grupo de canales incluye dos o más canales, el
codificador posibilita la transformación multicanal para una banda
si cada uno o una mayoría de las correlaciones por pares en la banda
satisface un concreto umbral. En formas de realización
alternativas, en lugar de activar o desactivar una banda de
frecuencia concreta para todos los canales, el codificador activa
la banda para algunos anales y la desactiva para los demás
canales.
Después de decidir qué bandas están incluidas en
las transformaciones multicanal, el codificador introduce la
información de activación/desactivación de las bandas dentro del
flujo de bits.
La Figura 19 muestra una técnica (1900) para
extraer la información de activación/desactivación de las bandas
para una transformación multicanal para un grupo de canales de un
mosaico a partir de un flujo de bits de acuerdo con una sintaxis de
flujo de bits concreta, con independencia de cómo el codificador
decide si activar o desactivar las bandas. La Figura 19 muestra la
técnica (1900) llevada a cabo por el descodificador para extraer
información a partir del grupo de bits; el codificador lleva a cabo
la técnica correspondiente a la información para formatear la
activación/desactivación de las bandas para el grupo de canales de
acuerdo con la sintaxis del flujo de bits. Como una alternativa, el
codificador y el descodificador utilizan otra sintaxis para una o
más de las opciones mostradas en la Figura 19.
En algunas implementaciones, el descodificador
lleva a cabo la técnica (1900) como parte de la descodificación de
la transformación multicanal (1740 o 1770) de la técnica (1700).
Como una alternativa, el descodificador lleva a cabo la técnica
(1900) separadamente.
El descodificador obtiene (1910) un bit y
verifica (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 las bandas
del grupo de canales.
Por otro lado, si el bit indica que todas las
bandas no están habilitadas para el grupo de canales, el
descodificador descodifica (1940) la máscara de las bandas para el
grupo de canales. Específicamente, el descodificador lee un número
de bits entre el flujo de bits, donde el número es el número de
bandas para el grupo de canales. Cada bit de la máscara de bandas
indica si una banda concreta está activada o desactivada para el
grupo de canales. Por ejemplo, si la máscara de bandas 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 activadas
para la transformación multicanal. El descodificador a continuación
habilita (1950) la transformación multicanal para las bandas
indicadas.
Como una alternativa, en formas de realización
que no utilizan las configuraciones de mosaicos, el descodificador
extrae la información de la activación/desactivación de las bandas
para una trama o en algún otro nivel.
En algunas formas de realización, el codificador
y el descodificador utilizan transformaciones jerárquicas
multicanal para limitar la complejidad computacional, especialmente
en el codificador. Con la transformación jerárquica, un codificador
divide una transformación global en múltiples etapas, reduciendo la
complejidad computacional de las etapas individuales y en algunos
casos reduciendo la cantidad de información requerida para
especificar la(s) transformación(es) multicanal.
Utilizando esta estructura en cascada, el codificador emula la
transformación global mayor con transformaciones menores, hasta una
cierta precisión. El descodificador lleva a cabo una transformación
inversa jerárquica correspondiente.
En algunas formas de realización, cada etapa de
la transformación jerárquica es idéntica en estructura y, en el
flujo de bits, cada etapa se describe de forma independiente de las
una o más distintas etapas. En particular, cada etapa tiene sus
propios grupos de canales y una matriz de transformación multicanal
por grupo de canales. En implementaciones alternativas, diferentes
etapas tienen estructuras diferentes, el codificador y el
descodificador utilizan una sintaxis de flujo de bits 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 que utiliza una
jerarquía de transformaciones multicanal más sencillas. La Figura 20
muestra una jerarquía de etapas n, donde n es el
número de etapas de transformación multicanal. Por ejemplo, en una
implementación, n es 2. Como una alternativa, n es más
de 2.
El codificador determina (2010) una jerarquía de
transformaciones multicanal para una transformación global. El
codificador decide los tamaños de la transformación (esto es, el
tamaño del grupo de canales) en base a la complejidad del
descodificador que llevará a cabo las transformaciones inversas. O
el codificador considera el perfil del descodificador/nivel del
descodificador escogido como objetivo o algún otro criterio.
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 unos
grupos y transformaciones de canales N + 1, numeradas de 0 a
N; la segunda etapa incluye grupos y transformaciones de
canales M + 1, numeradas 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 los canales introducidos en el
transformador multicanal. No todos los canales de entrada deben ser
transferidos en la primera etapa. Uno o más canales de entrada
pueden pasar inalterados por la primera etapa (por ejemplo, el
codificador puede incluir dichos canales en un grupo de canales que
utilice 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 los canales de salida, entre la
primera etapa, incluyendo canales que pueden haber pasado
inalterados por la primera etapa.
Volviendo a la Figura 20, el codificador lleva a
cabo (2020) la primera etapa de transformaciones multicanal, lleva
a cabo la etapa siguiente de transformaciones multicanal, llevando a
cabo finalmente (2030) la enésima etapa de transformaciones
multicanal. Un descodificador lleva a cabo las correspondientes
transformaciones multicanal inversas 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 dichos
casos, y también en otros casos determinados, el codificador puede
combinar la información de activación/desactivación de bandas de
frecuencia para las múltiples transformaciones multicanal. Por
ejemplo, supóngase que hay dos transformaciones multicanal y los
mismos tres canales en el grupo de canales para cada uno. El
codificador puede no especificar ninguna
transformación/transformación de identidad en ambas etapas para la
banda 0, únicamente la etapa 1 de transformación multicanal para la
banda 1 (ninguna transformación de la etapa 2), únicamente una etapa
2 de transformación multicanal para la banda 2 (ninguna
transformación de la etapa 1), ambas etapas de transformaciones
multicanal para la banda 3, ninguna transformación en ambas bandas
para la etapa 4, etc.
La Figura 22 muestra una técnica (2200) para
extraer información para una jerarquía de transformaciones
multicanal para grupos de canales entre un flujo de bits de acuerdo
con una sintaxis de flujo de bits concreta. La Figura 22 muestra la
técnica (2200) llevada a cabo por el descodificador para analizar el
flujo de bits; el codificador lleva a cabo una técnica
correspondiente para formatear la jerarquía de las transformaciones
multicanal de acuerdo con la sintaxis del flujo de bits. Como una
alternativa, el descodificador y el codificador utilizan otras
sintaxis, por ejemplo, una que incluya indicadores adicionales y
bits de señalización para más de dos etapas.
El descodificador primeramente fija (2210) un
valor temporal iTmp igual al siguiente bit del flujo de
bits. El descodificador a continuación verifica (2220) el valor del
valor temporal, el cual señala si el descodificador debe o no
descodificar (2230) del grupo de canales y la información de
transformación multicanal para un grupo de la etapa 1.
Después de que el descodificador descodifica
(2230) el grupo de canales y la información de transformación
multicanal para un grupo de la etapa 1, el descodificador fija
(2240) un iTmp igual al siguiente bit del flujo de bits. El
descodificador verifica de nuevo (2220) el valor de iTmp, el
cual señala si el flujo de bits incluye o no el grupo de canales y
la información de transformación multicanal para cualquier grupo
más de la etapa 1. Solo los grupos de canales con transformaciones
de no identidad se especifican en la porción de la etapa 1 del
flujo de bits; los canales que no se describen en la parte de la
etapa 1 del flujo de bits se supone que son parte de un grupo de
canales que utiliza una transformación de identidad.
Si el flujo de bits no incluye más grupos de
canales y la información de transformación de grupos de la etapa 1,
el descodificador (2250), el grupo de canales y la información de la
transformación multicanal para todos los grupos de la etapa 2.
En algunas formas de realización, el codificador
y el descodificador utilizan matrices de transformaciones
multicanal predefinidas para reducir la velocidad de transformación
de bits utilizada para especificar las matrices de las
transformaciones. El codificador selecciona entre múltiples tipos de
matrices predefinidas disponibles y señala la matriz seleccionada
del grupo de bits con un número pequeño (por ejemplo, 1, 2) de
bits. Algunos tipos de matrices no requieren señalización adicional
en el flujo de bits, pero otros grupos de matrices requieren
señalización adicional. El descodificador extrae la información
indicativa del tipo de matriz y (si es necesario) la información
adicional que especifica la matriz.
En algunas implementacoines, el codificador y el
descodificador utilizan los siguientes tipos de matrices
predefinidas: de identidad, de Hadamard, de DCT tipo II, o una
unidad arbitraria. Como una alternativa, el codificador y el
descodificador utilizan tipos de matrices diferentes y/o
predefinidas adicionales.
La Figura 9a muestra un ejemplo de una matriz de
identidad para 6 canales en otro contexto. El codificador
eficazmente especifica una matriz de identidad del flujo de bits
utilizando bits indicadores, suponiendo que el número de
dimensiones de la matriz de identidad es conocido tanto para el
codificador como para el descodificador a partir de otra
información (por ejemplo, el número de canales de un grupo).
\newpage
Una matriz Hadamard tiene la forma
siguiente:
donde \rho es un normalizador
escalar (\sqrt2). El codificador especifica eficazmente una matriz
Hadamar para datos estéreo del flujo de datos utilizando bits
indicadores.
Una matriz DCT tipo II tiene la forma
siguiente:
donde
y
donde
Para más información acerca de las matrices DCT
tipo II, véase Rao et al., Transformación de Coseno Discreto,
Academic Press (1990). La matriz DCT tipo II puede tener cualquier
tamaño (esto es, trabajar para cualquier tipo de canales). El
codificador especifica eficazmente una matriz DCT tipo II del flujo
de bits utilizando bits indicadores, suponiendo que el número de
dimensiones para la matriz DCT tipo II es conocido tanto para el
codificador como para el descodificador a partir de otra información
(por ejemplo, el número de canales de un grupo).
Una matriz cuadrada A_{cuadrada} es
unitaria si su transposición es su inversa.
(12),A_{cuadrada} \cdot
A_{cuadrada}^{T} = A_{cuadrada}^{T} \cdot A_{cuadrada} =
I
donde I es la matriz de
identidad. El codificador utiliza matrices unitarias arbitrarias
para especificar las transformaciones KLT para una supresión eficaz
de la redundancia. El codificador especifica de manera eficaz la
matriz unitaria del flujo de bits utilizando bits indicadores y una
parametrización de la matriz. En algunas formas de realización, el
codificador parametriza la matriz utilizando las rotaciones de
factorización Givens cuantificadas, de acuerdo con lo descrito más
adelante. Como una alternativa, el codificador utiliza otra
parametrización.
La Figura 23 muestra una técnica (2300) de
selección de un tipo de transformación multicanal entre varios tipos
disponibles. El codificador selecciona un tipo de transformación
sobre una base de grupos de canales grupo por grupo 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 la de identidad, la de
Hadamard, la de DCT tipo II, la de unitaria arbitraria. Como una
alternativa, los tipos incluyen tipos de matriz diferentes y/o
adicionales. El codificador utiliza una matriz de identidad,
Hadamard, o de DCT tipo II (mejor que una matriz unitaria
arbitraria) si es posible o si se requiere para reducir los bits
necesarios para especificar la matriz de transformación. Por
ejemplo, el codificador utiliza una matriz de identidad, Hadamard o
un DCT tipo II si la supresión de la redundancia es comparable o lo
suficientemente próxima (mediante algunos criterios) a la supresión
de la redundancia con la matriz unitaria arbitraria. O, el
codificador utiliza una matriz de identidad, Hadamard, o DCT tipo
II si el codificador debe reducir la velocidad de transmisión de
bits. En una situación general, sin embargo, el codificador utiliza
una matriz unitaria arbitraria para la máxima eficacia de la
compresión.
El codificador a continuación aplica (2320) una
transformación multicanal del tipo seleccionado a los datos audio
multicanal.
La Figura 24 muestra una técnica (2400) para
extraer un tipo de transformación multicanal entre varios tipos
disponibles y llevar a cabo una transformación multicanal inversa.
El descodificador extrae la información del tipo de transformación
sobre una base de grupos de grupo por grupo de canales o en algún
otro nivel.
El descodificador extrae (2410) un tipo de
transformación multicanal entre múltiples tipos disponibles. Por
ejemplo, los tipos disponibles incluyen la matriz de identidad,
Hadamard, DCT tipo II, y unitaria arbitraria. Como una alternativa
los tipos incluyen tipos de matrices diferentes y/o adicionales. Si
es necesario, el descodificador extrae información adicional que
especifica la matriz.
Después de la reconstrucción de la matriz, el
descodificador aplica (2420) una transformación multicanal inversa
del tipo seleccionado a los datos audio multicanal.
La Figura 25 muestra una técnica (2500) para
extraer la información de la transformación multicanal para un
grupo de canales entre un flujo de bits de acuerdo con una sintaxis
de flujo de bits concreta. La Figura 25 muestra la técnica (2500)
llevada a cabo por el descodificador para analizar el flujo de bits;
el codificador lleva a cabo una técnica correspondiente para
formatear la información de la transformación multicanal de acuerdo
con la sintaxis del flujo de bits. Como una alternativa, el
descodificador y el codificador utilizan otra sintaxis, por ejemplo
una que utilice bits indicadores diferentes, una ordenación
diferente, o diferentes tipos de información.
Inicialmente, el descodificador verifica (2510)
si el número de canales del grupo #ChannelsInGroup es mayor
de 1. Si no, el grupo de canales es para las señales audio mono y el
descodificador utiliza (2512) una transformación de identidad para
el grupo.
Si #ChannelsInGroup es mayor de 1, el
descodificador verifica (2520) si #ChannelsInGroup es mayor
de 2. Si no, el grupo de canales es para el audio estéreo, y el
descodificador fija (2522) un valor temporal iTmp igual al
bit siguiente del flujo de bits. El descodificador a continuación
verifica (2524) el valor del valor temporal, el cual señala si el
descodificador debe utilizar (2530) una transformación Hadamard para
el grupo de canales. Si no, el descodificador fija (2526) un
iTmp igual al bit siguiente del flujo de bits y verifica
(2528) el valor de iTmp, el cual señala si el descodificador
debe utilizar (2550) una transformación de identidad para el grupo
de canales. Si no, el descodificador descodifica (2570) una
transformación unitaria genérica para el grupo de canales.
Si #ChannelsInGroup es mayor de 2, el
grupo de canales es para señales audio de sonido envolvente, y el
descodificador fija (2540) un valor temporal iTmp igual al
bit siguiente del flujo de bits. El descodificador verifica (2542)
el valor del valor temporal, el cual señala si el descodificador
debe utilizar (2550) una transformación de identidad del tamaño
#ChannelsInGroup para el grupo de canales. Si no, el
descodificador fija (2560) un iTmp igual al bit siguiente
del flujo de bits, y verifica (2562) el valor del iTmp. El
bit señala si el descoficador debe descodificar (2570) una
transformación unitaria genérica para el grupo de canales o
utilizar (2580) una transformación DCT tipo II del tamaño del
#ChannelsInGroup para el grupo de canales.
Cuando el descodificador utiliza una matriz
Hadamard, una DCT tipo II, o una transformación genérica unitaria
para el grupo de canales, el descodificador descodifica (2590) la
información de activación/desactivación de bandas de transformación
multicanal para la matriz, y a continuación sale.
En algunas formas de realización, el codificador
y el descodificador utilizan parámetros cuantificados de
factorización basados en la rotación Givens para especificar una
matriz de transformación unitaria arbitraria para la eficacia de los
bits.
En general, una matriz de transformación
unitaria puede ser representada utilizando rotaciones de
factorización Givens. Utilizando esta especificación, una matriz de
factorización unitaria puede representarse como:
donde \alpha_{1} es +1 o -1
(signo de rotación), y cada \Theta es la forma de la matriz de
rotación (2600) mostrada en la Figura 26. La matriz de rotación
(2600) es casi como una matriz de identidad, pero tiene cuatro
términos de seno/coseno con posiciones variables. Las Figuras
27a-27c muestran matrices de rotación ejemplares
para rotaciones Givens para representar una matriz de transformación
multicanal. Los dos términos cosenoidales están siempre sobre la
diagonal, los dos términos sinusoidales están en la misma
fila/columna que los dos términos cosenoidales. Cada \Theta
tiene un ángulo de rotación, y su valor puede tener un rango
de -\frac{\pi}{2} \leq \omega_{k} < \frac{\pi}{2}. El
número de dichas matrices de rotación \Theta necesario para
describir completamente una matriz unitaria N x N
A_{unitaria}
es:
(14).\frac{N
(N
-1)}{2}
Para más información acerca de las rotaciones de
factorización Givens, véase Vaidyanathan, Sistemas Multivelocidad
y Bancos de Filtros ["Multirate Systems and Filter
Banks"], Capítulo 14.6, "Factorización de Matrices
Unitarias" ["Factorization of Unitary Matrices"], Prentice
Hall (1993).
En algunas formas de realización, el codificador
cuantifica los ángulos de rotación de la factorización Givens para
reducir la velocidad de transmisión de bits. La Figura 28 muestra
una técnica (2800) de representación de una matriz de transformación
multicanal que utiliza rotaciones cuantificadas de factorización
Givens.
Como una alternativa, un codificador o
herramienta de procesamiento utiliza rotaciones cuantificadas de
factorización Givens para representar una matriz unitaria para
alguna finalidad distinta de la transformación multicanal de canales
audio.
El codificador primeramente computa (2810) una
matriz unitaria arbitraria para una transformación multicanal. El
codificador a continuación computa (2820) las rotaciones de
factorización Givens para la matriz unitaria.
Para reducir la transmisión de bits, el
codificador cuantifica (2830) los ángulos de rotación. En una
implementación, el codificador cuantifica de manera uniforme cada
ángulo de rotación hasta uno de los 64 (2^{6} = 64) posibles
valores. Los signos de rotación se indican con un bit cada uno, de
forma que el codificador utiliza el número siguiente de bits para
representar la matriz unitaria N x N.
(15).6 \cdot
\frac{N (N -1)}{2} + N = 3N^{2} -
2N
\newpage
Este nivel de cuantificación posibilita que el
codificador represente la matriz unitaria N x N para la
transformación multicanal con un muy buen grado de precisión. Como
una alternativa, el codificador utiliza algún otro nivel y/o tipo de
cuantificación.
La Figura 29 muestra una técnica (2900) para
extraer información para una transformación unitaria genérica para
un grupo de canales entre un flujo de datos de acuerdo con una
sintaxis de grupo de datos concreta. La Figura 29 muestra la
técnica (2900) llevada a cabo por el descodificador para analizar el
flujo de bits; el codificador lleva a cabo una técnica
correspondiente para formatear la información para la transformación
unitaria genérica de acuerdo con la sintaxis del flujo de bits.
Como una alternativa, el descodificador y el codificador utilizan
otra síntesis, por ejemplo, una que utiliza una ordenación o
resolución diferentes para los ángulos de rotación.
En primer lugar, el descodificador inicializa
diversas variables utilizadas en el resto de la descodificación.
Específicamente, el descodificador fija (2910) el número de ángulos
que hay que descodificador #AnglesToDecode en base al número
de canales del grupo de canales #ChannalesInGroup como se
muestra en la Ecuación 14. El descodificador fija también (2912) el
número de signos que hay que descodificar #SignsToDecode en
base a #ChannelsInGroup. El descodificador vuelve a fijar
también (2914, 2916) un contador de ángulos descodificados
iAnglesDecoded y un contador de signos descodificados
iSignsDecoded.
El descodificador verifica (2920) si hay
cualquier ángulo que descodificar, y, si es así, fija (2922) el
valor para el ángulo de rotación siguiente, reconstruyendo el ángulo
de rotación a partir del valor cuantificado de 6 bits.
(16).RotationAngle
[iAnglesDecoded] = \pi * (getBits (6) -
32)/64
El descodificador a continuación incrementa
(2924) el contador de ángulos descodificados y verifica (2920) si
hay cualquier ángulo adicional que descodificar.
Cuando no hay más ángulos que descodificar, el
descodificador verifica (2940) si hay muchos signos que
descodificar, y si es así, fija (2942) el valor del siguiente signo,
reconstruyendo el signo a partir del valor de 1 bit.
(17).RotationSing [iSignsDecoded]
= (2 * getBits (1)) -
1
El descodificador a continuación incrementa
(2944) el contador de signos descodificados y verifica (2940) si hay
cualquier signo adicional que descodificar. Cuando no hay más signos
que descodificar, el descodificador sale.
En algunas formas de realización, un
codificador, como por ejemplo el codificador (600) de la Figura 6,
lleva a cabo la cuantificación y ponderación sobre los datos audio
utilizando las diversas técnicas descritas a continuación. Para una
señal audio multicanal configurada en mosaicos, el codificador
computa y aplica las matrices de cuantificación para canales de
mosaicos, para los modificadores de paso de cuantificación por
canal, y para los factores de mosaicos de cuantificación global.
Ello posibilita que el codificador conforme el ruido de acuerdo con
un modelo auditivo, equilibre el ruido entre canales, y controle la
distorsión global.
Un descodificador correspondiente, como por
ejemplo el descodificador (700) de la Figura 7, lleva a cabo una
cuantificación inversa en una ponderación inversa. Para señales
audio multicanal configuradas en mosaicos, el descodificador
descodifica y aplica unos factores de mosaicos de cuantificación
global, unos modificadores de paso de cuantificación por canal, y
unas matrices de cuantificación para los canales de los mosaicos. La
cuantificación inversa y la ponderación inversa se funden en un
único paso.
En algunas formas de realización, para controlar
la calidad y/o la velocidad de transmisión de bits de los datos
audio de un mosaico, un cuantificador de un codificador computa un
tamaño de paso de cuantificación Q_{t} para el mosaico. El
cuantificador puede trabajar en conjunción con un controlador de
velocidad/calidad para evaluar los diferentes tamaños de paso de
cuantificación para el mosaico antes de seleccionar un tamaño de
paso de cuantificación de mosaicos que satisfaga los
condicionamientos de la velocidad de transmisión de bits y/o de la
calidad. Por ejemplo, el cuantificador y el controlador operan de
acuerdo con lo descrito en la Solicitud de Patente estadounidense
con el número de serie 10/017,694, titulada (Estrategia de Control
de la Calidad y la Velocidad para Señales Audio Digitales''
["Quality and Rate Control Strategy for Digital Audio"],
depositada el 14 de Diciembre de 2001.
La Figura 30 muestra una técnica (3000) para
extraer un factor de cuantificación de mosaicos global de un flujo
de bits de acuerdo con una sintaxis de flujo de bits concreta. La
Figura 30 muestra la técnica (3000) llevada a cabo por el
descodificador para analizar el flujo de bits; el codificador lleva
a cabo una técnica para formatear el factor de cuantificación de
mosaicos de acuerdo con la sintaxis del flujo de bits. Como una
alternativa, el descodificador y el codificador utilizan otra
sintaxis, por ejemplo, una que trabaje con rangos diferentes para
el factor de cuantificación de mosaicos, utilice una lógica
diferente para modificar el factor de mosaicos o descodifique el
factor de los mosaicos.
En primer lugar, el descodificador inicializa
(3010) el tamaño de paso de cuantificación Q_{t} para el
mosaico. En una implementación, el descodificador fija
Q_{t} en:
(18),Q_{t} =
90 \cdot
ValidBitsPerSample/16
donde ValidBitsPerSample es
un número 16 \leq ValidBitsPerSample \leq 24 que se fija
para el descodificador o el clip de audio, o se fija en algún otro
nivel.
A continuación el codificador (3020) obtiene
seis bits indicativos de la primera modificación de Q_{t}
con respecto al valor inicializado de Q_{t}, y almacena el
valor - 32 \leq Tmp \leq 31 en la variable temporal
Tmp. La función SignExtend( )
determina un valor con signo a partir de un valor sin signo. El descodificador suma (3030) el valor de Tmp al valor inicializado de Q_{t}, a continuación determina (3040) el signo de la variable Tmp, el cual es almacenado en la variable SignofDelta.
determina un valor con signo a partir de un valor sin signo. El descodificador suma (3030) el valor de Tmp al valor inicializado de Q_{t}, a continuación determina (3040) el signo de la variable Tmp, el cual es almacenado en la variable SignofDelta.
El descodificador verifica (3050) si el valor de
Tmp igual a - 32 o 31. Si no, el descodificador sale. Si el
valor de Tmp es igual a - 32 o 31, el codificador puede haber
señalado que Q_{t} debe ser modificado en mayor medida. La
dirección (positiva o negativa) de la(s)
modificación(es) adicionales se indica mediante
SignofDelta, 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_{t} en la dirección de
SignofDelta por el valor de Tmp, a continuación
verifica (3080) si el valor de Tmp es 31. Si no, el
descodificador sale. Si el valor de Tmp es 31, el
descodificador obtiene (3060) los siguientes cinco bits y continúa
desde ese punto.
En formas de realización que no utilizan
configuraciones de mosaico, el codificador computa un tamaño de paso
de cuantificación global para una trama u otra porción de datos
audio.
En algunas formas de realización, un codificador
computa un modificador de paso de cuantificación para cada canal de
un mosaico: Q_{c, \ 0}, Q_{c, \ 1}, ...,
Q_{c, \ #ChannelTile \ -1} . El codificador generalmente
computa estos factores de cuantificación específicos de un canal
para equilibrar la calidad de la reconstrucción para todos los
canales. Incluso en formas de realización que no utilizan
configuraciones de mosaicos, el codificador puede también computar
los factores de cuantificación por canal para los canales de una
trama u otra unidad de datos audio. Por el contrario, las técnicas
de cuantificación anteriores, como por ejemplo las utilizadas en el
codificador (100) de la Figura 1, utilizan un elemento de matriz de
cuantificación por banda de una ventana de un canal, pero no tienen
un modificador global para el canal.
La Figura 31 muestra una técnica generalizada
(3100) para la computación de los modificadores de paso de
cuantificación por canal para datos audio multicanal. El
codificador utiliza varios criterios para computar los modificadores
de paso de cuantificación. En primer lugar, el codificador busca
aproximadamente la misma calidad a través de todos los canales de
los datos 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
para la configuración de los altavoces. En tercer lugar, si son
conocidos los tipos de altavoces, el codificador favorece los
mejores altavoces de la configuración de altavoces.
El codificador empieza mediante la regulación
(3110) de los modificadores de paso de cuantificación para los
canales. En una implementación, el codificador fija (3110) los
modificadores en base a la energía de los respectivos canales. Por
ejemplo, para un canal con relativamente más energía (esto es, más
alto) que los otros canales, los modificadores de paso de
cuantificación para los otros canales se ejecutan relativamente más
altos. O, el codificador puede fijar (3110) los modificadores para
igualar los valores inicialmente (en base a la evaluación de
resultados "en bucle cerrado" para converger en los valores
finales de los modificadores).
El codificador cuantifica (3120) los datos audio
multicanal utilizando los modificadores audio de cuantificación así
como otros factores de cuantificación (incluyendo la ponderación) si
dichos otros factores no han sido ya aplicados.
Después de la subsecuente reconstrucción, el
codificador evalúa (3130) la calidad de los canales de la señal
reconstruida utilizando la NER o alguna otra medición de la
calidad. El codificador verifica (3140) si la señal audio
reconstruida satisface los criterios de calidad (y/u otros
criterios) y, si es así, sale. Si no el codificador fija (3110)
unos nuevos valores para los modificadores de paso de
cuantificación, ajustando los modificadores a la vista de los
resultados evaluados. Como una alternativa, para una regulación en
bucle abierto de un paso de los modificadores de paso, el
codificador omite la evaluación (3130) y la verificación (3140).
Los modificadores de paso de cuantificación por
canal tienden a cambiar de ventana/mosaico a ventana/mosaico. El
codificador codifica los modificadores de paso de modificación como
códigos de longitud literales o variables, y a continuación los
empaqueta en el flujo de bits con los datos audio.
La Figura 32 muestra una técnica (3200) para
extraer modificadores de paso de cuantificación por canal a partir
de un flujo de bits de acuerdo con una sintaxis de un flujo de bits
concreta. La Figura 32 muestra la técnica (3200) llevada a cabo por
el descodificador para analizar el flujo de bits; el codificador
lleva a cabo una técnica correspondiente (indicadores de
regulación, datos de empaquetado para los modificadores de paso de
cuantificación, etc.) para formatear los modificadores de paso de
cuantificación de acuerdo con la sintaxis del flujo de bits. Como
una alternativa, el descodificador y el codificador utilizan otras
sintaxis, por ejemplo, una que trabaje con indicadores o lógicas
diferentes para codificar los modificadores de paso de
cuantificación.
La Figura 32 muestra la extracción de los
modificadores de paso de cuantificación por canal para un mosaico.
Como una alternativa, en formas de realización que no utilizan
mosaicos, el descodificador extrae los modificadores de paso por
canal para las tramas u otras unidades de datos audio.
Para empezar, el descodificador verifica (3210)
si el número de canales del mosaico es mayor de 1. Si no, los datos
audio son mono. El descodificador fija (3212) el modificador de paso
de cuantificación para el canal mono en 0 y sale.
Para señales audio multicanal, el descodificador
inicializa las diversas variables. El descodificador obtiene (3220)
unos bits indicativos del número de bits por modificador de paso de
cuantificación (#BitsPerQ) para el mosaico. En una
implementación, el descodificador obtiene tres bits. El
descodificador a continuación fija (3222) un contador de canales
iChannelsDone en 0.
El descodificador verifica (3230) si el contador
de canales es menor que el número de canales del mosaico. Si no,
todos los modificadores de paso de cuantificación de los canales del
mosaico han sido extraídos, y el descodificador sale.
Por otro lado, si el contador de canales es
inferior al número de canales del mosaico, el descodificador obtiene
(3232) un bit y verifica (3240) el bit para determinar si el
modificador de paso de cuantificación del canal actual es 0. Si es
así, el descodificador fija (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 verifica (3250) si
#bitsPerQ es mayor de 0, para determinar si el modificador de
paso de cuantificación para el canal actual es 1. Si es así, el
descodificador fija (3252) el modificador de paso de cuantificación
para el canal actual en 1.
Si #BitsPerQ es mayor de 0, el
descodificador obtiene los siguientes #BitsPerQ del flujo de
bits, añade 1 (dado que el valor de 0 desencadena una condición de
salida anterior), y fija (3260) el modificador de paso de
cuantificación para el canal actual respecto del resultado.
Después de que el descodificador fija el
modificador de paso de cuantificación para el canal actual, el
descodificador incrementa (3270) el contador de canales y verifica
(3230) si el contador de canales es menor que el número de canales
del mosaico.
En algunas formas de realización, un codificador
computa una matriz de cuantificación para cada canal de un mosaico.
El codificador mejora en relación con las técnicas de cuantificación
anteriores, como por ejemplo las utilizadas en el codificador (100)
de la Figura 1. Para una compresión con pérdidas 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
posibilita que el codificador cambie la resolución de los elementos
de las matrices de cuantificación. Al margen de esta
característica, el cuantificador aprovecha la correlación temporal
de los valores de las matrices de cuantificación durante la
compresión de las matrices de cuantificación.
De acuerdo con lo anteriormente expuesto, una
matriz de cuantificación sirve como una formación de tamaños de
paso, un valor de paso por banda de frecuencia bark (u otra banda de
cuantificación tabica de otra forma) para cada canal de un mosaico.
El codificador utiliza unas matrices de cuantificación para
"colorear" la señal audio reconstruida para tener una forma
espectral comparable con la de la señal original. El codificador
generalmente determina las matrices de cuantificación en base a las
psicoacústica y comprime las matrices de cuantificación para
reducir la velocidad de transmisión de bits. La compresión de las
matrices de cuantificación puede ser con pérdidas.
Las técnicas descritas en esta sección se
describen con referencia a las matrices de cuantificación para
canales de mosaicos. Para la anotación, supongamos que
Q_{m,iChannel,iBand } representan el elemento de matriz de
cuantificación para el canal iChannel para la banda
iBand. En determinadas formas de realización que no utilizan
configuraciones de mosaicos, el codificador puede utilizar también
un tamaño de paso para los elementos de las matrices de
cuantificación y/o aprovechar la correlación temporal de los valores
de las matrices de cuantificación durante la compresión.
La Figura 33 muestra una técnica generalizada
(3300) para regular de forma adaptativa un tamaño de paso de
cuantificación para los elementos de las matrices de cuantificación.
Esto posibilita que el codificador cuantifique la información de
máscara de forma burda o precisa. En una implementación, el
codificador fija el tamaño de paso de cuantificación para los
elementos de la matriz de cuantificación sobre una base de canal
por canal para un mosaico (esto es, la base matriz por matriz cuando
cada canal del mosaico tiene una matriz).
Como una alternativa, el codificador fija el
tamaño de paso de cuantificación para los elementos de la máscara
sobre una base de mosaico por mosaico o de trama por trama, para una
entera secuencia audio, o en algún otro nivel.
El codificador empieza por fijar (3310) un
tamaño de paso de cuantificación para una (o más) máscara(s).
(El número de máscaras afectadas dependen 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 señal audio
reconstruida durante algún periodo 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 la máscara. La medición
de la calidad evaluada por el codificador es la NER para una
o más tramas previamente codificadas. Por ejemplo, si la calidad
global es deficiente, el codificador puede fijar (3310) un valor
más alto para el tamaño de paso de cuantificación para la
identificación de la máscara, dado que la resolución de la matriz
de cuantificación no es un uso eficaz de la velocidad de
transmisión de bits. Por otro lado, si la calidad global es buena,
el codificador puede fijar (3310) un valor más bajo para el tamaño
de paso de cuantificación para la identificación de la máscara, dado
que una mejor resolución de la matriz de cuantificación puede
eficazmente mejorar la calidad percibida. Como una alternativa, el
codificador utiliza otra medición de la calidad, la evaluación a lo
largo de un periodo diferente, y/u otros criterios en una estimación
en bucle abierto del tamaño de paso de cuantificación. El
codificador puede también utilizar tamaños de paso de
cuantificación diferentes o adicionales. O, el codificador puede
omitir la estimación en bucle abierto, en lugar de basarse en
resoluciones de resultados en bucle cerrado para converger en el
valor final del tamaño de paso.
El codificador cuantifica (3320) las una o más
matrices de cuantificación utilizando el tamaño de paso de
cuantificación de los elementos de la máscara, y pondera y
cuantifica los datos audio multicanal.
Después de la subsecuente reconstrucción, el
codificador evalúa (3330) la calidad de la señal audio reconstruida
utilizando una NER o alguna otra medición de la calidad. El
codificador verifica (3340) si la calidad de la señal audio
reconstruida justifica la regulación actual del tamaño de paso de
cuantificación para la identificación de la máscara. Si no, el
codificador puede fijar (3310) un valor más alto o más bajo de
tamaño de paso de cuantificación para la información de máscara. En
otro caso, el codificador sale. Como una alternativa, para una
regulación de un bucle de un paso de tamaño de paso de la
cuantificación para la información de la máscara, el codificador
omite la evaluación (3330) y la verificación (3340).
Después de la selección, el codificador indica
el tamaño de paso de cuantificación para la información de la
máscara en el nivel apropiado del flujo de bits.
La Figura 34 muestra una técnica generalizada
(3400) para extraer un tamaño de paso de cuantificación para los
elementos de la matriz de cuantificación. El descodificador puede
así cambiar el tamaño de paso de cuantificación para los elementos
de paso sobre una base de canal por canal para un mosaico sobre una
base de mosaico por mosaico o de trama por trama para una secuencia
de audio o en algún otro nivel.
El descodificador empieza por obtener (3410) un
tamaño de paso de cuantificación para una (o más) máscara (s). (El
número de máscaras afectadas depende del nivel en el cual el
codificador asignó 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 la máscara. Como una alternativa,
el codificador y el descodificador utilizan tamaños de paso de
cuantificación diferentes o adicionales para la información de la
máscara.
El descodificador a continuación efectúa una
codificación inversa (3420) de las una o más matrices de
cuantificación utilizando el tamaño de paso de cuantificación para
la información de la máscara, y reconstruye los datos audio
multicanal.
La Figura 35 muestra una técnica generalizada
(3500) de compresión de matrices de cuantificación utilizando una
predicción temporal. Con la técnica (3500), el codificador aprovecha
una correlación temporal de los valores de máscara. Ello reduce la
velocidad de transmisión de bits asociada con las matrices de
cuantificación.
Las Figuras 35 y 36 muestran la predicción
temporal para matrices de cuantificación en un canal de una trama
de datos audio. Como una alternativa, un codificador comprime las
matrices de cuantificación utilizando una predicción temporal entre
múltiples tramas a través de alguna otra secuencia de audio, o para
una configuración diferente de matrices de cuantificación.
Con referencia a la Figura 35, el codificador
obtiene (3510) unas matrices de cuantificación para una trama. Las
matrices de cuantificación para una trama. Las matrices de
cuantificación de un canal tienden a ser las mismas de ventana a
ventana, convirtiéndolas en buenos candidatos para una codificación
predictiva.
El codificador a continuación codifica (3520)
las matrices de cuantificación utilizando una predicción temporal.
Por ejemplo, el codificador utiliza la técnica (3600) mostrada en la
Figura 36. Como una alternativa, el codificador utiliza otra técnica
con predicción temporal.
\newpage
El codificador determina (3530) si hay más
matrices que comprimir y, en caso contrario, sale. En otro caso, el
codificador obtiene las matrices de cuantificación siguientes. Por
ejemplo, el codificador verifica si las matrices de la trama
siguiente están disponibles para la codificación.
La Figura 36 muestra una técnica más detallada
(3600) de compresión de matrices de cuantificación en un canal que
utiliza una predicción temporal en una implementación.
La predicción temporal utiliza un proceso de
nuevo muestreo a través de mosaicos de diferentes tamaños de ventana
y utiliza una codificación de run-level sobre
los residuales de predicción para reducir la velocidad de
transmisión de bits.
El codificador inicia (3610) la compresión para
la siguiente matriz de cuantificación que va a ser comprimida y
verifica (3620) si está disponible una matriz de anclaje, lo cual
generalmente depende de si la matriz es la primera de su canal. Si
una matriz de anclaje no está disponible, el codificador
directamente comprime (3630) la matriz de cuantificación. Por
ejemplo, el codificador codifica de forma diferencial los elementos
de la matriz de cuantificación (donde la diferencia de un elemento
es relativa respecto del elemento de la banda anterior) y asigna
los códigos de Huffman a los diferenciales. Para el primer elemento
de la matriz (esto es, el elemento de la máscara para la banda 0),
el codificador utiliza una constante de predicción que depende del
tamaño de paso de cuantificación para los elementos de la
máscara.
(19).PredConst
=
45/MaskQuantMultiplier_{iChannel}
Como una alternativa, el codificador utiliza
otra técnica de compresión para la matriz de anclaje.
El codificador a continuación fija (3640) la
matriz de cuantificación como matriz de anclaje como canal de la
trama. Cuando el codificador utiliza mosaicos, el mosaico que
incluye la matriz de anclaje para un canal puede llamarse el
mosaico de anclaje. El codificador anota el tamaño de la matriz de
anclaje o el tamaño del mosaico para el mosaico de anclaje, que
puede ser utilizado para formar predicciones para las matrices con
un tamaño diferente.
Por otro lado, si está disponible una matriz de
anclaje, el codificador comprime la matriz de codificación
utilizando una predicción temporal. El codificador computa (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 es los elementos de la matriz de anclaje. Si
la matriz de cuantificación que está siendo comprimida tiene un
número diferente de bandas que la matriz de anclaje, sin embargo, el
codificador vuelve a muestrear la matriz de anclaje para computar la
predicción.
El proceso de nuevo muestreo utiliza el tamaño
de la matriz que está siendo comprimida/el tamaño del mosaico actual
y el tamaño de la matriz de anclaje/tamaño del mosaico de
anclaje.
(20),MaskPrediction [iBand] =
AnchorMask
[iScaleBand]
donde iScaleBand es la banda
de la matriz de anclaje que incluye la frecuencia representativa
(por ejemplo, la media) de iBand. iBand es en términos
de la matriz de cuantificación actual/tamaño de mosaico actual
mientras que iScaleBand es en términos de la matriz de
anclaje/tamaño del mosaico de
anclaje.
La Figura 37 ilustra una técnica de nuevo
muestreo de la matriz de anclaje cuando el codificador utiliza
mosaicos. La Figura 37 muestra un cartografiado ejemplar (3700) de
bandas de un mosaico actual respecto de bandas de un mosaico de
anclaje para formar una predicción. Las frecuencias en la mitad de
los límites (3720) de las bandas de la matriz de cuantificación del
mosaico actual son cartografiadas (3730) respecto de las frecuencias
de la matriz de anclaje del mosaico de anclaje. Los valores para la
predicción de la máscara son fijados dependiendo de cuándo las
frecuencias cartografiadas son relativas con respecto a los límites
(3710) de las bandas de la matriz de anclaje del mosaico de
anclaje. Como una alternativa, el codificador utiliza una predicción
actual con respecto a la matriz de cuantificación precedente del
canal o alguna otra matriz precedente, o utiliza otra técnica de
nuevo muestreo.
Volviendo a la Figura 36, el codificador computa
(3660) un residual de la matriz de cuantificación con respecto a
la predicción. En teoría, la predicción es perfecta y el residual no
tiene energía. Si es necesario, sin embargo, el codificador
codifica (3670) el residual. Por ejemplo, el codificador utiliza una
codificación run-level u otra técnica de
compresión para el residual de la predicción.
El codificador a continuación determina (3680)
si hay más matrices que deben ser comprimidas y, si no, sale. En
otro caso, el codificador obtiene (3610) la siguiente matriz de
cuantificación y continúa.
La Figura 38 muestra una técnica (3800) para
extraer y descodificar matrices de cuantificación comprimidas
utilizando una predicción temporal de acuerdo con una sintaxis de
flujo de bits concreta. Las matrices de cuantificación son para los
canales de un único mosaico de una trama. La Figura 38 muestra una
técnica (3800) llevada a cabo por el descodificador para analizar
información dentro del flujo de bits; el codificador lleva a cabo
una técnica correspondiente. Como una alternativa, el descodificador
y el codificador utilizan otra sintaxis para una o más de las
opciones mostradas en la Figura 38, por ejemplo, una que utilice o
una ordenación diferente, o una que no utilice mosaicos.
El descodificador verifica (3810) si el
codificador ha llegado al principio de una trama. Si es así, el
descodificador marca (3812) todas las matrices de anclaje para la
trama como que no están siendo fijadas.
El descodificador a continuación verifica (3820)
si la matriz de anclaje está disponible en el canal de la siguiente
matriz de cuantificación que va a ser modificada. Si no hay ninguna
matriz disponible, el descodificador obtiene (3830) el tamaño de
paso de cuantificación de la matriz de cuantificación del canal. En
una implementación, el descodificador obtiene el valor 1, 2, 3, o 4
dB.
(21).MaskQuantMultiplier_{iChannel}
= obtenerBits (2) +
1
El descodificador a continuación descodifica
(3832) la matriz de anclaje del canal. Por ejemplo, el
descodificador Huffman descodifica los elementos codificados de
manera diferencial de la matriz de anclaje (donde la diferencia
para un elemento es relativa respecto del elemento de la banda
anterior) y reconstruye los elementos. Para el primer elemento, el
descodificador utiliza la constante de predicción utilizada en el
codificador.
(22).PredConst
=
45/MaskQuantMultiplier_{iChannel}
Como una alternativa, el descodificador utiliza
otra técnica de descompresión para la matriz de anclaje de un canal
de la trama.
El descodificador a continuación fija (3834) la
matriz de cuantificación como matriz de anclaje del canal de la
trama y fija los valores de la matriz de cuantificación del canal
para los de la matriz de anclaje.
(23).Q_{m, \
iChannel, \ IBand} = AnchorMask
[iBand]
El descodificador anota también el tamaño de
mosaico del mosaico de anclaje el cual puede ser utilizado para
formar predicciones para las matrices de los mosaicos con un tamaño
diferente del mosaico de anclaje.
Por otro lado, si una matriz de anclaje está
disponible para el canal, el descodificador descomprime la matriz
de cuantificación utilizando una predicción temporal. El
descodificador computa (3840) 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 para el mosaico actual tiene el mismo
número de bandas que la matriz de anclaje, la predicción es los
elementos de la matriz de anclaje. Si la matriz de cuantificación
para el mosaico actual tiene un número de bandas diferentes que la
matriz de anclaje, sin embargo, el codificador vuelve a muestrear la
matriz de anclaje para obtener la predicción, por ejemplo,
utilizando el tamaño de mosaico actual y el tamaño de mosaico de
anclaje como se muestra en la Figura 37.
(24).MaskPrediction [iBand] =
AnchorMask
[iScaledBand]
Como una alternativa, el descodificador utiliza
una predicción temporal con respecto a la matriz de cuantificación
precedente del canal o alguna otra matriz precedente, o utiliza otra
técnica de nuevo muestreo.
El descodificador obtiene (3842) el bit
siguiente del flujo de bits y verifica (3850) si el flujo de bits
incluye un residual para la matriz de cuantificación. Si no hay una
actualización de máscara para este canal en el mosaico actual, el
residual de predicción de máscara es 0, de forma que:
(25).Q_{m, \
iChannel, \ iBand} = MaskPrediction
[iBand]
Por otro lado, si hay una residual de
predicción, el descodificador descodifica (3852) el residual, por
ejemplo, utilizando una descodificación de nivel de ejecución o
alguna otra técnica de descompresión. El descodificador a
continuación suma (3854) el residual de predicción a la predicción
para reconstruir la matriz de cuantificación. Por ejemplo, la
adición es una adición escalar simple sobre una base de banda por
banda para obtener el elemento para la banda iBand para el
canal actual iChannel:
(26).Q_{m, \
iChannel, \ iBand} = MaskPrediction [iBand] + MaskPredResidual
[iBand]
El descodificador a continuación verifica (3860)
si las matrices de cuantificación para todos los canales del mosaico
actual han sido descodificadas y, si es así, sale. En otro caso, el
descodificador continúa descodificando para la siguiente matriz de
cuantificación del mosaico actual.
Una vez que el descodificador extrae toda la
información de cuantificación y ponderación necesaria, el
descodificador efectúa una cuantificación inversa y una ponderación
inversa de los datos audio. En una implementación, el
descodificador lleva a cabo la cuantificación inversa y la
ponderación inversa en un paso, lo cual se muestra en las ecuaciones
de abajo por razones de claridad de impresión.
(27a),CombinedQ
= Q_{1} + Q_{c, \ iChannel} - (Max (Q_{m, \ iChannel,}
\bullet) - Q_{m, \ iChannel, Iband}) \cdot
MaskQuantMultiplier_{iChannel}
{}\hskip1cm
(27b).y_{iqw}
[n] = 10 ^{CombinedQ/20} \cdot x_{iqw}
[n]
donde x_{iqw} es la entrada (por
ejemplo un coeficiente inverso MC transformado) del canal
iChannel, y n es un índice de coeficiente de la banda
iBand. Max (Q_{m, \ iChannel}, \bullet) es el valor de
máscara máximo del canal iChannel por todas las bandas. (La
diferencia entre los factores de ponderación mayores y más pequeños
para una máscara es típicamente mucho menor que el rango de los
valores potenciales para los elementos de la máscara, de forma que
la cantidad del ajuste de cuantificación por factor de ponderación
se computa con respecto al máximo).
MaskQuantMultiplier_{iChannel} es el multiplicador de paso
de cuantificación de la máscara para la matriz de cuantificación
del canal iChannel e y_{iqw} es la salida de este
paso.
Como una alternativa, el descodificador lleva a
cabo la cuantificación y la ponderación inversas separadamente o
utilizando técnicas diferentes.
En algunas formas de realización, un
descodificador, como por ejemplo el descodificador (700) de la
Figura 7, lleva a cabo un postprocesamiento multicanal sobre las
muestras audio reconstruidas en el dominio temporal.
El postprocesamiento multicanal puede ser
utilizado para muchas finalidades distintas. Por ejemplo, el número
de canales descodificados puede ser inferior al número de canales de
salida (por ejemplo, porque el codificador eliminó uno o más
canales de entrada o canales transformados multicanal para reducir
la complejidad de la codificación o la plenitud de la memoria
intermedia). En este caso, puede utilizarse una transformación de
postprocesamiento multicanal para crear uno o más canales fantasma
en base a los datos reales de los canales descodificados. O,
incluso si el número de canales descodificados es igual al número de
canales de salida, la transformación de postprocesamiento puede
utilizarse para una rotación espacial arbitraria de la presentación,
mediante el recartografiado de 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, reproduciendo una
señal de audio de sonido envolvente en un equipo estéreo), la
transformación de postprocesamiento puede utilizarse para
"reconvertir" canales. En algunas formas de realización, los
coeficientes de reconversión varían potencialmente con el tiempo
-el postprocesamiento multicanal es controlado por el flujo de
bits. Las matrices de transformación para estos escenarios y
aplicaciones pueden ser suministradas o señaladas por el
codificador.
La Figura 39 muestra una técnica generalizada
(3900) de un postprocesamiento multicanal. El descodificador
descodifica (3910) los datos audio multicanal codificados (3905)
utilizando las técnicas mostradas en la Figura 7 u otras técnicas
de descompresión, produciendo unos datos audio multicanal de dominio
temporal reconstruidos (3915).
El descodificador a continuación lleva a cabo
(3920) un postprocesamiento multicanal sobre los datos audio
multicanal de dominio temporal (3915). Por ejemplo, cuando el
codificador produce unos canales descodificados M y el
descodificador emite de salida unos canales N, el
postprocesamiento implica una transformación general de M a
N. El descodificador toma unas muestras cosituadas (en el
tiempo) M, una de cada uno de los canales codificados
M reconstruidos, a continuación rellena cualquier canal que
falte (esto es, los canales suprimidos N - M por el
codificador) con ceros. El descodificador multiplica las muestras
N con una matriz A_{post}.
(28),y_{post}
= A_{post} \cdot
x_{post}
donde x_{post} e
y_{post} son la entrada de los canales N y la salida
procedente del postprocesamiento multicanal, A_{post} es
una matriz de transformación N x N general y
x_{post} es rellenado con ceros para corresponderse con la
longitud del vector de salida
N.
La matriz A_{post} puede ser una matriz
con elementos predeterminados, o puede ser una matriz general con
elementos especificados por el codificador. El codificador señala
al descodificador el uso de una matriz predeterminada (por ejemplo,
con uno o más bits indicadores) y envía los elementos de una matriz
general al descodificador, o el descodificador puede ser
configurado para utilizar siempre la misma matriz A_{post}.
La matriz A_{post} no necesita poseer especiales
características como el ser simétrica o invertible. Para obtener
una flexibilidad adicional, el postprocesamiento multicanal puede
ser activado/desactivado sobre una base de trama por trama u otra
base (en cuyo caso, el descodificador puede utilizar una matriz de
identidad para dejar inalterados los canales).
La Figura 40 muestra una matriz ejemplar
A_{p-center} (4000) utilizada para crear un
canal central fantasma de los canales izquierdo y derecho en un
entorno de reproducción del canal 5.1 con los canales ordenados como
se muestra en la Figura 4. La matriz ejemplar
A_{p-center} (4000) pasa a los otros
canales inalterada. El descodificador obtiene muestras cosituadas
en el tiempo desde los canales izquierdo, derecho, de
subwoofer, trasero izquierdo, y trasero derecho, y rellena
el canal central con 0s. El codificador a continuación multiplica
las seis muestras de entrada por la matriz
A_{p-center} (4000).
Como una alternativa, el descodificador utiliza
una matriz con coeficientes diferentes o un número diferente de
canales. Por ejemplo, el descodificador utiliza una matriz para
crear unos canales fantasma en un canal 7.1 o un canal 9.1, u otro
entorno de reproducción a partir de canales codificados para una
señal audio multicanal 5.1.
La Figura 41 muestra una técnica (4100) para un
postprocesamiento multicanal en el cual la matriz de transformación
potencialmente cambia sobre una base de trama por trama. El cambio
de la matriz de transformación puede conducir a un ruido audible
(por ejemplo, pum) en la salida final si no se maneja
cuidadosamente. Para evitar introducir el ruido de pum, el
descodificador gradualmente efectúa una transición de una matriz de
transformación a otra entre tramas.
El descodificador primeramente descodifica
(4110) los datos audio multicanal codificados para una trama,
utilizando las técnicas mostradas en la Figura 7 u otras técnicas de
descompresión y produce datos audio multicanal de dominio temporal
reconstruidos. El descodificador a continuación obtiene (4120) la
matriz de postprocesamiento para la trama, por ejemplo, como se
muestra en la Figura 42.
El descodificador determina (4130) si la matriz
de la trama actual es diferente de la matriz de la trama anterior
(si es que había una trama anterior). Si la matriz actual es la
misma o no hay una matriz anterior, el descodificador aplica (4140)
la matriz a las muestras audio reconstruidas para la trama actual.
En otro caso, el descodificador aplica (4150) una matriz de
transformación mezclada a las muestras audio reconstruidas para la
trama actual. La función de mezcla depende de la implementación. En
una implementación, en la muestra i de la trama actual el
descodificador utiliza una matriz mezclada a corto plazo
A_{post, \ i}.
(30),A_{post,
\ i} = \frac{NumSamples - i}{NumSamples} A_{post, \ prev} +
\frac{i}{NumSamples} A_{post, \
actual}
donde A_{post, \ prev} y
A_{post. \ actual} son las matrices postprocesamiento para
las tramas previa y actual, respectivamente, y NumSamples es
el número de muestras de la trama actual. Como una alternativa, el
descodificador utiliza otra función de mezcla para suavizar las
discontinuidades de las matrices de transformación
postprocesamiento.
El descodificador repite la técnica (4100) sobre
una base de trama por trama. Como una alternativa, el descodificador
cambia el postprocesamiento multicanal sobre otra base.
La Figura 42 muestra una técnica (4200) para la
identificación y extracción de una matriz de transformación para un
postprocesamiento multicanal de acuerdo con una sintaxis de un flujo
de bits concreto. La sintaxis posibilita la especificación de las
matrices de transformación predefinidas así como de las matrices
personalizadas para el postprocesamiento multicanal. La Figura 42
muestra la técnica (4200) llevada a cabo por el descodificador para
analizar el flujo de bits; el codificador lleva a cabo una técnica
correspondiente (establecimiento de indicadores, empaquetado de
datos para elementos, etc.) para formatear la matriz de
transformación de acuerdo con la sintaxis del flujo de bits. Como
una alternativa, el descodificador y el codificador utilizan otras
sintaxis para una o más de las opciones mostradas en la Figura 42,
por ejemplo, una que utilice diferentes indicadores o una ordenación
diferente.
En primer lugar, el descodificador determina
(4210) si el número de canales #Channels es mayor de 1. Si
#Channels es 1, los datos audio son mono, y el
descodificador utiliza (4212) una matriz de identidad (esto es, no
lleva a cabo ningún postprocesamiento multicanal propiamente
dicho).
Por otro lado, si #Channels es > 1, el
descodificador fija (4220) un valor temporal iTmp igual al
bit siguiente del flujo de bits. El descodificador a continuación
verifica (4230) el valor del valor temporal, el cual señala si el
descodificador debe o no utilizar (4232) una matriz de
identidad.
Si el descodificador utiliza algo distinto de
una matriz de identidad para la señal audio multicanal, el
descodificador fija (4240) el valor temporal iTmp igual al
bit siguiente del flujo de bits. El descodificador a continuación
verifica (4250) el valor del valor temporal, el cual señala si el
descodificador debe o no utilizar (4252) una matriz de
transformación multicanal predefinida. Si el descodificador utiliza
(4252) una matriz predefinida, el descodificador puede obtener uno
o más bits adicionales a partir del flujo de bits (no mostrado) que
indiquen cuál de las diversas matrices predefinidas disponibles del
descodificador debe utilizarse.
Si el descodificador no utiliza una matriz
predefinida, el descodificador inicializa diversos valores
temporales para la descodificación de una matriz personalizada. El
descodificador fija (4260) un contador iCoefsDone para
coeficientes llevados a cabo hasta 0 y fija (4262) el número de
coeficientes #CoefsToDo para descodificar hasta igualar el
número de elementos de la matriz (#Channels^{2} ). Para
matrices conocidas que tengan propiedades particulares (por
ejemplo, simétricas), el número de coeficientes que descodificar
puede reducirse. El descodificador a continuación determina (4270)
si todos los coeficientes han sido extraídos del flujo de datos y,
si es así, finaliza. En otro caso, el descodificador obtiene (4272)
el valor del siguiente elemento A [iCoefsDone] de la matriz
e incrementa (4274) iCoefsDone. La forma en que los elementos
son codificados y empaquetados dentro del flujo de bits depende de
la implementación. En la Figura 42, la sintaxis permite cuatro bits
de precisión por elemento de la matriz de transformación, y el valor
absoluto para cada elemento es menor de o igual a 1. En otras
implementaciones, la precisión por elemento es diferente, el
codificador y el descodificador utilizan la compresión para
explotar pautas de redundancia de la matriz de transformación, y/o
la sintaxis difiere de alguna otra forma.
Después de describir e ilustrar los principios
de la invención con referencia a las formas de realización
descritas, debe advertirse que las formas de realización descritas
pueden ser modificadas en cuanto a disposición y detalle sin
apartarse de dichos principios. Debe entenderse que los programas,
procesos, o procedimientos descritos en la presente memoria no
están relacionados o limitados con cualquier tipo concreto de
entorno informático, a menos que se indique lo contrario. Pueden
utilizarse diversos tipos de entornos informáticos de propósito
general o especializado o llevar a cabo operaciones de acuerdo con
las enseñanzas descritas en la presente memoria. Los elementos de
las formas de realización descritas mostrados en software pueden ser
implementados en hardware y viceversa.
Claims (21)
1. Un procedimiento de codificación audio
implementado por computadora que comprende:
la recepción de los datos audio en una
pluralidad de canales;
la tabicación de cada canal de la pluralidad de
canales en ventanas de tamaño variable, en el que la configuración
de ventana de cada canal de los diversos canales es independiente de
los otros canales de la pluralidad de canales;
la agrupación de las ventanas en una pluralidad
de mosaicos, en el que para cada una de la pluralidad de mosaicos
las ventanas agrupadas en el mosaico tienen unas posiciones de
partida idénticas y unas posiciones finales idénticas; y
la cuantificación de los datos audio, que
incluye para un mosaico de la pluralidad de mosaicos la aplicación
de un factor de cuantificación específica de un canal para cada
canal de la pluralidad de canales para las ventanas agrupadas en el
mosaico y la aplicación de un factor de cuantificación general de
mosaico para el mosaico.
2. El procedimiento de la reivindicación 1 en el
que la pluralidad de canales se compone de dos canales.
3. El procedimiento de la reivindicación 1 en el
que la pluralidad de canales se compone de más de dos canales.
4. El procedimiento de la reivindicación 1 en el
que los factores de cuantificación específicos de un canal son
modificadores de paso de cuantificación específicos de un canal.
5. El procedimiento de la reivindicación 4 en el
que la aplicación de los modificadores equilibra la calidad de la
reconstrucción perceptual a través de la pluralidad de canales.
6. El procedimiento de la reivindicación 1 que
comprende también, en el codificador, la computación de los factores
de cuantificación en base al menos en parte a uno o más
criterios.
7. El procedimiento de la reivindicación 6 en el
que los criterios incluyen la igualdad de la calidad de la
reconstrucción a través de la pluralidad de canales.
8. El procedimiento de la reivindicación 6 en el
que los criterios incluyen el favorecimiento de uno o más de la
pluralidad de canales que son más importantes que los otros canales
en términos perceptuales.
9. El procedimiento de la reivindicación 6 en el
que la computación se basa al menos en parte en las energías
respectivas de la pluralidad de canales.
10. El procedimiento de la reivindicación 1 que
comprende también, en el codificador, la computación de los factores
de cuantificación mediante una estimación en bucle abierto.
11. El procedimiento de la reivindicación 1 que
comprende también, en el codificador, la computación de los factores
de cuantificación mediante una evaluación en bucle cerrado.
12. El procedimiento de la reivindicación 1 en
el que el factor global de cuantificación de mosaico es un tamaño de
paso de cuantificación de mosaico.
13. Un medio legible por computadora que
almacena unas instrucciones ejecutables por computadora para
provocar que una computadora así programada lleve a cabo el
procedimiento de la reivindicación 1.
14. Un procedimiento de descodificación audio
implementado por computadora que comprende:
la recepción de datos audio codificados en una
pluralidad de canales;
la extracción de información para uno o más
tamaños globales de paso de cuantificación de mosaico, y una
pluralidad de modificadores de paso de cuantificadores específicos
de un canal para uno o más mosaicos, agrupando cada uno de los uno o
más mosaicos una pluralidad de ventanas que:
están en canales diferentes de la pluralidad de
canales; y
tienen unas posiciones de partida idénticas y
unas posiciones finales idénticas; y
la descodificación de los datos audio, que
incluye para un mosaico de los uno o más mosaicos la aplicación de
los uno o más tamaños globales de paso de cuantificación de mosaico
para el mosaico y la aplicación de uno de los modificadores de paso
de cuantificador específicos de un canal para cada canal de la
pluralidad de canales para las ventanas agrupadas en el mosaico en
una cuantificación inversa.
15. El procedimiento de la reivindicación 14 en
el que la pluralidad de canales está compuesta por dos canales.
16. El procedimiento de la reivindicación 14 en
el que la pluralidad de canales está compuesta por más de dos
canales.
17. El procedimiento de la reivindicación 14 en
el que la extracción incluye la obtención de una pluralidad de bits
que indica la precisión de la pluralidad de modificadores de paso de
cuantificador específicos de un canal.
18. El procedimiento de la reivindicación 14 en
el que la extracción incluye la obtención de un solo bit por
modificador para indicar si el modificador tiene un valor de
cero.
19. El procedimiento de la reivindicación 14 en
el que la aplicación es parte de un paso combinado para la
cuantificación, en el que el paso combinado para la cuantificación
lleva a cabo una cuantificación inversa y una ponderación inversa, y
en el que para cada uno de los diversos coeficientes de los datos
audio el paso combinado incluye una única multiplicación por una
cantidad total de cuantificación.
20. Un medio legible por computadora que
almacena unas instrucciones ejecutables por computadora para
provocar que una computadora así programada lleve a cabo el
procedimiento de la reivindicación 14.
21. El procedimiento de la reivindicación 14 en
el que la extracción incluye, para un mosaico de los uno o más
mosaicos, la obtención de una pluralidad de bits que indica una
modificación de un tamaño de paso de cuantificación de mosaico
global inicial para el mosaico.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40851702P | 2002-09-04 | 2002-09-04 | |
US408517P | 2002-09-04 | ||
US10/642,551 US7299190B2 (en) | 2002-09-04 | 2003-08-15 | Quantization and inverse quantization for audio |
US642551P | 2003-08-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2316679T3 true ES2316679T3 (es) | 2009-04-16 |
Family
ID=31981597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03020111T Expired - Lifetime ES2316679T3 (es) | 2002-09-04 | 2003-09-04 | Cuantificacion y cuantificacion inversa para señales audio. |
Country Status (6)
Country | Link |
---|---|
US (2) | US8069052B2 (es) |
EP (3) | EP2023340A3 (es) |
JP (2) | JP4676140B2 (es) |
AT (1) | ATE418136T1 (es) |
DE (2) | DE60325310D1 (es) |
ES (1) | ES2316679T3 (es) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006003993A1 (ja) | 2004-07-02 | 2006-01-12 | Nippon Telegraph And Telephone Corporation | 多チャネル信号符号化方法、その復号化方法、これらの装置、プログラム及びその記録媒体 |
EP1780705B1 (en) * | 2004-08-19 | 2011-01-12 | Nippon Telegraph And Telephone Corporation | Multichannel signal decoding method, device, program, and its recording medium |
US7787631B2 (en) * | 2004-11-30 | 2010-08-31 | Agere Systems Inc. | Parametric coding of spatial audio with cues based on transmitted channels |
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 |
AU2006255662B2 (en) * | 2005-06-03 | 2012-08-23 | Dolby Laboratories Licensing Corporation | Apparatus and method for encoding audio signals with decoding instructions |
US8626503B2 (en) | 2005-07-14 | 2014-01-07 | Erik Gosuinus Petrus Schuijers | Audio encoding and decoding |
EP2088580B1 (en) * | 2005-07-14 | 2011-09-07 | Koninklijke Philips Electronics N.V. | Audio decoding |
US7702407B2 (en) * | 2005-07-29 | 2010-04-20 | Lg Electronics Inc. | Method for generating encoded audio signal and method for processing audio signal |
JP4859925B2 (ja) | 2005-08-30 | 2012-01-25 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号デコーディング方法及びその装置 |
KR101169280B1 (ko) * | 2005-08-30 | 2012-08-02 | 엘지전자 주식회사 | 오디오 신호의 디코딩 방법 및 장치 |
DE102006055737A1 (de) * | 2006-11-25 | 2008-05-29 | Deutsche Telekom Ag | Verfahren zur skalierbaren Codierung von Stereo-Signalen |
US8818796B2 (en) | 2006-12-12 | 2014-08-26 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Encoder, decoder and methods for encoding and decoding data segments representing a time-domain data stream |
US8612237B2 (en) * | 2007-04-04 | 2013-12-17 | Apple Inc. | Method and apparatus for determining audio spatial quality |
US8457958B2 (en) * | 2007-11-09 | 2013-06-04 | Microsoft Corporation | Audio transcoder using encoder-generated side information to transcode to target bit-rate |
JP4929200B2 (ja) * | 2008-02-13 | 2012-05-09 | パイオニア株式会社 | 受信装置、音声再生方法、音声再生プログラム及びその記録媒体 |
CN102292769B (zh) * | 2009-02-13 | 2012-12-19 | 华为技术有限公司 | 一种立体声编码方法和装置 |
JP5533502B2 (ja) * | 2010-09-28 | 2014-06-25 | 富士通株式会社 | オーディオ符号化装置、オーディオ符号化方法及びオーディオ符号化用コンピュータプログラム |
US8620166B2 (en) * | 2011-01-07 | 2013-12-31 | Raytheon Bbn Technologies Corp. | Holevo capacity achieving joint detection receiver |
KR101854469B1 (ko) * | 2011-11-30 | 2018-05-04 | 삼성전자주식회사 | 오디오 컨텐츠의 비트레이트 판단장치 및 방법 |
TWI453733B (zh) * | 2011-12-30 | 2014-09-21 | Nyquest Corp Ltd | 音訊量化編解碼裝置及其方法 |
US9070362B2 (en) | 2011-12-30 | 2015-06-30 | Nyquest Corporation Limited | Audio quantization coding and decoding device and method thereof |
US9336791B2 (en) * | 2013-01-24 | 2016-05-10 | Google Inc. | Rearrangement and rate allocation for compressing multichannel audio |
JP6179122B2 (ja) * | 2013-02-20 | 2017-08-16 | 富士通株式会社 | オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム |
EP3014609B1 (en) | 2013-06-27 | 2017-09-27 | Dolby Laboratories Licensing Corporation | Bitstream syntax for spatial voice coding |
FR3008533A1 (fr) * | 2013-07-12 | 2015-01-16 | Orange | Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences |
TWI579831B (zh) | 2013-09-12 | 2017-04-21 | 杜比國際公司 | 用於參數量化的方法、用於量化的參數之解量化方法及其電腦可讀取的媒體、音頻編碼器、音頻解碼器及音頻系統 |
WO2015164575A1 (en) | 2014-04-25 | 2015-10-29 | Dolby Laboratories Licensing Corporation | Matrix decomposition for rendering adaptive audio using high definition audio codecs |
EP2963949A1 (en) * | 2014-07-02 | 2016-01-06 | Thomson Licensing | Method and apparatus for decoding a compressed HOA representation, and method and apparatus for encoding a compressed HOA representation |
US9961475B2 (en) | 2015-10-08 | 2018-05-01 | Qualcomm Incorporated | Conversion from object-based audio to HOA |
US9961467B2 (en) | 2015-10-08 | 2018-05-01 | Qualcomm Incorporated | Conversion from channel-based audio to HOA |
US10249312B2 (en) * | 2015-10-08 | 2019-04-02 | Qualcomm Incorporated | Quantization of spatial vectors |
CN109450505B (zh) * | 2016-05-13 | 2019-11-15 | 华为技术有限公司 | 一种信道信息发送方法、数据发送方法和设备 |
US10743025B2 (en) * | 2016-09-01 | 2020-08-11 | Lg Electronics Inc. | Method and apparatus for performing transformation using layered givens transform |
EP3467824B1 (en) * | 2017-10-03 | 2021-04-21 | Dolby Laboratories Licensing Corporation | Method and system for inter-channel coding |
GB2576769A (en) * | 2018-08-31 | 2020-03-04 | Nokia Technologies Oy | Spatial parameter signalling |
JP2023533665A (ja) * | 2020-06-11 | 2023-08-04 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 低遅延オーディオ・コーデックのためのパラメータの量子化およびエントロピー符号化 |
Family Cites Families (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB206877A (en) | 1922-05-17 | 1923-11-19 | Charles Kingston Welch | Improvements in or relating to pneumatic tyres and wheels for various vehicles |
US1691801A (en) | 1926-06-24 | 1928-11-13 | George W Fothergill | Multiplane bevel square |
US1769401A (en) | 1928-04-23 | 1930-07-01 | William W Tancre | Fruit clipper |
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 |
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 |
KR100220861B1 (ko) | 1989-01-27 | 1999-09-15 | 쥬더, 에드 에이. | 고품질 오디오용 낮은 시지연 변환인코더, 디코더 및 인코딩/디코딩방법 |
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 |
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 |
US5479562A (en) | 1989-01-27 | 1995-12-26 | Dolby Laboratories Licensing Corporation | Method and apparatus for encoding and decoding audio information |
EP0386418B1 (de) | 1989-03-06 | 1994-12-21 | Robert Bosch Gmbh | Verfahren zur Datenreduktion bei digitalen Tonsignalen und zur genäherten Rückgewinnung der digitalen Tonsignale |
EP0422232B1 (en) | 1989-04-25 | 1996-11-13 | Kabushiki Kaisha Toshiba | Voice encoder |
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 |
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 |
US5285498A (en) | 1992-03-02 | 1994-02-08 | At&T Bell Laboratories | Method and apparatus for coding audio signals based on perceptual model |
EP0559348A3 (en) | 1992-03-02 | 1993-11-03 | AT&T Corp. | Rate control loop processor for perceptual encoder/decoder |
JP2693893B2 (ja) | 1992-03-30 | 1997-12-24 | 松下電器産業株式会社 | ステレオ音声符号化方法 |
JP3343962B2 (ja) * | 1992-11-11 | 2002-11-11 | ソニー株式会社 | 高能率符号化方法及び装置 |
ES2165370T3 (es) | 1993-06-22 | 2002-03-16 | Thomson Brandt Gmbh | Metodo para obtener una matriz decodificadora multicanal. |
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 |
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 | |
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 | ソニー株式会社 | 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置 |
DE69525836T2 (de) | 1994-11-04 | 2002-11-21 | 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 |
BR9609799A (pt) | 1995-04-10 | 1999-03-23 | Corporate Computer System Inc | Sistema para compressão e descompressão de sinais de áudio para transmissão digital |
US5774837A (en) | 1995-09-13 | 1998-06-30 | Voxware, Inc. | Speech coding system and method using voicing probability determination |
US5960390A (en) | 1995-10-05 | 1999-09-28 | Sony Corporation | Coding method for using multi channel audio signals |
DE19537338C2 (de) | 1995-10-06 | 2003-05-22 | Fraunhofer Ges Forschung | Verfahren und 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 |
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 |
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 |
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 |
SG54379A1 (en) | 1996-10-24 | 1998-11-16 | Sgs Thomson Microelectronics A | Audio decoder with an adaptive frequency domain downmixer |
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ä |
ES2178142T3 (es) | 1997-02-08 | 2002-12-16 | Matsushita Electric Ind Co Ltd | Matriz de cuantificacion para la codificacion de imagenes fijas y en movimiento. |
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 |
CN1205842C (zh) | 1997-04-10 | 2005-06-08 | 索尼株式会社 | 编码方法和装置、解码方法和装置 |
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 |
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 |
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 | 松下電器産業株式会社 | 線形信号予測を用いた受信装置及び方法 |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
US6115689A (en) | 1998-05-27 | 2000-09-05 | Microsoft Corporation | Scalable audio coder and decoder |
JP3998330B2 (ja) | 1998-06-08 | 2007-10-24 | 沖電気工業株式会社 | 符号化装置 |
JP3541680B2 (ja) | 1998-06-15 | 2004-07-14 | 日本電気株式会社 | 音声音楽信号の符号化装置および復号装置 |
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 |
SG144695A1 (en) * | 1999-04-07 | 2008-08-28 | Dolby Lab 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 |
JP4242516B2 (ja) * | 1999-07-26 | 2009-03-25 | パナソニック株式会社 | サブバンド符号化方式 |
WO2001020595A1 (en) | 1999-09-14 | 2001-03-22 | Fujitsu Limited | Voice encoder/decoder |
US6418405B1 (en) * | 1999-09-30 | 2002-07-09 | Motorola, Inc. | Method and apparatus for dynamic segmentation of a low bit rate digital voice message |
EP1228576B1 (en) | 1999-10-30 | 2005-12-07 | 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 |
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 |
DE60132853D1 (de) | 2000-07-07 | 2008-04-03 | Nokia Siemens Networks Oy | Verfahren und Vorrichtung für die perzeptuelle Tonkodierung von einem mehrkanal Tonsignal mit Verwendung der kaskadierten diskreten Cosinustransformation oder der modifizierten diskreten Cosinustransformation |
JP4857468B2 (ja) | 2001-01-25 | 2012-01-18 | ソニー株式会社 | データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体 |
US7062445B2 (en) | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US7136418B2 (en) | 2001-05-03 | 2006-11-14 | University Of Washington | Scalable and perceptually ranked signal coding and decoding |
US7027982B2 (en) | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US7240001B2 (en) | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
US7460993B2 (en) | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
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 |
US7299190B2 (en) | 2002-09-04 | 2007-11-20 | Microsoft Corporation | Quantization and inverse quantization for audio |
EP1711222A4 (en) | 2003-12-19 | 2011-02-09 | Savacor Inc | DIGITAL ELECTRODE FOR HEART RTHYTHMUS MANAGEMENT |
-
2003
- 2003-09-01 JP JP2003309277A patent/JP4676140B2/ja not_active Expired - Lifetime
- 2003-09-04 EP EP08016647A patent/EP2023340A3/en not_active Ceased
- 2003-09-04 DE DE60325310T patent/DE60325310D1/de not_active Expired - Lifetime
- 2003-09-04 EP EP03020111A patent/EP1400955B1/en not_active Expired - Lifetime
- 2003-09-04 EP EP10009815A patent/EP2261897A1/en not_active Ceased
- 2003-09-04 AT AT03020111T patent/ATE418136T1/de not_active IP Right Cessation
- 2003-09-04 DE DE20321886U patent/DE20321886U1/de not_active Expired - Lifetime
- 2003-09-04 ES ES03020111T patent/ES2316679T3/es not_active Expired - Lifetime
-
2010
- 2010-04-19 JP JP2010095924A patent/JP5091272B2/ja not_active Expired - Lifetime
- 2010-08-03 US US12/849,626 patent/US8069052B2/en not_active Expired - Lifetime
-
2011
- 2011-10-18 US US13/276,163 patent/US8255234B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE20321886U1 (de) | 2012-03-02 |
US8069052B2 (en) | 2011-11-29 |
JP2010176151A (ja) | 2010-08-12 |
DE60325310D1 (de) | 2009-01-29 |
JP4676140B2 (ja) | 2011-04-27 |
ATE418136T1 (de) | 2009-01-15 |
EP1400955A2 (en) | 2004-03-24 |
US20120035941A1 (en) | 2012-02-09 |
JP5091272B2 (ja) | 2012-12-05 |
US8255234B2 (en) | 2012-08-28 |
JP2004264811A (ja) | 2004-09-24 |
EP1400955A3 (en) | 2006-05-10 |
EP2261897A1 (en) | 2010-12-15 |
US20100318368A1 (en) | 2010-12-16 |
EP2023340A3 (en) | 2009-04-29 |
EP1400955B1 (en) | 2008-12-17 |
EP2023340A2 (en) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2316679T3 (es) | Cuantificacion y cuantificacion inversa para señales audio. | |
ES2316678T3 (es) | Codificacion y descodificacion audio multicanal. | |
KR101143225B1 (ko) | 오디오 인코더 및 오디오 디코더에서의 컴퓨터 구현 방법및 컴퓨터 판독 가능 매체 | |
US7801735B2 (en) | Compressing and decompressing weight factors using temporal prediction for audio data | |
US8046214B2 (en) | Low complexity decoder for complex transform coding of multi-channel sound | |
US7953604B2 (en) | Shape and scale parameters for extended-band frequency coding | |
KR101679083B1 (ko) | 2개의 블록 변환으로의 중첩 변환의 분해 |