ES2894240T3 - Método para iniciar una transmisión de un contenido de generación de flujo suministrado a un dispositivo cliente y punto de acceso para implementar este método - Google Patents
Método para iniciar una transmisión de un contenido de generación de flujo suministrado a un dispositivo cliente y punto de acceso para implementar este método Download PDFInfo
- Publication number
- ES2894240T3 ES2894240T3 ES16725827T ES16725827T ES2894240T3 ES 2894240 T3 ES2894240 T3 ES 2894240T3 ES 16725827 T ES16725827 T ES 16725827T ES 16725827 T ES16725827 T ES 16725827T ES 2894240 T3 ES2894240 T3 ES 2894240T3
- Authority
- ES
- Spain
- Prior art keywords
- segments
- access point
- client device
- payload
- local access
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000005540 biological transmission Effects 0.000 title claims abstract description 17
- 230000000977 initiatory effect Effects 0.000 title claims abstract description 7
- 238000009877 rendering Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000003139 buffering effect Effects 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 11
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 23
- 238000007781 pre-processing Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 230000007704 transition Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000033458 reproduction Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Classifications
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
- H04L65/1089—In-session procedures by adding media; by removing media
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un método para iniciar una transmisión de un flujo (13) de programa para suministro desde un punto (40) de acceso local a un dispositivo (50) cliente siguiendo una solicitud enviada por el dispositivo (50) cliente al punto (40) de acceso local, que es reenviada por el punto (40) de acceso local a un proveedor de contenido de programa, estando dicho flujo (13) de programa estructurado en segmentos (3) regulares que se preparan en tiempo real después de que un usuario final los solicite, y estando dicho dispositivo (50) cliente configurado para requerir almacenar en búfer un número predeterminado de segmentos, o al menos una cierta duración de tiempo que corresponde a tal número de segmentos, para iniciar una representación de un evento de dicho flujo (13) de programa, caracterizado porque comprende: procesar, mediante el punto (40) de acceso local, al menos uno de los segmentos (3) regulares recibido desde el proveedor de contenido en un conjunto (4) de salida de segundo tipo de segmentos (5), en donde el al menos un segmento (3) regular porta una carga útil de una primera duración (T1) de reproducción, y al menos una marca de tiempo usada para especificar cuándo y/o durante cuánto tiempo el segmento debe ser representado por el dispositivo cliente y la carga útil de dicho conjunto (4) de salida representa una segunda duración (T2) de reproducción que es mayor que la de la primera duración (T1) de reproducción, en donde el punto (40) de acceso local puede modificar la marca de tiempo recibida, o aplicar un factor de ralentización a tal marca de tiempo, con el fin de obtener la segunda duración (T2) de reproducción antes mencionada, en donde dicho conjunto (4) comprende un número de segundo tipo de segmentos (5) al menos equivalente al número predeterminado de segmentos requeridos por el dispositivo cliente para iniciar la representación del evento, y transmitir, durante un período inicial, dicho conjunto (4) de segundo tipo de segmentos (5) desde el punto (40) de acceso local al dispositivo (50) cliente.
Description
DESCRIPCIÓN
Método para iniciar una transmisión de un contenido de generación de flujo suministrado a un dispositivo cliente y punto de acceso para implementar este método
Campo técnico
El campo de esta divulgación se relaciona con el contenido multimedia de generación de flujo en vivo o registrado.
Antecedentes
El contenido multimedia de generación de flujo involucra la transmisión y reproducción de archivos de datos digitales de audio y/o vídeo que se reciben sobre una base continua con propósitos de representación. El contenido de medios típicamente se relaciona con un evento discreto tal como una película, un evento deportivo, un episodio de programa, un documental, una canción, un discurso, o un podcast. El contenido de medios relacionado con un evento se transmite típicamente en un flujo de programa, que puede considerarse como un contenedor que porta los datos relacionados con el evento. Un flujo de programa usualmente (pero no necesariamente) incluye diferentes tipos de datos, tales como uno o varios flujos de audio, un flujo de vídeo y metadatos que se entrelazan en conjunto mediante un proceso de multiplexación para crear un flujo de programa para un evento dado. Todos los datos dentro de tal flujo de programa se relacionan con un único evento. Por el contrario, un flujo de transporte puede considerarse como un contenedor más grande adecuado para portar simultáneamente varios flujos de programas para diferentes eventos.
El flujo de programa puede ser radiodifundido o proporcionado bajo demanda por un servidor de generación de flujo, por ejemplo una cabecera, a un dispositivo cliente a través de un punto de acceso local, tal como una pasarela, vinculando el dispositivo cliente al servidor de generación de flujo. La transmisión de datos se lleva a cabo generalmente a través de una red de comunicación a la cual está conectado el punto de acceso local. El servidor de generación de flujo se puede considerar como un servidor de medios que está remoto desde un entorno local (entorno doméstico o empresarial). El entorno local incluye el punto de acceso local y el dispositivo cliente. El dispositivo cliente puede incluir un dispositivo de representación o puede ser conectable a un dispositivo de representación externo, tal como una pantalla de visualización o un altavoz de audio. El dispositivo cliente podría ser un reproductor de medios, un ordenador personal, un teléfono inteligente, un ordenador tipo tableta personal o un decodificador.
El flujo de programa es transmitido continuamente por el servidor de generación de flujo con el fin de suministrar al dispositivo cliente a través del punto de acceso local. El punto de acceso local está configurado para adaptar el flujo de programa de acuerdo con las capacidades de representación del dispositivo cliente o para proporcionar acceso a la red de generación de flujo, especialmente en circunstancias donde el dispositivo cliente no está adaptado para realizar estas funciones. El flujo de programa es proporcionado por el punto de acceso local al dispositivo cliente bajo un protocolo de generación de flujo. Por conveniencia, tal protocolo se basa en la fragmentación del flujo de programa de tal manera que forme una secuencia de segmentos (fragmentos). Con este fin, el punto de acceso local fragmenta el flujo de programa en segmentos. La preparación de estos segmentos se realiza en tiempo real, después de que el usuario final los solicite. Un ejemplo de un protocolo de generación de flujo es Generación de Flujo en Vivo de HTTP (también conocido como HLS), que funciona dividiendo el flujo de programa en una secuencia de archivos de contenido cortos. Cada uno de estos archivos de contenido puede considerarse como un contenedor que contiene un segmento del flujo de programa en una forma codificada. Por consiguiente, cada segmento comprende una porción codificada de un único evento. Como cada segmento puede comprender además otros datos tales como un identificador dentro de un encabezado, la porción codificada relacionada con el evento se refiere más específicamente a la carga útil del segmento.
Se hace referencia a cada archivo de contenido dentro de al menos un archivo de índice que se conoce como lista de reproducción o archivo de manifiesto. El archivo de índice proporciona al menos el URL (Localizador Uniforme de Recursos) de cada archivo de contenido. Una vez que el archivo de índice es obtenido por el reproductor de medios, este último puede descargar sucesivamente un archivo de contenido que constituye una porción del evento y reproducir el contenido de este archivo de contenido. La Generación de Flujo Dinámica Adaptativa sobre HTTP (DASH), también conocida como MPEG-DASH, es una técnica de generación de flujo de tasa de bits adaptativa que funciona de una manera similar a las soluciones basadas en HLS. También con base en una lista de reproducción y archivo de contenido, las técnicas de MPEG-DASH se divulgan en la publicación de solicitud de patente US 201010169303.
La generación de flujo en vivo se refiere al contenido creado y transmitido en tiempo real. Esto se produce por ejemplo cuando una cámara de vídeo (por ejemplo, una cámara web) captura imágenes que luego se codifican antes de ser transmitidas o radiodifundidas a través de una red de comunicación tal como el Internet. Por otro lado, en un contexto en no tiempo real que se produce por ejemplo cuando se radiodifunde un programa de televisión desplazado en tiempo, las imágenes son recolectadas primero por el servidor de generación de flujo y luego transmitidas en un momento posterior.
Con el fin de reproducir imágenes contenidas en un archivo de contenido de vídeo, el dispositivo cliente primero debe descargar este archivo de contenido. El dispositivo cliente no puede procesar el archivo de contenido en tanto que no esté completamente descargado. Adicionalmente, algunos reproductores de medios están configurados para
almacenar en búfer más de un archivo de contenido antes de liberar el contenido relacionado. El almacenamiento en búfer de varios archivos de contenido parece ser muy útil para suavizar la variación a corto plazo en los tiempos de llegada de archivos de contenido causada típicamente por las variaciones de ancho de banda de red o congestión de servidor de generación de flujo. Teniendo en cuenta que la carga útil de cada segmento representa una duración de reproducción en el orden de varios segundos (típicamente entre 2 y 10 segundos), almacenaren búfertres segmentos por ejemplo, puede proporcionar una reserva de reproducción de hasta 6 a 30 segundos. Por consiguiente, el almacenamiento en búfer de una cantidad suficiente de datos permite que ciertas perturbaciones tales como congelación a corto plazo de imágenes durante la reproducción de contenido de audio/vídeo sean evitadas. Además, el punto de acceso local también necesita adquirir el contenido antes de poder suministrarlo al dispositivo cliente. De este modo, un retraso extra es añadido por el punto de acceso local debido a tener que ajustar al contenido correcto y preparar su suministro al dispositivo cliente. Por lo tanto típicamente se pueden añadir 2 a 5 segundos.
Un inconveniente resulta de almacenar en búfer datos como se describió anteriormente en que puede haber un lapso de tiempo significativo entre el momento en que un usuario solicita un evento y el momento en que se reproducen los primeros datos relacionados con el evento en el dispositivo de representación. De hecho, durante este intervalo de tiempo, el usuario final tiene que esperar hasta que se complete el almacenamiento en búfer de los archivos de contenido antes de que la carga útil del segmento contenido en el primer archivo de contenido pueda reproducirse en el dispositivo de representación. Dependiendo de la longitud del segmento, el tiempo requerido para llenar el búfer del dispositivo cliente puede ser significativo, en particular para la generación de flujo en vivo. De hecho, en el caso donde la carga útil de cada segmento represente una reproducción de 10 segundos y el búfer esté dimensionado para almacenar en búfer al menos tres de tales segmentos, el usuario final esperará hasta aproximadamente 30 segundos antes de que se visualice la primera imagen del contenido en vivo. Durante el tiempo de espera requerido para llenar el búfer, la pantalla de visualización permanece negra, para descontento del usuario.
Este problema técnico se produce cuando el usuario final enciende su reproductor de medios para obtener un contenido de generación de flujo así como cuando el usuario final conmuta desde un primer evento de generación de flujo a un segundo evento de generación de flujo (por ejemplo cuando zapea/navega/conmuta entre canales).
Para reducir el tiempo de zapeo, se ha sugerido adivinar los próximos canales probables a los que el usuario final podría conmutar con el fin de adquirir simultáneamente datos relacionados con dichos canales probables. Sin embargo, tal solución solo es adecuada si el punto de acceso local tiene recursos suficientes para ofrecer este servicio a cada dispositivo cliente en la vivienda o en el entorno empresarial, lo cual es muy poco probable especialmente dado que la adaptación de contenido (por ejemplo transcodificación) requiere recursos significativos en la parte del punto de acceso local, en particular los recursos que el punto de acceso local puede no tener necesariamente.
El documento WO 2012/094363 aborda un problema en donde el archivo de manifiesto (lista de reproducción) usualmente solo está disponible para el dispositivo cliente una vez que al menos un mínimo de segmentos de vídeo se han almacenado en búfer y su carga útil está lista para reproducirse. Para reducir la latencia causada por este tiempo de almacenamiento en búfer, se sugiere que el archivo de manifiesto esté disponible con anticipación, es decir antes de que el mínimo de segmentos de vídeo que van a ser almacenados en búfer se hayan en realidad almacenado en búfer. Por consiguiente, el dispositivo cliente puede reproducir la carga útil del primer segmento del evento antes de que se haya almacenado en búfer el número mínimo de segmentos.
Aunque esta solución es relevante para algunos reproductores de medios, sigue siendo ineficiente para ciertos otros reproductores de medios debido a las configuraciones únicas impuestas por los fabricantes. De hecho, algunos dispositivos cliente están diseñados para autorizar la reproducción de la carga útil del primer segmento una vez que al menos un número predeterminado de segmentos se ha almacenado en búfer debidamente en su búfer. Por ejemplo, con el fin de obtener una reserva de reproducción suficiente, algunos reproductores de medios están configurados para almacenar en búfer al menos tres segmentos antes de activar la representación del evento mediante la reproducción de la carga útil del primer segmento almacenado en búfer. Desafortunadamente, los usuarios finales de estos reproductores de medios preconfigurados no tienen alternativa y deben esperar hasta que se haya almacenado en búfer realmente el número requerido de segmentos. Por consiguiente, hay una necesidad de proporcionar una solución global, a saber una solución que sea adecuada para cualquier dispositivo cliente. Tal solución debe reducir la latencia de almacenamiento en búfer de contenido que se produce cuando se enciende el dispositivo cliente, así como cuando el dispositivo conmuta desde un flujo de programa a otro, mientras que cumple con la configuración impuesta por el fabricante de dispositivo cliente en términos de número mínimo de segmentos o reserva de tiempo de reproducción para ser almacenados en búfer.
El documento WO 2014204366 A1 muestra la provisión de segmentos de reproducción que tienen una longitud diferente que pueden ya sea ser creados por un codificador o por un nodo de red intermedio (proxy) asociado con el servidor de contenido, de tal manera que reduce el retraso de reproducción para los clientes servidos desde un proxy. Cuando un usuario se une a un nuevo canal de generación de flujo, el segmento que da el retraso más corto es el que inicialmente debería ser proporcionado por el proxy por defecto y, después, se adapta la longitud del segmento con el fin de proporcionar una mejor calidad para un cliente específico. Sin embargo, la adaptación de segmento no se produce al inicio del servicio de contenido.
Preferiblemente, tal solución debe reducir dicha latencia de almacenamiento en búfer, mientras que constituye sucesivamente una reserva de reproducción al almacenar en búfer tantos segmentos o tanto tiempo de reproducción como se requiera por el dispositivo cliente, de tal manera que se cumpla con la configuración impuesta por el fabricante.
Resumen
Una solución que permite una experiencia de representación mejorada, mientras que cumple con las especificaciones del dispositivo cliente con respecto al número de segmentos que primero deben almacenarse en búfer, proporciona una forma particular de permitir el número requerido de segmentos, o la reserva de tiempo de reproducción requerida, para almacenarse en búfer mientras que también reduce el intervalo de tiempo durante el cual no se reproduce ningún contenido.
Esta solución se logra generando, a partir de al menos un segmento regular que usualmente es liberado por un punto de acceso local, un conjunto de segmentos particulares que proporcionan un intervalo de tiempo de reproducción más largo que el segmento regular. Preferiblemente, el intervalo de tiempo de reproducción más largo es suficiente para cumplir con el requerimiento de prerrequisito de dispositivo cliente para iniciar una representación del evento. Con respecto a una experiencia de audio y/o visual, el usuario final puede apreciar el inicio más rápido de la representación del evento, aunque los primeros pocos segundos de la representación de este evento parecerán reproducirse a una tasa más lenta. Por consiguiente, la solución tiene en cuenta la experiencia del usuario final en lugar de centrarse en el rendimiento real de hardware para lograr correctamente la representación del evento cuando se enciende el dispositivo cliente o cuando se conmuta desde un flujo de programa a otro. Dado que en cualquier caso el usuario final está más satisfecho mediante una tasa más lenta de reproducción de vídeo durante un intervalo de tiempo de transición aceptable que ser presentado con una pantalla negra durante el mismo intervalo de tiempo, esta solución proporciona una mejora de la experiencia visual durante los momentos críticos.
Más específicamente, se divulga un método, de acuerdo con la reivindicación independiente 1, para iniciar una transmisión de un contenido de generación de flujo que va a ser suministrado a un dispositivo cliente, mediante un punto de acceso, en particular un punto de acceso local tal como una pasarela por ejemplo. Este contenido de generación de flujo está estructurado en una pluralidad de segmentos (segmentos regulares) que en conjunto se relacionan con un único evento. Cada uno de estos segmentos porta una carga útil que proporciona una experiencia de representación de una primera duración de reproducción. En otras palabras, cada uno de estos segmentos representa un primer intervalo de tiempo de reproducción, en particular cuando la carga útil contenida en cada uno de estos segmentos es reproducida por el dispositivo cliente a una velocidad nominal. El método comprende las etapas de:
- procesar, mediante el punto de acceso local, al menos uno de los segmentos regulares recibidos desde el proveedor de contenido en un conjunto de salida de segundo tipo de segmentos, en donde el al menos un segmento regular porta una carga útil de una primera duración (T1) de reproducción, y al menos una marca de tiempo usada para especificar cuándo y/o durante cuánto tiempo el segmento debe ser representado por el dispositivo cliente y la carga útil de dicho conjunto de salida representa una segunda duración (T2) de reproducción que es mayor que la de la primera duración (T1) de reproducción, en donde el punto de acceso local puede modificar la marca de tiempo recibida, o aplicar un factor de ralentización a tal marca de tiempo, con el fin de obtener la segunda duración (T2) de reproducción antes mencionada, en donde dicho conjunto comprende un número de segundo tipo de segmentos al menos equivalente al número predeterminado de segmentos requeridos por el dispositivo cliente para iniciar la representación del evento, y
- transmitir, durante un período inicial, desde el punto de acceso local dicho conjunto de segundo tipo de segmentos desde el punto de acceso local al dispositivo cliente.
El dispositivo cliente está configurado de tal manera que primero se debe almacenar en búfer un número predeterminado de segmentos antes de que se permita la iniciación de la reproducción del evento. Como cada segmento representa cierta duración de reproducción, el dispositivo cliente puede considerarse como configurado de tal manera que la duración de reproducción predeterminada primero debe almacenarse en búfer antes de que se permita la iniciación de la reproducción del evento.
Preferiblemente, la duración del conjunto de segmentos particulares se expande en relación con el segmento o segmentos regulares en los cuales se basa el conjunto de segmentos particulares de una forma que reduce la frecuencia a la cual cambia la información durante la representación de los segmentos particulares. Con respecto al vídeo, esta reducción en tasa de cambio de información dará como resultado la aparición de cámara lenta o pausas breves de vídeo. Con respecto al audio, la reducción en la tasa de cambio de información se percibirá como un desplazamiento hacia abajo en frecuencia de la información de audio (por ejemplo, una voz humana será más profunda) o tartamudeo.
Además, la etapa de procesamiento antes mencionada se inicia durante el período de almacenamiento en búfer inicial, es decir las primeras etapas de la transmisión del evento, durante una operación de preprocesamiento. Más
específicamente, esta operación de preprocesamiento se realiza en el contenido de generación de flujo al menos una vez para "sustituir" un conjunto de segmentos particulares por al menos un segmento regular.
Durante la operación de preprocesamiento, se pueden usar varias técnicas para extender la primera duración de reproducción (que representa la carga útil de un segmento regular) a una segunda duración de reproducción (que representa la carga útil contenida en el conjunto relacionado de segmentos particulares). Estas técnicas pueden involucrar:
- modificar una o varias marcas de tiempo usadas para determinar el momento cuando se debe reproducir la carga útil de un segmento regular (o una o varias porciones de su carga útil),
- aplicar un factor de ralentización a tal marca de tiempo en lugar de modificarla,
- modificar la carga útil de un segmento regular duplicando algunas entidades elementales que constituyen esta carga útil, siendo dichas entidades elementales marcos de audio o vídeo del contenido de medios relacionado,
- modificar la carga útil de un segmento regular añadiendo al menos una de tales entidades elementales, por ejemplo añadiendo marcos de audio y/o vídeo interpolados,
- proporcionar una instrucción para forzar una o más reproducciones de una o más de las entidades elementales (sin modificar la carga útil del segmento).
La solución también comprende un sistema para implementar el método mencionado anteriormente, junto con varias realizaciones relacionadas.
Finalmente, la solución también comprende un punto de acceso, de acuerdo con la reivindicación independiente 10, (más específicamente un punto de acceso local) que soporta el acoplamiento de un dispositivo cliente, para iniciar la transmisión del contenido de generación de flujo, utilizable para la implementación del método y sistema relacionados divulgados en la presente descripción.
Como resultado de la solución, la representación del evento suministrado a través del contenido de generación de flujo puede iniciar antes, en particular con respecto a los requerimientos de prerrequisitos de dispositivo cliente para iniciar la representación del evento. Tales requerimientos pueden relacionarse con un número predefinido de segmentos (o archivos de contenido), o una duración de reproducción predefinida, que debe primero almacenarse en búfer antes de que pueda comenzar la reproducción del evento.
Otras ventajas y realizaciones se describen en las reivindicaciones dependientes y se presentarán en la siguiente descripción detallada.
Breve descripción de los dibujos
La siguiente descripción detallada se entenderá mejor con referencia a las figuras adjuntas en las cuales:
La figura 1 representa esquemáticamente una visión general de arquitectura de un sistema dentro del cual se pueden desplegar realizaciones.
La figura 2 es un diagrama que muestra dos escenarios que ilustran una realización para representar segmentos que pertenecen a un contenido de generación de flujo.
La figura 3 es una ilustración esquemática más detallada del dispositivo cliente del sistema mostrado en la arquitectura de la figura 1.
La figura 4 es una ilustración esquemática más detallada de un punto de acceso, en particular un punto de acceso local tal como una pasarela, adecuado para implementar los métodos y los sistemas divulgados en este documento.
Descripción detallada
La figura 1 muestra esquemáticamente una visión general de un sistema que comprende tres áreas principales interconectadas, a saber un proveedor 10 de contenido, una red 20 de comunicación, y un área 30 doméstica o comercial. El proveedor 10 de contenido puede referirse a un servidor de generación de flujo remoto o una cabecera adecuada para suministrar contenido 13 de generación de flujo. Con este fin, el proveedor 10 de contenido puede incluir una base de datos 15 o puede estar conectado a tal base de datos como se muestra en la figura 1. La base de datos 15 puede usarse para almacenar contenido de medios que podría ser solicitado por clientes en un contexto de vídeo a pedido (VOD) por ejemplo, o que podría radiodifundirse en un sistema de Televisión por Protocolo de Internet (IPTV) por ejemplo.
Típicamente, la red 20 de comunicación es una red de área amplia tal como una red de Satélite, una red de radiodifusión por Cable, el Internet o cualquier otro tipo de red. Esta red de comunicación se usa para vincular el
entorno de proveedor de contenido al área doméstica o comercial que de aquí en adelante se denomina área 30 doméstica.
El área 30 doméstica comprende un punto 40 de acceso local (por ejemplo una pasarela), un dispositivo 50 cliente y un dispositivo 60 de representación. Por supuesto, esta área doméstica puede incluir más de un dispositivo cliente, que se puede conectar o interconectar a través de una red de comunicación local, tal como una LAN o una WLAN (Red de Área Local Inalámbrica). Más específicamente, el dispositivo 50 cliente es conectable al punto 40 de acceso local mediante un primer enlace 31 de comunicación y, si lo hubiera, podría ser conectable además a un dispositivo 60 de representación mediante un segundo enlace 32 de comunicación. El punto 40 de acceso local actúa como un interfaz para conectar el área 30 doméstica a la red 20 de comunicación amplia. El dispositivo 50 cliente, puede estar representado por ejemplo por un ordenador personal, un teléfono inteligente, un ordenador tipo tableta personal, un decodificador o cualquier otro reproductor de medios. El dispositivo 60 de representación es típicamente una pantalla de visualización y/o un sistema de representación de audio tal como altavoces.
El contenido 13 de generación de flujo se relaciona con contenido de medios tal como contenido de audio y/o vídeo (por ejemplo, un flujo de programa) que se transmite sobre una base continua al dispositivo 50 cliente para una representación instantánea o casi instantánea. Este contenido se relaciona con un único evento, por ejemplo una película, un programa de televisión o radio de un canal de televisión o radio, un vídeo, un podcast, un álbum de música o una canción. En la siguiente descripción, el contenido de generación de flujo se referirá a un contenido de vídeo tomado como un ejemplo no limitativo. Por el propósito de conveniencia, el contenido de generación de flujo está estructurado como una pluralidad de segmentos 3 por el punto 40 de acceso local. Tal segmentación es conforme con un protocolo de generación de flujo, tal como HLS o cualquier otro protocolo adecuado. De acuerdo con algunos protocolos, tales segmentos se denominan como un archivo de contenido y pueden ser procesados ventajosamente como cualquier archivo de datos común por numerosos dispositivos cliente.
Cada segmento está configurado para portar un fragmento del evento. Un fragmento es una porción que representa un breve intervalo de tiempo del evento. Esta porción se conoce como la carga útil del segmento, debido a que enfrente de esta carga útil, el segmento generalmente comprende además un encabezado. Tal encabezado se usa para identificar el segmento al cual pertenece y también se puede usar para portar otros datos, tales como una o dos referencias de temporización. Al disponer sucesivamente todos los segmentos de un único evento de una manera ordenada, de acuerdo con su identificador, tal evento se puede reconstruir fácilmente.
Suponiendo que el contenido de generación de flujo se refiere a un contenido visual, la carga útil de cada segmento está hecha de una sucesión de imágenes, siendo cada imagen conocida como un marco por la persona experta en la técnica. Cada uno de estos marcos comprende además un encabezado de marco que define el tipo de codificación del marco. Más específicamente, cada segmento comienza con una imagen codificada de IDR (Actualización Instantánea de Decodificador).
Con referencia por ejemplo al formato de MPEG, el encabezado de marco define si el marco se relaciona con un marco I (imagen Intracodificada), un marco P (imagen codificada predictiva) o un marco B (imagen codificada bipredictiva). Los marcos de un flujo de vídeo codificado se agrupan en Grupo De Imágenes (GOP), teniendo cada GOP su propio encabezado de GOP. Un GOP es una secuencia corta de aproximadamente 6 a 15 marcos dispuestos de una manera específica. Por ejemplo, un GOP se puede representar mediante una secuencia de los siguientes 12 marcos: I1-B2-B3-P4-B5-B6-P7-B8-B9-P10-B11-B12.
Los marcos I corresponden a imágenes de referencia, de tal manera que todos los datos (es decir píxeles) relacionados con tal imagen se transmiten en el flujo de vídeo. Por el contrario, los marcos B y marcos P se pueden determinar sobre la base de algunos datos que definen qué se ha cambiado desde un marco a otro y cómo se produjeron estos cambios. Por consiguiente, la secuencia de marcos B y marcos P que pertenecen a un mismo GOP se puede calcular sobre la base de:
- el marco I de este GOP,
- datos complementarios relacionados, y
- marco P calculado anterior de este GOP, si lo hubiera.
Los datos complementarios mencionados anteriormente incluyen vectores de movimiento que definen cómo ciertas áreas de una imagen se han movido desde un marco a otro.
Dado que el cálculo de marcos P y marcos B depende de al menos un marco previo (marco I y/o marco P), debe anotarse que los marcos de un GOP no se decodifican en el mismo orden en el cual se presentan. Por lo tanto hay una necesidad de identificar en cuál orden los marcos deben decodificarse sucesivamente. Con este fin, se usa una primera marca de tiempo, conocida como una Marca de Tiempo de Decodificación (DTS), para determinar cuándo se debe decodificar cada marco, y se usa una segunda marca de tiempo, conocida como una Marca de Tiempo de Presentación (PTS), para determinar cuándo se deben presentar estos marcos.
De acuerdo con tal estructura de flujo de programa, cada segmento porta una carga útil que representa un cierto intervalo de tiempo cuando la carga útil es reproducida por el dispositivo cliente a una velocidad nominal (es decir a una velocidad normal). El intervalo de tiempo no es necesariamente el mismo para cada segmento. Este intervalo de tiempo se identificará como primera duración T1 de reproducción en la presente descripción.
Ahora, se explicarán con más detalle las realizaciones de etapas de un método para iniciar la transmisión de un flujo de programa. Debe anotarse que algunas etapas son opcionales y se han mencionado en una realización particular para permitir un mejor entendimiento del método.
Como una primera etapa, se genera una solicitud 35 para recibir un flujo de programa específico. La generación de tal solicitud puede ser realizada por el usuario, típicamente presionando un botón en un control 56 remoto (figura 3), seleccionando un URL o haciendo clic en un botón o hipervínculo que se despliega en la pantalla de un ordenador personal, un ordenador tipo tableta, un teléfono inteligente o cualquier dispositivo similar. La solicitud se puede generar cuando el usuario final desea obtener un contenido de medios por primera vez durante una sesión, por ejemplo justo después de haber encendido el reproductor de medios. Alternativamente, la solicitud se puede generar cuando el usuario desea conmutar desde un primer contenido de medios que es reproducido actualmente a un segundo contenido de medios. Esta situación se produce cuando el usuario zapea (navega o conmuta) entre varios contenidos de medios por ejemplo. Esta solicitud puede incluir datos para identificar el contenido solicitado u otra información, por ejemplo información para identificar el dispositivo cliente o una tasa de bits específica (o una resolución de vídeo) adecuada para descargar el contenido.
Una vez que se ha generado esta solicitud 35, se envía al punto 40 de acceso local como se muestra en la figura 1. Luego el punto de acceso local selecciona el flujo de programa solicitado. En la presente descripción, el punto de acceso local puede ser una pasarela tomada como un ejemplo no limitante. Por consiguiente, se podría usar otra entidad en lugar de tal pasarela.
Dependiendo del formato de codificación, el punto 40 de acceso local puede tener que transcodificar el flujo 13 de programa de entrada en un formato de codificación compatible con el dispositivo cliente. Tal conversión de formato puede ser realizada por un transcodificador 44 (figura 4) en el punto 40 de acceso local. Después de que el contenido ha sido decodificado y antes de que sea codificado de nuevo por el transcodificador, el contenido aparece en un formato sin procesar.
Una vez que el contenido de medios está en un formato de codificación adecuado y se ha fragmentado en los segmentos 3, el punto 40 de acceso local puede iniciar la transmisión del flujo 13 de programa al dispositivo 50 cliente. Este último almacena en búfer un número predeterminado de segmentos 3 en un búfer 53 ubicado dentro del dispositivo cliente antes de iniciar la reproducción del evento. Este número predeterminado de segmentos 3 depende de la especificación del dispositivo 50 cliente, en particular depende de la configuración impuesta por el fabricante. De hecho, algunos dispositivos 50 cliente están diseñados para autorizar la reproducción de la carga útil del primer segmento una vez que al menos un número predeterminado de segmentos se haya almacenado en búfer debidamente en su búfer, o una vez que al menos una duración predeterminada se haya almacenado en búfer debidamente en su búfer. Por ejemplo, con el fin de obtener una reserva de reproducción suficiente, algunos reproductores de medios están configurados para almacenar en búfer al menos tres segmentos (o al menos una cierta duración de tiempo que corresponde a tal número de segmentos, por ejemplo 30 segundos) antes de activar la representación del evento mediante la reproducción de la carga útil del primer segmento almacenado en búfer. Debe entenderse que tal prerrequisito no se puede cambiar y define el requerimiento de dispositivo cliente para iniciar una representación del evento.
Tan pronto como se haya almacenado en búfer el número requerido de segmentos (es decir el número predeterminado de segmentos), el dispositivo 50 cliente activa la representación del flujo de programa, por ejemplo a través del enlace 32 de comunicación, hacia el dispositivo 60 de representación. Este contenido 6 se puede suministrar al dispositivo 60 de representación de acuerdo con un formato adicional, de tal manera que la forma del contenido que se ingresa en el dispositivo cliente puede ser diferente de la del contenido que se emite desde el dispositivo cliente.
Al mismo tiempo que se realiza la representación, los segmentos sucesivos adicionales relacionados con el evento actual se almacenan en búfer de una manera continua de tal manera que se asegure la reproducción regular de su carga útil hasta el final del evento.
Antes de iniciar la reproducción de los marcos contenidos en los primeros segmentos, se debe cargar el búfer hasta alcanzar un nivel predeterminado. Tal operación de almacenamiento en búfer toma una cierta cantidad de tiempo, lo cual se denomina como un primer período de almacenamiento en búfer. Varios parámetros influyen en el primer período de almacenamiento en búfer. Por ejemplo, el primer parámetro podría ser la cantidad de datos contenidos en un segmento 3. Varios factores pueden influir en la cantidad de datos, incluyendo pero no limitados a la tasa de compresión de datos, la resolución de los datos y/o la primera duración T1 de reproducción. Usualmente, todos los segmentos proporcionan (casi) la misma primera duración de reproducción, sin embargo debe anotarse que esto no es imperativo.
Con el fin de proporcionar una satisfacción al usuario mejorada durante la reproducción del flujo de programa, se almacenan en búfer varios segmentos antes de iniciar la reproducción. Hablando en general, se podrían almacenar en búfer al menos dos o tres segmentos. Por ejemplo, cargar un búfer con al menos tres segmentos permite que una cantidad suficientemente grande de datos sea preparada habilitando de este modo que el reproductor de medios supere cualquier perturbación (variaciones de tasa de bits) que pueda producirse durante la descarga del flujo de programa.
A veces, el número de segmentos o la duración de reproducción que va a ser almacenado en búfer antes de activar la reproducción del flujo de programa no se puede cambiar ni omitir dado que es parte de un prerrequisito definido por el fabricante del dispositivo cliente. Por consiguiente, el usuario final no tiene otra opción que esperar el almacenamiento en búfer del número prerrequisito de segmentos, o el almacenamiento en búfer de la duración de reproducción prerrequisito, mediante el dispositivo cliente antes de que se le permita iniciar a disfrutar el evento relacionado. En particular cuando el flujo de programa se transmite en vivo desde el proveedor de contenido, el primer período de almacenamiento en búfer puede representar un intervalo de tiempo largo, típicamente 20 a 30 segundos. Para superar este inconveniente, las técnicas discutidas en este documento permiten que los requerimientos del dispositivo cliente sean cumplidos más rápidamente.
Con este fin, el método comprende las etapas de:
- procesar al menos uno de los segmentos 3 regulares en un conjunto 4 de segmentos 5 particulares donde el al menos un segmento 3 regular porta una carga útil de una primera duración T1 de reproducción y la carga útil de este conjunto 4 representa una segunda duración T2 de reproducción que es mayor que la de la primera duración T1 de reproducción, y donde la segunda duración T2 de reproducción es suficiente para cumplir con un requerimiento de dispositivo cliente para iniciar una representación del evento, luego
- transmitir, durante un período inicial, desde el punto 40 de acceso local este conjunto 4 de segmentos 5 particulares.
Más específicamente y de acuerdo con una realización, se proporciona un método mediante el cual el punto 40 de acceso local realiza una operación de preprocesamiento, durante la cual se suministra un conjunto 4 de segmentos 5 particulares en lugar de uno o más segmentos 3 regulares usualmente proporcionados a la salida de un punto de acceso local. Tal operación 43 de preprocesamiento se ilustra en la parte inferior de la figura 1 (véase detalle de punto 1 de acceso local). Con este fin, el punto de acceso local genera un conjunto 4 de segmentos 5 particulares desde cada uno o más segmentos 3 regulares.
Como se muestra a modo de ejemplo en la figura 1, el punto de acceso local toma el primer segmento 3 regular y crea tres segmentos 5 particulares. El número de segmentos 5 particulares hechos de un segmento 3 regular puede ser diferente de tres, por ejemplo dos, cuatro o cinco. Además, cada uno de los segmentos 5 particulares tendrá preferiblemente una longitud igual, a saber una misma duración de reproducción. No obstante, el punto de acceso local también podría generar, a partir de un segmento regular, varios segmentos particulares, cada uno con una duración de reproducción diferente.
En cualquier caso, el conjunto 4 de segmentos particulares representará una segunda duración T2 de reproducción que es mayor que la primera duración T1 de reproducción del segmento 3 regular a partir del cual se han generado los segmentos 5 particulares. Con referencia a la figura 1, se puede ver que la primera duración T1 de reproducción del segmento 3 que contiene la carga útil "CINEMA" es más corta que la segunda duración T2 de reproducción del conjunto 4 que contiene una carga útil equivalente dividida en tres segmentos 5 particulares. Al extender la primera duración T1 de reproducción hasta la segunda duración T2 de reproducción, el requerimiento de prerrequisito de dispositivo cliente para iniciar la representación del evento se cumplirá más rápidamente que esperar para almacenar en búfer solo los segmentos 3 regulares hasta que se haya almacenado en búfer una duración de reproducción requerida. Lo mismo es cierto al proporcionar directamente un número requerido de segmentos 5 particulares para cumplir con el requerimiento de prerrequisito de dispositivo cliente, en lugar de esperar hasta que el número requerido de segmentos 3 regulares se haya almacenado en búfer.
Como se ilustra esquemáticamente en la figura 1, preferiblemente la carga útil portada por el conjunto 4 de segmentos 5 particulares representa un contenido de información equivalente al de la carga útil portada por el segmento 3 regular relacionado. En otras palabras, y con referencia a una película como ejemplo del evento del contenido 13 de generación de flujo, el conjunto 4 de segmentos 5 particulares proporcionará la misma escena al usuario final que la del segmento 3 regular que se ha usado como fuente para generar los segmentos 5 particulares. Esto se ilustra esquemáticamente en la figura 1 mostrando que los marcos que incorporan las letras "C" y "A", en los dos extremos del segmento 3 regular que portan la palabra "CINEMA" como carga útil, también se ubican en los dos extremos del conjunto 4 de segmentos particulares.
La carga útil portada por el conjunto 4 puede ser idéntica o diferente a la del segmento 3 regular. Por ejemplo, la carga útil portada por todos los segmentos particulares del conjunto 4 puede comprender más marcos que la carga útil del segmento 3 regular relacionado. Los marcos añadidos no se relacionan con una escena diferente pero podrían relacionarse con algunos marcos interpolados.
Debe anotarse también que los segmentos 5 particulares del conjunto 4 están dispuestos en un orden cronológico, de tal manera que se mantenga una representación equivalente a la del segmento 3 regular. En otras palabras, y aún con referencia a la carga útil "CINEMA" incluida en el segmento 3 regular, los segmentos 5 particulares relacionados se disponen de manera ordenada de tal manera que proporcionen la misma secuencia que la proporcionada por el segmento 3 regular relacionado. Por consiguiente, los segmentos 5 particulares se organizarán para proporcionar en primer lugar la carga útil "CI", luego para proporcionar la carga útil "Ne " y finalmente la carga útil "MA".
La operación 43 de preprocesamiento se puede realizar por ejemplo después de que el contenido haya sido decodificado y antes de que sea codificado de nuevo por el transcodificador del punto de acceso local. De hecho, como el contenido aparece en un formato sin procesar durante este intervalo de tiempo, es ventajoso realizar algunas modificaciones en este contenido en este momento.
En todos los casos, la operación de preprocesamiento se iniciará durante el primer período de almacenamiento en búfer antes mencionado. Preferiblemente, la operación de preprocesamiento se aplica al primer segmento 3 regular que habría sido proporcionado por el punto 40 de acceso local.
Por consiguiente, la operación 43 de preprocesamiento puede finalizar tan pronto como se obtenga el número predefinido de segmentos requeridos por el dispositivo cliente. El dispositivo cliente no puede hacer ninguna distinción entre un segmento 3 regular y un segmento 5 particular, por lo tanto el número predefinido de segmentos preprocesados por el punto de acceso local puede incluir ya sea segmentos regulares o segmentos particulares o una mezcla de ambos. Por consiguiente, tanto los segmentos 3 regulares como los segmentos 5 particulares tienen la misma estructura y son procesados de la misma manera por el dispositivo cliente. Esto también significa, por ejemplo, que si el dispositivo cliente está configurado para almacenar en búfer al menos tres segmentos durante el primer período de almacenamiento en búfer, el punto de acceso local se configurará preferiblemente para generar tres segmentos particulares a partir de un único segmento regular, pero también podría ser configurado para generar un número diferente de segmentos particulares. Por ejemplo, podría generar cuatro o cinco segmentos particulares o incluso solo dos segmentos particulares. En este último caso, el dispositivo cliente tiene que almacenar en búfer estos dos segmentos particulares y el siguiente segmento regular de tal manera que almacene en búfer el número requerido de segmentos del evento antes de iniciar con su representación. Preferiblemente, el conjunto 4 comprenderá al menos tantos segmentos particulares como el número predeterminado de segmentos requeridos por el dispositivo cliente (típicamente definido por el fabricante).
Tan pronto como el punto 40 de acceso local ha generado los segmentos 5 particulares, estos se transmiten al dispositivo 50 cliente, en un único bloque. Alternativamente, los segmentos 5 particulares se transmiten al dispositivo 50 cliente segmento por segmento, preferiblemente tan pronto como un segmento 5 particular esté listo para ser enviado, el punto de acceso local activa su transmisión hacia el dispositivo cliente.
La operación 43 de preprocesamiento se inicia durante el primer período de almacenamiento en búfer, preferiblemente justo después de haber almacenado en búfer algún contenido. Más específicamente, esta operación de preprocesamiento se realiza en el contenido de generación de flujo al menos una vez. Finalmente, la última etapa de esta operación de preprocesamiento es suministrar los segmentos particulares desde el punto de acceso local al dispositivo cliente, preferiblemente tan pronto como se generen.
Una vez que el número requerido de segmentos del evento se ha colocado debidamente en el búfer del dispositivo cliente o una vez que la duración de reproducción representada por este número requerido de segmentos se ha almacenado en búfer, estos segmentos (es decir los segmentos 3 regulares y/o los segmentos 5 particulares) son liberados por el dispositivo cliente por propósitos de representación. Con referencia a la figura 1, tal liberación se muestra mediante el flujo de contenido 6 transmitido desde el dispositivo 50 cliente hacia el dispositivo 60 de representación a través del enlace 32 de comunicación.
La figura 2 divulga un diagrama en donde se representa un flujo STo original junto con dos flujos ST1, ST2 en relación con una línea de tiempo t que tiene un origen de tiempo en el instante to. En este ejemplo, todos estos flujos STo, ST1 y ST2 representan contenido de medios transmitido a través de un proceso de generación de flujo en vivo. El flujo STo original representa el contenido 13 de generación de flujo como se proporciona usualmente por el punto 40 de acceso local. Cada uno de los flujos ST1 y ST2 representa el flujo de programa como se podría emitir desde el punto de acceso local y enviarse al dispositivo cliente. El origen de tiempo corresponde al momento cuando el contenido ingresa al punto de acceso local. Con el fin de hacer una clara distinción entre segmentos 3 regulares sucesivos proporcionados por el punto de acceso local, estos se han identificado mediante los números de referencia 3a, luego 3b, 3c , 3d, etc... El primer tiempo, ti, corresponde a la longitud de un segmento regular que es también el tiempo requerido por el punto de acceso local para descargar completamente el contenido para formar el primer segmento 3a regular. De acuerdo con una realización preferida de la invención, este tiempo también corresponde al denominado primer período de almacenamiento en búfer. En este ejemplo, la carga útil portada en cada segmento 3a, 3b, 3c, 3d, etc... regular tiene la misma primera duración T1 de reproducción. Aún de acuerdo con este ejemplo, el punto de acceso local está configurado para generar un conjunto 4 de N=3 segmentos particulares, a partir de un único segmento 3 regular. Además, cada uno de estos segmentos particulares representa la misma duración, a saber un tercio de T1.
De nuevo con referencia a la figura 2, específicamente al flujo representado por ST1, el punto de acceso local está configurado para dividir el primer segmento 3A regular en un conjunto 4A de tres segmentos particulares. El conjunto 4A representa una segunda duración T2 de reproducción que es tres veces más larga que la primera duración T1 de reproducción. Por consiguiente, el punto de acceso local aplica un factor K=3, dando como resultado una tasa de ralentización de 3, para extender la primera duración de reproducción del segmento regular, de tal manera que se obtenga la segunda duración de reproducción del conjunto correspondiente de segmentos singulares. Una vez que el contenido suficiente ha sido descargado por el punto de acceso local para formar el primer segmento 3a regular, el punto de acceso local genera los tres segmentos particulares requeridos y los transmite al dispositivo cliente. De manera ventajosa, el dispositivo cliente puede por lo tanto reproducir sucesivamente la carga útil portada por cada uno de estos segmentos particulares en un tiempo temprano, aproximadamente en el primer tiempo ti.
Durante la reproducción de los tres segmentos particulares comprendidos en el conjunto 4a, a saber durante el intervalo de tiempo comprendido entre ti y t2, el dispositivo cliente almacena en búfer simultáneamente los siguientes segmentos transmitidos por el punto de acceso local, a saber los tres segmentos 3b, 3c, 3d regulares sucesivos. Por consiguiente, en el instante t2, el dispositivo cliente ha almacenado en búfer una duración de reproducción suficientemente grande (en este caso 3xT1) que luego puede liberarse regularmente hacia el dispositivo de representación. Por consiguiente, el período de almacenamiento en búfer inicial durante el cual el usuario final tiene que esperar hasta que se haya cargado el número predeterminado de segmentos en el búfer del dispositivo cliente se reduce desde 3xT1 a T i. Al considerar que cada segmento regular representa una duración de reproducción equivalente a 15 segundos, se ahorran ventajosamente 30 segundos en el intervalo de tiempo requerido hasta que se pueda visualizar el primer marco en el dispositivo de representación.
Con referencia una vez más a la figura 2, específicamente al flujo representado por ST2, el factor K usado para extender la primera duración T i de reproducción a la segunda duración T2' de reproducción se ha reducido a K'=1.5. Por consiguiente, los conjuntos 4a, 4b, 4c , 4d se generan en lugar de proporcionar los cuatro segmentos 3a , 3b, 3c, 3d regulares sucesivos. El punto de acceso local genera los correspondientes conjuntos 4a, 4b, 4c, 4d hasta que el dispositivo cliente haya almacenado en búfer el mismo número de segmentos regulares que en la primera variante (ST1), a saber los segmentos 3e, 3f, 3g.
Como el primer período de almacenamiento en búfer es idéntico en las dos variantes (ST1, ST2), el usuario final tiene la misma ventaja en términos de tiempos de espera. Sin embargo, durante el intervalo de tiempo comprendido entre ti y t2 (primer período de transición), la experiencia visual proporcionada por el primer flujo ST1 se alterará más que la proporcionada por el segundo flujo ST2 durante el intervalo de tiempo comprendido entre ti y t2' (segundo periodo de transición). De hecho, y como se muestra en la figura 2, el conjunto 4a del segundo flujo ST2 está más cerca del segmento 3a original que el conjunto 4a del primer flujo STi. Desde un punto de vista visual, esto significa que el primer flujo STi parecerá representarse a una tasa más lenta que el segundo flujo ST2 durante los respectivos períodos de transición.
Se pueden usar varias técnicas durante la operación 43 de preprocesamiento para extender la primera duración T i de reproducción a la segunda duración T2 (T2') de reproducción.
De acuerdo con una realización y como se muestra como ejemplo en la figura 2, la segunda duración T2 de reproducción se puede obtener modificando o aplicando un factor K, que representa una tasa de ralentización, a al menos una marca de tiempo definida dentro del contenido i3 de generación de flujo, por ejemplo dentro de los segmentos o dentro de los encabezados de marco. La marca de tiempo se usa para especificar cuándo y/o durante cuánto tiempo los segmentos o los marcos deben ser representados por el dispositivo cliente. Típicamente, tal marca de tiempo se referirá a la Marca de Tiempo de Presentación (PTS).
De acuerdo con otra realización, la segunda duración T2 de reproducción se puede obtener representando consecutivamente entidades elementales de esta carga útil varias veces o al menos dos veces. Una entidad elemental puede ser por ejemplo un marco de un GOP o un marco de audio es decir una muestra de audio. Tal representación consecutiva (o reutilización) de entidades elementales de la carga útil se puede lograr de acuerdo con diferentes técnicas.
Una primera técnica podría ser simplemente reproducir estas entidades elementales. Por ejemplo, todos o parte de los marcos contenidos en un GOP podrían reproducirse consecutivamente dos o tres veces antes de reproducir el siguiente marco de este GOP. Por supuesto, tal forma podría aplicarse a varios GOPs consecutivos. La reproducción de los marcos podría implementarse a través de una instrucción específica (o un parámetro) que podría incluirse en el encabezado del marco o en otro encabezado tal como el encabezado del GOP por ejemplo.
Una segunda técnica para representar entidades elementales consecutivas podría ser realizar al menos una vez las siguientes etapas aplicadas a la carga útil:
- duplicar una entidad elemental de tal manera que se obtenga una copia, e
- insertar esta copia junto a la entidad elemental duplicada en dicha carga útil.
i0
Preferiblemente, estas etapas incluirán además una etapa inicial para decodificar el flujo de entrada, y una etapa final para codificar este flujo de tal manera que forme el segmento 5 particular.
Por ejemplo, si un GOP original contiene las siguientes secuencias de marcos: I1-B2-B3-P4-B5-B6-P7, duplicar un marco (por ejemplo B3) para obtener una copia (B3') e insertar la copia junto al marco duplicado puede resultar en la siguiente secuencia nueva: I1-B2-B3-B3'- P4-B5-B6-P7. Luego, al aplicar una segunda ronda a esta nueva secuencia, se puede obtener la siguiente secuencia final: I1-B2-B3-B3 -P4-B5-B6 -B6-P7. Debe anotarse que tal proceso no se limita a la copia de marcos B y, por supuesto, podría comprender más de dos rondas.
Una tercera realización adecuada para obtener la segunda duración T2 de reproducción podría ser realizar al menos una vez las siguientes etapas aplicadas a la carga útil:
- calcular al menos una entidad elemental adicional, conforme con la carga útil, sobre la base de dos entidades elementales consecutivas de esta carga útil, e
- insertar esta al menos una entidad elemental adicional entre las dos entidades elementales sucesivas antes mencionadas.
Como se mencionó anteriormente, preferiblemente estas etapas incluirán además una etapa inicial para decodificar el flujo de entrada, y una etapa final para codificar este flujo de tal manera que forme el segmento 5 particular.
Por consiguiente, podrían insertarse marcos adicionales determinados por un proceso de cálculo dentro de la secuencia de marcos, en lugar de realizar copias de marcos. Aún con referencia al ejemplo de secuencia mencionado anteriormente, el marco B3' y/o Be' podrían resultar de un cálculo basado en marcos B3 y P4, respectivamente B5 y Be. De acuerdo con una realización, el proceso de cálculo antes mencionado puede relacionarse con una interpolación basada en los dos marcos consecutivos. Tal interpolación podría determinarse mediante un promedio ponderado de valores de píxeles que se refieren a una misma área dentro de estos dos marcos consecutivos. Este promedio ponderado podría determinarse por ejemplo gracias a los vectores de movimiento. Hacer un marco adicional determinado por un método de interpolación proporcionaría ventajosamente una mejor representación, mientras que evita el efecto de "etapa" resultante de la primera y segunda técnicas durante la reproducción del evento.
De acuerdo con las realizaciones tomadas como ejemplos en la presente descripción, la carga útil se relaciona con un contenido de vídeo y las entidades elementales corresponden a marcos de este contenido de vídeo. Sin embargo, esta carga útil podría relacionarse con otro tipo de contenido de medios, tal como contenido de audio o audio y vídeo y estas entidades elementales podrían referirse a cualquier tipo de muestras de este contenido de medios.
En una realización, cada uno de los segmentos se porta dentro de un archivo de contenido (especialmente un archivo de contenido corto) conforme con el protocolo de generación de flujo en Vivo de HTTP, también conocido como el protocolo de HLS.
Aunque se hace referencia a las figuras 1, 3 y 4, la presente divulgación también se refiere a un sistema para implementar cualquiera de las realizaciones o técnicas del método descrito anteriormente.
De acuerdo con una primera realización particular, el sistema comprende un punto de acceso, preferiblemente un punto 40 de acceso local tal como una pasarela, que es conectable a un dispositivo 50 cliente para iniciar una transmisión de contenido 13 de generación de flujo para ser representado en un dispositivo 60 de representación por ejemplo. Dentro de un entorno local, el contenido 13 de generación de flujo se suministra desde el punto 40 de acceso local al dispositivo 50 cliente. Como se muestra en la figura 1, el contenido transmitido a través del primer enlace 31 de comunicación está estructurado como una pluralidad de segmentos 3 regulares relacionados con un único evento. Cada uno de estos segmentos porta una carga útil, a saber una porción de un único evento. Cada segmento, o más específicamente cada carga útil de tal segmento regular, representa una primera duración T1 de reproducción, en particular cuando la carga útil es representada por el dispositivo cliente a una velocidad nominal.
Con referencia más en particular a la figura 3, esta última divulga una ilustración esquemática del dispositivo 50 cliente. Como se muestra en esta figura, el dispositivo cliente podría comprender:
-una interfaz 51 que se usa al menos para recibir el contenido 13 de generación de flujo a través del primer enlace 31 de comunicación; siendo dicho primer enlace 31 de comunicación la conexión: punto de acceso local - dispositivo cliente;
- una unidad 52 de comunicación para enviar al menos una solicitud 35 al punto 40 de acceso local, esta solicitud 35 se puede considerar como una instrucción, enviada al menos al punto de acceso local para recibir el contenido 13 de generación de flujo, en particular para recibir un primer contenido generación de flujo o un segundo contenido de generación de flujo en el caso donde un primer contenido de generación de flujo sea recibido actualmente por el dispositivo cliente;
- un accionador 56 configurado para iniciar la solicitud 35;
- un búfer 53 para apilar una pluralidad de segmentos 3 del contenido 13 de generación de flujo durante un primer período de almacenamiento en búfer;
- un medio de verificación o una unidad 54 de verificación para verificar que el número predeterminado de segmentos (es decir fragmentos) se ha almacenado en búfer debidamente de acuerdo con un prerrequisito impuesto por el dispositivo cliente; el prerrequisito debe cumplirse con el fin de activar la representación del evento, en particular la representación de la carga útil contenida en los primeros segmentos 3 del contenido 13 de generación de flujo;
- un controlador 55 adecuado para representar el evento, en particular la carga útil portada por los segmentos 3, 5, del contenido 13 generación de flujo; siendo dicha representación realizada a la velocidad nominal, por ejemplo en vista de ser reproducida en el dispositivo 60 de representación.
La interfaz 51 y la unidad 52 de comunicación podrían ser la misma entidad. Como se ilustra en la figura 3, la solicitud 35 se envía al punto 40 de acceso local a través de una forma diferente a la del primer enlace 31 de comunicación. Sin embargo, los mismos medios de comunicación (entre el punto 40 de acceso local y el dispositivo 50 cliente) podrían ser usados, tanto para recibir el contenido 13 de generación de flujo como para enviar la solicitud 35.
La solicitud 35 enviada por el dispositivo 50 cliente al punto 40 de acceso local es reenviada por este último al proveedor 10 de contenido.
El punto 40 de acceso local del sistema descrito anteriormente comprende una unidad 45 de procesamiento (figura 4) que está configurada para realizar la operación 43 de preprocesamiento (figura 1) para suministrar al menos un conjunto 4 de segmentos 5 particulares, en lugar de uno o más segmentos 3 regulares. Más específicamente, a través de su operación 43 de preprocesamiento, la unidad 45 de procesamiento está configurada para generar, a partir de cada uno de dicho al menos un segmento 3 regular, un conjunto 4 de segmentos 5 particulares. La carga útil de este conjunto 4 representa una segunda duración T2 de reproducción que es mayor que la primera duración T1 de reproducción. Preferiblemente, la carga útil del conjunto 4 de segmentos 5 particulares tiene una inteligibilidad de representación que es equivalente a la de la carga útil del segmento 3 regular correspondiente. El sentido de esta inteligibilidad de representación es el mismo que el discutido con respecto al método correspondiente.
En una realización, el punto de acceso local comprende además un transcodificador 44 para decodificar el contenido 13 de generación de flujo de entrada y recodificarlo de acuerdo con un formato de codificación que es soportado por el dispositivo 50 cliente. Preferiblemente, este transcodificador 44 está configurado además para realizar la operación 43 de preprocesamiento entre la etapa de decodificación y la etapa de recodificación.
Como ya se mencionó, el contenido de generación de flujo, en particular los segmentos y/o las entidades elementales (por ejemplo marcos o muestras) pueden comprender además al menos una marca de tiempo, típicamente ubicada dentro de un encabezado. Tal marca de tiempo tiene como objetivo especificar cuándo y/o durante cuánto tiempo la carga útil relacionada debe ser representada por el dispositivo cliente. La unidad de procesamiento puede configurarse además para modificar tal marca de tiempo, o para aplicar un factor de ralentización K a tal marca de tiempo, con el fin de obtener la segunda duración T2 de reproducción antes mencionada. Preferiblemente, tal factor de ralentización K estaría típicamente en un rango comprendido entre 1 y 3 de tal manera que obtenga una reproducción de ralentización aceptable.
De acuerdo con una realización adicional, la unidad 45 de procesamiento puede comprender además medios para representar consecutivamente al menos dos veces entidades elementales de la carga útil, por ejemplo como ya se describió con respecto al método. Por consiguiente, la unidad 45 de procesamiento podría comprender medios para reproducir algunas entidades elementales más de una vez, es decir sin proporcionar ninguna modificación a la carga útil. La reproducción de un mismo marco, o una muestra, al menos dos veces podría llevarse a cabo a través de una instrucción específica que podría ser leída por la unidad 45 de procesamiento.
De acuerdo con una variante particular, la unidad 45 de procesamiento podría configurarse para modificar la carga útil insertando, al menos una vez, al menos una copia de una entidad elemental junto a esta entidad elemental (proceso de duplicación). De acuerdo con otra variante, la unidad 45 de procesamiento puede configurarse para calcular entidades elementales adicionales en lugar de proporcionar copias como se mencionó anteriormente. El cálculo de una entidad elemental puede realizarse sobre la base de dos entidades elementales consecutivas, por ejemplo realizando una interpolación basada en estas entidades consecutivas como ya se explicó con respecto al método.
De acuerdo con una segunda realización particular, este sistema puede usarse para controlar un dispositivo 50 cliente y el suministro de un contenido 13 de generación de flujo desde un punto 40 de acceso local a este dispositivo 50 cliente. El contenido 13 de generación de flujo está estructurado como una pluralidad de segmentos 3 regulares relacionados con un único evento, portando cada uno de dichos segmentos 3 regulares una carga útil de una primera duración T1 de reproducción. Este sistema comprende un procesamiento configurado para procesar al menos uno de los segmentos 3 regulares en un conjunto 4 de segmentos 5 particulares donde la carga útil de este conjunto 4 representa una segunda duración T2 de reproducción mayor que la de la primera duración T1 de reproducción. Esta unidad de procesamiento también está configurada para transmitir, durante un primer período, desde el punto 40 de acceso local dicho conjunto 4 de segmentos 5 particulares para cumplir con un requerimiento de prerrequisito de
dispositivo cliente para iniciar una representación del evento. Tal sistema podría ser por ejemplo un sistema controlado por software.
Debe anotarse que la unidad de procesamiento de este sistema puede ser la misma que la unidad 45 de procesamiento del punto de acceso local que se ha divulgado con respecto a la primera realización particular del sistema. Por consiguiente, las mismas características que las ya divulgadas con respecto a las realizaciones de esta unidad 45 de procesamiento se pueden aplicar a la unidad de procesamiento del segundo sistema particular.
El punto 40 de acceso local que se ha descrito anteriormente se discutirá ahora con detalle adicional. El punto 40 de acceso local soporta el acoplamiento a un dispositivo 50 cliente y es capaz de iniciar una transmisión de un flujo 13 de programa, por ejemplo en vista de representar el contenido de flujo de programa en un dispositivo 60 de representación. Este contenido de generación de flujo, como se proporciona por el punto de acceso local al dispositivo cliente, está estructurado en una pluralidad de segmentos 3 regulares relacionados con un único evento. Cada uno de estos segmentos porta una carga útil. Esta carga útil, o el segmento regular que porta esta carga útil, representa una primera duración T1 de reproducción. Hablando en general, el punto de acceso local comprende un receptor para recibir un flujo de programa que comprende dicha pluralidad de segmentos regulares.
El punto 40 de acceso local comprende un procesador tal como una unidad 45 de procesamiento. La unidad 45 de procesamiento puede estar compuesta por uno o más dispositivos de procesamiento, por ejemplo uno o más microprocesadores, microcontroladores, procesadores de señales digitales, etc.) y puede comprender un sistema distribuido. Adicionalmente, uno o más de los otros componentes del punto 45 de acceso local pueden ser implementados por, sobre, o como una parte de la unidad 45 de procesamiento. Esta unidad de procesamiento es la misma que la descrita previamente con respecto al sistema anterior y, por lo tanto, puede tener las mismas características que las descritas en las realizaciones que se refieren a la descripción del sistema. Por consiguiente, esta unidad 45 de procesamiento está configurada para recibir una solicitud desde el dispositivo 50 cliente para iniciar la transmisión del contenido 13 de generación de flujo desde el punto 40 de acceso local al dispositivo 50 cliente. Esta unidad 45 de procesamiento está configurada además para procesar al menos uno de estos segmentos 3 regulares en un conjunto 4 de segmentos 5 particulares donde la carga útil de dicho conjunto 4 representa una segunda duración T2 de reproducción mayor que la de la primera duración T1 de reproducción. En otras palabras, la duración total de carga útil del conjunto 4 es mayor que la primera duración de reproducción.
Con este fin, la unidad 45 de procesamiento podría configurarse para realizar una operación 43 de preprocesamiento para suministrar, en lugar de al menos un segmento 3 regular, al menos un conjunto 4 de segmentos 5 particulares. Más específicamente, a través de su operación 43 de preprocesamiento, la unidad 45 de procesamiento está configurada para generar, a partir de dicho al menos un segmento 3 regular, un conjunto 4 de segmentos 5 particulares. La carga útil de este conjunto 4 representa una segunda duración T2 de reproducción que es mayor que la primera duración T1 de reproducción por las mismas razones que las ya descritas anteriormente. Preferiblemente, la carga útil del conjunto 4 de segmentos 5 particulares tiene una inteligibilidad de representación equivalente a la de la carga útil del correspondiente segmento 3 regular.
Como ya se mencionó, este punto 40 de acceso local puede comprender además un transcodificador 44 para decodificar el contenido 13 de generación de flujo de entrada y recodificarlo de acuerdo con un formato de codificación específico, en particular con un formato de codificación que es soportado por el dispositivo 50 cliente. Preferiblemente, este transcodificador 44 está configurado además para realizar la operación 43 de preprocesamiento antes mencionada entre la etapa de decodificación y la etapa de recodificación.
La unidad 45 de procesamiento puede configurarse para obtener la segunda duración T2 de reproducción mediante cualquiera de las técnicas ya descritas anteriormente.
El punto 40 de acceso comprende además un transmisor para transmitir el conjunto 4 de segmentos 5 particulares y segmentos 3 regulares del flujo de programa. De acuerdo con una realización, el transmisor y el receptor se pueden combinar en un transceptor.
Las realizaciones ilustradas deben considerarse en todos los aspectos como ilustrativas y no restrictivas, haciendo referencia a las reivindicaciones anexas en lugar de a la descripción anterior para indicar el alcance de la invención.
Claims (13)
1. Un método para iniciar una transmisión de un flujo (13) de programa para suministro desde un punto (40) de acceso local a un dispositivo (50) cliente siguiendo una solicitud enviada por el dispositivo (50) cliente al punto (40) de acceso local, que es reenviada por el punto (40) de acceso local a un proveedor de contenido de programa, estando dicho flujo (13) de programa estructurado en segmentos (3) regulares que se preparan en tiempo real después de que un usuario final los solicite, y estando dicho dispositivo (50) cliente configurado para requerir almacenar en búfer un número predeterminado de segmentos, o al menos una cierta duración de tiempo que corresponde a tal número de segmentos, para iniciar una representación de un evento de dicho flujo (13) de programa, caracterizado porque comprende:
procesar, mediante el punto (40) de acceso local, al menos uno de los segmentos (3) regulares recibido desde el proveedor de contenido en un conjunto (4) de salida de segundo tipo de segmentos (5), en donde el al menos un segmento (3) regular porta una carga útil de una primera duración (T1) de reproducción, y al menos una marca de tiempo usada para especificar cuándo y/o durante cuánto tiempo el segmento debe ser representado por el dispositivo cliente y la carga útil de dicho conjunto (4) de salida representa una segunda duración (T2) de reproducción que es mayor que la de la primera duración (T1) de reproducción, en donde el punto (40) de acceso local puede modificar la marca de tiempo recibida, o aplicar un factor de ralentización a tal marca de tiempo, con el fin de obtener la segunda duración (T2) de reproducción antes mencionada,
en donde dicho conjunto (4) comprende un número de segundo tipo de segmentos (5) al menos equivalente al número predeterminado de segmentos requeridos por el dispositivo cliente para iniciar la representación del evento, y
transmitir, durante un período inicial, dicho conjunto (4) de segundo tipo de segmentos (5) desde el punto (40) de acceso local al dispositivo (50) cliente.
2. El método de la reivindicación 1, en donde dicha segunda duración (T2) de reproducción se obtiene representando consecutivamente al menos dos veces entidades elementales de dicha carga útil.
3. El método de la reivindicación 2, en donde la representación consecutivamente de al menos dos veces entidades elementales de dicha carga útil se logra realizando al menos una vez las siguientes etapas aplicadas a dicha carga útil:
duplicar una entidad elemental de tal manera que se obtenga una copia, e
insertar dicha copia junto a la entidad elemental duplicada en dicha carga útil.
4. El método de la reivindicación 1, en donde dicha segunda duración (T2) de reproducción se obtiene realizando al menos una vez las siguientes etapas aplicadas a dicha carga útil:
calcular al menos una entidad elemental adicional, conforme con dicha carga útil, sobre la base de dos entidades elementales consecutivas de dicha carga útil, e
insertar dicha al menos una entidad elemental adicional entre dichas dos entidades elementales sucesivas.
5. El método de la reivindicación 4, en donde dicha entidad elemental de carga útil adicional resulta de una interpolación de dichas dos entidades elementales sucesivas.
6. El método de cualquiera de las reivindicaciones precedentes, en donde dicho segundo tipo de segmentos (5) portan cargas útiles que tienen duraciones de reproducción iguales.
7. El método de cualquiera de las reivindicaciones precedentes, en donde dicha carga útil se relaciona con contenido de vídeo o audio-vídeo y dicha entidad elemental es un marco de dicho contenido de vídeo o audio-vídeo.
8. El método de cualquiera de las reivindicaciones precedentes, en donde dichos segmentos (3) regulares son portados por archivos de contenido conformes con un protocolo de generación de flujo en Vivo adaptativo.
9. El método de cualquiera de las reivindicaciones anteriores, en donde la modificación de dicho flujo (13) de programa se realiza, mediante el punto (40) de acceso local, entre una operación de decodificación y una operación de codificación de dicho flujo (13) de programa, siendo dichas operaciones llevadas a cabo antes de la representación de dicho flujo (13) de programa.
10. Un punto (40) de acceso local, que soporta el acoplamiento aun dispositivo (50) cliente para iniciar una transmisión de un flujo (13) de programa estructurado en segmentos (3) regulares, siguiendo una solicitud enviada por el dispositivo (50) cliente al punto (40) de acceso local, que es reenviada por el punto (40) de acceso local a un proveedor de contenido de programa, estando dicho dispositivo (50) cliente configurado para requerir almacenar en búfer un número predeterminado de segmentos, que se preparan en tiempo real después de que un usuario final los solicite, o al menos una cierta duración de tiempo que corresponde a tal número de segmentos, para iniciar una representación de un evento de dicho flujo (13) de programa, caracterizado porque:
dicho punto (40) de acceso comprende una unidad (45) de procesamiento configurada para procesar al menos uno de los segmentos (3) regulares recibidos desde el proveedor de contenido en un conjunto (4) de salida de segundo tipo de segmentos (5) en donde el al menos un segmento (3) regular porta una carga útil de una primera duración (T1) de reproducción, y al menos una marca de tiempo usada para especificar cuándo y/o durante cuánto tiempo el segmento debe ser representado por el dispositivo cliente, y en donde la carga útil de dicho conjunto (4) de salida representa una segunda duración (T2) de reproducción mayor que la primera duración (T1) de reproducción; en donde el punto (40) de acceso local puede modificar la marca de tiempo recibida, o aplicar un factor de ralentización a tal marca de tiempo, con el fin de obtener la segunda duración (T2) de reproducción antes mencionada, en donde dicho conjunto (4) comprende un número de segundo tipo de segmentos (5) al menos equivalente al número predeterminado de segmentos requeridos por el dispositivo cliente para iniciar la representación del evento, y
dicho punto (40) de acceso está configurado para emitir dicho conjunto (4) de segundo tipo de segmentos (5) durante un período inicial para iniciar la transmisión de dicho flujo (13) de programa.
11. El punto de acceso local de la reivindicación 10, en donde dicha unidad (45) de procesamiento está configurada además para representar consecutivamente al menos dos veces entidades elementales de dicha carga útil de tal manera que se obtenga dicha segunda duración (T2) de reproducción.
12. El punto de acceso local de la reivindicación 11, en donde dicha unidad (45) de procesamiento está configurada además para modificar dicha carga útil insertando, al menos una vez, al menos una copia de una entidad elemental junto a dicha entidad elemental.
13. El punto de acceso local de cualquiera de las reivindicaciones 10 a 12, en donde dicho segundo tipo de segmentos (5) portan cargas útiles que tienen duraciones de reproducción iguales.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15169830 | 2015-05-29 | ||
PCT/EP2016/061629 WO2016193052A1 (en) | 2015-05-29 | 2016-05-24 | Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2894240T3 true ES2894240T3 (es) | 2022-02-14 |
Family
ID=53284060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16725827T Active ES2894240T3 (es) | 2015-05-29 | 2016-05-24 | Método para iniciar una transmisión de un contenido de generación de flujo suministrado a un dispositivo cliente y punto de acceso para implementar este método |
Country Status (4)
Country | Link |
---|---|
US (2) | US20180103276A1 (es) |
EP (1) | EP3304848B1 (es) |
ES (1) | ES2894240T3 (es) |
WO (1) | WO2016193052A1 (es) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3387835A1 (en) * | 2015-12-11 | 2018-10-17 | VID SCALE, Inc. | Scheduling multiple-layer video segments |
US10097608B2 (en) * | 2015-12-26 | 2018-10-09 | Intel Corporation | Technologies for wireless transmission of digital media |
CN107277558B (zh) * | 2017-06-19 | 2020-03-31 | 网宿科技股份有限公司 | 一种实现直播视频同步的播放器客户端、系统及方法 |
US11025998B2 (en) | 2017-11-27 | 2021-06-01 | Rovi Guides, Inc. | Systems and methods for dynamically extending or shortening segments in a playlist |
US10848819B2 (en) | 2018-09-25 | 2020-11-24 | Rovi Guides, Inc. | Systems and methods for adjusting buffer size |
US11265597B2 (en) * | 2018-10-23 | 2022-03-01 | Rovi Guides, Inc. | Methods and systems for predictive buffering of related content segments |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8213779B2 (en) * | 2003-09-07 | 2012-07-03 | Microsoft Corporation | Trick mode elementary stream and receiver system |
US20070067480A1 (en) * | 2005-09-19 | 2007-03-22 | Sharp Laboratories Of America, Inc. | Adaptive media playout by server media processing for robust streaming |
JP4322944B2 (ja) * | 2007-10-31 | 2009-09-02 | 株式会社東芝 | 映像再生装置、映像再生方法及び映像再生処理用プログラム |
US20100169303A1 (en) | 2008-12-31 | 2010-07-01 | David Biderman | Playlists for real-time or near real-time streaming |
US9565239B2 (en) * | 2009-05-29 | 2017-02-07 | Orions Digital Systems, Inc. | Selective access of multi-rate data from a server and/or peer |
US8886762B2 (en) * | 2009-09-17 | 2014-11-11 | Adobe Systems Incorporated | Stream duration management |
US8892763B2 (en) | 2011-01-05 | 2014-11-18 | Motorola Mobility Llc | Live television playback optimizations |
US10063606B2 (en) * | 2012-06-12 | 2018-08-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network |
TW201415893A (zh) * | 2012-06-29 | 2014-04-16 | Vid Scale Inc | 以預測資訊為基礎之訊框優先 |
CN104737514B (zh) * | 2012-10-23 | 2018-08-17 | 瑞典爱立信有限公司 | 用于分布媒体内容服务的方法和设备 |
US9356981B2 (en) * | 2012-11-29 | 2016-05-31 | Broadcom Corporation | Streaming content over a network |
WO2014204366A1 (en) * | 2013-06-19 | 2014-12-24 | Telefonaktiebolaget L M Ericsson (Publ) | Arrangements and method thereof for a channel change during streaming |
-
2016
- 2016-05-24 WO PCT/EP2016/061629 patent/WO2016193052A1/en active Application Filing
- 2016-05-24 ES ES16725827T patent/ES2894240T3/es active Active
- 2016-05-24 US US15/573,618 patent/US20180103276A1/en not_active Abandoned
- 2016-05-24 EP EP16725827.6A patent/EP3304848B1/en active Active
-
2020
- 2020-05-04 US US16/866,085 patent/US11128897B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11128897B2 (en) | 2021-09-21 |
EP3304848B1 (en) | 2021-09-22 |
US20200267423A1 (en) | 2020-08-20 |
EP3304848A1 (en) | 2018-04-11 |
WO2016193052A1 (en) | 2016-12-08 |
US20180103276A1 (en) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2894240T3 (es) | Método para iniciar una transmisión de un contenido de generación de flujo suministrado a un dispositivo cliente y punto de acceso para implementar este método | |
CN107409234B (zh) | 基于lct利用dash格式的基于文件格式的流式传输 | |
US10368075B2 (en) | Clip generation based on multiple encodings of a media stream | |
US9756369B2 (en) | Method and apparatus for streaming media data segments of different lengths wherein the segment of different length comprising data not belonging to the actual segment and beginning with key frames or containing key frames only | |
US11375258B2 (en) | Transitioning between broadcast and unicast streams | |
JP6610555B2 (ja) | 受信装置、送信装置、およびデータ処理方法 | |
US11109092B2 (en) | Synchronizing processing between streams | |
US11997302B2 (en) | Encoding device, decoding device, streaming system, and streaming method | |
US8275233B2 (en) | System and method for an early start of audio-video rendering | |
US20160029076A1 (en) | Arrangements and Method Thereof for Channel Change during Streaming | |
WO2017123474A1 (en) | System and method for operating a video player displaying trick play videos | |
WO2015131934A1 (en) | System and method for live video streaming | |
JP2013532432A (ja) | 単一の復号器でチャンネル変更を可能にする受信機および該受信機での方法 | |
WO2017077020A1 (en) | Contiguous streaming of media stream | |
US20180288452A1 (en) | Method of delivery audiovisual content and corresponding device | |
JP6193569B2 (ja) | 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム | |
JP6400163B2 (ja) | 受信装置、受信方法、送信装置、送信方法、及びプログラム | |
CN113508601A (zh) | 客户端和用于在客户端处管理多媒体内容的流传输会话的方法 |