ES2836220T3 - Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia - Google Patents

Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia Download PDF

Info

Publication number
ES2836220T3
ES2836220T3 ES15745128T ES15745128T ES2836220T3 ES 2836220 T3 ES2836220 T3 ES 2836220T3 ES 15745128 T ES15745128 T ES 15745128T ES 15745128 T ES15745128 T ES 15745128T ES 2836220 T3 ES2836220 T3 ES 2836220T3
Authority
ES
Spain
Prior art keywords
packet
buffer
packets
count
retransmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15745128T
Other languages
English (en)
Inventor
Venkatesh Krishnan
Vivek Rajendran
Sandip Sarkar
Subasingha Shaminda Subasingha
Venkatraman S Atti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2836220T3 publication Critical patent/ES2836220T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/008Formats for control data where the control data relates to payload of a different packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Un dispositivo que comprende: un receptor (124) configurado para recibir una pluralidad de paquetes, correspondiendo la pluralidad de paquetes a al menos un subconjunto de una secuencia de paquetes, en el que la pluralidad de paquetes incluye datos de corrección de errores, y en el que los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes; un búfer (126) configurado para almacenar la pluralidad de paquetes; un transmisor (192); y un analizador (122) configurado para: determinar si un paquete particular de la secuencia de paquetes falta en el búfer; determinar si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en un segundo paquete de la secuencia de paquetes, correspondiendo el paquete particular y el segundo paquete a una primera trama y a una segunda trama de una señal de audio, respectivamente; y enviar, a través del transmisor, un mensaje de retransmisión a un segundo dispositivo en el que el mensaje de retransmisión se envía al segundo dispositivo en respuesta a la determinación de que el búfer no almacena el paquete en particular, que el búfer no almacena la copia parcial del paquete en particular y que un recuento de retransmisiones satisface un umbral de retransmisiones, y en el que el analizador está configurado, además, para actualizar el recuento de retransmisiones después de enviar el mensaje de retransmisión al segundo dispositivo.

Description

DESCRIPCIÓN
Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia
I. Referencia cruzada a solicitudes relacionadas
II. Campo
[0001] La presente divulgación está relacionada, en general, con la recuperación de errores de transmisión de paquetes basada en redundancia. El documento US 2012/0327761 describe una técnica de retransmisión que implica la detección de errores de paquetes de datos.
III. Descripción de la técnica relacionada
[0002] Los avances en la tecnología han dado como resultado dispositivos informáticos más pequeños y más potentes. Por ejemplo, existe actualmente una variedad de dispositivos informáticos personales portátiles, incluyendo dispositivos informáticos inalámbricos, tales como teléfonos inalámbricos portátiles, asistentes personales digitales (PDA) y dispositivos de radiolocalización que son pequeños, ligeros y fáciles de transportar por los usuarios. Más específicamente, los teléfonos inalámbricos portátiles, tales como teléfonos móviles y teléfonos de protocolo de Internet (IP), pueden comunicar paquetes de datos y voz a través de redes inalámbricas. Además, muchos de dichos teléfonos inalámbricos incluyen otros tipos de dispositivos que están incorporados en los mismos. Por ejemplo, un teléfono inalámbrico también puede incluir una cámara fotográfica digital, una cámara de vídeo digital, un grabador digital y un reproductor de archivos de audio. Además, dichos teléfonos inalámbricos pueden procesar instrucciones ejecutable s, incluyendo aplicaciones de software, tales como una aplicación de navegador web, que se pueden usar para acceder a Internet. Como tales, estos teléfonos inalámbricos pueden incluir capacidades informáticas significativas.
[0003] La transmisión de voz mediante técnicas digitales está extendida, en particular en aplicaciones radiotelefónicas de larga distancia y digitales. Puede haber interés en determinar la menor cantidad de información que se puede enviar a través de un canal manteniendo a la vez una calidad percibida de la voz reconstruida. Si la voz se transmite mediante muestreo y digitalización, se puede usar una velocidad de transferencia de datos del orden de sesenta y cuatro kilobits por segundo (kbps) para lograr una calidad de la voz de un teléfono analógico. Mediante el uso de mantener una calidad percibida de la voz reconstruida. Si la voz se transmite mediante muestreo y digitalización, se puede usar una velocidad de transferencia de datos del orden de sesenta y cuatro kilobits por segundo (kbps) para lograr una calidad de la voz de un teléfono analógico. Mediante el uso del análisis de la voz, seguido de la codificación, la transmisión y la resíntesis en un receptor, se puede lograr una reducción significativa en la velocidad de transferencia de datos.
[0004] Los dispositivos para comprimir la voz pueden tener uso en muchos campos de las telecomunicaciones. Un campo a modo de ejemplo son las comunicaciones inalámbricas. El campo de las comunicaciones inalámbricas tiene muchas aplicaciones, por ejemplo, teléfonos sin cables, radiolocalización, bucles locales inalámbricos, telefonía inalámbrica, tal como sistemas telefónicos de servicio de comunicación personal (PCS) y celulares, telefonía de protocolo de Internet móvil (IP) y sistemas de comunicación satelital. Una aplicación particular es la telefonía inalámbrica para abonados móviles.
[0005] Se han desarrollado diversas interfaces aéreas para sistemas de comunicación inalámbrica, incluyendo, por ejemplo, acceso múltiple por división de frecuencia (FDMa ), acceso múltiple por división de tiempo (TDMA), acceso múltiple por división de código (CDMA) y CDMA sincrónico con división de tiempo (TD-SCDMA). En relación con eso, se han establecido diversas normas nacionales e internacionales, incluyendo, por ejemplo, el Servicio telefónico móvil avanzado (AMPS), el sistema global para comunicaciones móviles (GSM) y el estándar interno 95 (IS-95). Un sistema de comunicación de telefonía inalámbrica a modo de ejemplo es un sistema de acceso múltiple por división de código (CDMA). La norma IS-95 y sus derivados, IS-95A, ANSI J-STD-008 e IS-95B (denominados de forma colectiva en el presente documento IS-95) se promulgan por la Asociación de la Industria de las Telecomunicaciones (TIA) y por otros organismos de normalización bien conocidos para especificar el uso de una interfaz aérea CDMA para sistemas de comunicación de telefonía celular o PCS.
[0006] Posteriormente, la norma IS-95 se convirtió en sistemas "3G", tales como cdma2000 y WCDMA, que proporcionan más capacidad y servicios de paquetes de datos de alta velocidad. Se presentan dos variaciones de cdma2000 por los documentos IS-2000 (cdma2000 IxRTT) e IS-856 (cdma2000 IxEV-DO), que se presentan por la TIA. El sistema de comunicación cdma2000 IxRTT ofrece una velocidad de transferencia de datos máxima de 153 kbps, mientras que el sistema de comunicación cdma2000 1xEV-DO define un conjunto de velocidades de transferencia datos, que varían de 38,4 kbps a 2,4 Mbps. La norma WCDMA se materializa en el Proyecto de Colaboración de Tercera Generación "3GPP", documentos n.° 3G TS 25.211, 3G TS 25.212, 3G TS 25.213 y 3G TS 25.214. La memoria descriptiva de las telecomunicaciones móviles internacionales avanzadas (IMT avanzadas) establece las normas "4G". La memoria descriptiva IMT avanzadas establece una velocidad de transferencia de datos máxima para el servicio 4G en 100 megabits por segundo (Mbit/s) para la comunicación de alta movilidad (por ejemplo, de trenes y automóviles) y de 1 gigabit por segundo (Gbit/s) para la comunicación de baja movilidad (por ejemplo, de peatones y usuarios estacionarios).
[0007] Los dispositivos que emplean técnicas para comprimir la voz extrayendo parámetros que están relacionados con un modelo de generación de voz humana se denominan codificadores de voz. Los codificadores de la voz pueden comprender un codificador y un descodificador. El codificador divide la señal de la voz entrante en bloques de tiempo o tramas de análisis. Se puede seleccionar la duración de cada segmento de tiempo (o "trama") para que sea suficientemente corta como para que se pueda esperar que la envolvente espectral de la señal permanezca relativamente estacionaria. Por ejemplo, una longitud de trama es de veinte milisegundos, que corresponde a 160 muestras a una frecuencia de muestreo de ocho kilohercios (kHz), aunque se puede usar cualquier longitud de trama o velocidad de muestreo que se considere adecuada para la aplicación particular.
[0008] El codificador analiza la trama de voz entrante para extraer determinados parámetros pertinentes y luego cuantifica los parámetros en representación binaria, por ejemplo, en un conjunto de bits o un paquete de datos binarios. Los paquetes de datos se transmiten a través de un canal de comunicación (por ejemplo, una conexión de red por cable y/o inalámbrica) a un receptor y a un descodificador. El descodificador procesa los paquetes de datos, descuantifica los paquetes de datos procesados para producir los parámetros y resintetiza las tramas de voz usando los parámetros descuantificados.
[0009] La función del codificador de voz es comprimir la señal de la voz digitalizada en una señal de baja velocidad binaria eliminando las redundancias naturales inherentes en la voz. Se puede lograr la compresión digital representando una trama de voz entrante con un conjunto de parámetros y empleando la cuantificación para representar los parámetros con un conjunto de bits. Si la trama de voz entrante tiene un número de bits Ni y un paquete de datos producido por el codificador de voz tiene un número de bits No, el factor de compresión logrado mediante el codificador de voz es Cr = Ni/No. El desafío es mantener la alta calidad de voz de la voz descodificada al mismo tiempo que se logra el factor de compresión objetivo. El rendimiento de un codificador de voz depende de (1) lo bien que se lleve a cabo el modelo de voz, o la combinación del proceso de análisis y síntesis descrito anteriormente, y (2) lo bien que se lleve a cabo el proceso de cuantificación de parámetros a la velocidad de transmisión de bits objetivo de No bits por trama. El objetivo del modelo de voz es por tanto capturar la esencia de la señal de la voz, o la calidad de voz objetivo, con un pequeño conjunto de parámetros para cada trama.
[0010] Los codificadores de voz en general utilizan un conjunto de parámetros (incluyendo vectores) para describir la señal de la voz. Un buen conjunto de parámetros proporciona, idealmente, un ancho de banda del sistema bajo para la reconstrucción de una señal de la voz perceptualmente exacta. El tono, la potencia de señal, la envolvente espectral (o formantes), los espectros de amplitud y fase son ejemplos de parámetros de codificación de la voz.
[0011] Se pueden implementar los codificadores de voz como codificadores en el dominio del tiempo, que intentan capturar la forma de onda de la voz en el dominio del tiempo empleando un procesamiento de alta resolución temporal para codificar pequeños segmentos de voz (por ejemplo, subtramas de 5 milisegundos (ms)) de uno en uno. Para cada subtrama, se encuentra un representante de alta precisión en un espacio del libro de códigos por medio de un algoritmo de búsqueda. De forma alternativa, se pueden implementar codificadores de voz como codificadores en el dominio de la frecuencia, que intentan capturar el espectro de la voz a corto plazo de la trama de voz entrante con un conjunto de parámetros (análisis) y emplear un proceso de síntesis correspondiente para recrear la forma de onda de la voz a partir de los parámetros espectrales. El cuantificador de parámetros conserva los parámetros representándolos con representaciones almacenadas de vectores de código según técnicas de cuantificación conocidas.
[0012] Un codificador de voz en el dominio del tiempo es el codificador de predicción lineal excitada por código (CELP). En un codificador CELP, se eliminan las correlaciones a corto plazo, o redundancias, en la señal de la voz mediante un análisis de predicción lineal (LP), que encuentra los coeficientes de un filtro de formantes a corto plazo. La aplicación del filtro de predicción a corto plazo a la trama de voz entrante genera una señal residual de LP, que se modela y se cuantifica, además, con parámetros de filtro de predicción a largo plazo y un libro de códigos estocástico posterior. Por tanto, la codificación CELP divide la tarea de codificar la forma de onda de la voz en el dominio del tiempo en tareas separadas de codificación de los coeficientes de filtro a corto plazo de LP y de codificación del residuo de LP. Se puede realizar la codificación en el dominio del tiempo a una velocidad fija (por ejemplo, usando el mismo número de bits, No, para cada trama) o a una velocidad variable (en la que se usan diferentes velocidades binarias para diferentes tipos de contenido de trama). Los codificadores de velocidad variable intentan usar la cantidad de bits necesarios para codificar los parámetros de códec a un nivel adecuado para obtener una calidad objetivo.
[0013] Los codificadores en el dominio del tiempo, tales como el codificador CELP, pueden depender de un alto número de bits, N0, por trama para conservar la exactitud de la forma de onda de la voz en el dominio del tiempo. Dichos codificadores pueden proporcionar una excelente calidad de voz siempre y cuando el número de bits, No, por trama sea relativamente grande (por ejemplo, 8 kbps o superior). A velocidades de transmisión de bits bajas (por ejemplo, 4 kbps e inferiores), los codificadores en el dominio del tiempo pueden dejar de mantener una alta calidad y un sólido rendimiento debido al número limitado de bits disponibles. A bajas velocidades binarias, el espacio de libro de códigos limitado recorta la capacidad de igualar la forma de onda de los codificadores de dominio de tiempo, que se instalan en aplicaciones comerciales de velocidad más alta. Así pues, a pesar de las mejoras en el transcurso del tiempo, muchos sistemas de codificación CELP que funcionan a velocidades de transmisión de bits bajas son susceptibles de tener una distorsión perceptualmente significativa caracterizada como ruido.
[0014] Una alternativa a los codificadores CELP a velocidades de transmisión de bits bajas es el codificador de "predicción lineal excitada por ruido" (NELP), que funciona con principios similares a un codificador CELP. Los codificadores NELP usan una señal de ruido pseudoaleatorio filtrado para modelar la voz, en lugar de un libro de códigos. Puesto que NELP usa un modelo más sencillo para la voz codificada, la NELP logra una velocidad de transmisión de bits más baja que la CELP. La NELP puede usarse para comprimir o representar la voz sin voz o el silencio.
[0015] Los sistemas de codificación que funcionan a velocidades del orden de 2,4 kbps son en general de naturaleza paramétrica. Es decir, dichos sistemas de codificación funcionan transmitiendo parámetros que describen el período de tono y la envolvente espectral (o formantes) de la señal de la voz a intervalos regulares. El sistema de vocoder LP es ilustrativo de estos codificadores denominados paramétricos.
[0016] Los vocoder LP modelan una señal de la voz de voz con un único impulso por período de tono. Esta técnica básica se puede aumentar para incluir la transmisión de información acerca de la envolvente espectral, entre otras cosas. Aunque los vocoder LP proporcionan un rendimiento razonable en general, pueden introducir distorsión perceptualmente significativa, caracterizada como zumbido.
[0017] En los últimos años, han aparecido codificadores que son híbridos tanto de codificadores de forma de onda como de codificadores paramétricos. El sistema de codificación de la voz con interpolación de forma de onda prototipo (PWI) es ilustrativo de estos codificadores denominados híbridos. El sistema de codificación PWI también se puede conocer como un codificador de voz con período de tono prototipo (PPP). Un sistema de codificación PWI proporciona un procedimiento eficaz para codificar la voz de voz. El concepto básico de PWI es extraer un ciclo de tono representativo (la forma de onda prototipo) a intervalos fijos, transmitir su descripción y reconstruir la señal de la voz interpolando entre las formas de onda prototipo. El procedimiento PWI puede operar en la señal residual LP o bien en la señal de la voz.
[0018] Los dispositivos electrónicos, tal como los teléfonos inalámbricos, pueden enviar y recibir datos a través de redes. Por ejemplo, los datos de audio pueden enviarse y recibirse a través de una red de circuitos conmutados (por ejemplo, la red telefónica pública conmutada (PSTN), un sistema global para redes de comunicaciones móviles (GSM), etc.) o una red de paquetes conmutados (por ejemplo, una red de voz sobre protocolo de Internet (VoIP), una red de voz sobre evolución a largo plazo (VoLTE), etc.). En una red de paquetes conmutados, los paquetes de audio pueden enrutarse individualmente desde un dispositivo de origen a un dispositivo de destino. Debido a las condiciones de red, los paquetes de audio pueden llegar desordenados. El dispositivo de destino puede almacenar los paquetes recibidos en un búfer de eliminación de fluctuaciones y puede redisponer los paquetes recibidos si los paquetes recibidos no están ordenados.
[0019] El dispositivo de destino puede reconstruir datos basándose en los paquetes recibidos. Un paquete en particular enviado por el dispositivo de origen puede no ser recibido, o puede ser recibido con errores, por un dispositivo de destino. Es posible que el dispositivo de destino no pueda recuperar todos o una parte de los datos asociados con el paquete en particular. El dispositivo de destino puede reconstruir los datos basándose en paquetes incompletos. Los datos reconstruidos en base a paquetes incompletos pueden tener una calidad degradada que impacta negativamente en la experiencia del usuario. De forma alternativa, el dispositivo de destino puede solicitar al dispositivo de origen que retransmita el paquete particular y puede retardar la reconstrucción de los datos mientras espera recibir un paquete retransmitido. El retardo asociado con la solicitud de retransmisión y la reconstrucción de los datos basándose en un paquete retransmitido puede ser perceptible para un usuario y puede resultar en una experiencia de usuario negativa.
IV. Breve explicación
[0020] La invención se expone en las reivindicaciones adjuntas.
[0021] En un aspecto particular, un dispositivo incluye un receptor, un búfer, un transmisor y un analizador. El receptor está configurado para recibir una pluralidad de paquetes. La pluralidad de paquetes corresponde al menos a un subconjunto de una secuencia de paquetes. La pluralidad de paquetes incluye datos de corrección de errores. Los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes. El búfer está configurado para almacenar la pluralidad de paquetes. El analizador está configurado para determinar si un paquete particular de la secuencia de paquetes falta en el búfer, y para determinar si una copia parcial del paquete particular se almacena en el búfer como datos de corrección de errores en otro paquete. El analizador también está configurado para enviar, a través del transmisor, un mensaje de retransmisión a un segundo dispositivo basado al menos en parte en determinar que el búfer no almacena el paquete en particular y que el búfer no almacena la copia parcial del paquete particular.
[0022] En otro aspecto particular, un procedimiento de comunicación incluye recibir una pluralidad de paquetes en un dispositivo, correspondiendo la pluralidad de paquetes a al menos un subconjunto de una secuencia de paquetes. La pluralidad de paquetes incluye datos de corrección de errores. Los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes. El procedimiento también incluye determinar, en el dispositivo, si un paquete particular de la secuencia de paquetes falta en un búfer. El procedimiento incluye, además, determinar, en el dispositivo, si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en otro paquete. El procedimiento también incluye enviar un mensaje de retransmisión desde el dispositivo a un segundo dispositivo basado, al menos en parte, en determinar que el búfer no almacena el paquete particular y que el búfer no almacena la copia parcial del paquete particular.
[0023] En otro aspecto particular, un dispositivo de almacenamiento legible por ordenador almacena instrucciones que, cuando se ejecutan por un procesador, provocan que el procesador realice las operaciones que incluyen recibir una pluralidad de paquetes. La pluralidad de paquetes corresponde al menos a un subconjunto de una secuencia de paquetes. La pluralidad de paquetes incluye datos de corrección de errores. Los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes. Las operaciones también incluyen determinar si un paquete particular de la secuencia de paquetes falta en un búfer. Las operaciones incluyen, además, determinar si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en otro paquete. Las operaciones también incluyen enviar un mensaje de retransmisión a un dispositivo basándose, al menos en parte, en determinar que el búfer no almacena el paquete particular y que el búfer no almacena la copia parcial del paquete particular.
[0024] Otros aspectos, ventajas y características de la presente divulgación resultarán evidentes después de revisar la solicitud, incluyendo las siguientes secciones: Breve descripción de los dibujos, Descripción detallada y Reivindicaciones.
V. Breve descripción de los dibujos
[0025]
La FIG. 1 es un diagrama de bloques de un aspecto ilustrativo particular de un sistema que puede funcionar para realizar la recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 2 es un diagrama de un aspecto particular del procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 3 es un diagrama de otro aspecto particular del procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 4 es un diagrama de otro aspecto particular del procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia y puede corresponder al 302 de la FIG. 3;
la FIG. 5 es un diagrama de otro aspecto particular de un sistema que puede funcionar para realizar la recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 6 es un diagrama de flujo que ilustra un procedimiento particular de recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 7 es un diagrama de flujo que ilustra otro procedimiento particular de recuperación de errores de transmisión de paquetes basada en redundancia;
la FIG. 8 es un diagrama de flujo que ilustra otro procedimiento particular de recuperación de errores de transmisión de paquetes basada en redundancia; y
la FIG. 9 es un diagrama de bloques de un aspecto ilustrativo particular de un dispositivo que puede funcionar para realizar la recuperación de errores de transmisión de paquetes basada en redundancia.
VI. Descripción detallada
[0026] Los principios descritos en el presente documento pueden aplicarse, por ejemplo, a un auricular, un equipo telefónico, otro dispositivo de audio o un componente de un dispositivo que está configurado para realizar una recuperación de errores de transmisión de paquetes basada en redundancia. A menos que esté limitado expresamente por su contexto, el término "señal" se usa en el presente documento para indicar cualquiera de sus significados comunes, incluyendo un estado de una posición de memoria (o conjunto de posiciones de memoria), según se expresa en un cable, bus u otro medio de transmisión. A menos que esté limitado expresamente por su contexto, el término "generar" se usa en el presente documento para indicar cualquiera de sus significados comunes, tales como calcular u obtener de otro modo. A menos que esté limitado expresamente por su contexto, el término "calcular" se usa en el presente documento para indicar cualquiera de sus significados comunes, tales como calcular, evaluar, nivelar y/o seleccionar a partir de una pluralidad de valores. A menos que se limite expresamente por su contexto, el término "obtener" se usa para indicar cualquiera de sus significados comunes, tales como calcular, derivar, recibir (por ejemplo, de otro componente, bloque o dispositivo) y/o recuperar (por ejemplo, de un registro de memoria o una matriz de elementos de almacenamiento).
[0027] A menos que se limite expresamente por su contexto, el término "producir" se usa para indicar cualquiera de sus significados comunes, tales como calcular, generar y/o proporcionar. A menos que se limite expresamente por su contexto, el término "proporcionar" se usa para indicar cualquiera de sus significados comunes, tales como calcular, generar y/o producir. A menos que se limite expresamente por su contexto, el término "acoplado" se utiliza para indicar una conexión eléctrica o física directa o indirecta. Si la conexión es indirecta, un experto en la técnica medio entiende bien que puede haber otros bloques o componentes entre las estructuras que están "acopladas".
[0028] El término "configuración" puede usarse en referencia a un procedimiento, aparato/dispositivo y/o sistema como se indica por su contexto particular. Cuando el término "que comprende" se usa en la presente descripción y en las reivindicaciones, no excluye otros elementos u operaciones. El término "basado en" (como en "A está basado en B") se usa para indicar cualquiera de sus significados comunes, incluyendo los casos (i) "basado al menos en" (por ejemplo, "A está basado al menos en B") y, si corresponde en el contexto particular, (ii) "igual a" (por ejemplo, "A es igual a B"). En el caso (i) donde A está basado en B incluye basado en al menos, esto puede incluir la configuración en la que A está acoplado a B. Del mismo modo, el término "en respuesta a" se usa para indicar cualquiera de sus significados comunes, incluyendo "en respuesta a al menos". El término "al menos uno" se usa para indicar cualquiera de sus significados comunes, incluyendo "uno o más". El término "al menos dos" se usa para indicar cualquiera de sus significados comunes, incluyendo "dos o más".
[0029] Los términos "aparato" y "dispositivo" se usan de forma genérica e intercambiable a menos que el contexto particular indique lo contrario. A menos que se indique de otro modo, cualquier divulgación de una operación de un aparato que tiene una característica en particular también pretende expresamente divulgar un procedimiento que tiene una característica análoga (y viceversa), y cualquier divulgación de una operación de un aparato de acuerdo con una configuración en particular también pretende expresamente divulgar un procedimiento de acuerdo con una configuración análoga (y viceversa). Los términos "procedimiento", "proceso" y "técnica" se usan de manera genérica e intercambiable a menos que el contexto en particular indique lo contrario. Los términos "elemento" y "módulo" se pueden usar para indicar una porción de una configuración mayor. El término "paquete" puede corresponder a una o más tramas. Cualquier incorporación por referencia de una parte de un documento también debe entenderse como que incorpora definiciones de términos o variables a las que se hace referencia dentro de la parte, donde dichas definiciones aparecen en otra parte del documento, así como cualquier figura referenciada en la parte incorporada.
[0030] Como se usa en el presente documento, el término "dispositivo de comunicación" se refiere a un dispositivo electrónico que puede usarse para la comunicación de voz y/o datos a través de una red de comunicación inalámbrica. Los ejemplos de dispositivos de comunicación incluyen teléfonos celulares, asistentes digitales personales (PDA), dispositivos portátiles, auriculares, módems inalámbricos, ordenadores portátiles, ordenadores personales, etc.
[0031] Con referencia a la FIG. 1, se divulga un aspecto ilustrativo particular de un sistema que puede funcionar para realizar la recuperación de errores basada en redundancia y se designa en general por 100. El sistema 100 puede incluir un dispositivo de destino 102 en comunicación con uno o más de otros dispositivos (por ejemplo, un dispositivo de origen 104) a través de una red 190. El dispositivo de origen 104 puede incluir o puede estar acoplado a un micrófono 146. El dispositivo de destino 102 puede incluir o estar acoplado a un altavoz 142. El primer dispositivo de destino 102 puede incluir un analizador 122 acoplado o en comunicación con una memoria 176. El dispositivo de destino 102 puede incluir un receptor 124, un transmisor 192, un búfer 126, un descodificador de voz 156, o una combinación de los mismos. La memoria 176 puede configurarse para almacenar datos de análisis 120. Los datos de análisis 120 pueden incluir un recuento de copias parciales recuperadas 106, un recuento de paquetes perdidos 114, un recuento de retransmisiones 154, una métrica de calidad 128, un umbral de incremento 136, un umbral de disminución 138, una cantidad de incremento 140, una cantidad de disminución 150, un valor de resultado 118, un parámetro de recuperación de errores 108, o una combinación de los mismos. El parámetro de recuperación de errores 108 puede incluir una profundidad de búfer 110, un umbral de retransmisiones 112 o ambos.
[0032] El dispositivo de destino 102 puede incluir menos o más componentes de los que se ilustran en la FIG. 1. Por ejemplo, el dispositivo de destino 102 puede incluir uno o más procesadores, una o más unidades de memoria, o ambos. El dispositivo de destino 102 puede incluir o corresponder a un sistema informático en red o distribuido. Por ejemplo, la memoria 176 puede ser una memoria distribuida o en red. En un aspecto ilustrativo particular, el dispositivo de destino 102 puede incluir un dispositivo de comunicación, un descodificador, un teléfono inteligente, un teléfono celular, un dispositivo de comunicación móvil, un ordenador portátil, un ordenador, un tableta, un asistente digital personal (PDA), un descodificador de televisión, un reproductor de vídeo, una unidad de entretenimiento, un dispositivo de visualización, un televisor, una consola de juegos, un reproductor de música, una radio, un reproductor de vídeo digital, un reproductor de disco de vídeo digital (DVD), un sintonizador, una cámara, un dispositivo de navegación o una combinación de ambos. Dichos dispositivos pueden incluir una interfaz de usuario (por ejemplo, una pantalla táctil, capacidad de reconocimiento de voz u otras capacidades de interfaz de usuario).
[0033] Durante la operación, el primer usuario 152 puede participar en una llamada de voz con un segundo usuario 194. El primer usuario 152 puede usar el dispositivo de destino 102 y el segundo usuario 194 puede usar el dispositivo de origen 104 para la llamada de voz. Durante la llamada de voz, el segundo usuario 194 puede hablar al micrófono 146 asociado al dispositivo de origen 104. Una señal de voz de entrada 130 puede corresponder a una parte de una palabra, una palabra o varias palabras pronunciadas por el segundo usuario 194. Por ejemplo, la señal de voz de entrada 130 puede incluir primeros datos 164 y segundos datos 166. El dispositivo de origen 104 puede recibir la señal de voz de entrada 130, a través del micrófono 146, del segundo usuario 194. En un aspecto particular, el micrófono 146 puede capturar una señal de audio y un convertidor de analógico a digital (ADC) puede convertir la señal de audio capturada de una forma de onda analógica a una forma de onda digital que se compone de muestras de audio digital. Las muestras de audio digital pueden procesarse mediante un procesador de señales digitales. Un ajustador de ganancia puede ajustar una ganancia (por ejemplo, de la forma de onda analógica o de la forma de onda digital) aumentando o disminuyendo un nivel de amplitud de una señal de audio (por ejemplo, la forma de onda analógica o la forma de onda digital). Los ajustadores de ganancia pueden operar en el dominio analógico o bien en el digital. Por ejemplo, un ajustador de ganancia puede operar en el dominio digital y puede ajustar las muestras de audio digital producidas por el convertidor de analógico a digital. Después del ajuste de ganancia, un anulador de eco puede reducir cualquier eco que se pueda haber creado mediante una salida de un altavoz que entra en el micrófono 146. Las muestras de audio digital pueden "comprimirse" mediante un vocoder (un codificador-descodificador de voz). La salida del anulador de eco se puede acoplar a bloques de preprocesamiento de vocoder, por ejemplo, filtros, procesadores de ruido, convertidores de velocidad, etc. Un codificador del vocoder puede comprimir las muestras de audio digital y formar una secuencia de paquetes (por ejemplo, un primer paquete 132 y un segundo paquete 134). Cada una de las secuencias de paquetes puede incluir una representación de los bits comprimidos de las muestras de audio digital. Por ejemplo, el primer paquete 132 puede estar antes en la secuencia de paquetes que el segundo paquete 134. Para ilustrar, el primer paquete 132 puede incluir los primeros datos 164 correspondientes a una trama de audio particular (por ejemplo, una trama de audio N) y el segundo paquete 134 puede incluir los segundos datos 166 correspondientes a una trama de audio posterior (por ejemplo, una trama de audio N+2).
[0034] En un aspecto particular, un paquete posterior (por ejemplo, el segundo paquete 134) también puede incluir datos redundantes (por ejemplo, una copia parcial del primer paquete 132) que pueden usarse para reconstruir una trama de audio anterior (por ejemplo, la trama de audio N). Por ejemplo, el segundo paquete 134 puede incluir una primera copia parcial 174 correspondiente a al menos una parte de los primeros datos 164. En un aspecto particular, los datos redundantes (por ejemplo, la primera copia parcial 174) pueden corresponder a una trama de voz "crítica". Por ejemplo, una pérdida de la trama de voz crítica puede causar una degradación perceptible por el usuario en la calidad de audio de una señal de voz procesada generada en el dispositivo de destino 102.
[0035] En un aspecto particular, el dispositivo de origen 104 y el dispositivo de destino 102 pueden operar a una tasa de bits constante (por ejemplo, 13,2 kilobits por segundo (kbps)). En este aspecto, una tasa de bits de la trama primaria correspondiente a los datos primarios (por ejemplo, los segundos datos 166) puede reducirse (por ejemplo, a 9,6 kbps) para acomodar los datos redundantes (por ejemplo, la primera copia parcial 174). Por ejemplo, una tasa de bits restante (por ejemplo, 3,6 kbps) de la tasa de bits constante puede corresponder a los datos redundantes. En un aspecto particular, la reducción de la tasa de bits de la trama primaria se puede realizar en el dispositivo de origen 104 dependiendo de las características de la señal de voz de entrada 130 para tener un impacto reducido en la calidad general de voz.
[0036] La secuencia de paquetes (por ejemplo, los paquetes 132 y 134) puede almacenarse en una memoria que puede compartirse con un procesador del dispositivo de origen 104. El procesador puede ser un procesador de control que está en comunicación con un procesador de señales digitales.
[0037] El dispositivo de origen 104 puede transmitir la secuencia de paquetes (por ejemplo, el primer paquete 132, el segundo paquete 134 o ambos) al dispositivo de destino 102 a través de la red 190. Por ejemplo, el dispositivo de origen 104 puede incluir un transceptor. El transceptor puede modular alguna forma de la secuencia de paquetes (por ejemplo, puede añadirse otra información a los paquetes 132 y 134). El transceptor puede enviar la información modulada por aire a través de una antena.
[0038] El analizador 122 del dispositivo de destino 102 puede recibir uno o más paquetes (por ejemplo, el primer paquete 132, el segundo paquete 134 o ambos) de la secuencia de paquetes. Por ejemplo, una antena del dispositivo de destino 102 puede recibir alguna forma de paquetes entrantes que incluyen el primer paquete 132, el segundo paquete 134 o ambos. El primer paquete 132, el segundo paquete 134, o ambos, pueden ser "descomprimidos" por un descodificador de un vocoder en el dispositivo de destino 102. La forma de onda sin comprimir puede denominarse muestras de audio reconstruidas. Las muestras de audio reconstruidas pueden procesarse posteriormente mediante bloques de postprocesamiento de vocoder y un anulador de eco puede eliminar el eco basándose en las muestras de audio reconstruidas. Para mayor claridad, el descodificador del vocoder y los bloques de postprocesamiento de vocoder pueden denominarse un módulo de descodificador de vocoder. En algunas configuraciones, el analizador 122 puede procesar una salida del anulador de eco. De forma alternativa, en otras configuraciones, la salida del módulo de descodificador de vocoder puede procesarse mediante el analizador 122.
[0039] El analizador 122 puede almacenar los paquetes (por ejemplo, el primer paquete 132, el segundo paquete 134 o ambos) recibidos por el dispositivo de destino 102 en el búfer 126 (por ejemplo, un búfer de eliminación de fluctuaciones). En un aspecto particular, los paquetes pueden recibirse desordenados en el dispositivo de destino 102. El analizador 122 puede reordenar uno o más paquetes en el búfer 126 si los paquetes están desordenados. Uno o más paquetes de la secuencia de paquetes enviados por el dispositivo de origen 104 pueden no ser recibidos, o pueden ser recibidos con errores, por el dispositivo de destino 102. Por ejemplo, un paquete (por ejemplo, el primer paquete 132) puede no ser recibido debido a la pérdida del paquete o puede ser recibido parcialmente, debido a las condiciones de la red, por el receptor 124.
[0040] El analizador 122 puede determinar si un paquete particular de la secuencia de paquetes falta en el búfer 126. Por ejemplo, cada paquete en el búfer 126 puede incluir un número de secuencia. El analizador 122 puede mantener un contador (por ejemplo, un siguiente número de secuencia) en los datos de análisis 120. Por ejemplo, el siguiente número de secuencia puede tener un valor inicial (por ejemplo, 0). El analizador 122 puede actualizar (por ejemplo, incrementar en 1) el siguiente número de secuencia después de procesar cada paquete correspondiente a una señal de entrada particular (por ejemplo, la señal de voz de entrada 130). El analizador 122 puede restablecer el siguiente número de secuencia al valor inicial después de procesar un último paquete correspondiente a la señal de entrada particular (por ejemplo, la señal de voz de entrada 130).
[0041] El analizador 122 puede determinar que el búfer 126 incluye un paquete siguiente (por ejemplo, el primer paquete 132) que tiene el siguiente número de secuencia. El analizador 122 puede generar una señal de voz procesada basada en al menos el siguiente paquete (por ejemplo, el primer paquete 132). En un aspecto particular, el analizador 122 puede proporcionar el primer paquete 132 al descodificador de voz 156 y el descodificador de voz 156 puede generar la señal de voz procesada. El analizador 122 (o el descodificador de voz 156) puede generar la señal de voz procesada basándose en el primer paquete 132 y el segundo paquete 134. La señal de voz procesada puede corresponder a los primeros datos 164 del primer paquete 132 y los segundos datos 166 del segundo paquete 134. El analizador 122 (o el descodificador de voz 156) puede emitir la señal de voz procesada a través del altavoz 142 al primer usuario 152. El analizador 122 puede actualizar (por ejemplo, incrementar o reiniciar) el siguiente número de secuencia.
[0042] El analizador 122 puede determinar si un paquete particular (por ejemplo, el primer paquete 132) de la secuencia de paquetes enviados por el dispositivo de origen 104 falta en el búfer 126. Por ejemplo, el analizador 122 puede determinar que falta el primer paquete 132 basándose en la determinación de que el búfer 126 no almacena un paquete siguiente (por ejemplo, el primer paquete 132) que tiene el siguiente número de secuencia. Para ilustrar, el analizador 122 puede determinar que falta el primer paquete 132 en respuesta a la determinación de que un paquete (por ejemplo, el primer paquete 132) correspondiente al siguiente número de secuencia no se encuentra en el búfer 126. El analizador 122 puede determinar si una copia parcial del primer paquete 132 está almacenada en el búfer 126 como datos de corrección de errores en otro paquete (por ejemplo, el segundo paquete 134) almacenado en el búfer 126. Por ejemplo, uno o más campos en una cabecera de cada paquete pueden indicar si el paquete incluye datos de corrección de errores y puede indicar un paquete correspondiente. El analizador 122 puede examinar el campo particular de uno o más paquetes (por ejemplo, el segundo paquete 134) almacenados en el búfer 126. Por ejemplo, el búfer 126 puede almacenar el segundo paquete 134. Un campo particular en la cabecera del segundo paquete 134 puede indicar que el segundo paquete 134 incluye datos de corrección de errores correspondientes al primer paquete 132. Por ejemplo, el campo particular puede indicar un número de secuencia del primer paquete 132. El analizador 122 puede determinar que la copia parcial del primer paquete 132 está almacenada en el búfer 126 basándose en la determinación de que el campo particular del segundo paquete 134 indica el número de secuencia del primer paquete 132. El analizador 122 puede actualizar el recuento de copias parciales recuperadas 106 en respuesta a la determinación de que el primer paquete 132 falta en el búfer 126 y que el búfer 126 almacena la copia parcial del primer paquete 132.
[0043] El analizador 122 puede generar una señal de voz procesada 116 basada en al menos el siguiente paquete (por ejemplo, el segundo paquete 134). Por ejemplo, el analizador 122 puede generar la señal de voz procesada 116 en base a la primera copia parcial 174 y los segundos datos 166. La primera copia parcial 174 puede incluir al menos una parte de los primeros datos 164 del primer paquete 132. En un aspecto particular, los primeros datos 164 pueden corresponder a los primeros parámetros de voz de una primera trama de voz. La primera copia parcial 174 puede incluir los primeros parámetros de voz. En un aspecto particular, los segundos datos 166 pueden corresponder a segundos parámetros de voz de una segunda trama de voz y la primera copia parcial 174 puede corresponder a una diferencia entre los primeros parámetros de voz y los segundos parámetros de voz. En este aspecto, el analizador 122 puede generar los primeros parámetros de voz basándose en una suma de los segundos parámetros de voz y la primera copia parcial 174.
[0044] El analizador 122 puede generar la señal de voz procesada 116 en base a los primeros parámetros de voz. Se apreciará que tener la primera copia parcial 174 como datos de corrección de errores en el segundo paquete 134 puede permitir la generación de la señal de voz procesada 116 en base a los primeros parámetros de voz de la trama de voz particular incluso cuando el primer paquete 132 que corresponde a la trama de voz particular falta en el búfer
[0045] En un aspecto particular, el analizador 122 puede proporcionar la primera copia parcial 174, el segundo paquete 134 o los primeros parámetros de voz al descodificador de voz 156 y el descodificador de voz 156 puede generar la señal de voz procesada 116. El analizador 122 (o el descodificador de voz 156) puede enviar la señal de voz procesada 116 a través del altavoz 142 al primer usuario 152. El analizador 122 puede actualizar (por ejemplo, incrementar o reiniciar) el siguiente número de secuencia. La señal de voz procesada 116 puede tener una mejor calidad de audio que una señal de voz procesada generada basándose únicamente en los segundos datos 166. Por ejemplo, la señal de voz procesada 116 generada en base a la primera copia parcial 174 y los segundos datos 166 pueden tener menos artefactos perceptibles por el usuario que la señal de voz procesada generada en base a los segundos datos 166 y no a los primeros datos 164 (o primera copia parcial 174).
[0046] En un aspecto particular, el analizador 122 puede determinar que el primer paquete 132 y el segundo paquete 134 faltan en el búfer 126. Por ejemplo, el analizador 122 puede determinar que el primer paquete 132 falta en el búfer 126 y que el búfer 126 no almacena la copia parcial del primer paquete 132 como datos de corrección de errores en otro paquete. A modo de ilustración, el analizador 122 puede determinar que el número de secuencia del primer paquete 132 no está indicado por el campo particular de cualquiera de los paquetes correspondientes a la señal de voz de entrada 130 que están almacenados en el búfer 126. El analizador 122 puede actualizar el recuento de paquetes perdidos 114 basándose en la determinación de que el primer paquete 132 y el segundo paquete 134 faltan en el búfer 126. En un aspecto particular, el analizador 122 puede actualizar (por ejemplo, incrementar en 1) el recuento de paquetes perdidos 114 para reflejar que el primer paquete 132 falta en el búfer 126 y que el búfer 126 no almacena un paquete (por ejemplo, el segundo paquete 134) que incluye una copia parcial del primer paquete 132. El analizador 122 puede actualizar (por ejemplo, incrementar o reiniciar) el siguiente número de secuencia.
[0047] El analizador 122 puede ajustar el parámetro de recuperación de errores 108 basándose en el recuento de paquetes perdidos 114, el recuento de copias parciales recuperadas 106, o ambos, como se describe con referencia a las FIGS. 2-3. Por ejemplo, el analizador 122 puede determinar el valor de resultado 118 basándose en el recuento de paquetes perdidos 114, el recuento de copias parciales recuperadas 106, o ambos. En un aspecto particular, el valor de resultado 118 puede ser una suma ponderada del recuento de paquetes perdidos 114 y del recuento de copias parciales recuperadas 106. En un aspecto particular, el analizador 122 puede determinar el valor de resultado 118 basándose en una suma del recuento de paquetes perdidos 114 (por ejemplo, que tienen un peso de 1) y un valor ponderado. El analizador 122 puede determinar el valor ponderado multiplicando el recuento de copias parciales recuperadas 106 por la métrica de calidad 128. La métrica de calidad 128 puede ser un valor predeterminado, un valor proporcionado por el usuario o ambos. La métrica de calidad 128 puede corresponder al peso (por ejemplo, mayor o igual a 0 y menor o igual a 1) asignado al recuento de copias parciales recuperadas 106.
[0048] En un aspecto particular, la métrica de calidad 128 puede ser una medida de la calidad de las copias parciales recuperadas. A modo de ilustración, cuando la medida de calidad de las copias parciales recuperadas es mayor, la métrica de calidad 128 puede corresponder a un peso menor. El analizador 122 puede determinar la medida de calidad basándose en una diferencia entre los datos (por ejemplo, parámetros de voz) correspondientes a una copia parcial recuperada (por ejemplo, la primera copia parcial 174) y los datos previos (por ejemplo, parámetros de voz anteriores) recuperados de un paquete anterior correspondiente a una trama de audio anterior. Por ejemplo, el analizador 122 puede determinar la medida de la calidad basándose en una diferencia entre los parámetros de voz y los parámetros de voz anteriores que satisfacen un umbral particular. Si la copia parcial recuperada (por ejemplo, la primera copia parcial 174) corresponde a parámetros suficientemente diferentes, entonces la generación de la señal de voz procesada 116 basada en la copia parcial recuperada (por ejemplo, la primera copia parcial 174) puede mejorar significativamente la calidad de audio de la señal de voz procesada 116 cuando un paquete primario correspondiente (por ejemplo, el primer paquete 132) no está almacenado en el búfer 126. El analizador 122 puede determinar una medida de calidad más alta cuando la copia parcial recuperada (por ejemplo, la primera copia parcial 174) corresponde a parámetros suficientemente diferentes que el paquete anterior.
[0049] En un aspecto particular, al recuento de copias parciales recuperadas 106 se le puede asignar un peso menor que al recuento de paquetes perdidos 114. La asignación de un peso menor al recuento de copias parciales recuperadas puede permitir la redundancia parcial para reducir el impacto de los paquetes que faltan correspondientes en el ajuste del parámetro de recuperación de errores. Se apreciará que tener redundancia parcial puede permitir el uso de un búfer más pequeño, menos solicitudes de retransmisión, o ambos, que no tener redundancia.
[0050] El analizador 122 puede ajustar el parámetro de recuperación de errores 108 (por ejemplo, la profundidad del búfer 110, el umbral de retransmisiones 112, o ambos) basándose en el valor de resultado 118. Por ejemplo, el analizador 122 puede incrementar el parámetro de recuperación de errores 108 en base a la cantidad de incremento 140 en respuesta a la determinación de que el valor de resultado 118 satisface el umbral de incremento 136, como se describe con referencia a las FIGS. 2-3. En un aspecto particular, el valor de resultado 118 puede satisfacer el umbral de incremento 136 durante condiciones de alta pérdida de paquetes que pueden resultar en una degradación perceptible en la calidad de audio de las señales de voz procesadas. El analizador 122 puede incrementar la profundidad del búfer 110 para aumentar la probabilidad de que una copia parcial de un paquete perdido esté en el búfer como datos de corrección de errores en otro paquete. El analizador 122 puede incrementar el umbral de retransmisiones 112 para permitir que el dispositivo de destino 102 envíe más mensajes de retransmisión (por ejemplo, el mensaje de retransmisión 144) al dispositivo de origen 104 para solicitar la retransmisión de paquetes perdidos. El dispositivo de destino 102 puede generar una señal de voz procesada basada en paquetes retransmitidos y puede mejorar la calidad de audio de las señales de voz procesadas.
[0051] Como otro ejemplo, el analizador 122 puede disminuir el parámetro de recuperación de errores 108 basándose en la cantidad de disminución 150 en respuesta a la determinación de que el valor de resultado 118 satisface el umbral de disminución 138, como se describe con referencia a las FIGS. 2-3. En un aspecto particular, el valor de resultado 118 puede satisfacer el umbral de disminución 138 durante condiciones de baja pérdida de paquetes. El analizador 122 puede disminuir la profundidad del búfer 110 para disminuir el uso de memoria por el búfer 126. El analizador 122 puede disminuir el umbral de retransmisiones 112 para reducir un número de mensajes de retransmisión (por ejemplo, el mensaje de retransmisión 144) enviados por el dispositivo de destino 102 para solicitar la retransmisión de paquetes perdidos. Menos mensajes de retransmisión pueden resultar en un uso reducido del ancho de banda asociado con el envío de mensajes de retransmisión y la retransmisión de paquetes.
[0052] En un aspecto particular, el parámetro de recuperación de errores 108 puede tener un valor máximo, un valor mínimo o ambos. En este aspecto, el analizador 122 puede ajustar el parámetro de recuperación de errores 108 dentro de un rango limitado por el valor mínimo y el valor máximo.
[0053] Uno o más del umbral de incremento 136, el umbral de disminución 138, la cantidad de incremento 140 y la cantidad de disminución 150 pueden tener valores distintos o los mismos valores para cada parámetro de recuperación de errores. Por ejemplo, uno o más del umbral de incremento 136, el umbral de disminución 138, la cantidad de incremento 140 y la cantidad de disminución 150 correspondiente a la profundidad del búfer 110 pueden ser distintos de uno o más del umbral de incremento 136, el umbral de disminución 138, la cantidad de incremento 140 y la cantidad de disminución 150 correspondientes al umbral de retransmisiones 112.
[0054] El umbral de incremento 136, el umbral de disminución 138, la cantidad de incremento 140, la cantidad de disminución 150, o una combinación de los mismos, pueden ser valores por defecto. En un aspecto particular, el analizador 122 puede determinar dinámicamente la cantidad de incremento 140, la cantidad de disminución 150 o ambas. Por ejemplo, el analizador 122 puede determinar la cantidad de incremento 140 basándose en una diferencia entre el valor de resultado 118 y el umbral de incremento 136. Como otro ejemplo, el analizador 122 puede determinar la cantidad de disminución 150 basándose en una diferencia entre el valor de resultado 118 y el umbral de disminución 138.
[0055] En un aspecto particular, el analizador 122 puede determinar una cantidad de ajuste del parámetro de recuperación de errores 108 en base al valor de resultado 118 y puede retardar el ajuste del parámetro de recuperación de errores 108 en base a la cantidad de ajuste para un momento posterior. Por ejemplo, el analizador 122 puede determinar iterativamente la cantidad de ajuste basándose en un primer número (por ejemplo, 10) de paquetes y puede ajustar el parámetro de recuperación de errores 108 después de procesar el primer número de paquetes. Como otro ejemplo, el dispositivo de destino 102 puede recibir paquetes en ráfagas desde el dispositivo de origen 104. Por ejemplo, el segundo usuario 194 puede hacer una pausa mientras habla y cada ráfaga de paquetes puede corresponder a la voz del segundo usuario 194 entre las pausas. El analizador 122 puede ajustar el parámetro de recuperación de errores 108 en base a la cantidad de ajuste durante una pausa de modo que se pueda procesar una próxima ráfaga de paquetes en base al parámetro de recuperación de errores 108 ajustado y de modo que el ajuste del parámetro de recuperación de errores 108 no pueda ser perceptible para un usuario.
[0056] En un aspecto particular, el analizador 122 puede solicitar la retransmisión de un paquete particular (por ejemplo, el primer paquete 132) en base al recuento de retransmisiones 154, el umbral de retransmisiones 112 o ambos. Por ejemplo, el analizador 122 puede enviar un mensaje de retransmisión 144, a través del transmisor 192, al dispositivo de origen 104 basándose en la determinación de que el recuento de retransmisiones 154 satisface el umbral de retransmisiones 112 y que el primer paquete 132 falta en el búfer 126. El mensaje de retransmisión 144 puede solicitar la retransmisión del primer paquete 132.
[0057] El recuento de retransmisiones 154 puede tener un valor inicial predeterminado. El analizador 122 puede actualizar el recuento de retransmisiones 154 (por ejemplo, incrementar) basándose en el envío del mensaje de retransmisión 144. En un aspecto particular, el recuento de retransmisiones 154 puede estar asociado con un período de tiempo particular. Por ejemplo, el recuento de retransmisiones 154 puede indicar una serie de mensajes de retransmisión enviados por el analizador 122 durante el período de tiempo particular (por ejemplo, los 5 minutos anteriores).
[0058] El dispositivo de origen 104 puede retransmitir el primer paquete 132 en respuesta a la recepción del mensaje de retransmisión 144. En este aspecto, el analizador 122 puede recibir el primer paquete 132 retransmitido y puede generar una señal de voz procesada basada en al menos los primeros datos 164 del primer paquete 132 retransmitido. Por ejemplo, el analizador 122 puede generar la señal de voz procesada basada en los primeros datos 164 del primer paquete 132 retransmitido y los segundos datos 166 del segundo paquete 134 en respuesta a la determinación de que el búfer 126 almacena el segundo paquete 134. En un aspecto particular, puede haber un retardo de ida y vuelta (por ejemplo, de 8 milisegundos (ms) a 16 ms) asociado con el envío del mensaje de retransmisión 144 y la recepción del primer paquete 132 retransmitido. Por ejemplo, puede haber un número máximo (por ejemplo, 8) de instancias de solicitud híbrida de repetición automática (HARQ) entre el dispositivo de origen 104 y el dispositivo de destino 102. El dispositivo de origen 104 puede enviar el primer paquete 132 durante una primera instancia de HARQ. El dispositivo de destino 102 puede enviar el mensaje de retransmisión 144 durante una segunda instancia de HARQ. El dispositivo de origen 104 puede enviar el primer paquete 132 retransmitido durante una tercera instancia de HARQ. El retardo de ida y vuelta (por ejemplo, de 8 ms a 16 ms) puede corresponder a una diferencia de tiempo entre la primera instancia de HARQ y la tercera instancia de HARQ.
[0059] En una implementación particular, una línea de tiempo de transmisión se puede dividir en unidades de subtramas. Cada subtrama puede tener una duración de tiempo predeterminada, por ejemplo, 1 milisegundo (ms). El dispositivo de origen 104 puede tener datos para enviar al dispositivo de destino 102 y puede procesar el primer paquete 132 de acuerdo con un formato de transporte seleccionado para obtener símbolos de datos. Un formato de transporte puede corresponder a una velocidad, un formato de paquete, un esquema de modulación y codificación (MCS), etc. El dispositivo de origen 104 puede enviar una primera transmisión del primer paquete 132 así como información de control al dispositivo de destino 102 en la subtrama t. La información de control puede indicar el formato de transporte seleccionado, los recursos de radio utilizados para la transmisión de datos, etc. El dispositivo de destino 102 puede recibir y procesar la primera transmisión de acuerdo con el formato de transporte seleccionado. Si el dispositivo de destino 102 no puede descodificar con éxito el primer paquete 132 (por ejemplo, se encuentra un error o no se recibe el primer paquete 132 cuando se esperaba), el dispositivo de destino 102 puede enviar un acuse de recibo negativo (NAK) en la subtrama t+A.
[0060] El NAK actúa como una solicitud de retransmisión. Por consiguiente, el dispositivo de origen 104 puede recibir el NAK y enviar una segunda transmisión del primer paquete 132 en la subtrama t+M. El dispositivo de destino 102 puede volver a intentar descodificar el primer paquete 132. Si se produce un error, el dispositivo de destino 102 puede enviar otro NAK (por ejemplo, en la subtrama t+M+A). Cada transmisión del primer paquete 132 después de la transmisión inicial en la subtrama t puede denominarse transmisión HARQ y puede incluir información de redundancia diferente (por ejemplo, un conjunto diferente de símbolos de datos) para el primer paquete 132.
[0061] El sistema 100 puede admitir HARQ sincrónico y/o HARQ asíncrono. Para HARQ sincrónico, las transmisiones de un paquete (por ejemplo, el primer paquete 132) pueden enviarse en subtramas que son conocidas a priori por un transmisor (por ejemplo, el dispositivo de origen 104) y un receptor (por ejemplo, el dispositivo de destino 102). Para HARQ asíncrono, las transmisiones de un paquete (por ejemplo, el primer paquete 132) pueden planificarse y enviarse en una o más subtramas. En una implementación particular, el sistema 100 puede admitir HARQ, solicitud de repetición automática (ARQ), otro protocolo de retransmisión o una combinación de los mismos.
[0062] En un aspecto particular, el analizador 122 puede abstenerse de solicitar la retransmisión de un paquete particular (por ejemplo, el primer paquete 132) basándose en la determinación de que el recuento de retransmisiones 154 no satisface el umbral de retransmisiones 112, que el paquete particular (por ejemplo, el primer paquete 132) está almacenado en el búfer 126, que una copia parcial (por ejemplo, la primera copia parcial 174) del paquete particular (por ejemplo, el primer paquete 132) está almacenada en el búfer 126, o una combinación de los mismos. Se apreciará que la generación de la señal de voz procesada 116 basada en el primer paquete 132 retransmitido puede dar como resultado que la señal de voz procesada 116 tenga una mejor calidad de audio, mientras que la generación de la señal de voz procesada 116 basada en la primera copia parcial 174 puede resultar en que la señal de voz procesada 116 se genera sin el retardo de ida y vuelta (por ejemplo, de 8 ms a 16 ms) asociado con la solicitud y recepción del primer paquete 132 retransmitido.
[0063] En un aspecto particular, el analizador 122 puede descartar un paquete en base a la profundidad del búfer 110. Por ejemplo, el analizador 122 puede determinar que un número (o tamaño total) de paquetes almacenados en el búfer 126 satisface la profundidad del búfer 110. El analizador 122 puede, en respuesta a recibir un paquete subsiguiente, abstenerse de almacenar el paquete subsiguiente en el búfer 126 o puede eliminar uno o más paquetes del búfer 126. Por ejemplo, el analizador 122 puede eliminar un paquete que ha estado en el búfer 126 durante más tiempo, puede eliminar un paquete que no incluye datos de corrección de errores correspondientes a otro paquete, o ambos.
[0064] Por tanto, el sistema 100 puede permitir la recuperación parcial de datos de un paquete perdido sin retransmisión del paquete perdido. Por ejemplo, el analizador 122 puede recuperar la primera copia parcial 174 del segundo paquete 134 en respuesta a la determinación de que el primer paquete 132 no está almacenado en el búfer 126. Otra ventaja particular es ajustar dinámicamente un parámetro de recuperación de errores basándose en un recuento de copias parciales recuperadas, un recuento de paquetes perdidos o ambos. Por ejemplo, el analizador 122 puede ajustar dinámicamente el parámetro de recuperación de errores 108 basándose en el recuento de copias parciales recuperadas 106, el recuento de paquetes 114 perdidos o ambos. Por tanto, el parámetro de recuperación de errores 108 puede responder a las condiciones de la red, un grado de redundancia en los paquetes recibidos o ambos.
[0065] Con referencia a la FIG. 2, se divulga y se designa en general por 200 un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia. En un aspecto particular, el procedimiento 200 se puede realizar mediante el analizador 122 de la FIG. 1.
[0066] La FIG. 2 ilustra el ajuste de la profundidad del búfer 110 de la FIG. 1 basado en el recuento de paquetes perdidos 114, el recuento de copias parciales recuperadas 106, o ambos. Por ejemplo, el ajuste de la profundidad del búfer 110 puede ser una función del recuento de paquetes perdidos 114 (p), una función del recuento de copias parciales recuperadas 106 (q) o una función del recuento de paquetes perdidos 114 (p) y el recuento de copias parciales recuperadas 106 (q).
[0067] El procedimiento 200 incluye recibir, mediante un receptor, una trama de voz codificada R(N) en el momento N, en 202. Por ejemplo, el receptor 124 de la FIG. 1 puede recibir un paquete particular correspondiente a una trama de audio particular de la señal de voz de entrada 130, como se describe con referencia a la FIG. 1.
[0068] El procedimiento 200 también incluye determinar si una siguiente trama de voz R(N-D) está disponible en un búfer de eliminación de fluctuaciones, en 204. Por ejemplo, el analizador 122 puede determinar si un paquete siguiente está almacenado en el búfer 126, como se describe con referencia a la FIG. 1. El siguiente paquete puede tener un siguiente número de secuencia. En un aspecto particular, el analizador 122 puede determinar el siguiente número de secuencia incrementando un número de secuencia de un paquete procesado previamente. En un aspecto alternativo, el analizador 122 puede determinar el siguiente número de secuencia basándose en una diferencia entre un número de secuencia de un paquete recibido más recientemente (por ejemplo, N) y la profundidad del búfer 110 (por ejemplo, D). En este aspecto, la profundidad del búfer 110 puede indicar un número máximo de paquetes que se almacenarán en el búfer 126. El analizador 122 puede determinar si el siguiente paquete (por ejemplo, el primer paquete 132) correspondiente al siguiente número de secuencia está almacenado en el búfer 126.
[0069] El procedimiento 200 incluye, además, en respuesta a la determinación de que la siguiente trama de voz R(N-D) está disponible en el búfer de eliminación de fluctuaciones, en 204, proporcionar la siguiente trama de voz R(N-D) a un descodificador de voz, en 206. Por ejemplo, el analizador 122 puede, en respuesta a la determinación de que el siguiente paquete (por ejemplo, el primer paquete 132) está almacenado en el búfer 126, proporcionar el primer paquete 132 al descodificador de voz 156, como se describe con referencia a la FIG. 1.
[0070] El procedimiento 200 también incluye, en respuesta a la determinación de que la siguiente trama de voz R(N-D) no está disponible en el búfer de eliminación de fluctuaciones, en 204, determinar si una copia parcial de la siguiente trama de voz R(N-D) está disponible en el búfer de eliminación de fluctuaciones, en 208. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el primer paquete 132 no está almacenado en el búfer 126, determinar si una copia parcial del primer paquete 132 está almacenada en el búfer 126, como se describe con referencia a la FIG. 1. Para ilustrar, el analizador 122 puede determinar si el segundo paquete 134 que tiene la primera copia parcial 174 está almacenado en el búfer 126.
[0071] El procedimiento 200 incluye, además, en respuesta a la determinación de que la copia parcial de la siguiente trama de voz R(N-D) está disponible en el búfer de eliminación de fluctuaciones, en 208, proporcionar la copia parcial de la siguiente trama de voz R(N-D) a la descodificador de voz, en 206, y determinar un número (q) de copias parciales que se recuperaron durante las M tramas previas, en 210. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el segundo paquete 134 está incluido en el búfer 126 y que el segundo paquete 134 incluye la primera copia parcial 174 del primer paquete 132, proporcionar el segundo paquete 134 al descodificador de voz 156. En un aspecto particular, el analizador 122 puede proporcionar la primera copia parcial 174 al descodificador de voz 156. El analizador 122 también puede actualizar el recuento de copias parciales recuperadas 106, como se describe con referencia a la FIG. 1. Por ejemplo, el recuento de copias parciales recuperadas 106 puede corresponder a un número particular de tramas, un período de tiempo particular o ambos. El número particular (M) de tramas puede corresponder a un valor predeterminado. En un aspecto particular, el número particular (M) de tramas puede ser seleccionado por el analizador 122 o por un usuario (por ejemplo, el primer usuario 152). En un aspecto particular, el número particular (M) de tramas puede ser adaptativo. Por ejemplo, el analizador 122 puede actualizar el número particular (M) de tramas a lo largo del tiempo. En un aspecto particular, el analizador 122 puede actualizar el número particular (M) de tramas basándose en un número de veces que la profundidad del búfer 110 se ha ajustado durante un período de tiempo particular (por ejemplo, 5 minutos). Por ejemplo, el analizador 122 puede actualizar (por ejemplo, aumentar o disminuir) el número particular (M) de tramas en respuesta a determinar que el número de veces que la profundidad del búfer 110 se ha ajustado durante el período de tiempo particular satisface un umbral de ajuste.
[0072] En un aspecto particular, el recuento de copias parciales recuperadas 106 puede indicar un número de copias parciales recuperadas de un número particular (M) de los paquetes procesados más recientemente. Por ejemplo, del número particular (por ejemplo, diez) de paquetes procesados más recientemente por el analizador 122, el analizador 122 puede haber recibido con éxito un primer número (por ejemplo, 7) de paquetes, el analizador 122 puede haber recuperado copias parciales para un segundo número (por ejemplo, 2) de paquetes que no fueron recibidos con éxito por el analizador 122, y las copias parciales pueden no haber estado disponibles para el número restante (por ejemplo, 1) de los paquetes que no fueron recibidos con éxito por el analizador 122. En este ejemplo, el recuento de copias parciales recuperadas 106 puede indicar que se recuperaron copias parciales para el segundo número (por ejemplo, 2) de paquetes del número particular (por ejemplo, 10) de los paquetes procesados más recientemente.
[0073] En un aspecto alternativo, el recuento de copias parciales recuperadas 106 puede indicar un número de copias parciales recuperadas durante un período de tiempo particular (por ejemplo, los 5 minutos anteriores). Por ejemplo, el analizador 122 puede recibir un número particular (por ejemplo, 20) de paquetes durante el período de tiempo particular (por ejemplo, los 5 minutos anteriores). Del número particular (por ejemplo, 20) de paquetes, el analizador 122 puede haber recibido con éxito un primer número (por ejemplo, 12) de paquetes, el analizador 122 puede haber recuperado copias parciales para un segundo número (por ejemplo, 6) de paquetes que no fueron recibidos con éxito por el analizador 122, y las copias parciales pueden no haber estado disponibles para el número restante (por ejemplo, 2) de los paquetes que no fueron recibidos con éxito por el analizador 122. En este ejemplo, el recuento de copias parciales recuperadas 106 puede indicar que se recuperaron copias parciales para el segundo número (por ejemplo, 6) de paquetes recibidos por el analizador 122 durante el período de tiempo particular (por ejemplo, los 5 minutos anteriores). El procedimiento 200 puede avanzar hasta 214.
[0074] El procedimiento 200 también incluye, en respuesta a la determinación de que la copia parcial de la siguiente trama de voz R(N-D) no está disponible en el búfer de eliminación de fluctuaciones, en 208, determinar un número (p) de paquetes perdidos durante las M tramas anteriores, en 212. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a la determinación de que el segundo paquete 134 no está almacenado en el búfer 126, actualizar el recuento de paquetes perdidos 114, como se describe con referencia a la FIG. 1. Para ilustrar, el analizador 122 puede determinar que el búfer 126 no almacena un paquete (por ejemplo, el segundo paquete 134) que indica que una copia parcial (por ejemplo, la primera copia parcial 174) del primer paquete 132 está incluida en el paquete.
[0075] El procedimiento 200 incluye, además, determinar un valor de resultado (r) basado en el número (p) de paquetes perdidos durante las M tramas anteriores y el número (q) de copias parciales que se recuperaron durante M tramas previas, en 214. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar el valor de resultado 118 (r) basándose en el recuento de paquetes perdidos 114 (p), el recuento de copias parciales recuperadas 106 (q), o ambos, como se describe con referencia a la FIG. 1. En el ejemplo ilustrado en la FIG. 2, r = f(p, q). El valor de resultado 118 (r) puede ser una función del recuento de paquetes perdidos 114 (p), una función del recuento de copias parciales recuperadas 106 (q), o una función del recuento de paquetes perdidos 114 (p) y el recuento de copias parciales recuperadas 106 (q). Por ejemplo, el valor de resultado 118 puede ser una suma ponderada del recuento de paquetes perdidos 114 y el recuento de copias parciales recuperadas 106.
[0076] El procedimiento 200 también incluye determinar si el valor de resultado (r) es mayor que un umbral de incremento (T1), en 216. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar si el valor de resultado 118 satisface (por ejemplo, es mayor que) el umbral de incremento 136, como se describe con referencia a la FIG. 1.
[0077] El procedimiento 200 incluye, además, en respuesta a la determinación de que el valor de resultado (r) es mayor que el umbral de incremento (T1), en 216, determinar un valor de profundidad (Dnuevo) basado en la suma de una cantidad de incremento (Am) y una profundidad (Dantiguo) de un búfer de eliminación de fluctuaciones para la siguiente ráfaga de conversación, en 222. Por ejemplo, el analizador 122 de la FIG. 1, puede en respuesta a determinar que el valor de resultado 118 satisface (por ejemplo, es mayor que) el umbral de incremento 136, determinar una cantidad de ajuste (por ejemplo, Dnuevo) en base a una suma de la cantidad de incremento 140 y la profundidad del búfer 110 (por ejemplo, Dantiguo), como se describe con referencia a la FIG. 1. El procedimiento 200 puede avanzar hasta 224.
[0078] El procedimiento 200 también incluye, en respuesta a determinar que el valor de resultado (r) es menor o igual al umbral de incremento (T1), en 216, determinar si el valor de resultado (r) es menor que el umbral de disminución (T2), en 220. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 no satisface (por ejemplo, es menor o igual a) el umbral de incremento 136, determinar si el valor de resultado 118 satisface (por ejemplo, es menor que) el umbral de disminución 138, como se ha descrito con referencia a la FIG.
1.
[0079] El procedimiento 200 incluye, además, en respuesta a la determinación de que el valor de resultado (r) es menor que el umbral de disminución (T2), en 220, disminuir el valor de profundidad (Dnuevo) en base a una diferencia entre una cantidad de disminución (An2) y la profundidad (Dantiguo) del búfer de eliminación de fluctuaciones para la siguiente ráfaga de conversación, en 222. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 satisface (por ejemplo, es menor que) el umbral de disminución 138, determinar la cantidad de ajuste (por ejemplo, Dnuevo) basándose en una diferencia entre la cantidad de disminución 150 y la profundidad del búfer 110 (por ejemplo, Dantiguo), como se describe con referencia a la FIG. 1.
[0080] El procedimiento 200 también incluye ajustar la profundidad del búfer de eliminación de fluctuaciones al valor de profundidad (Dnuevo), en 224. Por ejemplo, el analizador 122 de la FIG. 1 puede ajustar la profundidad del búfer 110 basándose en la cantidad de ajuste (por ejemplo, Dnuevo), como se describe con referencia a la FIG. 1. El procedimiento 200 puede avanzar hasta 202.
[0081] El procedimiento 200 incluye también, en respuesta a determinar que el valor de resultado (r) es mayor que o igual al umbral de disminución (T2), en 220, recibir un paquete subsiguiente, en 202. Por ejemplo, el analizador 122 de la FIG. 1 puede abstenerse de ajustar la profundidad del búfer 110 en respuesta a la determinación de que el valor de resultado 118 no satisface el umbral de incremento 136 y el umbral de disminución 138.
[0082] La profundidad del búfer 110 (por ejemplo, D) puede tener un primer valor de profundidad (por ejemplo, Dantiguo). Por ejemplo, D = Dantiguo. El analizador 122 puede determinar un segundo valor de profundidad (por ejemplo, Dnuevo) basándose al menos en parte en el primer valor de profundidad (por ejemplo, Dantiguo). El analizador 122 puede ajustar la profundidad del búfer 110 (por ejemplo, D) basándose en el segundo valor de profundidad (por ejemplo, Dnuevo). Por ejemplo, D = Dnuevo después del ajuste de la profundidad del búfer 110.
[0083] El procedimiento 200 puede permitir el ajuste dinámico de la profundidad del búfer de eliminación de fluctuaciones basado en un recuento de paquetes perdidos, un recuento de copias parciales recuperadas o ambos. La profundidad del búfer puede responder a las condiciones de la red. Durante condiciones de alta pérdida de paquetes, falta de redundancia de datos o ambas, la profundidad del búfer puede aumentarse para reducir los paquetes descartados en un dispositivo de destino, para aumentar la probabilidad de encontrar copias parciales de paquetes perdidos en un búfer de eliminación de fluctuaciones, o ambos. De forma alternativa, durante condiciones de baja pérdida de paquetes, alto grado de redundancia de datos, o ambos, la profundidad del búfer puede reducirse para reducir el uso de memoria por parte del búfer de eliminación de fluctuaciones.
[0084] Con referencia a la FIG. 3, se divulga y se designa en general por 300 un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia. En un aspecto particular, el procedimiento 300 se puede realizar mediante el analizador 122 de la FIG. 1.
[0085] La FIG. 3 ilustra el ajuste del umbral de retransmisiones 112 de la FIG. 1 basado en el recuento de paquetes perdidos 114, el recuento de copias parciales recuperadas 106, o ambos. El procedimiento 300 incluye 202, 204, 206, 208, 210, 212, 214, 216 y 220 del procedimiento 200 de la FIG. 2.
[0086] El procedimiento 300 también incluye, en respuesta a la determinación de que una copia parcial de una siguiente trama de voz R(N-D) no está disponible en un búfer de eliminación de fluctuaciones, en 208, realizar un análisis de retransmisión, en 302. Por ejemplo, el analizador 122 de la FIG. 1 puede realizar un análisis de retransmisión en respuesta a la determinación de que el búfer 126 no almacena ni el primer paquete 132 ni otro paquete que indique que una copia parcial del primer paquete 132 está incluida en el otro paquete, como se describe con referencia a la FIG. 4.
[0087] El procedimiento 300 incluye, además, en respuesta a la determinación de que el valor de resultado (r) es mayor que el umbral de incremento (T1), en 216, determinar un valor de retransmisión (RTnuevo) basado en la suma de una cantidad de incremento (Am) y un umbral de retransmisiones (RTantiguo), en 304. Por ejemplo, el analizador 122 de la FIG. 1, puede en respuesta a la determinación de que el valor de resultado 118 satisface (por ejemplo, es mayor que) el umbral de incremento 136, determinar una cantidad de ajuste (por ejemplo, RTnuevo) basado en una suma de la cantidad de incremento 140 y el umbral de retransmisiones 112 (por ejemplo, RTantiguo), como se describe con referencia a la FIG. 1. El procedimiento 300 puede avanzar hasta 308.
[0088] El procedimiento 300 también incluye, en respuesta a la determinación de que el valor de resultado (r) es menor que el umbral de disminución (T2), en 220, disminuir el valor de retransmisión (RTnuevo) basado en una diferencia entre una cantidad de disminución (An2) y el umbral de retransmisiones (RTantiguo), en 306. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 satisface (por ejemplo, es menor que) el umbral de disminución 138, determinar la cantidad de ajuste (por ejemplo, RTnuevo) basándose en una diferencia entre la cantidad de disminución 150 y el umbral de retransmisiones 112 (por ejemplo, RTantiguo), como se describe con referencia a la FIG. 1.
[0089] El procedimiento 300 también incluye ajustar el valor de retransmisión al valor de retransmisión (RTnuevo), en 308. Por ejemplo, el analizador 122 de la FIG. 1 puede ajustar el umbral de retransmisiones 112 basándose en la cantidad de ajuste (por ejemplo, RTnuevo), como se describe con referencia a la FIG. 1. El procedimiento 300 puede avanzar hasta 202.
[0090] El umbral de retransmisiones 112 (por ejemplo, RT) puede tener un primer valor de umbral de retransmisiones (por ejemplo, RTantiguo). Por ejemplo, RT = RTantiguo. El analizador 122 puede determinar un segundo valor umbral de retransmisiones (por ejemplo, RTnuevo) basado al menos en parte en el primer valor de retransmisión (por ejemplo, RTantiguo). El analizador 122 puede ajustar el umbral de retransmisiones 112 (por ejemplo, RT) basándose en el segundo valor de umbral de retransmisiones (por ejemplo, RTnuevo). Por ejemplo, RT = RTnuevo después del ajuste del umbral de retransmisiones 112. En un aspecto particular, el umbral de incremento (Tl) de la FIG. 3 puede diferir del umbral de incremento (Tl) de la FIG. 2. En un aspecto alternativo, el umbral de incremento (Tl) de la FIG. 3 puede ser el mismo que el umbral de incremento (Tl) de la FIG. 2. En un aspecto particular, el umbral de disminución (T2) de la FIG. 3 puede diferir del umbral de disminución (T2) de la FIG. 2. En un aspecto alternativo, el umbral de disminución (T2) de la FIG. 3 puede ser el mismo que el umbral de disminución (T2) de la FIG. 2.
[0091] El procedimiento 300 puede permitir el ajuste dinámico de un umbral de retransmisiones basado en un recuento de paquetes perdidos, un recuento de copias parciales recuperadas o ambos. El umbral de retransmisiones puede responder a las condiciones de la red. Durante condiciones de alta pérdida de paquetes, falta de redundancia de datos o ambas, el umbral de retransmisiones puede incrementarse para permitir que el dispositivo de destino envíe más solicitudes de retransmisión. De forma alternativa, durante condiciones de baja pérdida de paquetes, alto grado de redundancia de datos o ambos, el umbral de retransmisiones puede disminuirse para reducir el tráfico de la red de retransmisión, para reducir el retardo en la generación de una señal de voz procesada, o ambos.
[0092] Con referencia a la FIG. 4, se divulga y se designa en general por 400 un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia. En un aspecto particular, el procedimiento 400 se puede realizar mediante el analizador 122 de la FIG. 1. En un aspecto particular, el procedimiento 400 puede corresponder a 302 de la FIG. 3.
[0093] El procedimiento 400 incluye determinar si un recuento de retransmisiones es menor que un umbral de retransmisiones (RT), en 402. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar si el recuento de retransmisiones 154 satisface (por ejemplo, es menor que) el umbral de retransmisiones 112, como se describe con referencia a la FIG. 1.
[0094] El procedimiento 400 también incluye, en respuesta a la determinación de que el recuento de retransmisiones es menor que el umbral de retransmisiones (RT), en 402, enviar el mensaje de retransmisión, en 404, e incrementar el recuento de retransmisiones, en 406. Por ejemplo, el analizador 122 de la FIG. 1 puede enviar el mensaje de retransmisión 144 en respuesta a la determinación de que el recuento de retransmisiones 154 satisface (por ejemplo, es menor que) el umbral de retransmisiones 112 y puede actualizar (por ejemplo, incrementar) el recuento de retransmisiones 154, como se describe con referencia a la FIG. 1.
[0095] El procedimiento 400 incluye, además, en respuesta a la determinación de que el recuento de retransmisiones es mayor o igual que el umbral de retransmisiones (RT), en 402, abstenerse de enviar un mensaje de retransmisión, en 408. Por ejemplo, el analizador 122 puede abstenerse de enviar un mensaje de retransmisión (por ejemplo, el mensaje de retransmisión 144) en respuesta a la determinación de que el recuento de retransmisiones 154 no satisface (por ejemplo, es mayor o igual que) el umbral de retransmisiones 112, como se describe con referencia a la FIG. 1.
[0096] Por tanto, el procedimiento 400 puede permitir que un dispositivo de destino envíe solicitudes de retransmisión basándose en un umbral de retransmisiones ajustado dinámicamente. Varias solicitudes de retransmisión enviadas por el dispositivo de destino y una serie de paquetes retransmitidos por un dispositivo de origen pueden responder a las condiciones de la red. Durante condiciones de alta pérdida de paquetes, falta de redundancia de datos, o ambas, el umbral de retransmisiones puede incrementarse para permitir que el dispositivo de destino envíe más solicitudes de retransmisión para aumentar un número de paquetes retransmitidos para reducir errores en la señal de voz procesada. De forma alternativa, durante condiciones de baja pérdida de paquetes, alto grado de redundancia de datos, o ambos, el umbral de retransmisiones puede disminuirse para reducir el número de paquetes retransmitidos, lo que resulta en una reducción en el tráfico de la red de retransmisión, una reducción en el retardo asociado con la generación de la señal de voz procesada, o ambos.
[0097] Con referencia a la FIG. 5, se divulga y se designa en general por 500 un aspecto ilustrativo particular de un sistema que puede funcionar para realizar la recuperación de errores basada en redundancia. El sistema 500 puede diferir del sistema 100 de la FIG. 1 en que el parámetro de recuperación de errores 108 puede incluir un retardo 512 de búfer, como se describe en el presente documento.
[0098] Una secuencia de paquetes puede corresponder a la señal de voz de entrada 130. Cada paquete de la secuencia de paquetes puede incluir un número de secuencia, como se describe con referencia a la FIG. 1. Por ejemplo, el primer paquete 132 puede incluir un primer número de secuencia (por ejemplo, una primera marca de tiempo de generación) y el segundo paquete 134 puede incluir un segundo número de secuencia (por ejemplo, una segunda marca de tiempo de generación). La primera marca de tiempo de generación puede indicar un primer tiempo en el que el dispositivo de origen 104 genera el primer paquete 132 y la segunda marca de tiempo de generación puede indicar un segundo tiempo en el que el dispositivo de origen 104 genera el segundo paquete 134. La primera copia parcial 174 puede incluir el primer número de secuencia (por ejemplo, la primera marca de tiempo de generación).
[0099] A cada paquete que es recibido por el dispositivo de destino 102 se le puede asignar una marca de tiempo de recepción por el receptor 124, el analizador 122 o por otro componente del dispositivo de destino 102. Por ejemplo, al segundo paquete 134 se le puede asignar una segunda marca de tiempo de recepción. El analizador 122 puede determinar una primera marca de tiempo de recepción basándose en la segunda marca de tiempo de recepción y puede asignar la primera marca de tiempo de recepción a la primera copia parcial 174. La primera marca de tiempo de recepción puede ser la misma o distinta de la segunda marca de tiempo de recepción. Por ejemplo, la primera marca de tiempo de recepción puede indicar un primer tiempo de recepción que es anterior a un segundo tiempo de recepción indicado por la segunda marca de tiempo de recepción. En este ejemplo, el primer tiempo de recepción puede corresponder a un tiempo estimado en el que se habría recibido el primer paquete 132 de manera puntual. A modo de ilustración, el primer tiempo de recepción puede corresponder a un tiempo de recepción estimado del primer paquete 132 si el primer paquete 132 no se hubiera retardado o perdido.
[0100] El analizador 122 puede procesar un paquete basándose en una marca de tiempo de recepción asociada con el paquete, el retardo del búfer 512, una línea de tiempo del búfer 504 y un último paquete reproducido 506, como se describe en el presente documento. El retardo del búfer 512 puede corresponder a un tiempo umbral en el que un paquete debe almacenarse en el búfer 126. Por ejemplo, el retardo del búfer 512 puede indicar un primer tiempo umbral (por ejemplo, 5 milisegundos). Se puede recibir un paquete en un primer tiempo de recepción (por ejemplo, 1:00:00.000 PM). Una marca de tiempo de recepción que indica el primer tiempo de recepción puede estar asociada con el paquete. Un segundo tiempo (por ejemplo, 1:00:00.005 PM) puede corresponder a una suma del primer tiempo de recepción indicado por la marca de tiempo de recepción y el retardo del búfer 512. El paquete puede procesarse en o después del segundo tiempo.
[0101] La línea de tiempo del búfer 504 puede indicar un próximo paquete a procesar. Por ejemplo, la línea de tiempo del búfer 504 puede indicar un número de secuencia de un paquete particular que se procesó más recientemente desde el búfer 126 o para el que se reprodujo un borrado más recientemente. Para ilustrar, el analizador 122 puede actualizar la línea de tiempo del búfer 504 para indicar un primer número de secuencia de un paquete en respuesta al procesamiento del paquete desde el búfer 126, al procesamiento de una copia parcial del paquete del búfer 126 o a la reproducción de un borrado correspondiente al paquete. En este ejemplo, el analizador 122 puede determinar un siguiente número de secuencia del siguiente paquete a procesar basándose en el número de secuencia (por ejemplo, el primer número de secuencia) indicado por la línea de tiempo del búfer 504.
[0102] El último paquete reproducido 506 puede indicar el paquete particular que se procesó más recientemente desde el búfer 126. Procesar el paquete particular del búfer 126 puede incluir procesar el paquete particular del búfer 126 o procesar una copia parcial del paquete particular del búfer 126. El analizador 122 puede actualizar el último paquete reproducido 506 para indicar un primer número de secuencia de un paquete en respuesta al procesamiento del paquete del búfer 126 o al procesamiento de una copia parcial del paquete del búfer 126.
[0103] El analizador 122 puede determinar que el último paquete reproducido 506 indica un paquete anterior que fue procesado más recientemente desde el búfer 126 por el analizador 122. El analizador 122 puede determinar que un paquete particular (por ejemplo, el primer paquete 132) es posterior al paquete anterior en la secuencia de paquetes. El analizador 122 puede determinar si un próximo paquete a procesar indicado por la línea de tiempo del búfer 504 es el mismo o posterior al primer paquete 132 en la secuencia de paquetes. El analizador 122 puede, aproximadamente en un primer tiempo de reproducción 502, reproducir un borrado en respuesta a la determinación de que el siguiente paquete a procesar, según lo indicado por la línea de tiempo del búfer 504, es anterior al primer paquete 132 en la secuencia de paquetes.
[0104] El analizador 122 puede actualizar la línea de tiempo del búfer 504 después de reproducir el borrado. Por ejemplo, la línea de tiempo del búfer 504 puede, antes de que se reproduzca el borrado, indicar que un primer paquete particular es el siguiente paquete a procesar. El analizador 122 puede, después de reproducir el borrado, actualizar la línea de tiempo del búfer 504 para indicar que un segundo paquete particular es el siguiente paquete a procesar. El segundo paquete particular puede ser el siguiente después del primer paquete particular en la secuencia de paquetes.
[0105] De forma alternativa, el analizador 122 puede, en respuesta a la determinación de que el siguiente paquete a procesar indicado por la línea de tiempo del búfer 504 es igual o posterior al primer paquete 132 en la secuencia de paquetes, determinar si el búfer 126 almacena el primer paquete 132 (o la primera copia parcial 174). El analizador 122 puede, en respuesta a la determinación de que el búfer 126 almacena la primera copia parcial 174, determinar que la primera copia parcial 174 está asociada con la primera marca de tiempo de recepción que indica el primer tiempo de recepción. El analizador 122 puede, aproximadamente en el primer tiempo de reproducción 502, procesar la primera copia parcial 174 del búfer 126 en respuesta a la determinación de que el primer tiempo es mayor o igual a la suma del primer tiempo de recepción y el retardo del búfer 512. El retardo del búfer 512 puede corresponder a un tiempo umbral en el que un paquete debe almacenarse en el búfer 126. En una implementación particular, el analizador 122 puede procesar la primera copia parcial 174 independientemente de si la primera copia parcial 174 se ha almacenado en el búfer 126 durante el tiempo umbral. En esta implementación, el primer tiempo de recepción puede ser anterior al segundo tiempo de recepción. Por ejemplo, el primer tiempo de recepción puede corresponder a un tiempo de recepción esperado del primer paquete 132 si el primer paquete 132 se hubiera recibido de manera puntual. El analizador 122 puede procesar la primera copia parcial 174 aproximadamente en el primer tiempo de reproducción en respuesta a la determinación de que el primer paquete 132 se habría almacenado en el búfer 126 durante al menos el tiempo umbral si el primer paquete 132 se hubiera recibido de manera puntual. El retardo del búfer 512 puede incluir un valor predeterminado, puede basarse en la entrada del usuario del primer usuario 152, o en ambos. El analizador 122 puede ajustar el retardo del búfer 512, como se describe en el presente documento. El analizador 122 puede, después de procesar la primera copia parcial 174 del búfer 126, actualizar el último paquete reproducido 508 para indicar el primer paquete 132 y puede actualizar la línea de tiempo del búfer 504 para indicar un segundo paquete particular (por ejemplo, el segundo paquete 134) como el siguiente paquete a procesar. El segundo paquete particular (por ejemplo, el segundo paquete 134) puede ser el siguiente después del primer paquete 132 en la secuencia de paquetes.
[0106] En una implementación particular, el analizador 122 puede, en respuesta a determinar que el primer paquete 132 y la primera copia parcial 174 faltan del búfer 126, realizar un análisis similar en el segundo paquete particular (por ejemplo, el segundo paquete 134) como realizado en el primer paquete 132. Por ejemplo, el analizador 122 puede reproducir un borrado en respuesta a la determinación de que el siguiente paquete a procesar indicado por la línea de tiempo del búfer 504 es anterior al segundo paquete particular en la secuencia de paquetes y puede actualizar la línea de tiempo del búfer 504 después de reproducir el borrado. De forma alternativa, el analizador 122 puede, aproximadamente en el primer tiempo de reproducción 502, procesar el segundo paquete particular del búfer 126 en respuesta a la determinación de que el siguiente paquete a procesar indicado por la línea de tiempo del búfer 504 es el mismo o posterior al segundo paquete particular, que el segundo paquete particular o una copia parcial del segundo paquete particular está almacenado en el búfer 126, y que el primer tiempo de reproducción 502 es mayor o igual a la suma del retardo del búfer 512 y un tiempo de recepción particular asociado con el segundo paquete en particular.
[0107] El dispositivo de destino 102 puede recibir la secuencia de paquetes (por ejemplo, el primer paquete 132, el segundo paquete 134 o ambos) durante una llamada telefónica. El primer paquete 132, el segundo paquete 134, o ambos, pueden incluir datos de voz. El analizador 122 puede determinar o actualizar el retardo del búfer 512, como se describe en el presente documento, al comienzo de una ráfaga de conversación o al final de la ráfaga de conversación durante la llamada telefónica. Una ráfaga de conversación puede corresponder a un segmento continuo de voz entre intervalos de silencio durante los cuales se puede escuchar ruido de fondo. Por ejemplo, una primera ráfaga de conversación puede corresponder a la voz del primer usuario 152 y una segunda ráfaga de conversación puede corresponder a la voz del segundo usuario 154. La primera ráfaga de conversación y la segunda ráfaga de conversación pueden estar separadas por un período de silencio o ruido de fondo.
[0108] El analizador 122 puede determinar una tasa de pérdidas por retardo anterior 552. La tasa de pérdidas por retardo anterior 552 puede corresponder a una tasa de pérdidas por retardo determinada durante un ajuste previo del retardo del búfer 512 en un primer tiempo de actualización. El analizador 122 puede mantener un recuento de paquetes perdidos por retardo 510. El recuento de paquetes perdidos por retardo 510 puede indicar un número de paquetes que se reciben después del procesamiento de copias parciales de los paquetes desde el búfer 126 en los tiempos de reproducción correspondientes. Los tiempos de reproducción correspondientes pueden ser posteriores al primer tiempo de actualización. Por ejemplo, el analizador 122 puede, después del primer tiempo de actualización, procesar la primera copia parcial 174 del búfer 126 en un primer tiempo de reproducción asociado con el primer paquete 132. El analizador 122 puede determinar que un primer tiempo corresponde al primer tiempo de reproducción basándose en la determinación de que se satisfacen una o más condiciones. Por ejemplo, el primer tiempo puede corresponder al primer tiempo de reproducción si, en el primer tiempo, el último paquete reproducido 506 es anterior al primer paquete 132 y el primer paquete 132 es anterior o el mismo que el siguiente paquete a procesar, como lo indica la línea de tiempo del búfer 504. El primer tiempo puede corresponder al primer tiempo de reproducción si el primer tiempo es mayor o igual a la suma del tiempo de recepción asociado con el primer paquete 132 (por ejemplo, el primer tiempo de recepción de la primera copia parcial 174) y el retardo del búfer 512. El primer tiempo puede corresponder al primer tiempo de reproducción si el primer paquete 132 es el paquete más antiguo de la secuencia de paquetes que satisface las condiciones precedentes al primer tiempo. El analizador 122 puede actualizar (por ejemplo, incrementar) el recuento de paquetes perdidos por retardo 510 en respuesta a la recepción del primer paquete 132 después de procesar la primera copia parcial 174.
[0109] El analizador 122 puede mantener un recuento de paquetes recibidos 514. Por ejemplo, el analizador 122 puede reiniciar el recuento de paquetes recibidos 514 después del primer tiempo de actualización. El analizador 122 puede actualizar (por ejemplo, incrementar en 1) el recuento de paquetes recibidos 514 en respuesta a la recepción de un paquete (por ejemplo, el segundo paquete 134). El analizador 122 puede determinar una segunda tasa de pérdidas por retardo 554 en base al recuento de paquetes perdidos por retardo 510 y al recuento de paquetes recibidos 514. Por ejemplo, la segunda tasa de pérdidas por retardo 554 puede corresponder a una medida (por ejemplo, una proporción) del recuento de paquetes perdidos por retardo 510 y el recuento de paquetes recibidos 514. Para ilustrar, la segunda tasa de pérdidas por retardo 554 puede indicar un número promedio de paquetes de pérdidas por retardo (por ejemplo, paquetes que se reciben después del procesamiento de copias parciales de los paquetes) durante un intervalo de tiempo particular. La segunda tasa de pérdidas por retardo 554 puede indicar fluctuación de la red durante el intervalo de tiempo particular. Una diferencia entre la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554 puede indicar una variación en el retardo de los paquetes recibidos. La diferencia entre la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554 puede indicar si el número promedio de paquetes perdidos por retardo está aumentando o disminuyendo.
[0110] El analizador 122 puede determinar una tasa de pérdidas por retardo 556 en base a la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554. Por ejemplo, la tasa de pérdidas por retardo 556 puede corresponder a una suma ponderada de la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554. El analizador 122 puede asignar un primer peso (por ejemplo, 0,75) a la tasa de pérdidas por retardo anterior 552 y un segundo peso (por ejemplo, 0,25) a la segunda tasa de pérdidas por retardo 554. El primer peso puede ser el mismo o distinto del segundo peso. En una implementación particular, el primer peso puede ser mayor que el segundo peso. La determinación de la tasa de pérdidas por retardo 556 basada en la suma ponderada de la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554 puede reducir la oscilación en la tasa de pérdidas por retardo 556 basándose en las condiciones temporales de la red. Por ejemplo, la agrupación de paquetes puede hacer que llegue un gran número de paquetes (por ejemplo, 3) al mismo tiempo seguido de que no llegue ningún paquete durante un intervalo posterior. La segunda tasa de pérdidas por retardo 554 puede fluctuar de un primer tiempo a un segundo tiempo porque la segunda tasa de pérdidas por retardo 554 determinada en el primer tiempo puede corresponder a un intervalo durante el cual se recibe un gran número de paquetes y la segunda tasa de pérdidas por retardo 554 determinada en el segundo tiempo puede corresponder a un intervalo sin llegadas de paquetes. La determinación de la tasa de pérdidas por retardo 556 en base a la suma ponderada de la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554 puede reducir el efecto de la agrupación de paquetes sobre la tasa de pérdidas por retardo 556.
[0111] El analizador 122 puede disminuir el retardo del búfer 512 en una cantidad de disminución 516 (por ejemplo, 20 milisegundos) en respuesta a determinar que la tasa de pérdidas por retardo 556 no satisface (por ejemplo, es menor que) una tasa de pérdidas por retardo objetivo 528 (por ejemplo, 0,01). Por ejemplo, la tasa de pérdidas por retardo objetivo 528 puede corresponder a un primer porcentaje (por ejemplo, 1 por ciento) de los paquetes perdidos por retardo en relación con los paquetes recibidos. El analizador 122 puede aumentar el retardo del búfer 512 en una cantidad de incremento 518 (por ejemplo, 20 milisegundos) en respuesta a la determinación de que la tasa de pérdidas por retardo 556 satisface (por ejemplo, es mayor que) la tasa de pérdidas por retardo objetivo 528, que la tasa de pérdidas por retardo 556 es mayor o igual que la tasa de pérdidas por retardo anterior 552, o ambas. La cantidad de disminución 516, la cantidad de incremento 518, la tasa de pérdidas por retardo objetivo 528, o una combinación de las mismas, pueden incluir valores predeterminados, pueden basarse en la entrada del usuario del primer usuario 152, o en ambos. La cantidad de disminución 516 puede ser la misma o distinta de la cantidad de incremento 518.
[0112] El analizador 122 puede establecer el retardo del búfer 512 a un máximo del retardo del búfer 512 y un límite inferior de retardo 538 (por ejemplo, 20 milisegundos). Por ejemplo, el analizador 122 puede establecer el retardo del búfer 512 en el límite inferior de retardo 538 en respuesta a la determinación de que el retardo del búfer 512 es menor que el límite inferior de retardo 538. El analizador 122 puede establecer el retardo del búfer 512 en un mínimo del retardo del búfer 512 y un límite superior de retardo 536 (por ejemplo, 80 milisegundos). Por ejemplo, el analizador 122 puede establecer el retardo del búfer 512 en el límite superior de retardo 536 en respuesta a la determinación de que el retardo del búfer 512 excede el límite superior de retardo 536. El límite inferior de retardo 538, el límite superior de retardo 536, o ambos, pueden ser valores predeterminados, pueden basarse en la entrada del usuario del primer usuario 152, o ambos.
[0113] Por tanto, el sistema 500 puede proporcionar un equilibrio entre tener un retardo de búfer largo de modo que es probable que los paquetes retardados se reciban antes de los tiempos de reproducción correspondientes y un retardo de búfer corto que reduce un retardo de extremo a extremo asociado con una secuencia de paquetes.
[0114] Con referencia a la FIG. 6, se muestra un diagrama de flujo de un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia y, en general, se designa por 600. En un aspecto particular, el procedimiento 600 puede ser ejecutado por el analizador 122 de la FIG.
1.
[0115] El procedimiento 600 incluye determinar si un paquete particular de una secuencia de paquetes falta en un búfer, en 602. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar si un paquete particular (por ejemplo, el primer paquete 132) de una secuencia de paquetes falta en el búfer 126, como se describe con referencia a la FIG. 1.
[0116] El procedimiento 600 también incluye, en respuesta a la determinación de que el paquete particular no falta en el búfer, en 602, enviar el paquete particular a un descodificador de voz, en 604. Por ejemplo, el analizador 122 de la FIG. 1 puede enviar el primer paquete 132 al descodificador de voz 156 en respuesta a la determinación de que el primer paquete 132 no falta en el búfer 126, como se describe con referencia a la FIG. 1.
[0117] El procedimiento 600 incluye, además, en respuesta a la determinación de que el paquete particular falta en el búfer, en 602, determinar si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en otro paquete, en 606. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el primer paquete 132 falta en el búfer 126, determinar si una copia parcial (por ejemplo, la primera copia parcial 174) del primer paquete 132 está almacenada en el búfer como datos de corrección de errores en otro paquete (por ejemplo, el segundo paquete 134), como se describe con referencia a la FIG. 1.
[0118] El procedimiento 600 también incluye, en respuesta a la determinación de que la copia parcial está almacenada en el búfer, en 606, actualizar un recuento de copias parciales recuperadas, en 608. El procedimiento 600 puede avanzar hasta 610. Por ejemplo, el analizador 122 de la FIG. 1 puede actualizar el recuento del recuento de copias parciales recuperadas 106 en respuesta a la determinación de que el segundo paquete 134 que incluye la primera copia parcial 174 está almacenada en el búfer 126, como se describe con referencia a la FIG. 1.
[0119] El procedimiento 600 incluye, además, en respuesta a la determinación de que la copia parcial no está almacenada en el búfer, en 606, actualizar un recuento de paquetes perdidos, en 612. Por ejemplo, el analizador 122 de la FIG. 1 puede actualizar el recuento de paquetes perdidos 114 en respuesta a la determinación de que el segundo paquete 134 que incluye la primera copia parcial 174 no está almacenado en el búfer 126, como se describe con referencia a la FIG. 1.
[0120] El procedimiento 600 también incluye ajustar un parámetro de recuperación de errores basado en el recuento de copias parciales recuperadas, el recuento de paquetes perdidos, o ambos, en 610. Por ejemplo, el analizador 122 de la FIG. 1 puede ajustar el parámetro de recuperación de errores 108 basándose en el recuento de copias parciales recuperadas 106, el recuento de paquetes 114 perdidos o ambos.
[0121] El procedimiento 600 puede incluir, además, determinar si un recuento de retransmisiones es menor que un umbral de retransmisiones, en 614. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar si el recuento de retransmisiones 154 satisface (por ejemplo, es menor que) el umbral de retransmisiones 112, como se describe con referencia a las FIGS. 1 y 4.
[0122] El procedimiento 600 también incluye, en respuesta a determinar que el recuento de retransmisiones es menor que el umbral de retransmisiones, en 614, enviar un mensaje de retransmisión a un dispositivo de origen, en 616, y actualizar el recuento de retransmisiones, en 618. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a la determinación de que el recuento de retransmisiones 154 satisface (por ejemplo, es menor que) el umbral de retransmisiones 112, enviar el mensaje de retransmisión 144 al dispositivo de origen 104 y actualizar el recuento de retransmisiones 154, como se describe con referencia a la FIG. 1. La solicitud de retransmisión puede solicitar la retransmisión del paquete particular.
[0123] El procedimiento 600 incluye, además, en respuesta a la determinación de que el recuento de retransmisiones es mayor o igual que el umbral de retransmisiones, en 614, abstenerse de enviar el mensaje de retransmisión al dispositivo de origen, en 620. Por ejemplo, el analizador 122 de la FIG. 1 puede abstenerse de enviar el mensaje de retransmisión 144 al dispositivo de origen 104 en respuesta a la determinación de que el recuento de retransmisiones 154 no satisface (por ejemplo, es mayor o igual que) el umbral de retransmisiones 112, como se describe con referencia a la FIG. 1.
[0124] Por tanto, el procedimiento 600 puede permitir el ajuste dinámico de un parámetro de recuperación de errores basado en un recuento de paquetes perdidos, un recuento de copias parciales recuperadas o ambos.
[0125] El procedimiento 600 de la FIG. 6 puede implementarse mediante un dispositivo de matriz de puertas programables in situ (FPGA), un circuito integrado específico de la aplicación (ASIC), una unidad de procesamiento tal como una unidad central de procesamiento (CPU), un procesador de señales digitales (DSP), un controlador, otro dispositivo de hardware, dispositivo de firmware o cualquier combinación de los mismos. Como ejemplo, un procesador que ejecute instrucciones puede realizar el procedimiento 600 de la FIG. 6, como se describe con respecto a la FIG.
9.
[0126] Con referencia a la FIG. 7, se muestra un diagrama de flujo de un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia y, en general, se designa por 700. En un aspecto particular, el procedimiento 700 puede ser ejecutado por el analizador 122 de la FIG.
1. En un aspecto particular, el procedimiento 700 puede corresponder a 610 de la FIG. 6.
[0127] El procedimiento 700 incluye generar un valor ponderado multiplicando un recuento de copias parciales recuperadas por una métrica de calidad, en 702. Por ejemplo, el analizador 122 de la FIG. 1 puede generar un valor ponderado multiplicando el recuento de copias parciales recuperadas 106 por la métrica de calidad 128, como se describe con referencia a la FIG. 1.
[0128] El procedimiento 700 también incluye generar un valor de resultado sumando un recuento de paquetes perdidos y el valor ponderado, en 704. Por ejemplo, el analizador 122 de la FIG. 1 puede generar el valor de resultado 118 sumando el recuento de paquetes perdidos 114 y el valor ponderado, como se describe con referencia a la FIG.
1.
[0129] El procedimiento 700 incluye, además, determinar si el valor de resultado es mayor que un umbral de incremento, en 706. Por ejemplo, el analizador 122 de la FIG. 1 puede determinar si el valor de resultado 118 satisface (por ejemplo, es mayor que) el umbral de incremento 136.
[0130] El procedimiento 700 también incluye, en respuesta a la determinación de que el valor de resultado es mayor que el umbral de incremento, en 706, determinar una cantidad de incremento basada en una diferencia entre el valor de resultado y el umbral de incremento, en 708. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 satisface (por ejemplo, es mayor que) el umbral de incremento 136, determinar la cantidad de incremento 140 en base a una diferencia entre el valor de resultado 118 y el umbral de incremento 136.
[0131] El procedimiento 700 incluye, además, ajustar un parámetro de recuperación de errores basándose en la cantidad de incremento, en 710. Por ejemplo, el analizador 122 de la FIG. 1 puede ajustar el parámetro de recuperación de errores 108 basándose en la cantidad de incremento 140, como se describe con referencia a la FIG. 1.
[0132] El procedimiento 700 también incluye, en respuesta a la determinación de que el valor de resultado es menor o igual que el umbral de incremento, en 706, determinar si el valor de resultado es menor que un umbral de disminución, en 712. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 no satisface (por ejemplo, es menor o igual a) el umbral de incremento 136, determinar si el valor de resultado 118 satisface (por ejemplo, es menor que) el umbral de disminución 138, como se ha descrito con referencia a la FIG. 1.
[0133] El procedimiento 700 incluye, además, en respuesta a la determinación de que el valor de resultado es mayor o igual que el umbral de disminución, en 712, abstenerse de ajustar el parámetro de recuperación de errores, en 714. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 no satisface (por ejemplo, es mayor o igual que) el umbral de disminución 138, abstenerse de ajustar el parámetro de recuperación de errores 108, como se describe con referencia a la FIG. 1.
[0134] El procedimiento 700 también incluye, en respuesta a la determinación de que el valor de resultado es menor que el umbral de disminución, en 712, determinar una cantidad de disminución basada en una diferencia entre el valor de resultado y el umbral de disminución, en 716. Por ejemplo, el analizador 122 de la FIG. 1 puede, en respuesta a determinar que el valor de resultado 118 satisface (por ejemplo, es menor que) el umbral de disminución 138, determinar la cantidad de disminución 150 en base a una diferencia entre el valor de resultado 118 y el umbral de disminución 138.
[0135] El procedimiento 700 incluye, además, ajustar el parámetro de recuperación de errores basándose en la cantidad de disminución, en 718. Por ejemplo, el analizador 122 de la FIG. 1 puede ajustar el parámetro de recuperación de errores 108 en base a la cantidad de disminución 150, como se describe con referencia a la FIG. 1.
[0136] Por tanto, el procedimiento 700 puede permitir el ajuste dinámico de un parámetro de recuperación de errores basándose en un recuento de paquetes perdidos, un recuento de copias parciales recuperadas o ambos.
[0137] El procedimiento 700 de la FIG. 7 puede implementarse mediante un dispositivo de matriz de puertas programables in situ (FPGA), un circuito integrado específico de la aplicación (ASIC), una unidad de procesamiento tal como una unidad central de procesamiento (CPU), un procesador de señales digitales (DSP), un controlador, otro dispositivo de hardware, dispositivo de firmware o cualquier combinación de los mismos. Como ejemplo, un procesador que ejecute instrucciones puede realizar el procedimiento 700 de la FIG. 7, como se describe con respecto a la FIG.
9.
[0138] Con referencia a la FIG. 8, se muestra un diagrama de flujo de un aspecto ilustrativo particular de un procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia y, en general, se designa por 800. En un aspecto particular, el procedimiento 800 puede ser ejecutado por el analizador 122 de las FIGS. 1 y 5.
[0139] El procedimiento 800 incluye determinar una primera tasa de pérdidas por retardo correspondiente a un ajuste previo de un parámetro de recuperación de errores en un primer tiempo de actualización, en 802. Por ejemplo, el analizador 122 puede determinar la tasa de pérdidas por retardo anterior 552, como se describe con referencia a la FIG. 5. La tasa de pérdidas por retardo anterior 552 puede corresponder a un ajuste anterior del parámetro de recuperación de errores 108 (por ejemplo, el retardo del búfer 512) en un primer tiempo de actualización.
[0140] El procedimiento 800 también incluye determinar una segunda tasa de pérdidas por retardo correspondiente a paquetes particulares de una pluralidad de paquetes, en 804. Por ejemplo, el analizador 122 puede determinar la segunda tasa de pérdidas por retardo 554, como se describe con referencia a la FIG. 5. La segunda tasa de pérdidas por retardo 554 puede corresponder a paquetes particulares de una pluralidad de paquetes asociados con la señal de voz de entrada 130. Los paquetes particulares pueden tener tiempos de reproducción posteriores al primer tiempo de actualización.
[0141] El procedimiento 800 incluye, además, la determinación de una tasa de pérdidas por retardo basada en una suma ponderada de la primera tasa de pérdidas por retardo y la segunda tasa de pérdidas por retardo, en 806. Por ejemplo, el analizador 122 puede determinar la tasa de pérdidas por retardo 556 basándose en una suma ponderada de la tasa de pérdidas por retardo anterior 552 y la segunda tasa de pérdidas por retardo 554, como se describe con referencia a la FIG. 5.
[0142] El procedimiento 800 también incluye determinar si la tasa de pérdidas por retardo es menor que la tasa de pérdidas por retardo objetivo, en 810. Por ejemplo, el analizador 122 puede determinar si la tasa de pérdidas por retardo 556 es menor que la tasa de pérdidas por retardo objetivo 528, como se describe con referencia a la FIG. 5.
[0143] El procedimiento 800 incluye, además, en respuesta a la determinación de que la tasa de pérdidas por retardo es menor que la tasa de pérdidas por retardo objetivo, en 810, disminuir un retardo del búfer en una cantidad de disminución, en 812. Por ejemplo, el analizador 122 puede, en respuesta a la determinación de que la tasa de pérdidas por retardo 556 es menor que la tasa de pérdidas por retardo objetivo 528, disminuir el retardo del búfer 512 en la cantidad de disminución 516, como se describe con referencia a la FIG. 5. El procedimiento 800 puede avanzar hasta 818.
[0144] El procedimiento 800 también incluye, en respuesta a determinar que la tasa de pérdidas por retardo es mayor o igual que la tasa de pérdidas por retardo objetivo, en 810, determinar si la tasa de pérdidas por retardo es mayor que la tasa de pérdidas por retardo objetivo y si la tasa de pérdidas por retardo es mayor que la primera tasa de pérdidas por retardo, en 814. Por ejemplo, el analizador 122 puede, en respuesta a la determinación de que la tasa de pérdidas por retardo 556 es mayor o igual que la tasa de pérdidas por retardo objetivo 528, determinar si la tasa de pérdidas por retardo 556 es mayor que la tasa de pérdidas por retardo objetivo 528 y si la tasa de pérdidas por retardo 556 es mayor que la tasa de pérdidas por retardo anterior 552, como se describe con referencia a la FIG. 5. El procedimiento 800 puede, en respuesta a determinar que la tasa de pérdidas por retardo es igual a la tasa de pérdidas por retardo objetivo o que la tasa de pérdidas por retardo es menor o igual que la primera tasa de pérdidas por retardo, en 814, avanzar a 818.
[0145] El procedimiento 800 incluye, además, en respuesta a determinar que la tasa de pérdidas por retardo es mayor que la tasa de pérdidas por retardo objetivo y que la tasa de pérdidas por retardo es mayor que la primera tasa de pérdidas por retardo, en 814, incrementar el retardo del búfer en una cantidad de incremento, en 816. Por ejemplo, el analizador 122 puede, en respuesta a la determinación de que la tasa de pérdidas por retardo 556 es mayor que la tasa de pérdidas por retardo objetivo 528 y que la tasa de pérdidas por retardo 556 es mayor que la tasa de pérdidas por retardo anterior 552, aumentar el retardo del búfer 512 en la cantidad de incremento 518, como se describe con referencia a la FIG. 5. En una implementación particular, el analizador 122 puede, en respuesta a determinar que la tasa de pérdidas por retardo 556 es mayor que la tasa de pérdidas por retardo objetivo 528, aumentar el retardo del búfer 512 en la cantidad de incremento 518.
[0146] El procedimiento 800 también incluye establecer el retardo del búfer en un máximo de un límite inferior de retardo y el retardo del búfer, en 818. Por ejemplo, el analizador 122 puede establecer el retardo del búfer 512 en un máximo del límite inferior de retardo 538 y el retardo del búfer 512, como se describe con referencia a la FIG. 5.
[0147] El procedimiento 800 incluye, además, establecer el retardo del búfer en un mínimo de un límite superior de retardo y el retardo del búfer, en 820. Por ejemplo, el analizador 122 puede establecer el retardo del búfer 512 en un mínimo del límite superior de retardo 536 y el retardo del búfer 512, como se describe con referencia a la FIG. 5.
[0148] Por tanto, el procedimiento 800 puede permitir el ajuste dinámico de un parámetro de recuperación de errores (por ejemplo, un retardo del búfer) en base a una tasa de pérdidas por retardo y una tasa de pérdidas por retardo objetivo. La tasa de pérdidas por retardo puede corresponder a un número de paquetes perdidos por retardo en relación con un número de paquetes recibidos. Los paquetes perdidos por retardo pueden incluir paquetes que se reciben después del procesamiento de copias parciales de los paquetes en los tiempos de reproducción correspondientes. El ajuste dinámico del retardo del búfer basado en la tasa de pérdidas por retardo y la tasa de pérdidas por retardo objetivo puede proporcionar un equilibrio entre tener un retardo de búfer largo de modo que es probable que los paquetes retardados se reciban antes de los tiempos de reproducción correspondientes y un retardo de búfer corto que reduce un retardo de un extremo a extremo asociado con una secuencia de paquetes.
[0149] El procedimiento 800 de la FIG. 8 puede implementarse mediante un dispositivo de matriz de puertas programables in situ (FPGA), un circuito integrado específico de la aplicación (ASIC), una unidad de procesamiento tal como una unidad central de procesamiento (CPU), un procesador de señales digitales (DSP), un controlador, otro dispositivo de hardware, dispositivo de firmware o cualquier combinación de los mismos. Como ejemplo, un procesador que ejecute instrucciones puede realizar el procedimiento 800 de la FIG. 8, como se describe con respecto a la FIG.
9.
[0150] Con referencia a la FIG. 9, se representa un diagrama de bloques de un aspecto ilustrativo particular de un dispositivo (por ejemplo, un dispositivo de comunicación inalámbrica) y, en general, se designa por 900. En diversos aspectos, el dispositivo 900 puede tener más o menos componentes de los ilustrados en la FIG. 9. En un aspecto ilustrativo, el dispositivo 900 puede corresponder al dispositivo de destino 102 o al dispositivo de origen 104 de la FIG.
1, o ambos. En un aspecto ilustrativo, el dispositivo 900 puede realizar una o más operaciones descritas con referencia a las FIGS. 1-8.
[0151] En un aspecto particular, el dispositivo 900 incluye un procesador 906 (por ejemplo, una unidad de procesamiento central (CPU)). El dispositivo 900 puede incluir uno o más procesadores 910 adicionales (por ejemplo, uno o más procesadores de señales digitales (DSP)). El procesador 910 puede incluir un codificador-descodificador (CÓDEC) de voz y música 908 y un anulador de eco 912. El códec de voz y música 908 puede incluir un codificador de vocoder 936, un descodificador de vocoder 938 o ambos.
[0152] El dispositivo 900 puede incluir una memoria 176 y un CÓDEC 934. La memoria 176 puede incluir los datos de análisis 120. El dispositivo 900 puede incluir un controlador inalámbrico 940 acoplado, a través de un transceptor 950, a una antena 942. En un aspecto particular, el transceptor 950 puede incluir el receptor 124, el transmisor 192, o ambos, de la FIG. 1.
[0153] El dispositivo 900 puede incluir un visualizador 928 acoplado a un controlador de visualización 926. El altavoz 142 de la FIG. 1, el micrófono 946, o ambos, pueden estar acoplados al CÓDEC 934. El CÓDEC 934 puede incluir un convertidor de digital a analógico 902 y un convertidor de analógico a digital 904. En un aspecto ilustrativo, el micrófono 946 puede corresponder al micrófono 146 de la FIG. 1. En un aspecto particular, el CÓd Ec 934 puede recibir señales analógicas desde el micrófono 946, convertir las señales analógicas a señales digitales usando el convertidor de analógico a digital 904 y proporcionar las señales digitales al códec de voz y música 908. El códec de voz y música 908 puede procesar las señales digitales. En un aspecto particular, el códec de voz y música 908 puede proporcionar señales digitales al CÓDEC 934. El CÓDEC 934 puede convertir las señales digitales en señales analógicas usando el convertidor de digital a analógico 902 y puede proporcionar las señales analógicas al altavoz 142.
[0154] El dispositivo 900 puede incluir el analizador 122, el búfer 126, el descodificador de voz 156 o una combinación de los mismos. En un aspecto particular, el analizador 122, el descodificador de voz 156, o ambos, pueden incluirse en el procesador 906, los procesadores 910, el CÓDEC 934, el códec de voz y música 908, o una combinación de los mismos. En un aspecto particular, el analizador 122, el descodificador de voz 156, o ambos, pueden incluirse en el codificador de vocoder 936, el descodificador de vocoder 938 o ambos. En una implementación particular, el descodificador de voz 156 puede ser funcionalmente idéntico al descodificador 938 de vocoder. El descodificador de voz 156 puede corresponder a un circuito de hardware dedicado fuera de los procesadores 910 (por ejemplo, los DSP).
[0155] El analizador 122, el búfer 126, el descodificador de voz 156, o una combinación de los mismos, pueden usarse para implementar un aspecto de hardware de la técnica de recuperación de errores basada en redundancia descrita en el presente documento. De forma alternativa o, además, se puede implementar un aspecto de software (o un aspecto combinado de software/hardware). Por ejemplo, la memoria 176 puede incluir instrucciones 956 ejecutables por los procesadores 910 u otra unidad de procesamiento del dispositivo 900 (por ejemplo, el procesador 906, el CÓDEC 934, o ambos). Las instrucciones 956 pueden corresponder al analizador 122, al descodificador de voz 156 o a ambos.
[0156] En un aspecto particular, el dispositivo 900 puede estar incluido en un dispositivo de sistema en paquete o de sistema en chip 922. En un aspecto particular, el analizador 122, el búfer 126, el descodificador de hable 156, la memoria 176, el procesador 906, los procesadores 910, el controlador de visualización 926, el CÓDEC 934 y el controlador inalámbrico 940 están incluidos en un dispositivo de sistema en paquete o de sistema en chip 922. En un aspecto particular, un dispositivo de entrada 930 y una fuente de alimentación 944 están acoplados al dispositivo de sistema en chip 922. Además, en un aspecto particular, como se ilustra en la FIG. 9, la pantalla 928, el dispositivo de entrada 930, el altavoz 142, el micrófono 946, la antena 942 y la fuente de alimentación 944 son externos con respecto al dispositivo de sistema en chip 922. En un aspecto particular, cada uno de la pantalla 928, el dispositivo de entrada 930, los altavoces 142, el micrófono 946, la antena 942 y la fuente de alimentación 944 pueden acoplarse a un componente del dispositivo de sistema en chip 922, tal como una interfaz o un controlador.
[0157] El dispositivo 900 puede incluir un dispositivo de comunicación móvil, un teléfono inteligente, un teléfono celular, un ordenador portátil, un ordenador, una tableta, un asistente digital personal, un dispositivo de visualización, un televisor, una consola de juegos, un reproductor de música, una radio, un reproductor de vídeo digital, un reproductor de disco de vídeo digital (DVD), un sintonizador, una cámara, un dispositivo de navegación, o cualquier combinación de los mismos.
[0158] En un aspecto ilustrativo, los procesadores 910 pueden ser operables para realizar todos o una parte de los procedimientos u operaciones descritos con referencia a las FIGS. 1-8. Por ejemplo, el micrófono 946 puede capturar una señal de audio correspondiente a una señal de voz del usuario. El ADC 904 puede convertir la señal de audio capturada de una forma de onda analógica en una forma de onda digital que comprende muestras de audio digitales. Los procesadores 910 pueden procesar las muestras de audio digital. Un ajustador de ganancia puede ajustar las muestras de audio digital. El anulador de eco 912 puede reducir un eco que se puede haber creado mediante una salida del altavoz 142 que entra al micrófono 946.
[0159] El codificador de vocoder 936 puede comprimir muestras de audio digital correspondientes a la señal de voz procesada y puede formar una secuencia de paquetes (por ejemplo, una representación de los bits comprimidos de las muestras de audio digital). La secuencia de paquetes puede almacenarse en la memoria 176. Uno o más paquetes de la secuencia pueden incluir datos de corrección de errores correspondientes a copias parciales de otros paquetes de la secuencia. El transceptor 950 puede modular alguna forma de cada paquete (por ejemplo, se puede añadir otra información al paquete) de la secuencia y puede transmitir los datos modulados a través de la antena 942.
[0160] Como ejemplo adicional, la antena 942 puede recibir paquetes entrantes correspondientes a una secuencia de paquetes enviada por otro dispositivo a través de una red. Los paquetes recibidos pueden corresponder a una señal de voz del usuario. El analizador 122 puede almacenar los paquetes entrantes en el búfer 126 (por ejemplo, un búfer de eliminación de fluctuaciones). El analizador 122 puede determinar si el siguiente paquete a procesar está almacenado en el búfer 126.
[0161] En respuesta a la determinación de que el siguiente paquete está almacenado en el búfer 126, el analizador 122 puede proporcionar el siguiente paquete al descodificador de vocoder 938. Por ejemplo, el descodificador de vocoder 938 puede descomprimir el siguiente paquete. En respuesta a la determinación de que el siguiente paquete no está almacenado en el búfer 126, el analizador 122 puede determinar si una copia parcial del siguiente paquete está almacenada en el búfer 126 como datos de corrección de errores en otro paquete. En respuesta a la determinación de que la copia parcial está almacenada en el búfer 126 en el otro paquete, el analizador 122 puede proporcionar la copia parcial o el otro paquete al descodificador de vocoder 938 y puede actualizar el recuento de copias parciales recuperadas 106 de la FIG. 1. El descodificador de vocoder 938 puede descomprimir la copia parcial.
[0162] La forma de onda sin comprimir puede denominarse muestras de audio reconstruidas. El anulador de eco 912 puede eliminar el eco de las muestras de audio reconstruidas. El descodificador de voz 156 puede generar una señal de voz procesada basada en las muestras de audio reconstruidas. Un ajustador de ganancia puede amplificar o suprimir la señal de voz procesada. El DAC 902 puede convertir la señal de voz procesada de una forma de onda digital a una forma de onda analógica y puede proporcionar la señal convertida al altavoz 142.
[0163] En respuesta a la determinación de que ni el siguiente paquete ni la copia parcial del siguiente paquete están almacenadas en el búfer 126, el analizador 122 puede actualizar el recuento de paquetes perdidos 114 de la FIG. 1. El analizador 122 puede ajustar un parámetro de recuperación de errores basándose en el recuento de copias parciales recuperadas 106, el recuento de paquetes perdidos 114 o ambos.
[0164] Conjuntamente con los aspectos descritos, un aparato puede incluir medios para recibir una pluralidad de paquetes. La pluralidad de paquetes puede corresponder a al menos un subconjunto de una secuencia de paquetes. La pluralidad de paquetes puede incluir datos de corrección de errores. Los datos de corrección de errores de un primer paquete de la pluralidad de paquetes pueden incluir una copia parcial de un segundo paquete de la pluralidad de paquetes. Por ejemplo, los medios para recibir la pluralidad de paquetes pueden incluir el receptor 124 de la FIG.
1, el transceptor 950 o ambos.
[0165] El aparato también puede incluir medios para la recuperación de errores. Los medios para la recuperación de errores pueden configurarse para determinar si un paquete particular de la secuencia de paquetes falta en un búfer, para determinar si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en otro paquete, y para enviar un mensaje de retransmisión a un segundo dispositivo basado, al menos en parte, en la determinación de que el búfer no almacena el paquete particular y que el búfer no almacena la copia parcial del paquete particular. Por ejemplo, los medios para la recuperación de errores pueden incluir el analizador 122, el procesador 906, los procesadores 910, el CÓDEC 934 o una combinación de los mismos.
[0166] Los expertos apreciarán, además, que los diversos bloques lógicos, configuraciones, módulos, circuitos y etapas de algoritmo ilustrativos descritos en relación con los aspectos divulgados en el presente documento se pueden implementar como hardware electrónico, software informático ejecutado por un procesador o combinaciones de ambos. Se han descrito anteriormente diversos componentes, bloques, configuraciones, módulos, circuitos y etapas ilustrativos, en general en términos de su funcionalidad. Que dicha funcionalidad se implemente como hardware o instrucciones ejecutables por procesador depende de la solicitud particular y de las restricciones de diseño impuestas al sistema global. Los expertos en la técnica pueden implementar la funcionalidad descrita de diferentes maneras para cada aplicación particular, pero no debe interpretarse que dichas decisiones de implementación suponen una desviación del alcance de la presente divulgación.
[0167] Las etapas de un procedimiento o algoritmo descrito en conexión con los aspectos divulgados en el presente documento se pueden materializar directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en una memoria de acceso aleatorio (RAM), una memoria flash, una memoria de solo lectura (ROM), una memoria de solo lectura programable (PROM), una memoria de solo lectura programable y borrable (EPROM), una memoria de solo lectura programable y borrable eléctricamente (EEPROM), registros, un disco duro, un disco extraíble, un disco compacto con memoria de solo lectura (CD-ROM) o en cualquier otra forma de medio de almacenamiento no transitorio conocido en la técnica. Un medio de almacenamiento a modo de ejemplo está acoplado al procesador de modo que el procesador pueda leer información de, y escribir información en, el medio de almacenamiento. De forma alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un circuito integrado específico de la aplicación (ASIC). El ASIC puede residir en un dispositivo informático o en un terminal de usuario. De forma alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un dispositivo informático o en un terminal de usuario.
[0168] La descripción previa de los aspectos divulgados se proporciona para permitir que un experto en la técnica haga o use los aspectos divulgados. Diversas modificaciones de estos aspectos resultarán fácilmente evidentes a los expertos en la técnica, y los principios definidos en el presente documento se pueden aplicar a otros aspectos sin apartarse del alcance de la divulgación. Por lo tanto, la presente divulgación no pretende limitarse a los aspectos mostrados en el presente documento, sino que se le ha de conceder el alcance más amplio coherente con las reivindicaciones adjuntas.

Claims (15)

REIVINDICACIONES
1. Un dispositivo que comprende:
un receptor (124) configurado para recibir una pluralidad de paquetes, correspondiendo la pluralidad de paquetes a al menos un subconjunto de una secuencia de paquetes, en el que la pluralidad de paquetes incluye datos de corrección de errores, y en el que los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes; un búfer (126) configurado para almacenar la pluralidad de paquetes;
un transmisor (192); y
un analizador (122) configurado para:
determinar si un paquete particular de la secuencia de paquetes falta en el búfer;
determinar si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en un segundo paquete de la secuencia de paquetes, correspondiendo el paquete particular y el segundo paquete a una primera trama y a una segunda trama de una señal de audio, respectivamente; y enviar, a través del transmisor, un mensaje de retransmisión a un segundo dispositivo en el que el mensaje de retransmisión se envía al segundo dispositivo en respuesta a la determinación de que el búfer no almacena el paquete en particular, que el búfer no almacena la copia parcial del paquete en particular y que un recuento de retransmisiones satisface un umbral de retransmisiones, y en el que el analizador está configurado, además, para actualizar el recuento de retransmisiones después de enviar el mensaje de retransmisión al segundo dispositivo.
2. El dispositivo según la reivindicación 1, en el que el mensaje de retransmisión solicita la retransmisión del paquete particular.
3. El dispositivo según la reivindicación 1, en el que el receptor y el transmisor están incluidos en un transceptor.
4. Dispositivo según la reivindicación 1, en el que el analizador está configurado, además, para actualizar el umbral de retransmisiones basándose en la determinación de si el paquete particular falta en el búfer y si la copia parcial del paquete particular está almacenada en el búfer.
5. El dispositivo según la reivindicación 1, en el que el analizador está configurado, además, para:
actualizar un recuento de copias parciales recuperadas en respuesta a la determinación de que el paquete particular falta en el búfer y que la copia parcial del paquete particular está almacenada en el búfer; y actualizar el umbral de retransmisiones basándose, al menos en parte, en el recuento de copias parciales recuperadas.
6. Dispositivo según la reivindicación 5, en el que el analizador está configurado, además, para actualizar un recuento de paquetes perdidos en respuesta a la determinación de que el búfer no almacena el paquete particular y no almacena la copia parcial del paquete particular, y en el que el umbral de retransmisiones es actualizado basándose al menos en parte en el recuento de paquetes perdidos.
7. El dispositivo según la reivindicación 6, en el que el analizador está configurado, además, para determinar un valor de resultado basado en el recuento de copias parciales recuperadas y el recuento de paquetes perdidos, y en el que el umbral de retransmisiones se incrementa en una cantidad de incremento en respuesta a determinar que el valor de resultado satisface un umbral de incremento.
8. El dispositivo según la reivindicación 6, en el que el analizador está configurado, además, para determinar un valor de resultado basado en el recuento de copias parciales recuperadas y el recuento de paquetes perdidos, y en el que el umbral de retransmisiones disminuye en una cantidad de disminución en respuesta a determinar que el valor de resultado satisface un umbral de disminución.
9. El dispositivo según la reivindicación 6, en el que el analizador está configurado, además, para:
generar un valor ponderado multiplicando el recuento de copias parciales recuperadas por una métrica de calidad; y
determinar un valor de resultado basado en una suma del recuento de paquetes perdidos y el valor ponderado, en el que el umbral de retransmisiones se actualiza basándose en la determinación de si el valor de resultado satisface un umbral.
10. Un procedimiento de comunicación, que comprende:
recibir una pluralidad de paquetes en un dispositivo, correspondiendo la pluralidad de paquetes a al menos un subconjunto de una secuencia de paquetes,
en el que la pluralidad de paquetes incluye datos de corrección de errores, y
en el que los datos de corrección de errores de un primer paquete de la pluralidad de paquetes incluyen una copia parcial de un segundo paquete de la pluralidad de paquetes;
determinar, en el dispositivo, si un paquete particular de la secuencia de paquetes falta en un búfer; determinar, en el dispositivo, si una copia parcial del paquete particular está almacenada en el búfer como datos de corrección de errores en un segundo paquete de la secuencia de paquetes, correspondiendo el paquete particular y el segundo paquete a una primera trama y a una segunda trama de una señal de audio, respectivamente; y
enviar un mensaje de retransmisión desde el dispositivo a un segundo dispositivo en el que el mensaje de retransmisión se envía al segundo dispositivo en respuesta a la determinación de que el búfer no almacena el paquete particular, que el búfer no almacena la copia parcial del paquete particular, y que un recuento de retransmisiones satisface un umbral de retransmisiones, y en el que el analizador está configurado, además, para actualizar el recuento de retransmisiones después de enviar el mensaje de retransmisión al segundo dispositivo.
11. El procedimiento según la reivindicación 10, que comprende, además:
actualizar, en el dispositivo, el recuento de retransmisiones después de enviar el mensaje de retransmisión al segundo dispositivo; y
actualizar, en el dispositivo, el umbral de retransmisiones basándose en la determinación de si el paquete particular falta en el búfer y si la copia parcial del paquete particular está almacenada en el búfer.
12. El procedimiento según la reivindicación 10, que comprende, además:
actualizar, en el dispositivo, un recuento de copias parciales recuperadas en respuesta a la determinación de que el paquete particular falta en el búfer y que la copia parcial del paquete particular está almacenada en el búfer;
actualizar, en el dispositivo, un recuento de paquetes perdidos en respuesta a la determinación de que el búfer no almacena el paquete particular y no almacena la copia parcial del paquete particular; y
actualizar el umbral de retransmisiones basándose en el recuento de copias parciales recuperadas y el recuento de paquetes perdidos.
13. El procedimiento según la reivindicación 12, que comprende, además:
determinar un valor ponderado multiplicando el recuento de copias parciales recuperadas por una métrica de calidad; y
determinar un valor de resultado basado en una suma del recuento de paquetes perdidos y el valor ponderado, en el que el umbral de retransmisiones se incrementa en una cantidad de incremento en respuesta a la determinación de que el valor de resultado satisface un umbral de incremento.
14. El procedimiento según la reivindicación 13, que comprende, además, determinar la cantidad de incremento basándose en una diferencia entre el valor de resultado y el umbral de incremento.
15. Un dispositivo de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador realice las operaciones del procedimiento de cualquiera de las reivindicaciones 10 a 14.
ES15745128T 2014-07-31 2015-07-27 Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia Active ES2836220T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462031675P 2014-07-31 2014-07-31
US14/809,098 US9762355B2 (en) 2014-07-31 2015-07-24 System and method of redundancy based packet transmission error recovery
PCT/US2015/042314 WO2016018833A1 (en) 2014-07-31 2015-07-27 System and method of redundancy based packet transmission error recovery

Publications (1)

Publication Number Publication Date
ES2836220T3 true ES2836220T3 (es) 2021-06-24

Family

ID=55181151

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15745128T Active ES2836220T3 (es) 2014-07-31 2015-07-27 Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia

Country Status (8)

Country Link
US (2) US9712287B2 (es)
EP (2) EP3175564B1 (es)
JP (2) JP6337197B2 (es)
KR (2) KR101960200B1 (es)
CN (2) CN106664161B (es)
CA (2) CA2953635C (es)
ES (1) ES2836220T3 (es)
WO (2) WO2016018834A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105723643B (zh) * 2013-11-12 2020-12-08 Oppo广东移动通信有限公司 用于处理网络中的盲传输(重传)的设备和方法
US9680507B2 (en) 2014-07-22 2017-06-13 Qualcomm Incorporated Offset selection for error correction data
US9712287B2 (en) 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery
US20170275172A1 (en) * 2014-08-22 2017-09-28 The Board Of Regents Of The Nevada System Of Higher Education On Behalf Of The University Of Ne Sodium anti-perovskite solid electrolyte compositions
US9762468B2 (en) * 2015-03-09 2017-09-12 Landis+Gyr Innovations, Inc. Method for dynamically adjusting packet transmission timing
US10652120B2 (en) * 2015-05-07 2020-05-12 Dolby Laboratories Licensing Corporation Voice quality monitoring system
US9928844B2 (en) * 2015-10-30 2018-03-27 Intel Corporation Method and system of audio quality and latency adjustment for audio processing by using audio feedback
CN107302488B (zh) 2016-04-14 2021-07-09 创新先进技术有限公司 虚拟物品的分配方法、***及服务器
CN107547921A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 视频播放方法、装置及***
US9967306B1 (en) * 2016-09-08 2018-05-08 Sprint Spectrum L.P. Prioritized transmission of redundancy data for packetized voice communication
KR102214440B1 (ko) 2016-10-07 2021-02-09 삼성전자주식회사 통화 기능을 수행하는 단말 장치 및 방법
WO2018133081A1 (zh) * 2017-01-22 2018-07-26 南通朗恒通信技术有限公司 一种无线通信中的方法和装置
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
CN107241166A (zh) * 2017-06-12 2017-10-10 京信通信***(中国)有限公司 一种长期演进上的语音Volte数据保障方法和设备
JP2019068296A (ja) 2017-10-02 2019-04-25 キヤノン株式会社 情報処理装置及びその制御方法、並びにコンピュータプログラム
KR102391799B1 (ko) * 2017-10-19 2022-04-29 삼성전자주식회사 유니캐스트 기반 멀티미디어 서비스 방법 및 장치
CN110782906B (zh) * 2018-07-30 2022-08-05 南京中感微电子有限公司 音频数据恢复方法、装置及蓝牙设备
WO2020097871A1 (zh) * 2018-11-15 2020-05-22 深圳市欢太科技有限公司 数据传输方法及相关产品
US10785306B1 (en) * 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
EP2239876A3 (en) * 1997-06-19 2011-01-26 Kabushiki Kaisha Toshiba Information data multiplexing transmission system, multiplexer and demultiplexer used therefor, and error correcting encoder and decoder
US6788651B1 (en) * 1999-04-21 2004-09-07 Mindspeed Technologies, Inc. Methods and apparatus for data communications on packet networks
KR100424654B1 (ko) * 1999-08-02 2004-03-24 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 재전송 장치 및 방법
JP3880497B2 (ja) * 2002-09-27 2007-02-14 Necインフロンティア株式会社 Lan通信システム
JP4154213B2 (ja) * 2002-11-01 2008-09-24 富士通株式会社 パケット処理装置
JP2005110013A (ja) * 2003-09-30 2005-04-21 Toshiba Corp 受信装置、受信方法および受信プログラム
US20060007943A1 (en) * 2004-07-07 2006-01-12 Fellman Ronald D Method and system for providing site independent real-time multimedia transport over packet-switched networks
EP2189978A1 (en) * 2004-08-30 2010-05-26 QUALCOMM Incorporated Adaptive De-Jitter Buffer for voice over IP
US7965639B2 (en) 2005-03-14 2011-06-21 Sharp Laboratories Of America, Inc. Dynamic adaptation of MAC-layer retransmission value
TW200742332A (en) 2006-03-21 2007-11-01 Interdigital Tech Corp Method and system for implementing hybrid automatic repeat request
US20080101355A1 (en) 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
US20090006910A1 (en) * 2007-06-27 2009-01-01 Belal Hamzeh Selective hybrid arq
US7865813B2 (en) * 2007-07-30 2011-01-04 Marvell International Ltd. Rate matching for a wireless communications systems
WO2009120825A1 (en) 2008-03-26 2009-10-01 Conexant Systems, Inc. Systems and methods for protecting dsl systems against impulse noise
US8352252B2 (en) * 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
US8429479B2 (en) 2009-09-16 2013-04-23 Intel Corporation Method and system to increase the throughput of a hybrid automatic repeat request (HARQ) protocol
US8392810B2 (en) * 2010-01-25 2013-03-05 Qualcomm Incorporated Majority vote error correction
JPWO2011111234A1 (ja) 2010-03-12 2013-06-27 富士通株式会社 受信機、受信方法及び無線通信システム
US8943393B1 (en) * 2011-12-02 2015-01-27 Altera Corporation Distributed burst error protection
US9047863B2 (en) 2012-01-12 2015-06-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control
US20130262952A1 (en) 2012-03-30 2013-10-03 Broadcom Corporation Memory architecture for turbo decoder
GB2505656B (en) * 2012-09-05 2015-06-24 Nvidia Corp Error recovery
US9712287B2 (en) 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery

Also Published As

Publication number Publication date
US20160036564A1 (en) 2016-02-04
US9712287B2 (en) 2017-07-18
CN106537831A (zh) 2017-03-22
KR101960200B1 (ko) 2019-03-19
CN106664161B (zh) 2018-09-28
US20160036560A1 (en) 2016-02-04
EP3175567B1 (en) 2022-05-18
BR112017001088A2 (pt) 2017-11-21
US9762355B2 (en) 2017-09-12
WO2016018834A1 (en) 2016-02-04
JP2017528958A (ja) 2017-09-28
CN106664161A (zh) 2017-05-10
CA2953635C (en) 2018-10-30
KR20170039161A (ko) 2017-04-10
BR112017000791A2 (pt) 2017-11-14
EP3175564A1 (en) 2017-06-07
WO2016018833A1 (en) 2016-02-04
KR101937600B1 (ko) 2019-01-10
JP6416376B2 (ja) 2018-10-31
CA2953604C (en) 2018-11-13
EP3175567A1 (en) 2017-06-07
JP6337197B2 (ja) 2018-06-06
JP2017528957A (ja) 2017-09-28
CA2953635A1 (en) 2016-02-04
KR20170040218A (ko) 2017-04-12
EP3175564B1 (en) 2020-09-09
CN106537831B (zh) 2019-11-01
CA2953604A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
ES2836220T3 (es) Sistema y procedimiento de recuperación de errores de transmisión de paquetes basada en redundancia
ES2653949T3 (es) Sistemas, procedimientos, aparatos y medios legibles por ordenador para el control del umbral de criticidad
KR101290425B1 (ko) 소거된 스피치 프레임을 복원하는 시스템 및 방법
KR100956522B1 (ko) 음성 통신에서의 프레임 소거 은닉
JP6442079B2 (ja) デジッタバッファの更新
RU2673847C2 (ru) Системы и способы передачи избыточной информации кадра
US20170187635A1 (en) System and method of jitter buffer management
CA2952736C (en) Offset selection for error correction data
US9437203B2 (en) Error concealment for speech decoder
BR112017000791B1 (pt) Sistema e método de recuperação de erro de transmissão de pacote com base em redundância
BR112017001088B1 (pt) Dispositivo e método de recuperação de erro de transmissão de pacote com base em redundância
KR20050027272A (ko) 스피치 프레임들의 에러 경감을 위한 스피치 통신 유닛 및방법
Bhute et al. Error concealment schemes for speech packet transmission over IP network