ES2358213T3 - Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio. - Google Patents

Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio. Download PDF

Info

Publication number
ES2358213T3
ES2358213T3 ES06749340T ES06749340T ES2358213T3 ES 2358213 T3 ES2358213 T3 ES 2358213T3 ES 06749340 T ES06749340 T ES 06749340T ES 06749340 T ES06749340 T ES 06749340T ES 2358213 T3 ES2358213 T3 ES 2358213T3
Authority
ES
Spain
Prior art keywords
frame
information
code table
encoded
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06749340T
Other languages
English (en)
Inventor
Tian Wang
Kazuhito Koishida
Hosam A. Khalil
Xiaoqin Sun
Wei-Ge Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft 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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2358213T3 publication Critical patent/ES2358213T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Stereophonic System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Un flujo de bits que representa una señal de audio, que comprende información principal codificada para una trama actual (740) que hace referencia a un segmento de una trama previa; e información codificada redundante (760), caracterizado porque se selecciona el segmento de una trama previa para ser utilizado en la descodificación de la trama actual; y la información codificada redundante es para descodificar la trama actual, la información codificada redundante comprendiendo información del histórico de señal asociada con el segmento de referencia de la trama previa.

Description

Las técnicas y herramientas descritas se refieren a códecs (codificadores-descodificadores), y a codificación sub-banda, tablas de código, y/o codificación redundante.
ANTECEDENTES 5
Con el surgimiento de las redes de telefonía inalámbrica digital, las emisiones de audio en tiempo real sobre la red Internet, y la telefonía de Internet, el procesamiento digital y la distribución de la voz se han hecho habituales. Los ingenieros utilizan una variedad de técnicas para procesar eficientemente la voz manteniendo al mismo tiempo la calidad. Para comprender estas técnicas, resulta de ayuda comprender cómo la información de audio es representada y procesada en un ordenador. 10
I. Representación de la Información de Audio en un Ordenador
Un ordenador procesa información de audio como una serie de números que representan el audio. Un solo número puede representar una muestra de audio, que es un valor de amplitud en un momento concreto. Diversos factores afectan a la calidad del audio, incluyendo la profundidad de la muestra y la velocidad de muestreo.
La profundidad de la muestra (o precisión) indica el rango de números utilizados para representar una muestra. Más 15 valores posibles para cada muestra producen habitualmente una salida de calidad superior, debido a que pueden ser representadas variaciones más sutiles en la amplitud. Una muestra de ocho bits tiene 256 posibles valores, mientras que una muestra de 16 bits tiene 65 536 posibles valores.
La velocidad de muestreo (medida habitualmente como el número de muestras por segundo) afecta asimismo a la calidad. Cuanto mayor es la velocidad de muestreo, mayor es la calidad debido a que pueden ser representadas 20 más frecuencias de sonido. Algunas velocidades de muestreo habituales son 8000, 11 025, 22 050, 32 000, 44 100, 48 000 y 96 000 muestras/segundo (Hz). La tabla 1 muestra varios formatos de audio con diferentes niveles de calidad, junto con los correspondientes costes de velocidad binaria en bruto.
Tabla 1: Velocidades binarias para audio de diferentes calidades
25
Profundidad de la Muestra (bits/muestra)
Velocidad de Muestreo (muestras/segundo) Modo del Canal Velocidad binaria en Bruto (bits/segundo)
8
8 000 mono 64 000
8
11 025 mono 88 200
16
44 100 estéreo 1 411 200
Tal como muestra la tabla 1, el coste del audio de alta calidad es una velocidad binaria elevada. La información de audio de alta calidad consume grandes cantidades de almacenamiento informático y de capacidad de transmisión. Muchos ordenadores y redes informáticas carecen de los recursos para procesar el audio digital en bruto. La compresión (denominada asimismo codificación o cifrado) reduce el coste de almacenar y transmitir información de 30 audio, convirtiendo la información en una versión con velocidad binaria menor. La compresión puede ser sin pérdidas (en la cual no sufre la calidad) o con pérdidas (en la cual sufre la calidad, pero la reducción de la velocidad binaria a partir de la compresión sin pérdidas subsiguiente, es más dramática). La descompresión (denominada asimismo descodificación) extrae una versión reconstruida de la información original, a partir de la forma comprimida. Un códec es un sistema de codificador/descodificador. 35
II. Codificadores y Descodificadores de Voz
Un objetivo de la compresión de audio es representar digitalmente señales de audio para proporcionar una calidad de señal máxima para una cantidad de bits dada. Dicho de otra forma, este objetivo consiste en representar las
señales de audio con los mínimos bits para un nivel de calidad dado. Otros objetivos tales como la resistencia a errores de transmisión y la limitación del retardo global debido a la codificación/transmisión/descodificación, son de aplicación en algunos escenarios.
Diferentes clases de señales de audio tienen características diferentes. La música se caracteriza por rangos grandes de frecuencias y amplitudes, y a menudo incluye dos o más canales. Por otra parte, la voz se caracteriza por rangos 5 menores de frecuencias y amplitudes, y habitualmente se representa en un solo canal. Ciertos códecs y técnicas de procesamiento están adaptados para música y audio en general; otros códecs y técnicas de procesamiento están adaptados para voz.
Un tipo de códec de voz convencional utiliza predicción lineal para conseguir compresión. La codificación de la voz comprende varias etapas. El codificador halla y cuantifica coeficientes para un filtro de predicción lineal, que se 10 utiliza para predecir valores de muestra como combinaciones lineales de valores de muestra precedentes. Una señal residual (representada como una señal de "excitación") indica partes de la señal original no predichas con precisión mediante el filtrado. En algunas etapas, el códec de voz utiliza diferentes técnicas de compresión para segmentos con voz (caracterizados por la vibración de las cuerdas vocales), segmentos sin voz, y segmentos de silencio, puesto que las diferentes clases de discurso hablado tienen características diferentes. Habitualmente, los segmentos 15 con voz presentan patrones de expresión de la voz muy repetitivos, incluso en el dominio residual. Para segmentos con voz, el codificador consigue más compresión comparando la señal residual actual con ciclos residuales previos, y codificando la señal residual actual en términos de información de retardo o desfase relativa a los ciclos previos. El codificador trata otras discrepancias entre la señal original y la representación codificada, predicha, utilizando tablas de código diseñadas especialmente. 20
Muchos códecs de voz explotan de algún modo la redundancia temporal en una señal. Tal como se ha mencionado anteriormente, un método común utiliza predicción a largo plazo de parámetros de paso para predecir una señal de excitación actual en términos de retardo o desfase relativos a ciclos de excitación previos. Explotar la redundancia temporal puede mejorar sensiblemente la eficiencia de la compresión en términos de calidad y velocidad binaria, pero al coste de introducir en el códec una dependencia con la memoria (un descodificador depende de una parte, 25 descodificada previamente, de la señal para descodificar correctamente otra parte de la señal). Muchos códecs de voz eficientes tienen una dependencia significativa con la memoria.
Aunque los códecs de voz como los descritos anteriormente tienen un buen rendimiento global para muchas aplicaciones, tienen varios inconvenientes. En concreto, aparecen varios inconvenientes cuando los códecs de voz son utilizados junto con recursos de red dinámicos. En dichos escenarios, la voz codificada puede perderse debido a 30 una escasez temporal del ancho de banda, o a otros problemas.
A. Códecs de Banda Estrecha y de Banda Ancha
Muchos códecs de voz estándar fueron diseñados para señales de banda estrecha con una velocidad de muestreo de ocho kHz. Si bien la velocidad de muestreo de ocho kHz es adecuada en muchas situaciones, en otras situaciones pueden ser deseable velocidades de muestreo superiores, tal como para representar frecuencias 35 superiores.
Habitualmente, las señales de voz con velocidades de muestreo de, por lo menos, 16 kHz se denominan voz de banda ancha. Si bien estos códecs de banda ancha son deseables para representar patrones de voz de alta frecuencia, habitualmente requieren velocidades binarias superiores que los códecs de banda estrecha. Dichas velocidades binarias pueden no ser factibles en algunos tipos de redes o bajo ciertas condiciones de la red. 40
B. Dependencia Ineficiente de la Memoria en Condiciones de Red Dinámicas
Cuando la voz codificada está fallando, tal como por haberse perdido, retrasado, deteriorado o hacerse inutilizable por otra razón en el tránsito o en cualquier otro lugar, el rendimiento de los códecs de voz puede verse afectado debido a la dependencia de la memoria con la información perdida. La pérdida de información por una señal de excitación dificulta la reconstrucción posterior que depende de la señal perdida. Si se han perdido ciclos anteriores, 45 la información de desfase puede no ser útil, puesto que apunta a información que el descodificador no tiene. Otro ejemplo de dependencia con la memoria es la interpolación de coeficientes de filtro (utilizada para suavizar las transiciones entre diferentes filtros de síntesis, especialmente para señales con voz). Si se pierdan los coeficientes de filtro para una trama, los coeficientes de filtro para las tramas subsiguientes pueden tener valores incorrectos.
Los descodificadores utilizan diversas técnicas para ocultar errores debidos a pérdidas de paquetes y a otras 50 pérdidas de información, pero estas técnicas de ocultación rara vez ocultan los errores por completo. Por ejemplo, el descodificador repite parámetros anteriores o parámetros estimados, basándose en información de descodificada
correctamente. Sin embargo, la información de desfase puede ser muy sensible, y las técnicas anteriores no son especialmente eficaces para la ocultación.
En la mayor parte de los casos, los descodificadores se recuperan finalmente de los errores debidos a información perdida. Cuando son recibidos y descodificados los paquetes, los parámetros son ajustados gradualmente hacia sus valores correctos. Sin embargo, es probable que se degrade la calidad hasta que el descodificador pueda recuperar 5 el estado interno correcto. En muchos de los códecs de voz más eficientes, la calidad de la reproducción se degrada durante un periodo de tiempo prolongado (por ejemplo, hasta un segundo), provocando una gran distorsión y, a menudo, haciendo la voz ininteligible. Los tiempos de recuperación son más rápidos cuando se produce un cambio significativo, tal como una trama de silencio, puesto que esto proporciona un punto de reajuste natural para muchos parámetros. Algunos códecs son más robustos frente a pérdidas de paquetes debido a que eliminan sus 10 dependencias entre tramas. Sin embargo, dichos códecs requieren velocidades binarias significativamente superiores para conseguir la misma calidad de voz que el códec CELP tradicional con dependencias entre tramas.
Para tratar con las dependencias entre tramas, en la técnica anterior han sido propuestas varias soluciones.
El documento US 6 757 654 da a conocer datos redundantes incrustados en una trama, acerca de la trama anterior. Cuando se pierde una trama actual, los datos redundantes de la siguiente trama válida son utilizados para 15 reconstruir dicha trama actual. Esta solución no es utilizable en el caso de una trama anterior perdida, para descodificar una trama actual con dependencia a largo plazo sobre dicha trama anterior.
Otro documento, "A study of design compromises for speech coders in packet networks" ("un estudio de compromisos de diseño para codificadores de voz en redes por paquetes") , de R. Lefebvre y otros, PROCEEDINGS IEEE ICASSP' 04, 17 a 21 de mayo de 2004, páginas 265 a 268, da a conocer una solución que consiste en agrupar 20 para un paquete dado, datos en torno a parámetros ITU-T G.729 de tramas actuales y tramas anteriores. Sin embargo, dicho documento no da a conocer cómo proteger el contenido de la propia tabla de código adaptativo.
Dada la importancia de la compresión y la descompresión para representar señales de voz en sistemas informáticos, no sorprende que la compresión y la descompresión de voz hayan atraído recursos y actividad de estandarización. Sin embargo, cualesquiera que sean ventajas de las técnicas y herramientas anteriores, no poseen las ventajas de 25 las técnicas y herramientas descritas en el presente documento.
RESUMEN
Resumiendo, la invención se define mediante un flujo de bits acorde con la reivindicación 1, y métodos para el procesamiento de un flujo de bits acordes con las reivindicaciones 5 y 10.
BREVE DESCRIPCIÓN DE LOS DIBUJOS 30
La figura 1 es un diagrama de bloques de un entorno informático adecuado, en el que pueden ser implementadas una o más de las realizaciones descritas.
La figura 2 es un diagrama de bloques de un entorno de red con el cual pueden ser implementadas una o más de las realizaciones descritas.
La figura 3 es un gráfico que representa un conjunto de respuestas de frecuencia para una estructura de 35 sub-banda que puede ser utilizada para codificación de sub-banda.
La figura 4 es un diagrama de bloques de un codificador de banda de voz en tiempo real, junto con el cual pueden ser implementadas una o más de las realizaciones descritas.
La figura 5 es un diagrama de bloques que representa la determinación de parámetros de la tabla de código, en una implementación. 40
La figura 6 es un diagrama de bloques de un descodificador de banda de voz en tiempo real, junto con el cual pueden ser implementadas una o más de las realizaciones descritas.
La figura 7 es un diagrama de un histórico de señales de excitación, que incluye una trama actual y una parte re-codificada de una trama anterior.
La figura 8 es un diagrama de flujo que describe la determinación de parámetros de tabla de código para 45 una etapa de tabla de código aleatoria extra, en una implementación.
La figura 9 es un diagrama de bloques de un descodificador de banda de voz en tiempo real, que utiliza una etapa de tabla de código aleatoria extra.
La figura 10 es un diagrama de formatos de flujo de bits para tramas que comprenden información para diferentes técnicas de codificación redundante, que pueden ser utilizadas con algunas implementaciones.
La figura 11 es un diagrama de formatos de flujos de bits para paquetes que comprenden tramas con 5 información de codificación redundante, que pueden utilizarse con algunas implementaciones.
DESCRIPCIÓN DETALLADA
Las realizaciones descritas están dirigidas a técnicas y herramientas para el procesamiento de información de audio, en la codificación y la descodificación. Con estas técnicas se mejora la calidad de voz extraída de un códec de voz, tal como un códec de voz en tiempo real. Dichas mejoras pueden resultar de la utilización de varias técnicas y 10 herramientas por separado, o en combinación.
Dichas técnicas y herramientas pueden comprender la codificación y/o descodificación de sub-bandas utilizando técnicas de predicción lineal, tales como CELP.
Las técnicas pueden incluir asimismo tener múltiples etapas de tablas de código fijas, incluyendo tablas de código fijas de impulsos y/o aleatorias. El número de etapas de tabla de código puede variarse para maximizar la calidad 15 para una velocidad de bits data. Adicionalmente, una tabla de código adaptativo puede ser activada o desactivada, dependiendo de factores tales como la velocidad binaria deseada y las características de la trama o sub-trama actual.
Además, las tramas pueden comprender información codificada redundante para parte o la totalidad de una trama previa, de la cual depende la trama actual. Esta información puede ser utilizada por el descodificador para 20 descodificar la trama actual si se ha perdido la trama previa, sin que se requiera que la trama previa completa sea enviada múltiples veces. Dicha información puede ser codificada a la misma velocidad de bits que la trama actual o las previas, o a una velocidad de bits menor. Además, dicha información puede incluir información de tabla de código aleatoria, que aproxima la parte deseada de la señal de excitación, en lugar de una re-codificación completa de la parte deseada de la señal de excitación. 25
Aunque por simplicidad de la representación las operaciones para las diversas técnicas se describen en un orden concreto, secuencial, debe entenderse que este modo de descripción abarca reajustes menores en el orden de las operaciones, salvo que se requiera un orden concreto. Por ejemplo, en algunos casos las operaciones descritas secuencialmente pueden ser reordenadas o llevadas a cabo simultáneamente. Además, por simplicidad, los diagrama de flujo pueden no mostrar las diversas maneras de las cuales pueden utilizarse técnicas concretas junto 30 con otras técnicas.
I. Entorno Informático
La figura 1 ilustra un ejemplo generalizado de un entorno informático adecuado 100, en el cual pueden implementarse una o más de las realizaciones descritas. El entorno informático 100 no está concebido para sugerir ninguna limitación en cuanto al alcance de la utilización o la funcionalidad de la invención, puesto que la presente 35 invención puede ser implementada en entornos informáticos diversos, de propósito general o especializados.
Haciendo referencia a la figura 1, el entorno informático 100 comprende, por lo menos, una unidad de procesamiento 110 y una memoria 120. En la figura 1, esta configuración básica al máximo 130 está incluida en el interior de una línea de trazos. La unidad de procesamiento 110 ejecuta instrucciones ejecutadas por ordenador, y puede ser un procesador real o un procesador virtual. En un sistema de multi-procesamiento, múltiples unidades de 40 procesamiento ejecutan instrucciones ejecutables por ordenador para incrementar la potencia de procesamiento. La memoria 120 puede ser memoria volátil (por ejemplo registros, caché, RAM) o memoria no volátil (por ejemplo memoria ROM, EEPROM, flash, etc.), o alguna combinación de las dos. La memoria 120 almacena soporte lógico 180 que implementa codificación sub-banda, tablas de código de múltiples etapas y/o técnicas de codificación redundante para un codificador o descodificador de voz. 45
Un entorno informático 100 puede tener características adicionales. En la figura 1, el entorno informático 100 incluye almacenamiento 140, uno o más dispositivos de entrada 150, uno o más dispositivos de salida 160, y una o más conexiones de comunicación 170. Un mecanismo de interconexión (no mostrado) tal como un bus, un controlador o una red conecta entre sí los componentes del entorno informático 100. Habitualmente, un soporte lógico (no mostrado) de sistema operativo proporciona un entorno operativo para otro soporte lógico que se ejecuta en el 50 entorno informático 100, y coordina actividades de los componentes del entorno informático 100.
El almacenamiento 140 puede ser extraíble o no extraíble, y puede incluir discos magnéticos, cintas magnéticas o casetes, CD-ROMs, CD-RWs, DVDs, o cualquier otro medio que pueda ser utilizado para almacenar información y al que se pueda acceder en el interior del entorno informático 100. El almacenamiento 140 almacena instrucciones para soporte lógico 180.
El dispositivo o los dispositivos de entrada 150 pueden ser un dispositivo táctil de entrada tal como un teclado, un 5 ratón, un lápiz, o una bola de seguimiento, un dispositivo de escanear, un adaptador de red, u otro dispositivo que proporcione una entrada al entorno informático 100. Para el audio, el dispositivo o los dispositivos de entrada 150 pueden ser una tarjeta de sonido, un micrófono u otro dispositivo que acepte entradas de audio en forma analógica o digital, o un lector de CD/DVD que proporcione muestras de audio al entorno informático 100. El dispositivo o los dispositivos de salida 160 pueden ser una pantalla, una impresora, un altavoz, un grabador de CD/DVD, un 10 adaptador de red, u otro dispositivo que proporcione salidas desde el entorno informático 100.
La conexión o las conexiones de comunicación 170 permiten la comunicación sobre un medio de comunicación hasta otra entidad informática. El medio de comunicación transporta información tal como instrucciones legibles por ordenador, información de voz comprimida, u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características ajustadas o modificadas de manera que codifica 15 información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación comprenden técnicas cableadas o inalámbricas implementadas con portadoras eléctricas, ópticas, de RF, infrarrojas, acústicas u otras.
La invención puede describirse en el contexto general de los medios legibles por ordenador. Los medios legibles por ordenador son cualquier medio disponible al que se pueda acceder el interior de un entorno informático. A modo de ejemplo, y no de limitación, con el entorno informático 100, los medios legibles por ordenador incluyen la memoria 20 120, el almacenamiento 140, los medios de comunicación, y combinaciones de cualquiera de los anteriores.
La invención puede describirse en el contexto general de las instrucciones ejecutables por ordenador, tales como aquellas incluidas en módulos de programa, que son ejecutadas en un entorno informático sobre un procesador objetivo, real o virtual. En general, los módulos de programa incluyen rutinas, programas, librerías, objetos, clases, componentes, estructuras de datos, etc. que llevan a cabo tareas concretas o implementan tipos de datos abstractos 25 concretos. En diversas realizaciones, la funcionalidad de los módulos de programa puede combinarse o dividirse entre módulos de programa, a voluntad. Las instrucciones ejecutables por ordenador para los módulos de programa pueden ser ejecutadas en el interior de un entorno informático local o distribuido.
Por simplicidad en la presentación, la descripción detallada utiliza términos como "determinar", "generar", "ajustar" y "aplicar", para describir operaciones informáticas en un entorno informático. Estos términos son abstracciones de 30 alto nivel para operaciones llevadas a cabo por un ordenador, y no deben confundirse con actos realizados por un ser humano. Las operaciones informáticas reales correspondientes a estos términos varían dependiendo de la implementación.
II. Entorno de Red Generalizado y Códec de voz en Tiempo Real
La figura 2 es un diagrama de bloques de un entorno de red generalizado 200 junto con el cual pueden ser 35 implementadas una o más de las realizaciones descritas. Una red 250 separa varios componentes del lado del codificador, respecto de varios componentes del lado del descodificador.
Las funciones principales de los componentes del lado del codificador, y del lado del descodificador, son la codificación y la descodificación de voz, respectivamente. En el lado del codificador, una memoria intermedia de entrada 210 acepta y almacena la entrada 202 de voz. El codificador 230 de voz toma la entrada 202 de voz 40 procedente de la memoria intermedia de entrada 210, y la codifica.
En concreto, un divisor de tramas 212 divide las muestras de la entrada de voz 202 en tramas. En una implementación, las tramas son uniformemente de 20 ms de duración (160 muestras para una entrada de 8 kHz y 320 muestras para una entrada de 16 kHz). En otras implementaciones, las tramas tienen duraciones diferentes, son no uniformes o superpuestas, y/o la velocidad de muestreo de la entrada 202 es diferente. Las tramas pueden 45 organizarse en super-trama/trama, trama/sub-trama, u otra configuración para diferentes etapas de la codificación y la descodificación.
Un clasificador de tramas 214 clasifica las tramas de acuerdo con uno o más criterios, tales como la energía de la señal, la frecuencia del paso por cero, la ganancia de predicción a largo plazo, el diferencial de ganancia, y/u otros criterios para sub-tramas o para las tramas completas. Basándose en dichos criterios, el clasificador de tramas 214 50 clasifica las diferentes tramas en clases tales como silencio, sin voz, con voz, y transición (por ejemplo de sin voz, a con voz). Adicionalmente, las tramas pueden ser clasificadas dependiendo del tipo de codificación redundante, si la hay, que se utiliza para la trama. La clase de trama afecta a los parámetros que se calcularán para codificar la trama. Además, la clase de trama puede afectar a la resolución y a la resistencia a las pérdidas con las cuales se
codifican los parámetros, para proporcionar más resolución y más resistencia a las pérdidas, a parámetros y a clases de trama más importantes. Por ejemplo, las tramas de silencio son codificadas habitualmente a frecuencia muy baja, son muy simples de recuperar por ocultación si se pierden, y pueden no necesitar protección contra pérdida. Las tramas sin voz son codificadas habitualmente a una frecuencia ligeramente superior, son razonablemente sencillas de recuperar por ocultación si se pierden, y no están protegidas significativamente contra 5 pérdidas. Las tramas de voz y de transición son codificadas habitualmente con más bits, dependiendo de la complejidad de la trama así como de la presencia de transiciones. Las tramas con voz y de transición son asimismo difíciles de recuperar si se pierden, y por lo tanto están más significativamente protegidas contra pérdida. Alternativamente, el clasificador de tramas 214 utiliza otras clases de tramas y/o clases de tramas adicionales.
La señal de voz de entrada puede ser dividida en señales sub-banda antes de la aplicación de un modelo de 10 codificación, tal como el modelo de codificación CELP, a la información sub-banda para una trama. Esto puede realizarse utilizando una serie de uno o más bancos de filtros de análisis (tales como los filtros de análisis QMF) 216. Por ejemplo, si va a utilizarse una estructura tribanda, entonces la banda de baja frecuencia puede ser separada haciendo pasar la señal a través de un filtro de paso bajo. Análogamente, la banda alta puede ser separada haciendo pasar la señal a través de un filtro de paso alto. La banda media puede ser separada haciendo pasar la 15 señal a través de un filtro de paso banda, que puede incluir un filtro de paso bajo y un filtro de paso alto en serie. Alternativamente, puede ser utilizados otros tipos de disposiciones de filtro para la descomposición sub-banda y/o la sincronización del filtrado (por ejemplo, antes de la separación de tramas). Si para una parte de la señal va a ser descodificada solamente una banda, esa parte puede puentear los bancos de filtro de análisis 216. La codificación CELP tiene habitualmente una eficiencia de codificación mayor que ADPCM y MLT para señales de voz. 20
El número de bandas n puede ser determinado por la velocidad de muestreo. Por ejemplo, en una implementación, se utiliza una estructura de una sola banda para una velocidad de muestreo de 8 kHz. Para velocidades de muestreo de 16 kHz y 22,05 kHz, puede utilizarse una estructura de tres bandas tal como se muestra en la figura 3. En la estructura de tres bandas de la figura 3, la banda de baja frecuencia 310 se extiende hasta la mitad del ancho de banda completo F (desde 0 hasta 0,5F). La otra mitad del ancho de banda está dividida en partes iguales entre la 25 banda media 320 y la banda alta 330. Cerca de las intersecciones de las bandas, la respuesta de frecuencia para una banda puede reducirse gradualmente desde el nivel de paso hasta el nivel de parada, lo que se caracteriza por una atenuación de la señal en ambos lados cuando se aproxima la intersección. Pueden utilizarse asimismo otras divisiones del ancho de banda de frecuencias. Por ejemplo, para la velocidad de muestreo de 32 kHz, puede utilizarse una estructura de cuatro bandas separadas a la misma distancia. 30
Habitualmente, la banda de baja frecuencia es la banda más importante para señales de voz, debido a que la energía de la señal decae habitualmente hacia los rangos de frecuencias superiores. Por consiguiente, la banda de baja frecuencia se codifica a menudo utilizando más bits que las otras bandas. En comparación con la estructura de codificación de una sola banda, la estructura de sub-bandas es más flexible, y permite un control mejor de la distribución de bits/ruido de cuantificación a través de las bandas de frecuencia. Por consiguiente, se considera que 35 se mejora significativamente la calidad perceptual de la voz utilizando la estructura de sub-bandas.
En la figura 2, cada sub-banda se codifica por separado, tal como se ilustra mediante los componentes de codificación 232, 234. Si bien los componentes 232, 234 de codificación de banda se muestran por separado, la codificación de todas las bandas puede realizarse mediante un solo codificador, o pueden ser codificadas por codificadores diferentes. Dicha codificación de bandas se describe en mayor detalle a continuación, haciendo 40 referencia a la figura 4. Alternativamente, el códec puede funcionar como un códec de una sola banda.
La voz codificada resultante se proporciona al soporte lógico para una o más capas 240 de conexión en red, a través de un multiplexor ("MUX") 236. Las capas de conexión en red 240 procesan la voz codificada para su transmisión sobre la red 250. Por ejemplo, el soporte lógico de las capas de red empaqueta tramas de información de voz codificada, en paquetes que siguen el protocolo RTP, que son transmitidos sobre la red Internet utilizando UDP, IP, y 45 varios protocolos de capa física. Alternativamente, se utilizan capas de soporte lógico diferentes y/o adicionales o protocolos de conexión en red diferentes y/o adicionales. La red 250 es una red de área extendida, por conmutación de paquetes, tal como la red Internet. Alternativamente, la red 250 es una red de área local u otra clase de red.
En el lado del descodificador, el soporte lógico para una o más capas de conexión en red 260 recibe y procesa los datos transmitidos. El soporte lógico y los protocolos de red, de transporte y de las capas superiores, en la capa o 50 las capas de conexión en red 260 del lado del descodificador, se corresponden habitualmente con aquellos de la capa o las capas de conexión en red 240 del lado del codificador. La capa o las capas de conexión en red proporcionan la información de voz codificada al descodificador 270 de voz, a través de un desmultiplexor ("DEMUX") 276. El descodificador 270 descodifica cada una de las sub-bandas por separado, tal como se representa en los módulos de descodificación 272, 274. Todas las sub-bandas pueden ser descodificadas por un 55 solo descodificador, o pueden ser descodificadas por descodificadores de banda diferentes.
A continuación, las sub-bandas descodificadas son sintetizadas en una serie de uno o más bancos de filtros de síntesis (tales como filtros de síntesis QMF) 280, que entregan la voz descodificada 292. Alternativamente, son
utilizados otros tipos de disposiciones de filtro para síntesis sub-banda. Si está presente solamente una banda, entonces la banda descodificada puede puentear los bancos de filtros 280.
La salida de voz descodificada 292 se puede pasar asimismo a través de uno o más filtros posteriores 284 para mejorar la calidad de la salida de voz filtrada resultante 294. Asimismo, cada banda se puede pasar por separado a través de uno o más filtros posteriores antes de entrar en los bancos de filtros 280. 5
Haciendo referencia a la figura 6, se describe a continuación un descodificador generalizado de banda de voz en tiempo real, pero pueden utilizarse en su lugar otros descodificadores de voz. Adicionalmente, parte o la totalidad de las herramientas y técnicas descritas pueden ser utilizadas con otros tipos de codificadores y descodificadores de audio, tales como codificadores y descodificadores de música, o codificadores y descodificadores de audio de propósito general. 10
Aparte de estas funciones principales de codificación y descodificación, los componentes pueden asimismo compartir (mostrado en líneas de trazos en la figura 2) información para controlar la velocidad, la calidad y/o la resistencia a pérdidas de voz codificada. El controlador 220 de la velocidad considera una serie de factores tales como la complejidad de la entrada actual en la memoria intermedia de entrada 210, el llenado de memoria intermedia para las memorias intermedias de salida en el codificador 230 o en otro lugar, la velocidad de salida 15 deseada, el ancho de banda actual de la red, las condiciones de congestión/ruido de la red y/o la velocidad de pérdidas del descodificador. El descodificador 270 retroalimenta la información de la velocidad de pérdidas del descodificador, al controlador 220 de la velocidad. La capa o las capas de conexión en red 240, 260 reúnen o estiman información del ancho de banda de la red y de las condiciones de congestión/ruido, la cual es retroalimentada al controlador 220 de la velocidad. Alternativamente, el controlador 220 de la velocidad considera 20 factores diferentes y/o adicionales.
El controlador 220 de la velocidad dirige el codificador de voz 230 para cambiar la frecuencia, la calidad y/o la resistencia a pérdidas, con las cuales es codificada de voz. El codificador 230 puede cambiar la frecuencia y la calidad ajustando factores de cuantificación para parámetros, o cambiando la resolución de los códigos de entropía que representan los parámetros. Adicionalmente, el codificador puede cambiar la resistencia a pérdidas ajustando la 25 frecuencia o el tipo de codificación redundante. Por lo tanto, el codificador 230 puede cambiar la asignación de bits entre las funciones de codificación principales y las funciones de resistencia a las pérdidas, dependiendo de las condiciones de la red.
El controlador 220 de la velocidad puede determinar modos de codificación para cada sub-banda de cada trama basándose en varios factores. Estos factores pueden incluir las características de señal de cada sub-banda, el 30 histórico de la memoria intermedia del flujo de bits, y la velocidad binaria objetivo. Por ejemplo, tal como se ha discutido anteriormente, habitualmente se necesitan menos bits para tramas más simples, tales como tramas sin voz y tramas en silencio, y se necesitan más bits para tramas más complejas, tales como tramas de transición. Adicionalmente, pueden ser necesarios menos bits para algunas bandas, tales como las bandas de alta frecuencia. Además, si la velocidad binaria promedio en la memoria intermedia del histórico del flujo de bits es menor que la 35 velocidad binaria promedio objetivo, puede utilizarse una velocidad binaria superior para la trama actual. Si la velocidad binaria promedio es menor que la velocidad binaria promedio objetivo, entonces puede escogerse una velocidad binaria menor para la trama actual con objeto de reducir la velocidad binaria promedio. Adicionalmente, dichas una o más bandas pueden ser omitidas de una o más tramas. Por ejemplo, las tramas de frecuencia media y alta pueden ser omitidas para tramas sin voz, o pueden ser omitidas para todas las tramas durante un periodo de 40 tiempo con objeto de reducir la velocidad binaria durante ese tiempo.
La figura 4 es un diagrama de bloques de un codificador de banda de voz generalizado 400, con el cual pueden ser implementadas una o más de las realizaciones descritas. El codificador de banda 400 corresponde, en general, a cualquiera de los componentes de codificación de banda 232, 234 de la figura 2.
El codificador de banda 400 acepta la entrada de banda 402 procedente de los bancos de filtros (u otros filtros) si la 45 señal (por ejemplo, la trama actual) está dividida en múltiples bandas. Si la trama actual no está dividida en múltiples bandas, entonces la entrada de banda 400 incluye muestras que representan todo el ancho de banda. El codificador de banda produce la salida de banda codificada 492.
Si una señal está dividida en múltiples bandas, entonces un componente 420 de diezmado puede llevar a cabo el diezmado en cada banda. Como ejemplo, si la velocidad de muestreo se fija a 16 kHz y cada trama dura 20 ms, 50 entonces cada trama incluye 320 muestras. Si no se llevase a cabo diezmado y cada trama fuera dividida en la estructura de tres bandas mostrada en la figura 3, entonces para la trama serían codificadas y descodificadas tres veces el número de muestras (es decir, 320 muestras por banda, o 960 muestras en total). Sin embargo, cada banda puede ser sometida a diezmado. Por ejemplo, la banda de baja frecuencia 310 puede ser diezmada de 320 muestras a 160 muestras, y cada una de la banda media 320 y la banda alta 330 puede ser diezmada de 320 55 muestras a 80 muestras, donde las bandas 310, 320, 330 se extienden sobre la mitad, un cuarto, y un cuarto del rango de frecuencias, respectivamente (el grado de diezmado 420 en esta implementación varía en relación con el
rango de frecuencia de las bandas 310, 320, 330). No obstante, son posibles otras implementaciones. En las etapas posteriores, habitualmente se utilizan menos bits para las bandas superiores debido a que la energía de la señal habitualmente se reduce hacia los rangos de frecuencias superiores.) Por consiguiente, esto proporciona un total de 320 muestras a codificar y descodificar para la trama.
Se considera que incluso con este diezmado de cada banda, el códec de sub-banda puede producir una salida de 5 calidad de la voz superior que un códec de una sola banda, debido a que es más flexible. Por ejemplo, puede ser más flexible controlando el ruido de cuantificación en un esquema por banda, en lugar de utilizar el mismo enfoque para todo el espectro de frecuencias. Cada una de las múltiples bandas pueden ser codificadas con propiedades diferentes (tales como diferentes números y/o diferentes tipos de etapas de tabla de código, tal como se explica a continuación). Dichas propiedades pueden determinarse mediante el control de la velocidad discutido anteriormente, 10 en base a diversos factores, que incluyen la características de señal de cada sub-banda, el histórico de memoria intermedia del flujo de bits y la velocidad binaria objetivo. Tal como se ha discutido anteriormente, habitualmente se requieren menos bits para tramas "simples", tales como tramas sin voz y tramas de silencio, y se requieren más bits para tramas "complejas", tales como tramas de transición. Si la velocidad binaria promedio en la memoria intermedia del histórico del flujo de bits es menor que la velocidad binaria promedio objetivo, puede utilizarse una velocidad 15 binaria superior para la trama actual. De lo contrario, se escoge una velocidad binaria inferior para reducir la velocidad binaria promedio. En un códec sub-banda, cada banda puede caracterizarse de este modo y ser codificada correspondientemente, en lugar de caracterizar todo el espectro de frecuencias del mismo modo. Adicionalmente, el control de la velocidad puede reducir la velocidad binaria mediante omitir una o más de las bandas de frecuencia superior durante una o más tramas. 20
El componente 430 de análisis LP calcula coeficientes de predicción lineal 432. En una implementación, el filtro LP utiliza diez coeficientes para una entrada de 8 kHz y dieciséis coeficientes para una entrada de 16 kHz, y el componente 430 de análisis LP calcula un conjunto de coeficientes predicción lineal por trama, para cada banda. Alternativamente, el componente 430 de análisis LP calcula dos conjuntos de coeficientes por trama para cada banda, uno para cada una de dos ventanas centradas en posiciones diferentes, o calcula un número diferente de 25 coeficientes por banda y/o por trama.
El componente 435 de procesamiento LPC recibe y procesa los coeficientes de predicción lineal 432. Habitualmente, el componente 435 de procesamiento LPC convierte valores LPC a una representación diferente para una cuantificación y una codificación más eficientes. Por ejemplo, el componente 435 de procesamiento LPC convierte valores LPC a una representación de par espectral lineal ["LSP", line spectral pair], y los valores LSP son 30 cuantificados (tal como por cuantificación vectorial) y codificados. Los valores LSP pueden ser intra-codificados o predichos a partir de otros valores LSP. Son posibles diversas representaciones, técnicas de cuantificación y técnicas de codificación para los valores LPC. Los valores LPC se proporcionan de alguna forma, como parte de la salida 492 de banda codificada para paquetización y transmisión (junto con cualesquiera parámetros de cuantificación y otra información necesaria para la reconstrucción). Para su utilización posterior en el codificador 35 400, el componente 435 de procesamiento LPC reconstruye los valores LPC. El componente 435 de procesamiento LPC puede llevar a cabo una interpolación para valores LPC (tal como, equivalentemente, en la representación LSP o en otra representación) para suavizar las transiciones entre conjuntos diferentes de coeficientes LPC, o entre los coeficientes LPC utilizados para diferentes sub-tramas o tramas.
El filtro 440 de síntesis (o "predicción a corto plazo") acepta valores LPC reconstruidos 438 y los incorpora al filtro. El 40 filtro 440 de síntesis recibe una señal de excitación y produce una aproximación de la señal original. Para una trama dada, el filtro 440 de síntesis puede almacenar en memoria intermedia una serie de muestras reconstruidas (por ejemplo, diez para un filtro de diez coeficientes) de la trama anterior, para el comienzo de la predicción.
Los componentes 450, 455 de ponderación perceptual aplican ponderación perceptual a la señal original y a la salida modelada del filtro 440 de síntesis para quitar énfasis selectivamente a la estructura que compone las señales 45 de voz, con objeto de hacer los sistemas auditivos menos sensibles a los errores de cuantificación. Los componentes 450, 455 de ponderación perceptual explotan fenómenos psicoacústicos tales como el enmascaramiento. En una implementación, los componentes 450, 455 de ponderación perceptual aplican ponderaciones en función de los valores LPC originales 432 recibidos desde el componente 430 de análisis LP. Alternativamente, los componentes 450, 455 de ponderación perceptual aplican otras ponderaciones y/o 50 ponderaciones adicionales.
A continuación de los componentes 450, 455 de ponderación perceptual, el codificador 400 calcula la diferencia entre la señal original ponderada de manera perceptual y la salida ponderada de manera perceptual del filtro 440 de síntesis, para producir una señal diferencial 434. Alternativamente, el codificador 400 utiliza una técnica diferente para calcular los parámetros de voz. 55
El componente 460 de parametrización de excitación intenta hallar la mejor combinación de índices de tabla de código adaptativo, de índices de tabla de código fija y de índices de tabla de código de ganancia, en términos de minimizar la diferencia entre la señal original ponderada perceptualmente y la señal sintetizada (en términos de error
cuadrático medio ponderado, o de otro criterio). Se calculan muchos parámetros por sub-trama, pero de manera más general los parámetros pueden ser por super-trama, por trama o por sub-trama. Tal como se ha discutido anteriormente, los parámetros para bandas diferentes de una trama o de una sub-trama puede ser diferentes. La tabla 2 muestra los tipos disponibles de parámetros para clases de trama diferentes, en una implementación.
Tabla 2: Parámetros para diferentes clases de trama 5
Clase de trama
Parámetro(s)
Silencio
Información de clase; LSP; ganancia (por trama, para el ruido generado)
Sin voz
Información de clase; LSP; parámetros de tabla de código de impulsos, aleatoria y de ganancia
Con voz
Información de clase; LSP; parámetros de la tabla de código adaptativo, de impulsos, aleatoria y de ganancia (por sub-trama)
Transición
En la figura 4, el componente 460 de parametrización de excitación divide la trama en sub-tramas y calcula índices de tabla de códigos y ganancias para cada sub-trama, según corresponda. Por ejemplo, el número y el tipo de etapas de tabla de código a utilizar, y las resoluciones de los índices de tabla de código, pueden determinarse inicialmente mediante un modo de codificación, donde el modo puede estar dictado por el componente de control de la velocidad, discutido anteriormente. Un modo concreto puede indicar asimismo parámetros de codificación y 10 descodificación diferentes respecto del número y el tipo de etapas de tabla de código, por ejemplo, la resolución de los índices de la tabla de código. Los parámetros de cada etapa de tabla de código se determinan optimizando los parámetros para minimizar el error entre una señal objetivo y la contribución de dicha etapa de tabla de código a la señal sintetizada. (Tal como se utiliza en el presente documento, el término "optimizar" significa encontrar una solución adecuada bajo limitaciones aplicables tales como la reducción de la distorsión, el tiempo de búsqueda del 15 parámetro, la complejidad de búsqueda del parámetro, la velocidad binaria de los parámetros, etc., frente a llevar a cabo una búsqueda completa en el espacio de parámetros. Análogamente, el término "minimizar" debe entenderse en términos de encontrar una solución adecuada bajo limitaciones aplicables.) Por ejemplo, la optimización puede realizarse utilizando una técnica de error cuadrático medio modificada. La señal objetivo para cada etapa es la diferencia entre la señal residual y la suma de las contribuciones de las etapas de tabla de código anteriores, si las 20 hay, a la señal sintetizada. Alternativamente, pueden utilizarse otras técnicas de optimización.
La figura 5 muestra una técnica para determinar parámetros de tabla de código, de acuerdo con una implementación. El componente 460 de parametrización de la excitación lleva a cabo la técnica, potencialmente junto con otros componentes tales como un controlador de la velocidad. Alternativamente, lleva a cabo la técnica otro componente en un codificador. 25
Haciendo referencia a la figura 5, para cada sub-trama en una trama de voz o de transición, el componente 460 de parametrización de la excitación determina 510 si puede ser utilizada una tabla de código adaptativa para la sub-trama actual. (Por ejemplo, el control de la velocidad puede imponer que no se va a utilizar ninguna tabla de código adaptativa para una trama concreta.) Si no se va a utilizar la tabla de código adaptativa, entonces un conmutador de tabla de código adaptativa indicará que no van a utilizarse 535 tablas de código adaptativas. Por ejemplo, esto 30 podría realizarse activando un indicador de un bit en el nivel de trama, que indica que no se utilizan tablas de código adaptativas en la trama, mediante especificar un modo de codificación concreto en el nivel de trama, o activando un indicador de un bit para cada sub-trama que indica que no se utiliza ninguna tabla de código adaptativa en la sub-trama.
Por ejemplo, el componente de control de la velocidad puede excluir la tabla de código adaptativa para una trama, 35 eliminando de ese modo la dependencia más significativa con la memoria entre tramas. En concreto para tramas con voz, una señal de excitación típica está caracterizada por un patrón periódico. La tabla de código adaptativa incluye un índice que representa un desfase que indica la posición de un segmento de excitación en la memoria intermedia del histórico. El segmento de excitación anterior se escala, para ser la contribución de la tabla de código adaptativa a la señal de excitación. En el descodificador, la información de la tabla de código adaptativa es, 40 habitualmente, muy significativa en la reconstrucción de la señal de excitación. Si se ha perdido la trama previa y el índice de la tabla de código adaptativa apunta hacia atrás a un segmento de la trama previa, entonces normalmente no es útil el índice de la tabla de código adaptativa, debido a que apunta a una información de histórico inexistente. Incluso si se realizan técnicas de ocultación para recuperar esta información perdida, la reconstrucción futura estará asimismo basada en la señal recuperada de manera imperfecta. Esto provocará que prosiga el error en las trama 45 siguientes, debido a que la información de desfase es sensible habitualmente.
Por consiguiente, la pérdida de un paquete del que depende una siguiente tabla de código adaptativa, puede conducir a una degradación extendida que se desvanece solamente después de que han sido descodificados muchos paquetes, o cuando se encuentra una trama sin una tabla de código adaptativa. Este problema puede reducirse insertando regularmente las denominadas "intra-tramas" en el flujo de paquetes, que no tienen dependencia de memoria entre tramas. De este modo, los errores se propagarán solamente hasta la siguiente intra-5 trama. Por consiguiente, existe un compromiso entre una mejor calidad de la voz y una mejor característica de pérdida de paquetes, debido a que la eficiencia de codificación de la tabla de código adaptativa es, habitualmente, superior que la de las tablas de código fijas. El componente de control de la velocidad puede determinar cuándo resulta ventajoso prohibir tablas de código adaptativas para una trama concreta. El conmutador de tabla de código adaptativa puede ser utilizado para impedir la utilización de tablas de código adaptativas para una trama concreta, 10 eliminando de ese modo la que, habitualmente, es la dependencia más significativa con las tramas anteriores (la interpolación LPC y la memoria de filtro de síntesis pueden asimismo depender en alguna medida de las tramas anteriores). Por lo tanto, el conmutador de la tabla de código adaptativa puede ser utilizado por el componente de control de la velocidad para crear una quasi-intra-trama basada dinámicamente en factores tales como la velocidad de pérdidas de paquetes (es decir, cuando la velocidad de pérdidas de paquetes es elevada, pueden ser insertadas 15 más intra-tramas para permitir un reseteo más rápido de la memoria).
También haciendo referencia a la figura 5, si puede utilizarse una tabla de código adaptativa, entonces el componente 460 determina los parámetros de la tabla de código adaptativa. Dichos parámetros incluyen un índice, un valor de paso, que indica un segmento deseado del histórico de la señal de excitación, así como una ganancia para aplicar al segmento deseado. En las figuras 4 y 5, el componente 460 lleva a cabo una búsqueda 520 de paso 20 en bucle cerrado. La búsqueda comienza con el paso determinado por el componente opcional 425 de búsqueda del paso en bucle abierto, de la figura 4. Un componente 425 de búsqueda del paso en bucle abierto analiza la señal ponderada producida por el componente 450 de ponderación, para estimar su paso. Comenzando con este paso estimado, la búsqueda 520 del paso en bucle abierto optimiza el valor de paso para reducir el error entre la señal objetivo y la señal sintetizada ponderada, generada a partir de un segmento indicado del histórico de la señal de 25 excitación. Se optimiza asimismo 525 el valor de ganancia de la tabla de código adaptativa. El valor de ganancia de la tabla de código adaptativa indica un multiplicador a aplicar a los valores de paso predichos (los valores a partir del segmento indicado del histórico de la señal de excitación), para ajustar la escala de los valores. La ganancia multiplicada por los valores de paso predichos es la contribución de la tabla de código adaptativa a la señal de excitación para la trama o sub-trama actual. La optimización 525 de la ganancia produce un valor de ganancia y un 30 valor de índice que minimizan en el error entre la señal objetivo y la señal sintetizada ponderada a partir de la contribución de la tabla de código adaptativa.
Después de que se han determinado los valores de paso y de ganancia, se determina entonces 530 si la contribución de la tabla de código adaptativa es lo suficientemente significativa para que merezca la pena el número de bits utilizados por los parámetros de la tabla de código adaptativa. Si la ganancia de la tabla de código adaptativa 35 es menor que un umbral, la tabla de código adaptativa es desconectada para reservar los bits para las tablas de código fijas discutidas a continuación. En una implementación, se utiliza un valor umbral de 0,3, aunque pueden alternativamente utilizarse como umbral otros valores. A modo de ejemplo, si el modo de codificación actual utiliza la tabla de código adaptativa más una tabla de código de impulsos con cinco impulsos, entonces puede ser utilizada una tabla de código de siete impulsos cuando la tabla de código adaptativa esté desconectada, y el número total de 40 bits seguiría siendo igual o menor. Tal como se ha discutido anteriormente, puede utilizarse un indicador de un bit para cada sub-trama con objeto de indicar el conmutador de tabla de código adaptativa para la sub-trama. Por lo tanto, si no se utiliza la tabla de código adaptativa, se activa el conmutador para indicar que no se utiliza tabla de código adaptativa en la sub-trama 535. Análogamente, si se utiliza la tabla de código adaptativa, se ajusta el conmutador para indicar que se utiliza la tabla de código adaptativa en la sub-trama y se señalizan 540 los 45 parámetros de la tabla de código adaptativa en el flujo de bits. Aunque la figura 5 muestra la señalización después de la determinación, alternativamente, las señales se agrupan en lotes hasta que la técnica finaliza para una trama o super-trama.
El componente 460 de parametrización de la excitación determina asimismo 550 si se utiliza una tabla de código de impulsos. En una implementación, la utilización o no utilización de la tabla de código de impulsos se indica como 50 parte de un modo de codificación global para la trama actual, o puede indicarse o determinarse de otras maneras. Una tabla de código de impulsos es un tipo de tabla de código fija que especifica uno o más impulsos a contribuir a la señal de excitación. Los parámetros de la tabla de código de impulsos comprenden pares de índices y signos (las ganancias pueden ser positivas o negativas). Cada par indica un impulso a incluir en la señal de excitación, el índice indicando la posición del impulso, y el signo indicando la polaridad del impulso. El número de impulsos incluidos en 55 la tabla de código de impulsos y utilizado para contribuir a la señal de excitación, puede variar dependiendo del modo de codificación. Adicionalmente, el número de impulsos puede depender de si está utilizándose o no una tabla de código adaptativa.
Si se utiliza la tabla de código de impulsos, entonces los parámetros de la tabla de código de impulsos son optimizados 555 para minimizar el error entre la contribución de los impulsos indicados y una señal objetivo. Si no se 60 utiliza una tabla de código adaptativa, entonces la señal objetivo es la señal original ponderada. Si se utiliza una
tabla de código adaptativa, entonces la señal objetivo es la diferencia entre la señal original ponderada y la contribución de la tabla de código adaptativa a la señal sintetizada ponderada. En algún punto (no mostrado), los parámetros de la tabla de código de impulsos son entonces señalizados en el flujo de bits.
El componente 460 de parametrización de la excitación determina asimismo 565 si van a utilizarse cualesquiera etapas de tabla de código fija aleatoria. El número de etapas (si hay alguna) de tabla de código aleatoria se indica 5 como parte de un modo de codificación global para la trama actual, aunque puede indicarse o determinarse otras maneras. Una tabla de código aleatoria es un tipo de tabla de código fija que utiliza un modelo de señal predefinido para los valores que codifica. Los parámetros de la tabla de código pueden incluir el punto de inicio para un segmento indicado del modelo de señal, y un signo que puede ser positivo o negativo. La longitud o rango del segmento indicado es fijo habitualmente, y por lo tanto no señalizado habitualmente, pero alternativamente se 10 señaliza una longitud o extensión del segmento indicado. Se multiplica una ganancia por los valores en el segmento indicado, para producir la contribución de la tabla de código aleatoria, a la señal de excitación.
Si se utiliza por lo menos una etapa de tabla de código aleatoria, entonces son optimizados 570 los parámetros de la etapa de la tabla de código para dicha etapa de la tabla de código, para minimizar el error entre la contribución de la etapa de la tabla de código aleatoria y una señal objetivo. La señal objetivo es la diferencia entre la señal original 15 ponderada y la suma de la contribución, a la señal sintetizada ponderada, de la tabla de código adaptativa (si la hay), de la tabla de código de impulsos (si la hay), y de las etapas (si las hay) de la tabla de código aleatoria determinada previamente. En algún punto (no mostrado), los parámetros de la tabla de código aleatoria son entonces señalizados en el flujo de bits.
A continuación, el componente 460 determina 580 si van a utilizarse más etapas de tabla de código aleatoria. En 20 caso afirmativo, entonces los parámetros de la siguiente etapa de tabla de código aleatoria son optimizados 570 y señalizados tal como se ha descrito anteriormente. Esto continúa hasta que han sido determinados todos los parámetros para las etapas de tabla de código aleatoria. Todas las etapas de tabla de código aleatoria pueden utilizar el mismo modelo de señal, aunque probablemente indicarán segmentos diferentes a partir del modelo y tendrán valores de ganancia diferentes. Alternativamente, pueden utilizarse modelos de señal diferentes para 25 diferentes etapas de tabla de código aleatoria.
Cada ganancia de excitación puede ser cuantificada independientemente, o bien pueden ser cuantificadas dos ó mas ganancias conjuntamente, tal como se determine mediante el controlador de la velocidad y/u otros componentes.
Si bien en el presente documento ha sido expuesto un orden concreto para optimizar los diversos parámetros de 30 tabla de código, pueden ser utilizados otros órdenes y otras técnicas de optimización. Por lo tanto, aunque la figura 5 muestra el cálculo secuencial de parámetros de tablas de código diferentes, alternativamente se optimizan conjuntamente dos o más parámetros de tablas de código diferentes (por ejemplo, variando conjuntamente los parámetros y evaluando los resultados, de acuerdo con alguna técnica de optimización no lineal). Adicionalmente, podrían utilizarse otras configuraciones de tablas de código u otros parámetros de señal de excitación. 35
En esta implementación, la señal de excitación es la suma de cualesquiera contribuciones de la tabla de código adaptativa, de la tabla de código de impulsos, y de la etapa o etapas de tabla de código aleatoria. Alternativamente, el componente 460 puede calcular otros parámetros y/o parámetros adicionales para la señal de excitación.
Haciendo referencia a la figura 4, los parámetros de tabla de código para la señal de excitación son señalizados o proporcionados de otro modo a un descodificador local 465 (encerrado por líneas de trazos en la figura 4) así como 40 a la salida de banda 492. Por lo tanto, para cada banda, la salida 492 del codificador incluye la salida desde el componente 435 de procesamiento LPC discutido anteriormente, así como la salida desde el componente 460 de parametrización de la excitación.
La velocidad binaria de la salida 492 depende, en parte, de los parámetros utilizados por las tablas de código, y el codificador 400 puede controlar la velocidad binaria y/o la calidad conmutando entre conjuntos diferentes de índices 45 de tabla de código, utilizando códigos incrustados, o utilizando otras técnicas. Combinaciones diferentes de etapas y de tipos de tabla de código pueden proporcionar modos de codificación diferentes para diferentes tramas, bandas y/o sub-tramas. Por ejemplo, una trama sin voz puede utilizar solamente una etapa de tabla de código aleatoria. Para una trama de voz de velocidad baja, pueden ser utilizadas una tabla de código adaptativa y una tabla de código de impulsos. Una trama de velocidad alta puede ser codificada utilizando una tabla de código adaptativa, una tabla 50 de código de impulsos, y una o más etapas de tabla de código aleatoria. En una trama, la combinación de todos los modos de codificación para todas las sub-bandas conjuntamente puede denominarse un conjunto de modos. Pueden existir varios conjuntos de modos predefinidos para cada velocidad de muestreo, correspondiendo los diferentes modos a diferentes velocidades binarias de codificación. El módulo de control de la velocidad puede determinar el conjunto de modos para cada trama, o influir sobre el mismo. 55
El rango de velocidades binarias posibles puede ser muy grande para las implementaciones descritas, y puede producir mejoras significativas en la calidad resultante. En los codificadores estándar, puede asimismo variarse el número de bits que se utiliza para una tabla de código de impulsos, pero demasiados bits pueden simplemente producir impulsos que son demasiado densos. Análogamente, cuando se utiliza solamente una tabla de código, añadir más bits podría permitir la utilización de un modelo de señal mayor. Sin embargo, esto puede incrementar 5 significativamente la complejidad de la búsqueda de segmentos óptimos del modelo. Por contraste, pueden añadirse tipos adicionales de tablas de código y etapas adicionales de tablas de código aleatorias, sin incrementar significativamente la complejidad de las búsquedas de tablas de código individuales (en comparación con buscar una única tabla de código combinada). Además, las etapas múltiples de tablas de código aleatorias y los tipos múltiples de tablas de código fijas permiten factores de ganancia múltiples, lo que proporciona mayor flexibilidad 10 para la adaptación de la forma de onda.
También haciendo referencia a la figura 4, la salida del componente 460 de parametrización de la excitación es recibida por componentes 470, 472, 474, 476 de reconstrucción de tablas de código y por componentes 480, 482, 484, 486 de aplicación de ganancia, en correspondencia con las tabla de código utilizadas por el componente 460 de parametrización. Las etapas 470, 472, 474, 476 de tablas de código y los correspondientes componentes 480, 482, 15 484, 486 de aplicación de ganancia reconstruyen las contribuciones de las tablas de código. Dichas contribuciones se suman para producir una señal de excitación 490, que es recibida por el filtro de síntesis 440, donde ésta se utiliza junto con las muestras "predichas" a partir de las cuales se produce la predicción lineal subsiguiente. Las partes retardadas de la señal de excitación son utilizadas asimismo como una señal de histórico de excitación por el componente 470 de reconstrucción de tablas de código adaptativas, para reconstruir parámetros de la tabla de 20 código adaptativa subsiguiente (por ejemplo, contribución de paso), y por el componente 460 de parametrización para calcular parámetros de la tabla de código adaptativa subsiguiente (por ejemplo, índice de paso y valores de ganancia de paso).
De nuevo haciendo referencia a la figura 2, la salida de banda para cada banda es aceptada por el MUX 236, junto con otros parámetros. Dichos otros parámetros pueden comprender, entre otra información, información 222 de 25 clase de trama procedente del clasificador 214 de tramas, y modos de codificación de trama. El MUX 236 construye paquetes de la capa de aplicación a pasar a otro soporte lógico, o bien el MUX 236 pone datos en las cargas útiles de los paquetes que siguen un protocolo tal como RTP. El MUX puede almacenar en memoria intermedia parámetros con objeto de permitir la repetición selectiva de los parámetros, para la corrección de errores hacia delante en paquetes posteriores. En una implementación, el MUX 236 empaqueta en un solo paquete la información 30 de voz codificada primaria para una trama, junto con información de la corrección de errores hacia delante para la totalidad o parte de una o más tramas previas.
El MUX 236 proporciona retroalimentación tal como el lleno actual de la memoria intermedia, para propósitos de control de la velocidad. De manera más general, diversos componentes del codificador 230 (que incluyen el clasificador 240 de tramas y el MUX 236) pueden proporcionar información a un controlador 220 de la velocidad, tal 35 como el que se muestra en la figura 2.
El DEMUX 276 del flujo de bits de la figura 2, acepta como una entrada la información de voz codificada, y la analiza sintácticamente para identificar y procesar parámetros. Los parámetros pueden incluir clases de trama, alguna representación de valores LPC, y parámetros de tabla de código. La clase de trama puede indicar qué otros parámetros están presentes para una trama dada. De manera más general, el DEMUX 276 utiliza los protocolos 40 utilizados por el codificador 230 y extrae los parámetros que el codificador 230 empaqueta en paquetes. Para los paquetes recibidos sobre una red dinámica de conmutación por paquetes, el DEMUX 276 incluye una memoria intermedia de inestabilidad para analizar las fluctuaciones de corto plazo en la velocidad de paquetes sobre un periodo de tiempo dado. En algunos casos, el descodificador 270 regula retardos en la memoria intermedia y administra cuándo son leídos los paquetes desde la memoria intermedia con objeto de integrar retardo, control de 45 calidad, ocultación de tramas perdidas, etc., en la descodificación. En otros casos, un componente de la capa de aplicación administra la memoria intermedia de inestabilidad, y la memoria intermedia de inestabilidad se llena a una velocidad variable, y es evacuada por el descodificador 270 a una velocidad constante o relativamente constante.
El DEMUX 276 puede recibir múltiples versiones de parámetros para un segmento dado, que incluyen una versión codificada primaria y una o más versiones secundarias de corrección de error. Cuando la corrección de errores falla, 50 el descodificador 270 utiliza técnicas de ocultación tales como repetición de parámetros o estimación basada en información que se recibió correctamente.
La figura 6 es un diagrama de bloques de un descodificador generalizado 600 de banda de voz en tiempo real, con el cual pueden implementarse una o más realizaciones descritas. El descodificador 600 de banda corresponde, en general, a cualquiera de los componentes 272, 274 de descodificación de banda de la figura 2. 55
El descodificador 600 de banda acepta, como entrada, información de voz codificada 692 para una banda (que puede ser la banda completa, o una de múltiples sub-bandas), y produce una salida reconstruida 602 después de la descodificación. Los componentes del descodificador 600 tienen componentes correspondientes en el codificador
400, pero globalmente el descodificador 600 es más sencillo puesto que carece de componentes para la ponderación perceptual, el bucle del proceso de excitación y el control de la velocidad.
El componente 635 de procesamiento LPC recibe información que representa valores LPC en la forma prevista por el codificador de banda 400 (así como cualesquiera parámetros de cuantificación y otra información necesaria para la reconstrucción). El componente 635 de procesamiento LPC reconstruye los valores LPC 638 utilizando las 5 inversas de la conversión, la cuantificación, la descodificación, etc., aplicadas previamente a los valores LPC. El componente 635 de procesamiento LPC puede llevar a cabo asimismo interpolación para valores LPC (en representación LPC u otra representación, tal como LSP) para suavizar las transiciones entre conjuntos diferentes de coeficientes LPC.
Las etapas 670, 672, 674, 676 de tabla de código y los componentes 680, 682, 684, 686 de aplicación de ganancia 10 descodifican los parámetros de cualquiera de las etapas correspondientes de tabla de código, utilizados para la señal de excitación, y calculan la contribución de cada etapa de tabla de código que se utiliza. De forma más general, la configuración y las operaciones de las etapas 670, 672, 674, 676 de tabla de código y de los componentes 680, 682, 684, 686 de ganancia, corresponden a la configuración y las operaciones de las etapas 470, 472, 474, 476 de tabla de código y los componentes 480, 482, 484, 486 de ganancia en el codificador 400. Las 15 contribuciones de las etapas de tabla de código utilizadas se suman, y la señal de excitación resultante 690 es alimentada al filtro de síntesis 640. Los valores retardados de la señal de excitación 690 son utilizados asimismo por la tabla de código adaptativa 670 como un histórico de excitación, para calcular la contribución de la tabla de código adaptativa a las partes posteriores de la señal de excitación.
El filtro de síntesis 640 acepta valores LPC reconstruidos 638 y los incorpora al filtro. El filtro de síntesis 640 20 almacena previamente muestras reconstruidas, para el procesamiento. La señal de excitación 690 se pasa a través del filtro de síntesis para formar una aproximación de la señal de la voz original. De nuevo haciendo referencia a la figura 2, tal como se ha explicado anteriormente, si existen múltiples sub-bandas, la salida de sub-banda para cada sub-banda es sintetizada en los bancos 280 de filtros para formar la salida 292 de voz.
Las relaciones mostradas en las figuras 2 a 6 indican flujos generales de información; no se muestran otras 25 relaciones por simplicidad. Dependiendo de la implementación y del tipo de compresión deseada, pueden añadirse, omitirse, dividirse componentes en múltiples componentes, combinarse con otros componentes y/o sustituirse con componentes similares. Por ejemplo, en el entorno 200 mostrado en la figura 2, el controlador 220 de la velocidad puede combinarse con el codificador 230 de voz. Los componentes añadidos potenciales incluyen una aplicación de codificación (o reproducción) multimedia, que gestiona el codificador (o descodificador) de voz así como otros 30 codificadores (o descodificadores), y reúne información del estado del descodificador y de la red, y que lleva a cabo funciones de corrección de errores adaptativa. En realizaciones alternativas, diferentes combinaciones y configuraciones de componentes, procesan la información de voz utilizando las técnicas descritas en el presente documento.
III. Técnicas de Codificación Redundante 35
Una posible utilización de los códecs de voz, es para redes de voz sobre IP u otras redes con conmutación de paquetes. Dichas redes tienen algunas ventajas sobre las infraestructuras existentes de conmutación de circuitos. Sin embargo, en las redes de voz sobre IP, los paquetes a menudo se retardan o se pierden debido a la congestión de la red.
Muchos códecs de voz estándar tienen una dependencia entre tramas elevada. Por lo tanto, para estos códecs, una 40 trama perdida puede provocar una degradación severa de la calidad de la voz a través de muchas tramas posteriores.
En otros códecs, cada trama puede ser descodificada independientemente. Dichos códecs son robustos frente a pérdidas de paquetes. Sin embargo, la eficiencia de la codificación en términos de la calidad y de la velocidad binaria, cae significativamente como resultado de la anulación de la dependencia entre tramas. Por lo tanto, dichos 45 códecs requieren habitualmente velocidades binarias superiores para conseguir una calidad de la voz similar a los códecs CELP tradicionales.
En algunas realizaciones, las técnicas de codificación redundante discutidas a continuación pueden ayudar a conseguir un buen rendimiento de recuperación de la pérdida de paquetes, sin incrementar significativamente la velocidad binaria. Las técnicas pueden ser utilizadas conjuntamente dentro de un solo códec, o pueden ser 50 utilizadas por separado.
En la implementación de codificador descrita anteriormente haciendo referencia a las figuras 2 y 4, la información de la tabla de código adaptativa es habitualmente la fuente principal de dependencia con otras ramas. Tal como se ha discutido anteriormente, el índice de la tabla de código adaptativa indica la posición de un segmento de la señal de
excitación, en la memoria intermedia del histórico. El segmento de la señal de excitación previa se escala (de acuerdo con un valor de ganancia) para ser la contribución de la tabla de código adaptativa, de la señal de excitación de la trama (o sub-trama) actual. Si se pierde un paquete previo que contiene información utilizada para reconstruir la señal de excitación previa codificada, entonces está información de desfase de la trama (o sub-trama) actual no es útil debido a que apunta a información de histórico inexistente. Puesto que la información de desfase es 5 sensible, esto conduce habitualmente a una degradación extendida de la salida de voz resultante, que se desvanece solamente después de que han sido descodificados muchos paquetes.
Las técnicas siguientes están diseñadas para eliminar, al menos en alguna medida, la dependencia de la señal de excitación actual con información reconstruida a partir de tramas anteriores que no están disponibles debido a que han sido retardadas o perdidas. 10
Un codificador, tal como el codificador 230 descrito anteriormente haciendo referencia a la figura 2, puede conmutar entre las técnicas de codificación siguientes en una base trama-a-trama o en alguna otra base. Un descodificador correspondiente, tal como el descodificador 270 descrito anteriormente haciendo referencia a la figura 2, conmuta técnicas correspondientes de análisis sintáctico/descodificación en una base trama-a-trama o en alguna otra base. Alternativamente, otro codificador, descodificador, o herramienta de procesamiento de audio lleva a cabo una o más 15 de las técnicas siguientes.
A. Re-Codificación/Descodificación Primaria del Histórico de la Tabla de Código Adaptativa
En la re-codificación/descodificación primaria del histórico de tabla de código adaptativa, la memoria intermedia del histórico de excitación no se utiliza para descodificar la señal de excitación de la trama actual, incluso si está disponible en el descodificador la memoria intermedia del histórico de excitación (paquete de trama anterior recibido, 20 trama anterior descodificada, etc.). En su lugar, en el codificador, se analiza la información de paso para la trama actual, con objeto de determinar qué parte del histórico de excitación se necesita. La parte necesaria del histórico de excitación es re-codificada y enviada junto con la información codificada (por ejemplo, parámetros de filtro, ganancias e índices de tabla de código) para la trama actual. La contribución de la tabla de código adaptativa de la trama actual hace referencia a la señal de excitación re-codificada que es enviada con la trama actual. De este 25 modo, se garantiza que el histórico de excitación relevante está disponible para el descodificador, para cada trama. Esta codificación redundante no es necesaria si la trama actual no utiliza una tabla de código adaptativa, tal como una trama sin voz.
La re-codificación de la parte de referencia del histórico de excitación, puede realizarse junto con la codificación de la trama actual, y puede realizarse del mismo modo que la codificación de la señal de excitación para una trama 30 actual, que se ha descrito anteriormente.
En algunas implementaciones, la codificación de la señal de excitación se realiza en una base de sub-trama, y el segmento de la señal de excitación re-codificada se extiende hacia atrás desde el comienzo de la trama actual que incluye la sub-trama actual, hasta el límite de la sub-trama más allá de la dependencia más lejana de la tabla de código adaptativa, para la trama actual. Por lo tanto, la señal de excitación re-codificada está disponible para 35 referencia, con la información de paso para múltiples sub-tramas en la trama. Alternativamente, la codificación de la señal de excitación se realiza sobre alguna otra base, por ejemplo, trama-a-trama.
En la figura 7 se muestra un ejemplo, que representa un histórico de excitación 710. Los límites de trama 720 y los límites de sub-trama 730 se representan por líneas de trazos más largas y más cortas, respectivamente. Las sub-tramas de una trama actual 740 están codificadas utilizando una tabla de código adaptativa. El punto de 40 dependencia más lejano para cualquier índice de desfase de tabla de código adaptativa, de una sub-trama de la trama actual, está representado por una línea 750. Por consiguiente, el histórico re-codificado 760 se extiende hacia atrás, desde el comienzo de la trama actual hasta el siguiente límite de sub-trama pasado el punto más lejano 750. El punto de dependencia más lejano puede ser estimado utilizando los resultados de la búsqueda 425 de paso en bucle abierto, descrita anteriormente. Sin embargo, puesto que la búsqueda no es precisa, es posible que la tabla de 45 código adaptativa dependa de una parte de la señal de excitación que esté más allá del punto más lejano estimado, salvo que la búsqueda del último paso esté limitada. Por consiguiente, el histórico re-codificado puede incluir muestras adicionales más allá del punto de dependencia más lejano estimado, para proporcionar espacio adicional para encontrar información de paso coincidente. En una implementación, en el histórico re-codificado se incluyen, por lo menos, diez muestras adicionales pasado el punto de dependencia más lejano estimado. Por supuesto, 50 pueden incluirse más de diez muestras, con objeto de incrementar la probabilidad de que el histórico re-codificado se extienda lo suficientemente lejos para incluir ciclos de paso que se correspondan con los de la sub-trama actual.
Alternativamente, son re-codificados solamente el segmento o los segmentos de la señal de excitación anterior, a los que de hecho se hace referencia en la sub-trama o en las sub-tramas de la trama actual. Por ejemplo, un segmento de la señal de excitación anterior con la duración apropiada, es re-codificado para ser utilizado en la descodificación 55 de un solo segmento actual de dicha duración.
La re-codificación/descodificación primaria del histórico de la tabla de código adaptativa, elimina la dependencia sobre el histórico de excitación de las tramas anteriores. Al mismo tiempo, permite que sean utilizadas las tablas de código adaptativas y no requiere la re-codificación de toda la trama o las tramas anteriores (o incluso de todo el histórico de excitación de la trama o de las tramas anteriores). Sin embargo, la velocidad binaria necesaria para la re-codificación de la memoria de tabla de código adaptativa es muy elevada en comparación con las técnicas 5 descritas a continuación, especialmente cuando el histórico re-codificado se utiliza para la codificación/descodificación primaria al mismo nivel de calidad que la codificación/descodificación con dependencia entre tramas.
Como consecuencia de la re-codificación/descodificación primaria del histórico de la tabla de código adaptativa, la señal de excitación re-codificada puede ser utilizada para recuperar, por lo menos, parte de la señal de excitación 10 para una trama perdida previa. Por ejemplo, la señal de excitación re-codificada es reconstruida durante la descodificación de las sub-tramas de una trama actual, y la señal de excitación re-codificada es introducida en un filtro de síntesis LPC construido utilizando coeficientes de filtro reales o estimados.
La señal de salida reconstruida resultante puede ser utilizada como parte de la salida de la trama anterior. Esta técnica puede ayudar asimismo a estimar un estado inicial de la memoria del filtro de síntesis para la trama actual. 15 Utilizando el histórico de excitación re-codificado y la memoria estimada del filtro de síntesis, la salida de la trama actual se genera del mismo modo que en la codificación normal.
B. Re-Codificación/Descodificación Secundaria del Histórico de la Tabla de Código Adaptativa
En la re-codificación/descodificación secundaria del histórico de la tabla de código adaptativa, no se modifica la codificación primaria de la tabla de código adaptativa de la trama actual. Análogamente, no se modifica la 20 descodificación primaria de la trama actual; utiliza el histórico de excitación de la trama anterior, si ha sido recibida la trama anterior.
Para su utilización, si el histórico de excitación anterior no está reconstruido, la memoria intermedia del histórico de excitación es re-codificada sustancialmente de la misma manera que la técnica de re-codificación/descodificación primaria del histórico de la tabla de código adaptativa, que se ha descrito anteriormente. Sin embargo, en 25 comparación con la re-codificación/descodificación primaria, se utilizan menos bits para la re-codificación debido a que la calidad de la voz no está influida por la señal re-codificada cuando no se han perdido paquetes. El número de bits utilizados para re-codificar el histórico de excitación puede reducirse cambiando varios parámetros, tal como utilizando menos etapas de tabla de código fija, o utilizando menos impulsos en la tabla de código de impulsos.
Cuando se ha perdido una trama previa, se utiliza en el descodificador el histórico de excitación re-codificado, para 30 generar la señal de excitación de la tabla de código adaptativa, para la trama actual. El histórico de excitación re-codificado puede ser utilizado asimismo para recuperar, por lo menos, parte de la señal de excitación para una trama previa perdida, tal como en la técnica de re-codificación/descodificación primaria del histórico de la tabla de código adaptativa.
Asimismo, la señal de salida reconstruida resultante puede ser utilizada como parte de la salida de la trama previa. 35 Esta técnica puede ayudar asimismo a estimar un estado inicial de la memoria del filtro de síntesis para la trama actual. Utilizando el histórico de excitación re-codificado y la memoria estimada del filtro de síntesis, la salida de la trama actual se genera del mismo modo que en la codificación normal.
C. Etapa de Tabla de Código Extra
Tal como en la técnica de re-codificación/descodificación secundaria del histórico de la tabla de código adaptativa, 40 en la técnica de etapa de tabla de código extra, la codificación de la señal de excitación principal es igual que la codificación normal descrita anteriormente haciendo referencia a las figuras 2 a 5. Sin embargo, se determinan asimismo parámetros para una etapa de tabla de código extra.
En esta técnica de codificación, que se muestra en la figura 8, se asume 810 que la memoria intermedia del histórico de excitación anterior es todo cero al comienzo de la trama actual, y por lo tanto no existe contribución desde la 45 memoria intermedia del histórico de excitación anterior. Además de la información principal codificada para la trama actual, se utilizan una o más etapas de tabla de código extra para cada sub-trama u otro segmento que utilice una tabla de código adaptativa. Por ejemplo, la etapa de tabla de código extra utiliza una tabla de código fija aleatoria, tal como la que se describe haciendo referencia a la figura 4.
En esta técnica, la trama actual está codificada normalmente para producir información principal codificada (la cual 50 puede incluir parámetros de la tabla de código principal para etapas de la tabla de código principal) a utilizar por el descodificador, si la trama previa está disponible. En el lado del codificador, los parámetros redundantes para una o más etapas de tabla de código extra se determinan en el bucle cerrado, asumiendo que no hay información de
excitación procedente de la trama previa. En una primera implementación, la determinación se realiza sin utilizar ninguno de los parámetros de la tabla de código principal. Alternativamente, en una segunda implementación la determinación utiliza, por lo menos, parte de los parámetros de la tabla de código principal para la trama actual. Dichos parámetros de la tabla de código principal pueden ser utilizados junto con el parámetro o los parámetros de la etapa de tabla de código extra, para descodificar la trama actual si la trama previa se ha perdido, tal como se 5 describe a continuación. En general, esta segunda implementación puede conseguir una calidad similar a la primera implementación, utilizándose menos bits para la etapa o las etapas extra de tabla de código.
De acuerdo con la figura 8, la ganancia de la etapa extra de la tabla de código y la ganancia de la última tabla de código de impulso o aleatoria existente, son optimizadas conjuntamente en una búsqueda de bucle cerrado en el codificador, para minimizar el error de codificación. La mayor parte de los parámetros que se generan en 10 codificación normal, son preservados y utilizados en esta optimización. En la utilización, se determina 820 si son utilizadas en codificación normal algunas etapas de tabla de código aleatoria o de impulsos. En caso afirmativo, se optimiza 830 entonces una ganancia revisada de la etapa de la última tabla de código aleatoria o de impulsos existente (tal como la etapa de tabla de código aleatoria n de la figura 4), para minimizar el error entre la contribución de la etapa de tabla de código y una señal objetivo. La señal objetivo para esta optimización es la diferencia entre la 15 señal residual y la suma de las contribuciones de cualesquiera etapas precedentes de tabla de código aleatoria (es decir, todas las etapas precedentes de tabla de código, pero la contribución de tabla de código adaptativa procedente de segmentos de tramas previas se pone a cero).
Los índices y parámetros de ganancia en la etapa de tabla de código aleatoria extra son optimizados 840 de forma similar, para minimizar el error entre la contribución de dicha tabla de código y una señal objetivo. La señal objetivo 20 para la etapa de tabla de código aleatoria extra es la diferencia entre la señal residual y la suma de las contribuciones de la tabla de código adaptativa, de la tabla de código de impulsos (si hay alguna) y de cualesquiera tablas de código aleatorias normales (con la última tabla de código de impulsos o aleatoria normal existente, teniendo la ganancia revisada). La ganancia revisada de la última tabla de código de impulsos o aleatoria normal existente, y la ganancia de la etapa de tabla de código aleatoria extra pueden ser optimizadas por separado, o 25 conjuntamente.
Cuando está en el modo de descodificación normal, el descodificador no utiliza la etapa de tabla de código aleatoria extra, y descodifica una señal de acuerdo con la descripción anterior (por ejemplo, tal como en la figura 6).
La figura 9A ilustra un descodificador sub-banda que puede utilizar una etapa de tabla de código extra cuando un índice de tabla de código adaptativa apunta a un segmento de una trama previa que se ha perdido. En general, el 30 marco es el mismo que el marco de descodificación descrito anteriormente e ilustrado en la figura 6, y las funciones de muchos de los componentes y señales en el descodificador sub-banda 900 de la figura 9, son las mismas que los componentes y señales correspondientes de la figura 6. Por ejemplo, se recibe la información 992 sub-banda codificada, y el componente 935 de procesamiento LPC reconstruye los coeficientes de predicción lineal 938 utilizando esa información, y alimenta los coeficientes al filtro de síntesis 940. Sin embargo, cuando la trama previa 35 se pierde, un componente 996 de reseteo señaliza un componente 994 de histórico cero, para poner el histórico de excitación a cero para la trama perdida, y alimenta dicho histórico a la tabla de código adaptativa 970. La ganancia 980 es aplicada a la contribución de la tabla de código adaptativa. Por lo tanto, la tabla de código adaptativa 970 tiene una contribución cero cuando su índice apunta a la memoria intermedia del histórico, para la trama perdida, pero puede tener alguna contribución distinta de cero cuando su índice apunta a un segmento en el interior de la 40 trama actual. Las etapas 972, 974, 976 de tabla de código fija aplican sus índices normales recibidos con la información de sub-banda 992. De forma similar, los componentes 982, 964 de ganancia de la tabla de código fija, excepto el componente 986 de ganancia de la última tabla de código normal, aplican sus ganancias normales para producir sus contribuciones respectivas a la señal de excitación 990.
Si está disponible una etapa 988 de tabla de código aleatoria extra, y se ha perdido la trama previa, entonces un 45 componente 996 de reseteo señaliza un conmutador 998 para que pase la contribución de la etapa 976 de la última tabla de código normal con una ganancia revisada 987, a sumar con otras contribuciones de tabla de código, en lugar de pasar para suma la contribución de la etapa 976 de la última tabla de código normal con la ganancia normal 986. La ganancia revisada está optimizada para la situación en la que el histórico de excitación está a cero para la trama previa. Adicionalmente, la etapa 978 de tabla de código extra aplica su índice para indicar en la tabla de 50 código correspondiente un segmento de la señal del modelo de tabla de código aleatoria, y el componente 988 de ganancia de la tabla de código aleatoria aplica a dicho segmento la ganancia para la etapa de tabla de código aleatoria extra. El conmutador 998 pasa la contribución resultante de la etapa de tabla de código extra, para ser sumada con las contribuciones de las etapas previas 970, 972, 974, 976 de tabla de código, para producir la señal de excitación 990. Por consiguiente, la información redundante para la etapa de tabla de código aleatoria extra (tal 55 como la ganancia y el índice de etapa extra) y la ganancia revisada de la etapa de la última tabla de código aleatoria principal (utilizada en lugar de la ganancia normal para la etapa de la última tabla de código aleatoria principal) son utilizadas para un reajuste rápido de la trama actual a un estado conocido. Alternativamente, se utiliza la ganancia normal para la etapa de la última tabla de código aleatoria principal y/o son utilizados algunos otros parámetros para señalizar una tabla de código aleatoria de una etapa extra. 60
La técnica de etapa de tabla de código extra requiere tan pocos bits que el coste por su utilización en la velocidad binaria, es prácticamente insignificante. Por otra parte, puede reducir significativamente la degradación de la calidad debida a pérdidas de trama, cuando se presentan dependencias entre tramas.
La figura 9B ilustra un descodificador sub-banda similar al ilustrado en la figura 9A, pero sin etapas de tabla de código aleatoria normal. Por lo tanto, en esta implementación, la ganancia revisada 987 está optimizada para la tabla 5 de código de impulsos 972 cuando el histórico residual para una trama previa perdida está a cero. Por consiguiente, cuando se ha perdido una trama, se suman las contribuciones de la tabla de código adaptativa 970 (con el histórico residual para la trama perdida previa puesto a cero), de la tabla de código de impulsos 972 (con la ganancia revisada) y de la etapa 978 de tabla de código aleatoria extra, para producir una señal de excitación 990.
Una tabla de código de una etapa extra, que está optimizada para la situación en la que se ha puesto a cero el 10 histórico residual para una trama perdida, puede ser utilizada con muchas implementaciones y combinaciones diferentes de tabla de código y/u otras representaciones de señales residuales.
D. Compromisos entre Técnicas de Codificación Redundante
Cada una de las tres técnicas de codificación redundante discutidas anteriormente pueden tener ventajas y desventajas, comparadas con las otras. La tabla 3 muestra algunas conclusiones generalizadas sobre lo que se cree 15 son algunos de los compromisos entre estas tres técnicas de codificación redundante. La penalización sobre la velocidad binaria se refiere a la cantidad de bits que son necesarios para utilizar la técnica. Por ejemplo, asumiendo que se utiliza la misma velocidad binaria que en la codificación/descodificación normal, la penalización superior de la velocidad binaria se corresponde, en general, con una calidad menor durante la descodificación normal, debido a que se utilizan más bits para la codificación redundante y, por lo tanto, pueden ser utilizados menos bits para la 20 información codificada normal. La eficiencia de la reducción de la dependencia con la memoria se refiere a la eficiencia de la técnica para mejorar la calidad de la salida de voz resultante, cuando se han perdido una o más tramas previas. La utilidad para la recuperación de la trama o las tramas previas, se refiere a la capacidad de utilizar la información codificada de forma redundante, para recuperar dichas una o más tramas previas, cuando la trama o las tramas previas se han perdido. Las conclusiones de la tabla son generalizadas, y pueden no aplicar en 25 implementaciones concretas.
Tabla 3: Compromisos entre Técnicas de Codificación Redundante
Codificación Primaria del Histórico de ACB Codificación Secundaria del Histórico de ACB Etapa de Tabla de Código Extra
Penalización sobre la velocidad binaria
Alta Media Baja
Eficiencia de la reducción de la dependencia con la memoria
Máxima Buena Muy buena
Utilidad para la recuperación de la trama o las tramas previas pérdidas
Buena Buena Ninguna
El codificador puede elegir cualquiera de los esquemas de codificación redundante para cualquier trama, sobre la marcha, durante la codificación. La codificación redundante puede no ser utilizada en absoluto para algunas clases de tramas (por ejemplo, utilizada para tramas de voz, no utilizada para tramas de silencio o sin voz), y si se utiliza 30 puede serlo sobre cada trama, sobre un esquema periódico tal como cada diez tramas, o sobre algún otro esquema. Esto puede estar controlado por un componente tal como el componente de control de la velocidad, considerando factores tales como los compromisos anteriores, el ancho de banda disponible del canal, y la retroalimentación del descodificador sobre el estado de pérdida de paquetes.
E. Formato del Flujo de Bits en la Codificación Redundante 35
La información de codificación redundante puede ser enviada en diversos formatos diferentes, en un flujo de bits. Lo que sigue es una implementación de un formato para enviar la información codificada redundante descrita anteriormente, y señalizar su presencia a un descodificador. En esta implementación, cada trama de flujo de bits es iniciada con un campo de dos bits denominado tipo de trama. El tipo de trama se utiliza para identificar el modo de
codificación redundante para los bits siguientes, y puede ser utilizado asimismo para otros propósitos en la codificación y la descodificación. La tabla 4 proporciona el significado del modo de codificación redundante, para el campo tipo de trama.
Tabla 4: Descripción de los Bits de Tipo de Trama
Bits de Tipo de Trama
Modo de Codificación Redundante
00
Ninguno (Trama Normal)
01
Etapa de Tabla de Código Extra
10
Codificación Primaria del Histórico de ACB
11
Codificación Secundaria del Histórico de ACB
5
La figura 10 muestra cuatro combinaciones diferentes de estos códigos en el formato de trama del flujo de bits, señalizando la presencia de una trama normal y/o de los tipos de codificación redundante respectivos. Para una trama normal 1010 que incluye información principal codificada para la trama, sin ningún bit de codificación redundante, un límite de octeto 1015 al comienzo de la trama está seguido por un código de tipo de trama 00. Para una trama normal, el código del tipo de trama está seguido por la información principal codificada. 10
Para una trama 1020 con información codificada redundante del histórico de la tabla de código adaptativa primaria, un límite de octeto 1025 al comienzo de la trama está seguido por el código de tipo de trama 10, que señaliza la presencia de información del histórico de la tabla de código adaptativa primaria para la trama. El código de tipo de trama está seguido por una unidad codificada para una trama con información principal codificada e información del histórico de la tabla de código adaptativa. 15
Cuando para una trama 1030 está incluida la información codificada redundante del histórico secundario, un límite de octeto 1035 al comienzo de la trama está seguido por una unidad codificada que incluye un código de tipo de trama 00 (el código para una trama normal) seguido por información principal codificada para una trama normal. Sin embargo, después del límite de octeto 1045 al término de la información principal codificada, otra unidad codificada incluye un código de tipo de trama 11 que indica que seguirá información del histórico secundario opcional 1040 (en 20 lugar de la información principal codificada para una trama). Debido a que la información de histórico secundario 1040 se utiliza solamente si se ha perdido la trama previa, un empaquetador u otro componente puede estar dotado de la opción de omitir la información. Esto puede realizarse por varias razones, tal como cuando es necesario reducir la velocidad binaria global, la velocidad de pérdidas de paquetes es baja, o la trama previa está incluida en un paquete con la trama actual. O bien, un desmultiplexor u otro componente puede ser dotado de la opción de saltarse 25 la información del histórico secundario cuando se recibe satisfactoriamente la trama normal 1030.
Análogamente, cuando para una trama 1050 se incluye información codificada redundante de una etapa de tabla de código extra, un límite de octeto 1055 al comienzo de una unidad codificada está seguido por un código de tipo de trama 00 (el código para una trama normal) seguido por información principal codificada para una trama normal. Sin embargo, después del límite de octeto 1065 al término de la información principal codificada, otra unidad codificada 30 incluye un código de tipo de trama 01 que indica que seguirá información 1060 de etapa de tabla de código extra opcional. Tal como con la información del histórico secundario, la información 1060 de etapa de tabla de código extra se utiliza solamente si se ha perdido la trama previa. Por consiguiente, tal como con la información de histórico secundario, un empaquetador u otro componente puede estar dotado de la opción de omitir la información de la etapa de tabla de código extra, o bien un desmultiplexor u otro componente puede estar dotado de la opción de 35 saltarse la información de la etapa de tabla de código extra.
Una aplicación (por ejemplo, una aplicación que maneje la paquetización en la capa de transporte) puede decidir combinar conjuntamente múltiples tramas para formar un paquete mayor con objeto de reducir los bits extra requeridos para las cabeceras de paquete. Dentro del paquete, la aplicación puede determinar los límites de trama mediante explorar el flujo de bits. 40
La figura 11 muestra un posible flujo de bits de un solo paquete 1100 con cuatro tramas 1110, 1120, 1130, 1140. Puede asumirse que serán recibidas todas las tramas en el único paquete si lo son cualesquiera de ellas (es decir, no hay corrupción parcial de datos), y que el desfase de la tabla de código adaptativa, o paso, es habitualmente menor que la longitud de la trama. En este ejemplo, cualquier información de codificación redundante opcional para la trama 2, 1120, para la trama 3, 1130, y para la trama 4, 1140, típicamente no se utilizaría debido a que la trama 45
previa estaría siempre presente si lo está la trama actual. Por consiguiente, puede eliminarse la información de codificación redundante opcional para todas las tramas excepto para la primera, en el paquete 1100. Esto tiene como resultado el paquete condensado 1150, en el que la trama 1, 1160, incluye información de la etapa de tabla de código extra opcional, pero toda la información de codificación redundante opcional ha sido eliminada de las tramas restantes 1170, 1180, 1190. 5
Si el descodificador está utilizando la técnica de codificación redundante del histórico primario, una aplicación no perderá ninguno de dichos bits cuando empaqueta tramas conjuntamente en un solo paquete, debido a que se utiliza la información de codificación redundante del histórico primario, se haya perdido o no la trama previa. Sin embargo, la aplicación podría forzar al codificador a codificar dicha trama como una trama normal, si sabe que la trama estará en un paquete de múltiples tramas, y que no será la primera trama en dicho paquete. 10
Aunque las figuras 10 y 11 y la descripción anexa muestran límites alineados con octetos entre tramas y tipos de información, alternativamente los límites pueden no estar alineados con octetos. Además, las figuras 10 y 11 y la descripción anexa muestran códigos de tipo de trama ejemplares, y combinaciones de tipos de trama. Alternativamente, un codificador y un descodificador utilizan otros tipos de trama y/o tipos de trama adicionales, o combinaciones de tipos de trama. 15
Habiéndose descrito e ilustrado los principios de nuestra invención haciendo referencia a las realizaciones descritas, se reconocerá que las realizaciones descritas pueden ser modificadas en su disposición y en sus detalles, sin apartarse de dichos principios. Se comprenderá que los programas, procesos o métodos descritos en el presente documento no están relacionados con, o limitados por ningún tipo concreto de entorno informático, salvo que se indique lo contrario. Diversos tipos de entornos informáticos de propósito general o especializados, pueden ser 20 utilizados con las enseñanzas descritas en el presente documento, o llevar a cabo operaciones acordes con éstas. Los elementos de las realizaciones descritas mostrados en soporte lógico pueden ser implementados en equipamiento físico, y viceversa.

Claims (15)

  1. REIVINDICACIONES
    1. Un flujo de bits que representa una señal de audio, que comprende
    información principal codificada para una trama actual (740) que hace referencia a un segmento de una trama previa; e
    información codificada redundante (760), 5
    caracterizado porque
    se selecciona el segmento de una trama previa para ser utilizado en la descodificación de la trama actual; y
    la información codificada redundante es para descodificar la trama actual, la información codificada redundante comprendiendo información del histórico de señal asociada con el segmento de referencia de la trama previa.
  2. 2. El flujo de bits de la reivindicación 1, en el que la información principal codificada y la información redundante son 10 codificadas de acuerdo con una técnica de codificación.
  3. 3. El flujo de bits de la reivindicación 1, en el que la información del histórico de señal comprende un histórico de excitación para el segmento de referencia, pero no un histórico de excitación para uno o más segmentos a los que no se hace referencia, de la trama previa.
  4. 4. El flujo de bits de la reivindicación 1, en el que la información del histórico de señal se codifica a un nivel de 15 calidad ajustado dependiendo, por lo menos en parte, de la probabilidad de utilización de la información codificada redundante, en la descodificación de la trama actual.
  5. 5. Un método para el procesamiento de un flujo de bits que representa una señal de audio, en una herramienta de procesamiento de audio, que comprende la etapa de:
    - codificar información principal para una trama actual que hace referencia a un segmento de una trama 20 previa a utilizar en la descodificación de la trama actual; y además caracterizado por las etapas de:
    - codificar información redundante para descodificar la trama actual, la información codificada redundante comprendiendo información del histórico de señal asociada con el segmento de referencia de la trama previa; y
    - entregar un resultado. 25
  6. 6. El método de la reivindicación 5, en el que la información principal y la información redundante son codificadas de acuerdo con una técnica de codificación.
  7. 7. El método de la reivindicación 5, en el que la herramienta de procesamiento de audio es un codificador de voz en tiempo real, y el resultado es la voz codificada.
  8. 8. El método de la reivindicación 5, en el que la información del histórico de señal comprende un histórico de 30 excitación para el segmento de referencia, pero no un histórico de excitación para uno o más segmentos a los que no se hace referencia, de la trama previa.
  9. 9. El método de cualquiera de las reivindicaciones 5 a 8, en el que la información del histórico de señal se codifica a un nivel de calidad ajustado dependiendo, por lo menos en parte, de la probabilidad de utilización de la información codificada redundante, en la descodificación de la trama actual. 35
  10. 10. Un método para el procesamiento de un flujo de bits que representa una señal de audio, en una herramienta de procesamiento de audio, que comprende las etapas de:
    - descodificar información principal codificada, para una trama actual que hace referencia a un segmento de una trama previa a utilizar en la descodificación de la trama actual; y además caracterizado por la etapa de: 40
    - descodificar información codificada redundante, para descodificar la trama actual, la información codificada redundante comprendiendo información del histórico de señal asociada con el segmento de referencia de la trama previa; y
    - entregar un resultado.
  11. 11. El método de la reivindicación 10, en el que la información principal codificada y la información codificada redundante, son codificadas de acuerdo con una técnica de codificación.
  12. 12. El método de la reivindicación 10, en el que la herramienta de procesamiento de audio es un descodificador de voz, y en el que el procesamiento comprende utilizar la información codificada redundante en la descodificación de 5 la trama actual esté, o no, disponible para el descodificador la trama previa.
  13. 13. El método de la reivindicación 10, en el que la herramienta de procesamiento de audio es un descodificador de voz, y en el que el procesamiento comprende utilizar la información codificada redundante, en la descodificación de la trama actual, solamente si la trama previa no está disponible para el descodificador.
  14. 14. El flujo de bits de la reivindicación 10, en el que la información del histórico de señal se codifica a un nivel de 10 calidad ajustado dependiendo, por lo menos en parte, de la probabilidad de utilización de la información codificada redundante, en la descodificación de la trama actual.
  15. 15. El método de la reivindicación 10, en el que la herramienta de procesamiento de audio es un descodificador de voz, y en el que el procesamiento comprende utilizar la información codificada redundante en la descodificación de la trama previa, cuando la trama previa no está disponible para el descodificador. 15
ES06749340T 2005-05-31 2006-04-05 Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio. Active ES2358213T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/142,605 US7177804B2 (en) 2005-05-31 2005-05-31 Sub-band voice codec with multi-stage codebooks and redundant coding
US142605 2005-05-31

Publications (1)

Publication Number Publication Date
ES2358213T3 true ES2358213T3 (es) 2011-05-06

Family

ID=37464576

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06749340T Active ES2358213T3 (es) 2005-05-31 2006-04-05 Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio.

Country Status (19)

Country Link
US (4) US7177804B2 (es)
EP (2) EP1886306B1 (es)
JP (2) JP5123173B2 (es)
KR (1) KR101238583B1 (es)
CN (2) CN101189662B (es)
AT (1) ATE492014T1 (es)
AU (1) AU2006252965B2 (es)
BR (1) BRPI0610909A2 (es)
CA (1) CA2611829C (es)
DE (1) DE602006018908D1 (es)
ES (1) ES2358213T3 (es)
HK (1) HK1123621A1 (es)
IL (1) IL187196A (es)
NO (1) NO339287B1 (es)
NZ (1) NZ563462A (es)
PL (1) PL1886306T3 (es)
RU (1) RU2418324C2 (es)
TW (1) TWI413107B (es)
WO (1) WO2006130229A1 (es)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315815B1 (en) * 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US7698132B2 (en) * 2002-12-17 2010-04-13 Qualcomm Incorporated Sub-sampled excitation waveform codebooks
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
FR2867648A1 (fr) * 2003-12-10 2005-09-16 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
WO2006009074A1 (ja) * 2004-07-20 2006-01-26 Matsushita Electric Industrial Co., Ltd. 音声復号化装置および補償フレーム生成方法
EP1775718A4 (en) * 2004-07-22 2008-05-07 Fujitsu Ltd AUDIOCODING DEVICE AND AUDIOCODING METHOD
US7831421B2 (en) * 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7177804B2 (en) 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
KR101171098B1 (ko) * 2005-07-22 2012-08-20 삼성전자주식회사 혼합 구조의 스케일러블 음성 부호화 방법 및 장치
US20070058530A1 (en) * 2005-09-14 2007-03-15 Sbc Knowledge Ventures, L.P. Apparatus, computer readable medium and method for redundant data stream control
US7664091B2 (en) * 2005-10-03 2010-02-16 Motorola, Inc. Method and apparatus for control channel transmission and reception
KR100647336B1 (ko) * 2005-11-08 2006-11-23 삼성전자주식회사 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
US8611300B2 (en) * 2006-01-18 2013-12-17 Motorola Mobility Llc Method and apparatus for conveying control channel information in OFDMA system
US8260620B2 (en) * 2006-02-14 2012-09-04 France Telecom Device for perceptual weighting in audio encoding/decoding
WO2007105586A1 (ja) * 2006-03-10 2007-09-20 Matsushita Electric Industrial Co., Ltd. 符号化装置および符号化方法
KR100900438B1 (ko) * 2006-04-25 2009-06-01 삼성전자주식회사 음성 패킷 복구 장치 및 방법
DE102006022346B4 (de) 2006-05-12 2008-02-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationssignalcodierung
US8712766B2 (en) * 2006-05-16 2014-04-29 Motorola Mobility Llc Method and system for coding an information signal using closed loop adaptive bit allocation
US9515843B2 (en) * 2006-06-22 2016-12-06 Broadcom Corporation Method and system for link adaptive Ethernet communications
US8326609B2 (en) * 2006-06-29 2012-12-04 Lg Electronics Inc. Method and apparatus for an audio signal processing
US8135047B2 (en) * 2006-07-31 2012-03-13 Qualcomm Incorporated Systems and methods for including an identifier with a packet associated with a speech signal
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
US8280728B2 (en) * 2006-08-11 2012-10-02 Broadcom Corporation Packet loss concealment for a sub-band predictive coder based on extrapolation of excitation waveform
KR101041895B1 (ko) 2006-08-15 2011-06-16 브로드콤 코포레이션 패킷 손실 후 디코딩된 오디오 신호의 시간 워핑
US7778307B2 (en) * 2006-10-04 2010-08-17 Motorola, Inc. Allocation of control channel for radio resource assignment in wireless communication systems
US20080084853A1 (en) 2006-10-04 2008-04-10 Motorola, Inc. Radio resource assignment in control channel in wireless communication systems
US8447594B2 (en) * 2006-11-29 2013-05-21 Loquendo S.P.A. Multicodebook source-dependent coding and decoding
US8000961B2 (en) * 2006-12-26 2011-08-16 Yang Gao Gain quantization system for speech coding to improve packet loss concealment
US8688437B2 (en) 2006-12-26 2014-04-01 Huawei Technologies Co., Ltd. Packet loss concealment for speech coding
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.
RU2463674C2 (ru) * 2007-03-02 2012-10-10 Панасоник Корпорэйшн Кодирующее устройство и способ кодирования
US8160872B2 (en) * 2007-04-05 2012-04-17 Texas Instruments Incorporated Method and apparatus for layered code-excited linear prediction speech utilizing linear prediction excitation corresponding to optimal gains
EP2381580A1 (en) * 2007-04-13 2011-10-26 Global IP Solutions (GIPS) AB Adaptive, scalable packet loss recovery
US20090006081A1 (en) * 2007-06-27 2009-01-01 Samsung Electronics Co., Ltd. Method, medium and apparatus for encoding and/or decoding signal
KR101403340B1 (ko) * 2007-08-02 2014-06-09 삼성전자주식회사 변환 부호화 방법 및 장치
CN101170554B (zh) * 2007-09-04 2012-07-04 萨摩亚商·繁星科技有限公司 资讯安全传递系统
US8422480B2 (en) * 2007-10-01 2013-04-16 Qualcomm Incorporated Acknowledge mode polling with immediate status report timing
CA2702669C (en) * 2007-10-15 2015-03-31 Lg Electronics Inc. A method and an apparatus for processing a signal
CN101903945B (zh) * 2007-12-21 2014-01-01 松下电器产业株式会社 编码装置、解码装置以及编码方法
US8190440B2 (en) * 2008-02-29 2012-05-29 Broadcom Corporation Sub-band codec with native voice activity detection
JP2011518345A (ja) * 2008-03-14 2011-06-23 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション スピーチライク信号及びノンスピーチライク信号のマルチモードコーディング
JP4506870B2 (ja) * 2008-04-30 2010-07-21 ソニー株式会社 受信装置および受信方法、並びにプログラム
US20090319261A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8768690B2 (en) * 2008-06-20 2014-07-01 Qualcomm Incorporated Coding scheme selection for low-bit-rate applications
US20090319263A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US20100027524A1 (en) * 2008-07-31 2010-02-04 Nokia Corporation Radio layer emulation of real time protocol sequence number and timestamp
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
US8156530B2 (en) 2008-12-17 2012-04-10 At&T Intellectual Property I, L.P. Method and apparatus for managing access plans
KR101622950B1 (ko) * 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
EP3093843B1 (en) * 2009-09-29 2020-12-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Mpeg-saoc audio signal decoder, mpeg-saoc audio signal encoder, method for providing an upmix signal representation using mpeg-saoc decoding, method for providing a downmix signal representation using mpeg-saoc decoding, and computer program using a time/frequency-dependent common inter-object-correlation parameter value
KR101404724B1 (ko) * 2009-10-07 2014-06-09 니폰덴신뎅와 가부시키가이샤 무선 통신 시스템, 무선 중계국 장치, 무선 단말국 장치 및 무선 통신 방법
EP2490214A4 (en) * 2009-10-15 2012-10-24 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR SIGNAL PROCESSING
TWI484473B (zh) * 2009-10-30 2015-05-11 Dolby Int Ab 用於從編碼位元串流擷取音訊訊號之節奏資訊、及估算音訊訊號之知覺顯著節奏的方法及系統
CA2789107C (en) * 2010-04-14 2017-08-15 Voiceage Corporation Flexible and scalable combined innovation codebook for use in celp coder and decoder
US8660195B2 (en) * 2010-08-10 2014-02-25 Qualcomm Incorporated Using quantized prediction memory during fast recovery coding
BR122021003886B1 (pt) 2010-08-12 2021-08-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V Reamostrar sinais de saída de codecs de áudio com base em qmf
JP5749462B2 (ja) * 2010-08-13 2015-07-15 株式会社Nttドコモ オーディオ復号装置、オーディオ復号方法、オーディオ復号プログラム、オーディオ符号化装置、オーディオ符号化方法、及び、オーディオ符号化プログラム
WO2012045816A1 (en) 2010-10-07 2012-04-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for level estimation of coded audio frames in a bit stream domain
US9767823B2 (en) 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and detecting a watermarked signal
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
US8976675B2 (en) * 2011-02-28 2015-03-10 Avaya Inc. Automatic modification of VOIP packet retransmission level based on the psycho-acoustic value of the packet
JP5719966B2 (ja) * 2011-04-08 2015-05-20 ドルビー ラボラトリーズ ライセンシング コーポレイション 2つのエンコードされたビットストリームからのオーディオストリームの混合において使用するためのメタデータの自動設定
NO2669468T3 (es) * 2011-05-11 2018-06-02
EP2710589A1 (en) * 2011-05-20 2014-03-26 Google, Inc. Redundant coding unit for audio codec
US8909539B2 (en) * 2011-12-07 2014-12-09 Gwangju Institute Of Science And Technology Method and device for extending bandwidth of speech signal
US9275644B2 (en) 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding
EP2891149A1 (en) * 2012-08-31 2015-07-08 Dolby Laboratories Licensing Corporation Processing audio objects in principal and supplementary encoded audio signals
MX362990B (es) * 2013-01-08 2019-03-01 Dolby Int Ab Prediccion basada en modelo en un banco de filtros de muestreo critico.
CN107257234B (zh) * 2013-01-21 2020-09-15 杜比实验室特许公司 解码具有保留数据空间中的元数据容器的编码音频比特流
RU2602332C1 (ru) * 2013-01-21 2016-11-20 Долби Лабораторис Лайсэнзин Корпорейшн Перекодировка метаданных
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
AU2014283389B2 (en) 2013-06-21 2017-10-05 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for improved concealment of the adaptive codebook in ACELP-like concealment employing improved pulse resynchronization
AU2014283393A1 (en) * 2013-06-21 2016-02-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for improved concealment of the adaptive codebook in ACELP-like concealment employing improved pitch lag estimation
CN109785851B (zh) 2013-09-12 2023-12-01 杜比实验室特许公司 用于各种回放环境的动态范围控制
US10614816B2 (en) * 2013-10-11 2020-04-07 Qualcomm Incorporated Systems and methods of communicating redundant frame information
CN104751849B (zh) 2013-12-31 2017-04-19 华为技术有限公司 语音频码流的解码方法及装置
EP2922055A1 (en) * 2014-03-19 2015-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and corresponding computer program for generating an error concealment signal using individual replacement LPC representations for individual codebook information
CN107369455B (zh) * 2014-03-21 2020-12-15 华为技术有限公司 语音频码流的解码方法及装置
CA2940657C (en) * 2014-04-17 2021-12-21 Voiceage Corporation Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates
EP2963645A1 (en) 2014-07-01 2016-01-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Calculator and method for determining phase correction data for an audio signal
US9893835B2 (en) * 2015-01-16 2018-02-13 Real-Time Innovations, Inc. Auto-tuning reliability protocol in pub-sub RTPS systems
WO2017050398A1 (en) * 2015-09-25 2017-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for signal-adaptive switching of the overlap ratio in audio transform coding
WO2017060411A1 (en) 2015-10-08 2017-04-13 Dolby International Ab Layered coding for compressed sound or sound field representations
CN116312576A (zh) 2015-10-08 2023-06-23 杜比国际公司 声音或声场的压缩hoa表示的解码方法和装置
US10049682B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
US10049681B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
CN107025125B (zh) * 2016-01-29 2019-10-22 上海大唐移动通信设备有限公司 一种原始码流解码方法和系统
CN107564535B (zh) * 2017-08-29 2020-09-01 中国人民解放军理工大学 一种分布式低速语音通话方法
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10734006B2 (en) 2018-06-01 2020-08-04 Qualcomm Incorporated Audio coding based on audio pattern recognition
US10580424B2 (en) * 2018-06-01 2020-03-03 Qualcomm Incorporated Perceptual audio coding as sequential decision-making problems
US10957331B2 (en) * 2018-12-17 2021-03-23 Microsoft Technology Licensing, Llc Phase reconstruction in a speech decoder
WO2020164753A1 (en) 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method selecting an error concealment mode, and encoder and encoding method
US10984808B2 (en) * 2019-07-09 2021-04-20 Blackberry Limited Method for multi-stage compression in sub-band processing
CN110910906A (zh) * 2019-11-12 2020-03-24 国网山东省电力公司临沂供电公司 基于电力内网的音频端点检测及降噪方法
CN113724716B (zh) * 2021-09-30 2024-02-23 北京达佳互联信息技术有限公司 语音处理方法和语音处理装置
US20230154474A1 (en) * 2021-11-17 2023-05-18 Agora Lab, Inc. System and method for providing high quality audio communication over low bit rate connection
CN117558283B (zh) * 2024-01-12 2024-03-22 杭州国芯科技股份有限公司 一种多路多标准的音频解码系统

Family Cites Families (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969192A (en) 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US4802171A (en) 1987-06-04 1989-01-31 Motorola, Inc. Method for error correction in digitally encoded speech
US4815134A (en) 1987-09-08 1989-03-21 Texas Instruments Incorporated Very low rate speech encoder and decoder
CN1062963C (zh) 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US5664051A (en) 1990-09-24 1997-09-02 Digital Voice Systems, Inc. Method and apparatus for phase synthesis for speech processing
KR960013206B1 (ko) 1990-12-31 1996-10-02 박헌철 조립식 원적외선 사우나 욕실
US5255339A (en) 1991-07-19 1993-10-19 Motorola, Inc. Low bit rate vocoder means and method
US5657418A (en) * 1991-09-05 1997-08-12 Motorola, Inc. Provision of speech coder gain information using multiple coding modes
US5734789A (en) 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
JP2746039B2 (ja) * 1993-01-22 1998-04-28 日本電気株式会社 音声符号化方式
US20030075869A1 (en) * 1993-02-25 2003-04-24 Shuffle Master, Inc. Bet withdrawal casino game with wild symbol
US5706352A (en) 1993-04-07 1998-01-06 K/S Himpp Adaptive gain and filtering circuit for a sound reproduction system
US5673364A (en) * 1993-12-01 1997-09-30 The Dsp Group Ltd. System and method for compression and decompression of audio signals
US5615298A (en) 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5717823A (en) 1994-04-14 1998-02-10 Lucent Technologies Inc. Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders
JP3277705B2 (ja) * 1994-07-27 2002-04-22 ソニー株式会社 情報符号化装置及び方法、並びに情報復号化装置及び方法
TW271524B (es) 1994-08-05 1996-03-01 Qualcomm Inc
US5699477A (en) 1994-11-09 1997-12-16 Texas Instruments Incorporated Mixed excitation linear prediction with fractional pitch
US5751903A (en) 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE504010C2 (sv) * 1995-02-08 1996-10-14 Ericsson Telefon Ab L M Förfarande och anordning för prediktiv kodning av tal- och datasignaler
FR2734389B1 (fr) 1995-05-17 1997-07-18 Proust Stephane Procede d'adaptation du niveau de masquage du bruit dans un codeur de parole a analyse par synthese utilisant un filtre de ponderation perceptuelle a court terme
US5668925A (en) 1995-06-01 1997-09-16 Martin Marietta Corporation Low data rate speech encoder with mixed excitation
US5664055A (en) 1995-06-07 1997-09-02 Lucent Technologies Inc. CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US5774837A (en) 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
EP0763818B1 (en) * 1995-09-14 2003-05-14 Kabushiki Kaisha Toshiba Formant emphasis method and formant emphasis filter device
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
TW321810B (es) * 1995-10-26 1997-12-01 Sony Co Ltd
IT1281001B1 (it) 1995-10-27 1998-02-11 Cselt Centro Studi Lab Telecom Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio.
EP0788091A3 (en) * 1996-01-31 1999-02-24 Kabushiki Kaisha Toshiba Speech encoding and decoding method and apparatus therefor
US5778335A (en) 1996-02-26 1998-07-07 The Regents Of The University Of California Method and apparatus for efficient multiband celp wideband speech and music coding and decoding
US6041345A (en) 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
SE506341C2 (sv) 1996-04-10 1997-12-08 Ericsson Telefon Ab L M Metod och anordning för rekonstruktion av en mottagen talsignal
JP3335841B2 (ja) 1996-05-27 2002-10-21 日本電気株式会社 信号符号化装置
US5819298A (en) 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
JPH1078799A (ja) * 1996-09-04 1998-03-24 Fujitsu Ltd コードブック
US6570991B1 (en) 1996-12-18 2003-05-27 Interval Research Corporation Multi-feature speech/music discrimination system
US6317714B1 (en) 1997-02-04 2001-11-13 Microsoft Corporation Controller and associated mechanical characters operable for continuously performing received control data while engaging in bidirectional communications over a single communications channel
US6134518A (en) 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6131084A (en) 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
IL120788A (en) 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
KR100564862B1 (ko) 1997-05-12 2006-03-28 아마티 커뮤니케이션즈 코포레이션 송신 장치 및 방법, 복원 장치 및 방법, 수신 장치, 및 송수신기
US6009122A (en) 1997-05-12 1999-12-28 Amati Communciations Corporation Method and apparatus for superframe bit allocation
US6058359A (en) 1998-03-04 2000-05-02 Telefonaktiebolaget L M Ericsson Speech coding including soft adaptability feature
FI973873A (fi) 1997-10-02 1999-04-03 Nokia Mobile Phones Ltd Puhekoodaus
US6263312B1 (en) 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
CA2684379C (en) 1997-10-22 2014-01-07 Panasonic Corporation A speech coder using an orthogonal search and an orthogonal search method
US6199037B1 (en) 1997-12-04 2001-03-06 Digital Voice Systems, Inc. Joint quantization of speech subframe voicing metrics and fundamental frequencies
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
WO1999050828A1 (en) 1998-03-30 1999-10-07 Voxware, Inc. Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US6480822B2 (en) 1998-08-24 2002-11-12 Conexant Systems, Inc. Low complexity random codebook structure
US6330533B2 (en) 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
US6385573B1 (en) 1998-08-24 2002-05-07 Conexant Systems, Inc. Adaptive tilt compensation for synthesized speech residual
US6823303B1 (en) 1998-08-24 2004-11-23 Conexant Systems, Inc. Speech encoder using voice activity detection in coding noise
US6493665B1 (en) 1998-08-24 2002-12-10 Conexant Systems, Inc. Speech classification and parameter weighting used in codebook search
FR2784218B1 (fr) 1998-10-06 2000-12-08 Thomson Csf Procede de codage de la parole a bas debit
US6438136B1 (en) 1998-10-09 2002-08-20 Microsoft Corporation Method for scheduling time slots in a communications network channel to support on-going video transmissions
US6289297B1 (en) 1998-10-09 2001-09-11 Microsoft Corporation Method for reconstructing a video frame received from a video source over a communication channel
JP4359949B2 (ja) 1998-10-22 2009-11-11 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
US6310915B1 (en) 1998-11-20 2001-10-30 Harmonic Inc. Video transcoder with bitstream look ahead for rate control and statistical multiplexing
US6226606B1 (en) 1998-11-24 2001-05-01 Microsoft Corporation Method and apparatus for pitch tracking
US6456964B2 (en) * 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6311154B1 (en) 1998-12-30 2001-10-30 Nokia Mobile Phones Limited Adaptive windows for analysis-by-synthesis CELP-type speech coding
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6377915B1 (en) 1999-03-17 2002-04-23 Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. Speech decoding using mix ratio table
US6460153B1 (en) 1999-03-26 2002-10-01 Microsoft Corp. Apparatus and method for unequal error protection in multiple-description coding using overcomplete expansions
US7117156B1 (en) * 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
US6952668B1 (en) 1999-04-19 2005-10-04 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
DE19921122C1 (de) 1999-05-07 2001-01-25 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals
EP1063807B1 (de) * 1999-06-18 2004-03-17 Alcatel Gemeinsame Quellen- und Kanalcodierung
US6633841B1 (en) 1999-07-29 2003-10-14 Mindspeed Technologies, Inc. Voice activity detection speech coding to accommodate music signals
US6434247B1 (en) 1999-07-30 2002-08-13 Gn Resound A/S Feedback cancellation apparatus and methods utilizing adaptive reference filter mechanisms
US6721337B1 (en) * 1999-08-24 2004-04-13 Ibiquity Digital Corporation Method and apparatus for transmission and reception of compressed audio frames with prioritized messages for digital audio broadcasting
US6775649B1 (en) 1999-09-01 2004-08-10 Texas Instruments Incorporated Concealment of frame erasures for speech transmission and storage system and method
US6505152B1 (en) 1999-09-03 2003-01-07 Microsoft Corporation Method and apparatus for using formant models in speech systems
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
AU7486200A (en) * 1999-09-22 2001-04-24 Conexant Systems, Inc. Multimode speech encoder
US6772126B1 (en) 1999-09-30 2004-08-03 Motorola, Inc. Method and apparatus for transferring low bit rate digital voice messages using incremental messages
US6313714B1 (en) * 1999-10-15 2001-11-06 Trw Inc. Waveguide coupler
US6510407B1 (en) * 1999-10-19 2003-01-21 Atmel Corporation Method and apparatus for variable rate coding of speech
US6826527B1 (en) 1999-11-23 2004-11-30 Texas Instruments Incorporated Concealment of frame erasures and method
US6621935B1 (en) 1999-12-03 2003-09-16 Microsoft Corporation System and method for robust image representation over error-prone channels
EP1164580B1 (en) * 2000-01-11 2015-10-28 Panasonic Intellectual Property Management Co., Ltd. Multi-mode voice encoding device and decoding device
GB2358558B (en) 2000-01-18 2003-10-15 Mitel Corp Packet loss compensation method using injection of spectrally shaped noise
US6732070B1 (en) 2000-02-16 2004-05-04 Nokia Mobile Phones, Ltd. Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching
US6693964B1 (en) 2000-03-24 2004-02-17 Microsoft Corporation Methods and arrangements for compressing image based rendering data using multiple reference frame prediction techniques that support just-in-time rendering of an image
US6757654B1 (en) * 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
JP2002118517A (ja) 2000-07-31 2002-04-19 Sony Corp 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法
US6934678B1 (en) 2000-09-25 2005-08-23 Koninklijke Philips Electronics N.V. Device and method for coding speech to be recognized (STBR) at a near end
EP1199709A1 (en) 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Error Concealment in relation to decoding of encoded acoustic signals
US6968309B1 (en) 2000-10-31 2005-11-22 Nokia Mobile Phones Ltd. Method and system for speech frame error concealment in speech decoding
CN1202514C (zh) * 2000-11-27 2005-05-18 日本电信电话株式会社 编码和解码语音及其参数的方法、编码器、解码器
KR100830857B1 (ko) * 2001-01-19 2008-05-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 전송 시스템, 오디오 수신기, 전송 방법, 수신 방법 및 음성 디코더
US6614370B2 (en) 2001-01-26 2003-09-02 Oded Gottesman Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation
US6754624B2 (en) * 2001-02-13 2004-06-22 Qualcomm, Inc. Codebook re-ordering to reduce undesired packet generation
ATE439666T1 (de) * 2001-02-27 2009-08-15 Texas Instruments Inc Verschleierungsverfahren bei verlust von sprachrahmen und dekoder dafer
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
US6941263B2 (en) 2001-06-29 2005-09-06 Microsoft Corporation Frequency domain postfiltering for quality enhancement of coded speech
US7277554B2 (en) 2001-08-08 2007-10-02 Gn Resound North America Corporation Dynamic range compression using digital frequency warping
US7512535B2 (en) 2001-10-03 2009-03-31 Broadcom Corporation Adaptive postfiltering methods and systems for decoding speech
EP1435142B1 (en) * 2001-10-11 2008-04-09 Interdigital Technology Corporation System and method for utilizing unused capacity in the data field of a special burst
US6785645B2 (en) 2001-11-29 2004-08-31 Microsoft Corporation Real-time speech and music classifier
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6647366B2 (en) 2001-12-28 2003-11-11 Microsoft Corporation Rate control strategies for speech and music coding
US6789123B2 (en) 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
CA2388439A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
DE602004004950T2 (de) * 2003-07-09 2007-10-31 Samsung Electronics Co., Ltd., Suwon Vorrichtung und Verfahren zum bitraten-skalierbaren Sprachkodieren und -dekodieren
US7356748B2 (en) 2003-12-19 2008-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Partial spectral loss concealment in transform codecs
US7792670B2 (en) * 2003-12-19 2010-09-07 Motorola, Inc. Method and apparatus for speech coding
JP2007522706A (ja) 2004-01-19 2007-08-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオ信号処理システム
US7668712B2 (en) 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7362819B2 (en) 2004-06-16 2008-04-22 Lucent Technologies Inc. Device and method for reducing peaks of a composite signal
CA2574101C (en) 2004-07-19 2013-06-25 Eberle Design, Inc. Methods and apparatus for an improved signal monitor
EP1869673B1 (en) 2005-04-01 2010-09-22 Qualcomm Incorporated Methods and apparatuses for encoding and decoding a highband portion of a speech signal
US7177804B2 (en) 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
US7707034B2 (en) 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7831421B2 (en) 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder

Also Published As

Publication number Publication date
CA2611829A1 (en) 2006-12-07
US7177804B2 (en) 2007-02-13
US7280960B2 (en) 2007-10-09
JP5123173B2 (ja) 2013-01-16
NO339287B1 (no) 2016-11-21
RU2007144493A (ru) 2009-06-10
AU2006252965A1 (en) 2006-12-07
RU2418324C2 (ru) 2011-05-10
HK1123621A1 (en) 2009-06-19
US20060271357A1 (en) 2006-11-30
CN101189662A (zh) 2008-05-28
CN101189662B (zh) 2012-09-05
AU2006252965B2 (en) 2011-03-03
PL1886306T3 (pl) 2011-11-30
US7904293B2 (en) 2011-03-08
EP2282309A2 (en) 2011-02-09
DE602006018908D1 (de) 2011-01-27
NO20075782L (no) 2007-12-19
US7734465B2 (en) 2010-06-08
US20080040105A1 (en) 2008-02-14
EP1886306A1 (en) 2008-02-13
WO2006130229A1 (en) 2006-12-07
CA2611829C (en) 2014-08-19
US20080040121A1 (en) 2008-02-14
JP2008546021A (ja) 2008-12-18
JP2012141649A (ja) 2012-07-26
IL187196A (en) 2014-02-27
TW200641796A (en) 2006-12-01
NZ563462A (en) 2011-07-29
CN101996636A (zh) 2011-03-30
BRPI0610909A2 (pt) 2008-12-02
EP1886306A4 (en) 2008-09-10
KR20080009205A (ko) 2008-01-25
JP5186054B2 (ja) 2013-04-17
ATE492014T1 (de) 2011-01-15
EP1886306B1 (en) 2010-12-15
KR101238583B1 (ko) 2013-02-28
US20060271355A1 (en) 2006-11-30
EP2282309A3 (en) 2012-10-24
CN101996636B (zh) 2012-06-13
IL187196A0 (en) 2008-02-09
TWI413107B (zh) 2013-10-21

Similar Documents

Publication Publication Date Title
ES2358213T3 (es) Flujo redundante de bits de audio y métodos de procesamiento de flujo de bits de audio.
KR101246991B1 (ko) 오디오 신호 처리 방법
AU2006252972B2 (en) Robust decoder
ES2288950T3 (es) Procedimiento de compensacion de borrado de tramas en un codificador de voz de velocidad de transmision variable.
ES2302754T3 (es) Procedimiento y aparato para codificacion de habla sorda.
US9325544B2 (en) Packet-loss concealment for a degraded frame using replacement data from a non-degraded frame