[go: up one dir, main page]

ES2338318T3 - Adaptacion de memoria temporal de reproduccion basada en la longitud de rafaga de audio. - Google Patents

Adaptacion de memoria temporal de reproduccion basada en la longitud de rafaga de audio. Download PDF

Info

Publication number
ES2338318T3
ES2338318T3 ES03818974T ES03818974T ES2338318T3 ES 2338318 T3 ES2338318 T3 ES 2338318T3 ES 03818974 T ES03818974 T ES 03818974T ES 03818974 T ES03818974 T ES 03818974T ES 2338318 T3 ES2338318 T3 ES 2338318T3
Authority
ES
Spain
Prior art keywords
audio
length
burst
size
temporary
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
ES03818974T
Other languages
English (en)
Inventor
Tomas Jonsson
Hans Hannu
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2338318T3 publication Critical patent/ES2338318T3/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • 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/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Signal Processing Not Specific To The Method Of Recording And Reproducing (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Information Transfer Systems (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Processing Of Color Television Signals (AREA)

Abstract

Equipo de usuario (100) en un sistema de comunicaciones (1), comprendiendo el citado equipo de usuario (100) un medio para recibir (110) paquetes de datos que comprenden datos de audio en ráfagas sobre el citado sistema de comunicaciones, comprendiendo también el citado equipo de usuario una memoria temporal de reproducción de tamaño variable (120) configurada para almacenar temporalmente los citados paquetes de datos que comprenden un medio para analizar (240) información asociada con los citados paquetes de datos con el fin de determinar la longitud de la ráfaga de audio, y estando el equipo de usuario (100) caracterizado por: - un medio para adaptar (222) el tamaño de la memoria temporal de reproducción basándose en la longitud de la ráfaga de audio determinada.

Description

Adaptación de memoria temporal de reproducción basada en la longitud de ráfaga de audio.
Campo técnico
La presente invención se refiere generalmente a memorias temporales de reproducción en sistemas de comunicaciones, y en particular a memorias temporales de reproducción de tamaño variable en tales sistemas.
Antecedentes
Una tendencia en los sistemas de comunicaciones de telefonía móvil de hoy en día es la emergencia de los nuevos servicios de comunicaciones proporcionados a los usuarios. Los servicios tradicionalmente asociados con las redes de ordenadores están actualmente, por ejemplo por medio del Internet protocol (IP - Protocolo de Internet), también disponibles para los sistemas de comunicaciones de telefonía móvil. Otra clase de nuevos servicios son los llamados servicios de "push to" ("pulsar para"), por ejemplo pulsar para hablar.
Push to talk over Cellular (PoC - Pulsar para Hablar sobre Teléfono móvil) o conversación instantánea (sobre teléfono móvil) es un servicio de comunicaciones que funciona básicamente como un servicio de "walkie-talkie" ("teléfono inalámbrico"), pero implementado en un sistema de telecomunicaciones de telefonía móvil. Un teléfono o equipo de usuario capaz de PoC está entonces equipado con un botón de PoC dedicado (mediante hardware o software). Como para un teléfono inalámbrico tradicional, cuando se presiona el botón, el teléfono del usuario se conecta directamente con los teléfonos de un amigo particular, con el cual el usuario desea comunicarse. También es posible conectarse y comunicarse con un grupo de gente que tenga acceso a teléfonos con capacidad de
PoC.
El principio de comunicación que se encuentra tras el servicio de PoC es muy simple, sólo pulsar el botón y empezar a hablar. Puesto que el usuario típicamente siempre tiene acceso directo al servicio (basándose en una suscripción con un proveedor de servicios, por ejemplo el proveedor de la red, que ofrece servicios de PoC) sin marcado y otros procedimientos que consumen tiempo, llamadas de PoC pueden ser iniciadas directamente con usuarios individuales o grupos de usuarios tras pulsar el botón. En otras palabras, la conexión de llamada es casi instantánea.
La PoC es actualmente un servicio de comunicaciones de un sentido (hemi-dúplex o semi-dúplex). Así, para recursos de red de servicios de PoC se reserva por ello sólo un sentido durante la duración de ráfagas de conversación en lugar de dos sentidos durante una sesión de llamada completa. Además, mientras una persona habla la otra o las otras escucha o escuchan. Los turnos para hablar están típicamente garantizados pulsando el botón de PoC basándose en un "first come, first served" ("al primero que llega se le sirve el primero").
Un problema con implementar servicios de PoC en un sistema de comunicaciones de telefonía móvil es que las condiciones de radio pueden cambiar a lo largo del tiempo debido por ejemplo a la movilidad del teléfono del usuario, cambios en el nivel de interferencia experimentados por los receptores, etc. En consecuencia, la velocidad de bits proporcionada para el servicio de PoC puede cambiar durante la sesión de comunicación. Además, el retardo de red en la transmisión de paquetes de datos que comprenden los datos de conversación de PoC en ráfagas puede variar mucho. Con el fin de disminuir estos cambios en la velocidad de bits y el retardo, puede proporcionarse una memoria temporal de reproducción o memoria temporal de fluctuación en los teléfonos de usuario. Estas memorias temporales de reproducción son memorias que almacenan temporalmente paquetes asociados de PoC recibidos y por ello pueden compensar variaciones en la velocidad de bits (retardo de red) retardando (temporalmente) los paquetes en la memoria temporal antes de que sean compuestos (reproducidos) para el usuario. Así, la memoria temporal de reproducción se usa para asegurar que al usuario se le suministre una velocidad de reproducción (composición) constante, a pesar de las variaciones en la velocidad de bits y/o el retardo de red sobre el canal de radio.
El tamaño de la memoria temporal de reproducción determina la magnitud de las variaciones en la velocidad de bits (retardo de red) que pueden ser compensadas, aun manteniendo una calidad en tiempo real, conversacional, aceptable en términos de interactividad. No obstante, el procedimiento de determinar el tamaño de la memoria temporal de reproducción es un proceso delicado que requiere un cuidadoso compromiso entre objetivos que entran en conflicto. Por un lado se desea un tamaño de memoria temporal de reproducción grande para gestionar grandes variaciones en la velocidad de bits (retardo de red). Por otro lado, se prefiere tener un tamaño de memoria temporal muy pequeño para obtener un mayor grado de interactividad percibida cuando los usuarios hablan entre sí.
En la Patente de US No. 6.452.950 [1], se describe una memoria temporal de reproducción adaptativa. El tamaño de esta memoria temporal de fluctuación se usa para permitir una alimentación de datos continua a una aplicación sin excesivos retardos en un sistema de comunicaciones en paquetes. El tamaño de la memoria temporal de fluctuación varía basándose en una variación estimada del retardo de la transmisión en paquetes derivada de los tiempos de llegada de los paquetes almacenados. Una memoria temporal de variancia almacena las variancias de los tiempos de llegada de los paquetes almacenados, y la variación estimada del retardo de transmisión en paquetes se deriva de estas variancias almacenadas. El tamaño de la memoria temporal de fluctuación es entonces cambiado durante períodos de transmisión en paquetes discontinua.
La Solicitud de Patente de US No. 2002/0007429 [2] describe una memoria temporal de reproducción adaptativa dispuesta en un receptor en un sistema de comunicaciones en paquetes. Cuando el receptor ha recibido al menos un paquete, su retardo (fluctuación) es medido y comparado con algún valor predefinido. Dependiendo del resultado de esa comparación, el tamaño de la memoria temporal de reproducción es adaptado, de manera que se optimice la transferencia de paquetes de acuerdo con algunos criterios predefinidos.
En un artículo por Fujimoto et al [3], se describe un algoritmo para determinar el tamaño de una memoria temporal de reproducción adaptativa para aplicaciones de transmisión en vivo. El algoritmo determina el tamaño de la memoria temporal basándose en los retardos de transmisión medidos de paquetes llegados a la memoria temporal. Una vez que se determina un nuevo valor del tamaño de la memoria temporal, el algoritmo adapta el tamaño antes de la sesión de transmisión en vivo. Este valor del tamaño se mantiene a lo largo de la duración de la sesión de transmisión en
vivo.
Aunque los documentos [1-3] identificados anteriormente describen diferentes memorias temporales de reproducción o fluctuación adaptativas, ninguna de esas memorias temporales está adaptada para servicios de PoC y para las necesidades características de tales servicios.
Resumen
La presente invención supera estas y otras desventajas de las disposiciones de la técnica previa.
Un objeto general de la presente invención es proporcionar una memoria temporal de reproducción de tamaño variable.
Otro objeto de la invención es proporcionar una memoria temporal de reproducción, cuyo tamaño es adaptable basándose en la longitud de las ráfagas de audio.
Otro objeto más de la invención es proporcionar una memoria temporal de reproducción dispuesta en el equipo de usuario para almacenar temporalmente paquetes de datos que comprenden datos de audio en ráfagas con el fin de compensar variaciones en la velocidad de bits y en el retardo de transmisión en un sistema de comunicaciones.
Otro objeto de la invención es proporcionar una memoria temporal de reproducción de tamaño variable adaptada para su uso en un equipo de usuario que permite un Push to talk over Cellular (PoC - Pulsar para hablar sobre Teléfono Móvil) en un sistema de comunicaciones que soporta servicios de PoC y de conversación instantánea.
Estos y otros objetivos son cumplidos por la invención como se define por las reivindicaciones de la patente anexas.
Brevemente, la presente invención implica una memoria temporal de reproducción de tamaño variable dispuesta en un equipo de usuario para almacenar temporalmente paquetes o tramas de datos de audio en ráfagas recibidos sobre un sistema de comunicaciones. Este almacenamiento temporal y variabilidad del tamaño de la memoria temporal permite una compensación de las variaciones en la velocidad de bits y el retardo de transmisión en el sistema de comunicaciones y permite una velocidad de alimentación de datos continua a una aplicación o unidad que reproduce (compone) los paquetes de datos en el equipo de usuario.
El tamaño de la memoria temporal de reproducción de acuerdo con la presente invención es controlado o adaptado basándose en la longitud de las ráfagas de audio. Esto debe compararse con las disposiciones de memoria temporal de la técnica previa, como se explica en la sección de antecedentes, donde el tamaño de la memoria temporal es variado basándose en un retardo de transmisión. De acuerdo con la invención, los paquetes de datos comprenden datos de audio en ráfagas que pueden ser cualesquiera datos de audio generados en ráfagas o en forma de ráfagas en una aplicación de audio asociada o conectada con un transmisor. Estos datos de audio en ráfagas son transmitidos a continuación en los paquetes de datos sobre o mediante el sistema de comunicaciones al equipo de usuario receptor que comprende la memoria temporal de reproducción de la invención. Así, los datos de audio, por ejemplo voz o conversación, son generados durante las ráfagas de audio, por ejemplo ráfagas de voz o conversación.
Un equipo de usuario preparado para PoC comprende típicamente un botón de PoC (hardware o software). Cuando este botón se pulsa en el equipo de usuario, el usuario puede empezar a hablar con uno (comunicación de uno a uno) o varios (comunicación de uno a muchos) de sus amigos, es decir se inicia la ráfaga de audio. Cuando el usuario suelta el botón de PoC o pulsa un botón de parada de PoC la ráfaga de audio finaliza y otro usuario puede empezar a hablar. Además, cuando la ráfaga de audio empieza (pulsando el botón de PoC) un identificador de inicio de ráfaga de audio se inserta típicamente en el primer, o en uno de los primeros, paquetes de datos que comprenden (los muestreados y codificados) conversación. De manera correspondiente, cuando la ráfaga de audio finaliza (se suelta el botón de PoC o se pulsa un botón de finalización) un identificador de fin de ráfaga de audio se inserta típicamente en el último paquete de datos de esa ráfaga de audio. Estos identificadores de inicio y fin de ráfaga pueden usarse para estimar la longitud de la ráfaga de audio. Por ejemplo, el número de paquetes de datos que albergan los datos de audio o el número de bits que comprenden estos paquetes de datos, como puede determinarse basándose en los identificadores, puede representar la longitud de la ráfaga de audio. No obstante, la longitud de la ráfaga de audio puede ser determinada sin el uso de un identificador de inicio y de fin.
En servicios de PoC, la percepción del usuario de interactividad depende de esta longitud de las ráfagas de audio. Para una ráfaga de audio corta (unas pocas palabras (segundos)), incluso un pequeño retardo degradará la "percepción de tiempo real". En consecuencia, el tamaño de la memoria temporal de reproducción debe mantenerse preferiblemente pequeño para evitar un retardo demasiado largo antes de que el usuario oyente reciba la conversación. No obstante, para ráfagas de audio largas (varias frases (segundos o minutos)) el retardo no se percibirá en el mismo grado. No obstante, los efectos de fluctuación y los cambios en la velocidad de bits proporcionada resultarán más molestos. Así, se prefiere un tamaño de memoria temporal de reproducción relativamente grande para compensar estos efectos y cambios. Además, si el tamaño de la memoria temporal es demasiado pequeño los paquetes de datos pueden en algunas condiciones desafortunadas perderse si los paquetes llegan a la memoria temporal de reproducción más rápido de lo que son extraídos de la misma.
Una vez que una longitud de la ráfaga de audio es determinada o estimada, el tamaño de la memoria temporal de reproducción puede ser controlado (cambiado) en respuesta a esta longitud. Alternativamente, el tamaño de la memoria temporal puede ser adaptado basándose en varios valores de longitud de ráfaga de audio, tales como una longitud media de M ráfagas de audio, donde M es un entero positivo. El número M de longitudes de ráfaga de audio que se va a emplear para calcular la media y consecuentemente para la adaptación del tamaño de la memoria temporal puede estar predefinido. No obstante, el número M puede ser establecido dinámicamente, preferiblemente basándose en la longitud de la ráfaga de audio de una o múltiples ráfagas de audio. Así, para ráfagas de audio largas, M es preferiblemente un número pequeño, mientras que para ráfagas de audio cortas M puede ser un número
mayor.
En una realización preferida de la invención, el tamaño de la memoria temporal de reproducción se controla basándose en una media ponderada de (M) longitudes de ráfaga de audio. En tal caso, el peso de una "nueva" ráfaga de audio, es decir una ráfaga de audio, cuyos paquetes de datos se han recibido bastante recientemente, es preferiblemente mayor que el peso de una ráfaga de audio "antigua", es decir una ráfaga de audio, cuyos paquetes de datos se han recibido en una ocasión anterior.
El tamaño de la memoria temporal puede ser cambiado linealmente basándose en la longitud de la ráfaga de audio (longitud de ráfaga de audio media o longitud de ráfaga de audio ponderada). Alternativamente, el tamaño de la memoria temporal de reproducción podría ser aumentado escalonadamente para aumentar las longitudes de ráfaga de audio. El tamaño de la memoria temporal puede también ser aumentado paulatinamente en respuesta a valores de longitud de ráfaga creciente, posiblemente de manera asintótica alcanzando un tamaño de memoria temporal máximo (mínimo) para longitudes de ráfaga grandes (pequeñas).
El tamaño de la memoria temporal de reproducción puede ser cambiado durante una sesión de comunicación activa, es decir no hay necesidad de esperar hasta el final de la sesión de comunicaciones antes de adaptar el tamaño de la memoria temporal. Como consecuencia, el tamaño de la memoria temporal puede ser adaptado a medida que el carácter de la conversación cambia durante la sesión, es decir las longitudes de ráfaga de audio cambian. Por ejemplo, inicialmente la comunicación entre usuarios podría ser llevada a cabo hablando cada usuario unas pocas palabras por turnos (longitudes de ráfaga de audio pequeñas). A medida que la comunicación discurre, el tiempo que cada o un usuario habla puede aumentar a varias decenas de segundos (longitudes de ráfaga de audio grandes). La presente invención puede entonces ser empleada para adaptar rápidamente el tamaño de la memoria temporal de reproducción basándose en estos cambios en el carácter de la conversación (longitudes de ráfaga de audio). En consecuencia, muy a menudo la memoria temporal de reproducción tiene una longitud que está adaptada a la situación de comunicación actual y por lo tanto proporciona una buena quality de service (QoS - Calidad de Servicio) a los usuarios tanto en forma de interactividad como de fiabilidad. No obstante, el tamaño de la memoria temporal de reproducción no se cambia preferiblemente durante una ráfaga de audio puesto que entonces pueden aparecer problemas de re-almacenamiento en memoria. Además, durante una comunicación de uno-a-muchos (PoC), puede ser posible usar un tamaño diferente de memoria temporal de reproducción para las ráfagas de audio recibidas desde diferentes usuarios.
La invención ofrece las siguientes ventajas:
-
Compensa las variaciones en la velocidad de bits y el retardo de transmisión;
-
está adaptada para servicios de PoC;
-
proporciona una composición continua (reproducción) de datos de audio para los usuarios a pesar de los cambios en las condiciones de las comunicaciones actuales;
-
mejora la "percepción de tiempo real" percibida por el usuario;
-
puede adaptar el tamaño de la memoria temporal de reproducción durante una sesión de comunicaciones en curso para gestionar los cambios en las características de las comunicaciones;
-
proporciona un óptimo compromiso entre interactividad y fiabilidad; y
-
Proporciona una elevada fiabilidad para ráfagas de audio largas.
Otras ventajas ofrecidas por la presente invención resultarán evidentes con la lectura de la descripción siguiente de las realizaciones de la invención.
Breve descripción de los dibujos
La invención junto con otros objetos y ventajas de la misma, puede comprenderse haciendo referencia a la siguiente descripción tomada junto con los dibujos que se acompañan, en los cuales:
La Fig. 1 es una vista esquemática de una realización de un sistema de comunicaciones de acuerdo con la presente invención;
la Fig. 2 es un diagrama de flujo de un método de controlar la memoria temporal de reproducción de acuerdo con la presente invención;
la Fig. 3 es un diagrama de flujo de una realización que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2;
la Fig. 4 es un diagrama de flujo de otra realización que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2;
la Fig. 5 es un diagrama de flujo de otra realización más que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2;
la Fig. 6 es diagrama que ilustra el principio con pesos para la determinación de una longitud de ráfaga de audio media de acuerdo con la presente invención;
la Fig. 7 es un diagrama de flujo que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2 para una realización con determinación de una longitud de la ráfaga de audio media;
la Fig. 8 es un diagrama que ilustra el principio con diferentes funciones para determinar el tamaño de la memoria temporal de reproducción basándose en la longitud de la ráfaga de audio;
la Fig. 9 es un diagrama de boques esquemático del equipo de usuario de acuerdo con la presente invención;
la Fig. 10 es un diagrama de bloques esquemático de un cliente de Push to talk over Cellular (PoC - Pulsar para Hablar sobre Teléfono Móvil) de acuerdo con la presente invención;
la Fig. 11 es un diagrama de bloques esquemático que ilustra una realización del controlador del playout buffer size (PBS - Tamaño de la Memoria Temporal de Reproducción) de la Fig. 10 con más detalle;
la Fig. 12 es un diagrama de bloques esquemático que ilustra una realización del analizador de paquetes de la Fig. 11 con más detalle;
la Fig. 13 es un diagrama de bloques esquemático que ilustra otra realización del analizador de paquetes de la Fig. 11 con más detalle;
la Fig. 14 es un diagrama de bloques esquemático que ilustra otra realización más del analizador de paquetes de la Fig. 11 con más detalle; y
la Fig. 15 es un diagrama de bloques esquemático que ilustra una realización del determinador de longitud de la Fig. 11 con más detalle;
Descripción detallada
A través de los dibujos, se usarán los mismos caracteres de referencia para los elementos similares o correspondientes.
La presente invención se refiere a una memoria temporal de reproducción o de fluctuación de tamaño variable o adaptativa y a algoritmos para controlar el tamaño de tal memoria temporal de reproducción.
La memoria temporal de reproducción de tamaño variable está típicamente implementada en un receptor o un nodo de recepción en un sistema de comunicaciones, típicamente en equipo de usuario, terminal de usuario o unidad de telefonía móvil. La operación de la memoria temporal de reproducción es para almacenar temporalmente paquetes de datos o tramas que comprenden datos de audio en ráfagas en el equipo de usuario antes de que los paquetes de datos sean extraídos de la misma y transmitidos a una aplicación o unidad que lleva a cabo la reproducción o composición real de los datos de audio. El objeto de la memoria temporal de reproducción en el equipo de usuario es entonces suavizar la velocidad de alimentación de datos a la aplicación con el fin de compensar las variaciones en la velocidad de bits proporcionada, en los retardos en la transmisión de los paquetes de datos, etc. en el sistema de comunicaciones.
En la presente invención los datos de audio en ráfagas pueden ser cualesquiera datos de audio generados en ráfagas o de una manera en ráfagas en una aplicación de audio asociada o conectada con un transmisor. Estos datos de audio en ráfagas son a continuación transmitidos en paquetes de datos sobre o mediante el sistema de comunicaciones al nodo de recepción que comprende la memoria temporal de reproducción de la invención. Así, los datos de audio, por ejemplo voz y conversación, son generados durante las ráfagas de audio, por ejemplo ráfagas de voz o conversación.
El tamaño de la memoria temporal de reproducción de acuerdo con la presente invención es adaptado basándose en la longitud de la ráfaga de audio (conversación). Esto debe compararse con las disposiciones de memoria temporal de la técnica previa, como se explica en la sección de antecedentes, donde el tamaño de la memoria temporal es variado basándose en un retardo de transmisión.
En lo que sigue la presente invención se describirá con referencia a un sistema de comunicaciones que soporta servicios de Push to talk over Cellular (PoC - Pulsar para Hablar sobre Teléfono Móvil) o de conversación instantánea con una memoria temporal de reproducción de tamaño variable implementada en el equipo de usuario que tiene un cliente de PoC. No obstante, la invención no está limitada a tales sistemas que soportan PoC y al equipo de usuario con clientes de PoC. Generalmente, la memoria temporal de reproducción de tamaño variable y los algoritmos de la invención pueden ser empleados en cualquier sistema de comunicaciones en el que los datos de audio son generados en ráfagas y transmitidos en paquetes de datos o tramas desde una aplicación de generación o de grabación de audio (asociada con un transmisor) sobre el sistema de comunicaciones a un receptor que comprende la memoria temporal de reproducción y una unidad que controla el tamaño de la memoria temporal basándose en la longitud de la ráfaga de audio. Esto incluye un sistema de comunicaciones por cable o inalámbrico, por ejemplo un sistema de comunicaciones por radio, sistemas de comunicaciones que soportan telefonía con Internet Protocol (IP - Protocolo de Internet), etc.
Para aumentar la comprensión de la invención, en lo que sigue la ráfaga de audio y la longitud de la ráfaga de audio son representados con ráfaga de conversación y longitud de ráfaga de conversación. No obstante, la invención es aplicable a otras formas de audio diferentes de la conversación (conversación o voz) y no está por lo tanto limitada a ella.
La Fig. 1 es una visión general esquemática de un sistema de comunicaciones 1 de acuerdo con la presente invención que proporciona servicios de PoC. El sistema 1 podría ser un sistema de comunicaciones de telefonía móvil (móvil), tal como Global System for Mobile communications (GSM - Sistema Global para Comunicaciones de Telefonía Móvil), General Packet Radio Service (GPRS - Servicio de Radio en Paquetes General)/GSM, Enhanced GPRS (EGPRS - GPRS Mejorado), Enhanced Data rates for GSM Evolution (EDGE - Velocidades de Datos Mejoradas para Evolución de GSM), Universal Mobile Telecommunications System (UMTS - Sistema de Telecomunicaciones de Telefonía Móvil Universal) o sistemas de Code Division Multiple Access (CDMA - Acceso Múltiple Con División de Código), tales como Wideband CDMA (W-CDMA - CDMA de Banda Ancha), CDMA 2000 y otros sistemas de CDMA.
Además de la arquitectura de red típica con una red de acceso por radio que comprende varios sistemas de estación de base BSS A1, BSS A2; BSS B con estaciones de base BS A1, BS A2; BS B y red de núcleo CN A; CN B, el sistema de comunicaciones por radio 1 comprende un servidor de PoC (aplicación) 300. Este servidor de aplicación de PoC 300 típicamente maneja señalización de establecimiento de llamada para llamadas de PoC y el control del flujo de tráfico de PoC. Además, el encaminamiento en tiempo real de paquetes de IP que transportan los datos de conversación en ráfagas (audio) al equipo de usuario 100-2 de recepción correcto; 100-3; 100-4; 100-5 es manejado por el servidor de PoC 300. El servidor 300 puede también proporcionar una interfaz al aprovisionamiento del operador de red y al sistema de gestión de red y crear registros de detalle de cargo, utilizados como base para la tarificación del servicio de PoC. El servidor de PoC 300 preferiblemente comprende, o tiene acceso a, una base de datos de usuario que almacena información por ejemplo de usuarios aprovisionados, sus derechos de acceso, miembros de grupo preconfigurados e información de validación. El servidor de PoC 300 puede verse como un equipo independiente en el sistema de comunicaciones 1. En tal caso, las redes de comunicaciones provistas y gestionadas por los operadores de red pueden ser conectadas a este servidor de PoC 300. Alternativamente, el servidor de PoC 300 puede constituir una porción de una infraestructura de operador de red. En este caso, el servidor de PoC 300 puede ser implementado en una trama de subsistema de multimedios de IP de cada red de comunicación. Este servidor de PoC 300 podría alternativamente ser proporcionado en la red de núcleo (CN A; CN B) y/o en un sistema de estación de base (BSS A1, BSS A2; BSS B) del operador de red.
En la figura, se ilustran cinco teléfonos o equipos de usuario que soportan PoC 100-1 a 100-5. El equipo de usuario 100-1 a 100-5 comprende un cliente de PoC implementado en el mismo y está equipado con un botón de hardware o software de PoC utilizado para llevar a cabo una conversación de pulsar para hablar. Los usuarios (propietarios) del equipo 100-1 a 100-5 típicamente tienen un acuerdo de servicio, por ejemplo subscripción, con el suministrador del servicio de PoC (a menudo el operador de red). El equipo de usuario 100-1 a 100-4 puede ser una unidad de telefonía móvil (convencional) o teléfono configurado con un cliente de PoC. También es posible un ordenador de sobremesa o un ordenador portátil 100-b conectado al servidor de PoC 300 sobre Internet. Alternativamente, el equipo de usuario 100-1 a 100-4 podría ser un teléfono de PoC dedicado, es decir faltas de funcionalidades de telefonía móvil tradicional, en las que los servicios de comunicaciones disponibles para el usuario están limitados a servicios de PoC, es decir no "llamadas regulares". El acuerdo de servicio de PoC puede ser entonces manifestado en un módulo de identidad dispuesto en el teléfono de PoC, similar al Subscriber Identity Module (SIM - Módulo de Identidad de Abonado) para un equipo de usuario que soporta GSM.
En una sesión de PoC, un primer usuario desea comunicarse con un amigo (comunicación de uno-a-uno) mediante comunicación de PoC. El usuario selecciona típicamente al amigo con el que desea comunicarse en una agenda de direcciones o libro de PoC en su equipo de usuario 100-1. Esta agenda de direcciones preferiblemente informa también, es decir proporciona información de presencia, al usuario, sobre cuáles de sus amigos están actualmente conectados al sistema de comunicaciones 1 y por lo tanto pueden iniciar una comunicación de PoC. El usuario pulsa entonces un botón de PoC en su equipo 100-1. Este botón de PoC podría ser un botón de hardware o estar implementado en software en el equipo de usuario 100-1. Cuando el botón es pulsado el usuario puede empezar a hablar con su amigo, es decir empieza una ráfaga de conversación. Cuando el usuario suelta el botón, o pulsa un botón de fin de PoC, la ráfaga de conversación finaliza. Durante la ráfaga de conversación, es decir durante la conversación, la conversación (conversación) es muestreada, conversación codificada y empaquetada en un número o paquetes de datos, típicamente paquetes o tramas de Adaptive Multi Rate (AMR - Multi Velocidad Adaptativa), como es conocido en el sector. Estos paquetes de AMR son entonces a menudo temporalmente almacenados en una memoria temporal de conversación o transmisor en el equipo de usuario 100-1. Antes de la transmisión al equipo de usuario del amigo 100-2 sobre el sistema de comunicaciones por radio 1, los paquetes o tramas de AMR son empaquetados en paquetes de IP. El número real de paquetes de AMR por paquete de IP típicamente depende del nivel aceptable del coste, de la versión de IP utilizada y/o de la compresión de la cabecera. Además, se usa preferiblemente Real-time Transport Protocol (RTP - Protocolo de Transporte en Tiempo Real) en el acceso de GPRS y a la red de núcleo. Los paquetes de IP transmitidos son a continuación transmitidos desde el equipo de usuario 100-1 a través de la estación de base BS A1, del sistema de la estación de base BSS A1 y de la red de núcleo CN hacia el servidor de PoC 300. El servidor encamina a continuación los paquetes hacia el equipo de usuario 100-2 previsto (a través de la red de núcleo CN A, del sistema de la estación de base BSS A2 y de la estación de base BS A2). Una vez recibidos, los paquetes de AMR son almacenados temporalmente en la memoria temporal de reproducción en el equipo de usuario de recepción 100-2 antes de que sean enviados hacia la aplicación que reproduce (compone) realmente los datos de conversación para el usuario.
Para servicios de PoC es posible hablar con uno o varios (uno-a-muchos) usuarios 100-2; 100-3 conectados a la red, pero también con los usuarios 100-4; 100-5 conectados a otra red de comunicaciones (inalámbrica o por cable).
Cuando un usuario pulsa el botón de PoC con el propósito de iniciar una conversación, el cliente de PoC en su equipo de usuario preferiblemente inserta un identificador o bit de inicio de ráfaga de conversación en un paquete de AMR, típicamente el primer paquete de AMR de un ráfaga de conversación. Este identificador de inicio indica cuándo se inicia una nueva ráfaga de conversación. De manera correspondiente, cuando el usuario suelta el botón o pulsa un botón de parada, un identificador o bit de fin es preferiblemente insertado en un paquete de AMR. Este identificador de fin indica que la ráfaga de conversación actual ha terminado. La longitud de una ráfaga de audio puede entonces ser determinada basándose en el identificador de inicio y de fin de la ráfaga de conversación.
La correspondiente longitud de tiempo de una ráfaga de conversación puede variar enormemente desde unos pocos segundos o partes de un segundo, es decir el usuario dice una o pocas palabras, a varias decenas de segundos o incluso minutos.
En servicios de PoC, la percepción del usuario de interactividad depende de esta longitud de las ráfagas de conversación. Para una ráfaga de conversación corta (unas pocas palabras (segundos)), incluso un pequeño retardo degradará la percepción de "tiempo real". En consecuencia, el tamaño de la memoria temporal de reproducción debe mantenerse preferiblemente pequeño para evitar un retardo demasiado largo antes de que la conversación sea reproducida al usuario oyente. No obstante, para ráfagas de conversación largas (varias frases (segundos o minutos)) el retardo no será apreciado con el mismo grado. No obstante, los efectos de fluctuación y los cambios en la velocidad de bits proporcionada resultarán más molestos. Así, se prefiere un tamaño de memoria temporal de reproducción relativamente grande para compensar estos efectos y cambios. Además, si el tamaño de la memoria temporal es demasiado pequeño los paquetes de datos pueden, en algunas situaciones, perderse si llegan paquetes a la memoria temporal de reproducción más rápido de lo que son extraídos de la misma.
Así, de acuerdo con la invención el tamaño de la memoria temporal de reproducción es controlado o adaptado basándose en la longitud de la ráfaga de conversación (audio).
La Fig. 2 es un diagrama de flujo que ilustra un método de controlar una memoria temporal de reproducción de tamaño variable de acuerdo con la presente invención. El método empieza en la etapa S1, en la que el equipo de usuario que alberga la memoria temporal de reproducción recibe los paquetes de datos que comprenden los datos de conversación en ráfagas o conversación (audio) desde un transmisor, por ejemplo otro equipo de usuario, sobre un sistema de comunicaciones. Los paquetes son almacenados temporalmente en la memoria temporal antes de ser extraídos o transmitidos a una aplicación que lleva a cabo la composición o reproducción real de los datos de conversación. En la etapa S2, se determina la longitud de la ráfaga de audio (conversación). Esta longitud es preferiblemente determinada mediante el análisis de información asociado con los paquetes de datos recibidos, tal como basándose en el identificador de inicio y de fin de ráfaga de conversación (audio) mencionado anteriormente. La etapa S3 controla la memoria temporal de reproducción adaptando el tamaño de la memoria temporal basándose en la longitud de la ráfaga de audio (conversación) determinada. Generalmente, para una longitud de ráfaga grande el tamaño de la memoria temporal debe ser grande y para una longitud de ráfaga pequeña el tamaño de la memoria temporal debe ser pequeño. El método finaliza entonces.
De acuerdo con la presente invención, el tamaño de la memoria temporal de reproducción puede ser cambiado durante una sesión de PoC en curso, es decir no hay necesidad de esperar hasta el final de la sesión de comunicaciones antes de adaptar el tamaño de la memoria temporal. Como consecuencia, el tamaño de la memoria temporal puede ser adaptado a medida que el carácter de la conversación cambia durante la sesión, es decir la longitud de las ráfagas de conversación cambia. Por ejemplo, inicialmente la comunicación de PoC entre usuarios podría ser llevada a cabo hablado un usuario cada vez unas pocas palabras (longitudes de ráfaga de conversación pequeñas). A medida que la comunicación discurre, el tiempo que cada o un usuario habla puede aumentar a varias decenas de segundos (longitudes de ráfaga de conversación grandes). La presente invención puede entonces ser empleada para adaptar rápidamente el tamaño de la memoria temporal de reproducción basándose en estos cambios en el carácter de la conversación (longitudes de ráfaga de conversación). En consecuencia, muy a menudo la memoria temporal de reproducción tiene una longitud que está adaptada a la situación de comunicación actual y por lo tanto proporciona una buena quality de service (QoS - Calidad de Servicio) a los usuarios tanto en términos de interactividad como de fiabilidad. No obstante, el tamaño de la memoria temporal de reproducción preferiblemente no se cambia durante una ráfaga de conversación puesto que entonces pueden aparecer problemas de re-almacenamiento en memoria. Así, el tamaño de la memoria temporal puede preferiblemente ser adaptado entre ráfagas de conversación durante una sesión de comunicación.
La Fig. 3 es un diagrama de flujo de una realización que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2. Una vez que los paquetes de datos son recibidos en la etapa S1 de la Fig. 2, la etapa S10 identifica un identificador o bit o bits de inicio de ráfaga de conversación en uno de los paquetes. Este identificador permite la identificación de dónde se inicia una nueva ráfaga de conversación. En la etapa S11, el número de bits en los paquetes de datos recibidos son contados hasta que se encuentra un identificador o bit o bits de fin de ráfaga de conversación en uno de los paquetes en la etapa S12. Debe observarse que para una ráfaga de conversación extremadamente corta, el identificador de inicio y el identificador de fin pueden realmente estar situados en el mismo paquete de datos. No obstante, en la mayoría de los casos, la longitud de una ráfaga de conversación es tal que los datos de conversación (audio) generados durante la ráfaga no encajan en un solo paquete de datos sino que deben ser empaquetados en varios paquetes de datos. En tal caso, la etapa S11 preferiblemente cuenta el número total de bits en estos paquetes intermedios. Además, los bits que siguen al identificador de inicio en el paquete con este identificador de inicio y los bits que preceden al identificador de fin en el paquete con este identificador de fin podrían también ser contados y añadidos al número de bits contados para los paquetes intermedios. Así, esta realización de la invención básicamente cuenta el número total de bits que comprende una ráfaga de conversación. El método continúa a continuación a la etapa S2 en la Fig. 2, donde la longitud de la ráfaga de conversación (LTB) es determinada o estimada basándose en el número de bits contados:
(1)L_{TB} = función(número de bits).
La longitud de la ráfaga puede entonces ser expresada en función del número de bits contados. No obstante, es posible que la longitud de la ráfaga de conversación sea representada simplemente por este número de bits, es decir LTB = X bits, donde X es un entero positivo.
La Fig. 4 es un diagrama de flujo que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2; Una vez que los paquetes de datos son recibidos en la etapa S1 de la Fig. 2 el método continúa a la etapa S20. Esta etapa corresponde a la etapa S10 de la Fig. 3 y no se explicará más. En la etapa S21, se cuenta el número de paquetes de datos recibidos desde un paquete que comprende el identificador de inicio de ráfaga de conversación hasta un paquete que comprende el identificador de fin de ráfaga de conversación. En una realización, el número total de paquetes contados sólo comprende cualesquiera paquetes intermedios, es decir los paquetes recibidos en orden entre el paquete que comprende el identificador de inicio hasta que paquete que comprende el identificador de fin. En otra realización, el paquete que comprende el identificador de inicio and/o el paquete que comprende el identificador de fin se incluyen también en este número total de paquetes determinado. Así, esta realización de la invención básicamente cuenta el número de paquetes de datos que comprenden datos de conversación (en ráfagas) y que son generados a lo largo de la duración de una ráfaga de conversación. La etapa S22 corresponde a la etapa S12 de la Fig. 3 y no se explicará más. El método continúa a continuación a la etapa S2 de la Fig. 2, donde la longitud de la ráfaga de conversación es determinada o estimada basándose en el número de paquetes de datos contados:
(2)L_{TB} = función(número de paquetes)
La longitud de la ráfaga puede entonces ser expresada en función del número de paquetes de datos contados. No obstante, es posible que la longitud de la ráfaga de conversación sea representada simplemente por este número de paquetes, es decir LTB = X paquetes, donde X es un entero positivo.
Debe observarse que para algunas aplicaciones la cantidad de datos de conversación que se transmiten a un paquete de datos es conocida, por ejemplo una trama o paquete de AMR alberga típicamente como máximo 20 ms de conversación. En tal caso, la longitud de la ráfaga de conversación puede ser expresada en unidades de tiempo (número de paquetes x longitud de paquete en segundos) en lugar de un número de paquetes.
La Fig. 5 es un diagrama de flujo que ilustra etapas adicionales del método de controlar la memoria temporal de la Fig. 2; Una vez que los paquetes de datos son recibidos en la etapa S1 de la Fig. 2 el método continúa a la etapa S30. En esta etapa S30, los paquetes de datos que se almacenan temporalmente en la memoria temporal de reproducción son extraídos de la misma (y proporcionados a la aplicación de reproducción o de composición). La etapa S31 identifica el paquete de datos extraído que comprende el identificador de inicio de ráfaga de conversación. Cuando este paquete que comprende el identificador de inicio es extraído de la memoria temporal de reproducción se inicializa un reloj en la etapa S32. Cuando el paquete que comprende el identificador de fin de ráfaga de conversación es extraído de la memoria temporal en la etapa S33, este reloj se para en la etapa S34. La longitud de tiempo determinada por el reloj es usada a continuación como una representación de la longitud de la ráfaga de conversación. Así, esta realización de la invención básicamente determina la longitud de tiempo total de una ráfaga de conversación. El método continúa a continuación a la etapa S2 de la Fig. 2, donde la longitud de la ráfaga de conversación es determinada o estimada basándose en la longitud de tiempo total determinada:
(3)L_{TB} = función(longitud de tiempo).
La longitud de la ráfaga puede entonces ser expresada en función de la longitud de tiempo determinada. No obstante, es posible que la longitud de la ráfaga de conversación sea representada simplemente por esta longitud de tiempo, es decir LTB = X s, donde X es un entero positivo.
Puede ser posible que un paquete de datos comprenda tanto un identificador de inicio de ráfaga de audio (conversación) (y/o identificador de fin) como datos de audio en ráfagas. No obstante, el identificador de inicio o de fin de ráfaga puede ser proporcionado en un paquete o trama dedicados que no comprenden ningún dato de audio en ráfagas. La longitud de la ráfaga de conversación podría entonces ser estimada calculando el número de paquetes de datos intermedios entre el paquete que comprende el identificador de inicio dedicado y el paquete que comprende identificadores de fin dedicados, o el número (total) de bits en estos paquetes de datos intermedios.
Debe observarse que el paquete o paquetes de IP (RTP) que comprenden los paquetes de datos (AMR) que incluyen datos de conversación de una primera ráfaga de conversación son típicamente recibidos por el equipo de usuario en orden de tiempo. A continuación hay típicamente un lapso de tiempo (corto o largo) antes de una posible recepción de paquetes de datos que comprende datos de conversación de una segunda ráfaga de conversación. Es por consiguiente posible que el equipo de usuario o un cliente de PoC en el equipo de usuario identifiquen los paquetes de datos que albergan datos de conversación de una ráfaga de conversación dada usar un identificador de inicio y de fin de ráfaga de conversación. La longitud de la ráfaga de conversación podría entonces ser determinada basándose en contar el número de paquetes de datos (AMR) de un ráfaga de conversación o el número de bits en todos los paquetes de datos de la ráfaga de conversación. El primer paquete datos de AMR recibido de una ráfaga de conversación dada podría, de acuerdo con otra realización de la invención, ser visto como un identificador de inicio de ráfaga de conversación y el último paquete de datos de AMR recibido de esa ráfaga de conversación podría entonces ser visto como un identificador de fin de ráfaga de conversación.
La longitud de la ráfaga de conversación puede ser determinada, por ejemplo de acuerdo con cualquiera de las realizaciones de la Fig. 3 a 5, en el equipo de usuario de recepción, tal como el cliente de PoC del equipo de usuario. No obstante, la longitud de la ráfaga puede alternativamente ser determinada en el equipo de usuario que transmite los paquetes con datos de conversación en ráfagas, por ejemplo de acuerdo con la realización de la Fig. 3 ó 4, tal como en el cliente de PoC de este equipo de usuario de transmisión. En tal caso, la información de este valor de longitud de la ráfaga de conversación determinado es transmitida al equipo de usuario receptor. También es posible que la longitud de la ráfaga de conversación sea determinada en alguna otra unidad en el sistema de comunicaciones distinta del equipo de usuario receptor (o transmisor). El valor de longitud determinado es entonces enviado al equipo de usuario para permitir la adaptación del tamaño de la memoria temporal de reproducción.
En una realización general de la invención el tamaño de la memoria temporal de reproducción (PBS) puede ser determinado basándose en un valor de longitud de la ráfaga de conversación (LTB) determinado o estimado:
1
donde f es alguna función (matemática). No obstante, con el fin de proporcionar un algoritmo más estable, el tamaño de la memoria temporal de reproducción puede ser determinado basándose en varios (M) valores de longitud de ráfaga de conversación:
2
Así, las longitudes de ráfaga de conversación son filtradas sobre una cierta cantidad de tiempo que resulta de una determinación del tamaño de la memoria temporal basándose en múltiples valores de longitud de ráfaga, o podría utilizarse un número (M) predefinido de ráfagas de conversación en la determinación del tamaño de la memoria temporal. Estos múltiples valores de longitud pueden originarse desde las ráfagas de conversación de un usuario o de varios usuarios (comunicación de uno-a-muchos). Así, el tamaño de la memoria temporal podría ser adaptado basándose en los valores de longitud de ráfaga de conversación de, por ejemplo, las ráfagas de conversación M recibidas más recientemente, independientemente de si se originan a partir de uno o de muchos equipos de usuario.
En esta realización de la invención, el cliente de PoC del equipo de usuario preferiblemente comprende una memoria para almacenar los valores de longitud de ráfaga de conversación determinados. Entonces, el tamaño de la memoria temporal puede ser determinado seleccionando M valores de longitud de ráfaga de este almacén, preferiblemente los M valores más recientes. Un ejemplo típico de una función f adecuada para el cálculo de la memoria temporal de acuerdo con la ecuación (5) es una función que calcula la media:
3
El número (M) de longitudes de ráfaga de conversación que se va a incluir en la determinación del tamaño de la memoria temporal de reproducción de acuerdo con la ecuación (5) o (6) puede ser un valor fijo predefinido. No obstante, puede haber problemas si este número M es relativamente grande, por ejemplo 10, y si las longitudes de ráfaga son grandes. En tal caso, pasará un tiempo considerablemente largo antes de que las (diez) longitudes de ráfaga puedan ser determinadas y, por ello, antes de que se haya calculado un nuevo valor de tamaño de la memoria temporal. Esto significa que el tiempo antes de que la memoria temporal pueda ser adaptada (cambiada) es largo, lo que podría provocar una pérdida de la percepción de interactividad por parte del usuario. El parámetro M es por lo tanto establecido preferiblemente de manera dinámica. En una realización preferida de la invención el valor de este parámetro M es determinado basándose en la longitud de la ráfaga de conversación:
4
Generalmente, si las longitudes de ráfaga de conversación son relativamente pequeñas, M puede ser grande, por ejemplo igual o mayor que 5, mientras que si las longitudes de la ráfaga son grandes debe usarse un valor de M pequeño. El parámetro M puede ser determinado basándose en la longitud de la última ráfaga de conversación o de las dos o tres últimas (o algún otro entero positivo) ráfagas de conversación, por ejemplo basándose en la longitud media de las dos o tres últimas ráfagas de conversación. Alternativamente, el parámetro M puede ser determinado basándose en la longitud de ráfaga media de las ráfagas de conversación recibidas (paquetes de datos recibidos que comprenden datos de conversación en ráfagas) durante unos pocos segundos, por ejemplo durante 15 segundos. Si durante este período de tiempo sólo se recibe una única ráfaga de conversación, posiblemente con una longitud de ráfaga característica que excede los 15 s, M es determinado basándose en esta única longitud de ráfaga de conversación. No obstante, si durante los 15 segundos se reciben varias ráfagas de conversación (cortas), su valor de longitud media se usa para el cálculo del parámetro M.
La función g de ecuación (7) podría ser una función decreciente con uno o varios valores de longitud de ráfaga de conversación como parámetro de entrada. Por ejemplo, una posible función g(x) podría ser 5 donde p es algún número positivo y x es el valor de la longitud de ráfaga de conversación (medio). Otras posibles funciones g(x) incluyen una función decreciente escalonadamente o una función decreciente de manera continua.
El tamaño de la memoria temporal de reproducción podría, alternativamente, ser determinado basándose en una media ponderada de M longitudes de ráfaga de conversación:
6
donde ki es una constante de ganancia o de peso para cada longitud de ráfaga de conversación. La Fig. 6 es un diagrama que ilustra el principio de usar pesos. En la figura, el eje y corresponde al valor ponderado (ki) y el eje x corresponde al tiempo o a las ráfagas de conversación recibidas (en total M ráfagas, donde TBj son recibidas antes de TBj+1, j=1,..., M-1). La línea 400 representa la situación en la que todas las M ráfagas de conversación están ponderadas de la misma manera (una media aritmética), es decir ki es la misma constante para todo i=1,..., M. No obstante, puede ser ventajoso ponderar las longitudes de ráfaga de conversación de manera diferente. Poe ejemplo, la longitud de una ráfaga de conversación recibida más recientemente, por ejemplo TBM, puede ser ponderada con un valor más alto (mayor) que la longitud de una ráfaga de conversación recibida antes, por ejemplo TB1. Esto es particularmente ventajoso cuando el carácter de la conversación está cambiando de ráfagas de conversación típicamente largas (cortas) a ráfagas de conversación cortas (largas). Las curvas 410 a 440 (la curva 410 con pesos que varían linealmente, la curva 420 con pesos que varían escalonadamente y las curvas 430 y 440 con pesos que varían de manera continua) representan la situación con emplear diferentes pesos para diferentes ráfagas de conversación y donde ki+1>ki, siendo i=1, ..., M-1.
La Fig. 7 es un diagrama de flujo que ilustra etapas adicionales del método de controlar una memoria temporal de reproducción de acuerdo con la presente invención. Una vez que se ha determinado la longitud de la ráfaga de conversación en la etapa S2, el parámetro M, es decir el número de valores de longitud de ráfaga de conversación que se van a usar en la media de longitudes, es determinado en la etapa S40, preferiblemente basándose en una longitud de ráfaga de conversación (media) determinada. En la siguiente etapa S41, se determinan valores ponderados para las M longitudes de ráfaga de conversación. La etapa S42 calcula a continuación una longitud de ráfaga de conversación media ponderada. El método continúa a la etapa S3 de la Fig. 2, en la que el tamaño de la memoria temporal de reproducción es adaptado basándose en el valor de longitud media ponderada calculado.
Con referencia al diagrama de la Fig. 8, pueden usarse diferentes funciones f(x) para la determinación del tamaño de la memoria temporal de reproducción. El eje y corresponde al tamaño de la memoria temporal y el eje x corresponde al valor de la longitud de la ráfaga de conversación, por ejemplo el valor de una única longitud de ráfaga de conversación, de un valor de longitud de ráfaga medio o de un valor de longitud de ráfaga medio ponderado. La línea 500 representa una relación lineal (f(x)=qx, donde q es un número positivo) entre el tamaño de la memoria temporal y la longitud de la ráfaga. Alternativamente, puede emplearse una función escalonada como la representada por la curva 510. En tal caso, el tamaño de la memoria temporal se incrementa escalonadamente para longitudes de ráfaga crecientes. La función f podría ser también una función creciente sin escalones, tal como la curva 520 y 530. También es posible una función que muestra una comportamiento asintótico, es decir f(x)\rightarrowPBSmm cuando x\rightarrow\infty, véase la curva 520, ó
f(x)\rightarrowHPBMIN cuando x\rightarrow0, véase la curva 530. También puede ser posible definir una función f que tenga un valor de tamaño de memoria temporal mínimo y/o un valor de tamaño mínimo, es decir PBSMIN \leq f(x) \leq PBSMAX.
La función f podría utilizar parámetros de entrada adicionales además de la longitud de la ráfaga de conversación. Por ejemplo, el tamaño de la memoria temporal de reproducción puede ser adaptado basándose tanto en la longitud de ráfaga determinada como en el retardo de transmisión para los paquetes de datos recibidos.
Durante una comunicación de uno a muchos (PoC), puede ser posible usar un tamaño de memoria temporal de reproducción para las ráfagas de conversación (paquetes de datos que comprenden datos de conversación en ráfagas (conversación)) recibidos de diferentes usuarios. Este escenario se explica a continuación junto con un ejemplo de una comunicación de uno a muchos, donde un usuario está actualmente en comunicación con tres usuarios A, B y C diferentes, es decir recibe alternativamente paquetes de datos en ráfagas de estos tres usuarios. Debe asumirse que el usuario A (por término medio) habla mucho y cada vez durante mucho tiempo, es decir ráfagas de conversación largas, y el usuario B (por término medio) también habla mucho pero durante bastante menos tiempo, es decir ráfagas de conversación cortas. Sin embargo, el usuario C rara vez habla. Los paquetes de datos de una ráfaga de conversación recibidos, o al menos un paquete de datos de una ráfaga de conversación, comprenden información que permite la identificación del usuario o del equipo de usuario, desde el cual se originan los paquetes de datos. Esta información podría ser el ID de un usuario del paquete, una dirección de IP o información de fuente en un paquete de RTP. A continuación, el equipo de usuario que se está (alternativamente) comunicando con el equipo de usuario correspondiente del usuario A, B o C, podría determinar el tamaño de la memoria temporal de reproducción basándose en una o en múltiples longitudes de ráfaga de conversación de las ráfagas de conversación que se originan (únicamente) desde el usuario A cuando se está comunicando con este usuario, es decir 100 De manera correspondiente, cuando se está comunicando con el usuario B, el tamaño de la memoria temporal podría ser determinado basándose (únicamente) en el valor o valores de longitud de ráfaga o ráfagas de conversación desde este usuario B, es decir 7 además, si los múltiples valores de longitud son empleados para determinar un tamaño de la memoria temporal, el número M de ráfagas de conversación que se van a emplear podría variar dependiendo de si la comunicación es con el usuario A, B o C. Por ejemplo, para el usuario A, el número MA es determinado basándose en la longitud de ráfaga de la ráfaga o ráfagas de conversación desde el usuario A, es decir 8 en el presente ejemplo, esto funciona bien para la adaptación del tamaño de la memoria temporal y/o el número M basándose en las longitudes de ráfaga de conversación asociadas con el usuario A o B puesto que se han recibido varias ráfagas de conversación tales desde estos usuarios. No obstante, para la comunicación con el usuario C, que rara vez habla, podría ser posible que sólo se reciban una o unas pocas ráfagas de conversación. Así, puede existir un número demasiado pequeño de valores de longitud de ráfaga de conversación 9 en el equipo de usuario para determinar el tamaño de la memoria temporal de reproducción y/o el número Mc de valores de longitud para ser usados en los cálculos del tamaño. En tal caso, también pueden usarse para los cálculos valores de longitud de ráfagas de conversación que se originan en otros usuarios (A y/o B).
La Fig. 9 ilustra esquemáticamente un diagrama de bloques de una realización de equipo de usuario 100 de acuerdo con la presente invención, representada con una unidad de teléfono móvil que soporta servicios de PoC. Sólo se ilustran en la figura unidades relevantes para la presente invención. El equipo de usuario comprende una unidad de entrada y salida (I/O) 110 adaptada para llevar a cabo comunicaciones con unidades externas en un sistema de comunicaciones. En particular para servicios de PoC, la unidad de I/O 110 está adaptada para transmitir y recibir paquetes de datos que comprenden datos de conversación (audio) en ráfagas. El equipo de usuario 100 comprende también un cliente de PoC 200 de acuerdo con la invención para adaptar el tamaño de una memoria temporal de reproducción 120 adaptativa asociada. Un botón de PoC 260 está también configurado en el equipo de usuario 100 para permitir el servicio de pulsar para hablar. Este botón de PoC 260 puede ser un botón implementado mediante software o un botón implementado mediante hardware, por ejemplo un botón de PoC mediante hardware dedicado como en la figura. Cuando el usuario desea hablar con su o sus amigo o amigos, mantiene este botón 260 pulsado y habla. La duración de la pulsación de este botón es entonces una ráfaga de conversación. Cuando se suelta el botón 260, su amigo (o uno de sus amigos) puede hablar. Alternativamente, puede ser posible pulsar el botón de PoC 260 una vez para empezar a hablar (inicio de una ráfaga de conversación) y una vez más, o pulsar otro botón, para terminar la conversación (fin de una ráfaga de conversación).
El equipo de usuario 100 comprende también una memoria temporal de reproducción de tamaño variable 120 adaptada para almacenar temporalmente paquetes de datos recibidos antes de que sean enviados a una aplicación o unidad de composición 130 que lleva a cabo la reproducción (composición) de los datos de conversación para el usuario. El almacenamiento de paquetes temporales disminuye las variaciones en la velocidad de bits y en el retardo de la transmisión de paquetes en el sistema con el fin de obtener una velocidad de reproducción lo más constante posible. En la Fig. 9, esta memoria temporal de reproducción 120 está implementada en el cliente de PoC 200. No obstante, es anticipado por la invención que la memoria temporal 120 puede alternativamente ser proporcionada en cualquier otro sitio del equipo de usuario 100 fuera del cliente de PoC 200. La unidad de composición 130 procesa los datos de conversación (audio), que pueden entonces ser reproducidos por el usuario por medio de un altavoz 150. El equipo de usuario 100 está provisto además de un micrófono 160 ó equipo de grabación de audio (conversación) similar para generar o grabar la conversación. Aunque no se ilustra en la figura, el equipo de usuario 100 comprende también la funcionalidad de muestrear, codificar la conversación y organizar en paquetes la conversación grabada. El equipo de usuario 100 podría incluir también una memoria temporal de transmisión explicada anteriormente junto con la Fig. 1 y una memoria temporal de paquetes de IP (RTP) o cache para almacenar temporalmente los paquetes de IP (RTP) recibidos antes de que los paquetes de datos (AMR) sean desempaquetados de la misma y almacenados en la memoria temporal de reproducción 120.
El equipo de usuario puede incluir también un módulo de identidad 140, tal como una tarjeta de SIM estándar usada en las unidades de telefonía móvil de GSM o UMTS SIM (USIM). Tal módulo de identidad es emitido por un proveedor de servicios, por ejemplo el operador de la red, con el cual el usuario del equipo 100 tiene un acuerdo de servicio. Este módulo de identidad 140 podría se empleado por el servidor de PoC con fines de validación y aprovisionamiento. El cliente de PoC 200 podría ser implementado como hardware, software o una combinación de los mismos en el equipo de usuario 200. Podría también ser posible implementar el cliente de PoC 200, o porciones del mismo en el módulo de identidad 140. En tal caso, el cliente de PoC 200 podría ser descargado de la red, por ejemplo del proveedor del servicio de PoC y ser implementado en el módulo de identidad 140. Como el módulo de identidad - la interfaz del equipo de usuario está asociada típicamente con órdenes previstas para enviar datos más o menos arbitrarios al módulo de identidad 140 para usarlos en él, por ejemplo la orden "ENVELOPE" para tarjetas de GSM SIM, el código para implementar el cliente de PoC 200, o porción del mismo, por ejemplo como una aplicación de Java Applet general, podrían ser enviados usando tales órdenes. El cliente de PoC enviado por la orden es implementado en un entorno de aplicación 145 proporcionado por un kit de herramienta de aplicación asociado con el módulo de identidad 140. Para una GSM SIM el entorno de aplicación es proporcionado por la SIM Application Toolkit (SAT - Herramienta de Aplicación de SIM), mientras que la análoga de USIM es proporcionada por la UMTS SAT (USAT - Herramienta de Aplicación de UMTS).
La presente invención puede ser aplicada a otros tipos de equipos de usuario diferentes de la unidad de telefonía móvil ilustrada en la Fig. 9, por ejemplo, pero no limitada a esto, a un teléfono de PoC dedicado, a un ordenador portátil o a un ordenador de sobremesa.
La Fig. 10 es un diagrama de bloques esquemático que ilustra una realización del cliente de PoC 200 de la Fig. 9 con más detalle; El cliente de PoC comprende opcionalmente una unidad de I/O 210 para transmitir y recibir información (por ejemplo un identificador de inicio y de fin de ráfaga de conversación) asociada con paquetes de datos y usada para determinar la longitud de la ráfaga de conversación. Esta unidad de I/O 210 podría también recibir paquetes de datos que comprenden datos de conversación en ráfagas y a continuación introduce por medio de un gestor de playout buffer (PB - Memoria Temporal de Reproducción) 230 los paquetes en la memoria temporal de reproducción 120. Este gestor de PB 230 extrae también los paquetes de datos de la memoria temporal 120 cuando la memoria temporal empieza a llenarse. La PB 230 puede ser implementada en cualquier otro lugar del equipo de usuario distinto del cliente de PoC 200, en particular si la memoria temporal de reproducción 120 no está proporcionada el cliente de PoC 200.
Una unidad de control y gestión 220 de playout buffer size (PBS - tamaño de memoria temporal de reproducción) es proporcionado en el cliente de PoC 200 para controlar (adaptar) el tamaño de la memoria temporal de reproducción 120 asociada basándose en la longitud de la ráfaga de conversación. El controlador 220 de PBS está preferiblemente configurado para adaptar el tamaño de la memoria temporal de reproducción durante una sesión de PoC en curso, tal como entre ráfagas de conversación de tal sesión de comunicaciones.
Las unidades 210, 220 y 230 del cliente de PoC 200 pueden ser proporcionadas como software, hardware o una combinación de ellos. Las unidades 210, 220, 230 y 120 pueden ser implementadas a la vez en el cliente de PoC 200. Alternativamente, también es posible una implementación distribuida con algunas de las unidades proporcionadas en algún otro sitio del equipo de usuario.
La Fig. 11 es un diagrama de bloques esquemático que ilustra una realización del controlador de PBS o gestor de la Fig. 220 10 con más detalle; El controlador de PBS 220 comprende preferiblemente un analizador de paquetes de datos 240 configurado para analizar información asociada con los paquetes de datos recibidos con el fin de determinar la longitud de la memoria temporal de reproducción. Este analizador de paquetes 240 está preferiblemente adaptado para identificar un identificador de inicio de ráfaga de conversación y un identificador de fin de ráfaga de conversación en los paquetes de datos.
El controlador de PBS 220 incluye además un determinador de longitud 250 que determina la longitud de la ráfaga de conversación, preferiblemente basándose en la información de entrada del analizador de paquetes 240. El valor de la longitud de la ráfaga determinado es a continuación enviado a un adaptador de tamaño 222. Puede también proporcionarse un determinador de retardo 224 opcional en el controlador de tamaño 220 para determinar o estimar un retardo de transmisión de paquete para los paquetes de datos recibidos. Este valor de retardo, o una variancia entre un valor de retardo real y un valor de retardo estimado, puede ser enviado al adaptador de tamaño 222. Este adaptador de tamaño 222 adapta a continuación o cambia el tamaño de la memoria temporal de reproducción basándose en la longitud de la ráfaga de conversación y posiblemente también en el valor del retardo de transmisión y/o en otra información de entrada.
Las unidades 222, 224, 240 y 250 del controlador de tamaño 220 pueden ser proporcionadas como software, hardware o una combinación de ellos. Las unidades 222, 224, 240 y 250 pueden ser implementadas en el controlador de tamaño 220. Alternativamente, también es posible una implementación distribuida con algunas de las unidades proporcionadas en algún otro sitio del cliente de PoC o del equipo de usuario.
La Fig. 12 es un diagrama de bloques esquemático que ilustra una realización del analizador de paquetes 240 de la Fig. 240 11 con más detalle; El analizador de paquetes comprende un medio 242 para encontrar un identificador de inicio y de fin de ráfaga de conversación en los paquetes de datos. El analizador 240 comprende también un contador de bits 244 configurado para contar el número de bits en los paquetes de datos recibidos entre un identificador de inicio y un identificador de fin. Esta información del número de bits es enviada a continuación al controlador de tamaño para su uso en determinar la longitud de la ráfaga de conversación.
La Fig. 13 es un diagrama de bloques esquemático que ilustra otra realización del analizador de paquetes 240 de la Fig. 11 con más detalle; El analizador 240 incluye un localizador de identificador 242 como el descrito por la realización ilustrada en la Fig. 12. Además, se proporciona un contador 246 de paquetes o tramas en el analizador de paquetes para contar el número de paquetes de datos entre un identificador de inicio y un identificador de fin. Esta información de número de paquetes es enviada a continuación al controlador de tamaño para su uso en determinar la longitud de la ráfaga de conversación.
La Fig. 14 es un diagrama de bloques esquemático que ilustra otra realización más del analizador de paquetes 240 de la Fig. 11 con más detalle; El analizador 240 incluye un localizador de identificador 242 como el descrito por la realización ilustrada en la Fig. 12. Además, se proporciona un reloj 248 en el analizador de paquetes 240 para determinar el tiempo total de extracción desde que se extrae un paquete de datos que incluye el identificador de inicio de la ráfaga de conversación de la memoria temporal de reproducción hasta que se extrae un paquete de datos que incluye el identificador de fin de ráfaga de conversación de la memoria temporal. La información de este tiempo total es enviada a continuación al controlador de tamaño para su uso en determinar la longitud de la ráfaga de conversación.
Las unidades 242 y 244, 246 ó 248 del analizador de paquetes 240 de las Figs. 12-14 pueden ser proporcionadas como software, hardware o una combinación de ellos. Las unidades 242 y 244, 242 y 246 ó 242 y 248 pueden ser implementadas a la vez en el analizador de paquetes 240. Alternativamente, también es posible una implementación distribuida con una de las unidades proporcionadas en cualquier otro lugar en el controlador de PBS, cliente de PoC o equipo de usuario. Puede ser posible para un diseño del cliente de PoC o analizador de paquetes incluir varias de las unidades 244, 246 y/ó 248 además del localizador 242 de identificador de ráfaga de conversación. En tal caso, puede elegirse la forma de representación de la longitud de la ráfaga de conversación (número de bits, número de paquetes o unidades de tiempo).
La Fig. 15 es un diagrama de bloques esquemático que ilustra una realización del determinador de longitud 250 de la Fig. 250 11 con más detalle; El determinador de longitud 250 incluye preferiblemente una funcionalidad de cálculo de la media 252 para calcular una longitud de ráfaga de conversación media. El medio 254 para establecer o determinar dinámicamente el número (M) de longitudes de ráfaga de conversación que se van a incluir en el cálculo de la media está también provisto en el determinador de longitud 250. Este medio 254 está adaptado preferiblemente para determinar el valor M basándose en la longitud de la ráfaga de conversación y/o en alguna otra información de entrada o valor de parámetro, por ejemplo recibidos desde el operador de red. El medio 256 para determinar las pesos que se van a usar para las longitudes de ráfaga de conversación en el cálculo de la media está también preferiblemente provisto en el determinador de longitud 250. El determinador de longitud 250 también comprende preferiblemente, o tiene acceso, a un almacén 258 que comprende valores de peso (ki), al valor del parámetro M y los valores de longitud de ráfaga de conversación determinados previamente usados para el cálculo de la media. Alternativamente, este almacén 258 puede estar provisto en algún otro sitio en el cliente de PoC o en el equipo de usuario.
Las unidades 252, 254 y 256 del determinador de longitud 250 pueden estar provistas como software, hardware o una combinación de ellos. Las unidades 252, 254, 256 y 258 pueden ser implementadas a la vez en el determinador de longitud 250. Alternativamente, también es posible una implementación distribuida con algunas de las unidades proporcionadas en algún otro sitio del controlador de PBS, del cliente de PoC o del equipo de usuario.
Se entenderá por una persona experta en la técnica que se pueden hacer varias modificaciones y cambios en la presente invención sin salirse del alcance de la misma, que se define por las reivindicaciones anexas.
Referencias
[1] Patente de US No. 6.452.950 B1 de Telefonaktiebolaget LM Ericsson
[2] Solicitud de Patente de US No. 2002/0007429 A1 de P Boulandet, J-M Zuan, R Querelle y P Burger
[3] K Fujimoto, S Ata y M Murata, "Adaptive Playout Buffer Algorithm for Enhancing Perceived Quality of Streaming Applications", que aparece en Sistemas de Telecomunicación, Enero 2004.

Claims (31)

1. Equipo de usuario (100) en un sistema de comunicaciones (1), comprendiendo el citado equipo de usuario (100) un medio para recibir (110) paquetes de datos que comprenden datos de audio en ráfagas sobre el citado sistema de comunicaciones, comprendiendo también el citado equipo de usuario una memoria temporal de reproducción de tamaño variable (120) configurada para almacenar temporalmente los citados paquetes de datos que comprenden un medio para analizar (240) información asociada con los citados paquetes de datos con el fin de determinar la longitud de la ráfaga de audio, y estando el equipo de usuario (100) caracterizado por:
-
un medio para adaptar (222) el tamaño de la memoria temporal de reproducción basándose en la longitud de la ráfaga de audio determinada.
\vskip1.000000\baselineskip
2. El equipo de usuario de acuerdo con la reivindicación 1, que comprende también:
-
un medio para analizar (240) la información asociada con los citados paquetes; y
-
un medio para determinar (250) la citada longitud de ráfaga de audio basándose en la citada información analizada.
\vskip1.000000\baselineskip
3. El equipo de usuario de acuerdo con la reivindicación 2, donde el citado medio de análisis (240) comprende un medio para determinar (244) un número de bits en los citados paquetes de datos desde un identificador de inicio de ráfaga de audio hasta un identificador de fin de ráfaga de audio, y el citado medio determinador de longitud (250) está configurado para determinar la citada longitud de ráfaga de audio basándose en el citado número de bits deter-
minado.
4. El equipo de usuario de acuerdo con la reivindicación 2, en el que el citado medio analizador (240) comprende un medio para calcular (246) un número de paquetes de datos recibidos mediante el citado medio de recepción (110) desde un primer paquete de datos que comprende un identificador de inicio de ráfaga de audio hasta un segundo paquete de datos que comprende un identificador de fin de ráfaga de audio, y el citado medio determinador de longitud (250) está configurado para determinar la citada longitud de ráfaga de audio basándose en el citado número de paquetes de datos calculado.
5. El equipo de usuario de acuerdo con la reivindicación 2, en el que el citado medio analizador (240) comprende un medio para determinar (248) un tiempo de extracción total que comprende un tiempo de extraer un paquete de datos que comprende un identificador de inicio de ráfaga de audio de la citada memoria temporal de reproducción (120) hasta un tiempo de extraer un paquete de datos que comprende un identificador de fin de ráfaga de audio de la citada memoria temporal de reproducción (120), y el citado medio de determinación de longitud (250) está configurado para determinar la citada longitud de ráfaga de audio basándose en el citado tiempo de extracción total determi-
nado.
6. El equipo de usuario de acuerdo con cualquiera de las reivindicaciones 1 a 5, que comprende además un medio para determinar (252) una longitud media de múltiples ráfagas de audio, en el que el citado medio de adaptación de tamaño (222) está configurado para determinar el citado tamaño de memoria temporal de reproducción basándose en la citada longitud media determinada.
7. El equipo de usuario de acuerdo con la reivindicación 6, en el que el citado medio de determinación de longitud media (252) está configurado para determinar una longitud media ponderada de las citadas múltiples ráfagas de
audio.
8. El equipo de usuario de acuerdo con la reivindicación 6 ó 7, que comprende además un medio para determinar (254) un número de ráfagas de audio que van a ser usadas por el citado medio de determinación de longitud media (252) para la citada determinación de longitud media basándose en la longitud de la ráfaga de audio.
9. El equipo de usuario de acuerdo con cualquiera de las reivindicaciones 1 a 8, en el que el citado medio de adaptación de tamaño (222) está configurado para poner el citado tamaño de memoria temporal de reproducción a un primer tamaño si la citada longitud de ráfaga de audio está de acuerdo con un primer valor de longitud y poner el citado tamaño de memoria temporal de reproducción a un segundo tamaño relativamente mayor si la citada longitud de ráfaga de audio es mayor que el citado primer valor de longitud.
10. El equipo de usuario de acuerdo con cualquiera de las reivindicaciones 1 a 9, que comprende además un cliente (200) configurado para soportar servicios de Push to talk over Cellular (PoC - Pulsar para Hablar sobre Teléfono Móvil) en un sistema de comunicaciones por radio basado en paquetes (1), y el citado medio de adaptación de tamaño (222) y la citada memoria temporal de reproducción (120) están configurados en el citado cliente de PoC
(200).
11. Un controlador de memoria temporal (220) para una memoria temporal de reproducción (120) asociada que está configurado para almacenar temporalmente paquetes de datos que comprenden datos de audio en ráfagas, comprendiendo el citado controlador (220) - un medio para analizar (240) información asociada con los citados paquetes de datos para determinar la longitud de la ráfaga de audio; y estando el controlador de memoria temporal (220) caracterizado por:
-
un medio para adaptar (222) el citado tamaño de la citada memoria temporal de reproducción (120) basándose en la citada longitud de ráfaga de audio determinada.
\vskip1.000000\baselineskip
12. El controlador de acuerdo con la reivindicación 11, en el que el citado medio de análisis (240) comprende un medio para determinar (244) un número de bits en los citados paquetes de datos desde un identificador de inicio de ráfaga de audio hasta un identificador de fin de ráfaga de audio, y el citado controlador (220) comprende un medio para determinar (250 la citada longitud de ráfaga de audio basándose en el citado número de bits determi-
nado.
13. El controlador de acuerdo con la reivindicación 11, en el que el citado medio analizador (240) comprende un medio para calcular (246) un número de paquetes de datos almacenados en la citada memoria temporal de reproducción (120) desde un primer paquete de datos que comprende un identificador de inicio de ráfaga de audio hasta un segundo paquete de datos que comprende un identificador de fin de ráfaga de audio, y el citado controlador (220) comprende un medio para determinar (250) la citada longitud de ráfaga de audio basándose en el citado número de paquetes de datos calculados.
14. El controlador de acuerdo con la reivindicación 11, en el que el citado medio analizador (240) comprende un medio para determinar (248) un tiempo total de extracción que comprende un tiempo de extraer un paquete de datos que comprende un identificador de inicio de ráfaga de audio desde la citada memoria temporal de reproducción (120) hasta un tiempo de extraer un paquete de datos que comprende un identificador de fin de ráfaga de audio desde la citada memoria temporal de reproducción (120), y el citado controlador (220) comprende un medio para determinar la citada longitud de la ráfaga de audio basándose en el citado tiempo de extracción total determinado.
15. El controlador de acuerdo con cualquiera de las reivindicaciones 11 a 14, que comprende además un medio para determinar (252) una longitud media de múltiples ráfagas de audio, en el que el citado medio de adaptación de tamaño (222) está configurado para determinar el citado tamaño de memoria temporal de reproducción basándose en la citada longitud media determinada.
16. El controlador de acuerdo con la reivindicación 15, en el que el citado medio de determinación de longitud media (252) está configurado para determinar una longitud media ponderada de las citadas múltiples ráfagas de audio.
17. El controlador de acuerdo con la reivindicación 15 ó 16, que comprende además un medio para determinar (254) un número de ráfagas de audio que van a ser usadas por el citado medio de determinación de longitud media (252) para la citada determinación de longitud media basándose en la longitud de la ráfaga de audio.
18. El controlador de acuerdo con cualquiera de las reivindicaciones 11 a 17, en el que el citado medio de adaptación de tamaño (222) está configurado para poner el citado tamaño de memoria temporal de reproducción a un primer tamaño si la citada longitud de ráfaga de audio está de acuerdo con un primer valor de longitud y poner el citado tamaño de memoria temporal de reproducción a un segundo tamaño relativamente mayor si la citada longitud de ráfaga de audio es mayor que el citado primer valor de longitud.
19. El controlador de acuerdo con cualquiera de las reivindicaciones 11 a 18, en el que el citado controlador de memoria temporal (200) y la citada memoria temporal (120) asociada están proporcionados en un cliente (200) configurado para soportar servicios de Push to talk over Cellular (PoC - Pulsar para Hablar sobre Teléfono Móvil) en un equipo de usuario (100) en un sistema de comunicaciones por radio basado en paquetes (1).
20. Un método de controlar una memoria temporal de reproducción (120) que almacena temporalmente paquetes de datos que comprenden datos de audio en ráfagas recibidos sobre un sistema de comunicaciones (1), estando el citado método caracterizado por las etapas de:
-
analizar información asociada con los citados paquetes de datos para determinar la longitud de la ráfaga de audio; y
-
adaptar el citado tamaño de la memoria temporal de reproducción (120) basándose en la citada longitud de ráfaga de audio determinada.
\vskip1.000000\baselineskip
21. El método de acuerdo con la reivindicación 20, en el que la etapa de determinar la citada longitud comprende la etapa de determinar un número de bits en los citados paquetes de datos desde un identificador de inicio de ráfaga de audio hasta un identificador de fin de ráfaga de audio.
22. El método de acuerdo con la reivindicación 20, en el que la etapa de determinar la citada longitud comprende la etapa de calcular un número de paquetes de datos recibidos desde un primer paquete de datos que comprende un identificador de inicio de ráfaga de audio hasta un segundo paquete de datos que comprende un identificador de fin de ráfaga de audio.
23. El método de acuerdo con la reivindicación 20, en el que la citada etapa de determinar la longitud comprende la etapa de determinar un tiempo de extracción total que comprende un tiempo de extraer un paquete de datos que comprende un identificador de inicio de ráfaga de audio desde la citada memoria temporal de reproducción (120) hasta un tiempo de extraer un paquete de datos que comprende un identificador de fin de ráfaga de audio desde la citada memoria temporal de reproducción (120).
24. El método de acuerdo con cualquiera de las reivindicaciones 20 a 23, que comprende además la etapa de determinar una longitud media de múltiples ráfagas de audio, en el que la citada etapa de adaptar el tamaño de memoria temporal de reproducción comprende la etapa de adaptar el citado tamaño de memoria temporal de reproducción basándose en la citada longitud media determinada.
25. El método de acuerdo con la reivindicación 24, en el que la citada etapa de determinar la longitud media comprende la etapa de determinar una longitud media ponderada de las citadas múltiples ráfagas de audio.
26. El método de acuerdo con la reivindicación 25, en el que un peso para una primera ráfaga de audio es mayor que un peso para una segunda ráfaga de audio, en el que los datos de audio de la citada segunda ráfaga de audio que están siendo recibidos en la citada memoria temporal de reproducción (120) en un momento anterior al de los datos de audio de la citada primera ráfaga de audio.
27. El método de acuerdo con cualquiera de las reivindicaciones 24 a 26, que comprende además la etapa de determinar un número de ráfagas de audio que van a ser incluidas en la determinación de la citada longitud media basándose en la longitud de la ráfaga de audio.
28. El método de acuerdo con cualquiera de las reivindicaciones 20 a 27, en el que el tamaño de la citada memoria temporal de reproducción es puesto a un primer tamaño si la citada longitud de ráfaga de audio determinada está de acuerdo con un primer valor de longitud y el tamaño de la citada memoria temporal de reproducción es puesto a un segundo tamaño relativamente mayor si la citada longitud de ráfaga de audio determinada es mayor que el citado primer valor de longitud.
29. Un sistema de comunicaciones (1) que comprende un nodo transmisor (100-1) que transmite paquetes de datos que comprenden datos de audio en ráfagas y un nodo receptor (100-2; 100-3; 100-4; 100-5) adaptado para recibir los citados paquetes de datos transmitidos, comprendiendo además el sistema de comunicaciones (1) una memoria temporal de reproducción de tamaño variable (120) configurada para almacenar temporalmente los citados paquetes y para analizar (240) información asociada con los citados paquetes de datos para determinar la longitud de la ráfaga de audio; y estando el sistema de comunicación (1) caracterizado por
-
un medio para adaptar (222) el tamaño de la memoria temporal de reproducción basándose en la longitud de la ráfaga de audio determinada.
\vskip1.000000\baselineskip
30. El sistema de acuerdo con la reivindicación 29, en el que el citado nodo transmisor (100-1) comprende un medio para introducir, en paquetes de datos, un identificador de inicio de ráfaga de audio y un identificador de fin de ráfaga de audio, y comprendiendo el citado nodo receptor (100-2; 100-3; 100-4; 100-5) medios para determinar (250) la citada longitud de ráfaga de audio basándose en el citado identificador de inicio de ráfaga de audio y el citado identificador de fin de ráfaga de audio.
31. El sistema de acuerdo con la reivindicación 29 ó 30, en el que el citado sistema de comunicaciones (1) es un sistema de comunicaciones de radio basado en paquetes que soporta servicios de Push to talk over Cellular (PoC - Pulsar para hablar sobre Teléfono Móvil), el citado nodo transmisor (100-1) es el primer equipo de usuario que comprende un primer cliente de PoC y el citado nodo receptor (100-2; 100- 3; 100-4; 100-5) es un segundo equipo de usuario que comprende un segundo cliente de PoC (200), estando el citado medio de adaptación de tamaño (222) y la citada memoria temporal de reproducción (120) provistos en el citado segundo cliente de PoC (200).
ES03818974T 2003-11-11 2003-11-11 Adaptacion de memoria temporal de reproduccion basada en la longitud de rafaga de audio. Expired - Lifetime ES2338318T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2003/001740 WO2005046133A1 (en) 2003-11-11 2003-11-11 Adapting playout buffer based on audio burst length

Publications (1)

Publication Number Publication Date
ES2338318T3 true ES2338318T3 (es) 2010-05-06

Family

ID=34568056

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03818974T Expired - Lifetime ES2338318T3 (es) 2003-11-11 2003-11-11 Adaptacion de memoria temporal de reproduccion basada en la longitud de rafaga de audio.

Country Status (10)

Country Link
US (1) US20070047515A1 (es)
EP (1) EP1683305B1 (es)
CN (1) CN100438464C (es)
AT (1) ATE455415T1 (es)
AU (1) AU2003304655A1 (es)
DE (1) DE60331008D1 (es)
DK (1) DK1683305T3 (es)
ES (1) ES2338318T3 (es)
HK (1) HK1100796A1 (es)
WO (1) WO2005046133A1 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0300555D0 (sv) * 2003-02-24 2003-02-24 Ericsson Telefon Ab L M Improvements in or relating to push-to-talk services
JP2006017749A (ja) * 2004-06-30 2006-01-19 Nec Corp 情報案内サービスシステム、情報案内提供装置及びそれに用いる情報案内サービス方法
EP1619834B1 (en) * 2004-07-23 2007-01-17 Siemens Aktiengesellschaft Method for transmitting data packets between nodes of a communication network
KR100735328B1 (ko) * 2005-02-04 2007-07-04 삼성전자주식회사 Ptt 시스템에서 사용자 정보 자동 갱신 방법 및 그시스템
US7447173B2 (en) * 2005-08-17 2008-11-04 Motorola, Inc. Methods for transmitting data packets and supporting apparatus
US20080101355A1 (en) * 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
CN102057634B (zh) * 2008-06-11 2015-01-28 日本电信电话株式会社 音频质量估计方法以及音频质量估计设备
US8059643B1 (en) 2009-05-11 2011-11-15 Sprint Communications Company L.P. IPv4 and IPv6 single session on a home agent
WO2011076239A1 (en) * 2009-12-24 2011-06-30 Telecom Italia S.P.A. A method of scheduling transmission in a communication network, corresponding communication node and computer program product
US9014058B2 (en) * 2010-06-25 2015-04-21 Cisco Technology, Inc. Enhancement of audio conference productivity through gain biasing
KR20120116137A (ko) * 2011-04-12 2012-10-22 한국전자통신연구원 음성 통신 장치 및 그 방법
US10491640B2 (en) * 2011-12-22 2019-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and media handling unit for use in a VoIP based communications network
EP2842365B1 (en) * 2012-04-20 2019-03-27 Telefonaktiebolaget LM Ericsson (publ) Handover decision for video or other streaming services considering playout buffer size
JP5999839B2 (ja) * 2012-09-10 2016-09-28 ルネサスエレクトロニクス株式会社 音声案内システム及び電子機器
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
US11197131B2 (en) * 2019-12-11 2021-12-07 Motorola Solutions, Inc. System and method for variable length talk permit tone

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537395A (en) * 1995-04-13 1996-07-16 Northern Telecom Limited Method and apparatus for setting a channel congestion message in a wireless multiple access packet data system
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
US6826177B1 (en) * 1999-06-15 2004-11-30 At&T Corp. Packet telephony appliance
US6580694B1 (en) * 1999-08-16 2003-06-17 Intel Corporation Establishing optimal audio latency in streaming applications over a packet-based network
EP1382143B1 (en) * 2001-04-24 2007-02-07 Nokia Corporation Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder
US7006511B2 (en) * 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US6665283B2 (en) * 2001-08-10 2003-12-16 Motorola, Inc. Method and apparatus for transmitting data in a packet data communication system
US7319703B2 (en) * 2001-09-04 2008-01-15 Nokia Corporation Method and apparatus for reducing synchronization delay in packet-based voice terminals by resynchronizing during talk spurts
US7162418B2 (en) * 2001-11-15 2007-01-09 Microsoft Corporation Presentation-quality buffering process for real-time audio
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US20030128686A1 (en) * 2001-12-06 2003-07-10 Hur Nam Chun Variable delay buffer
US7099820B1 (en) * 2002-02-15 2006-08-29 Cisco Technology, Inc. Method and apparatus for concealing jitter buffer expansion and contraction
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

Also Published As

Publication number Publication date
CN1879351A (zh) 2006-12-13
AU2003304655A1 (en) 2005-05-26
EP1683305A1 (en) 2006-07-26
CN100438464C (zh) 2008-11-26
EP1683305B1 (en) 2010-01-13
WO2005046133A1 (en) 2005-05-19
DE60331008D1 (de) 2010-03-04
DK1683305T3 (da) 2010-04-26
HK1100796A1 (en) 2007-09-28
ATE455415T1 (de) 2010-01-15
US20070047515A1 (en) 2007-03-01

Similar Documents

Publication Publication Date Title
ES2338318T3 (es) Adaptacion de memoria temporal de reproduccion basada en la longitud de rafaga de audio.
US7885187B2 (en) System and method for providing unified messaging system service using voice over internet protocol
CN101185297B (zh) 在分组数据网络中改进调度的方法和装置
US8989120B2 (en) Systems and methods for file sharing through mobile devices
US7970020B2 (en) Terminal having plural playback pointers for jitter buffer
ES2408346T3 (es) Un método de reducción o compensación de retardos asociado con PTT y otros intercambios de comunicación interactiva en tiempo real
KR100663279B1 (ko) 이동통신시스템의 무선 채널에서 음성 서비스를 지원하는방법 및 장치
RU2423009C1 (ru) Способ и устройство для измерения синхронизации воспроизведения речевых потоков в пределах предложения без влияния на разборчивость
US7725136B2 (en) Information processing apparatus
ES2411082T3 (es) Un aparato para controlar el tráfico de datos y un método para medir QoE
US8538470B2 (en) Call server, call terminal, call system, transfer processing method, and program storage medium storing program thereof
CN101438550A (zh) 自适应语音分组
JP2012514931A (ja) 統合インターネットプロトコル網のコーデックモード制御方法及び端末機
US20040151158A1 (en) Method and apparatus for exchanging voice over data channels in near real time
JP2003101662A (ja) 通信方法、通信装置および通信端末
KR100590539B1 (ko) 패킷망에서의 통화 대기음 서비스 제공 방법 및 시스템
US11516340B2 (en) System and method for playing buffered audio of a dropped telephone call
KR20070058772A (ko) 무선통신시스템에서 음성패킷 통신 장치 및 방법
FR3101724A1 (fr) Incorporation de donnees dans un signal vocal sans surcharge
CN115841825A (zh) 语音传输方法、可读介质和电子设备
Holma et al. UMTS services and applications
US7447173B2 (en) Methods for transmitting data packets and supporting apparatus
KR100793611B1 (ko) 우선순위를 기초로 멀티미디어 메시징 서비스를 제공하는시스템, 장치 및 방법
CN100456741C (zh) Ptt终端的语音udp分组数据收信方法
JP2005167684A (ja) 伝送制御装置