ES2673701T3 - Reducción del retardo en videotelefonía - Google Patents
Reducción del retardo en videotelefonía Download PDFInfo
- Publication number
- ES2673701T3 ES2673701T3 ES15753528.7T ES15753528T ES2673701T3 ES 2673701 T3 ES2673701 T3 ES 2673701T3 ES 15753528 T ES15753528 T ES 15753528T ES 2673701 T3 ES2673701 T3 ES 2673701T3
- Authority
- ES
- Spain
- Prior art keywords
- speed
- data
- network link
- recovery
- link speed
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
- H04N21/23655—Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4347—Demultiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/148—Interfacing a video terminal to a particular transmission medium, e.g. ISDN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/152—Multipoint control units therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Telephonic Communication Services (AREA)
Abstract
Un procedimiento de procesamiento de datos que comprende datos de vídeo codificados, comprendiendo el procedimiento: transmitir (180) datos a través de una red a una primera velocidad de transferencia de bits, R0; identificar (182) una reducción de una velocidad de enlace de red de la red desde una primera velocidad de enlace de red a una segunda velocidad de enlace de red, R1; implementar (190) una reducción de la velocidad de transferencia de bits de transmisión; caracterizada por en respuesta a la identificación de la reducción de la velocidad de enlace de red, determinar (184) una velocidad de transferencia de bits de recuperación, Ru, en la que transmitir los datos a través de la red determinando Ru >= (1-fu) x R1, donde el factor de no sobrepaso, fu >=(R0-R1)/R0, en el que la velocidad de transferencia de bits de recuperación es menor que la segunda velocidad de enlace de red; determinar (186) una duración de almacenamiento en memoria intermedia basándose en una diferencia entre un momento de la identificación de la reducción de la velocidad de enlace de red y un tiempo real estimado de la reducción de la velocidad de enlace de red; determinar (188) una duración de velocidad de recuperación durante la cual transmitir los datos a la velocidad de transferencia de bits de recuperación basándose en la duración del almacenamiento en memoria intermedia, una magnitud de la reducción de la velocidad de enlace de red, R0-R1, y el factor de no sobrepaso, fu; y en el que implementar (190) una reducción de la velocidad de transferencia de bits de transmisión comprende además implementar una reducción de la velocidad de transferencia de bits de transmisión a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinad realizando control de velocidad para reducir la velocidad de transferencia de bits de los datos a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinada.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
Reducción del retardo en videotelefonía CAMPO TÉCNICO
[0001] Esta divulgación se refiere al procesamiento de datos de vídeo.
ANTECEDENTES
[0002] La videotelefonía (VT) implica la comunicación en tiempo real de paquetes que transportan datos de audio y vídeo. Un dispositivo de VT incluye un codificador de vídeo que obtiene vídeo de un dispositivo de captura de vídeo, como una cámara de vídeo o archivo de vídeo, y genera paquetes de vídeo. De forma similar, un codificador de audio en un dispositivo de VT obtiene audio de un dispositivo de captura de audio, como un micrófono o un sintetizador de voz, y genera paquetes de audio. Los paquetes de vídeo y los paquetes de audio se colocan en una cola de protocolo de enlace de radio (RLP). Una unidad de capa de control de acceso medio (MAC) genera paquetes de capa de control de acceso al medio (MAC) a partir del contenido de la cola RLP. Los paquetes de capa MAC se convierten en paquetes de capa física (PHY) para su transmisión a través de un canal de comunicación a otro dispositivo de VT.
[0003] En aplicaciones de VT móviles, un dispositivo VT recibe los paquetes de capa física a través de un enlace directo inalámbrico (FL) (o "enlace descendente") desde una estación base al dispositivo de VT como un terminal inalámbrico. Un dispositivo VT transmite los paquetes de la capa PHY a través de un enlace inverso inalámbrico (RL) (o "enlace ascendente") a una estación base. Cada dispositivo de VT incluye capas PHY y MAC para convertir los paquetes de capa PHY y MAC recibidos y reensamblar las cargas útiles de paquetes en paquetes de audio y paquetes de vídeo. Un descodificador de vídeo dentro del dispositivo de VT descodifica los datos de vídeo para su presentación a un usuario a través de un dispositivo de visualización. Un descodificador de audio dentro del dispositivo de VT descodifica los datos de audio para la salida a través de un altavoz de audio.
[0004] El documento “Requirements for end-to end video rate adaptation” ["Requisitos para la adaptación de la velocidad de vídeo de extremo a extremo"] por Ericsson, borrador 3GPP, S4-140686 CR 26.114-0283 Rev. 1 (rel-12) analiza una solicitud de cambio en relación con la incorporación de requisitos mínimos y recomendaciones sobre la adaptación de velocidad de vídeo tanto para el UE receptor como para el UE emisor.
SUMARIO
[0005] La invención se define en las reivindicaciones a las que se dirige ahora la referencia.
[0006] Las técnicas de esta divulgación se refieren a la determinación de una velocidad de transferencia de bits para la codificación de datos basándose en las condiciones de la red. Por ejemplo, los aspectos de esta divulgación se refieren a la reducción de una velocidad de transferencia de bits de envío (también denominada simplemente velocidad) de una primera velocidad a una segunda velocidad en respuesta a una reducción de una velocidad de enlace de red. De acuerdo con aspectos de esta divulgación, al identificar la reducción de la velocidad de enlace de red, un dispositivo emisor puede reducir la velocidad de envío a una velocidad reducida que está por debajo de la segunda velocidad de enlace de red, por ejemplo, no sobrepasar la segunda velocidad de enlace de red. El dispositivo emisor puede mantener la velocidad de envío a la velocidad reducida durante un período de tiempo basado en la velocidad reducida y basándose en la duración entre la identificación de la reducción de la velocidad de enlace de red y la reacción a la reducción de la velocidad de enlace de red durante la cual los datos están almacenados en memoria intermedia en el dispositivo emisor o en otro dispositivo asociado a la red. De esta forma, el dispositivo emisor puede reducir la cantidad de datos almacenados en memoria intermedia durante una reducción de la velocidad de enlace de red de forma relativamente rápida sin afectar demasiado a la experiencia del usuario.
[0007] La información de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y la descripción siguiente. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[0008]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de audio / vídeo para aplicaciones de videotelefonía (VT).
La FIG. 2 es un diagrama de bloques que ilustra un sistema de codificación de vídeo que puede implementar adaptación de velocidad de fuente de vídeo coherente con las técnicas de esta divulgación.
5
10
15
20
25
30
35
40
45
50
55
60
65
La FIG. 3 es un diagrama de bloques que ilustra un sistema de descodificación de vídeo que puede implementar adaptación de velocidad de fuente de vídeo coherente con las técnicas de esta divulgación.
Las FIGs. 4A y 4B son gráficos que ilustran técnicas de adaptación de velocidad de fuente de vídeo coherentes con las técnicas de esta divulgación.
La FIG. 5 es un diagrama conceptual que ilustra la determinación de una duración de almacenamiento en memoria intermedia coherente con las técnicas de esta divulgación.
Las FIGs. 6A y 6B son gráficos que ilustran una reducción de la velocidad de enlace de red y un tiempo de retardo correspondiente, respectivamente.
Las FIGs. 7A y 7B son gráficos que ilustran una reducción de la velocidad de enlace de red y un tiempo de retardo correspondiente, respectivamente.
La FIG. 8 es un diagrama de flujo que ilustra un proceso de ejemplo para la conmutación descendente de una velocidad a la que se transmiten los datos de forma coherente con las técnicas de esta divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un proceso de ejemplo para la conmutación ascendente de una velocidad a la que se transmiten los datos de forma coherente con las técnicas de esta divulgación.
DESCRIPCIÓN DETALLADA
[0009] Los dispositivos de videotelefonía (VT) se pueden conectar a través de una red cableada o inalámbrica para realizar una sesión de VT (por ejemplo, transmisión de datos de audio y/o vídeo entre los dispositivos de VT). Un dispositivo de VT que está procesando datos de audio y/o vídeo para su transmisión a otro dispositivo de VT puede denominarse un dispositivo emisor. Asimismo, un dispositivo de VT que está procesando datos de audio y/o vídeo recibidos (por ejemplo, para su presentación a un usuario del dispositivo de VT) se puede denominar dispositivo receptor.
[0010] El dispositivo emisor puede codificar los datos de audio y/o de vídeo a una velocidad particular (que se puede denominar de forma intercambiable en el presente documento una velocidad de transferencia de bits). El dispositivo emisor puede seleccionar la velocidad basándose en las condiciones de la red. Por ejemplo, el dispositivo emisor puede seleccionar la velocidad basándose en una velocidad de enlace de red máxima (o casi máxima) soportada por la red que se utiliza para la sesión de VT. De esta manera, el dispositivo emisor puede preparar los datos que se enviarán usando la calidad relativamente más alta soportada por la red sin exceder las limitaciones de la red.
[0011] En algunos casos, los dispositivos de VT de conexión de velocidad de enlace de red pueden variar, particularmente cuando se utiliza VT a través de una red inalámbrica, como Wi-Fi o redes celulares. En algunos casos, el equipo de red puede usar memorias intermedias para controlar las fluctuaciones de velocidad de enlace y/o para realizar la gestión de colas. Por ejemplo, un dispositivo emisor puede incluir una memoria intermedia para almacenar en memoria intermedia datos de audio y/o vídeo codificados antes de transmitir los datos al dispositivo receptor. Una reducción repentina en la velocidad de enlace de red puede causar un cuello de botella que puede afectar negativamente a la sesión de VT. Por ejemplo, cuando se reduce la velocidad de enlace de red, el dispositivo emisor acumula datos de vídeo codificados en la memoria intermedia, lo cual puede ocasionar interrupciones y/o sacudidas en la sesión de VT en el dispositivo receptor.
[0012] Un dispositivo emisor puede alterar una velocidad a la que se envían los datos de vídeo (que se puede denominar en el presente documento una velocidad de envío, utilizándose la velocidad en toda la divulgación para referirse a una velocidad de transferencia de bits) en respuesta a una reducción de la velocidad de enlace de red. En algunos ejemplos, el dispositivo emisor puede alterar la velocidad de envío cambiando la velocidad a la que se codifican los datos de audio y/o vídeo. Sin embargo, puede haber un retardo de reacción en la reducción de la velocidad debida a retardos en la realimentación del control de congestión del dispositivo receptor, retardos en una ruta de retorno desde un dispositivo receptor al dispositivo emisor, retardos en la reacción de adaptación de velocidad o similares. Por consiguiente, la velocidad de envío puede permanecer significativamente por encima de la velocidad de enlace de red durante un período de tiempo después de una reducción de la velocidad de enlace de red. Un desajuste entre la velocidad de envío y la velocidad de enlace de red puede aumentar los niveles de memoria intermedia en el enlace de cuello de botella y, por lo tanto, aumentar el retardo de extremo a extremo (o incluso paquetes perdidos), lo cual puede afectar negativamente la experiencia de calidad de una sesión de VT.
[0013] Además, incluso después de que el dispositivo emisor reduce la velocidad de envío en respuesta a una reducción de la velocidad de enlace de red, puede mantenerse un retardo acumulado durante algún tiempo. Por ejemplo, en general, el retardo puede referirse al tiempo entre la disponibilidad de los datos disponibles para la transmisión a través de un enlace de red y el momento en que los datos se transmiten realmente a la red. En consecuencia, el retardo puede estar asociado con el almacenamiento de datos en memoria intermedia. Por
5
10
15
20
25
30
35
40
45
50
55
60
65
ejemplo, un aumento en el retardo da como resultado un aumento de los niveles de memoria intermedia, ya que los datos deben almacenarse después de la codificación y antes de la transmisión a la red.
[0014] Dependiendo de la diferencia entre la velocidad de envío y la velocidad de enlace de red cuello de botella, el dispositivo emisor puede reducir la cantidad de datos almacenados temporalmente de forma relativamente lenta. Es decir, si la diferencia entre la velocidad de envío reducida y la velocidad de enlace de red es relativamente pequeña, el dispositivo emisor puede reducir el retardo acumulado de forma relativamente lenta y el efecto en la sesión de VT puede persistir.
[0015] Un enfoque para reducir la cantidad de datos almacenados en memoria intermedia es reducir la velocidad de envío por debajo de una velocidad estimada del enlace de red. Un enfoque relativamente conservador, por ejemplo, utilizando una velocidad de envío que está significativamente por debajo de la velocidad de enlace de red estimada, puede dar como resultado una infrautilización del enlace y una reducción general de la experiencia de calidad de vídeo en el dispositivo receptor. Sin embargo, un enfoque tan conservador también puede reducir las memorias intermedias de enlace de cuello de botella de forma relativamente rápida. Por el contrario, un enfoque relativamente agresivo, por ejemplo, solo reducir la velocidad de envío a la velocidad de enlace de red, puede dar como resultado el uso completo del enlace y datos codificados de mayor calidad. Sin embargo, como se indicó anteriormente, un enfoque de este tipo puede hacer que los datos permanezcan en una memoria intermedia durante un período de tiempo relativamente largo.
[0016] Los aspectos de esta divulgación se refieren a la determinación de una velocidad de envío (por ejemplo, una velocidad de transferencia de bits para codificar datos de audio y/o vídeo en un dispositivo emisor) basándose en las condiciones de la red. En particular, las técnicas incluyen reducir una velocidad de envío en respuesta a una reducción de una velocidad de enlace de red. De acuerdo con aspectos de esta divulgación, al identificar una velocidad de enlace de red reducida, un dispositivo emisor puede reducir la velocidad de envío a una velocidad que está por debajo de la velocidad de enlace de red. En algunos ejemplos, un dispositivo receptor puede solicitar una velocidad de envío reducida que a continuación es implementada por el dispositivo emisor. Reducir la velocidad de envío a una velocidad que está por debajo de la velocidad de enlace de red se puede denominar no sobrepasar la velocidad de enlace de red.
[0017] Las técnicas también incluyen la determinación de una cantidad de tiempo para mantener la velocidad de envío a la velocidad reducida. En algunos ejemplos, aspectos de esta divulgación incluyen determinar una duración de velocidad de recuperación (también denominada período de no sobrepaso) basándose en una duración de memoria intermedia, una magnitud de la reducción de la velocidad de enlace de red, un factor de reducción de velocidad y/u otros factores, como se describe en mayor detalle a continuación. De esta manera, las técnicas se pueden usar para determinar un período óptimo de no sobrepaso. Por ejemplo, un dispositivo emisor puede mantener la velocidad de envío reducida durante el tiempo necesario para reducir una cantidad de datos almacenados en la memoria intermedia antes de volver a una velocidad de envío aumentada que sea soportada por la red. Las técnicas pueden lograr un equilibrio entre el enfoque conservador y el enfoque agresivo descrito anteriormente, de modo que la cantidad de datos que se almacena en la memoria intermedia se puede reducir de manera relativamente rápida sin afectar demasiado a la experiencia del usuario.
[0018] Los aspectos de esta divulgación también incluyen datos de retardo de señalización asociados con el procesamiento de datos de audio y/o vídeo codificados. Las técnicas de esta divulgación incluyen generar datos para uso en la determinación de una duración de almacenamiento en memoria intermedia en un dispositivo emisor. La duración del almacenamiento en memoria intermedia puede asociarse con un retardo entre la reducción de la velocidad de enlace de red real y el momento en que se detecta la reducción de la velocidad de enlace de red (por ejemplo, suponiendo que el dispositivo emisor y/o receptor no reconoce ni reacciona a una reducción de la velocidad de enlace de red de inmediato). Durante este tiempo de retardo, un dispositivo emisor típicamente almacena en memoria intermedia los datos que se preparan / codifican a la velocidad de envío original, pero que no se pueden enviar en tiempo real (o casi en tiempo real) a la velocidad de enlace de red reducida. El almacenamiento en memoria intermedia de los datos crea un retardo en el dispositivo receptor durante el cual no se reciben los datos. Como se indicó anteriormente, el tiempo de almacenamiento en memoria intermedia se puede usar para determinar una cantidad de datos que se almacenan en el dispositivo emisor y/o la duración de velocidad de recuperación.
[0019] Otros aspectos de esta divulgación pueden estar relacionados con el aumento de una velocidad de envío en los casos en los que no está siendo utilizada totalmente una velocidad de enlace de red. Por ejemplo, un dispositivo emisor puede aumentar la velocidad de envío de datos para aumentar la calidad de los casos de experiencia de usuario en las que la velocidad de envío es menor que la velocidad de enlace soportada por una red que conecta el dispositivo emisor con un dispositivo receptor. El aumento de la velocidad de transferencia de bits a la que se codifican los datos puede denominarse en el presente documento conmutación ascendente. Sin embargo, la conmutación ascendente de la velocidad de envío en un incremento que es demasiado grande puede dar como resultado que se sobrepase la velocidad de enlace de red, lo cual puede degradar la experiencia del usuario de la manera descrita. Por el contrario, la conmutación ascendente de la velocidad de envío con un incremento demasiado pequeño puede dar como resultado un no sobrepaso continuo de la velocidad de enlace de red, lo cual
5
10
15
20
25
30
35
40
45
50
55
60
65
puede dar como resultado una experiencia de usuario de menor calidad que la soportable por la velocidad de enlace de red.
[0020] De acuerdo con aspectos de esta divulgación, un dispositivo receptor puede determinar que una velocidad de enlace de red está infrautilizada basándose en datos que se recibieron antes de la hora a la que está previsto que los datos se emitan. El dispositivo receptor puede determinar un parámetro de retardo en exceso admisible basándose en la diferencia entre el momento en que se reciben los datos y el momento en que se planifica la emisión de los datos, y el dispositivo receptor puede determinar un aumento de la velocidad de envío de acuerdo con el parámetro de retardo en exceso admisible. El dispositivo receptor puede, en algunos casos, transmitir una indicación del aumento de la velocidad de envío a un dispositivo emisor, de modo que el dispositivo emisor pueda utilizar mejor la velocidad de enlace de red sin sobrepasar la velocidad de enlace de red.
[0021] En consiguiente, los aspectos de esta divulgación incluyen técnicas de control de la congestión o la adaptación de velocidad para controlar un flujo de vídeo que se origina desde un dispositivo emisor y se transmite a través de un canal de red (también denominado enlace de red) con un ancho de banda variable en el tiempo a un dispositivo receptor. En particular, las técnicas incluyen la conmutación ascendente de la velocidad de transferencia de bits media de un flujo de vídeo de una manera controlada para mejorar la experiencia del usuario sin introducir congestión en la red. Dichas técnicas de adaptación de velocidad pueden evitar el aumento significativo del retardo de extremo a extremo que podría dar como resultado pérdidas de paquetes.
[0022] Por ejemplo, de acuerdo con aspectos de esta divulgación, un dispositivo receptor puede examinar paquetes de vídeo recibidos y determinar si los datos llegan temprano, a tiempo, o demasiado tarde para la emisión programada de los datos. Si los datos llegan más tarde que la emisión programada, el dispositivo receptor puede determinar que la velocidad de enlace de red es menor que la velocidad de envío (por ejemplo, la velocidad de codificación implementada en el dispositivo emisor). En consecuencia, el dispositivo receptor puede enviar una solicitud al dispositivo emisor para reducir la velocidad de envío. En algunos ejemplos, el dispositivo receptor puede solicitar una velocidad inicial que sea menor que una velocidad sostenible (por ejemplo, un ancho de banda disponible) de una velocidad de enlace de red para permitir que el sistema descongestione el canal de red.
[0023] En algunos casos, las técnicas descritas en el presente documento pueden ser realizadas por un dispositivo de Servicio Multimedia de Telefonía para un Subsistema Multimedia de IP (IMS) (MTSI). Por ejemplo, el dispositivo MTSI puede llevar a cabo la adaptación de la velocidad de transferencia de bits y/o el control de la congestión usando las técnicas descritas en el presente documento.
[0024] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación 10. Como se muestra en la FIG. 1, el sistema 10 incluye un sistema de codificador 12 y un sistema de descodificador 14 conectados por un canal de transmisión 16. En el ejemplo de la FIG. 1, el sistema de codificador 12 está asociado con un primer dispositivo de comunicación de vídeo e incluye una fuente de audio 17, fuente de vídeo 18, codificador de vídeo 20, codificador de audio 22, protocolo de transporte en tiempo real (RTP) / protocolo de transporte en tiempo real (RTCP) / protocolo de datagrama de usuario (UDP) / protocolo de Internet (IP) / unidad de conversión de protocolo punto a punto (PPP) 26, cola de protocolo de enlace de radio (RLP) 28, unidad de capa MAC 30 y unidad de capa física (PHY) 32. El sistema de descodificador 14 está asociado con otro dispositivo de comunicación de vídeo e incluye una unidad de capa PHY 34, unidad de capa MAC 36, cola 38 de RLP, unidad de conversión RTP / RTCP / UDP / IP / PPP 40, descodificador de vídeo 42, descodificador de audio 44, dispositivo de salida de audio 46 y dispositivo de salida de vídeo 48.
[0025] Como se describe en más detalle a continuación, el sistema de codificador 12 y/o el sistema de descodificador 14 puede utilizar las técnicas de esta divulgación para modificar una velocidad de codificación basándose en condiciones de la red. Por ejemplo, el codificador de vídeo 20 puede controlar la velocidad de codificación de la fuente de vídeo, al menos en parte, como una función del ancho de banda de la red. En particular, el codificador de vídeo 20 puede reducir una velocidad de codificación de datos de vídeo y/o audio en respuesta a una reducción de la velocidad de enlace de red. Asimismo, el codificador de vídeo 20 puede aumentar una velocidad de codificación de datos de vídeo y/o audio en respuesta a una indicación de subutilización de una velocidad de enlace de red.
[0026] El sistema 10 puede proporcionar transmisión bidireccional de vídeo y audio, por ejemplo, para videotelefonía a través del canal de transmisión 16. En consecuencia, en general pueden proporcionarse unidades de codificación, descodificación y conversión recíprocas en extremos opuestos del canal 16. En algunos modos de realización, el sistema de codificador 12 y el sistema de descodificador 14 pueden estar incorporados dentro de dispositivos de comunicación de vídeo tales como terminales móviles inalámbricos equipados para transmisión de vídeo, videotelefonía o ambos. Los terminales móviles pueden soportar VT de acuerdo con normas de conmutación de paquetes tales como RTP, RTCP, UDP, IP o PPP.
[0027] Por ejemplo, en el sistema de codificador 12, unidad de conversión de RTP / RTCP / UDP / IP / PPP 26 añade los datos de cabecera RTP / RTCP / UDP / IP / PPP apropiados a los datos de audio y de vídeo recibidos desde el codificador de vídeo 20 y el codificador de audio 22 y coloca los datos en la cola 28 de RLP. Un ejemplo de
5
10
15
20
25
30
35
40
45
50
55
60
65
flujo de bits puede incluir una cabecera MAC, una cabecera IP, una cabecera UDP, una cabecera RTCP y los datos de la carga útil. En algunos ejemplos, RTP / RTCP se ejecuta además de UDP, mientras que UDP se ejecuta además de IP, y IP se ejecuta además de PPP. En algunos ejemplos, como se describe en el presente documento, la unidad 26 de conversión RTP / RTCP / UDP / IP / PPP es compatible con una norma particular, tal como "RFC 3550: RTP: A Transport Protocol for Real-Time Applications,” [“RFC 3550: RTP: Un protocolo de transporte para aplicaciones en tiempo real,”] "H. Schulzrinne et al., Julio de 2003, "RFC 5104: Codec Control Messages in the RTP AudiovVisual Provide with Feedback (AVPF),” [“RFC 5104: Mensajes de control de códec en RTP AudioVisual proporcionan realimentación (AVPF),”] S. Wenger et al., Febrero de 2008 (en adelante, RFC 5104), y/u otras normas aplicables para el transporte de datos en tiempo real o casi en tiempo real. La unidad de capa MAC 30 genera paquetes MAC RLP a partir del contenido de la cola 28 de RLP. La unidad de capa PHY 32 convierte los paquetes MAC RLP en paquetes de capa PHY para la transmisión a través del canal 16.
[0028] La unidad de capa PHY 34 y la unidad de capa MAC 36 del sistema de descodificador 14 funcionan de manera recíproca. La unidad de capa PHY 34 convierte los paquetes de capa PHY recibidos del canal 16 en paquetes MAC RLP. La unidad de capa MAC 36 coloca los paquetes MAC RLP en la cola 38 de RLP. La unidad de conversión RTP / RTCP / UDP / IP / PPP 40 elimina la información de la cabecera de los datos en la cola 38 de RLP, y vuelve a ensamblar los datos de vídeo y audio para su entrega al descodificador de vídeo 42 y al descodificador de audio 44, respectivamente.
[0029] El sistema 10 puede diseñarse para soportar una o más tecnologías de comunicación inalámbricas tales como acceso múltiple por división de código (CDMA), acceso múltiple por división de frecuencia (FDMA), acceso múltiple por división de tiempo (TDMA) o multiplexación por división de frecuencia ortogonal (OFDM), u otra técnica inalámbrica adecuada. Las tecnologías de comunicación inalámbrica anteriores pueden ofrecerse de acuerdo con cualquiera de una variedad de tecnologías de acceso por radio. Por ejemplo, CDMA puede entregarse de acuerdo con las normas cdma2000 o CDMA de banda ancha (WCDMA). TDMA puede ofrecerse de acuerdo con la norma del Sistema Global de Comunicaciones Móviles (GSM). La norma del Sistema Universal de Telecomunicaciones Móviles (UMTS) permite el funcionamiento de GSM o WCDMA. Típicamente, para aplicaciones de VT, el sistema 10 puede diseñarse para soportar tecnologías de alta velocidad de datos (HDR).
[0030] El codificador de vídeo 20 genera datos de vídeo codificados de acuerdo con un procedimiento de compresión de vídeo, tal como MPEG-4, codificación de vídeo de alta eficiencia (HEVC) u otra norma de codificación de vídeo. Otros Procedimientos de compresión de vídeo incluyen los Procedimientos de la Unión Internacional de Telecomunicaciones (ITU) H.263, ITU H.264 o MPEG-2. El codificador de audio 22 codifica datos de audio para acompañar los datos de vídeo. La fuente de vídeo 18 puede ser un dispositivo de captura de vídeo, tal como una o más cámaras de vídeo, uno o más archivos de vídeo, o una combinación de cámaras de vídeo y archivos de vídeo.
[0031] Los datos de audio pueden ser codificados de acuerdo con un procedimiento de compresión de audio, tal como banda estrecha de múltiples velocidades adaptativa (AMR-NB), u otras técnicas. La fuente de audio 17 puede ser un dispositivo de captura de audio, tal como un micrófono, o un dispositivo sintetizador de voz. Para las aplicaciones de VT, el vídeo permitirá la visualización de una parte en una conferencia de VT y el audio permitirá que se escuche la voz de esa parte.
[0032] En funcionamiento, la unidad de conversión de RTP / RTCP / UDP / IP / PPP 26 obtiene paquetes de datos de vídeo y audio del codificador de vídeo 20 y el codificador de audio 22. Como se mencionó anteriormente, la unidad 26 de conversión de RTP / RTCP / UDP / IP / PPP agrega información de cabecera apropiada a los paquetes de audio e inserta los datos resultantes en la cola 28 de RLP. Asimismo, la unidad 26 de conversión RTP / RTCP / UDP / IP / PPP agrega información de cabecera apropiada a los paquetes de vídeo e inserta los datos resultantes dentro de la cola 28 de RLP. La unidad de capa mAc 30 recupera datos de la cola 28 de RLP y forma paquetes de capa MAC. Cada paquete de capa MAC transporta información de cabecera RTP / RTCP / UDP / IP / PPP y datos de paquetes de audio o vídeo que están contenidos dentro de la cola 28 de RLP. Los paquetes de audio pueden invertirse en la cola de RLP 28 independientemente de los paquetes de vídeo.
[0033] En algunos casos, un paquete de capa MAC generado a partir de los contenidos de cola RLP 28 llevará solamente información de cabecera y datos de paquetes de vídeo. En otros casos, el paquete de capa MAC llevará solo información de cabecera y datos de paquetes de audio. En muchos casos, el paquete de capa MAC llevará información de cabecera, datos de paquete de audio y datos de paquetes de vídeo, dependiendo del contenido de la cola 28 de RLP. Los paquetes de capa MAC se pueden configurar de acuerdo con un protocolo de enlace de radio (RLP), y se los puede denominar paquetes MAC RLP. La unidad de capa PHY 32 convierte los paquetes de audio - vídeo MAC RLP en paquetes de capa PHY para la transmisión a través del canal 16.
[0034] El canal 16 lleva los paquetes de la capa PHY al sistema de descodificador 14. El canal 16 puede ser cualquier conexión física entre el sistema de codificador 12 y el sistema de descodificador 14. Por ejemplo, el canal 16 puede ser una conexión cableada, como una red cableada local o de área extensa. De forma alternativa, como se describe en el presente documento, el canal 16 puede ser una conexión inalámbrica tal como una conexión celular, por satélite u óptica. Las condiciones del canal pueden ser una preocupación para los canales alámbricos e inalámbricos, pero pueden ser particularmente pertinentes para las aplicaciones de VT móvil realizadas a través de
5
10
15
20
25
30
35
40
45
50
55
60
65
un canal inalámbrico 16, en el que las condiciones del canal pueden sufrir debido a la atenuación o la congestión. El canal 16 puede soportar una velocidad de enlace de red particular (por ejemplo, un ancho de banda particular), que puede fluctuar de acuerdo con las condiciones del canal. Por ejemplo, el canal 16 puede caracterizarse por un enlace inverso (RL) que tiene un rendimiento que varía de acuerdo con las condiciones del canal.
[0035] En general, la unidad de capa PHY 34 de sistema de descodificador 14 identifica los paquetes de capa MAC de los paquetes de capa PHY y vuelve a ensamblar el contenido en paquetes MAC RLP. A continuación, la unidad 36 de capa MAC vuelve a ensamblar el contenido de los paquetes MAC RLP para proporcionar paquetes de vídeo y audio para la inserción dentro de la cola 38 de RLP. La unidad RTP / RCTP / UDP / IP / pPp 40 elimina la información de la cabecera que la acompaña y proporciona paquetes de vídeo al descodificador de vídeo 42 y paquetes de audio al descodificador de audio 44. El descodificador de vídeo 42 descodifica las tramas de datos de vídeo para producir una secuencia de datos de vídeo para usar en la activación de un dispositivo de visualización. El descodificador de audio 44 descodifica los datos de audio para producir información de audio para su presentación a un usuario, por ejemplo, a través de un altavoz de audio.
[0036] Como se señaló anteriormente, el sistema 10 puede proporcionar transmisión de vídeo y audio bidireccional, por ejemplo, para videotelefonía a través del canal de transmisión 16. En algunos ejemplos, puede ocurrir un problema cuando varía la velocidad de enlace de red del canal 16, lo cual puede ocurrir con Wi-Fi, celular u otros enlaces de red. Como se ha descrito en mayor detalle con respecto a la FIG. 2 siguiente, se pueden incluir una o más memorias intermedias en el equipo de red para manejar las fluctuaciones de velocidad y, potencialmente, para realizar la gestión de colas.
[0037] Por ejemplo, un flujo de VT con una velocidad de envío determinada (por ejemplo, una velocidad de codificación utilizado por el codificador de vídeo 20) puede experimentar una reducción repentina de la velocidad del enlace, que puede crear un cuello de botella para el flujo. Debido a un retardo de reacción en el sistema de codificador 12 a esta reducción de velocidad de enlace (por ejemplo, que puede ser causada por retardos en la realimentación del control de congestión del receptor, retardos en la ruta de retorno del receptor al emisor, retardos en la reacción de adaptación o similares), la velocidad de envío puede permanecer significativamente por encima de la velocidad de enlace durante un período de tiempo. Esto puede dar como resultado niveles de memoria intermedia incrementados en el enlace de cuello de botella y, por lo tanto, un mayor retardo de extremo a extremo (o incluso paquetes perdidos) entre el sistema de codificador 12 y el sistema de descodificador 14, que puede afectar negativamente a la experiencia de calidad de la sesión de VT.
[0038] Después de que el sistema de codificador 12 reduzca la velocidad de transferencia de bits a la que se transmiten los datos por el canal 16 (por ejemplo, reduzca la velocidad de envío), el retardo acumulado puede persistir durante algún tiempo. Por ejemplo, en algunos casos, el período de tiempo que persiste el retardo acumulado puede depender de la diferencia entre la velocidad de envío y la velocidad de enlace reducida (por ejemplo, la velocidad de enlace que causa el cuello de botella). Si la reducción de la velocidad de envío es demasiado pequeña, el retardo acumulado se reducirá con relativa lentitud, lo cual puede afectar a la experiencia del usuario en el sistema de descodificador 14. Un enfoque de velocidad de envío conservador consiste en enviar sistemáticamente a una velocidad significativamente menor que la velocidad de enlace estimada. Sin embargo, este enfoque puede dar como resultado una subutilización del enlace en el canal 16 y una experiencia general de calidad de vídeo reducida.
[0039] De acuerdo con las técnicas descritas en esta divulgación, el codificador de vídeo 20 puede codificar vídeo de la fuente de vídeo 18 basándose en condiciones de canal 16. En particular, el codificador de vídeo 20 puede reducir una velocidad de codificación (también denominada en el presente documento velocidad de envío) basándose en una reducción del ancho de banda en el canal 16. La reducción de la velocidad de codificación se puede denominar en el presente documento conmutación descendente. El sistema de codificador 12 puede reducir temporalmente la velocidad de envío de datos codificados en el codificador de vídeo 20 después de que se detecte una reducción significativa en la velocidad de enlace en el canal 16, por ejemplo, después de recibir en el sistema de codificador 12 un mensaje de realimentación de control de congestión del lado del receptor generado en el sistema de descodificador 14.
[0040] En un ejemplo, de acuerdo con aspectos de esta divulgación, el sistema de codificador 12 puede transmitir inicialmente datos a través del canal 16 a una primera velocidad de transferencia de bits. El sistema de codificador 12 puede identificar una reducción de una velocidad de enlace de red en el canal 16 desde una primera velocidad de enlace de red a una segunda velocidad de enlace de red. En algunos ejemplos, el sistema de codificador 12 puede identificar la reducción de la velocidad de enlace de red basándose en uno o más informes recibidos del sistema de descodificador 14.
[0041] De acuerdo con aspectos de esta divulgación, en respuesta a la identificación de la reducción de la velocidad de enlace de red, el sistema de codificador 12 puede determinar una velocidad de transferencia de bits de recuperación a la cual transmitir los datos a través del canal 16, donde la velocidad de transferencia de bits de recuperación es menor que la segunda velocidad de enlace de red. El sistema de codificador 12 también puede determinar una duración de almacenamiento en memoria intermedia que incluye una diferencia entre un momento
5
10
15
20
25
30
35
40
45
50
55
60
65
de la identificación de la reducción de la velocidad de enlace de red y un momento real estimado de la reducción de la velocidad de enlace de red. Por ejemplo, como se indicó anteriormente, puede haber algún tiempo de reacción asociado con la identificación del retardo y el ajuste de la velocidad a la que el codificador de vídeo 20 codifica los datos. El sistema de codificador 12 puede almacenar en memoria intermedia datos codificados por el codificador de vídeo 20 en o cerca de la velocidad de enlace de red inicial (superior) hasta que el codificador de vídeo 20 tenga tiempo para identificar y ajustar la velocidad de codificación a una velocidad más baja.
[0042] El sistema de codificador 12 puede determinar una duración de velocidad de recuperación durante la cual transmitir los datos a la velocidad de transferencia de bits de recuperación basándose en la velocidad de transferencia de bits de recuperación y la duración de almacenamiento en memoria intermedia. El sistema de codificador puede a continuación transmitir los datos a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinada. De esta forma, las técnicas pueden reducir el retardo acumulado de extremo a extremo de forma relativamente rápida y pueden preservar la calidad de la experiencia del usuario al utilizar la velocidad de enlace disponible después de que se haya reducido el retardo de extremo a extremo (por ejemplo, en lugar de mantener la velocidad de envío a la velocidad reducida durante un período prolongado de tiempo). Si bien se describe con respecto al sistema de codificador 12 a modo de ejemplo, debe entenderse que algunas de las técnicas mencionadas anteriormente pueden realizarse de forma adicional o alternativa mediante el sistema de descodificador 14.
[0043] Todavía otras técnicas de esta divulgación incluyen técnicas para conmutación ascendente (por ejemplo, aumento) de la velocidad a la que los datos se codifican basándose en las condiciones de la red. Por ejemplo, durante la presentación de "Discussion on Upswitch Principals,” [“Análisis de los Directores de Upswitch,"] SA4 MTSI SWG Conferencia n.° 4 sobre la adaptación de velocidad de vídeo de extremo a extremo de E2EMTSI-S4, S4- AHM215, 24 de junio de 2014, ("AHM215") Se identificaron una serie de problemas con la conmutación ascendente. Como se documenta en “Report from SA4 MTSI SWG Conference Call No. 4 on End-to-End Video Rate Adaptation of E2EMTSI-S4 (June 24, 2014),” ["Informe de SA4 MTSI SWG Audioconferencia n. ° 4 sobre Adaptación de Velocidad de Vídeo de Extremo a Extremo E2EMTSI-S4 (24 de junio de 2014),"] Tdoc S4 (14) 0768, se consideró necesario un mayor análisis para investigar las nuevas ideas de la conferencia telefónica antes de acordar los principios para la conmutación ascendente.
[0044] En general, el modelo presentado en AHM215 se basa en un modelo de sondeo acelerado, que puede tener la desventaja de que el sondeo puede introducir un retardo en el sistema cuando el sondeo no concuerda con las condiciones del canal. Un modelo más resistente es permitir que un receptor, tal como el sistema de descodificador 14, mida pasivamente el estado del canal 16 para determinar si podría haber un exceso de capacidad en el sistema. Basándose en esto, el sistema de descodificador 14 puede hacer una estimación más precisa de la velocidad sostenible del sistema.
[0045] El modelo presentado en AHM215 también sugiere un enfoque en dos fases mediante el cual sistema de codificador 12 primero sondea el canal para ver si puede haber más capacidad. Si la fase de sondeo es exitosa, el codificador de vídeo 20 puede aumentar su velocidad de manera más agresiva durante una "fase de aceleración". Tal modelo puede introducir una cantidad relativamente grande de congestión en el sistema, porque una sonda exitosa con un pequeño aumento de la velocidad de datos puede no implicar que el sistema pueda manejar un aumento mucho mayor después. De hecho, al aumentar la velocidad del codificador de vídeo 20 para que coincida con la capacidad del sistema, el enfoque más resistente es primero aumentar la velocidad en una cantidad relativamente grande, seguido de pasos más pequeños a medida que la velocidad converja hacia la velocidad sostenible soportada por el canal 16.
[0046] Para seguir el enfoque potencialmente más resistente de converger en la velocidad sostenible de la manera descrita anteriormente, la entidad que lleva a cabo la adaptación (por ejemplo, el emisor (sistema de codificador 12) o el receptor (sistema de descodificador 14) debe tener una estimación de la velocidad sostenible del sistema. Un emisor puede confiar en los informes del receptor RTCP para detectar condiciones de canal de extremo a extremo y puede calcular el rendimiento neto, aunque con algún retardo de medición debido al informe RTCP. Un receptor puede calcular tanto un rendimiento neto como una cantidad de retardo adicional que puede aceptarse antes de que los paquetes lleguen demasiado tarde al sistema de descodificador 14 para su emisión programada. Por lo tanto, si las métricas relevantes calculadas en el receptor se envían directamente al emisor, se logra un modelo de adaptación activado por el receptor que puede ser más resistente y debe usarse para determinar el rendimiento mínimo de adaptación.
[0047] De acuerdo con aspectos de esta divulgación, el sistema de descodificador 14 puede implementar una técnica de conmutación ascendente de velocidad activada por el receptor tras determinar que el ancho de banda en el canal 16 está siendo infrautilizado. Por ejemplo, de acuerdo con aspectos de esta divulgación, el sistema de descodificador 14 puede proporcionar datos al sistema de codificador 12 que hacen que el codificador de vídeo 20 aumente una velocidad de codificación.
[0048] En algunos ejemplos, de acuerdo con aspectos de esta divulgación, el sistema de descodificador 14 puede determinar un parámetro de retardo en exceso admisible basándose en una diferencia entre un momento en el que
5
10
15
20
25
30
35
40
45
50
55
60
65
los datos son recibidos por el sistema de descodificador 14 y un momento en el que está programada la emisión de los datos recibidos. El parámetro de retardo en exceso admisible puede indicar una cantidad de retardo que es soportable por el canal 16 antes de que la experiencia del usuario se vea afectada; por ejemplo, los datos llegan demasiado tarde para descodificarse y emitirse en el momento apropiado. El sistema de descodificador 14 también puede determinar un aumento de la velocidad de transferencia de bits del emisor para aumentar una velocidad de transferencia de bits a la cual los datos se envían desde el sistema de codificador 12 al sistema de descodificador 14 basándose en el parámetro de retardo en exceso admisible determinado. El sistema de descodificador 14 también puede transmitir una indicación del aumento de la velocidad de transferencia de bits del emisor al sistema de codificador 12.
[0049] De esta manera, el sistema de descodificador 14 puede controlar la velocidad de transferencia de bits media del flujo de vídeo de una manera controlada para mejorar la experiencia del usuario sin introducir congestión en la red. Las técnicas pueden evitar aumentar significativamente el retardo de extremo a extremo, lo cual podría dar como resultado pérdidas de paquetes.
[0050] La FIG. 2 es un diagrama de bloques que ilustra el sistema de codificador 12 que puede implementar la adaptación de la velocidad de fuente de vídeo de acuerdo con las técnicas de esta divulgación. Como se muestra en la FIG. 2, el codificador de vídeo 20 incluye un motor de codificación de vídeo 50, una memoria intermedia de vídeo 52 y controlador de velocidad de vídeo 54. El codificador de vídeo 20 también recibe información de velocidad de enlace de red 56, que puede prepararse mediante el sistema de descodificador 14 (como se describe en mayor detalle a continuación).
[0051] El motor de codificación de vídeo 50 obtiene datos de vídeo de la fuente de vídeo 18 y codifica los datos de vídeo a una velocidad controlada por el controlador de velocidad de vídeo 54. El motor de codificación de vídeo 50 coloca a continuación el vídeo codificado en la memoria intermedia de vídeo 52. El controlador de velocidad de vídeo 54 puede controlar la plenitud de la memoria intermedia de vídeo 52 y controlar la velocidad de codificación de vídeo aplicada por el motor de codificación de vídeo 50, al menos en parte, basándose en la plenitud. Además, como se describe en mayor detalle a continuación, el controlador de velocidad de vídeo 54 puede controlar la velocidad basándose en la información de velocidad de enlace de red 56 y/u otros datos asociados con las condiciones del canal 16 (FIG. 1).
[0052] En algunos ejemplos, el codificador de vídeo 20 puede proporcionar un esquema de control de velocidad de fuente de vídeo que es en general independiente de CÓDEC. Por ejemplo, el codificador de vídeo 20 puede estar adaptado para la codificación de vídeo de acuerdo con HEVC, MPEG4, ITU H.263 o ITU H.264. Además, el codificador de vídeo 20 puede ser susceptible de implementación dentro de un DSP o núcleo lógico integrado. En algunos modos de realización, el codificador de vídeo 20 (por ejemplo, el controlador de velocidad de vídeo 54 del codificador de vídeo 20) puede aplicar control de velocidad basado en modelo, por ejemplo, aplicando control de velocidad de bloque de vídeo en el dominio rho. Por ejemplo, una vez que se establece un presupuesto de bit de trama para una trama de vídeo particular, el presupuesto de bit de trama puede asignarse entre los bloques de vídeo, por ejemplo, unidades de codificación (CU) y/o macrobloques (MB) dentro de la trama utilizando el control de velocidad de dominio rho. Los valores del dominio rho para MB individuales se pueden asignar a continuación a los valores de parámetro de cuantificación (QP).
[0053] De acuerdo con aspectos de esta divulgación, el controlador de velocidad de vídeo 54 puede realizar conmutación descendente de velocidad basándose en condiciones de la red. Por ejemplo, el motor de codificación de vídeo 50 puede codificar inicialmente datos a una primera velocidad de transferencia de bits para la transmisión a través de un medio de transporte, tal como el canal 16 (FIG. 1). El controlador de velocidad de vídeo 54 puede identificar una reducción de una velocidad de enlace de red desde una primera velocidad de enlace de red a una segunda velocidad de enlace de red. En algunos ejemplos, el controlador de velocidad de vídeo 54 puede identificar la reducción de la velocidad de enlace de red a partir de la realimentación en el codificador de vídeo 20. En otros ejemplos, el controlador de velocidad de vídeo 54 puede identificar la reducción de la velocidad de enlace de red basándose en la información de velocidad de enlace de red 56.
[0054] En respuesta a la identificación de la reducción de la velocidad del enlace de red, el controlador de velocidad de vídeo 54 puede determinar una velocidad de transferencia de bits de recuperación para el codificador de vídeo 20 que es menor que la segunda velocidad de enlace de red (reducida). La velocidad de recuperación se puede usar para reducir la cantidad de datos almacenados en memoria intermedia entre el tiempo real de la reducción de la velocidad de enlace de red y la identificación de la reducción de la velocidad de enlace de red. La reducción de dichos datos almacenados en memoria intermedia puede ayudar a garantizar que la experiencia del usuario no se vea afectada en el dispositivo receptor. Por lo tanto, el controlador de velocidad de vídeo 54 puede determinar una velocidad de transferencia de bits de recuperación para uso en el codificador de vídeo 20 que no sobrepase la velocidad de enlace de red reducida con el fin de reducir la cantidad de datos almacenados en memoria intermedia en el codificador de vídeo 20.
[0055] De acuerdo con aspectos de esta divulgación, el controlador de velocidad de velocidad de vídeo 54 puede determinar la velocidad de recuperación basándose en un factor de no sobrepaso. El controlador de velocidad de
5
10
15
20
25
30
35
40
45
50
55
60
65
vídeo 54 puede determinar el factor de no sobrepaso basándose en la diferencia entre la primera velocidad de enlace de red y la velocidad de enlace de red reducida. Es decir, el controlador de velocidad de vídeo 54 puede determinar un factor de no sobrepaso que tiene una magnitud que varía basándose en la magnitud de la reducción de la velocidad de enlace de red. En consecuencia, si la reducción de la velocidad de enlace de red es relativamente alta, el controlador de velocidad de vídeo 54 puede determinar un factor de no sobrepaso relativamente alto. Del mismo modo, si la reducción de la velocidad de enlace de red es relativamente baja, el controlador de velocidad de vídeo 54 puede determinar un factor de no sobrepaso que es relativamente bajo.
[0056] En algunos ejemplos, el controlador de velocidad de vídeo 54 puede determinar un factor de no sobrepaso que se puede aplicar a la velocidad de enlace de red reducida para determinar la velocidad de recuperación. Por ejemplo, el controlador de velocidad de vídeo 54 puede determinar un factor de no sobrepaso fraccionario y puede aplicar el factor de no sobrepaso fraccionario a la velocidad de enlace de red reducida para determinar la velocidad de recuperación. En un ejemplo, el controlador de velocidad de vídeo 54 puede determinar el factor de no sobrepaso basándose en una relación de la magnitud en la reducción de la velocidad de enlace de red a la primera velocidad de enlace de red.
[0057] De acuerdo con aspectos de esta divulgación, el controlador de velocidad de vídeo 54 puede determinar cuánto tiempo mantener la velocidad de recuperación basándose en la cantidad de datos almacenada en memoria intermedia en el codificador de vídeo 20 (o, más en general, la cantidad de datos almacenada en memoria intermedia en un dispositivo emisor que incluye el codificador de vídeo 20) entre el momento de la identificación de la reducción de la velocidad de enlace de red y un tiempo real estimado de la reducción de la velocidad de enlace de red. El tiempo asociado al almacenamiento en memoria intermedia de los datos en el dispositivo emisor puede denominarse en el presente documento como la duración del almacenamiento en memoria intermedia (o período de almacenamiento en memoria intermedia), mientras que la duración para mantener la velocidad de recuperación puede denominarse en el presente documento una duración de velocidad de recuperación (o período de tiempo de velocidad reducida). En algunos casos, la duración de velocidad de recuperación también puede denominarse período o duración de no sobrepaso, porque la velocidad a la que se codifican los datos durante la duración de velocidad de recuperación es menor que la velocidad de enlace de red.
[0058] Como se ha descrito en mayor detalle con respecto a la FIG. 5 a continuación, el controlador de velocidad de vídeo 54 puede determinar la duración del almacenamiento en memoria intermedia de múltiples formas. Por ejemplo, el controlador de velocidad de vídeo 54 puede determinar la duración del almacenamiento en memoria intermedia estimando la duración del almacenamiento en memoria intermedia a partir de la información de velocidad de enlace de red 56, tal como el tiempo de ida y vuelta (RTT) entre el dispositivo emisor que incorpora el codificador de vídeo 20 y un dispositivo receptor, retardos de enlace descendente (por ejemplo, retardos del receptor al emisor), datos con respecto a un retardo de reacción de adaptación de velocidad, un retardo de reacción del control de la congestión (por ejemplo, estimación de la velocidad de enlace), retardos en la generación de mensajes (paquetes RTCP) o similares. La información de velocidad de enlace de red 56 puede estar disponible en el codificador de vídeo 20 o puede ser señalada al codificador de vídeo 20 por el dispositivo receptor.
[0059] De acuerdo con aspectos de esta divulgación, el controlador de velocidad de vídeo 54 puede determinar la duración de velocidad de recuperación basándose en una magnitud de la velocidad de recuperación y basándose en la duración de almacenamiento en memoria intermedia. En algunos ejemplos, el controlador de velocidad de vídeo 54 puede determinar una duración de almacenamiento en memoria intermedia que es proporcional a la magnitud de la reducción de la velocidad de enlace de red (por ejemplo, según lo indicado por la velocidad de recuperación) y la cantidad de tiempo asociada a reaccionar a la reducción de velocidad de enlace de red (por ejemplo, según lo indicado por la duración de almacenamiento en memoria intermedia). Es decir, si la reducción de la velocidad de enlace de red es relativamente grande y/o el tiempo necesario para reaccionar a la reducción de la velocidad de enlace de red es relativamente largo, el controlador de velocidad de vídeo 54 puede determinar una duración de velocidad de recuperación que es proporcionalmente larga. Asimismo, si la reducción de la velocidad de enlace de red es relativamente pequeña y/o el tiempo necesario para reaccionar a la reducción de la velocidad de enlace de red es relativamente corto, el controlador de velocidad de vídeo 54 puede determinar una duración de velocidad de recuperación que es proporcionalmente corta.
[0060] De acuerdo con otros aspectos de esta divulgación, el controlador de velocidad de vídeo 54 puede, de forma adicional o alternativa, realizar conmutación ascendente de velocidad basándose en las condiciones de la red. Por ejemplo, el controlador de velocidad de vídeo 54 puede recibir información de velocidad de enlace de red 56 desde un dispositivo receptor tal como un dispositivo que incluye un sistema de descodificador 14 (FIG. 1). El controlador de velocidad de vídeo 54 puede usar la información de velocidad de enlace de red 56 recibida para conmutar de forma ascendente la velocidad de envío (por ejemplo, velocidad de codificación) que utiliza el motor de codificación de vídeo 50 para codificar datos.
[0061] En algunos ejemplos, la información de velocidad de enlace de red 56 recibida puede incluir una velocidad de envío solicitada particular (por ejemplo, velocidad de codificación) aplicada por el motor de codificación de vídeo 50. En otros ejemplos, la información de velocidad de enlace de red 56 recibida puede incluir un aumento de paso de velocidad para añadirse a una velocidad de envío actual (por ejemplo, un paso de velocidad de envío). En cualquier
5
10
15
20
25
30
35
40
45
50
55
60
65
caso, como se ha descrito en mayor detalle con respecto a la FIG. 3 siguiente, la información de velocidad de enlace de red 56 recibida puede basarse en un parámetro de retardo en exceso que indica que los paquetes se han recibido en el dispositivo receptor antes de que los paquetes se programen para su emisión. En tales casos, el controlador de velocidad de vídeo 54 puede aumentar la velocidad de envío utilizada por el motor de codificación de vídeo 50 hasta que el tiempo de llegada de los paquetes coincida más estrechamente con el tiempo de emisión programado de los paquetes en el dispositivo receptor.
[0062] Se debe entender que, aunque las técnicas de la FIG. 2 se describen como llevadas a cabo por un componente particular de la FIG. 2 (por ejemplo, tal como el controlador de velocidad de vídeo 54), tales técnicas pueden ser realizadas de forma adicional o alternativa por uno o más componentes diferentes de un dispositivo de videotelefonía. Como ejemplo, un dispositivo MTSI puede llevar a cabo ciertas técnicas descritas anteriormente para llevar a cabo la adaptación de velocidad y/o el control de la congestión. En este ejemplo, el dispositivo MTSI puede a continuación proporcionar datos al controlador de velocidad de vídeo 54 para implementar el control de velocidad apropiado en el codificador de vídeo.
[0063] La FIG. 3 es un diagrama de bloques que ilustra el sistema de descodificador de vídeo 14 que puede implementar la adaptación de la velocidad de fuente de vídeo de acuerdo con las técnicas de esta divulgación. Como se muestra en la FIG. 3, el descodificador de vídeo 42 recibe datos codificados e información de velocidad de enlace de red 60 e incluye un motor de descodificación de vídeo 62, una unidad de determinación de emisión 64, y unidad de control de velocidad 66 que genera datos de control de velocidad 68.
[0064] El motor de descodificación de vídeo 62 recibe información codificada de datos y velocidad de enlace de red 60 y descodifica los datos de vídeo. En algunos ejemplos, el motor de descodificación de vídeo 62 puede ajustarse a una o más normas de codificación de vídeo. Como se indicó anteriormente, entre las normas de codificación de vídeo de ejemplo se incluyen HEVC, MPEG4, ITU H.263 o ITU H.264.
[0065] La velocidad a la que se reciben los datos de vídeo puede ser controlada por el controlador de velocidad de vídeo 54 del codificador de vídeo 20 (FIG. 2). De acuerdo con aspectos de esta divulgación, la unidad de control de velocidad 66 puede preparar y enviar datos de control de velocidad 68 al codificador de vídeo 20 para su uso en el ajuste de la velocidad de codificación. En algunos ejemplos, los datos de control de velocidad 68 pueden incluir datos para realizar una conmutación descendente en el dispositivo emisor. En otros ejemplos, de forma adicional o alternativa, los datos de control de la velocidad 68 pueden incluir datos para realizar una conmutación ascendente en el dispositivo emisor. La unidad de control de velocidad 66 puede preparar datos que permitan que el dispositivo emisor determine la velocidad de transferencia de bits apropiada, o puede solicitar una velocidad de transferencia de bits particular desde el dispositivo emisor.
[0066] Con respecto a la preparación de datos para conmutación descendente, de acuerdo con aspectos de esta divulgación, la unidad de control de velocidad 66 puede determinar una velocidad de recuperación, una duración de almacenamiento en memoria intermedia , y/o una duración velocidad de recuperación de una manera similar a la descrita anteriormente con respecto a la FIG. 2. En otros ejemplos, la unidad de control de velocidad 66 puede generar datos y/o transmitir mensajes que pueden ser utilizados por un dispositivo emisor (como el sistema de codificador 12) para determinar una velocidad de recuperación, una duración de almacenamiento en memoria intermedia y/o una duración de velocidad de recuperación.
[0067] En un ejemplo, la unidad de control de velocidad 66 puede generar un mensaje de Solicitud de Velocidad de Transferencia de Bits de Transmisión de Medios Máxima Temporal RTCP (TMMBR) al dispositivo emisor con una velocidad de transferencia de bits máxima estimada para un canal hacia delante para indicar una reducción de la velocidad de enlace de red. En general, como se describe en el RFC 5104 mencionado anteriormente, un receptor, un traductor o un mezclador pueden usar un TMMBR (denominado "timber") para solicitar que un emisor limite la velocidad de transferencia de bits máxima para una transmisión de medios a, o por debajo del valor proporcionado. La Notificación de Velocidad de Transferencia de Bits de Transmisión de Medios Máxima Temporal (TMMBN) contiene la visualización actual del emisor de medios del subconjunto más limitado de los límites definidos por TMMBR que ha recibido para ayudar a los participantes a suprimir TMMBR que no restringirían aún más el emisor de medios.
[0068] De acuerdo con aspectos de esta divulgación, un cambio en la velocidad de transferencia de bits máxima estimada para el canal hacia delante desde una primera velocidad a una segunda, menor velocidad indica una reducción de la velocidad de enlace de red. En algunos ejemplos, la unidad de control de velocidad 66 puede enviar el TMMBR inmediatamente o casi inmediatamente después de que se detecte la congestión (por ejemplo, puede haber retardos en la generación de mensajes asociados con la generación del mensaje tMmbR). Si bien se describe un mensaje de TMMBR para fines de ilustración, debe entenderse que se pueden usar una variedad de otros mensajes que indican retardos / congestión.
[0069] Para facilitar el dispositivo emisor con la estimación de la duración de almacenamiento en memoria intermedia descrito en el presente documento, la unidad de control de velocidad 66 también puede generar y transmitir un mensaje de informe de receptor (RR) RTCP. Por ejemplo, como se describe en el documento RFC
5
10
15
20
25
30
35
40
45
50
55
60
65
3550 mencionado anteriormente, se pueden usar varios tipos de paquetes de RTCP para transportar una variedad de información de control. Se puede usar un informe de emisor (SR) para las estadísticas de transmisión y recepción de los participantes que son emisores activos. Se puede usar un RR para las estadísticas de recepción de los participantes que no son emisores activos y en combinación con SR para emisores activos que informan en más de 31 fuentes.
[0070] De acuerdo con aspectos de esta divulgación, la unidad de control de velocidad 66 puede generar y transmitir un mensaje de RR después del mensaje TMMBR, por ejemplo, inmediatamente o casi inmediatamente después del mensaje TMMBR. En este ejemplo, el dispositivo emisor puede recibir el mensaje TMMBR y el mensaje RR y puede determinar un límite superior para la duración del almacenamiento en memoria intermedia como diferencia en tiempo entre el momento de envío de un SR al que se hace referencia en el RR mediante la última marca de tiempo SR (datos de LSR) incluida en el RR y el momento en que el dispositivo emisor recibe el RR. En otras palabras, la unidad de control de velocidad 66 puede enviar primeros datos que indiquen una solicitud de limitación de velocidad de transferencia de bits (por ejemplo, el mensaje TMMBR) y segundos datos que indiquen un momento en el que se generó un mensaje (por ejemplo, los datos LSR). Los datos LSR pueden incluir los 32 bits del medio de una marca de tiempo del protocolo de tiempo de red (NTP) de 64 bits recibida como parte del paquete RTCP SR más reciente de una fuente. Si aún no se ha recibido ningún SR, el campo de marca de tiempo LSR puede establecerse en cero. El dispositivo emisor puede recibir los datos indicados anteriormente y puede usar los datos para determinar una duración de almacenamiento en memoria intermedia, que puede usarse durante la conmutación descendente.
[0071] En otro ejemplo, en lugar de enviar dos mensajes sucesivos separados (por ejemplo, un TMMBR y un RR RTCP), la unidad de control de velocidad 66 puede agrupar los datos TMMBR y datos RTCP RR en un solo mensaje RTCP y puede enviar el mensaje único al dispositivo emisor. Como mínimo, la unidad de control de velocidad 66 puede enviar los datos LSR, lo cual permite que el dispositivo emisor estime la duración del almacenamiento en memoria intermedia. En este ejemplo, el tamaño del mensaje puede reducirse en relación con el envío de dos mensajes por separado.
[0072] En algunos ejemplos, la unidad de control de velocidad 66 puede utilizar el LSR del último RTCP SR recibido para enviar al dispositivo emisor, incluso si la unidad de control de velocidad 66 había previamente enviado un RR RTCP que tiene el mismo LSR. Si la unidad de control de velocidad 66 aún no había enviado un RR, la unidad de control de velocidad 66 puede combinar un RR completo con el TMMBR. En otros ejemplos, para reducir el tamaño del mensaje, la unidad de control de velocidad 66 solo puede enviar los datos LSR junto con el TMMBR, que el dispositivo emisor puede recibir y usar para determinar el RTT. En otro ejemplo más, si la unidad de control de velocidad 66 ya había enviado un RR, el dispositivo emisor puede calcular la duración del almacenamiento en memoria intermedia de forma más precisa como la diferencia de tiempo entre el momento de recibir el último RR recibido y el momento de recibir el nuevo RR (por ejemplo, el RR que fue enviado por la unidad de control de velocidad 66 después de que se detectó congestión).
[0073] La unidad de control de velocidad 66 también puede determinar una duración de velocidad de recuperación y/o generar y enviar datos a un dispositivo emisor para determinar la duración de velocidad de recuperación. Por ejemplo, de forma alternativa o en combinación con las técnicas descritas anteriormente, la unidad de control de velocidad 66 (o el dispositivo emisor) puede supervisar la fluctuación de fase entre llegadas de RTCP RR para determinar cuándo finalizar la duración de velocidad de recuperación. En general, los datos de fluctuación de fase entre llegadas pueden proporcionar una estimación de la varianza estadística del tiempo entre llegadas del paquete de datos RTP, medido en unidades de marca de tiempo y expresado como un entero sin signo. La fluctuación de fase J entre llegadas se puede definir como la desviación media (valor absoluto suavizado) de la diferencia D en el espaciado de paquetes en el receptor en comparación con el emisor para un par de paquetes. Como se muestra en la ecuación (1) a continuación, esto es equivalente a la diferencia en el "tiempo de tránsito relativo" para los dos paquetes; el tiempo de tránsito relativo es la diferencia entre la marca de tiempo RTCP de un paquete y el reloj del receptor en el momento de la llegada, medidos en las mismas unidades. Si Si es la marca de tiempo RTP del paquete i, y Ri es el tiempo de llegada en las unidades de marca de tiempo RTP para el paquete i, entonces para dos paquetes i y j, D puede expresarse como:
D(ij) = (Rj Ri) (Si - Si) = (Rj ■■ Sj) - (Ri ■ Si) (1)
[0074] De acuerdo con aspectos de esta divulgación, el dispositivo emisor puede terminar la reducción de la velocidad (por ejemplo, el dispositivo emisor puede aumentar la velocidad de envío de la velocidad reducida a aproximadamente la velocidad de enlace de red) si la fluctuación de fase entre llegadas pasa a ser cero o un valor más pequeño que un valor umbral. El umbral puede ser constante o adaptable a las condiciones cambiantes de la red. En algunos ejemplos, el dispositivo emisor puede finalizar la reducción de la velocidad cuando la fluctuación de fase entre llegadas se mantiene a cero o un valor más pequeño que el valor umbral durante un período de tiempo mínimo. En algunos casos, cuanto más frecuentemente la unidad de control de velocidad 66 señala RTCP SR y RR, con mayor precisión el dispositivo emisor puede controlar la fluctuación de fase entre llegadas.
[0075] En todavía otro ejemplo, un dispositivo emisor (como el sistema de codificador 12) puede supervisar el retardo (por ejemplo, RTT) y el emisor puede mantener la velocidad de envío a la velocidad reducida hasta que el
5
10
15
20
25
30
35
40
45
50
55
60
retardo se reduzca suficientemente. Por ejemplo, el dispositivo emisor puede mantener la velocidad de envío a la velocidad reducida hasta que la cantidad de datos almacenados en la memoria intermedia caiga por debajo de un nivel umbral.
[0076] En otras técnicas de esta divulgación, la unidad de determinación de emisión 64 pueden examinar los paquetes de vídeo recibidos y determinar si los datos recibidos están llegando temprano, a tiempo, o demasiado tarde para su emisión programada. El tiempo de emisión programado puede indicarse con los datos codificados. Si los paquetes llegan tarde (por ejemplo, el tiempo de emisión se produce antes de que se reciban / examinen los paquetes), la unidad de control de velocidad 66 puede solicitar al dispositivo emisor que reduzca la velocidad de transferencia de bits de envío. En algunos ejemplos, la unidad de control de velocidad 66 puede enviar un mensaje TMMBR con la velocidad seleccionada.
[0077] De acuerdo con algunos aspectos, la unidad de control de velocidad 66 puede estimar una cantidad de datos acumulados (por ejemplo, datos almacenados en memoria intermedia en el dispositivo emisor) mediante la determinación de la cantidad de retardo en exceso que tiene que ser eliminado y multiplicando este parámetro de retardo en exceso por la velocidad de datos del vídeo que llega, medida por la unidad de control de velocidad 66. En otras palabras, la unidad de control de velocidad 66 puede determinar un retardo basándose en una diferencia entre en el momento en el que los datos son recibidos / examinados y el tiempo de emisión indicado con los datos. La unidad de control de velocidad 66 puede entonces multiplicar este tiempo de retardo por la velocidad de transferencia de bits a la que se reciben los datos para determinar una cantidad de datos que el emisor está almacenando en memoria intermedia.
[0078] En algunos ejemplos, la unidad de control de velocidad 66 puede solicitar una velocidad inicial (por ejemplo, en el mensaje de tMmBR) que es menor que una velocidad sostenible de la ruta de transporte entre descodificador de vídeo 42 y el dispositivo emisor (por ejemplo, un ancho de banda utilizable del enlace de red) para permitir que el sistema descongestione el canal. En un ejemplo, la unidad de control de velocidad 66 puede seleccionar una velocidad inicial que sea lo suficientemente baja para permitir que el sistema descongestione el canal en un período de tiempo fijo (indicado por la variable T_decongest). Si la variable R_sustain es igual a la velocidad sostenible del canal, y la variable ADelay es igual a la cantidad de retardo que debe eliminarse, la unidad de control de velocidad 66 puede solicitar inicialmente al dispositivo emisor que codifique datos a la velocidad de transferencia de bits R de acuerdo con la ecuación (2) siguiente:
Después de enviar el mensaje que incluye la velocidad de transferencia de bits solicitada (por ejemplo, el mensaje TMMBR), la unidad de control de velocidad 66 puede esperar a que transcurra el tiempo de descongestión (T_descongest). La unidad de control de velocidad 66 puede entonces enviar otra velocidad de transferencia de bits solicitada (por ejemplo, un mensaje TMMBR adicional) a la velocidad que es sostenible por el enlace de red (R_sustain), terminando así el período de descongestión.
[0079] En otro ejemplo, la unidad de control de velocidad 66 puede no enviar otro mensaje (por ejemplo, el mensaje TmmBr adicional) para aumentar la velocidad. En este ejemplo, la unidad de control de velocidad 66 puede simplemente comenzar a medir una cantidad de retardo admisible (por ejemplo, un retardo que es menor que un umbral predeterminado). Si la unidad de control de velocidad 66 determina que la cantidad de retardo es menor que la requerida (por ejemplo, los paquetes llegan antes de lo requerido para la emisión programada adecuadamente), la unidad de control de velocidad 66 puede enviar otro mensaje (por ejemplo, otro mensaje TMMBR) para aumentar / hacer subir la velocidad de codificación del dispositivo emisor.
[0080] Con respecto a conmutación ascendente, cuando un canal entre un dispositivo emisor y un dispositivo receptor (tal como el canal 16 entre el sistema de codificador 12 y el sistema de descodificador 14 (FIG. 1)) está siendo infrautilizado por el dispositivo emisor, es probable que la entrega de paquetes de vídeo al descodificador de vídeo 42 ocurra antes de que tales paquetes de vídeo realmente necesiten emitirse (por ejemplo, recibirse antes de un tiempo de emisión indicado con los datos). En tales casos, la velocidad del emisor puede aumentar y puede introducirse algún retardo adicional en el sistema sin afectar negativamente a la experiencia del usuario.
[0081] El exceso de bits que pueden ser introducidos en la ruta de transmisión se pueden calcular de acuerdo con la ecuación (3) a continuación en casos en los que el ancho de banda de canal es igual a la velocidad de recepción media medida en la unidad de control de velocidad 66 (por ejemplo, el peor caso sin ancho de banda de canal adicional disponible):
excess_bits = ratejncreasejlep * (RTT+ receiver_detection_delay) (3)
donde excess_bits indica que se introducen bits adicionales en el sistema, rate_increase_step indica un aumento de la velocidad de codificación, RTT indica un tiempo de ida y vuelta, y receiver_detection_delay indica un retardo
5
10
15
20
25
30
35
40
45
50
55
60
asociado con la detección de retardo en el sistema por parte del receptor (que puede determinarse de acuerdo con de las técnicas descritas en el presente documento).
[0082] En algunos ejemplos, la unidad de control de velocidad 66 puede determinar el correspondiente peor caso de retardo en exceso (excess_delay) debido a los bits sobrantes siendo introducidas (excess_bits) de acuerdo con la ecuación (4) siguiente:
excess jíelay - raíejncreasejsíep * (RTT + receiver_detectionjdelay) i avg_receiving_rate (4)
donde excess_delay indica una cantidad de retardo introducida en el dispositivo emisor, rate_increase_step indica un aumento de la velocidad de codificación, RTT indica un tiempo de ida y vuelta entre el dispositivo emisor y el descodificador de vídeo 42, receiver_detection_delay indica un retardo asociado con la detección de retardo en el sistema mediante la unidad de control de velocidad 66, y avg_receiving_rate indica la velocidad a la que se están recibiendo datos en el descodificador de vídeo 42.
[0083] Por lo tanto, en algunos ejemplos, de acuerdo con aspectos de esta divulgación, la unidad de control de la velocidad 66 de descodificador de vídeo 42 puede determinar un número de bits en exceso asociados con un aumento de velocidad particular (por ejemplo, excess_bits) y un retardo asociado con la introducción de bits en exceso (por ejemplo, excess_delay).
[0084] La unidad de control de velocidad 66 puede calcular una cantidad de aumento de velocidad basándose en el parámetro de retardo en exceso admisible. Por ejemplo, la unidad de control de velocidad 66 puede determinar cuánto puede aumentar la velocidad de envío mediante el dispositivo emisor sin introducir congestión y/o retardo en el sistema de acuerdo con la ecuación (5) siguiente:
vate increase síep = allowable excess delay * avg receiving rale / (RTT + receiver_detection_delay) (5)
donde rate_increase_step indica una cantidad en la que la velocidad de envío se puede aumentar (que se puede denominar un aumento de la velocidad de transferencia de bits del emisor), allowable_excess_delay indica un parámetro de retardo en exceso admisible (como se describe en mayor detalle a continuación), avg_receiving_rate indica una velocidad media a la que datos han sido recibidos antes de determinar el aumento de velocidad, RTT indica un tiempo de ida y vuelta entre el descodificador de vídeo 42 y un dispositivo emisor (tal como el codificador de vídeo 20) y receiver_detection_delay indica una cantidad de tiempo requerida para identificar el retardo en el descodificador de vídeo 42. En algunos casos, el parámetro de retardo de detección del receptor puede depender de la implementación y puede estimarse o medirse en pruebas fuera de línea. Si tal retardo de detección del receptor no está disponible, la unidad de control de velocidad 66 puede configurarse para usar un retardo de reacción estimado, que puede ser una estimación relativamente conservadora del tiempo necesario para que la unidad de control de velocidad 66 identifique el retardo.
[0085] Debido a que el retardo unidireccional desde el dispositivo emisor al dispositivo receptor que incluye descodificador de vídeo 42 es en general desconocido para el dispositivo receptor, el dispositivo receptor típicamente no puede usar este para calcular el parámetro de retardo en exceso admisible (allowable_excess_delay). En cambio, de acuerdo con aspectos de esta divulgación, la unidad de control de velocidad 66 puede determinar una cantidad de retardo en exceso admisible de los paquetes de vídeo recibidos. Por ejemplo, la unidad de control de velocidad 66 puede determinar un momento en el que los paquetes de vídeo se reciben y/o procesan en el descodificador de vídeo 42. La unidad de control de velocidad 66 también puede determinar un momento en el que los datos de vídeo asociados con los paquetes de vídeo se designan para emitirse (por ejemplo, se muestran a un usuario). La unidad de control de velocidad 66 puede determinar un parámetro de retardo en exceso admisible basándose en una diferencia entre el momento en el que se reciben y/o evalúan los paquetes y el tiempo de emisión).
[0086] El parámetro de retardo en exceso admisible en general puede indicar una cantidad de tiempo que puede ser utilizado por el dispositivo emisor como base para el aumento de la velocidad de transferencia de bits sin afectar a la experiencia del usuario. Por ejemplo, el parámetro de retardo en exceso admisible puede indicar una cantidad de tiempo que puede usarse para aumentar la velocidad de envío sin afectar a la experiencia del usuario, por ejemplo, sin aumentar la velocidad de envío a una velocidad que el canal 16 no puede soportar, de modo que los datos llegan demasiado tarde al descodificador de vídeo 42 para ser descodificados y emitidos en el momento apropiado. La métrica de retardo en exceso admisible puede ser más precisa desde una perspectiva de la experiencia del usuario, ya que el parámetro de retardo en exceso admisible directamente indica si la información de vídeo en los paquetes recibidos puede mostrarse al usuario sin degradación (por ejemplo, fluctuación de fase, perturbación en forma de líneas negras o tramas perdidas).
5
10
15
20
25
30
35
40
45
50
55
[0087] De acuerdo con aspectos de esta divulgación, basándose en el análisis anterior, la unidad de control de velocidad 66 puede imponer los siguientes requisitos en un dispositivo receptor y un dispositivo emisor para realizar conmutación ascendente:
• El receptor examinará la llegada de paquetes y lo comparará con sus tiempos de emisión programados regularmente para determinar si existe una cantidad aceptable de retardo que se puede introducir en la ruta de transmisión:
• El receptor examinará la llegada de paquetes para calcular la velocidad media de recepción: a vg_receiving_rate
• El receptor calculará el tiempo de ida y vuelta: RTT
• El receptor calculará el rate_increase_step de la siguiente manera:
resteJncrease_$tep = allowable_ex-cess_delay * ctvg_receiving_rate í (RTT + receiver_detection_delay)
• Cuando lo permitan las reglas de transmisión RTCP de Suministro Audio Visual con Realimentación (AVPF), el receptor:
debería enviar una solicitud de velocidad de transferencia de bits de transmisión de medios máxima temporal (TMMBR) cuando detecte
que roteincrease step>5% x avg receiving rate, y
enviará una TMMBR cuando detecte que rate_increase_step> 15% x avg receiving rate
• Al enviar un mensaje TMMBR, la requested_rate en el TMMBR: debe ser igual a:
será:
avg_receiving_rate + 0,80 (rate_wcrease_síep) <= requesied_raíe <= avgjreceivingjrate + rate_increase_slep
[0088] Además, de acuerdo con aspectos de esta divulgación, los siguientes requisitos pueden imponerse en el dispositivo emisor para realizar conmutación ascendente:
• Al recibir una Solicitud de Velocidad de Transferencia de Bits de Transmisión de Medios Máxima Temporal (TMMBR), el emisor de vídeo debe incrementar su velocidad de envío a la requested_rate antes del transcurso de 500 ms y aumentarla antes del transcurso de 1 segundo.
[0089] Se debe entender que los "requisitos" indicados anteriormente se proporcionan con fines de ejemplos, y que las técnicas de esta divulgación se pueden aplicar también usando valores diferentes a los valores específicos descritos anteriormente. Además, aunque se atribuyen técnicas particulares a unidades particulares de la FIG. 3 para fines de explicación (por ejemplo, tal como la unidad de control de velocidad 66), debe entenderse que una o más unidades diferentes del descodificador de vídeo 42 pueden ser responsables de llevar a cabo tales técnicas. Además, dado que la VT es a menudo un flujo de comunicación bidireccional, se pueden aplicar técnicas similares tanto en la ruta de red directa como inversa, por ejemplo, mediante un dispositivo designado en el presente documento como dispositivo emisor (tal como un dispositivo que incorpora el codificador de vídeo 20 de FIG. 2) y un dispositivo designado en el presente documento como un dispositivo receptor (tal como un dispositivo que incorpora el descodificador de vídeo 42 de la FIG. 3).
[0090] La FIG. 4A y la FIG. 4B son gráficos que ilustran técnicas de adaptación de velocidad de fuente de vídeo coherentes con esta divulgación. Por ejemplo, la FIG. 4A en general ilustra una velocidad de transferencia de bits de datos codificados en un dispositivo emisor (por ejemplo, tal como el sistema de codificador 12) durante un tiempo
5
10
15
20
25
30
35
40
45
50
55
60
65
que incluye una reducción de una velocidad de enlace de red. La FIG. 4B en general ilustra el retardo resultante que está asociado con la reducción de la velocidad de enlace de red. Las técnicas de la FIG. 4A y 4B se describen con respecto al sistema de codificador 12; debe entenderse que las técnicas pueden llevarse a cabo mediante una variedad de otros dispositivos emisores que tienen una variedad de otros componentes.
[0091] En el ejemplo de la FIG. 4A, en el instante de tiempo t0, una velocidad de enlace (también denominada ancho de banda o velocidad de enlace de red) se reduce de R0 a Ri como se ilustra mediante la línea 80, donde la velocidad de envío = velocidad de enlace). En respuesta a la reducción de la velocidad de enlace de red, el sistema de codificador 12 puede reducir la velocidad de envío. Sin embargo, como se muestra en el ejemplo de la FIG. 4A, hay un retardo de respuesta (AT) de t1 asociado con la reducción de la velocidad de envío, como se ilustra mediante la línea discontinua 82. El retardo de respuesta también se puede describir en el presente documento como una duración de almacenamiento en memoria intermedia, durante el cual la velocidad de envío sobrepasa la velocidad de enlace de red y el sistema de codificador 12 es responsable de almacenar en memoria intermedia los datos que no pueden ser alojados por el enlace de red.
[0092] Como se ilustra mediante la línea 84 en el ejemplo de la FIG. 4B, el retardo (por ejemplo, el tiempo entre la disponibilidad de los datos codificados para la transmisión y el momento en que realmente se transmiten los datos codificados) aumenta de forma relativamente rápida desde D0 a D1 durante el retardo de respuesta (AT). Es decir, el retardo aumenta relativamente rápido de D0 a D1 entre el momento de la reducción de la velocidad de enlace de red t0 y el momento de la identificación de la reducción de la velocidad de enlace de red t1. El retardo puede ser proporcional a una cantidad de datos que se almacena en memoria intermedia en el sistema de codificador 12.
[0093] En el tiempo t1, los ejemplos de la FIG. 4A y 4B ilustran técnicas divergentes de velocidad de envío divergentes. Por ejemplo, la línea continua 80 ilustra un primer ejemplo en el que el sistema de codificador 12 mantiene la velocidad de envío a la velocidad de enlace de red. Por ejemplo, al identificar la reducción de la velocidad de enlace de red, el sistema de codificador 12 reduce la velocidad de envío desde la velocidad original R0 a la nueva velocidad de enlace de red reducida R1. En este ejemplo, el retardo correspondiente permanece relativamente alto, como se ilustra por la línea continua 88. Es decir, debido a que la velocidad de envío se establece en la velocidad de enlace de red R1, no hay exceso de ancho de banda con el que reducir la cantidad de datos que se han almacenado en memoria intermedia.
[0094] Las líneas discontinuas 82 y 86 ilustran un segundo ejemplo en el que el sistema de codificador 12 reduce el envío de la velocidad original R0 a una velocidad reducida Ru que es menor que la velocidad de enlace de red R1. Esto puede denominarse "no sobrepaso" de la velocidad de enlace de red. En este ejemplo, el sistema de codificador 12 puede mantener la velocidad reducida de Ru durante un tiempo de velocidad de recuperación determinado (ATu). Durante este tiempo, como se ilustra por la línea discontinua 90, el sistema de codificador 12 reduce el retardo de D1 a D2 en el momento t2.
[0095] Como se describe en el presente documento, el sistema de codificador 12 puede determinar la velocidad reducida (RU), la duración de almacenamiento en memoria intermedia (AT), y la duración velocidad de recuperación (ATu) usando una variedad de técnicas. En un ejemplo, el sistema de codificador 12 puede determinar la velocidad reducida Ru basándose en la expresión (1-fU) x R1, donde fu es un factor de no sobrepaso y R1 es la velocidad de enlace reducida, y con fu determinando la velocidad de factor de no sobrepaso (1-fU) y 0<fu<1, que relaciona la velocidad de envío con la velocidad de enlace R1. En algunos ejemplos, fu puede depender de la magnitud de la reducción de la velocidad de enlace de red, que puede representarse mediante la ecuación AR = (R 0-R1). En este ejemplo, como se muestra en la FIG. 4A, R0 es la primera velocidad de enlace de red antes de ser reducida. Si la magnitud de la reducción de la velocidad de enlace de red AR es grande, fu puede ser proporcionalmente grande. En otros ejemplos, si AR es pequeño, entonces fu puede ser proporcionalmente pequeña, como se muestra en la ecuación (6) siguiente:
fu = AR/'Ro (6)
[0096] Si el sistema de codificador 12 almacena en memoria intermedia todos los bits durante la duración de almacenamiento en memoria intermedia (AT) y contribuye a un retardo, el sistema de codificador 12 puede determinar la duración de velocidad de recuperación (ATu) basándose en la ecuación (7) siguiente:
AT-Ü = AT (Rfl-Ri) / (fu R;) (7)
donde ATu es la duración de velocidad de recuperación, AT comprende la duración del almacenamiento en memoria intermedia, R0 comprende la primera velocidad de enlace de red, R1 comprende la segunda velocidad de enlace de red reducida y fu comprende el factor de reducción de velocidad.
[0097] En algunos ejemplos, el sistema de codificador 12 puede aplicar un requisito de velocidad de transferencia de bits mínima. El requisito de velocidad de transferencia de bits mínima puede basarse en la capacidad del codificador de vídeo 20, los requisitos mínimos del sistema para la experiencia del usuario o similares. En ejemplos en los que el
5
10
15
20
25
30
35
40
45
50
55
60
sistema de codificador 12 aplica un requisito de velocidad de transferencia de bits mínima, el codificador de vídeo 20 puede aplicar el requisito de velocidad de transferencia de bits mínima a RU y, por lo tanto, también para el factor de no sobrepaso fU. Por ejemplo, el sistema de codificador 12 puede aplicar las ecuaciones (8) y (9) siguientes para determinar la velocidad reducida Ru y el factor de no sobrepaso fU:
Ru >= R-mia (8)
fu <::: 1-(R.miTi/Ri) with R¡ > Rmjr. (9)
donde Ru es la velocidad de transferencia de bits reducida, Rmin es una velocidad de codificación mínima, R1 es la segunda velocidad de enlace de red reducida, y fU es el factor de no sobrepaso.
[0098] Si durante el tiempo de velocidad de recuperación (ATu) un mensaje TMMBR es recibido por el sistema de codificador 12 que lleva un nuevo valor de velocidad R2, y R2 es significativamente mayor que R1 (por ejemplo, R2 es mayor que o igual a 1,2 multiplicado por R1), entonces el sistema de codificador 12 puede reducir la duración de velocidad de recuperación. A la inversa, si R2 es menor que R1, entonces el sistema de codificador 12 puede determinar una duración adicional o ampliada de la velocidad de recuperación.
[0099] En general, como se ha descrito anteriormente con respecto a las FIGs. 2 y 3, el sistema de codificador 12 puede estimar la duración del almacenamiento en memoria intermedia (AT) a partir de la información de red, como RTT, retardos de enlace descendente (por ejemplo, del receptor al emisor), conocimiento sobre el retardo de reacción de control de velocidad, retardo de reacción del control de congestión (por ejemplo, estimación de velocidad de enlace), retardos en la generación de mensajes (por ejemplo, retardo asociado con la generación de paquetes RTCP) o similares. Esta información de red puede estar disponible en el lado del emisor o puede señalarse al sistema de codificador 12 mediante un dispositivo receptor, tal como un dispositivo que incorpora el descodificador de vídeo 42 (FIG. 3).
[0100] Aunque el ejemplo de las FIGs. 4A y 4B ilustraba cambios paso a paso (por ejemplo, un cambio de velocidad único entre R0 y Ru) con fines ilustrativos, debe entenderse que las técnicas pueden aplicarse iterativamente de manera que el perfil de no sobrepaso sea más gradual).
[0101] La FIG. 5 es un diagrama conceptual que ilustra la determinación de una duración de almacenamiento en memoria intermedia coherente con las técnicas de esta divulgación. En el ejemplo de la FIG. 5, un dispositivo emisor (por ejemplo, tal como el sistema de codificador 12) puede enviar un informe de emisor RTCP (SR) a un dispositivo receptor (por ejemplo, tal como un sistema de descodificador 14) en el momento 120. Por ejemplo, como se describe en RFC 3550 como se indicó anteriormente, se pueden usar varios tipos de paquetes rTcP para transportar una variedad de información de control. Se puede usar un informe de emisor (SR) para las estadísticas de transmisión y recepción de los participantes que son emisores activos. Del mismo modo, se pueden usar informes de receptor (RR) para las estadísticas de recepción de participantes que no son emisores activos y en combinación con SR para emisores activos que informan en más de 31 fuentes. El dispositivo receptor puede recibir el RTCP SR en el momento 122.
[0102] El dispositivo receptor puede enviar un mensaje TMMBR RTCP a un dispositivo emisor con la velocidad de transferencia de bits máxima estimada para el canal directo en el momento 124. En algunos ejemplos, aunque puede haber retardos asociados con la generación de los mensajes, el dispositivo receptor puede enviar un mensaje TMMBR inmediatamente después de detectar la congestión. Aunque un mensaje TMMBR se describe con fines ilustrativos, se puede utilizar una variedad de otros mensajes que pueden indicar retardos / congestión.
[0103] Para facilitar al dispositivo emisor la estimación de la duración del almacenamiento en memoria intermedia (AT), el dispositivo receptor también puede enviar el mensaje RTCP RR en el momento 124. De acuerdo con aspectos de esta divulgación, un dispositivo receptor puede enviar un mensaje RR inmediatamente después del mensaje TMMBR. De esta forma, el dispositivo emisor puede recibir el mensaje TMMBR y el mensaje RR en el momento 126 y puede calcular el límite superior durante el tiempo de almacenamiento en memoria intermedia (AT) 128 como la diferencia de tiempo entre el envío del SR al que hace referencia en el RR mediante la última marca de tiempo SR (datos LSR) incluida en el RR y el momento en que se recibe el RR. En otras palabras, el dispositivo receptor puede enviar primeros datos que indiquen una solicitud de limitación de velocidad de transferencia de bits (por ejemplo, el mensaje TMMBR) y segundos datos que indiquen un momento en el que se generó un mensaje (por ejemplo, los datos LsR). Los datos LSR pueden incluir los 32 bits del medio de una marca de tiempo del protocolo de tiempo de red (NTP) de 64 bits recibida como parte del paquete RTCP SR más reciente de una fuente. Si aún no se ha recibido ningún SR, el campo de marca de tiempo LSR puede establecerse en cero.
[0104] En otro ejemplo, en lugar de enviar dos mensajes sucesivos separados (por ejemplo, TMMBR y RTCP RR) con los datos mencionados anteriormente, los datos de TMMBR y los datos de RTCP RR se pueden agrupar en un solo mensaje de RTCP. Como mínimo, el dispositivo receptor puede enviar los datos LSR, lo cual permite al
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo emisor estimar la duración del almacenamiento en memoria intermedia (AT) 128. En este ejemplo, el tamaño del mensaje puede reducirse.
[0105] El dispositivo receptor puede usar el LSR del último mensaje RTCP SR recibido, incluso si el dispositivo receptor había enviado previamente un mensaje RTCP RR que tiene el mismo LSR. Si el dispositivo receptor aún no había enviado un RR, el dispositivo receptor puede combinar un mensaje RR completo con el mensaje TMMBR. En otros ejemplos, para reducir el tamaño del mensaje, el dispositivo receptor solo puede enviar los datos LSR junto con el mensaje TMMBR, que se puede usar para calcular el RTT.
[0106] En otro ejemplo, si el dispositivo receptor ya ha enviado un RR, el dispositivo emisor puede calcular la duración de almacenamiento en memoria intermedia (AT) 128 con más precisión como la diferencia de tiempo entre la recepción del último mensaje RR recibido y el nuevo mensaje RR (por ejemplo, que fue enviado por el receptor después de que se detectó congestión).
[0107] En otro ejemplo, el dispositivo emisor puede supervisar el retardo (por ejemplo, el RTT) y el dispositivo emisor puede seguir enviando datos a la velocidad reducida Ru hasta que el retardo se reduzca suficientemente. Por ejemplo, el dispositivo emisor puede mantener la velocidad de envío a la velocidad reducida Ru hasta que la cantidad de datos almacenados en una memoria intermedia del dispositivo emisor caiga por debajo de un nivel umbral.
[0108] Las FIGs. 6A y 6B son gráficos que ilustran una reducción de la velocidad de enlace de red y un tiempo de retardo correspondiente, respectivamente. El gráfico de la FIG. 6A puede estar asociado con la línea 80 de la FIG. 4A, mientras que el gráfico de la FIG. 6B puede estar asociado con la línea 88 de la FIG. 4B. Por ejemplo, la FIG. 6A muestra un ancho de banda de red 140 ilustrado por la línea discontinua (también denominada velocidad de enlace de red) y una velocidad de envío 142 ilustrada por una línea continua (también denominada velocidad de transferencia de bits de codificación) (por ejemplo, medida en kilobytes por segundo (KBPS)). Como se ilustra en la FIG. 6A, un dispositivo emisor (por ejemplo, tal como el sistema de codificador 12) puede codificar datos a la velocidad de envío 142 a una velocidad igual o similar al ancho de banda 140. En consecuencia, cuando el ancho de banda 140 se reduce en el momento 144, el dispositivo emisor puede reducir la velocidad de envío 142 a aproximadamente el mismo valor que el ancho de banda 140.
[0109] Como se muestra en el gráfico de retardo correspondiente de la FIG. 6B, después de la reducción del ancho de banda 140, el retardo en el sistema de codificador 12 puede aumentar desde un primer nivel 146 a un segundo nivel 148 (por ejemplo, medido en milisegundos (MS)). Como se describe en el presente documento, el retardo aumenta cuando se reduce el ancho de banda, porque hay un tiempo de reacción asociado con la reducción de la velocidad de envío 142 al nivel de ancho de banda 140. El sistema de codificador 12 puede almacenar en memoria intermedia datos que están codificados a la velocidad original (mayor) antes de reducir la velocidad de envío 142 para que coincida con el ancho de banda 140. Como se muestra en la FIG. 6B. el retardo puede persistir durante un tiempo relativamente largo si no se aplican las técnicas para reducir el retardo.
[0110] Las FIGs. 7A y 7B son gráficos que ilustran una reducción de la velocidad de enlace de red y un tiempo de retardo correspondiente, respectivamente. El gráfico de la FIG. 7A puede estar asociado con las líneas 82 y 86 de la FIG. 4A, mientras que el gráfico de la FIG. 7B puede estar asociado con la línea discontinua 90 de la FIG. 4B. Por ejemplo, la FIG. 7A muestra un ancho de banda de red 160 ilustrado por una línea discontinua (también denominada velocidad de enlace de red) y una velocidad de envío 162 ilustrada por una línea continua (también denominada velocidad de transferencia de bits de codificación) (por ejemplo, medida en kilobytes por segundo (KBPS)). Como se ilustra en la FIG. 7A, un dispositivo emisor (por ejemplo, tal como el sistema de codificador 12) puede codificar inicialmente los datos a la velocidad de envío 162 a una velocidad igual o similar al ancho de banda 160.
[0111] De acuerdo con aspectos de esta divulgación, cuando el ancho de banda 160 se reduce en el momento 164, el dispositivo emisor puede reducir la velocidad de envío a una velocidad reducida que es menor que el ancho de banda 160. Es decir, el dispositivo emisor puede determinar una velocidad de envío 162 que no sobrepasa el ancho de banda 140 para reducir el retardo asociado con la reducción del ancho de banda 160. Como se describe en el presente documento, el dispositivo emisor puede determinar una duración de almacenamiento en memoria intermedia, una velocidad reducida, y/o una duración de velocidad de recuperación de acuerdo con las técnicas de esta divulgación.
[0112] Como se muestra en el gráfico de retardo correspondiente de la FIG. 7B, después de la reducción del ancho de banda 160, el retardo en el sistema de codificador 12 puede aumentar desde un primer nivel 166 a un segundo nivel 168 (por ejemplo, medido en milisegundos (MS)). Como se indicó anteriormente, el retardo aumenta al reducir el ancho de banda, porque hay un tiempo de reacción asociado con la reducción de la velocidad de envío 162 en respuesta a la reducción del ancho de banda 160. Sin embargo, al reducir la velocidad de envío 162 a una velocidad de no sobrepaso (ancho de banda de no sobrepaso 160), el sistema de codificador 12 puede reducir el retardo más rápidamente que el ejemplo mostrado en la FIG. 6B.
[0113] La FIG. 8 es un diagrama de flujo que ilustra un proceso de ejemplo para la conmutación descendente de una velocidad a la que se transmiten los datos. El ejemplo de la FIG. 8 se describe con respecto al sistema de
5
10
15
20
25
30
35
40
45
50
55
60
65
codificador 12 con fines de ilustración. Sin embargo, se debe entender que el proceso de la FIG. 8 puede llevarse a cabo mediante una variedad de otros dispositivos y/o procesadores.
[0114] El sistema de codificador 12 puede codificar y transmitir datos a través de una red a una primera velocidad (180). Mientras se transmiten los datos a la primera velocidad, el sistema de codificador 12 puede identificar una reducción de la velocidad de enlace de red desde una primera velocidad a una segunda velocidad (182). Por ejemplo, el sistema de codificador 12 puede supervisar las condiciones de la red y/o recibir uno o más mensajes que indican una reducción de la velocidad de enlace de red.
[0115] El sistema de codificador 12 puede determinar una velocidad de transferencia de bits de recuperación que es menor que la segunda velocidad de enlace de red (reducida) (184). Por ejemplo, el sistema 12 de codificador puede determinar una velocidad de transferencia de bits para codificar datos que no sobrepase la nueva velocidad de enlace de red. De acuerdo con aspectos de esta divulgación, el sistema de codificador 12 puede determinar la velocidad de transferencia de bits de recuperación basándose en la diferencia entre la primera velocidad de enlace de red y la velocidad de enlace de red reducida. Por ejemplo, si la reducción de la velocidad de enlace de red es relativamente grande, el sistema de codificador 12 puede determinar una velocidad de transferencia de bits de recuperación que es relativamente agresiva (por ejemplo, no sobrepasa la velocidad reducida en un margen sustancial). Asimismo, si la reducción de la velocidad de enlace de red es relativamente baja, el sistema de codificador 12 puede determinar una velocidad de transferencia de bits de recuperación que es relativamente conservadora (por ejemplo, no sobrepasa la velocidad reducida en un margen relativamente pequeño).
[0116] El sistema de codificador 12 también puede determinar una duración de almacenamiento en memoria intermedia basándose en un retardo de reacción (por ejemplo, un tiempo asociado con la reducción de la velocidad de envío en respuesta a la reducción de la velocidad de enlace de red) (186). El sistema de codificador 12 puede determinar la duración del almacenamiento en memoria intermedia de múltiples formas. Por ejemplo, el sistema de codificador 12 puede determinar la duración de almacenamiento en memoria intermedia estimando la duración de almacenamiento en memoria intermedia a partir de información de red, como tiempo de ida y vuelta (RTT) entre el sistema de codificador 12 y un dispositivo receptor, retardos de enlace descendente, un retardo de reacción de adaptación de velocidad, un retardo de reacción del control de la congestión, retardos en la generación de mensajes o similares. El sistema de codificador 12 puede determinar la información de red independientemente o puede recibir la información de red desde el dispositivo receptor.
[0117] El sistema de codificador 12 puede a continuación determinar la duración de velocidad de recuperación para mantener la velocidad de transferencia de bits de recuperación (188). En algunos ejemplos, el sistema de codificador 12 puede determinar la duración de velocidad de recuperación basándose en una magnitud de la velocidad de recuperación y basándose en la duración del almacenamiento en memoria intermedia. En algunos ejemplos, el sistema de codificador 12 puede determinar una duración de almacenamiento en memoria intermedia que es proporcional a la magnitud de la reducción de la velocidad de enlace de red (por ejemplo, según lo indicado por la velocidad de recuperación) y la cantidad de tiempo asociada a reaccionar a la reducción de la velocidad de enlace de red (por ejemplo, como se indica mediante la duración del almacenamiento en memoria intermedia).
[0118] El sistema de codificador 12 puede transmitir datos a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación (190). En algunos ejemplos, si la velocidad de enlace de red aumenta durante el tiempo de velocidad de recuperación, el sistema de codificador 12 puede terminar la duración de velocidad de recuperación antes de tiempo y puede conmutar a una velocidad de envío más alta. Debe entenderse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas con respecto a la FIG. 8 pueden realizarse en una secuencia diferente, pueden agregarse, fusionarse o excluirse por completo (por ejemplo, no todos los actos o eventos descritos son necesarios para la práctica de las técnicas).
[0119] La FIG. 9 es un diagrama de flujo que ilustra un proceso de ejemplo para la conmutación ascendente de una velocidad a la que se transmiten los datos. El ejemplo de la FIG. 9 se describe con respecto al sistema de descodificador 14 con fines de ilustración. Sin embargo, se debe entender que el proceso de la FIG. 9 puede llevarse a cabo mediante una variedad de otros dispositivos y/o procesadores.
[0120] El sistema de descodificador 14 puede determinar un momento en el que se reciben los datos (200). Por ejemplo, en algunos casos, el sistema de descodificador 14 puede identificar el momento en el que se reciben y almacenan los datos en el sistema de descodificador 14. En otros casos, el sistema de descodificador 14 puede identificar el momento en el que los datos son procesados (por ejemplo, descodificados) por el sistema de descodificador 14.
[0121] El sistema de descodificador 14 también puede determinar un tiempo de emisión de los datos recibidos (202). Por ejemplo, los datos recibidos pueden incluir una indicación del momento en el que los datos están destinados a ser emitidos para su visualización a un usuario. En consecuencia, la indicación del tiempo de emisión puede ayudar al sistema de descodificador 14 a organizar los datos para la salida.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0122] El sistema de descodificador 14 puede determinar un parámetro de retardo en exceso admisible (204). Por ejemplo, el sistema de descodificador 14 puede determinar el parámetro de retardo en exceso admisible basándose en una diferencia entre el momento en el que se reciben los datos y el momento en el que está programado que se emitan los datos recibidos. Como se describe en el presente documento, el retardo puede referirse al tiempo entre la disponibilidad de los datos para la transmisión a través de un enlace de red y el momento en que realmente se transmiten los datos a la red en el dispositivo emisor. En consecuencia, el parámetro de retardo en exceso admisible puede indicar una cantidad de retardo que es soportable por el sistema antes de que la experiencia del usuario se vea afectada. Es decir, el parámetro de retardo en exceso admisible puede indicar en general una cantidad de tiempo que puede ser utilizada por el dispositivo emisor como base para aumentar la velocidad de transferencia de bits sin afectar a la experiencia del usuario.
[0123] El sistema de descodificador 14 puede determinar entonces un aumento de la velocidad de transferencia de bits del emisor (206). Por ejemplo, de acuerdo con los aspectos de esta divulgación, el sistema de descodificador 14 puede determinar el aumento de la velocidad de transferencia de bits del emisor basándose en el parámetro de retardo en exceso admisible. Es decir, el sistema de descodificador 14 puede determinar cuánto puede ser aumentada la velocidad de envío por el dispositivo emisor sin introducir congestión en el sistema.
[0124] En algunos ejemplos, el sistema de descodificador 14 puede determinar un aumento de velocidad paso a paso para ser agregada a la velocidad de envío. Por ejemplo, el sistema de descodificador 14 puede determinar el aumento de la velocidad de transferencia de bits del emisor basándose en el parámetro de retardo en exceso admisible y una velocidad de envío media actual a la que se recibieron datos antes de determinar el aumento de la velocidad de envío (por ejemplo, una velocidad de recepción actual). En este ejemplo, el sistema de descodificador 14 puede determinar cuánto puede aumentarse la velocidad de envío actual sin aumentar la velocidad más allá de una velocidad de enlace sostenible (por ejemplo, una velocidad a la que los paquetes llegan al sistema de descodificador 14 después de un tiempo de emisión programado de los paquetes).
[0125] En algunos casos, el sistema de descodificador 14 también puede dar cuenta de una cantidad de tiempo requerido para transmitir mensajes entre el sistema de descodificador 14 y un dispositivo emisor (por ejemplo, un tiempo de ida y vuelta) y/o un retardo asociado con la identificación de retardo en el sistema de descodificador 14. Por ejemplo, el sistema de descodificador 14 puede determinar el aumento de la velocidad de transferencia de bits del emisor basándose en una relación del parámetro de retardo en exceso admisible multiplicado por la velocidad de recepción a una suma del tiempo de ida y vuelta y un tiempo para detectar un retardo en el sistema de descodificador 14.
[0126] El sistema de descodificador 14 puede transmitir a continuación una indicación del aumento de la velocidad de envío (208). Por ejemplo, el sistema de descodificador 14 puede enviar datos que representan un aumento de velocidad de envío paso a paso al dispositivo emisor para que el dispositivo emisor la agregue a la velocidad de envío. En otro ejemplo, el sistema de descodificador 14 puede enviar datos que representan una velocidad de envío solicitada que incorpora el aumento de la velocidad de envío al dispositivo emisor.
[0127] En algunos ejemplos, el sistema de descodificador 14 solo puede transmitir la indicación del aumento de la velocidad de transferencia de bits del emisor cuando el aumento de la velocidad de transferencia de bits del emisor excede una cantidad umbral. Por ejemplo, el sistema de descodificador 14 puede comparar un aumento de la velocidad de transferencia de bits del emisor con un umbral predeterminado. En un ejemplo, el sistema de descodificador 14 solo puede transmitir la indicación del aumento de la velocidad de transferencia de bits del emisor cuando el aumento de la velocidad de transferencia de bits del emisor excede aproximadamente el cinco por ciento de la velocidad de recepción. En otro ejemplo, el sistema de descodificador 14 solo puede transmitir la indicación del aumento de la velocidad de transferencia de bits del emisor cuando el aumento de la velocidad de transferencia de bits del emisor excede aproximadamente el quince por ciento de la velocidad de recepción. Otros valores umbral o porcentajes también son posibles.
[0128] Debe entenderse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas con respecto a la FIG. 9 pueden realizarse en una secuencia diferente, pueden agregarse, fusionarse o excluirse por completo (por ejemplo, no todos los actos o eventos descritos son necesarios para la práctica de las técnicas).
[0129] Si bien ciertos ejemplos descritos en el presente documento se han descrito con respecto a una perspectiva particular (por ejemplo, realizada por un "dispositivo emisor" o un "dispositivo receptor") debe entenderse que las técnicas de esta divulgación no están limitadas de esta forma. Por ejemplo, como se indicó anteriormente, la VT a menudo es un flujo de comunicación bidireccional. En consecuencia, se pueden aplicar técnicas similares tanto en la ruta de red directa como en la inversa, por ejemplo, tanto mediante un "dispositivo emisor" como un "dispositivo receptor". Además, aunque se muestran y describen ciertos dispositivos con respecto a una cierta perspectiva con fines ilustrativos, debe entenderse que los dispositivos descritos en el presente documento pueden tener más o menos componentes que los mostrados. Como ejemplo, un dispositivo emisor puede incorporar el codificador de vídeo 20 (FIG. 2) y el descodificador de vídeo 42 (FIG. 3) y puede realizar cada una de las técnicas descritas en el mismo.
5
10
15
20
25
30
35
40
45
50
[0130] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse o transmitirse a través de, como una o más instrucciones o códigos, un medio legible por ordenador y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0131] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender memoria RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda utilizarse para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota mediante un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidas en la definición de medio. Sin embargo, debe comprenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que en lugar de eso están dirigidas a medios de almacenamiento no transitorios, tangibles. El término disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magnéticamente, mientras que otros discos emiten datos ópticamente con láseres. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[0132] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados de aplicación específica (ASIC), matrices de puertas programables in situ (FPGA) u otra circuitería lógica equivalente, integrada o discreta. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de unidades o módulos de hardware y/o software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
[0133] Las técnicas de la esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
Claims (11)
- REIVINDICACIONES5101520253035 2.4045 3.50
- 4.5560
- 5.Un procedimiento de procesamiento de datos que comprende datos de vídeo codificados, comprendiendo el procedimiento:transmitir (180) datos a través de una red a una primera velocidad de transferencia de bits, R0;identificar (182) una reducción de una velocidad de enlace de red de la red desde una primera velocidad de enlace de red a una segunda velocidad de enlace de red, R1;implementar (190) una reducción de la velocidad de transferencia de bits de transmisión; caracterizada poren respuesta a la identificación de la reducción de la velocidad de enlace de red, determinar (184) una velocidad de transferencia de bits de recuperación, Ru, en la que transmitir los datos a través de la red determinando Ru = (1-fu) x R1, donde el factor de no sobrepaso, fu =(R0-R1)/R0, en el que la velocidad de transferencia de bits de recuperación es menor que la segunda velocidad de enlace de red;determinar (186) una duración de almacenamiento en memoria intermedia basándose en una diferencia entre un momento de la identificación de la reducción de la velocidad de enlace de red y un tiempo real estimado de la reducción de la velocidad de enlace de red;determinar (188) una duración de velocidad de recuperación durante la cual transmitir los datos a la velocidad de transferencia de bits de recuperación basándose en la duración del almacenamiento en memoria intermedia, una magnitud de la reducción de la velocidad de enlace de red, R0-R1, y el factor de no sobrepaso, fu; yen el que implementar (190) una reducción de la velocidad de transferencia de bits de transmisión comprende además implementar una reducción de la velocidad de transferencia de bits de transmisión a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinad realizando control de velocidad para reducir la velocidad de transferencia de bits de los datos a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinada.El procedimiento de la reivindicación 1, en el que la determinación de la duración de velocidad de recuperación se basa en la expresión:ATU = AT (R0-R1) / (fu Ri)en el que ATu representa la duración de velocidad de recuperación, AT representa la duración de almacenamiento en memoria intermedia, R0 representa la primera velocidad de enlace de red, R1 representa la segunda velocidad de enlace de red y fU representa el factor de no sobrepaso que se basa en la reducción de la velocidad de enlace de red.El procedimiento según la reivindicación 1, en el que determinar la velocidad de transferencia de bits de recuperación comprende determinar una velocidad de transferencia de bits de recuperación que es mayor que una velocidad de transferencia de bits mínima, basándose la velocidad de transferencia de bits mínima en una velocidad de transferencia de bits de codificación de un codificador configurado para codificar los datos.El procedimiento según la reivindicación 1, que comprende además:identificar un aumento de la velocidad de enlace de red desde la segunda velocidad de enlace de red a una tercera velocidad de enlace de red mientras se transmiten los datos durante el tiempo de velocidad de recuperación; yen respuesta a la identificación del aumento de la velocidad de enlace de red, aumentar la velocidad de transferencia de bits de recuperación a una velocidad de transferencia de bits que sea más alta que la velocidad de transferencia de bits de recuperación.El procedimiento según la reivindicación 1, en el que determinar la duración de almacenamiento en memoria intermedia comprende determinar la duración de almacenamiento en memoria intermedia basándose en al menos uno de: datos de tiempo de ida y vuelta, RTT, datos asociados con un retardo de enlace descendente desde un dispositivo receptor a un dispositivo emisor, datos asociados con un retardo de reacción de control de velocidad, datos asociados con un retardo de reacción del control de congestión, o datos asociados con retardos en la generación de mensajes.5101520253035404550556065
- 6. El procedimiento según la reivindicación 1, que comprende además:recibir datos que indiquen una velocidad de transferencia de bits máxima estimada para un canal directo desde un dispositivo emisor a un dispositivo receptor entre los cuales se transmiten los datos;recibir datos que indiquen realimentación de calidad de recepción; yen el que la determinación de la duración del almacenamiento en memoria intermedia comprende determinar la duración del almacenamiento en memoria intermedia basándose en los datos que indican la velocidad de transferencia de bits máxima estimada y los datos que indican la realimentación de la calidad de recepción.
- 7. El procedimiento según la reivindicación 6, en el que recibir los datos que indican la velocidad de transferencia de bits máxima estimada comprende recibir un mensaje de solicitud de velocidad de transferencia de bits de transmisión de medios máxima temporal, TMMBR, y en el que recibir los datos que indican la realimentación de calidad de recepción comprende recibir un mensaje de informe de receptor, RR.
- 8. El procedimiento según la reivindicación 6, en el que recibir los datos que indican la velocidad de transferencia de bits máxima estimada y recibir los datos que indican la realimentación de la calidad de recepción comprende recibir un solo mensaje que incluye los datos que indican la velocidad de transferencia de bits máxima estimada y los datos que indican la realimentación de calidad de recepción.
- 9. El procedimiento según la reivindicación 6, en el que determinar la duración de almacenamiento en memoria intermedia basándose en los datos que indican la velocidad de transferencia de bits máxima estimada y los datos que indican la realimentación de calidad de recepción comprende determinar una diferencia entre un momento en el que se envía un primer mensaje a un dispositivo receptor y un momento en el que se reciben los datos que indican la velocidad de transferencia de bits máxima estimada y los datos que indican la realimentación de la calidad de recepción.
- 10. Un aparato para procesar datos que comprende datos de vídeo codificados, comprendiendo el aparato:medios para transmitir datos a través de una red a una primera velocidad de transferencia de bits, R0;medios para identificar una reducción de una velocidad de enlace de red de la red desde una primera velocidad de enlace de red a una segunda velocidad de enlace de red, R1;medios para implementar una reducción de la velocidad de transferencia de bits de transmisión; caracterizados pormedios para determinar, en respuesta a la identificación de la reducción de la velocidad de enlace de red, una velocidad de transferencia de bits de recuperación, Ru, en la que transmitir los datos a través de la red determinando Ru = (1-fu) x R1, donde el factor de no sobrepaso fu =(R0-R1)/R0, en el que la velocidad de transferencia de bits de recuperación es menor que la segunda velocidad de enlace de red;medios para determinar una duración de almacenamiento en memoria intermedia basándose en una diferencia entre un momento de la identificación de la reducción de la velocidad de enlace de red y un momento real estimado de la reducción de la velocidad de enlace de red;medios para determinar una duración de velocidad de recuperación durante la cual transmitir los datos a la velocidad de transferencia de bits de recuperación basándose en la duración del almacenamiento en memoria intermedia, una magnitud de la reducción de la velocidad de enlace de red, R0-R1, y el factor de no sobrepaso, fu; yen el que los medios para implementar una reducción de la velocidad de transferencia de bits de transmisión comprenden además implementar una reducción de la velocidad de transferencia de bits de transmisión a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinada realizando un control de velocidad para reducir la velocidad de transferencia de bits de los datos a la velocidad de transferencia de bits de recuperación durante el tiempo de velocidad de recuperación determinada.
- 11. El aparato según la reivindicación 10, que comprende además:medios configurados para identificar un aumento de la velocidad de enlace de red desde la segunda velocidad de enlace de red a una tercera velocidad de enlace de red mientras se transmiten los datos durante el tiempo de velocidad de recuperación; y5101520medios, que responden a la identificación del aumento de la velocidad de enlace de red, configurados para aumentar la velocidad de transferencia de bits de recuperación a una velocidad de transferencia de bits que es más alta que la velocidad de transferencia de bits de recuperación.
- 12. El aparato según la reivindicación 10, que comprende además:medios configurados para recibir datos que indican una velocidad de transferencia de bits máxima estimada para un canal directo desde un dispositivo emisor a un dispositivo receptor entre los cuales se transmiten los datos;medios configurados para recibir datos que indican realimentación de calidad de recepción; yen el que los medios para determinar la duración del almacenamiento en memoria intermedia están configurados para determinar la duración del almacenamiento en memoria intermedia basándose en los datos que indican la velocidad de transferencia de bits máxima estimada y los datos que indican la realimentación de la calidad de recepción.
- 13. Un medio legible por ordenador no transitorio que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hacen que uno o más procesadores lleven a cabo el procedimiento según cualquiera de las reivindicaciones 1 a 9.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462030513P | 2014-07-29 | 2014-07-29 | |
| US201462030513P | 2014-07-29 | ||
| US14/811,491 US9426418B2 (en) | 2014-07-29 | 2015-07-28 | Reducing delay in video telephony |
| US201514811491 | 2015-07-28 | ||
| PCT/US2015/042654 WO2016019015A1 (en) | 2014-07-29 | 2015-07-29 | Reducing delay in video telephony |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2673701T3 true ES2673701T3 (es) | 2018-06-25 |
Family
ID=55181425
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES15748407T Active ES2739527T3 (es) | 2014-07-29 | 2015-07-29 | Conmutación ascendente activada por el receptor en videotelefonía |
| ES15753528.7T Active ES2673701T3 (es) | 2014-07-29 | 2015-07-29 | Reducción del retardo en videotelefonía |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES15748407T Active ES2739527T3 (es) | 2014-07-29 | 2015-07-29 | Conmutación ascendente activada por el receptor en videotelefonía |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US9438853B2 (es) |
| EP (2) | EP3175583B1 (es) |
| JP (3) | JP2017530584A (es) |
| KR (2) | KR102366630B1 (es) |
| CN (2) | CN106537855B (es) |
| AU (1) | AU2015296540B2 (es) |
| BR (2) | BR112017001510B1 (es) |
| CA (1) | CA2953711C (es) |
| ES (2) | ES2739527T3 (es) |
| HU (2) | HUE037155T2 (es) |
| WO (2) | WO2016019015A1 (es) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6172162B2 (ja) * | 2013-01-07 | 2017-08-02 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム |
| US9438853B2 (en) | 2014-07-29 | 2016-09-06 | Qualcomm Incorporated | Receiver driven up-switching in video telephony |
| BR112017009700A2 (pt) * | 2014-11-19 | 2018-01-02 | Lantiq Beteiligungs Gmbh & Co Kg | detecção de perda de conexão |
| US9872201B2 (en) | 2015-02-02 | 2018-01-16 | Accelerated Media Technologies, Inc. | Systems and methods for electronic news gathering |
| CN106937073B (zh) * | 2015-12-29 | 2019-10-15 | 展讯通信(上海)有限公司 | 基于VoLTE的视频通话码率调整方法、装置及移动终端 |
| US10492085B2 (en) | 2016-01-15 | 2019-11-26 | Qualcomm Incorporated | Real-time transport protocol congestion control techniques in video telephony |
| JP6724517B2 (ja) * | 2016-04-14 | 2020-07-15 | 日本電気株式会社 | ビットレート指示装置、ビットレート指示方法、及び、ビットレート指示プログラム |
| US10321849B2 (en) * | 2016-10-13 | 2019-06-18 | Etectrx, Inc. | System for ingestion event monitoring and method for detecting ingestion events with high accuracy |
| US12238353B2 (en) * | 2018-10-03 | 2025-02-25 | Qualcomm Incorporated | Service description for streaming media data |
| WO2020034463A1 (en) * | 2018-11-14 | 2020-02-20 | Zte Corporation | Systems and methods for determining communication parameters for non terrestrial networks |
| CN110351595B (zh) * | 2019-07-17 | 2023-08-18 | 北京百度网讯科技有限公司 | 一种缓冲处理方法、装置、设备和计算机存储介质 |
| CN110740284A (zh) * | 2019-10-30 | 2020-01-31 | 中电福富信息科技有限公司 | 一种基于网络状况调节手机视频通话动态码率的方法 |
| CN112565224B (zh) * | 2020-11-26 | 2022-08-19 | 北京经纬恒润科技股份有限公司 | 一种视频处理方法及装置 |
| WO2022126411A1 (zh) * | 2020-12-16 | 2022-06-23 | 华为技术有限公司 | 一种网络拥塞管理方法以及相关装置 |
| US11936698B2 (en) * | 2022-01-21 | 2024-03-19 | Verizon Patent And Licensing Inc. | Systems and methods for adaptive video conferencing |
| US20230396357A1 (en) * | 2022-06-01 | 2023-12-07 | Qualcomm Incorporated | Indication of network condition at a remote ue |
| US11902659B1 (en) | 2022-08-25 | 2024-02-13 | Benjamin Slotznick | Computer program product and method for auto-focusing a lighting fixture on a person in a venue who is wearing, or carrying, or holding, or speaking into a microphone at the venue |
| CN115499374B (zh) * | 2022-11-08 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 一种参数调节方法和相关装置 |
| US12184558B1 (en) * | 2022-12-16 | 2024-12-31 | Amazon Technologies, Inc. | Bandwidth estimation adaption for network stalls |
| CN118573574A (zh) * | 2023-02-28 | 2024-08-30 | 抖音视界有限公司 | 带宽估计方法、装置、电子设备及存储介质 |
| US20250191105A1 (en) * | 2023-12-11 | 2025-06-12 | Qualcomm Incorporated | Rendering delay aware packet pacing for real time multimedia applications |
Family Cites Families (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5063562A (en) * | 1990-05-23 | 1991-11-05 | International Business Machines Corporation | Flow control for high speed networks |
| KR950005150B1 (ko) | 1992-03-23 | 1995-05-18 | 조명언 | 휴대용 tv 겸용 영상모니터장치 |
| US6335922B1 (en) * | 1997-02-11 | 2002-01-01 | Qualcomm Incorporated | Method and apparatus for forward link rate scheduling |
| US6450954B1 (en) | 1999-11-01 | 2002-09-17 | New England Medical Center Hospitals, Inc. | Method of randomizing patients in a clinical trial |
| JP2004007361A (ja) * | 2001-10-11 | 2004-01-08 | Nippon Telegr & Teleph Corp <Ntt> | データ送信制御方法及びこの方法のプログラム並びにこれを用いるデータ送信装置 |
| US7379546B2 (en) | 2004-03-03 | 2008-05-27 | King Fahd University Of Petroleum And Minerals | Method for XZ-elliptic curve cryptography |
| WO2005125116A1 (en) | 2004-06-22 | 2005-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Network feedback method and device |
| CN101002192A (zh) * | 2004-07-27 | 2007-07-18 | 索尼株式会社 | 具有传输差错恢复的家庭网络系统 |
| US8977063B2 (en) | 2005-03-09 | 2015-03-10 | Qualcomm Incorporated | Region-of-interest extraction for video telephony |
| US7701851B2 (en) * | 2005-07-20 | 2010-04-20 | Vidyo, Inc. | System and method for the control of the transmission rate in packet-based digital communications |
| GB2430124B (en) * | 2005-09-09 | 2008-01-09 | Toshiba Res Europ Ltd | Quantum communication system |
| US8111720B2 (en) | 2007-01-09 | 2012-02-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations |
| US7760642B2 (en) * | 2007-03-12 | 2010-07-20 | Citrix Systems, Inc. | Systems and methods for providing quality of service precedence in TCP congestion control |
| US7957307B2 (en) * | 2007-03-14 | 2011-06-07 | Microsoft Corporation | Reducing effects of packet loss in video transmissions |
| US20080239953A1 (en) * | 2007-03-28 | 2008-10-02 | Honeywell International, Inc. | Method and apparatus for minimizing congestion in gateways |
| US8626896B2 (en) | 2007-12-13 | 2014-01-07 | Dell Products, Lp | System and method of managing network connections using a link policy |
| EP2234432B1 (en) * | 2007-12-20 | 2014-04-16 | NTT DoCoMo, Inc. | Mobile station, base station device, communication control method, and mobile communication system |
| BRPI0822489B1 (pt) * | 2008-03-12 | 2020-10-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Método para adaptar uma taxa alvo atual de um sinal de vídeo transmitido de um provedor de vídeo para um receptor de vídeo, dispositivo para calcular uma nova taxa alvo de um sinal de vídeo transmitido a partir de um provedor de vídeo, e, meio legível por computador |
| US20090305715A1 (en) * | 2008-06-04 | 2009-12-10 | Motorola, Inc. | Channel quality reporting in a wireless communication system |
| US8325754B2 (en) * | 2008-10-16 | 2012-12-04 | Soongsil University Research Consortium Techno-Park | Method for transmitting network data |
| CN101582852B (zh) * | 2009-06-10 | 2012-04-11 | 中兴通讯股份有限公司 | 一种网络拥塞管理的方法及系统 |
| US8537699B2 (en) * | 2009-06-16 | 2013-09-17 | Qualcomm Incorporated | Managing video adaptation algorithms |
| US8199665B2 (en) * | 2009-11-30 | 2012-06-12 | Samsung Electronics Co., Ltd | Apparatus and method for scheduling service based on network delay |
| US9276832B2 (en) * | 2011-03-20 | 2016-03-01 | King Abdullah University Of Science And Technology | Buffer sizing for multi-hop networks |
| US9119111B2 (en) * | 2011-08-12 | 2015-08-25 | Alcatel Lucent | Method and apparatus for controlling wireless uplink sessions |
| EP2761826B1 (en) * | 2011-09-30 | 2015-06-24 | British Telecommunications PLC | Attribution of congestion contributions |
| US10292066B2 (en) * | 2011-11-04 | 2019-05-14 | Cisco Technology, Inc. | System and method of modifying congestion control based on mobile system information |
| WO2013159209A1 (en) | 2012-04-27 | 2013-10-31 | Magor Communications Corp. | Network congestion prediction |
| US20130332621A1 (en) * | 2012-06-08 | 2013-12-12 | Ecole Polytechnique Federale De Lausanne (Epfl) | System and method for cooperative data streaming |
| US20150195209A1 (en) * | 2012-08-21 | 2015-07-09 | Paul Allen Bottorff | Congestion Notification in a Network |
| US9247448B2 (en) * | 2012-08-27 | 2016-01-26 | Qualcomm Incorporated | Device and method for adaptive rate multimedia communications on a wireless network |
| CN104662970B (zh) * | 2012-09-26 | 2019-10-11 | Lg电子株式会社 | 控制上行链路控制信道的发送功率的方法和装置 |
| TWI474740B (zh) * | 2012-12-04 | 2015-02-21 | Univ Nat Taiwan Science Tech | 資料叢發排程方法 |
| WO2014155043A1 (en) * | 2013-03-28 | 2014-10-02 | British Telecommunications Public Limited Company | Re-marking of packets for queue control |
| US11088788B2 (en) * | 2013-03-29 | 2021-08-10 | Vid Scale, Inc. | Early packet loss detection and feedback |
| US20140376376A1 (en) * | 2013-06-20 | 2014-12-25 | Alcatel-Lucent Usa Inc. | Method And Apparatus For Improved Multicast Rate Control |
| US9124520B2 (en) * | 2013-08-27 | 2015-09-01 | Cisco Technology, Inc. | Reducing buffer bloat while probing for additional bandwidth in an adaptive bitrate network |
| US9794311B2 (en) * | 2014-03-18 | 2017-10-17 | Qualcomm Incorporated | Transport accelerator implementing extended transmission control functionality |
| US9438853B2 (en) * | 2014-07-29 | 2016-09-06 | Qualcomm Incorporated | Receiver driven up-switching in video telephony |
-
2015
- 2015-07-28 US US14/811,569 patent/US9438853B2/en active Active
- 2015-07-28 US US14/811,491 patent/US9426418B2/en active Active
- 2015-07-29 CN CN201580039006.2A patent/CN106537855B/zh active Active
- 2015-07-29 CA CA2953711A patent/CA2953711C/en active Active
- 2015-07-29 BR BR112017001510-2A patent/BR112017001510B1/pt active IP Right Grant
- 2015-07-29 WO PCT/US2015/042654 patent/WO2016019015A1/en not_active Ceased
- 2015-07-29 HU HUE15753528A patent/HUE037155T2/hu unknown
- 2015-07-29 HU HUE15748407A patent/HUE043634T2/hu unknown
- 2015-07-29 CN CN201580040587.1A patent/CN106576081B/zh active Active
- 2015-07-29 JP JP2017504781A patent/JP2017530584A/ja not_active Ceased
- 2015-07-29 BR BR112017001040-2A patent/BR112017001040B1/pt active IP Right Grant
- 2015-07-29 KR KR1020177002611A patent/KR102366630B1/ko active Active
- 2015-07-29 AU AU2015296540A patent/AU2015296540B2/en active Active
- 2015-07-29 WO PCT/US2015/042664 patent/WO2016019019A1/en not_active Ceased
- 2015-07-29 ES ES15748407T patent/ES2739527T3/es active Active
- 2015-07-29 EP EP15748407.2A patent/EP3175583B1/en active Active
- 2015-07-29 KR KR1020177002609A patent/KR101727450B1/ko active Active
- 2015-07-29 EP EP15753528.7A patent/EP3175584B1/en active Active
- 2015-07-29 JP JP2017504792A patent/JP6602842B2/ja active Active
- 2015-07-29 ES ES15753528.7T patent/ES2673701T3/es active Active
-
2018
- 2018-02-21 JP JP2018028790A patent/JP6420006B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2739527T3 (es) | Conmutación ascendente activada por el receptor en videotelefonía | |
| US20100312905A1 (en) | Sustaining Live Interactive Streaming | |
| BRPI0822489B1 (pt) | Método para adaptar uma taxa alvo atual de um sinal de vídeo transmitido de um provedor de vídeo para um receptor de vídeo, dispositivo para calcular uma nova taxa alvo de um sinal de vídeo transmitido a partir de um provedor de vídeo, e, meio legível por computador | |
| US9398256B2 (en) | Telecommunication end-point device data transmission controller | |
| BRPI0806823A2 (pt) | filtro de erros para diferenciar entre erros de dados de vìdeo de link reverso e link direto | |
| CN104221317B (zh) | 发送装置、接收装置、发送方法及接收方法 | |
| EP3403379A1 (en) | Real-time transport protocol congestion control techniques in video telephony | |
| ES2940452T3 (es) | Procedimiento y servidor para la distribución de contenido de audio y/o vídeo | |
| CN104247317B (zh) | 发送装置、接收装置、发送方法及接收方法 | |
| KR101953580B1 (ko) | 영상회의 시스템에서 데이터 송수신 장치 및 방법 | |
| KR20150086110A (ko) | 부호화된 비디오 스트림 전송 장치 및 방법 | |
| Dhamodaran et al. | Adaptive bitstream prioritization for dual TCP/UDP streaming of HD video | |
| EP2993855A1 (en) | Method, conference router, system and computer-readable medium for transmitting video streams | |
| Ho et al. | Networking cost effective video streaming system over heterogeneous wireless networks | |
| Dhamodaran | Optimization of Flexible Dual-TCP/UDP Streaming Protocol For HD Video Streaming over 802.11 Wireless Networks |