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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 184
- 230000006978 adaptation Effects 0.000 title claims description 10
- 238000004891 communication Methods 0.000 claims abstract description 80
- 230000001413 cellular effect Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 33
- 238000000605 extraction Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 20
- 238000012935 Averaging Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 230000003044 adaptive effect Effects 0.000 description 9
- 239000000203 mixture Substances 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000008447 perception Effects 0.000 description 6
- 230000001965 increasing effect Effects 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000009172 bursting Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 101001114868 Bacillus subtilis (strain 168) 30S ribosomal protein S21 Proteins 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-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.
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.
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.
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.
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.
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.
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.
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;
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:
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:
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:
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:
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:
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.
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.
[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.
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.
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.
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).
(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.
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).
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)
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)
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 |
-
2003
- 2003-11-11 ES ES03818974T patent/ES2338318T3/es not_active Expired - Lifetime
- 2003-11-11 AU AU2003304655A patent/AU2003304655A1/en not_active Abandoned
- 2003-11-11 EP EP03818974A patent/EP1683305B1/en not_active Expired - Lifetime
- 2003-11-11 US US10/595,642 patent/US20070047515A1/en not_active Abandoned
- 2003-11-11 WO PCT/SE2003/001740 patent/WO2005046133A1/en active Application Filing
- 2003-11-11 CN CNB2003801106643A patent/CN100438464C/zh not_active Expired - Fee Related
- 2003-11-11 AT AT03818974T patent/ATE455415T1/de not_active IP Right Cessation
- 2003-11-11 DE DE60331008T patent/DE60331008D1/de not_active Expired - Lifetime
- 2003-11-11 DK DK03818974.2T patent/DK1683305T3/da active
-
2007
- 2007-06-04 HK HK07105887.8A patent/HK1100796A1/xx not_active IP Right Cessation
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) | 伝送制御装置 |