ES2316678T3 - Codificacion y descodificacion audio multicanal. - Google Patents
Codificacion y descodificacion audio multicanal. Download PDFInfo
- Publication number
- ES2316678T3 ES2316678T3 ES03020110T ES03020110T ES2316678T3 ES 2316678 T3 ES2316678 T3 ES 2316678T3 ES 03020110 T ES03020110 T ES 03020110T ES 03020110 T ES03020110 T ES 03020110T ES 2316678 T3 ES2316678 T3 ES 2316678T3
- Authority
- ES
- Spain
- Prior art keywords
- channels
- encoder
- channel
- multichannel
- decoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000009466 transformation Effects 0.000 claims description 296
- 238000000034 method Methods 0.000 claims description 191
- 238000000844 transformation Methods 0.000 claims description 82
- 238000011084 recovery Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 abstract description 20
- 239000011159 matrix material Substances 0.000 description 222
- 238000011002 quantification Methods 0.000 description 147
- 238000013139 quantization Methods 0.000 description 96
- 239000003607 modifier Substances 0.000 description 42
- 238000007906 compression Methods 0.000 description 40
- 230000006835 compression Effects 0.000 description 40
- 238000012805 post-processing Methods 0.000 description 32
- 230000002123 temporal effect Effects 0.000 description 27
- 230000000875 corresponding effect Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 20
- 230000002441 reversible effect Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 230000015654 memory Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 13
- 230000008447 perception Effects 0.000 description 13
- 230000003044 adaptive effect Effects 0.000 description 12
- 230000002596 correlated effect Effects 0.000 description 11
- FUYLLJCBCKRIAL-UHFFFAOYSA-N 4-methylumbelliferone sulfate Chemical compound C1=C(OS(O)(=O)=O)C=CC2=C1OC(=O)C=C2C FUYLLJCBCKRIAL-UHFFFAOYSA-N 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000005236 sound signal Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000006837 decompression Effects 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000007907 direct compression Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000001629 suppression Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000003467 diminishing effect Effects 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000013707 sensory perception of sound Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000000926 neurological effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/0212—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 using orthogonal transformation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stereophonic System (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stereo-Broadcasting Methods (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
Un procedimiento de codificación de audio implementado por ordenador, que comprende. recibir un marco de datos de audio multicanal; agrupar ventanas plurales de diferentes canales en el marco en una o más placas, en el que cada placa de la una o más placas agrupa una o más ventanas colocadas conjuntamente entre las ventanas múltiples de los diferentes canales en el marco, en el que, para cada placa de la una o más placas, el grupo de la una o más ventanas colocadas conjuntamente para la placa comparte una posición de inicio para la placa y comparte una posición de finalización para la placa, en el que los canales plurales de los diferentes canales tienen diferentes configuraciones de ventanas en el marco, y en el que al menos una placa del uno o más grupos de placas colocadas conjuntamente de los canales plurales tienen diferentes configuraciones de ventanas en el marco; y producir como salida información de configuración de placas para la una o más placas, indicando la información de configuración de placas cómo las ventanas plurales están agrupadas en la una o más placas.
Description
Codificación y descodificación audio
multicanal.
Las solicitudes provisionales de patente
norteamericanas siguientes están relacionadas con la actual
solicitud: (1) Solicitud de Patente Provisional norteamericana
número de serie (60/408.432) titulada "Compresión de Audio
Unificada Con Pérdida y Sin Pérdida", presentada el 4 de
septiembre de 2002 y (2) Solicitud de Patente Provisional
norteamericana número de serie 60/408.538 titulada "Codificación
de Entropía por Adaptación de Codificación entre Modos de Nivel y
de Longitud de Ejecución/Nivel", presentada el 4 de septiembre de
2002.
La presente invención se refiere al procesado de
información de audio multicanal en codificación y
descodificación.
Con la introducción de discos compactos, redes
telefónicas inalámbricas digitales y envío de audio por Internet,
el audio digital es un hecho común. Los ingenieros utilizan una
variedad de técnicas para procesar audio digital eficientemente
manteniendo al mismo tiempo la calidad del audio digital. Para
comprender estas técnicas, ayuda comprender cómo se representa y se
procesa en un ordenador la información de audio.
Un ordenador procesa información de audio como
una serie de números que representan la información de audio. Por
ejemplo, un único número puede representar una muestra de audio, que
es un valor de amplitud (es decir, sonoridad) en un momento en
particular. Varios factores afectan la calidad de la información de
audio, incluyendo la profundidad de la muestra, la velocidad de
muestreo, y el modo de canal.
La profundidad de la muestra (o precisión)
indica el rango de números utilizados para representar una muestra.
Cuanto más valores sean posibles para la muestra, más alta será la
calidad debido a que el número puede capturar variaciones más
sutiles en amplitud. Por ejemplo, una muestra de 8 bits tiene 256
valores posibles, mientras que una muestra de 16 bits tiene 65.536
valores posibles. Una muestra de 24 bits puede capturar las
variaciones de sonoridad normales muy ajustadamente, y también
puede capturar sonoridades anormalmente altas.
La velocidad de muestreo (que se mide
normalmente como el número de muestras por segundo) también afecta
la calidad. Cuanta más alta sea la velocidad de muestreo, más alta
será la calidad debido a que se pueden representar más frecuencias
de sonido. Algunas velocidades de muestreo comunes son 8.000,
11.025, 22.050, 32.000, 44.100, 48.000 y 96.000 muestras por
segundo.
El mono y el estéreo son dos modos de canal
comunes para el audio. En el modo mono, la información de audio
está presente en un canal. En el modo estéreo, la información de
audio está presente en dos canales normalmente etiquetado como
canales izquierdo y derecho. Otros modos con más canales, tales como
sonido envolvente de canal 5.1, 7.1 o 9.1 (el número "1"
indica un sub - woofer (altavoz de bajos) o canal de efectos de
baja frecuencia) también son posible. La tabla 1 muestra varios
formatos de audio con diferentes niveles de calidad, junto con los
costes en velocidad binaria en bruto correspondientes.
\vskip1.000000\baselineskip
El audio de sonido envolvente típicamente tiene
una velocidad binaria bruta incluso más elevada. Como se muestra en
la tabla 1, el coste de la información de audio de alta calidad es
una velocidad binaria elevada. La información de audio de alta
calidad consume grandes cantidades de capacidad de almacenamiento y
transmisión del ordenador. Sin embargo, las compañías y los
consumidores dependen crecientemente de los ordenadores para crear,
distribuir y reproducir los contenidos de audio multicanal de alta
calidad.
Muchos ordenadores y redes de ordenadores no
tienen los recursos para procesar audio digital en bruto. La
compresión (también denominada codificación) disminuye el costo de
almacenar y transmitir información de audio convirtiendo la
información a una forma de velocidad binaria más baja. La compresión
puede ser sin pérdida (en la cual la calidad no sufre) o con
pérdida (en la cual la calidad sufre pero la reducción binaria de la
compresión sin pérdida posterior es más importante). La
descompresión (también denominada descodificación) extrae una
versión reconstruida de la versión original a partir de la forma
comprimida.
Generalmente, el objetivo de la compresión de
audio es representar digitalmente las señales de audio para
proporcionar la máxima calidad de señal con la mínima cantidad
posible de bits. Un sistema codificador/descodificador
("codec") de audio convencional utiliza una codificación de
subbanda/transformación, cuantificación, control de velocidad y
codificación de longitud variable para conseguir su compresión. La
cuantificación y otras técnicas de compresión con pérdida
introducen ruidos audibles potencialmente en la señal de audio. La
audibilidad del ruido depende de cuanto ruido exista y de cuanto
del ruido percibe el oyente. El primer factor se refiere
principalmente a la calidad objetiva, mientras que el segundo factor
depende de la percepción humana del sonido.
La figura 1 muestra un diagrama generalizado de
un codificador (100) de audio perceptual, basado en transformación,
de acuerdo con la técnica anterior. La figura 2 muestra un diagrama
generalizado de un descodificador (200) de audio correspondiente de
acuerdo con la técnica anterior. Aunque el sistema codec que se
muestra en las figuras 1 y 2 es generalizado, tiene características
que se encuentran en varios sistemas codec del mundo real,
incluyendo versiones del codificador y del descodificador Windows
Medio de Audio ("WMA") de la Microsoft Corporation. Otros
sistemas codec están provistos o especificados por el Grupo de
Expertos de Películas Cinematográficas, estándar Capa de Audio 3
("MP3"), el estándar del Grupo 2 de Expertos de Películas
Cinematográficas, estándar de Codificación de Audio Avanzada
("AAC") y Dolbi AC3. Para información adicional respecto a los
sistemas codec, véanse los estándares o publicaciones técnicas
respectivas.
En conjunto, el codificador (100) recibe una
serie temporal de muestras (105) de audio de entrada, comprime las
muestras (105) de audio y multiplexa la información producida por
los distintos módulos del codificador (100) para producir como
salida un tren binario (195). El codificador (100) incluye un
transformador de frecuencia (110), un transformador multicanal
(120), un modelizador de percepción (130), un ponderador (140), un
cuantificador (150), un codificador de entropía (160), un
controlador (170) y un multiplexor ("MUX") (180) de tren
binario.
El transformador de frecuencia (110) recibe las
muestras de audio (105) y las convierte en datas en el dominio de
frecuencia. Por ejemplo, el transformador de frecuencia (110) divide
las muestras de audio (105) en bloques, que pueden tener un tamaño
variable para permitir una resolución temporal variable. Los bloques
pequeños permiten una mayor preservación de detalles temporales que
los segmentos cortos pero de transición activa en la entrada de
muestras de audio (105), pero sacrifica alguna resolución de
frecuencia. Como contraste, los bloques grandes tienen mejor
resolución de frecuencia y peor resolución temporal, y normalmente
permiten una eficiencia de compresión mayor en segmentos más largos
y menos activos. Los bloques pueden solaparse para reducir las
discontinuidades perceptibles entre bloques que de otra manera
serian introducidas por una cuantificación posterior. Para audio de
canales múltiples, el transformador de frecuencia (110) utiliza el
mismo patrón de ventanas para cada canal en un marco en particular.
El transformador de frecuencia (110) produce como salida bloques de
datos de coeficientes de frecuencia al transformador multicanal
(120),
\hbox{y produce como salida información lateral tal como tamaños de bloques al MUX (180).}
Para datos de audio de multicanal, los canales
múltiples de los datos de coeficiente de frecuencia producidos por
el transformador de frecuencia (110) a menudo se correlacionan. Para
explotar esta correlación, el transformador multicanal (120) puede
convertir los canales codificados independientemente múltiples
originales en canales codificados conjuntamente. Por ejemplo, si la
entrada está en modo estéreo, el transformador multicanal (120)
puede convertir los canales izquierdo y derecho en canales de suma y
diferencia:
O el transformador multicanal (120) puede pasar
los canales izquierdo y derecho a través de canales codificados
independientemente. La decisión de utilizar canales codificados
independiente o conjuntamente es predeterminada o se realiza
adaptativamente durante la codificación. Por ejemplo, el codificador
(100) determina si codificar los canales estéreo conjunta o
independientemente con una decisión de selección de bucle abierto
que considera la (a) separación de energía entre codificar canales
con y sin la transformación multicanal y (b) la disparidad en los
patrones de excitación entre los canales de entrada izquierdo y
derecho. Una decisión de este tipo puede realizarse en una base de
ventana a ventana o solamente una vez por marco para simplificar la
decisión. El transformador multicanal (120) produce información
lateral al MUX (180) que indica el modo de canal utilizado.
El codificador (100) puede aplicar la
rematrización multicanal a un bloque de datos de audio después de
una transformación multicanal. Para velocidades binarias bajas, los
datos de audio multicanal en canales codificados conjuntamente, el
codificador (100) suprime selectivamente información en ciertos
canales (por ejemplo, el canal diferencia) para mejorar la calidad
de los canales restantes (por ejemplo, el canal suma). Por ejemplo,
el codificador (100) escala el canal diferencia por un factor de
escala \rho:
en la que el valor de \rho está
basado en: (a) niveles medios actuales de una medida de la calidad
de audio perceptual tal como la Relación de Ruido a Excitación
("NER"), (b) plenitud actual de un tampón de memoria virtual,
(c) ajustes de la velocidad binaria y de la velocidad de muestreo
del codificador (100), y (d) la separación de canales en los
canales de entrada izquierdo y
derecho.
El modelizador (130) de percepción, procesa los
datos de audio de acuerdo con un modelo del sistema auditivo humano
para mejorar la calidad percibida de la señal de audio reconstruida
para una velocidad binaria dada. Por ejemplo, un modelo auditivo
típicamente considera el rango de la escucha humana y las bandas
críticas. El sistema nervioso humano integra subrangos de
frecuencia. Por esta razón, un modelo auditivo puede organizar y
procesar información de audio en bandas críticas. Diferentes modelos
auditivos utilizan un número diferente de bandas críticas (por
ejemplo, 25, 32, 55 o 109) y/o frecuencias de corte diferentes para
las bandas críticas. Las bandas de corteza son un ejemplo bien
conocido de bandas críticas. Además del rango y de las bandas
críticas, las interacciones entre señales de audio pueden afectar
espectacularmente la percepción. Una señal de audio que es
claramente audible si se presenta ella sola puede ser completamente
inaudible en presencia de otra señal de radio, llamada enmascadora
o señal de máscara. El oído humano es relativamente insensible a la
distorsión u otra pérdida de fidelidad (es decir, ruido) en la
señal enmascarada, de manera que la señal enmascarada puede incluir
más distorsión sin degradar la señal de audio percibida. Además, un
modelo auditivo puede consistir en una variedad de otros factores
que se refieren a los aspectos físicos o neurológicos de la
percepción humana del sonido.
El modelizador de percepción (130) produce como
salida información que el ponderador (140) utiliza para conformar
ruido en los datos de audio para reducir la audibilidad del ruido,
por ejemplo, utilizando cualesquiera de las distintas técnicas, el
ponderador (140) genera factores de ponderación (algunas veces
denominado factores de escala) para cuantificar matrices (algunas
veces denominadas máscaras) en base a la información recibida. Los
factores de ponderación en una matriz de cuantificación incluyen una
ponderación de cada una de las bandas de cuantificación múltiples
en los datos de audio, en el que las bandas de cuantificación son
rangos de frecuencia de coeficientes de frecuencia. El número de
bandas de cuantificación puede ser el mismo o menor que el número
de bandas críticas. De esta manera, los factores de ponderación
indican proporciones a las cuales el ruido es expandido a través de
las bandas de cuantificación, con el objetivo de minimizar la
audibilidad del ruido poniendo más ruido en bandas en los que es
menos audible, y viceversa. Los factores de ponderación pueden
variar en sus amplitudes y número de bandas de cuantificación de
bloque a bloque. El ponderador (140) a continuación aplica los
factores de ponderación a los datos recibidos del transformador
multicanal (120).
En una implementación, el ponderador (140)
genera un conjunto de factores de ponderación para cada ventana de
cada canal de audio multicanal, o comparte un único conjunto de
factores de ponderación para ventanas paralelas de canales
codificados conjuntamente. El ponderador (140) produce como salida
bloques de ponderación de datos de coeficientes al cuantificador
(150) y produce como salida información lateral tal como los
conjuntos de factores de ponderación al MUX (180).
Un conjunto de factores de ponderación puede ser
comprimido para conseguir una representación más eficiente
utilizando compresión directa. En la técnica de compresión directa,
el codificador (100) cuantifica uniformemente cada elemento de una
matriz de cuantificación. El codificador a continuación codifica
diferencialmente los elementos cuantificados en relación con los
elementos precedentes en la matriz, y Huffman codifica los elementos
codificados diferencialmente. En algunos casos (por ejemplo, cuando
todos los coeficientes de bandas de cuantificación particulares han
sido cuantificados o truncados a un valor de 0, el descodificador
(200) no requiere factores de ponderación para todas las bandas de
cuantificación. En tales casos, el codificador (100) proporciona
valores a un o más factores de ponderación no necesitados que son
idénticos a los valores del siguiente factor de ponderación
necesitado en una serie, lo cual hace que la codificación
diferencial de elementos de la matriz de cuantificación sea más
eficiente.
O, para aplicaciones de baja velocidad binaria,
el codificador (100) puede comprimir paramétricamente una matriz de
cuantificación para representar la matriz de cuantificación como un
conjunto de parámetros, por ejemplo, utilizando codificación
predictiva lineal ("LPC") de parámetros de pseudo -
autocorrelación calculados de la matriz de cuantificación.
El cuantificador (150) cuantifica la salida del
ponderador (140), produciendo datos de coeficientes cuantificados
al codificador de entropía (160) e información lateral, incluyendo
tamaño de paso de cuantificación al MUX (180). Los mapas de
cuantificación varían en los valores de entrada a valores únicos,
introduciendo pérdidas de información irreversibles, pero también
permitiendo que el codificador (100) regule la calidad y la
velocidad binaria del tren binario de salida (195) en conjunto con
el controlador (170). En la figura 1, el cuantificador (150) es un
cuantificador adaptativo, uniforme, escalar. El cuantificador (150)
aplica el mismo paso de cuantificación a cada coeficiente de
frecuencia, pero el mismo tamaño de paso de cuantificación puede
cambiar de una interacción de un bucle de cuantificación a la
siguiente, afectando la velocidad binaria de la salida del
codificador de entropía (160). Otros tipos de cuantificación son no
uniforme, cuantificación de vectores y/o cuantificación no
adaptativa.
El codificador de entropía (160) comprime sin
pérdida datos de coeficientes cuantificados recibidos del
cuantificador (150). El codificador de entropía (150) puede
calcular el número de bits gastados codificando información de
audio y pasar esta información al controlador de velocidad/calidad
(170).
El controlador (170) trabaja con el
cuantificador (150) para regular la velocidad binaria y/o calidad de
la salida del codificador (100). El controlador (170) recibe
información de otros módulos del codificador (100) y procesa la
información recibida para determinar un tamaño de paso de
cuantificación deseado en vista de las condiciones actuales. El
controlador (170) produce como salida el tamaño de paso de
cuantificación al cuantificador (150) con el objetivo de satisfacer
límites de velocidad binaria y de calidad.
El codificador (100) puede aplicar sustitución
de ruido y/o truncamiento de banda a un bloque de datos de audio. A
velocidades binarias bajas y medias, el codificador de audio (100)
puede usar sustitución de ruido para transportar información en
ciertas bandas. En el truncamiento de banda, si la calidad medida de
un bloque indica una calidad pobre, el codificador (100) puede
eliminar completamente los coeficientes en ciertas bandas
(normalmente de frecuencia más elevada) para mejorar la calidad
total en las bandas restantes.
El MUX (180) multiplexa la información lateral
recibida de otros módulos del codificador de audio (100) junto con
los datos de entropía codificados recibidos del codificador de
entropía (160). El MUX (180) produce la salida de la información en
un formato que el decodificador de audio reconoce. El MUX (180)
incluye una memoria tampón virtual que almacena el tren binario
(195) para que sea producido como salida por el codificador (100)
con el fin de suavizar fluctuaciones a corto térmico en la velocidad
binaria producidas por cambios de complejidad en el
audio.
audio.
En conjunto, el descodificador (200) recibe un
tren binario (205) de información de audio comprimida que incluye
datos codificados de entropía así como información lateral, a partir
de la cual el descodificador (200) reconstruye las muestras de
audio (295). El descodificador de audio (200) incluye un
desmultiplexor ("DEMUX") (210) de tren binario, un
descodificador de entropía (220), un cuantificador inverso (230), un
generador de ruido (240), un ponderador inverso (250), un
transformador multicanal inverso (260), y un transformador de
frecuencia inversa (270).
El DEMUX (210) analiza información en el tren
binario (205) y envía información a los módulos del descodificador
(200). El DEMUX (210) incluye una o más memorias tampón para
compensar las variaciones a corto término en la velocidad binaria
producidas por las fluctuaciones en la complejidad del audio,
inestabilidad en la red, y/o otros factores.
El descodificador de entropía (220) descomprime
sin pérdida los códigos de entropía recibidos del DEMUX (210),
produciendo datos de coeficientes de frecuencia cuantificados. El
descodificador de entropía (220) típicamente aplica la inversa de
la técnica de codificación de entropía utilizada en el
codificador.
El cuantificador inverso (230) recibe un tamaño
de paso de cuantificación del DEMUX (210) y recibe datos de
coeficientes de frecuencia cuantificados del descodificador de
entropía (220). El cuantificador inverso (230) aplica el tamaño de
paso de cuantificación a los datos de coeficientes de frecuencia
cuantificados para reconstruir parcialmente los datos de
coeficientes de frecuencia.
Desde el DEMUX (210), el generador de ruido
(240) recibe información que indica cuales bandas en un bloque de
datos son sustituidas por ruido, así como cualquier parámetro para
la forma del ruido. El generador de ruido (240) genera los patrones
para las bandas indicadas, y pasa la información al cuantificador
inverso (250).
El cuantificador inverso (250) recibe los
factores de cuantificación del DEMUX (210), los patrones de
cualquier banda sustituida por ruido del generador de ruido (240),
y los datos de coeficientes de frecuencia parcialmente
reconstruidos del cuantificador inverso (230). Como sea necesario,
el cuantificador inverso (250) descomprime los factores de
cuantificación, por ejemplo, descodificación de entropía,
codificación inversa diferencialmente, y cuantificación inversa de
los elementos de la matriz de cuantificación. El ponderador inverso
(250) aplica los factores de ponderación a los datos de
coeficientes de frecuencia parcialmente reconstruidos para las
bandas que no han sido sustituidas por ruido. El cuantificador
inverso (250) a continuación suma los patronos de ruido recibidos
del generador de ruido (240) para las bandas sustituidas por
ruido.
El transformador multicanal inverso (260) recibe
los datos de coeficientes de frecuencia reconstruidos del
ponderador inverso (250), y la información de modo de canal del
DEMUX (210). Si el audio multicanal está en canales codificados
independientemente, el transformador multicanal inverso (260) hace
pasar los canales a través suyo. Si los datos multicanal se
encuentran en canales codificados conjuntamente, el transformador
multicanal inverso (260) convierte los datos en canales codificados
independientemente.
El transformador de frecuencia inversa (270)
recibe la salida de los datos de coeficientes de frecuencia del
transformador multicanal (260), así como información lateral tal
como los tamaños de bloque del DEMUX (210). El transformador de
frecuencia inversa (270) aplica el inverso de la transformación de
frecuencia utilizado en el codificador y produce como salida
bloques de las muestras de audio reconstruidas (295).
Aunque los codificadores y descodificadores
perceptuales como se han descrito más arriba tienen una buena
eficiencia en conjunto en muchas aplicaciones, presentan varios
inconvenientes, especialmente para la compresión y descompresión de
audio multicanal. Los inconvenientes limitan la calidad del audio
multicanal reconstruido en algunos casos, por ejemplo cuando la
velocidad binaria es pequeña en relación con el número de canales
de entrada de audio.
En varios aspectos, la partición de marcos
ejecutada por el codificador (100) de la figura (1) es
inflexible.
Como se ha mencionado previamente, el
transformador de frecuencia (110) rompe un marco de entrada de
muestras de audio (105) en una o más ventanas que se solapan para
la transformación de frecuencia, en la que ventanas más grandes
proporcionan mejor resolución de frecuencias y eliminación de la
redundancia, y ventanas pequeñas proporcionan mejor resolución
temporal. La mejor resolución temporal ayuda a controlar artefactos
pre - eco introducidos cuando la señal realiza la transición desde
una energía baja a una energía alta, pero la utilización de
ventanas menores reduce la comprensibilidad, de manera que el
codificador debe compensar estas consideraciones cuando selecciona
tamaños de ventanas. En el audio multicanal, el transformador de
frecuencia (110) realiza la partición de los canales de un marco
idénticamente (es decir, configuraciones de ventanas idénticas en
los canales), lo cual puede ser ineficiente en algunos casos, como
se ilustra en las figuras 3a - 3c.
La figura 3a muestra las formas de onda (300) de
una señal de audio estéreo ejemplar. La señal en el canal 0 incluye
una actividad transitoria, mientras que la señal en el canal 1 es
relativamente estacionaria. El codificador (100) detecta la
transición de señal en el canal 0 y, para reducir el pre - eco,
divide el marco en ventanas moduladas solapadas más pequeñas (301),
como se muestra en la figura 3b. Con la finalidad de simplicidad,
la figura 3c muestra la configuración (302) de ventanas solapadas en
cajas, con líneas de trazos que delimitan los límites del marco.
Otras figuras posteriores también utilizan esta convención.
Un inconveniente de forzar todos los canales
para que tengan una configuración de ventanas idéntica, es que una
señal estacionaria en uno o más canales (por ejemplo, canal 1 en las
figuras 3a - 3c) puede dividirse en ventanas menores, disminuyendo
las ganancias de codificación. Alternativamente, el codificador
(100) puede forzar a que todos los canales utilicen ventanas
mayores, introduciendo pre - eco en uno o más canales que tienen
transitorios. Este problema se agrava cuando más de dos canales
deben ser codificados.
AAC permite una agrupación emparejada de canales
para las transformaciones multicanal. Entre los canales izquierdo,
derecho, central, trasero izquierdo y trasero derecho, por ejemplo,
los canales izquierdo y derecho pueden estar agrupados para la
codificación estéreo, y los canales trasero izquierdo y trasero
derecho pueden estar agrupados para la codificación estéreo.
Diferentes grupos pueden tener diferentes configuraciones de
ventanas, pero ambos canales de un grupo particular tienen la misma
configuración de ventana si se utiliza codificación estéreo. Esto
limita la flexibilidad de dividir en las transformaciones multicanal
en el sistema AAC, como lo hace la utilización de solamente
agrupamientos emparejados.
El codificador (100) de la figura 1 se aprovecha
de alguna redundancia intercanal, pero es inflexible en distintos
aspectos en términos de transformaciones multicanal. El codificador
(100) permite dos clases de transformaciones: (a) una
transformación de identidad (que es equivalente a ninguna
transformación), ó (b) codificación de suma - diferencia de parejas
estéreo. Estas limitaciones limitan la codificación multicanal de
más de dos canales. Incluso en AAC, que puede trabajar con más de
dos canales, una transformación multicanal está limitada a solamente
una pareja de canales en un momento dado.
Varios grupos han experimentado transformaciones
multicanal para los canales de sonido envolvente. Por ejemplo,
véase Yang et al; "Enfoque de Eliminación de Redundancia
Intercanal para la Compresión de Audio Multicanal de Alta
Calidad", Convención Aes número 109, Los Angeles, Septiembre 2000
("Yang"), y Wang et al., "Un Algoritmo de
Codificación de Audio multicanal para la Eliminación de Redundancia
Intercanal", convención AES número 110, Amsterdam, Holanda, mayo
2001 ("Wang"). El sistema Yang utiliza una Transformación de
Karhunen - Loeve ("KLT") entre canales para descorrelacionar
los canales para conseguir factores de compresión buenos. El sistema
Wang utiliza una Transformación de Coseno Discreto ("DCT") de
número entero a número entero. Ambos sistemas proporcionan algunos
resultados buenos, pero todavía presentan varias limitaciones.
En primer lugar, utilizando una KLT en muestras
de audio (ya sea en el dominio temporal o en el dominio de
frecuencia como en el sistema Yang), no controla la distorsión
introducida en la reconstrucción. La KLT en el sistema Yang no se
usa con éxito para la codificación de audio perceptual de audio
multicanal. El sistema Yang no controla la cantidad de fugas de un
canal codificado (por ejemplo, cuantificado en gran medida) en
múltiples canales reconstruidos en la transformación multicanal
inversa. Este inconveniente es señalado en el documento de Kuo
et al., "Un Estudio de Por qué la Predicción de Canales
Cruzados no es aplicable a la Codificación de Audio Perceptual",
IEEE Cartas de Señales Proc. volumen 8, número 9, septiembre 2001.
En otras palabras, la cuantificación que es "inaudible" en un
canal codificado puede ser audible cuando se reparte en múltiples
canales reconstruidos, puesto que la ponderación inversa es
efectuada antes de la transformación multicanal inversa. El sistema
Wang soluciona este problema disponiendo la transformación
multicanal después de la ponderación y la cuantificación en el
codificador (y disponiendo la transformación multicanal inversa
antes de la cuantificación inversa y la ponderación inversa en el
descodificador). Sin embargo, el sistema Wang tiene otros varios
inconvenientes. Ejecutar la cuantificación antes de la
transformación multicanal significa que la transformación
multicanal debe ser de número entero a número entero, limitando el
número de transformaciones posibles y limitando la eliminación de
redundancia en los canales.
En segundo lugar, el sistema Yang está limitado
a las transformaciones KLT. Aunque las transformaciones KLT adaptan
los datos de audio que están siendo comprimidos, la flexibilidad del
sistema Yang para utilizar diferentes fases de transformaciones es
limitada. De manera similar, el sistema Wang utiliza la DCT de
número entero a número entero en las transformaciones multicanal,
lo cual no es tan bueno como las DCT convencionales en lo que se
refiere a la compactación de energía, y la flexibilidad del sistema
Wang para utilizar tipos diferentes de transformaciones es
limitada.
En tercer lugar, en los sistemas Yang y Wang no
hay mecanismos para controlar cuales canales son transformados
conjuntamente, tampoco hay un mecanismo para agrupar selectivamente
canales diferentes en momentos diferentes para la transformación
multicanal. Un control de este tipo ayuda a limitar las fugas de
contenido en canales totalmente incompatibles. Además, incluso
canales que son compatibles en conjunto pueden ser incompatibles en
algunos periodos.
En cuarto lugar, en el sistema Yang, a la
transformación multicanal le falta control respecto a aplicar la
transformación multicanal al nivel de banda de frecuencia. Incluso
entre canales que son compatibles en conjunto, los canales pueden
no ser compatibles en algunas frecuencias o en algunas bandas de
frecuencia. De manera similar, a la transformación multicanal del
codificador (100) de la figura 1 le falta el control a nivel de
subcanal; no controla cuales bandas de los datos de coeficientes de
frecuencias son transformadas multicanal, lo cual ignora las
ineficiencias que se pueden producir cuando se correlacionan menos
de todas las bandas de frecuencia de los canales de entrada.
En quinto lugar, incluso cuando los canales
fuente son compatibles, a menudo hay una necesidad de controlar el
número de canales transformados conjuntamente para limitar el
derrame de datos y reducir los accesos de memoria cuando se
implementa la transformación. En particular, la KLT del sistema Yang
es compleja en cálculo. Por otro lado, reducir el tamaño de
transformación también reduce potencialmente la ganancia de
codificación en comparación con las transformaciones mayores.
En sexto lugar, enviar la información
especificando las transformaciones multicanal puede ser costoso en
términos de velocidad binaria. Esto es particularmente cierto en la
KLT del sistema Yang, puesto que los coeficientes de transformación
para la matriz de covarianza enviada son números reales.
En séptimo lugar, para el audio multicanal de
velocidad binaria baja, la calidad de los canales reconstruidos es
muy limitada. Además de los requisitos de codificación de
velocidades binarias bajas, esto es en parte debido a la
incapacidad del sistema para cortar selectiva y elegantemente el
número de canales para los que la información se codifica
actualmente.
En el codificador (100) de la figura 1, el
ponderador (140) conforma las distorsiones a través de bandas en
datos de audio y el cuantificador (150) establece tamaños de paso de
cuantificación para cambiar la amplitud de la distorsión en un
marco, y de esta manera compensar la calidad con respecto a la
velocidad binaria. Aunque el codificador (100) consigue un buen
equilibrio de calidad y velocidad binaria en la mayor parte de las
aplicaciones, el codificador (100) todavía tiene varios
inconvenientes.
En primer lugar, el codificador (100) carece de
control directo sobre la calidad a nivel de canal. Los factores de
ponderación conforman la distorsión total en las bandas de
cuantificación de un canal individual. El tamaño del paso de
cuantificación uniforme, escalar, afecta la amplitud de la
distorsión en todas las bandas de frecuencia y canales para un
marco. A falta de imponer una calidad muy alta o muy baja en todos
los canales, el codificador (100) carece de control directo sobre
la disposición igual, o al menos de calidad comparable, en la salida
reconstruida de todos los canales.
En segundo lugar, cuando los factores de
ponderación están comprimidos con pérdida, el codificador (100)
carece de control sobre la resolución de cuantificación de los
factores de ponderación. Para la compresión directa de una matriz
de cuantificación, el codificador (100) cuantifica uniformemente
elementos de la matriz de cuantificación, y a continuación utiliza
codificación diferencial y codificación Huffman. La cuantificación
uniforme de los elementos de máscara no se adapta a los cambios en
la velocidad binaria disponible o a la complejidad de la señal.
Como resultado, en algunos casos las matrices de cuantificación
están codificadas con más resolución de la que sería necesaria dada
la calidad baja en conjunto del audio reconstruido, y en otros
casos, las matrices de cuantificación están codificadas con menos
resolución que la que se debería utilizar dada la alta calidad del
audio reconstruido.
En tercer lugar, la compresión directa de las
matrices de cuantificación en el codificador (100) falla en
explotar las redundancias temporales de las matrices de
cuantificación. La compresión directa elimina la redundancia dentro
de una matriz de cuantificación particular, pero ignora la
redundancia temporal en una serie de matrices de
cuantificación.
Además de la codificación y descodificación de
audio multicanal, el sistema Dolbi Pro - Logic y distintos otros
sistemas ejecutan la mezcla en disminución de audio multicanal para
facilitar la compatibilidad con las configuraciones de altavoces
con números diferentes de altavoces. En la mezcla en disminución
Dolbi Pro - Logic, por ejemplo, cuatro canales se mezclan en
disminución hasta dos canales, teniendo cada uno de los dos canales
alguna combinación de datos de audio de los cuatro canales
originales. Los dos canales pueden ser producidos como salida en el
equipo de canal estéreo, o los cuatro canales pueden ser
reconstruidos a partir de los dos canales para la salida en equipo
de cuatro canales.
Aunque la mezcla en disminución de esta
naturaleza soluciona algunos problemas de incompatibilidad, está
limitada a ciertas configuraciones establecidas, por ejemplo,
mezcla en disminución de cuatro a dos canales. Además, las fórmulas
de mezcla están predeterminadas y no permiten cambios en el tiempo
para adaptarse a la señal.
"Tecnología de información - codificación
genérica de fotografías en movimiento e información de audio
asociada - parte 7: Codificación de Audio Avanzada
(AAC)", ISO/IEC13818 - 7, XX, XX, 1 de diciembre de 1997, paginas
1 - 6,
describe un elemento de canal de acoplamiento (CCE). El CCE se utiliza para compartir información común (por ejemplo, elementos de ganancia) entre múltiples canales. En el caso de un CCE conmutado de manera dependiente, su estado de ventana se debe corresponder a cualquier canal único (SCE) o elementos de pareja de canales (CPE) a los cuales está acoplado. Los cuatro tipos de secuencias de ventana para un canal están ilustrados.
describe un elemento de canal de acoplamiento (CCE). El CCE se utiliza para compartir información común (por ejemplo, elementos de ganancia) entre múltiples canales. En el caso de un CCE conmutado de manera dependiente, su estado de ventana se debe corresponder a cualquier canal único (SCE) o elementos de pareja de canales (CPE) a los cuales está acoplado. Los cuatro tipos de secuencias de ventana para un canal están ilustrados.
El documento WO 99/43110 A, describe el
agrupamiento de dos canales conjuntamente y utiliza un único bloque
FFT para calcular MDCT. Las parejas de canales con la misma longitud
de transformación (una larga o dos cortas) pueden ser agrupados
conjuntamente.
Es el objeto de la presente invención
proporcionar un procedimiento de codificación y descodificación
mejorado para procesar información de audio multicanal.
Este objeto se soluciona por el asunto de la
invención de las reivindicaciones independientes.
Realizaciones preferentes están definidas en las
reivindicaciones dependientes.
En resumen, la descripción detallada se refiere
a estrategias para codificar y descodificar audio multicanal. Por
ejemplo, un codificador de audio utiliza una o más técnicas para
mejorar la calidad y/o velocidad binaria de los datos de audio
multicanal. Esto mejora la experiencia de percepción en conjunto y
hace que los sistemas de ordenador sean una plataforma más
atractiva para crear, distribuir y reproducir audio multicanal de
alta calidad. Las estrategias de codificación y descodificación
descritas en la presente memoria descriptiva incluyen varias
técnicas y herramientas que se pueden utilizar en combinación o
independientemente.
De acuerdo con un primer aspecto de las
estrategias descritas en la presente memoria descriptiva, un
codificador de audio ejecuta una transformación multicanal
preprocesado en los datos de audio multicanal. El codificador varía
la transformación durante la codificación para controlar la calidad.
En la codificación de velocidad binaria baja, por ejemplo, el
codificador altera o baja uno o más de los canales de audio
originales para reducir la complejidad de la codificación y mejorar
la calidad percibida en conjunto del audio.
De acuerdo con un segundo aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
decodificador de audio ejecuta una transformación multicanal de
postprocesado en datos de audio multicanal descodificados. El
descodificador utiliza la transformación para cualquier de múltiples
propósitos diferentes. Por ejemplo, el descodificador vuelve a
realizar opcionalmente la matriz de las muestras de audio del
dominio temporal para producir canales fantasmas en la reproducción
o para ejecutar efectos especiales.
De acuerdo con un tercer aspecto de las
estrategias que se han descrito en la presente memoria descriptiva,
un codificador de audio agrupa múltiples ventanas de diferentes
canales en uno o más placas y produce como salida información de
configuración de las placas. Por ejemplo, el codificador agrupa
ventanas de diferentes canales en una única placa cuando las
ventanas tienen el mismo momento del inicio y el mismo momento de
parada, lo cual permite que el codificador aísle los transitorios
para que aparecen en un canal en particular con ventanas pequeñas
(reduciendo los artefactos pre - eco), pero utiliza ventanas grandes
para la resolución de frecuencia y la resolución de redundancia
temporal en otros canales.
De acuerdo con un cuarto aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio pondera los datos de audio multicanal y a
continuación, después de ponderar pero antes de la cuantificación
posterior, ejecuta una transformación multicanal de los datos de
audio ponderados. Esta ordenación puede reducir las fugas del ruido
de cuantificación audible en los canales con la reconstrucción.
De acuerdo con un quinto aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio agrupa selectivamente canales múltiples de
datos de audio en grupos de canales múltiples para las
transformaciones multicanal. El codificador agrupa los canales
múltiples diferentemente en momentos diferentes en la secuencia de
audio. Esto puede mejorar la eficiencia proporcionando al
codificador un control más preciso en la aplicación de las
transformaciones multicanal a partes relativamente correlacionadas
de los datos.
De acuerdo con un sexto aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio conexiona/desconexiona selectivamente una
transformación seleccionada en bandas de frecuencias múltiples. Por
ejemplo, el codificador excluye selectivamente bandas que no son
compatibles en las transformaciones multicanal, lo cual de nuevo
proporciona al codificador un control más preciso sobre la
aplicación de las transformaciones multicanal a partes relativamente
correlacionadas de los datos.
De acuerdo con un séptimo aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio transforma datos de audio multicanal de acuerdo
con una jerarquía de transformaciones multicanal en etapas
múltiples. Por ejemplo, la jerarquía emula otra transformación al
mismo tiempo que reduce la complejidad de cálculo en comparación
con la otra transformación.
De acuerdo con un octavo aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio selecciona una transformación multicanal entre
múltiples tipos disponibles de transformaciones multicanal. Por
ejemplo, los tipos incluyen transformaciones múltiples predefinidas,
así como transformaciones a medida. De esta manera, el codificador
reduce la velocidad binaria utilizada para especificar
transformaciones.
De acuerdo con un noveno aspecto de las
estrategias que se describen en la presente memoria descriptiva, un
codificador de audio calcula una matriz de transformación unitaria
arbitraria y a continuación la factoriza. El codificador ejecuta la
transformación factorizada y produce como salida información de la
misma. De esta manera, el codificador comprime eficientemente
matrices de transformación multicanal efectivas.
Para varios de los aspectos que se han descrito
más arriba en términos de un codificador de audio, un descodificador
de audio ejecuta el procesado y descodificación
correspondiente.
Las distintas características y ventajas de la
invención serán evidentes a partir de la descripción detallada que
sigue de realizaciones que se describen con referencia a los dibujos
que se acompañan.
La figura 1 es un diagrama de bloques de un
codificador de audio de acuerdo con la técnica anterior.
La figura 2 es un diagrama de bloques de un
descodificador de audio de acuerdo con la técnica anterior.
Las figuras 3a - 3c son gráficos que muestran
configuraciones de ventanas de un marco de dato de audio estéreo de
acuerdo con la técnica anterior.
La figura 4 es un gráfico que muestra seis
canales en una configuración 5.1) de canal/altavoz.
La figura 5 es un diagrama de bloques de un
entorno de cálculo adecuado en el cual se pueden implementar las
realizaciones descritas.
La figura 6 es un diagrama de bloques de un
codificador de audio en el cual se pueden implementar las
realizaciones descritas.
La figura 7 es un diagrama de bloques de un
descodificador de audio en el cual se pueden implementar las
realizaciones descritas.
La figura 8 es un diagrama de flujo que muestra
una técnica generalizada para el preprocesado multicanal.
Las figuras 9a - 9e son gráficos que muestran
matrices ejemplares de preprocesado multicanal.
La figura 10 es un diagrama de flujo que muestra
una técnica para el preprocesado multicanal en la cual la matriz de
transformación cambia potencialmente en una base de marco a
marco.
Las figuras 11a y 11b son gráficos que muestran
configuraciones de placas ejemplares para audio multicanal.
La figura 12 es un diagrama de flujo que muestra
una técnica generalizada para configurar placas de audio
multicanal.
La figura 13 es un diagrama de flujo que muestra
una técnica para configurar concurrentemente placas y enviar
información de placas de audio multicanal de acuerdo con una
sintaxis de velocidad binaria particular.
La figura 14 es un diagrama de flujo que muestra
una técnica generalizada para ejecutar una transformación
multicanal después de la ponderación perceptual.
La figura 15 es un diagrama de flujo que muestra
una técnica generalizada para ejecutar una transformación
multicanal inversa antes de la ponderación perceptual inversa.
La figura 16 es un diagrama de flujo que muestra
una técnica para agrupar canales en una placa para la transformación
multicanal en una implementación.
La figura 17 es un diagrama de flujo que muestra
una técnica para recuperar información de grupos de canales e
información de transformación multicanal para una placa de un tren
binario de acuerdo con una sintaxis de tren binario particular.
La figura 18 es un diagrama de flujo que muestra
una técnica para incluir selectivamente bandas de frecuencia de un
grupo de canales y una transformación multicanal en una
implementación.
La figura 19 es un diagrama de flujo que muestra
una técnica para recuperar información de conexión/desconexión de
banda de una transformación multicanal para un grupo de canales de
una placa de un tren binario de acuerdo con una sintaxis de tren
binario particular.
La figura 20 es un diagrama de flujo que muestra
una técnica generalizada para emular una transformación multicanal
utilizando una jerarquía de transformaciones de canal más
simple.
La figura 21 es un gráfico que muestra una
jerarquía ejemplar de transformaciones multicanal.
La figura 22 es un diagrama de flujo que muestra
una técnica para recuperar información de una jerarquía de
transformaciones multicanal para grupos de canales de un tren
binario de acuerdo con una sintaxis de tren binario particular.
La figura 23 es un diagrama de flujo que muestra
una técnica generalizada para seleccionar un tipo de transformación
multicanal entre varios tipos disponibles.
La figura 24 es una diagrama de flujo que
muestra una técnica generalizada para recuperar un tipo de
transformación multicanal entre tipos plurales disponibles y
ejecutar una transformación multicanal inversa.
La figura 25 es un diagrama de flujo que muestra
una técnica para recuperar información de transformación multicanal
para un grupo de canales de un tren binario de acuerdo con una
sintaxis de tren binario particular.
La figura 26 es un gráfico que muestra la forma
general de una matriz de rotación para rotaciones Givens que
representan una matriz de transformación multicanal.
Las figuras 27a - 27c son gráficos que muestra
matrices de rotación ejemplares para rotaciones Givens que
representan una matriz de transformación multicanal.
La figura 28 es un diagrama de flujo que muestra
una técnica generalizada para representar una matriz de
transformación multicanal que utiliza rotaciones de factorización
Givens cuantificadas.
La figura 29 es un diagrama de flujo que muestra
una técnica para recuperar información de una transformación
unitaria genérica para un grupo de canales de un tren binario de
acuerdo con una sintaxis de tren binario particu-
lar.
lar.
La figura 30 es un diagrama de flujo que muestra
una técnica para recuperar un factor de cuantificación de placa en
conjunto para una placa de un tren binario de acuerdo con una
sintaxis de tren binario particular.
La figura 31 es un diagrama de flujo que muestra
una técnica generalizada para calcular modificadores de paso de
cuantificación por canal para datos de audio multicanal.
La figura 32 es un diagrama de flujo que muestra
una técnica para recuperar modificadores de paso de cuantificación
precanal de un tren binario de acuerdo con una sintaxis de tren
binario particular.
La figura 33 es un diagrama de flujo que muestra
una técnica generalizada para establecer adaptativamente un tamaño
de paso de cuantificación para los elementos de matriz de
cuantificación.
La figura 34 es un diagrama de flujo que muestra
una técnica generalizada para recuperar un tamaño de paso de
cuantificación adaptativo para elementos de matriz de
cuantificación.
Las figuras 35 y 36 son diagramas de flujo que
muestran técnicas para comprimir matrices de cuantificación
utilizando predicción temporal.
La figura 37 es un gráfico que muestra un mapeo
de bandas para la predicción de elementos de matriz de
cuantificación.
La figura 38 es un diagrama de flujo que muestra
una técnica para recuperar y descodificar matrices de cuantificación
comprimidas utilizando predicción temporal de acuerdo con la
sintaxis de tren binario particular.
La figura 39 es un diagrama de flujo que muestra
una técnica generalizada para un postprocesado multicanal.
La figura 40 es un gráfico que muestra una
matriz ejemplar para un postprocesado multicanal.
La figura 41 es un diagrama de flujo que muestra
una técnica para un posprocesado multicanal en el cual la matriz de
transformación cambia potencialmente en base de marco a marco.
La figura 42 es un diagrama de flujo que muestra
una técnica para identificar y recuperar una matriz de
transformación para un postprocesado multicanal de acuerdo con una
sintaxis de tren binario particular.
Las realizaciones descritas de la presente
invención se refieren a técnicas y herramientas para procesar
información de audio en la codificación y descodificación. En las
realizaciones descritas, un codificador de audio utiliza varias
técnicas para procesar el audio durante la codificación. Un
descodificador de audio utiliza varias técnicas para procesar el
audio durante la descodificación. Aunque las técnicas se describen
en lugares en la presente memoria descriptiva como parte de un
sistema integrado único, las técnicas pueden ser aplicadas por
separado, potencialmente en combinación con otras técnicas. En
realizaciones alternativas, una herramienta de procesado de audio
distinta de un codificador o un descodificador, implementa una o más
de las técnicas.
En algunas realizaciones, un codificador ejecuta
preprocesado multicanal. Para una codificación de velocidad binaria
baja, por ejemplo, el codificador opcionalmente vuelve a realizar la
matriz de las muestras de audio en el dominio del tiempo para
incrementar artificialmente la correlación entre los canales. Esto
hace que la compresión posterior de los canales afectados se más
eficiente, reduciendo la complejidad de codificación. El
preprocesado disminuye la separación de canales, pero puede mejorar
la calidad en conjunto.
En algunas realizaciones, un codificador y
descodificador trabajan con audio multicanal configurado en placas
de ventanas. Por ejemplo, el codificador divide los marcos de audio
multicanal en base a los canales, de manera que cada canal pueda
tener una configuración de ventana independiente de los otros
canales. A continuación, el codificador agrupa ventanas de los
canales divididos en placas para transformaciones multicanal. Esto
permite que el codificador aísle los transitorios que aparecen en
un canal particular de un marco con pequeñas ventanas (reduciendo
los artefactos pre - eco), pero utiliza ventanas grandes para la
resolución de frecuencia y la reducción de redundancia temporal en
otros canales del marco.
En algunas realizaciones, un codificador ejecuta
una o más técnicas de transformación multicanal flexible. Un
descodificador ejecuta las técnicas de transformación multicanal
inversas correspondientes. En las primeras técnicas, el codificador
ejecuta una transformación multicanal después de la ponderación
perceptual en el codificador, lo cual reduce las fugas de ruido de
cuantificación audible en los canales con la reconstrucción. En
técnicas segundas, un codificador agrupa flexiblemente canales para
las transformaciones multicanal para incluir selectivamente canales
en momentos diferentes. En técnicas terceras, un codificador incluye
o excluye flexiblemente bandas de frecuencia particulares en
transformaciones multicanal, para incluir selectivamente bandas
compatibles. En técnicas cuartas, un codificador reduce la velocidad
binaria asociada a matrices de transformación utilizando
selectivamente matrices predefinidas o utilizando rotaciones Givens
para parametrizar matrices de transformación a medida. En técnicas
quintas, un codificador ejecuta las transformaciones multicanal de
jerarquía flexible.
En algunas realizaciones, un codificador ejecuta
una o más técnicas mejoradas de cuantificación o ponderación. Un
descodificador correspondiente ejecuta la cuantificación inversa
correspondiente con las técnicas de ponderación inversa. En
técnicas primeras, un codificador calcula y aplica los modificadores
de paso de cuantificación por canal, lo cual proporciona al
codificador más control respecto al balance de la calidad de
reconstrucción entre canales. En técnicas segundas, un codificador
utiliza un tamaño de paso de cuantificación flexible para
cuantificar elementos de matriz, lo cual permite que el codificador
cambie la resolución de los elementos de las matrices de
cuantificación. En técnicas terceras, un codificador utiliza
predicción temporal en compresión de matrices de cuantificación
para reducir la velocidad binaria.
En algunas realizaciones, un descodificador
efectúa postprocesado multicanal. Por ejemplo, el descodificador
vuelve a realizar opcionalmente la matriz de las muestras de audio
en el dominio de tiempo para crear canales fantasmas en la
reproducción, ejecutar efectos especiales, plegar canales para la
reproducción en menos altavoces, o para cualquier otro
propósito.
En las realizaciones descritas, el audio
multicanal incluye seis canales de una configuración estándar 5.1
de canal/altavoz como se muestra en la matriz (400) de la figura 4.
Los canales "5" son el izquierdo, derecho, central, trasero
izquierdo y trasero derecho y están orientados espacialmente de
manera convencional para el sonido envolvente. En el canal "1"
es el sub - woofer o canal de efectos de baja frecuencia. Con la
finalidad de claridad, el orden de los canales que se muestran en
la matriz (400) también se utilizan para matrices y ecuaciones en
el resto de la memoria descriptiva. Realizaciones alternativas
utilizan audio multicanal que tiene diferentes órdenes, números
(por ejemplo, 7.1, 9.1, 2 y/o configuración de canales.
En las realizaciones descritas, el codificador y
descodificador de audio ejecutan distintas técnicas. Aunque las
operaciones de estas técnicas típicamente son descritas en un orden
particular, secuencial, con el fin de la presentación, se debe
entender que esta manera de solución incluye reajustes menores en el
orden de las operaciones, a no ser que se requiera un orden en
particular. Por ejemplo, las operaciones descritas secuencialmente
en algunos casos se pueden disponer o ejecutar concurrentemente.
Además, con el fin de simplicidad, los gráficos de flujo
típicamente no muestran las distintas maneras en las cuales las
técnicas particulares pueden ser utilizadas en conjunto con otras
técnicas.
La figura 5 ilustra un ejemplo generalizado de
un entorno informático adecuado (500) en el cual se pueden
implementar las realizaciones descritas. Este entorno informático
(500) no pretende sugerir ninguna limitación respecto al alcance de
utilización o funcionalidad de la invención, puesto que la presente
invención se puede implementar en distintos entornos informáticos
de propósito general o de propósito especial.
Con referencia a la figura 5, el entorno
informático (500) incluye al menos una unidad de procesado (510) y
una memoria (520. En la figura 5, esta configuración más básica
(530) está incluida en el interior de una línea de trazos. La
unidad de procesado (510) ejecuta instrucciones ejecutables por
ordenador y puede ser un procesador real o virtual. En un sistema
de multiprocesado, unidades de procesado múltiples ejecutan
instrucciones ejecutables por ordenador para incrementar la
potencia del procesado. La memoria (520) puede ser una memoria
volátil (por ejemplo, registros, caché; RAM), memoria no volátil
(por ejemplo, ROM, EEPROM, memoria flash, etc.) o alguna
combinación de las dos. La memoria (520) almacena programas lógicos
(580) que implementan técnicas de procesado de audio de acuerdo con
una o más de las realizaciones descritas.
Un entorno informático puede tener
características adicionales. Por ejemplo, el entorno informático
(500) incluye un almacén (540), uno o más dispositivos de entrada
(550, uno o más dispositivos de salida (560) y una o más conexiones
de comunicación (570). Un mecanismo de interconexión (no mostrado)
tal como un bus, controlador o red interconecta los componentes del
entorno informático (500). Típicamente, el programa lógico (no
mostrado) del sistema operativo proporciona un entorno de operación
para otros programas lógicos que funcionan en el entorno
informático (500), y coordina las actividades de los componentes del
entorno informático (500).
El almacén (540) puede ser retirable o no
retirable, e incluye discos magnéticos, cintas magnéticas o casetes,
CD-ROM, CD-RW, DVD, o cualquier
otro medio que se pueda utilizar para almacenar información, y al
que se pueda acceder en el entorno informático (500). El almacén
(540) almacena instrucciones para el programa lógico (580),
implementando técnicas de procesado de audio de acuerdo con una o
más realizaciones descritas.
El, o los dispositivos de entrada (550) pueden
ser dispositivos de entrada táctil, tal como un teclado, ratón,
lápiz o dispositivo de puntero, un dispositivo de entrada por voz,
un dispositivo de exploración, un adaptador de red, o cualquier
dispositivo que proporcione entradas al entorno informático (500).
Para audio, el dispositivo de entrada (550) puede ser una tarjeta
de sonido o dispositivo similar que acepta entradas de audio en
forma analógica o digital, o un lector CD-ROM/DVD
que proporcione muestras de audio al entorno informático. El
dispositivo de salida (560) puede ser una pantalla, impresora,
altavoz, dispositivo de escritura CD/DVD, adaptador de red u otro
dispositivo que proporcione salida desde el entorno informático
(500).
Las conexiones de comunicación (570) permiten la
comunicación en un medio de comunicación a otra entidad de entorno
informático. El medio de comunicación transporta información tal
como instrucciones ejecutables por ordenador, información de audio
comprimida u otros datos en una señal de datos modulada. Una señal
de datos modulada es una señal que tiene una o más de sus
características establecidas o cambiadas de tal manera que
codifique información en la señal. A titulo de ejemplo, y no de
limitación, el medio de comunicación incluye técnicas con cable o
inalámbricas implementadas con un portador eléctrico, óptico, de RF,
infrarrojo, acústico o de otro tipo.
La invención se puede describir en el contexto
general de los medios legibles por ordenador. Los medios legibles
por ordenador son cualquier medio disponible al que se pueda acceder
en un entorno informático. A titulo de ejemplo y no de limitación,
en el entorno informático (500) los medios legibles por ordenador
incluyen memorias (520), almacenamientos (540), medios de
comunicación y combinaciones de cualquiera de los anteriores.
La invención se puede describir en el contexto
general de las instrucciones ejecutables por ordenador, tales como
aquellas que incluyen módulos de programa, que son ejecutadas en un
entorno informático en un procesador objetivo real o virtual. En
general, los módulos de programa incluyen rutinas, programas,
librerías, objetos, clases, componentes, datos, estructuras, etc.
que ejecutan las tares particulares o implementan tipos de datos
abstractos en particular. La funcionalidad de los módulos de
programa se puede combinar o dividir entre módulos de programa como
se desee en distintos entornos. Las instrucciones ejecutables por
ordenador de los módulos de programa pueden ser ejecutadas en un
entorno informático local o distribuido.
Con la finalidad de presentación, la descripción
detallada utiliza expresiones tales como "determinar",
"generar", "ajustar", y "aplicar" para describir
operaciones de ordenador en el entorno informático. Estas
expresiones son abstracciones de alto nivel para las operaciones
ejecutadas por un ordenador y no se deben confundir con los actos
ejecutados por los seres humanos. Las operaciones de ordenador
actuales que se corresponden a estas expresiones varían dependiendo
de la implementación.
La figura 6 es un diagrama de bloques de un
codificador (600) de audio generalizado en el cual se pueden
implementar las realizaciones descritas. La figura 7 es un diagrama
de bloques de un descodificador (700) de audio generalizado en el
cual se pueden implementar las realizaciones descritas.
Las relaciones mostradas entre los módulos en el
codificador y descodificador indican flujos de información en el
codificador y en el descodificador; otras relaciones no se muestran
con el fin de simplicidad. Dependiendo de la implementación y del
tipo de compresión deseada, los módulos de codificador o
descodificador pueden ser añadidos, omitidos, divididos en módulos
múltiples, combinados con otros módulos y/o reemplazados por
módulos similares. En realizaciones alternativas, los codificadores
y descodificadores con distintos módulos y/o otras configuraciones
procesan datos de audio.
El codificador (600) de audio generalizado
incluye un selector (608), un preprocesador multicanal (610), un
configurador (620) divisor/placa, un transformador (630) de
frecuencia, un modelizador (640) de percepción, un ponderador (642)
de banda de cuantificación, un cuantificador (644) de canal, un
transformador (650) multicanal, un cuantificador (660), un
codificador de entropía (670), un controlador (680), un Codec (672)
sin pérdida mixto/puro y codificador de entropía asociado (674), y
un multiplexor MUX (690) de tren binario.
El codificador (600) recibe una serie temporal
de entrada de muestras (605) de audio con alguna profundidad de
muestreo y velocidad en formato modulado de códigos de impulsos
["PCM"]. En la mayor parte de las realizaciones descritas, la
entrada de muestras de audio (605) son para audio multicanal (por
ejemplo, estéreo, envolvente) pero la entrada de muestras de audio
(605), por el contrario pueden ser mono. El codificador (600)
comprime las muestras (605) de audio y multiplexa la información
producida por los distintos módulos del codificador (600) para
producir como salida un tren binario (695) en un formato tal como
formato de Windows Media Audio ["WMA"] o Formato de Tren
Avanzado ["ASF"]. Alternativamente, el codificador (600)
trabaja con otros formatos de entrada y/o salida.
El selector (608) selecciona entre múltiples
modos de codificación para las muestras (605) de audio. En la
figura 6, el selector (608) conmuta entre un modo de codificación
mixto/puro sin pérdida y un modo de codificación con pérdida. El
modo de codificación sin perdida incluye el codificador (672)
mixto/puro sin perdida y típicamente se utiliza para la compresión
de alta calidad (y alta velocidad binaria). El modo de codificación
con perdida incluye componentes tales como el ponderador (642) y
cuantificador (660) y típicamente se utiliza para compresión de
calidad ajustable (y velocidad binaria controlada). La decisión de
selección en el selector (608) depende de la entrada del usuario o
de otros criterios. En algunas circunstancias (por ejemplo, cuando
la compresión con perdida falla en el suministro de una calidad
adecuada o sobreproduce bits), el codificador (600) puede
conmutarse desde la codificación con perdida a la codificación
mixta/pura sin perdida para un marco o un conjunto de marcos.
Para la codificación con perdida de datos de
audio multicanal, el preprocesador multicanal (610) opcionalmente
vuelve a realizar la matriz de las muestras de audio (605) en el
dominio temporal. En algunas realizaciones, el preprocesador (610)
multicanal vuelve a revisar selectivamente la matriz de las muestras
de audio (605) para bajar uno o más canales codificados o
incrementar la correlación intercanal en el codificador (600), pero
permite la reconstrucción (de alguna manera) en el descodificador
(700). Esto proporciona al codificador control adicional sobre la
calidad a nivel de canal. El preprocesador multicanal (610) puede
enviar información lateral tal como instrucciones para el
postprocesado multicanal al MUX (690). Para detalles adicionales
respecto a la operación del preprocesador multicanal en algunas
realizaciones, véase la sección titulada "Preproceso
multicanal". Alternativamente, el codificador (600) ejecuta otra
forma de preproceso multicanal.
El configurador (620) de divisor/placa divide un
marco (605) de muestras de entrada de audio en bloques de submarcos
(por ejemplo, ventanas) con tamaños que varían con el tiempo y
funciones de conformación de ventanas. Los tamaños y ventanas de
los bloques de submarcos dependen de la detección de señales
transitorias en el marco, modo de codificación, así como de otros
factores.
Si el codificador (600) realiza la conmutación
de codificación con pérdida a codificación mixta/pura sin pérdida,
los bloques de submarcos no necesitan solaparse o pueden tener en
teoría una función de ventana (es decir, bloques de ventanas
rectangulares, no solapantes), pero las transiciones entre marcos
codificados con pérdida y otros marcos pueden requerir tratamiento
especial. El configurador (620) divisor/placa produce como salida
bloques de datos divididos al codificador mixto/puro sin pérdida
(672) y produce como salida información lateral tal como un tamaño
de bloque al MUX (690). Para detalles adicionales con respecto a la
división y formación de ventanas para marcos codificados sin
pérdida mixtos o puros, véase la solicitud relacionada titulada
"Compresión de Audio Unificada con pérdida y sin pérdida".
Cuando el codificador (600) utiliza codificación
con pérdida, una ventana de tamaño variable permite la resolución
temporal variable. Bloques pequeños permiten una preservación mayor
de detalles temporales en segmentos de transición cortos pero
activos. Los bloques grandes presentan una mejor resolución de
frecuencias y una peor resolución temporal, y normalmente permiten
una eficiencia de compresión mayor en segmentos más grandes o menos
activos, en parte debido a que el encabezado de marco y de
información lateral es proporcionalmente menor en bloques pequeños,
y en parte debido a que permite una mejor supresión de redundancia.
Los bloques se pueden solapar para reducir las discontinuidades
perceptibles entre bloques que de otra manera serían introducidas
por una cuantificación posterior. El configurador (620)
divisor/placa produce como salida bloques de datos divididos al
transformador (630) de frecuencia y produce como salida información
lateral tal como tamaños de bloque al MUX (690). Para información
adicional respecto a la detección de transitorios y los criterios
de partición en algunas realizaciones, véase la Solicitud de Patente
norteamericana número de serie 10/016.918, titulada "Selección
Adaptativa de Ventana -Tamaño en la Codificación de
Transformación", presentada el 14 de diciembre de 2001.
Alternativamente, el configurador (620) divisor/placa utiliza otros
criterios de partición o tamaños de bloques cuando divide un marco
en
ventanas.
ventanas.
En algunas realizaciones, el configurador (620)
divisor/placa divide marcos de audio multicanal en base a los
canales. El configurador (620) divisor/placa divide
independientemente cada canal en el marco, si lo permite la
calidad/velocidad binaria. Esto permite, por ejemplo, que el
configurador (620) divisor/ placa aísle los transitorios que
aparecen en un canal en particular en ventanas más pequeñas, pero
utiliza ventanas mayores para la resolución de frecuencias o la
eficiencia de compresión en otros canales. Esto puede mejorar la
eficiencia de compresión aislando transitorios en base a los
canales, pero es necesaria en muchos casos información adicional
que especifique las particiones en canales individuales. Las
ventanas del mismo tamaño que están colocadas en la misma posición
temporalmente pueden cualificar para una reducción de redundancia
adicional por medio de la trasformación multicanal. De esta manera,
el configurador (620) divisor/placa agrupa ventanas del mismo
tamaño que están colocadas en la misma posición temporalmente como
una placa. Para detalles adicionales referentes a la colocación de
placas en algunas realizaciones, véase la sección denominada
"Configuración de Placa".
El transformador (630) de frecuencia recibe
muestras de audio y las convierte en datos en el dominio de la
frecuencia. El transformador de frecuencia (630) produce como salida
bloques de datos de coeficientes de frecuencias al ponderador (642)
y produce como salida información lateral tal como tamaños de bloque
al MUX (690). El transformador de frecuencia (630) produce como
salida coeficientes de frecuencias así como información lateral al
modelador (640) de percepción. En algunas realizaciones, el
transformador (630) de frecuencia aplica una Transformación
Solapada Modular ["MLT"] variable con el tiempo a los bloques
de submarcos que operan como una DCT modulada por la(s)
función(es) sinusoidales de ventana de los bloques de
submarcos. Realizaciones alternativas utilizan otro variedades de
MLT, o una DCT u otro tipo de transformación de frecuencia modulada
o no modulada, solapada o no solapada, o utilizan codificación de
subbandas o de ondas pequeñas.
El modelador (640) de percepción modeliza
propiedades del sistema auditivo humano para mejorar la calidad
percibida de la señal de audio reconstruida para una velocidad
binaria dada. En general, el modelador (640) de percepción procesa
los datos de audio de acuerdo con un modelo auditivo, y a
continuación proporciona información al ponderador (642) que puede
ser utilizada para generar factores de ponderación para los datos de
audio. El modelador (640) de percepción utiliza cualquiera de los
distintos modelos auditivos y pasa la información del patrón de
situación u otra información al ponderador (642).
El ponderador (642) de banda de cuantificación
genera factores de ponderación para matrices de cuantificación en
base a la información recibida del modelador (640) de percepción y
aplica los factores de ponderación a los datos recibidos del
transformador (630) de frecuencia. Los factores de ponderación para
una matriz de cuantificación incluyen una ponderación para cada una
de las múltiples bandas de cuantificación en los datos de audio.
Las bandas de cuantificación puede ser las mismas o diferentes en
número o posición que las bandas críticas utilizadas en otros
sitios en el codificador (600), y los factores de ponderación pueden
variar en amplitud y número de bandas de cuantificación de bloque a
bloque. El ponderador (642) de banda de cuantificación produce como
salida bloques ponderados de datos de coeficientes al ponderador
(644) de canales y produce como salida información lateral tal como
el conjunto de factores de ponderación al MUX (690). El conjunto de
factores de ponderación puede ser comprimido para una
representación más eficiente. Si los factores de ponderación son
comprimidos con pérdida, los factores de ponderación reconstruidos
se utilizan típicamente para ponderar los bloques de datos de
coeficientes. Para detalles adicionales respecto al cálculo y
compresión de los factores de ponderación en algunas realizaciones,
véase de la sección titulada "Cuantificación y Ponderación".
Alternativamente, el codificador (600) utiliza otra forma de
ponderación o evita la
ponderación.
ponderación.
El ponderador (644) de canales genera factores
de ponderación (que son escalares) específicos para canales en base
a la información recibida del modelador (640) de percepción y
también en la calidad de la señal reconstruida localmente. Las
ponderaciones escalares (también llamadas modificadores de paso de
cuantificación) permiten que el codificador (600) proporcione una
calidad aproximadamente uniforme a los canales reconstruidos. Los
factores de ponderación de los canales pueden variar en amplitud de
canal a canal y de bloque a bloque, o a algún otro nivel. El
ponderador (644) de canales produce como salida bloques ponderados
de datos de coeficientes al transformador (650) multicanal y
produce como salida información lateral tal como el conjunto de
factores de ponderación de canales al MUX (690). El ponderador
(644) de canales y el ponderador (642) de bandas de cuantificación
en el diagrama de flujo pueden ser intercambiados o combinados
conjuntamente Para detalles adicionales respecto al cálculo y
compresión de los factores de ponderación en alguna realizaciones,
véase de la sección titulada "Cuantificación y Ponderación".
Alternativamente, el codificador (600) utiliza otra forma de
ponderación o evita la ponderación.
Para datos de audio multicanal, los canales
múltiples de datos de coeficientes de frecuencias en forma de ruido
producidos por el ponderador (644) de canales a menudo se
correlacionan, de manera que el transformador (650) multicanal
puede aplicar una transformación multicanal. Por ejemplo, el
transformador multicanal (650) aplica selectiva y flexiblemente la
trasformación multicanal a algunos pero no a todos los canales y/o
bandas de cuantificación en la placa. Este proporciona al
transformador (650) multicanal un control más preciso respecto a la
aplicación de la trasformación a las partes correlacionadas
relativamente de la placa. Para reducir la complejidad del cálculo,
el transformador multicanal (650) puede utilizar una transformación
jerárquica en lugar de una transformación de un nivel. Para
reducir la velocidad binaria asociada a la matriz de transformación,
el transformador multicanal (650) utiliza selectivamente matrices
predefinidas (por ejemplo, de identidad/no transformación, Hadamart,
DCT tipo II) o matrices a medida, y aplica compresión eficiente a
las matrices a medida. Finalmente, puesto que la trasformación
multicanal se encuentra aguas abajo del ponderador (642), la
perceptibilidad del ruido (por ejemplo debido a la cuantificación
posterior) que fuga entre canales después de la trasformación
multicanal inversa en el decodificador (700) está controlada por
ponderación inversa. Para detalles adicionales respecto a las
transformaciones multicanal en algunos entornos, véase la sección
titulada "Transformaciones Multicanal Flexibles".
Alternativamente, el codificador (600) utiliza otras formas de
transformaciones multicanal o ninguna transformación. El
transformador multicanal (650) produce información lateral al MUX
(690) indicando, por ejemplo, las transformaciones multicanal
utilizadas en las partes de las placas multicanal
transformadas.
El codificador (660) cuantifica la salida del
transformador (650) multicanal, produciendo datos de coeficientes
cuantificados al codificador de entropía (670) e información lateral
que incluye tamaños de paso de cuantificación al MUX (690). En la
figura 6, el cuantificador (660) es un cuantificador adaptativo,
uniforme, escalar que calcula un coeficiente de cuantificación de
placa. El factor de cuantificación de placa puede cambiar de una
interacción de un bucle de cuantificación al siguiente afectando la
velocidad binaria de la salida del codificador de entropía (660), y
los modificadores de paso de cuantificación por canal se pueden
utilizar para compensar la calidad de reconstrucción entre los
canales. Para detalles adicionales respecto a la cuantificación en
algunos entornos, véase la sección titulada "Cuantificación y
Ponderación". En realizaciones alternativas, el cuantificador es
un cuantificador no uniforme, un cuantificador detector, y/o un
cuantificador no adaptativo, o utiliza una forma diferente de
cuantificación adaptativa, uniforme, escalar. En otras realizaciones
alternativas, el cuantificador es un cuantificador no uniforme, un
vector cuantificador y/o un cuantificador no adaptativo, o utiliza
una forma diferente de cuantificación escalar, adaptativa, uniforme.
En otras realizaciones alternativas, el cuantificador (660), el
ponderador (642) de banda de cuantificación, el ponderador (644) de
canales y el transformador (650) multicanal están fusionados y el
módulo fusionado determina distintas ponderaciones en el mismo
momento.
El codificador de entropía (670) comprime sin
pérdida datos de coeficientes cuantificados recibidos del
cuantificador (660). En algunas realizaciones, el codificador de
entropía (670) utiliza codificación de entropía adaptativa como se
describe en la Solicitud relacionada titulada "Codificación de
Entropía por Codificación Adaptativa entre Modos de Nivel y
Longitud de Ejecución/Nivel". Alternativamente, el codificador de
entropía (670) utiliza alguna otra forma o combinación de
codificación de nivel múltiple de longitud de ejecución,
codificación de longitud variable a variable, codificación del
longitud de ejecución, codificación de Huffman, codificación de
diccionario, codificación aritmética, codificación LZ, o alguna otra
técnica de codificación de entropía. El codificador de entropía
(670) puede calcular el número de bits utilizados codificando
información de audio y pasar esta información al controlador (680)
de velocidad/calidad.
El controlador (680) trabaja con el
cuantificador (660) para regular la velocidad binaria y/o calidad de
la salida del codificador (600). El controlador (680) recibe
información de otros módulos del codificador (600) y procesa la
información recibida para determinar los factores de cuantificación
deseados dadas las condiciones actuales. El controlador (670)
produce como salida los factores de cuantificación al cuantificador
(660) con el objetivo de satisfacer los límites de calidad y/o
velocidad binaria.
El codificador (672) mixt0/puro sin pérdida y el
codificador de entropía asociado (674) comprimen datos de audio
para el modo de codificación mixta/puro sin pérdida. El codificador
(600) utiliza el modo de codificación mixta/pura sin pérdida para
una secuencia completa o conmutar entre los modos de codificación de
marco a marco, de bloque a bloque, de placa a placa o en otra base.
Para detalles adicionales respecto al modo de codificación
mixta/pura sin pérdida, véase la Solicitud relacionada titulada
"Compresión de Audio Unificada con pérdida y sin pérdida".
Alternativamente, el codificador (600) utiliza otras técnicas para
la codificación mixta y/o pura sin pérdida.
El MUX (690) multiplexa la información lateral
recibida de otros módulos del codificador (600) de audio junto con
los datos codificados de entropía recibidos de los codificadores de
entropía (670, 674). El MUX (690) produce como salida la
información en un formato WMA o en otro formato que reconozca el
descodificador de audio. El MUX (690) incluye una memoria tampón
virtual que almacena el tren binario (695) que va a ser producido
como salida por el codificador (600). A continuación, el tampón de
memoria virtual produce como salida datos a una velocidad binaria
relativamente constante, aunque la calidad puede cambiar debido a
los cambios de complejidad en la entrada. La plenitud actual y
otras características de la memoria tampón podrán ser utilizadas por
el controlador (680) para regular la calidad y/o una velocidad
binaria. Alternativamente, la salida de velocidad binaria puede
variar con el tiempo, y la calidad se mantiene relativamente
constante. O la velocidad binaria de salida solamente está limitada
para que sea menor que una velocidad binaria particular, que puede
ser constante o variable con el
tiempo.
tiempo.
Con referencia la figura 7, el descodificador
(700) de audio generalizado incluye un desmultiplexor de tren de
datos ["DEMUX"] (710), uno o más descodificadores de entropía
(720), un descodificador mixto/puro sin pérdida (722), un
descodificador (730) de configuración de placa, un transformador
(740) multicanal inverso, un cuantificador/ponderador inverso
(750), un transformador inverso de frecuencia (760, un
solapador/sumador (770) y un postprocesador (780) multicanal. El
descodificador (700) es de alguna forma más simple que el
codificador (700) debido a que el descodificador (700) no incluye
módulos de control de velocidad/calidad o modelización de
percep-
ción.
ción.
El descodificador (700) recibe un tren binario
(705) de información de audio comprimida en un formato WMA u otro
tipo de formato. El tren binario (705) incluye datos codificados de
entropía así como información lateral a partir de la cual el
descodificador (700) reconstruye las muestras (795) de audio.
El DEMUX (710) analiza información en el tren
binario (705) y envía información a los módulos del descodificador
(700) El DEMUX (710) incluye una o más memorias tampón para
compensar las variaciones a corto término en la velocidad binaria
producidas por las fluctuaciones en la complejidad del audio,
inestabilidades de red y/o otros factores.
El uno o más descodificadores de entropía (720)
descomprime sin pérdida códigos de entropía recibidos del DEMUX
(710). El descodificador de entropía (720) típicamente aplica la
inversa de la técnica de codificación de entropía utilizada en el
codificador (600). Con el finalidad de simplicidad, un módulo
descodificador de entropía se muestra en la figura 7, aunque se
podrán utilizar diferentes descodificadores de entropía para modos
de codificación con pérdida y sin pérdida, o incluso en el interior
de módulos. También por la finalidad de simplicidad, la figura 7
muestra la lógica de selección de modos. Cuando se descodifican los
datos comprimidos en el modo de codificación compartida, el
descodificador de entropía (720) produce datos de coeficientes de
frecuencias cuantificados.
El descodificador (722) mixto./puro sin pérdidas
y los descodificadores de entropía asociados (720) descomprimen sin
pérdidas datos de audio codificados para el modo de codificación
mixta/pura sin pérdida. Para detalles adicionales respecto a la
descompresión en el modo de descodificación mixta/pura sin pérdida,
véase la solicitud relacionada titulada "Compresión de Audio
Unificada con Pérdida y sin Pérdida". Alternativamente, el
descodificador (700) utiliza otras técnicas para descodificación
mixta y/o pura sin pérdidas.
El descodificador (730) de configuración de
placas recibe y, en caso necesario, descodifica la información que
indica los patrones de placas para marcos del DEMUX (790). La
información de patrón de marcos puede ser codificada en entropía o
parametrizada de otra manera. El descodificador (730) de
configuración de placas a continuación pasa la información de
patrón de placas a otros módulos distintos del descodificador (700).
Para detalles adicionales respecto a la descodificación de la
configuración de placas en algunas realizaciones, véase la sección
titulada "Configuración de Placas". Alternativamente, el
descodificador (700) utiliza otras técnicas para parametrizar
patrones de ventana en marcos.
El transformador multicanal inverso (740) recibe
los datos de coeficientes de frecuencias cuantificados del
descodificador de entropía (720) así como la información del patrón
de placas del descodificador (730) de configuración de placas e
información lateral del DEMUX (710) que indica, por ejemplo, la
transformación multicanal utilizada y las partes transformadas de
las placas. Usando esta información, el transformador multicanal
inverso (740) descomprime la matriz de transformación como sea
necesario, y aplica selectiva y flexiblemente una o más
transformaciones multicanal inversas a los datos de audio. La
colocación del transformador multicanal inverso (740) en relación
con el cuantificador/ponderador inverso (750) ayuda a conformar el
ruido de cuantificación que puede fugar a través de los canales.
Para detalles adicionales respecto a las trasformaciones multicanal
inversas en algunas realizaciones, véase las sección titulada
"Transformaciones Multicanal Flexibles".
El cuantificador/ponderador inverso (750) recibe
los factores de cuantificación de placas y de canales así como las
matrices de cuantificación del DEMUX (710) y recibe los datos de
coeficientes de frecuencias cuantificados del transformador
multicanal inverso (740). Un El cuantificador/ponderador inverso
(750) descomprime la información de factor/matriz de cuantificación
recibida como sea necesario, y a continuación ejecuta la
cuantificación y la ponderación inversa. Para detalles adicionales
respecto a la cuantificación y ponderación inversa en algunas
realizaciones, véase en la sección titulada "Cuantificación y
Ponderación". En realizaciones alternativas, el
cuantificador/ponderador inverso aplica la inversa de algunas otras
técnicas de cuantificación utilizadas en el
codificador.
codificador.
El transformador de frecuencia inverso (760)
recibe la salida de datos de coeficientes de frecuencias del
cuantificador/ponderador inverso (750) así como información lateral
del DEMUX (710) e información del patrón de placas del
descodificador (730) de configuración de placas. El transformador de
frecuencia inverso (770) aplica la inversa de la transformación de
frecuencia utilizada en el codificador y produce como salida bloques
al solapador/sumador
(770).
(770).
Además de recibir la información del patrón de
placas del descodificador (730) de placas, el solapador/sumador
(770) recibe información descodificada del transformador de
frecuencia inversa (760) y/o del descodificador mixto/sin pérdidas
(722). El solapador/sumador (770) solapa y añade datos de audio como
sea necesario e intercala marcos u otras secuencias de datos de
audio codificadas con modos diferentes. Para detalles adicionales
respecto al solapamiento, suma e intercalado de marcos codificados
sin pérdida o mixtos, véase la solicitud relacionada titulada
"Compresión Unificada de Audio con pérdida y sin pérdida".
Alternativamente, el descodificador (700) utiliza otras técnicas
para el solapamiento, suma e intercalado de marcos.
El postprocesador multicanal (780) opcionalmente
vuelve a realizar la matriz de la salida de muestras de audio en el
dominio temporal por el solapador/sumador (770). El procesador
multicanal selectivamente vuelve a realizar la matriz de los datos
de audio para crear canales fantasmas para la reproducción, ejecuta
efectos especiales tales como rotación espacial de canales entre
los altavoces, pliega canales para la reproducción con menos
altavoces, o con cualquier otro propósito. Para el postprocesado
controlado del tren de binario, las matrices de transformación de
postprocesado varían en el tiempo y están señalizadas o incluidas en
el tren binario (705). Para detalles adicionales respecto a la
operación del postprocesador multicanal en algunas realizaciones,
véase la sección titulada "Postprocesado Multicanal".
Alternativamente, el descodificador (700) ejecuta otra forma de
postprocesado
multicanal.
multicanal.
En algunas realizaciones, un codificador tal
como el codificador (600) de la figura 6 ejecuta preprocesado
multicanal en entrada de muestras de audio en el dominio
temporal.
En general, cuando hay en N fuentes de
canales de audio como entrada, el número de canales codificados
producidos por el codificador también es N. Los canales
codificados pueden corresponder uno a uno a los canales fuente, o
los canales codificados pueden ser canales codificados por
transformación multicanal. Cuando la complejidad de codificación de
la fuente hace que la compresión sea difícil o cuando la memoria tan
está llena, sin embargo, el codificador puede alterar o dejar caer
(es decir, no codificar) uno o más de los canales de audio de
entrada originales. Esto se puede realizar para reducir la
complejidad de codificación y mejorar la calidad percibida en
conjunto del audio. Para el preprocesado dirigido por calidad, el
codificador ejecuta el preprocesado multicanal como reacción a la
calidad de audio medida de manera que controle suavemente la
calidad de audio en conjunto y la separación de canales.
Por ejemplo, el codificador puede alterar la
imagen de audio multicanal para hacer que uno o más canales sean
menos críticos de manera que los canales se dejen caer en el
codificador siendo reconstruidos en el codificador como canales
"fantasma". El borrado directo de los canales puede tener un
efecto muy importante en la calidad, de manera que solamente se
realiza cuando la complejidad de codificación es muy alta o la
memoria tampón está tan llena que no se puede conseguir buena
calidad de reproducción por otros medios.
El codificador pueden indicar al descodificador
que acción se debe tomar cuando el número de canales codificados es
menor que el número de canales de salida. A continuación, se puede
utilizar una transformación multicanal postprocesado en el
descodificador para crear canales fantasmas, como se describirá más
adelante en la sección titulada "Postprocesado Multicanal". O
el codificador puede indicar al descodificador que ejecute
postprocesado multicanal con otro propósito.
La figura 8 muestra una técnica generalizada
(800) para preprocesado multicanal. El codificador ejecuta (810)
preprocesado multicanal sobre los datos (805) de audio multicanal en
el dominio temporal, produciendo datos (815) de audio transformados
en el dominio temporal. Por ejemplo, el preprocesado incluye una
transformación en conjunto N a N, donde N es
el número de canales. El codificador multiplica N muestras
por una matriz A,
en donde x_{pre} e
y_{pre} son la entrada de N canales y la salida del
preprocesado, y A_{pre} es una matriz de trasformación
general N x N con elementos de valor real (es decir,
continuos). La matriz A_{pre} se puede elegir para
incrementar artificialmente la correlación intercanales en
y_{pre} en comparación con x_{pre}. Esto reduce
la complejidad para el resto del codificador, pero al coste de
separación de canales
perdida.
La salida y_{pre} a continuación es
alimentada al resto del codificador, que codifica (820) los datos
utilizando las técnicas que se muestran en las figuras 6 u otras
técnicas de compresión, produciendo datos de audio multicanal
codificados (825).
La sintaxis utilizada por el codificador y
descodificador permite la descripción de matrices de trasformación
multicanal de postprocesado generales o predefinidas, que pueden
variar o ser conectadas/desconectadas en una base de marco a marco.
El codificador utiliza esta flexibilidad para limitar el daño a las
imágenes estéreo/envolvente, compensando la separación de canal con
una calidad en conjunto mejor en ciertas circunstancias,
incrementando artificialmente la correlación entre canales.
Alternativamente, el descodificador y el codificador utilizan otra
sintaxis para el preprocesado y postprocesado multicanal, por
ejemplo, una que permita cambios en las matrices de trasformación
en una base diferente que la de marco a marco.
Las figuras 9a - 9e muestran matrices de
transformación preprocesado multicanal (900 - 904) utilizadas para
incrementar artificialmente la correlación entre canales bajo
ciertas circunstancias en el codificador. El codificador conmuta
entre matrices de preprocesado para cambiar la cantidad de
correlación entre canales que es incrementada artificialmente entre
los canales izquierdo, derecho y central, y entre los canales
trasero izquierdo y trasero derecho en un entorno de reproducción
de canales 5.1.
En una implementación, con bajas velocidades
binarias, el codificador evalúa la calidad de audio reconstruida en
algún período de tiempo, y dependiendo del resultado, selecciona una
de las matrices de preprocesado. La medida de calidad evaluada por
el codificador es la Relación de Ruido a Excitación ["NER"],
que es la relación de energía en el patrón de un ruido para un clip
de audio reconstruido respecto a la energía en el clip de audio
digital original. Valores bajos de la NER indican buena calidad, y
valores altos de la NER indican calidad pobre. El codificador
evalúa la NER para uno o más marcos codificados previamente. Para
información adicional respecto a la NER y otras mediciones de
calidad, véase la Solicitud de Patente norteamericana número de
serie 10/017.861, titulada "Técnicas para la Medición de Calidad
de Audio Perceptual", presentada el 14 de diciembre de 2001.
Alternativamente, el codificador utiliza otra medida de calidad,
plenitud de la memoria tampón y/o algunos otros criterios para
seleccionar una matriz de trasformación de preprocesado, o el
codificador evalúa un período diferente de audio multicanal.
Volviendo a continuación a los ejemplos que se
muestran en las figuras 9a - 9e a bajas velocidades binarias, el
codificador cambia lentamente la matriz de transformación de
preprocesado en base al valor de n de la NER de un tramo
particular de clip de audio. El codificador compara el valor de
n con los valores umbral n_{bajo} y
n_{alto} que dependen de la implementación. En una
implementación, n_{bajo} y n_{alto} tienen los valores
predeterminados n_{bajo} = 0,05 y n_{alto} = 0,1.
Alternativamente, n_{bajo} y n_{alto} tienen valores diferentes
o valores que cambian con el tiempo como reacción a la velocidad
binaria u otros criterios, o el codificador conmuta entre un número
diferente de matrices.
Un valor bajo de n (por ejemplo, n
\leq n_{bajo} ) indica codificación de buena calidad. De
esta manera, el codificador utiliza la matriz de identidad
A_{alta,1} (900) que se muestra en la figura 9a, desconectando
efectivamente el
preprocesado.
preprocesado.
Por otra parte, un valor alto de n (por
ejemplo, n \geq n_{alto}) indica una codificación de
calidad pobre. De esta manera, el codificador utiliza la matriz
A_{alta,1} (902) que se muestra en la figura 9c. La
matriz A_{alta,1} (902) introduce una distorsión de imagen
envolvente grave, pero al mismo tiempo impone una correlación muy
elevada entre los canales izquierdo, derecho y central, lo cual
mejora la eficiencia de codificación posterior al reducir la
complejidad. El canal central transformado multicanal es el
promedio de los canales originales izquierdo, derecho y central. La
matriz A_{alta,1} (902) también compromete la separación
de canales entre los canales traseros - los canales de entrada
trasero izquierdo y trasero derecho son promediados.
Un valor intermedio de n (por ejemplo,
n_{bajo} < n < n_{alto}) indica una codificación
de calidad intermedia. De esta manera, el codificador puede utilizar
la matriz intermedia A_{inter,1} (901) que se muestra en
la figura 9b. En la matriz intermedia A_{inter, 1} (901), el
factor \alpha mide la posición relativa de n entre
n_{bajo} y n_{alto}.
La matriz intermedia A_{inter,1} (901)
realiza gradualmente la transición desde la matriz de identidad
A_{baja} (900) a la matriz A_{alta,1} (902) de
baja calidad.
Para las matrices A_{inter,1} (901) y
A_{alta,1} (902) que se muestran en las figuras 9b y 9c.,
el codificador posteriormente se aprovecha de la redundancia entre
los canales para lo cual el codificador incrementa artificialmente
la correlación entre los canales y el codificador no necesita
indicar al descodificador que ejecute cualquier postprocesado
multicanal para estos canales.
Cuando el descodificador tiene la capacidad de
ejecutar postprocesado multicanal, el codificador puede delegar la
reconstrucción del canal central al descodificador. Si es así,
cuando el valor n de la NER indica una codificación
de calidad pobre, el codificador utiliza la matriz
A_{alta,2} (904) que se muestra en 9e con lo cual el
canal central de entrada fuga en los canales izquierdo y derecho. En
la salida, el canal central es cero, produciendo la complejidad de
codificación.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Cuando el codificador utiliza la matriz
A_{alta,2} de trasformación de preprocesado (904), el
codificador (por medio del tren binario) instruye al descodificador
para crear un centro fantasma promediando los canales
descodificados izquierdo y derecho. Transformaciones multicanal
posteriores en el codificador pueden aprovechar la redundancia
entre los canales promediados trasero izquierdo y trasero derecho
(sin postprocesado) o el codificador puede instruir al
descodificador para que ejecute algún postprocesado multicanal para
los canales trasero izquierdo y trasero derecho.
Cuando el valor n de la NER indica
una codificación de calidad intermedia, el codificador puede
utilizar la matriz intermedia A_{inter, 2} (903) que se
muestra en la figura 9d para realizar la transición entre las
matrices que se muestran en las figuras 9a y 9e.
La figura (10) muestran la técnica (1000) para
el procesado multicanal en la cual la matriz de transformación
cambia potencialmente en una base de marco a marco. Cambiar la
matriz de transformación puede conducir a un ruido audible (por
ejemplo chasquido) en la salida final si no se maneja
cuidadosamente. Para evitar la introducción de ruido de chasquido,
el codificador realiza transiciones gradualmente desde una matriz de
trasformación a otra entre marcos.
El codificador en primer lugar establece (1010)
la matriz de trasformación de preprocesado, como se ha descrito más
arriba. El codificador a continuación determina (1020) si la matriz
para el marco actual es la diferencia con la matriz del marco
previo (si ha habido un marco previo). Si la matriz actual es la
misma o no ha habido una matriz previa, el codificador aplica
(1030) la matriz a la entrada de muestras de audio para el marco
actual. Si no es así, el codificador aplica (1040) la matriz de
trasformación mezclada a las muestras de audio de entrada para el
marco actual. La función de mezclado depende de la implementación.
En una implementación, en la muestra i en el marco actual,
el codificador utiliza una matriz A_{ipre,i} mezclada de
corto término
en la que, A_{pre,prev} y
A_{pre, actual} son las matrices de preprocesado para los
marcos previo y actual, respectivamente, y NumMuestras es el
número de muestras en el marco actual. Alternativamente, el
codificador utiliza otra función de mezclado para suavizar las
discontinuidades en las matrices de trasformación de
preprocesado.
A continuación, el codificador codifica (1050)
los datos de audio multicanal para el marco, utilizando las
técnicas que se muestran en la figura 6 u otras técnicas de
compresión. El codificador repite la técnica (1000) en base de
marco a marco. Alternativamente, el codificador cambia el
preprocesado multicanal en alguna otra base.
En algunas realizaciones, un codificador tal
como el codificador (600) de la figura 6 agrupa ventanas de audio
multicanal en placas para la codificación posterior. Esto
proporciona al codificador flexibilidad para utilizar diferentes
configuraciones de ventanas para diferentes canales en un marco, al
mismo tiempo que también permite transformaciones multicanal en
distintas combinaciones de canales para el marco. Un descodificador
tal como el descodificador (700) de la figura 7 de funciona con
placas durante la descodificación.
Cada canal puede tener una configuración de
ventanas independiente de los otros canales. Las ventanas que
tienen idénticos momentos de inicio y finalización se consideran que
son partes de una placa. La placa puede tener uno o más canales, y
el codificador ejecuta transformaciones multicanal para los canales
en una placa.
La figura 11a muestra un ejemplo de
configuración de placas (1100) para un canal de un audio estéreo. En
la figura 11a, cada placa incluye una única ventana. Ninguna
ventana en ningún canal del audio estéreo empieza y finaliza en el
mismo momento que una ventana en el otro canal.
La figura 11b muestra una configuración de placa
ejemplar (1101) para una placa de un canal de audio 5.1. La
configuración de placa (1101) incluye varias placas, numeradas de 0
a 6. La placa 0 incluye muestras de los canales 0, 2, 3 y 4 y
abarca el primer cuarto del marco. La placa 1 incluye muestras del
canal 1 y abarca la primera mitad del marco. La placa 2 incluye
muestras de canal 5 y abarca el marco completo. La placa 3 es como
la placa 0, pero abarca el segundo cuarto del marco. Las placas 5 y
6 incluyen muestras en los canales 0, 2, y 3 y abarca los cuartos
tercero y cuarto, respectivamente, del marco. Finalmente, la placa 5
incluye muestras de los canales 1 y 4 y abarca la última mitad del
marco. Como se muestra en la figura 11b, una placa particular puede
incluir ventanas en canales no contiguos.
En la figura 12 se muestra una técnica
generalizada (1200) para configurar placas de un marco de audio
multicanal. El codificador establece (1210) las configuraciones de
ventanas para los canales en el marco, dividiendo cada canal en
ventanas de tamaño variable para compensar la resolución temporal y
la resolución de frecuencia. Por ejemplo, un configurador
divisor/placa del codificador divide cada canal independientemente
de los otros canales en el marco.
A continuación el codificador agrupa (1220) las
ventanas de los diferentes canales en placas para el marco. Por
ejemplo, el codificador pone las ventanas de canales diferentes en
una única placa si las ventanas tienen idéntica posición de inicio
e idéntica posición de finalización. Alternativamente, el
codificador utiliza criterios distintos o además de las posiciones
de inicio/finalización para determinar que secciones de los canales
diferentes agrupa conjuntamente en un una placa.
En una implementación, el codificador ejecuta el
agrupamiento de placas (1220) (después e independientemente) del
establecimiento (1210) de las configuraciones de ventanas para un
marco. En otras implementaciones, el codificador establece (1210)
concurrentemente configuraciones de ventanas y agrupa (1220) las
ventanas en placas, por ejemplo para favorecer la correlación
temporal (utilizando ventanas más grandes) o la correlación de
canales (disponiendo más canales en placas únicas), o para controlar
el número de placas forzando a que las ventanas se ajusten en un
conjunto particular de placas.
El codificador a continuación envía (1230) la
información de configuración de placas para el marco a la salida
con los datos de audio codificados. Por ejemplo, el configurador
divisor/placa del codificador envía información del tamaño de las
placas y del miembro de canal de las placas a un MUX.
Alternativamente, el codificador envía otra información que
especifica las configuraciones de placas. En una implementación, el
codificador envía (1230) la información de configuración de las
placas después del agrupamiento de las placas (1220). En otras
implementaciones, el codificador ejecuta estas acciones
concurrentemente.
La figura 3 muestra una técnica (1300) para
configurar placas y enviar la información de configuración de
placas de un marco de audio multicanal de acuerdo con una sintaxis
de tren binario particular. La figura 3 muestra la técnica (1300)
ejecutada por el codificador para poner la información en el tren
binario; el descodificador ejecuta una técnica correspondiente
(leer banderas, conseguir la información de configuración para las
placas particulares, etc.) para recuperar la información de las
configuración de las placas para el marco de acuerdo con la
sintaxis de tren binario. Alternativamente, el descodificador y el
codificador utilizan otra sintaxis para una o más de las opciones
que se muestran en la figura 13, por ejemplo una que utilice
diferentes banderas o diferentes órdenes.
El codificador comprueba inicialmente (1310) si
ninguno de los canales en el marco está dividido en ventanas. Si es
así, el codificador envía (1312) un bit de bandera (que indica que
ningún canal está dividido), y a continuación sale. De esta manera,
un único bit indica si un marco dado es una placa única o si tiene
placas múltiples.
Por otro lado, si al menos un canal está
dividido en ventanas, el codificador comprueba (1320) si todos los
canales del marco tienen la misma configuración de ventanas. Si es
así, el codificador envía (1322) un bit de bandera (que indica que
todos los canales tienen la misma configuración de ventanas, cada
placa en el marco tiene todos los canales) y una secuencia de los
tamaños de las placas, y a continuación sale. De esta manera, el
bit único indica si todos los canales tienen la misma configuración
(como en un tren binario codificador convencional) o si tienen una
configuración de placas flexible.
Si al menos algunos canales tienen distintas
configuraciones de ventanas, el codificador explora las posiciones
de muestras del marco para identificar ventanas que tengan la misma
posición de inicio así como la misma posición de finalización. Pero
en primer lugar, el codificador marca (1330) todas las posiciones de
la muestra en el marco como no agrupadas. A continuación, el
codificador explora (1340) la siguiente posición de muestra no
agrupada en el marco de acuerdo con un patrón de exploración de
canal/tiempo. En una implementación, el codificador explora todo
los canales en un momento particular buscando posiciones de muestras
no agrupadas, y a continuación repite lo mismo para la siguiente
posición de muestra en el tiempo, etc. En otras implementaciones,
el codificador utiliza otro patrón de exploración.
En la posición de muestras no agrupadas
detectada, el codificador agrupa (1350) las mismas ventanas
conjuntamente en una placa. En particular, el codificador agrupa
ventanas que empiezan en la posición de inicio de la ventana,
incluyendo la posición de muestras no agrupadas detectada, y que
también finaliza en la misma posición que la ventana que incluye la
posición de muestras no agrupadas detectada. En el marco que se
muestra en la figura 11b, por ejemplo, el codificador en primer
lugar detectaría la posición de la muestra al principio del canal
0. El codificador agruparía las ventanas de longitud de un cuarto de
marco de los canales 0, 2, 3 y 4 conjuntamente en una placa puesto
que cada una de estas ventanas tiene la misma posición de inicio y
la misma posición de finalización que las otras ventanas en la
placa.
A continuación el codificador envía (1360) la
información de la configuración de las placas especificando las
placas para la salida con los datos de audio codificados. La
información de la configuración de las placas incluye el tamaño de
las placas y un mapa que indica cuáles canales con posiciones de
muestras no agrupados en el marco en ese punto se encuentran en la
placa. El mapa de los canales incluye un bit por canal posible para
la placa. En base a la secuencia de información de las placas, el
descodificador determina cuando una placa inicia y finaliza en un
marco. El codificador reduce la velocidad binaria del mapa de
canales tomando en consideración cuales canales pueden estar
presentes en la placa. Por ejemplo, la información para la placa 0
en la figura 11b incluye el tamaño de la placa y un patrón binario
"101110" para indicar que los canales 0, 2, 3 y 4 son parte de
la placa. Después de ese punto, solamente las posiciones de muestra
en los canales 1 y 5 se encuentran no agrupadas. De esta manera, la
información para la placa 1 incluye el tamaño de placa y el patrón
binario "10" para indicar que el canal 1 es parte de la placa
pero que el canal 5 no lo es. Esto ahorra cuatro bits en el patrón
binario. La información de placas para la placa 2 a continuación
incluye solamente el tamaño de la placa (y no el mapa de canales)
puesto que el canal 5 es el único canal que puede tener una ventana
que comienza en la placa 2. La información de placas para la placa 3
incluye el tamaño de la placa y el patrón binario "1111"
puesto que los canales 1 y 5 tienen posiciones agrupadas en el
rango de la placa 3. Alternativamente, el codificador y el
descodificador utilizan otra técnica para señalizar patronos de
canales en la sintaxis.
A continuación, el codificador analiza (1370)
como agrupadas las posiciones de la muestra para las ventanas en el
marco y determina (1380) si continúa o no. Si no hay más posiciones
de muestras no agrupadas en el marco, el codificador sale. En caso
contrario, el codificador explora (1340) la siguiente posición de
muestras no agrupadas en el marco de acuerdo con el patrón de
exploración canal/tiempo.
En algunas realizaciones, un codificador tal
como el codificador (600) de la figura 6 ejecuta transformaciones
multicanal flexibles que se aprovechan efectivamente de la
correlación entre los canales. Un descodificador tal como el
descodificador (700) de la figura 7 efectúa las transformaciones
multicanal inversas correspondientes.
Específicamente, el codificador y el
descodificador realizan uno o más de lo que sigue para mejorar las
transformaciones multicanal en situaciones diferentes.
1. El codificador efectúa la transformación
multicanal después de la ponderación perceptual, y el descodificador
efectúa la transformación multicanal inversa correspondiente antes
de la ponderación inversa. Esto produce el desenmascarado del ruido
de cuantificación en los canales después de la transformación
multicanal inversa.
2. El codificador y el descodificador agrupan
canales para transformaciones multicanal para limitar cuáles
canales son transformados conjuntamente.
3. El codificador y el descodificador conectan
selectivamente en conexión y desconexión las transformaciones
multicanal es el nivel de banda de frecuencia para controlar cuales
bandas son transformadas conjuntamente.
4. El codificador y el descodificador utilizan
transformaciones multicanal jerárquicas para limitar la complejidad
de cálculo (especialmente en el descodificador).
5. El codificador y el descodificador utilizan
matrices de transformación multicanal predefinidas para reducir la
velocidad binaria utilizada para especificar las matrices de
trasformación.
6. El codificador y el descodificador utilizan
parámetros de factorización en base a la rotación cuantificada de
Givens para especificar matrices de transformación multicanal para
eficiencia de bit.
En algunas realizaciones, el codificador
posiciona la transformación multicanal después de la ponderación
porcentual (y el descodificador posiciona la transformación
multicanal inversa antes de la ponderación inversa) de manera que
la señal fugada a través del canal esté controlada, sea medible, y
tenga un espectro como la señal original.
La figura 14 muestra una técnica (1400) para
ejecutar una o más transformaciones multicanal después de la
ponderación porcentual en el descodificador. El codificador pondera
perceptualmente (1410) el audio multicanal, por ejemplo, aplicando
factores de ponderación al audio multicanal en el dominio de la
frecuencia. En algunas implementaciones, el codificador aplica
ambos factores de ponderación y modificaciones de paso de
cuantificación por canal a los datos de audio multicanal antes de
las transformaciones multicanal.
A continuación, el codificador ejecuta (1420)
una o más transformaciones multicanal en los datos de audio
ponderados, por ejemplo como se describe más adelante. Finalmente,
el codificador cuantifica (1430) los datos de audio transformados
multicanal.
La figura 15 muestra una técnica (1500) para
ejecutar una transformación multicanal inversa antes de la
ponderación inversa en el descodificador. El descodificador ejecuta
(1510) una o más transformaciones multicanal inversas en datos de
audio cuantificados, por ejemplo como se describe más adelante. En
particular, el descodificador recoge muestras de canales múltiples
con un índice de frecuencia particular en un vector x_{mc}
y ejecuta la transformación multicanal inversa A_{mc} para
generar la salida y_{mc}.
Posteriormente, el descodificador cuantifica
inversamente y pondera inversamente (1520) el audio multicanal,
coloreando la salida de datos de la transformación multicanal
inversa con máscara(s). De esta manera, la fuga que se
produce a través de los canales (debidas a la cuantificación) está
conformada espectralmente de manera que la audibilidad de la señal
fugada es medible y controlable, y la fuga de otros canales en un
canal reconstruido dado está conformada espectralmente como la
señal no corrompida original del canal dado. (En algunas
implementaciones, los modificadores de paso de cuantificación por
canal también permiten que el codificador realice una calidad de
señal reconstruida aproximadamente la misma a través de todos los
canales reconstruidos).
En algunas realizaciones, el codificador y el
descodificador agrupan canales para transformaciones multicanal
para limitar que canales son transformados conjuntamente. Por
ejemplo, en realizaciones que utilizan configuración de placas, el
descodificador determina que canales dentro de una placa se
correlacionan y agrupa los canales correlacionados.
Alternativamente, un codificador y descodificador no utilizan
configuración de placas, pero todavía agrupan canales para marcos o
en algún otro nivel.
La figura 16 muestra una técnica (1600) para
agrupar canales de una placa para la transformación multicanal en
una implementación. En la técnica (1600), el codificador considera
correlaciones emparejadas entre las señales de los canales así como
correlaciones entre bandas en algunos casos. Alternativamente, un
codificador considera otros factores adicionales cuando agrupa
canales para la transformación multicanal.
En primer lugar, el codificador obtiene (1610)
los canales para una placa. Por ejemplo, en la configuración de
placas que se muestra en la figura 11b, la placa 3 tiene cuatro
canales en la misma: 0, 2, 3 y 4.
El codificador calcula (1620) correlaciones
emparejadas entre las señales en los canales, y a continuación
agrupa (1630) consecuentemente los canales. Supóngase que para la
placa 3 de la figura 11b, los canales 0 y 2 están correlacionados
emparejados, pero ninguno de estos canales está correlacionado
emparejado con el canal 3 o con el canal 4, y el canal 3 no está
correlacionado emparejado con el canal 4. El codificador agrupa
(1630) los canales 0 y 2 conjuntamente, pone el canal 3 en un grupo
separado, y pone el canal 4 en todavía otro grupo.
Un canal que no está correlacionado emparejado
con cualquiera de los canales en un grupo todavía puede ser
compatible con ese grupo. Por lo tanto, para los canales que son
incompatibles con un grupo, el codificador comprueba opcionalmente
(1640) la compatibilidad a nivel de banda y ajusta consecuentemente
(1650) el uno o más grupos de canales. En particular, esto
identifica los canales que son compatibles con un grupo en algunas
bandas, pero son incompatibles en otras bandas. Por ejemplo,
supóngase que el canal 4 de la placa 3 en la figura 11b actualmente
es compatible con los canales 0 y 2 en la mayor parte de las bandas,
pero esa incompatibilidad en unas pocas bandas desvía los
resultados de la correlación emparejada. El codificador ajusta
(1650) los grupos para poner los canales 0, 2 y 4 juntos, dejando
al canal 3 en su propio grupo. El codificador puede ejecutar
también algunas pruebas cuando algunos canales están correlacionados
"en general", pero tienen bandas incompatibles. La desconexión
de la transformación en estas bandas incompatibles mejora la
correlación entre las bandas que realmente obtienen la
transformación multicanal codificada, y de esta manera mejora la
eficiencia de codificación.
Un canal en una placa dada pertenece a un grupo
de canales. Los canales en un grupo de canales no tienen que ser
contiguos. Una única placa puede incluir múltiples grupos de
canales, y cada grupo de canales puede tener una transformación
multicanal asociada diferente. Después de decidir que canales son
compatibles, el codificador pone la información de grupos de
canales en el tren binario.
La figura 17 muestra una técnica (1700) para
recuperar la información de grupos de canales y la información de
transformación multicanal para una placa de un tren binario de
acuerdo con una sintaxis de tren binario particular, con
independencia de cómo el codificador calcula los grupos de canales.
La figura 17 muestra la técnica (1700) ejecutada por el
descodificador para recuperar información del tren binario; el
codificador ejecuta una técnica correspondiente para formatear la
información de grupos de canales y la información de transformación
multicanal para la placa de acuerdo con la sintaxis de tren binario.
Alternativamente, el descodificador y el codificador utilizan otra
sintaxis para una o más de las opciones que se muestran en la figura
17.
En primer lugar, el descodificador inicializa
varias variables utilizadas en la técnica (1700). El codificador
establece (1710) #CanalesAVisitar igual al número de canales
en la placa #CanalesEnPlaca y establece (1712) el número de
grupos de canales #GruposDeCanales en cero.
El descodificador comprueba (1720) si
#CanalesAVisitar es mayor que 2. En caso contrario, el
descodificador comprueba (1730) si #CanalesAVisitar es igual
a 2. Si es así, el descodificador descodifica (1740) la
transformación multicanal para el grupo de dos canales, utilizando
por ejemplo la técnica que se describe más adelante. La sintaxis
permite que cada uno de canales tenga una transformación multicanal
diferente. Por otro lado, si #CanalesAVisitar es igual a 1 ó
0, el descodificador sale sin descodificar una transformación
multicanal.
Si #CanalesAVisitar es mayor que 2, el
descodificador descodifica (1750) la máscara de canal para un grupo
en la placa. Específicamente, el descodificador lee los bits de
#CanalesAVisitar del tren binario para la máscara de canal.
Cada bit en la máscara de canal indica si un canal particular ésta o
no está en el grupo de canales. Por ejemplo, si la máscara de canal
es "10110", entonces la placa incluye 5 canales, y los canales
0, 2 y 3 se encuentran en el grupo de canales.
A continuación, el descodificador cuenta (1760)
el número de canales en el grupo y descodifica (1770) la
transformación multicanal para el grupo, utilizando por ejemplo una
técnica que se describe más adelante. El descodificador actualiza
(1780) #CanalesAVisitar restando el número contado de canales
del grupo de canales actual, incrementa (1790)
#GruposDeCanales y comprueba (1720) si el número de canales
que quedan por visitar #CanalesAVisitar es mayor que
dos.
Alternativamente, en realizaciones que no
utilizan configuraciones de placas, el descodificador recuperara la
información de grupos de canales y la información de transformación
multicanal para un marco o en algún otro nivel.
En algunas realizaciones, el codificador y el
descodificador conectan selectivamente las transformaciones
multicanal en conexión/desconexión a nivel de banda de frecuencia
para controlar cuales bandas son transformadas conjuntamente. De
esta manera, el codificador y el descodificador excluyen
selectivamente bandas que no son compatibles en transformaciones
multicanal. Cuando la transformación multicanal es desconectada para
una banda en particular, el codificador y el descodificador
utilizan la trasformación de identidad para esa banda, pasando a
través de los datos en la banda sin alterarla.
Las bandas de frecuencia son bandas críticas o
bandas de cuantificación. El número de bandas de frecuencia se
refiere a la frecuencia de muestreo de los datos de audio y al
tamaño de la placa. En general, cuanto más alta sea la frecuencia
de muestreo o mayor sea el tamaño de la placa, mayor será el número
de bandas de frecuencia.
En algunas implementaciones, el codificador
dispone selectivamente las transformaciones multicanal en
conexión/desconexión a nivel de banda de frecuencia para los canales
de un grupo de canales de una placa. El codificador puede disponer
bandas en conexión/desconexión cuando el codificador agrupa los
canales de una placa o después de la agrupación de canales de la
placa. Alternativamente, un codificador y un descodificador no
utilizan la configuración de placas, pero todavía conectan las
transformaciones multicanal en conexión/desconexión a las bandas de
frecuencia para un marco o en algún otro nivel.
La figura 18 muestra una técnica (1800) para
incluir selectivamente bandas de frecuencia de canales de un grupo
de canales en una transformación multicanal en una implementación.
En la técnica (1800), el codificador considera correlaciones
emparejadas entre las señales de los canales en una banda para
determinar si debe habilitar o deshabilitar la transformación
multicanal de la banda. Alternativamente, un codificador considera
otros y/o factores adicionales cuando dispone selectivamente bandas
de frecuencia en conexión/desconexión para una
transformación
multicanal.
multicanal.
En primer lugar, el codificador obtiene (1810)
los canales para un grupo de canales, por ejemplo como se describe
con referencia a la figura 18. A continuación, el codificador
calcula (1820) correlaciones emparejadas entre las señales en los
canales de diferentes bandas de frecuencia. Por ejemplo, si el grupo
de canales incluye dos canales, el codificador calcula una
correlación emparejada en cada banda de frecuencia. O si el grupo
de canales incluye más de dos canales, el codificador calcula
correlaciones emparejadas entre algunas o todas las parejas de
canales respectivas en cada banda de frecuencia.
A continuación el codificador dispone (1830) las
bandas en conexión o desconexión para la transformación multicanal
para el grupo de canales. Por ejemplo, si el grupo de canales
incluye dos canales, el codificador habilita la transformación
multicanal para una banda en una correlación emparejada en la banda
que satisface un umbral particular. O si el grupo de canales
incluye más de dos canales, el codificador habilita la
transformación multicanal para una banda si cada una o la mayoría
de las correlaciones emparejadas en la banda satisface un umbral
particular. En realizaciones alternativas, en lugar de disponer una
banda de frecuencia particular en conexión o desconexión para todos
los canales, el codificador dispone la banda en conexión para
algunos canales y en desconexión para otros canales.
Después de decidir cuales bandas están incluidas
en las transformaciones multicanal, el codificador coloca la
información de bandas de conexión/desconexión en el tren
binario.
La figura 19 muestra una técnica (1900) para
recuperar información de conexión/desconexión de bandas de una
transformación multicanal de un grupo de canales de una placa a
partir de un tren binario de acuerdo con una sintaxis de tren
binario particular, con independencia de cómo el codificador decide
disponer las bandas en conexión o en desconexión. La figura 19
muestra la técnica (1900) ejecutada por el descodificador para
recuperar información del tren binario; el codificador ejecuta una
técnica correspondiente para formatear la información de banda en
conexión/desconexión para el grupo de canales de acuerdo con la
sintaxis de tren binario. Alternativamente, el descodificador y el
codificador utilizan otra sintaxis para una o más de las opciones
que se muestran en la figura 19.
En algunas implementaciones, el descodificador
ejecuta la técnica (1900) como parte de la descodificación de la
transformación multicanal (1740 ó 1770) de la técnica (1700).
Alternativamente, el descodificador ejecuta la técnica (1900) por
separado.
El descodificador obtiene (1910) un bit y
comprueba (1920) el bit para determinar si todas las bandas están
habilitadas para el grupo de canales. Si es así, el descodificador
habilita (1930) la transformación multicanal para todas bandas del
grupo de canales.
Por otro lado, si el bit indica que todas bandas
no están habilitadas para el grupo de canales, el descodificador
descodifica (1940) la máscara de banda para el grupo de canales.
Específicamente, el descodificador lee un número de bits del tren
binario, en el que el número es el número de bandas para el grupo de
canales. Cada bit en la máscara de banda indica si una banda
particular está en conexión o desconexión en el grupo de canales.
Por ejemplo, si la máscara de banda es "111111110110000",
entonces el grupo de canales incluye 15 bandas, y las bandas 0, 1,
2, 3, 4, 5, 6, 7, 9, y 10 están conectadas para la transformación
multicanal. A continuación el descodificador habilita (1950) la
transformación multicanal de las bandas indicadas.
Alternativamente, en realizaciones que no
utilizan las configuraciones de placas, el descodificador recupera
la información de banda de conexión/desconexión para un marco o en
algún otro nivel.
En algunas realizaciones, el codificador y el
descodificador utilizan dos transformaciones multicanal jerárquicas
para limitar la complejidad del cálculo, especialmente en el
descodificador. Con la transformación jerárquica, un codificador
divide una trasformación general en múltiples etapas, reduciendo la
complejidad de cálculo de las etapas individuales y en algunos
casos produciendo la cantidad de información necesaria para
especificar la(s) transformación(es) multicanal.
Utilizando esta estructura en cascada, el codificador emula la
trasformación general mayor con menores transformaciones, hasta
alcanzar una precisión. El descodificador ejecuta una transformación
inversa jerárquica correspondiente.
En algunas implementaciones, cada etapa de la
transformación jerárquica es idéntica en estructura, y en el tren
binario, cada etapa está descrita independientemente de una o más de
las otras etapas. En particular, cada etapa tiene sus propios
grupos de canales y una matriz de transformación multicanal por cada
grupo de canales. En implementaciones alternativas, diferentes
etapas tienen diferentes estructuras, el codificador y el
descodificador utilizan una sintaxis de tren binario diferente, y/o
las etapas utilizan otra configuración para los canales y las
transformaciones.
La figura 20 muestra una técnica generalizada
(2000) para emular una transformación multicanal utilizando una
jerarquía de transformaciones multicanal más simple. La figura 20
muestra una jerarquía de etapa n, en donde n es el
número de etapas de transformación multicanal. Por ejemplo, en una
implementación, n es 2. Alternativamente, n es mayor
que 2.
El codificador determina (2010) una jerarquía de
transformaciones multicanal para una transformación general. El
codificador decide los tamaños de transformación (es decir, el
tamaño de los grupos de canales) en base a la complejidad del
descodificador que ejecutará las dos transformaciones inversas. O el
codificador considera un perfil de descodificador objetivo/nivel
del descodificador o algunos otros criterios.
La figura 21 es un gráfico que muestra una
jerarquía ejemplar (2100) de transformaciones multicanal. La
jerarquía (2100) incluye 2 etapas. La primera etapa incluye N +
1 grupos de canales y transformaciones, numerados de 0 a
N; la segunda etapa incluye M + 1 grupos de canales y
transformaciones, numerados de 0 a M. Cada grupo de canales
incluye uno o más canales. Para cada una de las transformaciones
N + 1 de la primera etapa, los canales de entrada son alguna
combinación de la entrada de canales al transformador multicanal.
No todos los canales de entrada deben ser transformados en la
primera etapa. Uno o más canales de entrada pueden pasar a través
de la primera etapa inalterados (por ejemplo, el codificador puede
incluir tales canales en un grupo de canales que utiliza una matriz
de identidad). Para cada una de las transformaciones M + 1
de la segunda etapa, los canales de entrada son alguna combinación
de canales de salida de la primera etapa,
\hbox{incluyendo canales que pueden haber pasado inalterados a través de la primera tapa.}
Volviendo a la figura 20, el codificador ejecuta
(2020) la primera etapa de las transformaciones multicanal, ejecuta
la siguiente etapa de las transformaciones multicanal, ejecutando
finalmente (2030) la etapa n^{th} (enésima) de las
transformaciones multicanal. Un descodificador ejecuta las
transformaciones multicanal inversas correspondientes durante la
descodificación.
En algunas implementaciones, los grupos de
canales son los mismos en las múltiples etapas de la jerarquía,
pero las transformaciones multicanal son diferentes. En tales casos,
y también en ciertos otros casos, el codificador puede combinar la
información de conexión/desconexión de bandas de frecuencia para las
transformaciones multicanal múltiples. Por ejemplo, supóngase que
hay dos transformaciones multicanal y los mismos tres canales en el
grupo de canales de cada una. El codificador puede especificar no
transformación/transformación de identidad en ambas etapas para la
banda 0, solamente etapa 1 de transformación multicanal para la
banda 1 (no transformación en etapa 2), solamente transformación
multicanal de etapa 2 para la banda 2 (no hay transformación de
etapa 1), transformaciones multicanal de ambas etapas para la banda
3, no trasformación en ambas etapas para la banda 4, etcétera.
La figura 22 muestra una técnica (2200) para
recuperar información para una jerarquía de transformaciones
multicanal para grupos de canales de un tren binario de acuerdo con
una sintaxis de tren binario particular. La figura 22 muestra la
técnica (2200) ejecutada por el descodificador para analizar el tren
binario; el codificador ejecuta una técnica correspondiente para
formatear la jerarquía de las transformaciones multicanal de acuerdo
con la sintaxis de tren binario. Alternativamente, el codificador y
el descodificador utilizan otra sintaxis, por ejemplo una que
incluye banderas adicionales y bits de señalización para más de dos
etapas.
El descodificador en primer lugar establece
(2210) un valor temporal iTmp igual al siguiente bit en el
tren binario. A continuación, el descodificador comprueba (2220) el
valor del valor temporal, el cual indica si el descodificador debe
descodificar (2230), o no, el grupo de canales y la información de
transformación multicanal para un grupo de etapa 1.
Después de que el descodificador descodifique
(2230) el grupo de canales y la información de transformación
multicanal para un grupo de etapa 1, el descodificador establece
(2240) iTmp igual a siguiente bit en el tren binario. El
descodificador comprueba de nuevo (2220) el valor de iTmp,
que indica si el tren binario incluye, o no, grupos de canales e
información de otras transformación multicanal para cualquier grupo
adicional de etapa 1. Solamente los grupos de canales con
transformaciones de no identidad está especificados en la porción
de la etapa 1 de tren binario; los canales que no están descritos en
la parte de la etapa 1 del tren binario se supone que son parte de
un grupo de canales que utiliza una transformación de identidad.
Si el tren binario no incluye más grupos de
canales y de información de transformación multicanal para los
grupos de etapa 1, el descodificador descodificar (2250) los grupos
de canales y la información de transformación multicanal para todos
los grupos de etapa 2.
En algunas realizaciones, el codificador y el
descodificador utilizan matrices de transformación multicanal
predefinidas para reducir la velocidad binaria utilizada para
especificar matrices de transformación. El codificador selecciona
entre múltiples tipos de matriz predefinida disponibles y señaliza
la matriz seleccionada en el tren binario con un número menor (por
ejemplo 1, 2) de bits. Algunos tipos de matrices no requieren
señalización adicional en el tren binario, pero otros tipos de
matrices requieren especificación adicional. El descodificador
recupera la información que indica el tipo de matriz y (en caso
necesario) la información adicional que especifica la matriz.
En algunas implementaciones, el codificador y el
descodificador utilizan los siguientes tipos de matrices definidas:
de identidad, de Hadamard, DCT tipo II, o unitaria arbitraria.
Alternativamente, el codificador y el descodificador utilizan tipos
de matrices predefinidas diferentes y/o adicionales.
La figura 9a muestra un ejemplo de una matriz de
identidad para 6 canales en otro contexto. El codificador
especifica eficientemente una matriz de identidad en el tren
binario utilizando bits de bandera, asumiendo que el número de
dimensiones para la matriz de identidad son conocidos para el
codificador así como para el descodificador de transformación (por
ejemplo, el número de canales en un grupo).
Una matriz de Hadamard tiene la siguiente
forma
en la que \rho es un escalar de
normalización (\surd2). El codificador especifica eficientemente
una matriz de Hadamard para los datos estéreo en el tren binario
utilizando bits de
bandera.
Una matriz DCT tipo II tiene la siguiente
forma:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
en la
que
Y en la que
Para información adicional respecto a las
matrices DCT tipo II, véase Rao et al., Transformación de
Coseno Discreta, Academic Press (1990). La matriz DCT tipo II
puede tener cualquier tamaño (es decir, funciona para cualquier
tamaño de grupo de canales). El codificador especifica
eficientemente una matriz DCT tipo II en el tren binario utilizando
bits de bandera, asumiendo que el número de dimensiones para la
matriz DCT tipo II es conocido tanto como para el codificador como
para el descodificador, a partir de otra información (por ejemplo,
el número de canales en un grupo).
Una matriz A_{cuadrada} es unitaria si
su transposición es en su inversa.
En la que I es la matriz de identidad. El
codificador utiliza matrices unitarias arbitrarias para especificar
las transformaciones KLT para la supresión efectiva de la
redundancia. El codificador especifica eficientemente una matriz
unitaria arbitraria en el tren binario utilizando bits de bandera y
una parametrización de la matriz. En algunas implementaciones, el
codificador parametriza la matriz utilizando rotaciones de
factorización cuantificadas de Givens, como se describe más
adelante. Alternativamente, el codificador utiliza otra
parametrización.
La figura 23 muestra una técnica (2300) para
seleccionar un tipo de transformación multicanal entre distintos
tipos disponibles. El codificador selecciona un tipo de
transformación en una base de grupos de canales por grupos de
canales o en algún otro nivel.
El codificador selecciona (2310) un tipo de
transformación multicanal entre múltiples tipos disponibles. Por
ejemplo, los tipos disponibles incluyen matriz de identidad, de
Hadamard, DCT tipo II, y unitaria arbitraria. Alternativamente, los
tipos incluyen tipos de matrices diferentes y/o adicionales. El
codificador utiliza una matriz de identidad, de Hadamard o DCT
tipo II (en lugar de una matriz unitaria arbitraria) si es posible
o si es necesario con el fin de reducir los bits necesarios para
especificar la matriz de trasformación. Por ejemplo, el codificador
utiliza una matriz de identidad, de Hadamard o de DCT tipo II si la
supresión de la redundancia es comparable o próxima (por algún
criterio) a la supresión de la redundancia con matriz unitaria
arbitraria. O el codificador utiliza una matriz de identidad, de
Hadamard o DCT tipo II si el codificador debe reducir la velocidad
binaria. En una situación general, sin embargo, el codificador
utiliza una matriz unitaria arbitraria para la mejor eficiencia
de
compresión.
compresión.
A continuación el codificador aplica (2320) una
transformación multicanal del tipo seleccionado a los datos de
audio multicanal.
La figura 24 muestra una técnica (2400) para
recuperar un tipo de transformación multicanal entre tipos plurales
disponibles y ejecutar una transformación multicanal inversa. El
descodificador recupera información de tipo de transformación en
una base de grupo de canales por grupo de canales o a algún otro
nivel.
El descodificador recupera (2410) un tipo de
transformación multicanal de entre los múltiples tipos disponibles.
Por ejemplo, los tipos disponibles incluyen matriz de identidad, de
Hadamard, DCT tipo II y unitaria arbitraria. Alternativamente, los
tipos incluyen tipos de matrices diferentes y/o adicionales. En caso
necesario, el descodificador recupera la información adicional que
especifica la matriz.
Después de reconstruir la matriz, el
descodificador aplica (2420) una transformación multicanal inversa
del tipo seleccionado a los datos de audio multicanal.
La figura 25 muestra una técnica (2520) para
recuperar la información de la transformación multicanal para un
grupo de canales desde un tren binario de acuerdo con una sintaxis
particular de tren binario. La figura 25 muestra la técnica (2500)
ejecutada por el descodificador para analizar el tren binario; el
codificador ejecuta una técnica correspondiente para formatear la
información de trasformación multicanal de acuerdo con la sintaxis
de tren binario. Alternativamente, el descodificador y el
codificador utilizan otra sintaxis, por ejemplo una que utiliza
diferentes bits de bandera, diferentes órdenes, o diferentes tipos
de transformación.
Inicialmente, el descodificador comprueba (2510)
si el número de canales en el grupo #CanalesEnGrupo es mayor
que 1. Si no es así, el grupo de canales es para audio mono, y el
descodificador utiliza (2512) una transformación de identidad para
el grupo.
Si #CanalesEnGrupo es mayor que 1, el
descodificador comprueba (2520) si #CanalesEnGrupo es mayor
que 2. Si no es así, el grupo de canales es para audio estéreo, y el
descodificador establece (2522) un valor temporal iTmp igual
al siguiente bit en el tren binario. A continuación, el
descodificador comprueba (2524) el valor el valor temporal, lo cual
indica si el descodificador debería utilizar (2530) una
transformación de Hadamard para el grupo de canales. Si no es así,
el descodificador establece (2526) iTmp igual al siguiente
bit en el tren binario y comprueba (2528) el valor de iTmp
que indica si el descodificador debería utilizar (2550) una
transformación de identidad para el grupo de canales. Si no es así,
el descodificador descodifica (2570) una transformación unitaria
genérica para el grupo de canales.
Si #CanalesEnGrupo es mayor que 2, el
grupo de canales es para audio de sonido envolvente, y el
descodificador establece (2540) un valor temporal de iTmp
igual al siguiente bit en el tren binario. El descodificador
comprueba (2542) el valor del valor temporal, que indicará si el
descodificador debería utilizar (2550) una transformación de
identidad del tamaño de #CanalesenGrupo. para el grupo de
canales. Si no es así, el descodificador establece (2560)
iTmp igual al siguiente bit en el tren binario y comprueba
(2562) el valor de iTmp El bit indica si el descodificador
debería descodificar (2570) una transformación unitaria genérica
para el grupo de canales o utilizar (2580) una trasformación DC tipo
II de tamaño #CanalesEnGrupo para el grupo de canales.
Cuando el descodificador utilizada una matriz de
transformación de Hadamart, DCT tipo II o unitaria genérica para el
grupo de canales, el descodificador descodifica (2590) la
información de conexión/desconexión de la banda de transformación
para la matriz, y a continuación sale.
En algunas realizaciones, el codificador y el
descodificador utilizan parámetros de factorización en base a la
rotación de Givens cuantificados para especificar una matriz de
transformación unitaria arbitraria para la eficiencia de bits.
En general, una matriz de transformación
unitaria puede ser representada utilizando rotaciones de
factorización de Givens. Utilizando esta factorización, una matriz
de transformación unitaria estar representada como:
En la que \alpha_{1} es +1 o -1 (signo de la
rotación) y cada \theta es de la forma de la matriz de rotación
(2600) que se muestra en la figura 26. La matriz de rotación (2600)
es casi como una matriz de identidad, pero tiene cuatro términos
seno/coseno con posiciones variables. Las figuras 27a - 27c muestran
matrices de rotación ejemplares para rotaciones de Givens. para
representar una matriz de transformación multicanal. Los dos
términos de coseno siempre están en la diagonal, los dos términos
del seno están en la misma fila/columna que los términos de coseno.
Cada \theta tiene un ángulo de rotación y su valor puede tener un
rango de -\pi/2 \leq \omega_{k} \leq \pi/2. El número
de tales matrices de rotación \theta que se necesita para
describir completamente una matriz unitaria A_{unitaria}
N x N es:
Para información adicional respecto a las
rotaciones de factorización de Givens., véase el documento de
Vaidyanathan, Sistemas de Multirelación y Bancos de Filtros,
capituló 14.6, "Factorización de Matrices Unitarias", Prentice
Hall (1993).
En algunas realizaciones, el codificador
cuantifica los ángulos de rotación de la factorización de Givens
para reducir la velocidad binaria. La figura 28 muestra la técnica
(2800) para representar una matriz de trasformación multicanal
utilizando rotaciones de factorización de Givens cuantificadas.
Alternativamente, un codificador o herramienta de procesado utiliza
rotaciones de factorización de Givens cuantificadas para representar
una matriz unitaria para algún otro propósito distinto de la
transformación multicanal de canales de audio.
El codificador en primer lugar calcula (2810)
una matriz unitaria arbitraria para la transformación multicanal. A
continuación, el codificador calcula (2820) las rotaciones de
factorización de Givens para la matriz unitaria.
Para reducir la velocidad binaria, el
codificador cuantifica (2830) los ángulos de rotación. En una
implementación, el codificador cuantifica uniformemente cada ángulo
de rotación a uno de los 64) valores posibles (2^{8} = 64). Los
signos de rotación están indicados con un bit cada uno, de manera
que el codificador utiliza el siguiente número de bits para
representar la matriz unitaria N x N
Este nivel de cuantificación permite que el
codificador represente la matriz unitaria N x N para la
trasformación multicanal con un grado de precisión muy bueno.
Alternativamente, el codificador utiliza algún otro nivel y/o tipo
de cuantificación.
La figura 29 muestra una técnica (2900) para
recuperar información para una transformación unitaria genérica de
un grupo de canales desde un tren binario de acuerdo con una
sintaxis particular de tren binario. La figura 29 muestra la
técnica (2900) ejecutada por el descodificador para marcar el tren
binario; el codificador ejecuta una técnica correspondiente para
formatear la información de la transformación unitaria genérica de
acuerdo con la sintaxis de tren binario. Alternativamente, el
descodificador y el codificador utilizan otra sintaxis, por ejemplo
una que utilice diferentes órdenes o resoluciones para los ángulos
de rotación.
En primer lugar, el descodificador inicializa
varias variables utilizadas en el resto de la descodificación.
Específicamente, el descodificador establece (2910) el número de
ángulos para descodificar #AngulosADescodificar en base al
número de canales en el grupo de canales #CanalesEnGrupo como
se muestra en la ecuación 14. El descodificador también establece
(2912) el número de señales de signos para descodificar
#SignosADescodificar en base a #CanalesEnGrupo. El
descodificador también reestablece (2914, 2916) un contador de
ángulos descodificados iAngulosDescodificados y un contador
de signos descodificados iSignosDescodificados.
El descodificador comprueba (2920) si hay
cualquier ángulo para descodificar, y si es así, establece (2922)
el valor para el siguiente ángulo de rotación, reconstruyendo el
ángulo de rotación del valor cuantificado de 6 bits.
A continuación, el descodificador incrementa
(2924) el contador de ángulos descodificados y comprueba (2920) si
hay cualquier ángulo adicional para descodificar.
Cuando no hay más ángulos para descodificar, el
descodificador comprueba (2940) si hay cualquier signo adicional
para descodificar y si es así, establece (2942) el valor para el
siguiente signo, reconstruyendo el signo del valor de 1 bit.
El descodificador a continuación incrementa
(2944) el contador de signos descodificados y comprueba (2940) si
hay cualquier signo adicional para descodificar. Cuando no hay más
signos para descodificar, el descodificador sale.
En algunas realizaciones, un codificador tal
como el codificador (630) de la figura 6 ejecuta la cuantificación
y ponderación en los datos de audio utilizando varias técnicas que
se describen más adelante. Para audio multicanal configurado en
placas, el codificador calcula y aplica matrices de cuantificación
para los canales de placas, modificadores de paso de cuantificación
por canal, y factores de cuantificación de placas general. Esto
permite que el codificador conforme un ruido de acuerdo con un
modelo auditivo, equilibre el ruido entre los canales, y controle
la distorsión general.
Un descodificador correspondiente tal como el
descodificador (700) de la figura 7 ejecuta la cuantificación
inversa y la ponderación inversa. Para audio multicanal configurado
en placas, el descodificador descodifica y aplica factores de
placas de cuantificación general, modificadores de paso de
cuantificación por canal, y matrices de cuantificación para canales
de placas. La cuantificación inversa y la ponderación inversa se
funden en un único paso.
En algunas realizaciones, para controlar la
calidad y la velocidad binaria de los datos de audio de una placa,
un cuantificador en un codificador calcula un tamaño de paso de
cuantificación Q_{i} para la placa. El cuantificador puede
trabajar en conjunto con un controlador de velocidad/calidad para
evaluar diferentes tamaños de paso de cuantificación para la placa
antes de seleccionar un tamaño de paso de cuantificación de placa
que satisfaga la velocidad binaria y/o los límites de calidad. Por
ejemplo, el cuantificador y el controlador funcionan como se
describe en la Solicitud de Patente norteamericana número de serie
10/017.694, titulada "Estrategia de Control de Calidad y
Velocidad en Audio Digital", presentada el 14 de diciembre de
2001.
La figura 30 muestra una técnica (3000) para
recuperar un factor de cuantificación de placas general a partir de
un tren binario de acuerdo con una sintaxis particular de tren
binario. La figura 30 muestra la técnica (3000) ejecutada por el
descodificador para analizar el tren binario; el codificador ejecuta
una técnica correspondiente para formatear el factor de
cuantificación de placas de acuerdo con la sintaxis de tren binario.
Alternativamente, el descodificador y el codificador utilizan otra
sintaxis, por ejemplo, una que funcione con rangos diferentes para
el factor de cuantificación de placas, utilice una lógica diferente
para codificar el factor de placas, o codifique grupos de factores
de placas.
En primer lugar, el descodificador inicializa
(3010) el tamaño de paso de cuantificación Q_{i} para la
placa. En una implementación, el descodificador establece
Q_{i} en:
en la que
BitsValidosPorMuestra es un número 16 \leq
BitsValidosPorMuestra \leq 24 que se establece para el
descodificador o para el clip de audio, o se establece en algún otro
nivel.
A continuación, el descodificador obtiene (3020)
seis bits que indican la primera modificación de Q_{i} en
relación con el valor inicializado de Q_{i}, y almacena el
valor -32 \leq Tmp \leq 31 en la variable temporal
Tmp. La función ExtendSigno( ) determina un valor
signado desde un valor sin signo. El descodificador añade (3030) el
valor de Tmp al valor inicializado de Q_{i}, a
continuación determina (3040) el signo de la variable Tmp
que es almacenado en la variable SignoDeDelta.
El descodificador comprueba (3050) si el valor
de Tmp es igual a -32 o 31. Si no es así, el descodificador
sale. Si el valor de Tmp es igual a -32 o 31, el codificador
puede haber señalizado que Tmp debería ser modificado
adicionalmente. La dirección (positiva o negativa) de las
modificaciones adicionales es indicada por SignoDeDelta, y
el descodificador obtiene (3060) los siguientes cinco bits para
determinar la magnitud 0 \leq Tmp \leq 31 de la
siguiente modificación. El descodificador cambia (3070) el valor
actual de Q_{i} en la dirección de SignoDeDelta por
el valor de Tmp, a continuación comprueba (3080) si valor de
Tmp es 31. Si no es así, el descodificador sale. Si el valor
de Tmp es 31, el descodificador obtiene (3060) los
siguientes cinco bits y continua desde ese punto.
En realizaciones que no utilizan configuraciones
de placas, el codificador calcula un tamaño de paso de
cuantificación general para un marco u otra porción de datos de
audio.
En algunas realizaciones, un codificador calcula
un modificador de paso de cuantificación para cada canal en una
placa: Q_{c,0}, Q_{c,1}, ... ,
Q_{c,#CanalesEnPlaca-1}. El codificador
normalmente calcula estos factores de cuantificación específicos de
los canales para compensar la calidad de reconstrucción a través de
todos los canales. Incluso en realizaciones que no utilizan
configuraciones de placas, el codificador puede calcular todavía
factores de cuantificación por canal para los canales en un marco u
otra unidad de datos de audio. Como contraste, las técnicas de
cuantificación previas, tales como aquellas utilizadas en el
codificador (100) de la figura 1, utilizan un elemento de matriz de
cuantificación por banda de una ventana en un canal, pero no tienen
modificador general para el canal.
La figura 31 muestra una técnica generalizada
(3100) para calcular los modificadores de paso de cuantificación
por canal de los datos de audio multicanal. El codificador utiliza
distintos criterios para calcular los modificadores de paso de
cuantificación. En primer lugar, el codificador busca igualar
aproximadamente la calidad a través de todos los canales de los
datos de audio reconstruidos. En segundo lugar, si las posiciones de
los altavoces son conocidas, el codificador favorece los altavoces
que son más importantes para la percepción en usos típicos de la
configuración de altavoces. En tercer lugar, si los tipos de
altavoces son conocidos, el codificador favorece los mejores
altavoces en la configuración de altavoces. Alternativamente, el
codificador considera criterios distintos o adicionales a estos
criterios.
El codificador empieza estableciendo (3110) los
modificadores de paso de cuantificación para los canales. En una
implementación, el codificador establece (3110) los modificadores en
base a la energía en los canales respectivos. Por ejemplo, para un
canal con energía relativamente más alta (es decir, más sonora) que
los otros canales, los modificadores de paso de cuantificación
para los otros canales se hacen relativamente más altos.
Alternativamente, el codificador establece (3110) los modificadores
en base a otros criterios o adicionales en un procesado de
estimación de "bucle abierto". O el codificador puede
establecer (3110) los modificadores para igualar los valores
inicialmente (basándose en la evaluación de resultados de "bucle
cerrado" para que converjan en los valores finales para los
modificadores).
El codificador cuantifica (3120) los datos de
audio multicanal utilizando los modificadores de paso de
cuantificación así como otros factores de cuantificación
(incluyendo la ponderación), si estos otros factores no ha sido ya
aplicados.
Después de la reconstrucción posterior, el
codificador evalúa (3130) la calidad de los canales de audio
reconstruidos utilizando NER o alguna otra medida de
calidad. El codificador comprueba (3140) si el audio reconstruido
satisface los criterios de calidad (y/o otros criterios) y si es
así, sale. Si no es así, el codificador establece (3110) nuevos
valores para los modificadores de paso de cuantificación, ajustando
los modificadores en vista a los resultados evaluados.
Alternativamente, para un establecimiento de un paso, en bucle
abierto de los modificadores de paso, el codificador salta la
evaluación (3130) y la comprobación (3140).
Los modificadores de paso de cuantificación por
canal tienden a cambiar de ventana/placa a ventana/placa. El
codificador codifica los modificadores de paso de cuantificación
como literales o códigos de longitud variable, y a continuación
los empaqueta en el tren binario con los datos de audio. O el
codificador utiliza algunas otras técnicas para procesar los
modificadores de paso de cuantificación.
La figura 32 muestra una técnica (3200) para
recuperar los modificadores de paso de cuantificación por canal
desde un tren binario de acuerdo con una sintaxis de tren binario
particular. La figura 32 muestran la técnica (3200) ejecutada por
el descodificador para analizar el tren binario; el codificador
ejecuta una técnica correspondiente (establecer banderas,
empaquetar datos para los modificadores de paso de cuantificación,
etc.) para formatear los modificadores de paso de cuantificación de
acuerdo con la sintaxis de tren binario. Alternativamente, el
descodificador y el codificador utilizan otra sintaxis, por ejemplo
una que funcione con diferentes banderas o lógica para codificar
los modificadores de paso de cuantificación.
La figura 32 muestra la recuperación de los
modificadores de paso de cuantificación por canal para una placa.
Alternativamente, en realizaciones que no utilizan placas, el
descodificador recupera los modificadores de paso por canal para
marcos u otras unidades de datos de audio.
Para empezar, el descodificador comprueba (3210)
si el número de canales en la placa es mayor que 1. Si no es así,
los datos de audio son mono. El descodificador establece (3212) el
modificador de paso de cuantificación para el canal mono en 0 y
sale.
Para audio multicanal, el descodificador
inicializa varias variables. El descodificador obtiene (3220) bits
que indican el número de bits por modificador de paso de
cuantificación (#BitsPorQ) para la placa. En una
implementación, el descodificador obtiene tres bits. A continuación,
el descodificador dispone (3222) un contador de canales
iCanales Hecho en 0.
El descodificador comprueba (3230) si el
contador de canales es menor que el número de canales en la placa.
Si no es así, todos los modificadores de paso de cuantificación de
canales para la placa han sido recuperados, y el descodificador
sale.
Por otro lado, si el contador de canales es
menor que el número de canales en la placa, el descodificador
obtiene (3232) un bit y comprueba (3240) el bit para determinar si
el modificador de paso de cuantificación para los canales actuales
es 0. Si es así, el descodificador dispone (3242) el modificador de
paso de cuantificación para el canal actual en 0.
Si el modificador de paso de cuantificación para
el canal actual no es 0, el descodificador comprueba (3250) si
#BitsPorQ es mayor que 0 para determinar si el modificador de
paso de cuantificación para el canal actual es 1. Si es así, el
descodificador dispone (3252) el modificador de paso de
cuantificación para el canal actual en 1.
Si #BitsPorQ es mayor que 0, el
descodificador obtiene los siguientes bits #BitsPorQ en el
tren binario, añade 1 (puesto que el valor 0 dispara una condición
de salida anterior) y dispone (3260) el modificador de paso de
cuantificación para el canal actual al resultado.
Después de que el descodificador disponga el
modificador de paso de cuantificación para el canal actual, el
descodificador incrementa (3270) el contador de canales y comprueba
(3230) si el contador de canales es menor que el número de canales
en la placa.
En algunas realizaciones, un codificador calcula
una matriz de cuantificación para cada canal en una placa. El
codificador mejora las técnicas de cuantificación anteriores tales
como aquellas que se utilizaban en el codificador (100) de la
figura 1 de distintas maneras. Para la compresión con pérdida de
matrices de cuantificación, el codificador utiliza un tamaño de
paso flexible para los elementos de la matriz de cuantificación, lo
cual permite que el descodificador cambie la resolución de los
elementos de las matrices de cuantificación. Además de esta
característica, el codificador se aprovecha de la correlación
temporal en los valores de la matriz de cuantificación durante la
compresión de las matrices de cuantificación.
Como se ha explicado previamente, una matriz de
cuantificación sirve como una agrupación de tamaño de paso, un
valor de paso por cada banda de frecuencia de corteza (u otra banda
de cuantificación dividida de otra manera) para cada canal en una
placa. El codificador utiliza matrices de cuantificación para
"colorear" la señal de audio reconstruida de manera que tenga
una forma espectral comparable a la de la señal original. El
codificador normalmente determina las matrices de cuantificación en
base a la psicoacústica y comprime las matrices de cuantificación
para reducir la velocidad binaria. La compresión de las matrices de
cuantificación puede ser con pérdida.
Las técnicas que se han descrito en esta sección
se han descrito con referencia a las matrices de cuantificación
para canales de placas. En la notación, Q_{mjCanaljBanda}
representa el elemento de matriz de cuantificación para el canal
iCanal para la banda iBanda. En realizaciones que no
utilizan configuraciones de placas, el codificador todavía puede
usar un tamaño de paso flexible para los elementos de la matriz de
cuantificación y/o aprovecharse de la correlación temporal de los
valores de la matriz de cuantificación durante la compresión.
La figura 33 muestra una técnica generalizada
(3300) para establecer adaptativamente un tamaño de paso de
cuantificación para la cuantificación de elementos de matriz de
cuantificación. Esto permite que el codificador cuantifique la
información de máscara toscamente ó finamente. En una
implementación, el codificador establece el tamaño de paso de
cuantificación para los elementos de la matriz de cuantificación en
una base de canal a canal para una placa (es decir, en base de
matriz a matriz cuando cada canal de la placa tiene una matriz).
Alternativamente, el codificador establece el tamaño de paso de
cuantificación para los elementos de máscara en una placa en una
base de placa a placa o marco a marco, para una secuencia de audio
completa, o en algún otro nivel.
El codificador empieza estableciendo (3310) un
tamaño de paso de cuantificación para una o más máscaras. (El
número de máscaras afectadas depende del nivel en el cual el
codificador asigna el tamaño de paso de cuantificación flexible).
En una implementación, el codificador evalúa la calidad de audio
reconstruido en algún período de tiempo, y dependiendo del
resultado, selecciona el tamaño de paso de cuantificación para que
sea 1, 2, 3 o 4 dB para la información de máscara. La medida de
calidad evaluada por el codificador es NER para uno o más de
los marcos codificados previamente. Por ejemplo, si la calidad en
conjunto es pobre, el codificador puede establecer (3310) un valor
más elevado para el tamaño de paso de cuantificación para la
información de máscara, puesto que la resolución de la matriz de
cuantificación no es un uso eficiente de la velocidad binaria. Por
otro lado, si la calidad en conjunto es buena, el codificador puede
establecer (3310) un valor inferior de tamaño de paso de
cuantificación para información de máscara, puesto que la resolución
mejor en la matriz de cuantificación puede mejorar eficientemente
la calidad percibida. Alternativamente, el codificador utiliza otra
medida de calidad, evaluación en un período diferente y/o otros
criterios en una estimación de bucle abierto para el tamaño de
paso de cuantificación. El codificador también puede utilizar
tamaños de paso de cuantificación diferentes o adicionales para la
información de máscara. O el codificador puede saltar la estimación
de bucle abierto, en lugar de basarse en una evaluación de
resultados de bucle cerrado para que converjan en el valor final
del tamaño de paso.
El codificador cuantifica (3320) la una o más
matrices de cuantificación utilizando el tamaño de paso de
cuantificación para los elementos de máscara, y pondera y
cuantifica los datos de audio multicanal.
Después de la reconstrucción posterior, el
codificador evalúa (3330) la calidad de audio reconstruido
utilizando la NER o alguna otra medida de calidad. El
codificador comprueba (3340) si la calidad de audio reconstruido
justifica el establecimiento actual del tamaño de paso de
cuantificación para la información de máscara. Si no es así, el
codificador puede establecer (3310) un valor más alto o más bajo del
tamaño de paso de cuantificación para la información de máscara. En
otro caso, el codificador sale. Alternativamente, para un
establecimiento de un paso, de bucle abierto del tamaño de paso de
cuantificación para la información de máscara, el codificador salta
la evaluación (3330) y la comprobación (3340).
Después de la selección, el codificador indica
el tamaño del paso de cuantificación para la información de máscara
en el nivel apropiado en el tren binario.
La figura 34 muestra una técnica generalizada
(3400) para recuperar un tamaño de paso de cuantificación adaptativo
para los elementos de la matriz de cuantificación. De esta manera
el descodificador puede cambiar el tamaño de paso de cuantificación
para los elementos de máscara en una base de canal a canal para una
placa, o de placa a placa o de marco a marco, para una secuencia de
audio completa, o en algún otro nivel.
El descodificador empieza obteniendo (3410) un
tamaño de paso de cuantificación para una o más máscaras. (El
número de máscaras afectadas depende del nivel en el cual el
codificador asigna el tamaño de paso de cuantificación flexible).
En una implementación, el tamaño de paso de cuantificación es 1, 2,
3 o 4 dB para la información de máscaras. Alternativamente, el
codificador y el descodificador utilizan tamaños de paso de
cuantificación diferentes o adicionales para la información de
máscaras.
A continuación el descodificador cuantifica
inversamente (3420) la una o más matrices de cuantificación
utilizando el tamaño de paso de cuantificación para la información
de máscara, y reconstruye los datos de audio multi-
canal.
canal.
La figura 35 muestra una técnica generalizada
(3500) para la compresión de las matrices de cuantificación
utilizando la predicción temporal. Con la técnica (3500), el
codificador se aprovecha de la correlación temporal en los valores
de la máscara. Esto reduce la velocidad binaria asociada con las
matrices de cuantificación.
Las figuras 35 y 36 muestran la predicción
temporal para las matrices de cuantificación en un canal de un
marco de datos de audio. Alternativamente, un codificador comprime
las matrices de cuantificación utilizando predicción temporal entre
múltiples marcos, en alguna otra secuencia de audio, o para una
configuración diferente de las matrices de cuantificación.
Con referencia a la figura 35, el codificado
obtiene (3510) matrices de cuantificación para un marco. Las
matrices de cuantificación en un canal tienden a ser las mismas de
ventana a ventana, haciéndolas buenas candidatas para la
codificación predictiva.
A continuación el codificador codifica (3520)
las matrices de cuantificación utilizando la predicción temporal.
Por ejemplo, el codificador utiliza la técnica (3600) que se muestra
en la figura 36. Alternativamente, el codificador utiliza otra
técnica con predicción temporal.
El codificador determina (3530) si hay más
matrices para comprimir, y si no es así, sale. En caso contrario,
el codificador obtiene las siguientes matrices de cuantificación.
Por ejemplo, el codificador comprueba si hay disponibles matrices
para el siguiente marco para la codificación.
La figura 36 muestra una técnica más detallada
(3600) para comprimir las matrices de cuantificación en un canal
utilizando predicción temporal en una implementación. La predicción
temporal utiliza un procesado del retoma de muestras en las placas
de diferentes tamaños de ventana y utiliza la codificación de nivel
de longitud de ejecución en residuales de predicción para reducir
la velocidad binaria.
El codificador empieza (3610) la compresión de
la siguiente matriz de cuantificación que va a ser comprimida y
comprueba (3620) si hay disponible una matriz de anclaje, que
normalmente depende de que la matriz sea la primera en su canal. Si
no hay disponible una matriz de anclaje, el codificador comprime
directamente (3630) la matriz de cuantificación. Por ejemplo, el
codificador codifica diferencialmente los elementos de la matriz de
cuantificación (cuando la diferencia para un elemento es relativa al
elemento de la banda previa) y asigna códigos Huffman a los
diferenciales. Para el primer elemento en la matriz (es decir, el
elemento de máscara para la banda 0), el codificador utiliza una
constante de predicción que depende del tamaño de paso de
cuantificación de los elementos de
máscara.
máscara.
Alternativamente, el codificador utiliza otra
técnica de compresión para la matriz de anclaje.
A continuación, el codificador establece (3640)
la matriz de cuantificación como matriz de anclaje para el canal
del marco. Cuando el codificador utiliza placas, la placa que
incluye la matriz de anclaje para un canal puede ser denominada
placa de anclaje. El codificador anota el tamaño de la matriz de
anclaje o el tamaño de placa de la placa de anclaje, que puede ser
utilizado para formar predicciones para matrices con un tamaño
diferente.
Por otro lado, si hay disponible una matriz de
anclaje, el codificador comprime la matriz de cuantificación
utilizando predicción temporal. El codificador calcula (3650) una
predicción para la matriz de cuantificación en base a la matriz de
anclaje para el canal. Si la matriz de cuantificación que está
siendo comprimida tiene el mismo número de bandas que la matriz de
anclaje, la predicción son los elementos de la matriz de anclaje.
Si la matriz de cuantificación que está siendo comprimida tiene un
diferente número de bandas que la matriz de anclaje, sin embargo,
el codificador retoma muestras de la matriz de anclaje para calcular
la predicción.
El procesado de retoma de muestras utiliza el
tamaño de la matriz de cuantificación que está siendo
comprimida/tamaño de la placa actual y el tamaño de la matriz de
anclaje/tamaño de la placa de anclaje.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
en la que iBandaEscalada es
la banda de matriz de anclaje que incluye la frecuencia
representativa (por ejemplo, el promedio) de iBanda.
iBanda es en términos de la matriz de cuantificación
actual/tamaño de la placa actual, mientras que
iBandaEscalada. es en términos del tamaño de la matriz de
anclaje/placa de
anclaje.
La figura 37 ilustra una técnica para retomar
muestras de la matriz de anclaje cuando el codificador utiliza
placas. La figura 37 muestra un mapeo ejemplar (3700) de bandas de
una placa actual a bandas de otra placa de anclaje para formar una
predicción. Las frecuencias en el medio de los límites de las bandas
(3720) para la matriz de codificación en la placa actual son
mapeadas (3730) a frecuencias de la matriz de anclaje en la placa
de anclaje. Los valores de la máscara de predicción se establecen
dependiendo si las frecuencias mapeadas son relativas a los límites
de la banda (3710) o a la matriz de anclaje en la placa de anclaje.
Alternativamente, el codificador utiliza predicción temporal
relativa a la matriz de cuantificación precedente en el canal o
alguna otra matriz precedente, o utiliza otra técnica para retomar
muestras.
Volviendo a la figura 36, el codificador calcula
(3660) un residual de la matriz de cuantificación relativa a la
predicción. Idealmente, la predicción es perfecta y el residual no
tiene energía. Sin embargo, en caso necesario, el codificador
codifica (3670) el residual. Por ejemplo, el codificador utiliza
codificación de nivel de desplazamiento u otra técnica de
compresión para el residual de la predicción.
A continuación el codificador determina (3680)
si hay cualquier otra matiz que va a ser comprimida y si no es así,
sale. En caso contrario, el codificador obtiene (3610) la siguiente
matriz de cuantificación y continua.
La figura 38 muestra una técnica (3800) para
recuperar y descodificar matrices de cuantificación comprimidas
utilizando predicción temporal de acuerdo con una sintaxis de tren
binario particular. Las matrices que cuantificación son para los
canales de una única placa de un marco. La figura 38 muestra la
técnica (3800) ejecutada por el descodificador para marcar
información en el tren binario y el codificador ejecuta una técnica
correspondiente. Alternativamente, el descodificador y el
codificador utilizan otra sintaxis para una o más de las opciones
que se muestran en la figura 38, por ejemplo una que utiliza
diferentes banderas, diferentes órdenes, o una que no
utiliza
placas.
placas.
El descodificador comprueba (3810) si el
codificador ha alcanzado el inicio de un marco. Si es así, el
descodificador marca (3812) todas las matrices de anclaje para el
marco como que no han sido dispuestas.
A continuación el descodificador comprueba
(3820) si la matriz de anclaje está dispuesta en el canal de la
siguiente matriz de cuantificación que debe ser codificada. Sin no
hay disponible ninguna matriz de anclaje, el descodificador obtiene
(3830) el tamaño del paso de cuantificación para la matriz de
cuantificación para el canal. En una implementación, el
descodificador obtiene el valor 1, 2, 3 o 4 dB.
A continuación el descodificador descodifica
(3832) la matriz de anclaje para el canal. Por ejemplo, el
descodificador Huffman descodifica diferentes elementos codificados
de la matriz de anclaje (donde la diferencia para un elemento es
relativa al elemento de la banda previa) y reconstruye los
elementos. Para el primer elemento, el descodificador utiliza la
constante de predicción utilizada en el codificador.
Alternativamente, el descodificador utiliza otra
técnica de descompresión para la matriz de anclaje en un canal en
el marco.
A continuación el descodificador establece
(3834) la matriz de cuantificación como matriz de anclaje para el
canal del marco y establecer los valores de la matriz de
cuantificación para el canal en aquellos de la matriz de
anclaje.
El descodificador también anota el tamaño de
placa para la placa de anclaje, que puede ser utilizado para formar
predicciones de matrices en placas con diferente tamaño que la placa
de anclaje.
Por otro lado, si hay disponible una matriz de
anclaje para el canal, el descodificador descomprime la matriz de
cuantificación utilizando predicción temporal. El descodificador
calcula (3840) una predicción para la matriz de cuantificación en
base a la matriz de anclaje de canal si la matriz de cuantificación
para la placa actual tiene el mismo número de bandas que la matriz
de anclaje, la predicción es los elementos de la matriz de anclaje.
Sin embargo, si la matriz de cuantificación para la placa actual
tiene un número diferente de bandas que la matriz de anclaje, el
codificador vuelve a tomar muestras en la matriz de anclaje para
obtener la predicción, por ejemplo utilizando el tamaño de placa
actual y el tamaño de placa de anclaje como se muestra en la figura
37.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Alternativamente, el descodificador utiliza
predicción temporal relativa a la matriz de cuantificación
precedente en el canal o a una matriz precedente, o utiliza otra
técnica de retoma de muestras.
El descodificador obtiene (3842) el siguiente
bit en el tren binario y comprueba (3850) si el tren binario
incluye un residual para la matriz de cuantificación. Si no hay
actualización de máscara para este canal en la placa actual, el
residual de predicción de máscara es 0, de manera que:
Por otro lado, si hay un residual de predicción,
el descodificador descodifica (3852) el residual, por ejemplo
utilizando descodificación de nivel de longitud de ejecución o
alguna otra técnica de descompresión. A continuación el
descodificador añade (3854) el residual de predicción a la
predicción para reconstruir la matriz de cuantificación. Por
ejemplo, la adición es una simple adición escalar en una base de
banda a banda para obtener los elementos para la banda
iBanda para el canal actual iCanal
El descodificador a continuación comprueba
(3860) si las matrices de descodificación para todo los canales en
la placa actual han sido descodificadas y si es así, sale. En caso
contrario, el descodificador continúa descodificando la siguiente
matriz de cuantificación en la placa actual.
Una vez que el descodificador recupera toda la
información necesaria de cuantificación y ponderación, el
descodificador cuantifica inversamente y pondera inversamente los
datos de audio. En una implementación, el descodificador ejecuta la
cuantificación inversa y la ponderación inversa en una etapa, que se
muestra en las dos ecuaciones que siguen con la finalidad de que la
impresión sea clara.
en la que x_{lqw} es la
entrada (es decir, coeficiente de transformación MC inversa) del
canal iCanal, y n es un índice de coeficiente en la
banda iBanda. Max(Q_{c,iCanal}, *) es el
valor de máscara máximo para el canal iCanal en todas las
bandas. (La diferencia entre los factores de ponderación mayor y
menor para una máscara típicamente es mucho menor que el rango de
los valores potenciales para los elementos de máscara, de manera
que la cantidad de ajuste de cuantificación por factor de
ponderación es calculada en relación con el máximo).
MultiplicadorQuantMascara_{iCanal} es el multiplicador de
paso de cuantificación de máscara para la matriz de cuantificación
del canal iCanal, e Y_{lqw} es la salida de este
paso.
Alternativamente, el descodificador ejecuta la
cuantificación inversa en la ponderación separadamente utilizando
técnicas diferentes.
En algunas realizaciones, un descodificador tal
como el descodificador (700) de la figura 7 ejecuta procesado
multicanal en muestras de audio reconstruidas en el dominio
temporal.
El postprocesado multicanal puede ser utilizado
con muchos propósitos diferentes. Por ejemplo, el número de canales
descodificados puede ser menor que el número de canales para la
salida (por ejemplo, debido a que el codificador dejó caer uno o
más canales de entrada y canales transformados multicanal para
reducir la complejidad de codificación o la plenitud de la memoria
tampón). Si es así, una transformación postprocesado multicanal
puede ser utilizada para crear uno o más canales fantasmas en base a
los datos actuales en los canales descodificados. O incluso si el
número de canales descodificados iguala al número de canales de
salida, la transformación de postprocesado se puede utilizar para
la rotación espacial arbitraria en la presentación, volviendo a
mapear los canales de salida entre las posiciones de los altavoces,
u otros efectos espaciales o especiales. O si el número de canales
descodificados es mayor que el número de canales de salida (por
ejemplo, cuando se reproduce audio de sonido envolvente en equipo
estéreo), la transformación postprocesado se puede utilizar para
plegar canales. En algunas realizaciones, los coeficientes de
plegado varían potencialmente en el tiempo - el postprocesado
multicanal está controlado por el tren binario. Las matrices de
transformación para estos escenarios y aplicaciones están previstas
o señalizadas por el codificador.
En la figura 39 se muestra una técnica
generalizada (3900) para postprocesado multicanal. El descodificador
descodifica (3910) datos de audio multicanal codificados (3905)
utilizando las técnicas que se muestran en la figura 7 u otras
técnicas de descompresión, produciendo datos de audio multicanal en
el dominio temporal reconstruido (3915).
A continuación el descodificador ejecuta (3920)
postprocesado multicanal en los datos de audio multicanal del
dominio temporal (3915). Por ejemplo, cuando el codificador produce
M canales descodificados y el descodificador produce como
salida N canales, el procesado incluye una transformación en
conjunto M a N. El descodificador, toma M muestras
colocadas conjuntamente (en tiempo), una para cada uno de los
M canales codificados reconstruidos, a continuación amortigua
cualquier canal que falta (es decir, los canales N - M
canales que han sido dejados caer por el codificador) con ceros. El
descodificador multiplica las N muestras por una matriz
A_{post}.
En donde x_{post} y Y_{post}
son la entrada de N canales y la salida del procesado
multicanal, A_{post} es una matriz de transformación en
conjunto N x N, y x_{post} está amortiguado con
ceros para hacer coincidir con la longitud del vector de salida
N.
La matriz A_{post} puede ser una matriz
con elementos predeterminados, o puede ser una matriz en conjunto
con los elementos especificados por el codificador. El codificador
indica al descodificador que debe utilizar una matriz determinada
(por ejemplo, con uno o más bits de bandera) o envía los elementos
de una matriz en conjunto al descodificador, o el descodificador
puede estar configurado para utilizar siempre la misma matriz
A_{post}. La matriz A_{post} no necesita poseer
ninguna característica especial tal como ser simétrica o
invertible. Para flexibilidad adicional, el procesado multicanal
puede estar dispuesto en conexión/desconexión en una base de marco a
marco u otra (en cuyo caso, el descodificador puede utilizar una
matriz de identidad para dejar inalterados los canales).
En la figura 40 se muestra una matriz ejemplar
A_{p-centro} (4000) utilizada para crear un
canal central fantasma desde los canales izquierdo y derecho en un
entorno de reproducción de canales 5.1, estando los canales
ordenados como se muestra en la figura 4. La matriz ejemplar
A_{p-centro} (4000) pasa por los otros
canales inalterada. El descodificador obtiene muestras colocadas
conjuntamente en tiempo desde los canales izquierdo, derecho,
sub-woofer, trasero izquierdo y trasero derecho y
amortigua el canal central con ceros. El descodificador a
continuación multiplica las seis muestras de entrada por la matriz
A_{p-centro} (4000).
Alternativamente, el descodificador utiliza una
matriz con diferentes coeficientes o un número diferente de
canales. Por ejemplo, el descodificador utiliza una matriz para
crear canales fantasmas en un canal 7.1, canal 9.1 o algún otro
entorno de reproducción de los canales codificados para una audición
multicanal 5.1.
La figura 41 muestra una técnica (4100) para el
postprocesado multicanal en la cual la matriz de transformación
cambia potencialmente en una base de marco a marco. Cambiar la
matriz de transformación puede conducir a ruidos audibles (por
ejemplo, chasquidos) en la salida final si no se maneja
cuidadosamente. Para evitar la introducción de ruidos de
chasquidos, el descodificador realiza gradualmente la transición
desde una matriz de transformación a otra entre marcos.
El descodificador en primer lugar descodifica
(4110) los datos de audio multicanal codificados para un marco,
utilizando las técnicas que se muestran en la figura 7 u otras
técnicas de descompresión, y produciendo datos de audio multicanal
del dominio temporal reconstruidos. El descodificador a continuación
obtiene (4120) la matriz del postprocesado para el marco, por
ejemplo como se muestra en la figura 42.
El descodificador determina (4130) si la matriz
para el marco actual es diferente de la matriz del marco previo (si
ha habido un marco previo). Si la matriz actual es la misma o no hay
una matriz previa, el descodificador aplica (4140) la matriz a las
muestras de audio reconstruidas del marco actual. En caso contrario,
el descodificador aplica (4150) una matriz de trasformación
mezclada a las muestras de audio reconstruidas para el marco actual.
La función de mezcla depende de la implementación. En una
implementación, en la muestra i en el marco actual, el
descodificador utiliza una matriz mezclada de corto termino.
en la que A_{post,prev} y
A_{post,actual} son las matrices de postprocesado de los
marcos previo y actual, respectivamente, y NumMuestras es el
número de muestras en el marco actual. Alternativamente, el
descodificador utilizar otra función de mezcla para suavizar las
discontinuidades en las matrices de transformación de
postprocesado.
El descodificador repite la técnica (4100) en
una base de marco a marco. Alternativamente, el descodificador
cambia el postprocesado multicanal en alguna otra base.
La figura 42 muestra una técnica (4200) para
identificar y recuperar una matriz de transformación para el
postprocesado multicanal de acuerdo con una sintaxis de tren binario
particular. La sintaxis permite especificar matrices de
trasformación definidas así como matrices a medida para el
postprocesado multicanal. La figura 42 muestra la técnica (4200)
ejecutada por el descodificador para analizar el tren binario; el
codificador ejecuta una técnica correspondiente (establecer
banderas, empaquetar datos de elementos, etc.) para formatear la
matriz de trasformación de acuerdo con la sintaxis de tren binario.
Alternativamente, el descodificador y el codificador utilizan otra
sintaxis para una o más de las opciones que se muestran en la figura
42, por ejemplo una que utiliza diferentes banderas o diferentes
órdenes.
En primer lugar, el descodificador determina
(4210) si el número de canales #Canales es mayor que 1. Si
#Canales es 1, los datos de audio son mono, y el
descodificador utiliza (4212) una matriz de identidad (es decir, no
ejecuta procesado multicanal por sí mismo).
Por otro lado, si #Canales > 1, el
descodificador establece (4220) un valor temporal iTmp igual
al siguiente bit en el tren binario. A continuación el
descodificador comprueba (4230) el valor del valor temporal, lo
cual indica si el descodificador debe utilizar (4232), o no, una
matriz de identidad.
Si el descodificador utiliza algo distinto de
una matriz de identidad para el audio multicanal, el descodificador
establece (4240) el valor temporal iTmp igual al siguiente
bit en el tren binario. A continuación, el descodificador comprueba
(4250) el valor del valor temporal, lo cual indica si el
descodificador debe usar (4252) o no una matriz de trasformación
multicanal predefinida. Si el descodificador utiliza (4252) una
matriz predefinida, el descodificador puede obtener uno o más bits
adicionales del tren binario (no mostrado) que indica cuál de las
diferentes matrices predefinidas disponibles debería utilizar el
descodificador.
Si el descodificador no utiliza una matriz
predefinida, el descodificador inicializa distintos valores
temporales para descodificar una matriz a medida. El descodificador
establece (4260) un contador iCoefHecho para los
coeficientes establecidos en 0 y establece (4262) el número de
coeficientes #CoefParaHacer. para descodificar e igualar el
número de elementos en la matriz (#Canales^{2}). Para
matrices que se conocen que tienen propiedades particulares (por
ejemplo, simétricas), el número de coeficientes a descodificar puede
disminuir. A continuación el descodificador determina (4270) si
todos los coeficientes han sido recuperados del tren binario y si
es así, finaliza. En caso contrario, el descodificador obtiene
(4272) el valor del siguiente elemento A[iCoefHecho]
en la matriz e incrementa (4274) iCoefHecho. La manera en la
que los elementos son codificados y empaquetados en el tren binario
depende de la implementación. En la figura (42, la sintaxis permite
cuatro bits de precisión por elemento de la matriz de trasformación,
y el valor absoluto de cada elemento es menor o iguala a uno. En
otras implementaciones, la precisión por elemento es diferente, el
descodificador y el codificador utilizan compresión para aprovechar
patronos de redundancia en la matriz de trasformación, y/o la
sintaxis es diferente de alguna otra manera.
Habiendo descrito e ilustrado los principios de
la invención con referencia a las realizaciones que se han
descrito, se reconocerá que las realizaciones descritas pueden ser
modificadas en disposiciones y detalles sin separarse de tales
principios. Se debe entender que los programas, procesos o
procedimientos descritos en la presente memoria descriptiva no
están relacionados o limitados a un tipo particular de entorno
informático, a no ser que se indique lo contrario. Distintos tipos
de entornos informáticos de propósito general o especializados
pueden ser utilizados o ejecutar operaciones de acuerdo con las
enseñanzas que se describen en la presente memoria descriptiva. Los
elementos de las realizaciones descritas que se muestran en
programas lógicos se pueden implementar en equipos físicos o
viceversa.
Claims (21)
1. Un procedimiento de codificación de audio
implementado por ordenador, que comprende.
recibir un marco de datos de audio
multicanal;
agrupar ventanas plurales de diferentes canales
en el marco en una o más placas, en el que cada placa de la una o
más placas agrupa una o más ventanas colocadas conjuntamente entre
las ventanas múltiples de los diferentes canales en el marco, en el
que, para cada placa de la una o más placas, el grupo de la una o
más ventanas colocadas conjuntamente para la placa comparte una
posición de inicio para la placa y comparte una posición de
finalización para la placa, en el que los canales plurales de los
diferentes canales tienen diferentes configuraciones de ventanas en
el marco, y en el que al menos una placa del uno o más grupos de
placas colocadas conjuntamente de los canales plurales tienen
diferentes configuraciones de ventanas en el marco; y
producir como salida información de
configuración de placas para la una o más placas, indicando la
información de configuración de placas cómo las ventanas plurales
están agrupadas en la una o más placas.
2. El procedimiento de la Reivindicación 1, en
el que los datos de audio multicanal se encuentran en dos
canales.
3. El procedimiento de la Reivindicación 1, en
el que los datos de audio multicanal se encuentran en más de dos
canales.
4. El procedimiento de la Reivindicación 1, en
el que los diferentes canales incluyen canales primero, segundo y
tercero, en el que el primer canal incluye una primera ventana y una
segunda ventana, en el que el segundo canal incluye una ventana
colocada conjuntamente en posición con la primera ventana del primer
canal, en el que el tercer canal incluye una ventana colocada
conjuntamente en posición con la segunda ventana del primer canal,
en el que la primera ventana del primer canal se encuentra en una
primera placa junto con la ventana del segundo canal, y en el que
la segunda ventana del primer canal se encuentra en una segunda
placa junto con la ventana del tercer
canal.
canal.
5. El procedimiento de la Reivindicación 1, en
el que la información de configuración de placa incluye tamaño de
placa e información del miembro de canal.
6. El procedimiento de la Reivindicación 1, en
el que la salida comprende enviar una señal que indique si todos
los diferentes canales tienen una configuración de ventana
idéntica.
7. El procedimiento de la Reivindicación 6, en
el que la salida comprende además, si los canales diferentes no
tienen todos ellos una configuración de ventanas idéntica, enviar
una o más máscaras de canal y enviar uno o más tamaños de
placas.
8. Un medio legible por ordenador que almacena
instrucciones ejecutables por ordenador para hacer que un ordenador
programado de esta manera realice el procedimiento de la
reivindicación 1.
9. Un procedimiento de descodificación de audio
implementado por ordenador que comprende:
- recibir datos de audio codificados en canales plurales en un marco;
- recuperar la información de configuración de placas de una o más placas, indicando la información de configuración de placas como están agrupadas las ventanas plurales en la una o más placas, en el que cada una de la una o más placas agrupa una o más ventanas colocadas conjuntamente entre las ventanas plurales de los canales plurales en el marco, en el que para cada placa de la una o más placas, el grupo de una o más ventanas colocadas conjuntamente para la placa comparte una posición de inicio para la placa y comparte una posición de finalización para la placa, en el que al menos algunos de los canales plurales tienen diferentes configuraciones de ventana en el marco, y en el que al menos una placa de la una o más placas agrupa ventanas colocadas conjuntamente de al menos algunos canales que tienen configuraciones de ventanas diferentes en el marco, y
- descodificar los datos de audio en base al menos en parte a la información de configuración de placas recuperada.
10. El procedimiento de la Reivindicación 9, en
el que los canales plurales consisten en dos canales.
11. El procedimiento de la Reivindicación 9, en
el que los canales plurales consisten en más de dos canales.
12. El procedimiento de la Reivindicación 9, en
el que la información de configuración de placas incluye el tamaño
de las placas e información de miembros de canal.
13. El procedimiento de la Reivindicación 9, en
el que la recuperación comprende obtener una señal que indique si
todos los canales plurales tienen una configuración de ventanas
idéntica.
14. El procedimiento de la Reivindicación 13, en
el que la recuperación comprende además, si los canales plurales no
tienen todos ellos una configuración de ventanas idéntica, obtener
una o más máscaras de canal y obtener uno o más tamaños de
placas.
15. Un medio legible por ordenador que almacena
instrucciones ejecutables por ordenador para hacer que un ordenador
programado de esta manera realice el procedimiento de la
reivindicación 9.
16. El procedimiento de la Reivindicación 1, que
comprende además:
- agrupar selectivamente los diferentes canales en grupos de canales plurales para transformaciones multicanal, en el que la agrupación selectiva está basada al menos en parte en las relaciones de miembros de canal de la una o más placas; y
- realizar un una trasformación multicanal en los datos de audio para cada uno del uno o más grupos de canales plurales.
17. El procedimiento de la Reivindicación 16,
que comprende además:
- producir como salida información de grupos de canales de los grupos de canales plurales.
18. El procedimiento de la Reivindicación 9, que
comprende además:
- recuperar información para los grupos de canales plurales de los canales plurales para las transformaciones multicanal inversas, en el que los canales plurales son agrupados diferentemente en diferentes momentos en la secuencia de audio;
- en el que la descodificación comprende ejecutar una trasformación multicanal inversa de los datos de audio para cada uno del uno o más grupos de canal plurales.
19. El procedimiento de cualquiera de las
Reivindicaciones 1 - 18, en el que una primera placa de la una o más
placas agrupa una ventana única de las ventanas plurales, no
incluyendo las ventanas plurales ninguna otra ventana colocada
conjuntamente con la ventana única.
20. El procedimiento de cualquiera de las
Reivindicaciones 1 - 18, en el que una primera placa de la una o más
placas agrupa dos o más ventanas de las ventanas plurales, no
incluyendo las ventanas plurales ninguna otra ventana colocada
conjuntamente con las dos o más ventanas.
21. El procedimiento de cualquiera de las
Reivindicaciones 1 a 20, en el que las ventanas plurales tienen
tamaños seleccionados entre tres o más tamaños diferentes.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40851702P | 2002-09-04 | 2002-09-04 | |
US408517P | 2002-09-04 | ||
US642550P | 2003-08-15 | ||
US10/642,550 US7502743B2 (en) | 2002-09-04 | 2003-08-15 | Multi-channel audio encoding and decoding with multi-channel transform selection |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2316678T3 true ES2316678T3 (es) | 2009-04-16 |
Family
ID=31997748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03020110T Expired - Lifetime ES2316678T3 (es) | 2002-09-04 | 2003-09-04 | Codificacion y descodificacion audio multicanal. |
Country Status (6)
Country | Link |
---|---|
US (7) | US7502743B2 (es) |
EP (2) | EP2028648B1 (es) |
JP (2) | JP4676139B2 (es) |
AT (1) | ATE418137T1 (es) |
DE (1) | DE60325314D1 (es) |
ES (1) | ES2316678T3 (es) |
Families Citing this family (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7742927B2 (en) * | 2000-04-18 | 2010-06-22 | France Telecom | Spectral enhancing method and device |
US7240001B2 (en) | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
US6934677B2 (en) | 2001-12-14 | 2005-08-23 | Microsoft Corporation | Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands |
US20030187663A1 (en) | 2002-03-28 | 2003-10-02 | Truman Michael Mead | Broadband frequency translation for high frequency regeneration |
US8228849B2 (en) * | 2002-07-15 | 2012-07-24 | Broadcom Corporation | Communication gateway supporting WLAN communications in multiple communication protocols and in multiple frequency bands |
DK1400954T3 (da) | 2002-09-04 | 2008-03-31 | Microsoft Corp | Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser |
US7502743B2 (en) | 2002-09-04 | 2009-03-10 | Microsoft Corporation | Multi-channel audio encoding and decoding with multi-channel transform selection |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7460990B2 (en) * | 2004-01-23 | 2008-12-02 | Microsoft Corporation | Efficient coding of digital media spectral data using wide-sense perceptual similarity |
US7813513B2 (en) * | 2004-04-05 | 2010-10-12 | Koninklijke Philips Electronics N.V. | Multi-channel encoder |
CN1954362B (zh) * | 2004-05-19 | 2011-02-02 | 松下电器产业株式会社 | 音频信号编码装置及音频信号解码装置 |
EP1768107B1 (en) * | 2004-07-02 | 2016-03-09 | Panasonic Intellectual Property Corporation of America | Audio signal decoding device |
US8744862B2 (en) * | 2006-08-18 | 2014-06-03 | Digital Rise Technology Co., Ltd. | Window selection based on transient detection and location to provide variable time resolution in processing frame-based data |
EP1691348A1 (en) * | 2005-02-14 | 2006-08-16 | Ecole Polytechnique Federale De Lausanne | Parametric joint-coding of audio sources |
US7788106B2 (en) * | 2005-04-13 | 2010-08-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Entropy coding with compact codebooks |
US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
US20060235683A1 (en) * | 2005-04-13 | 2006-10-19 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Lossless encoding of information with guaranteed maximum bitrate |
US7983922B2 (en) * | 2005-04-15 | 2011-07-19 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for generating multi-channel synthesizer control signal and apparatus and method for multi-channel synthesizing |
KR20080015878A (ko) * | 2005-05-25 | 2008-02-20 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 복수 채널 신호의 예측 엔코딩 |
JP4988716B2 (ja) | 2005-05-26 | 2012-08-01 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号のデコーディング方法及び装置 |
WO2006126859A2 (en) * | 2005-05-26 | 2006-11-30 | Lg Electronics Inc. | Method of encoding and decoding an audio signal |
EP1905002B1 (en) * | 2005-05-26 | 2013-05-22 | LG Electronics Inc. | Method and apparatus for decoding audio signal |
EP1887567B1 (en) * | 2005-05-31 | 2010-07-14 | Panasonic Corporation | Scalable encoding device, and scalable encoding method |
EP1892702A4 (en) * | 2005-06-17 | 2010-12-29 | Panasonic Corp | POST-FILTER, DECODER AND POST-FILTRATION METHOD |
WO2007004833A2 (en) * | 2005-06-30 | 2007-01-11 | Lg Electronics Inc. | Method and apparatus for encoding and decoding an audio signal |
US8073702B2 (en) * | 2005-06-30 | 2011-12-06 | Lg Electronics Inc. | Apparatus for encoding and decoding audio signal and method thereof |
JP5227794B2 (ja) * | 2005-06-30 | 2013-07-03 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号をエンコーディング及びデコーディングするための装置とその方法 |
US8121836B2 (en) * | 2005-07-11 | 2012-02-21 | Lg Electronics Inc. | Apparatus and method of processing an audio signal |
US8626503B2 (en) * | 2005-07-14 | 2014-01-07 | Erik Gosuinus Petrus Schuijers | Audio encoding and decoding |
ES2374309T3 (es) * | 2005-07-14 | 2012-02-15 | Koninklijke Philips Electronics N.V. | Decodificación de audio. |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
DE602006018618D1 (de) * | 2005-07-22 | 2011-01-13 | France Telecom | Verfahren zum umschalten der raten- und bandbreitenskalierbaren audiodecodierungsrate |
US7933337B2 (en) | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
JP4568363B2 (ja) * | 2005-08-30 | 2010-10-27 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号デコーディング方法及びその装置 |
WO2007027051A1 (en) * | 2005-08-30 | 2007-03-08 | Lg Electronics Inc. | Apparatus for encoding and decoding audio signal and method thereof |
US7788107B2 (en) * | 2005-08-30 | 2010-08-31 | Lg Electronics Inc. | Method for decoding an audio signal |
US8577483B2 (en) * | 2005-08-30 | 2013-11-05 | Lg Electronics, Inc. | Method for decoding an audio signal |
CN101310252B (zh) * | 2005-09-15 | 2013-09-11 | 数字层公司 | 用于传送媒体层的方法、***和装置 |
US7672379B2 (en) * | 2005-10-05 | 2010-03-02 | Lg Electronics Inc. | Audio signal processing, encoding, and decoding |
US8068569B2 (en) * | 2005-10-05 | 2011-11-29 | Lg Electronics, Inc. | Method and apparatus for signal processing and encoding and decoding |
WO2007040364A1 (en) * | 2005-10-05 | 2007-04-12 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
US7696907B2 (en) * | 2005-10-05 | 2010-04-13 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
KR100857111B1 (ko) * | 2005-10-05 | 2008-09-08 | 엘지전자 주식회사 | 신호 처리 방법 및 이의 장치, 그리고 인코딩 및 디코딩방법 및 이의 장치 |
US7751485B2 (en) * | 2005-10-05 | 2010-07-06 | Lg Electronics Inc. | Signal processing using pilot based coding |
US7646319B2 (en) * | 2005-10-05 | 2010-01-12 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
US7653533B2 (en) * | 2005-10-24 | 2010-01-26 | Lg Electronics Inc. | Removing time delays in signal paths |
KR101218776B1 (ko) | 2006-01-11 | 2013-01-18 | 삼성전자주식회사 | 다운믹스된 신호로부터 멀티채널 신호 생성방법 및 그 기록매체 |
WO2007083952A1 (en) * | 2006-01-19 | 2007-07-26 | Lg Electronics Inc. | Method and apparatus for processing a media signal |
US7831434B2 (en) * | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US8190425B2 (en) * | 2006-01-20 | 2012-05-29 | Microsoft Corporation | Complex cross-correlation parameters for multi-channel audio |
US7953604B2 (en) * | 2006-01-20 | 2011-05-31 | Microsoft Corporation | Shape and scale parameters for extended-band frequency coding |
EP1984913A4 (en) | 2006-02-07 | 2011-01-12 | Lg Electronics Inc | DEVICE AND METHOD FOR CODING / DECODING A SIGNAL |
US8260620B2 (en) * | 2006-02-14 | 2012-09-04 | France Telecom | Device for perceptual weighting in audio encoding/decoding |
US8032672B2 (en) | 2006-04-14 | 2011-10-04 | Apple Inc. | Increased speed of processing of audio samples received over a serial communications link by use of channel map and steering table |
US9100765B2 (en) * | 2006-05-05 | 2015-08-04 | Creative Technology Ltd | Audio enhancement module for portable media player |
US8571875B2 (en) | 2006-10-18 | 2013-10-29 | Samsung Electronics Co., Ltd. | Method, medium, and apparatus encoding and/or decoding multichannel audio signals |
EP2095365A4 (en) * | 2006-11-24 | 2009-11-18 | Lg Electronics Inc | METHOD FOR ENCODING AND DECODING AUDIO SIGNALS BASED ON OBJECTS AND APPARATUS THEREOF |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US8612237B2 (en) * | 2007-04-04 | 2013-12-17 | Apple Inc. | Method and apparatus for determining audio spatial quality |
WO2008142874A1 (ja) * | 2007-05-21 | 2008-11-27 | Panasonic Corporation | 音声符号化及び再生装置 |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
AU2008202703B2 (en) * | 2007-06-20 | 2012-03-08 | Mcomms Design Pty Ltd | Apparatus and method for providing multimedia content |
US8046214B2 (en) * | 2007-06-22 | 2011-10-25 | Microsoft Corporation | Low complexity decoder for complex transform coding of multi-channel sound |
US20090006081A1 (en) * | 2007-06-27 | 2009-01-01 | Samsung Electronics Co., Ltd. | Method, medium and apparatus for encoding and/or decoding signal |
US7885819B2 (en) | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
KR101464977B1 (ko) * | 2007-10-01 | 2014-11-25 | 삼성전자주식회사 | 메모리 관리 방법, 및 멀티 채널 데이터의 복호화 방법 및장치 |
US8249883B2 (en) * | 2007-10-26 | 2012-08-21 | Microsoft Corporation | Channel extension coding for multi-channel source |
JP5404412B2 (ja) * | 2007-11-01 | 2014-01-29 | パナソニック株式会社 | 符号化装置、復号装置およびこれらの方法 |
US8457958B2 (en) * | 2007-11-09 | 2013-06-04 | Microsoft Corporation | Audio transcoder using encoder-generated side information to transcode to target bit-rate |
US8600532B2 (en) * | 2007-12-09 | 2013-12-03 | Lg Electronics Inc. | Method and an apparatus for processing a signal |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8442836B2 (en) * | 2008-01-31 | 2013-05-14 | Agency For Science, Technology And Research | Method and device of bitrate distribution/truncation for scalable audio coding |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8447591B2 (en) * | 2008-05-30 | 2013-05-21 | Microsoft Corporation | Factorization of overlapping tranforms into two block transforms |
WO2010003479A1 (en) | 2008-07-11 | 2010-01-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder and audio decoder |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
CN101677399B (zh) * | 2008-09-18 | 2014-07-09 | 香港科技大学 | 基于流密码的安全编码方案的多媒体内容编码方法和*** |
EP3040986B1 (en) * | 2008-10-06 | 2018-12-12 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for delivery of aligned multi-channel audio |
CN103177725B (zh) * | 2008-10-06 | 2017-01-18 | 爱立信电话股份有限公司 | 用于输送对齐的多通道音频的方法和设备 |
CN102292769B (zh) * | 2009-02-13 | 2012-12-19 | 华为技术有限公司 | 一种立体声编码方法和装置 |
WO2010105695A1 (en) * | 2009-03-20 | 2010-09-23 | Nokia Corporation | Multi channel audio coding |
US9245529B2 (en) * | 2009-06-18 | 2016-01-26 | Texas Instruments Incorporated | Adaptive encoding of a digital signal with one or more missing values |
WO2011060816A1 (en) * | 2009-11-18 | 2011-05-26 | Nokia Corporation | Data processing |
AP3301A (en) | 2009-12-07 | 2015-06-30 | Dolby Lab Licensing Corp | Decoding of multichannel audio encoded bit streamsusing adaptive hybrid transformation |
EP2510709A4 (en) * | 2009-12-10 | 2015-04-08 | Reality Ip Pty Ltd | IMPROVED MATRIX DECODER FOR SURROUND SOUND |
JP5511848B2 (ja) * | 2009-12-28 | 2014-06-04 | パナソニック株式会社 | 音声符号化装置および音声符号化方法 |
EP2553928A4 (en) * | 2010-03-26 | 2014-06-25 | Agency Science Tech & Res | METHODS AND DEVICES FOR OBTAINING AN ENCODED DIGITAL SIGNAL |
KR101641685B1 (ko) | 2010-03-29 | 2016-07-22 | 삼성전자주식회사 | 멀티채널 오디오의 다운믹스 방법 및 장치 |
US8855205B2 (en) | 2010-05-26 | 2014-10-07 | Newratek Inc. | Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same |
CN102332266B (zh) * | 2010-07-13 | 2013-04-24 | 炬力集成电路设计有限公司 | 一种音频数据的编码方法及装置 |
KR101666465B1 (ko) * | 2010-07-22 | 2016-10-17 | 삼성전자주식회사 | 다채널 오디오 신호 부호화/복호화 장치 및 방법 |
WO2012037515A1 (en) | 2010-09-17 | 2012-03-22 | Xiph. Org. | Methods and systems for adaptive time-frequency resolution in digital data coding |
TWI462087B (zh) * | 2010-11-12 | 2014-11-21 | Dolby Lab Licensing Corp | 複數音頻信號之降混方法、編解碼方法及混合系統 |
US9167252B2 (en) * | 2010-12-01 | 2015-10-20 | Texas Instruments Incorporated | Quantization matrix compression in video coding |
US8620166B2 (en) * | 2011-01-07 | 2013-12-31 | Raytheon Bbn Technologies Corp. | Holevo capacity achieving joint detection receiver |
US8842842B2 (en) * | 2011-02-01 | 2014-09-23 | Apple Inc. | Detection of audio channel configuration |
TWI483245B (zh) * | 2011-02-14 | 2015-05-01 | Fraunhofer Ges Forschung | 利用重疊變換之資訊信號表示技術 |
MY165853A (en) | 2011-02-14 | 2018-05-18 | Fraunhofer Ges Forschung | Linear prediction based coding scheme using spectral domain noise shaping |
EP2676270B1 (en) | 2011-02-14 | 2017-02-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Coding a portion of an audio signal using a transient detection and a quality result |
TR201903388T4 (tr) | 2011-02-14 | 2019-04-22 | Fraunhofer Ges Forschung | Bir ses sinyalinin parçalarının darbe konumlarının şifrelenmesi ve çözülmesi. |
EP2676268B1 (en) | 2011-02-14 | 2014-12-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for processing a decoded audio signal in a spectral domain |
WO2012122297A1 (en) | 2011-03-07 | 2012-09-13 | Xiph. Org. | Methods and systems for avoiding partial collapse in multi-block audio coding |
US8838442B2 (en) * | 2011-03-07 | 2014-09-16 | Xiph.org Foundation | Method and system for two-step spreading for tonal artifact avoidance in audio coding |
US9009036B2 (en) | 2011-03-07 | 2015-04-14 | Xiph.org Foundation | Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding |
RU2571561C2 (ru) | 2011-04-05 | 2015-12-20 | Ниппон Телеграф Энд Телефон Корпорейшн | Способ кодирования, способ декодирования, кодер, декодер, программа и носитель записи |
TW201243643A (en) * | 2011-04-22 | 2012-11-01 | Inst Information Industry | Hierarchical encryption/decryption device and method thereof |
US8693697B2 (en) * | 2011-06-06 | 2014-04-08 | Reality Ip Pty Ltd | Matrix encoder with improved channel separation |
US9009122B2 (en) * | 2011-12-08 | 2015-04-14 | International Business Machines Corporation | Optimized resizing for RCU-protected hash tables |
US9043201B2 (en) * | 2012-01-03 | 2015-05-26 | Google Technology Holdings LLC | Method and apparatus for processing audio frames to transition between different codecs |
US8692696B2 (en) | 2012-01-03 | 2014-04-08 | International Business Machines Corporation | Generating a code alphabet of symbols to generate codewords for words used with a program |
EP2801194B1 (en) * | 2012-01-09 | 2021-10-27 | Huawei Technologies Co., Ltd. | Quantization matrix (qm) coding based on weighted prediction |
WO2013122387A1 (en) | 2012-02-15 | 2013-08-22 | Samsung Electronics Co., Ltd. | Data transmitting apparatus, data receiving apparatus, data transceiving system, data transmitting method, and data receiving method |
WO2013122385A1 (en) | 2012-02-15 | 2013-08-22 | Samsung Electronics Co., Ltd. | Data transmitting apparatus, data receiving apparatus, data transreceiving system, data transmitting method, data receiving method and data transreceiving method |
WO2013122386A1 (en) | 2012-02-15 | 2013-08-22 | Samsung Electronics Co., Ltd. | Data transmitting apparatus, data receiving apparatus, data transreceiving system, data transmitting method, data receiving method and data transreceiving method |
US9026451B1 (en) * | 2012-05-09 | 2015-05-05 | Google Inc. | Pitch post-filter |
CA2843226A1 (en) | 2012-07-02 | 2014-01-09 | Sony Corporation | Decoding device, decoding method, encoding device, encoding method, and program |
TWI517142B (zh) | 2012-07-02 | 2016-01-11 | Sony Corp | Audio decoding apparatus and method, audio coding apparatus and method, and program |
KR20150032651A (ko) | 2012-07-02 | 2015-03-27 | 소니 주식회사 | 복호 장치 및 방법, 부호화 장치 및 방법, 및 프로그램 |
AU2013284703B2 (en) | 2012-07-02 | 2019-01-17 | Sony Corporation | Decoding device and method, encoding device and method, and program |
KR20230137492A (ko) * | 2012-07-19 | 2023-10-04 | 돌비 인터네셔널 에이비 | 다채널 오디오 신호들의 렌더링을 향상시키기 위한 방법 및 디바이스 |
US9396732B2 (en) * | 2012-10-18 | 2016-07-19 | Google Inc. | Hierarchical deccorelation of multichannel audio |
RU2621003C2 (ru) | 2013-01-29 | 2017-05-30 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Адаптивное к тональности квантование низкой сложности аудиосигналов |
JP6179122B2 (ja) * | 2013-02-20 | 2017-08-16 | 富士通株式会社 | オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム |
TWI546799B (zh) | 2013-04-05 | 2016-08-21 | 杜比國際公司 | 音頻編碼器及解碼器 |
CN117012210A (zh) * | 2013-05-24 | 2023-11-07 | 杜比国际公司 | 对音频场景进行解码的方法、装置及计算机可读介质 |
US9530422B2 (en) * | 2013-06-27 | 2016-12-27 | Dolby Laboratories Licensing Corporation | Bitstream syntax for spatial voice coding |
EP3017446B1 (en) * | 2013-07-05 | 2021-08-25 | Dolby International AB | Enhanced soundfield coding using parametric component generation |
EP2830064A1 (en) | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for decoding and encoding an audio signal using adaptive spectral tile selection |
RU2665281C2 (ru) * | 2013-09-12 | 2018-08-28 | Долби Интернэшнл Аб | Временное согласование данных обработки на основе квадратурного зеркального фильтра |
TWI713018B (zh) | 2013-09-12 | 2020-12-11 | 瑞典商杜比國際公司 | 多聲道音訊系統中之解碼方法、解碼裝置、包含用於執行解碼方法的指令之非暫態電腦可讀取的媒體之電腦程式產品、包含解碼裝置的音訊系統 |
KR102315920B1 (ko) * | 2013-09-16 | 2021-10-21 | 삼성전자주식회사 | 신호 부호화방법 및 장치와 신호 복호화방법 및 장치 |
JP6243540B2 (ja) | 2013-09-16 | 2017-12-06 | サムスン エレクトロニクス カンパニー リミテッド | スペクトル符号化方法及びスペクトル復号化方法 |
KR101805630B1 (ko) | 2013-09-27 | 2017-12-07 | 삼성전자주식회사 | 멀티 디코딩 처리 방법 및 이를 수행하기 위한 멀티 디코더 |
SG11201602628TA (en) | 2013-10-21 | 2016-05-30 | Dolby Int Ab | Decorrelator structure for parametric reconstruction of audio signals |
WO2015173422A1 (de) * | 2014-05-15 | 2015-11-19 | Stormingswiss Sàrl | Verfahren und vorrichtung zur residualfreien erzeugung eines upmix aus einem downmix |
US9959876B2 (en) | 2014-05-16 | 2018-05-01 | Qualcomm Incorporated | Closed loop quantization of higher order ambisonic coefficients |
EP4372746A2 (en) * | 2014-10-10 | 2024-05-22 | Dolby Laboratories Licensing Corporation | Transmission-agnostic presentation-based program loudness |
EP3067885A1 (en) * | 2015-03-09 | 2016-09-14 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for encoding or decoding a multi-channel signal |
CN113035212A (zh) * | 2015-05-20 | 2021-06-25 | 瑞典爱立信有限公司 | 多声道音频信号的编码 |
US10672408B2 (en) | 2015-08-25 | 2020-06-02 | Dolby Laboratories Licensing Corporation | Audio decoder and decoding method |
CA2987808C (en) | 2016-01-22 | 2020-03-10 | Guillaume Fuchs | Apparatus and method for encoding or decoding an audio multi-channel signal using spectral-domain resampling |
US10349085B2 (en) | 2016-02-15 | 2019-07-09 | Qualcomm Incorporated | Efficient parameter storage for compact multi-pass transforms |
US10448053B2 (en) * | 2016-02-15 | 2019-10-15 | Qualcomm Incorporated | Multi-pass non-separable transforms for video coding |
US10390048B2 (en) | 2016-02-15 | 2019-08-20 | Qualcomm Incorporated | Efficient transform coding using optimized compact multi-pass transforms |
CN106209773A (zh) * | 2016-06-24 | 2016-12-07 | 深圳羚羊极速科技有限公司 | 一种音频分组采样传输再重组的方法 |
WO2018044125A1 (ko) * | 2016-09-01 | 2018-03-08 | 엘지전자(주) | 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치 |
CN107895580B (zh) * | 2016-09-30 | 2021-06-01 | 华为技术有限公司 | 一种音频信号的重建方法和装置 |
KR102392804B1 (ko) * | 2017-07-28 | 2022-04-29 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 인코딩된 다채널 신호를 광대역 필터에 의해 생성된 충전 신호를 사용하여 인코딩 또는 디코딩하는 장치 |
US10891960B2 (en) * | 2017-09-11 | 2021-01-12 | Qualcomm Incorproated | Temporal offset estimation |
EP3483879A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Analysis/synthesis windowing function for modulated lapped transformation |
WO2019091576A1 (en) | 2017-11-10 | 2019-05-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits |
EP3483882A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Controlling bandwidth in encoders and/or decoders |
EP3483886A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Selecting pitch lag |
EP3483884A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Signal filtering |
EP3483878A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio decoder supporting a set of different loss concealment tools |
WO2019091573A1 (en) * | 2017-11-10 | 2019-05-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters |
EP3483880A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Temporal noise shaping |
EP3483883A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio coding and decoding with selective postfiltering |
CN110559012B (zh) * | 2019-10-21 | 2022-09-09 | 江苏鹿得医疗电子股份有限公司 | 电子听诊器及其控制方法及医疗设备的控制方法 |
WO2022124620A1 (en) * | 2020-12-08 | 2022-06-16 | Samsung Electronics Co., Ltd. | Method and system to render n-channel audio on m number of output speakers based on preserving audio-intensities of n-channel audio in real-time |
KR20220125026A (ko) * | 2021-03-04 | 2022-09-14 | 삼성전자주식회사 | 오디오 처리 방법 및 이를 포함하는 전자 장치 |
CN115691514A (zh) * | 2021-07-29 | 2023-02-03 | 华为技术有限公司 | 一种多声道信号的编解码方法和装置 |
Family Cites Families (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US614996A (en) * | 1898-11-29 | sloan | ||
US1769401A (en) | 1928-04-23 | 1930-07-01 | William W Tancre | Fruit clipper |
US3255052A (en) * | 1963-12-09 | 1966-06-07 | Magnetics Inc | Flake magnetic core and method of making same |
US4251688A (en) | 1979-01-15 | 1981-02-17 | Ana Maria Furner | Audio-digital processing system for demultiplexing stereophonic/quadriphonic input audio signals into 4-to-72 output audio signals |
DE3171990D1 (en) * | 1981-04-30 | 1985-10-03 | Ibm | Speech coding methods and apparatus for carrying out the method |
JPS5921039B2 (ja) | 1981-11-04 | 1984-05-17 | 日本電信電話株式会社 | 適応予測符号化方式 |
CA1253255A (en) | 1983-05-16 | 1989-04-25 | Nec Corporation | System for simultaneously coding and decoding a plurality of signals |
GB8421498D0 (en) | 1984-08-24 | 1984-09-26 | British Telecomm | Frequency domain speech coding |
GB2205465B (en) * | 1987-05-13 | 1991-09-04 | Ricoh Kk | Image transmission system |
US4922537A (en) | 1987-06-02 | 1990-05-01 | Frederiksen & Shu Laboratories, Inc. | Method and apparatus employing audio frequency offset extraction and floating-point conversion for digitally encoding and decoding high-fidelity audio signals |
US4907276A (en) * | 1988-04-05 | 1990-03-06 | The Dsp Group (Israel) Ltd. | Fast search method for vector quantizer communication and pattern recognition systems |
NL8901032A (nl) | 1988-11-10 | 1990-06-01 | Philips Nv | Coder om extra informatie op te nemen in een digitaal audiosignaal met een tevoren bepaald formaat, een decoder om deze extra informatie uit dit digitale signaal af te leiden, een inrichting voor het opnemen van een digitaal signaal op een registratiedrager, voorzien van de coder, en een registratiedrager verkregen met deze inrichting. |
US5222189A (en) | 1989-01-27 | 1993-06-22 | Dolby Laboratories Licensing Corporation | Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio |
US5479562A (en) | 1989-01-27 | 1995-12-26 | Dolby Laboratories Licensing Corporation | Method and apparatus for encoding and decoding audio information |
AU643677B2 (en) | 1989-01-27 | 1993-11-25 | Dolby Laboratories Licensing Corporation | Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio |
US5752225A (en) | 1989-01-27 | 1998-05-12 | Dolby Laboratories Licensing Corporation | Method and apparatus for split-band encoding and split-band decoding of audio information using adaptive bit allocation to adjacent subbands |
US5142656A (en) | 1989-01-27 | 1992-08-25 | Dolby Laboratories Licensing Corporation | Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio |
DE59008047D1 (de) | 1989-03-06 | 1995-02-02 | Bosch Gmbh Robert | Verfahren zur Datenreduktion bei digitalen Tonsignalen und zur genäherten Rückgewinnung der digitalen Tonsignale. |
DE69029120T2 (de) | 1989-04-25 | 1997-04-30 | Toshiba Kawasaki Kk | Stimmenkodierer |
US5539829A (en) | 1989-06-02 | 1996-07-23 | U.S. Philips Corporation | Subband coded digital transmission system using some composite signals |
JP2844695B2 (ja) * | 1989-07-19 | 1999-01-06 | ソニー株式会社 | 信号符号化装置 |
US5115240A (en) | 1989-09-26 | 1992-05-19 | Sony Corporation | Method and apparatus for encoding voice signals divided into a plurality of frequency bands |
JP2921879B2 (ja) | 1989-09-29 | 1999-07-19 | 株式会社東芝 | 画像データ処理装置 |
US5185800A (en) | 1989-10-13 | 1993-02-09 | Centre National D'etudes Des Telecommunications | Bit allocation device for transformed digital audio broadcasting signals with adaptive quantization based on psychoauditive criterion |
JP2560873B2 (ja) | 1990-02-28 | 1996-12-04 | 日本ビクター株式会社 | 直交変換符号化復号化方法 |
JP2861238B2 (ja) | 1990-04-20 | 1999-02-24 | ソニー株式会社 | ディジタル信号符号化方法 |
US5388181A (en) | 1990-05-29 | 1995-02-07 | Anderson; David J. | Digital audio compression system |
JP3033156B2 (ja) | 1990-08-24 | 2000-04-17 | ソニー株式会社 | ディジタル信号符号化装置 |
US5274740A (en) | 1991-01-08 | 1993-12-28 | Dolby Laboratories Licensing Corporation | Decoder for variable number of channel presentation of multidimensional sound fields |
US5559900A (en) | 1991-03-12 | 1996-09-24 | Lucent Technologies Inc. | Compression of signals for perceptual quality by selecting frequency bands having relatively high energy |
US5487086A (en) * | 1991-09-13 | 1996-01-23 | Comsat Corporation | Transform vector quantization for adaptive predictive coding |
JP3141450B2 (ja) | 1991-09-30 | 2001-03-05 | ソニー株式会社 | オーディオ信号処理方法 |
US5369724A (en) | 1992-01-17 | 1994-11-29 | Massachusetts Institute Of Technology | Method and apparatus for encoding, decoding and compression of audio-type data using reference coefficients located within a band of coefficients |
EP0559348A3 (en) | 1992-03-02 | 1993-11-03 | AT&T Corp. | Rate control loop processor for perceptual encoder/decoder |
US5285498A (en) | 1992-03-02 | 1994-02-08 | At&T Bell Laboratories | Method and apparatus for coding audio signals based on perceptual model |
JP2693893B2 (ja) * | 1992-03-30 | 1997-12-24 | 松下電器産業株式会社 | ステレオ音声符号化方法 |
JP3343965B2 (ja) | 1992-10-31 | 2002-11-11 | ソニー株式会社 | 音声符号化方法及び復号化方法 |
JP3343962B2 (ja) | 1992-11-11 | 2002-11-11 | ソニー株式会社 | 高能率符号化方法及び装置 |
US5455888A (en) | 1992-12-04 | 1995-10-03 | Northern Telecom Limited | Speech bandwidth extension method and apparatus |
SG43996A1 (en) | 1993-06-22 | 1997-11-14 | Thomson Brandt Gmbh | Method for obtaining a multi-channel decoder matrix |
US5632003A (en) | 1993-07-16 | 1997-05-20 | Dolby Laboratories Licensing Corporation | Computationally efficient adaptive bit allocation for coding method and apparatus |
TW272341B (es) | 1993-07-16 | 1996-03-11 | Sony Co Ltd | |
US5623577A (en) * | 1993-07-16 | 1997-04-22 | Dolby Laboratories Licensing Corporation | Computationally efficient adaptive bit allocation for encoding method and apparatus with allowance for decoder spectral distortions |
US7158654B2 (en) | 1993-11-18 | 2007-01-02 | Digimarc Corporation | Image processor and image processing method |
US5684920A (en) | 1994-03-17 | 1997-11-04 | Nippon Telegraph And Telephone | Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein |
DE4409368A1 (de) | 1994-03-18 | 1995-09-21 | Fraunhofer Ges Forschung | Verfahren zum Codieren mehrerer Audiosignale |
JP3277677B2 (ja) | 1994-04-01 | 2002-04-22 | ソニー株式会社 | 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置 |
US5635930A (en) * | 1994-10-03 | 1997-06-03 | Sony Corporation | Information encoding method and apparatus, information decoding method and apparatus and recording medium |
ATE214524T1 (de) | 1994-11-04 | 2002-03-15 | Koninkl Philips Electronics Nv | Kodierung und dekodierung eines breitbandigen digitalen informationssignals |
US5774846A (en) | 1994-12-19 | 1998-06-30 | Matsushita Electric Industrial Co., Ltd. | Speech coding apparatus, linear prediction coefficient analyzing apparatus and noise reducing apparatus |
US5629780A (en) | 1994-12-19 | 1997-05-13 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Image data compression having minimum perceptual error |
US5701389A (en) * | 1995-01-31 | 1997-12-23 | Lucent Technologies, Inc. | Window switching based on interblock and intrablock frequency band energy |
JP3307138B2 (ja) * | 1995-02-27 | 2002-07-24 | ソニー株式会社 | 信号符号化方法及び装置、並びに信号復号化方法及び装置 |
US6041295A (en) | 1995-04-10 | 2000-03-21 | Corporate Computer Systems | Comparing CODEC input/output to adjust psycho-acoustic parameters |
US6940840B2 (en) | 1995-06-30 | 2005-09-06 | Interdigital Technology Corporation | Apparatus for adaptive reverse power control for spread-spectrum communications |
US5774837A (en) | 1995-09-13 | 1998-06-30 | Voxware, Inc. | Speech coding system and method using voicing probability determination |
US5790759A (en) * | 1995-09-19 | 1998-08-04 | Lucent Technologies Inc. | Perceptual noise masking measure based on synthesis filter frequency response |
US5960390A (en) * | 1995-10-05 | 1999-09-28 | Sony Corporation | Coding method for using multi channel audio signals |
DE19549621B4 (de) | 1995-10-06 | 2004-07-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung zum Codieren von Audiosignalen |
US5819215A (en) | 1995-10-13 | 1998-10-06 | Dobson; Kurt | Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data |
US6807534B1 (en) * | 1995-10-13 | 2004-10-19 | Trustees Of Dartmouth College | System and method for managing copyrighted electronic media |
JPH09152896A (ja) | 1995-11-30 | 1997-06-10 | Oki Electric Ind Co Ltd | 声道予測係数符号化・復号化回路、声道予測係数符号化回路、声道予測係数復号化回路、音声符号化装置及び音声復号化装置 |
US5956674A (en) | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
US5686964A (en) | 1995-12-04 | 1997-11-11 | Tabatabai; Ali | Bit rate control mechanism for digital image and video data compression |
US5687191A (en) * | 1995-12-06 | 1997-11-11 | Solana Technology Development Corporation | Post-compression hidden data transport |
FR2742568B1 (fr) | 1995-12-15 | 1998-02-13 | Catherine Quinquis | Procede d'analyse par prediction lineaire d'un signal audiofrequence, et procedes de codage et de decodage d'un signal audiofrequence en comportant application |
US5682152A (en) | 1996-03-19 | 1997-10-28 | Johnson-Grace Company | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
US5812971A (en) | 1996-03-22 | 1998-09-22 | Lucent Technologies Inc. | Enhanced joint stereo coding method using temporal envelope shaping |
US5822370A (en) * | 1996-04-16 | 1998-10-13 | Aura Systems, Inc. | Compression/decompression for preservation of high fidelity speech quality at low bandwidth |
DE19628292B4 (de) | 1996-07-12 | 2007-08-02 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten |
DE19628293C1 (de) | 1996-07-12 | 1997-12-11 | Fraunhofer Ges Forschung | Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion |
US6697491B1 (en) | 1996-07-19 | 2004-02-24 | Harman International Industries, Incorporated | 5-2-5 matrix encoder and decoder system |
US5969750A (en) | 1996-09-04 | 1999-10-19 | Winbcnd Electronics Corporation | Moving picture camera with universal serial bus interface |
GB2318029B (en) | 1996-10-01 | 2000-11-08 | Nokia Mobile Phones Ltd | Audio coding method and apparatus |
US5745275A (en) | 1996-10-15 | 1998-04-28 | Lucent Technologies Inc. | Multi-channel stabilization of a multi-channel transmitter through correlation feedback |
SG54379A1 (en) * | 1996-10-24 | 1998-11-16 | Sgs Thomson Microelectronics A | Audio decoder with an adaptive frequency domain downmixer |
SG54383A1 (en) * | 1996-10-31 | 1998-11-16 | Sgs Thomson Microelectronics A | Method and apparatus for decoding multi-channel audio data |
KR100488537B1 (ko) * | 1996-11-20 | 2005-09-30 | 삼성전자주식회사 | 듀얼모드오디오디코더의재현방법및필터 |
JP3339335B2 (ja) | 1996-12-12 | 2002-10-28 | ヤマハ株式会社 | 圧縮符号化復号方式 |
JP3283200B2 (ja) | 1996-12-19 | 2002-05-20 | ケイディーディーアイ株式会社 | 符号化音声データの符号化レート変換方法および装置 |
FI970266A (fi) | 1997-01-22 | 1998-07-23 | Nokia Telecommunications Oy | Menetelmä solukkoradiojärjestelmän ohjauskanavien kantaman pidentämiseksi ja solukkoradiojärjestelmä |
DE69805583T2 (de) | 1997-02-08 | 2003-01-23 | Matsushita Electric Ind Co Ltd | Quantisierungsmatrix für die codierung von stand- und bewegtbildern |
JP3143406B2 (ja) | 1997-02-19 | 2001-03-07 | 三洋電機株式会社 | 音声符号化方法 |
FI114248B (fi) | 1997-03-14 | 2004-09-15 | Nokia Corp | Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen |
KR100265112B1 (ko) | 1997-03-31 | 2000-10-02 | 윤종용 | 디브이디 디스크와 디브이디 디스크를 재생하는 장치 및 방법 |
US6064954A (en) | 1997-04-03 | 2000-05-16 | International Business Machines Corp. | Digital audio signal coding |
US6741965B1 (en) | 1997-04-10 | 2004-05-25 | Sony Corporation | Differential stereo using two coding techniques |
SE512719C2 (sv) | 1997-06-10 | 2000-05-02 | Lars Gustaf Liljeryd | En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion |
DE19730130C2 (de) | 1997-07-14 | 2002-02-28 | Fraunhofer Ges Forschung | Verfahren zum Codieren eines Audiosignals |
DE19730129C2 (de) | 1997-07-14 | 2002-03-07 | Fraunhofer Ges Forschung | Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals |
US5890125A (en) * | 1997-07-16 | 1999-03-30 | Dolby Laboratories Licensing Corporation | Method and apparatus for encoding and decoding multiple audio channels at low bit rates using adaptive selection of encoding method |
US6016111A (en) | 1997-07-31 | 2000-01-18 | Samsung Electronics Co., Ltd. | Digital data coding/decoding method and apparatus |
US6185253B1 (en) | 1997-10-31 | 2001-02-06 | Lucent Technology, Inc. | Perceptual compression and robust bit-rate control system |
US6959220B1 (en) | 1997-11-07 | 2005-10-25 | Microsoft Corporation | Digital audio signal filtering mechanism and method |
WO1999043110A1 (en) | 1998-02-21 | 1999-08-26 | Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd | A fast frequency transformation techique for transform audio coders |
US6253185B1 (en) | 1998-02-25 | 2001-06-26 | Lucent Technologies Inc. | Multiple description transform coding of audio using optimal transforms of arbitrary dimension |
US6249614B1 (en) | 1998-03-06 | 2001-06-19 | Alaris, Inc. | Video compression and decompression using dynamic quantization and/or encoding |
US6353807B1 (en) * | 1998-05-15 | 2002-03-05 | Sony Corporation | Information coding method and apparatus, code transform method and apparatus, code transform control method and apparatus, information recording method and apparatus, and program providing medium |
JP3437445B2 (ja) | 1998-05-22 | 2003-08-18 | 松下電器産業株式会社 | 線形信号予測を用いた受信装置及び方法 |
US6115689A (en) | 1998-05-27 | 2000-09-05 | Microsoft Corporation | Scalable audio coder and decoder |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
JP3998330B2 (ja) | 1998-06-08 | 2007-10-24 | 沖電気工業株式会社 | 符号化装置 |
JP3541680B2 (ja) | 1998-06-15 | 2004-07-14 | 日本電気株式会社 | 音声音楽信号の符号化装置および復号装置 |
JP2002520760A (ja) * | 1998-07-03 | 2002-07-09 | ドルビー・ラボラトリーズ・ライセンシング・コーポレーション | 固定及び可変転送速度データストリームのためのトランスコーダー |
DE19840835C2 (de) | 1998-09-07 | 2003-01-09 | Fraunhofer Ges Forschung | Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern |
SE519552C2 (sv) | 1998-09-30 | 2003-03-11 | Ericsson Telefon Ab L M | Flerkanalig signalkodning och -avkodning |
CA2252170A1 (en) | 1998-10-27 | 2000-04-27 | Bruno Bessette | A method and device for high quality coding of wideband speech and audio signals |
JP2000155344A (ja) * | 1998-11-20 | 2000-06-06 | Murakami Corp | エレクトロクロミック素子 |
SE9903553D0 (sv) | 1999-01-27 | 1999-10-01 | Lars Liljeryd | Enhancing percepptual performance of SBR and related coding methods by adaptive noise addition (ANA) and noise substitution limiting (NSL) |
US6611212B1 (en) | 1999-04-07 | 2003-08-26 | Dolby Laboratories Licensing Corp. | Matrix improvements to lossless encoding and decoding |
US6370502B1 (en) | 1999-05-27 | 2002-04-09 | America Online, Inc. | Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec |
US6226616B1 (en) * | 1999-06-21 | 2001-05-01 | Digital Theater Systems, Inc. | Sound quality of established low bit-rate audio coding systems without loss of decoder compatibility |
US6658162B1 (en) | 1999-06-26 | 2003-12-02 | Sharp Laboratories Of America | Image coding method using visual optimization |
JP4005359B2 (ja) | 1999-09-14 | 2007-11-07 | 富士通株式会社 | 音声符号化及び音声復号化装置 |
US6496798B1 (en) | 1999-09-30 | 2002-12-17 | Motorola, Inc. | Method and apparatus for encoding and decoding frames of voice model parameters into a low bit rate digital voice message |
US6418405B1 (en) | 1999-09-30 | 2002-07-09 | Motorola, Inc. | Method and apparatus for dynamic segmentation of a low bit rate digital voice message |
US6836761B1 (en) | 1999-10-21 | 2004-12-28 | Yamaha Corporation | Voice converter for assimilation by frame synthesis with temporal alignment |
WO2001033726A1 (en) | 1999-10-30 | 2001-05-10 | Stmicroelectronics Asia Pacific Pte Ltd. | Channel coupling for an ac-3 encoder |
US6738074B2 (en) | 1999-12-29 | 2004-05-18 | Texas Instruments Incorporated | Image compression system and method |
US6499010B1 (en) | 2000-01-04 | 2002-12-24 | Agere Systems Inc. | Perceptual audio coder bit allocation scheme providing improved perceptual quality consistency |
US6704711B2 (en) | 2000-01-28 | 2004-03-09 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for modifying speech signals |
AU2000250291A1 (en) | 2000-02-10 | 2001-08-20 | Telogy Networks, Inc. | A generalized precoder for the upstream voiceband modem channel |
JP2001285073A (ja) * | 2000-03-29 | 2001-10-12 | Sony Corp | 信号処理装置及び方法 |
US6757654B1 (en) | 2000-05-11 | 2004-06-29 | Telefonaktiebolaget Lm Ericsson | Forward error correction in speech coding |
EP1175030B1 (en) | 2000-07-07 | 2008-02-20 | Nokia Siemens Networks Oy | Method and system for multichannel perceptual audio coding using the cascaded discrete cosine transform or modified discrete cosine transform |
DE10041512B4 (de) | 2000-08-24 | 2005-05-04 | Infineon Technologies Ag | Verfahren und Vorrichtung zur künstlichen Erweiterung der Bandbreite von Sprachsignalen |
US6760698B2 (en) * | 2000-09-15 | 2004-07-06 | Mindspeed Technologies Inc. | System for coding speech information using an adaptive codebook with enhanced variable resolution scheme |
SE0004187D0 (sv) | 2000-11-15 | 2000-11-15 | Coding Technologies Sweden Ab | Enhancing the performance of coding systems that use high frequency reconstruction methods |
JP4857468B2 (ja) | 2001-01-25 | 2012-01-18 | ソニー株式会社 | データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体 |
US7062445B2 (en) | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US20040062401A1 (en) * | 2002-02-07 | 2004-04-01 | Davis Mark Franklin | Audio channel translation |
US7254239B2 (en) * | 2001-02-09 | 2007-08-07 | Thx Ltd. | Sound system and method of sound reproduction |
MXPA03009357A (es) * | 2001-04-13 | 2004-02-18 | Dolby Lab Licensing Corp | Escalamiento en el tiempo y escalamiento en el tono de alta calidad de senales de audio. |
SE522553C2 (sv) | 2001-04-23 | 2004-02-17 | Ericsson Telefon Ab L M | Bandbreddsutsträckning av akustiska signaler |
US7136418B2 (en) | 2001-05-03 | 2006-11-14 | University Of Washington | Scalable and perceptually ranked signal coding and decoding |
US7583805B2 (en) | 2004-02-12 | 2009-09-01 | Agere Systems Inc. | Late reverberation-based synthesis of auditory scenes |
CA2447911C (en) * | 2001-05-25 | 2011-07-05 | Dolby Laboratories Licensing Corporation | Comparing audio using characterizations based on auditory events |
MXPA03010751A (es) * | 2001-05-25 | 2005-03-07 | Dolby Lab Licensing Corp | Segmentacion de senales de audio en eventos auditivos. |
US7240001B2 (en) | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
US7146313B2 (en) | 2001-12-14 | 2006-12-05 | Microsoft Corporation | Techniques for measurement of perceptual audio quality |
US6934677B2 (en) | 2001-12-14 | 2005-08-23 | Microsoft Corporation | Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands |
US7460993B2 (en) | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
US7027982B2 (en) | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US20030215013A1 (en) * | 2002-04-10 | 2003-11-20 | Budnikov Dmitry N. | Audio encoder with adaptive short window grouping |
US7072726B2 (en) | 2002-06-19 | 2006-07-04 | Microsoft Corporation | Converting M channels of digital audio data into N channels of digital audio data |
EP1527442B1 (en) | 2002-08-01 | 2006-04-05 | Matsushita Electric Industrial Co., Ltd. | Audio decoding apparatus and audio decoding method based on spectral band replication |
US7502743B2 (en) * | 2002-09-04 | 2009-03-10 | Microsoft Corporation | Multi-channel audio encoding and decoding with multi-channel transform selection |
US7299190B2 (en) | 2002-09-04 | 2007-11-20 | Microsoft Corporation | Quantization and inverse quantization for audio |
EP1543307B1 (en) | 2002-09-19 | 2006-02-22 | Matsushita Electric Industrial Co., Ltd. | Audio decoding apparatus and method |
KR20040060718A (ko) * | 2002-12-28 | 2004-07-06 | 삼성전자주식회사 | 오디오 스트림 믹싱 방법, 그 장치 및 그 정보저장매체 |
KR101169596B1 (ko) | 2003-04-17 | 2012-07-30 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 오디오 신호 합성 |
US7263483B2 (en) | 2003-04-28 | 2007-08-28 | Dictaphone Corporation | USB dictation device |
AU2003222397A1 (en) | 2003-04-30 | 2004-11-23 | Nokia Corporation | Support of a multichannel audio extension |
US7318035B2 (en) * | 2003-05-08 | 2008-01-08 | Dolby Laboratories Licensing Corporation | Audio coding systems and methods using spectral component coupling and spectral component regeneration |
KR101106026B1 (ko) | 2003-10-30 | 2012-01-17 | 돌비 인터네셔널 에이비 | 오디오 신호 인코딩 또는 디코딩 |
US7394903B2 (en) | 2004-01-20 | 2008-07-01 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and method for constructing a multi-channel output signal or for generating a downmix signal |
EP1914722B1 (en) | 2004-03-01 | 2009-04-29 | Dolby Laboratories Licensing Corporation | Multichannel audio decoding |
EP1735774B1 (en) | 2004-04-05 | 2008-05-14 | Koninklijke Philips Electronics N.V. | Multi-channel encoder |
FI119533B (fi) | 2004-04-15 | 2008-12-15 | Nokia Corp | Audiosignaalien koodaus |
EP1749296B1 (en) | 2004-05-28 | 2010-07-14 | Nokia Corporation | Multichannel audio extension |
KR100773539B1 (ko) | 2004-07-14 | 2007-11-05 | 삼성전자주식회사 | 멀티채널 오디오 데이터 부호화/복호화 방법 및 장치 |
US7233174B2 (en) * | 2004-07-19 | 2007-06-19 | Texas Instruments Incorporated | Dual polarity, high input voltage swing comparator using MOS input transistors |
DE602004020765D1 (de) | 2004-09-17 | 2009-06-04 | Harman Becker Automotive Sys | Bandbreitenerweiterung von bandbegrenzten Tonsignalen |
US20060259303A1 (en) | 2005-05-12 | 2006-11-16 | Raimo Bakis | Systems and methods for pitch smoothing for text-to-speech synthesis |
EP1949693B1 (en) | 2005-10-12 | 2012-04-18 | Samsung Electronics Co., Ltd. | Method and apparatus for processing/transmitting bit-stream, and method and apparatus for receiving/processing bit-stream |
US20070168197A1 (en) | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
US7831434B2 (en) | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US8190425B2 (en) | 2006-01-20 | 2012-05-29 | Microsoft Corporation | Complex cross-correlation parameters for multi-channel audio |
-
2003
- 2003-08-15 US US10/642,550 patent/US7502743B2/en active Active
- 2003-09-01 JP JP2003309276A patent/JP4676139B2/ja not_active Expired - Lifetime
- 2003-09-04 AT AT03020110T patent/ATE418137T1/de not_active IP Right Cessation
- 2003-09-04 EP EP08016648A patent/EP2028648B1/en not_active Expired - Lifetime
- 2003-09-04 ES ES03020110T patent/ES2316678T3/es not_active Expired - Lifetime
- 2003-09-04 EP EP03020110A patent/EP1403854B1/en not_active Expired - Lifetime
- 2003-09-04 DE DE60325314T patent/DE60325314D1/de not_active Expired - Lifetime
-
2008
- 2008-05-15 US US12/121,629 patent/US7860720B2/en not_active Expired - Lifetime
-
2010
- 2010-04-19 JP JP2010095929A patent/JP5097242B2/ja not_active Expired - Lifetime
- 2010-11-10 US US12/943,701 patent/US8069050B2/en not_active Expired - Lifetime
- 2010-11-11 US US12/944,604 patent/US8099292B2/en not_active Expired - Lifetime
-
2011
- 2011-12-14 US US13/326,315 patent/US8255230B2/en not_active Expired - Lifetime
- 2011-12-15 US US13/327,138 patent/US8386269B2/en not_active Expired - Lifetime
-
2013
- 2013-01-31 US US13/756,314 patent/US8620674B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US8099292B2 (en) | 2012-01-17 |
DE60325314D1 (de) | 2009-01-29 |
US8620674B2 (en) | 2013-12-31 |
EP2028648A3 (en) | 2009-04-29 |
EP1403854B1 (en) | 2008-12-17 |
US20120087504A1 (en) | 2012-04-12 |
EP1403854A3 (en) | 2006-05-10 |
US20130144630A1 (en) | 2013-06-06 |
US20110054916A1 (en) | 2011-03-03 |
JP5097242B2 (ja) | 2012-12-12 |
US8255230B2 (en) | 2012-08-28 |
US7860720B2 (en) | 2010-12-28 |
EP2028648B1 (en) | 2012-06-06 |
US20110060597A1 (en) | 2011-03-10 |
US8386269B2 (en) | 2013-02-26 |
EP1403854A2 (en) | 2004-03-31 |
EP2028648A2 (en) | 2009-02-25 |
US8069050B2 (en) | 2011-11-29 |
US20120082316A1 (en) | 2012-04-05 |
JP4676139B2 (ja) | 2011-04-27 |
US7502743B2 (en) | 2009-03-10 |
ATE418137T1 (de) | 2009-01-15 |
US20040049379A1 (en) | 2004-03-11 |
JP2010217900A (ja) | 2010-09-30 |
JP2004264810A (ja) | 2004-09-24 |
US20080221908A1 (en) | 2008-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2316678T3 (es) | Codificacion y descodificacion audio multicanal. | |
ES2316679T3 (es) | Cuantificacion y cuantificacion inversa para señales audio. | |
US7299190B2 (en) | Quantization and inverse quantization for audio | |
ES2644730T3 (es) | Postfiltro de código de audio | |
KR101143225B1 (ko) | 오디오 인코더 및 오디오 디코더에서의 컴퓨터 구현 방법및 컴퓨터 판독 가능 매체 | |
US8817992B2 (en) | Multichannel audio coder and decoder | |
JP2009151183A (ja) | マルチチャネル音声音響信号符号化装置および方法、並びにマルチチャネル音声音響信号復号装置および方法 | |
MX2008009186A (es) | Codificacion de canal de transformacion compleja con codificacion de frecuencia de banda extendida |