ES2253912T3 - Codificador de audio que utiliza la transmision repetida de partes de paquetes. - Google Patents

Codificador de audio que utiliza la transmision repetida de partes de paquetes.

Info

Publication number
ES2253912T3
ES2253912T3 ES99946330T ES99946330T ES2253912T3 ES 2253912 T3 ES2253912 T3 ES 2253912T3 ES 99946330 T ES99946330 T ES 99946330T ES 99946330 T ES99946330 T ES 99946330T ES 2253912 T3 ES2253912 T3 ES 2253912T3
Authority
ES
Spain
Prior art keywords
data
signal
subbands
referring
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES99946330T
Other languages
English (en)
Inventor
Rory Stewart Turnbull
Andrew Gordon Davis
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Application granted granted Critical
Publication of ES2253912T3 publication Critical patent/ES2253912T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Transmitters (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

Aparato para la transmisión de señales que comprende: (a) medios de codificación (13) operativos para generar una primera salida (B0 a B15) que proporciona primeros datos, a partir de los cuales un decodificador (36) puede generar una señal reconstruida, y una segunda salida (B16 a B31) que proporciona segundos datos; y (b) medios operativos para ensamblar paquetes de datos para la transmisión, caracterizado porque los medios de codificación comprenden un codificador operativo para generar tanto dicha primera salida como dicha segunda salida, y porque la segunda salida comprende datos de mejora, por medio de los cuales un decodificador que recibe tanto los primeros como los segundos datos puede generar una señal reconstruida de mayor calidad, y porque cada paquete contiene: datos primarios que incluyen los primeros datos referentes a una parte temporal de la señal y los segundos datos referentes a la misma parte temporal de la señal; y datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal pero carecen de los segundos datos referentes a dicha parte.

Description

Codificador de audio que utiliza la transmisión repetida de partes de paquetes.
La presente invención se refiere a la transmisión de señales en paquetes discretos y, en particular, al envío de señales de audio, aunque es aplicable también a otros tipos de señales (por ejemplo, las señales de vídeo). Más particularmente, la presente invención se refiere a la transmisión de señales de audio codificadas digitalmente, en las cuales se envía información acerca de las tramas consecutivas de las señales de audio en paquetes discretos consecutivos de las señales transmitidas que son utilizados después por un receptor para crear una réplica de las señales originales (por motivos descriptivos, se supondrá que existe una correspondencia biunívoca entre las tramas de audio y los paquetes de transmisión, aunque en realidad esta condición no es esencial). La presente invención trata de hacer frente a los problemas originados cuando se pierde o altera la información transmitida, de tal forma que uno (o más) de los paquetes no estará disponible para el receptor. Estas pérdidas pueden producirse en muchos tipos de sistemas de transmisión, debido, por ejemplo, al ruido o (en un sistema de radio) al desvanecimiento. En algunos tipos de sistemas (por ejemplo, los servicios sin conexión como Internet), los diferentes paquetes pueden transmitirse a través de trayectorias diferentes y, por lo tanto, pueden estar sujetos a retardos diferentes y de una duración tan elevada como para que la recepción de los paquetes tenga lugar en un orden distinto al orden en que éstos fueron transmitidos. Convencionalmente, esto es posible proporcionando al receptor una memoria tampón que introduce un retardo, es decir, el receptor almacena los paquetes recibidos en la memoria tampón y, si los paquetes se numeran en el transmisor, el receptor puede leer a continuación los paquetes de la memoria tampón en la secuencia original. En muchas aplicaciones, es necesario mantener un retardo de duración razonablemente corta si no se desea que el retardo de transmisión global sea excesivo, existiendo la posibilidad de que algún paquete experimente un retardo superior al período de retardo de la memoria tampón. En tal caso, el paquete se pierde de hecho, puesto que el receptor es incapaz de utilizarlo. Asimismo, se ha propuesto (por ejemplo, en el documento "Control Mechanisms for Packet Audio in the Internet" de J. Bolot y A. García, Proceedings of IEEE INFOCOM '96, Conference on Computer Communications, marzo de 1996, pp.232-9, y en el documento "Reliable Audio for use over the Internet" de V. Hardman, M. Sasse, M. Handley y A. Watson, Proceedings of INET'95, junio de 1995, pp. 27-30) proporcionar redundancia en la señal para que, de ese modo, cada paquete transmita, aparte de los datos relativos a una trama de la señal de audio, datos referentes a la trama anterior de la señal de audio, codificados mediante un algoritmo de codificación de velocidad binaria inferior, de tal forma que, en caso de perderse una trama, sea posible decodificar los datos redundantes de la trama siguiente y utilizarlos para rellenar el espacio vacío de la señal de audio decodificada. No obstante, este procedimiento puede ser complejo y puede presentar dificultades debidas al funcionamiento discontinuo del decodificador, dando lugar a distorsiones. En el documento EP-A-553538, se da a conocer un tipo de codificación en subbandas mediante asignación dinámica de bits, y se describen las ventajas de la utilización de subbandas para ahorrar en ancho de banda y cómo debe configurarse el correspondiente codificador.
El documento WO 95 06368 describe un sistema de transmisión de información que está sujeto a desvanecimiento. Se da a conocer un transmisor que envía un primer tren de información y un segundo tren de información retardado en dos subportadoras diferentes. El receptor puede reparar un fallo del primer tren utilizando el segundo tren de información retardado de la otra subportadora.
Según un aspecto de la presente invención, se proporciona un aparato para la transmisión de señales que comprende: (a) un codificador operativo para generar una primera salida que proporciona primeros datos, a partir de los cuales un decodificador puede generar una señal reconstruida, y una segunda salida que proporciona segundos datos de mejora, por medio de los cuales un decodificador que recibe tanto los primeros como los segundos datos puede generar una señal reconstruida de mayor calidad; y (b) medios operativos para ensamblar paquetes de datos para la transmisión, conteniendo cada paquete: datos primarios que incluyen los primeros datos referentes a una parte temporal de la señal y los segundos datos referentes a la misma parte de la señal; y datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal y carecen de los segundos datos referentes a dicha
parte.
Dicha parte temporal diferente puede ser una parte posterior con respecto a la parte representada por los datos primarios (por ejemplo, la parte que sigue inmediatamente a la parte representada por los datos primarios) o puede ser una parte anterior con respecto a la parte representada por los datos primarios. Preferentemente, los medios de ensamblaje están dispuestos para incluir, en cada paquete, un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en los paquetes. En una disposición preferida, el codificador puede utilizarse para generar una pluralidad de salidas que proporcionan datos de mejora, representando los conjuntos de datos de mejora consecutivos mejoras consecutivas de la calidad de la señal reconstruida, los datos primarios incluyen la totalidad de dichas entradas y los datos secundarios incluyen primeros datos referentes a una pluralidad equivalente de partes temporales diferentes de la señal y números gradualmente decrecientes de conjuntos de segundos datos referentes a dichas partes.
Las señales pueden ser señales de audio y, entonces, el codificador es un codificador de señales de audio (por ejemplo, un codificador en subbandas en el que los primeros datos incluyen datos referentes a las subbandas de frecuencias más bajas del codificador, y los segundos datos de mejora incluyen datos referentes a las subbandas de frecuencias más altas.
\newpage
Se utilice o no un codificador en subbandas, los primeros datos pueden incluir representaciones binarias de valores digitales y los segundos datos pueden incluir bits adicionales que representan una resolución más precisa de dichos valores digitales.
Un codificador en subbandas particularmente preferido adecuado para utilizar en el aparato de transmisión (aunque tiene otros usos también) comprende:
(a)
medios de filtro para recibir una señal de audio sometida a muestreo y para dividir la señal en una pluralidad de señales de subbandas, cada una de las cuales corresponde a una respectiva subbanda de frecuencias;
(b)
un cuantificador para cuantificar las señales de subbandas;
(c)
medios de asignación de bits para determinar adaptativamente el número de niveles de cuantificación que van a ser utilizados por el cuantificador dependiendo de las características de la señal;
y en el que el cuantificador presenta una primera salida para proporcionar dichos primeros datos, comprendiendo dichos primeros datos valores cuantificados para una o más de dichas subbandas, y una segunda salida para proporcionar dichos segundos datos, comprendiendo dichos segundos datos, para por lo menos una de las subbandas con respecto a la cual se proporcionan valores cuantificados en la primera salida, bits adicionales de mejora que representan una cuantificación menos basta de los valores de dicha subbanda o dichas subbandas, y en el que los medios de asignación de bits son operativos para realizar una primera operación de asignación, mediante la cual se asigna entre las subbandas una primera cuota de bits predeterminada para la primera salida, seguida de una segunda operación de asignación, mediante la cual se asigna entre las subbandas una segunda cuota de bits predeterminada para los bits adicionales de la segunda salida.
Si se desea, la segunda salida puede proporcionar también valores cuantificados para una subbanda por lo menos, con respecto a la cual no se proporcionan valores cuantificados en la primera salida. En una disposición preferida, el cuantificador presenta por lo menos una salida adicional, y la segunda salida y la salida o las salidas adicionales, en cada caso, proporcionan valores para subbandas no representadas en ninguna salida de orden inferior o proporcionan bits adicionales para subbandas que están representadas en una salida de orden inferior, siendo operativos los medios de asignación de bits para realizar un grupo de operaciones de asignación en una cantidad igual al número de salidas, estando destinada cada una de dichas operaciones a asignar, para esa salida, una cuota de bits respectiva entre las subbandas.
En otro aspecto de la presente invención, se proporciona un aparato para la recepción de señales que comprende:
(a)
medios para recibir paquetes de datos, conteniendo cada paquete:
datos primarios que incluyen primeros datos referentes a una parte temporal de la señal y segundos datos de mejora referentes a la misma parte de la señal y
datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal;
(b)
una memoria tampón para almacenar los paquetes recibidos;
(c)
un decodificador capaz de generar una señal reconstruida a partir de los primeros datos solas y capaz de generar una señal reconstruida de mayor calidad a partir de los primeros y los segundos datos simultáneamente;
(d)
medios de control operativos para leer en la memoria tampón los datos primarios referentes a partes temporales consecutivas de la señal y enviarlos al decodificador y, en caso de que los datos primarios referentes a una parte temporal de conversación estén ausentes de la memoria tampón, leer en su lugar los datos secundarios referentes a dicha parte temporal y enviarlos al decodificador.
Preferentemente, los medios de control son operativos, en dicho caso en el que los datos secundarios referentes a una parte temporal de conversación están ausentes de la memoria tampón, para leer los segundos datos de mejora con respecto a una parte temporal diferente de la señal de voz y enviarlos al decodificador.
Si cada paquete contiene un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en el mismo, los medios de control pueden disponerse para determinar la secuencia temporal de los paquetes mediante la consulta del código de secuencia, sin tener en cuenta el orden real de recepción de los paquetes.
En otro aspecto, la presente invención proporciona un procedimiento de codificación de señales para la transmisión, que comprende las etapas siguientes:
(a)
codificar una señal para generar una primera salida que proporciona primeros datos a partir de los cuales un decodificador puede generar una señal reconstruida, y una segunda salida que proporciona segundos datos;
(b)
ensamblar paquetes de datos para la transmisión; y
(c)
transmitir los paquetes ensamblados;
caracterizado porque la segunda salida comprende datos de mejora, por medio de los cuales el decodificador que recibe tanto los primeros como los segundos datos puede generar una señal reconstruida de mayor calidad; y porque cada paquete contiene:
datos primarios que incluyen los primeros datos referentes a una parte temporal de la señal y los segundos datos referentes a la misma parte de la señal y
datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal y carecen de los segundos datos referentes a dicha parte.
La presente invención proporciona también un procedimiento para transmitir señales codificadas mediante este procedimiento.
En otro aspecto, la presente invención proporciona un procedimiento de procesamiento de señales, que comprende las etapas siguientes:
(a)
recibir paquetes de datos, conteniendo cada paquete datos primarios que incluyen primeros datos referentes a una parte temporal de la señal y segundos datos de mejora referentes a la misma parte de la señal; y datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal;
(b)
almacenar los paquetes recibidos en una memoria tampón;
(c)
leer en la memoria tampón los datos primarios referentes a partes temporales consecutivas de la señal y enviar los datos primarios a un decodificador, siendo dicho decodificador capaz de generar una señal reconstruida de mayor calidad a partir de los primeros y los segundos datos simultáneamente;
(d)
en caso de que los datos primarios referentes a una parte temporal de conversación estén ausentes de la memoria tampón, leer en su lugar los datos secundarios referentes a dicha parte temporal y enviarlos al decodificador; y
(e)
decodificar los datos primarios leídos en la etapa (c) para generar una señal reconstruida a partir de los primeros datos solos; o
(f)
decodificar los datos secundarios leídos en la etapa (d) para generar una señal reconstruida.
A continuación, se describirán a título de ejemplo algunas formas de realización de la presente invención, haciendo referencia a los dibujos adjuntos, en los que:
la Figura 1 es un diagrama de bloques de un codificador de voz en subbandas utilizado en una primera forma de realización de la presente invención;
la Figura 2 es un diagrama de bloques de un decodificador de voz en subbandas para utilizar con el codificador de la Figura 1;
la Figura 3 es un diagrama de bloques de un transmisor según la primera forma de realización de la presente invención;
la Figura 4 es un diagrama de bloques de un receptor para utilizar con el transmisor de la Figura 3;
la Figura 5 es un diagrama de bloques de un codificador de voz en subbandas utilizado en una segunda forma de realización de la presente invención;
la Figura 6 es un diagrama de bloques de un decodificador de voz en subbandas para utilizar con el codificador de la Figura 5; y
la Figura 7 es un diagrama de bloques de un transmisor según la segunda forma de realización de la presente invención.
La Figura 1 representa un codificador de voz en subbandas simple que se utiliza en una primera forma de realización de la presente invención. La señal de audio de entrada se recibe como una secuencia de muestras digitales por la entrada 1. Habitualmente, esto se produce a una frecuencia de muestreo de 16 kHz, con 16 bits por muestra. La señal es dividida por un banco de filtros 2 en treinta y dos subbandas de 250 Hz de ancho de banda cada una. De esta forma, la subbanda inferior abarca está comprendida en el intervalo de 0 a 250 Hz y la superior en el intervalo de 7,75 a
8 kHz. A continuación, cada subbanda es sometida a submuestreo 3 a una frecuencia de 500 Hz.
La codificación en subbandas se fundamenta en el hecho de que la importancia relativa de las diferentes subbandas para la calidad global de la señal de audio decodificada es diferente, y que, por consiguiente, la compresión puede llevarse a cabo asignando a cada subbanda sólo la cantidad de bits por muestra que está justificada por su importancia perceptiva. En este codificador, la asignación de bits a las subbandas es fija, de tal forma que, por ejemplo, a la subbanda inferior siempre se le asignarán 8 bits por muestra, mientras que, tal vez, a la 15ª subbanda siempre se le asignarán cuatro bits por muestra. Esta asignación fija se realiza basándose en las características conocidas de las señales de voz. La asignación de bits, que en la Figura se ilustra mediante el recuadro 4, consiste en realidad en el rechazo del número adecuado de bits menos significativos de las muestras. Como se ha descrito hasta ahora, esta disposición es completamente convencional. Debe tenerse en cuenta que este codificador se ha presentado anteriormente como un codificador de voz, debido a la asignación de bits fija específica para la voz. Como se observará más adelante, es posible emplear estrategias de asignación de bits adaptativas más perfeccionadas para obtener una mejor compresión de la voz, así como para adaptarse a otros tipos de señales de audio. Asimismo, debido a su simplicidad, este codificador no requiere intrínsecamente una estructura de alineación de trama; no obstante, se presupone que la trama de voz de entrada es de 1152 muestras, lo cual implica una duración de 72 ms a la frecuencia de muestreo de 16 kHz.
Las muestras obtenidas tras la asignación de bits 4 se agrupan en dos trenes, de los cuales el primero está formado por las muestras de las dieciséis subbandas inferiores B0...B15 y el segundo, por las dieciséis subbandas superiores B16...B31. Evidentemente, el número concreto de bits por trama de cada tren depende de los números concretos de bits asignados.
La Figura 2 representa un decodificador correspondiente (de construcción convencional) en el que las subbandas B0...B31 se someten a sobremuestreo 5 para pasar de nuevo a la frecuencia de 16 kHz y se aplican a un banco de filtros 6, cuyas salidas se suman conjuntamente en un sumador 7.
Si ambos trenes se aplican al decodificador, podrá recuperarse una señal de voz de 0 a 8 kHz de ancho de banda. Como es obvio, el segundo tren contiene información sólo de la parte de la señal que se halla en el intervalo de frecuencias de 4 a 8 kHz. Por lo tanto, si se rechaza el segundo tren, el primer tren todavía puede ser decodificado individualmente para generar una señal de voz adecuada, aunque de banda limitada (0 a 4 kHz). Por lo tanto, puede considerarse que el codificador es un codificador de capas, puesto que recibe una señal de audio y presenta una primera salida que suministra una versión codificada de la señal, y una segunda salida que transmite información de mejora que puede decodificarse junto con la primera salida para generar una señal decodificada de mayor calidad. En esta descripción, el primer tren se denomina "primera capa" y los dos trenes juntos se denominan "segunda capa".
La Figura 3 representa un aparato para la transmisión de señales de voz. La entrada 10 recibe señales de voz analógicas que son convertidas en señales digitales, a una frecuencia de muestreo de 16 kHz, por un convertidor analógico-digital 11 bajo el control de los impulsos de reloj \varphi_{s} de 16 kHz de un generador de reloj 12, y son aplicadas a un codificador en subbandas 13 que ya se ha descrito haciendo referencia a la Figura 1. El codificador en subbandas 13 presenta dos salidas que transmiten el primer tren de bits codificados ("tren 1") y el segundo tren ("tren 2"), respectivamente. Los elementos de retardo 14, 15 aplican un retardo de un período de trama (72 ms) a estos trenes, que son introducidos a intervalos de 72 ms en un registro de desplazamiento de entrada paralelo y salida serie 16, bajo el control de un reloj de tramas \varphi_{F} de 13,89 Hz de un circuito "\div 1152" 17, para el ensamblaje de un paquete y su transmisión. Al mismo tiempo, los bits del tren 1 de la trama siguiente son conducidos desde el codificador 13, sin pasar a través del elemento de retardo 15, hasta el registro 16 para ser introducidos también en éste. Esto significa que cada paquete transmitido (excepto, el primero, por supuesto) va precedido por un paquete que contiene también un duplicado de la información del tren 1. Si se desea, mediante una redistribución adecuada de los retardos, este duplicado puede transmitirse en el siguiente paquete, o en un paquete anterior o posterior separado del paquete en cuestión por dos o más paquetes. El contador de tramas 18 efectúa un recuento cíclico de 0 a 255, sincronizado mediante \varphi_{F}, para generar un número de trama fn que también se introduce en el registro de desplazamiento. El contenido del registro de desplazamiento se obtiene en serie, según un reloj de línea \varphi_{L} y a la frecuencia deseada, por la salida 19. Como es obvio, la frecuencia de reloj debe ser suficientemente alta como para obtener todo el paquete almacenado en el registro en 72 ms o menos (no existe límite superior, por supuesto). En la práctica, el paquete transmitido debe contener un código de alineación de trama y tal vez deba contener información de direccionamiento, aunque estos serán convencionales. El primer y el segundo tren de la trama n se denominarán en lo sucesivo S1(n) y S2(n), respectivamente.
La Figura 4 representa un receptor para recibir las transmisiones del transmisor de la Figura 3, siendo introducido el paquete recibido (tras la recuperación del reloj de línea y la información de alineación de trama por medios no representados) en un registro de desplazamiento de entrada serie y salida paralelo 30. Para adaptarse a las variaciones de los retardos de transmisión, los trenes recibidos se almacenan en una memoria tampón cíclica 31 que presenta un "retardo de reconstitución". La unidad de control de escritura 32 recibe el contenido del registro 30 y es operativa para escribir el paquete en la memoria tampón 31. Los paquetes se disponen en la memoria tampón según el orden indicado por el número de secuencia. Si no se recibe un paquete esperado, entonces queda un espacio vacío para que éste pueda insertarse en la secuencia correcta si llega más tarde (aunque dentro del período de reconstitución).
La lectura de datos de la memoria tampón se realiza con ayuda de un contador de tramas 33 similar al contador de tramas 18 del transmisor, que es incrementado cada 72 ms por un reloj local 34. El contador puede aplicar a las tramas de entrada un retardo equivalente al período de reconstitución (habitualmente de 1 a 10 tramas y, por ejemplo, de 6, dependiendo de las características de conexión y del intervalo de retardo tolerable), gracias a que al principio de un período de recepción recibe el número de trama recibida fn, menos 6 (u otro valor de reconstitución). Si se produce un desbordamiento o subdesbordamiento de la memoria tampón debido a una deriva entre el reloj de 72 ms y el reloj del transmisor \varphi_{F}, el sistema se restablece actualizando el contador. Normalmente, una unidad de control de lectura 35 accede al contador 33 para obtener el valor de recuento actual fnr y leer en la memoria los datos
S1(n) y S2(n) del paquete que presenta ese número de trama, y los pasa a un decodificador de voz 36 como el descrito haciendo referencia a la Figura 2. Si no se pierde ningún paquete y no se retarda ningún paquete en relación con los paquetes transmitidos previamente en más de 6 x 72 = 432 ms, se asegurará un suministro continuo de datos al
decodificador 363.
Si se produce alguna pérdida o un retardo excesivo, el paquete deseado que presenta un número de trama fn igual al contenido del contador fnr no estará presente en la memoria tampón. En este caso, la unidad de control de lectura 34 lee en la memoria tampón los datos S1(n) del paquete que presenta el número de trama (fnr-1), es decir, el duplicado de la información del tren 1 para la trama fnr que se ha transmitido en el paquete inmediatamente precedente, y los envía al decodificador. De esta forma, el decodificador continúa funcionando normalmente, pero no recibe ningún dato del tren 2 para la trama, produciéndose de ese modo una reducción temporal de ancho de banda durante un período de trama. La unidad de control de lectura 35 señaliza este hecho al decodificador 36 por medio de una conexión 37, y el decodificador inhabilita las dieciséis subbandas superiores.
En una versión modificada, esta reducción puede moderarse mediante la repetición de los datos de la trama anterior para el tren 2 (es decir, la unidad de control de lectura lee los datos S1(n) y S2(n-1) del paquete (fnr-1).
Debe observarse que no es esencial que el codificador 13 sea un codificador en subbandas, o que su segundo tren represente información acerca de componentes de frecuencia más alta que los del primer tren. Básicamente, es posible utilizar cualquier otro codificador de capas, tal como un codificador PCM (de modulación por impulsos codificados) en el que el primer tren consta de muestras cuantificadas aproximadamente y el segundo tren consta de bits menos significativos adicionales de las mismas muestras, que sirva evidentemente para reducir el nivel de ruido de cuantificación generado por un decodificador que recibe sólo el primer tren. Sin embargo, debe tenerse en cuenta también que sólo podrá sustituirse un tren superior ausente por una trama anterior cuando los datos de la trama anterior presenten una correlación suficiente con los datos del segundo tren perdidos, siendo éste el caso del sistema de subbandas descrito anteriormente pero no el del ejemplo de codificador PCM.
Debe observarse también que, aunque en la Figura 3 el duplicado del tren 1 de una trama particular se transmite en el paquete que precede al paquete que transmite la información completa de la trama, esto no es esencial (por ejemplo, el duplicado podría transmitirse en el paquete siguiente; es decir, n podría contener S1(n), S2(n) y S1(n-1). Esto significa que, para obtener un rendimiento similar, el retardo de reconstitución del receptor debe ser superior al anterior. De esta manera, el retardo de la señal en el receptor experimenta un aumento de 72 ms, aunque por otro lado el retardo de la señal en el transmisor experimenta una reducción de 72 ms. Además, el duplicado del tren 1 para una trama particular no debe ser transmitido necesariamente en un paquete que sea consecutivo al paquete que transmite toda la información de la trama. Puede elegirse una diferencia de retardo que sea adecuada para las características de un canal o una red de transmisión particular; por ejemplo, un retardo de dos o más tramas puede ser adecuado en un sistema de radio que es propenso a las ráfagas de errores.
La Figura 5 representa un codificador en subbandas más perfeccionado que el representado en la Figura 1. Este codificador se basa en (y es similar a) el codificador definido en la regla MPEG (grupo de expertos de imágenes en movimiento) ISO 13813-3. Sólo se describirán en detalle los aspectos del codificador que difieran de los especificados por la regla. La regla MPEG prevé el funcionamiento a una serie de frecuencias de muestreo de audio de entrada diferentes. En la descripción siguiente, se presupone que la frecuencia de muestreo es de 16 kbit/s, siendo por supuesto posible el escalado a otras frecuencias de muestreo si así se desea. Un filtro de análisis polifásico 40 recibe tramas de 1152 muestras de entrada, generándose una trama de análisis de 32 subbandas de 36 muestras cada una. Estas muestras son cuantificadas por un cuantificador 41 utilizando factores de escala variable controlados por el calculador de factores de escala 42. Los factores de escala se calculan de la forma descrita en la regla MPEG, y pueden codificarse de la misma manera, aunque para simplificar es preferible codificar los factores de escala con un valor constante de 12 bits por subbanda (para cada trama) en lugar de utilizar la representación de factores de escala de longitud variable prevista por la regla. (Si se utiliza una longitud fija, entonces la conexión entre el recuadro 42 y el recuadro 45 de la Figura 5 no es necesaria).
Las muestras se cuantifican según las asignaciones de bits determinadas para cada trama a partir de un procedimiento de asignación de bits adaptativo, para utilizar el fenómeno de enmascaramiento simultáneo y reducir al mínimo los efectos audibles de la cuantificación de muestras. El enmascaramiento simultáneo se produce cuando un componente de señal de bajo nivel deja de ser audible por la presencia simultánea de un componente más fuerte a cierta frecuencia cercana. La unidad 43 aplica una transformada rápida de Fourier (FFT) a la señal y proporciona el resultado a la unidad de enmascaramiento 44, donde las propiedades de enmascaramiento de cada trama de audio se calculan (como se describe en la regla MPEG) mediante un modelo psicoacústico y se representan mediante una función de enmascaramiento mask(k) para la k-ésima subbanda (k = 0...31). Esta función de enmascaramiento proporciona una estimación del nivel de señal para la subbanda k, por debajo del cual las señales dejan de ser audibles o por encima del cual se percibe ruido. Esta función se utiliza para determinar la relación señal-máscara smr para cada una de las 32 subbandas:
smr(k) = sig(k) - mask(k)
siendo sig(k) la energía de la señal en la subbanda k. Todas las cantidades se expresan en dB.
La asignación de bits propiamente dicha es llevada a cabo por una unidad de asignación de bits 45 que recibe los valores smr(k) de la unidad de enmascaramiento 44. La unidad de asignación de bits 45 lleva a cabo la asignación por medio de un procedimiento iterativo, en el que la capacidad de bits disponible se asigna en etapas, asignando más capacidad a cualquier subbanda que presente, de acuerdo con la asignación de capacidad de bits realizada hasta el momento, la relación máscara-ruido mnr más baja. No obstante, en lugar de expresarse la asignación como el número de bits asignados, en la regla (y el aparato de la Figura 5) se utiliza un código de asignación de bits entero que es traducido mediante una correspondiente tabla de asignación de bits, que permite asignar más capacidad incrementando simplemente dicho código.
La relación señal-ruido smr(k) (necesaria para el cálculo de la asignación de bits) puede estimarse con una precisión razonable multiplicando simplemente el número de bits asignados por 6 dB, o utilizando una tabla de consulta adecuada. Como alternativa, la relación señal-ruido puede calcularse teniendo en cuenta la señal concreta de la subban-
da k, así como el número de bits asignados para representarla.
Según la regla, sólo es necesario realizar la asignación de bits una vez por cada trama. Sin embargo, en el codificador de la Figura 5, los trenes superiores, además de aportar más subbandas que no están presentes en el tren inferior, también contienen más bits para las subbandas representadas. Por lo tanto, el procedimiento de asignación de bits debe ser realizado cuatro veces (para este ejemplo de cuatro trenes) de la manera que se va a describir, de tal forma que la primera subbanda (por ejemplo) pueda ser cuantificada a 20 niveles para el tren 1 y, entonces, el tren 1 contenga
4,3 bits para esta subbanda, pero cuantificada a 80 niveles en la siguiente capa, de tal forma que el tren 2 contenga dos bits más para esta subbanda. Debe observarse asimismo que el resultado de este procedimiento es un conjunto de códigos que define cada uno, según una tabla de consulta (cuyo contenido se representa en la Tabla 1 siguiente) contenida en la unidad de asignación de bits 45, la cuantificación de muestras para cada subtren. De ello se deriva que el número real de bits transmitido por cualquier tren es la diferencia entre el número de bits representados para dicho tren y el número de bits representados para el tren inferior.
TABLA 1
Código de asignación de bits AllocCode_{\mathit{j}}(k) 0 1 2 3 4 5 6 7
Niveles de cuantificación QLevel_{\mathit{j}}(k) 0 5 10 20 40 80 160 320
Bits/muestra Bits_{\mathit{j}}(k) 0 2,3 3,3 4,3 5,3 6,3 7,3 8,3
Bits (diferencial) B - 2,3 1 1 1 1 1 1
Deberán definirse las variables siguientes:
K
número de subbandas (32 en este ejemplo);
BitTot_{\mathit{j}}
número de bits disponibles para la capa j (es decir, el tren j y cualquier tren inferior, tomados conjuntamente) (los valores para este ejemplo se dan en la Tabla 2);
BitsAvailable
número de bits disponibles actualmente para asignar al tren actual;
SFLen
longitud (en bits) de los factores de escala (12 en este ejemplo);
AllocBNum_{\mathit{j}}(k)
longitud (en bits) del código de asignación de bits utilizado en el tren j para la subbanda k;
AllocMax_{\mathit{j}}(k)
(= 2^{AllocBNum_{\mathit{j}}(k)} - 1) valor máximo permitido del código de asignación para el tren j de la subban- da k;
AllocLim_{\mathit{i}}
número máximo de subbandas utilizadas en la subbanda k de la capa j;
AllocCode(k)
valor actual del código de asignación para la subbanda k de una capa;
AllocCode_{\mathit{j}}(k)
resultado del código de asignación para la subbanda k de la capa j;
Qlevel_{\mathit{j}}(k)
número de niveles de cuantificación que van a ser utilizados para la subbanda k del tren j;
Bits_{\mathit{j}}(k)
número de bits necesarios para codificar los niveles Qlevel_{\mathit{j}}(k).
TABLA 2
7
El procedimiento consiste en calcular smr(k) para todas las k (k = 0...k-1) de la manera indicada en la regla, es decir:
1.
Poner a cero AllocCode(k) y snr(k) para todas las k.
2.
Inicializar mnr(k) = snr(k) - smr(k) para todas las k.
3.
Establecer j = 1.
4.
Si j = 1, establecer BitsAvailable = BitTot_{\mathit{j}} - \sum\limits_{k=0}^{k-1} AllocBNum_{\mathit{j}}(k); en caso contrario, establecer BitsAvaila- ble = BitTot_{\mathit{j}} - BitTot_{\mathit{j-1}} - \sum\limits_{k=0}^{k-1} AllocBNum_{\mathit{j}}(k) (es decir, la capacidad disponible se reduce debido al encabezamiento necesario para la transmisión de los propios códigos de asignación de bits).
5.
Inicializar FullFlag(k) para todas las k, de tal forma que si AllocCode(k) < AllocMax_{\mathit{j}}(k), entonces Full- Flag(k) = 0; en caso contrario FullFlag(k) = 1. Si se establece FullFlag(k) = 0, será posible asignar bits a la subbanda k para el tren actual j, y si se establece FullFlag(k) = 1 se impedirá dicha asignación.
6.
Si FullFlag(k) = 1 para todas las k, ir a la etapa 19.
7.
Identificar el valor km de k que corresponde al valor más pequeño de mnr, es decir, para que se cumpla mnr(km) \leq mnr(k) para k \neq km. (Obsérvese que los valores de k con los cuales se cumple FullFlag(k) = 1 se ignoran).
8.
Consultar los números de bits B correspondientes al incremento propuesto del código de asignación (AllocCode(km)) de la Tabla 1.
9.
Establecer BitsRemaining = BitsAvailable - B*36.
10.
Si AllocCode(km) = 0, establecer BitsRemaining = BitsRemaining - SFLen (la primera vez que se realiza una asignación para una subbanda, debe tenerse en cuenta el hecho de que es necesario transmitir un factor de escala para el cuantificador).
11.
Si BitsRemaining < 0, establecer FullFlag(km) = 1 e ir a la etapa 7, en caso contrario, continuar (si no se dispone de suficientes bits para incrementar la asignación para la subbanda km, FullFlag(km) se ajusta para impedir la asignación a esta subbanda).
12.
Incrementar AllocCode(km) en 1.
13.
Establecer BitsAvailable = BitsRemaining.
14.
Determinar una nueva snr(km) (mediante medición o estimación).
15.
Calcular la mnr(km) para una nueva asignación, mediante mnr(km) = snr(km) - smr(km).
16.
Si AllocCode(km) = AllocMax_{\mathit{j}}(km), establecer FullFlag(km) a 1 para impedir la asignación.
17.
Ir a la etapa 7.
18.
Establecer AllocCode_{\mathit{j}}(k) = AllocCode(k) para todas las k (este es el conjunto de asignaciones de bits para el tren j).
19.
Incrementar j para el siguiente tren y repetir desde la etapa 5 hasta que se haya actuado sobre todos los trenes. Obsérvese en particular que AllocCode(k) no se restablece.
Las muestras de subbandas son cuantificadas por el cuantificador 41, que proporciona el número necesario de bits en cada tren. Por lo tanto, para el tren 1, se genera una cantidad de bits/muestra igual a Bits_{\mathit{j}}(k) para la k-ésima subbanda, mientras que para los trenes superiores se genera una cantidad de bits/muestra igual a Bits_{\mathit{j}}(k) - Bits_{\mathit{j-1}}(k). Estos bits son codificados y multiplexados por una unidad 46, junto con los factores de escala y los códigos de asignación de bits. Cuando se utilizan números no enteros de bits/muestra (como en el tren 1 del presente caso), el cuantificador proporciona de modo natural un número entero de bits/trama. Para el código de asignación 1 (5 niveles), el cuantificador genera qcod_{\mathit{5}} (3 bits) que representa un número comprendido en el intervalo de 0 a 4; para el código de asignación 2 (10 niveles), el cuantificador genera qcod_{\mathit{5}} más un bit adicional qbit_{\mathit{10}}, mientras que para el código de asignación 3 (20 niveles), el cuantificador genera éstos más un bit adicional qbit_{\mathit{20}} y así sucesivamente. Los 36 valores qcod_{\mathit{5}}(n), (n = 0...35) de una trama se combinan en grupos de 3 para dar 12 valores:
grp_{5}(i) = qcod_{5}(3 \text{*} 1) + 5 \text{*} qcod_{5}(3 \text{*} i+1) + 25 \text{*} qcod_{5}(3 \text{*} i+2)
siendo (i = 0...11) e indicando el operador * una multiplicación. Estos valores están comprendidos en el intervalo de 0 a 124 y se codifican mediante 7 bits.
El procedimiento de cuantificación de muestras de 4 capas se inicia utilizando el código de asignación de bits del nivel 4 para definir la resolución del cuantificador. El código de muestra cuantificada resultante se codifica a continuación según la serie de cuatro códigos de asignación de bits. En primer lugar, se comparan los códigos de asignación de la capa 4 y la capa 3. Si la asignación de la capa 3 es 0, las muestras cuantificadas se codifican por completo para el tren de la capa 4 mediante el sistema de mejora de agrupamiento de 5 capas más n bits descrito anteriormente. Si la asignación de la capa 3 no es 0, la diferencia de los códigos de asignación se utiliza para determinar el número de bits de mejora que van a codificarse para el tren de la capa 4. Este procedimiento se repite para las capas 3 y 2 para generar los correspondientes trenes codificados. Para la capa 1, una asignación no cero debe empezar con una codificación agrupada de 5 capas.
Con este procedimiento se obtiene un conjunto de cuatro trenes de cuantificación separados. Estos trenes pueden formarse en un codificador para generar las cuatro secuencias de muestras codificadas necesarias, y cada secuencia de muestras codificadas puede decodificarse para proporcionar una capa concreta de muestras de subbandas.
El multiplexor 46 forma cuatro trenes de salida a partir de la asignación de bits, el factor de escala y los parámetros de las muestras cuantificadas. Las asignaciones de subtrenes resultantes se representan en la Tabla 3, y los números de los factores de escala se basan en el supuesto de que se asignan bits a todas las subbandas disponibles. Si en la cuantificación de muestras de subbandas no se pueden utilizar todos los bits asignados, el multiplexor realiza el empaquetamiento con valores de bit cero.
TABLA 3
Subtren
1 2 3 4
Asignación de bits (bits/trama) 10 24 50 71
Factores de escala (bits/trama) 60 60 120 120
Muestras de subbandas (bits/trama) 506 492 982 2113
Total de bits/trama 576 576 1152 2304
Velocidad binaria (kbit/s) 8 8 16 32
La unidad 46 codifica un nuevo conjunto de códigos de asignación de bits para cada capa. El tren 1 contiene todos los códigos de asignación de bits de la capa 1 para las subbandas 0 a 4, y el tren 2 contiene los códigos de asignación de bits de la capa 2 para las subbandas 0 a 9. Cuando se decodifica la capa 2 para obtener los trenes 1 y 2, no se utilizan los códigos de asignación de bits de la capa 1, que pueden considerarse como un encabezamiento de 10 bits/trama (véase la Tabla 3). Análogamente, las asignaciones de bits para las capas 1, 2 y 3 que ascienden a 84 bits/trama representan un encabezamiento para la decodificación de la capa 4. Es posible utilizar una codificación diferencial entre trenes de las asignaciones de bits para reducir los encabezamientos de las capas 2, 3 y 4 y permitir, de ese modo, la aplicación de 1 ó 2 bits/trama adicionales a la codificación de las muestras de subbandas de la
capa 4.
En la Figura 6, se representa un decodificador para utilizar con el codificador de la Figura 5. El registro 50 recibe (tras la transmisión o la grabación) el tren 1 desde el codificador de la Figura 5. El registro dispone también de entradas para recibir los trenes 2, 3, 4 cuando éstos están disponibles; junto con un código de capa que indica cuántos trenes se van a recibir. El código de capa selecciona, por medio de un conmutador 51, el conjunto adecuado de códigos de asignación de bits, y controla un decuantificador de muestras 52 para funcionar, para cada subbanda, de acuerdo con el número de niveles de cuantificación indicados por el correspondiente código de asignación de bits del conjunto seleccionado.
Las muestras proporcionadas por el decuantificador 52 pasan, a continuación, a través de un filtro de síntesis 53 que funciona de forma convencional.
La Figura 7 representa un transmisor (que en muchos aspectos es similar al de la Figura 3, pero que utiliza el codificador de la Figura 5 ilustrado mediante la referencia 60) recibiendo señales de audio digital de entrada. Los cuatro trenes de salida S1, S2, S3, S4 obtenidos del codificador presentan 576, 576, 1152 y 2304 bits por trama, respectivamente. Los trenes son retardados en tres etapas de 72 ms por los elementos de retardo 61, 62, 63. Los cuatro trenes de la salida del elemento de retardo 63 se combinan en un multiplexor 64 para generar una señal de capa 4 de 4608 bit/trama Enc4(n) que será introducida en un registro de desplazamiento 65 análogo al registro de desplazamiento 16 de la Figura 3. Los trenes S1 a S3 de la salida del elemento de retardo 62 se combinan en un multiplexor 65 para generar una señal de capa 3 de 2304 bits Enc3(n+1) que será introducida en el registro de desplazamiento 65 (obsérvese que el índice es n + 1 para indicar un retardo menos y, por lo tanto, que los datos pertenecen a la trama siguiente). Del mismo modo, los trenes S1, S2 del elemento de retardo 61 se combinan en el multiplexor 66 para proporcionar la señal Enc2(n+2) de 1152 bits, y el tren S1, no retardado, genera la señal Enc1(n+3) de 576 bits. Todas estas señales, junto con un número de trama de ocho bits fn descrito anteriormente, se ensamblan en el registro 65 (dando un total de 4608 + 2304 + 1152 + 576 + 8 = 8648 bits, más la información de supervisión deseada), y se obtienen según un reloj de línea, de la forma descrita. Para su posterior consulta, los campos del paquete ensamblado en el registro de desplazamiento se marcan con las etiquetas F0 a F4. Aunque las disposiciones representadas están construidas en hardware discreto dedicado, es evidente que también pueden implementarse mediante uno o más dispositivos de procesamiento de señales digitales programados adecuadamente.
El correspondiente receptor presenta la misma estructura que la representada en la Figura 4 y se utiliza de la misma forma descrita, excepto en que el contenido del registro 30 corresponde en este caso al del registro 50 de la Figura 7, y el funcionamiento de la unidad de control de lectura 34 es más complejo. Normalmente, la unidad de control de lectura 34 lee en la memoria tampón 31 los datos Enc4(n) del paquete que contiene el número de trama fnr. En caso de que la trama fnr esté ausente de la memoria tampón, la unidad de control de lectura 34 lee en la memoria tampón los datos Enc3(n) del paquete que contiene el número de trama (fnr-1). No obstante, si este paquete también está ausente, la unidad de control de lectura 34 lee en la memoria tampón los datos Enc2(n) del paquete que contiene el número de trama (fnr-2), mientras que en el caso en el que los tres paquetes están ausentes en tramas de audio consecutivas, lee los datos Enc1(n) del paquete que contiene el número de trama (fnr-3). Como antes, esto da por resultado una reducción del ancho de banda de la señal obtenida del decodificador 35, que podrá paliarse mediante la sustitución de un tren de una trama de audio anterior, es decir:
\vskip1.000000\baselineskip
Paquete ausente de la trama Lectura De campo De paquete que contiene número de trama
Ninguno Enc4(n) F4 fnr
fnr Enc3(n) F3 F4 fnr-1 fnr-1
S4 de Enc4(n-1)*
fnr y fnr-1 Enc2(n) F2 F3 F4 fnr-2 fnr-2 fnr-2
S3 de Enc3(n-1)*
S4 de Enc4(n-2)*
fnr, fnr-1 y fnr-2 Enc1(n) F1 F2 F3 F4 fnr-3 fnr-3 fnr-3 fnr-3
S2 de Enc2(n-1)*
S3 de Enc3(n-2)*
S4 de Enc4(n-3)*
Debe observarse que cada uno de los trenes superiores S2, S3, S4 contiene, comparado con el tren inmediatamente inferior, (a) información acerca de otras subbandas y (b) bits adicionales para reducir el error de cuantificación de las subbandas acerca de las cuales se dispone de datos en el tren inferior. Las substituciones con datos acerca de tramas anteriores (marcadas mediante "*" en la tabla proporcionada anteriormente) son adecuadas sólo para la información (a), no siendo útiles los bits adicionales (b), puesto que sus valores presentan poca correlación con los ausentes. El decodificador representado en la Figura 6 realizará dichas sustituciones, que serán efectivas, aunque se introducirá una cantidad pequeña de ruido adicional. Para evitar esto, puede disponerse que la unidad de control de lectura 35 indique al decodificador cuándo efectúa sustituciones de uno o más trenes superiores por información de tramas de audio anteriores. Por consiguiente, el selector 51 debe ser modificado de tal forma que, para las subbandas contenidas sólo en los trenes sustituidos, se obtenga la información de asignación de bits del tren 4, pero para las subbandas en las que la información está contenida en un tren no sustituido, se obtenga la información de asignación de bits del tren no sustituido de nivel más alto.

Claims (32)

1. Aparato para la transmisión de señales que comprende:
(a)
medios de codificación (13) operativos para generar una primera salida (B0 a B15) que proporciona primeros datos, a partir de los cuales un decodificador (36) puede generar una señal reconstruida, y una segunda salida (B16 a B31) que proporciona segundos datos; y
(b)
medios operativos para ensamblar paquetes de datos para la transmisión,
caracterizado porque los medios de codificación comprenden un codificador operativo para generar tanto dicha primera salida como dicha segunda salida, y porque la segunda salida comprende datos de mejora, por medio de los cuales un decodificador que recibe tanto los primeros como los segundos datos puede generar una señal reconstruida de mayor calidad, y
porque cada paquete contiene:
datos primarios que incluyen los primeros datos referentes a una parte temporal de la señal y los segundos datos referentes a la misma parte temporal de la señal; y datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal pero carecen de los segundos datos referentes a dicha parte.
2. Aparato según la reivindicación 1, en el que dicha parte temporal diferente es una parte posterior a la representada por los datos primarios.
3. Aparato según la reivindicación 2, en el que dicha parte temporal diferente es la parte que sigue inmediatamente a la parte representada por los datos primarios.
4. Aparato según la reivindicación 1, en el que dicha parte temporal diferente es una parte anterior a la representada por los datos primarios.
5. Aparato según cualquiera de las reivindicaciones anteriores, en el que los medios de ensamblado están dispuestos para incluir en cada paquete un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en los paquetes.
6. Aparato según cualquiera de las reivindicaciones anteriores, en el que el codificador es operativo para generar una pluralidad de salidas que proporcionan datos de mejora, representando los conjuntos consecutivos de datos de mejora mejoras consecutivas para la calidad de la señal reconstruida, y en el que los datos primarios incluyen la totalidad de dichas salidas y los datos secundarios incluyen primeros datos referentes a una pluralidad equivalente de partes temporales diferentes de la señal y números gradualmente decrecientes de conjuntos de segundos datos referentes a estas partes.
7. Aparato según cualquiera de las reivindicaciones anteriores, en el que las señales son señales de audio y el codificador es un codificador de señales de audio.
8. Aparato según la reivindicación 7, en el que el codificador (13) es un codificador en subbandas, en el que los primeros datos incluyen datos referente a las subbandas de frecuencias inferiores de las subbandas del codificador, y en el que los segundos datos de mejora incluyen datos referentes a las subbandas de frecuencias superiores.
9. Aparato según cualquiera de las reivindicaciones anteriores, en el que los primeros datos incluyen representaciones binarias de valores digitales y los segundos datos incluyen bits adicionales que representan una resolución más fina de dichos valores digitales.
10. Aparato según la reivindicación 8, en el que el codificador de audio en subbandas (13) comprende:
(a)
medios de filtro para recibir una señal de audio sometida a muestreo y para dividir la señal en una pluralidad de señales de subbandas, correspondiendo cada una de las cuales a una subbanda de frecuencias respectiva;
(b)
un cuantificador para cuantificar las señales de subbandas;
(c)
medios de asignación de bits para determinar adaptativamente el número de niveles de cuantificación que van a ser utilizados por el cuantificador dependiendo de las características de la señal;
y en el que el cuantificador presenta una primera salida para proporcionar dichos primeros datos, comprendiendo dichos primeros datos valores cuantificados para una o más de dichas subbandas, y una segunda salida para proporcionar dichos segundos datos, comprendiendo dichos segundos datos, para por lo menos una de las subbandas con respecto a la cual se proporcionan valores cuantificados en la primera salida, bits adicionales de mejora que representan una cuantificación menos basta de los valores de esta subbanda o subbandas, y en el que los medios de asignación de bits son operativos para realizar una primera operación de asignación, en la que se asigna entre las subbandas una primera cuota de bits predeterminada para la primera salida, seguida de una segunda operación de asignación, en la que se asigna entre las subbandas una segunda cuota de bits predeterminada para los bits adicionales de la segunda salida.
11. Aparato según la reivindicación 10, en el que la segunda salida proporciona también valores cuantificados para por lo menos una subbanda, con respecto a la cual no se proporcionan valores cuantificados en la primera salida.
12. Aparato según la reivindicación 10 u 11, en el que el cuantificador presenta por lo menos otra salida, en el que la segunda salida y la(s) salida(s) adicional(es) proporcionan en cada caso valores para las subbandas no representadas en ninguna salida de orden inferior y/o proporcionan bits adicionales para las subbandas que están representadas en una salida de orden inferior, y en el que los medios de asignación de bits son operativos para realizar una cantidad de operaciones de asignación igual a la cantidad de salidas, estando destinadas cada una de éstas a asignar, para esta salida, una cuota respectiva de bits entre las subbandas.
13. Aparato para la recepción de señales que comprende:
(a)
medios para recibir paquetes de datos,
(b)
una memoria tampón (31) para almacenar los paquetes recibidos;
(c)
un decodificador (36); y
(d)
medios de control (35),
caracterizado porque cada paquete recibido contiene:
datos primarios que incluyen primeros datos referentes a una parte temporal de la señal y segundos datos de mejora referentes a la misma parte de la señal y
datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal;
y porque el decodificador es capaz de generar una señal reconstruida a partir de los primeros datos solos y es capaz de generar una señal reconstruida de mayor calidad a partir de los primeros y los segundos datos simultáneamente;
y porque los medios de control son operativos para leer en la memoria tampón los datos primarios referentes a las partes temporales consecutivas de la señal y enviarlos al decodificador y, en caso de que los datos primarios referentes a una parte temporal de conversación estén ausentes de la memoria tampón, leer en su lugar los datos secundarios referentes a esta parte temporal y enviarlos al decodificador.
14. Aparato según la reivindicación 13, en el que los medios de control son operativos, en dicho caso en que los datos secundarios referentes a una parte temporal de conversación están ausentes de la memoria tampón, para leer los segundos datos de mejora referentes a una parte temporal diferente de la señal de voz y enviarlos al decodifi-
cador.
15. Aparato según la reivindicación 13 ó 14, en el que cada paquete contiene un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en éste, y los medios de control son operativos para determinar la secuencia temporal de los paquetes mediante consulta del código de secuencia, sin tener en cuenta el orden real de recepción de los paquetes.
16. Aparato según cualquiera de las reivindicaciones 13 a 15, en el que las señales son señales de audio y el decodificador es un decodificador de señales de audio.
17. Procedimiento de codificación de señales para la transmisión, que comprende las etapas siguientes:
(a)
codificar una señal para generar una primera salida que proporciona primeros datos a partir de los que un decodificador puede generar una señal reconstruida, y una segunda salida que proporciona segundos da- tos y
(b)
ensamblar paquetes de datos para la transmisión;
caracterizado porque la segunda salida comprende datos de mejora, por medio de los cuales un decodificador que recibe tanto los primeros como los segundos datos puede generar una señal reconstruida de mayor calidad; y porque cada paquete contiene:
datos primarios que incluyen los primeros datos referentes a una parte temporal de la señal y los segundos datos referentes a la misma parte de la señal y
datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal pero carecen de los segundos datos referentes a esa parte.
18. Procedimiento según la reivindicación 17, en el que dicha parte temporal diferente es una parte posterior a la representada por los datos primarios.
19. Procedimiento según la reivindicación 18, en el que dicha parte temporal diferente es la parte que sigue inmediatamente a la parte representada por los datos primarios.
20. Procedimiento según la reivindicación 17, en el que dicha parte temporal diferente es una parte anterior a la representada por los datos primarios.
21. Procedimiento según cualquiera de las reivindicaciones 17 a 20, en el que, durante la etapa de ensamblado, se incluye en cada paquete un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en los paquetes.
22. Procedimiento según cualquiera de las reivindicaciones 17 a 21, en el que, en la etapa de codificación, se genera una pluralidad de salidas que proporcionan datos de mejora, representando los conjuntos consecutivos de datos de mejora mejoras consecutivas para la calidad de la señal reconstruida, y en el que los datos primarios incluyen la totalidad de dichas salidas y los datos secundarios incluyen primeros datos referentes a una pluralidad equivalente de partes temporales diferentes de la señal y números gradualmente decrecientes de conjuntos de segundos datos referentes a estas partes.
23. Procedimiento según cualquiera de las reivindicaciones 17 a 22, en el que las señales son señales de audio y la etapa de codificación es realizada por un codificador de señales de audio.
24. Procedimiento según la reivindicación 23, en el que la etapa de codificación es realizada por un codificador en subbandas, en el que los primeros datos incluyen datos referentes a las subbandas de frecuencias inferiores de las subbandas del codificador, y los segundos datos de mejora incluyen datos referentes a las subbandas de frecuencias superiores.
25. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que los primeros datos incluyen representaciones binarias de valores digitales y los segundos datos incluyen bits adicionales que representan una resolución más fina de dichos valores digitales.
26. Procedimiento según la reivindicación 24, en el que codificador de audio en subbandas comprende las etapas siguientes:
(a)
utilizar medios de filtro del codificador en subbandas para recibir una señal de audio sometida a muestreo y dividir la señal en una pluralidad de señales de subbandas correspondiendo cada una de las cuales a una subbanda de frecuencias respectiva;
(b)
cuantificar las señales de subbandas utilizando el cuantificador del codificador en subbandas;
(c)
determinar adaptativamente, utilizando los medios de asignación de bits del codificador en subbandas, el número de niveles de cuantificación que van a ser utilizados por el cuantificador, dependiendo de las características de la señal;
(d)
proporcionar, en una primera salida del cuantificador, dichos primeros datos, comprendiendo dichos primeros datos valores cuantificados para una o más de dichas subbandas;
(e)
proporcionar, en una segunda salida, dichos segundos datos, comprendiendo dichos segundos datos para por lo menos una de las subbandas con respecto a la cual se proporcionan valores cuantificados en la primera salida, bits adicionales de mejora que representan una cuantificación menos basta de los valores de esa subbanda o subbandas; y
(f)
realizar una primera operación de asignación, en la que se asigna entre las subbandas una primera cuota de bits predeterminada para la primera salida, seguida de una segunda operación de asignación, en la que se asigna entre las subbandas una segunda cuota de bits predeterminada para los bits adicionales de la segunda salida.
27. Procedimiento según la reivindicación 26, en el que la segunda salida proporciona también valores cuantificados para por lo menos una subbanda con respecto a la cual no se proporcionan valores cuantificados en la primera salida.
28. Procedimiento para transmitir señales codificadas de acuerdo con el procedimiento según cualquiera de las reivindicaciones 17 a 27.
29. Procedimiento para procesar señales, comprendiendo el procedimiento las etapas siguientes:
(a)
recibir paquetes de datos, conteniendo cada paquete:
datos primarios que incluyen primeros datos referentes a una parte temporal de la señal y segundos datos de mejora referentes a la misma parte de la señal y
datos secundarios que incluyen los primeros datos referentes a una parte temporal diferente de la señal;
(b)
almacenar los paquetes recibidos en una memoria tampón;
(c)
leer en la memoria tampón los datos primarios referentes a partes temporales consecutivas de la señal y enviar los datos primarios a un decodificador, siendo dicho decodificador capaz de generar una señal reconstruida de mayor calidad a partir de los primeros y segundos datos simultáneamente;
(d)
en caso de que los primeros datos referentes a una parte temporal de conversación estén ausentes de la memoria tampón, leer en su lugar los datos secundarios referentes a dicha parte temporal y enviarlos al decodificador y
(e)
decodificar los datos primarios leídos en la etapa (c) para generar una señal reconstruida a partir de los primeros datos solos o
(f)
decodificar los datos secundarios leídos en la etapa (d) para generar una señal reconstruida.
30. Procedimiento según la reivindicación 29, en el que, en dicho caso en el que los datos secundarios referentes a una parte temporal de conversación están ausentes de la memoria tampón, comprende leer los segundos datos de mejora referentes a una parte temporal diferente de la señal de voz y enviarlos al decodificador.
31. Procedimiento según la reivindicación 29 ó 30, en el que cada paquete contiene un código de secuencia para indicar la secuencia temporal de los datos primarios contenidos en éste, incluyendo el procedimiento la etapa de determinar la secuencia temporal de los paquetes haciendo referencia al código de secuencia, sin tener en cuenta el orden real de recepción de los paquetes.
32. Procedimiento según cualquiera de las reivindicaciones 29 a 31, en el que las señales son señales de audio y el decodificador es un decodificador de señales de audio.
ES99946330T 1998-09-22 1999-09-14 Codificador de audio que utiliza la transmision repetida de partes de paquetes. Expired - Lifetime ES2253912T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9820655 1998-09-22
GBGB9820655.0A GB9820655D0 (en) 1998-09-22 1998-09-22 Packet transmission

Publications (1)

Publication Number Publication Date
ES2253912T3 true ES2253912T3 (es) 2006-06-01

Family

ID=10839284

Family Applications (1)

Application Number Title Priority Date Filing Date
ES99946330T Expired - Lifetime ES2253912T3 (es) 1998-09-22 1999-09-14 Codificador de audio que utiliza la transmision repetida de partes de paquetes.

Country Status (12)

Country Link
US (1) US6957182B1 (es)
EP (1) EP1116354B1 (es)
JP (1) JP4447782B2 (es)
CN (1) CN1144411C (es)
AT (1) ATE311703T1 (es)
AU (1) AU751077B2 (es)
CA (1) CA2344259C (es)
DE (1) DE69928682T2 (es)
ES (1) ES2253912T3 (es)
GB (1) GB9820655D0 (es)
HK (1) HK1040336B (es)
WO (1) WO2000018057A1 (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757654B1 (en) * 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
JP4016709B2 (ja) 2002-04-26 2007-12-05 日本電気株式会社 オーディオデータの符号変換伝送方法と符号変換受信方法及び装置とシステムならびにプログラム
US20040064308A1 (en) * 2002-09-30 2004-04-01 Intel Corporation Method and apparatus for speech packet loss recovery
EP1746751B1 (en) * 2004-06-02 2009-09-30 Panasonic Corporation Audio data receiving apparatus and audio data receiving method
US7706415B2 (en) * 2004-07-29 2010-04-27 Microsoft Corporation Packet multiplexing multi-channel audio
JPWO2006067988A1 (ja) * 2004-12-22 2008-06-12 松下電器産業株式会社 Mpegオーディオデコード方法
US8069035B2 (en) * 2005-10-14 2011-11-29 Panasonic Corporation Scalable encoding apparatus, scalable decoding apparatus, and methods of them
ES2416056T3 (es) * 2007-07-06 2013-07-30 France Telecom Codificación jerárquica de señales digitales de audio
DE102010005702A1 (de) * 2010-01-26 2011-07-28 Fachhochschule Kaiserslautern, 67657 Codieren und Decodieren von Daten zur Übertragung über einen fehlerhaften Übertragungskanal

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2681727B1 (fr) 1991-09-20 1993-11-05 Thomson Tubes Electroniques Tube intensificateur d'image a correction de brillance.
US5384793A (en) * 1992-01-28 1995-01-24 Ericsson Ge Mobile Communications Inc. Fading and random pattern error protection method for dynamic bit allocation sub-band coding
EP0716790A4 (en) * 1993-08-26 1997-05-28 Ntp Inc INFORMATION TRANSMISSION SYSTEM AND METHOD FOR OPERATING IT
US5692102A (en) * 1995-10-26 1997-11-25 Motorola, Inc. Method device and system for an efficient noise injection process for low bitrate audio compression
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
JP2907104B2 (ja) * 1996-03-27 1999-06-21 日本電気株式会社 時間ダイバーシティ通信方法及び通信装置
JP3622365B2 (ja) * 1996-09-26 2005-02-23 ヤマハ株式会社 音声符号化伝送方式
EP0861001B1 (en) * 1997-02-07 2012-05-23 Texas Instruments Incorporated Error resilient video encoding

Also Published As

Publication number Publication date
JP4447782B2 (ja) 2010-04-07
US6957182B1 (en) 2005-10-18
AU751077B2 (en) 2002-08-08
GB9820655D0 (en) 1998-11-18
EP1116354A1 (en) 2001-07-18
CN1144411C (zh) 2004-03-31
WO2000018057A1 (en) 2000-03-30
DE69928682D1 (de) 2006-01-05
EP1116354B1 (en) 2005-11-30
CN1319292A (zh) 2001-10-24
CA2344259C (en) 2011-06-21
HK1040336A1 (en) 2002-05-31
ATE311703T1 (de) 2005-12-15
JP2002525693A (ja) 2002-08-13
HK1040336B (zh) 2006-08-11
DE69928682T2 (de) 2006-07-20
AU5874599A (en) 2000-04-10
CA2344259A1 (en) 2000-03-30

Similar Documents

Publication Publication Date Title
US4907277A (en) Method of reconstructing lost data in a digital voice transmission system and transmission system using said method
ES2219671T3 (es) Sistema de comunicaciones de alta velocidad para conexiones analogicas de abonado.
CA1203031A (en) Bit compression multiplexing
US4507781A (en) Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method
ES2244452T3 (es) Metodo para mejorar la eficacia de codificacion de una señal de audio.
RU2333602C2 (ru) Способ и устройство для передачи и приема широковещательных данных с использованием внешнего кодирования в системе мобильной связи
ES2253912T3 (es) Codificador de audio que utiliza la transmision repetida de partes de paquetes.
US4375581A (en) Digital transmission error reduction
PT730356E (pt) Metodo e aparelho para a formatacao de dados para transmissao
US4063038A (en) Error coding communication terminal interface
US8761236B2 (en) Serial protocol for agile sample rate switching
AU2163699A (en) Method and devices for coding or decoding an audio signal or bit stream
JPH10262245A (ja) 動画像伝送システム及びそれに用いる動画像送受信装置
US7549093B2 (en) Method for changing a depth of an interleaver device or de-interleaver device and corresponding interleaver device and de-interleaver device
US4581737A (en) Bit compression multiplexing
JP4287545B2 (ja) サブバンド符号化方式
US4957688A (en) System for the transmission of video signals with adaptive code word allocation, and also a transmitter and a receiver suitable for the system
KR100215342B1 (ko) 전송시스템 및 그 전송 시스템에서 사용되는 수신기
JPS63110830A (ja) 帯域分割符号化復号化装置
US4888768A (en) Frame format for video codec
JP3317742B2 (ja) スタッフ同期伝送装置
US6397276B1 (en) Data transmission by an alternating-frequency analog signal
JPH0242258B2 (es)
US5222102A (en) Digital phased locked loop apparatus for bipolar transmission systems
CN115118388B (zh) 一种多通道的复用fec编解码方法及装置