ES2460893T3 - Sistemas, procedimientos y aparato para limitar el factor de ganancia - Google Patents

Sistemas, procedimientos y aparato para limitar el factor de ganancia Download PDF

Info

Publication number
ES2460893T3
ES2460893T3 ES07853508T ES07853508T ES2460893T3 ES 2460893 T3 ES2460893 T3 ES 2460893T3 ES 07853508 T ES07853508 T ES 07853508T ES 07853508 T ES07853508 T ES 07853508T ES 2460893 T3 ES2460893 T3 ES 2460893T3
Authority
ES
Spain
Prior art keywords
value
signal
index
gain factor
quantization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES07853508T
Other languages
English (en)
Inventor
Ananthapadmanabhan A. Kandhadai
Venkatesh Krishnan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2460893T3 publication Critical patent/ES2460893T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition

Abstract

Un procedimiento de codificación de una señal (S10) vocal de banda ancha que incluye generar un valor (S60b) de factor de ganancia cuantizado, comprendiendo dicho procedimiento: calcular un valor (TQ10) de factor de ganancia basado en una razón o una diferencia entre (A) un envolvente temporal de una parte en el tiempo de una primera señal (S30) de banda alta de la señal (S10) vocal de banda ancha y (B) un envolvente temporal de una parte correspondiente en el tiempo de una segunda señal basada una señal (S50) codificada de excitación, obtenida a partir de una señal (S20) de banda estrecha de la señal (S10) vocal de banda ancha; seleccionar un primer índice entre un conjunto ordenado de valores de cuantización correspondientes al valor (TQ20) del factor de ganancia; caracterizado porque el procedimiento comprende adicionalmente: determinar si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor (TQ30, TQ32) calculado del factor de ganancia; y si el valor de cuantización indicado por el primer índice es mayor que el valor basado en el valor calculado del factor de ganancia, seleccionar un segundo índice entre el conjunto ordenado de valores de cuantización, teniendo el segundo índice un valor de cuantización inferior al del primer índice, y usar el segundo índice como el valor (TQ50, TQ52) cuantizado del factor de ganancia; o si el valor de cuantización indicado por el primer índice no es mayor que el valor basado en el valor calculado del factor de ganancia, usar el primer índice como el valor cuantizado del factor de ganancia.

Description

Sistemas, procedimientos y aparato para limitar el factor de ganancia
Campo
La presente revelación se refiere a la codificación vocal.
Antecedentes
Las comunicaciones de voz por la red telefónica conmutada pública (PSTN) han estado tradicionalmente limitadas en el ancho de banda a la gama de frecuencias entre 300 y 3.400 kHz. Las nuevas redes para las comunicaciones de voz, tales como la telefonía celular y la voz sobre IP (Protocolo de Internet, VoIP), pueden no tener los mismos límites del ancho de banda, y puede ser deseable transmitir y recibir comunicaciones de voz que incluyan una gama de frecuencias de banda ancha por tales redes. Por ejemplo, puede ser deseable dar soporte a una gama de frecuencias de audio que se extienda hacia abajo hasta los 50 Hz y / o hacia arriba hasta los 7 u 8 kHz. También puede ser deseable dar soporte a otras aplicaciones, tales como el audio de alta calidad o las conferencias de audio / vídeo, que puedan tener contenido vocal de audio en gamas fuera de los tradicionales límites de la PSTN.
La extensión de la gama con soporte en un codificador vocal, hacia frecuencias mayores, puede mejorar la inteligibilidad. Por ejemplo, la información que diferencia a las fricativas tales como la ‘s’ y la ‘f’ está mayormente en las altas frecuencias. La extensión de la banda alta también puede mejorar otras cualidades vocales, tales como la presencia. Por ejemplo, incluso una vocal sonora puede tener energía espectral muy por encima del límite de la PSTN.
Un enfoque para la codificación vocal de banda ancha implica ajustar a escala una técnica de codificación vocal de banda estrecha (p. ej., una configurada para codificar la gama entre los 0 y los 4 kHz) para cubrir el espectro de banda ancha. Por ejemplo, una señal vocal puede ser muestreada a una tasa superior para incluir componentes en altas frecuencias, y una técnica de codificación de banda estrecha puede ser reconfigurada para usar más coeficientes de filtro para representar esta señal de banda ancha. Las técnicas de codificación de banda estrecha tales como la CELP (predicción lineal excitada de libro de códigos) son intensivas en términos de cálculo, sin embargo, y un codificador de CELP de banda ancha puede consumir demasiados ciclos de procesamiento para ser práctico para muchas aplicaciones móviles y otras aplicaciones empotradas. La codificación del espectro entero de una señal de banda ancha en una calidad deseada, usando una técnica de ese tipo, también puede llevar a un aumento inaceptablemente grande en el ancho de banda. Además, la transcodificación de una señal codificada de ese tipo sería requerida incluso antes de que su parte de banda estrecha pudiera ser transmitida hacia, y / o descodificada por, un sistema que solamente dé soporte a la codificación de banda estrecha.
Puede ser deseable implementar la codificación vocal de banda ancha de modo que al menos la parte de banda estrecha de la señal codificada pueda ser enviada a través de un canal de banda estrecha (tal como un canal de la PSTN) sin transcodificación u otra modificación significativa. La eficacia de la extensión de codificación de banda ancha también puede ser deseable, por ejemplo, para evitar una reducción significativa en el número de usuarios que pueden ser servidos en aplicaciones tales como la telefonía celular inalámbrica y la difusión por canales cableados e inalámbricos.
Otro enfoque para la codificación vocal de banda ancha implica codificar la banda estrecha y partes de la banda alta de una señal vocal como sub-bandas separadas. En un sistema de este tipo, puede ser realizada una eficacia aumentada con la obtención de una excitación para el filtro de síntesis de banda alta, a partir de información ya disponible en el descodificador, tal como la señal de excitación de banda estrecha. La calidad puede ser aumentada en un sistema de ese tipo incluyendo en la señal codificada una serie de factores de ganancia que indiquen una relación variable en el tiempo entre un nivel de la señal original de banda alta y un nivel de la señal sintetizada de banda alta.
Como ilustración, el documento U. S. 2005 / 0004793 A1 (Ojala et al.) del 6 de enero de 2005 (06.01.2005) revela un procedimiento de codificación vocal de banda ancha que codifica por separado la banda estrecha y la señal vocal de banda alta, y en el cual un factor de ganancia es determinado en base a la relación entre las energías de una señal basada en una señal de banda alta de la señal vocal de banda ancha, y una señal basada en la señal de excitación obtenida de una señal de banda estrecha de la señal vocal de banda ancha. El factor de ganancia determinado, y posiblemente ajustado, es finalmente cuantizado y transmitido al extremo receptor.
Sumario
Un procedimiento de codificación de una señal vocal de banda ancha según una configuración incluye calcular un factor de ganancia en base a una relación entre (A) una parte en el tiempo de una primera señal de banda alta de una señal vocal de banda ancha y (B) una parte correspondiente en el tiempo de una segunda señal basada en una señal de excitación codificada, obtenida de una señal de banda estrecha de la señal vocal de banda ancha, según la reivindicación 1.
Un aparato para el procesamiento vocal según otra configuración incluye un aparato de acuerdo a la reivindicación 8.
Breve descripción de los dibujos
La FIGURA 1a muestra un diagrama de bloques de un codificador A100 vocal de banda ancha.
La FIGURA 1b muestra un diagrama de bloques de una implementación A102 del codificador A100 vocal de banda ancha. La FIGURA 2a muestra un diagrama de bloques de un descodificador B100 vocal de banda ancha. La FIGURA 2b muestra un diagrama de bloques de una implementación B102 del codificador B100 vocal de banda
ancha.
La FIGURA 3a muestra la cobertura del ancho de banda de las bandas baja y alta para un ejemplo del banco A110 de filtros. La FIGURA 3b muestra la cobertura del ancho de banda de las bandas baja y alta para otro ejemplo del banco A110 de
filtros.
La FIGURA 4a muestra un ejemplo de un gráfico de la frecuencia con respecto al logaritmo de la amplitud para una señal vocal. La FIGURA 4b muestra un diagrama de bloques de un sistema de codificación de predicción lineal básica. La FIGURA 5 muestra un diagrama de bloques de una implementación A122 del codificador A120 de banda estrecha. La FIGURA 6 muestra un diagrama de bloques de una implementación B112 del descodificador B110 de banda
estrecha.
La FIGURA 7a muestra un ejemplo de un gráfico de la frecuencia con respecto al logaritmo de la amplitud para una señal residual para el habla sonora. La FIGURA 7b muestra un ejemplo de un gráfico del tiempo con respecto al logaritmo de la amplitud para una señal
residual para el habla sonora.
La FIGURA 8 muestra un diagrama de bloques de un sistema de codificación de predicción lineal básica que también realiza la predicción a largo plazo. La FIGURA 9 muestra un diagrama de bloques de una implementación A202 del codificador A200 de banda alta. La FIGURA 10 muestra un diagrama de flujo para un procedimiento M10 de codificación de una parte de banda alta. La FIGURA 11 muestra un diagrama de flujo para una tarea T200 de cálculo de ganancia. La FIGURA 12 muestra un diagrama de flujo para una implementación T210 de la tarea T200 de cálculo de ganancia. La FIGURA 13a muestra un diagrama de una función de formación de ventanas. La FIGURA 13b muestra una aplicación de una función de formación de ventanas, como se muestra en la FIGURA 13a,
a las sub-tramas de una señal vocal.
La FIGURA 14a muestra un diagrama de bloques de una implementación A232 del calculador A230 del factor de ganancia de banda alta. La FIGURA 14b muestra un diagrama de bloques de una disposición que incluye el calculador A232 del factor de
ganancia de banda alta.
La FIGURA 15 muestra un diagrama de bloques de una implementación A234 del calculador A232 del factor de ganancia de banda alta. La FIGURA 16 muestra un diagrama de bloques de otra implementación A236 del calculador A232 del factor de
ganancia de banda alta.
La FIGURA 17 muestra un ejemplo de una correlación unidimensional, como puede ser realizada por un cuantizador escalar. La FIGURA 18 muestra un ejemplo sencillo de una correlación multidimensional, según lo realizado por un cuantizador
vectorial. La FIGURA 19a muestra otro ejemplo de una correlación unidimensional, como puede ser realizada por un cuantizador escalar.
La FIGURA 19b muestra un ejemplo de una correlación de un espacio de entrada con regiones de cuantización de distintos tamaños.
La FIGURA 19c ilustra un ejemplo en el cual el valor cuantizado para un valor R del factor de ganancia es mayor que el valor original.
La FIGURA 20a muestra un diagrama de flujo para un procedimiento M100 de limitación del factor de ganancia, según una implementación general.
La FIGURA 20b muestra un diagrama de flujo para una implementación M110 del procedimiento M100.
La FIGURA 20c muestra un diagrama de flujo para una implementación M120 del procedimiento M100.
La FIGURA 20d muestra un diagrama de flujo para una implementación M130 del procedimiento M100.
La FIGURA 21 muestra un diagrama de bloques de una implementación A203 del codificador A202 de banda alta.
La FIGURA 22 muestra un diagrama de bloques de una implementación A204 del codificador A203 de banda alta.
La FIGURA 23a muestra un diagrama operativo para una implementación L12 del limitador L10.
La FIGURA 23b muestra un diagrama operativo para otra implementación L14 del limitador L10.
La FIGURA 23c muestra un diagrama operativo para un implementación adicional L16 del limitador L10.
La FIGURA 24 muestra un diagrama de bloques para una implementación B202 del descodificador B200 de banda alta.
Descripción detallada
Puede ocurrir una distorsión audible cuando, por ejemplo, la distribución de energía entre las sub-bandas de una señal descodificada es inexacta. Una tal distorsión puede ser notablemente desagradable para un usuario y puede por tanto reducir la calidad percibida del codificador.
A menos que esté expresamente limitado por su contexto, el término “cálculo” es usado en la presente memoria para indicar cualquiera de sus significados corrientes, tales como cómputo, generación y selección entre una lista de valores.
Allí donde el término “comprende” es usado en la presente descripción y las reivindicaciones, no excluye otros elementos u operaciones. El término “A se basa en B” se usa para indicar cualquiera de sus significados corrientes, incluyendo los casos (i) “A es igual a B” y (ii) “A se basa por lo menos en B”. El término “Protocolo de Internet” incluye la versión 4,
según lo descrito en la RFC (Solicitud de observaciones) 791 de la IETF (Fuerza de tareas de ingeniería de Internet), y versiones posteriores, tales como la versión 6.
La FIGURA 1a muestra un diagrama de bloques de un codificador A100 vocal de banda ancha, que puede ser configurado para realizar un procedimiento según lo descrito en la presente memoria. El banco A110 de filtros está configurado para filtrar una señal S10 vocal de banda ancha, para producir una señal S20 de banda estrecha y una señal S30 de banda alta. El codificador A120 de banda estrecha está configurado para codificar la señal S20 de banda estrecha, para producir los parámetros S40 de filtrado de banda estrecha (NB) y una señal residual S50 de banda estrecha. Según se describe en mayor detalle en la presente memoria, el codificador A120 de banda estrecha está habitualmente configurado para producir los parámetros S40 de filtrado de banda estrecha y la señal codificada S50 de excitación de banda estrecha, como índices de libro de códigos, o de otra forma cuantizada. El codificador A200 de banda alta está configurado para codificar la señal S30 de banda alta según la información en la señal codificada S50 de excitación de banda estrecha, para producir los parámetros S60 de codificación de banda alta. Según se describe en mayor detalle en la presente memoria, el codificador A200 de banda alta está habitualmente configurado para producir los parámetros S60 de codificación de banda alta como índices de libro de códigos, o de otra forma cuantizada. Un ejemplo particular del codificador A100 vocal de banda ancha está configurado para codificar la señal S10 vocal de banda ancha, a una velocidad de alrededor de 8,55 kbps (kilobits por segundo), siendo usados alrededor de 7,55 kbps para los parámetros S40 de filtro de banda estrecha y la señal codificada S50 de excitación de banda estrecha, y siendo usado alrededor de 1 kbps para los parámetros S60 de codificación de banda alta.
Puede desearse combinar las señales codificadas de banda estrecha y de banda alta en un único flujo de bits. Por ejemplo, puede desearse multiplexar las señales codificadas entre sí para su transmisión (p. ej., por un canal de transmisión cableado, óptico o inalámbrico), o para su almacenamiento, como una señal codificada vocal de banda ancha. La FIGURA 1b muestra un diagrama de bloques de una implementación A102 del codificador A100 vocal de banda ancha, que incluye un multiplexador A130 configurado para combinar los parámetros S40 de filtrado de banda estrecha, la señal codificada S50 de excitación de banda estrecha y los parámetros S60 de filtro de banda alta en una señal multiplexada S70.
Un aparato que incluye el codificador A102 también puede incluir circuitos configurados para transmitir la señal multiplexada S70 hacia un canal de transmisión, tal como un canal cableado, óptico o inalámbrico. Un aparato de ese tipo también puede estar configurado para realizar una o más operaciones de codificación de canal sobre la señal, tales como la codificación de corrección de errores (p. ej., la codificación convolutiva compatible con la velocidad) y / o la codificación de detección de errores (p. ej., la codificación de redundancia cíclica) y / o una o más capas de codificación del protocolo de red (p. ej., Ethernet, TCP / IP, cdma2000).
Puede ser deseable que el multiplexador A130 sea configurado para empotrar la señal codificada de banda estrecha (incluso los parámetros S40 de filtro de banda estrecha y la señal S50 codificada de excitación de banda estrecha) como un sub-flujo separable de la señal multiplexada S70, de modo que la señal de banda estrecha codificada pueda ser recuperada y descodificada independientemente de otra parte de la señal multiplexada S70, tal como una señal de banda alta y / o de banda baja. Por ejemplo, la señal multiplexada S70 puede ser dispuesta de modo que la señal de banda estrecha codificada pueda ser recuperada quitando los parámetros S60 de filtro de banda alta. Una ventaja potencial de una característica de ese tipo es evitar la necesidad de transcodificar la señal de banda ancha codificada antes de pasarla a un sistema que dé soporte a la descodificación de la señal de banda estrecha, pero que no dé soporte a la descodificación de la parte de banda alta.
La FIGURA 2a es un diagrama de bloques de un descodificador B100 vocal de banda ancha que puede ser usado para descodificar una señal codificada por el codificador A100 vocal de banda ancha. El descodificador B110 de banda estrecha está configurado para descodificar los parámetros S40 de filtro de banda estrecha y la señal codificada S50 de excitación de banda estrecha, para producir una señal S90 de banda estrecha. El descodificador B200 de banda alta está configurado para descodificar los parámetros S60 de codificación de banda alta según una señal S80 de excitación de banda estrecha, en base a la señal S50 codificada de excitación de banda estrecha, para producir una señal S100 de banda alta. En este ejemplo, el descodificador B110 de banda estrecha está configurado para proporcional una señal S80 de excitación de banda estrecha al descodificador B200 de banda alta. El banco B120 de filtros está configurado para combinar la señal S90 de banda estrecha y la señal S100 de banda alta, para producir una señal S110 vocal de banda ancha.
La FIGURA 2b es un diagrama de bloques de una implementación B102 del descodificador B100 vocal de banda ancha, que incluye un demultiplexador B130 configurado para producir las señales codificadas S40, S50 y S60 a partir de la señal multiplexada S70. Un aparato que incluye el descodificador B102 puede incluir circuitos configurados para recibir la señal multiplexada S70 desde un canal de transmisión, tal como un canal cableado, óptico o inalámbrico. Un aparato de ese tipo también puede ser configurado para realizar una o más operaciones de descodificación de canal sobre la señal, tales como la descodificación de corrección de errores (p. ej., la descodificación convolutiva compatible con la velocidad) y / o la descodificación de detección de errores (p. ej., la descodificación de redundancia cíclica) y / o una o más capas de la descodificación del protocolo de red (p. ej., Ethernet, TCP / IP, cdma2000).
El banco A110 de filtros está configurado para filtrar una señal de entrada según un esquema de banda dividida, para producir una sub-banda de baja frecuencia y una sub-banda de alta frecuencia. Según los criterios de diseño para la aplicación específica, las sub-bandas de salida pueden tener anchos de banda iguales o distintos, y pueden estar solapadas o no solapadas. Una configuración del banco A110 de filtros que produce más de dos sub-bandas también es posible. Por ejemplo, un banco de filtros de ese tipo puede estar configurado para producir una o más señales de banda baja, que incluyen componentes en una gama de frecuencias por debajo de la de la señal S20 de banda estrecha (tal como la gama entre los 50 y los 300 Hz). También es posible para un banco de filtros de ese tipo estar configurado para producir una o más señales adicionales de banda alta, que incluyen componentes en una gama de frecuencias por encima de la de la señal S30 de banda alta (tal como una gama entre 14 y 20, entre 16 y 20 o entre 16 y 32 kHz). En tal caso, el codificador A100 vocal de banda ancha puede ser implementado para codificar esta señal, o señales, por separado, y el multiplexador A130 puede estar configurado para incluir la señal, o las señales, codificada(s) adicional(es) en la señal multiplexada S70 (p. ej., como una parte separable).
Las FIGURAS 3a y 3b muestran anchos de banda relativos de la señal S10 vocal de banda ancha, la señal S20 de banda estrecha y la señal S30 de banda alta, en dos ejemplos distintos de implementación. En ambos ejemplos particulares, la señal S10 vocal de banda ancha tiene una tasa de muestreo de 16 kHz (que representa los componentes de frecuencia dentro de la gama entre 0 y 8 kHz), y la señal S20 de banda estrecha tiene una tasa de muestreo de 8 kHz (que representa los componentes de frecuencia dentro de la gama entre 0 y 4 kHz), aunque tales tasas y gamas no son límites para los principios descritos en la presente memoria, que pueden ser aplicados a otras tasas de muestreo y / o gamas de frecuencias cualesquiera.
En el ejemplo de la FIGURA 3a, no hay ningún solapamiento significativo entre las dos sub-bandas. Una señal S30 de banda alta, como en este ejemplo, puede ser sometida a una reducción de la tasa de muestreo, hasta una tasa de muestreo de 8 kHz. En el ejemplo alternativo de la FIGURA 3b, las sub-bandas superior e inferior tienen un solapamiento apreciable, de modo que la región entre 3,5 y 4 kHz está descrita por ambas señales de sub-banda. Una señal S30 de banda alta, como en este ejemplo, puede ser sometida a una reducción de la tasa de muestreo, hasta una tasa de muestreo de 7 kHz. La provisión de un solapamiento entre las sub-bandas, como en el ejemplo de la FIGURA 3b, puede permitir a un sistema de codificación usar un filtro de paso bajo y / o de paso alto, con una atenuación gradual suave sobre la región solapada, y / o puede aumentar la calidad de los componentes de frecuencia reproducidos en la región solapada.
En un típico equipo de mano para la comunicación telefónica, uno o más de los transductores (es decir, el micrófono y el auricular o altavoz) carece de una respuesta apreciable sobre la gama de frecuencias entre 7 y 8 kHz. En el ejemplo de la FIGURA 3b, la parte de la señal S10 vocal de banda ancha entre 7 y 8 kHz no está incluida en la señal codificada. Otros ejemplos específicos del filtro 130 de paso alto tienen bandas de paso entre 3,5 y 7,5 kHz, y entre 3,5 y 8 kHz.
Un codificador puede ser configurado para producir una señal sintetizada que es perceptivamente similar a la señal original, pero que difiere efectivamente en forma significativa de la señal original. Por ejemplo, un codificador que obtiene la excitación de banda alta a partir de la señal residual de banda estrecha, según se describe en la presente memoria, puede producir una tal señal, ya que la señal residual efectiva de banda alta puede estar completamente ausente de la señal descodificada. En tales casos, la provisión de un solapamiento entre las sub-bandas puede dar soporte a la fusión suave de la banda baja y la banda alta, lo que puede llevar a menos distorsiones audibles y / o a una transición menos perceptible desde una banda a la otra.
Los trayectos de banda baja y de banda alta de los bancos A110 y B120 de filtros pueden ser configurados para que tengan espectros que estén completamente desvinculados del solapamiento de las dos sub-bandas. Definimos el solapamiento de las dos sub-bandas como la distancia desde el punto en el cual la respuesta de frecuencia del filtro de banda alta cae hasta -20 dB, hasta el punto en el cual la respuesta de frecuencia del filtro de banda baja cae hasta -20 dB. En diversos ejemplos del banco A110 y / o B120 de filtros, este solapamiento varía entre alrededor de 200 Hz y alrededor de 1 kHz. La gama desde alrededor de 400 hasta alrededor de 600 Hz puede representar un equilibrio deseable entre la eficacia de codificación y la tersura perceptiva. En un ejemplo específico, según lo mencionado anteriormente, el solapamiento es de alrededor de 500 Hz.
Puede ser deseable implementar el banco A110 y / o B120 de filtros para calcular las señales de sub-banda, según lo ilustrado en las FIGURAS 3a y 3b en varias etapas. La descripción adicional y las figuras referidas a las respuestas de elementos de implementaciones específicas de los bancos A110 y B120 de filtros pueden ser halladas en el documento
U. S. 2007 / 0088558 A1 de Vos et al., titulado “SISTEMAS, PROCEDIMIENTOS Y APARATO PARA EL FILTRADO DE SEÑALES VOCALES”, depositado el 3 de abril de 2006, Expediente de agente Nº 050551, en las FIGURAS 3a, 3b, 4c, 4d y 33 a 39b, y el texto adjunto (incluyendo los párrafos [00069] a [00087]).
La señal S30 de banda alta puede incluir pulsos de alta energía (“ráfagas”) que pueden ser perjudiciales para la codificación. Un codificador vocal, tal como el codificador A100 vocal de banda ancha, puede ser implementado para incluir un supresor de ráfagas (p. ej., según lo descrito en el documento U. S. 2007 / 0088541 A1 de Vos et al., titulado “SISTEMAS, PROCEDIMIENTOS Y APARATO PARA LA SUPRESIÓN DE RÁFAGAS DE BANDA ALTA”, Expediente de agente Nº 050549, depositado el 3 de abril de 2006), para filtrar la señal S30 de banda alta antes de la codificación (p. ej., por el codificador A200 de banda alta).
Cada uno entre el codificador A120 de banda estrecha y el codificador A200 de banda alta es habitualmente implementado según un modelo de filtro de origen que codifica la señal de entrada como (A) un conjunto de parámetros que describen un filtro y (B) una señal de excitación que lleva al filtro descrito a producir una reproducción sintetizada de la señal de entrada. La FIGURA 4a muestra un ejemplo de un envolvente espectral de una señal vocal. Los máximos que caracterizan este envolvente espectral representan resonancias del conducto vocal y son llamados formantes. La mayoría de los codificadores vocales codifican al menos esta estructura espectral grosera como un conjunto de parámetros, tales como los coeficientes de filtro.
La FIGURA 4b muestra un ejemplo de una disposición básica de filtro de origen, según lo aplicado a la codificación del envolvente espectral de la señal S20 de banda estrecha. Un módulo de análisis calcula un conjunto de parámetros que caracterizan un filtro correspondiente al sonido vocal, durante un periodo de tiempo (habitualmente, 20 milisegundos (mseg)). Un filtro blanqueador (también llamado un filtro de análisis o de errores de predicción), configurado según esos parámetros de filtro, quita el envolvente espectral, para aplanar espectralmente la señal. La señal blanqueada resultante (también llamada una señal residual) tiene menos energía y, por tanto, menos varianza, y es más fácil de codificar que la señal original vocal. Los errores resultantes de la codificación de la señal residual también pueden ser esparcidos más homogéneamente sobre el espectro. Los parámetros de filtro y la señal residual están habitualmente cuantizados para su transmisión eficaz por el canal. En el descodificador, un filtro de síntesis, configurado según los parámetros de filtro, es excitado por una señal basada en la señal residual, para producir una versión sintetizada del sonido original vocal. El filtro de síntesis está habitualmente configurado para que tenga una función de transferencia que es la inversa de la función de transferencia del filtro blanqueador.
La FIGURA 5 muestra un diagrama de bloques de una implementación básica A122 del codificador A120 de banda estrecha. En este ejemplo, un módulo 210 de análisis de codificación de predicción lineal (LPC) codifica el envolvente espectral de la señal S20 de banda estrecha como un conjunto de coeficientes de predicción lineal (LP) (p. ej., coeficientes de un filtro polar total 1 / A(z)). El módulo de análisis procesa habitualmente la señal de entrada como una serie de tramas no solapadas, siendo calculado un nuevo conjunto de coeficientes para cada trama. El periodo de la trama es generalmente un periodo durante el cual puede esperarse que la señal sea localmente estática; un ejemplo común es de 20 milisegundos (equivalente a 160 muestras a una tasa de muestreo de 8 kHz). En un ejemplo, el módulo 210 de análisis de LPC está configurado para calcular un conjunto de diez coeficientes de filtro de LP, para caracterizar la estructura formante de cada trama de 20 milisegundos. También es posible implementar el módulo de análisis para procesar la señal de entrada como una serie de tramas solapadas.
El módulo de análisis puede ser configurado para analizar directamente las muestras de cada trama, o bien las muestras pueden ser ponderadas primero según una función de formación de ventanas (por ejemplo, una ventana de Hamming). El análisis también puede ser realizado sobre una ventana que sea mayor que la trama, tal como una ventana de 30 mseg. Esta ventana puede ser simétrica (p. ej., 5-20-5, de modo que incluya los 5 milisegundos inmediatamente antes y después de la trama de 20 milisegundos) o asimétrica (p. ej., 10-20, de modo que incluya los últimos 10 milisegundos de la trama precedente). Un módulo de análisis de LPC está habitualmente configurado para calcular los coeficientes de filtro de LP usando una recursión de Levinson-Durbin o el algoritmo de Leroux-Gueguen. En otra implementación, el módulo de análisis puede ser configurado para calcular un conjunto de coeficientes cepsetrales para cada trama, en lugar de un conjunto de coeficientes de filtro de LP.
La tasa de salida del codificador A120 puede ser reducida significativamente, con efecto relativamente pequeño sobre la calidad de reproducción, cuantizando los parámetros de filtro. Los coeficientes del filtro de predicción lineal son difíciles de cuantizar eficazmente y son usualmente correlacionados con otra representación, tal como los pares espectrales de líneas (LSP) o las frecuencias espectrales de líneas (LSF), para la cuantización y / o codificación de entropía. En el ejemplo de la FIGURA 5, la transformación 220 de coeficientes de filtro de LP a LSF transforma el conjunto de coeficientes de filtro de LP en un correspondiente conjunto de LSF. Otras representaciones de uno a uno de los coeficientes de filtro de LP incluyen los coeficientes de correlación parcial; los valores de razones de logaritmos de áreas; los pares espectrales de impedancia-admisión (ISP); y las frecuencias espectrales de impedancia-admisión (ISF), que son usadas en el códec AMR-WB (Multitasa adaptable – Banda Ancha) del GSM (Sistema Global para Comunicaciones Móviles). Habitualmente, una transformación entre un conjunto de coeficientes de filtro de LP y un conjunto correspondiente de LSF es reversible, pero las configuraciones también incluyen implementaciones del codificador A120 en las cuales la transformación no es reversible sin error.
El cuantizador 230 está configurado para cuantizar el conjunto de las LSF de banda estrecha (u otra representación de coeficientes), y el codificador A122 de banda estrecha está configurado para emitir el resultado de esta cuantización como los parámetros S40 de filtro de banda estrecha. Un cuantizador de ese tipo incluye habitualmente un cuantizador vectorial que codifica el vector de entrada como un índice para una correspondiente entrada vectorial en una tabla o libro de códigos.
La FIGURA 9 muestra un diagrama de bloques de una implementación A202 del codificador A200 de banda alta. El módulo A210 de análisis, la transformación 410 y el cuantizador 420 del codificador A202 de banda alta pueden ser implementados según las descripciones de los correspondientes elementos del codificador A122 de banda estrecha, según lo descrito anteriormente (es decir, el módulo 210 de análisis de LPC, la transformación 220 y el cuantizador 230, respectivamente), aunque puede ser deseable usar un análisis de LPC de orden inferior para la banda alta. Es posible incluso que estos elementos de codificador de banda estrecha y de banda alta sean implementados usando las mismas estructuras (p. ej., formaciones de compuertas) y / o conjuntos de instrucciones (p. ej., líneas de código) en distintos momentos. Según se describe más adelante, las operaciones del codificador A120 de banda estrecha y del codificador A200 de banda alta difieren con respecto al procesamiento de la señal residual.
Según se ve en la FIGURA 5, el codificador A122 de banda estrecha también genera una señal residual pasando la señal S20 de banda estrecha a través de un filtro blanqueador 260 (también llamado un filtro de análisis o de errores de predicción) que está configurado según el conjunto de coeficientes de filtro. En este ejemplo particular, el filtro blanqueador 260 está implementado como un filtro FIR, aunque también pueden usarse implementaciones IIR. Esta señal residual contendrá habitualmente información perceptivamente importante de la trama vocal, tal como una estructura a largo plazo referida al tono, que no está representado en los parámetros S40 de filtro de banda estrecha. El cuantizador 270 está configurado para calcular una representación cuantizada de esta señal residual, para su emisión como la señal S50 codificada de excitación de banda estrecha. Un cuantizador de ese tipo incluye habitualmente un cuantizador vectorial que codifica el vector de entrada como un índice para una correspondiente entrada vectorial en una tabla o libro de códigos. Alternativamente, un cuantizador de ese tipo puede ser configurado para enviar uno o más parámetros, a partir de los cuales pueda ser generado dinámicamente el vector en el descodificador, en lugar de ser extraído del almacenamiento, como en un procedimiento de libro de códigos ralo. Un procedimiento de ese tipo es usado en esquemas de codificación tales como la CELP (predicción lineal de excitación de libro de códigos) algebraica y códecs tales como el EVRC (Códec mejorado de tasa variable) del 3GPP2 (Proyecto 2 de Colaboración de Tercera Generación).
Es deseable que el codificador A120 de banda estrecha genere la señal codificada de excitación de banda estrecha según los mismos valores de parámetros de filtro que estarán disponibles para el correspondiente descodificador de banda estrecha. De esta manera, la señal codificada resultante de excitación de banda estrecha puede ya tener en cuenta, en cierta medida, las imperfecciones en esos valores paramétricos, tales como el error de cuantización. En consecuencia, es deseable configurar el filtro blanqueador usando los mismos valores de coeficientes que estarán disponibles en el descodificador. En el ejemplo básico del codificador A122, según se muestra en la FIGURA 5, el cuantizador inverso 240 decuantiza los parámetros S40 de codificación de banda estrecha, la transformación 250, de LSF a coeficientes de filtro de LP, correlaciona los valores resultantes de nuevo con un correspondiente conjunto de coeficientes de filtro de LP, y este conjunto de coeficientes es usado para configurar el filtro blanqueador 260, para generar la señal residual que es cuantizada por el cuantizador 270.
Algunas implementaciones del codificador A120 de banda estrecha están configuradas para calcular la señal codificada S50 de excitación de banda estrecha, identificando un vector, entre un conjunto de vectores de libro de códigos, que mejor coincida con la señal residual. Se hace notar, sin embargo, que el codificador A120 de banda estrecha también puede ser implementado para calcular una representación cuantizada de la señal residual sin generar efectivamente la señal residual. Por ejemplo, el codificador A120 de banda estrecha puede ser configurado para usar un cierto número de vectores del libro de códigos, para generar las correspondientes señales sintetizadas (p. ej., según un conjunto actual de parámetros de filtro) y para seleccionar el vector del libro de códigos asociado a la señal generada que mejor coincida con la señal S20 original de banda estrecha en un dominio perceptivamente ponderado.
Incluso después de que el filtro blanqueador ha quitado el envolvente espectral grosero de la señal S20 de banda estrecha, puede quedar una cantidad considerable de fina estructura armónica, especialmente para el habla sonora. La FIGURA 7a muestra un gráfico espectral de un ejemplo de una señal residual, como puede ser producida por un filtro blanqueador, para una señal sonora, tal como una vocal. La estructura periódica visible en este ejemplo está relacionada con el tono, y distintos sonidos sonoros, hablados por el mismo orador, pueden tener distintas estructuras formantes, pero similares estructuras de tono. La FIGURA 7b muestra un gráfico, del dominio del tiempo, de un ejemplo de una señal residual de ese tipo, que muestra una secuencia de pulsos de tono en el tiempo.
El codificador A120 de banda estrecha puede incluir uno o más módulos configurados para codificar la estructura armónica a largo plazo de la señal S20 de banda estrecha. Según se muestra en la FIGURA 8, un típico paradigma de la CELP que puede ser usado incluye un módulo de análisis de LPC de bucle abierto, que codifica las características a corto plazo o el envolvente espectral grosero, seguido por una etapa de análisis de predicción a largo plazo de bucle cerrado, que codifica el tono fino o la estructura armónica. Las características a corto plazo son codificadas como coeficientes de filtro, y las características a largo plazo son codificadas como valores para parámetros tales como el retraso del tono y la ganancia del tono. Por ejemplo, el codificador A120 de banda estrecha puede ser configurado para emitir la señal codificada S50 de excitación de banda estrecha, en una forma que incluye uno o más índices del libro de códigos (p. ej., un índice fijo del libro de códigos y un índice adaptable del libro de códigos) y los correspondientes valores de ganancia. El cálculo de esta representación cuantizada de la señal residual de banda estrecha (p. ej., por el cuantizador 270) puede incluir seleccionar tales índices y calcular tales valores. La codificación de la estructura del tono también puede incluir la interpolación de una onda prototípica del tono, operación esta que puede incluir calcular una diferencia entre sucesivos pulsos de tono. La modelización de la estructura a largo plazo puede ser inhabilitada para tramas correspondientes al habla no sonora, que es habitualmente ruidosa y desestructurada.
La FIGURA 6 muestra un diagrama de bloques de una implementación B112 del descodificador B110 de banda estrecha. El cuantizador inverso 310 decuantiza los parámetros S40 de filtro de banda estrecha (en este caso, en un conjunto de LSF), y la transformación 320, de LSF a coeficientes de filtro de LP, transforma las LSF en un conjunto de coeficientes de filtro (por ejemplo, según lo descrito anteriormente con referencia al cuantizador inverso 240 y la transformación 250 del codificador A122 de banda estrecha). El cuantizador inverso 340 decuantiza la señal residual S40 de banda estrecha para producir una señal S80 de excitación de banda estrecha. En base a los coeficientes de filtro y a la señal S80 de excitación de banda estrecha, el filtro 330 de síntesis de banda estrecha sintetiza la señal S90 de banda estrecha. En otras palabras, el filtro 330 de síntesis de banda estrecha está configurado para modelar espectralmente la señal S80 de excitación de banda estrecha, según los coeficientes de filtro decuantizados, para producir la señal S90 de banda estrecha. El descodificador B112 de banda estrecha también proporciona la señal S80 de excitación de banda estrecha al codificador A200 de banda alta, que la usa para obtener la señal S120 de excitación de banda alta, según se describe en la presente memoria. En algunas implementaciones, según se describe más adelante, el descodificador B110 de banda estrecha puede ser configurado para proporcionar información adicional al descodificador B200 de banda alta, referida a la señal de banda estrecha, tal como el declive espectral, la ganancia y el retraso de tono y la modalidad vocal.
El sistema del codificador A122 de banda estrecha y el descodificador B112 de banda estrecha es un ejemplo básico de un códec vocal de análisis por síntesis. La codificación de la predicción lineal de excitación de libro de códigos (CELP) es una familia popular de codificación de análisis por síntesis, y las implementaciones de tales codificadores pueden realizar la codificación de ondas de la señal residual, incluyendo operaciones tales como la selección de entradas provenientes de libros de códigos fijos y adaptables, operaciones de minimización de errores y / u operaciones de ponderación perceptiva. Otras implementaciones de la codificación de análisis por síntesis incluyen la predicción mixta lineal de excitación (MELP), la CELP algebraica (ACELP), la CELP de relajación (RCELP), la excitación regular de pulsos (RPE), la CELP de múltiples pulsos (MPE) y la codificación de predicción lineal excitada de suma vectorial (VSELP). Los procedimientos afines de codificación incluyen la excitación de múltiples bandas (MBE) y la codificación de interpolación de onda prototípica (PWI). Los ejemplos de los códecs estandarizados vocales, de análisis por síntesis, incluyen el códec de tasa completa del ETSI (Instituto Europeo de Normas de Telecomunicaciones) – GSM (GSM 06.10), que usa la predicción lineal excitada residual (RELP); el códec mejorado de tasa completa de GSM (ETSI-GSM 06.60); el codificador estándar del G.729 Anexo E de 11,8 kb / s de la ITU (Unión Internacional de Telecomunicaciones); los códecs del IS (Norma Interina)-641 para el IS-136 (un esquema de acceso múltiple por división del tiempo); los códecs adaptables de tasas múltiples del GSM (GSM-AMR); y el códec 4GV™ (Vocodificador de Cuarta Generación™) (QUALCOMM Incorporated, San Diego, CA). El codificador A120 de banda estrecha y el correspondiente descodificador B110 pueden ser implementados según cualquiera de estas tecnologías, o cualquier otra tecnología de codificación vocal (ya sea conocida o por desarrollar) que represente una señal vocal como (A) un conjunto de parámetros que describen un filtro y (B) una señal de excitación usada para controlar el filtro descrito, para reproducir la señal vocal.
El codificador A200 de banda alta está configurado para codificar la señal S30 de banda alta según un modelo de filtro de origen. Por ejemplo, el codificador A200 de banda alta está habitualmente configurado para realizar un análisis de LPC de la señal S30 de banda alta, para obtener un conjunto de parámetros de filtro que describen un envolvente espectral de la señal. Como en el sector de banda estrecha, la señal de origen usada para excitar este filtro puede ser obtenida a partir de, o basarse de otra manera en, la señal residual del análisis de LPC. Sin embargo, la señal S30 de banda alta es habitualmente menos significativa perceptivamente que la señal S20 de banda estrecha, y sería caro para la señal vocal codificada incluir dos señales de excitación. Para reducir la velocidad de bits necesaria para transferir la señal codificada vocal de banda ancha, puede ser deseable, en cambio, usar una señal de excitación modelada para la banda alta. Por ejemplo, la excitación para el filtro de banda alta puede estar basada en la señal codificada S50 de excitación de banda estrecha.
La FIGURA 9 muestra un diagrama de bloques de una implementación A202 del codificador A200 de banda alta, que está configurado para producir un flujo de parámetros S60 de codificación de banda alta, que incluye los parámetros S60a de filtro de banda alta y los factores S60b de ganancia de banda alta. El generador A300 de excitación de banda alta obtiene una señal S120 de excitación de banda alta a partir de la señal codificada S50 de excitación de banda estrecha. El módulo A210 de análisis produce un conjunto de valores paramétricos que caracterizan el envolvente espectral de la señal S30 de banda alta. En este ejemplo específico, el módulo A210 de análisis está configurado para realizar el análisis de LPC, para producir un conjunto de coeficientes de filtro de LP para cada trama de la señal S30 de banda alta. La transformación 410 de coeficientes de filtro a LSF, de predicción lineal, transforma el conjunto de coeficientes de filtro de LP en un correspondiente conjunto de LSF. Como se ha observado anteriormente con referencia al módulo 210 de análisis y la transformación 220, el módulo A210 de análisis y / o la transformación 410 pueden ser configurados para usar otros conjuntos de coeficientes (p. ej., coeficientes cepsetrales) y / o representaciones de coeficientes (p. ej., los ISP).
El cuantizador 420 está configurado para cuantizar el conjunto de las LSF de banda alta (u otra representación de coeficientes, tal como los ISP), y el codificador A202 de banda alta está configurado para emitir el resultado de esta cuantización como los parámetros S60a de filtro de banda alta. Un cuantizador de ese tipo incluye habitualmente un cuantizador vectorial que codifica el vector de entrada como un índice para una correspondiente entrada vectorial en una tabla o libro de códigos.
El codificador A202 de banda alta también incluye un filtro A220 de síntesis configurado para producir una señal S130 de banda alta sintetizada, según la señal S120 de excitación de banda alta y el envolvente espectral codificado (p. ej., el conjunto de coeficientes de filtro de LP), producido por el módulo A210 de análisis. El filtro A220 de síntesis es implementado habitualmente como un filtro IIR, aunque también pueden ser usadas implementaciones de FIR. En un ejemplo específico, el filtro A220 de síntesis es implementado como un filtro auto-regresivo lineal de sexto orden.
En una implementación del codificador A100 vocal de banda ancha, de acuerdo a un paradigma según lo mostrado en la FIGURA 8, el codificador A200 de banda alta puede ser configurado para recibir la señal de excitación de banda estrecha, según es producida por el filtro de análisis, o blanqueador, a corto plazo. En otras palabras, el codificador A120 de banda estrecha puede ser configurado para emitir la señal de excitación de banda estrecha hacia el codificador A200 de banda alta, antes de codificar la estructura a largo plazo. Es deseable, sin embargo, que el codificador A200 de banda alta reciba desde el canal de banda estrecha la misma información de codificación que será recibida por el descodificador B200 de banda alta, de modo que los parámetros de codificación producidos por el codificador A200 de banda alta puedan dar cuenta, en alguna medida, de imperfecciones en esa información. De tal modo, puede ser preferible que el codificador A200 de banda alta reconstruya la señal S80 de excitación de banda estrecha a partir de la misma señal codificada S50 de excitación de banda estrecha, parametrizada y / o cuantizada, para ser emitida por el codificador A100 vocal de banda ancha. Una ventaja potencial de este enfoque es un cálculo más preciso de los factores S60b de ganancia de banda alta, descritos más adelante.
El calculador A230 de factores de ganancia de banda alta calcula una o más diferencias entre los niveles de la señal original S30 de banda alta y la señal sintetizada S130 de banda alta, para especificar un envolvente de ganancia para la trama. El cuantizador 430, que puede ser implementado como un cuantizador vectorial que codifica el vector de entrada como un índice para una correspondiente entrada vectorial en una tabla o libro de códigos, cuantiza el valor, o los valores, que especifica(n) el envolvente de la ganancia, y el codificador A202 de banda alta está configurado para emitir el resultado de esta cuantización como los factores S60b de ganancia de banda alta.
Uno o más de los cuantizadores de los elementos descritos en la presente memoria (p. ej., el cuantizador 230, 420 o 430) puede(n) ser configurado(s) para realizar la cuantización vectorial clasificada. Por ejemplo, un cuantizador de ese tipo puede ser configurado para seleccionar uno entre un conjunto de libros de códigos, en base a la información que ya haya sido codificada dentro de la misma trama en el canal de banda estrecha y / o en el canal de banda alta. Una técnica de ese tipo proporciona habitualmente una eficacia de codificación aumentada, a cuenta de almacenamiento adicional de libros de códigos.
En una implementación del codificador A200 de banda alta, según se muestra en la FIGURA 9, el filtro A220 de síntesis está dispuesto para recibir los coeficientes de filtro desde el módulo A210 de análisis. Una implementación alternativa del codificador A202 de banda alta incluye un cuantizador inverso y una transformación inversa, configurados para descodificar los coeficientes de filtro a partir de los parámetros S60a de filtro de banda alta, y en este caso el filtro A220 de síntesis está dispuesto para recibir, en cambio, los coeficientes de filtro descodificados. Una disposición alternativa de ese tipo puede dar soporte a un cálculo más preciso del envolvente de la ganancia por parte del calculador A230 de ganancia de banda alta.
En un ejemplo específico, el módulo A210 de análisis y el calculador A230 de ganancia de banda alta emiten un conjunto de seis LSF y un conjunto de cinco valores de ganancia por trama, respectivamente, de modo que una extensión de banda ancha de la señal S20 de banda estrecha pueda ser lograda con solamente once valores adicionales por trama. En un ejemplo adicional, otro valor de ganancia es añadido para cada trama, para proporcionar una extensión de banda ancha con solamente doce valores adicionales por trama. El oído tiende a ser menos sensible a los errores de frecuencia a frecuencias altas, de modo que la codificación de banda alta en un orden bajo de LPC puede producir una señal con una calidad perceptiva comparable a la codificación de banda estrecha en un orden superior de LPC. Una implementación típica del codificador A200 de banda alta puede ser configurada para emitir entre 8 y 12 bits por trama para la reconstrucción de alta calidad del envolvente espectral, y además, entre 8 y 12 bits por trama para la reconstrucción de alta calidad del envolvente temporal. En otro ejemplo específico, el módulo A210 de análisis emite un conjunto de ocho LSF por trama.
Algunas implementaciones del codificador A200 de banda alta están configuradas para producir la señal S120 de excitación de banda alta generando una señal de ruido aleatorio, con componentes de frecuencia de banda alta, y que module por amplitud la señal de ruido, según el envolvente del dominio temporal de la señal S20 de banda estrecha, la señal S80 de excitación de banda estrecha o la señal S30 de banda alta. En tal caso, puede ser deseable que el estado del generador de ruido sea una función determinística de otra información en la señal vocal codificada (p. ej., información en la misma trama, tal como los parámetros S40 de filtro de banda estrecha o una parte de los mismos, y / o la señal S50 codificada de excitación de banda estrecha o una parte de la misma), de modo que los correspondientes generadores de ruido en los generadores de excitación de banda alta del codificador y del descodificador puedan tener los mismos estados. Si bien un procedimiento basado en el ruido puede producir resultados adecuados para los sonidos no sonoros, sin embargo, puede no ser deseable para los sonidos sonoros, cuyas señales residuales son usualmente armónicas y, en consecuencia, tienen alguna estructura periódica.
El generador A300 de excitación de banda alta está configurado para obtener la señal S80 de excitación de banda estrecha (p. ej., decuantizando la señal S50 codificada de excitación de banda estrecha) y para generar la señal S210 de excitación de banda alta, en base a la señal S80 de excitación de banda estrecha. Por ejemplo, el generador A300 de excitación de banda alta puede ser implementado para realizar una o más técnicas, tales como la extensión armónica de ancho de banda, el plegado espectral, la traducción espectral y / o la síntesis armónica, usando el procesamiento no lineal de la señal S80 de excitación de banda estrecha. En un ejemplo específico, el generador A300 de excitación de banda alta está configurado para generar la señal S120 de excitación de banda alta por medio de la extensión no lineal de ancho de banda de la señal S80 de excitación de banda estrecha, combinada con la mezcla adaptable de la señal extendida con una señal de ruido modulado. El generador A300 de excitación de banda alta también puede ser configurado para realizar el filtrado contra la poca densidad de la señal extendida y / o mezclada.
Una descripción y figuras adicionales, referidas al generador A300 de excitación de banda alta, y a la generación de la
señal S120 de excitación de banda alta, pueden hallarse en el documento U. S. 2006 / 0277038 A1, titulado “SISTEMAS,PROCEDIMIENTOS Y APARATO PARA LA GENERACIÓN DE EXCITACIÓN DE BANDA ALTA” (Vos et al.),
depositado el 3 de abril de 2006, en las FIGURAS 11 a 20 y en el texto adjunto (incluyendo los párrafos [000112] a [000146] y [000156]).
La FIGURA 10 muestra un diagrama de flujo de un procedimiento M10 de codificación de una parte de banda alta de una señal vocal que tiene una parte de banda estrecha y una parte de banda alta. La tarea X100 calcula un conjunto de parámetros de filtro que caracterizan un envolvente espectral de la parte de banda alta. La tarea X200 calcula una señal espectralmente extendida aplicando una función no lineal a una señal obtenida a partir de la parte de banda estrecha. La tarea X300 genera una señal sintetizada de banda alta de acuerdo a (A) el conjunto de parámetros de filtro y (b) una señal de excitación de banda alta basada en la señal espectralmente extendida. La tarea X400 calcula un envolvente de ganancia en base a una relación entre (C) la energía de la parte de banda alta y (D) la energía de una señal obtenida a partir de la parte de banda estrecha.
Será deseable que las características temporales de una señal descodificada se parezcan a las de la señal original a la que representa. Además, para un sistema en el cual las distintas sub-bandas están codificadas por separado, puede ser deseable que las características temporales relativas de las sub-bandas en la señal descodificada se parezcan a las características temporales relativas de aquellas sub-bandas en la señal original. Para una reproducción exacta de la señal vocal codificada, puede ser deseable que la razón entre los niveles de las partes de banda alta y de banda estrecha de la señal S100 sintetizada vocal de banda ancha sea similar a la de la señal original S10 vocal de banda ancha. El codificador A200 de banda alta puede ser configurado para incluir información en la señal vocal codificada que describa, o que se base de otro modo en, un envolvente temporal de la señal original de banda alta. Para un caso en el cual la señal de excitación de banda alta está basada en información proveniente de otra sub-banda, tal como la señal codificada S50 de excitación de banda estrecha, puede ser deseable, en particular para los parámetros codificados, incluir información que describa una diferencia entre los envolventes temporales de la señal sintetizada de banda alta y la señal original de banda alta.
Además de la información referida al envolvente espectral de la señal S30 de banda alta (es decir, según lo descrito por los coeficientes de LPG o valores paramétricos similares), puede ser deseable que los parámetros codificados de una señal de banda ancha incluyan información temporal de la señal S30 de banda alta. Además de un envolvente espectral, como lo representado por los parámetros S60a de codificación de banda alta, por ejemplo, el codificador A200 de banda alta puede ser configurado para caracterizar la señal S30 de banda alta, especificando un envolvente temporal o de ganancia. Según se muestra en la FIGURA 9, el codificador A202 de banda alta incluye un calculador A230 de factores de ganancia de banda alta, que está configurado y dispuesto para calcular uno o más factores de ganancia, según una relación entre la señal S30 de banda alta y la señal sintetizada S130 de banda alta, tal como una diferencia o razón entre las energías de las dos señales, sobre una trama o alguna parte de la misma. En otras implementaciones del codificador A202 de banda alta, el calculador A230 de ganancia de banda alta puede ser análogamente configurado, pero dispuesto, en cambio, para calcular el envolvente de ganancia según una tal relación, variable en el tiempo, entre la señal S30 de banda alta y la señal S80 de excitación de banda estrecha, o la señal S120 de excitación de banda alta.
Es probable que los envolventes temporales de la señal S80 de excitación de banda estrecha y de la señal S30 de banda alta sean similares. Por lo tanto, un envolvente de ganancia que esté basado en una relación entre la señal S30 de banda alta y la señal S80 de excitación de banda estrecha (o una señal obtenida de la misma, tal como la señal S120 de excitación de banda alta o la señal S130 sintetizada de banda alta) estará generalmente mejor adaptado para la codificación que un envolvente temporal basado solamente en la señal S30 de banda alta.
El codificador A202 de banda alta incluye un calculador A230 de factores de ganancia de banda alta, configurado para calcular uno o más factores de ganancia para cada trama de la señal S30 de banda alta, donde cada factor de ganancia está basado en una relación entre los envolventes temporales de las partes correspondientes de la señal sintetizada S130 de banda alta y la señal S30 de banda alta. Por ejemplo, el calculador A230 de factores de ganancia de banda alta puede ser configurado para calcular cada factor de ganancia como una razón entre los envolventes de amplitud de las señales, o como una razón entre los envolventes de energía de las señales. En una implementación habitual, el codificador A202 de banda alta está configurado para emitir un índice cuantizado de entre ocho y doce bits, que especifica cinco factores de ganancia para cada trama (p. ej., uno para cada una entre cinco sub-tramas consecutivas). En una implementación adicional, el codificador A202 de banda alta está configurado para emitir un índice cuantizado adicional que especifica un factor de ganancia, a nivel de las tramas, para cada trama.
Un factor de ganancia puede ser calculado como un factor de normalización, tal como una razón R entre una medición de la energía de la señal original y una medición de la energía de la señal sintetizada. La razón R puede ser expresada como un valor lineal o como un valor logarítmico (p. ej., en una escala de decibelios). El calculador A230 de factores de ganancia de banda alta puede ser configurado para calcular un tal factor de normalización, para cada trama. Alternativamente, o adicionalmente, el calculador A230 de factores de ganancia de banda alta puede ser configurado para calcular una serie de factores de ganancia, para cada una entre un cierto número de sub-tramas de cada trama. En un ejemplo, el calculador A230 de factores de ganancia de banda alta está configurado para calcular la energía de cada trama (y / o sub-trama) como una raíz cuadrada de una suma de cuadrados.
El calculador A230 de factores de ganancia de banda alta puede ser configurado para realizar el cálculo de factores de ganancia como una tarea que incluye una o más series de sub-tareas. La FIGURA 11 muestra un diagrama de flujo de un ejemplo T200 de una tarea de ese tipo que calcula un valor de ganancia para una parte correspondiente de la señal codificada de banda alta (p. ej., una trama o sub-trama), según las energías relativas de las correspondientes partes de la señal S30 de banda alta y la señal sintetizada S130 de banda alta. Las tareas 220a y 220b calculan las energías de las partes correspondientes de las respectivas señales. Por ejemplo, las tareas 220a y 220b pueden ser configuradas para calcular la energía como una suma de los cuadrados de las muestras de las partes respectivas. La tarea T230 calcula un factor de ganancia como la raíz cuadrada de la razón de esas energías. En este ejemplo, la tarea T230 calcula un factor de ganancia para la parte como la raíz cuadrada de la razón entre la energía de la señal S30 de banda alta sobre esa parte y la energía de la señal sintetizada S130 de banda alta sobre esa parte.
Puede ser deseable que el calculador A230 de factores de ganancia de banda alta esté configurado para calcular las energías según una función de formación de ventanas. La FIGURA 12 muestra un diagrama de flujo de una implementación T120 de ese tipo de la tarea T200 de cálculo de factores de ganancia. La tarea T215a aplica una función de formación de ventanas a la señal S30 de banda alta, y la tarea T215b aplica la misma función de formación de ventanas a la señal S130 sintetizada de banda alta. Las implementaciones 222a y 222b de las tareas 220a y 220b calculan las energías de las respectivas ventanas, y la tarea T230 calcula un factor de ganancia para la parte, como la raíz cuadrada de la razón de las energías.
Al calcular un factor de ganancia para una trama, puede ser deseable aplicar una función de formación de ventanas que solape tramas adyacentes. Al calcular un factor de ganancia para una sub-trama, puede ser deseable aplicar una función de formación de ventanas que solape sub-tramas adyacentes. Por ejemplo, una función de formación de ventanas que produce factores de ganancia que pueden ser aplicados en forma de solapamiento y agregado puede ayudar a reducir, o evitar, la discontinuidad entre las sub-tramas. En un ejemplo, el calculador A230 de factores de ganancia de banda alta está configurado para aplicar una función trapezoidal de formación de ventanas, según se muestra en la FIGURA 13a, en la cual la ventana solapa cada una de las dos sub-tramas adyacentes en un milisegundo. La FIGURA 13b muestra una aplicación de esta función de formación de ventanas a cada una de las cinco sub-tramas de una trama de 20 milisegundos. Otras implementaciones del calculador A230 de factores de ganancia de banda alta pueden ser configuradas para aplicar funciones de formación de ventanas que tengan distintos periodos de solapamiento y / o distintas formas de ventanas (p. ej., rectangulares, de Hamming), que pueden ser simétricas o asimétricas. También es posible que una implementación del calculador A230 de factores de ganancia de banda alta sea configurada para aplicar distintas funciones de formación de ventanas a distintas sub-tramas dentro de una trama, y / o que una trama incluya sub-tramas de distintas longitudes. En una implementación específica, el calculador A230 de factores de ganancia de banda alta está configurado para calcular factores de ganancia de sub-trama, usando una función trapezoidal de formación de ventanas, según se muestra en las FIGURAS 13a y 13b, y también está configurado para calcular un factor de ganancia al nivel de las tramas sin usar una función de formación de ventanas.
Sin limitación, los siguientes valores están presentados como ejemplos para implementaciones específicas. Se supone una trama de 20 mseg para estos casos, aunque puede usarse cualquier otra duración. Para una señal de banda alta muestreada a 7 kHz, cada trama tiene 140 muestras. Si una trama de ese tipo es dividida en cinco sub-tramas de igual longitud, cada sub-trama tendrá 28 muestras, y la ventana, según se muestra en la FIGURA 13a, tendrá 42 muestras de ancho. Para una señal de banda alta muestreada a 8 kHz, cada trama tiene 160 muestras. Si tal trama es dividida en cinco sub-tramas de igual longitud, cada sub-trama tendrá 32 muestras, y la ventana, según se muestra en la FIGURA 13a, tendrá 48 muestras de ancho. En otras implementaciones, pueden usarse sub-tramas de cualquier ancho, y hasta es posible que una implementación del calculador A230 de ganancia de banda alta sea configurada para producir un factor de ganancia distinto para cada muestra de una trama.
Como se ha observado anteriormente, el codificador A202 de banda alta puede incluir un calculador A230 de factores de ganancia de banda alta que esté configurado para calcular una serie de factores de ganancia según una relación variable en el tiempo entre la señal S30 de banda alta y una señal basada en la señal S20 de banda estrecha (tal como la señal S80 de excitación de banda estrecha, la señal S120 de excitación de banda alta o la señal S130 sintetizada de banda alta). La FIGURA 14a muestra un diagrama de bloques de una implementación A232 del calculador A230 de factores de ganancia de banda alta. El calculador A232 de factores de ganancia de banda alta incluye una implementación G10a del calculador G10 de envolventes, que está dispuesto para calcular un envolvente de una primera señal, y una implementación G10b del calculador G10 de envolventes, que está dispuesto para calcular un envolvente de una segunda señal. Los calculadores G10a y G10b de envolventes pueden ser idénticos, o pueden ser instancias de distintas implementaciones del calculador G10 de envolventes. En algunos casos, los calculadores G10a y G10b de envolventes pueden ser implementados como una misma estructura (p. ej., una formación de compuertas) y / o conjunto de instrucciones (p. ej., líneas de código), configurados para procesar distintas señales en distintos momentos.
Cada uno de los calculadores G10a y G10b de envolventes puede ser configurado para calcular un envolvente de amplitud (p. ej., según una función de valor absoluto) o un envolvente de energía (p. ej., según una función de elevación al cuadrado). Habitualmente, cada calculador G10a, G10b de envolventes está configurado para calcular un envolvente que está sub-muestreado con respecto a la señal de entrada (p. ej., un envolvente que tenga un valor para cada trama o sub-trama de la señal de entrada). Según lo descrito anteriormente con referencia, p. ej., a las FIGURAS 11 a 13b, el calculador G10a y / o G10b de envolventes puede estar configurado para calcular el envolvente según una función de formación de ventanas, que puede ser dispuesta para solapar tramas y / o sub-tramas adyacentes.
El calculador G20 de factores está configurado para calcular una serie de factores de ganancia, según una relación variable en el tiempo, entre los dos envolventes a lo largo del tiempo. En un ejemplo, según lo descrito anteriormente, el calculador G20 de factores calcula cada factor de ganancia como la raíz cuadrada de la razón de los envolventes sobre una correspondiente sub-trama. Alternativamente, el calculador G20 de factores puede ser configurado para calcular cada factor de ganancia en base a una distancia entre los envolventes, tal como una diferencia o una diferencia elevada al cuadrado, con signo, entre los envolventes durante una correspondiente sub-trama. Puede ser deseable configurar el calculador G20 de factores para emitir los valores calculados de los factores de ganancia en un decibelio, u otra forma logarítmicamente ajustable a escala. Por ejemplo, el calculador G20 de factores puede ser configurado para calcular un logaritmo de la razón entre dos valores de energía como la diferencia de los logaritmos de los valores de energía.
La FIGURA 14b muestra un diagrama de bloques de una disposición generalizada que incluye un calculador A232 de factores de ganancia de banda alta, en el cual el calculador G10a de envolventes está dispuesto para calcular un envolvente de una señal en base a la señal S20 de banda estrecha, el calculador G10b de envolventes está dispuesto para calcular un envolvente de la señal S30 de banda alta, y el calculador G20 de factores está configurado para emitir los factores S60b de ganancia de banda alta (p. ej., al cuantizador 430). En este ejemplo, el calculador G10a de envolventes está dispuesto para calcular un envolvente de una señal recibida desde el procesamiento intermedio P1, que puede incluir estructuras y / o instrucciones, según lo descrito en la presente memoria, que están configuradas para realizar el cálculo de la señal S80 de excitación de banda estrecha, la generación de la señal S120 de excitación de banda alta y / o la síntesis de la señal S130 de banda alta. Para mayor comodidad, se supone que el calculador G10a de envolventes está dispuesto para calcular un envolvente de la señal S130 sintetizada de banda alta, aunque las implementaciones en las cuales está dispuesto el calculador G10a de envolventes para calcular un envolvente de la señal S80 de excitación de banda estrecha, o la señal S120 de excitación de banda alta, en cambio, están expresamente contempladas y reveladas por la presente memoria.
Como se ha hecho notar anteriormente, puede ser deseable obtener factores de ganancia con dos o más resoluciones temporales distintas. Por ejemplo, puede ser deseable que el calculador A230 de factores de ganancia de banda alta esté configurado para calcular tanto los factores de ganancia al nivel de tramas como una serie de factores de ganancia de sub-trama para cada trama de la señal S30 de banda alta a codificar. La FIGURA 15 muestra un diagrama de bloques de una implementación A234 del calculador A232 de factores de ganancia de banda alta, que incluye las implementaciones G10af, G10as del calculador G10 de envolventes, que están configuradas para calcular envolventes al nivel de tramas y al nivel de sub-tramas, respectivamente, de una primera señal (p. ej., la señal S130 sintetizada de banda alta, aunque las implementaciones en las cuales los calculadores G10af, G10as de envolventes están dispuestos para calcular envolventes de la señal S80 de excitación de banda estrecha, o la señal S120 de excitación de banda alta, en cambio, están expresamente contempladas y reveladas por la presente memoria). El calculador A234 de factores de ganancia de banda alta también incluye las implementaciones G10bf, G10bs del calculador G10b de envolventes, que están configuradas para calcular, respectivamente, los envolventes al nivel de tramas y al nivel de sub-tramas, de una segunda señal (p. ej., la señal S30 de banda alta).
Los calculadores G10af y G10bf de envolventes pueden ser idénticos, o pueden ser instancias de distintas implementaciones del calculador G10 de envolventes. En algunos casos, los calculadores G10af y G10bf de envolventes pueden ser implementados como la misma estructura (p. ej., una formación de compuertas) y / o un conjunto de instrucciones (p. ej., líneas de código) configuradas para procesar distintas señales en distintos momentos. Análogamente, los calculadores G10as y G10bs de envolventes pueden ser idénticos, pueden ser instancias de distintas implementaciones del calculador G10 de envolventes, o pueden ser implementados como la misma estructura y / o conjunto de instrucciones. Incluso es posible que todos los cuatro generadores G10af, G10as, G10bf y G10bs de envolventes sean implementados como la misma estructura configurable y / o conjunto de instrucciones en distintos momentos.
Las implementaciones G20f, G20s del calculador G20 de factores, según lo descrito en la presente memoria, están dispuestas para calcular los factores S60bf, S60bs de ganancia al nivel de tramas, en base a los respectivos envolventes. El normalizador N10, que puede ser implementado como un multiplicador o divisor, para adecuarse al diseño específico, está dispuesto para normalizar cada conjunto de factores S60bs de ganancia de sub-trama, según el correspondiente factor S60bf de ganancia al nivel de tramas (p. ej., antes de que sean cuantizados los factores de ganancia de sub-trama). En algunos casos, puede desearse obtener un resultado, posiblemente más exacto, cuantizando el factor S60bf de ganancia al nivel de tramas y usando luego el correspondiente valor decuantizado para normalizar los factores S60bs de ganancia de sub-trama.
La FIGURA 16 muestra un diagrama de bloques de otra implementación A236 del calculador A232 de factores de ganancia de banda alta. En esta implementación, diversos calculadores de envolventes y ganancias, según se muestra en la FIGURA 15, están dispuestos de modo que la normalización se realice sobre la primera señal antes de que sea calculado el envolvente. El normalizador N20 puede ser implementado como un multiplicador o divisor, para adecuarse al diseño específico. En algunos casos, puede desearse obtener un resultado, posiblemente más exacto, cuantizando el factor S60bf de ganancia al nivel de tramas, y usando luego el correspondiente valor decuantizado para normalizar la primera señal.
El cuantizador 430 puede ser implementado según cualquier técnica, conocida o por desarrollar, para realizar uno o más procedimientos de cuantización escalar y / o vectorial, considerados adecuados para el diseño específico. El cuantizador 430 puede ser configurado para cuantizar los factores de ganancia al nivel de tramas, por separado de los factores de ganancia de sub-trama. En un ejemplo, cada factor S60bf de ganancia al nivel de tramas es cuantizado usando un cuantizador de tabla de consulta de cuatro bits, y el conjunto de factores S60bs de ganancia de sub-trama para cada trama es cuantizado vectorialmente usando cuatro bits. Un esquema de ese tipo es usado en el codificador EVRC-WB para tramas vocales sonoras (según lo indicado en la sección 4.18.4 del documento C.S0014-C versión 0.2 del 3GPP2, disponible en www.3gpp2.org). En otro ejemplo, cada factor S60bf de ganancia al nivel de tramas es cuantizado usando un cuantizador escalar de siete bits, y el conjunto de factores S60bs de ganancia de sub-trama para cada trama es cuantizado vectorialmente usando un cuantizador vectorial de múltiples etapas, con cuatro bits por etapa. Un esquema de ese tipo es usado en el codificador EVRC-WB para tramas de voz no sonora (según lo observado en la sección 4.18.4 del documento C.S0014-C versión 0.2 del 3GPP2, citado anteriormente). También es posible que, en otros esquemas, cada factor de ganancia al nivel de tramas sea cuantizado junto con los factores de ganancia de sub-trama para esa trama.
Un cuantizador es configurado habitualmente para correlacionar un valor de entrada con uno entre un conjunto de valores discretos de salida. Se dispone de un número limitado de valores de salida, de modo que una gama de valores de entrada sea correlacionada con un único valor de salida. La cuantización aumenta la eficacia de la codificación, porque un índice que indica el correspondiente valor de salida puede ser transmitido en menos bits que el valor original de entrada. La FIGURA 17 muestra un ejemplo de una correlación unidimensional, según puede ser realizada por un cuantizador escalar, en el cual los valores de entrada entre (2nD-1)/2 y (2nD+1)/2 son correlacionados con un valor nD de salida (para n entero).
Un cuantizador también puede ser implementado como un cuantizador vectorial. Por ejemplo, el conjunto de factores de ganancia de sub-trama para cada trama es habitualmente cuantizado usando un cuantizador vectorial. La FIGURA 18 muestra un ejemplo sencillo de una correlación multidimensional, según lo realizado por un cuantizador vectorial. En este ejemplo, el espacio de entrada está dividido en un cierto número de regiones de Voronoi (p. ej., según un criterio del vecino más próximo). La cuantización correlaciona cada valor de entrada con un valor que representa la correspondiente región de Voronoi (habitualmente, el centroide), mostrada aquí como un punto. En este ejemplo, el espacio de entrada está dividido en seis regiones, de modo que cualquier valor de entrada pueda ser representado por un índice que tenga solamente seis estados distintos.
La FIGURA 19a muestra otro ejemplo de una correlación unidimensional, según puede ser realizada por un cuantizador escalar. En este ejemplo, un espacio de entrada, que se extiende desde algún valor inicial a (p. ej., 0 dB) hasta algún valor terminal b (p. ej., 6 dB), está dividido en n regiones. Los valores en cada una de las n regiones están representados por un valor correspondiente de los n valores de cuantización q[0] a q[n-1]. En una aplicación típica, el conjunto de n valores de cuantización está disponible para el codificador y el descodificador, de modo que la transmisión del índice de cuantización (de 0 a n-1) sea suficiente para transferir el valor cuantizado desde el codificador al descodificador. Por ejemplo, el conjunto de valores de cuantización puede ser almacenado en una lista ordenada, una tabla o un libro de códigos dentro de cada dispositivo.
Aunque la FIGURA 19a muestra un espacio de entrada dividido en n regiones de igual tamaño, puede ser deseable, en cambio, dividir el espacio de entrada usando regiones de distintos tamaños. Es posible que pueda obtenerse un resultado medio más exacto distribuyendo los valores de cuantización según una distribución esperada de los datos de entrada. Por ejemplo, puede ser deseable obtener una mayor resolución (es decir, regiones de cuantización más pequeñas) en áreas del espacio de entrada de las que se espera que sean observadas más a menudo, y una resolución menor en otros sitios. La FIGURA 19b muestra un ejemplo de una correlación de ese tipo. En otro ejemplo, los tamaños de las regiones de cuantización aumentan según la amplitud crece desde a hasta b (p. ej., logarítmicamente). Las regiones de cuantización de distintos tamaños también pueden ser usadas en la cuantización vectorial (p. ej., según lo mostrado en la FIGURA 18). Al cuantizar los factores S60bf de ganancia al nivel de tramas, el cuantizador 430 puede ser configurado para aplicar una correlación que sea uniforme, o no uniforme, según se desee. Análogamente, al cuantizar los factores S60bs de ganancia de sub-trama, el cuantizador 430 puede ser configurado para aplicar una correlación que sea uniforme, o no uniforme, según se desee. El cuantizador 430 puede ser implementado para incluir cuantizadores separados para los factores S60bf y S60bs, y / o puede ser implementado para usar la misma estructura configurable, y /
o el mismo conjunto de instrucciones, para cuantizar los distintos flujos de factores de ganancia en distintos momentos.
Como se ha descrito anteriormente, los factores S60b de ganancia de banda alta codifican una relación variable en el tiempo entre un envolvente de la señal S30 original de banda ancha y un envolvente de una señal basada en la señal S80 de excitación de banda estrecha (p. ej., la señal S130 sintetizada de banda alta). Esta relación puede ser reconstruida en el descodificador, de modo que los niveles relativos de las señales descodificadas, de banda estrecha y de banda alta, se aproximen a los de los componentes de banda estrecha y de banda alta de la señal S10 original vocal de banda ancha.
Una distorsión audible puede ocurrir si los niveles relativos de las diversas sub-bandas en una señal vocal descodificada son inexactos. Por ejemplo, una distorsión perceptible puede ocurrir cuando una señal de banda alta descodificada tiene un mayor nivel (p. ej., una mayor energía), con respecto a una correspondiente señal descodificada de banda estrecha, que en la señal original vocal. Las distorsiones audibles pueden desvirtuar la experiencia del usuario, y reducir la calidad percibida del codificador. Para obtener un resultado perceptivamente bueno, puede ser deseable que el codificador de sub-banda (p. ej., el codificador A200 de banda alta) sea parco al adjudicar energía a la señal sintetizada. Por ejemplo, puede ser deseable usar un procedimiento parco de Cuantización para codificar un valor de factor de ganancia para la señal sintetizada.
Una distorsión resultante del desequilibrio de nivel puede ser especialmente cuestionable para una situación en la cual la excitación para la sub-banda amplificada es obtenida de otra sub-banda. Una tal distorsión puede ocurrir cuando, por ejemplo, un factor S60b de ganancia de banda alta es cuantizado hasta un valor mayor que su valor original. La FIGURA 19c ilustra un ejemplo en el cual el valor cuantizado para un valor R de factor de ganancia es mayor que el valor original. El valor cuantizado está indicado en la presente memoria como q[iR], donde iR indica el índice de cuantización asociado al valor R y q[·] indica la operación de obtener el valor de cuantización identificado por el índice dado.
La FIGURA 20a muestra un diagrama de flujo para un procedimiento M100 de limitación de factores de ganancia, según una implementación general. La tarea TQ10 calcula un valor R para un factor de ganancia de una parte (p. ej., una trama
o sub-trama) de una señal de sub-banda. Por ejemplo, la tarea TQ10 puede ser configurada para calcular el valor R como la razón entre la energía de la trama original de sub-banda y la energía de una trama sintetizada de sub-banda. Alternativamente, el valor R del factor de ganancia puede ser un logaritmo (p. ej., en base 10) de una razón de ese tipo. La tarea TQ10 puede ser realizada por una implementación del calculador A230 de factores de ganancia de banda alta, según lo descrito anteriormente.
La tarea TQ20 cuantiza el valor R del factor de ganancia. Tal cuantización puede ser realizada por cualquier procedimiento de cuantización escalar (p. ej., según lo descrito en la presente memoria), o cualquier otro procedimiento considerado adecuado para el diseño específico del codificador, tal como un procedimiento de cuantización vectorial. En una aplicación típica, la tarea TQ20 está configurada para identificar un índice iR de cuantización correspondiente al valor R de entrada. Por ejemplo, la tarea TQ20 puede ser configurada para seleccionar el índice comparando el valor de R con las entradas en una lista, tabla o libro de códigos de cuantización, según una estrategia de búsqueda deseada (p. ej., un algoritmo de error mínimo). En este ejemplo, se supone que la tabla o lista de cuantización está dispuesta en orden decreciente de la estrategia de búsqueda (es decir, de modo que q[i-1] < q[i]).
La tarea TQ30 evalúa una relación entre el valor de ganancia cuantizado y el valor original. En este ejemplo, la tarea TQ30 compara el valor de ganancia cuantizado con el valor original. Si la tarea TQ30 halla que el valor cuantizado de R no es mayor que el valor de entrada de R, entonces concluye el procedimiento M100. Sin embargo, si la tarea TQ30 halla que el valor cuantizado de R supera el de R, se ejecuta la tarea TQ50 para seleccionar un índice distinto de cuantización para R. Por ejemplo, la tarea TQ50 puede ser configurada para seleccionar un índice que indique un valor de cuantización menor que q[iR].
En una implementación típica, la tarea TQ50 selecciona el siguiente valor mínimo en la lista, tabla o libro de códigos de cuantización. La FIGURA 20b muestra un diagrama de flujo para una implementación M110 del procedimiento M100 que incluye una tal implementación TQ52 de la tarea TQ50, donde la tarea TQ52 está configurada para decrementar el índice de cuantización.
En algunos casos, puede ser deseable permitir que el valor cuantizado de R supere el valor de R en alguna cantidad nominal. Por ejemplo, puede ser deseable permitir que el valor cuantizado de R supere el valor de R en alguna cantidad,
o proporción, de la que se espera que tenga un efecto aceptablemente bajo sobre la calidad perceptiva. La FIGURA 20c muestra un diagrama de flujo para una tal implementación M120 del procedimiento M100. El procedimiento M120 incluye una implementación TQ32 de la tarea TQ30, que compara el valor cuantizado de R con un límite superior mayor que R. En este ejemplo, la tarea TQ32 compara q[iR] con el producto de R y un umbral T1, donde T1 tiene un valor mayor que, pero cercano a, la unidad (p. ej., 1,1 o 1,2). Si la tarea TQ32 halla que el valor cuantizado es menor que (alternativamente, no mayor que) el producto, entonces se ejecuta una implementación de la tarea TQ50. Otras implementaciones de la tarea TQ30 pueden ser configuradas para determinar si una diferencia entre el valor de R y el valor cuantizado de R iguala y / o supera un umbral.
Es posible, en algunos casos, que la selección de un menor valor de cuantización para R cause una discrepancia mayor, entre las señales descodificadas, que el valor original de cuantización. Por ejemplo, una situación de ese tipo puede ocurrir cuando q[iR-1] es mucho menor que el valor de R. Implementaciones adicionales del procedimiento M100 incluyen procedimientos en los cuales la ejecución o configuración de la tarea TQ50 es fortuita, según la comprobación del valor de cuantización candidato (p. ej., q[iR-1]).
La FIGURA 20d muestra un diagrama de flujo para una tal implementación M130 de procedimiento M100. El procedimiento M130 incluye una tarea TQ40 que compara el valor de cuantización candidato (p. ej., q[iR-1]) con un límite inferior menor que R. En este ejemplo, la tarea TQ40 compara q[iR] con el producto de R y un umbral T2, donde T2 tiene un valor menor que, pero cercano a, la unidad (p. ej., 0,8 o 0,9). Si la tarea TQ40 halla que el valor de cuantización candidato no es mayor que (alternativamente, es menor que) el producto, entonces el procedimiento M130 concluye. Si la tarea TQ40 halla que el valor cuantizado es mayor que (alternativamente, no es menor que) el producto, entonces se ejecuta una implementación de la tarea TQ50. Otras implementaciones de la tarea TQ40 pueden ser configuradas para determinar si una diferencia entre el valor de cuantización candidato y el valor de R iguala y / o supera un umbral.
Una implementación del procedimiento M100 puede ser aplicada a los factores S60bf de ganancia al nivel de tramas y o a los factores S60bs de ganancia de sub-trama. En una aplicación típica, un procedimiento de ese tipo es aplicado solamente a los factores de ganancia al nivel de tramas. En el caso de que el procedimiento seleccione un nuevo índice de cuantización para un factor de ganancia al nivel de tramas, puede ser deseable recalcular los correspondientes factores S60bs de ganancia de sub-trama, en base al nuevo valor cuantizado del factor de ganancia al nivel de tramas. Alternativamente, puede disponerse que el cálculo de los factores S60bs de ganancia de sub-trama ocurra después de que haya sido realizado un procedimiento de limitación de factores de ganancia sobre el correspondiente factor de ganancia al nivel de tramas.
La FIGURA 21 muestra un diagrama de bloques de una implementación A203 del codificador A202 de banda alta. El codificador A203 incluye un limitador L10 de factores de ganancia que está dispuesto para recibir los valores de factores de ganancia cuantizados y sus valores originales (es decir, previos a la cuantización). El limitador L10 está configurado para emitir los factores S60b de ganancia de banda alta según una relación entre esos valores. Por ejemplo, el limitador L10 puede ser configurado para realizar una implementación del procedimiento M100, según lo descrito en la presente memoria, para emitir los factores S60b de ganancia de banda alta como uno o más flujos de índices de cuantización. La FIGURA 22 muestra un diagrama de bloques de una implementación A204 del codificador A203 de banda alta, que está configurado para emitir los factores S60bs de ganancia de sub-trama, según lo producido por el cuantizador 430, y para emitir los factores S60bf de ganancia al nivel de tramas, mediante el limitador L10.
La FIGURA 23a muestra un diagrama operativo para una implementación L12 del limitador L10. El limitador L12 compara los valores anteriores y posteriores a la cuantización de R para determinar si q[iR] es o no mayor que R. Si esta expresión es verdad, entonces el limitador L12 selecciona otro índice de cuantización decrementando el valor del índice iR en uno, para producir un nuevo valor cuantizado para R. En caso contrario, el valor del índice iR no se cambia.
La FIGURA 23b muestra un diagrama operativo para otra implementación L14 del limitador L10. En este ejemplo, el valor cuantizado es comparado con el producto del valor de R y un umbral T1, donde T1 tiene un valor mayor que, pero cercano a, la unidad (p. ej., 1,1 o 1,2). Si q[iR] es mayor que (alternativamente, no menor que) T1R, el limitador L14 decrementa el valor del índice IR.
La FIGURA 23c muestra un diagrama operativo para una implementación adicional L16 del limitador L10, que está configurada para determinar si el valor de cuantización propuesto para reemplazar al actual está o no lo bastante cerca del valor original de R. Por ejemplo, el limitador L16 puede ser configurado para realizar una comparación adicional, a fin de determinar si el próximo valor mínimo de cuantización indizado (p. ej., q[iR-1]) está o no dentro de una distancia especificada, o dentro de una proporción especificada, del valor pre-cuantizado de R. En este ejemplo específico, el valor de cuantización candidato es comparado con el producto del valor de R y un umbral T2, donde T2 tiene un valor menor que, pero cercano a, la unidad (p. ej., 0,8 o 0,9). Si q[iR-1] es menor que (alternativamente, no mayor que) T2R, la comparación falla. Si falla cualquiera de las comparaciones realizadas sobre q[iR] y q[iR-1], el valor del índice iR no se cambia.
Es posible que las variaciones entre los factores de ganancia den lugar a distorsiones en la señal descodificada, y puede ser deseable configurar el codificador A200 de banda alta para realizar un procedimiento de allanamiento del factor de ganancia (p. ej., aplicando un filtro de allanamiento tal como un filtro IIR de una toma). Tal allanamiento puede ser aplicado a los factores S60bf de ganancia al nivel de tramas, y / o a los factores S60bs de ganancia de sub-trama. En tal caso, una implementación del limitador L10 y / o del procedimiento M100, según lo descrito en la presente memoria, puede ser dispuesta para comparar el valor cuantizado iR con el valor pre-allanado de R. Una descripción adicional y figuras referidas a tal allanamiento de factores de ganancia pueden ser halladas en el documento U. S. 2006 / 0277039 A1 (Vos et al.), titulado “SISTEMAS, PROCEDIMIENTOS Y APARATOS PARA EL ALLANAMIENTO DE FACTORES DE GANANCIA”, depositado el 21 de abril de 2006, en las FIGURAS 48 a 55b y en el texto adjunto (incluyendo los
párrafos [000254] a [000272]).
Si una señal de entrada a un cuantizador es muy llana, puede ocurrir a veces que la salida cuantizada sea mucho menos llana, según un paso mínimo entre los valores en el espacio de salida de la cuantización. Un efecto de ese tipo puede llevar a distorsiones audibles, y puede ser deseable reducir este efecto para los factores de ganancia. En algunos casos, las prestaciones de cuantización de factores de ganancia pueden ser mejoradas implementando el cuantizador 430 para incorporar la modelación temporal del ruido. Tal modelación puede ser aplicada a los factores S60bf de ganancia a nivel de tramas y / o a los factores S60bs de ganancia de sub-trama. Una descripción adicional, y las figuras referidas a la cuantización de los factores de ganancia usando la modelación temporal del ruido, pueden hallarse en el documento U.
S. 2006 / 0277039 A1, en las FIGURAS 48 a 55b y el texto adjunto (incluyendo los párrafos [000254] a [000272]).
Para un caso en el cual la señal S120 de excitación de banda alta es obtenida a partir de una señal de excitación que ha sido regularizada, puede desearse deformar temporalmente el envolvente temporal de la señal S30 de banda alta, según la deformación temporal de la señal de excitación de origen. Una descripción adicional, y las figuras referidas a tal deformación temporal, pueden ser halladas en el documento U. S. 2006 / 0282263 A1 de Vos et al., titulado “SISTEMAS, PROCEDIMIENTOS Y APARATO PARA LA DEFORMACIÓN TEMPORAL DE BANDA ALTA”, depositado el 3 de abril
de 2006, Expediente de agente Nº 050550, en las FIGURAS 25 a 29 y en el texto adjunto (incluyendo los párrafos [000157] a [000187]).
Un grado de similitud entre la señal S30 de banda alta y la señal S130 sintetizada de banda alta puede indicar cuán fielmente se parecerá la señal S100 descodificada de banda alta a la señal S30 de banda alta. Específicamente, una similitud entre los envolventes temporales de la señal S30 de banda alta y la señal S130 sintetizada de banda alta puede indicar que de la señal S100 descodificada de banda alta puede esperarse que tenga una buena calidad de sonido, y que sea perceptivamente similar a la señal S30 de banda alta. Una gran variación a lo largo del tiempo entre los envolventes puede tomarse como indicación de que la señal sintetizada es muy distinta a la original, y en tal caso puede ser deseable identificar y atenuar esos factores de ganancia antes de la cuantización. Una descripción adicional, y las figuras referidas a tal atenuación de factores de ganancia, pueden hallarse en el documento U. S. 2006 / 0282262 A1 deVos et al., titulado “SISTEMAS, PROCEDIMIENTOS Y APARATO PARA LA ATENUACIÓN DE FACTORES DE GANANCIA”, depositado el 21 de abril de 2006, Expediente de agente Nº 050558, en las FIGURAS 34 a 39 y el texto adjunto (incluyendo los párrafos [000222] a [000236]).
La FIGURA 24 muestra un diagrama de bloques de una implementación B202 del descodificador B200 de banda alta. El descodificador B202 de banda alta incluye un generador B300 de excitación de banda alta que está configurado para producir la señal S120 de excitación de banda alta, en base a la señal S80 de excitación de banda estrecha. Según las decisiones de diseño específicas del sistema, el generador B300 de excitación de banda alta puede ser implementado según cualquiera de las implementaciones del generador A300 de excitación de banda alta, según lo mencionado en la presente memoria. Habitualmente, es deseable implementar el generador B300 de excitación de banda alta para que tenga la misma respuesta que el generador de excitación de banda alta del codificador de banda alta del sistema específico de codificación. Debido a que el descodificador B110 de banda estrecha realizará habitualmente la decuantización de la señal S50 codificada de excitación de banda estrecha, sin embargo, en la mayoría de los casos el generador B300 de excitación de banda alta puede ser implementado para recibir la señal S80 de excitación de banda estrecha desde el descodificador B110 de banda estrecha, y no necesita incluir un cuantizador inverso configurado para decuantizar la señal S50 codificada de excitación de banda estrecha. También es posible que el descodificador B110 de banda estrecha sea implementado para incluir una instancia del filtro 600 contra la poca densidad, dispuesto para filtrar la señal decuantizada de excitación de banda estrecha antes de que sea ingresada a un filtro de síntesis de banda estrecha, tal como el filtro 330.
El cuantizador inverso 560 está configurado para decuantizar los parámetros S60a de filtro de banda alta (en este ejemplo, para un conjunto de las LSF), y la transformación 570, de LSF a coeficiente de filtro de LP, está configurada para transformar las LSF en un conjunto de coeficientes de filtro (por ejemplo, según lo descrito anteriormente con referencia al cuantizador inverso 240 y la transformación 250 del codificador A122 de banda estrecha). En otras implementaciones, según lo mencionado anteriormente, pueden usarse distintos conjuntos de coeficientes (p. ej., coeficientes cepsetrales) y / o representaciones de coeficientes (p. ej., los ISP). El filtro B200 de síntesis de banda alta está configurado para producir una señal sintetizada de banda alta según la señal S120 de excitación de banda alta y el conjunto de coeficientes de filtro. Para un sistema en el cual el codificador de banda alta incluye un filtro de síntesis (p. ej., como en el ejemplo del codificador A202 descrito anteriormente), puede ser deseable implementar el filtro B200 de síntesis de banda alta para que tenga la misma respuesta (p. ej., la misma función de transferencia) que ese filtro de síntesis.
El descodificador B202 de banda alta también incluye un cuantizador inverso 580 configurado para decuantizar los factores S60b de ganancia de banda alta, y un elemento 590 de control de ganancia (p. ej., un multiplicador o amplificador) configurado y dispuesto para aplicar los factores de ganancia decuantizados a la señal sintetizada de banda alta, para producir la señal S100 de banda alta. Para un caso en el cual el envolvente de ganancia de una trama está especificado por más de un factor de ganancia, el elemento 590 de control de ganancia puede incluir lógica configurada para aplicar los factores de ganancia a las respectivas sub-tramas, posiblemente según una función de formación de ventanas que puede ser la misma función de formación de ventanas, o una distinta, que la aplicada por un calculador de ganancias (p. ej., el calculador A230 de ganancias de banda alta) del correspondiente codificador de banda alta. En otras implementaciones del descodificador B202 de banda alta, el elemento 590 de control de ganancia está similarmente configurado, pero está dispuesto, en cambio, para aplicar los factores de ganancia decuantizados a la señal S80 de excitación de banda estrecha, o a la señal S120 de excitación de banda alta. El elemento 590 de control de ganancia también puede ser implementado para aplicar factores de ganancia con más de una resolución temporal (p. ej., para normalizar la señal de entrada según un factor de ganancia al nivel de tramas, y para modelar la señal resultante según un conjunto de factores de ganancia de sub-trama).
Una implementación del descodificador B110 de banda estrecha, según un paradigma como el mostrado en la FIGURA 8, puede ser configurada para emitir la señal S80 de excitación de banda estrecha al descodificador B200 de banda alta, después de que haya sido restaurada la estructura a largo plazo (estructura de tono o armónica). Por ejemplo, un descodificador de ese tipo puede ser configurado para emitir la señal S80 de excitación de banda estrecha como una versión decuantizada de la señal S50 codificada de excitación de banda estrecha. Por supuesto, también es posible implementar el descodificador B110 de banda estrecha de modo que el descodificador B200 de banda alta realice la decuantización de la señal S50 codificada de excitación de banda estrecha para obtener la señal S80 de excitación de banda estrecha.
Aunque están descritos en gran medida como aplicados a la codificación de banda alta, los principios revelados en la presente memoria pueden ser aplicados a cualquier codificación de una sub-banda de una señal vocal con respecto a otra sub-banda de la señal vocal. Por ejemplo, el banco de filtros del codificador puede ser configurado para emitir una señal de banda baja a un codificador de banda baja (como alternativa, o además, de una o más señales de banda alta), y el codificador de banda baja puede ser configurado para realizar un análisis espectral de la señal de banda baja, para extender la señal codificada de excitación de banda estrecha, y para calcular un envolvente de ganancia para la señal codificada de banda baja con respecto a la señal original de banda baja. Para cada una de estas operaciones, se contempla expresamente, y se revela por la presente memoria, que el codificador de banda baja puede ser configurado para realizar tal operación según cualquiera entre la gama completa de variaciones según lo descrito en la presente memoria.
La presentación precedente de las configuraciones descritas está proporcionada para permitir a cualquier persona experta en la técnica hacer o usar las estructuras y principios revelados en la presente memoria. Son posibles diversas modificaciones para estas configuraciones, y los principios genéricos presentados en la presente memoria pueden ser aplicados asimismo a otras configuraciones. Por ejemplo, una configuración puede ser implementada, en parte o en su totalidad, como un circuito cableado, como una configuración de circuitos fabricada en un circuito integrado específico de la aplicación, o como un programa de firmware cargado en un almacenamiento no volátil, o un programa de software cargado desde, o en, un medio de almacenamiento de datos como código legible por máquina, siendo tal código instrucciones ejecutables por una formación de elementos lógicos tales como un micro-procesador u otra unidad de procesamiento de señales digitales. El medio de almacenamiento de datos puede ser una formación de elementos de almacenamiento tales como una memoria semiconductora (que puede incluir, sin limitación, la RAM (memoria de acceso aleatorio) dinámica o estática, la ROM (memoria de solo lectura) y / o la flash RAM), o memoria ferroeléctrica, magnetoresistente, ovónica, polimérica o de cambio de fase; o un medio de disco tal como un disco magnético u óptico. El término “software” debería ser entendido como incluyente del código fuente, el código en lenguaje ensamblador, el código de máquina, el código binario, el firmware, el macro-código, el micro-código, uno o más conjuntos cualesquiera de secuencias de instrucciones ejecutables por una formación de elementos lógicos, y cualquier combinación de tales ejemplos.
Los diversos elementos de las implementaciones del calculador A230 de factores de ganancia de banda alta, el codificador A200 de banda alta, el descodificador B200 de banda alta, el codificador A100 vocal de banda ancha y el descodificador B100 vocal de banda ancha pueden ser implementados como dispositivos electrónicos y / u ópticos residentes, por ejemplo, en el mismo chip, o entre dos o más chips en un juego de chips, aunque también están contempladas otras disposiciones, sin tal limitación. Uno o más elementos de un aparato de ese tipo (p. ej., el calculador
A230 de factores de ganancia de banda alta, el cuantizador 430 y / o el limitador L10) pueden ser implementados, en su totalidad o en parte, como uno o más conjuntos de instrucciones dispuestas para ser ejecutadas en una o más formaciones fijas o programables de elementos lógicos (p. ej., transistores, compuertas) tales como micro-procesadores, procesadores empotrados, núcleos de IP, procesadores de señales digitales, FPGA (formaciones de compuertas 5 programables en el terreno), ASSP (productos estándar específicos de la aplicación) y ASIC (circuitos integrados específicos de la aplicación). También es posible que uno o más de tales elementos tengan una estructura en común (p. ej., un procesador usado para ejecutar partes de código correspondientes a distintos elementos en distintos momentos, un conjunto de instrucciones ejecutadas para realizar tareas correspondientes a distintos elementos en distintos momentos, o una disposición de dispositivos electrónicos y / u ópticos que realicen operaciones para distintos elementos
10 en distintos momentos). Además, es posible que uno o más elementos de ese tipo sean usados para realizar tareas o ejecutar otros conjuntos de instrucciones que no estén directamente relacionadas con una operación del aparato, tal como una tarea referida a otra operación de un dispositivo o sistema en el cual está incrustado el aparato.
Las configuraciones también incluyen procedimientos adicionales de codificación y descodificación vocal, como son expresamente revelados en la presente memoria, p. ej., por descripciones de estructuras configuradas para realizar tales
15 procedimientos. Cada uno de estos procedimientos también puede ser realizado tangiblemente (por ejemplo, en uno o más medios de almacenamiento de datos, según lo enumerado anteriormente) como uno o más conjuntos de instrucciones legibles y / o ejecutables por una máquina, incluyendo una formación de elementos lógicos (p. ej., un procesador, un micro-procesador, un micro-controlador u otra máquina de estados finitos).

Claims (12)

  1. REIVINDICACIONES
    1. Un procedimiento de codificación de una señal (S10) vocal de banda ancha que incluye generar un valor (S60b) de factor de ganancia cuantizado, comprendiendo dicho procedimiento:
    calcular un valor (TQ10) de factor de ganancia basado en una razón o una diferencia entre (A) un envolvente temporal de una parte en el tiempo de una primera señal (S30) de banda alta de la señal (S10) vocal de banda ancha y (B) un envolvente temporal de una parte correspondiente en el tiempo de una segunda señal basada una señal (S50) codificada de excitación, obtenida a partir de una señal (S20) de banda estrecha de la señal (S10) vocal de banda ancha;
    seleccionar un primer índice entre un conjunto ordenado de valores de cuantización correspondientes al valor (TQ20) del factor de ganancia;
    caracterizado porque el procedimiento comprende adicionalmente:
    determinar si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor (TQ30, TQ32) calculado del factor de ganancia; y
    si el valor de cuantización indicado por el primer índice es mayor que el valor basado en el valor calculado del factor de ganancia, seleccionar un segundo índice entre el conjunto ordenado de valores de cuantización, teniendo el segundo índice un valor de cuantización inferior al del primer índice, y usar el segundo índice como el valor (TQ50, TQ52) cuantizado del factor de ganancia; o
    si el valor de cuantización indicado por el primer índice no es mayor que el valor basado en el valor calculado del factor de ganancia, usar el primer índice como el valor cuantizado del factor de ganancia.
  2. 2.
    El procedimiento según la reivindicación 1, en el cual la determinación de si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia comprende la determinación de si el valor de cuantización indicado por el primer índice supera o no el valor (TQ30) del factor de ganancia.
  3. 3.
    El procedimiento según la reivindicación 1, en el cual la determinación de si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia comprende determinar si el valor de cuantización indicado por el primer índice supera o no el valor del factor de ganancia en una cantidad específica.
  4. 4.
    El procedimiento según la reivindicación 1, en el cual la determinación de si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia comprende la determinación de si el valor de cuantización indicado por el primer índice supera o no el valor del factor de ganancia en una proporción específica del valor (TQ32) del factor de ganancia.
  5. 5.
    El procedimiento según la reivindicación 1, en el cual el primer índice seleccionado entre el conjunto ordenado de valores de cuantización que corresponde al valor del factor de ganancia es el índice que indica el valor de cuantización, entre el conjunto ordenado, que está más cerca del valor del factor de ganancia.
  6. 6.
    El procedimiento según la reivindicación 5, en el cual el segundo índice es el índice en el conjunto ordenado que tiene el próximo valor mínimo de cuantización comparado con el valor de cuantización para el primer índice (TQ52).
  7. 7.
    Un producto de programa de ordenador, que comprende un medio legible por ordenador que incluye código de programa para implementar el procedimiento de una cualquiera de las reivindicaciones precedentes.
  8. 8.
    Un aparato de codificación de una señal (S10) vocal de banda ancha, que incluye generar un valor cuantizado (S60b) del factor de ganancia, comprendiendo dicho aparato:
    un medio (A230) para calcular un valor del factor de ganancia en base a una razón o una diferencia entre (A) un envolvente temporal de una parte en el tiempo de una primera señal (S30) de banda alta de la señal (S10) vocal de banda ancha, y (B) un envolvente temporal de una parte correspondiente en el tiempo de una segunda señal basada en una señal (S50) codificada de excitación, obtenida a partir de una señal (S20) de banda estrecha de la señal (S10) vocal de banda ancha;
    un medio (430) para seleccionar un primer índice entre un conjunto ordenado de valores de cuantización correspondientes al valor del factor de ganancia;
    caracterizado por:
    un medio (L10) para determinar si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia;
    un medio (L10) para seleccionar un segundo índice entre el conjunto ordenado de valores de cuantización si el valor de cuantización indicado por el primer índice es mayor que el valor basado en el valor calculado del factor de ganancia, teniendo el segundo índice un valor de cuantización inferior al del primer índice, y seleccionar el segundo índice como el valor cuantizado del factor de ganancia; y
    un medio (L10) para seleccionar el primer índice como el valor cuantizado del factor de ganancia si el valor de cuantización indicado por el primer índice no es mayor que el valor basado en el valor calculado del factor de ganancia.
  9. 9. El aparato según la reivindicación 8, en el cual el medio para determinar si el valor de cuantización H, indicado por el
    5 primer índice, no es mayor que un valor basado en el valor calculado del factor de ganancia comprende un medio para determinar si el valor de cuantización indicado por el primer índice supera o no el valor del factor de ganancia.
  10. 10. El aparato según la reivindicación 8, en el cual el medio para determinar si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia comprende un medio para determinar si el valor de cuantización indicado por el primer índice supera o no el valor del factor de ganancia en una
    10 cantidad específica.
  11. 11. El aparato según la reivindicación 8, en el cual el medio para determinar si el valor de cuantización indicado por el primer índice no es mayor que un valor basado en el valor calculado del factor de ganancia comprende un medio para determinar si el valor de cuantización indicado por el primer índice supera o no el valor del factor de ganancia en una proporción específica del valor del factor de ganancia.
    15 12. El aparato según la reivindicación 8, en el cual el primer índice seleccionado entre el conjunto ordenado de valores de cuantización que corresponde al valor del factor de ganancia es el índice que indica el valor de cuantización, entre el conjunto ordenado, que esté más cerca del valor del factor de ganancia.
  12. 13. El aparato según la reivindicación 12, en el cual el segundo índice es el índice en el conjunto ordenado que tiene el próximo valor mínimo de cuantización comparado con el valor de cuantización para el primer índice.
ES07853508T 2006-07-31 2007-07-31 Sistemas, procedimientos y aparato para limitar el factor de ganancia Active ES2460893T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US610104 2000-07-05
US83465806P 2006-07-31 2006-07-31
US834658P 2006-07-31
US11/610,104 US9454974B2 (en) 2006-07-31 2006-12-13 Systems, methods, and apparatus for gain factor limiting
PCT/US2007/074794 WO2008030673A2 (en) 2006-07-31 2007-07-31 Systems, methods, and apparatus for gain factor limiting

Publications (1)

Publication Number Publication Date
ES2460893T3 true ES2460893T3 (es) 2014-05-14

Family

ID=38987459

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07853508T Active ES2460893T3 (es) 2006-07-31 2007-07-31 Sistemas, procedimientos y aparato para limitar el factor de ganancia

Country Status (11)

Country Link
US (1) US9454974B2 (es)
EP (1) EP2047466B1 (es)
JP (1) JP5290173B2 (es)
KR (1) KR101078625B1 (es)
CN (1) CN101496101B (es)
BR (1) BRPI0715516B1 (es)
CA (1) CA2657910C (es)
ES (1) ES2460893T3 (es)
RU (1) RU2420817C2 (es)
TW (1) TWI352972B (es)
WO (1) WO2008030673A2 (es)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1775717B1 (en) * 2004-07-20 2013-09-11 Panasonic Corporation Speech decoding apparatus and compensation frame generation method
EP1953737B1 (en) 2005-10-14 2012-10-03 Panasonic Corporation Transform coder and transform coding method
KR101413968B1 (ko) * 2008-01-29 2014-07-01 삼성전자주식회사 오디오 신호의 부호화, 복호화 방법 및 장치
WO2009116815A2 (en) * 2008-03-20 2009-09-24 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding using bandwidth extension in portable terminal
KR101614160B1 (ko) 2008-07-16 2016-04-20 한국전자통신연구원 포스트 다운믹스 신호를 지원하는 다객체 오디오 부호화 장치 및 복호화 장치
JP4932917B2 (ja) 2009-04-03 2012-05-16 株式会社エヌ・ティ・ティ・ドコモ 音声復号装置、音声復号方法、及び音声復号プログラム
US8949117B2 (en) 2009-10-14 2015-02-03 Panasonic Intellectual Property Corporation Of America Encoding device, decoding device and methods therefor
BR112012013745B1 (pt) * 2009-12-07 2020-10-27 Dolby Laboratories Licensing Corporation Método para decodificar um quadro de um sinal de áudio digital codificado, aparelho para decodificar um quadro de um sinal de áudio digital codificado e meio de armazenamento que grava o método
JP5719941B2 (ja) * 2011-02-09 2015-05-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) オーディオ信号の効率的なエンコーディング/デコーディング
US9343076B2 (en) * 2011-02-16 2016-05-17 Dolby Laboratories Licensing Corporation Methods and systems for generating filter coefficients and configuring filters
CN103295578B (zh) * 2012-03-01 2016-05-18 华为技术有限公司 一种语音频信号处理方法和装置
WO2013141638A1 (ko) * 2012-03-21 2013-09-26 삼성전자 주식회사 대역폭 확장을 위한 고주파수 부호화/복호화 방법 및 장치
CN105551497B (zh) * 2013-01-15 2019-03-19 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
US9601125B2 (en) * 2013-02-08 2017-03-21 Qualcomm Incorporated Systems and methods of performing noise modulation and gain adjustment
WO2014181330A1 (en) * 2013-05-06 2014-11-13 Waves Audio Ltd. A method and apparatus for suppression of unwanted audio signals
FR3007563A1 (fr) * 2013-06-25 2014-12-26 France Telecom Extension amelioree de bande de frequence dans un decodeur de signaux audiofrequences
FR3008533A1 (fr) * 2013-07-12 2015-01-16 Orange Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences
EP2830065A1 (en) * 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency
US9384746B2 (en) * 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
KR102271852B1 (ko) * 2013-11-02 2021-07-01 삼성전자주식회사 광대역 신호 생성방법 및 장치와 이를 채용하는 기기
CN104681032B (zh) * 2013-11-28 2018-05-11 中国移动通信集团公司 一种语音通信方法和设备
US10163447B2 (en) * 2013-12-16 2018-12-25 Qualcomm Incorporated High-band signal modeling
US9564141B2 (en) 2014-02-13 2017-02-07 Qualcomm Incorporated Harmonic bandwidth extension of audio signals
CN106409304B (zh) * 2014-06-12 2020-08-25 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器
CN106228991B (zh) 2014-06-26 2019-08-20 华为技术有限公司 编解码方法、装置及系统
US9984699B2 (en) * 2014-06-26 2018-05-29 Qualcomm Incorporated High-band signal coding using mismatched frequency ranges
US9595269B2 (en) * 2015-01-19 2017-03-14 Qualcomm Incorporated Scaling for gain shape circuitry
US10020002B2 (en) * 2015-04-05 2018-07-10 Qualcomm Incorporated Gain parameter estimation based on energy saturation and signal scaling
US10499165B2 (en) * 2016-05-16 2019-12-03 Intricon Corporation Feedback reduction for high frequencies
TWI594231B (zh) * 2016-12-23 2017-08-01 瑞軒科技股份有限公司 分頻壓縮電路,音訊處理方法以及音訊處理系統

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2893691B2 (ja) 1988-11-25 1999-05-24 ソニー株式会社 デイジタル信号処理装置
JPH0828875B2 (ja) 1989-08-21 1996-03-21 三菱電機株式会社 符号化装置および復号化装置
IT1257431B (it) * 1992-12-04 1996-01-16 Sip Procedimento e dispositivo per la quantizzazione dei guadagni dell'eccitazione in codificatori della voce basati su tecniche di analisi per sintesi
JP3498375B2 (ja) 1994-07-20 2004-02-16 ソニー株式会社 ディジタル・オーディオ信号記録装置
JPH08123500A (ja) 1994-10-24 1996-05-17 Matsushita Electric Ind Co Ltd ベクトル量子化装置
CA2191972A1 (en) 1995-04-19 1996-10-31 James Patrick Ashley Method and apparatus for low rate coding and decoding
JP3707116B2 (ja) 1995-10-26 2005-10-19 ソニー株式会社 音声復号化方法及び装置
JP3353266B2 (ja) 1996-02-22 2002-12-03 日本電信電話株式会社 音響信号変換符号化方法
EP0878790A1 (en) * 1997-05-15 1998-11-18 Hewlett-Packard Company Voice coding system and method
US6260010B1 (en) * 1998-08-24 2001-07-10 Conexant Systems, Inc. Speech encoder using gain normalization that combines open and closed loop gains
US6397178B1 (en) * 1998-09-18 2002-05-28 Conexant Systems, Inc. Data organizational scheme for enhanced selection of gain parameters for speech coding
US6324505B1 (en) * 1999-07-19 2001-11-27 Qualcomm Incorporated Amplitude quantization scheme for low-bit-rate speech coders
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US7260523B2 (en) * 1999-12-21 2007-08-21 Texas Instruments Incorporated Sub-band speech coding system
US6704711B2 (en) 2000-01-28 2004-03-09 Telefonaktiebolaget Lm Ericsson (Publ) System and method for modifying speech signals
US6732070B1 (en) * 2000-02-16 2004-05-04 Nokia Mobile Phones, Ltd. Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching
US6947888B1 (en) * 2000-10-17 2005-09-20 Qualcomm Incorporated Method and apparatus for high performance low bit-rate coding of unvoiced speech
CA2327041A1 (en) * 2000-11-22 2002-05-22 Voiceage Corporation A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
US7003454B2 (en) * 2001-05-16 2006-02-21 Nokia Corporation Method and system for line spectral frequency vector quantization in speech codec
DE60222445T2 (de) * 2001-08-17 2008-06-12 Broadcom Corp., Irvine Verfahren zum verbergen von bitfehlern für die sprachcodierung
US6988066B2 (en) * 2001-10-04 2006-01-17 At&T Corp. Method of bandwidth extension for narrow-band speech
US6895375B2 (en) * 2001-10-04 2005-05-17 At&T Corp. System for bandwidth extension of Narrow-band speech
US20040002856A1 (en) * 2002-03-08 2004-01-01 Udaya Bhaskar Multi-rate frequency domain interpolative speech CODEC system
US7047188B2 (en) * 2002-11-08 2006-05-16 Motorola, Inc. Method and apparatus for improvement coding of the subframe gain in a speech coding system
US7242763B2 (en) * 2002-11-26 2007-07-10 Lucent Technologies Inc. Systems and methods for far-end noise reduction and near-end noise compensation in a mixed time-frequency domain compander to improve signal quality in communications systems
ATE368279T1 (de) * 2003-05-01 2007-08-15 Nokia Corp Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
FI118550B (fi) 2003-07-14 2007-12-14 Nokia Corp Parannettu eksitaatio ylemmän kaistan koodaukselle koodekissa, joka käyttää kaistojen jakoon perustuvia koodausmenetelmiä
US7613607B2 (en) * 2003-12-18 2009-11-03 Nokia Corporation Audio enhancement in coded domain
FI119533B (fi) * 2004-04-15 2008-12-15 Nokia Corp Audiosignaalien koodaus
JP4977472B2 (ja) 2004-11-05 2012-07-18 パナソニック株式会社 スケーラブル復号化装置
EP1875463B1 (en) * 2005-04-22 2018-10-17 Qualcomm Incorporated Systems, methods, and apparatus for gain factor smoothing
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding

Also Published As

Publication number Publication date
EP2047466B1 (en) 2014-03-26
BRPI0715516A2 (pt) 2013-07-09
CA2657910C (en) 2015-04-28
CN101496101A (zh) 2009-07-29
TWI352972B (en) 2011-11-21
US20080027718A1 (en) 2008-01-31
BRPI0715516B1 (pt) 2019-12-10
KR20090025349A (ko) 2009-03-10
RU2009107198A (ru) 2010-09-10
EP2047466A2 (en) 2009-04-15
TW200820219A (en) 2008-05-01
JP2009545775A (ja) 2009-12-24
US9454974B2 (en) 2016-09-27
JP5290173B2 (ja) 2013-09-18
WO2008030673A3 (en) 2008-06-26
KR101078625B1 (ko) 2011-11-01
CA2657910A1 (en) 2008-03-13
RU2420817C2 (ru) 2011-06-10
WO2008030673A2 (en) 2008-03-13
CN101496101B (zh) 2013-01-23

Similar Documents

Publication Publication Date Title
ES2460893T3 (es) Sistemas, procedimientos y aparato para limitar el factor de ganancia
ES2351935T3 (es) Procedimiento y aparato para la cuantificación vectorial de una representación de envolvente espectral.
ES2391292T3 (es) Sistemas, procedimientos y aparato para la generación de una señal de excitación de banda alta
ES2705589T3 (es) Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
JP5437067B2 (ja) 音声信号に関連するパケットに識別子を含めるためのシステムおよび方法