MXPA06009342A - Metodos y dispositivos para enfasis a baja frecuencia durante compresion de audio basado en prediccion lineal con excitacion por codigo algebraico/excitacion codificada por transformada (acelp/tcx) - Google Patents

Metodos y dispositivos para enfasis a baja frecuencia durante compresion de audio basado en prediccion lineal con excitacion por codigo algebraico/excitacion codificada por transformada (acelp/tcx)

Info

Publication number
MXPA06009342A
MXPA06009342A MXPA/A/2006/009342A MXPA06009342A MXPA06009342A MX PA06009342 A MXPA06009342 A MX PA06009342A MX PA06009342 A MXPA06009342 A MX PA06009342A MX PA06009342 A MXPA06009342 A MX PA06009342A
Authority
MX
Mexico
Prior art keywords
signal
zero
coding mode
input response
sound signals
Prior art date
Application number
MXPA/A/2006/009342A
Other languages
English (en)
Inventor
Bessette Bruno
Original Assignee
Voiceage Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Voiceage Corporation filed Critical Voiceage Corporation
Publication of MXPA06009342A publication Critical patent/MXPA06009342A/es

Links

Abstract

Un aspecto de la presente invención se refiere a un método para enfatizar a baja frecuencia el espectro de una señal de sonido transformada en un dominio de frecuencia y que comprende coeficientes de transformada agrupados en varios bloques, en los cuales se calcula una energía máxima para un bloque y se determina uníndice de posición del bloque con energía máxima, se calcula un factor para cada bloque que tiene uníndice de posición más pequeño que elíndice de posición del bloque con máxima energía, y para cada bloque se determina una ganancia del factor y se aplica a los coeficientes de transformada del bloque.

Description

MÉTODOS Y DISPOSITIVOS PARA ÉNFASIS A BAJA FRECUENCIA DURANTE COMPRESIÓN DE AUDIO BASADO EN PREDICCIÓN LINEAL CON EXCITACIÓN POR CÓDIGO ALGEBRAICO/EXCITACIÓN CODIFICADA POR TRANSFORMADA (ACELP/TCX) Campo de la Invención La presente invención se refiere a la codificación y descodificación de señales de sonido por ejemplo en sistemas de almacenamiento y transmisión digitales. En particular, pero de forma no exclusiva, la presente invención se refiere a codificación y descodificación con predicción lineal excitada por código y transformada (CELP) , híbrida.
Antecedentes de la Invención La representación digital de información proporciona muchas ventajas. En el caso de señales de sonido, la información tal como una señal de música o voz se digitaliza usando, por ejemplo, el formato de PCM (Modulación por Código de Impulsos) . La señal se muestrea de esta manera y se cuantifica con, por ejemplo, 16 o 20 bits por muestra. Aunque simple, el formato PCM reguiere una alta velocidad de bits (número de bits por segundo o bit/s) . Esta limitación es la motivación principal para diseñar técnicas eficientes de codificación fuente capaces de reducir la velocidad de bits de fuente y cumplir con las restricciones específicas de muchas aplicaciones en términos de calidad de audio, retraso de codificación y complejidad. La función de un codificador digital de audío es convertir una señal de sonido en una corriente de bits que se transmite, por ejemplo, sobre un canal de comunicación o se almacenan en un medio de almacenamiento. Aquí se considera la codificación de fuente con pérdidas, es decir, con presión de señal. De manera más específica, el papel de un codificador digital de audio es representar las muestras, por ejemplo las muestras de PCM con un número más pegueño de bits en tanto gue mantenga una buena calidad subjetiva de audio. Un descodificador o sintetizador es sensible a la corriente de bits transmitida o almacenada para convertirla de regreso a una señal de sonido. Se hace referencia a [Jayant, 1984] y [Gersho, 1992] para una introducción de los métodos de compresión de señales, y a los capítulos generales de [Kleijn, 1995] para una cobertura profunda de las técnicas modernas de codificación y audio. En la codificación de audio de alta calidad, se pueden distinguir dos clases de algoritmos: codificación por Predicción Lineal Excitada por Código (CELP) que se diseña para codificar principalmente señales de voz, y codificación por transformada de percepción (o sub-banda) gue está bien adaptada para representar señales de música. Estas técnicas pueden lograr un buen compromiso entre la calidad subjetiva y la velocidad de bits. La codificación por CELP se ha desarrollado en el contexto de aplicaciones bidireccionales de poco retraso tal como telefonía o conferencia, donde la señal de audio se muestrea típicamente a por ejemplo 8 o 16 kHz. La codificación por transformada de percepción se ha aplicado principalmente a señales de música de alta fidelidad de banda ancha muestreadas, por ejemplo a 32, 44.1 o 48 kHz para aplicaciones de almacenamiento o grabación y lectura en continuo. La codificación por CELP [Atal, 1985] es el encuadre principal de la mayoría de las normas modernas de codificación de voz. De acuerdo a este modelo de codificación, la señal de voz se procesa en blogues sucesivos de N muestras llamadas cuadros, donde N es un número predeterminado de muestras que corresponde típicamente a por ejemplo, 10-30 ms . La reducción de la velocidad de bits se logra al remover la correlación temporal entre muestras de voz sucesivas a través de predicción lineal y usando cuantificación eficiente de vector (VQ) . Un filtro de predicción lineal (LP) se computa y transmite cada cuadro. La computación del filtro de LP requiere típicamente una indagación, por ejemplo un segmento de voz de 5-10 ms del cuadro subsiguiente. En general, el cuadro de la N muestra se divide en bloques más pequeños llamados sub-cuadros, para aplicar predicción de alturadetono. La longitud del sub-cuadro se puede ajustar, por ejemplo, en el intervalo de 4-10 ms . En cada sub-cuadro, se obtiene usualmente una señal de excitación de dos componentes, una porción de la excitación pasada y una excitación de libro de códigos fijo o innovador. El componente formado de una porción de la excitación pasada frecuentemente se refiere como el libro de códigos adaptativo o excitación de alturadetono. Los parámetros que caracterizan la señal de excitación se codifican y transmiten al descodificador, donde la señal de excitación se reconstruye y usa como la entrada del filtro de LP . Un caso de la codificación de CELP es el modelo de codificación de ACELP (CELP algebraico) , en donde el libro de códigos innovador consiste de impulsos signados intercalados. El modelo de CELP se ha desarrollado en contexto de codificación de voz de banda estrecha, para lo cual el ancho de banda de entrada es 300-3400 Hz . En el caso de señales de voz de banda amplia definidas en la banda del 50-7000 Hz, el modelo de CELP se usa usualmente en un planteamiento de banda dividida, donde se codifica una banda inferior por una correspondencia de forma de onda (codificación de CELP) y se codifica de manera paramétrica una banda superior. Esta división de ancho de banda tiene varias motivaciones: La mayoría de los bits de un cuadro se pueden asignar a la señal de banda inferior para aumentar al máximo la calidad. La complejidad de cómputo (de filtración, etc.) se puede reducir en comparación a la codificación de banda completa. También, la correspondencia en forma de onda no es muy eficiente para componentes de alta frecuencia. Este planteamiento de banda dividida se usa por ejemplo en la norma de codificación de voz de banda amplia ETSI AMR-WB. Esta norma de codificación se especifica en [3GPP TS 26.190] y se describe en [Bessette 2002] . La implementación de la norma AMR-WB se dan en [3GPP TS 26.173]. El algoritmo de codificación de voz AMR-WB consiste esencialmente de la división de la señal de banda amplia de entrada a una banda inferior (0-6400 Hz) y una banda superior (6400-7000 Hz) , y aplicando el algoritmo de ACELP a sólo la banda inferior y codificando la banda superior a través de la extensión por intercalación (BWE) . Las técnicas de codificación de audio del estado de la técnica, por ejemplo MPEG-AAC o ITU-T G.722.1, están constituidas en codificación de transformada de percepción (o sub-banda) . En la codificación por transformada, la señal de audio en el dominio de tiempo se procesa al traslapar ventanas de longitud apropiada. La reducción de la velocidad de bits se logra por la descorrelación y propiedad de compactación de energía de una transformada específica, así como codificación de sólo los coeficientes de transformada perceptivamente pertinentes. La señal basada en ventanas usualmente se descompone (analiza) por una transformada discreta de Fourier (DFT) , una transformada discreta de coseno (DCT) o una transformada discreta modificada de coseno (MDCT) . Una longitud de cuadro de por ejemplo 40-60 ms normalmente se necesita para lograr buena calidad de audio. Sin embargo, para representar los transitorios y para evitar la dispersión de tiempo del ruido de codificación antes de los ataques (pre-eco) , también se usan cuadros más cortos de por ejemplo 5-10 ms para describir segmentos de audio no estacionarios. Se logra la formación del ruido de cuantificación al normalizar los coeficientes de transformada con factores de escala antes de la cuantificación. Los coeficientes normalizados se codifican típicamente por cuantificación escalar seguido por codificación de Huffman. En paralelo, se computa una curva de enmascaramiento de percepción para controlar el proceso de cuantificación y para optimizar la calidad subjetiva; esta curva se usa para codificar los coeficientes de transformada más perceptivamente pertinentes. Para mejorar la eficiencia de codificación (en particular a bajas velocidades de bits, también se puede usar la división de banda con codificación por transformada. Este planteamiento se usa por ejemplo en la nueva norma MPEG-AAC de alta eficiencia también conocida como aacPlus. En aacPlus, la señal se divide en dos sub-bandas, la señal de la banda inferior se codifica por codificación por transformada de percepción (AAC) , en tanto que la señal de la banda superior se describe por la llamada replicación de banda espectral (SBR) que es una clase de extensión de ancho de banda (BWE) . En ciertas aplicaciones, tal como en conferencias de audio/video, almacenamiento de multimedios y grabación de lectura en continuo de audio en Internet, la señal de audio consiste típicamente de voz, música y contenido mezclado. Como una secuencia, en estas aplicaciones, se usa una técnica de codificación de audio que es fuerte a este tipo de señal de entrada. En otras palabras, el algoritmo de codificación de audio debe lograr una calidad buena y consistente para una clase amplia de señales de audio, incluyendo voz y música. Sin embargo, la técnica de CELP se conoce gue está optimizada intrínsecamente para voz pero puede presentar problemas cuando se usa para codificar señales de música. La codificación por transformada de percepción del estado de la técnica, por otra parte, tiene buen desempeño para señales de música, pero es inapropiada para codificar señales de voz, especialmente a bajas velocidades de bits. Entonces se han considerado varios planteamientos para codificar señales generales de audio, incluyendo tanto voz como música, con una calidad buena y bastante constante. La codificación predictiva por transformada como se describe en [Moreau, 1992] [Lefebvre, 1994] [Chen, 1996] y [Chen, 1997] , proporciona una buena base para la inclusión de técnicas de codificación tanto de voz como de música en un encuadre individual . Este planteamiento combina predicción lineal y codificación por transformada. La técnica de [Lefebvre, 1994] , llamada codificación por TCX (Excitación Codificada por Transformada) , gue es eguivalente a agüellas de [Moreau, 1992] , [Chen, 1996] y [Chen, 1997] se considerará en la siguiente descripción. Originalmente, se han diseñado [Lefebvre, 1994] : dos variantes de la codificación por TCX: una para señales de voz usando cuadros cortos y predicción de alturadetono, otra para señales de música con cuadros largos y sin predicción de alturadetono. En ambos casos, el procesamiento comprendido en la codificación por TCX se puede descomponer en dos pasos : 1) El cuadro actual de señal de audio se procesa por filtración temporal para obtener una llamada señal objetivo, y entonces: 2) La señal objetivo se codifica en el dominio de transformada. La codificación por transformada de la señal objetivo usa un DFT con recorte rectangular. Aún, para reducir los artefactos de blogueo en los límites de los cuadros, se ha usado un recorte con traslape pegueño en [Jbira, 1998] , antes del DFT. En [Ramprashad, 2001] , una MDCT con cambio de recorte se usa en cambio; la MDCT tiene la ventaja de proporcionar una mejor resolución de frecuencia gue la DFT en tanto gue es un banco de filtro decimado al máximo. Sin embargo, en el caso de [Ramprashad, 2001] , el codificador no opera en circuito cerrado, en particular para análisis de alturadetono. A este respecto, el codificador de [Ramprashad, 2001] no puede calificar como una variante de TCX. La representación de la señal objetivo no sólo juega un papel en la codificación por TCX sino también controla parte de la calidad de audio de TCX, debido a gue consume la mayoría de los bits disponibles en cada cuadro de codificación. Se hace referencia aguí a la codificación por transformada y en el dominio de DFT. Se han propuesto varios métodos para codificar la señal objetivo en este dominio, ver por ejemplo [Lefebvre, 1994] , [Xie, 1996] , [Jbira, 1998] , [Schnitzler, 1999] y [Bessette, 1999] . Todos estos métodos implementan una forma de cuantificación de forma de ganancia, significando gue el espectro de la señal objetivo se normaliza primero por un factor o ganancia global g antes de la codificación real. En [Lefebvre, 1994] , [Xie, 1996] y [Jbira, 1998] , este factor g se ajusta al valor de RMS (Raíz Media Cuadrática) del espectro. Sin embargo, en general se puede optimizar en cada cuadro al probar diferentes valores para el factor g, como se describe por ejemplo en [Schnitzler, 1999] y [Bessette, 1999] . [Bessette, 1999] no describe la optimización real del factor g. Para mejorar la calidad de la codificación por TCX, se ha usado el relleno de ruido (es decir la inyección de ruido de confort en lugar de coeficientes no cuantificados) en [Schnitzler, 1999] y [Bessette, 1999] . Como se explica en [Lefebvre, 1994] , la codificación por TCX puede codificar de forma exitosa las señales de banda amplia, por ejemplo señales muestreadas a 16 kHz; la calidad de audio es buena para voz a una velocidad de muestreo de 16 kbit/s y para música a una velocidad de muestreo de 24 kbit/s. Sin embargo, la codificación por TCX no es tan eficiente como ACELP para codificar señales de voz. Por esta razón, se ha presentado una estrategia de codificación conmutada de ACELP/TCX, de forma breve en [Bessette, 1999] . El concepto de codificación de ACELP/TCX es similar por ejemplo a la técnica de ATCELP (transformada adaptable y CELP) de [Combescure, 1999] . Obviamente, la calidad de audio se puede aumentar al máximo al conmutar entre modos diferentes, gue realmente se especializan para codificar un cierto tipo de señal. Por ejemplo, la codificación de CELP se especializa para voz y la codificación por transformada está más adaptada a música, de modo gue es natural combinar estados dos técnicas en un encuadre de multimodos en el cual cada cuadro de audio se codifica de forma adaptable con la herramienta de codificación más apropiada. En la codificación por ATCELP, la conmutación entre CELP y la codificación fue transformada no es sin costuras; reguiere modos de transición. Sin embargo, se aplica una decisión de modo de circuito abierto, es decir, la decisión de modo se hace antes de la codificación en base a la señal de audio disponible. Por el contrario, ACELP/TCX presenta la ventaja de usar dos modos predictivos lineales homogéneos (codificación por ACELP y TCX) , gue hace esta conmutación más fácil; sin embargo, la decisión del modo es un circuito cerrado, significando que todos los modos de codificación se prueban y se puede seleccionar la mejor síntesis. Aunque [Bessette, 1999] presenta brevemente una estrategia de codificación conmutada de ACELP/TCX, [Bessette, 1999] no describe la decisión del modo de ACELP/TCX y los detalles de la cuantificación de la señal objetivo de TCX en la codificación por ACELP/TCX. El método de cuantificación subyacente sólo se conoce si se basa en cuantificación de vector de cuadrícula de multi-velocidad, auto-escalable, como se introduce por [Xie, 1996] Se hace referencia a [Gibson, 1988] y [Gersho, 1992] para una introducción a la cuantificación del vector de cuadrícula. Una cuadricula N-dimensional es una arreglo regular de puntos en el espacio N-dimensional (Euclideano) . Por ejemplo, [Xie, 1996] usa una cuadrícula 8-dimensional, conocida como la cuadricula de Gosset, que se define como: REg = 2Dß ?j{2Dß + (1,-, 1)} . 0) donde 0ß ={( ",xs;e Z8 /x, +-;-+Xß • es dd} (2) y D8 + (1,-,1) = {(x1 + 1,-,x8 + 1)e Z8 l(x1,-lx8)e D 8} (3) Esta estructura matemática permite la cuantificación de un bloque de ocho (8) números reales. También se puede definir RE8 de forma más intuitiva como el conjunto de puntos ( i, ... , x8) verificando las propiedades: i . Los componentes x¿ son enteros signados (para i = 1, • • -, 8) ; ii. La suma xa + ... + x8 es un múltiplo de 4 ; y iii. Los componentes i tienen la misma paridad (para i = 1, ..., 8), es decir son ya sea todos pares o todos nones) . Un libro de códigos de cuantificación 8-dimensional entonces se pueden obtener al seleccionar un subconjunto finito de RE8. Usualmente, el error de media cuadrática es el criterio de búsqueda del libro de códigos. En la técnica de [Xie, 1996] , se definen seis (6) diferentes libros de código, llamados Qx, ... , Q5 en base a la cuadrícula de RE8. Cada libro de códigos Qn donde n = 0, 1, ..., 5, comprende 24n puntos, gue corresponden a una velocidad de 4n bits por sub-vector 8-dimensional o n/2 bits por muestra. El espectro de la señal objetivo de TCX, normalizado por un factor en escala g, entonces se cuantifica al dividirlo en sub-vectores 8-dimensionales (o sub-bandas) . Cada uno de estos sub-vectores se codifica en uno de los libros de códigos Q0, Qi, ..., Q5. Como una consecuencia, la cuantificación de la señal objetivo de TCX, después de la normalización por el factor g produce para cada sub-vector 8-dimensional un número n de libros de códigos que indican que el libro de códigos Qn se ha usado y un índice que identifica un vector de código específico del código de libros Qn. Este proceso de cuantificación se refiere como una cuantificación de vector de cuadrícula de multi-velocidad, para los libros de códigos Qn que tienen diferentes velocidades. El modo de TCX de [Bessette, 1999] sigue el mismo principio, aún no se proporcionan detalles en el cómputo del factor normalización g ni de la multiplexión de los índices de cuantificación y los números de los libros de códigos . La técnica de cuantificación de vector de cuadrícula de [Xie, 1996] basada en RE8 se ha extendido en [Ragot, 2002] para mejorar la eficiencia y reducir la complejidad. Sin embargo, nunca se ha propuesto la aplicación del concepto descrito por [Ragot, 2002] a la codificación por TCX. En el dispositivo de [Ragot, 2002] , se codifica un vector 8-dimensional a través de un cuantificador de multi- - velocidad que incorpora un conjunto libros de códigos de RE8 denotado como {Q0, Q , Q3, •••, Q3ß} • El libro de códigos Qx no se define en el conjunto a fin de mejorar la eficiencia de codificación. Todos los libros de códigos Qn se construyen como subconjuntos de la misma cuadrícula RE8 8- dimensional, Qn c RE8. La velocidad de bits del nes?mo libro de códigos definida como bits por dimensión es 4n/8, es decir, cada libro de códigos Qn contiene 2n vectores de código. La construcción del cuantificador de multi- velocidad sigue la enseñanza de [Ragot, 2002] . Para un vector de entrada 8-dimensional dado, el codificador del cuantificador de multi-velocidad encuentra el vecino más cercano en RE8, y produce un número n de libro de códigos y un índice i en el libro de código Qn correspondiente. La eficiencia de codificación se mejora al aplicar una técnica de codificación por entropía para los índices de cuantificación, es decir, números n de libro de código e índices i de las divisiones. En [Ragot, 2002], un número n del libro de código se codifica antes de la multiplexión a la corriente de bits con un código unario que comprende un número n-l de 1 y un bit de tope de cero. El número de libros de códigos representado por el código unario se denota por nE. No se emplea codificación de entropía para índices i de libros de código. El código unario y la asignación de bits de nE se ejemplifica en la siguiente tabla 1.
Tabla 1 El número de bits requeridos para indexar los libros de códigos Como se ilustra en la Tabla 1, un bit se requiere para codificar el vector de entrada cuando n = 0 y de otro modo se requieren 5n bits. Adicionalmente, una cuestión práctica en la codificación de audio es el formateo de la corriente de bits y el manejo de los cuadros malos, también conocido como ocultación de borrado de cuadros. La corriente de bits usualmente se formatea en el lado de codificación como cuadros sucesivos (o bloques) de bits. Debido a los deterioros de canal (por ejemplo, violación de CRC (Verificación de Redundancia Cíclica) , pérdida o retraso de paquetes, etc.), algunos cuadros no pueden ser recibidos correctamente en el lado de descodificación. En este caso, el descodificador recibe típicamente un indicador gue declara una borradura de cuadro y el cuadro malo "descodifica" por extrapolación en base a la historia pasada de descodificador. Un procedimiento común para manejar cuadros malos en la descodificación de CELP consiste en reutilizar el filtro de síntesis de LP pasado, y extrapolar la excitación anterior. Para mejorar la fortaleza contra pérdidas de cuadro, se puede usar repetición de parámetros, también conocida como codificación de FEC o corrección anticipada de errores . El problema de la ocultación de la borradura de cuadros para codificación de TCX o ACELP/TCX conmutada no se ha afrontado aún en la tecnología actual .
Breve Descripción de la Invención De acuerdo con la presente invención, se proporciona: (1) Un método para enfatizar a baja frecuencia el espectro de una señal de sonido transformada en un dominio de frecuencia que comprende coeficientes de transformada agrupadas en varios bloques, que comprende: calcular una energía máxima para un blogue gue tiene un índice de posición; calcular un factor para cada blogue que tiene índice de posición más pegueño gue el índice de posición del blogue con la energía máxima, el cálculo de un factor que comprende, para cada bloque: computar una energía de bloque; y computar el factor de la energía máxima calculada y la energía computada en el bloque; y para cada bloque, determinar del factor una ganancia aplicada a los coeficientes de transformada del bloque . (2) Un dispositivo para el énfasis a baja frecuencia del espectro de una señal de sonido transformada en un dominio de frecuencia que comprende coeficiente de transformada agrupados en varios blogues, gue comprende: un medio para calcular una energía máxima para un blogue gue tiene un índice de posición; un medio para regular un factor para cada blogue gue tiene un Índice de posición más pegueño gue el índice de posición del blogue con energía máxima, el medio de cálculo del factor gue comprende, para cada blogue: un medio para conmutar una energía del blogue; y un medio para computar el factor de la energía máxima calculada y la energía computada del blogue; y un medio para determinar, para cada blogue y del factor, una ganancia aplicada a los coeficientes de transformada de blogue . (3) Un dispositivo para énfasis a baja frecuencia del espectro de una señal de sonido transformada en un dominio de frecuencia que comprende coeficientes de transformada agrupadas en varios bloques, que comprende: una calculadora de una energía máxima para un bloque que tiene un índice de posición; una calculadora de un factor para cada bloque que tiene un índice de posición más pequeño que el índice de posición del bloque con energía máxima, en donde la calculadora de factor, para cada bloque: computar una energía de el bloque; y computar el factor de la energía máxima calculada y la energía computada del blogue; y una calculadora de una ganancia, para cada blogue y en respuesta al factor, la ganancia que se aplica a los coeficientes de transformada del bloque. (4) Un método para procesar una señal de sonido, codificada, recibida que comprende: extraer parámetros de codificación de la señal de sonido codificada, recibida, los parámetros de codificación extraídos que incluyen coeficientes de transformada de una transformada de frecuencia de la señal de sonido, en donde los coeficientes de transformada se enfatizan a baja frecuencia usando un método como se define anteriormente en la presente; procesar los parámetros de codificación extraídos para sintetizar la señal de sonido, procesar los parámetros de codificación extraídos que comprende desenfatizar a baja frecuencia los coeficientes de transformada, enfatizados a baja frecuencia. (5) Un descodificador para procesar una señal de sonido, codificada, recibida, que comprende: una porción de descodificador de entrada suministrada con la señal de sonido, codificada, recibida y que implementa un extractor de los parámetros de codificación de la señal de sonido, codificada, recibida, los parámetros de codificación extraídos que incluyen coeficiente de transformada de una transformada de frecuencia de la señal de sonido, en donde los coeficientes de transformada se enfatizaron a baja frecuencia usando un dispositivo como se define anteriormente en la presente; un procesador de los parámetros de codificación extraídos para sintetizar la señal de sonido, el procesador que comprende un módulo de des-énfasis a baja frecuencia suministrado con los coeficientes de transformada enfatizados a baja frecuencia. (6) Un método de codificación de HF para codificar, a través de un esquema de extensión de ancho de banda, una señal de HF obtenida de la separación de una señal de sonido de ancho de banda completo y la señal de HF y una señal de LF, que comprende: realizar un análisis de LPC en las señales de LF y HF para producir coeficientes de LPC que modelan una envoltura espectral de la señal de LF y HF; calcular, de los coeficientes de LPC, una estimación de una diferencia de correspondencia de HF; calcular la energía de la señal de HF; procesar la señal de LF para producir una versión sintetizada de la señal de HF; calcular la energía de la versión sintetizada de la señal de HF; calcular una relación entre la energía calculada de la señal de HF y la energía calculada de la versión sintetizada de la señal de HF, y expresar la relación calculada como una ganancia de compensación de HF; y calcular una diferencia entre la estimación de la ganancia de correspondencia de HF y la ganancia de compensación de HF para obtener una corrección de ganancia; en donde la señal de HF purificada comprende los parámetros de LPC y la corrección de ganancia. (7) Un dispositivo de codificación de HF para codificar, a través de un esquema de extensión de ancho de banda, una señal de HF obtenida de la separación de una señal de sonido de ancho de banda completo de la señal de HF y una señal de LF, que comprende: un medio para realizar un análisis de LPC en las señales de LF y HF para producir coeficientes de LPC gue modelan una envoltura espectral de las señales de LF y HF; un medio para calcular, de los coeficientes de LPC, una estimación de una ganancia de correspondencia de HF; un medio para calcular la energía de la señal de HF; un medio para procesar la señal de LF para producir una versión sintetizada de la señal de HF; un medio para calcular la energía de la versión sintetizada de la señal de HF; un medio para calcular una relación entre la energía calculada de la señal de HF y la energía calculada de la versión sintetizada de la señal de HF, y un medio para expresar la relación calculada como una ganancia de compensación de HF; y un medio para calcular una diferencia entre la estimación de la ganancia de correspondencia de HF y la ganancia de compensación de HF para obtener una corrección de ganancia; en donde la señal de HF codificada comprende los parámetros de LPC y la corrección de ganancia. (8) Un dispositivo de codificación de HF para codificar, a través de un esguema de extensión de ancho de banda, una señal de HF obtenida de la separación de una señal de sonido de ancho de banda completo y la señal de HF y una señal de LF, gue comprende: un medio de análisis de LPC suministrado con las señales de LF y HF y gue produce, en respuesta a la señal de HF, coeficientes de LPC que modelan una envoltura espectral de las señales de LF y HF; una calculadora de una estimación de una ganancia de HF de correspondencia en respuesta a los coeficientes de LPC; una calculadora de la energía de la señal de HF; un filtro suministrado con la señal de LF y que produce, en respuesta a la señal de LF, una versión sintetizada de la señal de HF; una calculadora de la energía de la versión sintetizada de la señal de HF; una calculadora de una relación entre la energía calculada de la señal de HF y la energía calculada en la versión sintetizada de la señal de HF; un convertidor suministrado con la relación calculada y gue expresa la relación calculada como una ganancia de compensación de HF; y una calculadora de una diferencia entre la estimación de la ganancia de correspondencia de HF y la ganancia de compensación de HF para obtener una corrección de ganancia; en donde la señal de HF codificada comprende los parámetros de LPC y la corrección de ganancia. (9) Un método para descodificar una señal de HF codificada a través de un esguema de extensión de ancho de banda , que comprende : recibir la señal de HF codificada; extraer de la señal de HF codificada, los coeficientes de LPC y una corrección de ganancia; calcular una estimación de la ganancia de HF de los coeficientes de LPC extraídos; adicionar la corrección de ganancia a la estimación calculada de la ganancia de HF para obtener una ganancia de HF; amplificar una señal de excitación de LF por la ganancia de HF para producir una señal de excitación de HF; y procesar la señal de excitación .de HF a través de un filtro de síntesis de HF para producir una versión sintetizada de la señal de HF. (10) Un descodificador para descodificar una señal de HF codificada a través de un esquema de extensión de ancho de banda, que comprende: un medio para recibir la señal de HF codificada; un medio para extraer de la señal de HF codificada, los coeficientes de LPC y una corrección de ganancia; un medio para calcular una estimación de la ganancia de HF de los coeficientes de LPC extraídos; un medio para adicionar la corrección de ganancia a la estimación calculada de la ganancia de HF para obtener una ganancia de HF; un medio para amplificar una señal de excitación de LF por la ganancia de HF para producir una señal de excitación de HF; y un medio para procesar la señal de excitación de HF a través de un filtro de síntesis de HF para producir una versión sintetizada de la señal de HF. (11) Un descodificador para descodificar una señal de HF codificada a través de un esquema de extensión de ancho de banda, que comprende : una entrada para recibir la señal de HF codificada; un descodificador suministrado con la señal de HF codificada y extraer de la señal de HF codificada los coeficientes de LPC; un descodificador suministrado con la señal de HF codificada y extraer de la señal de HF codificada una corrección de ganancia; una calculadora de una estimación de la ganancia de HF de los coeficientes de LPC extraídos; un adicionador de la corrección de ganancia y la estimación calculada de la ganancia de HF para obtener una ganancia de HF; un amplificador de una señal de excitación de LF por la ganancia de HF para producir una señal de excitación de HF; y un filtro de síntesis de HF suministrado con la señal de excitación de HF y que produce, en respuesta a la señal de excitación de HF, una versión sintetizada de la señal de HF . (12) Un método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual, una señal ponderada, que comprende: calcular una respuesta de entrada cero del filtro de ponderación; recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuya monotónicamenté acero después de un periodo de tiempo predeterminado; y en el cuadro actual, remover de la señal ponderada la respuesta de entrada cero recortada. (13) Un dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual, una señal ponderada, que comprende: un medio para calcular una respuesta de entrada cero del filtro de ponderación; un medio para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuya de forma monotónicamen e a cero después de un periodo de tiempo predeterminado; y un medio para remover, en el cuadro actual, la respuesta de entrada cero, recortada, de la señal ponderada. (14) Un dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo a un primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual , una señal ponderada que comprende : una calculadora de una respuesta de entrada cero de el filtro de ponderación; un generador de ventanas para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de la entrada cero tenga una amplitud que disminuya de forma monotónica a cero después de un periodo de tiempo predeterminado; y un adicionador para remover, en el cuadro actual, la respuesta de la entrada cero recortada de la señal ponderada . (15) Un método para producir de una señal objetivo descodificada una señal objetivo de traslape-adición en un cuadro actual codificado de acuerdo a un primer modo de codificación, que comprende: recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; saltarse una porción izquierda de la ventana; calcular una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo al segundo modo de codificación, y recortar en ventanas la respuesta de la entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuya de forma monotónica a cero después de un periodo de tiempo predeterminado ; y adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición. (16) Un dispositivo para producir a partir de una señal objetivo descodificada, una señal objetivo de traslape-adición en un cuadro actual codificado de acuerdo a un primer modo de codificación, que comprende: un medio para recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; un medio para saltar una porción izquierda de la ventana; un medio para calcular una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo a un segundo modo de codificación, y un medio para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuye de forma monotónica a cero después de un periodo de tiempo predeterminado; y un medio para adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición. (17) Un dispositivo para producir una señal objetivo descodificada una señal objetivo de traslape-adición en un cuadro actual codificado de acuerdo a un primer modo de codificación, que comprende: un primer generador de ventanas para recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; un medio para saltar una porción izquierda de la vent na; una calculadora de una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo al segundo modo de codificación, y un segundo generador de ventanas para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tiene una amplitud gue disminuye de forma monotónica a cero después de un periodo de tiempo predeterminado; y un adicionador para adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición. Los objetos, ventajas y características anteriores y otros, de la presente invención llegarán a ser más evidentes en la lectura de la siguiente descripción no restrictiva de las modalidades ilustrativas de la misma, dadas a manera de ejemplo únicamente con referencia a las figuras anexas.
Breve Descripción de las Figuras En las figuras anexas: La Figura 1 es un diagrama de bloques esquemático de alto nivel de una modalidad del codificador de acuerdo con la presente invención; La Figura 2 es un ejemplo no limitativo del diagrama de sincronización de los tipos de cuadro en un súper-cuadro; La Figura 3 es una gráfica que muestra un ejemplo no limitativo del recorte en ventanas para análisis predictivo lineal, junto con factores de interpolación como se usa para sub-cuadros de 5 ms y dependiendo del modo de cuadro de ACELP 20 ms, TCX 20 ms, TCX 40 ms o TCX 80 ms; Las Figuras 4a-4c son gráficas que ilustran un ejemplo no limitativo del recorte en ventanas de cuadros en un codificador de ACELP/TCX, dependiendo del modo y longitud del cuadro actual, y del modo del cuadro anterior; La Figura 5a es un diagrama de bloques de alto nivel que ilustra una modalidad de la estructura y método implementados por el codificador de acuerdo con la presente invención, para cuadros de TCX; La Figura 5b es una gráfica que ilustra un ejemplo no limitativo del espectro de amplitud antes y después de la pre-formación del espectro realizada por el codificador de la Figura 5a; La Figura 5c es una gráfica que ilustra un ejemplo no limitativo de la función de ponderación que determina la ganancia aplicada al espectro durante la pre-formación del espectro. La Figura 6 es un diagrama de bloques esquemático que muestra como se usa la codificación algebraica para cuantificar un conjunto de coeficientes, por ejemplo coeficientes de frecuencia en base a un cuantíficador de vector de cuadrícula, de multi-velocidad, auto-escalable, anteriormente descrito, usando una cuadrícula de RE8. La Figura 7 es un diagrama de flujo que describe un ejemplo no limitante del procedimiento de estimación de ganancia global interactivo en el dominio logarítmico para un codificador de TCX, este procedimiento de estimación global que es un paso ímplementado en la codificación de TCX usando un cuantificador de cuadrícula, para reducir la complejidad en tanto que se mantiene dentro del presupuesto de bits para un cuadro dado; La Figura 8 es una gráfica que ilustra un ejemplo no limitativo de la estimación de la ganancia global y la estimación del nivel de ruido ( aterfilling inverso o adaptación inversa al canal de frecuencia) en cuadros de TCX; La Figura 9 es un diagrama de flujo que muestra un ejemplo del manejo del sobreflujo del presupuesto de bits en la codificación de TCX, cuando se calculan los índices de puntos de cuadrícula de las divisiones; La Figura 10a es un diagrama de bloques esquemático que muestra un ejemplo no limitativo del codificador de mayor frecuencia (HF) basado en la extensión de ancho de banda; La Figura 10b son diagramas de bloque esquemáticos y gráficas esquemáticas que muestran un ejemplo no limitante del procedimiento de correspondencia de ganancia realizado por el codificador de la Figura 10a entre la envoltura de mayor y menor frecuencia computada por el codificador de la Figura 10a; La Figura 11 es un diagrama de bloques de alto nivel de una modalidad de un descodificador de acuerdo con la presente invención, que muestra combinación de una señal de frecuencia menor codificada con ACELP/TCX, y una señal de HF codificada usando la extensión de ancho de banda; La Figura 12 es un diagrama de bloques esquemático que ilustra un ejemplo no limitativo del descodificador de ACELP/TCX para una señal de LF; La Figura 13 es un diagrama de flujo que muestra un ejemplo no limitativo del circuito lógico detrás de la descodificación de ACELP/TCX, al procesar cuatro (4) paquetes que forman un cuadro de 80 ms; La Figura 14 es un diagrama de bloques esquemático gue ilustra un ejemplo no limitativo del descsdificador de ACELP usado en el descodificador de ACELP/TCX de la Figura 12; La Figura 15 es un diagrama de blogues esguemático gue muestra un ejemplo no limitativo del descodificador de TCX como se usa en el descodificador de ACELP/TCX de la Figura 12 ; La Figura 16 es un diagrama de blogues esguemáticos de un ejemplo no limitativo del descodificador de HF gue opera en base al método de extensión de ancho de banda; La Figura 17 es un diagrama de bloques esquemático de un ejemplo no limitativo del pos-procesamiento y banco de filtros de síntesis en el lado del descodificador; La Figura 18 es un diagrama de blogues esguemático de un ejemplo no limitativo del descodificador de LF, que muestra como se prueban en competición los codificadores de ACELP, usando un criterio de SNR (Relación de Señal a Ruido) segmentario para seleccionar el modo apropiado de codificación para cada cuadro en un súper-cuadro de 80 ras; La Figura 19 es un diagrama de blogues esguemático gue muestra un ejemplo no limitativo del pre-procesamiento y descomposición de sub-banda aplicado en el lado del codificador en cada súper-cuadro de 80 ms; La Figura 20 es un diagrama de flujo esguemático gue describe la operación del módulo de pre-formación de espectro del codificador de la Figura 5a; y La Figura 21 es un diagrama de flujo esguemático gue describe la operación del módulo de des-énfasis de baja frecuencia, adaptable del descodificador de la Figura 15.
Descripción Detallada de las Modalidades Ilustrativas Las modalidades ilustrativas no restrictivas de la presente invención se describirán con relación a un dispositivo de codificación/descodificación de audio usando el modelo de codificación de ACELP/TCX y modelo de cuantificación de vector de cuadricula de multi-velocidad auto-escalable. Sin embargo, se debe mantener en mente gue la presente invención se puede aplicar igualmente a otros tipos de modelos de codificación y cuantificación.
Vista general del codificador Descripción de alto nivel del codificador En la Figura 1 se ilustra un diagrama de blogues esguemático de alto nivel de una modalidad de un codificador de acuerdo con la presente invención. Con referencia a la Figura 1, la señal de entrada se muestrea a una frecuencia de 16 kHz o mayor, y se codifica en súper-cuadros tal como 1..004 de T ms, por ejemplo con T = 80 ms . Cada súper-cuadro 1.004 se pre-procesa y divide en dos sub-bandas, por ejemplo de una manera similar al pre-procesamiento en AMR-WB. Las señales de menor frecuencia (LF) tal como 1.005 se definen dentro de la banda de 0-6400 Hz en tanto gue las señales de mayor frecuencia (HF) tal como 1.006 se definen dentro de la banda de 6400 Fmax Hz, donde Fmax es la frecuencia de Nyguist. La frecuencia de Nyguist es la frecuencia mínima de muestreo gue permite teóricamente gue la señal original se reconstituya sin distorsión; para una señal cuyo espectro se extiende nominalmente desde frecuencia cero a un a la fórmula máxima, la frecuencia de Nyguist es igual a dos veces esta frecuencia máxima. Con referencia aún a la Figura 1, la señal de LF 1.005 se codifica a través de codificación de ACELP/TCX de multi-modo (ver módulo 1.002) integrada, en el ejemplo ilustrado, en el núcleo de AMR-WB. AMR-WB opera en cuadros de 20 ms dentro del súper-cuadro de 80 ms . El modo de ACELP se basa en el algoritmo de codificación de AMR-WB y por lo tanto, opera en cuadros de 20 ms. El modo de TCX puede operar ya sea en cuadros de 20, 40 u 80 ms dentro del súper-cuadro de 80 ms en este ejemplo ilustrativo, las tres (3) longitudes de cuadro de TCX de 20, 40 y 80 ms se usan con un traslape de 2.5, 5 y 10 ms, respectivamente. El traslape es necesario para reducir el efecto del encuadre en el modo de TCX (como en la codificación por transformada) . La Figura 2 presenta un ejemplo del diagrama de sincronización de los tipos de cuadro para la codificación de ACELP/TCX de la señal de LF. Como se ilustra en la Figura 2, el modo de ACELP se puede elegir de cualguiera de los primeros cuadros 2.001, segundos cuadros 2.002, terceros cuadros 2.003 y cuartos cuadros 2.004 de ACELP de 20 ms dentro de un súper-cuadro de 80 ms 2.005. De manera similar, el modo de TCX se puede usar en cualguiera de los primeros cuadros 2.006, segundos cuadros 2.007, terceros cuadros, 2.008 y cuartos cuadros 2.009 de TCX de 20 ms dentro del súper-cuadro de 80 ms 2.005. Adicionalmente, los primeros dos o los últimos dos cuadros de 20 ms se pueden agrupar conjuntamente para formar cuadros 2.011 y 2.012 de TCX de 40 ms para gue se codifiquen en el modo de TCX.
Finalmente, el súper-cuadro 2.005 completo de 80 ms se puede codificar en un cuadro individual 2.010 de TCX de 80 ms . Por lo tanto, están disponibles un total de 26 combinaciones diferentes de cuadros de ACELP y TCX para codificar un super-cuadro de 80 ms tal como 2.005. Los tipos de cuadros, ACELP o TCX y su longitud en un súper-cuadro de 80 ms se determinan en circuito cerrado, como se describirá en la siguiente descripción. Con referencia de regreso a la Figura 1, la señal de HF 1.006 se codifica usando un planteamiento de extensión de ancho de banda (ver módulo de codificación HF 1.003) . En la extensión de ancho de banda, se usa un modelo paramétrico de filtro de excitación, donde el filtro se codifica usando pocos bits y donde la excitación se reconstruye en el descodificador de la excitación de la señal de LF recibida. También, en una modalidad, los tipos de cuadro elegidos para la banda inferior (ACELP/TCX) dictan directamente la longitud de cuadro usada para la extensión de ancho de banda en el súper-cuadro de 80 ms .
Configuraciones de súper-cuadro En la Tabla 2 se listan todas las posibles configuraciones de súper-cuadro en la forma (mx, m2, m3, m) donde m^ denota el tipo de cuadro seleccionado para el k~es?mo cuadro de 20 ms dentro del súper-cuadro de 80 ms tal que mk = O para cuadro de ACELP de 20 ms, mk = 1 para cuadro de TCX de 20 ms, m = 2 para cuadro de TCX de 20 ms, mk = 3 para cuadro de TCX de 80 ms, Por ejemplo, la configuración (1, 0, 2, 2) indica que el súper-cuadro de 80 ms se codifica al codificar el primer cuadro de 20 ms como un cuadro de TCX de 20 ms (TCX20) , seguido por la codificación del segundo cuadro de 20 ms como un cuadro de ACELP de 20 ms y finalmente al codificar los últimos dos cuadros de 20 ms como un cuadro de TCX de 40 ms individual (TCX40) . De manera similar, la configuración (3, 3, 3, 3) indica que un cuadro de TCX de 80 ms (TCX80) define el súper-cuadro completo 2.005.
Tabla 2 Todas las 26 posibles configuraciones de súper-cuadro (0, 0, 0, 0) (0, 0, 0, 1) (2, 2, 0, 0) (1, 0, 0, 0) (1, 0, 0, 1) (2, 2, 1, 0) (0, 1, 0, 0) (0, 1, 0, 1) (2, 2, 0, 1) (1, i, o, 0) (1, 1, 0, 1) (2, 2, 1, 1) (0, 0, 1, 0) (0, o, 1, i) ((0, 0, 2, 2) (1, 0, 1, 0) (1, o, 1, 1) (1, 0, 2, 2) (0,1, 1, 0) (0, 1, 1, i) (0, 1, 2, 2) (2, 2, 2, 2) (1, i, i, 0) {1 , 1, i, i) (1, 1, 2, 2) (3, 3, 3, 3) Selección de modo La configuración de súper-cuadro se puede determinar ya sea por decisión de circuito abierto o circuito cerrado. El planteamiento de circuito abierto consiste de seleccionar la configuración de súper-cuadro después de algún análisis antes de la codificación de súper-cuadro de una manera para reducir la complejidad total. El planteamiento de circuito cerrado consiste de probar todas las combinaciones de súper-cuadro y elegir la mejor. Una decisión de circuito cerrado proporciona en general mayor calidad en comparación a una decisión de circuito abierto, con un cambio en la complejidad. En la siguiente Tabla 3 se resume un ejemplo no limitativo de la decisión de circuito cerrado. En este ejemplo no limitativo de decisión de circuito cerrado, todas las 26 posibles configuraciones de súper-cuadro de la Tabla 2 se pueden seleccionar con sólo 11 ensayos. La mitad izquierda de la Tabla 3 (Ensayo) muestra que se aplica el modo de codificación marcada cuadro de 20 ms en cada uno de los 11 ensayos. Frl a Fr4 se refieren al cuadro 1 a cuadro 4 en el súper-cuadro. Cada número de ensayo (1 a 11) indica un paso en el proceso de decisión de circuito cerrado. La decisión final se conoce sólo después del paso 11. Se debe señalar que cada cuadro de 20 ms está comprendido en sólo cuatro (4) de los 11 ensayos. Cuando está comprendido más de un (1) cuadro en un ensayo (ver por ejemplo ensayos 5, 10 y 11) , entonces se aplica la codificación de TCX de la longitud correspondiente (TCX40 o TCX80) . Para entender los pasos intermedios del proceso de decisión de circuito cerrado, la mitad derecha de la Tabla 3 da un ejemplo de decisión de circuito cerrado, en donde la decisión final después del ensayo 11 es TCX80. Esto corresponde a un valor de 3 para el modo en todos los cuatro (4) cuadros de 20 ms de este súper-cuadro particular. Los números en negritas en el ejemplo a la derecha de la Tabla 3 muestra en qué punto puede tomar lugar una selección de modo en los pasos intermedios del proceso de decisión de circuito cerrado.
Tabla 3 Ensayos y ejemplos de selección de modos de circuito cerrado Ensayos (11) Ejemplo de selección (en negritas = se hace comparación) Frl Fr2 Fr3 Fr4 1 2 3 4 5 6 7 9 10 11 El proceso de decisión de circuito cerrado de la Tabla 3 prosigue como sigue. Primero, en los ensayos 1 y 2, se prueban la codificación de ACELP (AMR-WB) y TCX20 en el cuadro de 20 ms Frl. Entonces, se hace una selección para el cuadro Frl entre estos dos modos. El criterio de selección puede ser la relación de señal a ruido (SNR) segmentaria entre la señal ponderada y la señal ponderada sintetizada. La SNR segmentaria se computa usando, por ejemplo, segmentos de 5 ms, y el modo de codificación seleccionado es el resultante en la mejor SNR segmentaria. En el ejemplo de la Tabla 3, se asume que se retuvo el modo de ACELP como se indica en negritas en el lado derecho de la Tabla 3. En el ensayo 3 y 4, se hace la misma comparación para el cuadro Fr2 entre ACELP y TCX20. En el ejemplo ilustrado de la Tabla 3, se asume que TCX20 fue mejor que ACELP. Nuevamente se selecciona TCX20 en base a la medición descrita anteriormente de la SNR segmentaria. Esta selección se indica en negritas en el renglón 4 en el lado derecho de la Tabla 3. En el ensayo 5, se agrupan los cuadros Frl y Fr2 para formar un cuadro de 40 ms que se codifica usando TCX40. El algoritmo ahora tiene que se elegido entre TCX40 para los primeros dos cuadros Frl y Fr2, en comparación a ACELP en el primer cuadro Frl y TCX20 en el segundo cuadro Fr2. En el ejemplo de la Tabla 3, se asume que se seleccionó la secuencia ACELP-TCX20 de acuerdo con el criterio descrito anteriormente de SNR segmentaria como se indica en negritas en el renglón 5 en el lado derecho de la Tabla 3. El mismo procedimiento como en los ensayos 1 a 5 entonces se aplica al tercer cuadro Fr3 y al cuarto cuadro Fr4 en los ensayos 6 a 10. Después del ensayo 10 en el ejemplo de la Tabla 3, se clasifican los cuatro cuadros de 20 ms como ACELP para el cuadro Frl, TXC20 para el cuadro Fr2 , y TCX40 para los cuadros Fr3 y Fr4 agrupados conjuntamente . Un último ensayo 11 se realiza cuando todos los cuatro cuadros de 20 ms, es decir, el súper-cuadro completo de 80 ms se codifica con TCX80. Nuevamente, se usa nuevamente el criterio de SNR segmentaria con los segmentos de 5 ms para comparar los ensayos 10 y 11. En el ejemplo de la Tabla 3, se asume gue la decisión final de circuito cerrado es TCX80 para el súper-cuadro completo. Los bits del modo para los cuatro (4) , cuadros de 20 ms entonces serán (3,3,3,3) como se analiza en la Tabla 2.
Vista general del modo de TCX La selección de modo de circuito cerrado descrita anteriormente implica gue las muestras en un súper-cuadro tienen gue ser codificadas usando ACELP y TCX antes de hacer la decisión del modo. La codificación de ACELP se realiza como en AMR-WB. Se realiza la codificación de TCX como se muestra en el diagrama de blogues de la Figura 5. El modo de codificación de TCX es similar para los cuadros de TCX de 20, 40 y 80 ms, con unas pocas diferencias gue comprende principalmente el recorte en ventanas y la interpolación por filtro. Los detalles de la codificación de TCX se darán en la siguiente descripción del codificador. Por ahora, se puede asumir como sigue la codificación de TCX de la Figura 5. La señal de audio de entrada se filtra a través de un filtro de ponderación porcentual (mismo filtro de ponderación porcentual como en AMR-WB) para obtener una señal ponderada. Los coeficientes del filtro de ponderación se interpolan de una manera gue depende de la longitud del cuadro de TCX. En el cuadro anterior estaba un cuadro de ACELP, la respuesta de entrada cero (ZIR) del filtro de ponderación porcentual se remueve de la señal ponderada. La señal entonces se recorta en ventanas (la forma de la ventana se describirá en la siguiente descripción) y se aplica una transformada a la señal recortada en ventana. En el dominio de la transformada, la señal se pre-forma primero, para reducir al mínimo el artefacto de ruido de codificación en las frecuencias menores, y entonces se cuantifica usando un cuantificador de cuadrícula, específico gue se describirá en la siguiente descripción. Después de la cuantificación, se aplica la función de pre-formación invertida al espectro que entonces se transforma de forma invertida para proporcionar una señal en dominio de tiempo cuantificada. Después de la re-escala de la ganancia, se aplica nuevamente un recorte en ventanas a la señal cuantificada para reducir al mínimo los efectos de blogues de la cuantificación en el dominio de la transformada. Se usa traslape y adición con el cuadro anterior si este cuadro anterior estaba en el modo de TCX. Finalmente, la señal de excitación se encuentra a través de la filtración invertida con actualización apropiada de la memoria del filtro. Esta excitación de TCX está en el mismo "dominio" como la excitación de ACELP (AMR-WB) . Los detalles de la codificación de TCX como se muestra en la Figura 5 se describirán en la presente más adelante .
Vista general de la extensión de ancho de banda (BWE) La extensión de ancho de banda es un método para codificar la señal de HF a bajo costo, en términos tanto de la velocidad de bits como de la complejidad. En este ejemplo no limitativo, se usa un modelo de filtro de excitación para codificar la señal de HF. La excitación no se transmite; más bien, el descodificador extrapola la excitación de la señal de HF de la excitación de LF descodificada, recibida. No se requieren bits para transmitir la señal de excitación de HF; todos los bits relacionados a la señal de HF se usan para transmitir una aproximación de la envoltura espectral de esa señal de HF. Un modelo de LPC lineal (filtro) se computa en la señal de HF 1.006 muestreada de forma descendente de la Figura 1. Estos coeficientes de LPC se pueden codificar con pocos bits puesto que la resolución del oído disminuye a mayores frecuencias, y la dinámica espectral de las señales de audio también tiende a ser más pequeña a mayores frecuencias. También se transmite una ganancia para cada cuadro de 20 ms . Esta ganancia se requiere para compensar la carencia de correspondencia entre la señal de excitación de HF extrapolada en la señal de excitación de LF y el filtro de LPC transmitido relacionado a la señal de HF. El filtro de LPC se cuantifica en el dominio de Frecuencias Espectrales de Immitancia (ISF) . La codificación en las bandas de menor y mayor frecuencia es sincrónica en tiempo tal que la extensión dGe ancho de banda se segmenta sobre el súper-cuadro de acuerdo a la selección de modo de la banda inferior. El módulo de extensión de ancho de banda se describirá en la siguiente descripción del codificador.
Parámetros de Codificación Los parámetros de codificación se pueden dividir en tres (3) categorías como se muestra en la Figura 1; información de configuración de súper-cuadro (o información de modo) 1.007, parámetros de LF 1.008 y parámetros de HF 1.009. La configuración de súper-cuadro se puede modificar usando diferentes planteamientos. Por ejemplo, para cumplir con los requisitos específicos del sistema, frecuentemente es deseable o se requiere enviar paquetes grandes tal como súper-cuadro de 80 ms, como una secuencia de paquetes más pequeños cada uno que corresponde a menores bits y que tiene posiblemente una duración más corta. Aquí, cada súper-cuadro de 80 s se divide en cuatro súper paquete consecutivos más pequeños. Para dividir un súper-cuadro en cuatro paquetes, el tipo de cuadro elegido para cada cuadro de 20 ms dentro de un súper-cuadro se indica por medio de dos bits que se van a incluir en el paquete correspondiente. Esto se puede lograr fácilmente al correlacionar el número entero mk S {0, 1, 2 , 3} en su correspondiente representación binaria. Se debe recordar que mk es un número entero que describe el modo de codificación seleccionado para el JA2311110 cuadro de 20 ms dentro de un súper-cuadro de 80 ms . Los parámetros de LF dependen del tipo de cuadro. En los cuadros de ACELP, los parámetros de LF son los mismos como aquellos de AMR-WB, además de un parámetro de energía media para mejorar el desempeño de AMR-WB en los ataques en señales de música. De manera más específica, cuando se codifica un cuadro de 20 ms en el modo de ACELP (modo 0) , los parámetros de LF enviados para ese cuadro particular en el paquete correspondiente son: - Los parámetros de ISF (46 bits reutilizados de AMR-WB) ; El parámetro de energía media (2 bits adicionales en comparación a AMR-WB) ; - El retraso de la alturadetono (como en AMR-WB) ; - El filtro de alturadetono (como en AMR-WB) ; Los índices de los libros de códigos fijos (reutilizados de AMR-WB) ; y - Las ganancias de libros de códigos (como en 3GPP AMR-WB) . En los cuadros de TCX, los parámetros de ISF son los mismos como en el modo de ACELP (AMR-WB) , pero se transmite sólo una vez cada cuadro de TCX. Por ejemplo, si el súper-cuadro de 80 ms se compone de dos cuadros de TCX de 40 ms, entonces sólo se transmiten dos conjuntos de parámetros de ISF para el súper-cuadro completo de 80 ms . De manera similar, cuando el súper-cuadro de 80 ms se codifica como sólo un cuadro de TCX de 80 ms, entonces sólo se transmite un conjunto de parámetros de ISF para ese súper-cuadro. Para cada cuadro de TCX, ya sea TCX20, TCX40 y TCX80, se transmiten los siguientes parámetros: un conjunto de parámetros de ISF (46 bits reutilizados de AMR-WB) ; parámetros que describen los coeficientes de espectro cuantificados en la VQ de cuadrícula de multi-velocidad (ver Figura 6) ; - factor de ruido para relleno de ruido (3 bits) ; y - ganancia global (escalar, 7 bits) . Estos parámetros y su codificación se describirán en la siguiente descripción del codificador. Se debe señalar que una gran porción del presupuesto de bits en los cuadros de TCX se dedica a los índices de VQ de cuadricula. Los parámetros de HF, que se proporcionan por la extensión de ancho de banda, se relacionan típicamente a la envoltura de espectro y energía. Se transmiten los siguientes parámetros de HF: - un conjunto de parámetros de ISF (orden 8, 9 bits) por cuadro, en donde un cuadro puede ser un cuadro de ACELP de 20 ms, un cuadro de TCX20, un cuadro de TCX40 o un cuadro de TCX80; - ganancia de HF (7 bits) , cuantificada como un vector de ganancia 4-dimensional, con una ganancia por cuadro de 20, 40 u 80 ms; y - corrección de ganancia de HF para los cuadros de TCX40 y TCX80, para modificar las ganancias de HF más ordinariamente cuantificadas en estos modos de TCX.
Asignaciones de bits de acuerdo a una modalidad El codificador-descodificador de ACELP/TCX de acuerdo con esta modalidad puede operar a cinco velocidades de bits: 13.6, 16.8, 19.2, 20.8 y 24.0 kbit/s. Estas velocidades de bits se relacionan a algunas de las velocidades de AMR-WB. Los números de bits para codificar cada súper-cuadro de 80 ms a las cinco (5) velocidades de bits mencionadas anteriormente son 1088, 1344, 1536, 1664, y 1920 bits, Respectivamente. De manera más específica, se asignan un total de 8 bits para la configuración de súper-cuadro (2 bits por cuadro de 20 ms) y 64 bits se asignan para la extensión de ancho de banda en cada súper-cuadro de 80 ms . Más o menos bits se pueden usar para la extensión de ancho de banda, dependiendo de la resolución deseada para codificar la ganancia de HF y la envoltura espectral . El presupuesto de bits restante, es decir, la mayoría del presupuesto de bits se usa para codificar una señal de LF 1.005 de la Figura 1. Un ejemplo no limitativo de una asignación típica de bits para los diferentes tipos de cuadro se da en las Tablas anexas 4, 5a, 5b y 5c. La asignación de bits para la extensión de ancho de banda se muestra en la Tabla 6. Estas tablas indican el porcentaje del presupuesto total de bits usado típicamente para codificar los diferentes parámetros. Se debe señalar que, las Tablas 5b y 5c, que corresponden respectivamente a los cuadros de TCX40 y TCX80, los números en los paréntesis muestran una división de los bits en dos (Tabla 5b) o- cuatro (Tabla 5c) paquetes de igual tamaño. Por ejemplo, la Tabla 5c indica que en el modo de TCX80, los 46 bits de ISF del súper-cuadro (un filtro de LPC para el súper-cuadro completo, se dividen en 16 bits en el primer paquete, 6 bits en el segundo paquete, 12 bits en el tercer paquete y finalmente 12 bits en el último paquete. De manera similar, los bits de VQ algebraica (la mayoría del presupuesto de bits en los modos de TCX) se dividen en dos paquetes (Tabla 5b) o cuatro paquetes (Tabla 5c) . Esta división se llevó a cabo de una manera tal que el espectro cuantificado se divide en dos (Tabla 5b) o cuatro (Tabla 5c) - pistas intercaladas, en donde cada pista contiene uno de cada dos (Tabla 5b) o uno de cada cuatro (Tabla 5c) bloques espectrales . Cada bloque espectral se compone de cuatro coeficientes sucesivos de espectro complejos. Esta intercalación asegura gue, si un pagúete está ausente, sólo provocará "agujeros" intercalados en el espectro descodificado para los cuadros de TCX40 y TCX80. Esa división de bits en bits más pegúenos para los cuadros de TCX40 y TCX80 también se ha hecho cuidadosamente, para gestionar el sobreflujo cuando se escribe en un paquete dado.
Descripción de una Modalidad Ilustrativa no Restrictiva del Codificador En esta modalidad de el codificador, la señal de audio se asume que se muestrea en el formato de PCM a 16 kHz o mayor, con una resolución de 16 bits por muestra. El papel descodificador es computar y codificar parámetros en base a la señal de audio, y transmitir los parámetros codificados en la corriente de bits para propósitos de descodificación y síntesis. Un indicador indica al codificador que es la velocidad de muestreo de entrada. En la Figura 1 se muestra un diagrama de bloques simplificado de esta modalidad del codificador. La señal de entrada se divide en bloques sucesivos de 80 ms, que se referirán como súper-cuadros tal como 1.004 (Figura 1) en la siguiente descripción. Cada súper-cuadro de 80 ms 1.004 se pre-procesa, y luego se divide en dos señales de sub-banda, es decir, una banda de LP 1.005 y una señal de HF 1.006 por un pre-procesador y banco de filtro de análisis 1.001 usando una técnica similar a la codificación de voz de AMR-WB. Por ejemplo, las señales de LF y HF 1.005 y 1.006 se definen en las bandas de frecuencia 0-6400 Hz y 6400-11025 Hz, respectivamente. Como se describió en la vista general del codificador, la señal de LF 1.005 se codifica por la codificación de ACELP/TCX de multimodo a través de un módulo de codificación de LF (ACELP/TCX) 1.002 para producir información 1.007 de modo y los parámetros de LF cuantificados 1.008, en tanto que la señal de HF se codifica a través de un módulo 1.003 de codificación de HF (extensión de ancho de banda) para producir parámetros 1.009 de HF cuantificados. Como se ilustra en la Figura 1, los parámetros de codificación computados en un súper-cuadro dado de 80 ms, incluyendo la información de modo 1.007 y los parámetros de HF y LF cuantificados 1.008 y 1.009 se multiplexan en, por ejemplo, cuatro (4) paquetes 1.011 de igual tamaño a través de un multiplexor 1.010. En la siguiente descripción, los bloques principales del diagrama de la Figura 1, incluyendo el pre-procesador y banco de filtro de análisis 1.001, el módulo de codificación de LF (ACELP/TCX) 1.002 y el módulo de codificación de HF 1.003 se describirán en más detalle.
Pre-procesador y banco de filtro de análisis 1.001 La Figura 19 es un diagrama de bloques esquemático del pre-procesador y banco de filtro de análisis 1.001 de la Figura 1. Con referencia a la Figura 19, el súper-cuadro de 80 ms de entrada 1.004 se divide en dos señales de sub-banda, de manera más específica la señal de LF 1.005 y la señal de HF 1.006 a la salida del pre-procesador y banco de filtro de análisis 1.001 de la Figura 1. Con referencia aún a la Figura 19, un módulo de muestreo descendente de HF 19.001 realiza el muestreo descendente con filtración apropiada (ver por ejemplo AMR-WB) del súper-cuadro de 80 ms de entrada para obtener la señal de HF 1.006 (cuadro de 80 ms) y un módulo de muestreo descendente de LF 19.002 realiza el muestreo descendente con filtración apropiada (ver, por ejemplo AMR-WB) del súper-cuadro de 80 ms de entrada para obtener la señal de LF (cuadro de 80 ms) , usando un método similar a la descomposición de sub-banda de AMR-WB. La señal de HF 1.006 forma la señal de entrada del módulo de codificación de HF 1.003 en la Figura 1. La señal de LF del módulo de muestreo descendente de LF 19.002 se procesa adicionalmente por los' filtros antes de que se suministre al módulo de codificación de LF 1.002 de la Figura 1. Primero, la señal de LF del módulo 19.002 se procesa a través de un filtro de paso alto 19.003 que tiene una frecuencia de corte de 50 Hz para remover el componente de DC y los componentes de muy baja frecuencia. Entonces, la señal de LF filtrada del filtro de paso alto 19.003 se procesa a través de un filtro de desénfasis 19.004 para acentuar los componentes de alta frecuencia. Esta des-énfasis es típica en los codificadores de voz de banda amplia y por consiguiente no se analizará de forma adicional en la presente especificación. La salida del filtro 19.004 de des-énfasis constituye la señal de LF 1.005 de la Figura 1 suministrada al módulo de codificación de LF 1.002.
Codificación de LF En la Figura 18 se muestra un diagrama de bloques simplificado de une no limitativo de codificador de LF. La Figura 18 muestra que dos modos de codificación, en particular pero de manera no exclusiva modos de ACELP y TCX están en competición dentro de cada súper-cuadro de 80 ms . De manera más específica, un conmutador selector 18.017 a la salida del codificador de ACELP 18.015 y el codificador de TCX 18.016 permiten que cada cuadro de 20 ms dentro de un súper-cuadro de 80 ms se codifique ya sea en el modo de ACELP o TCX, es decir, ya sea en el modo TCX20, TCX40 o TCX80. La selección del modo se llevó a cabo como se explica en la vista general anterior del codificador. Por lo tanto la codificación de LF usa dos modos de codificación: un modo de ACELP aplicado a cuadros de 20 ms y TCX. Para optimizar la calidad de audio, la longitud de los cuadros en el modo de TCX se permite que sea variable. Como se explica anteriormente en la presente, el modo de TCX opera ya sea en los cuadros de 20 ms, 40 ms u 80 ms . La estructura de sincronización actual usada en el codificador se ilustra en la Figura 2. En la Figura 18, el análisis de LPC se realiza primero en la señal de LF de entrada s (n) . El tipo, posición y longitud de ventana para el análisis de LPC se muestran en la Figura 3, donde las ventanas se colocan con relación a un segmento de 80 ms de la señal de LF, más una indagación dada. Las ventanas se colocan cada 20 ms . Después del recorte en ventanas, los coeficientes de LPC se computan cada 20 ms, luego se transforman en representación de Pares Espectrales de Immitancia (ISP) y se cuantifican para la transmisión al descodificador. Los coeficientes de ISP se interpolan cada 5 ms para suavizar la evolución de la envoltura espectral. Más específicamente, el módulo 18.002 es sensible a la señal s (n) de LF de entrada para realizar tanto el recorte en ventanas como la auto-correlación cada 20 ms . El módulo 18.002 se sigue por el módulo 18.003 que realiza el recorte en ventanas de retraso y la corrección de ruido blanco. La señal corregida con ruido blanco y recortada en ventanas de retraso se procesa a través de un algoritmo de Levinson-Durbin implementado en el módulo 18.004. Un módulo 18.005 entonces realiza la conversión de ISP de los coeficientes de LPC. Los coeficientes de ISP del módulo 18.005 se interponía cada 5 ms en el dominio de ISP por el módulo 18.006. Finalmente, el módulo 18.007 convierte los coeficientes de ISP interpolados del módulo 18.006 en los coeficientes A(z) de filtro de LPC interpolado cada 5 ms . Los parámetros de ISP del módulo 18.005 se transforman en parámetros de ISF (Frecuencias Espectrales de Immitancia) en el módulo 18.008 antes de la cuantificación en el dominio de ISF (módulo 18.009) . Los parámetros de ISF cuantificados del módulo 18.009 se suministran en un multiplexor de ACELP/TCX 18.021. También, los parámetros de ISF cuantificados del módulo 18.009 se convierten a parámetros de ISP en el módulo 18.010, los parámetros de ISP obtenidos se interpolan cada 5 ms en el dominio de ISP por el módulo 18.011, y los parámetros de ISP interpolados se convierten a los parámetros A(z) de LPC cuantificados cada 5 ms . La señal de entrada s (n) de LF de la Figura 18 se codifica tanto en el modo ACELP por medio del codificador ACELP 18.015 y en el modo TCX por medio del codificador de TCX 18.016 en todas las posibles combinaciones de longitud de cuadro como se explica en la descripción anterior. En el modo ACELP, sólo se consideran cuadros de 20 ms dentro de un súper-cuadro de 80 ms, en tanto que en el modo TCX, se pueden considerar cuadros de 20 ms, 40 ms y 80 ms . Todas las posibles combinaciones de codificación de ACELP/TCX de la Tabla 2 se generan por los codificadores 18.015 y 18.016 y entonces se prueban al comparar la señal sintetizada correspondiente a la señal original en el dominio ponderado. Como se muestra en la Tabla 2 , la selección final puede ser una mezcla de los cuadros de ACELP y TCX en un súper-cuadro de 80 ms codificado. Para este propósito, la señal de LF s (n) se procesa a través de un filtro de ponderación de percepción 18.013 para producir una señal de LF ponderada. De la misma manera, la señal sintetizada de ya sea el codificador de ACELP 18.015 o el codificador de TCX 18.016 dependiendo de la posición del selector 18.017 de conmutación se procesa a través de un filtro 18.018 de ponderación porcentual para producir una señal sintetizada, ponderada. Un sustractor 18.019 sustrae la señal sintetizada, ponderada de la señal de LF ponderada para producir una señal de error ponderada . Una unidad de cómputo 18.020 de SNR segmentaria es sensible tanto a la señal de LP ponderada del filtro 18.013 y la señal de error ponderada para producir una relación (SNR) de señal a ruido segmentaria. La SNR segmentaria se produce cada sub-cuadros de 5 ms . Es bien conocida por aquellos expertos en la técnica a la computación de SNR segmentaria y por consiguiente, no se describirá adicionalmente en la presente especificación. La combinación de los modos de ACELP y/o TCX que reduce al mínimo la SNR segmentaria sobre el súper-cuadro de 80 ms se elige como la mejor combinación de modos de codificación. Nuevamente, se hace referencia a la Tabla 2 que define las 26 posibles combinaciones de los modos ACELP y/o TCX en un súper-cuadro de 80 ms .
Modo ACELP El modo ACELP usado es muy similar al algoritmo de ACELP que opera a 12.8 kHz en la norma de codificación de voz AMR-WB. Los cambios principales en comparación al algoritmo de ACELP en AMR-WB son: - El análisis de LP usa un diferente recorte en ventanas, que se ilustra en la Figura 3. - La cuantificación de las ganancias de los libros de códigos se realiza a cada súper-cuadro de 5 ms, como se explica en la siguiente descripción. El modo ACELP opera en súper-cuadros de 5 ms, donde se realizan en cada súper-cuadro el análisis de la alturadetono y la búsqueda algebraica del libro de códigos.
Cuantificación de ganancia del libro de códigos en el modo ACELP En un súper-cuadro dado de ACELP de 5 ms, las dos ganancias del libro de códigos, incluyendo la ganancia gp de alturadetono y la ganancia gc del libro de código fijo se cuantifican conjuntamente en base a la cuantificación de ganancia de 7 bits de AMR-WB. Sin embargo, la predicción promedio en movimiento (MA) de la ganancia gc del libro de códigos fijo, que se usa en AMR-WB, se reemplaza por una referencia absoluta que se codifica de forma explícita. De esta manera, las ganancias del libro de códigos se cuantifican por una forma de cuantificación removida por medios. Esta cuantificación sin memoria (no predictiva) está bien justificada, debido a que el modo ACELP se puede aplicar a señales no de voz, por ejemplo trascientes en una señal de música, que requiere una cuantificación más general que el planteamiento predictivo de AMR-WB .
Computación y cuantificación de la referencia absoluta (en el dominio logarítmico Un parámetro, denotado µener/ se computa en circuito abierto y se cuantifica una vez por cuadro cada 2 bits. El cuadro actual de 20 ms de la residual de LPC r = (?"O, rx, ... , rL) donde L es el número de muestras en el cuadro, se divide en cuatro (4) sub-cuadros de 5 ms, r-¡_ = (r?(0), ..., ri(Lsub-l) ) , con i = 0, 1, ..., 3 y Lsub es el número de muestra en el sub-cuadro. El parámetro µener se define simplemente como el promedio de energías de los súper-cuadros (en dB) sobre el cuadro actual de la residual de LPC: , ,„ eo(dB)+e?(dB)+e2(dB)+e3(dB) µ!ner{dB)=- 4- donde es la energía del i-ésimo sub-cuadro de la residual de LPC y i i (dB) = 101ogl?{í i}. Un 1 constante se adiciona a la energía del sub-cuadro actual en la ecuación anterior para evitar la computación subsiguiente del valor logarítmico de 0. Entonces se actualiza un valor medio del parámetro µener como sigue: µener (dB) := µener (dB) - 5 * (Pi + Pa) donde p ¿(i = 1 o 2) es la correlación normalizada computada como un producto secundario del i-ésimo análisis de alturadetono de circuito abierto. Esta modificación de µener mejora la calidad de audio para segmentos de voz expresados. El µener (¿IB) medio entonces se cuantifica de forma escalar con 2 bits. Los niveles de cuantificación se ajustan con un paso de 12 dB a 18, 30, 42 y 54 dB . El índice de cuantificación se puede computar simplemente como: tmp = (µener - 18)/12 índice = piso (tmp + 0.5) si (índice < 0) índice = 0, si (índice > 3) índice = 3 Aquí, piso significa tomar la parte entera del número de punto flotante. Por ejemplo, piso (1.2) = 1, y piso (7.9) = 7. La media reconstruida (en dB) es por lo tanto: µßner(dB) = 18 + (índice*12) Sin embargo, el índice y la media reconstruida entonces se actualizan para mejorar la calidad de audio para señales transientes tal como ataques como sigue: max = max (ea(dB), e2 (dB) , e3 (dB) , e4 (dB) ) si µener(dB) < (?t?ax-27) e índice < 3, índice = índice + 1 µener(dB) = µener(dB) + 1 Cuantificación de las ganancias del libro de códigos En AMR-WB, las ganancias gp y gc de alturadetono y del libro de códigos fijo se cuantifican conjuntamente en la forma de (gp, gc * gc0) donde gc0 combina una predicción de MA para gc y una normalización con respecto a la energía del vector de código innovador. Las dos ganancias gp y gc en un sub-cuadro dado se cuantífican conjuntamente con 7 bits exactamente como en la codificación de voz de AMR-WB, en la forma de (gp, gc*gco) • La única diferencia está en el cómputo de gc0. El valor de gc0 se basa en la energía media cuantificada µener únicamente, y se computa como sigue: co = 10* ( (µener(dB) - enerc (dB) /20) donde enerc(dB) = 10*logl0 (0.01 + (c (0) *2+ ... +c (L?ub-l) *2) /Lsub) donde c(0), ..., c(LSUb-l) son muestras del vector residual de LP en un sub-cuadro de muestras LslIb de longitud. c(0) es la primera muestra, c(l) es la segunda muestra, ..., y c (LSUb) es la última muestra residual de LP en un sub-cuadro.
Modo TCX En los modos TCX (codificador de TCX 18.016), se define un traslape con el siguiente cuadro para reducir los artefactos de bloqueo debidos a la codificación por transformada de la señal objetivo de TCX. El recorte en ventanas y el traslape de señal dependen del tipo del cuadro presente (ACELP o TCX) y del tamaño, y del tipo y tamaño del cuadro anterior. Se describirá el recorte en ventanas en la siguiente sección. Una modalidad del codificador de TCX 18.016 se ilustra en la Figura 5a. El procedimiento de codificación de TCX ahora se describirá y entonces, seguirá la descripción más cerca de la cuantificación de cuadricula usada para cuantificar el espectro. La codificación de TCX de acuerdo a una modalidad prosigue como sigue. Primero, como se ilustra en la Figura 5a, la señal de entrada (cuadro de TCX) se filtra a través de un filtro de ponderación de percepción 5.001 para producir una señal ponderada. En los modos de TCX, el filtro de ponderación de percepción 5.001 usa los coeficientes Á(z) de LPC cuantificados en lugar de los coeficientes A(z) de los LPC no cuantificados usados en el modo ACELP. Esto es debido, al contrario de ACELP que usa análisis por síntesis, a que el descodificador de TCX tiene que aplicar un filtro de ponderación invertido para recuperar, la señal de excitación. Si el cuadro codificado anterior fue un cuadro de ACELP, entonces la respuesta de entrada cero (ZIR) del filtro de ponderación de percepción se remueve de la señal ponderada por medio de un adicionador 5.014. En una modalidad, la ZIR se trunca a 10 ms y se recorta en ventana de una manera tal que su amplitud disminuye de forma monotónica a cero después de 10 ms (calculadora 5.100). Se pueden usar varias ventanas de dominio de tiempo para esta operación. El cómputo actual de la ZIR no se muestra en la Figura 5a puesto que esta señal, también referida como "oscilación de filtro" en los codificadores tipo CELP, es bien conocido por aquellos expertos en la técnica. Una vez que se computa la señal ponderada, la señal se recorta en ventanas en el generador 5.003 de ventanas adaptable, de acuerdo a una selección de ventana descrita en las Figuras 4a-4c. Después del recorte en ventanas por el generador 5.003, un módulo 5.004 de transformada transforma la señal en ventanas en el dominio de frecuencia usando una transformada rápida de Fourier (FFT) .
Recorte en ventanas en los modos TCX, módulo adaptable del recorte en ventanas 5.003 La conmutación de los modos entre los cuadros de ACELP y los cuadros TCX ahora se describirá . Para reducir al mínimo los artefactos de transición en la conmutación de un modo al otro, se ha de tener cuidado apropiado para el recorte en ventanas y el traslape de cuadros sucesivos. El recorte en ventanas adaptable se realiza para el procesador 6.003. Las Figuras 4a-4c muestran las formas de las ventanas dependiendo de la longitud de cuadro de TCX y el tipo del cuadro anterior (ACELP o TCX) . En la Figura 4a, el caso donde el cuadro actual es un cuadro de TCX 20 se considera. Dependiendo del cuadro anterior, la ventana aplicada puede ser: 1) Si el cuadro anterior fue uno de ACELP de 20 ms, la ventana es una concatenación de dos segmentos de ventana: una ventana plana de 20 ms de duración seguido por la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 2.5 ms de duración. El codificador entonces necesita una indagación de 2.5 ms de la voz ponderada. 2) Si el cuadro anterior fue un cuadro de TCX20, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la porción izquierda de una ventana seno) de 2.5 ms de duración, entonces una ventana plana de 17.5 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana Hanning (o la porción derecha de una ventana seno) de 2.5 ms de duración. El codificador necesita nuevamente una indagación de 2.5 ms de la voz ponderada . 3) Si el cuadro anterior fue un cuadro de TCX40, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning o la porción izquierda de una ventana seno) de 5 ms de duración, entonces una ventana plana de 15 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana Hanning (o la porción derecha de una ventana seno) de 2.5 ms de duración. El codificador necesita nuevamente un indagación de 2.5 ms de la voz ponderada . 4) Si el cuadro anterior fue un cuadro de TCX80, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la parte izquierda de una ventana seno) de 10 ms de duración, entonces una ventana plana de 10 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning o la porción derecha de una ventana seno) de 2.5 ms de duración. El codificador necesita nuevamente una indagación de 2.5 ms de la voz ponderada . La Figura 4b, se considera el caso donde el presente cuadro es un cuadro de TCX40. Dependiendo del cuadro anterior, la ventana aplicada puede ser: 1) Si el cuadro anterior es un cuadro de ACELP de 20 ms, la ventana es una concatenación de dos segmentos de ventana: una ventana plana de 40 ms de duración seguida por la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 5 ms de duración. El codificador entonces necesita una indagación de 5 ms de la voz ponderada. 2) Si el cuadro anterior fue un cuadro de TCX20, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la porción izquierda de una ventana seno) de 2.5 ms de duración, entonces una ventana plana de 37.5 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 5 ms de duración. El codificador necesita nuevamente una indagación de 5 ms de la voz ponderada. 3) Si el cuadro anterior fue un cuadro de TCX40, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de la ventana de Hanning (o la porción izquierda de una ventana seno) de 5 ms de duración, entonces una ventana plana de 35 ms de duración, y finalmente la porción derecha de la raíz cuadrada y una ventana de Hanning (o la porción derecha de una ventana seno) de 5 ms de duración. El codificador necesita nuevamente una indagación de 5 ms de la voz ponderada . 4) Si el cuadro anterior fue un cuadro de TCX80, la ventana es una concatenación de tres segmentos de ventana: Primero, la izguierda de la raíz cuadrada de una ventana de Hanning (o la porción izguierda de una ventana seno) de 10 ms de duración, entonces una ventana plana de 30 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 5 ms de duración. El codificador necesita nuevamente una indagación de 5 ms de la voz ponderada . Finalmente, en la Figura 4c, se considera el caso donde el cuadro presente es un cuadro de TCX80. Dependiendo del cuadro anterior, la ventana aplicada puede ser: 1) Si el cuadro anterior fue un cuadro de ACELP de 20 ms, la ventana es una concatenación de dos segmentos de ventana: una ventana plana de 80 ms de duración seguida por la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 5 ms de duración. El codificador entonces necesita una indagación de 10 ms de la voz ponderada. 2) Si el cuadro anterior fue un cuadro de TCX20, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la porción izquierda de una ventana seno) de 2.5 ms de duración, entonces una ventana plana de 77.5 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 10 ms de duración. El codificador necesita nuevamente una indagación de 10 ms de la voz ponderada. 3) Si el cuadro anterior fue un cuadro de TCX40, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la porción izquierda de una ventana seno) de duración de 5 ms, entonces una ventana plana de 75 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 10 ms de duración. El codificador necesita nuevamente una indagación de 10 ms de la voz ponderada . 4) Si el cuadro anterior fue un cuadro de TCX80, la ventana es una concatenación de tres segmentos de ventana: primero, la izquierda de la raíz cuadrada de una ventana de Hanning (o la porción izquierda de una ventana seno) de 10 ms de duración, entonces una ventana plana de 70 ms de duración, y finalmente la porción derecha de la raíz cuadrada de una ventana de Hanning (o la porción derecha de una ventana seno) de 10 ms de duración. El codificador necesita nuevamente una indagación de 10 ms de la voz ponderada . Se señala que todos estos tipos de ventana se aplican a la señal ponderada, sólo cuando el cuadro actual es un cuadro de TCX. Los cuadros del tipo ACELP se codifican de forma sustancial de acuerdo con la codificación de AMR-WB, es decir, a través de la codificación de análisis por síntesis de la señal de excitación, para reducir al mínimo el error en la señal objetivo en donde la señal objetivo es esencialmente la señal ponderada a la cual se remueve la respuesta de entrada cero del filtro de ponderación. También se señala que, usando la codificación de un cuadro de TCX que se precede por otro cuadro de TCX, la señal recortada en ventana por medio de las ventanas descritas anteriormente se cuantifica directamente en un dominio de transformada, como se describirá más adelante en la presente. Entonces después de la cuantificación y de la transformación invertida, la señal ponderada sintetizada se recombina usando traslape y adición al comienzo de cuadro con indagación memorizada del cuadro precedente. Por otra parte, cuando se codifica un cuadro de TCX precedido por un cuadro de ACELP, la respuesta de entrada cero del filtro de ponderación, actualmente una versión de recortada en ventanas y truncada de la respuesta de entrada cero, se remueve primero de la señal ponderada, recortada en ventanas. Puesto que la respuesta de entrada cero es una buena aproximación de las primeras muestras del cuadro, el efecto resultante es que la señal recortada en ventana tenderá hacia cero tanto hacia el comienzo del cuadro (debido a la sustracción de la respuesta de la entrada cero) y al final del cuadro (debido a la medía ventana Hanning aplicada a la indagación como se describe anteriormente y mostrada en las Figuras 4a-4c) . Por supuesto, la respuesta de entrada cero truncada y recortada en ventana se adiciona de regreso a la señal ponderada, cuantificada después de la transformación invertida. Por lo tanto, se logra un compromiso adecuado entre una ventana óptima (por ejemplo una ventana de Hanning) antes de la transformada usada en los cuadros de TCX, y la ventana rectangular implícita que se tiene que aplicar a la señal objetivo cuando se codifica en el modo ACELP. Esto asegura una conmutación suave entre los cuadros de ACELP y TCX, en tanto que permite el recorte apropiado en ventanas en ambos modos .
Correlación de tiempo-frecuencia; Módulo de Transformada 5.004 Después del recorte en ventanas como se describe anteriormente, se aplica una transformada a la señal ponderada en el módulo de transformada 5.004. En el ejemplo de la Figura 5a, se usa una transformada rápida de Fourier (FFT) . Como se ilustra en las Figuras 4a-4c, el modo de TCX usa traslape entre cuadros sucesivos para reducir los artefactos de bloqueo. La longitud del traslape depende de la longitud de los modos de TCX; se ajusta a aproximadamente 2.5, 5 y 10 ms cuando trabaja en modo de TCX con una longitud de cuadro de 20, 4'0 y 80 ms, respectivamente (es decir, la longitud del traslape se ajusta a l/8-ésimo de la longitud del cuadro) . Esta elección de traslape simplifica la raíz en la computación rápida del DFT por el FFT. Como consecuencia, el soporte efectivo en tiempo de los modos de TCX20, TCX40 y TCX80 es de 22.5, 45 y 90 ms, respectivamente, como se muestra en la Figura 2. Con una frecuencia de muestreo de 12,800 muestras por segundo (en la señal LF producida por el pre-procesador y banco de filtro de análisis 1.001 de la Figura 1), y con duraciones de cuadro + indagación de 22.5, 45 y 90 ms, el soporte de tiempo del FFT llega a ser 288, 576 y 1152 muestras, respectivamente. Estas longitudes se pueden expresar como 9 veces 32, 9 veces 64 y 9 veces 128. Por lo tanto, entonces se puede usar una FFT de raíz 9 especializada para computar rápidamente el espectro de Fourier.
Pre-formación (énfasis a baja frecuencia)- Módulo de preformación 5.005 Una vez que se computa el espectro de Fourier (FFT) , se aplica un énfasis adaptable de baja frecuencia al espectro de señal por el módulo 5.005 de pre-formación de espectro para reducir al mínimo la distorsión percibida en las secuencias inferiores. Un énfasis de baja frecuencia invertido se aplicará en el descodificador, así como en el codificador a través de un módulo 5.007 de des-formación de espectro para producir la señal de excitación usada para codificar los siguientes cuadros. El énfasis adaptable de baja frecuencia se aplica sólo al primer cuarto del espectro, como sigue. Primero, se permite la llamada X de la señal transformada a la salida del módulo de transformada FFT 5.004. El coeficiente de Fourier a la secuencia de Nyquist se ajusta sistemáticamente a 0. Entonces, si N es el número de muestras en el FFT (N de esta manera que corresponde a la longitud de la ventana) , los K = N/2 coeficientes de Fourier de valor complejo se agrupan en bloques de cuatro (4) coeficientes consecutivos, formando bloques de valor real 8-dimensionales . Sólo por mencionar que las longitudes de los bloques de tamaño diferente de 8 se pueden usar en general . En una modalidad, se elige un tamaño de bloque de 8 para coincidir con el cuantificador de cuadricula 8-dimensional usado para la cuantificación espectral . Con referencia en la Figura 20, la energía de cada bloque se computa, hasta el primer cuarto del espectro, y la energía Emax y el índice i de posición del bloque con la energía máxima se almacenan (calculadora 20.001) . Entonces se calcula un factor Rm para cada bloque 8-dimensional con el índice de posición m más pequeño que i (calculadora 20.002) como sigue: - calcular la energía Em del bloque 8 -dimensional en el índice de posición m (módulo 20.003); - computar la relación Rm = Ema?/Em (módulo 20.004); - si Rm > 10, entonces ajustar Rm = 10 (módulo .005) también, si Rm > R(m_?) entonces Rm = R(m-?) (módulo .006' - computar el valor (Rm) 14 (módulo 20.007). La última condición (si Rm > R{m-u entonces Rm = R(m-i)) asegura que la función de relación de Rm disminuye de forma monotónica. Adicionalmente, limitando la relación Rm para hacer más pequeña o igual a 10 significa que ningún componente espectral en la función de énfasis de baja frecuencia se modificará por más de 20 dB . Después del computo de la relación (Rm) 1/4 (Ema? / Em) 1/ para todos los bloques con índice de posición más pequeño que i (y con más condiciones limitantes descritas anteriormente) , se aplican estas relaciones como una ganancia para los coeficientes de transformada a cada bloque correspondiente (calculadora 20.008). Este tiene el efecto de incrementar la energía de los bloques con una energía relativamente baja en comparación al bloque con energía máxima Emax. La aplicación de este procedimiento antes de la cuantificación tiene el efecto de formar el ruido de codificación en la banda inferior. La Figura 5b tiene un espectro de ejemplo en el cual se aplica la pre-formación descrita anteriormente. El eje de frecuencia se normaliza entre 0 y 1, donde 1 es la frecuencia Nyquist . El espectro de amplitud se muestra en dB. En la Figura 5b, la línea en negritas es el espectro de amplitud antes de la pre-formación, y la porción de líneas y negritas es el espectro modificado (pre-formado) . Por lo tanto, solo se modifica a este ejemplo al espectro que corresponde a la línea sin negritas. En la Figura 5c se muestra la ganancia real aplicada a cada componente espectral por la función de pre-formación. Se puede ver de la Figura 5c que la ganancia se limita a 10, y disminuye de forma monotónica a 1 conforme alcanza el componente espectral con la energía más alta (aquí, la tercera armónica del espectro) a la frecuencia normalizada de aproximadamente 0.18.
Cuantificación de vector de cuadrícula de multi-velocidad -Módulo 5.006 Después del énfasis a baja frecuencia, los coeficientes espectrales se cuantifican usando, en una modalidad, un módulo 5.006 de cuantificación algebraica en base a los códigos de cuadrícula. Las cuadrículas usadas son cuadrículas Gosset 8 -dimensionales, que definen la división de los coeficientes espectrales de los bloques 8-dimensionales . Los índices de cuantificación son esencialmente una ganancia global y una serie de índices que describe los puntos de cuadrícula reales usados para cuantificar cada sub-vector 8-dimensional en el espectro. El módulo de cuantificación de cuadrícula 5.006 realiza, de una manera estructurada, una búsqueda de vecinos cercanos entre cada vector 8-dimensional del espectro pre-formado, en escala, del módulo 5.005 y los puntos en un libro de códigos de cuadrícula usados para la cuantificación. El factor de escala (ganancia global) determina realmente la asignación de bits y la distorsión promedio. Entre mayor sea la ganancia global, se usan más bits y es menor la distorsión promedio. Para cada vector 8-dimensional de los coeficientes espectrales, el módulo de cuantificación de cuadrícula 5.006 produce un índice que indica el número de libros de cuadrícula usado y el punto de cuadrícula real elegido en el libro de códigos de cuadrícula correspondiente. El descodificador entonces será capaz de reconstruir el espectro cuantificado usando el índice de ganancia global junto con los índices que describen cada vector 8-dimensional . Los detalles de estos procedimientos se describen más adelante.
Una vez que se cuantifica el espectro, la ganancia global de la salida del módulo de cuantificación y cómputo de ganancia 5.009 y los índices de vectores de cuadrícula de la salida del módulo de cuantificación 5.006) se puede transmitir al descodificador a través de un multiplexor (no mostrado) .
Optimización de la ganancia global y cómputo del factor de relleno de ruido Un paso trascendente al usar los cuantíficadores de vector de cuadrícula es determinar la asignación apropiada de bits dentro de un presupuesto predeterminado de bits. Contrario a los libros de códigos almacenados, donde el índice de un libro de códigos es básicamente su posición en una tabla, el índice de un libro de códigos de cuadrícula se calcula usando fórmulas matemáticas (algebraicas) . El número de bits para codificar el índice de vector de cuadrícula de esta manera solo se conoce después de que se cuantifica el vector de entrada. En principio, para permanecer dentro de un presupuesto predeterminado de bits, se realizan la prueba de varias ganancias globales y la cuantificación del espectro normalizado con cada ganancia diferente para computar el número total de bits. La ganancia global que logra la asignación de bits más cercana al presupuesto predeterminado de bits, sin excederse, se elegirá como la ganancia óptima. En una modalidad, se usa en cambio un planteamiento heurístico, para evitar el tener que cuantificar el espectro varias veces antes de obtener la asignación óptima de bits y la cuantificación óptima. Por claridad, los símbolos clave relacionados a la siguiente descripción se obtienen de la Tabla A-l. Con referencia a la Figura 5a, la señal ponderada x de TCX de dominio de tiempo se procesa por una transformada de T y una pre-formación P, que produce un espectro X que se va a cuantificar. La transformada T puede ser una FFT y la pre-formación puede corresponder al énfasis de baja frecuencia adaptable, descrito anteriormente. Se hará referencia al vector X como el espectro pre-formado. Se asume que este vector tiene la forma X = [X0 Xx ... XN-?]t, donde N es el número de coeficientes de transformada obtenidos de la transformada T (la preformación P no cambia este número de coeficientes) .
Vista general del procedimiento de cuantificación del espectro pre-formado En una modalidad, el espectro X pre-formado se cuantifica como se describe en la Figura 6. La cuantificación se basa en el dispositivo de [Ragot, 2002] , asumiendo un presupuesto disponible de bits de Rx bits para codificar X. Como se muestra en la Figura 6 , X se cuantifica por cuantificación de vector de división de forma de ganancia en tres pasos principales: Una ganancia global estimada g, llamada más adelante la ganancia global, computa por un módulo de estimación de energía de división 6.001 y un módulo de estimación de nivel de ruido y ganancia global 6.002, y un divisor 6.003 normaliza el espectro X por esta ganancia global g para obtener X' = X/g, donde X' es el espectro preformado normalizado. - La cuantificación de vector de cuadrícula de multi-velocidad de [Ragot, 2002] , se aplica por un módulo de codificación de RE8 de multi-velocidad, auto-escalable, de división 6.004 a todos los bloques 8-dimensionales de coeficientes que forman el espectro X' , y se multiplexan los parámetros resultantes. Para ser capaces de aplicar este esquema de cuantificación, el espectro X' se divide en K vectores de tamaño idéntico, de modo que X = [X'0T X'?T ... X' ?-?T]T/ donde el kes?mo sub-vector (o división) se da por: X'k = [XAk... X'ßk + K-iJA = 0, 1, ...K-l. Puesto que el dispositivo de [Ragot, 2002] implementa realmente una forma de cuantificación de vector 8-dimensional, K simplemente se ajusta a 8. Se asume que N es un múltiplo de K. Una ganancia de relleno de ruido fac se computa en el módulo 6.002 para inyectar posteriormente ruido de comodidad en divisiones no cuantificadas del espectro X' . Las subdivisiones no cuantificadas son bloques de coeficientes que se han ajustado a cero por el cuantificador . La inyección de ruido permite enmascarar los artefactos a bajas velocidades de bits y mejora la calidad de audio. Se usa una ganancia individual fac debido a que la cuantificación por TCX asume que el ruido de codificación es plano en el dominio objetivo y se forma por el filtro de percepción inverso W(z)"A Aunque la pre-formacíón se usa aquí, la cuantificación e inyección de ruido depende del mismo principio. Como consecuencia, la cuantificación del espectro X mostrado en la Figura 6 produce tres clases de parámetros : la ganancia global g, los parámetros de VQ algebraicos (de división) y la ganancia de relleno de ruido fac. La asignación de bits, o el presupuesto de bits Rx se descompone como : donde Rg, R y Rfac son el número de bits (o presupuesto de bit) asignados a la ganancia g, los parámetros VQ algebraicos, y la ganancia fac, respectivamente. En esta modalidad ilustrativa, Rfac = 0. La cuantificación de vector de cuadrícula de multi-velocidad de ' [Ragot, 2002] es auto-escalable y no permite controlar directamente la asignación de bits y la distorsión en cada división. Esta es la razón por la que el dispositivo de [Ragot, 2002] se aplica a las divisiones del espectro X' en lugar de X. Por lo tanto la optimización de la ganancia global g controla la calidad del modo TCX. En una modalidad, la optimización de la ganancia g se basa en la energía logarítmica de las divisiones. En la siguiente descripción, cada bloque de la Figura 6 se describe uno por uno.
Módulo 6.001 de estimación de energía de división La energía (es decir, norma cuadrada) de los vectores de división se usa en el algoritmo de asignación de bits, y se emplea para determinar la ganancia global así como el nivel de ruido. Solo una palabra para recordar que el vector de entrada N-dimensional X = [X0, Xi ... XN-I] t se divide en K divisiones, sub-vectores 8-dimensionales, tal que la ?es? a división llega hacer xk = [x8 +? ... x8k + 7] t para k = 0, 1, ... K-l. Se asume que N es un múltiplo de ocho. La energía del kesimo vector se computa como ek = xk x = x8k2 + . . . + x8k + 72 k = 0 , 1 , . . . K- l Módulo 6.002 de estimación del nivel de ruido y ganancia global La ganancia global g controla directamente el consumo de bits y las divisiones y se soluciona de R(g) = R, donde R(g) es el número de bits usados (o consumo de bits) por toda la VQ algebraica de división para un valor dado de g. Como se indica en la descripción anterior, R es el presupuesto de bits asignado a la VQ algebraica de división. Como una consecuencia, la ganancia global g se optimiza para corresponder al consumo de bits y el presupuesto de bit de la VQ algebraica. El principio fundamental se conoce como adaptación inversa al canal de frecuencia, en la literatura. Para reducir la complejidad de cuantificación, el consumo real de bits para cada división no se computa, sino solo se estima de la energía de las divisiones. Esta información de energía junto con un conocimiento a priori de la cuantificación de vector de RE8 de multi-velocidad permite estimar R(g) como una función simple de g. La ganancia global g se determina al aplicar este principio básico en el módulo de estimación del nivel de ruido y ganancia global 6.002. La estimación del consumo de bits de la división Xk es una función de la ganancia global g, y se denota como Rk(g) • Con la ganancia unitaria g = 1 la heurística da: Rx(l) = 5 log2 (e + ek)/2, K = 0, 1, ... , K-l como un estimado del consumo de bits. La constante e > 0 impide el cómputo de log2 0 y, por ejemplo, el valor de e = 2 se usa. En general, la constante e es insignificante en comparación a la energía de la división ek.
La fórmula de R (l) se basa en el conocimiento a priori del cuantificador de multi-velocidad de [Ragot, 2002] y las propiedades de la cuadrícula RE8 subyacente : Para el número del libro de códigos nk > 1, el requerimiento de presupuesto de bit para codificar la kes?ma división en la mayoría de los 5nk bits como se puede confirmar de la Tabla 1. Esto da un factor de 5 en la fórmula cuando log2 (e + e) /2 es un estimado del número del libro de códigos. - El logaritmo log2 refleja la propiedad que la norma cuadrada promedio de los vectores de código se duplica aproximadamente cuando se usa Qnk en lugar de Qnk + x . La propiedad se puede observar de la Tabla 4. El factor 1/2 aplicado a e + e calibra el estimado del número de libro de códigos para el libro de códigos Q2. La norma cuadrada promedio de los puntos de cuadrícula en este libro de códigos particular se conoce que es de aproximadamente 8.0 (ver Tabla 4) . Puesto que log2 (e + e2) ) /2 = log2 (2 + 8.0) )/2 = 2, la estimación del número de libro de códigos es en realidad correcta para Q2.
Tabla 4 Algunas estadísticas en las normas cuadradas de los puntos de cuadrícula en diferentes libros de código Cuando una ganancia global g se aplica a una división, la energía de xk/g se obtiene al dividir e? por g2. Esto implica gue el consumo de bits de la división escalada en ganancias se puede estimar en base a Rk(l) al sustraer 5 log2 g2 = 10 log2 g de esta: Rk(g) = 5 log2 (e + ek) /2g2 = 5 log2 e + ek) /2 + 5 log2 g2 = Rk(?) - gio3 (4) en cada g?og = 10 log g. El estimado Rk(g) se delimita menor a cero, de esta manera la relación Rk(g) = max {Rk(l) - g?og, 0} (5) se usa en la práctica. El consumo de bits para codificar todas la K divisiones ahora es simplemente una suma de las divisiones individuales , R(g) = Ro(g) + R?(g) + ... + Rk-Ag). (6) La no linealidad de la ecuación (6) impide solucionar analíticamente la ganancia global g que produce el consumo de bits que corresponde al presupuesto dado de bits, R(g) = R. Sin embargo, la solución se puede encontrar con un algoritmo interactivo simple debido a que R (g) es una función monótona de g. En una modalidad, la ganancia global g se busca de forma eficiente al aplicar una búsgueda de bisección a g?og = 10 log2 g, iniciando del valor glog = 128. En cada iteración iter, R(g) se evalúa usando las ecuaciones (4), (5) y (6) y giog se ajusta respectivamente como glog = g?og ± 128/2lter. Diez iteraciones dan una suficiente exactitud. La ganancia global entonces se puede solucionar de g?0g como g = 29 log :L0. El diagrama de flujo de la Figura 7 describe el algoritmo de bisección empleado para determinar la ganancia global g. El algoritmo proporciona también el nivel de ruido como un producto secundario. El algoritmo empieza a ajustar el presupuesto de bit R en la operación 7.001 al valor 0.95(R-K). Este ajuste se ha determinado experimentalmente a fin de evitar una sobre-estimación de la ganancia global óptima g. El algoritmo de bisección reguiere como su valor inicial los estimados del consumo de bit Rk(l) para k = 0, 1, ..., K-l asumiendo una ganancia global unitaria. Estos estimados se computan empleando la ecuación (4) en la operación 7.002 habiendo obtenido primero las normas cuadradas de las divisiones ek. El algoritmo empieza de los valores iniciales Ínter = 0, g?og = 0, y fac = 128/2lnter = 128 ajustados en la operación 7.004. Si iter<10 (operación 7.004), cada iteración en el algoritmo de bisección comprende un incremento g?og = g?og + fac en la operación 7.005, y la evaluación de la estimación del consumo de bits R(g) en las operaciones 7.006 y 7.007 con el nuevo valor de g?og. Si el estimado R(g) excede el presupuesto de bits R en la operación 7.008, g?og se actualiza en la operación 7.009. La iteración termina al incrementar el contra-iter y al dividir en dos el tamaño del paso fac en la operación 7.010. Después de 10 iteraciones, se obtiene una suficiente exactitud para g?og y la ganancia global se puede solucionar g = 29 log/1° en operación 7.011. El nivel de ruido gns se estima en la operación 7.012 al promediar los estimados del consumo de bits de agüellas divisiones gue probablemente se dejen sin cuantificar con la ganancia global determinada giog- La Figura 8 muestra las operaciones comprendidas en la determinación del nivel de ruido fac. El nivel de ruido se computa como la raíz cuadrada de la energía promedio de las divisiones gue probablemente se van a dejar sin cuantificar. Para una ganancia global dada g?og, una división probablemente no se va a cuantificar si su consumo estimado de bits es menor de 5 bits, es decir, si Rk(l) -giog < 5. El consumo total de bits de todas estas divisiones, Rns(g)/ se obtiene al calcular Rk(l) - g?og, sobre las divisiones para las cuales Rk(l) - g?og < 5. La energía promedio de estas divisiones entonces se puede computar en el dominio logarítmico a partir de Rns (g) como Rns(g)/nb, donde nb es el número de estas divisiones. El nivel de ruido es fac=2Rns(9)/nb-5 en esta ecuación, la constante -5 en el exponente es un factor de calibración que ajusta el factor de ruido 3 dB (en energía) por abajo de la estimación real en base a la energía promedio.
Módulo 5.004 de Cuantificación de Vector de Cuadrícula de Muíti-Velocidad El módulo de cuantificación 6.004 es el medio de cuantificación de multi-velocidad descrito y explicado en [Ragot, 2002] . Las divisiones 8-dimensionales del espectro normalizado X' se codifican usando cuantificación de multi-velocidad que emplea un conjunto de libros de códigos RE8 denotado como {Q0, Q2, Q3, ...}. El libro de códigos Qi no se define en el conjunto a fin de mejorar la eficiencia de codificación. El nes?mo libro de códigos se denota Qn donde n se refiere como un número de libro de códigos. Todos los libros de códigos Qn se construyen como subconjuntos de la misma cuadrícula RE8 8-dimensional , Qn RE8. La velocidad de bits de nes?mo libro de códigos definida como bits por dimensión es 4n/8, es decir, cada libro de códigos Qn contiene 2n vectores de código. El cuantificador de multi-velocidad se construye de acuerdo con la enseñanza de [Ragot, 2002] . Para la kes?ma dimensión 8-dimensíonal X'k> el módulo de codificación 6.004 encuentra el vecino más cercano Yk en la cuadrícula RE8 y produce: el número n del libro de códigos más pegueño, tal gue Yk e Qnk; y el índice ik de Yk en Qnk. El número nk del libro de códigos es una información secundaria gue se tiene gue hacer disponible al descodificador junto con el índice i para reconstruir el vector de código Yk. Por ejemplo, el tamaño del índice i es 4nk bits para nk > 1. Este índice se puede representar con bloques 4 bits. Para nk = 0, la reconstrucción y llega hacer un vector cero 8-dimensional y no se necesita ik.
Manejo de Sobreflujo de Presupuesto de Bits e Indización del Módulo de Divisiones 6.005 Para una ganancia global g dada, el consumo real de bits puede ya sea exceder o permanecer bajo el presupuesto de bits. No se afronta un posible sub-flujo del presupuesto de bits por ningún medio específico, pero los bits extra disponibles se someten a cero y se dejan sin usar. Cuando se presenta un sobreflujo del presupuesto de bits, el consumo de bits se acomoda en el presupuesto de bits Rx en el módulo 6.005 al someter a cero algunos de los números n0, nl r . . . , nk-? del libro de códigos. La puesta en cero de un número nk > 0 del libro de códigos reduce el consumo total de bits al menos por 5nk-l bits. Las divisiones reducidas a cero en el manejo del sobreflujo del presupuesto de bits se reconstruyen en el descodificador por relleno de ruido. Para reducir al mínimo la distorsión de codificación gue se presenta cuando se fuerzan a cero los números de libros de códigos de algunas divisiones, estas divisiones se deben seleccionar de forma prudente. En una modalidad, el consumo de bits se calcula al manejar las divisiones una por una en un orden descendente de energía ek = XTX para k = 0, 1, ..., K-l. Este procedimiento es dependiente de la señal y de acuerdo con los medios usados anteriormente en la determinación de la ganancia global . Antes de examinar los detalles del manejo de sobreflujo en el módulo 6.005, se resumirá la estructura del código usado para representar la salida de los cuantificadores de multi-velocidad. El código unitario de n > 0. comprende k - l unos seguido por un bit de detención de cero. Como se muestra en la Tabla 1, se necesitan 5n - 1 bits para codificar el índice ik y el número nk del número de códigos excluyendo el bit de detención. El número de libro de códigos n = 0 comprende solo un bit de detención gue indica división cero. Cuando se codifican K divisiones, solo se necesitan K - l bits de detención puesto gue el último se determina de forma implícita por el presupuesto de bit R y de esta manera es redundante. De manera más específica, cuando las k divisiones últimas son cero, solo k - l bit de detención son suficientes debido a gue las últimas divisiones de cero se pueden descodificar al conocer el presupuesto de bit R. La operación del módulo de manejo de presupuesto de bit de sobreflujo 6.005 de la Figura 6 se representa en el diagrama de flujo de la Figura 9. Este módulo 6.005 opera con los índices de división ?(0), ?(l), -.., ?(K-l) determinados en la operación 9.001 al clasificar las normas cuadradas de divisiones en un orden descendente tal gue e (0> > e (i). > ek (_D . De esta manera, el índice ?(k) se refiere a la división xK(k) que tiene la kes?m norma cuadrada más grande. Las normas cuadradas de las divisiones se suministran al manejo de sobreflujo como una salida de la operación 9.001. La kes?ma iteración del manejo de sobreflujo se puede saltar fácilmente cuando nK()=0 al pasar directamente a la siguiente iteración debido a que las divisiones de cero no pueden provocar un sobreflujo. Esta funcionalidad se implementa con la operación lógica 9.005. Si k<K (Operación 9.003) y asumiendo que la ?(k)es?ma división es una división no de cero, el punto RE8 YK(k) se indexa primero en la operación 9.004. La indexación de multi-velocidad proporciona el valor exacto del número del libro de códigos n?(k) y el índice iK( > del vector de código. Se puede calcular el consumo de bits de todas las divisiones hasta incluyendo la ?(k)ésimo división actual. Usando las propiedades del código unario, se cuenta el consumo de bits Rk hasta e incluyendo la división actual en el bloque de operación 9.008 como una suma de dos términos: los RD, k bits necesarios para los datos, excluyendo los bits de detención y los Rs, k bits de detención: Rk = RD, k + Rs, k (7) donde para nK(k) > 0 RD, k = RD, k - I +5n?(k) -1, (8) Rs, = max{?(k) , Rs, k-?}, (9) Los valores iniciales requeridos se ajustan a cero en la operación 9.002. Los bits de detección se cuentan en la operación 9.007 de la Ecuación (9) tomando en cuenta que solo las divisiones hasta la última división no de cero se indican en realidad con bits de detención, debido a que las divisiones subsiguientes se conocen que son cero por construcción del código. El índice de la última división no de cero también se puede expresar como max{?(0), ?(k), ..., ?(k)}. Puesto que el manejo de sobreflujo empieza con valores iniciales de cero para RD, k y Rs, k en las ecuaciones (8) y (9) , el consumo de bits hasta la división actual se ajusta siempre en el presupuesto de bits, Rs, k-? + RD, k-i < R-Si el consumo de bits de Rk incluyendo la ?(k)es?ma actual que excede el presupuesto de bit R como se verifica en la operación lógica 9.008, el número n?(k) del libro de códigos y la reconstrucción yK(k) se reducen a cero en el bloque 9.009. Los contadores del consumo de bits RD, k y RD, se actualizan por consiguiente a sus valores anteriores en el bloque 9.010. Después de esto, el manejo de sobreflujos puede proseguir a la siguiente interacción al incrementar k por 1 en la operación 9.011 y al regresar a la operación lógica 9.003. Se señala que la operación 9.004 produce la indexación de las divisiones como una parte integral de las rutinas de manejo de sobreflujo. La indexación se puede almacenar y suministrar adicionalmente al multiplexor 6.007 de corriente de bits de la Figura 6.
Modulo 5.007 de des-formación de espectro cuantificado Una vez que se cuantifica el espectro usando la VQ de cuadrícula de multi-velocidad de división del módulo .006, los índices de cuantificación (números de libros de código e índices de puntos de cuadrícula) se pueden calcular y enviar a un canal a través de un multiplexor (no mostrado) . Se realiza una búsqueda de vecinos más cercanos en la cuadrícula, y el cómputo de los índices, como en [Ragot, 2002] . El descodificador de TCX entonces realiza la des-formación del espectro en el módulo 5.007, de una manera tal para invertir la pre-formación del módulo .005. La des-formación del espectro opera usando solo el espectro cuantificado. Para obtener un proceso que invierte la operación del módulo 5.005, el módulo 5.007 aplica los siguientes pasos: calcular la posición i y la energía Eraax del bloque 8-dimensional de energía más alta en el primer cuarto (bajas frecuencias) del espectro; calcular la energía Em del bloque 8-dimensional en el índice de posición m; computar la relación Rm = Emax / Em; - si Rm > 10, entonces ajustar Rra = 10; también, si Rm > R(m-D entonces Rm = R(m-D ; computar el valor (Rm) 1/2. Después de computar la relación Rm = Ep,ax / Em para todos los bloques con el índice de posición más pegueño que i, a entonces se aplica una inversa multiplicativa de esta relación como una ganancia para cada bloque correspondiente. Las diferencias con el pre-formación del módulo 5.005 son: (a) en la des-formación del módulo 5.007, la raíz cuadrada (y no la potencia a/ ) de la relación Rm se calcula, y (b) esta relación se toma como un divisor (y no un multiplicador) del correspondiente bloque 8-dimensional . Si el efecto de cuantificar en el módulo 5.006 se abandona (cuantificación perfecta) , se puede mostrar que la salida del módulo 5.007 es exactamente igual a la entrada del módulo 5.005. El proceso de pre-formación de esta manera es un proceso invertible.
Codificación de HF La operación del módulo de codificación de HF 1.003 de ' la Figura 1 se ilustra en la Figura 10a. Como se indica en la anterior descripción con referencia a la Figura 1, la señal de HF se compone de los componentes de frecuencia de la señal de entrada mayor de 6400 Hz . El ancho de banda de esta señal de HF depende de la velocidad de muestreo de la señal de entrada. Para codificar la señal de HF a una baja velocidad, se emplea un esquema de extensión de ancho de banda (BWE) en una modalidad. En la BWE, la información de energía se envía al descodificador en la forma de envoltura espectral y energía de cuadro, pero la estructura fina de la señal se extrapola en el descodificador de la señal de excitación recibida (descodificada) de la señal de LF que, de acuerdo a una modalidad, se codifica en el módulo de codificación de ACELP/TCX conmutado 1.002. La señal de HF muestreada de forma descendente a la salida del pre-procesador y el banco de filtro de análisis 1.001 se llama SHF (n) en la Figura 10a. El espectro de esta señal se puede ver como una versión plegada de la banda de mayor frecuencia antes del muestreo descendente . Un análisis de LPC como se describe anteriormente en la presente con referencia a la Figura 18 se realiza en los módulos 10.020-10.022 en la señal SHF (n) para obtener un conjunto de coeficientes de LPC que modela la envoltura espectral de esta señal. Típicamente, son necesarios menos parámetros que la señal de LF. En una modalidad, se usa un filtro de orden 8. Los coeficientes de LPC A(z) entonces se transforman en el dominio de ISP en el módulo 10.023, entonces se convierten en el dominio de ISP al dominio de ISF del módulo 10.004, y se cuantifican en el módulo 10.003 para la transmisión a través de un multiplexor 10.029. El número de análisis de LPC en un súper-cuadro de 80 ms depende de las longitudes de cuadro en el súper-cuadro. El coeficiente de ISF cuantificado se convierten de regreso a los coeficientes de ISP en el módulo 10.004 y luego se interpolan (se pueden describir brevemente el método de interpolación) en el módulo 10.005 antes de que se conviertan a los coeficientes de LPC cuantificados AHF(Z) por el módulo 10.006. Un conjunto de coeficientes de filtro de LPC se puede representar como un polinomial en la variable z. También, A(z) es el filtro de LPC para la señal de LF y AHF(Z) el filtro de LPC para la señal de HF. Las versiones cuantificadas de estos dos filtros son respectivamente Á (z) y Á HF (z) . De la seña LF s (n) de la Figura 10, se obtiene primero una señal residual al filtrar s (n) a través del filtro residual A (z) identificado por la referencia 10.014. Entonces, esta señal residual se filtra a través del filtro de síntesis de HF cuantificado 1/Á HF(Z) identificado por la referencia 10.015. Hasta un factor de ganancia, esto produce una versión sintetizada de la señal de HF, pero en una versión especialmente plegada. La señal de síntesis de HF real se recuperará después de que se haya aplicado el muestreo ascendente. Puesto que se recupera la excitación de la señal de LF, se computa la ganancia apropiada para la señal de HF .
Esto se hace al comparar la energía de la señal de HF de referencia SHF (n) con la energía de la señal de HF sintetizada. La energía se computa una vez por sub-cuadro de 5 ms, con la correspondencia de energía asegurada en el límite de sub-banda de 6400 Hz . De manera específica, la señal de HF sintetizada y la señal de HF de referencia se filtran a través de un filtro de percepción (módulo 10.011-10.012 y 10.024-10.025). En la modalidad de la Figura 10, este filtro de percepción se deriva de AHF(Z) y se llama "filtro de percepción de HF" . La energía de estas dos señales filtradas se computa cada 5 ms en los módulos 10.013 y 10.026, respectivamente, la relación entre las energías calculadas por los módulos 10.013 y 10.126 se calcula por el divisor 10.027 y se expresa en dB en el módulo 10.016. Hay cuatro de estas ganancias en un cuadro de 20 ms, (uno para cada sub-cuadro de 5 ms) . Este vector de 4-ganancia representa la ganancia que se debe aplicar a la señal de HF para corresponder apropiadamente a la energía de la señal de HF. En lugar de transmitir esta ganancia directamente, se computa primero una relación de ganancia estimada al comparar las ganancias de los filtros Á (z) de la banda inferior y A HF (Z) de la banda superior. Esta estimación de relación de ganancia se detalla en las Figuras 10b y se explicarán en la siguiente descripción. La estimación de la relación de ganancia se interpola cada 5-ms, expresado en dB y se sustrae en el módulo 10.010 de la relación de ganancia medida. Las diferencias de ganancias resultantes o correcciones de ganancia, denotadas g0 a gnb-i n la Figura 10, se cuantifican en el módulo 10.009. Las correcciones de ganancia se pueden cuantificar como vectores 4-dimensionales, es decir, 4 valores por cuadro de 20 ms y entonces se suministran al multiplexor 10.029 para transmisión. La estimación de ganancia computada en el módulo .007 de los filtros A (z) y Á HF (Z) se explica en la Figura 10b. Estos dos filtros están disponibles en el lado del descodificador. Las primeras 64 muestras de una curva sinusoide decadente a la frecuencia Nyquist p radianes por muestra se computa primero al filtrar un impulso unitario d(n) a través de un filtro de un polo 10.017. La frecuencia Nyquist se usa puesto que el objetivo es hacer corresponder las ganancias de filtro alrededor de 6400 Hz, es decir, a la frecuencia de unión entre las señales de LF y HF. Aquí, la longitud de 64 muestras de esta segunda referencia es la longitud del sub-cuadro (5 ms) . La curva sinusoide decadente h(n) entonces se filtra primero a través del filtro Á (z) 10.018 para obtener una residual de baja frecuencia, entonces a través del filtro 1/ Á HF (Z) 10.019 para obtener una señal de síntesis del filtro de síntesis de HF. Sí los filtros Á (z) y Á HF(Z) tienen ganancias idénticas a la frecuencia normalizada de p radianes por muestra, la energía de la salida x(n) del filtro 10.019 será equivalente a la energía de la entrada h (n) del filtro 10.018 (la curva sinusoide decadente) . Si las ganancias difieren, entonces estas diferencia de ganancia se toma en cuenta en la energía de la señal x(n) a la salida del filtro 10.019. La ganancia de corrección debe incrementarse realmente conforme disminuye la energía de la señal x(n) . Aquí, la relación de ganancia se computa en el módulo 10.028 como el inverso multiplicativo de la energía de la señal x(n), en el dominio logarítmico (es decir, en dB) . Para obtener una relación de energía verdadera, la energía de la curva sinusoide decante h(n), en dB, se debe remover de la salida del módulo 10.028. Sin embargo, puesto que esta desviación de energía es una constante, simplemente se tomará en cuanta en el codificador de corrección de ganancia en el módulo 10.009. Finalmente, la ganancia del módulo 10.007 se interpola y expresa en dB antes de que se sustraiga por el módulo 10.010. En el descodificador, la ganancia de la señal de HF se puede recuperar al adicionar la salida del dispositivo de descodificación de HF 1.003, conocido en el descodificador, a las correcciones de ganancia descodificadas, modificadas en el módulo 11.009.
Descripción Detallada del Descodificador El papel del descodificador es leer los parámetros codificados de la corriente de bits y sintetizar un súper-cuadro de audio reconstruido. En la Figura 11 se muestra un diagrama de bloques del alto nivel del descodificador. Como se indica en la descripción anterior, cada súper-cuadro de 80 ms se codifica en cuatro (4) paquetes binarios sucesivos de igual tamaño. Estos cuatro (4) paquetes forman la entrada del descodificador. Puesto que todos los paquetes no pueden estar disponibles debido a los borrados de canal, el desmultiplexor principal 11.001 también recibe como entrada cuatro (4) indicadores de cuadros deficientes BFI = (bfi0, bfii, bfi , bfi3) que indica cuales de los cuatro paquetes se han recibido. Se asume aquí que bfik = 0 cuando el ]?és?mo paquetes se recibe, y bfik = 1 cuando se pierde el kes?mo paquete. El tamaño de los cuatro (4) paquetes especifica al desmultiplexor 11.001 por la entrada bit_yelocidad_indicador indicativa de la velocidad de bit usada por el codificador.
Desmultiplexión principal El desmutiplexor 11.001 simplemente realiza la operación invertida del multiplexor del codificador. Los bits relacionados a los parámetros codificados en el paquete k se extraen cuando el paquete k esta disponible, es decir, cuando bfi = 0. Como se indica en la descripción anterior, los parámetros codificados se dividen en (3) categorías. Indicadores de modo, parámetros de LF y parámetros de HF. Los indicadores de modo especifican que modo de espacio de codificación se usó en el codificador (ACELP, TCX20, TCX40 ó TCX80) . Después de que el desmultiplexor principal 11.001 ha recuperado estos parámetros, se descodifican por un módulo de extrapolación de módulo 11.002, un descodificador de ACELP/TCX 11.003) y el descodificador de HF 11.004, respectivamente. Esta descodificación da por resultado dos señales, una señal de síntesis de LF y una señal -de síntesis de HF, que se combinan para formar la salida de audio del banco de filtro de síntesis y post-procesamiento 11.005. Se asume que un indicador de entrada FS indica al descodificador que es la velocidad de muestreo de salida. En una modalidad, las velocidades de muestreo permitidas son 16 kHZ y por arriba. Los módulos de la Figura 11 se describirán en la siguiente descripción.
Descodificador 11.003 de ACELP/TCX de señal de LF La descodificación de la señal de LF comprende esencialmente la descodifícación de ACELP/TCX. Este procedimiento- se describe en la Figura 12. El desmultiplexor de ACELP/TCX 12.001 extrae los parámetros de LF codificados en base a los valores del MODO. De manera más específica, los parámetros de LF se dividen en parámetros de ISF por una parte y por otra parte los parámetros específicos de ACELP ó TCX. La descodificación de los parámetros de LF se controla por una unidad 12.002 principal de control de descodificación de ACELP/TCX. En particular, esta unidad 12.002 principal de control de descodificación de ACELP/TCX envía señales de control a un módulo 12.003 de descodificación de ISF, un módulo 12.005 de interpolación de ISP, así como descodificadores 12.007 y 12.008 de ACELP y TCX. La unidad 12.002 principal de control de descodificación de ACELP/TCX también maneja la conmutación entre el descodificador 12.007 de ACELP y el descodificador 12.008 de TCX al ajustar las entradas apropiadas a estos dos descodificadores y al activar el selector 12.009 de conmutación. La unidad 12.002 principal de control de descodificación de ACELP/TCX controla adicionalmente la memoria intermedia 12.010 de salida de la señal de LF de modo que los cuadros descodificados de ACELP ó TCX se escriben en los segmentos de tiempo correctos de la memoria intermedia de salida de 80 ms . La unidad 12.002 principal de control de descodificación de ACELP/TCX genera datos de control que son internos al descodificador de LF: BF_ISF, nb (el número de subcuadros para la interpolación para ISP), bfi : acelp,LTcx (longitud de cuadro de TCX) , BFI_TCX, conmutador_indicador, y cuadro_selector (para ajustar un indicador de cuadro a la memoria intermedia 12.010 de LF de salida) . La naturaleza de estos datos se define más adelante en la presente: BFI_ISF se puede expandir como el vector entero 2-D BFI_ISF = (bfi?st_etapabfl2nd_etapa) y consiste de indicadores de cuadros deficientes para la descodificación de ISF. El valor bfilst_etapa es binario, y 0 cuando la primera etapa de ISF esta disponible bfilst_etaPa = 1 cuando se pierde. El valor 0 < bfi2nd_etaPa = 31 es un indicador de 5 bit que proporciona un valor de cuadros eficientes para cada una de las siguientes divisiones de la segunda etapa de ISF. bfi2nd_etapa = bf Ílst_división + 2 * bf l nd_división + 4 * bf l3nd_división + 8 * bfi4th división + 16 * bfi5nd_di isión/ donde bf Íkth_división = 0 cuando la división k esta disponible y es igual a 1 de otro modo. Con el formato de corriente de bits descrito anteriormente, los valores de bfi?at etapa y bfi2nd etapa se pueden computar a partir de BFI = (bfi0 bfii bfi2 bfi3) como sigue: Para ACELP ó TCX20 en el paquete k, BFI_ISF = (bfik) , Para TCX40 en paquetes k y k+1, BFI_ISF = (bfik (31*bfik+1)) , Para TCX80 en paquetes k=0 a 3, BFI_ISF = (bfi0 (bfÍ!+6*bfi2+20*bfi3) ) Estos valores de BFI_ISF se pueden explicar directamente por el formato de corriente de bits usado para empacar los bits de la cuantificación de ISF, y como se distribuyen las etapas y divisiones en uno o varios paquetes dependiendo del tipo de codificador (ACELP/TCX20 , TCX40 ó TCX80) . El número de sub-cuadros para la interpolación de ISF se refiere al número de sub-cuadros de 5-ms en el cuadro descodificado de ACELP ó TCX. De esta manera, nb = 4 para ACELP y TXC20, 8 para TCX40 y 16 para TCX80. bfi_acelp es un indicador binario que indica una pérdida de paquete de ACELP. Simplemente se ajusta como bfi_acelp = bfik para un cuadro de ACELP en el paquete k. la longitud de cuadro de TCX (en muestra) se da por LTC? = 256 (20 ms) para TCX20, 512 (40 ms) para TCX40 y 1024 (80 ms) para TCX80. Esto no toma en cuenta el traslape usado en TCX para reducir los efectos de bloqueo. - BFI_TCX es un vector binario usado para señalar las pérdidas de paquetes al descodificador de TCX: BFI TCX = (bfik) para TCX20 en el paquete k, (bfik bfik+?) para TCX40 en paquetes k y k+1, y BFIJTCX = BFI para TCX80. Los otros datos generados por la unidad 12.002 principal de control de descodificación de ACELP/TCX son bastante auto-explicativos . El selector 12.009 de conmutador se controla de acuerdo con el tipo de cuadro descodificado (ACELP ó TCX) . Los datos de cuadro__selector permiten la escritura de los cuadros descodificados (ACELP ó TCX20, TCX40 ó TCX80) en los segmentos de 20 ms correctos del super-cuadro. En la Figura 12, algunos datos auxiliares también aparecen tal como ACELP_ZIR y rmSwsyn- Estos datos se definen en los párrafos subsiguientes. El módulo 12.003 de descodificación de ISF corresponde al descodificador de ISF definido en la norma de codificación de voz AMR-WB, con las mismas tablas de cuantificación y predicción de MA, excepto para el manejo de los cuadros deficientes. Una diferencia en comparación al dispositivo de AMR-WB es el uso de BFI_ISF = bfi?st_etapa = bfi2nd_etaPa) en lugar de un indicador de cuadro deficiente, binario, individual. Cuando se pierde la primera etapa del cuantificador de ISF (es decir, bfi?st_etapa = 1) los parámetros de ISF se descodifican simplemente usando la ocultación de borrado de cuadro del descodificador de ISF de AMR-WB. Cuando esta disponible la 1ra etapa (es decir, bfi?st_etaPa = 0) esta 1ra etapa se descodifica, Los vectores de división de 2da etapa se acumulan a la primera etapa descodificada solo si están disponibles. La residual reconstruida del ISF se adiciona a la predicción de MA y el vector medio de ISF para formar los parámetros reconstruidos de ISF. El convertidor 12.004 transforma los parámetros de ISF (definidos en el dominio de frecuencia) en parámetros de ISP (en el dominio de coseno) . Esta operación se toma de la codificación de voz de AMR-WB. El módulo 12.005 de interpolación de ISP realiza una interpolación lineal simple entre los parámetros de ISP del cuadro descodificado anterior (ACELP/TCX20 , TCX40 ó TCX80) y los parámetros de ISP descodificados. La interpolación se lleva a cabo en el dominio de ISP y da por resultado parámetros de ISP para cada sub-cuadro de 5 ms, de acuerdo a la fórmula: ÍSPsubcuadro-i = ±/v¡b * ÍSpnueVo + ( 1 - Í/nb) * ÍSpanterior donde nb es el número de sub-cuadros en el cuadro descodificado actual (nb=4 para ACELP y TCX20, 8 para TCX40, 16 para TCX80) , i = 0 ..., nb-1 es el índice de subcuadro, ispa terior es el conjunto de parámetros de ISP obtenido de los parámetros descodificados de ISF del cuadro descodificado anterior (ACELP, TCX20/40/80) e ispnUevo es el conjunto de parámetros de ISP obtenido de los parámetros de ISF descodificados en el descodificador de 12.003. Los parámetros interpolados de ISP entonces se convierten en coeficientes lineal-predictivos para cada subcuadro en el convertidor 12.006. Los codificadores 12.007 y 12.008 de ACELP y TCX se describirán de manera separada al final de la descripción completa de descodificación de ACELP/TCX.
Conmutación de ACELP/TCX La descripción de la Figura 12 en la forma de un diagrama de bloque se contempla por el diagrama de flujo de la Figura 13, que define exactamente como se maneja la conmutación entre ACELP y TCX en base a los indicadores de modo del super-cuadro en MODO. Por lo tanto, la Figura 13 explica como los módulos 12.003 y 12.006 de la Figura 12 se usan. Uno de los aspectos claves de la descodificación de ACELP/TCX es el manejo de un traslape del cuadro descodificado anterior para permitir la conmutación sin costura entre ACELP y TCX así como entre los cuadros de TCX. La Figura 13 presenta esta característica clave en detalles para el lado de descodificación. El traslape consiste de una memoria intermedia de 10 ms, individual: OVLP_TCX. Cuando el cuadro descodificado anterior es un cuadro de ACELP, OVLP_TCX = ACELP_ZIR memoriza la respuesta de impulso cero (ZIR) del filtro de síntesis de LP (l/A(z)) en el dominio ponderado del cuadro de ACELP anterior. Cuando el cuadro descodificado anterior es un cuadro de TCX, solo se usan los primeros 2.5 ms (32 muestras) para TCX20, 5 ms (64 muestras) para TCX40, y 10 ms (128 muestras) para TCX80 en OVLP_TCX (las otras muestras se ajustan a cero) . Como se ilustra en la Figura 13, la descodificación de ACELP/TCX depende de la interpretación secuencial de los indicadores de modo en MODO. El número de paquete y el índice k de cuadro descodificado se incrementan de 0 a 3. El circuito realizado por las operaciones 13.002, 13.003 y 13.021 a 12.023 permite procesar de manera secuencial los cuatro (4) paquetes de un súper-cuadro de 80 ms . La descripción de las operaciones 13.005, 13.006 y 13.009 a 13.011 se saltan debido a que realizan la descodificación de ISF descrita anteriormente, la conversión de ISF a ISP, la interpolación de ISP y la conversión de ISP a A(z) . Cuando se descodifica por ACELP (es decir, cuando mk = 0 como se detecta en la operación 13.012), la memoria intermedia ACELP_ZIR se actualiza y la longitud ovp_len del traslape de TCX se ajusta a 0 (operaciones 13.013 y 16.017). El cálculo real de ACELP_ZIR se explica en el siguiente párrafo que trata con la descodificación de ACELP. Cuando se descodifica por TCX, la memoria intermedia OVLP_TCX se actualiza (operaciones 13.014 a 13.016) y la longitud real ovp_len del traslape de TCX se ajusta a un número de muestras equivalente a 2.5, 5 y 10 ms para TCX20, TCX40 y TCX80, respectivamente (operaciones 13.018 a 13.020). El cálculo real de OVLP TCX se explica en el siguiente párrafo que trata de la descodificación de TCX. El descodificador de ACELP/TCX también computa dos parámetros para la post-filtración subsiguiente de alturadetono de la síntesis de LF: las ganancias de alturadetono gp = (g0, gi, ... gis) y los retrasos de alturadetono T = T0, Tx, ... T15) para cada subcuadro de 5 ms del super-cuadro de 80 ms . Estos parámetros se inicializan en el Procesador 13.001. Para cada nuevo sub-cuadro, las ganancias de alturadetono se ajustan por defecto a gpk = 0 para k = 0, ..., 15, en tanto que los retrasos de la alturadetono se inicializan todos a 64 (es decir, 5 ms)'. Estos vectores se modifican solo por ACELP en la operación 13.013: si ACELP se define en el paquete k, g4k, g4k+?, ..., 94+3 corresponden a las ganancias de la alturadetono en cada subcuadro de ACELP descodificado, en tanto que T4 , T4 +?, ..., T4k+3 son los retrasos de alturadetono.
Descodificación de ACELP El descodificador de ACELP presentado en la Figura 14 se deriva del algoritmo de codificación de voz de AMR-WB [Bessette et al, 2002] . Los nuevos o modificados bloques en comparación al descodificador de ACELP de AMR-WB se resaltan (al sombrear estos bloques) en la Figura 14. En un primer paso, el parámetro específico de ACELP se desmultiplexa a través del multiplexor 14.001. Con referencia aun a la Figura 14, la descodificación de ACELP consiste de reconstruir la señal de excitación r (n) como la combinación lineal gp p (n) + gc c (n) , donde gp y gc son respectivamente la ganancia de alturadetono y la ganancia del libro de códigos fijo, T es el retrazo de la alturadetono, p (n) es la contribución de alturadetono derivada de códigos adaptable 14.005 a través del filtro de alturadetono 14.006, y c (n) es el vector de código post-procesado del libro de códigos innovador 14.009 obtenido de los índices de libro de códigos e innovador de ACELP, descodificados por el descodificador 14.008 y procesados a través de los módulos 14.012 y 14.013; p (n) se multiplica por la ganancia gp en el multiplicador 14.007, c (n) se multiplica por la ganancia gc, en el multiplicador 14.014, y los productos gp p (n) y gc c (n) se adicionan en el módulo adicionador 14.015. Cuando el retrazo T de alturadetono es fraccional, p (n) comprende la interpolación en el libro de códigos adaptable 14.005. Entonces, la excitación reconstruida se pasa a través del filtro de síntesis para obtener la síntesis 1/Á {z) 14.016 para obtener la síntesis s {n) . Este procesamiento se realiza en una base de sub-cuadros en los coeficientes de LP interpolados y la síntesis se procesa a través de una memoria intermedia de salida 14.017. El proceso completo de descodificación de ACELP se controla por una unidad 14.02 principal de descodificación de ACELP. Se manejan los borrados de paquetes (señalizados por bfi_acelt = 1) por un selector 14.011 de conmutación que conmuta desde el libro de códigos innovador 14.009 a un libro de códigos innovador aleatorio 14.010, extrapolando los parámetros de alturadetono y ganancia de sus valores anteriores en los descodificadores de ganancia 14.003 y 14.004, y dependiendo de los coeficientes de LP extrapolados. Los cambios en comparación al descodificador de ACELP de AMR-WB se relacionan con el descodificador 14.003 de ganancia, la computación de la respuesta de impulso cero (ZIR) de l/Á (z) en el dominio ponderado en los módulos 14.018 y 14.020, y la actualización del valor r.m.s. de la síntesis ponderada (rmswsyn) en los módulos 14.021 y 14.022. La descodificación de ganancia se ha descrito ya cuando bfi_acelp = 0 ó 1. Se basa en el parámetro de energía media para aplicar VQ removida media. La ZIR de l/Á(z) se computa aguí en el dominio ponderado para conmutación desde un cuadro de ACELP a un cuadro de TCX en tanto gue se evitan los efectos de blogueo . El procesamiento relacionado se descompone en tres (3) pasos y su resultado se almacena en la memoria intermedia de 10 ms denotada por ACELP_ZIR: 1) una calculadora computa la ZIR de 10 ms de l/Á(z) , donde los coeficientes de LP se toman del último sub-cuadro de ACELP (módulo 14.018); 2) un filtro pondera de manera perceptiva la ZIR (módulo 14.019) . 3) ACELP_ZIR se encuentra después de aplicar un recorte en ventana híbrido plano-triangular (a través de un generador de ventana) a la ZIR ponderada de 10 ms - en el módulo 14.020. Este paso usa una ventana de 10 ms w(n) definida más adelante: w (n) = 1 si n=0, ..., 63, (n) = (128-n)/64 si n=64, ..., 127 Se debe señalar gue el módulo 14.020 siempre actualiza OVLP_TCX como OVLP TCX = ACELP_ZIR. El parámetro rmsWSyn se actualiza en el descodificador de ACELP debido a gue se usa en el descodificador de TCX para la cancelación de borrado de paguetes. Su actualización en los cuadros descodificados de ACELP consiste en el cómputo por sub-cuadro de la síntesis Sw(n) de ACELP ponderada con el filtro 14.021 de ponderación de percepción y el cálculo en el módulo 14.022: rmswsyn donde L=256 (20 ms) es la longitud de cuadro de ACELP, Descodificación de TCX En la Figura 15 se muestra una modalidad del descodificador de TCX. Se usa un selector 15.017 de conmutación para manejar dos diferentes casos de descodificación: Caso 1 : Cancelación de borrado de paguetes en TCX20 a través de los módulos 15.013 a 15.016 cuando la longitud de cuadro de TCX es de 20 ms y el pagúete relacionado se pierde, es decir BFI_TCX = 1; y Caso 2: Descodificación de TCX normal, posiblemente con pérdidas parciales de paguetes a través de los módulos 15.01 a 15.012. En el caso 1, no esta disponible información para descodificar el cuadro de TCX20. La síntesis de TCX se hace al procesar, a través de un filtro no lineal aproximadamente eguivalente a 1/Á(z) (módulos 15.014 a 15.016), la excitación anterior del cuadro de TCX descodificado anterior almacenado en la memoria intermedia 15.013 y la excitación y retrazado por T, donde T=alturadetono_tcx es un retrazo de alturadetono estimado en el cuadro de TCX anteriormente descodificado. Se usa un filtro no lineal en lugar del filtro l/Á(z) para evitar ruidos en la síntesis. Este filtro se descompone en tres (3) : blogue: un filtro 15.014 gue tiene la función de transferencia Á(z/?) /Á(z) / (1-az"1) para correlacionar la excitación retrazada por T en el dominio objetivo de TCX, el limitador 15.015 limita la magnitud a ± rmswsyn, y finamente el filtro 15.016 gue tiene una función de transferencia (1-a z"1) / Á(z/?) para encontrar la síntesis. La memoria intermedia OVLP__TCX se ajusta a cero en este caso. En el Caso 2 , la descodificación de TCX comprende la descodificación de los parámetros de VQ algebraicos a través del multiplexor 15.001 y el descodificador 15 del parámetro de VQ. Esta operación de descodificación se presenta en otra parte de la presente descripción. Como se indica en la descripción anterior, el conjunto de coeficientes de transformada Y = [Y0, Yi ... , YN-I] / donde N = 288, 576 y 1152 para TCX20, TCX40 y TCX80 respectivamente, se divide en K sub-vectores (bloques de coeficientes consecutivos de transformada) de dimensión 8 que se representan en la cuadrícula RE8. El número K de sub-vectores es 36, 72, 144 para TCX20, TCX40 y TCX80, respectivamente. Por lo tanto, los coeficientes Y se pueden expandir como Y = [Y0, Yi ..., YK-?] con Y? = [Ysk ••• Ys+7] y 0, ... , K-l. El nivel de relleno de ruido sruido se descodifica en el descodificador 15.003 de nivel de relleno de ruido al invertir la cuantificación escalar uniforme de 3 bit usada en el codificador. Para un índice 0 < idxx < 7, a^ido se da por: srUi<io = 0.1* (8 - idxx) . Sin embargo, puede ocurrir que el índice id i no este disponible. Este es el caso cuando BFI TCX = (1) en TCX20, (1 x) en TCX40 y (x 1 x x) en TCX80, con x que representa un valor binario arbitrario. En este caso, sruido se ajusta a su valor máximo, es decir, sruido = 0.8. El ruido de bienestar se inyecta en los sub-vectores Yk redondeados a cero y que corresponden a una frecuencia por arriba de 6400/6 = 1067 Hz (módulo 15.004) . De manera más precisa, Z se inicializa como Z = Y y para K/6 < k < K (únicamente) , si Y = (0, 0, ..., 0) , Zk se reemplaza por el vector 8-dimensional : sruido* [eos (?x) sen (?x) eos (?2) sen (?2) eos (?3) sen (?3) eos (?4) sen(? ) ] , donde las fases ?i, ? , ?3 y ?4 se seleccionan al azar. El módulo 15.005 de des-énfasis de baja frecuencia adaptable escala- los coeficientes de transformada de cada sub-vector Zk, para k=0...K/4-l, por un factor fac (módulo 21.004 de la Figura 21) que varía con k: X'k = fack.-Zk, k=0, ...K/4-1. El factor fack es realmente una función de incremento monótono constante por pieza de k y satura en 1 para una k=kmax<K/4 dada (es decir fack<l para k<kmax y fack = 1 para k > kmax) . El valor de kraax depende de Z . Para obtener fack, la energía ek de cada sub-vector Zk se computa como sigue (módulo 21.001) : ek = z" zk + o.oi donde el término 0.01 se ajusta arbitrariamente para evitar una energía de cero (lo inverso de ek se computa posteriormente) . Entonces, la energía máxima sobre los primeros K/4 subvectores se busca (módulo 21:002): Smax = max(eo, - .. , e?/4-?) El computo real de fack se da por la fórmula a continuación (módulo 21.003): fac0 = max (e0/emax) °-s, 0.1) fack = max( (ek/eraax)0-5, fack_?) para k=l, ..., K/4-1 La estimación de la altura dominante de tono se realiza por el estimador 15.006 de modo que el siguiente cuadro que se va a descodificar se puede extrapolar de manera apropiada si corresponde a TCX20 y si se pierde el paquete relacionado. Esta estimación se basa en la suposición que el pico de magnitud máxima en el espectro el objetivo de TCX corresponde a la alturadetono dominante. La búsqueda para el M máximo se restringe a una frecuencia por abajo de 400 Hz . y el índice mínimo 1 < imax < N/32 tal que (X'2i)2 + (X'2i+?)2 = M también se encuentra. Entonces la alturadetono dominante se estima en el número de muestras como Tes = N / imax (este valor no puede ser número entero) . La alturadetono dominante se calcula para la cancelación de borrado de paquete en TCX20. Para evitar problemas de almacenamiento y memoria intermedia (la memoria intermedia de excitación 15.013 que se limita a 20 ms) , si Test > 256 muestras (20 ms) , alturadetono_tcx se ajusta a 256; de otro modo, si Test = 256, se evitan múltiples periodos de alturadetono en 20 ms al ajustar alturadetono_txc a alturadetono_tcx = max { Ln Test J | n entero > 0 y n Test = 256} donde L-J denota el redondeo al número entero más cercano hacia -8. La transformada usada es, en una modalidad, una de DFT y se implementa como una FFT. Debido al ordenamiento usado en el descodificador de TCX, los coeficientes de transformada X' = (X'0, . - . ,X'N-I) son tal que: - X'o corresponde al coeficiente de DC; X'x corresponde a la secuencia de Nyquist (es decir 6400 Hz puesto que la señal objetivo de dominio de tiempo se muestrea a 12.8 kHz); y los coeficientes X'2k y XA+i/ para k=l...N/2-1, son las partes real e imaginaria del componente de Fourier de la frecuencia k(/N/2) * 6400 Hz . El módulo de FFT 15.007 también fuerza X'? a 0. Después de forzar esto a cero, la señal objetivo x'w de TCX de dominio de tiempo se encuentra en el módulo de FFT 15.007 por FFT invertida.
La ganancia de TCX (global) gTC? se descodifica en el descodificador 15.008 de ganancia global de TCX al invertir la cuantificación logarítmica de 7 bits usada en el codificador de TCX. Para hacer esto, el descodificador 17.008 computa el valor de r.m.s. de la señal objetivo de TCX x'w como: rms = sqrt(l/N (xxWo2 + xwl2 + ... + xwL-?2) ) De un índice 0 < idx2 < 127, la señal de TCX se da por: gtcx = ?oidV28 (4 xrms) El paso de cuantificación (logarítmico) es de aproximadamente 0.71 dB. Esta ganancia se usa en el multiplicador 15.009 para escalar x'w en xw. De la extrapolación de modo y la estrategia de repetición de ganancia como se usa en esta modalidad ilustrativa, el índice idx2 está disponible al multiplicador 15.009. Sin embargo, en el caso de pérdidas parciales de paquetes (1 pérdida para TCX40 y hasta dos pérdidas para TCX80) , el bit menos significativo de idx2 se puede ajustar por defecto a 0 en el desmultiplexor 15.001. Puesto que el descodificador de TCX emplea el recorte en ventanas sin traslape y la remoción de ZIR ponderada antes de la codificación por transformada de la señal objetivo, la señal objetivo de TCX reconstruida x = (X0, Xi, .-., XN-I) se encuentra .realmente por traslape-adición en el módulo de síntesis 15.010. El traslape-adición depende del tipo del cuadro descodificado anterior (ACELP o TCX) . Un primer generador de ventanas multiplica la señal objetivo de TCX por una ventana adaptable w = [w0 Wi ... WN-X] : XÍ: = Xi* Wi, i = 0, ..., L-l donde w se define por i = seno (p /ovlp_len * (i+l)/2) i = 0, ..., ovlp_len-l i = 1, i = ovlp_len, ... , L-l i = cos(TT/(L-N) * (i + l-í,)/2, i=L, ..., N-l Si ovlp_len = 0 , es decir si el cuadro descodificado anterior es un cuadro de ACELP, la parte izquierda de esta ventana se salta por un medio de salto adecuado. Entonces, el traslape' del cuadro descodificado anterior (OVLP_TXC) se adiciona a través de un adicionador adecuado a la señal x recortada en ventanas : [x0 ... Xi2ßl : = [xo • • • Xußl, + OVLP TCX Si ovlp_len = 0, la OVLP TCX es la ZIR ponderada de 10 ms de ACELP (128 muestras) de x. De otro modo, OVLP_TCX = [xx...x00...0], olvp_len muestras donde ovlp_len puede ser igual a 32, 64 o 128 (2.5, 5 o 10 ms) que indica que el cuadro anteriormente descodificado es TCX20, TCX40 o TCX80, respectivamente. La señal objetivo de TCX reconstruida se da por [x0 . . . XL] y las ultimas N-L muestras se salvan en la memoria intermedia OVLP_TCX : OV P_TCX := [XL ... MÍ 00 ... 0] 128-(L-N) muestras El objetivo de TCX reconstruido se filtra en el filtro 15.011 por el filtro de percepción invertido W" 1 (z) = d-az"1) /Á(z/?) para encontrar la síntesis. La excitación se calcula en el módulo 15.012 para actualizar el libro de código adaptable de ACELP y permite conmutar desde TCX a ACELP en un cuadro subsiguiente. Se señala que la longitud de los sistemas e TCX se da por la longitud de cuadro de TCX (sin el traslape) : 20, 40 u 80 ms.
Descodificación de señal de mayor frecuencia (HF) La descodificación de la señal de HF implementa una clase de mecanismo de extensión de ancho de banda (BWE) y usa algunos datos del descodificador de LF. Es una evolución del mecanismo de BWE usado en el descodificador de voz de AMR-WB. La estructura del descodificador de HF se ilustra bajo la forma de un diagrama de bloques en la Figura 16. La cadena de síntesis de HF consiste de los módulos 16.012 a 16.014. De manera más precisa, la señal de HF se sintetiza en 2 pasos: cálculo de la señal de excitación de HF, y cómputo de la señal HF a partir de la señal de excitación HF. La excitación de HF se obtiene al formar en el dominio de tiempo (multiplicador 16.012) la señal de excitación de LF con factores escalares (o ganancias) por sub-cuadros de 5 ms . Esta excitación de HF se pos-procesa en el módulo 16.013 para reducir el "zumbido" de la salida, y entonces se filtra por un filtro de síntesis 06.014 lineal-predictivo de HF que tiene una función de transferencia 1/AHF(Z) . Como se describe en la descripción anterior, el orden de LP usado para descodificar y luego descodificar la señal de HF es 8. El resultado también se pos-procesa para suavizar las variaciones de energía en el módulo 16.015 de suavízación de energía de HF . El descodificador de HF sintetiza un súper-cuadro de HF de 80 ms . Este súper-cuadro se segmenta de acuerdo a MODO = (mo, mi, m2, m3) . Para ser más específicos, los cuadros descodificados usados en el descodificador de HF son sincrónicos con los cuadros usados en el descodificador de LF. Por lo tanto mk = 1 , mk = 2 y mk = 3 indica respectivamente un cuadro de 20 ms, 40 ms y 80 ms . Estos cuadros se refieren como HF-20, HF-40 y HF-80, respectivamente. De la cadena de síntesis descrita anteriormente, parece que los únicos parámetros necesarios para la descodificación de HF son los parámetros de ganancia y de ISF. Los parámetros de ISF representan el filtro 18.014 (l/ÁHF(z)), en tanto que los parámetros de ganancia se usan para formar la señal de excitación de LF usando el multiplicador 16.012. Estos parámetros se desmultiplexan de la corriente de bits, en el desmultiplexor 16.001 en base al MODO y conociendo el formato de la corriente de bits. La descodificación de los parámetros de HF se controla por una unidad 16.002 principal de control de descodificación de HF. De manera más particular, la unidad 16.002 principal de control de descodificación de HF controla la descodificación (descodificador de ISF 16.003) y la interpolación (módulo de interpolación de ISP 16.005) de los parámetros lineales-predictivos (LP) . La unidad principal 16.002 de control de descodificación de HF ajusta los indicadores apropiados de los cuadros deficientes a la ISF y los descodificadores de ganancia 16.003 y 16.009. También controla la memoria intermedia de salida de 16.016 de la señal de HF de modo que los cuadros descodificados empiezan a escribirse en los segmentos de tiempos correctos de la memoria intermedia de salida de 80 ms . La unidad 16.002 principal de control de descodificación de HF genera datos de control que son internos al descodificador de HF : bfi_isf_hf, BFI_GANANCIA, el número de sub-cuadros de la interpolación de ISF y un selector de cuadros para ajustar un indicador de cuadro en la memoria intermedia de salida 16.016. Excepto por el selector de cuadros que es autoexplicativo, la naturaleza de estos datos se define en más detalles más adelante en la presente: - bfi_isf_hf es un indicador binario que indica la pérdida de los parámetros de ISF. Su definición se da más adelante a partir de BFI = {bfi0, bfii, bfi2, bfi3) : Para HF-20 en el paquete k, bfi_isf_hf = bfik, Para HF-40 en los paquetes k y k + 1, bfi_isf_hf = bfi, Para HF-80 (en los paquetes k = 0 a 3) , bfi isf hf = bfio Esta definición se puede entender fácilmente en el formato de la corriente de bits. Como se indica en la descripción anterior, los parámetros de ISF para la señal de HF están siempre en el primer paquete que describe los cuadros de HF-20, HF-40 o HF-80. - BFI_GANANCIA es un vector binario usado para señalizar las pérdidas de paquetes en el descodificador de ganancia de HF: BFI_GANANCIA = {bfík) PARA HF-20 del paquete k, {bfik bfik+1) para HF-40 en los paquetes k y k + 1, BFI_GANANCIA = BFI para HF-80. - El número de súper-cuadros para la interpolación de ISF se refiere al número de sub-cuadros de 5 ms en el cuadro descodificado. Este número si 4 para HF-20, 8 para HF-40 y 16 para HF-80. El vector de ISF isf hf q se descodifica usando VQ predictiva de AR(1) en el descodificador de ISF 16.003. Si bfi_isf_hf = 0, el índice ia de 2 bits de la primera etapa y el índice i2 de 7 bits de la segunda etapa están disponibles y isf_hf_q se da por isf_hf_q = cbl (ii) + cb2 (i2) + media_isf_hf + µiSf_hf* mem_isf_hf donde cbl (ix) es el ii-ésimo vector de código de la primera etapa, cb2 (i2) es el i2-ésimo [vector de código de la segunda etapa, media_isf_hf es el vector de ISF medio, µiSf_hf = 0.5 es el coeficiente de predicción de AR(1) y mem_isf_hf es la memoria del descodificador predictivo de ISF. Si bfi_isf_hf = 1, el vector de ISF descodificado corresponde al vector de ISF anterior desplazado hacia el vector de ISF medio: isf_hf_q = oíisf jf* mem_isf_hf + media_isf_hf con aisf if = 0.9. Después del cálculo de isf_hf_q, el reordenamiento de ISF definido en la codificación de voz de AMR-WB se aplica a isf_hf_q con una separación de ISF de 180 Hz. Finalmente la memoria, mem_isf__hf. se actualiza para el siguiente cuadro de HF como : mem_isf_hf = isf_hf_q - media_isf_hf El valor inicial de mem_isf_hf (en el reajuste del descodificador) es cero. El convertidor 16.004 convierte los parámetros de ISF (en el dominio de frecuencia) en parámetros de ISP (en el dominio de coseno) . El módulo 16.005 de interpolación de ISP realiza una interpolación lineal simple entre los parámetros de ISP del cuadro de HF descodificado anterior (HF-20, HF-40 o HF-8) y los nuevos parámetros de ISP descodificados. La interpolación se lleva a cabo en el dominio de ISF y da por resultado parámetro de ISF para cada súper-cuadro de 5 ms, de acuerdo a la fórmula: ÍSPsubcuadro-/ i/nb * ÍSpnuevo + ( 1 - i/nb) * ÍSpanterior donde nb es el número de súper-cuadros en el cuadro descodificado actual (nb = 4 para HF-20, 8 para HF-40, 16 para HF-80) , i = 0, ..., nb-1 es el índice de súper-cuadro, is anterio es el conjunto de parámetros de ISP obtenido de los parámetros de ISF del cuadro de HF anteriormente descodificado ispnuevo es el conjunto de parámetros de ISP obtenido de los parámetros de ISF descodificados en el procesador 18.003. El convertidor 10.006 entonces convierte los parámetros de ISP interpolados en coeficientes lineales-predictivos cuantificados ÁFZ(Z) para cada súper-cuadro. El cómputo de la ganancia gCOrrespondencia en dB en el módulo 16.007 se describen en los siguientes párrafos. Esta ganancia se interpola en el módulo 16.008 para cada subcuadro de 5 ms en base al valor anterior anterior_gCOrrespondencia como : g¡ - ílnb * Srcorrcspondencia+ (A/7/7Í?) * anterior _.<?CorreSp donde nb es el número de sub-cuadros en el cuadro descodificado actual (nb = 4 para HF-20, 8 para HF-40 y 16 para HF-80) , i = O, ..., nb~l es el subíndice de súper-cuadro. Esto da por resultado un vector (g0, ... nb-i) • Cómputo de estimación de ganancia para corresponder la magnitud a 6400 Hz (Módulo 16.007) En la Figura 10b se describe el procesador 16.007. Puesto que este proceso usa sólo la versión cuantificada de los filtros LPC, es idéntico a lo que el codificador ha computado en la etapa equivalente. Un sinusoide amortiguado de frecuencia 6400 Hz se genera al computar las primeras 64 muestras [h(0) h(l) ... h(63)] de la respuesta de impulso h(n) del filtro auto-regresivo del primer orden 1/(1 + 0.9 z'1) que tiene un polo z = -0.9 (filtro 10.017) . La señal h(n) de 5 ms se procesa a través del predictor (estado cero) Á(z) de orden 16 cuyos coeficientes se toman del descodificador de LF (filtro 10.018), y entonces el resultado reprocesa a través del filtro de síntesis (estado cero) 1/ÁHF(Z) del orden de 8 cuyos coeficientes se toman del descodificador HF (filtro 10.018) para obtener la señal x(n) . Los dos conjuntos de los coeficientes de LP corresponden al último sub-cuadro del cuadro HF-20, HF-40 o HF-80 descodificado actual. Entonces se computa una ganancia de corrección en dB como gCorresondencia = 10 logao [l/(x(0)2 + x(l)2 + ... + x(63)2)] como se ilustra en el módulo 10.028.
Recordar que la frecuencia de muestreo de las señales tanto de LF como HF es 12800 Hz . Adicionalmente, la señal de LF corresponde a la señal de audio de baja pasada, en tanto que la señal de HF es espectralmente una versión plegada de la señal de audio de alta pasada. Si la señal de HF es un sinusoide a 6400 Hz llega a ser después d el banco de filtro de síntesis un sinusoide a 6400 Hz y no 12800 Hz . Como consecuencia, parece que gCOrrespondencia se designa de modo que la magnitud de la respuesta de frecuencia plegada de 10A (gCorrespondencia/20) /AHF(Z) corresponde a la magnitud de la respuesta de frecuencia de 1/A(z) alrededor de 6400 Hz .
Descodificación de ganancias de corrección y cómputo de ganancia (descodificador de ganancia 16.009) Como se describe en la descripción anterior, después de la interpolación de ganancia, el descodificador de HF obtiene del módulo 16.008 las ganancias estimadas (ges 0, gest?, gestnb-?) en dB para cada uno de los nb sub-cuadros del cuadro descodificado actual. Adicionalmente, nb = 4, 8 y 16 en HF-20, HF-40 y HF-80, respectivamente. El papel de descodificador de ganancia 16.009 es descodificar las ganancias de corrección en dB que se adicionarán, a través del acondicionador 16.010, a las ganancias estimadas por sub-cuadro para formar las ganancias de descodificación. g0, ci, ... , §rib-?: { §o (dB)- S? (dB), .... (g0 , gl , .- £„*.,) + (lo. Si S -?) donde (fo.f, S,lb,) = « . ^1 ?-?) + (? ? .... ?.?)..
Por lo tanto, la descodificación de ganancia corresponde a la descodificación de la cuantificación VQ-escalar de dos etapas predictiva, donde la predicción se da por la ganancia de correspondencia de 6400 Hz interpolada. La dimensión de la cuantificación es variable y es igual a nb.
Descodificación de la primera etapa: El índice de 7 bits 0 = index = 127 del libro de códigos de ganancia de HF 4 -dimensional de primera etapa se descodifica en 4 ganancias (G0, Gx, G , G3) . Un indicador de cuadros eficientes bfi = BFI_GANANCIA0 en HF-20, HF-40 y HF-80 permite manejar las pérdidas de paguetes. Si bfi = 0, estas ganancias se descodifican como (G0, Gi, G2, G3) =ch_ganancia_hf (idx) +media_ganancia_hf donde cb_ganancia_hf (idx) es el idx-ésimo vector de código del libro de código cb_ganancias_hf . Si bfi = 1 , una memoria anterior_ganancia_ hf_q se desplaza hacia -20 dB : anterio _ganancia_hf_q: = agaanci_hf * anterior_ganancia_hf_q +20) - 20. donde aganancia_hf = 0.9 y las 4 ganancias (G0, Gi, G2, G3) se ajustan al mismo valor: Gk = anterior_ganancia_hf_q + media_ganancia_hf , para k=0, 1 , 2 y 3 . Entonces, la memoria anterior_ganancia_hf_g se actualiza como: anterio _ganancia_hf_q: (G0, Gx, G2, G3)/4- media_ganancia_hf El cómputo de la reconstrucción de primera etapa se da como : HF-20: {fo, fu fz , fs) = (Go, G,, G2, G3).
HF-40: {fo, -, fr) = (Go, G0l G\, G,, Gz, G2, G3, G3).
HF-80: {fo, fu -, f ) = (Go, G0, G0r G0, G?, Gi. G1f G,, G2l G2, G2, G2) G3, G3, G3, G3).
Descodificación de segunda etapa: En TCX20, (gc2o, gc2?, gc22, gc23) simplemente se ajusta a (0,0,0,0) y no hay descodificación de segunda etapa real. En HF-40, el índice de 2 bits 0 = idx¿ < 3 del i-ésimo sub-cuadro, donde i = 0, .., 7, se descodifica como: Si bfi = 0 , gc2? = 3 * idxi - 4.5 entonces gc2! = 0. En TCX80, el índice de 3 bits de 16 sub-cuadros, el 0 = idxx = 7 del i-ésimo sub-cuadro, donde i = 0, ..., 15, se descodifica como: Si bfi = 0, gc2? = 3 * idx - 10.5 entonces gc2? = O. En TCX40, la magnitud del segundo refinamiento escalar es hasta ± 4.5 dB y en TCX80 hasta ± 10.5 dB . En ambos casos, el paso de cuantificación es 3 dB.
Reconstrucción de ganancia HF: La ganancia para cada sub-cuadro entonces se computa en el módulo 16.011 como: ?o91/20 Módulo 16.013 de reducción de zumbido y módulo 16.015 de suavización de energía de HF El papel del módulo 16.013 de reducción de zumbido es atenuar los impulsos en la señal rHF (n) de filtración de HF en el dominio de tiempo, gue frecuentemente causan gue la salida de audio suene "zumbido" . Los impulsos se detectan al verificar si el valor absoluto |rHF(n) | > 2* thres (n) , donde thres (n) es un umbral adaptable gue corresponde a la envoltura del dominio de tiempo de rHp(n). Las muestras rHF(n) gue se detectan como impulsos se limitan a ± 2 * thres (n) , donde ± es el signo de rHF (n) . Cada muestra rHF(n) de la excitación de HF se filtra por un filtro de baja pasada de primer orden 0.02/(1-0.98 z"1) para actualizar thres (n) . El valor inicial de thres (n) (en el reajuste del descodificador) es 0. La amplitud de la atenuación de impulsos se da por: ? = max( |rHF(n) ] -2*thres (n) , 0.0). De esta manera, ? se ajusta a 0 si la muestra no se detecta como un impulso, gue dejará rHF (n) sin cambio. Entonces, el valor actual thres (n) del umbral adaptable se cambia co o: thres (n) : = thres (n) + 0.5* ? . Finalmente, cada muestra rF (n) se modifica a: rHF (n) = r?F (n) -? rHF(n) 0, y rHF (n) = rHF (n) + ? de otro modo. Las variaciones de energía a corto plazo de la síntesis de HF sHF (n) se suavizan en el módulo 16.015. La energía remide por sub-cuadro. La energía de cada subcuadro se modifica por hasta ± 1.5 dB en base a un umbral adaptable . Para un sub-cuadro dado [SHF(0) SHF(1) ... sHF(63)], la energía del sub-cuadro se calcula como e 2 = 0.0001 + SHF(0)2 + SHF(D2 + ... + sHF(63)2.
El valor t del umbral se actualiza como: t = min(e 2 * 1.414, t) , si e 2 < t. max(e 2/l.414, 5), de otro modo.
El sub-cuadro actual entonces se escala por (t/ e 2) : [S'HF(O) S'HF( Í) • • • s'HF(63)] = (t / e2) * [sríF{0) sHF{ 1) ... sHF{63)] Banco de filtro de síntesis y pos-procesamiento El pos-procesamiento de la síntesis de LF y HF y la recombinación de las dos bandas en el ancho de banda de audio original se ilustran en la Figura 17. La síntesis de LF (gue es la salida del descodificador de ACELP/TCX) se pre-enfatiza primero por el filtro 17.001 de la función de transformada 1/ (l-apreénfasis Z~ x) donde pre-énfasis = 0.75. El resultado se pasa a través de un pos-filtro 17.002 de alturadetono de LF para reducir el nivel del ruido de codificación entre las alturas de tono sólo en los segmentos descodificados de ACELP. Este posfiltro toma como parámetros las ganancia de alturadetono gp = (gpo/ gpi • - • / STpis) y lo retrasos de alturadetono T = (To, T2, ..-, T?5) para cada sub-cuadro de 5 ms del súper-cuadro de 80 ms . Estos vectores, gp y T se toman del descodificador de ACELP/TCX. El filtro 17.003 es el filtro de alta pasada de 50 Hz del segundo orden usado en la codificación de voz de AMR-WB. El pos-procesamiento de la síntesis de HF se hace a través de un módulo 17.005 de retraso, gue realiza una alineación simple de tiempo de la síntesis de HF para hacerla sincrónica con la síntesis de LF pos-procesada. La síntesis de HF de esta manera se retrasa por 76 muestras para compensar el retraso generado por el pos-filtro 17.002 de alturadetono de LF. El banco de filtro de síntesis de realiza por el módulo 17.004 de muestreo ascendente de LP, el módulo 17.007 de muestreo ascendente de HF y el adicionador 17.008. La velocidad de muestreo de salida FS = 16000 o 24000 Hz se especifica como un parámetro. El muestro ascendente desde 12800 Hz a FS en los módulos 17.004 y 17.007 se implementa de una manera similar como la codificación de voz de AMR-WB. Cuando FS = 16000, las señales pos-filtradas de LF y HF se muestrean ascendentemente por 5, se procesan por un filtro de FIR de 120-ésimo orden, luego se muestrean de manera descendente por 4 y se escalan por 5/4. La diferencia entre los módulos 17.004 y 17.007 de muestreo ascendente se relaciona con los coeficientes del filtro de FIR de 120-ésimo orden. De manera similar, cuando FS = 24000, la señal es pos-filtrada de LF y HF se muestrean ascendentemente por 15, se procesan por un filtro de FIR de 368-ésimo orden, luego se muestrean descendentemente por 8 y se ponen a escala por 15/8. El adicionador 17.008 combina finalmente las dos señales de LF y HF mostradas ascendentemente para formar el súper-cuadro de 80 ms de la señal de audio de salida. Aungue la presente invención se ha descrito anteriormente a manera de modalidad ilustrativa no restrictiva, se debe mantener en mente gue estas modalidades se pueden modificar a voluntad, dentro del alcance de las reivindicaciones anexas sin apartarse del alcance, la naturaleza y espíritu de la presente invención.
Tabla A-l Lista de símbolos claves de acuerdo con la modalidad ilustrativa de la invención (a) cuantificación de vector de RE8 de multi-velocidad, auto-escalable (b) cuantificación de vector de RE8 de multi-velocidad auto- escalable de división. (c) codificación por transformada en base a la cuantificación de vector de RE8 de multi-velocidad, auto- escalable, de división Referencias (Jayant, 1984) N.S. Jayant and P. Noli, Digital Coding of Waveforms Principies and Applications to Speech and Video, Prentice-Hall: 1984 Tabla 4 Asignación de bit para un cuadro de ACELP de 20 ms Tabla 5a Asignación de bit para un cuadro de TCX de 20 ms Tabla 5b Asignación de bit para un cuadro de TCX de 40 ms •P- Tabla 5c Asignación de bit para un cuadro de TCX de 80 ms Oí O Tabla 6 Asignación de bit para extensión de ancho de banda

Claims (33)

  1. REIVINDICACIONES 1. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual, una señal ponderada, caracterizado porque comprende: calcular una respuesta de entrada cero del filtro de ponderación; recortar en ventanas la respuesta de entrada a cero de modo que la respuesta de .entrada cero tiene una amplitud que disminuye de forma monotónica a cero después de un periodo de tiempo predeterminado; y en el cuadro actual, remover de la señal ponderada la respuesta de entrada cero, recortada en ventanas.
  2. 2. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 1, caracterizado porque el cálculo de una respuesta de entrada a cero del filtro de ponderación comprende calcular una respuesta de entrada a cero en el dominio ponderado.
  3. 3. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conf.ormidad con la reivindicación 1, caracterizado porque el primer modo de codificación es un modo de codificación de ACELP y el segundo modo de codificación es un modo de codificación de TCX.
  4. 4. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 1, caracterizado porque el recorte en ventanas de la respuesta de entrada cero comprende truncar la respuesta de entrada cero al periodo de tiempo predeterminado .
  5. 5. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 1, caracterizado porque comprende, después de que se ha removido la respuesta de entrada cero a recortar en ventanas de la señal ponderada, recortada en ventanas la señal ponderada, en un cuadro de TCX de duración predeterminada.
  6. 6. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 1, caracterizado porgue además comprende transformar en el dominio de frecuencia la señal ponderada recortada en ventanas en un cuadro de TCX de duración predeterminada .
  7. 7. Descodificador para descodificar una señal de HF de conformidad con la reivindicación 1, caracterizado porque : - el descodificador que extrae los coeficientes de LPC comprenden un extractor de los coeficientes cuantificados de LPC AHF(Z) de la señal de HF codificada; y - la calculadora de una estimación de la ganancia de HF comprende : una calculadora de 64 muestras de un sinusoide decadente h (n) a la frecuencia Nyquist TT radianes por muestra al filtrar un impulso unitario d (n) a través de un filtro de un polo de la forma 1/1(1 + 0.9Z"1); un filtro de LPC de LF A(Z) para filtrar la sinusoide decadente h(n) para obtener una residual de baja frecuencia, en donde ?A(z) representa los coeficientes de LPC cuantificados de LF de un descodificador de LF; un filtro de síntesis de LPC de HF l/'AHF(z) para filtrar la sinusoide decadente filtrada h(n) para obtener una señal de síntesis x(n); y una calculadora de una inversa multiplicativa de la energía de la señal de síntesis x(n) , y que la expresa en el dominio logarítmico, para producir una ganancia gcorrespondencia / Y un interpolador de la ganancia gCorrespondencia para producir la estimación de la ganancia de HF.
  8. 8. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual, una señal ponderada, caracterizado porgue gue comprende : calcular una respuesta de entrada cero del filtro de ponderación; recortar en ventanas la respuesta de entrada cero de modo gue la respuesta de entrada cero tenga una amplitud gue disminuya de forma monotónica cero después de un periodo de tiempo predeterminado; y en el cuadro actual, remover de la señal ponderada, la respuesta de entrada cero recortada en ventanas .
  9. 9. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porgue el cálculo de una respuesta de entrada cero del filtro de ponderación 'comprende calcular una respuesta de entrada cero en el dominio ponderado .
  10. 10. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porque el primer modo de codificación es un modo de codificación de ACELP y el segundo modo de codificación es un modo de codificación de TCX.
  11. 11. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porque el recorte en ventanas de la respuesta de entrada cero comprende truncar la respuesta de entrada cero al periodo de tiempo predeterminado .
  12. 12. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porque comprende, después de que se ha removido de la señal ponderada a la respuesta de entrada cero recortada en ventanas, recortar en ventanas la señal ponderada en un cuadro de TCX de duración predeterminad .
  13. 13. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porque además comprende transformar en el dominio de frecuencia la señal ponderada recortada en ventanas en un cuadro de TCX de duración predeterminad .
  14. 14. Método para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 8, caracterizado porque el filtro de ponderación es un filtro de ponderación de percepción.
  15. 15. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación para producir, en el cuadro actual, una señal ponderada, caracterizado porque comprende : un medio para calcular una respuesta de entrada cero del filtro de ponderación; un medio para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tiene una amplitud que disminuye de manera monotónica a cero después de un periodo de tiempo predeterminado; y un medio para remover, en el cuadro actual, la respuesta de entrada cero recortada en ventanas de la señal ponderada .
  16. 16. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido en la unión entre un cuadro anterior codificado de acuerdo al primer modo de codificación y un cuadro actual codificado de acuerdo al segundo modo de codificación, en donde la señal de sonido se filtra a través de un filtro de ponderación, para producir en el cuadro actual, una - señal ponderada, caracterizado porque comprende: una calculadora de una respuesta de entrada cero de filtro de ponderación; un generador de ventanas para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tiene una amplitud que disminuye de forma monotónica a cero después de un periodo de tiempo predeterminado; y un adicionador para remover, en el cuadro actual la respuesta de entrada cero recortada en ventana de la señal ponderada.
  17. 17. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque la calculadora de respuesta de entrada cero calcula una respuesta de entrada cero en el dominio ponderado.
  18. 18. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque el primer modo de codificación es un modo de codificación de ACELP y el segundo modo de codificación es un modo de codificación de TCX.
  19. 19. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque el generador de ventanas trunca la respuesta de entrada cero al periodo de tiempo predeterminado.
  20. 20. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque comprende otro generador de ventanas para recortar en ventanas, después de que se ha removido de la señal ponderada la respuesta de entrada cero reportada en ventanas, la señal ponderada en un cuadro de TCX de duración predeterminada.
  21. 21. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque además comprende un módulo de transformada de frecuencia que, en la duración, transforma en el dominio de frecuencia la señal ponderada recortada en ventanas en un cuadro de TCX de duración predeterminada.
  22. 22. Dispositivo para conmutar desde un primer modo de codificación de señales de sonido a un segundo modo de codificación de señales de sonido de conformidad con la reivindicación 15, caracterizado porque el filtro ponderación es un filtro de ponderación de percepción.
  23. 23. Método para producir a partir de una señal objetivo descodificada, una señal objetivo de traslape-adición en un cuadro actual codificado de acuerdo a un primer modo de codificación, caracterizado porque comprende: recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; saltar una porción izquierda de la ventana; calcular una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo a un segundo modo de codificación, y recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tiene una amplitud que disminuye de forma monotónica cero después de un periodo de tiempo predeterminado; y adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición.
  24. 24. Método para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 23, caracterizado porque comprende ponderar la respuesta de entrada cero calculada antes del recorte en ventanas de la respuesta de entrada cero calculada.
  25. 25. Método para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 23, caracterizado porque la ponderación de la respuesta de entrada cero calculada comprende ponderar de manera perceptiva la respuesta de entrada cero calculada.
  26. 26. Método para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 23, caracterizado porque comprende salvar en una memoria intermedia una última porción de las muestras del cuadro actual .
  27. 27. Método para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 23, caracterizado porque la respuesta de entrada cero, calculada, recortada en ventanas, tiene una amplitud que disminuye de manera monotónica a cero después de 10 ms .
  28. 28. Dispositivo para producir una señal objetivo de traslape-adición a partir de una señal objetivo descodificada, en un cuadro actual codificado de acuerdo a un primer modo de codificación, caracterizado porque comprende : un medio para recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; un medio para saltar una porción izquierda de la ventana; un medio para calcular una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo a un segundo modo de codificación, y un medio para el recorte en ventanas de la respuesta de entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuya de forma monotónica cero después de un periodo de tiempo predeterminado; y un medio para adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición.
  29. 29. Dispositivo para producir una señal objetivo de traslape-adición a partir de una señal objetivo descodificada, en un cuadro actual codificado de acuerdo a un primer modo de codificación, caracterizado porque comprende : un primer generador de ventanas para recortar en ventanas la señal objetivo descodificada del cuadro actual en una ventana dada; un medio para saltar una porción izquierda de la ventana; una calculadora de una respuesta de entrada cero de un filtro de ponderación del cuadro anterior codificado de acuerdo a un segundo modo de codificación, y un segundo generador de ventanas para recortar en ventanas la respuesta de entrada cero de modo que la respuesta de entrada cero tenga una amplitud que disminuya de forma monotónica cero después de un periodo de tiempo predeterminado; y un adicionador para adicionar la respuesta de entrada cero calculada a la señal objetivo descodificada para reconstruir la señal objetivo de traslape-adición.
  30. 30. Dispositivo para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 28, caracterizado porque comprende, un filtro para ponderar la respuesta de entrada cero calculada antes del recorte en ventanas de una respuesta de entrada cero calculada.
  31. 31. Dispositivo para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 28, caracterizado porque el filtro de ponderación es un filtro de ponderación porcentual .
  32. 32. Dispositivo para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 28, caracterizado porque una memoria intermedia para salvar al menos una porción de las muestras del cuadro actual .
  33. 33. Dispositivo para producir una señal objetivo de traslape-adición de conformidad con la reivindicación 28, caracterizado porque la respuesta de entrada cero, calculada, ponderada tiene una amplitud que disminuye de forma monotónica a cero después de 10 ms .
MXPA/A/2006/009342A 2004-02-18 2006-08-17 Metodos y dispositivos para enfasis a baja frecuencia durante compresion de audio basado en prediccion lineal con excitacion por codigo algebraico/excitacion codificada por transformada (acelp/tcx) MXPA06009342A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA2,457,988 2004-02-18

Publications (1)

Publication Number Publication Date
MXPA06009342A true MXPA06009342A (es) 2007-04-20

Family

ID=

Similar Documents

Publication Publication Date Title
CA2556797C (en) Methods and devices for low-frequency emphasis during audio compression based on acelp/tcx
EP1899962B1 (en) Audio codec post-filter
US20070147518A1 (en) Methods and devices for low-frequency emphasis during audio compression based on ACELP/TCX
RU2696292C2 (ru) Аудиокодер и декодер
US6708145B1 (en) Enhancing perceptual performance of sbr and related hfr coding methods by adaptive noise-floor addition and noise substitution limiting
KR101998609B1 (ko) 혼합형 시간-영역/주파수-영역 코딩 장치, 인코더, 디코더, 혼합형 시간-영역/주파수-영역 코딩 방법, 인코딩 방법 및 디코딩 방법
KR101698905B1 (ko) 정렬된 예견 부를 사용하여 오디오 신호를 인코딩하고 디코딩하기 위한 장치 및 방법
KR102105044B1 (ko) 낮은 레이트의 씨이엘피 디코더의 비 음성 콘텐츠의 개선
KR102380487B1 (ko) 오디오 신호 디코더에서의 개선된 주파수 대역 확장
KR20140085453A (ko) 음성 신호 부호화 방법 및 복호화 방법과 이를 이용하는 장치
EP2936484B1 (en) Apparatus and method for processing an encoded signal and encoder and method for generating an encoded signal
MXPA06009342A (es) Metodos y dispositivos para enfasis a baja frecuencia durante compresion de audio basado en prediccion lineal con excitacion por codigo algebraico/excitacion codificada por transformada (acelp/tcx)
RU2793725C2 (ru) Аудиокодер и декодер
RU2574849C2 (ru) Устройство и способ для кодирования и декодирования аудиосигнала с использованием выровненной части опережающего просмотра