ES2405750T3 - Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa - Google Patents

Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa Download PDF

Info

Publication number
ES2405750T3
ES2405750T3 ES10154331T ES10154331T ES2405750T3 ES 2405750 T3 ES2405750 T3 ES 2405750T3 ES 10154331 T ES10154331 T ES 10154331T ES 10154331 T ES10154331 T ES 10154331T ES 2405750 T3 ES2405750 T3 ES 2405750T3
Authority
ES
Spain
Prior art keywords
compression
expansion
time
packets
fluctuation suppression
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
ES10154331T
Other languages
English (en)
Inventor
Peter John Black
Rohit Kapoor
Serafin Diaz Spindola
Mehmet Yavuz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2405750T3 publication Critical patent/ES2405750T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Dc Digital Transmission (AREA)
  • Telephone Function (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Un aparato, que comprende: una unidad (256; 286; 306) de almacenamiento en memoria configurada para almacenar paquetes de datos; y un primer controlador (306) configurado para comparar un número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con un primer umbral de compresión/expansión en el tiempo por la unidad de almacenamiento de la memoria, estando adaptado adicionalmente el primer controlador (306) para generar un indicador (350) de compresión/expansión en el tiempo cuando el número de paquetes almacenados viola el primer umbral de compresión/expansión en el tiempo, en el que el primer umbral de compresión/expansión en el tiempo comprende un primer porcentaje de una longitud de retardo objetivo de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria.

Description

Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa.
Antecedentes
Campo
La presente invención se refiere a sistemas de comunicación inalámbricos, y específicamente a una memoria intermedia de supresión de fluctuación adaptativa para Voz sobre el Protocolo de Internet (VoIP) para comunicaciones de conmutación de paquetes. La invención se aplica a cualquier sistema en el que se puedan perder paquetes.
Antecedentes
En un sistema de comunicación, se puede definir el retardo de extremo a extremo de un paquete como el tiempo desde su generación en la fuente hasta cuando el paquete alcanza su destino. En un sistema de comunicación de conmutación de paquetes, el retardo para que los paquetes viajen desde la fuente hasta el destino puede variar dependiendo de diversas condiciones de funcionamiento, incluyendo pero sin limitación, condiciones de canal y carga de red. Las condiciones de canal se refieren a la calidad del enlace inalámbrico. Algunos factores que determinan la calidad del enlace inalámbrico son la intensidad de señal, velocidad de un móvil y/o obstrucciones físicas.
El retardo de extremo a extremo incluye los retardos introducidos en la red y en los diversos elementos a través de los que pasan los paquetes. Muchos factores contribuyen al retardo de extremo a extremo. La variación en el retardo extremo a extremo se denomina fluctuación (jitter). La fluctuación puede producir que se reciban paquetes después de que los paquetes ya no sean útiles. Por ejemplo, en una aplicación de baja latencia, tal como voz, si se recibe un paquete demasiado tarde, se pueden eliminar mediante el receptor. Tales condiciones conducen a degradación en la calidad de comunicación.
El documento US 2004/1 56397 A1 (HEIKKINEN ARI Y COL) 12 de agosto de 2004 () desvela un dispositivo que hace audibles datos del habla empaquetados y codificados a un oyente. El dispositivo incluye un decodificador del habla para ejecutar una operación de compresión/expansión en el tiempo para alargar o acortar una duración de una trama de voz.
El documento WO 00/24144 A (TIERNAN COMMUNICATIONS, NC) 27 de abril de 2000 () describe un bucle de enganche de fase (PLL) para sincronizar paquetes que llegan con variaciones de retardo debido al modo de transferencia asíncrona (ATM) o multiplexación asíncrona. El bucle de enganche de fase incluye un circuito de recuperación para controlar temporización de reloj y una unidad de recuperación de reloj que controla un nivel de memoria intermedia del PLL.
E. Moulines y W. Verheist: “Time-Domain and Frequency-Domain Techniques for Prosodic Modification of Speech" Speech Coding and Synthesis, páginas 519-555, documento XP00236671 3 desvela un modelo de producción del habla, las modificaciones de escala de tiempo y de escala de tono, la transformada rápida de Fourier (STFT) como una representación tiempo-frecuencia para el análisis, modificación y síntesis de señales que varían en el tiempo lentamente. También, se definen el análisis STFT y características de síntesis como cantidades que varían en tiempo.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques de un sistema de comunicación de la técnica anterior, en el que un Terminal de Acceso incluye una memoria intermedia de supresión de fluctuación.
La Figura 2 ilustra una memoria intermedia de supresión de fluctuación de la técnica anterior.
La Figura 3 es un diagrama de temporización que ilustra transmisión, recepción y lectura de paquetes que dan como resultado un “subdesbordamiento”.
Las Figuras 4A y 4B son diagramas de temporización que ilustran cálculo de longitudes de memoria intermedia de supresión de fluctuación óptimas en dos escenarios.
La Figura 5 es un diagrama de temporización que ilustra una serie de “subdesbordamientos” resultantes de paquetes retardados.
La Figura 6 es un diagrama de flujo que ilustra el cálculo de la longitud de la memoria intermedia de supresión de fluctuación objetivo.
La Figura 7A es un diagrama de temporización que ilustra transmisión de paquetes en un primer escenario.
La Figura 7B es un diagrama de temporización que ilustra recepción de paquetes sin adaptación de memoria intermedia de supresión de fluctuación.
La Figura 7C es un diagrama de temporización que ilustra recepción de paquetes con adaptación de memoria intermedia de supresión de fluctuación, en la que el receptor puede recibir un paquete posterior a un tiempo esperado para el paquete.
La Figura 8A es un diagrama de flujo que ilustra un ejemplo de adaptación de memoria intermedia implícita, que permite al receptor recibir un paquete posterior un tiempo esperado para el paquete.
La Figura 8B es un diagrama de estado de modos de operación para una memoria intermedia de supresión de fluctuación adaptativa.
La Figura 9 es un diagrama de temporización que ilustra la aplicación de la adaptación de la memoria intermedia de supresión de fluctuación de acuerdo con otro ejemplo.
La Figura 10 es un diagrama que ilustra transmisión de información de voz en secuencias habladas de acuerdo con un ejemplo, en el que el retardo de la memoria intermedia de supresión de fluctuación no es suficiente para evitar colisión de datos.
La Figura 11 es un diagrama de bloques de un sistema de comunicación que incorpora una memoria intermedia de supresión de fluctuación adaptativa.
La Figura 12 es un diagrama de bloques de una porción de un receptor que incluye una memoria intermedia de supresión de fluctuación adaptativa y una unidad de compresión/expansión en el tiempo.
La Figura 13A ilustra un ejemplo de una memoria intermedia de supresión de fluctuación adaptativa que incluye umbrales de compresión y expansión.
La Figura 13B ilustra un ejemplo de una memoria intermedia de supresión de fluctuación adaptativa, que incluye múltiples umbrales de compresión y expansión.
La Figura 14 es un diagrama de temporización que ilustra compresión/expansión en el tiempo en recepción de paquetes que tienen diversos retardos.
La Figura 15 es un diagrama de temporización que ilustra ejemplos: i) compresión de una porción de silencio de un segmento del habla; e ii) expansión de una porción de silencio de un segmento del habla.
La Figura 16 es un diagrama de temporización que ilustra una señal del habla, en la que se pueden repetir las porciones de la señal del habla.
La Figura 17A es un diagrama que ilustra un segmento del habla, en el que se identifica el número de muestras PCM en una ventana de referencia para una operación añadir-solapar, denominada como RTamañoVentana, y en el que se identifica un objetivo o tamaño de segmento deseado, denominado como Segmento.
La Figura 17B es un diagrama que ilustra aplicación de una operación añadir-solapar para comprimir el segmento del habla de acuerdo con un ejemplo.
La Figura 18A es un diagrama que ilustra unos múltiples segmentos del habla, en los que se identifica el número de muestras PCM en una ventana de referencia para una operación añadir-solapar, denominada como RTamañoVentana, y en los que se identifica un objetivo o tamaño de segmento deseado, denominado como Segmento, en preparación para expansión de un segmento del habla actual.
La Figura 18B es un diagrama que ilustra aplicación de una operación añadir-solapar para expandir una muestra del habla de acuerdo con un ejemplo.
La Figura 18C es un diagrama que ilustra aplicación de una operación para expandir una muestra del habla de acuerdo con un ejemplo alternativo.
La Figura 19 es un diagrama que ilustra expansión de paquetes para permitir la llegada de paquetes retardados y paquetes que llegan desordenados como es el caso de una retransmisión ARQ Híbrida.
La Figura 20 es un diagrama que ilustra una línea de tiempo de una conversación entre dos usuarios.
La Figura 21 es un diagrama de flujo que ilustra potenciación en el comienzo de una secuencia hablada de acuerdo con un ejemplo.
La Figura 22 es un diagrama que ilustra potenciación en el comienzo de una secuencia hablada de acuerdo con un ejemplo alternativo.
La Figura 23 es un diagrama que ilustra la potenciación de los finales de las secuencias habladas.
La Figura 24 es un diagrama de flujo que ilustra potenciación en el final de una secuencia hablada de acuerdo con un ejemplo.
La Figura 25 es un diagrama que ilustra operación de una memoria intermedia de supresión de fluctuación y sistema decodificador de la técnica anterior, en el que la memoria intermedia de supresión de fluctuación entrega paquetes al decodificador a intervalos de tiempo regulares.
La Figura 26 es un diagrama que ilustra operación de una memoria intermedia de supresión de fluctuación adaptativa y decodificador de acuerdo con un ejemplo, en el que la memoria intermedia de supresión de fluctuación adaptativa entrega paquetes al decodificador a intervalos de tiempo irregulares.
La Figura 27 es un diagrama de bloques que ilustra un Terminal de Acceso (AT) de acuerdo con un ejemplo, que incluye una memoria intermedia de supresión de fluctuación adaptativa y una unidad de control de compresión/expansión en el tiempo.
La Figura 28 ilustra una porción de un receptor, que incluye una memoria intermedia de supresión de fluctuación adaptativa, y se adapta para comprimir/expandir en el tiempo paquetes de acuerdo con un ejemplo.
La Figura 29 ilustra un ejemplo alternativo de un receptor, que incluye una memoria de intermedia de supresión de fluctuación adaptativa, y se adapta para comprimir/expandir en el tiempo paquetes de acuerdo con otro ejemplo.
La Figura 30 es un diagrama de flujo que ilustra un ejemplo de un planificador en un decodificador en un ejemplo de un receptor, que incluye una memoria intermedia de supresión de fluctuación adaptativa, y se adapta para comprimir/expandir en el tiempo paquetes de acuerdo con un ejemplo.
La Figura 31 es un diagrama de flujo que ilustra un planificador en una unidad de interfaz de audio en un ejemplo de un receptor.
La Figura 32 ilustra la unidad de compresión/expansión en el tiempo donde se calcula la planificación fuera del decodificador.
La Figura 33 ilustra la unidad de compresión/expansión en el tiempo donde se calcula la planificación en la unidad de compresión/expansión en el tiempo en el decodificador.
Descripción detallada
En sistemas de conmutación de paquetes, se forman los datos en paquetes y se enrutan a través de una red. Se envía cada paquete a un destino en la red, en base a una dirección asignada contenida en el paquete, típicamente en un encabezamiento. El retardo de extremo a extremo de los paquetes, o el tiempo que toma un paquete viajar en la red desde un primer usuario o “emisor” a un segundo usuario o “receptor” varía, dependiendo de condiciones de canal, carga de red, capacidades del sistema de Calidad de Servicio (QoS) y otros flujos que compiten por recursos entre otras cosas. Obsérvese, por claridad que el siguiente análisis describe unos sistemas de comunicación de espectro ensanchado que soportan comunicaciones de datos de paquetes que incluyen, pero sin limitación sistemas de Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División Ortogonal de Frecuencia (OFDMA), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA), sistemas del Sistema Global para Comunicación Móvil (GSM), sistemas que soportan estándares del IEEE, tales como 802.11 (A, B, G), 802.16, etc.
En un sistema de comunicación inalámbrico, cada paquete puede provocar un retardo de fuente a destino diferente del experimentado por otros paquetes que pertenecen al mismo flujo. Esta variación en el retardo se conoce como “fluctuación”. La fluctuación crea complicaciones adicionales para aplicaciones del lado del receptor. Si el receptor no corrige la fluctuación, el mensaje recibido sufrirá distorsión cuando los paquetes se reensamblen. Algunos sistemas corrigen la fluctuación cuando reconstruyen mensajes a partir de los paquetes recibidos. Tales sistemas incorporan una memoria intermedia de supresión de fluctuación, que añade un tiempo de espera, denominado como un retardo de memoria intermedia de supresión de fluctuación. Cuando la memoria intermedia de supresión de fluctuación aplica un gran retardo de memoria intermedia de supresión de fluctuación fijo, puede acomodar una alta cantidad de fluctuación en la llegada de paquetes; sin embargo; este uso no es eficaz puesto que los paquetes que tienen un menor retardo se procesan también usando el gran retardo de memoria intermedia de supresión de fluctuación incluso aunque estos paquetes se puedan haber procesado antes. Esto conduce a mayores retardos de extremo a extremo para esos paquetes que los que se hubieran conseguido usando un menor retardo de memoria intermedia de supresión de fluctuación.
Para evitar esto, los sistemas VoIP que incorporan memorias intermedias de supresión de fluctuación se pueden intentar adaptar a cambios en el retardo de paquetes. Por ejemplo, una memoria intermedia de supresión de fluctuación puede detectar cambios en retardo de paquetes analizando estadísticas de llegada de paquetes. Muchas implementaciones de memoria intermedia de supresión de fluctuación no adaptan su retardo en absoluto y se configuran para tener un gran retardo de manera conservadora. En este caso, la memoria intermedia de supresión de fluctuación puede añadir retardo excesivo a paquetes produciendo que una experiencia de usuario sea subóptima.
El siguiente análisis describe una memoria intermedia de supresión de fluctuación adaptativa que se adapta a cambios en el comportamiento de retardo de paquetes cambiando su retardo de memoria intermedia de supresión de fluctuación. Esta memoria intermedia de fluctuación hace uso de compresión/expansión en el tiempo del habla para potenciar su capacidad de seguir retardos de paquetes variables. El siguiente análisis es aplicable a comunicaciones de paquetes, tales como comunicaciones que tienen transmisiones de datos periódicas, requisitos de baja latencia, procesamiento de datos secuencial o una velocidad de lectura designada. En particular, el siguiente análisis detalla una comunicación de voz, en la que se originan los datos, o el habla y silencio, en una fuente y se transmiten a un destino para lectura. Los datos originales se empaquetan y codifican usando un esquema de codificación conocido. En el receptor, se determina el esquema de codificación para cada paquete de datos. En una comunicación del habla, por ejemplo, el tipo de codificación del habla es diferente del tipo de codificación de silencio. Esto permite al sistema de comunicación aprovecharse de la naturaleza periódica del habla, que incluye porciones de silencio. Para una comunicación del habla, los datos aparecen en ráfagas, y el contenido del habla puede aparecer repetitivo. La transmisión del habla empaquetada tiene requisitos de baja latencia, como los participantes en una comunicación de voz no desean escuchar retardos, la calidad de la comunicación permite únicamente retardos limitados. El habla empaquetada puede tomar diferentes rutas para llegar al receptor, sin embargo, en la recepción los paquetes se recompilan en su secuencia original. Por lo tanto, el habla empaquetada recibida se lee secuencialmente. Si se pierde un paquete sobre la transmisión por aire o en el procesamiento de capa física, no se recupera el paquete, pero que el receptor puede estimar o suponer cuál fue el contenido del paquete. Adicionalmente, la velocidad de lectura de las comunicaciones del habla tiene una velocidad o intervalo de lectura predeterminada. Si la lectura está fuera del intervalo, se degrada la calidad en el receptor. La aplicación a comunicaciones del habla es un ejemplo de aplicación del presente análisis. Otras aplicaciones pueden incluir comunicaciones de vídeo, comunicaciones de juegos u otras comunicaciones que tienen características, especificaciones y/o requisitos similares a aquellos de las comunicaciones del habla. Por ejemplo, las comunicaciones de vídeo pueden desear acelerar o decelerar la lectura. El presente análisis puede ser deseable para tal uso. Como se proporciona en el presente documento, una memoria intermedia de supresión de fluctuación adaptativa puede permitir a un receptor conseguir una calidad de servicio especificada mediante los requisitos de fluctuación del sistema. La memoria intermedia de supresión de fluctuación adaptativa adapta una longitud de memoria intermedia de supresión de fluctuación objetivo, por ejemplo, la cantidad de datos almacenados en la memoria intermedia de supresión de fluctuación, para la temporización y cantidad de datos recibidos en la memoria intermedia de supresión de fluctuación adaptativa. Además, una memoria intermedia de supresión de fluctuación adaptativa usa el estado o tamaño de la memoria intermedia de supresión de fluctuación, por ejemplo, medida de datos almacenados en la memoria intermedia de supresión de fluctuación adaptativa, para determinar cuándo es beneficiosa la compresión/expansión en el tiempo para procesamiento y lectura de los datos recibidos. Por ejemplo, si llegan datos en la memoria intermedia de supresión de fluctuación adaptativa a una velocidad lenta, la memoria intermedia de supresión de fluctuación adaptativa proporciona esta información a una unidad de compresión/expansión en el tiempo, que permite a la unidad de compresión/expansión en el tiempo expandir los paquetes recibidos. Si los datos almacenados en la memoria intermedia de supresión de fluctuación adaptativa exceden un valor umbral, la memoria intermedia de supresión de fluctuación adaptativa alerta a la unidad de compresión/expansión en el tiempo para comprimir los paquetes para mantenerlos eficazmente con los datos entrantes. Obsérvese, que la compresión/expansión en el tiempo está dentro de límites, que se pueden definir mediante la aplicación y el tipo de comunicación. Por ejemplo, en comunicaciones del habla, la compresión/expansión en el tiempo no debería comprimir el habla, es decir, aumentar el tono, de modo que el oyente no pueda entender la comunicación. De manera similar, la compresión/expansión en el tiempo no debería expandir el habla por debajo del intervalo. Idealmente, se define el intervalo de compresión/expansión en el tiempo para permitir al oyente poca o ninguna molestia.
Sistema de comunicación
La Figura 1 es un diagrama de bloques que ilustra un sistema 50 de comunicación digital. Dos Terminales 52 y 82 de Acceso (AT) se comunican mediante la Estación Base 70 (BS). En el AT 52, la unidad 64 de procesamiento de transmisión transmite datos de voz a un codificador 60, que codifica y empaqueta los datos de voz y envía los datos empaquetaos a la unidad 58 de procesamiento de capa inferior. Para transmisión, se envían los datos a continuación a la BS 70. La BS 70 procesa los datos recibidos y transmite los datos al AT 82, en el que se reciben los datos en la unidad 88 de procesamiento de capa inferior. Se proporcionan a continuación los datos a la memoria intermedia 86 de supresión de fluctuación, que almacena los datos para disimular o reducir el impacto de la fluctuación. Se envían los datos desde la memoria intermedia 86 de supresión de fluctuación al decodificador 84 y en la unidad 92 de procesamiento de recepción.
Para transmisión desde el AT 82, se proporcionan datos/voz desde la unidad 94 de procesamiento de transmisión al codificador 90. La unidad 88 de procesamiento de capa inferior procesa los datos para transmisión a la BS 70. Para recepción de datos desde la BS 70 en el AT 52, se reciben datos en la unidad 58 de procesamiento de capa inferior. Se envían a continuación paquetes de datos a una memoria intermedia 56 de supresión de fluctuación, donde se almacenan hasta que se alcanza una longitud o retardo de memoria intermedia requerido. Una vez que se obtiene esta longitud o retardo, la memoria intermedia 56 de supresión de fluctuación comienza a enviar datos al decodificador 54. El decodificador 54 convierte los datos empaquetados a paquetes de datos de voz y envía los paquetes a la unidad 62 de procesamiento de recepción. En el presente ejemplo, el comportamiento del AT 52 es análogo al AT 82.
Memoria intermedia de supresión de fluctuación
Se usa una memoria intermedia de supresión de fluctuación o almacenamiento en los AT, tal como la anteriormente descrita, para disimular los efectos de la fluctuación. En un ejemplo, se usa una memoria intermedia de supresión de fluctuación adaptativa para comunicaciones de conmutación de paquetes, tales como comunicación VoIP. La memoria intermedia de supresión de fluctuación tiene una memoria de memoria intermedia adaptativa y usa compresión/expansión en el tiempo del habla para potenciar su capacidad para seguir retardo variable y fluctuación. En este ejemplo, se coordina el procesamiento de la memoria intermedia de supresión de fluctuación con el del decodificador, en el que la memoria intermedia de supresión de fluctuación identifica una oportunidad o necesidad de comprimir/expandir en el tiempo los paquetes y ordena al decodificador comprimir/expandir en el tiempo los paquetes. El decodificador degrada en el tiempo los paquetes comprimiendo o expandiendo los paquetes, como se ordenó mediante la memoria intermedia de supresión de fluctuación.
La Figura 2 ilustra un ejemplo de una memoria intermedia de supresión de fluctuación. Se acumulan y almacenan los paquetes codificados entrantes en la memoria intermedia. En un ejemplo, la memoria intermedia es una memoria intermedia Primero en Entrar, Primero en Salir (FIFO) en la que se reciben datos en un orden particular y se procesan en ese mismo orden; los primeros datos que se procesan son los primeros datos recibidos. En otro ejemplo, la memoria intermedia de supresión de fluctuación es una lista ordenada que mantiene el seguimiento de cuál paquete es el siguiente a procesar. La memoria intermedia de supresión de fluctuación adaptativa puede ser una unidad de almacenamiento en memoria, en la que el estado de la memoria intermedia de supresión de fluctuación es una medida de los datos (o el número de paquetes) almacenados en la memoria intermedia de supresión de fluctuación adaptativa. Se pueden enviar los datos procesados mediante la memoria intermedia de supresión de fluctuación a un decodificador u otra utilidad de la memoria intermedia de supresión de fluctuación. Los paquetes codificados pueden corresponder a una cantidad fija de datos del habla, por ejemplo, 20 ms que corresponden a 160 muestras de datos del habla, a una velocidad de muestreo de 8 kHz. En un ejemplo de la presente invención, el número de muestras producidas mediante el decodificador, con capacidades de compresión/expansión en el tiempo, puede variar en base a si el paquete se degrada en el tiempo o no. Cuando la memoria intermedia de supresión de fluctuación ordena al decodificador/compresión/expansión en el tiempo expandir un paquete, el decodificador/ compresión/expansión en el tiempo puede producir más de 160 muestras. Por otro lado, cuando la memoria intermedia de supresión de fluctuación ordena al decodificador/ compresión/expansión en el tiempo comprimir un paquete, el decodificador/ compresión/expansión en el tiempo puede producir menos de 160 muestras. Obsérvese, que otros sistemas alternativos pueden tener diferentes esquemas de lectura, tales como distintos de 20 ms de codificación de señales vocales.
Los paquetes que llegan a la memoria intermedia de supresión de fluctuación pueden no llegar a intervalos regulares. Uno de los objetivos del diseño de una memoria intermedia de supresión de fluctuación, por lo tanto, es ajustarse a la irregularidad de datos entrantes. En un ejemplo de la presente invención, una memoria intermedia de supresión de fluctuación tiene una longitud de memoria intermedia de supresión de fluctuación objetivo. La longitud de memoria intermedia de supresión de fluctuación objetivo se refiere a la cantidad de datos requerida a acumular en la memoria intermedia de supresión de fluctuación antes de empezar a leer el primer paquete. En otro ejemplo, la longitud de la memoria intermedia de supresión de fluctuación objetivo se puede referir a la cantidad de tiempo que se necesita retrasar el primer paquete en la memoria intermedia de supresión de fluctuación antes de que se lea. Se ilustra la longitud de la memoria intermedia de supresión de fluctuación objetivo en la Figura 2. Acumulando suficientes paquetes en la memoria intermedia de supresión de fluctuación antes de empezar a lectura de paquetes, la memoria intermedia de supresión de fluctuación puede leer paquetes posteriores a intervalos regulares a medida que minimiza el potencial de agotamiento de paquetes. La Figura 2 ilustra una memoria intermedia de supresión de fluctuación, en la que el primer paquete del codificador de señales vocales recibido en la memoria intermedia de supresión de fluctuación es el siguiente paquete planificado para emitir desde la memoria intermedia de supresión de fluctuación. La memoria intermedia de supresión de fluctuación incluye suficientes paquetes para conseguir el retardo de memoria intermedia de supresión de fluctuación requerido. De esta manera, la memoria intermedia de supresión de fluctuación suaviza la fluctuación experimentada por los paquetes y disimula la variación en el tiempo de llegada del paquete en el receptor.
La Figura 3 ilustra líneas de tiempo de transmisión, recepción y lectura para paquetes en diversos escenarios. El primer paquete, PKT 1, se transmite en el tiempo y se lee tras la recepción en el tiempo t1. Los paquetes posteriores, PKT 2, PKT 3 y PKT 4 se transmiten a intervalos de 20 ms después de PKT 1. En ausencia de compresión/expansión en el tiempo, los decodificadores leen paquetes a intervalos de tiempo regulares (por ejemplo 20 ms), a partir del primer tiempo de lectura del paquete. Por ejemplo, si un decodificador lee paquetes a intervalos regulares de 20 ms, se lee un primer paquete recibido en el tiempo t1, y se leerán los paquetes posteriores 20 ms después del tiempo t1, 40 ms después del tiempo t1, 60 ms después del tiempo t1, etc. Como se ilustra en la Figura 3, el tiempo de lectura anticipada (sin retardo de memoria intermedia de supresión de fluctuación) del PKT 2 es t2 = t1 + 20 ms. Se recibe PKT 2 antes de su tiempo de lectura anticipada, t2. El paquete 3, por otro lado, se recibe después de su tiempo de lectura anticipada t3 = t2 + 20 ms. Esta condición se denomina como un subdesbordamiento. Un subdesbordamiento aparece cuando la utilidad de lectura está lista para leer un paquete, pero el paquete no está presente en la memoria intermedia de supresión de fluctuación. Los subdesbordamientos típicamente producen que el decodificador produzca borrados y degrade calidad de lectura.
La Figura 3 ilustra adicionalmente un segundo escenario, en el que la memoria intermedia de supresión de fluctuación introduce un retardo tmicff antes de la lectura del primer paquete. En este escenario, se añade el retardo de la memoria intermedia de supresión de fluctuación para habilitar a la utilidad de lectura recibir paquetes (o muestras) cada 20 ms. En este escenario, incluso aunque se reciba PKT 3 después de su tiempo de lectura anticipada t3, la adición del retardo de memoria intermedia de supresión de fluctuación permite que se lea PKT 3 20 ms después de la lectura de PKT 2.
Se envía PKT 1 en el tiempo t0, recibido en el tiempo t1 y en lugar de leerse en el tiempo t1, como se realizó previamente, se lee ahora en el tiempo t1 + tmicff = t1’. La utilidad de lectura lee PKT 2 en un intervalo predeterminado, por ejemplo 20 ms, después de PKT 1 o en el tiempo t2’ = t1 + tmicff + 20 = t2 + tmicff y PKT en el tiempo t3’ = t3 + tmicff. El retardo de la lectura mediante tmicff permite que se lea el tercer paquete sin que se produzca un subdesbordamiento. Por lo tanto, como se ilustra en la Figura 3, la introducción del retardo de la memoria intermedia de supresión de fluctuación puede reducir subdesbordamientos y evitar que se degrade calidad del habla.
El habla consiste en periodos de secuencias habladas y periodos de silencio. La expansión/compresión de periodos de silencio tiene mínimo o ningún impacto en la calidad del habla. Esto permite a la memoria intermedia de supresión de fluctuación retardar la lectura del primer paquete de manera diferente para cada secuencia hablada.
Las Figuras 4A y 4B ilustran líneas de tiempo de transmisión y recepción para diferentes secuencias habladas. Obsérvese, que se determina la cantidad de retardo de la memoria intermedia de supresión de fluctuación para evitar subdesbordamientos. Esto se denomina como “retardo de memoria intermedia de supresión de fluctuación óptimo”. El retardo de memoria intermedia de supresión de fluctuación óptimo se relaciona con la longitud de memoria intermedia de supresión de fluctuación objetivo. En otras palabras, se determina la longitud de memoria intermedia de supresión de fluctuación objetivo para permitir que se almacenen suficientes datos en la memoria intermedia de este modo se leen los paquetes en consonancia con los detalles de utilidad de lectura. Se puede determinar el retardo de memoria intermedia de supresión de fluctuación óptimo mediante el mayor retardo de extremo a extremo experimentado por el sistema. Como alternativa, se puede basar el retardo de la memoria intermedia de supresión de fluctuación óptimo en el retardo promedio experimentado por el sistema. Se pueden implementar también otros procedimientos para determinar el retardo de memoria intermedia de supresión de fluctuación óptimo específico para un criterio dado o diseño de sistema. Además, se determina la longitud de la memoria intermedia de supresión de fluctuación objetivo para efectuar el retardo de memoria intermedia de supresión de fluctuación óptimo, y por lo tanto, se puede calcular la longitud de la memoria intermedia de supresión de fluctuación objetivo en base a velocidades de paquetes recibidos, Tasa de Errores de Paquetes (PER) u otras estadísticas de funcionamiento.
Las Figuras 4A y 4B ilustran retardos de memoria intermedia de supresión de fluctuación óptimos para dos ejemplos. Como se ilustra, el tiempo entre transmisión y recepción de paquetes secuenciales varía sobre el tiempo. Como PKT 3 tiene el retardo más largo desde transmisión hasta recepción, se usa esta diferencia para determinar un retardo óptimo para procesamiento de supresión de fluctuación.
El uso de una memoria intermedia de supresión de fluctuación con una longitud de memoria intermedia de supresión de fluctuación objetivo puede evitar al menos algunas condiciones de subdesbordamiento. Con referencia de nuevo a la Figura 3 el segundo escenario obvia un subdesbordamiento (que aparece cuando el decodificador esperaba un paquete y la utilidad de lectura estaba lista para leer un paquete, pero no había paquetes presentes en la memoria intermedia de almacenamiento de paquetes). En este punto, se lee PKT 2 después de un intervalo predeterminado, 20 ms, posterior a t1, en el que t1 es el tiempo de lectura de PKT 1. Mientras que se planifica o anticipa PKT 3 para leer en el tiempo t3, no se recibe PKT 3 hasta después del tiempo t3. En otras palabras, la utilidad de lectura está lista para leer PKT 3 pero este paquete no está presente en la memoria intermedia de almacenamiento. Puesto que PKT 3 no está disponible para lectura en el tiempo anticipado, y no se lee, da como resultado una gran cantidad de fluctuación y subdesbordamientos con respecto a PKT 3. Se reproduce PKT 4 en t4, en tiempo de lectura anticipada para PKT4. Obsérvese que se calcula el tiempo anticipado t4 a partir del tiempo t3. Puesto que cada paquete puede contener más de un paquete de voz, la pérdida de paquetes debido a subdesbordamientos degrada calidad de voz.
Otro escenario a considerar implica una serie de “subdesbordamientos debidos a paquetes retardados” como se ilustra en la Figura 5, en la que se ilustra transmisión, recepción y tiempo de lectura anticipada de paquetes a tiempo. En este escenario, se recibe cada paquete un corto tiempo después de su tiempo de lectura anticipada. Por ejemplo, el tiempo de lectura anticipada para PKT 50 es t0 pero no se recibe PKT 50 t0’ después de t0. El siguiente paquete, 51 se anticipa al tiempo t1, pero no se recibe hasta el tiempo t1’, después de t1. Esto produce una serie de subdesbordamientos que conduce a un alto porcentaje de “subdesbordamientos retardados”, subdesbordamientos debidos a paquetes retardados, y por lo tanto, retardos de extremo a extremo superiores.
Claramente, una memoria intermedia de supresión de fluctuación que retarda lectura en una gran cantidad será satisfactoria en mantener subdesbordamientos al mínimo. Una memoria intermedia de supresión de fluctuación de este tipo, sin embargo, introduce un gran retardo de memoria intermedia de supresión de fluctuación en el retardo de extremo a extremo de paquetes. Un gran retardo de extremo a extremo puede conducir a mantener con dificultades el flujo de una conversación. Retardos mayores que 100 ms pueden producir que la parte oyente piense que la parte que habla no ha finalizado de hablar. La buena calidad, por lo tanto, considera idealmente tanto la evitación de
5 subdesbordamientos y la reducción de retardo de extremo a extremo. Existe un problema como resolución de un problema que puede empeorar el otro. En otras palabras, menores retardos de extremo a extremo generalmente dan como resultado más subdesbordamientos, y viceversa. Existe por lo tanto, una necesidad de balancear estos objetivos que compiten. Específicamente, existe una necesidad para que la memoria intermedia de supresión de fluctuación siga y evite subdesbordamientos mientras que reduce el retardo de extremo a extremo.
10 Longitud objetivo de memoria intermedia de supresión de fluctuación
Un objetivo de diseño de una memoria intermedia de supresión de fluctuación adaptativa es permitir que el sistema se dirija a una “velocidad de subdesbordamiento” de paquetes de voz, mientras que al mismo tiempo consigue bajos retardos de extremo a extremo. Como la calidad percibida es una función del porcentaje de subdesbordamientos, la capacidad de dirigirse a un porcentaje particular de subdesbordamientos posibilita el control de calidad de voz. 15 Pueden aparecer los subdesbordamientos de paquetes en la memoria intermedia de supresión de fluctuación cuando hay paquetes perdidos. Se puede perder un paquete cuando se pierde o se retarda. Un paquete perdido produce un subdesbordamiento cuando se elimina antes de que alcance al receptor, tal como cuando se elimina en algún lugar en la red de acceso, por ejemplo en la capa física o el planificador de enlace directo. En este escenario, no se puede corregir el subdesbordamiento usando un retardo de memoria intermedia de supresión de fluctuación
20 debido a que el paquete nunca llega a la memoria intermedia de supresión de fluctuación. Como alternativa, puede aparecer un subdesbordamiento como un resultado de un paquete que se retarda, y llega después de su tiempo de lectura. Además de seguir subdesbordamientos debidos a paquetes retardados, la memoria intermedia de supresión de fluctuación adaptativa también puede seguir subdesbordamientos debido a paquetes perdidos.
Se puede controlar el número de subdesbordamientos debido a un paquete perdido compensado
25 subdesbordamientos por el retardo de la memoria intermedia de supresión de fluctuación. Un valor que representa el porcentaje de subdesbordamientos objetivo debido a paquetes retardados se denomina como “objetivo de desbordamiento”. Este valor es el valor objetivo para operación de la memoria intermedia de supresión de fluctuación y se selecciona para mantener el retardo de extremo a extremo en límites razonables. En un ejemplo, se puede usar un valor de 1% (0,01) como el “objetivo de desbordamiento”. Otro ejemplo usa un valor de 0,5% (0,005).
30 Para conseguir un “objetivo de desbordamiento”, se puede adaptar el retardo de la memoria intermedia de supresión de fluctuación.
En un ejemplo de la presente invención, se puede usar el valor filtrado de porcentaje de subdesbordamientos debido a paquetes retardados (en lo sucesivo denominado como “subdesbordamientos retardados”) para adaptar el retardo de memoria intermedia de supresión de fluctuación. Al fin de cada periodo de silencio (o al comienzo de cada
35 secuencia hablada), se actualiza el retardo de memoria intermedia de supresión de fluctuación como se ilustra en la Figura 6. Como se ilustra en la Figura 6, el algoritmo especifica lo siguiente:
En el presente ejemplo, se puede establecer el retardo de memoria intermedia de supresión de fluctuación inicial a un valor constante tal como 40 ms. El VALOR_OBJETIVO es un valor dirigido de “subdesbordamientos retardados” 40 (por ejemplo, 1%). PERretardo es un valor filtrado de la velocidad de “subdesbordamientos retardados” de paquetes donde los parámetros del filtro permiten que se consiga el VALOR_OBJETIVO. El último_PERretardo es el valor de PERretardo en la anterior actualización del retardo de memoria intermedia de supresión de fluctuación. RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN es la longitud de memoria
intermedia de supresión de fluctuación objetivo como se ha definido anteriormente en el presente documento. En elpresente ejemplo, CONSTANTE es igual a 20 ms. MÍN_FLUCTUACIÓN y MÁX_FLUCTUACIÓN son los valores mínimo y máximo del retardo de la memoria intermedia de supresión de fluctuación; de acuerdo con un ejemplo estos se establecen a 20 ms y 80 ms, respectivamente. MÍN_FLUCTUACIÓN y MÁX_FLUCTUACIÓN se puedenestimar en base a simulación de sistema. Los valores (MÍN_FLUCTUACIÓN, MÁX_FLUCTUACIÓN, CONSTANTE) se pueden optimizar dependiendo del sistema de comunicaciones en el que se implanta la memoria intermedia de supresión de fluctuación.
Se puede actualizar PERretardo en el fin de cada periodo de silencio o al comienzo de cada secuencia hablada, en la que PERretardo se calcula como:
PER_CONSTANTE es la constante de tiempo para el filtro usado para estimar PERretardo. El valor para esta constante determina la memoria del filtro y permite que se consiga el VALOR_OBJETIVO. PERretardo_Actual es la velocidad de “subdesbordamientos retardados” observada entre la última actualización de PERretardo y la actualización actual.
Se define PERretardo_Actual como la relación del número de paquetes subdesbordados retardados con el número total de paquetes recibidos entre la última actualización de PERretardo y la actualización actual.
Con referencia a la Figura 6, el procedimiento 100 para calcular y actualizar el retardo de la memoria intermedia de supresión de fluctuación comienza en la tapa 101 inicializando el RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN. Al comparar el PERretardo se compara con el VALOR_OBJETIVO en la etapa 102. Si el PERretardo es menos que el VALOR_OBJETIVO, seresta el valor CONSTANTE del RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN en la etapa 104. Si el PERretardo es mayor que el VALOR_OBJETIVO en la etapa 102, y el PERretardo es mayorque el VALOR_OBJETIVO y mayor que o igual al ÚLTIMO_PERRETARDO en la etapa 103, no es menos que el último PERretardo en la etapa 102, entonces el procesamiento continúa a la decisión 108. Se establece el RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN a RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN más el valor CONSTANTE en la etapa 108. Continuando desde la etapa 103, si PERretardo no es mayor que VALOR_OBJETIVO ni es mayor que oigual al ÚLTIMO_PERRETARDO, el procesamiento continúa a la etapa 110. También, continuando desde la etapa104, se establece el RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN igual al máximo de MÍN_FLUCTUACIÓN yRETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN en la etapa 110. A partir de la etapa 110, el procesamiento continúa a la etapa 112 para establecer el RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN igual al mínimo de MÁX_FLUCTUACIÓN yRETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN_DE_FASE en la etapa 112.
Seguir retardo
La memoria intermedia de supresión de fluctuación puede entrar en un modo donde sigue el retardo (en lugar de seguir la velocidad de subdesbordamiento). El retardo seguido puede ser el retardo de extremo a extremo o el retardo de la memoria intermedia de supresión de fluctuación. En un ejemplo, la memoria intermedia de supresión de fluctuación entra en un modo de “retardo de seguimiento” cuando se puede cumplir fácilmente la velocidad de subdesbordamiento objetivo. Esto significa que la memoria intermedia de supresión de fluctuación puede conseguir una velocidad de subdesbordamiento inferior que la velocidad de subdesbordamiento objetivo durante algún periodo de tiempo. Este periodo de tiempo puede ser cualquiera desde unos pocos cientos de ms a unos pocos s.
En este modo la memoria intermedia de supresión de fluctuación tiene un valor de retardo objetivo. Esto es similar al valor de objetivo de subdesbordamiento anteriormente descrito. Se puede usar la Ecuación (1) anterior para dirigirse a una velocidad de subdesbordamiento que se puede usar de una manera análoga para calcular un valor de Retardo Objetivo. Cuando la memoria intermedia de supresión de fluctuación entra en este modo donde se dirige a un valor de Retardo Objetivo, esto puede permitir reducir su velocidad de subdesbordamiento Objetivo mientras se mantiene el Retardo Objetivo.
Adaptación de memoria intermedia implícita
En algunas situaciones, el decodificador puede esperar leer un paquete que no se ha recibido aún. Esta situación se muestra en la Figura 5, donde el tiempo de lectura anticipada de PKT 50 es t0, pero se recibe PKT 50 después de este tiempo. De manera similar, se recibe PKT 51 después de su tiempo de lectura anticipada t1, se recibe PKT 52 después de su tiempo de lectura anticipada t2 y así sucesivamente. Debe observarse en este punto que los paquetes llegan bastante regularmente, pero debido a que se recibió PKT 50 ligeramente después de su tiempo de lectura anticipada, produjo que todos los paquetes posteriores también perdieran sus tiempos de lectura. Si, por otro lado, el decodificador pudiera insertar un borrado en t0 y leer aún PKT 50 en t1, permitiría que todos los paquetes cumplieran sus tiempos de lectura. Al leer PKT 50 después de un borrado en lugar de que se haya leído PKT 50, se adapta eficazmente la longitud de la memoria intermedia de supresión de fluctuación.
Obsérvese que la lectura de PKT 50 después de su borrado puede producir discontinuidades, que se pueden eliminar usando una técnica de adaptación de fase descrita en la solicitud en trámite junto con la presente número 11/192,231, titulada “PHASE MATCHING IN VOCODERS”, presentada el 7 de julio de 2005.
Como se ilustra en la Figura 7A, pueden existir huecos en la recepción de paquetes tales como el hueco de tiempo entre PKT 3 y PKT 4. El retardo en la llegada de paquetes puede ser diferente para cada paquete. La memoria intermedia de supresión de fluctuación puede responder inmediatamente con ajustes para compensar el retardo. Como se ilustra, se reciben PKT 1, PKT 2 y PKT 3 en los tiempos t1, t2 y t3, respectivamente. En el tiempo t4, se anticipa que se recibirá PKT 4, pero PKT 4 no ha llegado aún. Se supone en la Figura 7 que se esperan recibir paquetes cada 20 ms. En la presente ilustración, se recibe PKT 2 20 ms después de PKT 1 y se recibe PKT 3 40 ms después de PKT 1. Se espera recibir PKT 4 60 ms después de PKT 1 pero no llega hasta 80 ms después de PKT 1.
En la Figura 7B se introduce un retardo inicial en la memoria intermedia de supresión de fluctuación antes de leer el primer paquete recibido, PKT 1. En este punto el retardo inicial es de Rinicial. En este caso, se leerá PKT 1 mediante la memoria intermedia en el tiempo Rinicial, PKT 2 en el tiempo Rinicial + 20 ms, PKT 3 en Rinicial + 40 ms, etc. En la Figura 7B, cuando PKT 4 no puede llegar en el tiempo esperado, Rinicial + 60 ms, se puede leer un borrado mediante la memoria intermedia de supresión de fluctuación. Al siguiente tiempo de leer un paquete, la memoria intermedia de supresión de fluctuación tratará de leer PKT 4. Si PKT 4 no ha llegado aún, se puede enviar otro borrado en el tiempo Rinicial + 80 ms. Se continuarán leyendo los borrados hasta que llegue PKT 4 en la memoria intermedia de supresión de fluctuación. Una vez que PKT 4 llega a la memoria intermedia de supresión de fluctuación, se lee a continuación PKT 4. Tal procesamiento da como resultado retardo, al no leerse otros paquetes hasta que se recibe PKT 4. Cuando el sistema no se puede recuperar, es decir, nunca recibe PKT 4, el sistema puede aplicar un restablecimiento del procedimiento, que permite leer paquetes posteriores a PKT 4 sin leer PKT 4. En el escenario anteriormente descrito, el retardo de extremo a extremo de la memoria intermedia de supresión de fluctuación tiene el potencial de aumentar a medida que se puede continuar enviando borrados durante un largo periodo de tiempo antes de que llegue PKT 4.
Por el contrario, de acuerdo con un ejemplo ilustrado en la Figura 7C, si un paquete no puede llegar o si se retarda la recepción del paquete, se lee un borrado en el tiempo de lectura esperado de PKT 4. Esto es similar al escenario descrito con respecto a la Figura 7B anterior, en la que el sistema esperó por PKT 4. En el siguiente tiempo de lectura, si aún no ha llegado PKT 4 pero ha llegado el siguiente paquete, PKT 5, se lee a continuación PKT 5. Para ilustrar adicionalmente, suponiendo que se retarda la recepción de PKT 4 y la memoria intermedia de supresión de fluctuación espera recibir PKT en el tiempo Rinicial + 80 ms. Cuando se retarda PKT 4, se lee un borrado. En el tiempo Rinicial + 100 ms, si aún no ha llegado PKT 4, en lugar de leer otro borrado, se lee PKT 5. En este segundo escenario, se realizan ajustes para retardo inmediatamente y se evitan excesivos retardos de extremo a extremo en la red de comunicación. Este procedimiento se puede denominar como IBA, al aumentar y reducir el tamaño de datos almacenados en la memoria intermedia antes de la lectura de acuerdo con la recepción de datos.
Se ilustra el procedimiento 200 de adaptación de memoria intermedia implícita (IBA) mediante un diagrama de flujo en la Figura 8A. Se puede implementar el procedimiento 200 en un controlador en una memoria intermedia de supresión de fluctuación adaptativa, tal como en el controlador 760 de salida o en el controlador 756 de memoria intermedia de supresión de fluctuación. El procedimiento 200 puede residir en otras porciones en un sistema que soporta una memoria intermedia de supresión de fluctuación. En la etapa 202, se recibe una solicitud en la memoria intermedia de supresión de fluctuación adaptativa para proporcionar un paquete siguiente para lectura. Se identifica el paquete siguiente como un paquete que tiene un índice i en una secuencia, específicamente, PKT[i]. En 204, si se habilita un modo de Adaptación de Memoria Intermedia Implícita (IBA), el procesamiento continúa a 206 para procesar de acuerdo con el modo IBA; y si se deshabilita el modo IBA, el procesamiento continúa a 226 para procesar sin modo IBA.
Si se recibió PKT [i] en 206, a continuación la memoria intermedia de supresión de fluctuación adaptativa proporciona PKT [i] para leer en la etapa 208. El modo IBA se deshabilita en la etapa 210 y se incrementa el índice, i, es decir (i=i+1). Además, si no se recibe PKT [i] en 206 y si se recibe PKT [i+1] en 214, el procesamiento continúa a la etapa 216 para leer PKT [i+1]. El modo IBA se deshabilita en la etapa 218 y se incrementa el índice i, dos veces, es decir, (i=i+ 2), en la etapa 220.
Si, en 214, no se reciben PKT [i] ni PKT [i+1], a continuación el controlador inicia lectura de un borrado en la etapa 222; y se incrementa el índice i en la etapa 224. Obsérvese, en el presente ejemplo, que cuando en el modo IBA, el controlador comprueba hasta dos (2) paquetes en respuesta a una solicitud para un paquete siguiente, tal como se recibió en la etapa 202. Esto implementa eficazmente una ventana de paquetes sobre la que el controlador busca paquetes recibidos. Ejemplos alternativos pueden implementar un tamaño de ventana diferente, por ejemplo, buscar tres (3) paquetes, que en este ejemplo serían números de secuencia de paquete i, i+1 e i+2.
Volviendo a 204, si no se habilita el modo IBA, el procesamiento continúa a 226 para determinar si se recibe PKT [i]. Si se recibe, se proporciona PKT [i] para lectura en la etapa 228, y se incrementa el índice i, en la etapa 230. Si no se recibe PKT [i] en 226, la memoria intermedia de supresión de fluctuación adaptativa proporciona un borrado para lectura en la etapa 232. Se habilita el modo IBA, como no se recibió PKT [i] y en su lugar se leyó un borrado.
La Figura 8B es un diagrama de estado relacionado con el modo IBA. Cuando en el modo 242 normal, si la memoria intermedia de supresión de fluctuación adaptativa proporciona PKT [i] para lectura, el controlador permanece en modo normal. El controlador pasa de modo 242 normal a modo 240 IBA cuando se lee un borrado. Una vez en el modo 240 IBA, el controlador permanece allí en la lectura de un borrado. El controlador pasa del modo 240 IBA al modo 242 normal en la lectura de PKT [i] o PKT [i+1].
La Figura 9 es un ejemplo de una memoria intermedia de supresión de fluctuación que implementa IBA tal como se ilustra en las Figuras 8A y 8B. En la presente ilustración, la utilidad de lectura solicita muestras para lectura desde un decodificador. El decodificador solicita a continuación suficientes paquetes desde la memoria intermedia de supresión de fluctuación para permitir lectura ininterrumpida mediante la utilidad de lectura. En la presente ilustración los paquetes llevan comunicaciones de voz, y la utilidad de lectura lee una muestra cada 20 ms. Sistemas alternativos pueden proporcionar los datos empaquetados desde la memoria intermedia de supresión de fluctuación a la utilidad de lectura a través de otras configuraciones, y los datos empaquetados pueden ser distintos de comunicaciones de voz.
Se ilustra la memoria intermedia de supresión de fluctuación en la Figura 9 como una pila de paquetes. En esta ilustración, la memoria intermedia recibe PKT 49 en primer lugar, y a continuación recibe posteriormente PKT 50, 51, PKT 52, PKT 53, etc. El número de paquete en esta ilustración se refiere a una secuencia de paquetes. En un sistema de paquetes, sin embargo, no hay garantía de que se recibirán los paquetes en este orden. Para claridad de entendimiento, en esta ilustración se reciben paquetes en la misma secuencia numérica como se transmitieron, que es también el orden de lectura. Con fines de ilustración, en la Figura 9 se apilan los paquetes posteriormente recibidos en la parte superior de los paquetes previamente recibidos en la memoria intermedia de supresión de fluctuación; por ejemplo, se almacena PKT 49 en la parte superior de PKT 50, se apila PKT 51 en la parte superior de PKT 50, etc. El paquete en el fondo de la pila en la memoria intermedia de supresión de fluctuación es el primero a enviar a la utilidad de lectura. Obsérvese también, en la presente ilustración, que no se muestra la longitud de memoria intermedia de supresión de fluctuación objetivo.
En la Figura 9, la recepción de paquetes, se representa gráficamente el tiempo de recepción anticipado y tiempo de lectura de paquetes frente al tiempo. Se ilustra el estado de la memoria intermedia actualizado cada momento que se recibe un paquete. Por ejemplo, se recibe PKT 49 en el tiempo t0, en el que se anticipa PKT 49 para lectura en el tiempo t1. Se ilustra el estado de la memoria intermedia en la recepción de PKT 49 en la parte superior del gráfico por encima del tiempo t0, el tiempo de recepción de PKT 49. Se representa gráficamente el tiempo de recepción para cada paquete recibido en la memoria intermedia de supresión de fluctuación como RECIBIDO. Se representa gráficamente el tiempo de LECTURA ANTICIPADO justo por debajo del tiempo RECIBIDO. Se identifican los tiempos de lectura como LECTURA.
En este ejemplo, inicialmente el siguiente paquete para lectura es PKT 49, que se anticipa para leerse en el tiempo t0. Se espera el siguiente paquete secuencial en el tiempo t1, etc. Se recibe el primer paquete, PKT 49 antes del tiempo de lectura anticipada de t0. Por lo tanto, se lee PKT 49 en el tiempo t0 como anticipado. Se anticipa el siguiente paquete, PKT 50, en el tiempo t1. Sin embargo, se retarda la recepción de PKT 50, y se envía un borrado a la utilidad de lectura, en lugar de PKT 50. El retardo de PKT 50 produce un subdesbordamiento como se ha descrito previamente. Se recibe PKT 50 después del tiempo de lectura anticipada, t1, y antes del siguiente tiempo de lectura anticipada, t2. Una vez recibido, se almacena PKT 50 en la memoria intermedia de supresión de fluctuación. Por lo tanto, cuando se recibe una siguiente solicitud para leer un paquete en el tiempo t2, el sistema busca el paquete secuencial más pequeño en la memoria intermedia de supresión de fluctuación; y se proporciona PKT 50 a la utilidad de lectura para lectura en el tiempo t2. Obsérvese, que usando IBA, incluso aunque no se recibe PKT 50 en el tiempo para leer como anticipado, se lee PKT 50 más tarde y se reanuda el resto de la secuencia desde ese punto. Como se ilustra, se reciben y leen los paquetes posteriores, PKT 51, PKT 52, etc., a tiempo para evitar borrados adicionales.
Aunque puede parecer que IBA aumenta el retardo de paquetes de extremo a extremo, este no es realmente el caso. Puesto que IBA conduce a un menor número de subdesbordamientos, el valor de la memoria intermedia de supresión de fluctuación como se estima a partir de la Ecuación 1 anterior, se mantiene a un valor más pequeño. Por lo tanto, el efecto global de IBA puede ser una reducción en el promedio del retardo de extremo a extremo de paquetes global.
IBA puede potenciar procesamiento de comunicación que tiene secuencias habladas. Una secuencia hablada se refiere a la porción del habla de una comunicación de voz, en la que una comunicación de voz incluye habla y porciones de silencio, consistente con patrones del habla normales. En procesamiento del habla, un codificador de señales vocales produce un tipo de paquete para el habla y otro tipo para silencio. Los paquetes del habla se codifican a una tasa de codificación, y el silencio se codifica a una tasa de codificación diferente. Cuando se reciben paquetes codificados en la memoria intermedia de supresión de fluctuación, la memoria intermedia de supresión de fluctuación identifica el tipo de paquete a partir de la tasa de codificación. La memoria intermedia de supresión de fluctuación supone que una trama de voz es parte de una secuencia hablada. La primera trama no de silencio es el comienzo de una secuencia hablada. La secuencia hablada finaliza cuando se recibe un paquete de silencio. En transmisión discontinua, no se transmiten todos los paquetes de silencio, como el receptor puede implementar un ruido simulado para tener en cuenta las porciones de silencio de la comunicación. En transmisión continua, se transmiten y reciben todos los paquetes de silencio. En un ejemplo, la memoria intermedia de supresión de fluctuación ajusta la longitud de memoria intermedia de supresión de fluctuación de acuerdo con el tipo de paquetes recibidos. En otras palabras, el sistema puede decidir reducir la longitud de la memoria intermedia de supresión de fluctuación requerida para porciones de silencio de la comunicación. Obsérvese, que los procedimientos IBA pueden ser aplicables a cualquier comunicación donde la lectura está de acuerdo con un esquema de temporización predeterminado, tal como una velocidad fija, etc.
Compresión/expansión en el tiempo
Una secuencia hablada se compone generalmente de múltiples paquetes de datos. En un ejemplo, se puede retardar la lectura de un primer paquete de una secuencia hablada mediante una longitud igual al retardo de la memoria intermedia de supresión de fluctuación. Se puede determinar el retardo de la memoria intermedia de supresión de fluctuación de diversas maneras. En un escenario, el retardo de la memoria intermedia de supresión de fluctuación puede ser un retardo de memoria intermedia de supresión de fluctuación calculado, en base a un algoritmo tal como la Ecuación 1 anterior. En otro escenario, el retardo de la memoria intermedia de supresión de fluctuación puede ser el tiempo que toma recibir datos de voz iguales a longitud del retardo de la memoria intermedia de supresión de fluctuación. Como alternativa, se puede seleccionar el retardo de la memoria intermedia de supresión de fluctuación como el menor de los valores anteriormente mencionados. En este ejemplo, se supone que se calcula el retardo de la memoria intermedia de supresión de fluctuación como 60 ms usando la Ecuación 1 y se recibe el primer paquete de una secuencia hablada en un primer tiempo t1. Cuando se recibe un siguiente paquete de la secuencia hablada 50 ms después del primer paquete, los datos de la memoria intermedia de supresión de fluctuación adaptativa son iguales al retardo de la supresión de fluctuación, 60 ms. En otras palabras, el tiempo desde la recepción de un paquete en la memoria intermedia de supresión de fluctuación adaptativa para lectura es 60 ms. Obsérvese, que se puede establecer la longitud objetivo de la memoria intermedia de supresión de fluctuación adaptativa para conseguir un retardo de 60 ms. Tal cálculo determina cuántos paquetes se almacenarán para cumplir el tiempo de retardo.
La memoria intermedia de supresión de fluctuación adaptativa controla el llenado y el vaciado de datos de la memoria intermedia y ajusta la salida de la memoria intermedia para mantener la memoria intermedia en la longitud de retardo objetivo, es decir, la cantidad de datos para conseguir el tiempo de retardo objetivo. Cuando la memoria intermedia de supresión de fluctuación envía el primer paquete de la secuencia hablada para lectura, hay un retardo igual a , donde = MÍN (retardo de memoria intermedia de supresión de fluctuación, tiempo tomado para recibir datos de voz iguales al retardo de la supresión de fluctuación). Se retardan los paquetes posteriores de la secuencia hablada en más el tiempo que toma leer de los paquetes anteriores. Por lo tanto se define implícitamente el retardo de la memoria intermedia de supresión de fluctuación de paquetes posteriores de la misma secuencia hablada una vez que se ha definido el retardo de la memoria intermedia de supresión de fluctuación para el primer paquete. En la práctica, esta definición de retardo memoria intermedia de supresión de fluctuación puede requerir consideraciones adicionales para acomodarse a situaciones tales como aquellas ilustradas en la Figura 10.
La Figura 10 ilustra la transmisión de información de voz en secuencias habladas. Se recibe la secuencia hablada 150 en el tiempo t0 y se recibe la secuencia hablada 154 en el tiempo t2. Existe un periodo 152 de silencio recibido entre la secuencia hablada 150 y la secuencia hablada 154 de 20 ms. Tras la recepción la memoria intermedia de supresión de fluctuación adaptativa puede almacenar los datos recibidos y determinar los retardos para lectura de cada secuencia hablada. En este ejemplo, se recibe la secuencia hablada 150 en la memoria intermedia de supresión de fluctuación adaptativa en el tiempo t0, en el que se calcula el tiempo de retardo de la memoria intermedia de supresión de fluctuación adaptativa como 80 ms. Se añade el retardo de la memoria intermedia de supresión de fluctuación al tiempo de recepción para dar como resultado un tiempo de lectura. De esta manera, se retarda la secuencia hablada 150 mediante la memoria intermedia de supresión de fluctuación adaptativa en 80 ms antes de lectura. La secuencia hablada 150 comienza la lectura en el tiempo t1, donde t1 = t0 + 80 ms, u 80 ms después de que se recibe la secuencia hablada 150; y completa la lectura en el tiempo t4. Usando un algoritmo tal como la Ecuación 1 para calcular la longitud de la memoria intermedia de supresión de fluctuación objetivo como anteriormente, el retardo de la memoria intermedia de supresión de fluctuación aplicado a la secuencia hablada 154 es 40 ms. Esto significa que se debe leer el primer paquete de la secuencia hablada 154 en el tiempo t3, en el que t3 = t2 + 40 ms, o 40 ms después de que se recibe la secuencia hablada 154. En la lectura del paquete 154 en el tiempo t3, sin embargo, entra en conflicto con la lectura del último paquete de la secuencia hablada 150, que finaliza la lectura en el tiempo t4. Por lo tanto, el retardo de la memoria intermedia de supresión de fluctuación calculado de 40 ms (para el paquete 154) no permite suficiente tiempo para que la secuencia hablada 150 finalice la lectura. Para evitar tal conflicto y permitir que ambos paquetes se lean correctamente, se debería leer el primer paquete de la secuencia hablada 154 después de que se haya leído el último paquete de la secuencia hablada 150 con un periodo de silencio intermedio. En este ejemplo, se solapan la secuencia hablada 150 y la secuencia hablada 154 desde el tiempo t3 hasta t4. Por lo tanto, no es deseable el procedimiento de lectura en este escenario. Para evitar solapamientos entre la lectura de paquetes como se ha descrito en el presente documento, existe una necesidad de detectar cuándo se leyó el último paquete de la secuencia hablada anterior. Por lo tanto, el cálculo del retardo de la memoria intermedia de supresión de fluctuación para un paquete puede considerar la temporización de lectura de los paquetes previamente leídos, para evitar solapamiento o conflicto.
Como se ha descrito anteriormente, en un ejemplo se calcula o actualiza el retardo de la memoria intermedia de supresión de fluctuación en el comienzo de una secuencia hablada. Restringiendo la actualización del retardo de la memoria intermedia de supresión de fluctuación al comienzo de una secuencia hablada, sin embargo, puede ser limitante, ya que las secuencias habladas a menudo varían en longitud y las condiciones de operación pueden cambiar durante una secuencia hablada. Se considera el ejemplo de la Figura 10. Por lo tanto, puede existir una necesidad de actualizar el retardo de la memoria intermedia de supresión de fluctuación durante una secuencia hablada.
Obsérvese, que es deseable controlar el flujo de datos fuera de la memoria intermedia de supresión de fluctuación adaptativa para mantener la longitud del retardo objetivo. De esta manera, si la memoria intermedia de supresión de fluctuación adaptativa está recibiendo datos con retardos variables, se ajustan los datos fuera de la memoria intermedia de supresión de fluctuación adaptativa para permitir que la memoria intermedia se llene con suficientes datos para cumplir la longitud de la memoria intermedia de supresión de fluctuación adaptativa objetivo. Se puede usar compresión/expansión en el tiempo para expandir paquetes cuando la memoria intermedia de supresión de fluctuación adaptativa está recibiendo insuficientes paquetes para mantener la longitud de retardo objetivo. De manera similar, se puede usar la compresión/expansión en el tiempo para comprimir paquetes cuando la memoria intermedia de supresión de fluctuación adaptativa está recibiendo demasiados paquetes y está almacenando paquetes por encima de la longitud de retardo objetivo. La memoria intermedia de supresión de fluctuación adaptativa puede trabajar en coordinación con un decodificador para comprimir/expandir en el tiempo paquetes como se describe en el presente documento.
La Figura 11 es un diagrama de bloques de un sistema que incluye dos receptores que se comunican a través de un elemento de red. Los receptores son AT 252 y AT 282; como se ilustra se adaptan AT 252 y 282 para comunicación a través de una BS 270. En el AT 252, la unidad 264 de procesamiento de transmisión transmite datos de voz a un codificador 260 que digitaliza los datos de voz y envía los datos empaquetados a la unidad 258 de procesamiento de capa inferior. Los paquetes se envían a continuación a la BS 270. Cuando el AT 252 recibe datos desde la BS 270, se procesan los datos en primer lugar en la unidad 258 de procesamiento de capa inferior, desde la cual se proporcionan paquetes de datos a una memoria intermedia 256 de supresión de fluctuación adaptativa. Se almacenan los paquetes recibidos en la memoria intermedia 256 de supresión de fluctuación adaptativa hasta que se alcanza la longitud de memoria intermedia de supresión de fluctuación objetivo. Una vez que se alcanza la longitud de la memoria intermedia de supresión de fluctuación objetivo, la memoria intermedia 256 de supresión de fluctuación adaptativa envía datos a un decodificador 254. En el ejemplo ilustrado, se puede realizar compresión y expansión para implementar compresión/expansión en el tiempo en el decodificador 254 que convierte los datos empaquetados a datos de voz y envía los datos de voz a una unidad 262 de procesamiento de recepción. En otro ejemplo de la presente invención, se puede realizar compresión y expansión de tiempo (time warping) en la memoria intermedia de supresión de fluctuación adaptativa mediante un controlador (no mostrado). El comportamiento del AT 282 es similar al del AT 252. El AT 282 transmite datos en una ruta desde la unidad 294 de procesamiento de transmisión al codificador 290 a la unidad 288 de procesamiento de capa inferior y finalmente a la BS 270. El AT 282 recibe datos en una ruta desde la unidad 288 de procesamiento de capa inferior a la memoria intermedia 286 de supresión de fluctuación adaptativa al decodificador 284 a la unidad 292 de procesamiento de recepción. No se ilustra el procesamiento adicional pero puede afectar a la lectura datos, tales como voz y puede implicar procesamiento de audio, presentaciones en pantalla, etc.
Las ecuaciones de la memoria intermedia de supresión de fluctuación dadas en la Ecuación 1 calculan el retardo de la memoria intermedia de supresión de fluctuación en el comienzo de unas secuencias habladas. El retardo de la memoria intermedia de supresión de fluctuación puede representar un número específico de paquetes, tal como determinado mediante las secuencias habladas, o puede representar un tiempo esperado equivalente para lectura de datos, tales como datos de voz. Obsérvese en este punto que la memoria intermedia de supresión de fluctuación tiene un tamaño objetivo, y esto determina la cantidad de datos que la memoria intermedia de supresión de fluctuación espera ver almacenados en todos los puntos de tiempo.
La variación en el retardo de paquetes debido a condiciones de canal, y otras condiciones de operación, pueden conducir a diferencias en el tiempo de llegada de paquetes en la memoria intermedia de supresión de fluctuación adaptativa. En consecuencia, la cantidad de datos (número de paquetes) en la memoria intermedia de supresión de fluctuación adaptativa puede ser menos o mayor que el valor de retardo de la memoria intermedia de supresión de fluctuación calculado, RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN. Por ejemplo, los paquetes pueden llegar en la memoria intermedia de supresión de fluctuación a una velocidad más lenta o más rápida que los paquetes que se generaron originalmente en el codificador. Cuando los paquetes llegan a la memoria intermedia de supresión de fluctuación a una velocidad más lenta que la esperada, la memoria intermedia de supresión de fluctuación puede empezar a agotarse debido a que los paquetes entrantes no reponen paquetes de salida a la misma velocidad. Como alternativa, si los paquetes llegan a una velocidad más rápida que la velocidad de generación en el codificador, la memoria intermedia de supresión de fluctuación puede empezar a aumentar en tamaño debido a que los paquetes no dejan la memoria intermedia de supresión de fluctuación tan rápido como entran. La primera condición puede conducir a subdesbordamientos, mientras que la última puede producir altos retardos de extremo a extremo debido a tiempos de almacenamiento temporal de los datos mayores en la memoria intermedia de supresión de fluctuación. La última es importante debido a que si se reduce el retardo de extremo a extremo del sistema de datos de paquete (AT se mueve a un área menos cargada o usuario movido a un área con mejor calidad canal) es deseable incorporar esta reducción de retardo en la lectura del habla. El retardo de extremo a extremo es un factor de calidad del habla importante y se percibe cualquier reducción en el retardo de lectura como un aumento de la calidad del habla o conversacional.
Para corregir discrepancias en la memoria intermedia de supresión de fluctuación entre RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN y la cantidad de datos realmente presentes en la memoria intermedia de supresión de fluctuación, un ejemplo de una memoria intermedia de supresión de fluctuación emplea compresión/expansión en el tiempo. La compresión/expansión en el tiempo implica expandir o comprimir la duración de un paquete del habla. La memoria intermedia de supresión de fluctuación implementa compresión/expansión en el tiempo expandiendo paquetes del habla cuando la memoria intermedia de supresión de fluctuación adaptativa empieza a agotarse, y comprimiendo paquetes del habla cuando la memoria intermedia de supresión de fluctuación adaptativa se hace mayor que RETARDO_DE_MEMORIA_INTERMEDIA_DE_SUPRESIÓN_DE_FLUCTUACIÓN. La memoria intermedia de supresión de fluctuación adaptativa puede trabajar en coordinación con un decodificador para comprimir/expandir en el tiempo paquetes. La compresión/expansión en el tiempo provoca mejora sustancial en la calidad del habla sin aumentar el retardo de extremo a extremo.
La Figura 12 es un diagrama de bloques de un ejemplo de una memoria intermedia de supresión de fluctuación adaptativa que implementa compresión/expansión en el tiempo. La unidad 302 de procesamiento de capa física proporciona datos a la pila 304 de datos. La pila 304 de datos emite paquetes a la memoria intermedia de supresión de fluctuación adaptativa y a la unidad 306 de control. La unidad 300 de procesamiento del Control de Acceso al Medio (MAC) del Enlace Directo (FL) proporciona una indicación de traspaso a la unidad 306 de procesamiento de supresión de fluctuación. La capa MAC implementa protocolos para recibir y enviar datos en la capa física, es decir sobre el aire. La capa MAC puede incluir seguridad, encriptación, autenticación e información de conexión. En un sistema que soporta IS-856, la capa MAC contiene reglas que gobiernan el Canal de Control, el Canal de Acceso así como los Canales de Tráfico Directo e Inverso. El estimador 314 de longitud objetivo proporciona la longitud de la memoria intermedia de supresión de fluctuación objetivo a la memoria intermedia de supresión de fluctuación usando los cálculos dados en la Ecuación 1. La entrada al estimador 314 de longitud objetivo incluye información de llegada de paquetes y tasa de error de paquetes actual (PER). Obsérvese, que configuraciones alternativas pueden incluir el estimador 314 de longitud objetivo en la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control.
En un ejemplo, la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control incluyen adicionalmente control de lectura que controla la velocidad de datos proporcionados para lectura. Desde la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control, se envían paquetes a una unidad 308 de Transmisión Discontinua (DTX), en la que la unidad 308 DTX proporciona información de ruido de fondo al decodificador 310 cuando no se reciben datos del habla. Obsérvese, que los paquetes proporcionados mediante la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control están listos para procesamiento de decodificación y se pueden denominar como paquetes del codificador de señales vocales. El Decodificador 310 decodifica los paquetes y proporciona muestras del habla de Modulación por Impulsos Codificados (PCM) a la unidad 312 de compresión/expansión en el tiempo. En ejemplos alternativos, se puede implementar la unidad 312 de compresión/expansión en el tiempo en el decodificador 310. La unidad 312 de compresión/expansión en el tiempo recibe un indicador de compresión/expansión en el tiempo desde la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control. El indicador de compresión/expansión en el tiempo puede ser una señal de control, una señal de instrucción o una bandera. En un ejemplo, un indicador de compresión/expansión en el tiempo puede ser un indicador multiestado, que tiene por ejemplo, una compresión, expansión y no compresión/expansión en el tiempo. Puede haber diferentes valores para diferentes niveles de compresión y/o diferentes niveles de expansión. En un ejemplo, el indicador de compresión/expansión en el tiempo ordena a la unidad 312 de compresión/expansión en el tiempo expandir o comprimir datos. El indicador de compresión/expansión en el tiempo indica expandir, comprimir o no comprimir/expandir. Se puede considerar al indicador de compresión/expansión en el tiempo una señal de control que inicia acción en la unidad 312 de compresión/expansión en el tiempo. El indicador de compresión/expansión en el tiempo puede ser un mensaje que especifica cómo expandir o comprimir los paquetes. El indicador de compresión/expansión en el tiempo puede identificar los paquetes a comprimir/expandir en el tiempo así como qué acción tomar, expandir o comprimir. Además todavía, el indicador de compresión/expansión en el tiempo puede proporcionar una elección de opciones a la unidad 312 de compresión/expansión en el tiempo. Durante un intervalo de silencio el módulo DTX modifica el flujo de borrados proporcionados mediante la memoria intermedia de supresión de fluctuación en un flujo de tramas de borrado y silencio que el decodificador usa para reconstruir una calidad de ruido de fondo más precisa y superior. En un ejemplo alternativo, el indicador de compresión/expansión en el tiempo enciende o apaga la compresión/expansión en el tiempo. En otro ejemplo más, el identificador identifica la cantidad de compresión y expansión usada para lectura. La unidad 312 de compresión/expansión en el tiempo puede modificar las muestras del decodificador y proporciona las muestras al procesamiento 306 de audio, que puede incluir una interfaz y una unidad de conversión, así como un controlador de audio y altavoz.
Aunque el indicador de compresión/expansión en el tiempo identifica cuándo comprimir o cuándo expandir, existe una necesidad de determinar cuánto tiempo de compresión/expansión aplicar a un paquete dado. En una realización, la cantidad de compresión/expansión en el tiempo es fija, en la que los paquetes se degradan en el tiempo de acuerdo con ciclo de habla o tono.
En una realización, se comunica el indicador de compresión/expansión en el tiempo como un porcentaje de una expansión objetivo o un nivel de compresión objetivo. En otras palabras, el indicador de compresión/expansión en el tiempo ordena comprimir mediante un porcentaje dado o expandir mediante un porcentaje dado.
En un escenario, puede ser necesario reconocer una característica conocida de datos entrantes. Por ejemplo, un codificador puede anticipar datos de un tono conocido o que tenga características específicas de longitud, por ejemplo. En esta situación, puesto que se anticipa una característica particular, no sería deseable modificar los datos recibidos usando compresión/expansión en el tiempo. Por ejemplo, un codificador puede esperar datos entrantes que tengan una longitud de tono particular. Sin embargo, si se habilita la compresión/expansión en el tiempo, se puede modificar la longitud del tono mediante compresión/expansión en el tiempo. Por lo tanto, en este escenario, no se debería habilitar compresión/expansión en el tiempo. Las comunicaciones basadas en tonos incluyen, pero sin limitación, información de Dispositivo de Telecomunicaciones para Sordos/Teletipo (TTY/TDD), aplicaciones que usan entradas de teclado numérico u otras aplicaciones que usan comunicaciones basadas en tonos. En tales comunicaciones la longitud de la información de portadora del tono, y por lo tanto, modificar el tono o la longitud del tono, tal como compresión o expansión en la lectura, puede dar como resultado pérdida de esa información. En TTY, TDD y otras aplicaciones que posibilitan recepción por receptores discapacitados auditivos, el decodificador también proporciona el estado de su procesamiento dentro de banda de tal comunicación. Esta indicación se usa para enmascarar las indicciones de compresión/expansión en el tiempo proporcionadas mediante la memoria intermedia de supresión de fluctuación. Si el decodificador está procesando paquetes con información TTY/TDD, se debería deshabilitar la compresión/expansión en el tiempo. Esto se puede realizar de 2 maneras; proporcionar el estado de TTY/TDD al controlador de la memoria intermedia de supresión de fluctuación, o proporcionar el estado TTY/TDD a la unidad de compresión/expansión en el tiempo. Si se proporciona el estado TTY/TDD del decodificador al controlador de la memoria intermedia de supresión de fluctuación, el controlador no debería indicar ninguna indicación de expansión o compresión cuando el codificador de señales vocales indica procesamiento de TTY/TDD. Si se proporciona el estado de TTY/TDD del codificador a la unidad de compresión/expansión en el tiempo, esto actúa como un filtro y la unidad de compresión/expansión en el tiempo no actúa tras las indicaciones de compresión/expansión en el tiempo si el decodificador está procesando información TTY/TDD.
En un sistema como se ilustra en la Figura 12, la memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control controlan la velocidad de los datos entrantes y generan un indicador de compresión/expansión en el tiempo cuando demasiados o muy pocos paquetes están disponibles o almacenados en la memoria intermedia. La memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control determinan cuándo comprimir/expandir en el tiempo y qué acción tomar. La Figura 13A ilustra operación de un ejemplo de una memoria intermedia de supresión de fluctuación adaptativa que realiza las determinaciones de compresión/expansión en el tiempo usando umbrales de compresión y expansión. La memoria intermedia de supresión de fluctuación acumula paquetes que han llegado a intervalos de tiempo irregulares. El estimador 314 de longitud de objetivo de supresión de fluctuación genera una longitud de memoria intermedia de supresión de fluctuación objetivo; se aplica a continuación la longitud de memoria intermedia de supresión de fluctuación objetivo a la memoria intermedia de supresión de fluctuación. En la práctica, una memoria intermedia de supresión de fluctuación adaptativa y la unidad 306 de control usan el valor de longitud de memoria intermedia de supresión de fluctuación adaptativa para realizar decisiones de control acerca de la operación de la memoria intermedia de supresión de fluctuación adaptativa y para controlar lectura. El umbral de compresión y el umbral de expansión indican cuándo se activa compresión o expansión, respectivamente. Se pueden especificar estos umbrales como una fracción de la longitud objetivo de la supresión de fluctuación.
Como se ilustra en la Figura 13A, se da la longitud de la memoria intermedia de supresión de fluctuación objetivo como Lobjetivo. El umbral de compresión se da como TCompresión, y el umbral de expansión se da como TExpansión. Cuando aumenta la longitud de la memoria intermedia de supresión de fluctuación por encima del umbral de compresión, TCompresión, la memoria intermedia de supresión de fluctuación indica al decodificador qué paquetes se deberían comprimir.
De una manera similar, cuando se agota la longitud de la memoria intermedia de supresión de fluctuación por debajo del umbral de expansión TExpansión, la memoria intermedia de supresión de fluctuación indica al decodificador qué paquetes se deberían expandir, y leer eficazmente a una velocidad más lenta.
Un punto de operación entre los umbrales de expansión y compresión evita subdesbordamientos así como aumentos de retardos de extremo a extremo excesivos. Por lo tanto, la operación objetivo está entre TCompresión y TExpansión. En un ejemplo, se establecen los valores para los umbrales expansión y compresión a 50% y 100%, del valor objetivo de la memoria intermedia de supresión de fluctuación, respectivamente. Mientras que en un ejemplo, se puede realizar la compresión/expansión en el tiempo dentro del decodificador, en ejemplos alternativos, se puede realizar esta función fuera del decodificador, por ejemplo posterior a la decodificación. Sin embargo, puede ser más simple comprimir/expandir en el tiempo la señal antes de sintetizar la señal. Si se aplican tales procedimientos de compresión/expansión en el tiempo después de decodificar la señal, se necesitaría estimar el periodo de tono de la señal.
En ciertos escenarios, la longitud de la memoria intermedia de supresión de fluctuación puede ser mayor, por ejemplo en un sistema W-CDMA. Un generador de umbral de compresión/expansión en el tiempo puede generar múltiples umbrales de compresión y expansión. Se pueden calcular estos umbrales en respuesta a condiciones de operación. Se ilustran los umbrales multinivel en la Figura 13B. TC1 es un primer umbral de compresión, TC2 es un segundo umbral de compresión y TC3 es un tercer umbral de compresión. También se ilustran TE1; TE2 y TE3 que representan tres diferentes valores para umbrales de expansión. Los umbrales se pueden basar en un porcentaje de compresión/expansión en el tiempo (cuántos paquetes se degradan en el tiempo), en paquetes comprimidos, en un porcentaje de paquetes expandidos o en una relación de estos dos valores. Se puede cambiar el número de umbrales según se necesite, en otras palabras, se pueden necesitar más o menos umbrales. Cada uno de los umbrales se refiere a una tasa de compresión o expansión diferente, por ejemplo, para sistemas que requieren granularidad más fina, se puede usar más umbrales, y para granularidad aproximada, se pueden usar menos umbrales. TE1, TE2 y TE3, etc., pueden ser una función de la longitud de retardo objetivo. Se puede cambiar el umbral siguiendo subdesbordamientos retardados y en base a estadísticas de error tales como PER.
La Figura 14 ilustra lectura de paquetes con y sin compresión/expansión en el tiempo. En la Figura 14, se transmite el PKT 1 en el tiempo t1, se envía el PKT 2 en el tiempo t2, y así sucesivamente. Los paquetes llegan al receptor como se ha indicado, en el que PKT 1 llega a t2’, y PKT 2 llega a t2’’. Para cada paquete, se da el tiempo de lecturasin usar compresión/expansión en el tiempo como LECTURA SIN COMPRESIÓN/EXPANSIÓN. Por el contrario, se da el tiempo de lectura que usa compresión/expansión en el tiempo como LECTURA CON COMPRESIÓN/EXPANSIÓN. Como el presente ejemplo es para datos en tiempo real, tales como comunicaciones del habla, el tiempo de lectura anticipada de paquetes es a intervalos de tiempo fijos. Durante lectura, idealmente cada paquete llega antes del tiempo de lectura anticipada. Si un paquete llega demasiado tarde para lectura en el tiempo anticipado, puede ser un impacto en la calidad de lectura.
Se reciben PKT 1 y PKT 2 a tiempo, y se leen, sin compresión/expansión en el tiempo. Se recibe tanto PKT 3 como PKT 4 al mismo tiempo, t4’. El tiempo de recepción para ambos paquetes es satisfactorio, debido a que se recibe cada paquete antes de los tiempos de lectura anticipados asociados, t4’’, para PKT 3 y t5’ para PKT 4. Se leen PKT 3 y 4 a tiempo sin compresión/expansión. Surge un problema cuando se recibe PKT 5 en el tiempo t6’, después del tiempo de lectura anticipado. Se lee un borrado en lugar de PKT 5 en el tiempo de lectura anticipado. PKT 5 llega más tarde, después de que el borrado ha comenzado la lectura.
En un primer escenario sin compresión/expansión, se elimina PKT 5 y se recibe PKT 6 y se lee en el siguiente tiempo de lectura anticipada. Obsérvese, en este caso, que se recibió PKT 6 a tiempo para lectura. En un segundo escenario, si se retardan PKT 5 y todos los paquetes posteriores a PKT 5, cada paquete puede llegar demasiado tarde para lectura anticipada, y da como resultado una cadena de borrados. En ambos de estos escenarios, se pierde información, es decir, se elimina PKT 5 en el primer escenario; se pierden PKT 5 y paquetes posteriores en el segundo escenario.
Como alternativa, usando una técnica IBA permite que se lea PKT 5 en el siguiente tiempo de lectura anticipada, en el que los paquetes posteriores continúan desde ese punto. IBA evita pérdida de datos, sin embargo, retarda el flujo de paquetes.
Tal lectura sin compresión/expansión en el tiempo puede aumentar el retardo de extremo a extremo global en un sistema de comunicación. Como se ilustra en la Figura 14, los retardos entre paquetes pueden dar como resultado información perdida, o retardos en lectura.
Implementando compresión/expansión en el tiempo, cuando PKT 5 llega después de su tiempo de lectura anticipada, se expanden los paquetes y se puede evitar un borrado. Por ejemplo, expandiendo PKT 4 puede producir lectura en 23 ms en lugar de 20 ms. PKT 5 se lee cuando se recibe. Esto es antes que si se hubiera enviado un borrado y se hubiera leído en su lugar (como se ilustra en una alternativa para la lectura sin compresión/expansión en el tiempo sino con IBA como se describe en la Figura 14). Expandir PKT 4 en lugar de enviar un borrado da como resultado menos compresión/expansión de calidad de lectura. Por lo tanto, la compresión/expansión en el tiempo proporciona mejor calidad de lectura global así como reducción de latencia. Como se ilustra en la Figura 14, se leen antes los paquetes posteriores a PKT 5 usando compresión/expansión en el tiempo que si no se usa una técnica de compresión/expansión en el tiempo. En este ejemplo específico, se lee PKT 7 en el tiempo t9, cuando se usa compresión/expansión en el tiempo, que es antes que sin compresión/expansión en el tiempo.
Una aplicación de compresión/expansión en el tiempo para mejorar calidad de lectura a medida que se consideran las condiciones de operación cambiantes así como los cambios en las características de la información transmitida en la transmisión del habla. A medida que las características del habla varían, que tienen secuencias habladas y periodos de silencio, la longitud de retardo de la memoria intermedia de supresión de fluctuación objetivo y los umbrales de compresión y expansión para cada tipo de datos pueden ser diferentes.
La Figura 15 ilustra ejemplos de “compresión de silencio” y “expansión de silencio” debido a diferencias en el retardo
de la supresión de fluctuación de una secuencia hablada a otra. En la Figura 15, las regiones 120, 124 y 128 sombreadas representan secuencias habladas, mientras que las regiones 122 y 126 no sombreadas representan periodos de silencio de la información recibida. Según se recibe, la secuencia hablada 120 comienza en el tiempo t1 y finaliza en el tiempo t2. En el receptor, se introduce el retardo de la memoria intermedia de supresión de fluctuación y por lo tanto la lectura de la secuencia hablada 120 comienza en el momento t1’. Se identifica el retardo de la memoria intermedia de supresión de fluctuación como la diferencia entre el tiempo t1’ y el tiempo t1. Según se recibe, el periodo 122 de silencio comienza en el momento t2 y finaliza en el momento t3. Se comprime el periodo 122 de silencio y se lee como periodo 132 de silencio desde el tiempo t2’ hasta t3’, que es menos que la duración de tiempo original del periodo 122 de silencio recibido. La secuencia hablada 124 comienza en tiempo t3 y finaliza en tiempo t4 en la fuente. Se lee la secuencia hablada 104 en el receptor desde tiempo t3’ hasta el tiempo t4’. Se expande el periodo 126 de silencio (tiempo t4 hasta t5) en el receptor en la lectura como periodo 136 de silencio, en el que (t5’ -t4’) es mayor que (t5 - t4). Se puede comprimir un periodo de silencio cuando la memoria intermedia de supresión de fluctuación necesita leer paquetes antes y expandir cuando una memoria intermedia de supresión de fluctuación necesita retardar la lectura de paquetes. En un ejemplo, la compresión o expansión de periodos de silencio produce compresión/expansión insignificante en calidad de voz. Por lo tanto, se pueden conseguir retardos de supresión de fluctuación adaptativos sin comprimir/expandir calidad de voz. En el ejemplo en la Figura 15, la memoria intermedia de supresión de fluctuación adaptativa comprime y expande los periodos de silencio como se identifica y controla mediante la memoria intermedia de supresión de fluctuación adaptativa.
Obsérvese, como se usa en el presente documento, que la compresión/expansión en el tiempo se refiere al control adaptativo de lectura en respuesta al tiempo y longitud de llegada de datos recibidos. Se puede implementar la compresión/expansión en el tiempo usando compresión de datos en lectura, expansión de datos en lectura o usar tanto compresión y expansión de datos en lectura. En un ejemplo, se usa un umbral para activar compresión. En otro ejemplo, se usa un umbral para activar expansión. En otro ejemplo más, se usan dos activadores: uno para compresión y uno para expansión. Otros ejemplos más pueden emplear múltiples activadores, que indican diversos niveles de compresión/expansión en el tiempo, por ejemplo lectura rápida a diferentes velocidades.
Se puede realizar también la compresión/expansión en el tiempo dentro del decodificador. Se describen técnicas para realizar compresión/expansión en el tiempo del decodificador en la solicitud en trámite junto con la presente número 11/123.467, titulada “Time Warping Frames Inside the Vocoder by Modifying the Residual”, presentada el 5 de mayo de 2005.
En un ejemplo, la compresión/expansión en el tiempo incorpora un procedimiento para “fusionar” segmentos del habla. Fusionar segmentos del habla implica comparar muestras del habla en al menos dos segmentos consecutivos del habla y si se encuentra una correlación entre segmentos comparados, crear un solo segmento de al menos dos segmentos consecutivos. Se hace fusión del habla mientras que se intenta preservar calidad del habla. Se consigue preservar calidad del habla y minimizar introducción de artefactos, tales como sonidos que degradan la calidad para el usuario, que incluyen “clics” y “chasquidos”, en el habla de salida seleccionando cuidadosamente el segmento a fusionar. La selección de segmentos del habla se basa en la similitud o correlación del segmento. Cuanto más cercana sea la similitud de los segmentos del habla, mejor será la calidad del habla resultante y menor la probabilidad de introducir un artefacto del habla.
La Figura 16 ilustra una señal del habla trazada sobre el tiempo. El eje vertical representa la amplitud de la señal; y el eje horizontal representa el tiempo. Obsérvese, que la señal del habla tiene un patrón distintivo, en el que se repiten porciones de la señal del habla sobre el tiempo. En este ejemplo, la señal del habla incluye un primer segmento desde el tiempo t1 hasta t2, que se repite como un segundo segmento durante t2 hasta t3. Cuando se encuentra tal repetición de un segmento, uno o más de los segmentos, tal como el de desde el tiempo t2 hasta el tiempo t3 se puede eliminar con poco o ningún impacto eficaz en la calidad de lectura de la muestra.
En un ejemplo, la Ecuación 4, como se proporciona en el presente documento a continuación, se puede usar para encontrar una relación entre los dos segmentos del habla. La correlación es una medida de la fuerza de la relación entre los dos segmentos. La Ecuación 4 proporciona un factor de correlación absoluto y limitado (desde -1 hasta +1) como una medida de la fuerza de la relación, en la que un número negativo bajo refleja una relación más débil, es decir, menos correlación, que un número positivo alto, que refleja una relación más fuerte, es decir, más correlación. Si la aplicación de la Ecuación 4 indica “buena similitud”, se realiza compresión/expansión en el tiempo. Si la aplicación de la Ecuación 4 muestra pequeña similitud, se pueden presentar artefactos en un segmento del habla fusionado. La correlación se da como:
En la Ecuación 4, x e y representan los dos segmentos del habla, m representa la ventana sobre la que se calcula la correlación entre los dos segementos, d representa la porción de correlación e i es un índice. Si la aplicación de la Ecuación 4 indica que se deben fusionar segmentos sin introducir artefactos, se puede realizar fusión usando una técnica de “añadir-solapar”. La técnica de añadir-solapar combina los segmentos comparados y produce un segmento del habla de cada dos segmentos del habla separados. La combinación usando añadir-solapar se puede basar en una ecuación tal como la Ecuación 5, dada como:
I = 0.. TamañoVentana -1 TamañoVentana = RTamañoVentana
10 Las muestras resultantes pueden ser muestras de Modulación por Impulsos Codificados (PCM). Cada muestra PCM tiene un formato predeterminado que define la longitud de bit y el formato de la muestra PCM. Por ejemplo, un número de 16 bits con signo puede ser el formato para representar una muestra PCM. La técnica añadir-solapar producida mediante la aplicación de la Ecuación 5 incluye ponderación para proporcionar una transición suave entre la primera muestra PCM del Segmento1 y la última muestra PCM del Segmento2. En la Ecuación 5,
15 “RTamañoVentana” es el número de muestras PCM en una ventana de referencia y “SegmentoFuera” es el tamaño del segmento añadido-solapado resultante. “TamañoVentana” es igual al tamaño de ventana de referencia y “Segmento” es el tamaño del segmento objetivo. Se determinan estas variables dependiendo de la velocidad de muestreo, contenido de frecuencia del habla y la supresión deseada entre calidad y complejidad computacional.
Se ilustra la técnica añadir-solapar anterior en las Figuras 17A y 17B. En la Figura 17A, se muestra un segmento del 20 habla compuesto de 160 muestras PCM. En este ejemplo, se representa RTamañoVentana mediante las muestras 0
-
47 PCM. En otras palabras, las muestras 0 - 47 PCM corresponden al número de muestras en la ventana de referencia de tamaño TamañoVentana. Segmento se refiere al tamaño del área de búsqueda objetivo y se representa mediante las muestras 10 - 104 PCM. En este ejemplo, se comparan las muestras 0 -47 con las muestras 10 - 104, una muestra PCM cada vez, para encontrar la mejor correlación entre las muestras de referencia
25 y el área de búsqueda objetivo. La localización en el área de búsqueda objetivo donde se encuentra la máxima correlación se denomina como un “desplazamiento”. En el punto del desplazamiento, se puede combinar RTamañoVentana con la porción de Segmento que corresponde al tamaño de RTamañoVentana. El segmento del habla que corresponde a las muestras 104 - 160 PCM se deja sin tocar.
En la Figura 17B, se comparan las primeras muestras RTamañoVentana del segmento del habla con porciones
30 posteriores del segmento del habla una muestra PCM cada vez. La localización donde se encuentra la máxima correlación entre RTamañoVentana y una longitud correspondiente de muestras en el área de búsqueda objetivo (Segmento) es el “desplazamiento”. La longitud del desplazamiento es la distancia desde el comienzo del segmento del habla hasta el punto de máxima correlación entre RTamañoVentana y Segmento. Una vez que se encuentra la máxima correlación, se fusiona RTamañoVentana (en el punto del desplazamiento) con una longitud Segmento
35 correspondiente. En otras palabras, se realiza añadir-solapar añadiendo RTamañoVentana a una porción de Segmento de la misma longitud. Esto se hace en el punto del desplazamiento como se ilustra. Se copian el resto de muestras desde el segmento original como se ilustra. El segmento del habla resultante consiste en las muestras restantes copiadas tal cual desde el segmento del habla original, añadidas al segmento fusionado como se ilustra. El paquete resultante es más corto que el segmento original por la longitud del desplazamiento. Este procedimiento se
40 denomina como compresión del habla. Cuanto menos se comprime un segmento del habla, menor es la probabilidad de que una persona pueda detectar cualquier compresión/expansión en la calidad.
Se realiza expansión del habla cuando la memoria intermedia de supresión de fluctuación contiene un bajo número de paquetes de voz. Se aumenta la probabilidad de subdesbordamientos si la memoria intermedia de supresión de fluctuación tiene un número bajo de paquetes. La memoria intermedia de supresión de fluctuación puede alimentar 45 un borrado al decodificador cuando aparece un subdesbordamiento. Esto, sin embargo, conduce a compresión/expansión en calidad de voz. Para evitar una compresión/expansión en la calidad de voz de este tipo, se
puede retardar la lectura de los últimos pocos paquetes en la memoria intermedia de supresión de fluctuación. Esto se consigue expandiendo los paquetes.
Se puede conseguir la expansión del habla repitiendo múltiples muestras PCM de un segmento del habla. Repetir múltiples muestras PCM mientras que se evitan artefactos u horizontalidades de tono se consigue trabajando con más muestras del habla PCM que cuando se realiza compresión del tiempo del habla. Por ejemplo, el número de muestras PCM usadas para implementar expansión del habla puede ser el doble del número de muestras PCM usadas en compresión de tiempo del habla. Se pueden obtener las muestras PCM adicionales desde el anterior paquete del habla leído.
La Figura 18A ilustra un ejemplo de expansión del habla, en el que cada paquete o segmento del habla es de 160 muestras PCM de duración y se genera un segmento del habla “pre-expandido”. En este ejemplo, se comparan dos segmentos del habla; un segmento del habla “actual” y un segmento del habla “anterior”. Se seleccionan las primeras muestras PCM de RTamañoVentana del segmento del habla actual como muestras de referencia. Se comparan estas muestras de RTamañoVentana con Segmento de un paquete anterior del habla, en el que se determina un punto de máxima correlación (o desplazamiento). Las muestras PCM RTamañoVentana se añadensolapan con un tamaño correspondiente de Segmento en el paquete anterior en el punto de desplazamiento. Se crea un segmento del habla pre-expandido copiando y añadiendo el resto de las muestras del segmento del habla anterior al segmento añadido-solapado como se ilustra en la Figura 18A. La longitud del segmento del habla expandido es entonces la longitud del segmento pre-expandido más la longitud del segmento del habla actual como se ilustra en la Figura 18A. En este ejemplo, se desplazan las muestras de PCM desde el comienzo de un segmento del habla.
En otro ejemplo, se expande el paquete o muestra del habla actual como se ilustra en la Figura 18B. Las muestras de referencia, RTamañoVentana, se localizan al comienzo del segmento del habla actual. Se compara RTamañoVentana con el resto del paquete del habla actual hasta que se localiza un punto de máxima correlación (desplazamiento). Las muestras de referencia se añaden-solapan con las muestras PCM correspondientes encontradas para que tengan máxima correlación en el segmento del habla actual. Se crea a continuación el segmento del habla expandido copiando las muestras PCM que empiezan en el comienzo del paquete hasta el punto del desplazamiento, añadiendo el segmento añadido-solapado a este y copiando y añadiendo las muestras PCM restantes, no modificadas, del paquete actual. La longitud del segmento del habla expandido es igual a la suma del desplazamiento más la longitud del paquete original.
En otro ejemplo, se expande el habla como se ilustra en la Figura 18C, en la que se integra RTamañoVentana en el paquete o segmento del habla actual y no aparece en el comienzo del paquete, Rdesplazamiento es la longitud del segmento del habla que corresponde a la distancia entre el comienzo del paquete actual hasta el punto en el que comienza RTamañoVentana. Se añade-solapa RTamañoVentana con el tamaño correspondiente de muestras PCM en el paquete actual encontrado en el punto de máxima correlación. Se crea a continuación el segmento del habla expandido copiando las muestras PCM que empiezan en el comienzo del paquete original o un paquete actual y que finalizan en el desplazamiento y añadiendo el segmento añadido-solapado y las muestras PCM restantes del paquete original. La longitud del segmento del habla expandido resultante es la longitud del paquete original más el desplazamiento menos las muestras Rdesplazamiento, es decir, el número de muestras PCM en Rdesplazamiento como se ha definido anteriormente.
Umbrales de compresión/expansión en el tiempo filtrados
Para evitar decisiones de oscilación de compresión y expansión, cuando el número de paquetes almacenados en la memoria intermedia de supresión de fluctuación adaptativa varía rápidamente, las variables usadas para evaluar el estado de la memoria intermedia de supresión de fluctuación adaptativa, es decir, número de paquetes almacenados en la memoria intermedia de supresión de fluctuación adaptativa, un ejemplo filtra tales variables sobre una ventana de muestreo. El estado de la memoria intermedia de supresión de fluctuación adaptativa se puede referir al número de paquetes almacenados en la memoria intermedia de supresión de fluctuación adaptativa o cualquier variable usada para evaluar los datos almacenados en la memoria intermedia de supresión de fluctuación adaptativa. En un sistema que soporta entrega de datos en ráfagas, IS-856 denominado como 1xEV-DO, la entrega de paquetes a un receptor dado se multiplexa por división en el tiempo en el enlace directo el receptor puede recibir varios paquetes en un ejemplo, seguido por ningún paquete durante algún tiempo. Esto da como resultado recepción de datos en ráfagas en la memoria intermedia de supresión de fluctuación adaptativa del receptor. Se someten eficazmente los datos recibidos a “agrupamientos”, en los que puede haber ejemplos de dos o más paquetes que llegan juntos en el tiempo. Tal agrupamiento puede fácilmente dar como resultado oscilaciones entre expansión y compresión de paquetes, en las que la memoria intermedia de supresión de fluctuación adaptativa proporciona instrucciones de compresión/expansión en el tiempo en respuesta a la velocidad de datos recibida y al estado de la memoria intermedia. Por ejemplo, se considera un ejemplo en el que el valor calculado (retardo o longitud) de la memoria intermedia de supresión de fluctuación es 40 ms en el comienzo de una secuencia hablada. En un tiempo más tarde, la carga de la memoria intermedia de supresión de fluctuación cae por debajo del umbral de expansión, dando como resultado una decisión para expandir un paquete de datos. Inmediatamente después de la lectura de este paquete, llega un grupo de tres paquetes; los datos que llegan llenan el tamaño de la memoria intermedia de supresión de fluctuación de manera que se excede el umbral de compresión. Esto producirá que se compriman los paquetes.
Puesto que a la llegada de un grupo de paquetes puede seguir por no llegada de paquetes durante algún tiempo, se puede agotar de nuevo la memoria intermedia de supresión de fluctuación puede de nuevo, produciendo que se expandan los paquetes. Este tipo de alternación entre expansión y compresión puede producir que un alto porcentaje de paquetes se degraden en el tiempo. Esto es indeseable puesto que los presentes inventores desearían restringir el porcentaje de paquetes cuya información de señal se haya modificado debido a compresión/expansión en el tiempo a un pequeño valor.
Un ejemplo evita tales oscilaciones suavizando los efectos que el agrupamiento puede tener sobre el control adaptativo de la memoria intermedia de supresión de fluctuación adaptativa y sobre compresión/expansión en el tiempo y lectura de datos. Este ejemplo usa valores promedio al determinar cuándo comprimir/expandir en el tiempo. Se calculan los promedios filtrando las variables usadas en tales cálculos. En un ejemplo, se determinan los umbrales de compresión y expansión filtrando o promediando el tamaño de la memoria intermedia de supresión de fluctuación. Obsérvese que el tamaño de la memoria intermedia se refiere al estado actual de la memoria intermedia.
Comparando el valor filtrado del tamaño de la memoria intermedia con el umbral de expansión puede dar como resultado un número superior de subdesbordamientos puesto que algunos paquetes que se hubieran expandido usando un valor no filtrado, no se expanden usando un valor filtrado. Por otro lado, comparando un valor filtrado con el umbral de compresión puede servir para amortiguar la mayoría de las oscilaciones (o alternar entre controles de compresión/expansión en el tiempo) con mínimo o ningún impacto negativo eficaz. Por lo tanto, se puede tratar de manera diferente los umbrales de compresión y expansión.
En un ejemplo, se comprueba el valor instantáneo del tamaño de la memoria intermedia de supresión de fluctuación adaptativa frente al umbral de expansión. Por el contrario, se comprueba un valor filtrado de la memoria intermedia de supresión de fluctuación frente al umbral de compresión. Una configuración usa un filtro de Respuesta de Impulso Infinita (IIR) para determinar el tamaño promedio de la memoria intermedia de supresión de fluctuación adaptativa, en el que la memoria intermedia de supresión de fluctuación adaptativa tiene un valor filtrado que se puede recalcular periódicamente, tal como una vez cada 60 ms. Se puede derivar la constante temporal del filtro a partir de estadísticas de agrupamiento y un ejemplo para esto para el 1xEV-DO Rev A puede ser 60 ms. Se usan las estadísticas de agrupamiento para derivar la constante temporal del filtro debido a que tienen una fuerte correlación con cómo oscila el tamaño de memoria intermedia de supresión de fluctuación instantáneo durante la operación.
Expansión debido a paquetes perdidos
Como se ha observado anteriormente en el presente documento, se puede adaptar la memoria intermedia de supresión de fluctuación adaptativa y los diversos procedimientos para controlar la memoria intermedia de supresión de fluctuación adaptativa y controlar compresión/expansión en el tiempo de datos recibidos a las especificaciones del sistema específico y condiciones de operación. Para sistemas de comunicaciones que implementan un esquema de solicitud de repetición para mejorar rendimiento, tales como un esquema de Solicitud de Repetición Automática Híbrida (H-ARQ), tal procesamiento de repeticiones tiene implicaciones en cómo se expande un paquete del habla. Específicamente, H-ARQ puede producir que los paquetes lleguen reordenados (es decir desordenados). Se considera la Figura 19, que ilustra una memoria intermedia de supresión de fluctuación de una cierta longitud y umbral de expansión, TExpandido, dados como el 50% de la longitud de la memoria intermedia de supresión de fluctuación objetivo. El paquete actual que se lee tiene número 20 de secuencia, PKT 20. La memoria intermedia de supresión de fluctuación contiene tres paquetes que tienen números 21, 23 y 24 de secuencia, identificados como PKT 21, PKT 23 y PKT 24, respectivamente. Cuando una utilidad de lectura solicita el siguiente paquete después de leer PKT 20, el umbral de expansión no se activa ya que la memoria intermedia de supresión de fluctuación contiene suficientes paquetes para mantener una longitud de memoria intermedia a más del 50% de la longitud de memoria intermedia de supresión de fluctuación calculada. En el presente ejemplo, no se expande por lo tanto PKT 21. Esto puede producir un subdesbordamiento si PKT 22 no llega en el tiempo que PKT 21 finaliza lectura, ya que los paquetes se leen en secuencia y por lo tanto la utilidad de lectura no puede leer PKT 23 antes de PKT 22. Incluso aunque el umbral de expansión no se active, un ejemplo anticipa la discontinuidad en paquetes recibidos y selecciona expandir PKT 21 para permitir más tiempo para que llegue PKT 22. De esta manera, la expansión de PKT 21 puede evitar un paquete perdido y un borrado. Por lo tanto, se puede expandir un paquete incluso si la longitud de la memoria intermedia de supresión de fluctuación está por encima el umbral de expansión TExpandido.
Se pueden potenciar las condiciones bajo las que los paquetes se deben expandir. Como se ha descrito anteriormente en el presente documento, se puede expandir un paquete si el tamaño de la memoria intermedia de supresión de fluctuación está por debajo del umbral de expansión. En otro escenario, se puede expandir un paquete si el paquete que tiene el siguiente número de secuencia no está presente en la memoria intermedia de supresión de fluctuación.
Como se ha mencionado anteriormente, se puede calcular el retardo de la memoria intermedia de supresión de fluctuación en el comienzo de una secuencia hablada. Puesto que las condiciones de red, incluyendo pero sin limitación condiciones de canal y condiciones de carga, pueden cambiar durante una secuencia hablada, particularmente durante una secuencia hablada larga, se configura un ejemplo para cambiar el retardo de la memoria intermedia de supresión de fluctuación durante una secuencia hablada. Por lo tanto, se pueden recalcular las ecuaciones de la memoria intermedia de supresión de fluctuación dadas anteriormente en el presente documento periódicamente, cada CAMBIO_TIEMPO_FLUCTUACIÓN segundos durante una secuencia hablada. Como alternativa, se pueden recalcular las variables en un evento de activación, tal como un cambio significativo en condiciones de operación, carga, indicaciones de interfaz de aire u otro evento. En un ejemplo, se puede establecerel valor de CAMBIO_TIEMPO_FLUCTUACIÓN a 0,2 s (200 ms).
Los umbrales de compresión/expansión en el tiempo, por ejemplo, umbrales de compresión y expansión pueden proporcionar guía de cómo cambiar valores durante secuencias habladas. Operación normal se refiere a operación del receptor cuando el estado de la memoria intermedia de supresión de fluctuación adaptativa está entre los umbrales de compresión y expansión y alrededor de una longitud de memoria intermedia de supresión de fluctuación objetivo. Cada umbral actúa como un activador. Cuando se alcanza o se viola un umbral, se pueden expandir o comprimir los paquetes en la memoria intermedia de supresión de fluctuación adaptativa dependiendo del umbral. El tamaño de la memoria intermedia de supresión de fluctuación adaptativa puede continuar expandiendo o contrayendo a medida que recibe paquetes. Este cambio constante en el tamaño de la memoria intermedia de supresión de fluctuación adaptativa indica que se pueden acercar continuamente los umbrales de expansión y compresión durante comunicación. En general, el sistema trata de mantener el tamaño de la memoria intermedia de supresión de fluctuación adaptativa entre los umbrales de expansión y expansión que se considera un estado estable. En el estado estable no se cambia el tamaño de la memoria intermedia de supresión de fluctuación adaptativa; y un cambio en la recepción de paquetes, y por lo tanto un cambio en el tamaño de la memoria intermedia de supresión de fluctuación adaptativa, puede producir automáticamente que el umbral active y comprima/expanda paquetes, respectivamente, hasta el que se consiga el nuevo retardo de memoria intermedia de supresión de fluctuación adaptativa. En este escenario, se actualiza la longitud de retardo objetivo de la memoriaintermedia de supresión de fluctuación adaptativa de acuerdo con el CAMBIO_TIEMPO_FLUCTUACIÓN. El tamaño real de la memoria intermedia de supresión de fluctuación puede no calcularse necesariamente, a medida que cambia automáticamente el tamaño de la memoria intermedia de supresión de fluctuación cuando se activa como un resultado de alcanzar los umbrales de expansión/compresión de compresión/expansión en el tiempo. En un ejemplo,se puede establecer el valor de CAMBIO_TIEMPO_FLUCTUACIÓN a 0,2 s (200 ms).
Pre-compresión/expansión de traspaso
Se acompaña a los traspasos típicamente por pérdida de cobertura durante una corta cantidad de tiempo. Cuando el traspaso es inminente, el AT puede experimentar condiciones de canal pobres y retardos de paquetes aumentados. Un ejemplo procesa condiciones de traspaso de una manera especial aplicando compresión/expansión en el tiempo a paquetes del habla. Tan pronto como el AT decide traspasar a una nueva estación base, se puede usar esta información para controlar la memoria intermedia de supresión de fluctuación. Tras recibir esta señal de traspaso, el AT entra en un modo “pre-compresión/expansión”, tal como se ilustra en el modo 244 de pre-compresión/expansión de la Figura 8B. En este modo, el AT expande paquetes hasta que se cumple una de dos condiciones. Bajo la primera condición, la memoria intermedia de supresión de fluctuación continúa acumulando paquetes y la expansión acumulativa da como resultado un tamaño de memoria intermedia de supresión de fluctuación de EXPANSIÓN_PRE_COMPRESIÓN/EXPANSIÓN. En otras palabras, se realiza la expansión de paquetes hasta que se alcanza la EXPANSIÓN_PRE_COMPRESIÓN/EXPANSIÓN. Como alternativa, bajo una segunda condición, se ha satisfecho un periodo de tiempo TIEMPO_COMPRESIÓN/EXPANSIÓN. Se inicia un temporizador en la recepción de una señal de traspaso o indicador de interrupción; el temporizador expira en TIEMPO_COMPRESIÓN/EXPANSIÓN. Una vez que se ha satisfecho una de estas dos condiciones, el AT sale del modo pre-compresión/expansión. Durante el modo pre-compresión/expansión, no se comprimen paquetes a menos que se satisfaga la condición de Fin_Secuencia_hablada (descrita más adelante) debido a que la memoria intermedia de supresión de fluctuación no deseará acumular suficientes paquetes para enviarlos a intervalos regulares a la utilidad de lectura. En un ejemplo en el que se esperan paquetes a intervalos regulares, por ejemplo 20 ms, se puede establecer el valor de EXPANSIÓN_PRE_COMPRESIÓN/EXPANSIÓN a 40 ms y el de TIEMPO_COMPRESIÓN/EXPANSIÓN que sea equivalente a 100 intervalos (166 ms).
Los traspasos son solo una forma de eventos de interrupción. La memoria intermedia de supresión de fluctuación puede implementar un mecanismo para manejar traspasos u otros tipos de interrupción. La información requerida para esto es cuánto exceso de fluctuación se requiere para manejar la interrupción (EXPANSIÓN_PRE_COMPRESIÓN/EXPANSIÓN) y cuánta duración la memoria intermedia de supresión de fluctuación se mantendrá trabajando en este modo de evitación de interrupción (TIEMPO_COMPRESIÓN/EXPANSIÓN).
Contar subdesbordamientos retardados
Puesto que las ecuaciones de memoria intermedia de supresión de fluctuación adaptativa proporcionadas anteriormente en el presente documento se diseñan para dirigirse a un porcentaje de subdesbordamientos retardados, es deseable medir con precisión el número de subdesbordamientos retardados. Cuando aparece un subdesbordamiento, no se conoce si el subdesbordamiento se produjo debido a retardo de paquetes o debido a eliminación de paquetes en algún lugar en la red, es decir, en la ruta de transmisión. Existe una necesidad por lo tanto de tener en cuenta el tipo de subdesbordamiento con precisión.
En un ejemplo, para comunicaciones que usan RTP/UDP/IP, cada paquete incluye un número de secuencia RTP.
Los números de secuencia se usan para disponer paquetes recibidos en el orden en el que se transmitieron. Cuando aparece un subdesbordamiento, se puede almacenar en memoria el número de secuencia RTP de paquete que produce el subdesbordamiento, tal como en una matriz de memoria. Si un paquete con el número de secuencia
identificado llega más tarde, se cuenta este subdesbordamiento como un “subdesbordamiento de retardo”.
La “tasa de subdesbordamientos de retardo” es la relación del número de subdesbordamientos con el número total de paquetes recibidos. Se establecen tanto el número de subdesbordamientos como el número de paquetes recibidos a cero cada vez que se actualizan las ecuaciones de memoria intermedia de supresión de fluctuación.
Potenciación para el comienzo y fin de una secuencia hablada
Se considera que la Figura 20 ilustra la línea de tiempo de una conversación entre dos usuarios. En este gráfico, el eje vertical representa tiempo. Cada usuario transmite secuencias habladas y periodos de silencio, que se reciben a continuación mediante el otro usuario. Por claridad, los segmentos 400 y 410 de bloques sombreados representan secuencias habladas (segmentos del habla) para el Usuario 1. El segmento 405 de bloques no sombreados representa secuencia hablada para el Usuario 2. Las áreas fuera de las secuencias habladas en la línea de tiempo representan tiempos cuando los usuarios no están hablando, sino que pueden estar escuchando al otro usuario o recibiendo un periodo de silencio. Se lee el segmento 400 en el Usuario 2. Una vez que el segmento 400 del habla finaliza lectura en el Usuario 2, el Usuario 2 espera durante un corto intervalo de tiempo antes de empezar a hablar. Se escucha posteriormente el comienzo del primer segmento 405 del habla del Usuario 2 por el Usuario 1. Este Retardo de Ida y Vuelta (RTD) conversacional percibido por el Usuario 1 es el hueco temporal entre cuando el Usuario 1 paró de hablar hasta el tiempo cuando el Usuario 1 escuchó el comienzo del segmento del habla del Usuario 2. El RTD conversacional no es un retardo de extremo a extremo de un sentido, pero es específico de usuario y significativo desde el punto de vista de los usuarios. Por ejemplo, si el RTD conversacional es demasiado grande para el Usuario 1, se solicitará al Usuario 1 para empezar a hablar de nuevo sin esperar para que el segmento del habla del Usuario 2 se lea. Esto rompe el flujo de conversación y se percibe como compresión/expansión de calidad conversacional.
Se puede cambiar el RTD conversacional experimentado por el Usuario 1 de diferentes maneras. En un ejemplo, se puede cambiar el tiempo en el que el fin del segmento del habla del Usuario 1 se lee al Usuario 2. En un segundo ejemplo, se cambia el tiempo en el que el comienzo del segmento del habla del Usuario 2 se lee al Usuario 1. Obsérvese, que los retardos de únicamente el comienzo y fin de las secuencias habladas influyen la calidad de voz en una conversación. Un objetivo de diseño es reducir adicionalmente los retardos en el comienzo y fin de las secuencias habladas.
En un ejemplo, el objetivo es potenciar el comienzo de una secuencia hablada. Se puede conseguir esta potenciación manipulando el primer paquete de una secuencia hablada del Usuario de manera que un oyente, Usuario 2, recibe el paquete antes que si se hubiera implementado el retado de memoria intermedia de supresión de fluctuación adaptativa por defecto. El retardo aplicado a un paquete en una memoria intermedia de supresión de fluctuación adaptativa puede ser el retardo de memoria intermedia de supresión de fluctuación adaptativa por defecto, un valor calculado o un valor seleccionado para dar como resultado que un oyente reciba el paquete en un tiempo particular. En un ejemplo, se varía la temporización de un primer paquete de una secuencia hablada recalculando el retardo de la memoria intermedia de supresión de fluctuación adaptativa en el comienzo de cada secuencia hablada recibida. Cuando se reduce el retardo de memoria intermedia de supresión de fluctuación adaptativa aplicado al primer paquete de una secuencia hablada, este primer paquete se acelera al oyente. Cuando se aumenta el retardo aplicado, se recibe el primer paquete por un oyente en un tiempo más tarde. El retardo de la memoria intermedia de supresión de fluctuación por defecto para un primer paquete puede ser menos que el retardo de la memoria intermedia de supresión de fluctuación calculado y viceversa. En el ejemplo ilustrado, se restringe el retardo de la supresión de fluctuación del primer paquete de cada secuencia hablada mediante un valor denominadocomo MÁX_RETARDO_INICIO, que se puede medir en segundos. Este valor puede ser un retardo de memoria intermedia de supresión de fluctuación recalculado o un retardo diseñado para dar como resultado que el oyentereciba el paquete en un tiempo designado. El valor de MÁX_RETARDO_INICIO puede ser menos que el retardo dela memoria intermedia de supresión de fluctuación calculado real. Cuando MÁX_RETARDO_INICIO es menos que el retardo calculado de la memoria intermedia de supresión de fluctuación y se aplica al primer paquete de una secuencia hablada, se expandirán automáticamente los paquetes posteriores de la secuencia hablada. Se produce la expansión automática de paquetes posteriores debido a que una memoria intermedia de supresión de fluctuación no puede recibir paquetes a la misma velocidad que lee paquetes. A medida que la memoria intermedia de supresión de fluctuación lee paquetes, la memoria intermedia de supresión de fluctuación se reduce en tamaño y se alcanza el umbral de expansión. Una vez que se alcanza el umbral de expansión, se activa la expansión y se expanden los paquetes posteriores en la secuencia hablada hasta que la memoria intermedia de supresión de fluctuación recibe suficientes paquetes entrantes para exceder el umbral de expansión. Implementando un valor deMÁX_RETARDO_INICIO, se recibe el primer paquete de la secuencia hablada por el oyente antes mientras que se expanden los paquetes posteriores. El oyente está satisfecho por la recepción del paquete inicial antes. Potenciando el comienzo de una secuencia hablada tiene el potencial de aumentar el número de subdesbordamientos en una pequeña cantidad; sin embargo, un valor apropiado de MÁX_RETARDO_INICIO mitiga este efecto. En un ejemplo se calcula un valor de MÁX_RETARDO_INICIO como una fracción del objetivo de supresión de fluctuación real;como un ejemplo, un valor de MÁX_RETARDO_INICIO de 0,7 de la LONGITUD DE MEMORIA INTERMEDIA DE SUPRESIÓN DE FLUCTUACIÓN OBJETIVO puede conducir a un aumento insignificante de subdesbordamientos.En otro ejemplo, un valor de MÁX_RETARDO_INICIO puede ser un número fijo tal como 40 ms, que conduce a un aumento insignificante en subdesbordamientos, tal como por ejemplo, en un sistema que soporta 1xEV-DO Rev A.
La expansión de paquetes posteriores en una secuencia hablada no degrada calidad de voz global. Esto se ilustra en la Figura 20, en la que el Usuario 2 recibe el primer paquete de una secuencia hablada desde el Usuario 1 y se restringe el retardo inicial o “retardo de un sentido” a un Td1. Como se ilustra, se recibe el segmento 400 del habla en el Usuario 2 sin ninguna expansión o compresión, el segmento 405 del habla, sin embargo, se comprime en el Usuario 1 en la recepción.
La Figura 21 es un diagrama de flujo que ilustra la potenciación del comienzo de secuencias habladas. Se determina en primer lugar en la etapa 510 si el sistema está en modo silencio. El modo silencio puede corresponder con un periodo de silencio entre secuencias habladas, o un tiempo cuando no se reciben paquetes mediante la memoria intermedia de supresión de fluctuación. Si el sistema no está en modo silencio, el procedimiento finaliza. Si está en modo silencio, se realiza la estimación de longitud de memoria intermedia de supresión de fluctuación objetivo en la etapa 520. A continuación, se determina si se potencia el sistema en la etapa 530. La potenciación, de acuerdo con un ejemplo indica que la longitud de la memoria intermedia de supresión de fluctuación adaptativa objetivo calculada es mayor que un valor dado, que en un ejemplo se da como un factor de potenciación tal como MÁX_RETARDO_INICIO; el sistema espera un periodo igual al factor de mejora o fracción de la longitud objetivo para empezar lectura, en la etapa 540. Si el sistema no se potencia, el sistema espera un nuevo objetivo para empezar lectura, en la etapa 550. El valor del nuevo objetivo puede ser igual a la longitud de memoria intermedia de supresión de fluctuación objetivo calculada o la máxima longitud de memoria intermedia de supresión de fluctuación.
La Figura 22 también ilustra potenciación del comienzo de una secuencia hablada. Se ilustra el procedimiento 580 empezando identificación de una secuencia hablada. Se consideran dos escenarios: i) con compresión/expansión en el tiempo e ii) sin compresión/expansión en el tiempo. En este ejemplo, se usan paquetes del habla de 20 ms de longitud. Se pueden implementar paquetes del habla de cualquier longitud. En este punto, la memoria intermedia de supresión de fluctuación adaptativa espera durante 120 ms antes de leer paquetes. Este valor es la longitud de memoria intermedia de supresión de fluctuación objetivo adaptativa y se recibe desde un estimador de objetivo de memoria intermedia de supresión de fluctuación adaptativa en la etapa 582. En el presente ejemplo, 120 ms es equivalente a recibir seis (6) paquetes, cada uno 20 ms de duración, sin compresión/expansión en el tiempo. Si no se usa compresión/expansión en el tiempo en 584, se proporcionan seis (6) paquetes en 120 ms. En el primer escenario, por lo tanto, la memoria intermedia de supresión de fluctuación empezará a leer paquetes después de la recepción de seis paquetes. Esto es equivalente en tiempo a 120 ms de retardo. En el segundo escenario, con la implementación de compresión/expansión en el tiempo, la memoria intermedia de supresión de fluctuación puede expandir los primeros cuatro (4) paquetes recibidos y empezar lectura de paquetes tras la recepción de cuatro (4) paquetes. Por lo tanto, incluso aunque el retardo de la memoria intermedia de supresión de fluctuación de 80 ms en este caso es menos que el retardo de la memoria intermedia de supresión de fluctuación estimado de 120 ms, se evitan subdesbordamientos potenciales expandiendo los primeros pocos paquetes. En otras palabras, la lectura de paquetes puede empezar antes con compresión/expansión en el tiempo que sin compresión/expansión en el tiempo. Por lo tanto, se puede usar compresión/expansión en el tiempo para potenciar el comienzo de una secuencia hablada sin afectar el número de subdesbordamientos.
En otro ejemplo, se puede potenciar el fin de una secuencia hablada. Esto se consigue comprimiendo los últimos pocos paquetes de una secuencia hablada, reduciendo por lo tanto el retardo de extremo a extremo. En otras palabras, el retardo en el extremo de una secuencia hablada se hace menor y un segundo usuario escucha de nuevo desde un primer usuario más rápido. Se ilustra potenciación del extremo de una secuencia hablada en la Figura 23. En este punto, una velocidad 1/8 de paquetes indica el fin de una secuencia hablada. Esto difiere de los paquetes de velocidad total (velocidad 1), media velocidad (velocidad ½), un cuarto de velocidad (velocidad ¼), que se pueden usar para transmitir datos de voz. Se pueden usar también otros paquetes de velocidad para transmisión durante periodos de silencio o al final de secuencias habladas. Se describe adicionalmente la implementación de paquetes de velocidad 1/8 como paquetes de indicador de silencio en comunicaciones de voz en la Solicitud de Patente de Estados Unidos en trámite junto con la presente Nº 11/123.478, fecha de prioridad 1 de febrero de 2005, titulada “METHOD FOR DISCONTINUOUS TRANSMISSION AND ACCURATE REPRODUCTION OF BACKGROUND NOISE INFORMATION”.
Como se ilustra en la Figura 23, sin compresión/expansión en el tiempo, se leen los paquetes N hasta N+4 en 100 ms. Comprimiendo los últimos pocos paquetes de la secuencia hablada, se pueden leer los mismos paquetes N hasta N+4 en 70 ms en lugar de 100 ms. La calidad del habla puede tener eficazmente poca o ninguna compresión/expansión cuando se implementa compresión en el tiempo. Potenciar el fin de una secuencia hablada supone que el receptor tiene conocimiento para identificar el fin de la secuencia hablada, y anticipar cuando se acerca el fin.
Mientras que se envían paquetes de voz sobre el Protocolo de Transporte en Tiempo Real (RTP) en un ejemplo, se puede establecer un indicador de “fin de secuencia hablada” en el último paquete de cada secuencia hablada. Cuando se proporciona un paquete para lectura, se comprueban los paquetes en la memoria intermedia de supresión de fluctuación por el indicador de “fin de secuencia hablada”. Si se establece este indicador en uno de los paquetes y no existen números de secuencia perdidos entre el paquete actual que se proporciona para lectura y el
paquete “fin de secuencia hablada”, se comprime el paquete que se proporciona para la lectura, así como todos los
futuros paquetes de la secuencia hablada actual.
En otro ejemplo, el sistema pasa a silencio si está en una secuencia hablada y un paquete de velocidad 1/8 o se entrega un paquete con el bit de Descripción de Indicador de Silencio (SID) a la utilidad de lectura. Se puede detectar un paquete de velocidad 1/8 comprobando su tamaño. Se lleva el bit SID en el encabezamiento RTP. El sistema pasa a secuencia hablada si está en silencio, y se entrega un paquete que no es ni de velocidad 1/8 ni tiene establecido el bit SID para lectura. Obsérvese, que en un ejemplo, se pueden realizar los procedimientos de almacenar en la memoria intermedia de supresión de fluctuación adaptativa como se presentan en el presente documento cuando el sistema está en el estado de secuencia hablada, y se pueden ignorar cuando está en un periodo de silencio.
Obsérvese, que este procedimiento puede descartar correctamente paquetes duplicados que llegaron tarde. Si llega un paquete duplicado, simplemente se descartará puesto que la primera instancia del paquete leyó en el tiempo apropiado y su secuencia no se grabó en la matriz que contenía los candidatos de “subdesbordamientos de retardo”.
Mientras se envían paquetes de voz sobre RTP en un ejemplo, se puede establecer un indicador de “fin de secuencia hablada” en el último paquete de cada secuencia hablada. Cuando se proporciona un paquete para lectura, se comprueban los paquetes en la memoria intermedia de supresión de fluctuación por el indicador de “fin de secuencia hablada”. Si se establece este indicador en uno de los paquetes y no existen números de secuencia perdidos entre el paquete actual que se proporciona para lectura y el paquete “fin de secuencia hablada”, se
comprime el paquete que se proporciona para la lectura, así como todos los futuros paquetes de la secuencia hablada actual.
Se ilustra un diagrama de flujo que ilustra potenciación del fin de secuencias habladas de acuerdo con un ejemplo en la Figura 24. Un nuevo paquete comienza en la etapa 600. En la etapa 605, si la longitud de la memoria intermedia de supresión de fluctuación es mayor o igual al umbral de compresión, se genera una indicación de compresión en la etapa 635 y se proporciona la cola al nuevo paquete en la etapa 600. En la etapa 605, si la memoria intermedia de supresión de fluctuación no es mayor o igual al umbral de compresión, se determina en la etapa 610 si la longitud de la memoria intermedia de supresión de fluctuación es menor o igual al umbral de expansión. Si lo es, la etapa 615 determina si la cola es igual a una velocidad de paquetes que puede ser representativa de un periodo de silencio o fin de una secuencia hablada. En un ejemplo, se puede enviar un tren continuo de paquetes de velocidad 1/8 a intervalos constantes, por ejemplo 20 ms, durante un periodo de silencio o en el fin de una secuencia hablada. En la Figura 24, si se determinó en la etapa 615 que la cola no es igual a un paquete de velocidad 1/8, se expande el segmento en la etapa 620 y se devuelve al nuevo paquete en la etapa 600. La etapa 625 determina si la cola es igual a 1/8. En la etapa 625, si la cola es igual velocidad 1/8, se genera una indicación de compresión en la etapa 635. Si no es igual a velocidad 1/8, a continuación la lectura es normal, sin ninguna compresión/expansión en el tiempo, en la etapa 630.
Optimizador de calidad de compresión/expansión en el tiempo
Cuando se comprime (o expande) un número de paquetes consecutivos, esto puede acelerar notablemente (o decelerar) el audio y producir compresión/expansión en la calidad. Se puede evitar tal compresión/expansión espaciando paquetes degradados en el tiempo, es decir, un paquete degradado sucede en el tiempo por unos pocos paquetes no degradados en el tiempo antes de que se degrade otro paquete.
Si se aplica el espaciado anterior de paquetes degradados para expansión, puede producir que algunos paquetes que de otra manera se deberían expandir no expandirse. Esto puede conducir a subdesbordamientos puesto que se realiza la expansión de paquetes cuando la memoria intermedia de supresión de fluctuación está agotada de paquetes. Por lo tanto, en un ejemplo, se puede aplicar el espaciado anterior de paquetes degradados a paquetes comprimidos, es decir, se puede seguir a un paquete comprimido mediante unos pocos paquetes no comprimidos antes de que se pueda comprimir otro paquete. El número de tales paquetes que no se deberían comprimir entre dos paquetes consecutivos se puede establecer típicamente a 2 o 3.
Conjunto de condiciones para activar compresión/expansión en el tiempo
Se describen en el presente documento un número de condiciones para activar compresión/expansión en el tiempo (expansión/compresión) de paquetes de voz. Lo siguiente es un conjunto de reglas combinadas (en la forma de pseudocódigo) para determinar si se debe comprimir un paquete, expandir o nada.
Si (en Pre-Compresión/expansión (Traspaso Detectado) Fase y no Fin de Secuencia Hablada Detectada) y OBJETIVO_DE_SUPRESIÓN_DE_FLUCTUACIÓN + EXPANSIÓN_PRE_COMPRESIÓN/EXPANSIÓN no alcanzado).
Expandir Paquete Fin si Si no
Si (Fin de Secuencia Hablada Detectada)
Comprimir
Fin si
Si no
Si (Umbral de Compresión Activado)
ComprimirFin si
Si no (Expandir Umbral Activado o Siguiente Paquete no en la Cola)
ExpandirFin si
Fin si
Fin si.
La Figura 25 ilustra la implementación de una memoria intermedia de supresión de fluctuación tradicional acoplada con una función de decodificador. En la Figura 25, se espera que los paquetes lleguen a la memoria intermedia de supresión de fluctuación en intervalos de 20 ms. Se observa, en este ejemplo, que los paquetes llegan a intervalos irregulares, es decir, con fluctuación. La memoria intermedia de supresión de fluctuación acumula los paquetes hasta que se alcanza una longitud de memoria intermedia de supresión de fluctuación específica de manera que la memoria intermedia de supresión de fluctuación no está agotada una vez que empieza a enviar paquetes a intervalos regulares tales como 20 ms. A la longitud de la memoria intermedia de supresión de fluctuación requerida, la memoria intermedia de supresión de fluctuación comienza a leer los paquetes a intervalos regulares de 20 ms. Un decodificador recibe esos paquetes a intervalos regulares y convierte cada paquete en 20 ms de voz por paquete. Ejemplos alternativos pueden elegir otros intervalos de tiempo.
La Figura 26, en comparación, ilustra un ejemplo de una memoria intermedia de supresión de fluctuación adaptativa que soporta compresión/expansión en el tiempo. En este punto, los paquetes llegan a la memoria intermedia de supresión de fluctuación adaptativa a intervalos regulares. En este caso, sin embargo, la longitud de memoria intermedia de supresión de fluctuación objetivo es mucho menor. Esto se debe a que la compresión/expansión en el tiempo permite que los paquetes se expandan si la memoria intermedia de supresión de fluctuación comienza a agotarse permitiendo por lo tanto tiempo para que la memoria intermedia de supresión de fluctuación adaptativa se vuelva a reponer. El decodificador puede expandir paquetes si la memoria intermedia de supresión de fluctuación adaptativa comienza a agotarse y comprimir paquetes si la memoria intermedia de supresión de fluctuación comienza a acumular demasiados paquetes. Se observa que se introduce una entrega irregular de paquetes de voz en el decodificador y en la unidad de compresión/expansión en el tiempo de la memoria intermedia de supresión de fluctuación adaptativa. Se permite que estos paquetes lleguen a intervalos irregulares debido a que con compresión/expansión en el tiempo, el decodificador convierte cada paquete a diferente longitud de paquete de voz, dependiendo del tiempo de llegada del paquete original. Por ejemplo, en este ejemplo, el decodificador convierte cada paquete en 15-35 ms de voz por paquete. Puesto que se pueden leer los paquetes antes debido a compresión/expansión en el tiempo, el tamaño de memoria intermedia requerido es menor, dando como resultado menor latencia de red.
La Figura 27 es un diagrama de bloques que ilustra un AT de acuerdo con un ejemplo. Se pueden acoplar juntos la memoria intermedia 706 de supresión de fluctuación adaptativa, la unidad 718 de control de compresión/expansión en el tiempo, la circuitería 714 de recepción, el control del procesador 722; la memoria 710, la circuitería 712 de transmisión, el Decodificador 708, el Control 720 H-ARQ, el codificador 716, el procesamiento 724 del habla, la ID 726 de Secuencia Hablada, la corrección 704 de errores como se muestra en las realizaciones anteriores. Además se pueden acoplar juntas mediante el bus 702 de comunicación mostrado en la Figura 27.
La Figura 28 ilustra procesamiento de paquetes en un ejemplo en el que se reciben los paquetes mediante una memoria intermedia de supresión de fluctuación eventualmente leídos mediante un altavoz. Como se ilustra, se reciben los paquetes en la memoria intermedia de supresión de fluctuación. La memoria intermedia de supresión de fluctuación envía paquetes e información de compresión/expansión en el tiempo al decodificador tras las solicitudes de paquete desde el decodificador. El decodificador envía muestras al controlador de salida tras las solicitudes del controlador de salida.
El controlador de entrada en la memoria intermedia de supresión de fluctuación mantiene el seguimiento de los paquetes entrantes e indica si existe un error en los paquetes entrantes. La memoria intermedia de supresión de fluctuación puede recibir paquetes que tienen números de secuencia. Se puede detectar un error mediante el controlador de entrada, por ejemplo, cuando un paquete entrante tiene un número de secuencia que es inferior que el número de secuencia de un paquete anterior. Una unidad de clasificación, localizada en el controlador de entrada en la Figura 28 clasifica paquetes entrantes. Diferentes categorías definidas mediante la unidad de clasificación
pueden incluir “paquetes buenos”, “paquetes retardados” y “paquetes malos”, etc. También, la unidad de control de
entrada puede comparar paquetes y enviar esta información al controlador de memoria intermedia de supresión de fluctuación.
El controlador de memoria intermedia de supresión de fluctuación ilustrado en la Figura 28 recibe entrada bidireccional desde el controlador de entrada y salida de la memoria intermedia de supresión de fluctuación. El controlador de memoria intermedia de supresión de fluctuación recibe datos desde el controlador de entrada, en el que tales datos indican características de los datos entrantes tales como el número de paquetes buenos recibidos, el número de paquetes malos recibidos, etc. La memoria intermedia de supresión de fluctuación puede usar esta información para determinar cuándo la memoria intermedia de supresión de fluctuación necesita encoger o crecer que puede dar como resultado una señal al controlador de compresión/expansión en el tiempo para comprimir o expandir. Una unidad de Tasa de Errores de Paquetes (PER) en la unidad del controlador de memoria intermedia de supresión de fluctuación calcula el retardo PER. El controlador de salida de la memoria intermedia de supresión de fluctuación solicita paquetes de la memoria intermedia de supresión de fluctuación. La unidad de controlador de salida de la memoria intermedia de supresión de fluctuación puede indicar también cuál fue el último paquete leído.
El decodificador envía solicitudes de paquete a la memoria intermedia de supresión de fluctuación y recibe paquetes desde la memoria intermedia de supresión de fluctuación tras tales solicitudes. Una unidad de controlador de compresión/expansión en el tiempo en el decodificador recibe información de control de compresión/expansión en el tiempo desde el controlador de salida de la memoria intermedia de supresión de fluctuación. La información de control de compresión/expansión en el tiempo indica si se deben comprimir, expandir o dejar sin modificar los paquetes. Los paquetes recibidos mediante el decodificador se decodifican y convierten a muestras del habla; y tras la solicitud de una memoria intermedia en un controlador de salida, se envían las muestras al controlador de salida. Se reciben las solicitudes de muestra del controlador de salida mediante un controlador de salida en el decodificador.
Adaptación de fase
Como se ha observado previamente, la recepción de un paquete después de su tiempo de lectura anticipada puede dar como resultado borrados que se leen en lugar del paquete retardado. La recepción de borrados o paquetes perdidos en la memoria intermedia de supresión de fluctuación adaptativa puede producir discontinuidades en el habla decodificada. Cuando se reconocen discontinuidades potenciales mediante la memoria intermedia de supresión de fluctuación adaptativa, la memoria intermedia de supresión de fluctuación adaptativa puede solicitar al decodificador realizar adaptación de fase. Como se ilustra en la Figura 28, la memoria intermedia 750 de supresión de fluctuación adaptativa puede incluir un controlador de adaptación de fase que recibe entrada desde el controlador 760 de salida. Se envía la información de control de adaptación de fase a una unidad de adaptación de fase que se puede localizar en el decodificador 762. En un ejemplo, la información de control de adaptación de fase puede incluir información de “desplazamiento de fase” y “longitud de serie”. El desplazamiento de fase es la diferencia entre el número de paquetes que el decodificador ha decodificado y el número de paquetes que el codificador ha codificado. La longitud de serie se refiere al número de borrados consecutivos que el decodificador ha decodificado inmediatamente antes de decodificar el paquete actual.
En un ejemplo, se implementan tanto la adaptación de fase como la compresión/expansión en el tiempo en un decodificador que tiene un código o software de control común. En un ejemplo, un decodificador implementa interpolación de forma de onda, en el que:
a) Si no se usa compresión/expansión en el tiempo ni adaptación de fase, se realiza codificación de las señales vocales usando interpolación_de_forma_de_onda con 160 muestras; b) Si se usa compresión/expansión en el tiempo y no adaptación de fase, se realiza codificación de las señales vocales usando decodificación_interpolación_forma_de_onda con (160 +- N * Período de Tono) muestras, donde N puede ser 1 o 2. c) Si no se usa compresión/expansión en el tiempo y se usa adaptación de fase, se realiza codificación de las señales vocales usando decodificación_interpolación_forma_de_onda con (160 -) muestras, donde es la cantidad de Adaptación de Fase. d) Si se usa tanto Adaptación de Fase como compresión/expansión en el tiempo, se realiza codificación de las señales vocales de decodificación_interpolación_forma_de_onda con (160 - +- N * Periodo de Tono) muestras, donde es la cantidad de Adaptación de Fase.
Una entrada de reloj al controlador de salida determina con qué frecuencia se solicitan datos mediante la memoria intermedia en el controlador de salida. Este es el reloj principal en el sistema y se puede implementar de muchas maneras diferentes. Se puede derivar el reloj dominante del sistema mediante la velocidad de muestreo de las muestras PCM. Por ejemplo, si se comunica habla de banda estrecha, el sistema lee 8000 muestras PCM por segundo (8 KHz). Este reloj puede conducir al resto del sistema. Un enfoque es dejar la interfaz 770 de audio que solicite más muestras desde el decodificador cuando se necesiten. Otro enfoque es dejar al decodificador/degradador en el tiempo ejecutarse independientemente y debido a que este módulo conoce cuántas muestras PCM se entregaron previamente, conoce cuando proporcionar más muestras.
Se puede localizar un planificador en el decodificador 762 o en la interfaz de audio y unidad 810 de control. Cuando se localiza en la unidad 810 de control de interfaz de audio, el planificador basa una siguiente solicitud para paquetes en el número de muestras PCM recibidas. Cuando se localiza el planificador en el decodificador, el planificador puede solicitar paquetes cada t ms. Por ejemplo, el planificador del decodificador puede solicitar paquetes cada 2 ms desde la memoria intermedia 750 de supresión de fluctuación adaptativa. Si no está habilitada compresión/expansión en el tiempo en el decodificador, o si la unidad de compresión/expansión en el tiempo no está localizada en el decodificador 762, el planificador envía un conjunto de muestras a la interfaz de audio y unidad 760 de control que corresponden al número exacto de muestras en 1 paquete. Por ejemplo, donde la unidad 760 de interfaz de audio solicita muestras cada 2 ms, el control 766 de salida del decodificador envía 16 muestras PCM (un paquete corresponde a 20 ms de 160 muestras de datos del habla, a una velocidad de muestreo de 8 KHz). En otras palabras, cuando el controlador de compresión/expansión en el tiempo está fuera del decodificador, la salida del decodificador es un paquete normal para conversión de muestreo. La unidad 770 de interfaz de audio convierte el número de muestras al número de muestras que hubiera recibido el decodificador si hubiera realizado compresión/expansión en el tiempo.
En otro escenario, cuando se localiza el controlador de compresión/expansión en el tiempo en el decodificador, y cuando se habilita compresión/expansión en el tiempo, en el modo compresión, el decodificador puede emitir menos muestras; y en el modo expansión, el decodificador puede emitir más muestras.
La Figura 30 ilustra adicionalmente un escenario donde se realiza la función de planificación mediante el decodificador. En la etapa 902, el decodificador solicita un paquete desde la memoria intermedia de supresión de fluctuación. Se recibe el paquete en la etapa 904. El paquete se convierte a “N” muestras en la etapa 906. Las “N” muestras generadas se entregan a la unidad de control de interfaz de audio en la etapa 908, y en la etapa 910, se planifica la siguiente solicitud de paquetes como una función de N.
La Figura 31 ilustra planificación fuera del decodificador, en la unidad de control e interfaz de audio. La unidad de interfaz de audio en primer lugar solicita un conjunto de muestras PCM en la etapa 1002. Se reciben las muestras PCM solicitadas en la etapa 1004, y en la etapa 1006, se planifica la siguiente solicitud de paquete como una función de N.
El indicador de compresión/expansión en el tiempo puede ser una parte de la instrucción de la memoria intermedia de supresión de fluctuación adaptativa tal como un indicador de no compresión/expansión en el tiempo. La Figura 32 ilustra la unidad de compresión/expansión en el tiempo donde se calcula la planificación fuera del decodificador, por ejemplo, en la unidad de control e interfaz de audio. Se introduce el tipo de paquete, indicador de compresión/expansión en el tiempo y la cantidad de compresión/expansión a realizar en la unidad de compresión/expansión en el tiempo.
La Figura 33 ilustra la unidad de compresión/expansión en el tiempo donde se calcula la planificación en la unidad de compresión/expansión en el tiempo en el decodificador. La entrada a la unidad de compresión/expansión en el tiempo incluye el tipo de paquete, indicador de compresión/expansión en el tiempo y cantidad de compresión/expansión a realizar. Se introduce y habilita la cantidad de compresión/expansión en la unidad de optimización de calidad de la unidad de compresión/expansión en el tiempo. Se emite la información de compresión/expansión en el tiempo.
Aunque la memoria descriptiva describe ejemplos particulares de la presente invención, los expertos en la materia pueden concebir variaciones de la presente invención sin alejarse del concepto inventivo. Por ejemplo, las enseñanzas en el presente documento se refieren a elementos de red de conmutación de circuitos pero son igualmente aplicables a elementos de red de dominios de conmutación de paquetes. También, las enseñanzas en el presente documento no se limitan a pares de tripletes de autenticación sino que se pueden aplicar también al uso de un solo triplete que incluye dos valores SRES (uno del formato habitual y uno para el nuevo formato desvelado en el presente documento).
Los expertos en la materia entenderán que se puede representar la información y señales usando cualquiera de una diversidad de diferentes tecnologías y técnicas. Por ejemplo, datos, instrucciones, comandos, información, señales, bits, símbolos y chips que se pueden denominar a lo largo de toda la descripción anterior se pueden representar mediante voltajes, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos o cualquier combinación de los mismos.
Los expertos en la materia apreciarán adicionalmente que se pueden implementar los diversos bloques lógicos ilustrativos, módulos, circuitos, procedimientos y algoritmos descritos en relación con los ejemplos desvelados en el presente documento como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito diversos componentes ilustrativos, bloques, módulos, circuitos, procedimientos y algoritmos generalmente en términos de su funcionalidad. Si se implementa tal funcionalidad como hardware o software depende de la aplicación particular y restricciones de diseño impuestas en el sistema global. Los expertos en la materia pueden implementar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero no se debería interpretar que tales decisiones de implementación como que producen un alejamiento del alcance de la presente invención.
Se pueden implementar o realizar los diversos bloques lógicos ilustrativos, módulos y circuitos descritos en relación con los ejemplos desvelados en el presente documento con un procesador de fin general, un procesador de señales digitales (DSP), un circuito integrado específico de aplicación (ASIC), un campo de matriz de puertas programables (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistores, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de fin general puede ser un microprocesador, pero como alternativa, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador o máquina de estado. Se puede implementar un procesador también como una combinación de dispositivos de computación, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores
5 en relación con un núcleo DSP o cualquier otra configuración de este tipo.
Se pueden realizar los procedimientos o algoritmos descritos en relación con los ejemplos desvelados en el presente documento directamente en hardware, en un módulo de software ejecutado mediante un procesador o en una combinación de los dos. Un módulo de software puede residir en la memoria RAM, memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco extraíble, un CD-ROM o cualquier otra forma
10 de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento se puede acoplar al procesador de manera que el procesador pueda leer información desde, y escribir información en, el medio de almacenamiento. Como alternativa, el medio de almacenamiento puede ser integral al procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC.

Claims (24)

  1. REIVINDICACIONES
    1.
    Un aparato, que comprende:
    una unidad (256; 286; 306) de almacenamiento en memoria configurada para almacenar paquetes de datos; y un primer controlador (306) configurado para comparar un número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con un primer umbral de compresión/expansión en el tiempo por la unidad de almacenamiento de la memoria, estando adaptado adicionalmente el primer controlador (306) para generar un indicador (350) de compresión/expansión en el tiempo cuando el número de paquetes almacenados viola el primer umbral de compresión/expansión en el tiempo, en el que el primer umbral de compresión/expansión en el tiempo comprende un primer porcentaje de una longitud de retardo objetivo de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria.
  2. 2.
    El aparato según la reivindicación 1, en el que el aparato comprende adicionalmente:
    un controlador de entrada configurado para recibir paquetes y almacenar paquetes en la unidad (256; 286; 306) de almacenamiento en memoria; y un controlador de salida acoplado al primer controlador y configurado para recibir el indicador de compresión/expansión en el tiempo del primer controlador (306).
  3. 3.
    El aparato según la reivindicación 2, que comprende adicionalmente:
    medios (312) para comprimir/expandir en el tiempo paquetes en respuesta al indicador de compresión/expansión en el tiempo, en el que se adapta el controlador de salida para proporcionar el indicador de compresión/expansión en el tiempo a los medios para comprimir/expandir en el tiempo paquetes.
  4. 4.
    El aparato según la reivindicación 3, en el que el primer controlador (306) está configurado adicionalmente para comparar el número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con un segundo umbral de compresión/expansión en el tiempo por la unidad (256; 286; 306) de almacenamiento en memoria y para generar el indicador de compresión/expansión en el tiempo cuando el número de paquetes almacenados excede el segundo umbral de compresión/expansión en el tiempo.
  5. 5.
    El aparato según la reivindicación 4, en el que el primer controlador (306) está configurado adicionalmente para generar un primer valor para el indicador de compresión/expansión en el tiempo para expansión de paquetes.
  6. 6.
    El aparato según la reivindicación 5, en el que el primer controlador (306) está configurado adicionalmente para generar un segundo valor para el indicador de compresión/expansión en el tiempo para compresión de paquetes.
  7. 7.
    El aparato según la reivindicación 6, en el que el segundo valor es un segundo porcentaje de la longitud de retardo objetivo.
  8. 8.
    El aparato según la reivindicación 6, en el que el primer controlador (306) está configurado adicionalmente para generar el primer valor si no se recibe un siguiente paquete secuencial en un primer periodo de tiempo después de un paquete secuencial anterior.
  9. 9.
    El aparato según la reivindicación 6, en el que el primer controlador (306) está configurado adicionalmente para promediar un estado de la unidad (256; 286; 306) de almacenamiento en memoria sobre una ventana temporal.
  10. 10.
    El aparato según la reivindicación 9, en el que el primer controlador (306) está configurado adicionalmente para filtrar el número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria sobre una ventana temporal.
  11. 11.
    El aparato según la reivindicación 10, en el que el primer controlador (306) está configurado adicionalmente para determinar una longitud de retardo de memoria intermedia de supresión de fluctuación objetivo, y determinar la ventana temporal como una función de la longitud de retardo de la memoria intermedia de supresión de fluctuación objetivo.
  12. 12.
    El aparato según la reivindicación 11, en el que el primer controlador (306) está configurado adicionalmente para determinar la longitud de retardo de memoria intermedia de supresión de fluctuación objetivo como un número objetivo de paquetes a almacenar en la unidad (256; 286; 306) de almacenamiento en memoria.
  13. 13.
    El aparato según en la reivindicación 9, en el que el primer controlador (306) está configurado adicionalmente para comparar el número de paquetes filtrados almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con el primer y segundo umbrales de compresión/expansión en el tiempo.
  14. 14.
    El aparato según la reivindicación 1, en el que el primer controlador (306) está configurado adicionalmente para generar el indicador de compresión/expansión en el tiempo como una instrucción para comprimir el paquete, expandir el paquete o procesar el paquete sin compresión/expansión en el tiempo.
  15. 15.
    El aparato según la reivindicación 1, en el que la unidad (256; 286; 306) de almacenamiento en memoria es una memoria intermedia de supresión de fluctuación adaptativa.
  16. 16.
    Un procedimiento informático implementado para procesar paquetes de datos, que comprende:
    almacenar paquetes de datos en una unidad (256; 286; 306) de almacenamiento en memoria;
    5 comparar un número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con un primer umbral de compresión/expansión en el tiempo, en el que el primer umbral de compresión/expansión en el tiempo comprende un primer porcentaje de una longitud de retardo objetivo de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria; y generar un indicador de compresión/expansión en el tiempo cuando el número de paquetes almacenados en la
    10 unidad (256; 286; 306) de almacenamiento en memoria viola el primer umbral de compresión/expansión en el tiempo.
  17. 17. El procedimiento según la reivindicación 16, que comprende adicionalmente:
    en respuesta al indicador de compresión/expansión en el tiempo, comprimir/expandir en el tiempo al menos un paquete.
    15 18. El procedimiento según la reivindicación 17, que comprende adicionalmente:
    comparar el número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria con un segundo umbral de compresión/expansión en el tiempo; y generar un indicador de compresión/expansión en el tiempo en un primer valor cuando el número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria es menor que el primer umbral de
    20 compresión/expansión en el tiempo y en un segundo valor cuando el número de paquetes almacenados en la unidad (256; 286; 306) de almacenamiento en memoria excede el segundo umbral de compresión/expansión en el tiempo.
  18. 19. El procedimiento según la reivindicación 16, que comprende adicionalmente:
    expandir al menos un paquete cuando el indicador de compresión/expansión en el tiempo es el primer valor; y 25 comprimir al menos un paquete cuando el indicador de compresión/expansión en el tiempo es un segundo valor.
  19. 20. El procedimiento según la reivindicación 19, que comprende adicionalmente:
    recibir una pluralidad de paquetes secuenciales; y añadir-solapar segmentos de los paquetes secuenciales en respuesta al indicador de compresión/expansión en 30 el tiempo.
  20. 21. El procedimiento según la reivindicación 20, en el que añadir-solapar comprende adicionalmente:
    combinar al menos dos de la pluralidad de segmentos como:
    a)
    35 b*)
    en el que SegmentoFuera es un segmento añadido-solapado resultante; Segmento1 y Segmento2 son al menos dos de la pluralidad de segmentos a añadir-solapar; TamañoVentana corresponde a un primer segmento; y RTamañoVentana corresponde a un segundo segmento.
  21. 22. El procedimiento de la reivindicación 16, que comprende adicionalmente:
    determinar un primer umbral de compresión/expansión en el tiempo siguiendo un número de paquetes retardados.
  22. 23.
    El procedimiento de la reivindicación 22, en el que un paquete retardado es un paquete recibido después de un tiempo de lectura anticipada asociado del paquete.
  23. 24.
    El procedimiento de la reivindicación 16, que comprende adicionalmente:
    comprimir/expandir en el tiempo al menos un paquete; y leer el al menos un paquete degradado en el tiempo.
  24. 25.
    Un producto de programa de ordenador que comprende instrucciones ejecutables por ordenador para realizar las etapas del procedimiento reivindicado en las reivindicaciones 16 a 24 anteriores.
ES10154331T 2004-08-30 2005-08-30 Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa Expired - Lifetime ES2405750T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60603604P 2004-08-30 2004-08-30
US606036P 2004-08-30

Publications (1)

Publication Number Publication Date
ES2405750T3 true ES2405750T3 (es) 2013-06-03

Family

ID=35700421

Family Applications (2)

Application Number Title Priority Date Filing Date
ES05794150T Expired - Lifetime ES2355039T3 (es) 2004-08-30 2005-08-30 Método y aparato destinados a una memoria temporal supresora de fluctuación en retardos adaptativa.
ES10154331T Expired - Lifetime ES2405750T3 (es) 2004-08-30 2005-08-30 Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES05794150T Expired - Lifetime ES2355039T3 (es) 2004-08-30 2005-08-30 Método y aparato destinados a una memoria temporal supresora de fluctuación en retardos adaptativa.

Country Status (17)

Country Link
US (4) US7817677B2 (es)
EP (4) EP1787290B1 (es)
JP (4) JP2008512062A (es)
KR (4) KR100964436B1 (es)
CN (5) CN101867522A (es)
AT (1) ATE488838T1 (es)
BR (1) BRPI0514801B1 (es)
CA (4) CA2691589A1 (es)
DE (1) DE602005024825D1 (es)
DK (1) DK2200024T3 (es)
ES (2) ES2355039T3 (es)
MX (1) MX2007002483A (es)
MY (1) MY149811A (es)
PL (2) PL1787290T3 (es)
PT (1) PT2200024E (es)
TW (1) TWI454101B (es)
WO (1) WO2006026635A2 (es)

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8017791B2 (en) * 2003-03-28 2011-09-13 Wayne State University Tri-substituted 2-benzhydryl-5-benzylamino-tetrahydro-pyran-4-ol and 6-benzhydryl-4-benzylamino-tetrahydro-pyran-3-ol analogues, and novel, 3,6-disubstituted pyran derivatives
EP1787290B1 (en) * 2004-08-30 2010-11-17 Qualcomm Incorporated Method and apparatus for an adaptive de-jitter buffer
US7674096B2 (en) * 2004-09-22 2010-03-09 Sundheim Gregroy S Portable, rotary vane vacuum pump with removable oil reservoir cartridge
US8085678B2 (en) * 2004-10-13 2011-12-27 Qualcomm Incorporated Media (voice) playback (de-jitter) buffer adjustments based on air interface
US7672742B2 (en) * 2005-02-16 2010-03-02 Adaptec, Inc. Method and system for reducing audio latency
US20060187970A1 (en) * 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US8355907B2 (en) * 2005-03-11 2013-01-15 Qualcomm Incorporated Method and apparatus for phase matching frames in vocoders
US7746847B2 (en) * 2005-09-20 2010-06-29 Intel Corporation Jitter buffer management in a packet-based network
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8411662B1 (en) 2005-10-04 2013-04-02 Pico Mobile Networks, Inc. Beacon based proximity services
US8257177B1 (en) 2005-10-04 2012-09-04 PICO Mobile Networks, Inc Proximity based games for mobile communication devices
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
JP4640824B2 (ja) * 2006-01-30 2011-03-02 富士通株式会社 通信環境の測定方法、受信装置、及びコンピュータプログラム
JP4573780B2 (ja) * 2006-02-02 2010-11-04 富士通株式会社 パケット記録再生装置
US8832540B2 (en) 2006-02-07 2014-09-09 Nokia Corporation Controlling a time-scaling of an audio signal
US20070201656A1 (en) * 2006-02-07 2007-08-30 Nokia Corporation Time-scaling an audio signal
US20070186146A1 (en) * 2006-02-07 2007-08-09 Nokia Corporation Time-scaling an audio signal
JP4983054B2 (ja) * 2006-03-10 2012-07-25 富士通株式会社 サーバ装置及び同装置におけるバッファ制御方法
US20070294087A1 (en) * 2006-05-05 2007-12-20 Nokia Corporation Synthesizing comfort noise
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
JP2008005392A (ja) * 2006-06-26 2008-01-10 Kddi Corp 通信端末装置およびバッファ制御方法
US8005094B2 (en) * 2006-06-30 2011-08-23 Agere Systems Inc. Method and apparatus for circuit emulation services over cell and packet networks
US8619623B2 (en) 2006-08-08 2013-12-31 Marvell World Trade Ltd. Ad-hoc simple configuration
US20080046233A1 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Packet Loss Concealment for Sub-band Predictive Coding Based on Extrapolation of Full-band Audio Waveform
CN101375330B (zh) * 2006-08-15 2012-02-08 美国博通公司 丢包后解码音频信号的时间扭曲的方法
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
US7573907B2 (en) * 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
US7680099B2 (en) * 2006-08-22 2010-03-16 Nokia Corporation Jitter buffer adjustment
DE602006005360D1 (de) * 2006-08-24 2009-04-09 Ntt Docomo Inc Verfahren und Vorrichtung für nahtloses Handover
US7796626B2 (en) * 2006-09-26 2010-09-14 Nokia Corporation Supporting a decoding of frames
KR101347404B1 (ko) * 2006-10-05 2014-01-02 엘지전자 주식회사 무선통신 시스템에서 음성 패킷의 전송 방법
US9135951B2 (en) * 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US8233456B1 (en) 2006-10-16 2012-07-31 Marvell International Ltd. Power save mechanisms for dynamic ad-hoc networks
US8732315B2 (en) 2006-10-16 2014-05-20 Marvell International Ltd. Automatic ad-hoc network creation and coalescing using WiFi protected setup
US8274945B2 (en) * 2006-10-16 2012-09-25 Qualcomm Incorporated Method and apparatus for time-warping packets at the sender side
US8855275B2 (en) * 2006-10-18 2014-10-07 Sony Online Entertainment Llc System and method for regulating overlapping media messages
US9308455B1 (en) 2006-10-25 2016-04-12 Marvell International Ltd. System and method for gaming in an ad-hoc network
US8817740B2 (en) * 2006-10-31 2014-08-26 Motorola Mobility Llc Methods and devices of a queue controller for dual mode bidirectional audio communication
US8792945B2 (en) * 2006-10-31 2014-07-29 Motorola Mobility Llc Methods and devices for dual mode bidirectional audio communication
US7889686B1 (en) 2006-11-21 2011-02-15 Picomobile Networks, Inc. Seamless switching of media streams between different networks
US8279884B1 (en) 2006-11-21 2012-10-02 Pico Mobile Networks, Inc. Integrated adaptive jitter buffer
US7978699B1 (en) 2006-11-21 2011-07-12 Picomobile Networks, Inc. Protocol compression with synchronized sequence numbers
US7961756B1 (en) 2006-11-21 2011-06-14 Picomobile Networks, Inc. Integrated multimedia system
US7970384B1 (en) 2006-11-21 2011-06-28 Picomobile Networks, Inc. Active phone book enhancements
EP2092679A4 (en) * 2006-12-06 2011-10-26 Ericsson Telefon Ab L M MEMORY CONTROL BUFFER TRIGGER
US8111720B2 (en) * 2007-01-09 2012-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations
KR101370478B1 (ko) * 2007-01-10 2014-03-06 퀄컴 인코포레이티드 멀티미디어 전화 통신을 위한 컨텐트- 및 링크-의존 코딩 적응 구조
US7983309B2 (en) * 2007-01-19 2011-07-19 Nokia Corporation Buffering time determination
WO2008100503A2 (en) * 2007-02-12 2008-08-21 Dolby Laboratories Licensing Corporation Improved ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
US8195454B2 (en) 2007-02-26 2012-06-05 Dolby Laboratories Licensing Corporation Speech enhancement in entertainment audio
GB0705329D0 (en) * 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
EP2111073B1 (en) * 2007-06-13 2010-01-13 NTT DoCoMo, Inc. Method and apparatus for performing a seamless handover of a mobile entity
US8918051B1 (en) 2007-06-18 2014-12-23 Marvell International Ltd. Method and apparatus for performing a handoff of a data communication session from one network to another network
WO2009006585A1 (en) * 2007-07-03 2009-01-08 Marvell Semiconductor, Inc. Location aware ad-hoc gaming
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
US20090028300A1 (en) * 2007-07-25 2009-01-29 Mclaughlin Tom Network communication systems including video phones
US8340121B2 (en) 2007-08-22 2012-12-25 Qualcomm Incorporated Method and apparatus for transmission of circuit switched voice over packet switched networks
KR101340302B1 (ko) * 2007-08-24 2013-12-11 알까뗄 루슨트 리소스, 네트워크 요소 및 사용자 장비를 스케줄링하기 위한 방법
KR101418354B1 (ko) * 2007-10-23 2014-07-10 삼성전자주식회사 음성 통신 시스템에서 플레이아웃 스케줄링 방법 및 장치
KR101152854B1 (ko) * 2007-12-27 2012-06-12 교세라 가부시키가이샤 무선통신장치
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
US8254376B2 (en) * 2008-01-25 2012-08-28 Telefonaktiebolaget L M Ericsson (Publ) Simple adaptive jitter buffering algorithm for network nodes
KR101162868B1 (ko) * 2008-02-27 2012-07-06 쿄세라 코포레이션 무선 통신 장치
WO2009111233A1 (en) 2008-03-04 2009-09-11 Interdigital Patent Holdings, Inc. Method and apparatus for accessing a random access channel by selectively using dedicated or contention-based preambles during handover
US8873543B2 (en) * 2008-03-07 2014-10-28 Arcsoft (Shanghai) Technology Company, Ltd. Implementing a high quality VOIP device
US8406715B2 (en) * 2008-03-27 2013-03-26 Panasonic Automotive Systems of America, division of Panasonic Corporation of North America Method and apparatus for dynamically adapting FM tuner sensitivity to a local environment for a single-tuner system
CN101304557B (zh) * 2008-04-25 2012-09-05 华为技术有限公司 一种分组传输控制方法及装置
US8892228B2 (en) * 2008-06-10 2014-11-18 Dolby Laboratories Licensing Corporation Concealing audio artifacts
US8055292B1 (en) * 2008-06-12 2011-11-08 Sprint Spectrum L.P. Method and system for power level adjustment of forward channels
US8488661B2 (en) * 2008-06-13 2013-07-16 Verizon Patent And Licensing Inc. Systems and methods for data streaming
US8670573B2 (en) * 2008-07-07 2014-03-11 Robert Bosch Gmbh Low latency ultra wideband communications headset and operating method therefor
JP5064564B2 (ja) * 2008-08-28 2012-10-31 京セラ株式会社 無線端末及び通信端末
US20100202302A1 (en) * 2008-09-21 2010-08-12 Research In Motion Limited System and method for reserving and signaling hybrid automatic repeat request identifiers
US8479214B2 (en) * 2008-09-30 2013-07-02 Microsoft Corporation Hardware throughput saturation detection
US8245229B2 (en) * 2008-09-30 2012-08-14 Microsoft Corporation Temporal batching of I/O jobs
US8346995B2 (en) 2008-09-30 2013-01-01 Microsoft Corporation Balancing usage of hardware devices among clients
US7920475B2 (en) * 2008-12-15 2011-04-05 Verizon Patent And Licensing Inc. System and method for adaptive removal of delay jitter effect and low end-to-end delay
EP2211335A1 (en) * 2009-01-21 2010-07-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal
US8611337B2 (en) * 2009-03-31 2013-12-17 Adobe Systems Incorporated Adaptive subscriber buffering policy with persistent delay detection for live audio streams
US9137719B2 (en) * 2009-10-27 2015-09-15 Clearwire Ip Holdings Llc Multi-frequency real-time data stream handoff
US9036624B2 (en) * 2009-12-24 2015-05-19 Telecom Italia S.P.A. Method of scheduling transmission in a communication network, corresponding communication node and computer program product
US9380401B1 (en) 2010-02-03 2016-06-28 Marvell International Ltd. Signaling schemes allowing discovery of network devices capable of operating in multiple network modes
WO2011127055A1 (en) 2010-04-05 2011-10-13 Huawei Technologies, Co. Ltd. Method for dynamic discovery of control plane resources and services
US8532804B2 (en) * 2010-06-18 2013-09-10 Microsoft Corporation Predictive resampler scheduler algorithm
US8744367B2 (en) 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
KR101399604B1 (ko) * 2010-09-30 2014-05-28 한국전자통신연구원 지터버퍼 조정장치, 전자장치 및 그 방법
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
KR20120108564A (ko) * 2011-03-24 2012-10-05 삼성전자주식회사 데이터 처리 시스템 및 그 동작 방법
US9177570B2 (en) * 2011-04-15 2015-11-03 St-Ericsson Sa Time scaling of audio frames to adapt audio processing to communications network timing
US9220066B2 (en) 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US8797874B2 (en) 2011-09-09 2014-08-05 Futurewei Technologies, Inc. Apparatus and system for packet routing and forwarding in an interior network
GB2520866B (en) 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
CN103325385B (zh) * 2012-03-23 2018-01-26 杜比实验室特许公司 语音通信方法和设备、操作抖动缓冲器的方法和设备
EP2672393A1 (en) * 2012-06-04 2013-12-11 Dialog Semiconductor B.V. Circuit and methods to use an audio interface to program a device within an audio stream
TWI511500B (zh) * 2012-09-07 2015-12-01 Apple Inc 用於具有不同條件之網路之適應型抖動緩衝區管理
US10356143B2 (en) * 2012-10-10 2019-07-16 Samsung Electronics Co., Ltd. Method and apparatus for media data delivery control
CN102970133B (zh) * 2012-11-12 2015-10-14 安徽量子通信技术有限公司 量子网络的语音传输方法和语音终端
KR20140067512A (ko) * 2012-11-26 2014-06-05 삼성전자주식회사 신호 처리 장치 및 그 신호 처리 방법
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
US9526037B2 (en) * 2013-02-04 2016-12-20 Apple Inc. SRVCC handover indication for remote party to voice call
US9420475B2 (en) * 2013-02-08 2016-08-16 Intel Deutschland Gmbh Radio communication devices and methods for controlling a radio communication device
US9565139B2 (en) 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
US9107159B2 (en) * 2013-06-07 2015-08-11 Apple Inc. Enhancing jitter buffer performance through radio level feedback
CN105474313B (zh) 2013-06-21 2019-09-06 弗劳恩霍夫应用研究促进协会 时间缩放器、音频解码器、方法和计算机可读存储介质
PL3011692T3 (pl) 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy
CN103474083B (zh) * 2013-09-18 2015-11-18 中国人民解放军电子工程学院 基于正交正弦脉冲序列定位标签的语音时间规整方法
GB201318653D0 (en) * 2013-10-22 2013-12-04 Microsoft Corp Adapting a jitter buffer
US9525641B1 (en) * 2014-01-24 2016-12-20 Google Inc. Facilitating buffer wait time determination based on device- or entity-related conditions
US9338259B2 (en) 2014-02-05 2016-05-10 Sergio Ammirata User defined protocol for zero-added-jitter and error free transmission of layer-2 datagrams across lossy packet-switched network links
KR102163269B1 (ko) * 2014-03-04 2020-10-08 삼성전자주식회사 브이오아이피 프레임 전송 방법 및 장치
US20160142840A1 (en) * 2014-03-14 2016-05-19 Qualcomm Incorporated Features and optimizations for personal communication device based public addressing system
EP3123776B1 (en) * 2014-03-26 2019-05-08 Telefonaktiebolaget LM Ericsson (publ) Methods and equipment for management of playback buffers
CN105207955B (zh) * 2014-06-30 2019-02-05 华为技术有限公司 数据帧的处理方法和装置
US9712287B2 (en) * 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery
KR102509179B1 (ko) 2014-10-02 2023-03-13 자코티 브바 저-대기시간 멀티미디어 스트리밍 환경의 문제 패턴 취급 방법
KR101600284B1 (ko) 2014-10-17 2016-03-07 주식회사 이노와이어리스 영상 품질 측정 방법
CN104410587A (zh) * 2014-11-13 2015-03-11 京信通信系统(中国)有限公司 一种接收缓冲区容量控制方法及装置
US9998386B2 (en) 2015-05-21 2018-06-12 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer
US9826445B2 (en) 2015-05-21 2017-11-21 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer between mobile devices
US9788026B2 (en) * 2015-08-25 2017-10-10 Imagine Communications Corp. Converting adaptive bitrate chunks to a streaming format
US10412453B2 (en) * 2015-10-13 2019-09-10 Futurewei Technologies, Inc. Probability weighted DASH based video streaming over an information-centric network
US10204635B1 (en) * 2015-12-01 2019-02-12 Marvell International Ltd. Device and method for processing media samples
US20170187635A1 (en) * 2015-12-28 2017-06-29 Qualcomm Incorporated System and method of jitter buffer management
KR102419595B1 (ko) 2016-01-07 2022-07-11 삼성전자주식회사 재생 지연 조절 방법 및 이를 적용한 전자 장치
US10349430B2 (en) * 2016-08-03 2019-07-09 Vasona Networks, Inc. Dejittering system
CN106656649B (zh) * 2016-09-14 2021-01-01 腾讯科技(深圳)有限公司 一种实时通话过程中基于测速的通道切换方法、客户端与服务器
CN107945807B (zh) * 2016-10-12 2021-04-13 厦门雅迅网络股份有限公司 基于静音游程的语音识别方法及其系统
JP6919261B2 (ja) 2017-03-24 2021-08-18 ヤマハ株式会社 音データ処理装置、音データ処理方法及びプログラム
US10454811B2 (en) * 2017-04-07 2019-10-22 Qualcomm Incorporated Apparatus and method for de-jitter buffer delay adjustment
US10978096B2 (en) * 2017-04-25 2021-04-13 Qualcomm Incorporated Optimized uplink operation for voice over long-term evolution (VoLte) and voice over new radio (VoNR) listen or silent periods
US10998002B2 (en) * 2017-05-31 2021-05-04 Nxp B.V. Audio time stretching
US10616123B2 (en) * 2017-07-07 2020-04-07 Qualcomm Incorporated Apparatus and method for adaptive de-jitter buffer
US10313416B2 (en) * 2017-07-21 2019-06-04 Nxp B.V. Dynamic latency control
US20190102223A1 (en) * 2017-09-29 2019-04-04 Niall Power System, Apparatus And Method For Real-Time Activated Scheduling In A Queue Management Device
EP3794783A1 (en) * 2018-05-16 2021-03-24 Telefonaktiebolaget Lm Ericsson (Publ) Delay-aware resource sharing
US10616304B2 (en) * 2018-05-30 2020-04-07 Qualcomm Incorporated Audio dejittering using delay standard deviation
US11240176B2 (en) 2018-08-21 2022-02-01 At&T Intellectual Property I, L.P. Time-spaced messaging for facilitating network communications
US10432272B1 (en) 2018-11-05 2019-10-01 XCOM Labs, Inc. Variable multiple-input multiple-output downlink user equipment
US10659112B1 (en) 2018-11-05 2020-05-19 XCOM Labs, Inc. User equipment assisted multiple-input multiple-output downlink configuration
US10756860B2 (en) 2018-11-05 2020-08-25 XCOM Labs, Inc. Distributed multiple-input multiple-output downlink configuration
US10812216B2 (en) 2018-11-05 2020-10-20 XCOM Labs, Inc. Cooperative multiple-input multiple-output downlink scheduling
EP3884603A1 (en) * 2018-11-19 2021-09-29 Nokia Technologies Oy Signalling of dejittering buffer capabilities for tsn integration
WO2020112840A1 (en) 2018-11-27 2020-06-04 XCOM Labs, Inc. Non-coherent cooperative multiple-input multiple-output communications
US11765094B2 (en) * 2018-12-12 2023-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Communication system with de-jitter buffer for reducing jitter
US11063645B2 (en) 2018-12-18 2021-07-13 XCOM Labs, Inc. Methods of wirelessly communicating with a group of devices
US10756795B2 (en) 2018-12-18 2020-08-25 XCOM Labs, Inc. User equipment with cellular link and peer-to-peer link
US11330649B2 (en) 2019-01-25 2022-05-10 XCOM Labs, Inc. Methods and systems of multi-link peer-to-peer communications
US10756767B1 (en) 2019-02-05 2020-08-25 XCOM Labs, Inc. User equipment for wirelessly communicating cellular signal with another user equipment
US10896021B2 (en) 2019-02-26 2021-01-19 Nvidia Corporation Dynamically preventing audio underrun using machine learning
CN113711624B (zh) * 2019-04-23 2024-06-07 株式会社索思未来 声音处理装置
US10686502B1 (en) 2019-04-29 2020-06-16 XCOM Labs, Inc. Downlink user equipment selection
US10735057B1 (en) 2019-04-29 2020-08-04 XCOM Labs, Inc. Uplink user equipment selection
US11411778B2 (en) 2019-07-12 2022-08-09 XCOM Labs, Inc. Time-division duplex multiple input multiple output calibration
US11411779B2 (en) 2020-03-31 2022-08-09 XCOM Labs, Inc. Reference signal channel estimation
KR20230008750A (ko) 2020-04-15 2023-01-16 엑스콤 랩스 인코퍼레이티드 무선 네트워크 멀티포인트 연관 및 다양성
US11889128B2 (en) 2021-01-05 2024-01-30 Qualcomm Incorporated Call audio playback speed adjustment
KR102463916B1 (ko) * 2021-02-04 2022-11-04 상명대학교산학협력단 시간 동기화 없는 결정론적 네트워크를 위한 지터 상한 보장 방법
WO2022183431A1 (zh) * 2021-03-04 2022-09-09 华为技术有限公司 数据处理方法和设备
US20240089210A1 (en) * 2021-03-30 2024-03-14 Qualcomm Incorporated Dejitter target delay value based on silence descriptors
WO2022241436A1 (en) 2021-05-14 2022-11-17 XCOM Labs, Inc. Scrambling identifiers for wireless communication systems
DE102021117762B3 (de) * 2021-07-09 2022-08-18 Dfs Deutsche Flugsicherung Gmbh Verfahren zur Jitter-Kompensation bei einem Empfangen von Sprachinhalt über IP basierte Netzwerke und Empfänger hierfür sowie Verfahren und Vorrichtung zum Senden und Empfangen von Sprachinhalt mit Jitter-Kompensation
WO2023164301A2 (en) 2022-02-28 2023-08-31 Arris Enterprises Llc Method of measuring timing holdover performance in an r-phy system
US20230328000A1 (en) * 2022-03-23 2023-10-12 Meta Platforms Technologies, Llc Systems and methods of dynamic discard timer adjustment for wireless communication
CA3260305A1 (en) * 2022-07-01 2024-01-04 Arris Enterprises Llc METHOD FOR MEASURING NETWORK JIGGY
CN119360863A (zh) * 2024-10-21 2025-01-24 东莞市敏动电子科技有限公司 一种低延迟自适应无线音频传输方法

Family Cites Families (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US152152A (en) * 1874-06-16 Improvement in bob-sleds
US185186A (en) * 1876-12-12 Improvement in mail-bag fastenings
US179474A (en) * 1876-07-04 Improvement in the manufacture of gas for illuminating and heating
US16711A (en) * 1857-03-03 Pen and pencil holder
US89003A (en) * 1869-04-20 Improved railway-carriage wheel
US243846A (en) * 1881-07-05 David buick
US742026A (en) * 1903-07-09 1903-10-20 Isaac Pendleton Henthorn Embryotractor.
JPS5643800A (en) 1979-09-19 1981-04-22 Fujitsu Ltd Multilayer printed board
JPS57158247A (en) 1981-03-24 1982-09-30 Tokuyama Soda Co Ltd Flame retardant polyolefin composition
JPS57159038A (en) 1981-03-25 1982-10-01 Fujitsu Ltd Forming method for v-shaped isolation region
JPS57158247U (es) * 1981-03-30 1982-10-05
JPS59153346A (ja) * 1983-02-21 1984-09-01 Nec Corp 音声符号化・復号化装置
JPS61156949A (ja) 1984-12-27 1986-07-16 Matsushita Electric Ind Co Ltd 音声パケツト通信方式
JPS61158949A (ja) 1985-01-07 1986-07-18 Toyo Gosei Kogyo Kk 2−(4′−アミルベンゾイル)安息香酸混合物の製造方法
JPH0650888B2 (ja) * 1985-09-20 1994-06-29 日本電信電話株式会社 音声パケツト通信方式
JPS637297A (ja) 1986-06-24 1988-01-13 辻 賢二 横ミシン刄固定具
BE1000415A7 (nl) 1987-03-18 1988-11-22 Bell Telephone Mfg Asynchroon op basis van tijdsverdeling werkend communicatiesysteem.
JPS6429141A (en) 1987-07-24 1989-01-31 Nec Corp Packet exchange system
JPH01113744A (ja) 1987-10-27 1989-05-02 Ritsutai Shiyashinzou Kk 立体写真像製作方法およびその装置
JP2760810B2 (ja) 1988-09-19 1998-06-04 株式会社日立製作所 音声パケット処理方法
SE462277B (sv) 1988-10-05 1990-05-28 Vme Ind Sweden Ab Hydrauliskt styrsystem
JPH02288441A (ja) * 1989-04-28 1990-11-28 Oki Electric Ind Co Ltd 音声パケット受信回路
GB2243793B (en) * 1990-05-09 1993-08-18 Pall Corp Filter assemblies
JPH04113744A (ja) 1990-09-04 1992-04-15 Fujitsu Ltd 可変速度パケット伝送方式
DE69128772T2 (de) 1990-09-19 1998-08-06 Philips Electronics N.V., Eindhoven System mit einem aufzeichnungsträger und einer wiedergabevorrichtung
JP2846443B2 (ja) 1990-10-09 1999-01-13 三菱電機株式会社 パケット組立分解装置
JPH04331529A (ja) * 1991-05-07 1992-11-19 Fujitsu Ltd ゆらぎ吸収バッファの制御装置
DE69233794D1 (de) 1991-06-11 2010-09-23 Qualcomm Inc Vocoder mit veränderlicher Bitrate
US5283811A (en) * 1991-09-03 1994-02-01 General Electric Company Decision feedback equalization for digital cellular radio
US5371853A (en) 1991-10-28 1994-12-06 University Of Maryland At College Park Method and system for CELP speech coding and codebook for use therewith
JPH06152648A (ja) * 1992-11-09 1994-05-31 Mitsubishi Electric Corp データ・パケット通信方法
US5317604A (en) * 1992-12-30 1994-05-31 Gte Government Systems Corporation Isochronous interface method
JP3186315B2 (ja) * 1993-02-27 2001-07-11 ソニー株式会社 信号圧縮装置、信号伸張装置、信号送信装置、信号受信装置及び信号送受信装置
US5490479A (en) 1993-05-10 1996-02-13 Shalev; Matti Method and a product resulting from the use of the method for elevating feed storage bins
US5440582A (en) 1993-05-28 1995-08-08 Motorola, Inc. Method and apparatus for determining signal usability
US5640368A (en) * 1993-07-26 1997-06-17 Exxon Production Research Company Migration velocity analysis using limited-aperture and monte carlo migration
US5440562A (en) 1993-12-27 1995-08-08 Motorola, Inc. Communication through a channel having a variable propagation delay
US5784532A (en) 1994-02-16 1998-07-21 Qualcomm Incorporated Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system
US5696557A (en) * 1994-08-12 1997-12-09 Sony Corporation Video signal editing apparatus
NL9401696A (nl) 1994-10-14 1996-05-01 Nederland Ptt Bufferuitleesbesturing van ATM ontvanger.
US5602959A (en) 1994-12-05 1997-02-11 Motorola, Inc. Method and apparatus for characterization and reconstruction of speech excitation waveforms
US5699478A (en) 1995-03-10 1997-12-16 Lucent Technologies Inc. Frame erasure compensation technique
JP3286110B2 (ja) 1995-03-16 2002-05-27 松下電器産業株式会社 音声パケット補間装置
US5929921A (en) 1995-03-16 1999-07-27 Matsushita Electric Industrial Co., Ltd. Video and audio signal multiplex sending apparatus, receiving apparatus and transmitting apparatus
KR0164827B1 (ko) 1995-03-31 1999-03-20 김광호 프로그램 가이드신호 수신기
EP0852052B1 (en) 1995-09-14 2001-06-13 Ericsson Inc. System for adaptively filtering audio signals to enhance speech intelligibility in noisy environmental conditions
JPH09127995A (ja) 1995-10-26 1997-05-16 Sony Corp 信号復号化方法及び信号復号化装置
US5640388A (en) 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
JPH09261613A (ja) 1996-03-26 1997-10-03 Mitsubishi Electric Corp データ受信再生装置
US5866187A (en) * 1996-08-28 1999-02-02 Bunge Foods Corporation Baking formulation containing pelletized shortening
KR0185858B1 (ko) * 1996-08-31 1999-05-15 대우전자주식회사 에이티엠망에서의 이디디를 이용한 스톱-앤-고우 큐 서비스방법
US5940479A (en) 1996-10-01 1999-08-17 Northern Telecom Limited System and method for transmitting aural information between a computer and telephone equipment
JPH10190735A (ja) 1996-12-27 1998-07-21 Secom Co Ltd 通話システム
JPH10313315A (ja) 1997-05-12 1998-11-24 Mitsubishi Electric Corp 音声セルゆらぎ吸収装置
US6073092A (en) 1997-06-26 2000-06-06 Telogy Networks, Inc. Method for speech coding based on a code excited linear prediction (CELP) model
JP3075246B2 (ja) * 1998-01-26 2000-08-14 日本電気株式会社 音声パケット送受信方法および装置
US6240386B1 (en) 1998-08-24 2001-05-29 Conexant Systems, Inc. Speech codec employing noise classification for noise compensation
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US6370125B1 (en) * 1998-10-08 2002-04-09 Adtran, Inc. Dynamic delay compensation for packet-based voice network
JP2000124947A (ja) 1998-10-13 2000-04-28 Oki Electric Ind Co Ltd 音声パケット受信装置及び方法
WO2000024144A1 (en) 1998-10-21 2000-04-27 Tiernan Communications, Inc. Method and apparatus for de-jittering asynchronous data transfer delay
US6473399B1 (en) 1998-11-30 2002-10-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for determining an optimum timeout under varying data rates in an RLC wireless system which uses a PDU counter
US6456964B2 (en) 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6922669B2 (en) 1998-12-29 2005-07-26 Koninklijke Philips Electronics N.V. Knowledge-based strategies applied to N-best lists in automatic speech recognition systems
US6311154B1 (en) * 1998-12-30 2001-10-30 Nokia Mobile Phones Limited Adaptive windows for analysis-by-synthesis CELP-type speech coding
US6452950B1 (en) * 1999-01-14 2002-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive jitter buffering
US20020101885A1 (en) * 1999-03-15 2002-08-01 Vladimir Pogrebinsky Jitter buffer and methods for control of same
EP1088302B1 (en) 1999-04-19 2008-07-23 AT & T Corp. Method for performing packet loss concealment
US7117156B1 (en) 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
JP2000307654A (ja) 1999-04-23 2000-11-02 Canon Inc 音声パケット伝送システム
GB9911737D0 (en) 1999-05-21 1999-07-21 Philips Electronics Nv Audio signal time scale modification
JP4218186B2 (ja) 1999-05-25 2009-02-04 パナソニック株式会社 音声伝送装置
US6785230B1 (en) 1999-05-25 2004-08-31 Matsushita Electric Industrial Co., Ltd. Audio transmission apparatus
JP3506960B2 (ja) * 1999-08-03 2004-03-15 シャープ株式会社 パケット処理装置及びパケット処理プログラムを記録した記憶媒体
JP4895418B2 (ja) 1999-08-24 2012-03-14 ソニー株式会社 音声再生方法および音声再生装置
WO2001020595A1 (fr) 1999-09-14 2001-03-22 Fujitsu Limited Codeur/decodeur vocal
US6377931B1 (en) * 1999-09-28 2002-04-23 Mindspeed Technologies Speech manipulation for continuous speech playback over a packet network
US6859460B1 (en) * 1999-10-22 2005-02-22 Cisco Technology, Inc. System and method for providing multimedia jitter buffer adjustment for packet-switched networks
US6665317B1 (en) * 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6496794B1 (en) * 1999-11-22 2002-12-17 Motorola, Inc. Method and apparatus for seamless multi-rate speech coding
US6366880B1 (en) 1999-11-30 2002-04-02 Motorola, Inc. Method and apparatus for suppressing acoustic background noise in a communication system by equaliztion of pre-and post-comb-filtered subband spectral energies
US6693921B1 (en) 1999-11-30 2004-02-17 Mindspeed Technologies, Inc. System for use of packet statistics in de-jitter delay adaption in a packet network
WO2001060093A1 (en) 2000-02-08 2001-08-16 Opuswave Networks, Inc. Method and system for integrating pbx features in a wireless network
JP3841256B2 (ja) * 2000-02-15 2006-11-01 三菱電機株式会社 通信システム及び通信方法及び送信端末
GB2360178B (en) * 2000-03-06 2004-04-14 Mitel Corp Sub-packet insertion for packet loss compensation in Voice Over IP networks
US6813274B1 (en) 2000-03-21 2004-11-02 Cisco Technology, Inc. Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently
AU2001247578A1 (en) 2000-04-03 2001-10-15 Ericsson Inc. Method and apparatus for efficient handover in packet data communication system
US6763375B1 (en) 2000-04-11 2004-07-13 International Business Machines Corporation Method for defining and controlling the overall behavior of a network processor device
US6584438B1 (en) 2000-04-24 2003-06-24 Qualcomm Incorporated Frame erasure compensation method in a variable rate speech coder
ATE420432T1 (de) 2000-04-24 2009-01-15 Qualcomm Inc Verfahren und vorrichtung zur prädiktiven quantisierung von stimmhaften sprachsignalen
SE518941C2 (sv) 2000-05-31 2002-12-10 Ericsson Telefon Ab L M Anordning och förfarande relaterande till kommunikation av tal
US7016970B2 (en) * 2000-07-06 2006-03-21 Matsushita Electric Industrial Co., Ltd. System for transmitting stream data from server to client based on buffer and transmission capacities and delay time of the client
CN1119890C (zh) * 2000-09-30 2003-08-27 华为技术有限公司 一种ip语音数据包的抗丢包处理方法
JP4110734B2 (ja) 2000-11-27 2008-07-02 沖電気工業株式会社 音声パケット通信の品質制御装置
US7155518B2 (en) 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
JP2002223247A (ja) * 2001-01-25 2002-08-09 Matsushita Electric Ind Co Ltd リアルタイム音声再生装置
US20020133334A1 (en) 2001-02-02 2002-09-19 Geert Coorman Time scale modification of digitally sampled waveforms in the time domain
US20040204935A1 (en) 2001-02-21 2004-10-14 Krishnasamy Anandakumar Adaptive voice playout in VOP
US7005511B2 (en) 2001-02-26 2006-02-28 The Regents Of The University Of California Fluorescent protein variants and methods for making same
US7212517B2 (en) * 2001-04-09 2007-05-01 Lucent Technologies Inc. Method and apparatus for jitter and frame erasure correction in packetized voice communication systems
DE60137656D1 (de) 2001-04-24 2009-03-26 Nokia Corp Verfahren zum ändern der Grösse eines Zitterpuffers und zur Zeitausrichtung, Kommunikationssystem, Empfängerseite und Transcoder
JP3644404B2 (ja) * 2001-04-27 2005-04-27 三菱電機株式会社 光加入者線端局装置及びaponシステム及びセル遅延ゆらぎ抑制方法
US7006511B2 (en) 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7266127B2 (en) 2002-02-08 2007-09-04 Lucent Technologies Inc. Method and system to compensate for the effects of packet delays on speech quality in a Voice-over IP system
US7079486B2 (en) 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7158572B2 (en) * 2002-02-14 2007-01-02 Tellabs Operations, Inc. Audio enhancement communication techniques
US7126957B1 (en) 2002-03-07 2006-10-24 Utstarcom, Inc. Media flow method for transferring real-time data between asynchronous and synchronous networks
US7263109B2 (en) * 2002-03-11 2007-08-28 Conexant, Inc. Clock skew compensation for a jitter buffer
US20030187663A1 (en) 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
US6944540B2 (en) * 2002-03-28 2005-09-13 Motorola, Inc. Time determination in satellite positioning system receivers and methods therefor
JP3761486B2 (ja) * 2002-03-29 2006-03-29 Necインフロンティア株式会社 無線lanシステム、主装置およびプログラム
WO2003090209A1 (en) 2002-04-22 2003-10-30 Nokia Corporation Method and device for obtaining parameters for parametric speech coding of frames
US7496086B2 (en) 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
US7280510B2 (en) * 2002-05-21 2007-10-09 Nortel Networks Limited Controlling reverse channel activity in a wireless communications system
AU2002309146A1 (en) 2002-06-14 2003-12-31 Nokia Corporation Enhanced error concealment for spatial audio
US20040001494A1 (en) * 2002-07-01 2004-01-01 Zarlink Semiconductor V.N. Inc Architecture for obtaining playback time from a packet sequence number in AAL2 SSCS voice
US7336678B2 (en) * 2002-07-31 2008-02-26 Intel Corporation State-based jitter buffer and method of operation
US8520519B2 (en) * 2002-09-20 2013-08-27 Broadcom Corporation External jitter buffer in a packet voice system
JP3796240B2 (ja) 2002-09-30 2006-07-12 三洋電機株式会社 ネットワーク電話機および音声復号化装置
JP4146708B2 (ja) 2002-10-31 2008-09-10 京セラ株式会社 通信システム、無線通信端末、データ配信装置及び通信方法
US6996626B1 (en) 2002-12-03 2006-02-07 Crystalvoice Communications Continuous bandwidth assessment and feedback for voice-over-internet-protocol (VoIP) comparing packet's voice duration and arrival rate
KR100517237B1 (ko) 2002-12-09 2005-09-27 한국전자통신연구원 직교 주파수 분할 다중화 무선 통신 시스템에서의채널품질 추정과 링크적응 방법 및 그 장치
US7525918B2 (en) * 2003-01-21 2009-04-28 Broadcom Corporation Using RTCP statistics for media system control
US7394833B2 (en) * 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
JP2004266724A (ja) 2003-03-04 2004-09-24 Matsushita Electric Ind Co Ltd リアルタイム音声用バッファ制御装置
JP3825007B2 (ja) 2003-03-11 2006-09-20 沖電気工業株式会社 ジッタバッファの制御方法
JP4034217B2 (ja) 2003-03-20 2008-01-16 クボタ松下電工外装株式会社 出隅部材とこれを用いた出隅納め構造
US7551671B2 (en) 2003-04-16 2009-06-23 General Dynamics Decision Systems, Inc. System and method for transmission of video signals using multiple channels
JP2005057504A (ja) 2003-08-05 2005-03-03 Matsushita Electric Ind Co Ltd データ通信装置及びデータ通信方法
AU2003253006A1 (en) * 2003-08-15 2005-03-07 Research In Motion Uk Limited Apparatus, and an associated method, for preserving service quality levels during hand-off in a radio communication system
US7596488B2 (en) * 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US7505764B2 (en) * 2003-10-28 2009-03-17 Motorola, Inc. Method for retransmitting a speech packet
US7272400B1 (en) 2003-12-19 2007-09-18 Core Mobility, Inc. Load balancing between users of a wireless base station
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
JP4076981B2 (ja) 2004-08-09 2008-04-16 Kddi株式会社 通信端末装置およびバッファ制御方法
EP1787290B1 (en) 2004-08-30 2010-11-17 Qualcomm Incorporated Method and apparatus for an adaptive de-jitter buffer
US8085678B2 (en) 2004-10-13 2011-12-27 Qualcomm Incorporated Media (voice) playback (de-jitter) buffer adjustments based on air interface
SG124307A1 (en) 2005-01-20 2006-08-30 St Microelectronics Asia Method and system for lost packet concealment in high quality audio streaming applications
US8102872B2 (en) * 2005-02-01 2012-01-24 Qualcomm Incorporated Method for discontinuous transmission and accurate reproduction of background noise information
US20060187970A1 (en) 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US8355907B2 (en) 2005-03-11 2013-01-15 Qualcomm Incorporated Method and apparatus for phase matching frames in vocoders
US8155965B2 (en) 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
BRPI0608270A2 (pt) 2005-04-01 2009-10-06 Qualcomm Inc sistemas, métodos e equipamento para filtragem anti-dispersão
US11966757B2 (en) 2022-08-30 2024-04-23 SOURCE Ltd. System and method for selecting an execution strategy depending on validations
US12347805B2 (en) 2023-05-11 2025-07-01 Infineon Technologies Austria Ag Inkjet printing of diffusion solder

Also Published As

Publication number Publication date
TWI454101B (zh) 2014-09-21
JP2010226744A (ja) 2010-10-07
JP4933605B2 (ja) 2012-05-16
JP2013031222A (ja) 2013-02-07
US7830900B2 (en) 2010-11-09
KR20070065876A (ko) 2007-06-25
MX2007002483A (es) 2007-05-11
CA2691959C (en) 2013-07-30
ES2355039T3 (es) 2011-03-22
JP5591897B2 (ja) 2014-09-17
TW200629816A (en) 2006-08-16
CA2691959A1 (en) 2006-03-09
CA2691762C (en) 2012-04-03
CA2691762A1 (en) 2006-03-09
JP2008512062A (ja) 2008-04-17
US8331385B2 (en) 2012-12-11
EP2189978A1 (en) 2010-05-26
CN101873267A (zh) 2010-10-27
KR100964437B1 (ko) 2010-06-16
CA2578737A1 (en) 2006-03-09
PL1787290T3 (pl) 2011-04-29
KR20090028640A (ko) 2009-03-18
EP1787290A2 (en) 2007-05-23
CA2691589A1 (en) 2006-03-09
PT2200024E (pt) 2013-07-08
KR20090028641A (ko) 2009-03-18
EP2204796B1 (en) 2017-07-12
US20060056383A1 (en) 2006-03-16
BRPI0514801A (pt) 2008-06-24
CN101873266A (zh) 2010-10-27
CN101873266B (zh) 2015-11-25
KR20090026818A (ko) 2009-03-13
US7826441B2 (en) 2010-11-02
KR100938034B1 (ko) 2010-01-21
CN101048813B (zh) 2012-08-29
ATE488838T1 (de) 2010-12-15
CN101048813A (zh) 2007-10-03
MY149811A (en) 2013-10-14
PL2200024T3 (pl) 2013-08-30
EP2204796A1 (en) 2010-07-07
WO2006026635A3 (en) 2006-06-22
EP1787290B1 (en) 2010-11-17
CN101873267B (zh) 2012-10-24
JP2010136346A (ja) 2010-06-17
DK2200024T3 (da) 2013-07-01
EP2200024B1 (en) 2013-03-27
DE602005024825D1 (de) 2010-12-30
KR100964436B1 (ko) 2010-06-16
US7817677B2 (en) 2010-10-19
KR100938032B1 (ko) 2010-01-21
WO2006026635A2 (en) 2006-03-09
CN101867522A (zh) 2010-10-20
US20060045138A1 (en) 2006-03-02
BRPI0514801B1 (pt) 2019-06-18
US20060045139A1 (en) 2006-03-02
US20060050743A1 (en) 2006-03-09
CA2578737C (en) 2010-09-21
JP5389729B2 (ja) 2014-01-15
EP2200024A1 (en) 2010-06-23
CN102779517A (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
ES2405750T3 (es) Procedimiento y aparato de memoria intermedia de supresión de fluctuación adaptativa
ES2287133T3 (es) Configuracion y metodo relativo a la comunicacion del habla.
ES2378491T3 (es) Procedimiento y aparato para modificar una sincronización de reproducción de ráfagas de voz en una frase sin afectar a la inteligibilidad
ES2340545T3 (es) Control de escalado en el tiempo de una señal de audio.
HK1177977A (en) Adaptive de-jitter buffer for voice over ip