MXPA03004513A - Metodo y dispositivo para vincular posiciones y signos de pulso de vinculacion en libros de codigos algebraicos para codificacion eficiente de senales de banda ancha. - Google Patents

Metodo y dispositivo para vincular posiciones y signos de pulso de vinculacion en libros de codigos algebraicos para codificacion eficiente de senales de banda ancha.

Info

Publication number
MXPA03004513A
MXPA03004513A MXPA03004513A MXPA03004513A MXPA03004513A MX PA03004513 A MXPA03004513 A MX PA03004513A MX PA03004513 A MXPA03004513 A MX PA03004513A MX PA03004513 A MXPA03004513 A MX PA03004513A MX PA03004513 A MXPA03004513 A MX PA03004513A
Authority
MX
Mexico
Prior art keywords
amplitude
positions
index
pulses
zero
Prior art date
Application number
MXPA03004513A
Other languages
English (en)
Inventor
Bruno Bessette
Original Assignee
Voiceage Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=4167763&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=MXPA03004513(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Voiceage Corp filed Critical Voiceage Corp
Publication of MXPA03004513A publication Critical patent/MXPA03004513A/es

Links

Classifications

    • 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks

Abstract

La presente invencion describe un metodo de vinculacion que comprende formar un conjunto de pistas de posiciones de pulso, restringir las posiciones de los pulsos de amplitud diferentes de cero de las combinaciones del libro de codigos de acuerdo con el conjunto de pistas de posiciones de pulso, y vincular en el libro de codigos cada pulso de amplitud diferente de cero de las combinaciones al menos en relacion a la posicion de los pulsos en la pista correspondiente, la amplitud del pulso, y el numero de posiciones de los pulsos en la pista correspondiente. Para vincular las posiciones de uno y dos pulsos de amplitud diferente de cero, se usan respectivamente los procedimientos code_1 pulse y code_2 pulse. Cuando las posiciones de un numero X de pulsos de amplitud diferente de cero estan situadas en una pista, X = 3, los subindices de estos X pulsos se calculan usando los procedimientos code_1 pulse y code_2 pulse, y se calcula un indice global combinando estos subindices.

Description

MÉTODO Y DISPOSITIVO PARA VINCULAR POSICIONES Y SIGNOS DE PULSO DE VINCULACIÓN EN LIBROS DE CÓDIGOS ALGEBRAICOS PARA CODIFICACIÓN EFICIENTE DE SEÑALES DE BANDA ANCHA ANTECEDENTES DE LA INVENCIÓN 1. Campo de la invención La presente invención se relaciona con una técnica para codificar digitalmente una señal, en particular pero no exclusivamente, una señal vocal, con objeto de transmitir y sintetizar esta señal. Más específicamente, la presente invención se relaciona con un método para vincular las posiciones y amplitudes de pulso de los pulsos con una amplitud diferente de cero, en particular pero no exclusivamente, en libros de códigos algebraicos muy grandes, necesarios para la codificación de alta calidad de señales de banda ancha con base en técnicas de Predicción Lineal Excitada de Códigos Algebraicos (ACELP) . 2. Breve descripción de la tecnología actual La demanda de técnicas eficientes de codificación de voz/audio de banda ancha digital con una buena transacción subjetiva de proporción calidad/bit se está incrementando para numerosas aplicaciones, tales como P03/075-UAC teleconferencia de audio/video, multimedia, y aplicaciones inalámbricas, así como aplicaciones en internet y redes de transmisión por paquetes. Hasta recientemente, los anchos de banda de teléfono filtrados en el intervalo 200-3400 Hz se usaban principalmente en aplicaciones de codificación de voz. Sin embargo, existe una demanda creciente de aplicaciones de voz de banda ancha para incrementar la inteligibilidad y naturalidad de las señales vocales. Se encontró que un ancho de banda en el intervalo de 50-7,000 Hz era suficiente para suministrar una calidad vocal verbal. Para señales de audio, este intervalo proporciona una calidad de audio aceptable, pero todavía es menor que la calidad del CD (Disco compacto) , que opera en el intervalo de 20-20,000 Hz . Un codificador de voz convierte una señal vocal en una corriente de bits digital, la cual se transmite por un canal de comunicación (o se almacena en un medio de almacenamiento) . La señal vocal se digitaliza (muestreada y cuantificada usualmente con 16 bits por muestra) y el codificador de señal vocal tiene el papel de representar estas muestras digitales con un número más pequeño de bits, mientras mantiene una buena calidad subjetiva de señal vocal. El decodificador o sintetizador de señal vocal opera sobre la corriente de bits transmitida o almacenada, y la convierte de nuevo a una señal de sonido.
P03/075-UAC Una de las mejores técnicas de la técnica anterior, capaz de lograr una buena transacción de calidad/velocidad de transferencia de bits es la así llamada técnica CELP, por sus siglas en inglés, (Predicción Lineal Excitada de Código) . De acuerdo a esta técnica, la señal vocal muestreada se procesa en bloques sucesivos de L muestras, usualmente llamadas marcos, en donde L es algún número predeterminado (que corresponde a 10-30 ms de señal vocal) . En CELP, se calcula un filtro de síntesis de LP (Predicción Lineal) y se transmite a cada marco. El marco de muestra L se divide entonces en bloques más pequeños, llamados submarcos de tamaño N muestras, en donde L=kN, y k es el número de submarcos en un marco {N usualmente corresponde a 4-10 ms de señal vocal) . Una señal de excitación se determina en cada submarco, que usualmente consiste de dos componentes: uno de la excitación pasada (también llamada contribución de paso o libro de códigos adaptable) y el otro de un libro de códigos innovador (también llamado libro de códigos fijo) . Esta señal de excitación se transmite y se usa en el decodificador como la entrada del filtro de síntesis de LP, para obtener la señal vocal sintetizada. Para sintetizar señal vocal de acuerdo a la técnica CELP, cada bloque de N muestras se sintetiza filtrando un vector de código apropiado del libro de P03/075-UAC códigos de innovación a través de filtros que varían con el tiempo, que modelan las características espectrales de la señal vocal. Estos filtros consisten de un filtro de síntesis de paso (usualmente implementado como un libro de código adaptable que contiene la señal de excitación pasada) y un filtro de síntesis de LP. En el extremo del codificador, la salida de síntesis se calcula para todos, o para un subco unto, de los vectores de código del libro de códigos (búsqueda del libro de códigos) . El vector de código retenido es el que produce la salida de síntesis más cercana a la señal vocal original de acuerdo a una medición de distorsión ponderada perceptualmente . Esta ponderación perceptual se realiza usando un así llamado filtro de ponderación perceptual, que se deriva usualmente del filtro de síntesis de LP. Un libro de códigos innovador en el contexto de CELP, es un conjunto vinculado de secuencias de N muestras de longitud, el cual será referido como vectores de código ÍV-dimensionales . Cada secuencia del libro de códigos está vinculado por un entero k en el intervalo desde 1 a M, en donde M representa el tamaño del libro de códigos, expresado frecuentemente como un número de bits b, en donde M=2b. Un libro de códigos se puede almacenar en una memoria física, por ejemplo una tabla de consulta libro de P03/075-UAC códigos estocástico) , o se puede referir a un mecanismo para relacionar el índice a un vector de código correspondiente, por ejemplo una fórmula (libro de códigos algebraicos) . Una desventaja del primer tipo de libro de códigos, el libro de códigos estocásticos , es que frecuentemente involucra un almacenamiento físico substancial. Son estocásticos, es decir, aleatorios en el sentido de que la trayectoria desde el índice al vector de código asociado involucra tablas de consulta, que son el resultado de números generados aleatoriamente o técnicas estadísticas aplicadas a conjuntos grandes de instrucciones de señales vocales. El tamaño de los libros de códigos estocásticos tiende a estar limitado por la complejidad de almacenamiento y/o búsqueda. El segundo tipo de libros de códigos son los libros de códigos algebraicos. Por contraste con los libros de códigos estocásticos, los libros de códigos algebraicos no son aleatorios, y no requieren un almacenamiento substancial. Un libros de códigos algebraicos es un conjunto de vectores de código vinculados, de los cuales las amplitudes y las posiciones de los pulsos del ^esimo vector de código se puede derivar de un índice k correspondiente a través de una regla que no requiere, o requiere un mínimo, de almacenamiento físico. Por lo tanto, P03/075-UAC el tamaño de los libros de códigos algebraicos no está limitado por requerimientos de almacenamiento. También se pueden diseñar libros de códigos algebraicos para una búsqueda eficiente. El modelo CELP ha sido muy exitoso para codificar señales de sonido de banda telefónica, y existen varios estándares con base de CELP en un amplio intervalo de aplicaciones, especialmente en aplicaciones celulares digitales. En la banda telefónica, la señal de sonido está limitada por banda a 200-3,400 Hz y muestreada a 8,000 muestras/segundo. En aplicaciones de voz/audio de banda ancha, la señal de sonido está limitada por banda a 50-7,000 Hz y muestreada a 16,000 muéstras/segundo . Surgen algunas dificultades cuando se aplica el modelo de CELP optimizado de banda telefónica a señales de banda ancha, y necesitan ser agregados aspectos adicionales al modelo para obtener señales de banda ancha de alta calidad. Estos aspectos incluyen técnicas de filtrado de ponderación perceptual eficiente, filtrado de paso de banda ancha variable, y de suavizado de ganancia y de mejora de paso eficientes. Otro punto importante que surge al codificar señales de banda ancha es la necesidad de usar libros de códigos de excitación muy grand s. Por lo tanto, estructuras de libro de códigos eficientes, que requieran un almacenamiento mínimo y puedan ser rápidamente P03/075-UAC investigadas llega a ser muy importante. Los libros de códigos algebraicos se han reconocido por su eficiencia y ahora se usan ampliamente en varios estándares de codificación de señales vocales. Los libros de códigos algebraicos y los procedimientos de búsqueda rápida relacionados están descritos en las Patentes de EE.UU. Nos. 5,444,816 (Adoul y colab.) publicada el 22 de agosto de 1995; 5,699,482 concedida a Adoul y colab., el 17 de diciembre de 1997; 5,754,976 concedida a Adoul y colab., el 19 de mayo de 1998; y 5,701,392 (Adoul y colab.) de fecha 23 de diciembre de 1997.
OBJBTO DH LA INVBNCIÓN Un objeto de la presente invención es proporcionar un nuevo procedimiento para vincular posiciones y amplitudes de pulso en libros de códigos algebraicos, para codificar eficientemente en particular, pero no exclusivamente, señales de banda ancha.
SUMARIO DK LA INVENCIÓN De acuerdo con la presente invención, se proporciona un método para vincular posiciones y amplitudes de pulso en un libro de códigos algebraicos, para la codificación y decodificación eficientes de una señal de sonido. El libro de códigos comprende un conjunto de P03/075-UAC combinaciones de amplitud/posición de pulso, cada una define un número de diferentes posiciones, y que comprende ambos, pulsos de amplitud cero y pulsos de amplitud diferente de cero asignados a posiciones respectivas de la combinación. Cada pulso de amplitud diferente de cero asume una de una pluralidad de posibles amplitudes, y el método de vinculación comprende: formar un conjunto de al menos una pista de estas posiciones de pulso; restringir las posiciones de los pulsos de amplitud diferente de cero de las combinaciones del libro de códigos de acuerdo con el conjunto de al menos una pista de posiciones de pulso; establecer un procedimiento 1 para vincular la posición y amplitud de un pulso de amplitud diferente de cero, cuando solamente la posición de este pulso de amplitud diferente de cero está situada en una pista del conjunto; establecer un procedimiento 2 para vincular las posiciones y amplitudes de dos pulsos de amplitud diferente de cero cuando solamente las posiciones de estos dos pulsos de amplitud diferente de cero están situadas en una pista del conjunto; y cuando las posiciones de un número X de pulsos de amplitud diferente de cero están situadas en una pista del P03/075-UAC conjunto, en donde X = 3 : dividir las posiciones de la pista en dos secciones ; usar un procedimiento X para vincular las posiciones y amplitudes de los X pulsos de amplitud diferente de cero, este procedimiento X comprende: identificar en cual de las dos secciones de pista está situado cada pulso de amplitud diferente de cero ; calcular subíndices de los X pulsos de amplitud diferente de cero usando los procedimiento 1 y 2 establecidos en al menos una de las secciones de pista y la pista completa; y calcular un índice de pogición-y-amplitud de los X pulsos de amplitud diferente de cero combinando los subíndices . Preferiblemente, calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero comprende : calcular al menos un índice intermedio combinando al menos dos de los subíndices; y calcular el índice de posición-y-amplitud de estos X pulsos de amplitud diferente de cero combinando los subíndices restantes y el al menos un índice intermedio. La presente invención también se relaciona con un P03/075-UAC dispositivo para vincular posiciones y amplitudes de pulso en un libro de códigos algebraicos para la codificación o descodificación eficiente de una señal de sonido. El libro de códigos comprende un conjunto de combinaciones de amplitud/posición de pulso, cada combinación de amplitud/posición de pulso define un número de diferentes posiciones, y comprende ambos, pulsos de amplitud cero y pulsos de amplitud diferente de cero, asignados a posiciones respectivas de la combinación, y cada pulso de amplitud diferente de cero asume una de una pluralidad de amplitudes posibles. El dispositivo de vinculación comprende : medios para formar un conjunto de al menos una pista de las posiciones de pulso; medios para restringir las posiciones de los pulsos de amplitud diferente de cero de las combinaciones del libro de códigos de acuerdo con el conjunto de al menos una pista de posiciones de pulso; medios para establecer un procedimiento 1 para vincular la posición y amplitud de un pulso de amplitud diferente de cero, cuando solamente la posición de este pulso de amplitud diferente de cero está situada en una pista del conjunto; medios para establecer un procedimiento 2 para vincular las posiciones y amplitudes de dos púlaos de P03/075-UAC amplitud diferente de cero cuando solamente las posiciones de estos dos pulsos de amplitud diferente de cero están situadas en una pista del conjunto; y cuando las posiciones de un número X de pulsos de amplitud diferente de cero están situadas en una pista del conjunto, en donde X = 3: medios para dividir las posiciones de la pista en dos secciones; medios para conducir un procedimiento X para vincular las posiciones y amplitudes de los X pulsos de amplitud diferente de cero, estos medios para conducir el procedimiento X comprenden; medios para identificar en cual de las dos secciones de pista está situado cada pulso de amplitud diferente de cero; medios para calcular subíndices de los X PUIBOS de amplitud diferente de cero usando los procedimiento 1 y 2 establecidos en al menos una de las secciones de pista y la pista completa; y medios para calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero, los medios para calcular el índice comprenden medios para combinar los subíndices. Preferiblemente, los medios para calcular un índice de posición-y-amplitud de los X pulsos de amplitud P03/075-UAC diferente de cero comprenden: medios para calcular al menos un índice intermedio combinando al menos dos de los subíndices; y calcular el índice de posición-y-amplitud de estos X pulsos de amplitud diferente de cero combinando los subíndices restantes y el al menos un índice intermedio. La presente invención se relaciona adicionalmente con : - un codificador, para codificar una señal de sonido, que comprende medios de procesamiento de la señal de sonido sensibles a la señal de sonido, para producir parámetros de codificación de la señal vocal, en donde los medios de procesamiento de la señal de sonido comprenden: medios para buscar un libro de códigos algebraicos para producir al menos uno de los parámetros de codificación de la señal vocal; y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos ; - un decodificado , para sintetizar una señal de sonido en respuesta a parámetros de codificación de la señal de sonido, que comprende: medios de procesamiento del parámetro de codificación, sensibles a los parámetros de codificación de la señal de sonido, para producir una señal de excitación, P03/07S-UAC en donde loa medios de procesamiento del parámetro de codificación comprende: un libro de códigos algebraicos sensible al menos a uno de los parámetros de codificación de la señal de sonido, para producir una porción de la señal de excitación; y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos ; y medios de filtro de síntesis, para sintetizar la señal de sonido en respuesta a la señal de excitación; un sistema de comunicación celular, para poner en servicio una gran área geográfica dividida en una pluralidad de celdas, que comprende: unidades móviles de transmisor/receptor; estaciones de base celulares, respectivamente situadas en las celdas; medios para controlar la comunicación entre las estaciones de base celulares; un sub-sistema de comunicación inalámbrico bidireccional entre cada unidad móvil, situada en una célula y la estación de base celular de la celda, el subsistema de comunicación inalámbrico bidireccional comprende en ambos, la unidad móvil y la estación de base celular (a) P03/075-UAC un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde loa medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos, la señal vocal constituye la señal de sonido; un elemento celular de red, que comprende (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de P03/075-UAC codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos ; una unidad celular móvil de transmisor/receptor que comprende (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos; y en un sistema de comunicación celular, para poner en servicio una gran área geográfica dividida en una pluralidad de celdas, y que comprende: unidades móviles de P03/075-UAC transmisor/receptor; estaciones de base celulares, respectivamente situadas en las celdas; y medios para controlar la comunicación entre las estaciones de base celulares ; un sub-sistema de comunicación inalámbrico bidireccional entre cada unidad móvil, situada en una célula y la estación de base celular de la celda, el subsistema de comunicación inalámbrico bidireccional comprende en ambos, la unidad móvil y la estación de base celular (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito arriba para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos . Lo anterior y otros objetos, ventajas y aspectos P03/075-UAC de la presente invención llegarán a ser más aparentes con la lectura de la siguiente descripción no restrictiva de las modalidades preferidas de la misma, dadas por vía de ejemplo solamente, con referencia a los dibujos anexados.
BREVE DESCRIPCIÓN DE LOS DIBUJOS En los dibujos anexados: la Figura 1 es un diagrama de bloques esquemático de una modalidad preferida del dispositivo de codificación de banda ancha; la Figura 2 es un diagrama de bloques esquemático de una modalidad preferida del dispositivo de decodificación de banda ancha; la Figura 3 es un diagrama de bloques esquemático de una modalidad preferida del dispositivo de análisis de paso ; la Figura 4 es un diagrama de bloques esquemático simplificado, de un sistema de comunicación celular en el cual el dispositivo de codificación de banda ancha de la Figura 1, y el dispositivo de decodificación de banda ancha de la Figura 2 se puede implementar; y la Figura 5 es un diagrama de flujo de una modalidad preferida para un procedimiento para codificar dos pulsos signados en una pista de longitud c-2M, incluyendo la vinculación de las posiciones y los signos P03/075-UAC del pulso.
DESCRIPCIÓN DETALLADA DE LAS MODALIDADES PREFERIDAS Como es muy conocido para aquellos de ordinario expertos en la técnica, un sistema de comunicación celular tal como 401 (Figura 4) proporciona un servicio de telecomunicación sobre una gran área geográfica dividiendo esa gran área geográfica en un número C de células más pequeñas . Las C células más pequeñas son puestas en servicio por estaciones 402i, 4022... 402c para proveer a cada célula con canales de señalización de radio, de audio y de datos. Los canales de señalización de radio se usan para colocar llamadas a radioteléfonos móviles (unidades móviles de transmisor/receptor) tales como 403, dentro de los límites del área de cobertura (célula) de la estación 402 de base celular, y para colocar llamadas a otros radioteléfonos 403 situados ya sea dentro o fuera de la célula de la estación de base, o a otra red tal como la Red Telefónica Conmutada Pública (PSTN) 404. Una vez que un radioteléfono 403 ha colocado o recibido exitosamente una llamada, se establece un canal de audio o de datos entre este radioteléfono 403 y la estación 402 de base celular que corresponde a la célula en la cual está situado el radioteléfono 403, y la comunicación entre P03/075-UAC la estación 402 de base y el radioteléfono 403 se conduce sobre el canal de audio o de datos. El radioteléfono 403 también puede recibir información de control o de temporización sobre un canal de señalización mientras una llamada está en progreso. Si un radioteléfono 403 deja una célula y se introduce en otra célula adyacente mientras una llamada está en progreso, el radioteléfono 403 traspasa la llamada a un canal de audio o de datos disponible de la nueva estación 402 de base celular. Si un radioteléfono 403 deja una celda y entra a otra célula adyacente mientras ninguna llamada está en progreso, el radioteléfono 403 envía un mensaje de control sobre el canal de señalización para ejecutar el procedimiento de entrada en comunicación con la estación 402 de base de la nueva célula. De esta manera es posible la comunicación móvil sobre un área geográfica grande . El sistema 401 de comunicación celular comprende además una terminal 405 de control para controlar la comunicación entre las estaciones 402 de base celulares y el PSTN 404, por ejemplo durante una comunicación entre un radioteléfono 403 y el PSTN 404, o entre un radioteléfono 403 situado en una primera célula y un radioteléfono 403 situado en una segunda célula. Por supuesto, se requiere un subsistema de radio P03/075-UAC comunicación inalámbrico bidireccional para establecer un canal de audio o de datos entre una estación 402 de base de una célula y un radioteléfono 403 situado en esa célula. Como se ilustra en forma muy simplificada en la Figura 4, tal subsistema de radio comunicación inalámbrico bidireccional normalmente comprende en el radioteléfono 403 : - un transmisor 406 que incluye: un codificador 407 para codificar una señal vocal u otra señal que se va a transmitir; y un circuito de transmisión 408, para transmitir la señal codificada desde el codificador 407 a través de una antena tal como 409; y - un receptor 410 que incluye: - un circuito receptor 411 para recibir una señal vocal codificada transmitida u otra señal, usualmente a través de la misma antena 409; y - un decodificador 412 para decodificar la señal codificada recibida del circuito receptor 411. El radioteléfono 403 comprende además otros circuitos 413 de radioteléfono convencional, para suministrar una señal vocal u otra señal al codificador 407, y para procesar la señal vocal u otra señal del decodificador 412. Estos circuitos 413 de radioteléfono son muy conocidos para aquellos de ordinario expertos en la P03/075-UAC técnica y, por consiguiente, no se describirán adicionalmente en la presente especificación. También, tal subsistema de radio comunicación inalámbrico bidireccional normalmente comprende en la estación 402 de base: - un transmisor 414 que incluye: un codificador 415 para codificar una señal vocal u otra señal que se va a transmitir; y un circuito de transmisión 416, para transmitir la señal codificada desde el codificador 415 a través de una antena tal como 417; y - un receptor 418 que incluye: - un circuito receptor 419 para recibir una señal vocal codificada transmitida u otra señal, usualmente a través de la misma antena 417 o a través de otra antena diferente (no mostrada) ; y - un decodificador 420 para decodificar la señal codificada recibida del circuito receptor 419. La estación de base 402 comprende además, normalmente, un controlador 421 de la estación de base, junto con su base de datos asociada 422, para controlar la comunicación entre la terminal de control 405 y el transmisor 414 y el receptor 418. El controlador 421 de la estación de base también controlará la comunicación entre el receptor 418 y el transmisor 414 en el caso de la P03/075-UAC comunicación entre dos radioteléfonos tal como 403 situados en la misma célula como la estación 402 de base. Como es muy conocido para aquellos de ordinario expertos en la técnica, se requiere codificación para reducir el ancho de banda necesario para transmitir una señal, por ejemplo una señal vocal tal como la voz, a través del subsistema de radio comunicación inalámbrico bidireccional , es decir, entre un radioteléfono 403 y una estación 402 de base. Los codificadores de voz LP (tales como 415 y 407) que normalmente operan a 13 kbits/segundo y por debajo tal como los codificadores de Predicción Lineal Excitado de Código (CELP) normalmente usan un filtro de síntesis de LP para modelar el envolvente espectral de corto plazo de la señal vocal. La información del LP se transmite, normalmente, cada 10 ó 20 ms al decodificador (tal como 420 y 412) y se extrae en el extremo del decodificador . Las nuevas técnicas descritas en la presente especificación se pueden usar con señales de la banda telefónica incluyendo señales vocales, con señales de sonido diferentes de las señales vocales, así como con otros tipos de señales de banda ancha. La Figura 1 muestra un diagrama de bloques general de un dispositivo 100 de codificación de señales vocales de tipo CELP modificado para mejor acomodar señales P03/075-UAC de banda ancha. Las señales de banda ancha pueden comprender, entre otras, señales tales como música y señales de video. La señal 114 vocal de entrada muestreada se divide en bloques sucesivos de L-muestras llamados "marcos". En cada marco, se calculan, se codifican y se transmiten diferentes parámetros que representan la señal vocal en el marco. Los parámetros de LP que representan el filtro de síntesis de LP usualmente se calculan una vez cada marco. El marco se divide adicionalmente en bloques más pequeños de N muestras (bloques de longitud N) , en los cuales se determinan parámetros de excitación (paso e innovación) . En la literatura del CELP, estos bloques de longitud N son llamados "submarcos", y las señales de iV-muestra en los submarcos son referidas como vectores iV-dimensionales . En esta modalidad preferida, la longitud N corresponde a 5 ms, mientras que la longitud L corresponde a 20 ms, lo que significa que un marco contiene cuatro submarcos (N=80 a la velocidad de muestreo de 16 kHz, y 64 después de sub-muestreo a 12.8 kHz) . Diversos vectores N-dimensionales existen en el procedimiento de codificación. Una lista de los vectores que aparecen en las Figuras 1 y 2, así como una lista de parámetros transmitidos se proporcionan en la presente abajo: P03/075-UAC Lista de loa principales vectores N-dimensionales a vector vocal de entrada de señal de banda ancha (después de sub-muestreo, pre-procesamiento, y preénfasis) ; sw vector vocal ponderado; s0 respuesta de entrada cero del filtro de síntesis ponderado; BP señal pre-procesada sub-muestreada ; señal vocal sintetizada sobremuestreada ; B' señal de síntesis antes de desacentuación; d señal de síntesis desacentuada; Bh señal de síntesis después de desacentuación y post -procesamiento ; x vector objetivo para búsqueda de paso; x3 vector objetivo para búsqueda de innovación; Ji respuesta de impulso del filtro de síntesis ponderada; vT vector del libro de códigos (paso) ) adaptable en retardo; yT vector del libro de códigos de paso filtrado (vT enrollado con h) ; CJC vector de código innovador en el índice k (késima entrada del libro de códigos de innovación) ; cf vector de código de innovación a escala mejorado; u señal de excitación (vectores de código P03/075-UAC innovación y de paso a escala) ; u' excitación mejorada; z secuencia de ruido de paso de banda; w' secuencia de ruido blanco; y w secuencia de ruido a escala.
Lista de parámetros transmitidos STP parámetros de predicción de corto plazo (que definen A(z) ) ¡ T retraso de paso (o índice del libro de códigos de paso) ; b ganancia de paso (o ganancia del libro de códigos de paso) ; j índice del filtro de paso bajo usado sobre el vector de códigos de paso; k índice del vector de códigos (entrada del libro de códigos de innovación) ; y g ganancia del libro de códigos de innovación. En esta modalidad preferida, los parámetros de STP se transmiten una vez por marco, y el resto de los parámetros se transiten cada submarco cuatro veces por marco) .
LADO DEL CODIFICADOR La señal vocal muestreada se codifica en una base P03/075-UAC de bloque por bloque por el dispositivo 100 de codificación de la Figura 1, el cual se divide en once módulos numerados de 101 a 111. La señal vocal de entrada se procesa en los bloques de L-muestra mencionados arriba, llamados marcos. Refiriéndonos a la Figura 1, la señal vocal 114 de entrada muestreada se sub-muestrea en un módulo 101 de sub-muestreado . Por ejemplo, la señal se sub-muestrea de 16 kHz a 12.8 kHz, usando técnicas muy conocidas para aquellos de ordinario expertos en la técnica. El submuestreo hacia abajo a otra frecuencia puede considerarse por supuesto. El sub-muestreo incrementa la eficiencia de codificación, puesto que se codifica una anchura de banda de frecuencia más pequeña. Esto reduce también la complejidad algorítmica, puesto que se reduce el número de muestras en un marco. El uso de sub-muestreo llega a ser significativo cuando la velocidad de transferencia de bits se reduce por debajo de 16 kbits/seg; el sub-muestreo no es esencial por arriba de 16 kbits/seg. Después de sub-muestrear, el marco de 320 muestras de 20 ms se reduce a un marco de 256 muestras (relación de sub-muestreo de 4/5) . El marco de entrada se suministra entonces al bloque 102 de pre-procesamiento opcional. El bloque 102 de pre-procesamiento opcional puede consistir de un filtro de P03/075-UAC paso alto con una frecuencia de corte de 50 Hz . El filtro de paso alto 102 elimina los componentes de sonido no deseados por debajo de 50 Hz. La señal pre-procesada sub-muestreada se denota por Sp(n) , n - 0, 1, 2, ...,L-1, en donde L es la longitud del marco (256 a una frecuencia de muestreo de 12.8 kHz) . En una modalidad preferida, la señal Sp(n) se preenf tiza usando un filtro de preénfasis 103 que tiene la siguiente función de transferencia: en donde µ ea un factor de preénfasis con un valor localizado entre 0 y 1 (un valor típico es µ - 0.7), y z representa la variable del polinomial P(z). También se podría usar un filtro de orden superior. Debe señalarse que el filtro de paso alto 102 y el filtro de preénfasis 103 se pueden intercambiar para obtener implementaciones de punto fijo más eficientes. La función del filtro de preénfasis 103 es mejorar el contenido de alta frecuencia de la señal de entrada. También reduce el intervalo dinámico de la señal vocal de entrada, lo que lo vuelve más adecuado para la implementación de punto fijo. Sin preénfasis, el análisis de LP en punto fijo usando aritmética de precisión única es difícil de implementar.
P03/075-UAC El preénfasis también desempeña un papel importante para lograr una ponderación perceptual general apropiada del error de cuantificación, lo cual contribuye a mejorar la calidad del sonido. Esto se explicará en mayor detalle en la presente abajo. La salida del filtro de preénfasis 103 se denota s(n). Esta señal se usa para realizar el análisis de LP en el módulo 104 de calculadora. El análisis de LP es una técnica muy conocida para aquellos de ordinario expertos en la técnica. En esta modalidad preferida, se usa la aproximación de autocorrelación . En la aproximación de autocorrelación , la señal s (n) se coloca en ventana primero usando una ventana de Hamming (que usualmente tiene una longitud del orden de 30-40 ms) . Las autocorrelaciones se calculan de la señal en ventana, y se usa la recurrencia de Levinson-Durbin para calcular los coeficientes de filtro LP, aj , en donde j=l,...,p, y en donde p es el orden de LP, el cual es típicamente 16 en la codificación de banda ancha. Los parámetros aj son los coeficientes de la función de transferencia del filtro LP, que se da por la siguiente relación : ?(?)= 1 +?a, z¡ H El análisis de LP se realiza en el módulo 104 de P03/075-UAC calculadora, el cual también realiza la cuantificación e interpolación de los coeficientes de filtro LP . Los coeficientes de filtro LP se transforman primero en otro dominio equivalente, más adecuado para propósitos de cuantificación e interpolación. Los dominios de par espectral de línea (LSP) y de par espectral de inmitancia (ISP) son dos dominios en los cuales la cuantificación y la interpolación se pueden realizar eficientemente. Los coeficientes de filtro LP 16, a^, se pueden cuantificar en el orden de 30 a 50 bits usando cuantificación de división o de etapas múltiples, o una combinación de los mismos. El propósito de la interpolación es permitir la actualización de los coeficientes de filtro LP cada submarco mientras los transmite una vez cada marco, lo que mejora la eficiencia del codificador sin incrementar la velocidad de transferencia de bits. Se cree que la cuantificación y la interpolación de los coeficientes de filtro LP son de otra manera muy conocidas para aquellos de ordinario expertos en la técnica, y por consiguiente, no se describirán adicional ente en la presente especificación. Los siguientes párrafos describirán el resto de las operaciones de codificación realizadas sobre una base de submarcos . En la siguiente descripción, el filtro A (z) denota el filtro LP interpolado no cuantificado del submarco, y el filtro Á(z) denota el filtro LP interpolado P03/075-UAC 27, No. 3, páginas 247-254, junio de 1979. La función de transferencia VT1 (z) exhibe algo de la estructura formante de la señal vocal de entrada. Así, la propiedad de enmascaramiento del oído humano se explota formando el error de cuant ificación de modo que tiene más energía en las regiones formantes, en donde será enmascarada por la fuerte energía de señal presente en estas regiones. La cantidad de ponderación se controla por los factores ?? y El filtro 105 de ponderación perceptual tradicional de arriba trabaja bien con señales de banda telefónica. Sin embargo, se encontró que este filtro 105 de ponderación perceptual tradicional no es adecuado para una ponderación perceptual eficiente de señales de banda ancha. También se encontró que el filtro 105 de ponderación perceptual tradicional tiene limitaciones inherentes para modelar la estructura formante y la distorsión espectral requerida concurrentemente. La distorsión espectral es más pronunciada en señales de banda ancha debido al amplio intervalo dinámico entre bajas y altas frecuencias. Para resolver este problema, se ha sugerido agregar un filtro de distorsión en W(z) para controlar la distorsión y la ponderación formante de la señal de entrada de banda ancha separadamente . Una mejor solución a este problema es introducir P03/075-UAC el filtro de preénfasis 103 en la entrada, calcular la A (z) del filtro LP basado en la señal vocal s (n) preenfatizada, y usar un W(z) de filtro modificado fijando su denominador. El análisis de LP se realiza en el módulo 104 sobre la señal s (n) preenfatizada para obtener la A (z) del filtro LP . También, se usa un nuevo filtro 105 de ponderación perceptual con denominador fijo. Un ejemplo de función de transferencia para este filtro 104 de ponderación perceptual se da por la siguiente relación; W(z) = ?(?/?1)/(?-?2?~1) en donde 0<?2<??=? Se puede usar un orden más alto en el denominador. Esta estructura desacopla substancialmente la ponderación formante de la distorsión. Notar que debido a que A(z) se calcula basado en la señal vocal s (n) preenf tizada, la distorsión del filtro 1/?(?/?) es menos pronunciada comparado al caso cuando A (z) se calcula basado en la señal vocal original. Puesto que la desacentuación se realiza en el extremo del decodificador usando un filtro que tiene la función de transferencia: el espectro del error de cuantificación se forma por un filtro que tiene una función de transferencia W1(z)P~1(z).
P03/075-UAC Cuando ?? se fija igual a µ, lo cual es típicamente el caso, el espectro del error de cuantificación se forma por un filtro cuya función de transferencia es 1/?(?/?1), en donde A(z) se calcula basado en la señal vocal preenfatizad . La audición subjetiva mostró que esta estructura para lograr la formación de error por una combinación de filtración de preénfasis y ponderación modificados es muy eficiente para codificar señales de banda ancha, además de las ventajas de la facilidad de implementación algorítmica de punto fijo.
Análisis de paso: Para simplificar el análisis de paso, se estima primero un retraso de paso T0L de ciclo abierto en el módulo 106 de búsqueda de paso de ciclo abierto usando la señal vocal Sw(n) ponderada. Luego el análisis de paso de ciclo cerrado, que se realiza en el módulo 107 de búsqueda de paso de ciclo cerrado sobre una base de submarco, se restringe alrededor del retraso de paso T0L de ciclo abierto, lo que reduce significativamente la complejidad de la búsqueda de los parámetros de LTP T y b (retraso de paso y ganancia de paso) . El análisis de paso de ciclo abierto usualmente se realiza en el módulo 106 una vez cada 10 ms (dos submarcos) usando técnicas muy conocidas para aquellos de ordinario expertos en la técnica. El vector x objetivo para el análisis de LTP P03/075-UAC (Predicción a Largo Plazo) se calcula primero. Esto se realiza usualmente substrayendo la respuesta s0 de entrada cero de W(z)/Á(z) del filtro de síntesis ponderado de la señal vocal Sw(n) ponderada. Esta respuesta s0 de entrada cero se calcula por una calculadora 108 de respuesta de entrada cero. Más específicamente, el vector x objetivo se calcula usando la siguiente relación: x — s„r — s0 en donde x es el vector objetivo N-dimensional , aw es el vector de señal vocal ponderada en el submarco, y s0 es la respuesta de entrada cero de W(z)/Á (z) del filtro que es la salida de W(z)/Á(z) del filtro combinado debido a sus estados iniciales. La calculadora 108 de respuesta de entrada cero es sensible a Á(z) del filtro LP interpolado cuantificado del análisis de LP, la calculadora 104 de cuantificación e interpolación y a los estados iniciales de W(z)/Á (z) del filtro de síntesis ponderado almacenado en el módulo 111 de memoria para calcular la respuesta a0 de entrada cero (aquella parte de la respuesta debida a los estados iniciales, determinada fijando las entradas igual a cero) de W(z)/Á (z) del filtro. Esta operación es muy conocida para aquellos de ordinario expertos en la técnica y, por consiguiente, no se describirán adicionalmente. Por supuesto, se pueden usar aproximaciones P03/075-UAC alternativas pero matemáticamente equivalentes para calcular el vector x objetivo. Un vector h de respuesta de impulso itf-dimensional del W(z)/Á(z) del filtro de síntesis ponderado se calcula en el generador 109 de respuesta de impulso usando los coeficientes A(z) y Á(z) de filtro LP del módulo 104. de nuevo, esta operación es muy conocida para aquellos de ordinario expertos en la técnica y, por consiguiente, no se describirá adicionalmente en la presente especificación. Los parámetros de paso de ciclo cerrado (o libro de códigos de paso) b, T y j se calculan en el módulo 107 de búsqueda de paso de ciclo cerrado, que usa el vector x objetivo, el vector de respuesta de impulso y el retraso OL de paso de ciclo abierto como entradas. Tradicionalmente, la predicción del paso se ha representado por un filtro de paso que tiene la siguiente función de transferencia : l/(l-bzT) en donde b es la ganancia de paso y T es el retraso o desfase de paso. En este caso, la contribución del paso a la señal de excitación u(n) se da por bu(n-T), en donde la excitación total se da por: u(n) = bu(n-T) + gck(n) P03/075-UAC en donde g es la ganancia del libro de códigos innovadores y Ck (n) el vector de códigos innovadores en el índice k. Esta representación tiene limitaciones ai el retraso T del paso es más corto que la longitud N del submarco . En otra representación, la contribución del paso se puede ver como un libro de código de paso que contiene la señal de excitación pasada. Por lo general, cada vector en el libro de código de paso es una versión de desplazamiento-por-uno del vector previo (descartando una muestra y agregando una nueva muestra) . Para retrasos de paso T>N, el libro de códigos de paso es equivalente a la estructura de filtro (l/(l-bz~T), y un vector del libro de códigos de paso vT(n) en el retraso T de paso se da por: vT (n) ^ (n - T) l n=0,...,jV-l .
Para retrasos de paso T más cortos que iV, un vector vT(n) se construye repitiendo las muestras disponibles de la pasada excitación hasta que se completa el vector (esto no es equivalente a la estructura del filtro) . En codificadores recientes, se usa una resolución de paso más alto, que mejora significativamente la calidad de segmentos de sonido armonizados. Esto se logra sobremuestreando la señal de excitación pasada usando filtros de interpolación de polifase. En este caso, el P03/075-UAC vector vT(n) usualmente corresponde a una versión interpolada de la excitación pasada, y el retraso T del paso es un retraso diferente de un entero (por ejemplo 50.25) . La búsqueda del paso consiste en encontrar el mejor retraso T del paso y la ganancia J que minimiza el error E ponderado cuadrado promedio entre el vector x objetivo y la excitación pasada filtrada escalada. El error E se expresa como: E =\\ x - byT f en donde yT es el vector del libro de códigos de paso filtrado en el retraso T del paso: yT (n) = vT (n) * (n) = vT (t)h(n - i) , n=0,...^~l . /¦o Puede demostrarse que el error E se minimiza maximizando el criterio de búsqueda c = '^T en donde t denota transposición de vector. En una modalidad preferida, se usa una resolución de paso de submuestra de 1/3, y la búsqueda del paso (libro de códigos del paso) está compuesta de tres etapas.
P03/075-UAC En la primera etapa, se estima un retraso T0L de paso de ciclo abierto en el módulo 106 de búsqueda de paso de ciclo abierto, en respuesta a la señal vocal Sw(n) ponderada. Como se indicó en la descripción anterior, este análisis de paso de ciclo abierto usualmente se realiza una vez cada 10 ms (dos submarcos) usando técnicas muy conocidas para aquellos de ordinario expertos en la técnica . En la segunda etapa, el criterio C de búsqueda se busca en el módulo 107 de búsqueda de paso de ciclo cerrado para retraaos de paso enteros alrededor del retraso T0L de paso de ciclo abierto estimado (usualmente ±5) , lo que simplifica significativamente el procedimiento de búsqueda. La siguiente descripción propone un procedimiento simple para actualizar el vector de código filtrado yT sin la necesidad de calcular la convolución para cada retraso de paso . Una vez que se encuentra un retraso de paso entero óptimo en la segunda etapa, una tercera etapa de la búsqueda (módulo 107) prueba las fracciones alrededor del retraso de paso entero óptimo. Cuando el predictor del paso está representado por un filtro de la forma 1/(1 -bz~T) , la cual es una hipótesis válida para los retrasos de paso T>N, el espectro del filtro de paso exhibe una estructura armónica sobre el P03/075-UAC intervalo de frecuencia completo, con una frecuencia armónica relacionada a 1 . En el caso de señales de banda ancha, esta estructura no es muy eficiente puesto que la estructura armónica en señales de banda ancha no cubre el espectro extendido completo. La estructura armónica existe solamente hasta una cierta frecuencia, dependiendo del segmento de la señal vocal. Así, para logra una representación eficiente de la contribución del paso en segmentos armonizados de señal vocal de banda ancha, el filtro de predicción de paso necesita tener la flexibilidad de variar la cantidad de periodicidad sobre el espectro de banda anch . Un método mejorado capaz de lograr un modelado eficiente de la estructura armónica del espectro de señales vocales de señales de banda ancha está descrito en la presente especificación, por medio del cual diversas formas de filtros de paso bajo se aplican a la excitación pasada, y se selecciona el filtro de paso bajo con una ganancia de predicción más alta. Cuando se usa la resolución de paso de submuestreo, los filtros de paso bajo se pueden incorporar en los filtros de interpolación usados para obtener la resolución de paso más alta. En este caso, la tercera etapa de la búsqueda del paso, en la cual las fracciones se prueban las fracciones alrededor del retraso de paso entero P03/075-UAC seleccionado, se repite para los diversos filtros de interpolación que tienen diferentes características de paso bajo, y se selecciona la fracción y el índice de filtro que maximiza el criterio C de búsqueda. Una aproximación más simple es completar la búsqueda en las tres etapas descritas arriba para determinar el retraso de paso fracción al óptimo usando solamente un filtro de interpolación con una cierta respuesta de frecuencia, y seleccionar la forma de filtro de paso bajo óptima en el extremo aplicando los diferentes filtros de paso bajo predeterminados al vector vT del libro de códigos de paso seleccionado, y seleccionar el filtro de paso bajo que minimiza el error de predicción de paso. Esta aproximación se discute en detalle abajo. La Figura 3 ilustra un diagrama de bloques esquemático de una modalidad preferida de la última aproximación propuesta. En el módulo 303 de memoria, se almacena la señal u(n) de excitación pasada, n<0. el módulo 301 de búsqueda del libro de códigos de paso es sensible al vector x objetivo, al retraso T0L de paso de ciclo abierto, y a la señal de excitación pasada u(n), n<0, del módulo 303 de memoria para conducir una búsqueda del libro de códigos de paso (libro de códigos de paso) que minimiza el criterio C de búsqueda definido arriba. Del resultado de la búsqueda P03/075-UAC conducida en el módulo 301, el módulo 302 genera el vector vT del libro de códigos de paso óptimo. Notar que puesto que se usa una resolución de paso de sub-muestreo (paso fraccional) , la señal de excitación pasada u(n) , n<0, se interpola, y el vector vT del libro de códigos de paso corresponde a la señal de excitación pasada interpolada. En esta modalidad preferida, el filtro de interpolación (en el módulo 301, pero no mostrado) tiene una característica de filtro de paso bajo que elimina el contenido de frecuencia por arriba de 7,000 Hz . En una modalidad preferida, se usan las características del filtro K; estas características d filtro podrían ser características de filtro de paso bajo o de paso de banda. Una vez que se determina el vector de código vT óptimo y se suministra por el generador 302 del vector de código de paso, las versiones filtradas K de vT se calculan respectivamente usando K diferentes filtros de formado de frecuencia tales como 305(j), en donde j=l, 2, ... , K. Estas versiones filtradas se denotan vf(^ , en donde 2, K. Los diferentes vectores vf(:l> se convolucionan en los respectivos módulos 304^] , en donde j=0, 1, 2, K, con la respuesta h de impulso para obtener los vectores ?{^} , en donde j=0, 1, 2, K. Para calcular el error de predicción de paso cuadrado promedio para cada vector íj , el valor y(:i> se multiplica por la P03/075-UAC ganancia b por medio de un amplificador 3073 correspondiente, y el valor by(^ se substrae del vector x objetivo por medio de un substractor 308(:i) correspondiente. El selector 309 selecciona el filtro 305(:i) de formado de frecuencia, que minimiza el error de predicción de paso cuadrado promedio Para calcular el error e(¡> de predicción de paso cuadrado promedio para cada valor de y(¡} , el valor de y'-*1 se multiplica por la ganancia Jb por medio de un amplificador 307(:|) correspondiente, y el valor de ^)y^) se substrae del vector x objetivo por medio de los substractores 308<:l). Cada ganancia b^1 se calcula en una calculadora 3061^ de ganancia correspondiente, en asociación con el filtro de formado de frecuencia en el índice j, usando la siguiente relación: En el selector 309, los parámetros b, T y j se seleccionan basados en vT o Vf(^ lo que minimiza el error de predicción de paso cuadrado promedio. Refiriéndonos de regreso a la Figura 1, el índice T del libro de códigos de paso se codifica y se transmite P03/075-UAC al multiplexor 112. La ganancia b de paso se cuantifica y se transmite al multiplexor 112. con esta nueva aproximación, se necesita información extra para codificar el índice del filtro de formado de frecuencia seleccionado en el multiplexor 112. por ejemplo, si se usan tres filtros {j-0, 1, 2, 3) , entonces se necesitan dos bits para representar esta información. La información j del índice de filtro también se puede codificar conjuntamente con la ganancia Jb del filtro.
Libro de códigos innovador: Una vez que se determinan los parámetros de paso, o LTP (Predicción a Largo Plazo) b, T, y j, la siguiente etapa es buscar la excitación innovadora óptima por medio del módulo 110 de búsqueda de la Figura 1. Primero, el vector x objetivo se actualiza substrayendo la contribución de LTP: en donde ¿> es la ganancia de paso y ?t es el vector del libro de códigos de paso filtrado (la excitación pasada en el retraso T filtrada con el filtro de paso bajo seleccionado y convolutada con la respuesta h de impulso como se describe con referencia a la Figura 3) . El procedimiento de búsqueda en CELP se realiza P03/075-UAC encontrando el vector de código ck de excitación óptimo y la ganancia g que minimiza el error cuadrado promedio entre el vector objetivo y el vector de código filtrado escalado en donde H es una matriz de convolución triangular inferior derivada del vector h de respuesta de impulso. No vale nada que el libro de códigos de innovación usado sea un libro de códigos dinámicos que consiste de un libro de códigos algebraicos seguido por un prefiltro F(z) adaptable que incrementa componentes espectrales especiales para mejorar la calidad de señal vocal de síntesis, de acuerdo a la Patente de EE.UU. No. 5,444,816. Se pueden usar diferentes métodos para diseñar este prefiltro. Aquí, se usa un diseño relevante para señales de banda ancha según el cual F(z) consiste de os partes: una parte de incremento de periodicidad 1/(1-0.85z T) y una parte de distorsión (1 - ß z'1), en donde T es la parte entera del retraso de paso, y /¾ está relacionada a la sonorización del submarco previo, y está limitada por [0.0,0.5] . Notar que antes de la búsqueda del libro de códigos, la respuesta h(n) de impulso debe incluir el prefiltro F(z) . Esto es, P03/075-UAC 47 para especificar las 16 - 24 posiciones válidas de un pulso diferente de cero dado. Existen muchas maneras de derivar una estructura de libro de códigos y este diseño de ISPP para acomodar requerimientos particulares en términos de número de pulsos o bits de codificación. Se pueden diseñar diversos libros de códigos basados en esta estructura, variando el número de pulsos diferentes de cero que se pueden colocar en cada pista. Si un solo pulso diferente de cero signado se coloca en cada pista, la posición del pulso se codifica con 4 bits y su signo (si consideramos que cada pulso diferente de cero puede ser ya sea positivo o negativo) se codifica con 1 bit. Por lo tanto se requiere un total de 4x (4+1) -20 bits de codificación para especificar posiciones y signos de pulso para esta estructura de libro de códigos algebraicos particular. Si dos pulsos diferentes de cero signados se colocan en cada pista, las posiciones de los dos pulsos se codifican con 8 bits, y sus signos correspondientes se pueden codificar con solamente 1 bit explotando la ordenación de pulsos (esto se detallará más tarde en la presente especificación) . Por lo tanto se requiere un total de 4x (4+4+1) = 36 bits de codificación para especificar posiciones y signos del pulso para esta estructura de libro de códigos algebraicos particular.
P03/075-UAC 48 Se pueden diseñar otras estructuras de libros de códigos colocando 3, 4, 5 ó 6 pulsos diferentes de cero en cada pista. Los métodos para codificar eficientemente las posiciones y signos del pulso en tales estructuras se discutirá más tarde. Además, se pueden diseñar otros libros de códigos colocando un número desigual de pulsos diferentes de cero en diferentes pistas, o ignorando ciertas pistas o uniendo ciertas pistas. Por ejemplo, se puede diseñar un libro de códigos colocando 3 pulsos diferentes de cero en las pistas To y T2, y dos pulsos diferentes de cero en las pistas i y T3 (13 +9+13 +9 = 42 bits de libro de códigos) . Se pueden diseñar otros libros de códigos considerando la unión de las pistas T2 y T3 y colocando pulsos diferentes de cero en las pistas T0, T¿ y T2-T3. Como se puede ver, se puede construir una gran variedad de libros de códigos alrededor del tema general de diseños de ISSP.
Codificación eficiente da posiciones y signos de pulsos (vinculación de libros de códigos) : Aquí, se considerarán varios casos para colocar desde 1 a 6 pulsos diferentes de cero signados por pista, y se describen métodos para codificar conjuntamente y eficientemente posiciones y signos de pulso en una pista P03/075-UAC 49 dada . Primero daremos ejemplos de codificación de 1 pulso diferente de cero y 2 pulsos diferentes de cero por pista. Codificar 1 pulso diferente de cero signado es directo, y codificar 2 pulsos diferentes de cero signados por pista se ha descrito en la literatura, en la norma de codificación de señales vocales de EFR (Global System for Mobile Communications, GSM 06.60, "Sistema de telecomunicaciones celular digital; transcodificación de señales vocales a Velocidad Completa Mejorada (EFR)", European Telecommunication Standard Institute, 1996) . Después de haber presentado un método para codificar 2 pulsos diferentes de cero signados, se describirán métodos para codificar eficazmente 3, 4, 5 y 6 pulsos diferentes de cero signados por pista.
Codificación de 1 pulso signado por pista En una pista de longitud K, un pulso diferente de cero signado requiere 1 bit para el signo y log2 (K) bits para la posición. Consideraremos aquí el caso especial cuando K-2M, lo que significa que se necesitan M bits para codificar la posición del pulso. Así, se necesita un total de M+l bits para un pulso diferente de cero signado en una pista de longitud K-2M. En esta modalidad preferida, el bit que representa el signo (índice de signo) se fija a 0 si el P03/075-UAC 50 pulso diferente de cero es positivo, y a 1 si el pulso diferente de cero es negativo. Por supuesto, también se puede usar la notación inversa. El índice de posición de un pulso en una cierta pista se da por la posición del pulso en el submarco dividido (división de entero) por el espaciado del pulso en la pista. El índice de la pista se encuentra por lo restante de esta división de entero. Tomando el ejemplo ISPP (64,4) de la Tabla 1, el tamaño del submarco es 64 (0-63) y el espaciado del pulso es 4. Un pulso en la posición de submarco 25 tiene un índice de posición de 25 DIV 4 = 6, y el índice de pista de 25 MOD 4 = 1, en donde DIV denota división de entero y MOD denota lo restante de la división. De forma similar, un pulso en la posición de submarco de 40 tiene un índice de posición 10 y un índice de pista de 0. El índice de un pulso diferente de cero signado con índice de posición p e índice de signo s y en una pista de longitud 2M se da por JIp = p +8x2*, Para el caso de K=16 (?G=4 bits) , el índice de 5 bits del pulso signado está representado en la tabla de abaj o : P03/075-UAC 51 El procedimiento code_lpulse (p, s, M) muestra como codificar un pulso en un índice de posición p e índice de signo s en una pista de longitud 2M.
Procedimiento code_lpulse (p, s, M) Inicio Fin Procedimiento 1: Codificación de 1 pulso diferente de cero signado en una pista de longitud K=2M usando M+l bits.
Codificación de 2 pulsos signados por pista En el caso de dos pulsos diferentes de cero por pista de K-2M posiciones potenciales, cada pulso necesita 1 bit para el signo y M bits para la posición, lo cual da un total de 2M+2 bits. Sin embargo, existe alguna redundancia debido a la poca importancia de la ordenación de los pulsos. Por ejemplo, colocar el primer pulso en posición p y el segundo pulso en posición g es equivalente a colocar el primer pulso en posición g y el segundo pulso en posición p. Se puede ahorrar un bit codificando solo un signo y deduciendo el segundo signo de la ordenación de las P03/075-UAC 52 posiciones en el índice. En esta modalidad preferida, el índice se da por: ¾P = Pi + Po*2M + sx22M en donde s es el índice de signo del pulso diferente de cero en el índice de posición p0. En el codificador, si los dos signos son iguales, entonces la posición más pequeña se fija a po, y la posición más grande se fija a ? . Por otro lado, ai los dos signos no son iguales, entonces la posición más grande se fija a po, y la posición más pequeña se fija a p± . En el decodificador , el signo del pulso diferente de cero en la posición p0 está disponible fácilmente. El segundo signo se deduce de la ordenación de pulsos. Si la posición p1 es más pequeña que la posición p0, entonces el signo del pulso diferente de cero en la posición p2 es opuesto al signo del pulso diferente de cero en la posición p0. Si la posición p2 es más grande que la posición p0, entonces el signo del pulso diferente de cero en la posición i es el mismo que el signo del pulso diferente de cero en la posición p0. En esta modalidad preferida, la ordenación de los bits en el índice se muestra abajo, s corresponde al signo del pulso diferente de cero p0.
P03/075-UAC 53 El procedimiento para codificar dos pulsos diferentes de cero con índices de posición Po Y Pi & índices de signo s0 ? s± se muestra en la Figura 5. esto se .plica adicionalmente en el Procedimiento 2 de abaj o .
Procedimiento code 2pulse ( [poPi. , [s?s?] , M) Inicio Si s0 = s? (501 en la Figura 5) Si po < p2 (502) I?p = Pi + Po*2w + s0?22?(503- 504) Si o > p2 (ver 502) I?p = Po + Pix M + s0?22?(505- 504) Si s0 ? s? (501 en la Figura 5) Fin Procedimiento 2 : Codificación de 2 pulse diferentes de cero signados en una pista de longitud K-. usando 2M+1 bits.
P03/075-UAC 54 Codificación de 3 pulsos signados por pista En el caso de tres pulsos diferentes de cero por pista, se puede usar una lógica similar al caso de dos pulsos diferentes de cero. Para una pista con 2" posiciones, se necesitan 3M+1 bits en vez de 3M+3 bits. Una manera simple de vincular los pulsos diferentes de cero, lo cual se describe en la presente especificación, es dividir las posiciones de pista en dos mitades (o secciones) e identificar una mitad que contiene al menos dos pulsos diferentes de cero. El número de posiciones en cada sección es K/2 - 2M/2 = 2W1 , que puede ser representado con M-l bits. Los dos pulsos diferentes de cero en la sección que contiene al menos dos pulsos diferentes de cero se codifican con el procedimiento code_2pulse ( [poPiJ , ís0Si , M-1) que requiere 2(M-1)+1 bits, y el pulso restante que puede estar en cualquier parte en la pista (en cualquier sección) se codifica por el procedimiento code_lpulse (p, s,M) , que requiere M+l bits. Finalmente, el índice de la sección que contiene los dos pulsos diferentes de cero se codifica con 1 bit. Así, el número total de bits requeridos es 2(M-1)+1 + M+l + 1 = 3M+1. Una manera simple de verificar si dos pulsos diferentes de cero están situados en la misma mitad de la pista se hace verificando si los bits más significativos (MSB) o su posición indica que son iguales o no. esto puede P03/075-UAC 55 ser hecho simplemente por la operación lógica Exclusive OR, que da 0 si los MSBs son iguales, y 1 si no. Notar que MSB=0 significa que la posición pertenece a la mitad inferior de la pista (0-(K/2-l)) y MSB=1 significa que pertenece a la mitad superior (K/2- (K-l ) ) . Si los dos pulsos diferentes de cero pertenecen a la mitad superior, necesitan ser desplazados al intervalo (0-(K/2-l)) antes de codificarlos usando 2(M-1)+1 bits. Esto se puede hacer enmascarando los M-l bits menos significativos (LSB) con una máscara que consiste de M-l unos (l's) (que corresponden al número 2M_1-1) . El procedimiento para codificar 3 pulsos en índices de posición p0, plt y p2 y los índices de signo OQ, s? y s? está descrito en el procedimiento expuesto abajo.
Procedimiento code_3pulse ( [pO pl p2] , [s? ? s2] , ?) Inicio Si MSB(p0)XOR (Si las posiciones están en la misma mitad) p0 = o AND (214-1 -1) (enmascarar el M-l LSBs) pi = i AND (2M*2 -1) (enmascarar el M-l LSBs) l2P = code_2pulse ( [p0 p±] , [s0s? , M-l) JIp = code_lpulse (p , s2, M) P03/075-UAC 56 I3P = I2p + SB (po) x.22M~1+Ilpx22M O si MSB (po) XOR MSB (ps) = 0 p0 = po AND (2M"2 -1) p2 = p2 AND (2 "2 -1) J2p = code_2pulse ( [p0 p2] , [s0s2] , M-l) Iip = code_lpulse (plf alr M) I3P = I2P +MSB (po) x22M 1+Ilpx22M O (si las posiciones p2 y p2 están en la misma mitad p2 = p2 AND (2 _1 -1) p2 = p2 AND (2M 1 -1) I2p = code_2pulse ( [p2 p2] , \s?s2 , M-l) Iip = code_lpulse (p0, s0, M) ¾ = I2p +MSB (pi) x22M1+IipX22M Fin Procedimiento 3 : Codificación de 3 pulsos signados en una pista de longitud K-2M usando 3M+1 bits. La tabla de abajo muestra la distribución de los bits en el Indice de 13 bits de acuerdo a esta modalidad preferida para el caso de M-4 (K-16) .
P03/075-UAC 57 Codificación de 4 pulsos signados por pista Los 4 pulsos diferentes de cero signados en una pista de longitud K-2M se pueden codificar usando 4M bits. Similar al caso de 3 pulsos, las K posiciones en la pista se dividen en 2 secciones (2 mitades) , en donde cada sección contiene K/2 posiciones de pulso. Aquí denotamos las secciones como Sección A con posiciones 0 a K/2-1 y la Sección B con posiciones K/2 a K-l.. Cada sección puede contener de 0 a 4 pulsos diferentes de cero. La tabla de abajo muestra los 5 casos que representan el número posible de pulsos en cada una de las secciones: En los casos 0 a 4, los 4 pulsos en una sección de longitud ?/2=2?~ se pueden codificar usando 4 (M-1) +1—4M-3 bits (esto se explicará más tarde) . En los casos 1 ó 3, el 1 pulso en una sección de longitud K/2=2M~1 se puede codificar con M-l+1 = M bits, y los 3 pulsos en la otra sección se pueden codificar con P03/075-UAC 58 3(M-1)+1 = 3M-2 bits. Esto da un total de M+3M-2 = 4M~2 bits . En el caso 2, los pulsos en una sección de longitud K/2=2M'1 se pueden codificar con 2(M-1)+1 - 2M-1 bits. Así, para ambas secciones, se requieren 2 (2M-1) = 4M-2 bits. Ahora el índice del caso se puede codificar con 2 bits (4 casos posibles) asumiendo que los casos 0 y 4 se combinan. Entonces para los casos 1, 2, ó 3, el número de bits necesarios es 4M-2. Esto da un total de 4M-2 + 2 - 4M bits. Para los casos 0 ó 4, se necesita 1 bit para identificar cualquier caso, y se necesitan 4M-3 bits para codificar los 4 pulsos en la sección. Agregando los 2 bits necesarios para el caso general, esto da un total de 1+4M-3+2 = 4M bits. Así, como puede verse de la descripción de arriba, los 4 pulsos se pueden codificar con un total de 4M bits . El procedimiento de codificar 4 pulsos diferentes de cero signados en una pista de longitud K=2M usando 4M bits se muestra en el Procedimiento 4 expuesto abajo. Las 4 tablas de abajo muestran la distribución de bits en el índice para los diferentes casos descritos arriba de acuerdo a la modalidad preferida, en donde M-4 (K-16) . Codificar 4 pulsos signados por pista requiere 16 P03/075-UAC 59 bits en este caso. Casos 0 o 4 Casos 1 Casos 2 Casos 3 P03/075-UAC 60 Encontrar NA (número de pulsos en la Sección A) y NB (número de púlaos en la Sección B) ???_? = code_4pulse_Section ( [p0 Pi p2 ?3 i [r0 i 2 r3] , M-1) k = 1 (bit que identifica la sección que contiene 4 pulsos) IAB = IIP_B + k 2M~3 (total de 4M-2 bits) Si NA= 1 y NB= 3 Jlp_A = code_lpulse ( , s, M-1) {M bits) X3_fl = code_3pulse_Section ( [p0 Pi P2 , [s0 s? s2] , M-1) {3(?-1)+1 bits) IAB = I3P_B + IIP_AX23 (M-1,+1 (total de 4M-2 bits) Si NA= 2 y ¾= 2 I?P_A = code_2pulse ( [p0 pil , [s0 iJ , M-1) (2 {M-l)+ 1 bits) I?P_B = code_2pulse ( [p2 p3] , [s2 s3] , M-1) (2 (M-1) + 1 bits) IAB = 2P_B + I2p^Ax22 <M-1)+1 (total de 4M-2 bits) Si NA= 3 y NB= 1 I?P_A = code_lpulse (p, s, M-1) [M bits) l3P_A = code_3pulse ( [p0 p2 p2] , [s0 s2 s2] , ?-1) (3 (?-1)+ 1 bits) P03/075-UAC 61 IAB = Iip_B + ?3?_??2µ (total de 4M-2 bits) Si NA= 4 y NB = 0 I4p_A = code_4pulse_Section ( [p0 pi p2 P3] , L<?o ? s2 s3] , M-l) k = 0 (bit que identifica la sección que contiene 4 pulsos) IAB = Ip_A + kx24M'3 (total de 4M-2 bits) Si j¾= 1 y NB= 3 Caso = NA Si NA = 4 caso = 0 (unir los casos 0 y 4 para que se necesiten 2 bits por "caso") I = IAB + casox24 ~2 (total de 4M bits) Procedimiento 4: codificación de 4 pulsos diferente de cero signados en una pista de longitud K-2M usando 4M bits Notar que para los casos 0 ó 1, en donde los 4 pulsos diferentes de cero están en la misma sección, se necesitan 4(M-1)+1 - 4M-3 bits. Esto se hace usando un método simple para codificar 4 pulsos diferentes de cero en una Sección de longitud K/2=2M~1 bits. Esto se hace dividiendo adicionalmente la sección en 2 subsecciones de longitud K/4=2M~2 ; identificando una sección que contiene al menos 2 pulsos diferentes de cero; codificando los 2 pulsos diferentes de cero en esa subsección usando 2 (M-2) +l=2M-3 P03/075-UAC 62 bits; codificando el índice de la subsección que contiene al menos 2 pulsos diferentes de cero usando 1 bit; y codificando los restantes 2 pulsos diferentes de cero, asumiendo que pueden estar en cualquier parte en la sección, usando 2 (M-l) +1=2M-1 bits. Esto da un total de (2M-3) + (1) + (2M-1) = 4M-3 bits. La codificación de 4 pulsos diferentes de cero signados en una Sección de longitud i/2-2M 1 usando 4M-3 bits se muestra en Procedure 4_Section.
Procedimiento code_4pulse_Section ( [p0 px p2 pil , [s0 <Ji <r2 s3] , M-l) Inicio Si MSB(p0)XOR MSB(pi) = 0 (si las posiciones están en la misma subsección p0 = po AND {2M~2 -1) (enmascarar el M-2 LSBs) p2 = ! AND {2?'2 -1) (enmascarar el M-2 LSBs) code_2pulse ( [p0 ?? , ?s0 a , M-2) (2M-3 bits) I2p_Bec = code_2pulse ( [p2 p3] , [s2 s3] , ??) (2M-1 bita) +MSB [po) 22M-3 0 si MSB (p0) XOR MSB (p2) = 0 po = po AND (2M~2 -1) p2 = p2 AND {2M~2 -1) P03/075-UAC 63 code_2pulse ( [p0 Ps) , ?s0s2] , M-2) (2M-3 bits) l2P_eec - code_2pulse ( f 2 p3] [s± s3] M-l) {2M- 1 bits) Ip_Be = l2p_s baec + SB (po) 22M 3+ 2p_sec 2 ^M D pi =PÍAND (2M 2 --/) hp_3ubs8 - code_2pulse([Pí p2], [ * s=], M-2) (2M-3 bits) /2P_8c = code_2pulse([p0 p3], [s0 r¾], -1) (2M-Í bits) Fin Procedure 4_Section: codificación de 4 pulsos signados en una Sección de longitud K/2=2M~1 usando 4M-3 bits.
Codificación de 5 pulsos Bignadoa por pista Los 5 pulsos diferentes de cero signados en una pista de longitud K-2M se pueden codificar usando 5M bits. Similar al caso de 4 pulsos diferentes de cero, las K posiciones en la pista se dividen en 2 secciones (dos mitades), en donde cada sección contiene K/2 posiciones. Aquí denotamos las secciones como Sección A con posiciones 0 a K/2-1 y la Sección B con posiciones K/2 a K-l. Cada P03/075-UAC 64 sección puede contener deade 0 a 5 pulsos . La tabla de abajo muestra los 6 casos que representan el número posible de pulsos en cada sección; En el caso 0, 1 y 2, existen al menos 3 pulsos diferentes de cero en la Sección B. Por otro lado, en los casos 3, 4 y 5, existen al menos 3 pulsos en la Sección A. Así, una aproximación simple para codificar los 5 pulsos diferentes de cero es codificar los 3 pulsos diferentes de cero en la misma sección usando el Procedimiento 3 que requiere 3(M-1)+1 - 3M-2 bita, y codificar los reatantes 2 pulsos usando el Procedimiento 2 que requiere 2M+1 bits. Esto da 5M-1 bits. Se necesitan bits extra para identificar la sección que contiene al menos 3 pulsos diferentes de cero (casos (0,1,2) o casos (3,4,5)). Así se necesita un total de 5M bits para codificar los 5 pulsos diferentes de P03/075-UAC 65 cero signados . El procedimiento de codificar 5 pulsos signados en una pista de longitud K=2M usando 5M bits se muestra en el Procedimiento 5 de abajo. Las 2 tablas de abajo muestran la distribución de bits en el índice para los diferentes casos descritos arriba de acuerdo a la modalidad preferida en donde M-4 (K-16) . Codificar 5 pulsos diferentes de cero signados por pista requiere 20 bits en este caso.
Casos 0, 1 y 2 Encontrar NA (número de pulsos en la Sección A) y NB (número de pulsos en la Sección B) Si NA= 0 y NB= 5 P03/075-UAC 66 l3p = cade_3pulse {{pao PBI K], [s&? £¾2}, M-1) (3(M-1)+1 bits) l2p = code_2pufse([pfl3 ^], [c¾3 s& , M) {2M+1 bits) Si WA= 1 y NB= 4 aP =" codejípulse ([pB0 PB* Ps_], [oso <¾* <¾2., M-í) (3(M-1)+1 bits) /2p = code_2pulse{[Ds3 ??], [<¾3 CAO], M) (2M+1 bits) Si NA= 2 y ??= 3 /3p ß code_3pulse (\pBo Pai PB?], [oso as* <¾2], M-í) (3(M-1)+1 bits) /2p = code_2pulse([p>,0p¿j], [o¾0 c¾j], ftí) {2M+1 bits) Si 1VA= 3 y NB= 2 ¡3P n code_3pulse (¡pA0 pA1 pA2], \s?0 ?? s?2], M-1) (3(M~1)+1 bits) l2p = code_2pulse([pSo PBT], t<¾o <¾tl M) (2M+Í bits) Si NA= 4 y ft= 1 /3p = code_3pulse (\??? AI A2], [s?0 s?? s?2], M-1) {3(M-1)+1 bits) l3p - code_2puIse([pA3 pflD], [s»3 e¾o], M) {2M+1 bits) Si i\TA= 5 y NB= O /3p = code_3pulse (\pAo PAI PA?1 [ ¾O ¾f -7) (3(M-?j+7 bits) l2p = code_2pulse(lp i3 [<¾3 tw*|, /W) bits) Si NA < 3 k = 1 o J=0 (identificar la sección con mínimo de 3 pulsos) ^ p p (total de 5M bits) P03 / 075 -UAC 67 Procedimiento 5 : codificación de 5 pulsos signados en una pista de longitud ?—S11 usando 5M bits.
Codificación de 6 pulsos signados pos pista Los 6 pulsos signados en una pista de longitud K-2M se codifican en esta modalidad preferida usando 6M-2 bits . Similar al caso de 5 pulsos, las K posiciones en la pista se dividen en 2 secciones (dos mitades) en donde cada sección contiene K/2 posiciones. Aquí denotamos las secciones como Sección A con posiciones 0 a K/2-1 y Sección B con posiciones K/2 a K-l. Cada sección puede contener desde 0 a pulsos. La tabla de abajo muestra los 7 casos que representan el número posible de pulsos en cada sección: P03/07B-UAC 68 Notar que los casos 0 y 6 son similares, excepto que los 6 pulsos diferentes de cero están en diferentes secciones. De forma similar, la diferencia entre los casos 1 y 5 así como los casos 2 y 4 es la sección que contiene más pulsos. Por lo tanto, estos casos se pueden acoplar, y se puede asignar un bit extra para identificar la sección que contiene más pulsos. Puesto que estos casos inicialmente necesitaban 6M-5 bits, los casos acoplados necesitan 6M-4 bits tomando en cuenta el bit de Sección. Así, ahora tenemos 4 estados de casos acoplados, con 2 bits extra necesarios para el estado. Esto da un total de 6M-4+2-6M-2 bits para los 6 pulsos diferentes de cero signados. Los casos acoplados se muestran en la tabla de abajo.
En los casos 0 ó 6, se necesita 1 bit para identificar la sección que contiene 6 pulsos diferentes de cero. 5 pulsos diferentes de cero en esa sección se P03/075-UAC 69 codifican usando el Procedimiento 5, que necesita 5 (M-1) bits (puesto que los pulsos están confinados a esa sección) , y el pulso restante se codifica usando el Procedimiento 1, que requiere 1 + (M-1) bits. Así, son necesarios un total de 1+5 (M-1 ) +M=6M-4 bits para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado del caso acoplado, dando un total de 6M-2 bits. En los casos 1 ó 5, se necesita 1 bit para identificar la sección que contiene 5 pulsos. Los 5 pulsos en esa sección se codifican usando el Procedimiento 5, que necesita 5 (M-1) bits, y el pulso en la otra sección se codifica usando el Procedimiento 1, que requiere 1+(M-1) bits. Así, son necesarios un total de 1+5 (M-1) +M-6M-4 bits para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado de los caaos acoplados, dando un total de 6M-2 bits. En los casos 2 ó 4, se necesita 1 bit para identificar la sección que contiene 4 pulsos diferentes de cero. Los 4 pulsos en esa sección se codifican usando el Procedimiento 4, que necesita 4 (M-1) bits, y los 2 pulsos en la otra sección se codifican usando el Procedimiento 2, que requiere 1+2 (M-1) bits. Así, son necesarios un total de 1 +4 (M-1) +1+2 (M-1) -6M-4 bits para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado del caso, dando un total de 6M-2 bits.
P03/075-UAC 70 En el caso 3, los 3 pulsos diferentes de cero en cada sección se codifican usando el Procedimiento 3, que requiere 3(M-1)+1 bits en cada Sección. Esto da 6M-4 bits para ambas secciones. Se necesitan 2 bits extra para codificar el estado del caso, dando un total de 6M-2 bits. El procedimiento de codificar 6 pulsos diferentes de cero signados en una pista de longitud K=2M usando 6M-2 bits se muestra en el Procedimiento 6 de abajo. Las 2 tablas de abajo muestran la distribución de bits en el índice para los diferentes casos descritos arriba de acuerdo a la modalidad preferida, en donde M-4 (K-16) . Codificar 6 pulsos diferentes de cero signados por pista requiere 22 bits en este caso.
Casos 0 y 6 P03/075-UAC 71 Casos 2 y 4 Caso 3 Procedimiento code_6pulse ( [pO pl p2 p3 p4 p5] , [s0 s± s2 s3 s4 s5] , ?) Inicio Encontrar ?? (número de pulsos en la Sección A) y NB (número de pulsos en la Sección B) Sí NA= 0 y NB~ 6 Sí NA= 1 y NB= 5 ¡5o = code_5pulse {[pBo PBI PB2 ??????* <¾V <¾* <¾3 ??-?) = code j pulse(pAOj s?(? ? ) (M bits) '?? = 'ÍP + kpx2M* 2?M-S (M + (5M-5). + 1 bits) Sí NA= 2 y NB= 4 P03/075-UAC 72 Sí ??= 3 y iVfl= 3 /¾,/¾ = coda_3pulso (ÍP o pAÍ p/2], [s?s s? s?], M-1) (3(M-1)+1 bits) /j!ofl = coda_3pu]se (Iofl0 pBi ^j, [_¾ø;, t¾a], M-1) (3(M-1)+1 bits) /« = PB + ^Í F [3(M-1)+1 + 3(M-fJ+1 blte) Sí 1VA= 4 y WB= 2 /«> - code_4pu!se ([??? ??, pM s?? s?2 s?3], M-1) {4(M-1) bits) l2p = code 2 ulse([ fl0 flt], [c¾0 <¾,], M-1) {2(M-1)+1 bits) /« = /¾,+ ?^^' + 02ß?? ((2/W- 1 + (4M-4) + / brts) Sí NA= 5 y Nfl= 1 /¾ = code_5p lee ([PAO PAÍ PA2 AS ?? , [OAO C¾Í t¾z s?^ <¾»], ??-?) /íp = code 1pul8e(pa(Jí c¾a iVM) (M lts) JAB = 'rP + "*, 2M+ D 2e,WJ (M + + 1 bits) Sí ???= 6 y -NB= 0 /¾, PAI PAZ PAS PA<], [s?? PAÍ t¾: s?3 s?4], M-1) l1p = code_1 pulseé, s?¾ -?) (M bits) IAB = P + ¾^M + 0 2™-* (M + (5M-5) + 1 bits) Si ¾ < 4 Je = ¾ o k- 6-NA (encontrar 4 stados de caaos acoplados) ISp = IA3 + kx2 ~* (total de 6M-2 bits) in Procedimiento 6 : codificación de 6 pulsos signados en una pista de longitud ¥.=2** usando 6M-2 bits.
P03/075-UAC 73 Ejemplos de estructuras de libro de códigos basados en I5PP (64,4) Aqui, se presentan diferentes ejemplos de diseños de libros de códigos basados en el diseño de ISPP (64,4) explicado arriba. El tamaño de la pista es de K=16, que requiere M=4 bits por pista. Los diferentes ejemplos de diseño se obtienen cambiando el número de pulsos diferentes de cero por pista. Se describen abajo 8 diseños posibles. Otras estructuras de libros de códigos se pueden obtener fácilmente seleccionando diferentes combinaciones de pulsos diferentes de cero por pista.
Diseño 1: 1 pulso por pista (libro de códigos de 20 bits) En este ejemplo, cada pulso diferente de cero requiere (4+1) bits (Procedimiento 1) dando un total de 20 bits para los 4 pulsos en las 4 pistas.
Diseño 2: 2 pulsos por pista (libro de códigos de 36 bits) En este ejemplo, los dos pulsos diferentes de cero en cada pista requieren (4+4+1) -9 bits (Procedimiento 2) dando un total de 36 bits para los 8 pulsos diferentes de cero en las 4 pistas.
Diseño 3: 3 pulsos por pista (libro de códigos de 52 bits) En este ejemplo, los 3 pulsos diferentes de cero P03/075-UAC 74 en cada pista requieren (3x4+1) -13 bits (Procedimiento 3) dando un total de 52 bits para los 12 pulsos diferentes de cero en las 4 pistas.
Diseño 4: 4 pulsos por pista (libro de códigos de 64 bits) En este ejemplo, los 4 pulsos diferentes de cero en cada pista requieren (4x4) =16 bits (Procedimiento 4) dando un total de 64 bits para los 16 pulsos en las 4 pistas .
Diseño 5: 5 pulsos por pista (libro de códigos de 80 bits) En este ejemplo, los 5 pulsos diferentes de cero en cada pista requieren (5x4)=20 bits (Procedimiento 5) dando un total de 80 bits para los 20 pulsos diferentes de cero en las 4 pistas.
Diseño 6: 6 pulsos por pista (libro de códigos de 88 bits) En este ejemplo, los 6 pulsos diferentes de cero en cada pista requieren (6x4-2) = 22 bits (Procedimiento 6) dando un total de 88 bits para los 24 pulsos diferentes de cero en las 4 pistas.
Diseño 7: 3 pulsos en las pistas T0 ? T2 y 2 pulsos en las pistas TI y T3 (libro de códigos de 44 bits) En este ejemplo, los 3 pulsos diferentes de cero P03/075-UAC 75 en las pistas T0 y T2 requieren (3x4+1) =13 bits (Procedimiento 3) y los 2 pulsos diferentes de cero en las pistas Tx y T3 requieren (1+4+4) =9 bits (Procedimiento 2) por pista. Esto da un total de (13+9+13+9) =44 bits para los 10 pulsos diferentes de cero en las 4 pistas.
Diseño 8: 5 pulsos en las pistas T0 y T2 y 4 pulsos en las pistas Ti ? T3 (libro de códigos de 72 bits) En este ejemplo, los 5 pulsos diferentes de cero en las pistas T0 y T2 requieren (5x4) =20 bits (Procedimiento 5) por pista, y los 4 pulsos en las pistas Tj. y T3 requieren (4x4) =16 bits (Procedimiento 4) por pista. Esto da un total de (20+16+20+16) =72 bits para los 18 pulsos diferentes de cero en las 4 pistas.
Búsqueda del libro de códigos : En esta modalidad preferida, se usa un método especial para realizar la primera búsqueda profunda, descrita en la Patente de EE.UU. No. 5,701,392, según la cual los requerimientos de memoria para almacenar los elementos de la matriz HfcH (la cual se definirá en lo sucesivo) se reducen significativamente. Esta matriz contiene las autocorrelaciones de la respuesta h(n) de impulso y es necesaria para realizar el procedimiento de búsqueda. En esta modalidad preferida, se calcula y se P03/075-UAC 76 almacena solo una parte de esta matriz, y la otra parte ae calcula en línea dentro del procedimiento de búsqueda. El libro de códigos algebraicos se busca encontrando el vector de código de excitación óptimo y la ganancia g que minimiza el error cuadrado promedio entre el vector objetivo y el vector de código filtrado escalado M| *2 - gH«¾ i|2 en donde es una matriz de convolución triangular inferior derivada del vector h de respuesta de impulso. La matriz H se define como la matriz de convolución de Toeplitz triangular inferior con h(0) diagonal y diagonales inferiores h (1 ), ..., h (N-1 ) . Puede demostrarse que el error E ponderado cuadrático promedio se puede minimizar maximizando el criterio de búsqueda: en donde d = Htx2 es la correlación entre la señal x2 (n) objetivo y la respuesta h (n) de impulso (también conocido como el vector objetivo filtrado inverso) , y F = ?^? es la matriz de correlaciones de h (n) . Los elementos del vector d se calculan por P03/075-UAC 77 y los elementos de la matriz F simétrica se calculan por ff-l El vector d y la matriz F se pueden calcular antea de la búsqueda del libro de códigos. La estructura algebraica de los libros de códigos permite procedimientos de búsqueda muy rápidos puesto que el vector de innovación contiene solamente unos pocos pulsos diferentes de cero. La correlación en el numerador del criterio de búsqueda Qk se da por en donde n¡j es la posición del j B m° pulso, es su amplitud, y Np es el número de pulsos. La energía en el denominador del criterio de búsqueda Qt se da por: Para simplificar el procedimiento de búsqueda, las amplitudes de pulso se predeterminan cuantificando una cierta señal de referencia b(n). Se pueden usar varios P03/075-UAC 78 métodos para definir esta señal de referencia. En esta modalidad preferida, b(n) se da por: en donde Ed = dfcd es la energía de la señal d(n) , y Er -^LTPTLTP es la energía de la señal rLTP(n), que es la señal residual después de la predicción a largo plazo. El factor de escalamiento a controla la cantidad de dependencia de la señal de referencia sobre d(n). En la aproximación de amplitud de pulso de señal seleccionada descrita en la Patente de EE.UU. No. 5,754,976 el signo de un pulso en la posición i se fija igual al signo de la señal de referencia en esa posición. Para simplificar la búsqueda, la señal d(n) y la matriz F se modifican para incorporar los signos preseleccionados. Dejemos que S¡j(n) denote el vector que contiene los signos de b (n) . La señal d' (n) modificada se da por: d'(«)=:¾(«)rf(n), p=0,...,?? y la matriz F' de autocorrelación modificada se da por: ?V, ) = ¾C0¾ J) , ·..? ; .-,?? .
La correlación en el numerador del criterio de P03/075-UAC 79 búsqueda Q¾ se da ahora por la energía en el denominador del criterio de búsqueda Qk da por: JV.-I M) /-O j-t+l El objetivo de la búsqueda ahora es determinar el vector de código con el mejor conjunto de Np posiciones de pulso, asumiendo que se han seleccionado amplitudes de los pulsos como se describe arriba. El criterio de selección básico es la maximi zación de la relación Qk mencionada arriba. Según la Patente de EE.UU. No. 5,701,392, para reducir la complejidad de la búsqueda, las posiciones de pulso se determinan Nm pulsos en un tiempo. Más precisamente, los Np pulsos disponibles se particionan en M subconjuntos no vacíos de Nm pulsos respectivamente, tal que N2+N2... +Nm ... +NM — Np. Una selección particular de posiciones para los primeros J = Nz+N2... +Nm-i pulsos considerados se llama una trayectoria de nivel m o una trayectoria de longitud J. Un criterio básico para una trayectoria de J posiciones de pulso es la relación Qk(J) , P03/075-UAC 80 cuando solamente se consideran los J pulsos relevantes. La búsqueda inicia con el subconjunto #1 y procede con subconj untos subsecuentes, de acuerdo a una estructura de árbol según la cual el subconjunto m se busca en el méeimo nivel del árbol. El propósito de la búsqueda en el nivel 1 es considerar los N? pulsos del subconjunto #1 y sus posiciones válidas para determinar una, o un número de, trayectoria (s) candidato de longitud N1 que son los nodos del árbol en el nivel 1. La trayectoria en cada nodo de terminación del nivel m-1 se extiende a la longitud ?+?2... +Nm en el nivel m considerando Nm nuevos pulsos y sus posiciones válidas. Una, o un número de, trayectoria (s) candidato extendidas se determinan para constituir nodos del nivel m. El mejor vector de código corresponde a aquella trayectoria de longitud Np que maximiza un criterio dado, por ejemplo el criterio Qk(Np) con respecto a todos los nodos de nivel M. En esta modalidad preferida, se consideran siempre 2 pulsos en un tiempo en el procedimiento de búsqueda, esto es, Nm=2. Sin embargo, en vez de asumir que la matriz F se calcula previamente y se almacena, lo que requiere una memoria de NxN palabras (64x64= 4k palabras en esta modalidad preferida) , se usa una aproximación de P03/075-UAC 81 memoria eficaz, que reduce significativamente el requerimiento de memoria. En esta nueva aproximación, el procedimiento de búsqueda se realiza de tal manera que solamente una parte de los elementos necesarios de la matriz de correlación se calculan previamente y se almacenan. Esta parte se relaciona a las correlaciones de la respuesta de impulso que corresponden a posiciones de pulso potenciales en pistas consecutivas, así como a las correlaciones que corresponden a 4>(jrj), j=0,...,N-l (que es los elementos de la diagonal principal de la matriz F) . Como un ejemplo de ahorro de memoria, en esta modalidad preferida, el tamaño del submarco es N=64, lo que significa que la matriz de correlación es de tamaño 64x64=4096. Puesto que los pulsos se buscan dos pulsos en tiempo en pistas consecutivas, es decir las pistas T0-Tlf Ti-T2, T2-T3, o T3-T0, los elementos de correlación necesarios son aquellos que corresponden a pulsos en pistas adyacentes. Puesto que cada pista contiene 16 posiciones potenciales, existen 16x16=256 elementos de correlación que corresponden a dos pistas adyacentes. Así, con la aproximación de memoria eficiente, los elementos necesarios son 4x256-1024, para las cuatro posibilidades de pistas adyacentes (?0-?2/ T1-T2r T2-T3 y T3-T0) . Además, se necesitan 64 correlaciones en la diagonal de la matriz. Dando un requerimiento de almacenamiento de 1088 en vez de 4096 P03/075-UAC 82 palabras . Una forma especial del procedimiento de búsqueda de árbol con el criterio de primero la profundidad se usa en esta modalidad preferida, en la cual dos pulsos en dos pistas consecutivas se buscan en un tiempo. Para reducir la complejidad, se prueba un número limitado de posiciones potenciales del primer pulso. Además, para libros de códigos algebraicos con un gran número de pulsos, se pueden fijar algunos pulsos en los niveles más altos del árbol de búsqueda Para estimar de forma inteligente que posiciones potenciales de pulso se consideran para el primer pulso, o para fijar algunas posiciones de pulso, se usa un "vector de estimado de posibilidad de posición de pulso" b, que está basado en señales relacionadas a la señal vocal. El p3lw° componente b(p) de este vector b estimado caracteriza la probabilidad de un pulso que ocupa la posición p (p -0,1,... N-l) en el mejor vector de código que estamos buscando . Para una pista dada, el vector b estimado indica la probabilidad relativa de cada posición válida. Esta propiedad se puede usar ventajosamente como un criterio de selección en los primeros pocos niveles de la estructura de árbol en lugar del criterio Qk(j) de selección básico que de cualquier modo, en los primeros pocos niveles opera P03/075-UAC 83 sobre demasiados pocos pulsos para proporcionar un funcionamiento confiable al seleccionar posiciones válidas. En esta modalidad preferida, el vector b estimado es la misma señal de referencia usada en preseleccionar las amplitudes de pulso descritas arriba. Esto es, en donde ¾ = dfcd es la energía de la señal d(n) y Er = ^LTPTLTP es la energía de la señal rLTp(n) que es la señal residual después de la predicción a largo plazo. Una vez que se seleccionan el vector de código ck de excitación óptimo y su ganancia g por el módulo 110, el índice k del libro de códigos y la ganancia g se codifican y se transmiten al multiplexor 112. Refiriéndonos a la Figura 1, loa parámetros b, T, j, Á(z), k y g se multiplexan a través del multiplexor 112 antes de ser transmitidos a través de un canal de comunicación.
Actualización de memoria. En el módulo 111 de memoria (Figura 1) , los estados del filtro de síntesis ponderado W(z)/Á(z) se actualizan filtrando la señal de excitación u = gc^ + bvT a través del filtro de síntesis ponderado. Después de este P03/075-UAC 84 filtrado, los estados del filtro se memorizan y se usan en el siguiente submarco como estados iniciales para calcular la respuesta de entrada cero en el módulo 108 de calculadora . Como en el caso del vector x objetivo, se pueden usar otras aproximaciones alternativas pero matemáticamente equivalentes muy conocidas para aquellos de ordinario expertos en la técnica para actualizar los estados del filtro.
LADO DEL DECODIFICADOR El dispositivo 200 de decodificación de la señal vocal de la Figura 2 ilustra las diversas etapas llevadas a cabo entre la entrada 222 digital (corriente de entrada al desmultiplexor 217) y la señal vocal 223 muestreada de salida (Sout del adicionador 221) . El desmultiplexor 217 extrae los parámetros del modelo de síntesis de la información binaria recibida de un canal de entrada digital. De cada marco binario recibido, los parámetros extraídos son: los parámetros de predicción de corto término (???) Á(z) en la línea 225 (una vez por marco) ; los parámetros de predicción de largo plazo (LTP) T, , y j (para cada submarco) ; y - el índice k del libro de códigos de innovación y la P03/075-UAC 85 ganancia g (para cada submarco) . La señal vocal actual se sintetiza basado en estos parámetros, como se explicará más abajo. El libro de códigos innovadores 218 es sensible al índice k para producir el vector de código c¾; de innovación, el cual se escala por la ganancia g decodificada a través de un amplificador 224. En la modalidad preferida, se usa un libro de códigos innovadores 218 como se describe en las Patentes de EE.UU. Nos. 5,444,816; 5,699,482; 5,754,976; y 5,701,392 mencionadas arriba para representar el vector de código c¾ de innovación. El vector de código gc^ escalado generado en la salida del amplificador 224 se procesa a través de un filtro 205 de innovación.
Mejora de la periodicidad: El vector de código gck escalado generado en la salida del amplificador 224 se procesa también a través de un mej orador de paso dependiente de frecuencia, es decir el filtro 205 de innovación. Mejorar la periodicidad de la señal u de excitación mejora la calidad en caso de segmentos armonizados. Esto se hizo en el pasado filtrando el vector de innovación del libro de códigos innovadores (libro de P03/075-UAC 86 códigos fijos) 218 a través de un filtro en la forma 1/(1-ebz~T) , en donde e es un factor por debajo de 0.5 que controla la cantidad de periodicidad introducida. Esta aproximación es menos eficiente en caso de señales de banda ancha, puesto que introduce periodicidad sobre el espectro completo. Se describe una nueva aproximación alternativa, que es parte de la presente invención, según la cual la mejora de la periodicidad se logra filtrando el vector de código ck de innovación del libro de códigos innovador (fijos) a través de un filtro 205 de innovación (F(z)) cuya respuesta de frecuencia enfatiza las frecuencias más altas más que las frecuencias más bajas. Los coeficientes de F(z) se relacionan a la cantidad de periodicidad en la señal u de excitación. Muchos métodos conocidos para aquellos de ordinario expertos en la técnica están disponibles para obtener coeficientes de periodicidad válidos. Por ejemplo, el valor de la ganancia b proporciona una indicación de la periodicidad. Esto es, si la ganancia b es cercana a l, la periodicidad de la señal de excitación u es alta, y si la ganancia b es menor de 0.5, entonces la periodicidad es baja. Otra manera eficiente para derivar los coeficientes del filtro F(z) es relacionarlos a la cantidad de contribución del paso en la señal u de excitación total.
P03/075-UAC 87 Esto resulta en una respuesta de frecuencia que depende de la periodicidad del submarco, en donde las frecuencias más altas se enfatizan más fuertemente (pendiente general más fuerte) para ganancias de paso más altas. El filtro 205 de innovación tiene el efecto de disminuir la energía del vector de código Ck de innovación a bajas frecuencias cuando la señal de excitación u es más periódica, lo que mejora la periodicidad de la señal u de excitación en frecuencias más bajas máe que frecuencias más altas. Las formas sugeridas para el filtro 205 de innovación son: (1) F(z) = 1 - s?~2 , o (2) F(z) = -az+ 1 -a? ? en donde s o a son factores de periodicidad derivados del nivel de periodicidad de la señal u de excitación. La segunda forma de tres términos de F(z) se usa en una modalidad preferida. El factor de periodicidad a se calcula en el generador 204 del factor de voz. Se pueden usar varios métodos para derivar el factor de periodicidad basado en la periodicidad de la señal u de excitación. Dos métodos se presentan abajo.
Método 1 : La relación de la contribución del paso a la señal u de excitación total se calcula primero sonorizando en el generador 204 del factor de voz por: P03/075-UAC 88 en donde vT es el vector de libro de código de paao, b es la ganancia de paso, y u es la señal de excitación u dada en la salida del adicionador 219 por Notar que el término bVT tiene su fuente en libro de códigos de paso (libro de códigos de paso) 201 en respuesta al retraso T de paao y el valor pasado de u almacenado en la memoria 203. El vector de código VT de paso del libro de códigos 201 de paso se procesa luego a travée de un filtro 202 de paso bajo cuya frecuencia de corte se ajusta por medio del índice j del desmultiplexor 217. El vector de código VT resultante se multiplica entonces por la ganancia b del desmultiplexor 217 a través de un amplificador 226 para obtener la señal bVT. El factor se calcula en el generador 204 del factor de voz por: = qRp limitado por a < q en donde g es un factor que controla la cantidad de mejora P03/075-UAC 89 (g se fija a 0.25 en esta modalidad preferida) Método 2 i Otro método para calcular el factor de periodicidad se discute abajo. Primero, se calcula un factor rv de sonorización en el generador 204 del factor de voz por: rv = (Ev - Ec )/(Ev + Ec ) en donde Ev es la energía del vector de código bVT de paso escalado, y Ec es la energía del vector de código gCK de innovación escalado. Esto es: ?? n->0 y N-l n-0 Notar que el valor de rv se encuentra entre -1 y 1 (1 corresponde a señales puramente armonizadas y -1 corresponde a señales puramente no armonizadas) . En esta modalidad preferida, el factor a se calcula luego en el generador 204 del factor de voz por a = 0.125 (1 + rv) P03/075-UAC 90 que corresponde a un valor de 0 para señales puramente no armonizadas, y 0.25 para señales puramente armonizadas. En la primera forma de dos términos de F(z), el factor s de periodicidad se puede aproximar usando s = 2a en los métodos l y 2 de arriba. En tal caso, el factor s de periodicidad se calcula como sigue en el método 1 de arrib : s = 2qRp limitado por s < 2g.
En el método 2, el factor de periodicidad s se calcula como sigue: s = 0.25(1 + rv ) La señal cf mejorada se calcula por lo tanto filtrando el vector de código grc¾ de innovación escalado a través del filtro 205 de innovación (F(z)) . La señal u' de excitación mejorada se calcula por el adicionador 220 como: u' = Cf + bvT Notar que este proceso no se realiza en el codificador 100. Así, es esencial actualizar el contenido del libro de códigos 201 de paso usando la señal de excitación u sin mejora para mantener el sincronismo entre P03/075-UAC 91 el codificador 100 y el decodificador 200. por lo tanto, la señal u de excitación se usa para actualizar la memoria 203 del libro de códigos 201 de paso, y la señal u' de excitación mejorada se usa en la entrada del filtro 206 de síntesis de LP .
Síntesis y desacentuación La señal ' sintetizada se calcula filtrando la señal u' de excitación mejorada a través del filtro 206 de síntesis de LP que tiene la forma 1/Á(z), en donde Á(z) es el filtro LP interpolado en el submarco actual. Como se puede ver en la Figura 2, los coeficientes Á(z) de LP cuantificados en la línea 225 del desmultiplexor 217 se suministran al filtro 206 de síntesis de LP para ajustar los parámetros del filtro 206 de síntesis de LP en consecuencia. El filtro 207 de desacentuación es el inverso del filtro 103 de preénfasis de la Figura 1. La función de transferencia del filtro 207 de desacentuación se da por: en donde µ es un factor de preénfasis con un valor situado entre 0 y 1 (un valor típico es µ - 0.7) . También se podría usar un filtro de orden más alto. El vector s' se filtra a través del filtro de desacentuación D(z) (módulo 207) para obtener el vector sd, P03/075-UAC 92 que se pasa a través del filtro 208 de paso alto para eliminar las frecuencias no deseadas por debajo de 50 Hz y adicionalmente obtener ah .
Sobremuestreo y regeneración de alta frecuencia El módulo 209 de sobremuestreo conduce el proceso inverso del módulo 101 de sub-muestreo de la Figura 1. En esta modalidad preferida, el sobremuestreo convierte de la velocidad de muestreo de 12.8 kHz a la velocidad de muestreo de 16 kHz original, usando técnicas muy conocidas para aquellos de ordinario expertos en la técnica. La señal de síntesis sobremuestreada se denota . La señal también es referida como la señal intermedia de banda ancha sintetizada . La señal de síntesis sobremuestreada no contiene los componentes de frecuencias más altas que se perdieron por el proceso de submuestreo (módulo 101 de la Figura 1) en el codificador 100. Esto da una percepción de paso bajo a la señal vocal sintetizada. Para restaurar la banda completa de la señal original, se describe un procedimiento de generación de alta frecuencia. Este procedimiento se realiza en los módulos 210 a 216, y el adicionador 221, y requiere entrada del generador 204 del factor de voz (Figura 2) . En esta nueva aproximación, el contenido de alta P03/075-UAC 93 frecuencia se genera llenando la parte superior del espectro con un ruido blanco escalado apropiadamente en el dominio de excitación, luego convertido al dominio de señal vocal, preferiblemente formándolo con el mismo filtro de síntesis de LP usado para sintetizar la señal sub-muestreada . El procedimiento de generación de alta frecuencia de acuerdo con la presente invención se describe más abajo. El generador 213 de ruido aleatorio genera una secuencia W de ruido blanco con un espectro plano sobre la anchura de banda de frecuencia completa, usando técnicas muy conocidas para aquellos de ordinario expertos en la técnica. La secuencia generada es de longitud N" , que es la longitud de submarco en el dominio original . Notar que N es la longitud de submarco en el dominio sub-muestreado . En esta modalidad preferida, N = 64 y N* = 80, lo que corresponde a 5 ms . La secuencia de ruido blanco se escala apropiadamente en el módulo 214 de ajuste de ganancia. El ajuste de ganancia comprende las siguientes etapas.
Primero, la energía de la secuencia W de ruido generada se fija igual a la energía de la señal W de excitación mejorada calculada por un módulo 210 de cálculo de energía, y la secuencia de ruido escalado resultante se da por: P03/075-UAC 94 La segunda etapa en el escalamiento de ganancia eg tomar en cuenta el contenido de alta frecuencia de la señal sintetizada en la salida del generador 204 del factor de voz para reducir la energía del ruido generado en caso de segmentos sonorizados (en donde está presente menos energía en altas frecuencias comparado a los segmentos no sonorizados) . Preferiblemente, la medición del contenido de alta frecuencia se implementa midiendo la distorsión de la señal de síntesis a través de una calculadora 212 de distorsión espectral, y reduciendo la energía en consecuencia. Se pueden usar igualmente otras mediciones tales como las mediciones de cero cruce. Cuando la distorsión es muy fuerte, lo que corresponde a segmentos sonorizados, la energía del ruido se reduce adícionalmente . El factor de distorsión se calcula en el módulo 212 como el primer coeficiente de correlación de la señal Sh de síntesis, y está dado por: , condicionada por distorsión = 0 y distorsión rv.
P03/075-UAC 95 en donde el factor de voz rv se da por rv = (Ev - Ec )/(Ev + Ec ) en donde Ev es la energía del vector de código bVT de paso escalado, y Ec es la energía del vector de código gCK de innovación escalado, como se describe en lo anterior. El factor de voz rv es más frecuentemente menor que la distorsión, pero esta condición se introdujo como una precaución contra tonos de alta frecuencia en donde el valor de la distorsión es negativo, y el valor de rv es alto. Por lo tanto, esta condición reduce la energía del ruido para tales señales tonales. El valor de la distorsión es 0 en caso de un espectro plano, y 1 en caso de señales fuertemente sonorizadas, y es negativo en caso de señales no sonorizadas en donde más energía está presente en altas frecuencias . Se pueden usar diferentes métodos para derivar el factor de escalamiento gt de la cantidad de contenido de alta frecuencia. En esta invención, se dan dos métodos basados en la distorsión de señal descrita arriba.
Método 1: El factor de escalamiento gt se deriva de la distorsión por P03/075-UAC 96 gt - 1 - distorsión limitado por 0.2 < gt = 1-0 Para señales fuertemente sonorizadas en donde la distorsión se aproxima a 1, gt es 0.2, y para señales fuertemente no sonorizadas, gt llega a ser 1.0.
Método 2 : El factor de escalamiento gt se restringe primero para que sea más grande o igual a cero, luego el factor de escalamiento se deriva de la distorsión por -0.6di s torsión La secuencia w0 de ruido escalado producida en el módulo 214 de ajuste de ganancia se da por lo tanto por: Cuando la distorsión es cercana a cero, el factor de escalamiento gt es cercano a l, lo que no resulta en reducción de energía. Cuando el valor de distorsión es 1, el factor de escalamiento gt resulta en una reducción de 12 dB en la energía del ruido generado. Una vez que el ruido se escala apropiadamente (wg) , se introduce en el dominio de señal vocal usando el formador espectral 215. En la modalidad preferida, esto se logra filtrando el ruido wg a través de una versión P03/075-UAC 97 expandida de anchura de banda del mismo filtro de síntesis de LP usado en el dominio sub-muestreado (l/Á (z/0.8) ) . Los coeficientes de filtro LP expandido de anchura de banda correspondientes se calculan en el formador espectral 215. La secuencia Wf de ruido escalado filtrado se filtra entonces del paso de banda al intervalo de frecuencia requerido para ser restaurado usando el filtro 216 de paso de banda. En la modalidad preferida, el filtro 216 de paso de banda restringe la secuencia de ruido al intervalo de frecuencia 5.6-7.2 kHz . La secuencia z de ruido filtrada de paso de banda resultante se adiciona en el adicionador 221 a la señal vocal sintetizada sobremuestreada para obtener la señal eout de sonido reconstruida final en la salida 223. Aunque la presente invención se ha descrito en lo anterior por vía de una modalidad preferida de la misma, esta modalidad se puede modificar a voluntad, dentro del alcance de las reivindicaciones anexadas, sin apartarse del espíritu y la naturaleza de la presente invención. Aun cuando la modalidad preferida describe el uso de señales vocales de banda ancha, será obvio para aquellos expertos en la técnica que la presente invención también incluye otras modalidades que usan señales de banda ancha en general, y que ésta no está necesariamente limitada a aplicaciones de señales vocales.
P03/075-UAC

Claims (62)

98 RBIVI DICACIONBS I
1. Un método para vincular posiciones y amplitudes de pulso en un libro de códigos algebraicos, para la codificación y decodi icación eficientes de una señal de sonido, - en donde : - el libro de códigos comprende un conjunto de combinaciones de amplitud/posición de pulso, - cada combinación de amplitud/posición de pulso define un número de diferentes posiciones, y que comprende arabos, pulsos de amplitud cero y pulsos de amplitud diferente de cero asignados a posiciones respectivas de la combinación; y - cada pulso de amplitud diferente de cero asume una de una pluralidad de posibles amplitudes; y - en donde el método para vincular comprende: formar un conjunto de una o más pistas de estas posiciones de pulso; restringir las posiciones de los pulsos de amplitud diferente de cero de las combinaciones del libro de códigos de acuerdo con el conjunto de una o varias pista de posiciones de pulso; establecer un procedimiento 1 para vincular la posición y amplitud de un pulso de amplitud diferente de cero, cuando solamente la posición del pulso de amplitud P03/075-UAC 99 diferente de cero está situada en una pista del conjunto; establecer un procedimiento 2 para vincular las posiciones y amplitudes de dos pulsos de amplitud diferente de cero cuando solamente las posiciones de los dos pulsos de amplitud diferente de cero están situadas en una pista del con unto; y cuando las posiciones de un número X de pulsos de amplitud diferente de cero están situadas en una pista del conjunto, en donde X = 3 : dividir las posiciones de la pista en dos secciones ; usar un procedimiento X para vincular las posiciones y amplitudes de los X pulsos de amplitud diferente de cero, este procedimiento X comprende: identificar en cual de las dos secciones de pista está situado cada pulso de amplitud diferente de cero; calcular subíndices de los X pulsos de amplitud diferente de cero usando el procedimiento 1 y 2 establecidos en una o más de las secciones de pista y la pista completa; y calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices . P03/075-UAC 100
2. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, que comprende la intercalar de las posiciones de pulso de cada pista con las posiciones de pulso de las otras pistas.
3. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero comprende: calcular uno o más índices intermedios, el índice produce medios que comprenden medios para combinar dos o más de los subíndices; y calcular el índice de posición-y-amplitud de estos X pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices restantes y el o los índices intermedios.
4. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde el procedimiento 2 comprende producir un índice de posición-y-amplitud que incluya un índice de posición que indique la posición del pulso de amplitud diferente de cero situado en una pista y, una amplitud que indique la amplitud del pulso de amplitud diferente de cero.
5. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 4, en donde el índice de posición comprende un primer grupo de P03/075-UAC 101 bits y, el índice de amplitud comprende uno o más bits.
6. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 5, en el cual el o los bits del índice de amplitud es un bit de clasificación superior.
7. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 5, en donde la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1 y, en donde, el o los bits del índice de amplitud es un bit de signo .
8. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde : la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1; y el procedimiento 1 comprende producir un índice de posición-y-amplitud del pulso de amplitud diferente de cero que tiene la forma: /fp= p +sx2M en donde p es un índice de posición del pulso de amplitud diferente de cero en la pista, s es un índice de signo del pulso de amplitud diferente de cero y, 2M es el número de P03/075-UAC 102 posiciones en la pista.
9. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 8, en donde el número de posiciones en la pista es 16 y, en donde el índice de posición-y-amplitud es un índice de 5 bits representado en el siguiente cuadro:
10. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde el procedimiento 2 comprende producir un índice de posición-y-amplitud que incluye: índices de primera y segunda posición que indican, respectivamente, las posiciones de los dos pulsos de amplitud diferente de cero en la pista; y un índice de amplitud que indica la amplitud de los dos pulsos de amplitud diferente de cero. 11. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 10, en donde, en el índice de posición-y-amplitud: el índice de amplitud comprende uno o más bits; el índice de primera posición comprende un primer grupo de bits; y el índice de segunda posición comprende un
P03/075-UAC 103 aegundo grupo de bita . 12. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 11, en donde, en el índice de posición-y-amplitud : el o los bits del índice de amplitud es un bit de clasificación superior; los bits del primer grupo son bits de clasificación intermedia; y los bits del segundo grupo son bits de clasificación inferior. 13. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 11, en donde la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1 y, en donde, el o los bits del índice de amplitud es un bit de signo . 14. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 10, en donde el procedimiento 2 comprende: cuando los dos pulsos tienen la misma amplitud, se produce un índice de amplitud que indica la amplitud del pulso de amplitud diferente de cero cuya posición se indica por el índice de primera posición, se produce un índice de primera posición que indica la posición menor de los pulsos de amplitud diferente de cero en la pista y, se produce un
P03/075-UAC 104 índice de segunda poaición que indica la posición mayor de loa pulsos de amplitud diferente de cero en la pista; y cuando los dos pulsos tienen diferentes amplitudes, se produce un índice de amplitud que indica la amplitud del pulso de amplitud diferente de cero cuya posición se indica por el índice de primera posición, se produce un índice de primera posición que indica la posición mayor de los dos pulsos de amplitud diferente de cero en la pista y, se produce un índice de segunda posición que indica la posición menor de los dos pulsos de amplitud diferente de cero en la pista. 15. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde el procedimiento 2 comprende, cuando la posición de un primer pulso de amplitud diferente de cero de índice de posición p0 e índice de signo s0 y, la posición de un segundo pulso de amplitud diferente de cero de índice de posición p! e índice de signo s? están situadas en la pista del conjunto, se produce un índice de posición-y-amplitud de los primero y segundo pulsos de amplitud diferente de cero de la forma:
P03/075-UAC 105
Si s? - s? S\po=pi . = Í +?0*2?+s0?22? Si po = Pi «2p = po + Pix2» + aox?" Si ero ? 1
Si Po = pi = ?? + ???2?+s??22? en donde 2 es el número de posiciones en la pista.
16. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 15, en donde el número de posiciones en la pista es 16 y, en donde el índice de posición-y-amplitud es un índice de 9 bits representado por el siguiente cuadro:
17. Un método para vincular posiciones amplitudes de pulso como se define en la reivindicación
P03/075-UAC 106 en donde, cuando X=3 ; dividir las posiciones de la pista en dos secciones que comprenden dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 3 comprende : identificar una de las secciones de pista superior e inferior que contiene las posiciones de dos o más pulsos de amplitud diferente de cero; calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situado en la sección de la pista utilizando el procedimiento 2 aplicado a las posiciones de la sección de la pista; calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de la sección de toda la pista; y producir un índice de posición-y-amplitud de los tres pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los índices primero y segundo. 18. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 17, en donde : calcular un primer índice de los dos o más pulsos de amplitud diferente de cero situados en una sección de la
P03/075-UAC 107 pista utilizando el procedimiento 2 que comprende, cuando la posición de los dos o más pulsos de amplitud diferente de cero está situada en la sección superior, desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la sección superior a la sección inferior. 19. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 18, en donde desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la sección superior a la sección inferior, comprende enmascarar un número de bits menos significativos de los índices de posición de los dos o más pulsos de amplitud diferente de cero con una máscara que consiste del número de unos (1) .
20. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 17, en donde calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 2 que comprende insertar un índice de sección que indique la sección de pista superior e inferior en la que se ubican los dos o más pulsos de amplitud diferente de cero.
21. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 14, en donde el número de posiciones en la pista es 16 y, en donde el índice es un índice de 13 bits representado en el P03/075-UAC 108 siguiente cuadro:
22. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 1, en donde : el procedimiento 1 comprende producir un índice de posición-y-amplitud que incluye un índice de posición que indique la posición del pulso de amplitud diferente de cero situado en una pista y, una amplitud que indique la amplitud del pulso de amplitud diferente de cero, en donde el índice de posición comprende un primer grupo de bits y, el índice de posición comprende uno o más bits. el procedimiento 2 comprende producir un índice de posición-y-amplitud que incluye índices de primera y segunda posición que indican, respectivamente, las posiciones de los dos pulsos de amplitud diferente de cero en la pista; y un índice de amplitud que indica la amplitud de los dos o más pulsos de amplitud diferente de cero, en donde el índice de amplitud comprende uno o más bits, el índice de la primera posición comprende un primer grupo de bits y, el índice de la segunda posición comprende un P03/075-UAC 109 segundo grupo de bits; cuando X=3 ; dividir las posiciones de la pista en dos secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 3 comprende: identificar una de las secciones superior e inferior que contiene las posiciones de los dos o más pulsos de amplitud diferente de cero; calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 2 aplicado a la posición de la sección de pista; calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de los tres pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
23. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 22, en donde, cuando X=4 : dividir las posiciones de la pista en dos P03/075-UAC 110 secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 4 comprende : cuando la sección de pista superior contiene las posiciones de los cuarto pulsos de amplitud diferente de cero : dividir, además, la sección de pista superior en subsecciones de pista superior e inferior; identificar una de las subsecciones superior e inferior que contiene las posiciones de los dos o más pulsos de amplitud diferente de cero; calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la subaección de pista utilizando el procedimiento 2 aplicado a las posiciones de la subsección de pista; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista superior; y producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de P03/075-UAC 111 pista superior contiene las posiciones de loa tres pulsos de amplitud diferente de cero: calcular un primer subíndice de un pulso de amplitud diferente de cero situado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior; calcular un segundo subíndice de los tres pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; y producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud diferente de cero: calcular un primer subíndice de dos pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista inferior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en P03/075-UAC 112 la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista superior; y producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del otro pulso de amplitud diferente de cero: calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; calcular un segundo subíndice del pulso de amplitud diferente de cero restante situado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior; y producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud diferente de P03/075-UAC 113 cero : dividir, además, la sección de pista inferior en subsecciones de pista superior e inferior; identificar una de las subsecciones superior e inferior que contiene las posiciones de los dos o más pulsos de amplitud diferente de cero; calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la subsección de pista utilizando el procedimiento 2 aplicado a las posiciones de la subsección de pista; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista inferior; y producir un índice de posición-y-amplitud de los tres pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
24. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 23, en donde el procedimiento 4 comprende : - cuando la subsección de pista es la subsección superior, calcular un primer índice de dos o más pulsos de amplitud diferente de cero situados en una sección de la pista utilizando el procedimiento 2 que comprende desplazar P03/075-UAC 114 las posiciones de los dos o más pulsos de amplitud diferente de cero desde la subsección de pista superior a la subsección de pista inferior.
25. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 24, en donde desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la subsección superior a la subsección inferior, comprende enmascarar un número de bits menos significativos de los índices de posición de los dos o más pulsos de amplitud diferente de cero con una máscara que consiste del número de unos (1) .
26. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 23, en donde cuando X=5: dividir las posiciones de la pista en dos secciones de pista que comprende dividir las posiciones de la pista en secciones superior e inferior; y el procedimiento 5 comprende : detectar una de las secciones superior e inferior que contiene las posiciones donde se ubican tres o más pulsos de amplitud diferente de cero; calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista; P03/075-UAC 115 calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
27. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 23, en donde, cuando X=S: dividir las posiciones de la pista en dos secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 5 comprende: cuando la sección de pista superior contiene las posiciones de los cinco pulsos de amplitud diferente de cero : calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la P03/075-UAC 116 sección de pista superior; y producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero: calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud diferente de cero: P03/CH5-UAC 117 calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud diferente de cero: calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de P03/075-UAC 118 los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del otro pulso de amplitud diferente de cero: calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista; calcular un segundo subíndice de loa dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista y producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud diferente de cero : calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a P03/075-UAC 119 las posiciones de la sección de pista; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista; y producir un índice de poaición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
28. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 27, en donde, cuando X=6: dividir las posiciones de la pista en dos secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 6 comprende : cuando la sección de pista superior contiene las posiciones de los seis pulsos de amplitud diferente de cero : calcular un primer subíndice de los cinco pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el P03/075-UAC 120 procedimiento 1 aplicado a las posiciones de toda la sección de pista superior; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los cinco pulsos de amplitud diferente de cero: calcular un primer subíndice de cinco pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice del pulso de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los P03/075-UAC 121 otros cuatro pulsos de amplitud diferente de cero: calcular un primer subíndice de cuatro pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 4 aplicado a las posiciones de la sección de pista superior; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud diferente de cero: calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; calcular un segundo subíndice de los tres pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de toda la pista; y P03/075-UAC 122 producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición de los otros dos pulsos de amplitud diferente de cero: calcular un primer subíndice de los cuatro pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 4 aplicado a las posiciones de la sección de pista; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del pulso de amplitud diferente de cero restante: calcular un primer subíndice de los cinco P03/075-UAC 123 pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista; calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de toda la sección de pista; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; y cuando la sección de pista inferior contiene las posiciones de los seis pulsos de amplitud diferente de cero : calcular un primer subíndice de los cinco pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista; calcular un segundo subíndice del pulso de amplitud diferente de cero restante situados en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior; y producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los P03/075-UAC 124 subíndices primero y segundo.
29. Un dispositivo para vincular posiciones y amplitudes de pulso en un libro de códigos algebraicos, para la codificación y decodificación eficientes de una señal de sonido, - en donde: - el libro de códigos comprende un conjunto de combinaciones de amplitud/posición de pulso, - cada combinación de amplitud/posición de pulso define un número de diferentes posiciones, y que comprende ambos, pulsos de amplitud cero y pulsos de amplitud diferente de cero asignados a posiciones respectivas de la combinación; y - cada pulso de amplitud diferente de cero asume una de una pluralidad de posibles amplitudes; y - en donde el método para vincular comprende : medios para formar un conjunto de una o más pistas de estas posiciones de pulso; medios para restringir las posiciones de los pulsos de amplitud diferente de cero de las combinaciones del libro de códigos de acuerdo con el conjunto de una o varias pista de posiciones de pulso; medios para establecer un procedimiento 1 para vincular la posición y amplitud de un pulso de amplitud diferente de cero, cuando solamente la posición del pulso P03/075-UAC 125 de amplitud diferente de cero está situada en una pista del conjunto; medios para establecer un procedimiento 2 para vincular las posiciones y amplitudes de dos pulsos de amplitud diferente de cero cuando solamente las posiciones de los dos pulsos de amplitud diferente de cero están situadas en una pista del conjunto; y cuando las posiciones de un número X de pulsos de amplitud diferente de cero están situadas en una pista del conjunto, en donde = 3 : medios para dividir las posiciones de la pista en dos secciones; medios para usar un procedimiento X para vincular las posiciones y amplitudes de los X pulsos de amplitud diferente de cero, este procedimiento X comprende: medios para identificar en cual de las dos secciones de pista está situado cada pulso de amplitud diferente de cero; medios para calcular subíndices de los X pulsos de amplitud diferente de cero usando el procedimiento 1 y 2 establecidos en una o más de las secciones de pista y la pista completa; y medios para calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para P03/075-UAC 126 combinar los subíndices.
30. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, que comprende la intercalar de las posiciones de pulso de cada pista con las posiciones de pulso de las otras pistas.
31. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde calcular un índice de posición-y-amplitud de los X pulsos de amplitud diferente de cero comprende: medios para calcular uno o más índices intermedios, el índice produce medios que comprenden medios para combinar dos o más de los subíndices; y medios para calcular el índice de posición-y-amplitud de estos X pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices restantes y el o los índices intermedios .
32. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde el procedimiento 1 comprende medios para producir un índice de posición-y-amplitud que incluya un índice de posición que indique la posición del pulso de amplitud diferente de cero situado en una pista y, una amplitud que indique la amplitud del pulso de amplitud diferente de cero. P03/075-UAC 127
33. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 32, en donde el índice de posición comprende un primer grupo de bits y, el índice de amplitud comprende uno o más bits.
34. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 33, en el cual el o los bits del índice de amplitud es un bit de clasificación superior.
35. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 33, en donde la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1 y, en donde, el o loa bits del índice de amplitud es un bit de signo .
36. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde : la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1; y el procedimiento 1 comprende producir un índice de posición-y-amplitud del pulso de amplitud diferente de cero que tiene la forma: P03/075-UAC 128 en donde p es un índice de posición del pulso de amplitud diferente de cero en la pista, s es un índice de signo del pulso de amplitud diferente de cero y, 2M es el número de posiciones en la pista.
37. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 36, en donde el número de posiciones en la pista es 16 y, en donde el índice de posición-y-amplitud es un índice de 5 bits representado en el siguiente cuadro:
38. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde el procedimiento 2 comprende producir un índice de posición-y-amplitud que incluye: índices de primera y segunda posición que indican, respectivamente, las posiciones de los dos pulsos de amplitud diferente de cero en la pista; y un índice de amplitud que indica la amplitud de los dos pulsos de amplitud diferente de cero. 39. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 38, en donde, en el índice de posición-y-amplitud: el índice de amplitud comprende uno o más bits;
P03/075-UAC 129 el índice de primera posición comprende un primer grupo de bits; y el índice de segunda posición comprende un segundo grupo de bits. 40. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 39, en donde, en el índice de posición-y-amplitud ; el o los bits del índice de amplitud es un bit de clasificación superior; los bits del primer grupo son bits de clasificación intermedia; y los bits del segundo grupo son bits de clasificación inferior. 41. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 39, en donde la pluralidad de las amplitudes posibles de cada pulso de amplitud diferente de cero comprende +1 y -1 y, en donde, el o los bits del índice de amplitud es un bit de signo . 42. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 39, en donde el procedimiento 2 comprende: - cuando los dos pulsos tienen la misma amplitud: medios para producir un índice de amplitud que indica la amplitud del pulso de amplitud diferente de cero
P03/075-UAC 130 cuya posición se indica por el índice de primera posición; medios para producir un índice de primera posición que indica la posición menor de los pulsos de amplitud diferente de cero en la pista; medios para producir un índice de segunda posición que indica la posición mayor de los pulsos de amplitud diferente de cero en la pista; y - cuando los dos pulsos tienen diferentes amplitudes: medios para producir un índice de amplitud que indica la amplitud del pulso de amplitud diferente de cero cuya posición se indica por el índice de primera posición; medios para producir un índice de primera posición que indica la posición mayor de los dos pulsos de amplitud diferente de cero en la pista; y medios para producir un índice de segunda posición que indica la posición menor de los dos pulsos de amplitud diferente de cero en la pista. 43. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde el procedimiento 2 comprende, cuando la posición de un primer pulso de amplitud diferente de cero de índice de posición p0 e índice de signo s0 y, la poaición de un segundo pulso de amplitud diferente de cero de índice de posición p¿ e índice de signo s? están situadas en la pista del conjunto, se produce un índice de poaición-y-amplitud
P03/075-UAC 131 de los primero y segundo pulsos de amplitud diferente de cero de la forma:
Si <t? = <?1 Si p =Pi . Si Po=Pi Si s¾ ? s/
Si Po= i en donde 2M es el número de posiciones en la pista. 44. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 43, en donde el número de posiciones en la pista es 16 y, en donde el índice de posición-y-amplitud es un índice de 9 bits representado por el siguiente cuadro:
P03/075-UAC 132
45. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde, cuando X=3; medios para dividir las posiciones de la pista en dos secciones que comprenden dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 3 comprende: medios para identificar una de las secciones de pista superior e inferior que contiene las posiciones de dos o más pulsos de amplitud diferente de cero; medios para calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situado en la sección de la pista utilizando el procedimiento 2 aplicado a las posiciones de la sección de la pista; medios para calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de la sección de toda la pista; y medios para producir un índice de posición-y-amplitud de los tres pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los índices primero y segundo. 46. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 45, en donde:
P03/075-UAC 133 loa medios para calcular un primer índice de los dos o más pulsos de amplitud diferente de cero situados en una sección de la pista utilizando el procedimiento 2 comprenden, cuando la posición de los dos o más pulsos de amplitud diferente de cero está situada en la sección superior, medios para desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la sección superior a la sección inferior.
47. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 46, en donde los medios para desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la sección superior a la sección inferior, comprenden medios para enmascarar un número de bits menos significativos de los índices de posición de los dos o más pulsos de amplitud diferente de cero con una máscara que consiste del número de unos (1) .
48. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 45, en donde los medios para calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 2 comprenden medios para insertar un índice de sección que indique la sección de pista superior e inferior en la que se ubican los dos o más pulsos de amplitud diferente de P03/075-UAC 134 cero .
49. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 45, en donde el número de posiciones en la pista es 16 y, en donde el índice es un índice de 13 bits representado en el siguiente cuadro:
50. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 29, en donde : el procedimiento 1 comprende medios para producir un índice de posición-y-amplitud que incluyen un índice de posición que indique la posición del pulso de amplitud diferente de cero situado en una pista y, una amplitud que indique la amplitud del pulso de amplitud diferente de cero, en donde el índice de posición comprende un primer grupo de bits y, el índice de posición comprende uno o más bits . el procedimiento 2 comprende medios para producir un índice de posición-y-amplitud que incluye índices de primera y segunda posición que indican, respectivamente, P03/075-UAC 135 las posiciones de los dos pulsos de amplitud diferente de cero en la pista; y un índice de amplitud que indica la amplitud de los dos o más pulsos de amplitud diferente de cero, en donde el índice de amplitud comprende uno o más bits, el índice de la primera posición comprende un primer grupo de bits y, el índice de la segunda posición comprende un segundo grupo de bits; cuando X=3 : loa medios para dividir las posiciones de la pista en dos secciones comprenden dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 3 comprende: medios para identificar una de las secciones superior e inferior que contiene las posiciones de loa dos o más pulsos de amplitud diferente de cero; medios para calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 2 aplicado a la posición de la sección de pista; medios para calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de toda la pista; y medios para producir un índice de P03/07S-UAC 136 posición-y-amplitud de los tres pulsos de amplitud diferente de cero, los medios para producir comprenden medios para combinar los subíndices primero y segundo.
51. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 50, en donde , cuando X=4 : medios para dividir las posiciones de la pista en dos secciones que comprende medios para dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 4 comprende: cuando la sección de pista superior contiene las posiciones de los cuarto pulsos de amplitud diferente de cero : medios para dividir, además, la sección de pista superior en subsecciones de pista superior e inferior; medios para identificar una de las subsecciones superior e inferior que contiene las posiciones de los dos o más pulsos de amplitud diferente de cero ; medios para calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la subsección de pista utilizando el procedimiento 2 aplicado a las posiciones de la subsección de pista; P03/07S-UAC 137 medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los tres pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de un pulso de amplitud diferente de cero situado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior; medios para calcular un segundo subíndice de los tres pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; P03/075-UAC 138 cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de dos pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista inferior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del otro pulso de amplitud diferente de cero: medios para calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; P03/075-UAC 139 medios para calcular un segundo subíndice del pulso de amplitud diferente de cero restante situado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los cuarto pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero : medios para dividir, además, la sección de pista inferior en subsecciones de pista superior e inferior; medios para identificar una de las subsecciones superior e inferior que contiene las posiciones de los dos o más pulsos de amplitud diferente de cero; medios para calcular un primer subíndice de los dos o más pulsos de amplitud diferente de cero situados en la subsección de pista utilizando el procedimiento 2 aplicado a las posiciones de la subsección de pista; calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando P03/075-UAC 140 el procedimiento 2 aplicado a las posiciones de toda la sección de pista inferior; y medios para producir un índice de posición-y-amplitud de los tres pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
52. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 51, en donde el procedimiento 4 comprende : - cuando la subsección de pista es la subsección superior, los medios para calcular un primer índice de dos o más pulsos de amplitud diferente de cero situados en una sección de la pista utilizando el procedimiento 2 comprenden desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la subsección de pista superior a la subsección de pista inferior.
53. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 24, en donde los medios para desplazar las posiciones de los dos o más pulsos de amplitud diferente de cero desde la subsección superior a la subsección inferior, comprenden medios para enmascarar un número de bits menos significativos de los índices de posición de los dos o más pulsos de amplitud diferente de cero con una máscara que consiste del número de unos (1) . P03/075-UAC 141
54. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 51, en donde cuando X=5: los medios para dividir las posiciones de la pista en dos secciones de pista comprenden medios para dividir las posiciones de la pista en secciones superior e inferior; y el procedimiento 5 comprende : medios para detectar una de las secciones superior e inferior que contiene las posiciones donde se ubican tres o más pulsos de amplitud diferente de cero; medios para calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
55. Un dispositivo para vincular posiciones y amplitudes de pulso como se define en la reivindicación 51, P03/075-UAC 142 en donde, cuando X=5: los medios para dividir las posiciones de la pista en dos secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 5 comprende: cuando la sección de pista superior contiene las posiciones de los cinco pulsos de amplitud diferente de cero : medios para calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de ?03/0·75-??? 143 tres pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y medios para producir un índice de posición- P03/075-UAC 144 y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; Y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del otro pulso de amplitud diferente de cero: medios para calcular un primer subíndice de P03/075-UAC 145 los tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista; y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud diferente de cero : medios para calcular un primer subíndice de los tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista; y medios para producir un índice de posición-y-amplitud de los cinco pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para P03/075-UAC 146 combinar los subíndices primero y segundo.
56. Un método para vincular posiciones y amplitudes de pulso como se define en la reivindicación 55, en donde, cuando X=6 medios para dividir las posiciones de la pista en dos secciones que comprende dividir las posiciones de la pista en secciones de pista superior e inferior; y el procedimiento 6 comprende: cuando la sección de pista superior contiene las posiciones de los seis pulsos de amplitud diferente de cero : medios para calcular un primer subíndice de los cinco pulsos de amplitud diferente de cero situados en la sección de pista utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice del pulso de amplitud diferente de cero restante utilizando el procedimiento 1 aplicado a las posiciones de toda la sección de pista superior; y medios para producir un índice de posiciÓn-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene la posición de un pulso de amplitud diferente de cero y la sección de P03/075-UAC 147 pista superior contiene las posiciones de los cinco pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de cinco pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice del pulso de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros cuatro pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de cuatro pulsos de amplitud diferente de cero situados en la sección de pista superior utilizando el procedimiento 4 aplicado a las posiciones de la sección de pista superior; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes P03/075-UAC 148 situados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de toda la pista; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud diferente de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de tres pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista inferior; medios para calcular un segundo subíndice de los tres pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de toda la pista; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; - cuando la sección de pista inferior contiene las P03/075-UAC 149 posiciones de los cuatro pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición de los otros dos pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de los cuatro pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 4 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice de los dos pulsos de amplitud diferente de cero restantes situados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de toda la sección de pista; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud diferente de cero y la sección de pista superior contiene la posición del pulso de amplitud diferente de cero restante: medios para calcular un primer subíndice de los cinco pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice P03/075-UAC 150 del pulso de amplitud diferente de cero reatante utilizando el procedimiento 1 aplicado a las posiciones de toda la sección de pista; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo; y cuando la sección de pista inferior contiene las posiciones de los seis pulsos de amplitud diferente de cero: medios para calcular un primer subíndice de los cinco pulsos de amplitud diferente de cero situados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de la sección de pista; medios para calcular un segundo subíndice del pulso de amplitud diferente de cero restante situados en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior; y medios para producir un índice de posición-y-amplitud de los seis pulsos de amplitud diferente de cero, el índice produce medios que comprenden medios para combinar los subíndices primero y segundo.
57. Un sistema de comunicación celular, para poner en servicio una gran área geográfica dividida en una P03/075-UAC 151 pluralidad de celdas, que comprende: unidades móviles de transmisor/receptor; estaciones de base celulares, respectivamente situadas en las celdas; 5 medios para controlar la comunicación entre las estaciones de base celulares; un sub-sistema de comunicación inalámbrico bidireccional entre cada unidad móvil, situada en una célula y la estación de base celular de la celda, el subió sistema de comunicación inalámbrico bidireccional comprende en ambos, la unidad móvil y la estación de base celular (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal 15 vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en 20 donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito en cualquiera de las 25 reivindicaciones 29 a 56, para vincular posiciones y P03/075-UAC 152 amplitudes de pulso en el libro de códigos algebraicos, la señal vocal constituye la señal de sonido.
58. Un elemento celular de red, que comprende (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito en cualquiera de las reivindicaciones 29 a 56, para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos, la señal vocal constituye la señal de sonido.
59. Una unidad celular móvil de transmisor/receptor que comprende (a) un transmisor que incluye medios para codificar una señal vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal P03/075-UAC 153 codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito en cualquiera de las reivindicaciones 29 a 56, para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos, la señal vocal constituye la señal de sonido.
60. En un sistema de comunicación celular, para poner en servicio una gran área geográfica dividida en una pluralidad de celdas, y que comprende: unidades móviles de transmisor/receptor; estaciones de base celulares, respectivamente situadas en las celdas; y medios para controlar la comunicación entre las estaciones de base celulares ; un sub-sistema de comunicación inalámbrico bidireccional entre cada unidad móvil, situada en una célula y la estación de base celular de la celda, el subsistema de comunicación inalámbrico bidireccional comprende en ambos, la unidad móvil y la estación de base celular (a) un transmisor que incluye medios para codificar una señal P03/075-UAC 154 vocal y medios para transmitir la señal vocal codificada, y (b) un receptor que incluye medios para recibir una señal vocal codificada transmitida, y medios para decodificar la señal vocal codificada recibida; - en donde los medios de codificación de la señal vocal comprenden medios sensibles a la señal vocal, para producir parámetros de codificación de la señal vocal, y en donde los medios que producen los parámetros de codificación de la señal vocal comprenden medios para buscar un libro de códigos algebraicos, para producir al menos uno de los parámetros de codificación de la señal vocal, y un dispositivo descrito en cualquiera de las reivindicaciones 29 a 56, para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos, la señal vocal constituye la señal de sonido.
61. Un codificador, para codificar una señal de sonido, que comprende medios de procesamiento de la señal de sonido sensibles a la señal de sonido, para producir parámetros de codificación de la señal vocal, en donde los medios de procesamiento de la señal de sonido comprenden: medios para buscar un libro de códigos algebraicos para producir al menos uno de los parámetros de codificación de la señal vocal; y un dispositivo descrito en cualquiera de las reivindicaciones 29 a 56, para vincular posiciones y P03/075-UAC 155 amplitudes de pulso en el libro de códigos algebraicos.
62. Un decodificador, para sintetizar una señal de sonido en respuesta a parámetros de codificación de la señal de sonido, que comprende: medios de procesamiento del parámetro de codificación, sensibles a los parámetros de codificación de la señal de sonido, para producir una señal de excitación, en donde los medios de procesamiento del parámetro de codificación comprenden: un libro de códigos algebraicos sensible al menos a uno de los parámetros de codificación de la señal de sonido, para producir una porción de la señal de excitación; y un dispositivo descrito en cualquiera de las reivindicaciones 29 a 56, para vincular posiciones y amplitudes de pulso en el libro de códigos algebraicos; y medios de filtro de síntesis, para sintetizar la señal de sonido en respuesta a la señal de excitación. P03/07S-UAC
MXPA03004513A 2000-11-22 2001-11-22 Metodo y dispositivo para vincular posiciones y signos de pulso de vinculacion en libros de codigos algebraicos para codificacion eficiente de senales de banda ancha. MXPA03004513A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002327041A CA2327041A1 (en) 2000-11-22 2000-11-22 A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
PCT/CA2001/001675 WO2002043053A1 (en) 2000-11-22 2001-11-22 Indexing pulse positions and signs in algebraic codebooks for coding of wideband signals

Publications (1)

Publication Number Publication Date
MXPA03004513A true MXPA03004513A (es) 2004-12-03

Family

ID=4167763

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03004513A MXPA03004513A (es) 2000-11-22 2001-11-22 Metodo y dispositivo para vincular posiciones y signos de pulso de vinculacion en libros de codigos algebraicos para codificacion eficiente de senales de banda ancha.

Country Status (19)

Country Link
US (1) US7280959B2 (es)
EP (1) EP1354315B1 (es)
JP (1) JP4064236B2 (es)
KR (1) KR20020077389A (es)
CN (1) CN1205603C (es)
AT (1) ATE330310T1 (es)
AU (2) AU2002221389B2 (es)
BR (1) BR0107760A (es)
CA (1) CA2327041A1 (es)
DE (1) DE60120766T2 (es)
DK (1) DK1354315T3 (es)
ES (1) ES2266312T3 (es)
HK (1) HK1050262A1 (es)
MX (1) MXPA03004513A (es)
NO (1) NO20023252L (es)
PT (1) PT1354315E (es)
RU (1) RU2003118444A (es)
WO (1) WO2002043053A1 (es)
ZA (1) ZA200205695B (es)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508348B2 (en) 2010-06-24 2016-11-29 Huawei Technologies Co., Ltd. Pulse encoding and decoding method and pulse codec
US10153780B2 (en) 2007-04-29 2018-12-11 Huawei Technologies Co.,Ltd. Coding method, decoding method, coder, and decoder

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
US7249014B2 (en) * 2003-03-13 2007-07-24 Intel Corporation Apparatus, methods and articles incorporating a fast algebraic codebook search technique
EP1604354A4 (en) * 2003-03-15 2008-04-02 Mindspeed Tech Inc VOICE INDEX CONTROLS FOR CELP LANGUAGE CODING
WO2004090870A1 (ja) 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
JP4580622B2 (ja) * 2003-04-04 2010-11-17 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
JP4047296B2 (ja) * 2004-03-12 2008-02-13 株式会社東芝 音声復号化方法及び音声復号化装置
US7318035B2 (en) * 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
KR100651712B1 (ko) * 2003-07-10 2006-11-30 학교법인연세대학교 광대역 음성 부호화기 및 그 방법과 광대역 음성 복호화기및 그 방법
US20050050119A1 (en) * 2003-08-26 2005-03-03 Vandanapu Naveen Kumar Method for reducing data dependency in codebook searches for multi-ALU DSP architectures
KR100656788B1 (ko) * 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
US7571094B2 (en) * 2005-09-21 2009-08-04 Texas Instruments Incorporated Circuits, processes, devices and systems for codebook search reduction in speech coders
US7602745B2 (en) * 2005-12-05 2009-10-13 Intel Corporation Multiple input, multiple output wireless communication system, associated methods and data structures
JP3981399B1 (ja) * 2006-03-10 2007-09-26 松下電器産業株式会社 固定符号帳探索装置および固定符号帳探索方法
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
JP5241701B2 (ja) * 2007-03-02 2013-07-17 パナソニック株式会社 符号化装置および符号化方法
CN100530357C (zh) 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
JP5388849B2 (ja) * 2007-07-27 2014-01-15 パナソニック株式会社 音声符号化装置および音声符号化方法
CN100578619C (zh) 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
FR2934598B1 (fr) 2008-07-30 2012-11-30 Rhodia Poliamida E Especialidades Ltda Procede de fabrication de matrice polymerique thermoplastique
JP5223786B2 (ja) * 2009-06-10 2013-06-26 富士通株式会社 音声帯域拡張装置、音声帯域拡張方法及び音声帯域拡張用コンピュータプログラムならびに電話機
JP5002642B2 (ja) * 2009-11-09 2012-08-15 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
CN102623012B (zh) * 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
CN103620672B (zh) 2011-02-14 2016-04-27 弗劳恩霍夫应用研究促进协会 用于低延迟联合语音及音频编码(usac)中的错误隐藏的装置和方法
CA2903681C (en) 2011-02-14 2017-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Audio codec using noise synthesis during inactive phases
JP6110314B2 (ja) 2011-02-14 2017-04-05 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 整列したルックアヘッド部分を用いてオーディオ信号を符号化及び復号するための装置並びに方法
JP5800915B2 (ja) 2011-02-14 2015-10-28 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ オーディオ信号のトラックのパルス位置の符号化および復号化
KR101424372B1 (ko) 2011-02-14 2014-08-01 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 랩핑 변환을 이용한 정보 신호 표현
CA2827249C (en) 2011-02-14 2016-08-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for processing a decoded audio signal in a spectral domain
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
SG192748A1 (en) 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Linear prediction based coding scheme using spectral domain noise shaping
KR101562281B1 (ko) 2011-02-14 2015-10-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜지언트 검출 및 품질 결과를 사용하여 일부분의 오디오 신호를 코딩하기 위한 장치 및 방법
US9230554B2 (en) 2011-02-16 2016-01-05 Nippon Telegraph And Telephone Corporation Encoding method for acquiring codes corresponding to prediction residuals, decoding method for decoding codes corresponding to noise or pulse sequence, encoder, decoder, program, and recording medium
EP2763137B1 (en) * 2011-09-28 2016-09-14 LG Electronics Inc. Voice signal encoding method and voice signal decoding method
US9015044B2 (en) * 2012-03-05 2015-04-21 Malaspina Labs (Barbados) Inc. Formant based speech reconstruction from noisy signals
US9728200B2 (en) 2013-01-29 2017-08-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for adaptive formant sharpening in linear prediction coding
AU2014211486B2 (en) 2013-01-29 2017-04-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Noise filling without side information for CELP-like coders
ES2617314T3 (es) * 2013-04-05 2017-06-16 Dolby Laboratories Licensing Corporation Aparato de compresión y método para reducir un ruido de cuantización utilizando una expansión espectral avanzada
US9384746B2 (en) * 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
US10573326B2 (en) * 2017-04-05 2020-02-25 Qualcomm Incorporated Inter-channel bandwidth extension
CN110247714B (zh) * 2019-05-16 2021-06-04 天津大学 集伪装与加密于一体的仿生隐蔽水声通信编码方法及装置
CN117040663B (zh) * 2023-10-10 2023-12-22 北京海格神舟通信科技有限公司 一种用于估计宽带频谱噪底的方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
CA2010830C (en) * 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
US5701392A (en) 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
US5751903A (en) * 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE504397C2 (sv) * 1995-05-03 1997-01-27 Ericsson Telefon Ab L M Metod för förstärkningskvantisering vid linjärprediktiv talkodning med kodboksexcitering
US6393391B1 (en) * 1998-04-15 2002-05-21 Nec Corporation Speech coder for high quality at low bit rates

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10153780B2 (en) 2007-04-29 2018-12-11 Huawei Technologies Co.,Ltd. Coding method, decoding method, coder, and decoder
US10425102B2 (en) 2007-04-29 2019-09-24 Huawei Technologies Co., Ltd. Coding method, decoding method, coder, and decoder
US10666287B2 (en) 2007-04-29 2020-05-26 Huawei Technologies Co., Ltd. Coding method, decoding method, coder, and decoder
US9508348B2 (en) 2010-06-24 2016-11-29 Huawei Technologies Co., Ltd. Pulse encoding and decoding method and pulse codec
US9858938B2 (en) 2010-06-24 2018-01-02 Huawei Technologies Co., Ltd. Pulse encoding and decoding method and pulse codec
US10446164B2 (en) 2010-06-24 2019-10-15 Huawei Technologies Co., Ltd. Pulse encoding and decoding method and pulse codec

Also Published As

Publication number Publication date
HK1050262A1 (en) 2003-06-13
CN1395724A (zh) 2003-02-05
US20050065785A1 (en) 2005-03-24
AU2138902A (en) 2002-06-03
DE60120766D1 (de) 2006-07-27
ATE330310T1 (de) 2006-07-15
DE60120766T2 (de) 2007-06-14
AU2002221389B2 (en) 2006-07-20
US7280959B2 (en) 2007-10-09
EP1354315A1 (en) 2003-10-22
DK1354315T3 (da) 2006-10-16
ZA200205695B (en) 2003-04-04
WO2002043053A1 (en) 2002-05-30
JP2004514182A (ja) 2004-05-13
RU2003118444A (ru) 2004-12-10
BR0107760A (pt) 2002-11-12
KR20020077389A (ko) 2002-10-11
ES2266312T3 (es) 2007-03-01
CA2327041A1 (en) 2002-05-22
PT1354315E (pt) 2006-10-31
JP4064236B2 (ja) 2008-03-19
NO20023252L (no) 2002-09-12
NO20023252D0 (no) 2002-07-04
CN1205603C (zh) 2005-06-08
EP1354315B1 (en) 2006-06-14

Similar Documents

Publication Publication Date Title
MXPA03004513A (es) Metodo y dispositivo para vincular posiciones y signos de pulso de vinculacion en libros de codigos algebraicos para codificacion eficiente de senales de banda ancha.
JP4662673B2 (ja) 広帯域音声及びオーディオ信号復号器における利得平滑化
AU763471B2 (en) A method and device for adaptive bandwidth pitch search in coding wideband signals
US5778335A (en) Method and apparatus for efficient multiband celp wideband speech and music coding and decoding
AU2002221389A1 (en) Indexing pulse positions and signs in algebraic codebooks for coding of wideband signals
RU2316059C2 (ru) Способ и устройство для квантования усиления в широкополосном речевом кодировании с переменной битовой скоростью передачи
JPH10513571A (ja) スピーチ信号を高速符号化するための信号選択されたパルス振幅を備えた代数学的符号帳
JP2002526798A (ja) 複数チャネル信号の符号化及び復号化
Lee et al. Encoding of Speech Spectral Parameters Using Adaptive Vector-Scalar Quantization Methods for Mobile Communication Systems