ES2665302T3 - Métodos y sistemas para transmisión de datos - Google Patents

Métodos y sistemas para transmisión de datos Download PDF

Info

Publication number
ES2665302T3
ES2665302T3 ES12774444.9T ES12774444T ES2665302T3 ES 2665302 T3 ES2665302 T3 ES 2665302T3 ES 12774444 T ES12774444 T ES 12774444T ES 2665302 T3 ES2665302 T3 ES 2665302T3
Authority
ES
Spain
Prior art keywords
data
router
frame
video
streams
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12774444.9T
Other languages
English (en)
Inventor
John Tinsman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OpenTV Inc
Original Assignee
OpenTV Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OpenTV Inc filed Critical OpenTV Inc
Application granted granted Critical
Publication of ES2665302T3 publication Critical patent/ES2665302T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234327Processing 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 decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

Método que comprende: recibir datos jerárquicos de al menos una fuente de datos (2102) en al menos un búfer de un rúter (2104), donde dichos datos jerárquicos comprenden datos secuenciales donde los datos futuros dependen de los datos precedentes, recibir por el rúter (2104) una solicitud a partir de un dispositivo (2108) situado junto con dicho rúter (2104) dentro de un entorno local, en respuesta a la solicitud, seleccionar y proporcionar mediante el rúter (2104) datos jerárquicos iniciales desde el al menos un búfer del rúter (2104) al dispositivo (2108), donde los datos jerárquicos iniciales incluyen un punto de acceso para habilitar la descodificación de dichos datos jerárquicos, donde el punto de acceso es descodificable sin referencia a otros datos jerárquicos; y después de proporcionar los datos jerárquicos iniciales al dispositivo (2108), proporcionar datos jerárquicos adicionales desde el al menos un búfer del rúter (2104) al dispositivo (2108), caracterizado por el hecho de que los datos jerárquicos recibidos por el rúter se refieren a una pluralidad de flujos (2112) de datos de vídeo, donde dicha pluralidad de flujos (2112) se refiere a un canal único, donde cada flujo de dicha pluralidad de flujos (2112) lleva datos de vídeo para una resolución, calidad o velocidad de datos diferente, y donde dicha solicitud comprende información para solicitar que el rúter (2104) transmita uno de dichos flujos (2112).

Description

DESCRIPCIÓN
Métodos y sistemas para transmisión de datos
Campo 5
[0001] Esta solicitud se refiere generalmente al campo de las comunicaciones electrónicas y, en una forma de realización de ejemplo, a un método y sistema para transmitir datos.
Antecedentes 10
[0002] Un sistema de entrega de protocolos de internet (IP) (por ejemplo, para proporcionar contenido de vídeo y/o datos de directorio) puede usar un protocolo de transmisión de datos en multidifusión para mejorar la escalabilidad. Muchos de los datos entregados en el sistema pueden ser jerárquicos por naturaleza, de manera que datos determinados en un conjunto de datos se reciben antes de que un receptor pueda utilizar el resto de 15 ese conjunto de datos. El receptor espera típicamente a que un punto de acceso (por ejemplo, el elemento de inicio o superior) en el conjunto de datos habilite el procesamiento de los elementos restantes del conjunto de datos. La espera a un punto de acceso puede introducir un retraso indeseable, lo que puede afectar negativamente al rendimiento de un receptor y a una experiencia de un usuario del sistema.
20
[0003] El documento US 2008/126558 divulga un método y un sistema para transmisión de datos. Según este método, los datos jerárquicos se reciben a partir de una fuente de datos en un búfer de un rúter. Estos datos jerárquicos comprenden datos secuenciales donde los datos futuros dependen de los datos precedentes. El rúter recibe una solicitud a partir de un dispositivo. En respuesta a la solicitud, el rúter proporciona los datos jerárquicos iniciales al dispositivo. Los datos jerárquicos iniciales incluyen un punto de acceso para habilitar la 25 descodificación de los datos jerárquicos. El punto de acceso es descodificable sin referencia a otros datos jerárquicos. Después de proporcionar los datos jerárquicos iniciales al dispositivo, el rúter proporciona datos jerárquicos adicionales al dispositivo.
[0004] El documento US 2007/121629 divulga un método para reproducir un flujo de medios para producir 30 múltiples flujos de medios reproducidos. Estos flujos de medios reproducidos son de multidifusión con una compensación temporal entre cada uno de ellos. La compensación temporal es más corta que la duración de un grupo de imágenes del flujo de medios. Cada flujo de medios reproducido se retarda lo suficiente como para que un fotograma independiente (fotograma I) pasado esté disponible para la entrega a un dispositivo del cliente y para que este lo muestre sin esperar a un fotograma independiente futuro. Por consiguiente, el cambio de canal 35 se puede acelerar por multidifusión de un ramillete de flujos de ráfagas de multidifusión a partir de un servidor.
[0005] El documento US 2008/301315 divulga un método para transmitir flujos de medios digitales a dispositivos. El método incluye la identificación y transmisión de una secuencia de fotogramas que incluye un fotograma inicial y fotogramas posteriores correspondientes al fotograma inicial. El fotograma inicial puede ser un fotograma clave 40 y los fotogramas posteriores pueden ser fotogramas intermedios. Un fotograma posterior se puede visualizar por un dispositivo receptor solo si todos los fotogramas entre el fotograma inicial y el fotograma posterior han sido procesados por el dispositivo receptor. El método inicia una nueva transmisión de la secuencia de fotogramas a un nuevo dispositivo. Si el primer fotograma es un fotograma posterior, entonces todos los fotogramas entre el fotograma inicial y el fotograma posterior, inclusive, se pueden enviar al nuevo dispositivo antes de que el nuevo 45 dispositivo presente la transmisión de vídeo digital. El inicio de la nueva transmisión al nuevo dispositivo puede incluir generar información para provocar que el nuevo dispositivo inhiba la presentación de la nueva transmisión hasta después de que los fotogramas entre el fotograma inicial y los fotogramas posteriores inclusive hayan sido recibidos por el nuevo dispositivo. La información generada puede incluir un primer mensaje al nuevo dispositivo para inhibir la presentación de fotogramas y un segundo mensaje al nuevo dispositivo para continuar la 50 presentación de fotogramas.
[0006] La presente invención se define por el objeto de las reivindicaciones independientes 1 y 12.
Breve descripción de los dibujos 55
[0007] Las formas de realización se ilustran a modo de ejemplo y sin limitación en las figuras de los dibujos anexos, donde referencias similares indican elementos similares y donde:
La figura 1 es un diagrama de bloques de un sistema para distribuir datos a un conmutador/rúter 60 conforme a una forma de realización de ejemplo;
La figura 2 ilustra una representación esquemática de un entorno de televisión interactiva de ejemplo;
La figura 3 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para suministrar datos a un solicitante;
La figura 4 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de 65 ejemplo, para seleccionar una velocidad de datos;
La figura 5 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para seleccionar datos iniciales;
La figura 6 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para seleccionar datos almacenados en el búfer como datos iniciales;
La figura 7 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de 5 ejemplo, para seleccionar datos de unión intermedia como datos iniciales;
La figura 8 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, que selecciona datos de unión intermedia como datos iniciales;
La figura 9 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para identificar datos como un punto de acceso; 10
La figura 10 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para recibir un canal;
La figura 11 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de ejemplo, para recibir un directorio;
La figura 12 es un diagrama de flujo que ilustra un método, conforme a una forma de realización de 15 ejemplo, para codificar contenido de vídeo;
La figura 13 es una representación esquemática de un fotograma conforme a una forma de realización de ejemplo;
Las figuras 14-17 son representaciones esquemáticas de una serie de fotogramas conforme a formas de realización de ejemplo; 20
La figura 18 es un diagrama de bloques de un sistema de distribución de vídeo que utiliza flujo no adaptable que utiliza un protocolo de comunicación punto a punto conforme a formas de realización de ejemplo;
La figura 19 es un diagrama de bloques de un sistema de distribución de vídeo que utiliza flujo adaptable que utiliza un protocolo de comunicación punto a punto conforme a formas de realización de 25 ejemplo;
La figura 20 es un diagrama de bloques de un sistema de distribución de vídeo que utiliza flujo no adaptable que utiliza un protocolo de multidifusión conforme a formas de realización de ejemplo;
La figura 21 es un diagrama de bloques de un sistema de distribución de vídeo que utiliza flujo adaptable que utiliza un protocolo híbrido de multidifusión/punto a punto conforme a formas de 30 realización de ejemplo;
La figura 22 es un diagrama de múltiples flujos de vídeo para un canal donde trozos de cada flujo se alinean con grupos de imágenes conforme a formas de realización de ejemplo;
La figura 23 es un diagrama de múltiples flujos de vídeo para un canal donde trozos de cada flujo no siempre se alinean con grupos de imágenes conforme a formas de realización de ejemplo; 35
La figura 24 es un diagrama de bloques de un conmutador/rúter de un sistema de distribución de vídeo conforme a formas de realización de ejemplo;
Las figuras 25-29 son diagramas de flujo de métodos de operación de un conmutador/rúter para distribuir datos de vídeo a al menos un dispositivo conforme a formas de realización de ejemplo;
La figura 30 es un diagrama de bloques de un sistema de distribución de vídeo que utiliza múltiples 40 niveles de conmutador/rúteres conforme a formas de realización de ejemplo;
La figura 31 es un diagrama de flujo de otro método de operación de un conmutador/rúter para distribuir datos de vídeo a al menos un dispositivo conforme a formas de realización de ejemplo;
La figura 32 es un diagrama de una jerarquía de datos de vídeo donde al menos parte de la jerarquía de datos de vídeo se elimina antes de la transmisión conforme a formas de realización de ejemplo; 45
La figura 33 es un diagrama de una jerarquía de datos de vídeo donde se elimina más de la jerarquía de datos de vídeo en comparación con la jerarquía de datos de vídeo de la figura 32 antes de la transmisión conforme a formas de realización de ejemplo; y
La figura 34 ilustra una representación esquemática de una máquina en la forma de ejemplo de un sistema informático dentro del cual se puede ejecutar un conjunto de instrucciones para provocar que la 50 máquina ejecute una cualquiera o más de las metodologías aquí discutidas.
Descripción detallada
[0008] En la siguiente descripción, para fines de explicación, se exponen numerosos detalles específicos para 55 proporcionar un entendimiento minucioso de una forma de realización de la presente invención. Será evidente, sin embargo, para un experto en la materia que la presente invención se puede practicar sin estos detalles específicos.
[0009] Los datos se pueden transmitir a través de un sistema conectado en red (por ejemplo, un sistema de 60 televisión interactiva) que se recibe por un dispositivo receptor (por ejemplo, un conmutador/rúter) y se distribuye a uno o más dispositivos intermedios, en última instancia para la presentación en los dispositivos de usuario. En una forma de realización, el dispositivo receptor puede intentar quitar la fluctuación de los datos retenidos dentro de un búfer seleccionando una velocidad de datos conocida, seleccionando una velocidad de datos proporcionada o calculando la velocidad de datos de modo que los datos retenidos puedan ser proporcionados a 65 una velocidad de datos fija.
[0010] Los datos transmitidos pueden ser jerárquicos, donde parte de los datos pueden usar un punto de acceso para descodificar los datos recibidos previa o posteriormente. En una forma de realización, el dispositivo receptor puede proporcionar uno o más puntos de acceso adicionales en los datos que proporciona al dispositivo intermedio, lo que puede habilitar un acceso más rápido a los datos jerárquicos. 5
[0011] En respuesta a la petición de datos, el dispositivo receptor puede proporcionar datos iniciales y datos adicionales para habilitar que el dispositivo intermedio presente el contenido. Los datos iniciales pueden incluir un punto de acceso, que se puede usar para habilitar la descodificación de los datos iniciales restantes y/o datos adicionales. 10
[0012] En una forma de realización de ejemplo, los datos iniciales pueden incluir datos de unión intermedia que incluyen datos que se han identificado como puntos de acceso. Los datos retenidos también se pueden usar para reconstruir uno o más puntos de acceso en el dispositivo receptor como datos de unión intermedia.
15
[0013] En una forma de realización de ejemplo, los datos retenidos se pueden almacenar en el búfer en el dispositivo receptor en segmentos que empiezan en un punto de acceso que se puede proporcionar como los datos iniciales.
Sistema de distribución de datos de ejemplo 20
[0014] En referencia a la figura 1, se ilustra una forma de realización de ejemplo de un sistema 100 para distribuir datos a un conmutador/rúter. Una fuente de datos 102 puede proporcionar datos a un dispositivo de red (por ejemplo, un conmutador o rúter 104) por medio de una red 103. En una forma de realización de ejemplo, la fuente de datos 102 puede agregar datos a partir de una serie de fuentes de datos. 25
[0015] En una forma de realización de ejemplo, los datos pueden incluir medios tales como contenido de vídeo en forma de una película o programa televisivo y/o contenido de música digital tal como un fichero MP3. En una forma de realización de ejemplo, los datos pueden ser secuenciales, tales como fotogramas de contenido de vídeo. Además, los datos pueden ser jerárquicos de manera que la codificación de fotogramas y/o paquetes 30 sucesivos de los datos puedan usar técnicas relativas a los datos. Tal técnica jerárquica se puede utilizar con contenido de vídeo comprimido. En una forma de realización de ejemplo, los datos pueden proporcionar un videojuego, un fichero de parche, datos de una aplicación interactiva y/o similares. En una forma de realización de ejemplo, los datos pueden incluir contenido informativo. Se debería apreciar que otros tipos de datos también se pueden usar con el sistema 100. 35
[0016] El conmutador/rúter 104 puede dirigir datos a dispositivos y recibir datos de dispositivos tales como los dispositivos intermedios 108.1, 108.2 a través de la red 103. La red 103 puede incluir una red privada, una red pública tal como Internet, una red de acceso, o combinaciones de la red privada, la red pública y/o la red de acceso. En una forma de realización de ejemplo, el conmutador/rúter 104 puede incluir un multiplexor de línea de 40 acceso de abonado digital (DSLAM).
[0017] La red 103 puede ser una red de protocolo de Internet (IP), una red telefónica, una red de cable, una red de entrega central, o cualquier otra red para entregar datos digitales. En una forma de realización de ejemplo, se pueden proporcionar los datos al conmutador/rúter 104 por la red 103 vía un protocolo de transmisión de 45 multidifusión, un protocolo de transmisión de unidifusión, o cualquier otro protocolo adecuado para la comunicación de datos digitales.
[0018] El conmutador/rúter 104 se puede situar en un hogar o una ubicación de negocios y puede ser un rúter periférico. En una forma de realización de ejemplo, el conmutador/rúter 104 puede inspeccionar paquetes de 50 datos entrantes para determinar un tipo paquete y tomar medidas específicas para el tipo.
[0019] En una forma de realización de ejemplo, un tamaño de uno o más búferes del rúter/conmutador 104 se puede predefinir en el conmutador/rúter 104. El tamaño de uno o más búferes del conmutador/rúter 104 puede, sin embargo, determinarse empíricamente por el conmutador/rúter 104. En una forma de realización de ejemplo, 55 el tamaño del búfer puede ser suficiente para retener los datos iniciales que se han de enviar a un solicitante. Por ejemplo, el tamaño del búfer puede ser suficiente para retener un grupo de imágenes (GOP) o su equivalente. En una forma de realización de ejemplo, el tamaño del búfer puede ser suficiente para retener una extensión de datos entre dos puntos de acceso.
60
[0020] Un dispositivo intermedio no conectado en red 108.1 puede proporcionar los datos a un dispositivo de usuario 106.1. Ejemplos del dispositivo intermedio no conectado en red 108.1 incluyen un descodificador (STB), un grabador de vídeo digital (DVR), un descodificador de vídeo, un sistema informático y similares. Un dispositivo intermedio conectado en red 108.2 puede proporcionar los datos a una serie de dispositivo de usuario 106.2-106.n. Ejemplos del dispositivo intermedio conectado en red 108.2 pueden incluir un STB, un DVR, un 65 descodificador de vídeo, un sistema informático, un servidor y similares. Por ejemplo, el dispositivo intermedio
conectado en red 108.2 puede incluir un STB y los dispositivos de usuario 106.2-106.n pueden ser televisiones. Por ejemplo, el STB puede distribuir contenido recibido a múltiples televisiones dentro de un hogar o conectadas a una red.
[0021] Se apreciará que los dispositivos intermedios 108.1,108.2 se pueden situar en una única ubicación, tal 5 como un hogar o un lugar de negocios ocupado por un operador de los dispositivos de usuario 106.1-106.n.
[0022] En una forma de realización de ejemplo, los dispositivos intermedios 108.1,108.2 pueden transmitir los datos recibidos a otros dispositivos que incluyen dispositivos intermedios adicionales 108.1, 108.2. Por ejemplo, los dispositivos intermedios 108.1, 108.2 pueden retener los datos recibidos. 10
[0023] Los dispositivos de usuario 106.1-106.n pueden incluir cualquier dispositivo de visualización (con o sin capacidad receptora) entre los que se incluyen televisiones, monitores, sistemas informáticos, reproductores de medios digitales, dispositivos de juego, teléfonos móviles, asistentes digitales personales (PDA) y similares. Se puede proporcionar software en los dispositivos de usuario 106.1-106.n para configurar los dispositivos 106.1-15 106.n para que presenten contenido de medios a un usuario.
[0024] En una forma de realización de ejemplo, el dispositivo de usuario 106.1 se puede combinar con el dispositivo intermedio 108.1 en un dispositivo de combinación.
20
Entorno de televisión interactiva de ejemplo
[0025] La figura 2 es una representación esquemática de un entorno de televisión interactiva de ejemplo 200. El entorno de televisión interactiva 200 se puede implementar en el sistema 100 (véase la figura 1). El entorno de televisión interactiva 200 puede incluir un sistema de origen 212 que comunica datos (por ejemplo, datos de 25 contenido de televisión/vídeo y datos de aplicaciones interactivas) vía una red o sistema de distribución 214 y uno o más descodificadores moduladores 270 a un sistema receptor 216. En otras formas de realización de ejemplo, el descodificador modulador 270 se puede sustituir con (o incluir) una tarjeta PCI, un adaptador USB o similares. En una forma de realización de ejemplo, el entorno de televisión interactiva 200 puede incluir opcionalmente una unidad de almacenamiento 272 (por ejemplo, un ordenador personal) que comunica los datos 30 almacenados vía una red 274 al descodificador modulador 270 que, a su vez, comunica los datos almacenados, datos de contenido televisivo y datos de aplicación interactiva al sistema receptor 216. El descodificador modulador 270, la unidad de almacenamiento 272 y el sistema receptor 216 se pueden localizar conjuntamente en el hogar de un abonado. Así, en una forma de realización, el descodificador modulador 270 puede combinar datos de contenido televisivo y datos de aplicación interactiva recibidos desde el sistema de origen remota 212 35 con datos localmente almacenados proporcionados por la unidad de almacenamiento 272 prevista en el hogar del abonado. Se puede apreciar que la unidad de almacenamiento 272 puede ser cualquier dispositivo informático que funcione con el software apropiado (por ejemplo, Linux o Microsoft Windows). En una forma de realización de ejemplo, el descodificador modulador 270 se puede situar dentro de un sistema de cabecera 218.
40
[0026] En referencia en primer lugar al sistema de origen 212, un sistema de cabecera de ejemplo 218 funciona para comunicar los datos como una transmisión de difusión amplia. Con este fin, se muestra que el sistema de cabecera 218 incluye uno o más servidores de difusión amplia 220 y, opcionalmente, uno o más servidores de aplicaciones 222. Cada uno de los servidores de difusión amplia 220 puede operar para recibir, codificar, empaquetar, multiplexar, modular y difundir datos a partir de varias fuentes y de varios tipos. Aunque la forma de 45 realización de ejemplo se describe aquí como transmisión de datos desde el sistema de cabecera 218 como una difusión amplia, se apreciará que los datos pertinentes podrían también trasmitirse por unidifusión o multidifusión desde el sistema de origen 212 vía el sistema de distribución 214 y el descodificador modulador 270 al sistema receptor 216. En varias formas de realización, los datos también se podrían transmitir desde el sistema de origen 212 vía una conexión de red al sistema receptor 216. 50
[0027] Cada servidor de aplicaciones 222, en una forma de realización de ejemplo, puede servir para recopilar y proporcionar módulos de datos interactivos al servidor de difusión amplia 220. Los módulos de datos interactivos también pueden incluir datos que se utilizan por una aplicación de televisión interactiva. Un servidor de aplicaciones 222 también puede incluir una funcionalidad multiplexora para habilitar el multiplexado de, por 55 ejemplo, aplicaciones de televisión interactiva y datos asociados con señales de audio y de vídeo recibidos a partir de varias fuentes. Un servidor de aplicaciones 222 también puede tener la capacidad de proporcionar (por ejemplo; transmitir) múltiples aplicaciones de televisión interactiva a uno o más servidores de difusión amplia 220 para la distribución al sistema receptor 216. Con este fin, cada servidor de aplicaciones 222 puede implementar un denominado "carrusel", por el cual se proporcionan los módulos de código y datos a un servidor de difusión 60 amplia 220 de una manera cíclica y repetitiva para la inclusión dentro de una transmisión desde el sistema de cabecera 218. En otras formas de realización, el código puede residir permanentemente en el descodificador 238 (por ejemplo, el código se puede almacenar en la memoria no volátil del descodificador 238), se puede enviar o descargar al descodificador 238, o proporcionarse al descodificador 238 de cualquier otra manera. En una forma de realización de ejemplo, los servidores de aplicación 222 se pueden comunicar directamente con una interfaz 65
E/S de comunicaciones, de manera que las entradas se pueden multiplexar a partir de servidores de difusión amplia 220, servidores de datos y servidores de aplicación 222 para generar varios flujos de difusión amplia.
[0028] El sistema de cabecera 218 se muestra también a modo de ejemplo que incluye uno o más servidores backend 224, que se acoplan a los servidores de aplicación 222 y a una interfaz de entrada y salida de 5 comunicaciones en la forma de ejemplo de un grupo de módems 226. En una forma de realización de ejemplo, la interfaz E/S de comunicaciones puede ser una interfaz de red, de manera que el tráfico de IP se proporciona para una vía entera a un DSLAM o equivalente. En la configuración del grupo de módems de ejemplo, el grupo de módems 226 se puede acoplar para recibir datos a partir de los sistemas receptores 216 vía una red 228 (por ejemplo, Internet) a través de un conmutador/rúter 229 y para proporcionar estos datos a los servidores backend 10 224. Los servidores backend 224 pueden entonces proporcionar los datos, recibidos a partir del sistema receptor 216, a los servidores de aplicación 222 y los servidores de difusión amplia 220. Por consiguiente, el conmutador/rúter 229, la red 228 y el grupo de módems 226 pueden operar como un canal de regreso por el cual un sistema receptor 216 se proporciona con interactividad con el sistema de origen 212. Los datos proporcionados al sistema de cabecera 218 vía el canal de regreso pueden incluir, meramente por ejemplo, la 15 entrada del usuario a una aplicación de televisión interactiva ejecutada en el sistema receptor 216 o datos que se generan por el sistema receptor 216 y que se comunican al sistema de origen 212. Sin embargo, se apreciará que cualquier dato se puede comunicar vía el canal de regreso (por ejemplo, datos estadísticos, datos que miden las selecciones de visionado del usuario, etc.). El canal de regreso 230 también puede proporcionar un canal por el cual programas, anuncios/reclamos publicitarios personalizados y aplicaciones del sistema de origen 212 se 20 proporcionan al sistema receptor 216.
[0029] En el sistema de origen 212, el sistema de cabecera 218 puede opcionalmente recibir datos (por ejemplo, datos de contenido, código y aplicación) a partir de fuentes externas. Por ejemplo, la figura 2 ilustra el sistema de cabecera 218 acoplado a una o más fuentes de contenido 232 y una o más fuentes de aplicaciones 234 vía una 25 red 236 (por ejemplo, Internet). Por ejemplo, una fuente de contenido 232 puede ser un proveedor de contenido de entretenimiento (por ejemplo, películas), un proveedor de datos dinámicos en tiempo real (por ejemplo, información meteorológica), una pluralidad de anuncios personalizados, anuncios de visionado en horas de máxima audiencia, o similares. Una fuente de aplicaciones 234 puede ser un proveedor de cualquier aplicación de televisión interactiva. Por ejemplo, una o más fuentes de aplicaciones 234 pueden proporcionar una aplicación 30 de reproducción de medios de TV, una guía electrónica de programas (EPG) y aplicaciones de navegación, aplicaciones de mensajería y de comunicación, aplicaciones de información, aplicaciones deportivas y/o juegos y aplicaciones de juego.
[0030] En referencia ahora al sistema de distribución 214 de ejemplo, el sistema de distribución 214 puede, en 35 una forma de realización, soportar la distribución de datos de difusión amplia a partir del sistema de origen 212 al sistema receptor 216. Como se muestra, la red o sistema de distribución 214 puede comprender una red de línea de abonados vía satélite, cable, terrestre o digital (DSL) o cualquier otra red de comunicación de datos o combinación de tales redes.
40
[0031] El sistema receptor 216 se muestra, en una forma de realización de ejemplo, que incluye un dispositivo receptor en la forma de ejemplo de un descodificador (STB) 238 que recibe datos (flujos de contenido primario y secundario) vía el sistema de distribución 214 y el descodificador modulador 270, y una interfaz E/S de comunicaciones en la forma de ejemplo de un módem 240 para comunicaciones del canal de regreso con el sistema de cabecera 218. Se apreciará que las interfaces E/S de comunicación 226, 240 se pueden seleccionar 45 dependiendo de la naturaleza de la red 228. Por ejemplo, las interfaces E/S de comunicaciones 226, 240 pueden incluir un módulo de regreso por cable, un módulo de regreso por DSL, o similares. El sistema receptor 216 también se muestra que incluye otros sistemas externos opcionales tales como un dispositivo de entrada del usuario 243 (por ejemplo, un teclado, control remoto, ratón, etc.) y un dispositivo de visualización 242, acoplado al descodificador 238, para la visualización del contenido recibido en el descodificador 238. En una forma de 50 realización de ejemplo, el dispositivo de visualización 242 puede ser una televisión.
[0032] El descodificador 238 puede ejecutar tres capas de software, es decir un sistema operativo 244, middleware 246 y, opcionalmente, una o más aplicaciones de televisión interactiva 248. El middleware 246 puede operar para proteger la aplicación de televisión interactiva 248 de las diferencias de varios sistemas operativos 55 244 y las diferencias en el hardware de diferentes descodificadores 238. Con este fin, el software personalizado 246 puede proporcionar interfaces de programación de aplicaciones conductoras y una biblioteca para traducir instrucciones recibidas a partir de una televisión interactiva o aplicación de datos almacenados 248 en órdenes de bajo nivel que se pueden entender por hardware descodificador (por ejemplo, módems, puertos de interfaz, lectores de tarjetas inteligentes, etc.). En una forma de realización de ejemplo, el middleware 246 puede incluir 60 una funcionalidad de extracción para extraer un flujo de vídeo terciario seleccionado. Por ejemplo, el middleware 246 puede incluir la funcionalidad de recortar y escalar para recortar una porción o subconjunto de un área de visualización activa proporcionada por el flujo de vídeo secundario, y escalar la porción o subconjunto recortado para la visualización en el dispositivo de visualización 242 de manera que abarque un área entera de visualización del dispositivo de visualización 242. 65
[0033] El descodificador modulador 270, en una forma de realización de ejemplo, puede recibir datos almacenados desde la unidad de almacenamiento 272 y una transmisión de difusión amplia desde el sistema de origen 212. El descodificador modulador 270 puede multiplexar los datos almacenados en la transmisión de difusión amplia generando así una segunda transmisión que se comunica al sistema receptor 216. Sin embargo, se apreciará que la funcionalidad de unidad de almacenamiento es opcional. La unidad de almacenamiento 272 5 puede memorizar datos y, bajo petición, comunicar los datos almacenados al descodificador modulador 270 por medio de la red 274 (por ejemplo, Ethernet). La unidad de almacenamiento 272 puede comunicar los datos almacenados en respuesta a órdenes que se introducen por un usuario desde el descodificador 238 y se comunican a la unidad de almacenamiento 272 por medio del enlace 276. El enlace 276 puede ser cualquier enlace cableado o inalámbrico por medio del cual se pueden comunicar datos digitales (por ejemplo, un enlace 10 802.11x, un enlace USB, un enlace IEEE 1394, etc.).
Método de ejemplo de recepción y provisión de datos
[0034] En referencia a la figura 3, se muestra un método 300 conforme a una forma de realización de ejemplo 15 para suministrar datos a un solicitante. En una forma de realización de ejemplo, los datos pueden ser una serie de fotogramas de contenido de vídeo a partir de un canal de televisión. Los datos pueden ser datos jerárquicos (por ejemplo, de un tipo de datos jerárquicos) donde la interpretación y/o el uso de los datos futuros dependen de los datos precedentes. El método 300 se puede implementar en el sistema 100 y el entorno de televisión interactiva 200 (véase las figuras 1 y 2) y, por consiguiente, se describe a modo de ejemplo con referencia a los 20 mismos.
[0035] Los datos se pueden recibir de una o más fuentes de datos 102 y retenerse en un búfer del conmutador/rúter 104, 229 (véase las figuras 1 y 2) en el bloque 302. En una forma de realización de ejemplo, los datos jerárquicos recibidos a partir de una fuente de datos se pueden retener en un búfer. 25
[0036] Por ejemplo, los datos en forma de contenido de vídeo se pueden recibir vía un protocolo de transmisión de multidifusión o un protocolo de transmisión de unidifusión desde las fuentes de datos 102.
[0037] Una velocidad de datos se puede seleccionar para los datos retenidos en el bloque 304. La selección de 30 la velocidad de datos puede ser sensible al contexto. Así, por ejemplo, la velocidad de datos se puede calcular para contenido de audio y/o contenido de vídeo (contenido sensible al tiempo), pero no se puede calcular para páginas web (que son menos sensibles al tiempo). La velocidad de datos puede ser una velocidad de datos fija o variable. En una forma de realización de ejemplo, se puede calcular la velocidad de datos. Una velocidad de datos fija se puede seleccionar, por ejemplo, para los datos jerárquicos retenidos en el búfer. 35
[0038] Una solicitud de datos puede ser recibida por el conmutador/rúter 104, 229 en el bloque 306. La solicitud de datos puede incluir una solicitud para el contenido de vídeo de un canal (por ejemplo, una solicitud de unión de multidifusión).
40
[0039] En respuesta a la solicitud de datos, se pueden proporcionar los datos iniciales desde el conmutador/rúter 104, 229 a un solicitante en el bloque 308. En una forma de realización de ejemplo, los datos iniciales pueden incluir un punto de acceso de un conjunto de datos. Los datos iniciales pueden ser los datos que empiezan a partir de un primer punto de acceso hasta un segundo punto de acceso. Por ejemplo, los datos iniciales pueden ser un fotograma de contenido de vídeo designado como un marcador de inicio de GOP y fotogramas posteriores 45 del contenido de vídeo hasta que otro fotograma se designe con el marcador de inicio de GOP. En una forma de realización de ejemplo, los datos iniciales pueden incluir fotogramas del contenido de vídeo que pueden utilizarse para descodificar fotogramas posteriores en el flujo de datos del contenido de vídeo hasta que se reciba un siguiente punto de acceso. Los datos iniciales pueden incluir datos de unión intermedia, datos almacenados en el búfer, y/o datos retardados. Una forma de realización de ejemplo de la provisión de datos iniciales al solicitante 50 se describe con más detalle a continuación.
[0040] Los datos iniciales pueden incluir un primer paquete de un objeto que se está transmitiendo que se puede designar como segmento 0 (cero) y contienen información con relación al tamaño y la naturaleza del objeto en forma de paquete que se puede usar primero para descargar y/o reconstruir el objeto. 55
[0041] Los datos iniciales pueden ser proporcionados en el bloque 308 a la velocidad de datos seleccionada en el bloque 304 y datos adicionales se pueden proporcionar al solicitante en el bloque 310. Los datos iniciales se pueden proporcionar en paralelo a los datos adicionales y, opcionalmente, se pueden proporcionar en una calidad inferior. Por ejemplo, los datos adicionales pueden ser uno o más fotogramas de contenido de vídeo 60 después de que los fotogramas iniciales de contenido de vídeo se proporcionen para el canal. Los datos adicionales se pueden proporcionar en el bloque 310 a la velocidad de datos seleccionada.
[0042] En una forma de realización de ejemplo, las operaciones del bloque 304 y el bloque 306 pueden ocurrir en paralelo, de manera que la velocidad de datos no se necesite seleccionar antes de recibir una solicitud de datos. 65
[0043] En el bloque de decisión 312, el método 300 puede determinar si se proporciona otra nueva solicitud de datos.
Si se proporciona otra solicitud de datos, el método 300 puede volver al bloque 302. Si no se proporciona la nueva solicitud de datos, el método 300 puede volver al bloque 310.
5
[0044] En una forma de realización de ejemplo para conjuntos de datos jerárquicos (o secuenciales), el conmutador/rúter 104, 229 puede empezar a almacenar en el búfer un primer paquete en una secuencia o jerarquía como un punto de acceso en un conjunto de datos. Dependiendo del tipo de datos que se esté procesando, el punto de acceso se puede señalar explícitamente al conmutador/rúter 104, 229, o derivar a partir de los propios datos a través de inspección. Siempre que un usuario nuevo se une a una multidifusión de los 10 datos jerárquicos (o secuenciales), el conmutador/rúter 104, 229 puede iniciar la salida de la información a partir de un último paquete de inicio de datos en vez de un último paquete de datos recibido. En el caso de que no se encuentre ningún marcador de inicio de paquete en el búfer de la multidifusión, el conmutador/rúter 104, 229 puede pasar datos a través mediante la reversión a un modo sin búfer.
15
[0045] En una forma de realización de ejemplo, cada dispositivo que recibe los datos iniciales en el bloque 308 puede recibir los mismos datos iniciales dentro de un determinado periodo de tiempo (por ejemplo, antes de que se contengan nuevos datos iniciales en un búfer). Por ejemplo, en vez de que cada dispositivo solicitante reciba los datos adicionales y espere hasta que se reciba un punto de acceso antes de representar los datos, los dispositivos pueden en cambio representar los datos tan pronto como los datos iniciales sean recibidos (por 20 ejemplo, por el conmutador/rúter 104, 229). Los datos adicionales previstos en el bloque 310 pueden entonces ser recibidos y/o procesados por el dispositivo con un ligero retraso de modo que los datos se proporcionen continuamente.
[0046] En una forma de realización de ejemplo, la selección de la velocidad de datos en el bloque 304 y la 25 provisión de datos a la velocidad de datos seleccionada en los bloques 308, 310 pueden reducir las variaciones de la velocidad de datos.
[0047] La asignación y la gestión de búferes en el conmutador/rúter 104, 229 para varias multidifusiones se pueden simplificar proporcionando señalización explícita al conmutador/rúter 104, 229. Por ejemplo, se puede 30 enviar información de configuración al rúter 104, 229 fuera de banda utilizando un esquema de gestión remota para identificar multidifusiones almacenadas en búfer y asociar un tamaño de búfer particular. En una forma de realización de ejemplo, se puede usar señalización explícita de multidifusiones mediante información introducida en la multidifusión para indicar propiedades tales como prioridad de flujo y tamaño de conjunto de datos.
35
Métodos de ejemplo para transmisión de datos
[0048] En referencia a la figura 4, se muestra un método 400 conforme a una forma de realización de ejemplo para seleccionar una velocidad de datos. En una forma de realización de ejemplo, el método 400 se puede realizar en el bloque 306 del método 300 (véase la figura 3) y puede operar en el conmutador/rúter 104, 229 40 (véase las figuras 1 y 2).
[0049] Una determinación se puede hacer en el bloque de decisión 402 en cuanto a si se debería hacer un intento para quitar la fluctuación de los datos (por ejemplo, mediante estabilización de una velocidad de datos a la que se pueden proporcionar los datos). En una forma de realización de ejemplo, los datos pueden ser un 45 fotograma de contenido de vídeo y la velocidad de datos puede ser una velocidad de fotogramas de contenido de vídeo.
[0050] Si no se hace ningún intento para quitar la fluctuación de los datos en el bloque de decisión 402, el método 400 puede proceder para seleccionar una velocidad no fija para los datos como la velocidad 50 seleccionada (véase el bloque 416). Por ejemplo, la velocidad no fija puede ser la velocidad a la que el conmutador/rúter 104, 229 recibe los datos. Si el método 400 intenta quitar la fluctuación de los datos en el bloque de decisión 402, el método 400 puede proceder al bloque de decisión 406.
[0051] El método 400 puede determinar en el bloque de decisión 406 si la velocidad de datos para los datos se 55 conoce o no. Si la velocidad de datos se conoce, el método 400 puede seleccionar una velocidad de datos conocida como la velocidad de datos seleccionada en el bloque 408. Por ejemplo, la velocidad de datos se puede conocer cuando el conmutador/rúter 104, 229 está accediendo al contenido a partir de una fuente de contenidos conocida. Si la velocidad de datos deseada no se conoce en el bloque de decisión 406, el método 400 puede proceder al bloque de decisión 410. 60
[0052] En el bloque de decisión 410, el método 400 puede determinar si se ha proporcionado la velocidad de datos o no. Si la velocidad de datos se ha proporcionado, el método 400 puede seleccionar una velocidad de datos proporcionada como la velocidad de datos seleccionada en el bloque 412.
65
[0053] En una forma de realización de ejemplo, la velocidad de datos proporcionada se puede recibir a partir de señalización externa. La velocidad de datos proporcionada se puede introducir dentro de un flujo utilizando, por ejemplo, una etiqueta de datos. Si la velocidad de datos no se ha proporcionado en el bloque de decisión 410, el método 400 puede proceder al bloque de decisión 414.
5
[0054] El método 400 puede determinar en el bloque de decisión 414 si la velocidad de datos se puede calcular o no.
Si la velocidad de datos se puede calcular, el método 400 puede calcular la velocidad de datos en el bloque 418 y seleccionar la velocidad de datos calculada como la velocidad de datos seleccionada en el bloque 420. Por ejemplo, el método 400 puede calcular la velocidad de datos mediante el análisis de una velocidad de datos 10 media para un flujo de datos. Si la velocidad de datos no se puede calcular en el bloque de decisión 414, el método 400 puede proceder al bloque 416. Dependiendo del resultado en los bloques de decisión 402, 406, 410 y 414, el método 400 puede terminar después de los bloques 416, 408, 412, 416 o el bloque 420 respectivamente.
15
[0055] En referencia a la figura 5, se muestra un método 500 conforme a una forma de realización de ejemplo para seleccionar datos iniciales. En una forma de realización de ejemplo, los datos iniciales en el bloque 308 (véase la figura 3) se pueden seleccionar usando el método 500.
[0056] El método 500 puede determinar si una selección de datos de unión intermedia como los datos iniciales 20 está disponible y/o es deseable o no en el bloque de decisión 502. Los datos de unión intermedia pueden actuar como un punto de acceso sintetizado para habilitar el acceso a datos jerárquicos adicionales sin recibir primero un punto de acceso de los datos jerárquicos adicionales. Por ejemplo, los puntos de acceso pueden proporcionar anclajes que restablecen un proceso de interpretación e inicializan un estado interno de un intérprete de los datos jerárquicos. Los datos de unión intermedia pueden estar en forma de uno o más fotogramas de unión 25 intermedia que se pueden retener para usar en el conmutador/rúter 104, 229 (véase las figuras 1 y 2).
[0057] Si los datos de unión intermedia están disponibles y/o son deseables, el método 500 puede seleccionar los datos de unión intermedia como los datos iniciales en el bloque 504 de modo que se pueden proporcionar en el bloque 308. Formas de realización de ejemplo para seleccionar datos de unión intermedia para habilitar la 30 unión intermedia de un conjunto de datos se describen con más detalle a continuación. Si los datos de unión intermedia no están disponibles y/o no son deseables en el bloque de decisión 502, el método 500 puede proceder al bloque de decisión 506.
[0058] En una forma de realización de ejemplo, los datos de unión intermedia pueden ser deseables cuando hay 35 ancho de banda para enviar los datos de unión intermedia al conmutador/rúter 104, 229 enganchado a una red central, pero no el suficiente ancho de banda para enviar los datos de unión intermedia a un receptor. En una forma de realización de ejemplo en el entorno de televisión interactiva 200 (véase la figura 2), los datos de unión intermedia se pueden enviar con una calidad inferior para habilitar un cambio de canal más rápido.
40
[0059] En el bloque de decisión 506, el método 500 puede determinar si una selección de datos almacenada en el búfer como los datos iniciales está disponible y/o es deseable. Si los datos almacenados en el búfer están disponibles y/o son deseables, el método 500 puede seleccionar los datos almacenados en el búfer como los datos iniciales en el bloque 508. Una forma de realización de ejemplo para la selección de los datos almacenados en el búfer se describe con más detalle a continuación. Si los datos almacenados en el búfer no 45 están disponibles y/o no son deseables para el uso como los datos iniciales en el bloque de decisión 506, el método 500 puede proceder al bloque de decisión 510.
[0060] El método 500 puede determinar si una selección de datos retardados como los datos iniciales está disponible y/o es deseable en el bloque de decisión 510. En una forma de realización de ejemplo, los datos 50 retardados pueden estar disponibles cuando un búfer no retiene todos los datos recibidos a partir de un programa u objeto particular y una transmisión retardada de los datos está disponible.
[0061] Si los datos retardados están disponibles y/o son deseables en el bloque de decisión 510, el método 500 puede seleccionar los datos retardados como los datos iniciales y los datos adicionales en el bloque 512. Por 55 ejemplo, los datos retardados pueden incluir el envío de datos con un retraso. Si los datos retardados no están disponibles y/o no son deseables en el bloque de decisión 510, el método 500 puede seleccionar los datos actuales como los datos iniciales y los datos adicionales en el bloque 514.
[0062] Después de que se completen las operaciones en el bloque 504, bloque 508, bloque 512, o bloque 514, el 60 método 500 puede terminar.
[0063] En referencia a la figura 6, se muestra un método 600 conforme a una forma de realización de ejemplo para seleccionar datos almacenados en la memoria como datos iniciales. En una forma de realización de ejemplo, el método 600 se puede realizar en el bloque 508 (véase la figura 5). En una forma de realización de 65
ejemplo, los datos almacenados en el búfer seleccionados como los datos iniciales se pueden usar durante las operaciones en el bloque 308 (véase la figura 3).
[0064] Un fotograma se puede identificar como un punto de acceso en un conjunto de datos en el bloque 602. En una forma de realización de ejemplo, una primera unidad de datos (por ejemplo, un fotograma) se puede 5 identificar como un primer punto de acceso de entre una serie de unidades de datos (por ejemplo, un número de fotogramas). Por ejemplo, la primera unidad de datos puede ser de un tipo de datos jerárquico. En una forma de realización de ejemplo, las unidades de datos pueden ser unidades de datos jerárquicas, de manera que la interpretación y/o el uso del uso de unidades de datos futuros dependen de las unidades de datos precedentes. Formas de realización de ejemplo de la identificación del punto de acceso en el conjunto de datos se describen 10 con mayor detalle a continuación.
[0065] El fotograma identificado se puede retener como un punto de inicio en el bloque 604. Por ejemplo, el fotograma identificado se puede retener en un búfer del conmutador/rúter 104, 229 (véase las figuras 1 y 2).
15
[0066] Un fotograma siguiente se puede recibir como un fotograma actual en el bloque 606. Por ejemplo, el fotograma siguiente en una serie de fotogramas (por ejemplo, un flujo de datos de fotogramas de contenido de vídeo) de un canal puede ser recibido por el conmutador/rúter 104, 229.
[0067] El método 600 puede determinar si un fotograma actual es otro punto de acceso (por ejemplo, un segundo 20 punto de acceso) en el bloque de decisión 608. Si el fotograma actual no es un punto de acceso, el fotograma actual se puede retener (por ejemplo, en un búfer) en el bloque 610 y el método 600 puede volver al bloque 606. Si el fotograma es un punto de acceso en el bloque de decisión 608, el punto de inicio y los fotogramas retenidos se pueden designar como datos almacenados en el búfer en el bloque 612 y el método 600 puede volver al bloque 602. Por ejemplo, los datos almacenados en el búfer se pueden designar adicionalmente como los datos 25 iniciales en el bloque 508 (véase la figura 5) y/o se pueden proporcionar al solicitante como los datos iniciales en el bloque 308 (véase la figura 3).
[0068] En una forma de realización de ejemplo, el fotograma identificado como el punto de acceso en el bloque 602 tras el inicio del método 600 se puede identificar como un primer punto de acceso y el fotograma identificado 30 como el punto de acceso después del bloque de decisión 608 en el bloque 602 se puede identificar como el segundo punto de acceso. En una forma de realización de ejemplo, los fotogramas antes el punto de inicio se pueden descartar del búfer.
[0069] En referencia a la figura 7, se muestra un método 700 conforme a una forma de realización de ejemplo 35 para seleccionar datos de unión intermedia como datos iniciales. En una forma de realización de ejemplo, el método 700 se puede realizar en el bloque 504 (véase la figura 5). En una forma de realización de ejemplo, los datos de unión intermedia seleccionados como los datos iniciales se pueden usar durante las operaciones en el bloque 308 (véase la figura 3).
40
[0070] Un fotograma se puede identificar como un punto de acceso 702. En una forma de realización de ejemplo, las operaciones del bloque 602 (véase la figura 6) se pueden realizar en el bloque 702. Una forma de realización de ejemplo de la identificación de un fotograma como un punto de acceso se describe con más detalle a continuación.
45
[0071] El fotograma identificado se puede retener en el bloque 704. Por ejemplo, el fotograma identificado se puede retener en un búfer del conmutador/rúter 104, 229 (véase las figuras 1 y 2). En una forma de realización de ejemplo, una primera unidad de datos se puede identificar en el bloque 702 y retenerse como un punto de acceso entre una serie de unidades de datos en el bloque 704.
50
[0072] Un fotograma siguiente se puede recibir en el bloque 706. Por ejemplo, el fotograma siguiente en una serie de fotogramas (por ejemplo, un flujo de datos de fotogramas de contenido de vídeo) de un canal puede ser recibido por el conmutador/rúter 104, 229.
[0073] En el bloque de decisión 708, una determinación se puede hacer en cuanto a si el fotograma recibido se 55 debería retener o no. Por ejemplo, el fotograma recibido se puede retener cuando el fotograma se puede utilizar para descodificar una porción restante de la serie de fotogramas del canal hasta que se recibe un siguiente punto de acceso. Si el fotograma recibido no se va a retener, el método 700 puede volver al bloque 706. Si el fotograma recibido se va a retener en el bloque de decisión 708, el método 700 puede proceder al bloque 710.
60
[0074] El fotograma recibido se puede retener (por ejemplo, en un búfer) en el bloque 710. Cada uno de los fotogramas recibidos que han sido retenidos en el bloque 710 se pueden designar como los datos de unión intermedia en el bloque 712. Por ejemplo, los datos de unión intermedia pueden ser designados adicionalmente como los datos iniciales en el bloque 504 (véase la figura 5) y/o se pueden proporcionar al solicitante como los datos iniciales en el bloque 308 (véase la figura 3). Después de la finalización de las operaciones en el bloque 65 712, el método 700 puede volver al bloque 706.
[0075] En una forma de realización de ejemplo, después de que todos los fotogramas retenidos hayan sido designados como datos de unión intermedia en el bloque 712, el método 700 puede terminar.
[0076] Después de la finalización de la operación en el bloque 712, las unidades de datos retenidas (por ejemplo, 5 los fotogramas recibidos que se han retenido) se pueden proporcionar en respuesta a una solicitud (por ejemplo, una solicitud de cambio de canal) cuando una unidad de datos actual (por ejemplo, un fotograma actual) de la serie de unidades de datos (por ejemplo, los fotogramas del contenido de vídeo) no sea un punto de acceso.
[0077] En una forma de realización de ejemplo, una o más unidades de datos adicionales de una serie de 10 unidades de datos después de un punto de acceso se pueden identificar en el bloque 710 y retenerse en el bloque 712, donde las unidades de datos retenidas son para descodificar la serie de unidades de datos después del punto de acceso hasta un siguiente punto de acceso. Las unidades de datos retenidas se pueden proporcionar entonces en respuesta a una solicitud (véase el bloque 308 de la figura 3) cuando una unidad de datos actual de la serie de unidades de datos no es un punto de acceso. 15
[0078] En referencia a la figura 8, se muestra un método 800 conforme a una forma de realización de ejemplo para seleccionar datos de unión intermedia como datos iniciales. En una forma de realización de ejemplo, el método 800 se puede realizar en el bloque 504 (véase la figura 5). En una forma de realización de ejemplo, los datos de unión intermedia seleccionados como los datos iniciales se pueden usar durante las operaciones en el 20 bloque 308 (véase la figura 3).
[0079] Un fotograma se puede identificar como un punto de acceso en el bloque 802. En una forma de realización de ejemplo, las operaciones del bloque 702 (véase la figura 7) se pueden realizar en el bloque 802. Una forma de realización de ejemplo de identificación datos (por ejemplo, un fotograma) como un punto de 25 acceso se describe con más detalle a continuación.
[0080] El fotograma identificado se puede retener en el bloque 804. En una forma de realización de ejemplo, las operaciones del bloque 704 (véase la figura 7) se pueden realizar en el bloque 804. Por ejemplo, una primera unidad de datos se puede identificar en el bloque 802 y retenerse en el bloque 802 como un punto de acceso 30 entre una pluralidad de unidades de datos.
[0081] Un fotograma siguiente se puede recibir en el bloque 806. Por ejemplo, el fotograma siguiente en una serie de fotogramas (por ejemplo, un flujo de datos de fotogramas de contenido de vídeo) de un canal puede ser recibido por el conmutador/rúter 104, 229. 35
[0082] En el bloque de decisión 808, una determinación se puede hacer en cuanto a si el fotograma recibido se puede utilizar para la reconstrucción o no (por ejemplo, datos posteriores de reconstrucción). Por ejemplo, el fotograma recibido se puede utilizar para la reconstrucción cuando el fotograma recibido se puede utilizar para descodificar otros fotogramas, que pueden incluir un flujo de datos de contenido de vídeo. 40
[0083] Si el fotograma recibido no se usará para reconstrucción, el método 800 puede volver al bloque 806. Si el fotograma recibido se usará para reconstrucción, el método 800 puede retener el fotograma recibido en el bloque 810 y proceder al bloque de decisión 812.
45
[0084] En el bloque de decisión 812, el método 800 puede determinar si crear o no fotogramas de reconstrucción a partir de los fotogramas retenidos. Si los fotogramas de reconstrucción no se van a crear, el método 800 puede volver al bloque 806. Si los fotogramas de reconstrucción se van a crear, los fotogramas reconstruidos se pueden crear en el bloque 814 y los fotogramas de reconstrucción se pueden designar como datos de unión intermedia en el bloque 816. Por ejemplo, los fotogramas reconstruidos se pueden crear mediante la reconstrucción y la 50 recodificación de uno o más fotogramas a partir de otros fotogramas en el búfer, de manera que los fotogramas reconstruidos se pueden utilizar para descodificar otros fotogramas. En una forma de realización de ejemplo, los fotogramas reconstruidos se pueden marcar como fotogramas reconstruidos en el bloque 814.
[0085] En una forma de realización de ejemplo, los fotogramas cuyos fotogramas de sustitución están 55 sustituyendo se pueden descartar del búfer en el bloque 814.
[0086] Los fotogramas de reconstrucción se pueden crear a la misma velocidad de bits que los fotogramas retenidos. Sin embargo, en otras formas de realización, los fotogramas reconstruidos se pueden crear con una velocidad de bits diferente (por ejemplo, una velocidad de bits inferior) que los fotogramas retenidos. Después del 60 bloque 816, el método 800 puede terminar.
[0087] Después de la finalización de las operaciones en el bloque 816, una primera unidad de datos (por ejemplo, un primer fotograma) y las unidades de datos reconstruidas (por ejemplo, los fotogramas reconstruidos) se pueden proporcionar en respuesta a una solicitud (por ejemplo, una solicitud de cambio de canal) cuando una 65 unidad de datos actual (por ejemplo, un fotograma actual) de la serie de unidades de datos no es un punto de
acceso. Por ejemplo, los datos de unión intermedia pueden ser designados adicionalmente como los datos iniciales en el bloque 504 (véase la figura 5) y/o se pueden proporcionar al solicitante como los datos iniciales en el bloque 308 (véase la figura 3).
[0088] Aunque los métodos 600, 700, 800 (véase las figuras 6-8) se refieren a datos en forma de fotogramas, se 5 debería apreciar que los métodos 600, 700, 800 se pueden utilizar con otros tipos de datos tales como datos jerárquicos.
[0089] En referencia a la figura 9, se muestra un método 900 conforme a una forma de realización de ejemplo para identificar datos como un punto de acceso. En una forma de realización de ejemplo, el método 900 se 10 puede realizar en un bloque 602 (véase la figura 6), en el bloque 702 (véase la figura 7), y/o en el bloque 802 (véase la figura 8).
[0090] Una primera porción de datos (por ejemplo, una unidad de datos tal como un fotograma y/o un paquete de datos) se puede recibir en el bloque 902. Por ejemplo, la primera porción de datos puede ser recibida por el 15 conmutador/rúter 104, 229 desde la fuente de datos 102 y/o el sistema de cabecera 218 (véase las figuras 1 y 2).
[0091] En el bloque de decisión 904, una determinación se puede hacer en cuanto a si los datos recibidos son un punto de acceso o no. En una forma de realización de ejemplo, los datos recibidos pueden ser un punto de acceso cuando los datos recibidos son un fotograma clave que se puede descodificar sin referencia a los otros 20 fotogramas. En una forma de realización de ejemplo, el punto de acceso puede ser un elemento de inicio de un flujo de datos que se va a procesar antes que una porción restante del flujo de datos. En una forma de realización de ejemplo, el punto de acceso puede ser un elemento superior de un conjunto de datos (por ejemplo, un fichero de directorio) que se va a procesar antes de que una porción restante del conjunto de datos (por ejemplo, ficheros en el directorio identificado por el fichero de directorio) se pueda procesar para habilitar el 25 acceso a la porción restante del conjunto de datos. En una forma de realización de ejemplo, el punto de acceso puede ser marcador de inicio de GOP (grupo de imágenes). El punto de acceso puede, sin embargo, ser un fotograma clave de contenido de vídeo, de manera que el fotograma clave se puede descodificar sin referencia a otros fotogramas del contenido de vídeo. Otros puntos de acceso también se pueden proporcionar.
30
[0092] En una forma de realización de ejemplo, la identificación de la porción de datos como un punto de acceso pueden incluir una indicación en los datos de un fotograma. Por ejemplo, tal indicación se puede proporcionar cuando el fotograma es parte de datos MPEG-2 o datos MPEG-4. La identificación de la porción de datos como un punto de acceso se puede basar en la transmisión de los datos como una primera parte de una colección de secciones de datos donde un flujo de datos que lleva los datos puede incluir información que indica un tipo e 35 inicio de cada sección de datos. La identificación de la porción de datos como un punto de acceso se puede señalar mediante un código temporal. En una forma de realización de ejemplo, la identificación de la porción de datos como un punto de acceso se puede señalar mediante metadatos.
[0093] Si los datos recibidos no son un punto de acceso, una porción adicional de datos se puede recibir en el 40 bloque 906 y el método 900 puede volver al bloque de decisión 904. Si la porción recibida de datos es un punto de acceso en el bloque de decisión 904, el método 900 puede designar la porción recibida de datos como un punto de acceso en el bloque 908. Después del bloque 908, el método 900 puede terminar.
Métodos de ejemplo para el uso de datos transmitidos 45
[0094] En referencia a la figura 10, se muestra un método 1000 conforme a una forma de realización de ejemplo para recibir un canal. En una forma de realización de ejemplo, el método 1000 puede operar en el dispositivo intermedio 108.1, 108.2 (véase la figura 1), y/o en el descodificador 238 (véase la figura 2).
50
[0095] Una selección de nuevo canal se puede recibir a partir de un usuario en el bloque 1002. Una solicitud de nuevo canal se puede enviar al bloque 1004. Por ejemplo, el dispositivo intermedio 108.1, 108.2 y/o el STB 238 pueden enviar una unión de multidifusión al conmutador/rúter 104, 229.
[0096] Los fotogramas iniciales del nuevo canal se pueden recibir y reproducir en el bloque 1006 por el 55 dispositivo intermedio 108.1. Por ejemplo, la reproducción de los fotogramas iniciales puede incluir la descodificación y la presentación de los datos iniciales.
[0097] Fotogramas adicionales del nuevo canal se pueden recibir y reproducir en el bloque 1008. Por ejemplo, la reproducción de los fotogramas puede incluir la descodificación y la presentación de los datos adicionales. 60 Después de la finalización del bloque 1008, el método 1000 puede terminar.
[0098] En referencia a la figura 11, se muestra un método 1100 conforme a una forma de realización de ejemplo para recibir un directorio. El directorio puede ser un árbol de directorio que contiene código y/o datos de orden. En una forma de realización de ejemplo, el directorio puede ser una guía electrónica de programas (EPG) en un 65
dispositivo intermedio 108.1, 108.2 del sistema 100 y/o el descodificador 238 del entorno de televisión interactiva 200.
[0099] Una nueva selección de listado de directorio se puede recibir a partir de un usuario en el bloque 1102. Una solicitud de listado de directorio se puede enviar en el bloque 1104. 5
[0100] Los datos iniciales para un nuevo directorio se pueden recibir en reproducido en el bloque 1106. Los datos adicionales para el nuevo directorio se pueden recibir en reproducido en el bloque 1108. Después del bloque 1108, el método 1100 puede terminar.
10
Método de ejemplo para codificar contenido de vídeo
[0101] En referencia a la figura 12, se muestra un método 1200 para codificar contenido de vídeo. Se puede acceder al contenido de vídeo en el bloque 1202. Los datos primarios y datos de sustitución se pueden generar en el bloque 1204. En una forma de realización de ejemplo, los datos primarios pueden ser datos enviados 15 ordinariamente sin puntos de acceso adicionales y los datos de sustitución pueden incluir datos iniciales y, opcionalmente, datos adicionales que proporcionan puntos de acceso adicionales.
[0102] Los datos primarios y los datos de sustitución se pueden transmitir en el bloque 1206. En una forma de realización de ejemplo, los datos primarios y datos de sustitución se pueden enviar desde la fuente de datos 102 20 y/o el sistema de cabecera 218 al conmutador/rúter 104, 229 (véase las figuras 1 y 2). Después de la finalización del bloque 1206, el método 1200 puede terminar.
Datos de ejemplo retenidos como fotogramas
25
[0103] En referencia a la figura 13, se muestra un fotograma 1300 conforme a una forma de realización. El fotograma 1300 puede ser parte de los datos iniciales y/o datos adicionales y se muestra que incluye a modo de ejemplo un tipo de fotograma 1302, un número de fotograma de presentación 1304, y una dependencia de fotograma 1306, 1308.
30
[0104] El tipo de fotograma 1302 puede indicar un tipo del fotograma 1300. Por ejemplo, un fotograma "I" puede ser un fotograma independiente, un fotograma "P" puede depender de los fotogramas "I" y/o "P" precedentes, un fotograma "B" (como se muestra a modo de ejemplo en la figura 13) puede depender de los fotogramas "I" y/o "P" circundantes, y un fotograma "BR" se puede utilizar como referencias para otros fotogramas "B". En una forma de realización de ejemplo, donde los fotogramas se reconstruyen a partir de fotogramas recibidos 35 previamente en un dispositivo (por ejemplo, el conmutador/rúter 104, 229), un indicador "RI" se puede utilizar para indicar un fotograma I reconstruido y recodificado. Asimismo, un indicador "RP" se puede utilizar para indicar un fotograma P reconstruido y recodificado. Así, en una forma de realización de ejemplo, se pueden identificar fotogramas reconstruidos utilizando el prefijo "R" seguido del tipo de fotograma particular (por ejemplo, I, P y B). Por ejemplo, fotogramas P pueden ser fotogramas previstos basados en fotogramas precedentes en un 40 flujo de datos, fotogramas B pueden ser fotogramas bidireccionales basados en un fotograma P precedente y un fotograma P posterior.
[0105] El número de fotograma de presentación 1304 puede indicar un orden en el que una serie de fotogramas se presenta a un usuario. La dependencia de fotogramas 1306, 1308 puede indicar otros fotogramas de los que 45 depende el fotograma.
[0106] En referencia a la figura 14, se muestra una serie de fotogramas 1400 conforme a una forma de realización de ejemplo. La serie de fotogramas 1400 se puede basar, por ejemplo, en una estructura MPEG-2.
50
[0107] Un orden de presentación 1402 puede indicar un orden en el que la serie de fotogramas 1400 se presenta a un espectador. En una forma de realización de ejemplo como se ilustra, el orden de presentación 1402 puede ser un fotograma I 00, un fotograma B 01, un fotograma B 02, un fotograma P 03, un fotograma B 04, un fotograma B 05, un fotograma P 06, un fotograma B 07, un fotograma B 08, un fotograma P 09, un fotograma B 10, un fotograma B 11, un fotograma P 12, un fotograma B 13, un fotograma B 14 y un fotograma I 15. 55
[0108] Un orden de transmisión 1404 muestra un ejemplo de un orden en el que la serie de fotogramas 1400 puede ser recibida por un dispositivo. El dispositivo puede, por ejemplo, ser uno de los dispositivos intermedios 108.1, 108.2 (véase la figura 2), el conmutador/rúter 229 (véase la figura 2), o cualquier otro dispositivo de red. El orden de transmisión 1404 se muestra meramente a modo de ejemplo que puede ser un fotograma I 00, un 60 fotograma P 03, un fotograma B 01, un fotograma B 02, un fotograma P 06, un fotograma B 04, un fotograma B 05, un fotograma P 09, un fotograma B 07, un fotograma B 08, un fotograma P 12, un fotograma B 10, un fotograma B 11, un fotograma I 15, un fotograma B 13 y un fotograma B 14.
[0109] Un orden de unión intermedia 1406 puede incluir uno o más fotogramas reconstruidos seguido de un 65 número de fotogramas del orden de transmisión. Por ejemplo, el orden de unión intermedia 1406 puede ser un
fotograma RI 06, un fotograma P 09, un fotograma B 07, un fotograma B 08, un fotograma P 12, un fotograma B 10, un fotograma B 11, un fotograma I 15, un fotograma B 13 y un fotograma B 14.
[0110] Como se ilustra, una construcción de fotograma de sustitución 1408 puede incluir un fotograma RI 06 construido a partir de un fotograma I 00 y aplicando la información de un fotograma P 03 y un fotograma P 06. 5
[0111] En una forma de realización de ejemplo, uno o más fotogramas de sustitución (por ejemplo, fotograma RI 06) se puede utilizar para inicializar los búferes de referencia del descodificador entre inicios de GOP. Los fotogramas de sustitución se pueden enviar delante de una posición conveniente en el flujo de bits real para permitir que empiece la descodificación entre los puntos de acceso originales. Los fotogramas de sustitución 10 pueden proporcionar un nuevo punto de acceso, que divide eficazmente un conjunto de datos más grande en una serie de conjuntos de datos más pequeños. Una vez que los fotogramas de sustitución han sido recibidos, se pueden descartar los datos del fotograma que precede a los datos del fotograma de sustitución en el búfer.
[0112] En referencia a la figura 15, se muestra una serie de fotogramas 1500 conforme a una forma de 15 realización de ejemplo. En una forma de realización de ejemplo, la serie de fotogramas 1500 puede representar una aplicación de fotogramas B de referencia de formato H.264, donde los fotogramas B pueden ser utilizados por otros fotogramas B durante la reconstrucción. Un único fotograma de sustitución puede utilizarse si el fotograma de sustitución se inserta antes de los fotogramas P.
20
[0113] Un orden de presentación 1502 puede indicar un orden en el que la serie de fotogramas 1500 se presenta a un espectador. En una forma de realización de ejemplo como se ilustra, el orden de presentación 1502 puede ser un fotograma I 00, un fotograma B 01, un fotograma Br 02, un fotograma B 03, un fotograma P 04, un fotograma B 05, un fotograma Br 06, un fotograma B 07, un fotograma P 08, un fotograma B 09, un fotograma Br 10, un fotograma B 11, un fotograma P 11, un fotograma B 13, un fotograma Br 14, un fotograma B 15, y un 25 fotograma I 16.
[0114] Un orden de transmisión 1504 indica un orden de ejemplo en el que la serie de fotogramas 1500 se puede recibir por un dispositivo. El dispositivo puede ser el dispositivo intermedio 108.1, 108.2 (véase la figura 2), el conmutador/rúter 229 (véase la figura 2), o cualquier otro dispositivo de red. El orden de transmisión 1504 se 30 muestra a modo de ejemplo que es un fotograma I 00, un fotograma P 04, un fotograma Br 02, un fotograma B 01, un fotograma B 03, un fotograma P 08, un fotograma Br 06, un fotograma B 05, un fotograma B 07, un fotograma P 12, un fotograma Br 10, un fotograma B 9, un fotograma B 11, un fotograma I 16, un fotograma Br 14, un fotograma B 13 y un fotograma B 15.
35
[0115] Un orden de unión intermedia 1506 puede incluir uno o más fotogramas reconstruidos seguido de un número de fotogramas del orden de transmisión. El orden de unión intermedia 1506 se muestra a modo de ejemplo que incluye un fotograma RI 08, un fotograma P 12, un fotograma Br 10, un fotograma B 09, un fotograma B 11, un fotograma I 16, un fotograma Br 14, un fotograma B 13 y un fotograma B 15.
40
[0116] Como se ilustra, una construcción de fotograma de sustitución 1508 puede incluir un fotograma RI 08 construido a partir de un fotograma I 00 y aplicando la información a partir de un fotograma P 04 y un fotograma P 08.
[0117] En referencia a la figura 16, se muestra una serie de fotogramas 1600 conforme a una forma de 45 realización de ejemplo. La serie de fotogramas 1600 puede, por ejemplo, usar dos niveles de fotogramas B de referencia.
[0118] Un orden de presentación 1602 puede indicar un orden en el que la serie de fotogramas 1600 se presenta a un espectador. El orden de presentación 1602 se muestra a modo de ejemplo que es un fotograma I 00, un 50 fotograma B 01, un fotograma Br 02, un fotograma B 03, un fotograma Br 04, un fotograma B 05, un fotograma Br 06, un fotograma B 07, un fotograma P 08, un fotograma B 09, un fotograma Br 10, un fotograma B 11, un fotograma Br 12, un fotograma B 13, un fotograma Br 14, un fotograma B 15 y un fotograma P 16.
[0119] Un orden de transmisión 1604 muestra un ejemplo de orden en el que la serie de fotogramas 1600 se 55 puede recibir por un dispositivo. El dispositivo puede ser uno del dispositivo intermedio 108.1, 108.2 (véase la figura 2), el conmutador/rúter 229 (véase la figura 2), o cualquier otro dispositivo de red. El orden de transmisión 1604 se muestra a modo de ejemplo que es un fotograma I 00, un fotograma P 08, un fotograma Br 04, un fotograma Br 02, un fotograma B 01, un fotograma B 03, un fotograma Br 06, un fotograma B 05, un fotograma B 07, un fotograma P 16, un fotograma Br 12, un fotograma B 10, un fotograma B 09, un fotograma B 11, un 60 fotograma B 14, un fotograma B 13 y un fotograma B 15.
[0120] Un orden de unión intermedia 1606 puede incluir uno o más fotogramas reconstruidos seguido de un número de fotogramas del orden de transmisión. El orden de unión intermedia 1606 se muestra que incluye un fotograma RI 08, un fotograma RP 16, un fotograma Br 12, un fotograma B 10, un fotograma B 09, un fotograma 65 B 11, un fotograma B 14, un fotograma B 13 y un fotograma B 15.
[0121] Como se ilustra, una primera construcción de fotograma de sustitución 1608 puede incluir un fotograma RI 08 construido a partir de un fotograma I 00 y aplicando la información de un fotograma P 08 y una segunda construcción de fotograma de sustitución 1510 puede incluir un fotograma RP 16 construido a partir de un fotograma I 00 y aplicando la información de un fotograma P 08 y un fotograma P 16 y recodificando el fotograma 5 P (por ejemplo, fotograma RP 16) con relación al fotograma RI 08 de la primera construcción de fotograma de sustitución 1608.
[0122] En referencia a la figura 17, se muestra una serie de fotogramas 1700 conforme a una forma de realización de ejemplo. En una forma de realización de ejemplo, la serie de fotogramas 1700 puede usar tres 10 niveles de fotogramas B de referencia.
[0123] Un orden de presentación 1702 puede indicar un orden en el que la serie de fotogramas 1700 se presenta a un espectador. El orden de presentación 1702 se muestra a modo de ejemplo que es un fotograma I 00, un fotograma B 01, un fotograma Br 02, un fotograma B 03, un fotograma Br 04, un fotograma B 05, un fotograma Br 15 06, un fotograma B 07, un fotograma Br 08, un fotograma B 09, un fotograma Br 10, un fotograma B 11, un fotograma Br 12, un fotograma B 13, un fotograma Br 14, un fotograma B 15 y un fotograma P 16.
[0124] Un orden de transmisión 1704 indica un orden de ejemplo en el que la serie de fotogramas 1700 se recibe por un dispositivo. El dispositivo puede ser uno del dispositivo intermedio 108.1, 108.2 (véase la figura 2), el 20 conmutador/rúter 229 (véase la figura 2), o cualquier otro dispositivo de red. El orden de transmisión 1704 se muestra que es un fotograma I 00, un fotograma P 16, un fotograma Br 08, un fotograma Br 04, un fotograma Br 02, un fotograma B 01, un fotograma B 03, un fotograma Br 06, un fotograma B 05, un fotograma B 07, un fotograma Br 12, un fotograma B 10, un fotograma B 09, un fotograma B 11, un fotograma B 14, un fotograma B 13 y un fotograma B 15. 25
[0125] Un orden de unión intermedia 1706 puede incluir uno o más fotogramas reconstruidos seguido de un número de fotogramas del orden de transmisión. El orden de unión intermedia 1706 se muestra que es un fotograma RI 08, un fotograma RP 16, un fotograma Br 12, un fotograma B 10, un fotograma B 09, un fotograma B 11, un fotograma B 14, un fotograma B 13 y un fotograma B 15. 30
[0126] Como se ilustra, una primera construcción de fotograma de sustitución 1708 puede incluir un fotograma RI 08 construido a partir de un fotograma I 00 y aplicando información de un fotograma P 16 y un fotograma Br 08, y una segunda construcción de fotograma de sustitución 1610 puede incluir un fotograma RP 16 construido a partir de un fotograma I 00 y aplicando la información de un fotograma P 04 y recodificando el fotograma P (por 35 ejemplo, fotograma RP 16) con relación al fotograma RI 08 de la primera construcción de fotograma de sustitución 1708.
Flujo adaptable y no adaptable de ejemplo
40
[0127] En al menos algunos de los ejemplos presentados anteriormente, un usuario asociado a un dispositivo de usuario puede seleccionar un canal o programa particular de datos jerárquicos, tal como contenido de vídeo comprimido, de múltiples tales canales disponibles para transmisión o descarga al dispositivo de usuario. En algunos casos, los datos jerárquicos se pueden transmitir a una velocidad de datos predeterminada, con algunos de los datos jerárquicos dependientes de los datos jerárquicos anteriores y/o posteriores. Como se ha 45 mencionado anteriormente, un rúter, interruptor o servidor acoplado con el dispositivo de usuario puede transmitir los datos iniciales, tales como datos jerárquicos almacenados en el búfer, retardados o reconstruidos, para permitir que el dispositivo de usuario empiece a presentar los datos jerárquicos más rápidamente al usuario que lo que de otro modo sería posible en ausencia de los datos iniciales.
50
[0128] Cada una de las figuras 18-22 proporciona un diagrama de bloques de un sistema de distribución de vídeo donde una o más fuentes de datos transmiten contenido de vídeo a uno o más codificadores de vídeo. Los codificadores transforman los datos de vídeo en datos de vídeo jerárquicos, que se transmiten vía uno o más componentes a uno o más dispositivos, tales como los dispositivos intermedios 108 de la figura 1, o el descodificador (STB) 238 de la figura 2. En algunos ejemplos, los dispositivos de las figuras 18-22 también 55 pueden ser dispositivos de usuario final, tales como televisiones, monitores de vídeo, ordenadores de mesa o portátiles, dispositivos de comunicación móvil y similares. Cada uno de los sistemas de las figuras 18-22 puede incorporar cualquiera de las formas de realización anteriormente descritas, como la transmisión de datos jerárquicos iniciales y adicionales al uno o más dispositivos, como se ha descrito con detalle anteriormente.
60
[0129] La figura 18 es un diagrama de bloques de un sistema de distribución de vídeo de ejemplo 1800 donde una o más fuentes de datos 1802 proporcionan múltiples canales de datos de vídeo 1810.1, 1810.2, 1810.3 (generalmente, 1810) a uno o más codificadores de vídeo 1803, que generan datos jerárquicos 1812.1, 1812.2, 1812.3 para los datos de vídeo 1810.1, 1810.2, 1810.3, respectivamente. Cada canal de datos de vídeo 1810 puede representar, por ejemplo, contenido diferente (tales como programas de televisión o películas diferentes) o 65
resoluciones diferentes del mismo contenido (tales como alta definición (HD) y definición estándar (SD) para televisiones, definición reducida para dispositivos móviles, etcétera).
[0130] Un servidor de vídeo 1804 puede entonces recibir peticiones para uno de los canales de datos jerárquicos 1812 de uno o más dispositivos 1808.1, 1808.2, 1808.3 para la presentación a un usuario. En un ejemplo, cada 5 uno de los dispositivos 1808 puede conectar al servidor 1804 para recibir información acerca de los diversos programas. Los programas pueden ser, por ejemplo, programas de difusión amplia en tiempo real o programas de vídeo bajo demanda (VOD). Cada dispositivo 1808 puede entonces seleccionar y recibir un programa vía los datos jerárquicos 1814.1, 1814.2, 1814.3 desde el servidor de vídeo 1804 utilizando un protocolo de transmisión punto a punto, tal como, por ejemplo, protocolo de datagramas de usuario (UDP) o protocolo de control de 10 transmisión (TCP), que se puede asociar con, por ejemplo, protocolo de transferencia de hipertexto (HTTP) o protocolo de transmisión en tiempo real (RTSP). En un ejemplo, los datos jerárquicos 1814 se transfieren vía una red central, tal como Internet. Como resultado del protocolo punto a punto, cada dispositivo 1808 posee su propia conexión entre el dispositivo 1808 y el servidor de vídeo 1804, requiriendo así que el sistema 1800 asigne el ancho de banda requerido para llevar cada canal de los datos jerárquicos 1814 a través de la red desde el 15 servidor de vídeo 1804 a cada dispositivo 1808, incluso si dos dispositivos 1808 están recibiendo el mismo programa y, por tanto, los mismos datos jerárquicos 1814. Cuando se cambia a un canal particular de datos de vídeo 1814, un dispositivo 1808 puede recibir datos jerárquicos iniciales desde el servidor de vídeo 1804 para facilitar una presentación más rápida del programa asociado al usuario, como se ha descrito anteriormente.
20
[0131] En otros sistemas de distribución de vídeo, se puede emplear codificación y transmisión adaptable para proporcionar un número de flujos de vídeo para un programa o canal particular, donde cada flujo con los datos jerárquicos se transmite a una velocidad de datos diferente, y donde mayores velocidades de datos se asocian generalmente a mayores resoluciones de vídeo y/o mayor calidad de vídeo. En un ejemplo, las resoluciones de vídeo pueden variar de una resolución "super HD" y HD típica presentable vía una televisión HD, a una 25 resolución SD, a una resolución de clase informática, y finalmente a una baja resolución de dispositivo móvil.
[0132] Generalmente, la transmisión adaptable permite que un dispositivo seleccione uno de los múltiples flujos asociados a un programa para diferentes periodos de tiempo, permitiendo así que el dispositivo ajuste la velocidad de datos de los datos de vídeo que se están recibiendo a las condiciones de transmisión actuales o 30 cambiantes o la calidad de enlace. Por ejemplo, el dispositivo puede no estar recibiendo debidamente los datos de vídeo durante un periodo de tiempo a una velocidad de datos suficiente para coincidir con la velocidad a la que los datos se están presentado al usuario, tal como durante momentos de pobre conectividad de comunicación con un servidor de vídeo, o durante periodos de alto tráfico de comunicación en la red que conecta el dispositivo con el servidor de vídeo. En respuesta, el dispositivo receptor puede solicitar que la porción 35 siguiente, o "trozo," de datos de vídeo sea de un flujo de resolución inferior o de calidad inferior, permitiendo así que la velocidad de datos de los datos de vídeo transmitidos se reduzca mientras se mantiene una presentación ininterrumpida del programa. Si, durante presentación de ese trozo de vídeo, los datos de vídeo se reciben más rápidamente de lo previsto, el dispositivo receptor puede entonces solicitar un flujo de datos de vídeo de mayor resolución o de mayor calidad del programa para el trozo siguiente. 40
[0133] La figura 19 representa un sistema de distribución de vídeo de ejemplo 1900 que proporciona la funcionalidad de transmisión adaptable. En el sistema 1900, una o más fuentes de datos 1902 proporcionan múltiples canales de datos de vídeo 1910 a uno o más codificadores de vídeo 1903. Los codificadores 1903, a su vez, codifican cada canal de datos de vídeo 1910 en múltiples flujos 1912 de resolución/calidad/velocidad de 45 datos de vídeo variable y transmiten los flujos 1902 a un servidor de vídeo 1904. Aunque la figura 19 representa tres flujos 1912 para cada canal de datos de vídeo 1910, los codificadores de vídeo 1903 pueden generar más o menos flujos 1910 para cada canal o programa.
[0134] Cada uno de los múltiples dispositivos 1908 puede entonces solicitar un flujo particular 1912 para que el 50 próximo trozo de datos de vídeo sea recibido. En un ejemplo, el servidor de vídeo 1904 puede proporcionar información en forma de un "manifiesto," que indica los diversos flujos disponibles para cada programa o canal, posiblemente junto con otros datos, tales como la velocidad de datos para cada uno de los flujos, la cantidad de datos que se va a transferir en cada flujo para el próximo trozo, etcétera. Como resultado, el servidor de vídeo 1904 puede emitir un nuevo manifiesto para cada próximo trozo de datos de vídeo, o puede proporcionar un 55 manifiesto para múltiples trozos. Basándose en la información en el manifiesto y en la calidad de enlace de la comunicación actual, cada dispositivo 1908 puede solicitar un flujo particular 1914 para el próximo trozo de vídeo, y recibir ese trozo del flujo solicitado 1914 desde el servidor de vídeo 1904 en respuesta. Como con el sistema 1800 de la figura 18, cada dispositivo 1908 recibe sus datos de vídeo jerárquicos 1914 vía una conexión punto a punto de modo que el ancho de banda de comunicación se dedica a cada dispositivo 1908 en su 60 conexión con el servidor de vídeo 1904.
[0135] Como con el cambio de un canal a otro, como se ha descrito anteriormente, cada dispositivo 1908 del sistema 1900 puede recibir datos jerárquicos iniciales almacenados en el búfer, retardados o construidos cuando se cambia de un trozo a otro del mismo programa, facilitando así posiblemente el rápido cambio entre flujos 65 independientemente de si los trozos se alinean en bordes de datos jerárquicos.
[0136] La figura 20 ilustra un sistema de distribución de vídeo de ejemplo 2000 donde se puede emplear multidifusión para reducir la cantidad de ancho de banda consumido en una red central para transmisión no adaptable de datos de vídeo. En una forma de realización, el sistema 2000 se puede emplear para transmisión de televisión por protocolo de Internet (IPTV). En este ejemplo, al menos una fuente de datos 2002 transmite 5 múltiples canales de datos de vídeo 2010 a uno o más codificadores de vídeo 2003. Los codificadores 2003 codifican cada uno de estos canales a un canal correspondiente de datos de vídeo (jerárquicos) codificados 2012 para una red central de multidifusión 2005. La red central de multidifusión 2005 transporta los datos jerárquicos 2012 como un conjunto de multidifusión 2013, donde cada canal del conjunto de multidifusión 2013 representa los datos de vídeo codificado 2012 para un canal recibido de los codificadores 2003. Como resultado, múltiples 10 copias de datos de vídeo codificados 2012 no se llevan en el conjunto de multidifusión 2013, independientemente del número de dispositivos 2008 que soliciten el mismo canal.
[0137] También en el sistema 2000, un conmutador/rúter 2004 recibe peticiones de uno o más dispositivos 2008 para recibir datos de vídeo de uno de los canales de vídeo que se llevan en el conjunto de multidifusión 2013. En 15 algunos ejemplos, el conmutador/rúter 2004 puede ser, por ejemplo, un cable de Internet o una puerta de entrada de línea de abonado digital (DSL), o un multiplexor de acceso DSL (DSLAM). En respuesta a una solicitud, el conmutador/rúter 2004 dirige los datos de vídeo 2114 del flujo solicitado al dispositivo solicitante 2008. Como más de un dispositivo 2008 pueden solicitar el mismo canal, el conmutador/rúter 2004 puede dirigir los mismos datos de vídeo asociados al canal a los dispositivos 2008 que soliciten ese canal. Como resultado, no se 20 necesita reservar ancho de banda de comunicación de red para cada dispositivo para la totalidad de la conexión desde la red central de multidifusión 2005 a los dispositivos 2008 debido a la naturaleza de multidifusión de la conexión. En cambio, solo se necesita reservar ancho de banda duplicado para la porción de la red que es única para cada dispositivo 2008 (a veces denominada "la última milla"), reduciendo así la cantidad de ancho de banda o capacidad consumida en la red central de multidifusión 2005 a través del rúter 2004 y al menos una porción de 25 la vía de comunicación desde el conmutador/rúter 2004 hasta el dispositivo solicitante 2008.
[0138] En otro ejemplo, múltiples flujos para cada canal, donde cada flujo exhibe una velocidad de datos diferente, también pueden estar disponibles como multidifusiones a los dispositivos 2008 vía el rúter 2004. En ese escenario, cada dispositivo puede solicitar diferentes flujos de multidifusión en el modo de trozo a trozo para 30 adaptarse a las condiciones de enlace cambiantes.
[0139] Sin embargo, en el caso de que dos o más dispositivos 2008 puedan estar sintonizando los datos de vídeo del mismo programa, canal, o flujo que se esté recibiendo vía multidifusión, el conmutador/rúter 2004 puede no ser capaz de proporcionar datos de vídeo jerárquicos iniciales a un dispositivo 2008 que se acabe de 35 sintonizar a ese canal para facilitar una presentación rápida de los datos de vídeo si otro dispositivo 2008 ya está recibiendo los datos de vídeo para ese mismo canal. También, si una multidifusión se proporciona para cada programa o canal desde el conmutador/rúter 2004 a los dispositivos 2008, los dispositivos 2008 no pueden adaptarse a un enlace de mala calidad solicitando un flujo con una velocidad de datos inferior, ya que no habría ninguno disponible. 40
[0140] Para remediar esta situación, la figura 21 proporciona un sistema de distribución de vídeo de ejemplo 2100 que emplea un esquema de transmisión de vídeo híbrido de multidifusión/punto a punto. Similar al sistema 2000 de la figura 20, una o más fuentes de datos 2102 proporcionan múltiples canales de datos de vídeo 2110 a al menos un codificador de vídeo 2103, que genera múltiples flujos de datos de vídeo 2112 para cada canal o 45 programa recibido, donde cada flujo lleva datos de vídeo 2112 para una resolución/calidad/velocidad de datos de vídeo diferente para fines de transmisión adaptable. En otra forma de realización, el codificador de vídeo 2103 puede generar un único flujo de vídeo para cada canal recibido para entornos de transmisión no adaptables, aunque se supone una forma de realización de transmisión adaptable en la discusión siguiente.
50
[0141] El codificador 2103 transmite los flujos de datos de vídeo 2112 a una red central de multidifusión 2105, que combina los flujos en un conjunto de multidifusiones 2113 y transmite el conjunto de multidifusiones 2113 a un conmutador/rúter 2104. El conmutador/rúter 2104 también puede recibir un manifiesto o información o similar desde el codificador de vídeo 2103 vía la red central de multidifusión 2105 que indica los diversos flujos disponibles para cada canal. El conmutador/rúter 2104 puede entonces enviar el manifiesto, o proporcionar 55 información similar al manifiesto, a cada uno de los dispositivos 2108. Tras recibir el manifiesto o la información similar, cada uno de los dispositivos 2108 puede usar la información para emitir una solicitud al conmutador/rúter 2104 para un flujo particular para un canal deseado. En respuesta, el conmutador/rúter 2104 puede entonces entregar el trozo de los datos de vídeo solicitados 2114 asociados al manifiesto al dispositivo solicitante 2108 vía un protocolo punto a punto. Este proceso se puede repetir para cada trozo de datos de vídeo que está disponible 60 para el dispositivo 2108 para permitir que el dispositivo 2108 cambie flujos del mismo canal, adaptando así la velocidad de datos de los datos de vídeo 2114 a la calidad de enlace cambiante u otras condiciones.
[0142] Dado que se emplea una conexión punto a punto, tal como una conexión basada en HTTP o basada en RTSP, entre el conmutador/rúter 2104 y los dispositivos 2108, cada conexión entre cada dispositivo 2108 y el 65 rúter 2104 es única, de manera que es posible que se reciban flujos duplicados de datos de vídeo 2114 por dos
dispositivos diferentes. Sin embargo, la posibilidad de flujos duplicados también permite la generación y la transmisión de datos de vídeo iniciales, como se ha descrito anteriormente en varias formas de realización, para habilitar el rápido cambio entre canales diferentes, o flujos diferentes del mismo canal, de los datos de vídeo 2114, lo que no es posible con multidifusiones que se extienden desde la red central de multidifusión 2105 a algún punto más allá del rúter 2104. Dado que la red central de multidifusión 2105 mantiene el conjunto de 5 multidifusiones 2113 solo tan lejos como el rúter 2104, se consiguen algunos ahorros significativos en cuanto al ancho de banda de comunicación. Como resultado, en al menos algunos ejemplos, el rúter 2104 puede operar como un puente de punto a punto/multidifusión, donde las solicitudes punto a punto para datos de vídeo se convierten en transmisiones a partir de una conexión de multidifusión correspondiente.
10
[0143] En un ejemplo del sistema de distribución de vídeo 2100, el manifiesto o la información similar, al igual que cada flujo de cada canal que se está transmitiendo, se pueden considerar colectivamente que son datos de vídeo jerárquicos, que pueden ser almacenados en el búfer, retardados o construidos para fines de rápido cambio de transmisión.
15
[0144] La figura 22 muestra un ejemplo de un canal de datos de vídeo que incluye N flujos de datos de vídeo diferentes 2202.1, 2202.2, ... 2202.N de un programa o canal en el contexto del sistema 2100 de la figura 21. Cada uno de los flujos de datos 2202 puede representar una resolución diferente y, por lo tanto, velocidad de datos, para el contenido del canal o programa. Cada uno de los flujos 2202 se divide o reparte en segmentos o trozos, donde cada trozo comprende múltiples grupos de imágenes (GOP). Más específicamente, el trozo 1 20 empieza en el punto de inicio 2204.1, en alineación con el inicio del GOP 1; el trozo 2 empieza en el punto de inicio 2204.2, en alineación con el inicio del GOP 5; y el trozo 3 empieza en el punto de inicio 2204.3, en alineación con el inicio del GOP 9. Otras aplicaciones pueden incluir cualquier número de GOP dentro de cada trozo, incluido un GOP por trozo. Cada trozo puede representar una longitud fija de tiempo de reproducción de los datos de vídeo contenidos en el mismo, tal como, por ejemplo, dos segundos, aunque longitudes de trozos 25 tanto más cortas como más largas también son posibles. Como resultado de la alineación de los bordes del trozo con los bordes del GOP, el cambio de un flujo 2202 a otro en el mismo canal o programa no causaría normalmente un retraso en la espera para la primera imagen o fotograma de un grupo de imágenes mientras otros fotogramas de la jerarquía de datos de vídeo se reciben para presentar los datos de vídeo al usuario. Así, el rúter 2104 del sistema 2100 no necesita almacenar en el búfer, retrasar o construir los datos iniciales para la 30 transmisión a los dispositivos 2108, como se ha descrito anteriormente.
[0145] Por el contrario, la figura 23 representa un ejemplo de múltiples flujos 2302.1, 2302.2, ... 2302.N del mismo canal o programa de datos de vídeo, donde las posiciones de inicio de los trozos 2304.1, 2304.2, 2304.3, etcétera, no siempre se alinean con un fotograma del GOP inicial, tal como un fotograma I. Por consiguiente, si 35 un dispositivo que recibe el canal de datos de vídeo cambia de un trozo de un flujo 2302 al trozo siguiente de otro flujo 2302, y esa transición no se alinea con un borde del GOP (tal como por ejemplo, la posición de inicio del trozo 2 2304.2, que se sitúa en algún lugar dentro del GOP 4), el rúter 2104 puede realizar cualquier almacenamiento en el búfer, retraso, o construcción de datos de vídeo iniciales para habilitar el cambio entre flujos 2302 sin esperar el siguiente GOP (en este caso, GOP 5). En un ejemplo, la longitud de trozo puede ser 40 mucho menor que el tamaño de un GOP, en cuyo caso la capacidad del dispositivo 2108 para cambiar entre flujos 2302 rápidamente, como se ha discutido en detalle anteriormente, puede ser importante, ya que la mayoría de los bordes de los trozos no se alinearían con, o estarían posicionados cercanamente cerca de, un borde de GOP.
45
[0146] La figura 24 es un diagrama de bloques de un conmutador/rúter de ejemplo 2400, que puede servir como el conmutador/rúter 2104 de la figura 21, el conmutador/rúter 104 de la figura 1, y/o el conmutador/rúter 229 de la figura 2. Como se muestra, el conmutador/rúter 2400 puede incluir una interfaz de multidifusión 2402, una interfaz de punto a punto 2404, al menos un búfer de flujo de vídeo 2406.1, 2406.2, ... 2406.N, y lógica de control 2408. El conmutador/rúter 2104 se puede implementar en el hardware, software, firmware, o alguna combinación 50 de los mismos, como una o más máquinas, tal como el sistema informático 3400 de la figura 34.
[0147] La interfaz de multidifusión 2402 recibe datos de vídeo en multidifusiones proporcionadas por una red central de multidifusión, como la red 2105 de la figura 21. La interfaz de multidifusión 2402 almacena al menos algunos de los datos de vídeo recibidos en el uno o más búferes de flujo de vídeo 2406 para el procesamiento 55 y/o la transmisión posterior. La interfaz de multidifusión 2402 también transmite y/o recibe cualquier otra información, tales como manifiestos de transmisión adaptable, que pasa entre el rúter 2400 y la red central de multidifusión.
[0148] La interfaz de punto a punto 2404 transmite datos de vídeo desde el uno o más búferes de flujo de vídeo 60 2406 a uno o más dispositivos, tal como el dispositivo 2108 de la figura 21. La interfaz de punto a punto 2404 también transmite y/o recibe información relacionada con los datos de vídeo que se están transmitiendo, entre los que se incluyen, pero de forma no limitativa, manifiestos para el uso de los dispositivos y peticiones recibidas de los dispositivos para flujos de datos particulares. En otras implementaciones descritas a continuación, el conmutador/rúter 2400 también puede incluir una segunda interfaz de multidifusión para entregar multidifusiones 65 a uno o más de los dispositivos.
[0149] Los búferes de flujo de vídeo 2406 reciben datos de vídeo desde la interfaz de multidifusión 2402, almacenan al menos algunos de los datos de vídeo recibidos durante algún periodo de tiempo y luego envían al menos algunos de los datos de vídeo a la interfaz de punto a punto 2404 para la transmisión a los dispositivos. En algunos ejemplos, los búferes de flujo de vídeo 2406 pueden incluir otros datos de vídeo, tales como 5 fotogramas construidos a partir de vídeo recibido para proporcionar datos jerárquicos iniciales, como se ha discutido con mayor detalle anteriormente. En algunas formas de realización, los búferes de flujo de vídeo 2406 pueden recibir, almacenar y enviar otra información en relación con los datos de vídeo, tales como manifiestos.
[0150] La lógica de control 2408 controla el funcionamiento de la interfaz de multidifusión 2402, la interfaz de 10 punto a punto 2404 y los búferes de flujo de vídeo 2406 de modo que el conmutador/rúter 2400 pueda realizar las operaciones discutidas a continuación conjuntamente con las figuras 25-29 y 31. Ejemplos de estas operaciones incluyen, pero de forma no limitativa, crear y ajustar el tamaño de los búferes de flujo de vídeo 2406, procesar y/o generar manifiestos, seleccionar flujos de vídeo para transmisión y similares. Cada una de las operaciones discutidas puede no ser ejecutada en una forma estrictamente en serie en todos los ejemplos, como 15 se indica en los diagramas de flujo de las figuras 25-29 y 31, pero se pueden realizar en cambio en órdenes alternativos, donde algunas operaciones se ejecutan parcialmente o totalmente de forma concurrente.
[0151] La figura 25 es un diagrama de flujo de un método de ejemplo 2500 para recibir y distribuir datos de vídeo a uno o más dispositivos. En el método 2500, el rúter 2400 recibe un manifiesto vía la interfaz de multidifusión 20 2402 que indica los diversos flujos de datos de vídeo están siendo transmitidos en multidifusión (operación 2502). El manifiesto también puede incluir otra información relacionada con cada uno de los flujos, tal como información que asocia un flujo de vídeo determinado con un programa específico o identificador de contenido que uno o más dispositivos pueden referenciar para solicitar el flujo. El manifiesto también puede incluir información que indica el tamaño de uno o más trozos de cada flujo asociado al manifiesto, las velocidades de 25 datos de cada uno de los flujos y otra información.
[0152] Basándose en el manifiesto, el conmutador/rúter 2400 puede ajustar un número de los búferes de flujo de vídeo 2406 para almacenar una porción de cada flujo para que sea recibida y posiblemente distribuida a un dispositivo (operación 2504). Por ejemplo, el conmutador/rúter 2400 puede asignar un búfer de flujo de vídeo 30 2406 para cada uno de los flujos que se va a recibir, con un tamaño de búfer de al menos un trozo. En un ejemplo, el rúter 2400 puede ajustar el tamaño de búfer del búfer de datos de vídeo 2406 para cada flujo a un trozo en el caso de que el rúter 3400 reciba el manifiesto antes de la recepción de cualquiera de los datos de vídeo asociados a ese trozo. En otro ejemplo, el rúter 2400 puede ajustar el tamaño de cada búfer de datos de vídeo 2406 a al menos dos trozos si el rúter 2400 se opera para enviar un manifiesto para el trozo siguiente 35 mientras se transmite el trozo actual a un dispositivo solicitante. En otro ejemplo, la longitud de cada uno de los búferes de flujo de vídeo 2406 se puede establecer para algún periodo de tiempo mínimo asociado a cada trozo. En una forma de realización, cada uno de los búferes de flujo de vídeo 2406 se puede organizar como un búfer "ping-pong" doble donde un trozo actual preparado para la transmisión se puede almacenar mientras el trozo siguiente se está recibiendo en el búfer 2406. 40
[0153] El rúter 2400 transmite el manifiesto a cada uno de los dispositivos que pueden solicitar uno de los flujos de datos de vídeo (operación 2508). En un ejemplo, el rúter 2400 transmite el manifiesto para el trozo siguiente mientras que el rúter 2400 transmite el trozo actual de uno o más flujos de datos a los dispositivos. El rúter 2400 puede enviar el manifiesto sin cambiar, o puede revisar o modificar de otro modo el manifiesto antes de la 45 transmisión a los dispositivos. Por ejemplo, como se describe más completamente a continuación, el rúter 2400 puede eliminar información relativa a uno o más de los flujos de datos de vídeo para evitar que los dispositivos soliciten esos flujos de datos de vídeo. En otro ejemplo, el rúter 2400 puede aumentar o reducir el tamaño de los trozos para cada flujo de un programa o canal particular para modificar la frecuencia a la que los dispositivos pueden solicitar un flujo particular para que el trozo siguiente sea transmitido desde el rúter 2400. 50
[0154] El conmutador/rúter 2400 puede entonces recibir una solicitud de un dispositivo para un trozo de un flujo de datos de vídeo como se identifica en el manifiesto (operación 2510). Como se ha indicado anteriormente, el dispositivo puede elegir un flujo particular basándose en el programa o contenido deseado, las capacidades de visualización del dispositivo y la calidad percibida actual del enlace de comunicación entre el dispositivo y el rúter 55 2400. En un ejemplo, la calidad del enlace se puede considerar pobre si el dispositivo está experimentando "falta de datos" en el búfer, donde se vacían los datos de vídeo de un búfer del dispositivo para la presentación a un usuario antes de que el siguiente trozo de datos de vídeos se reciba en ese búfer.
[0155] En respuesta a la solicitud, el rúter 2400 transmite el trozo siguiente de la transmisión de datos de vídeo 60 solicitada desde el búfer de flujo de vídeo asociado 2406 vía la interfaz de punto a punto 2404 al dispositivo (operación 2512). Si la solicitud no se alinea con un borde del GOP o borde de datos jerárquicos similar, el rúter 2400 puede transmitir datos previamente almacenados en el búfer o retardados para el flujo solicitado como datos iniciales para acelerar la presentación de los datos de vídeo al usuario. En otro ejemplo, el rúter 2400 puede construir datos iniciales de construcción a partir de uno o más fotogramas de vídeo almacenados en el 65 búfer de flujo de vídeo apropiado 2406 la para transmisión como datos iniciales al dispositivo solicitante.
[0156] El rúter 2400 puede recibir varias tales solicitudes de flujos de datos de múltiples dispositivos (operación 2510), y transmitir un trozo de un flujo de datos de vídeo solicitado (operación 2512) en respuesta a cada una de las solicitudes recibidas. Además, cualquiera de y/o todas las operaciones 2502-2512 se pueden realizar reiteradamente para cada manifiesto recibido. 5
[0157] La figura 26 representa otro método de ejemplo 2600 de operación del conmutador/rúter 2400 para recibir y distribuir contenido de vídeo donde un manifiesto no se proporciona al rúter 2400. En el método 2600, el rúter 2400 establece el uno o más búferes de flujo de vídeo 2406 para recibir los diversos flujos de vídeo disponibles en un conjunto de multidifusiones (operación 2602). En un ejemplo, el rúter 2400 establece el número de búferes 10 de flujo de vídeo 2406 basándose en un directorio que identifica cada uno de los flujos de multidifusión, junto con cualquier otra información asociada a cada flujo, tal como información de la velocidad de datos del flujo. En otro ejemplo, el rúter 2400 puede ajustar la longitud de cada uno de los búferes de flujo de vídeo 2406 en cuanto a otro múltiple de un tamaño de trozo determinado por el rúter 2400, o basándose en una cantidad de tiempo de presentación asociada a cada uno de los flujos. 15
[0158] En respuesta al ajuste de los búferes de flujo de vídeo 2406, el rúter 2400 puede recibir una porción de cada uno de los flujos del conjunto de multidifusiones en su búfer respectivo 2406 (operación 2604). También, el rúter 2400 reparte los datos de vídeo de cada flujo en uno o más trozos (operación 2606). El rúter 2400, en un ejemplo, puede determinar el tamaño del trozo basándose en una cantidad deseada de tiempo de presentación 20 para cada trozo.
[0159] En respuesta a la determinación del tamaño del trozo y el consiguiente reparto de cada una de las partes de flujo recibidas, el rúter 2400 puede generar un manifiesto para proporcionar información sobre cada uno de los siguientes trozos de flujo de vídeo almacenados en los búferes de flujo de vídeo 2406 (operación 2608). 25 Como se ha indicado anteriormente, el manifiesto proporciona información con relación a cada trozo, incluyendo posiblemente, pero de forma no limitativa, el tamaño de datos de cada trozo, el tiempo de presentación asociado a cada trozo y la velocidad de datos a la que el trozo se puede transmitir. Después de generar el manifiesto para el trozo siguiente, el rúter 2400 transmite el manifiesto a cada uno de los dispositivos que están acoplados de manera comunicativa con el rúter 2400 (operación 2610). El rúter 2400 puede transferir el manifiesto para el 30 trozo siguiente mientras el rúter 2400 está transfiriendo el trozo actual de uno o más flujos de datos a los dispositivos.
[0160] Como con el método 2500 de la figura 25, el método 2600 puede recibir una o más solicitudes para un siguiente trozo de un flujo seleccionado desde uno o más dispositivos (operación 2612). En respuesta a cada 35 solicitud, el rúter 2400 transmite el trozo siguiente del flujo solicitado a cada uno de los dispositivos solicitantes (operación 2614). También similar al método 2500, si la solicitud no se alinea con un borde del GOP o borde de datos jerárquicos similar, el rúter 2400 puede transmitir los datos previamente almacenados en el búfer o retardados para el flujo solicitado como datos iniciales para acelerar la presentación de los datos de vídeo al usuario. En otro ejemplo, el rúter 2400 puede construir datos iniciales a partir de uno o más fotogramas de vídeo 40 para la transmisión como datos iniciales al dispositivo solicitante.
[0161] El rúter 2400 puede recibir diferentes solicitudes de flujos de datos de múltiples dispositivos (operación 2612), y transmitir un trozo del flujo de datos de vídeo solicitado (operación 2614) en respuesta a cada solicitud recibida. Además, cualquiera de y/o todas las operaciones 2602-2614 se pueden realizar reiteradamente para 45 cada porción posterior de los flujos de vídeo recibidos en el rúter 2400.
[0162] La figura 27 presenta otro método de ejemplo 2700 de operación del rúter 2400 donde los manifiestos no se transmiten a los dispositivos. Como se ha descrito con mayor detalle anteriormente con respecto al método 2600 de la figura 26, el método 2700 establece un búfer de flujo de vídeo 2406 para cada flujo de vídeo que se 50 va a recibir vía multidifusión (operación 2702). Similar al método precedente 2600, el rúter 2400 recibe los datos de vídeo para cada flujo de multidifusión en su búfer correspondiente 2406 (operación 2704) y reparte los datos de cada flujo en el trozo siguiente que se va a proporcionar a uno o más de los dispositivos (operación 2706).
[0163] El rúter 2400 puede entonces recibir a partir de un dispositivo una solicitud para el siguiente trozo para un 55 flujo de datos asociado al canal o programa deseado (operación 2708). A diferencia de los métodos precedentes 2500, 2600, el dispositivo no selecciona un flujo particular en la solicitud, ya que el dispositivo no ha recibido un manifiesto desde el rúter 2400 que indique los flujos que están disponibles para un canal particular. Sin embargo, como parte de la solicitud, el dispositivo puede indicar alguna preferencia con respecto a la resolución, velocidad de datos, o calidad del siguiente trozo que se está solicitando. En respuesta a la solicitud, el rúter 2400 60 selecciona el flujo desde el que se debería transmitir el siguiente trozo (operación 2710). En una implementación, el rúter 2400 puede seleccionar el flujo desde el que se va a transmitir el trozo basándose en cualquiera de las preferencias indicadas por el dispositivo, así como en cualquier información que haya recibido el rúter 2400 con respecto al enlace de comunicación entre el rúter 2400 y el dispositivo específico. Por ejemplo, basándose en los reconocimientos del paquete o mensaje transmitidos por el dispositivo al rúter 2400 durante la transferencia de 65 trozos precedentes, el rúter 2400 puede determinar que los trozos asociados a una velocidad de datos mayor o
menor en comparación con la velocidad de datos de trozos previamente transmitidos son una opción mejor para el enlace de comunicación entre el rúter 2400 y el dispositivo. En una forma de realización, para transferencias iniciales de trozos a un dispositivo, el rúter 2400 puede seleccionar flujos de baja velocidad de datos, luego puede progresar a trozos de mayor velocidad de datos hasta que el rúter 2400 determine que la velocidad de datos de los trozos casi coincida con el ancho de banda de la conexión entre el rúter 2400 y el dispositivo. 5
[0164] El rúter 2400 entonces transfiere el siguiente trozo para el flujo seleccionado al dispositivo (operación 2712). Como con los métodos precedentes 2500, 2600, si la solicitud no se alinea con un borde del GOP o borde de datos jerárquicos similar, el rúter 2400 puede transmitir los datos previamente almacenados en el búfer o retardados para el flujo solicitado como datos iniciales para acelerar la presentación de los datos de vídeo al 10 usuario. También, el rúter 2400 puede construir datos iniciales a partir de uno o más fotogramas para la transmisión como datos iniciales al dispositivo solicitante.
[0165] El rúter 2400 puede recibir solicitudes de trozos de múltiples dispositivos (operación 2708), seleccionar un flujo de datos de vídeo específico (operación 2710) y transmitir el siguiente trozo del flujo seleccionado 15 (operación 2712) en respuesta a cada una de las solicitudes recibidas. Además, cualquiera de y/o todas las operaciones 2702-2712 se pueden realizar reiteradamente para cada porción posterior de los flujos de vídeo recibidos en el rúter 2400.
[0166] La figura 28 ilustra un método de ejemplo 2800 de la operación del rúter 2400 para distribuir datos de 20 vídeo a dispositivos donde el rúter 2400 pueden anular una solicitud de un dispositivo para un flujo de datos específica. El método 2800 de centra en la transferencia de datos de vídeo desde el rúter 2400 a los dispositivos y, por tanto, no describe el proceso de recepción y almacenamiento de los datos de vídeo de los flujos. Sin embargo, el método 2800 se puede emplear con cualquiera de las operaciones de los métodos 2500, 2600 y 2700 en cuanto a la recepción y almacenamiento de datos de vídeo en los búferes de flujo de vídeo 2406 del 25 rúter 2400.
[0167] En el método 2800, el rúter 2400 puede no ser capaz de recibir todos los flujos de datos de todos programas o canales simultáneamente debido a las limitaciones del ancho de banda o de la capacidad de memoria. En tales casos, el rúter 2400 puede ser capaz de transmitir un flujo de datos de vídeo a un segundo 30 dispositivo que ya se está viendo por un primer dispositivo, incluso si ese flujo no era el flujo solicitado por este dispositivo. Dicho de otra manera, el rúter 2400 puede seleccionar, para el mismo programa o canal, un flujo diferente para el siguiente trozo que el solicitado específicamente por el dispositivo, tal como en el caso de ancho de banda de comunicación limitado en la recepción de los flujos de datos en el rúter 2400. Tal condición puede persistir hasta que, por ejemplo, el rúter 2400 sea capaz de recibir trozos del flujo solicitado. 35
[0168] En otros ejemplos, el rúter 2400 también puede tener un ancho de banda limitado en la transmisión de flujos de datos de vídeo a los dispositivos. En este caso, el rúter 2400 puede seleccionar flujos con velocidades de datos más bajas que los solicitados por uno o más de los dispositivos para asegurar que cada uno de los dispositivos recibirá la programación deseada sin falta de datos en el búfer o problemas similares, aunque sea a 40 velocidades potencialmente más bajas que las deseadas.
[0169] En el método 2800, el rúter 2400 puede recibir una solicitud para el siguiente trozo disponible a partir de un flujo de datos específico (operación 2802). En respuesta, en vez de transferir automáticamente el siguiente trozo del flujo de datos específico, el rúter 2400 puede determinar el ancho de banda de comunicación disponible 45 para que el rúter 2400 transmita los datos de vídeo al dispositivo solicitante (operación 2804). Como parte de la determinación del ancho de banda, el rúter 2400 puede analizar las velocidades de datos de los datos de vídeo que el rúter 2400 está transmitiendo actualmente a los otros dispositivos para determinar si las velocidades de datos asociadas a cualquiera de esos dispositivos se pueden reducir para permitir al primer dispositivo recibir su programa deseado. El rúter 2400 puede entonces seleccionar un flujo donde el siguiente trozo se transmitirá al 50 dispositivo solicitante basándose en el flujo solicitado y el ancho de banda disponible (operación 2806), y transmitir el siguiente trozo del flujo seleccionado al dispositivo (operación 2808).
[0170] En la realización de las operaciones 2802-2808 del método 2800, el rúter 2400 puede ajustar el flujo desde el que el siguiente trozo se va a transmitir para cada dispositivo a medida que ese dispositivo solicita su 55 siguiente trozo vía operaciones 2802-2808. En algunos ejemplos, el rúter 2400 puede ser capaz de anticipar problemas potenciales de ancho de banda y reducir las velocidades de datos de uno o más dispositivos antes de que otro dispositivo empiece a solicitar datos de vídeo. En otros ejemplos, el rúter 2400 se puede coordinar con uno o más rúteres diferentes 2400 (no mostrados explícitamente en la figura 24) para asegurar que cualquier ancho de banda compartido por los rúteres 2400 se pueda repartir entre los rúteres 2400 de una forma similar 60 para asegurar el acceso razonable a los datos de vídeo por tantos dispositivos como sea posible.
[0171] Como con los métodos precedentes 2500, 2600, 2700, si la solicitud no se alinea con un borde del GOP o borde de datos jerárquicos similar, el rúter 2400 puede los transmitir datos previamente almacenados en el búfer o retardados para el flujo solicitado como datos iniciales para acelerar la presentación de los datos de vídeo al 65
usuario. También, el rúter 2400 puede construir datos iniciales a partir de uno o más fotogramas para la transmisión como datos iniciales al dispositivo solicitante.
[0172] La figura 29 representa un método 2900 de operación del rúter 2400 para distribuir datos de vídeo a múltiples dispositivos sin proporcionar los datos de vídeo en el segmento o trozos predeterminados. En algunas 5 implementaciones, el rúter 2400 puede controlar la retroalimentación de la velocidad de datos de los dispositivos que reciben datos de vídeo desde el rúter 2400. Basándose en esta retroalimentación, el rúter 2400 puede ajustar la velocidad de datos de los datos de vídeo posteriores que se van a transmitir a cada dispositivo sin esperar a un trozo particular o borde del GOP. Como resultado, el rúter 2400 puede emplear las técnicas anteriormente descritas con respecto a la transmisión de datos iniciales por medio de datos de vídeo 10 almacenados en el búfer, retardados o construidos a partir de prácticamente cualquier punto de acceso aleatorio en cualquier flujo de datos, permitiendo así que el rúter 2400 se ajuste rápidamente a la calidad de enlace cambiante, peticiones de ancho de banda, y demás. Esta capacidad puede ser importante para dispositivos inalámbricos y móviles, que típicamente operan en entornos donde la calidad de enlace puede variar significativamente a lo largo del tiempo. 15
[0173] En el método 2900, el rúter 2400 recibe una solicitud para datos de vídeo para un canal o programa deseado (operación 2902). En algunos ejemplos, el rúter 2400 también puede recibir una preferencia con respecto a la velocidad de datos o resolución de vídeo a la que el dispositivo solicitante debe recibir los datos de vídeo (operación 2904). En algunas aplicaciones, el rúter 2400 puede recibir tal solicitud cuando el dispositivo 20 solicitante desea unirse a un nuevo canal o programa, a diferencia de solicitar explícitamente y periódicamente trozos de datos de vídeo de un flujo de datos seleccionado asociado al programa. Tal esquema permite que el rúter 2400 controle continuamente y determine un flujo de datos apropiado del programa o canal deseado para la transmisión al dispositivo.
25
[0174] En algunas formas de realización, el rúter 2400 puede analizar o determinar el ancho de banda de comunicación disponible para la transmisión de un flujo de datos (operación 2906). En un ejemplo, el rúter 2400 puede hacer tal determinación basándose en reconocimientos de paquetes de datos de vídeo, tal como los proporcionados cuando se emplea una conexión TCP/IP entre el rúter 2400 y los dispositivos para transferir los datos de vídeo. El rúter 2400 puede emplear los reconocimientos para deducir una velocidad de descarga o 30 recepción de datos media en cada uno de los dispositivos de reconocimiento. Otros métodos de determinación del ancho de banda disponible de uno o más dispositivos se puede utilizar en otras aplicaciones.
[0175] Basándose en el ancho de banda disponible determinado, la solicitud de canal o programa y cualquier preferencia de velocidad indicada por el dispositivo, el rúter 2400 selecciona un flujo de vídeo particular del 35 programa o canal solicitado (operación 2908) y empieza a transmitir el flujo de vídeo seleccionado al dispositivo solicitante (operación 2910). En un ejemplo, el rúter 2400 también puede ajustar las velocidades de datos para múltiples dispositivos en una base continua ante nuevos dispositivos que solicitan datos de vídeo y otros cambios en el entorno de comunicación, como se ha descrito anteriormente con respecto al método 2800 de la figura 28. Además, el rúter 2400 se puede coordinar con otros rúteres 2400 para repartir cualquier ancho de banda 40 compartido entre los rúteres 2400 y los dispositivos, como se ha descrito anteriormente.
[0176] En cada ejemplo anteriormente descrito donde el rúter 2400 o bien invalida una solicitud del dispositivo para un flujo de datos de una velocidad de datos particular, o bien donde el rúter 2400 selecciona un flujo particular que exhibe algunas velocidades de datos para el dispositivo en ausencia de una preferencia de 45 velocidad de datos desde el dispositivo, el rúter 2400 puede o no proporcionar al dispositivo información sobre la velocidad de datos del flujo seleccionado.
[0177] Además, en cada una de las implementaciones mencionadas anteriormente que emplean trozos, el rúter 2400 puede o no esperar a la llegada y el almacenamiento de un trozo completo a un búfer de flujo de vídeo 50 correspondiente 2406 antes de iniciar la transmisión del trozo a un dispositivo solicitante. En un ejemplo, el rúter 2400 puede empezar la transmisión de un trozo a partir de un búfer 2406 mientras al menos parte del trozo tiene todavía que ser recibida en el búfer 2406 vía la interfaz de multidifusión 2402 si el rúter 2400 posee información suficiente para asegurar que el resto de los datos para el trozo estarán disponibles en el búfer 2406 en el momento en que los datos se deban transmitir al dispositivo. El rúter 2400 puede hacer esta determinación 55 basándose en uno o más tipos de información, tal como, por ejemplo, la calidad del enlace entre el rúter 2400 y el dispositivo receptor y/o las velocidades de datos de los datos de vídeo que están siendo tanto recibidos en el búfer 2406 como transmitidos fuera del búfer 2406.
[0178] En cada una de las formas de realización anteriormente descritas, un dispositivo puede recibir uno o más 60 flujos de datos de vídeo vía multidifusión desde el rúter 2400, a diferencia de una conexión punto a punto. Por ejemplo, dado que el rúter 2400 puede estar recibiendo múltiples flujos para el mismo programa vía multidifusión, donde cada flujo posee una velocidad de datos diferentes, el rúter 2400 puede poseer la capacidad para proporcionar uno de esos flujos a un dispositivo vía multidifusión. Así, en cualquiera de las formas de realización mencionadas anteriormente donde, por ejemplo, el dispositivo determina la velocidad de datos, o el rúter 2400 65 invalida la solicitud del dispositivo, o el rúter 2400 determina qué flujo proporcionar al dispositivo, el flujo
seleccionado se puede transmitir vía multidifusión. Además, formas de realización donde el rúter 2400 no proporciona ningún manifiesto al dispositivo, o proporciona los flujos en un formato "sin trozos", también pueden transmitir el flujo resultante vía multidifusión al dispositivo.
[0179] La figura 30 es un diagrama de bloques de un sistema de distribución de vídeo 3000 donde múltiples 5 capas de conmutador/rúteres 3004, 3006 se pueden emplear para mejorar la capacidad del sistema 3000 para ajustarse a niveles cambiantes de calidad de enlace, ancho de banda de comunicación y similares. La figura 30 proporciona un esquema de conmutador/rúter de dos niveles, pero más de dos niveles de conmutador/rúteres se pueden emplear en otras formas de realización.
10
[0180] Similar al sistema de distribución 2100 de la figura 21, una o más fuentes de datos 3002 pueden proporcionar múltiples canales de datos de vídeo 3010 a al menos un codificador de vídeo 3003, que genera múltiples flujos de datos de vídeo 3012 para cada canal o programa recibido, donde cada flujo lleva datos de vídeo 3012 para una resolución/calidad/velocidad de datos de vídeo diferente para fines de transmisión adaptable. En otros ejemplos no adaptables, solo se puede proporcionar un flujo por canal. El codificador 3003 15 transmite los flujos de datos de vídeo 3012 a una red central de multidifusión 3005, que combina los flujos en un conjunto de multidifusiones 3013 y transmite el conjunto de multidifusiones 3013 a un conmutador/rúter de nivel de primer 3004. El conmutador/rúter de nivel de primer 3004 también puede recibir un manifiesto o información similar desde el codificador de vídeo 3003 vía la red central de multidifusión 3005 que indica los diversos flujos disponibles para cada canal, aunque el sistema 3000 puede operar bajo una configuración sin manifiesto, como 20 se ha descrito con mayor detalle anteriormente.
[0181] El conmutador/rúter del primer nivel 3004 puede entonces enviar los datos de vídeo (y cualquier manifiesto relacionado o información similar, si hay) a uno o más conmutadores/rúteres del segundo nivel 3006 para el beneficio de uno o más dispositivos 2108. En un ejemplo, el rúter del primer nivel 3004 y los rúteres del 25 segundo nivel 3006 pueden comunicarse utilizando un esquema híbrido de multidifusión/punto a punto. Como se muestra en el ejemplo de la figura 30, el rúter del primer nivel 3004 proporciona una o más multidifusiones 3015 a un rúter del segundo nivel 3006.1, mientras que el rúter del primer nivel 3004 proporciona una o más reproducciones de vídeo punto a punto 3016 a otro rúter del segundo nivel 3006.2. En otros ejemplos, un rúter del segundo nivel 3006 puede recibir cualquier número de multidifusiones y/o flujos punto a punto desde el rúter 30 del primer nivel 3004. Según una implementación, el rúter del primer nivel 3004 puede recibir todas los flujos disponibles para cada programa o canal, mientras que el rúter del primer nivel 3004 proporciona solo los programas más populares como multidifusiones a los rúteres del segundo nivel 3006, donde los rúteres del segundo nivel 3006 gestionan las solicitudes de sus dispositivos conectados 3008 para esos programas y entregan los datos de vídeo solicitados 3014 a los dispositivos correspondientes 3008 vía un protocolo punto a 35 punto. Si uno de los dispositivos 3008 solicita datos de vídeo para un programa menos popular, el rúter del segundo nivel 3006 puede, a su vez, solicitar ese programan desde el rúter de nivel de primer 3004. En respuesta, el rúter de nivel de primer 3004 puede entonces entregar el programa solicitado vía una conexión punto a punto al rúter del segundo nivel 3006, que entonces entrega esos datos de vídeo vía su conexión punto a punto al dispositivo solicitante 3008. Por consiguiente, el rúter de nivel de primer 3015 y los rúteres del segundo 40 nivel 3006 se pueden comunicar vía un protocolo que identifica qué programas están disponibles a los rúteres del segundo nivel 3006 vía multidifusión, y cuáles están disponibles vía una conexión punto a punto. Además, el rúter del primer nivel 3006 puede cambiar un flujo de vídeo para un programa o canal de entrega por multidifusión a punto a punto basándose en la popularidad del programa y otros factores, donde los programas más populares se transmiten vía multidifusión en un ejemplo. 45
[0182] En algunas aplicaciones, los rúteres del segundo nivel 3006 pueden directamente atender las solicitudes de dispositivos 3008 que solicitan datos de vídeo para un programa que el rúter del segundo nivel 3006 está proporcionando actualmente a otro dispositivo 3008 sin ninguna comunicación adicional con el rúter del primer nivel 3004. 50
[0183] En cualquiera de los ejemplos con respecto al rúter 2400 anteriormente descrito, algunos de los datos jerárquicos, tales como los propios flujos de vídeo, o cualquier manifiesto de transmisión adaptable asociado o información similar, se puede reducir o limitar antes de presentarse a los dispositivos. En un ejemplo, en los casos mencionados anteriormente donde el rúter 2400 puede no tener acceso a suficiente ancho de banda de 55 comunicación para transmitir los datos de vídeo para cada flujo de vídeo solicitado, el rúter 2400 puede eliminar preventivamente cualquier flujo de vídeo con mayores velocidades de datos del manifiesto que saturarían la capacidad del enlace de comunicación entre el rúter 2400 y sus dispositivos. En un momento posterior cuando haya más ancho de banda disponible en el enlace, el rúter 2400 puede entonces reintroducir la información para el flujo de mayor velocidad de datos de nuevo en el manifiesto para hacer que los flujos de datos de vídeo 60 asociados estén disponibles a los dispositivos.
[0184] De forma similar, la figura 31 es un diagrama de flujo de otro método de ejemplo 3100 de operación del rúter 2400 de la figura 24 para distribuir datos de vídeo donde el rúter 2400 puede reducir el tamaño de un flujo de datos él mismo para reducir su velocidad de datos efectiva. En el método 3100, el rúter 2400 puede recibir 65 una solicitud para un flujo de vídeo particular (operación 3102). El rúter 2400 puede entonces determinar el
ancho de banda de transmisión disponible del enlace entre el rúter 2400 y el dispositivo solicitante (operación 3104), posiblemente con análisis de las velocidades de datos para otros datos que se estén transmitiendo desde el rúter 2400 que puedan afectar al enlace. El rúter 2400 puede entonces determinar si el flujo de velocidad de datos más baja que está disponible para el programa de interés para el dispositivo es suficiente para evitar la saturación del enlace (operación 3106). Si es así, el rúter 2400 puede seleccionar uno de los flujos disponibles 5 que más coincida con el flujo solicitado (operación 3108) y transmitir el flujo seleccionado al dispositivo solicitante (operación 3112). Si, en cambio, el flujo con la velocidad de datos más baja puede causar retrasos de comunicación u otros problemas para el dispositivo solicitante u otros dispositivos acoplados con el rúter 2400 (operación 3106), el rúter 2400 puede entonces reducir la cantidad de datos en ese flujo (operación 3110) para reducir la velocidad de datos del flujo para satisfacer la solicitud al tiempo que se evita la saturación del enlace, y 10 transmitir entonces el flujo modificado (operación 3112). Tal método 2400 se puede emplear en sistemas que pueden o no emplear un manifiesto para describir los diversos flujos de velocidades de datos disponibles para un programa o canal particular.
[0185] En algunos ejemplos, la cantidad de datos en un flujo de vídeo se puede reducir sin recodificar ningún 15 fotograma de vídeo en la jerarquía de datos eliminando los fotogramas más dependientes en la jerarquía de datos (en otras palabras, eliminando al menos alguno de los fotogramas de los que no dependen ningún otro fotograma). Así, se generaría un flujo de velocidad de datos reducida sin hacer que el flujo sea inválido desde un punto de vista de la descodificación. En algunos sistemas donde se proporciona un manifiesto, el rúter 2400 puede añadir cualquier información para que este nuevo flujo de datos permita que un dispositivo solicite 20 explícitamente el flujo. La figura 32 proporciona un ejemplo gráfico de un GOP MPEG-2 en el orden de presentación 3202 y orden de transmisión 3204 donde el rúter 2400 puede eliminar algunos de los fotogramas más dependientes (fotogramas B) 3210 antes de transmitir el GOP al dispositivo solicitante. En este ejemplo, se elimina el cincuenta por ciento de los fotogramas B. Los fotogramas B que se eliminan para generar el nuevo flujo de vídeo se muestran con líneas discontinuas. Suponiendo que el flujo de datos original proporcione una 25 velocidad de fotogramas de 30 fotogramas por segundo, el flujo de datos reducido 3200 puede proporcionar solo 20 fotogramas por segundo, creando así posiblemente una presentación desigual del flujo al usuario, pero reduciendo la velocidad de datos del flujo en aproximadamente el 20 por ciento, haciendo así la entrega del programa al dispositivo posible sin saturar el enlace desde el rúter 2400 al dispositivo.
30
[0186] La figura 33 presenta un ejemplo gráfico del mismo GOP MPEG-2 original en el orden de presentación 3302 y orden de transmisión 3304 donde el rúter 2400 elimina todos los fotogramas B 3310, dando como resultado posiblemente una reducción total de la velocidad de datos del flujo reducida 3300 en aproximadamente el 40 por ciento. Tal reducción además reduciría la calidad de la presentación reduciendo la velocidad de presentación media a aproximadamente 10 fotogramas por segundo, pero daría como resultado la entrega del 35 programa o canal deseado sin crear problemas de transmisión y/o falta de datos en el búfer del dispositivo ni en el dispositivo solicitante ni en otros dispositivos acoplados con el rúter 2400. Si se requiere más reducción de la velocidad de datos, uno o más de los fotogramas menos dependientes (por ejemplo, los fotogramas P) asociados a los fotogramas B eliminados se pueden eliminar para reducir más la velocidad de datos del flujo de vídeo resultante. 40
[0187] En otras implementaciones, el rúter 2400 puede realizar una reducción de la velocidad de datos más complicada de un flujo de datos, por ejemplo, reduciendo la resolución de los fotogramas seleccionados en cada GOP que se transmita. Tal flujo de datos puede reducir la calidad de vídeo general de la presentación, pero también puede proporcionar una presentación más consistente o incluso presentación de los datos de vídeo al 45 usuario manteniendo la velocidad de presentación original del flujo de vídeo original.
Sistema informático de ejemplo
[0188] La figura 34 muestra una representación esquemática de una máquina en la forma de ejemplo de una 50 configuración 3400 en la que se puede ejecutar un conjunto de instrucciones, para provocar que la máquina ejecute una cualquiera o más de las metodologías aquí discutidas. En formas de realización alternativas, la máquina funciona como un dispositivo independiente o puede estar conectada (por ejemplo; conectada en red) a otras máquinas. En una implementación conectada en red, la máquina puede operar en la capacidad de un servidor o una máquina del cliente en el entorno de red del servidor-cliente, o como una máquina par en un 55 entorno de red entre pares (o distribuido). La máquina puede ser un ordenador personal (PC), una tableta PC, un descodificador (STB), un asistente digital personal (PDA), un teléfono móvil, un aparato web, un rúter, un conmutador o puente de red, o cualquier máquina capaz de ejecutar un conjunto de instrucciones (secuenciales o de otro modo) que especifican las acciones que debe realizar esa máquina. Además, aunque solo se ilustra una única máquina, el término "máquina" debe también entenderse que incluye cualquier colección de máquinas 60 que ejecutan individualmente o conjuntamente un conjunto (o múltiples conjuntos) de instrucciones para ejecutar una cualquiera o más de las metodologías aquí discutidas.
[0189] El sistema informático de ejemplo 3400 incluye un procesador 3402 (por ejemplo, una unidad central de procesamiento (CPU), una unidad de procesamiento gráfico (GPU) o ambas), una memoria principal 3404 y una 65 memoria estática 3406, que se comunican entre sí vía un bus 3408. La configuración 3400 puede incluir además
una unidad de visualización de vídeo 3410 (por ejemplo, una pantalla de cristal líquido (LCD) o un tubo de rayos catódicos (CRT)). El sistema informático 3400 también incluye un dispositivo de entrada alfanumérico 3412 (por ejemplo, un teclado), una interfaz de usuario (UI), un dispositivo de navegación 3414 (por ejemplo, un ratón), una unidad de disco 3416, un dispositivo de generación de señales 3418 (por ejemplo, un altavoz) y un dispositivo de interfaz de red 3420. 5
[0190] La unidad de disco 3416 incluye un medio legible por máquina 3422 sobre el que se almacenan uno o más conjuntos de instrucciones y estructuras de datos (por ejemplo, software 3424) implementado o utilizado por una cualquiera o más de las metodologías o funciones aquí descritas. El software 3424 también puede residir, completamente o al menos parcialmente, en la memoria principal 3404 y/o en el procesador 3402 durante la 10 ejecución del mismo por el sistema informático 3400, donde la memoria principal 3404 y el procesador 3402 también constituyen medios legibles por máquina.
[0191] El software 3424 puede ser además transmitido o recibido en una red 3426 vía el dispositivo de interfaz de red 3420 utilizando cualquiera de una serie de protocolos de transferencia bien conocidos (por ejemplo, HTTP). 15
[0192] Aunque el medio legible por máquina 3422 se muestra en una forma de realización de ejemplo que es un medio único, el término "medio legible por máquina" se debería entender que incluye un único medio o múltiples medios (por ejemplo, una base de datos centralizada o distribuida, y/o memorias caché y servidores asociados) que almacenan el uno o más conjuntos de instrucciones. El término "medio legible por máquina" deberá 20 entenderse también que incluye cualquier medio que sea capaz de almacenar, codificar o llevar un conjunto de instrucciones para ejecución por la máquina y que cause que la máquina ejecute una cualquiera o más de las metodologías de la presente invención, o que sea capaz de almacenar, codificar o llevar estructuras de datos utilizadas por o asociadas a tal conjunto de instrucciones. El término "medio legible por máquina" deberá entenderse, por consiguiente, que incluye, pero de forma no limitativa, memorias en estado sólido, medios 25 ópticos y magnéticos y señales de onda portadora.
[0193] Aunque una forma de realización de la presente invención ha sido descrita con referencia a formas de realización de ejemplo específicas, será evidente que diversas modificaciones y cambios se pueden hacer a estas formas de realización sin apartarse del ámbito más amplio de la invención. Por consiguiente, la 30 especificación y los dibujos se deben considerar en un sentido ilustrativo en vez de en un sentido restrictivo. Los dibujos anexos que forman una parte de este documento muestran a modo de ilustración, y sin limitación, formas de realización específicas donde el objeto se puede practicar. Las formas de realización ilustradas se describen con suficiente detalle para habilitar a los expertos en la técnica para practicar las instrucciones aquí descritas. Otras formas de realización se pueden utilizar y derivar a partir de las mismas, de manera que esas sustituciones 35 estructurales y lógicas y esos cambios se pueden hacer sin apartarse del ámbito de esta divulgación. Esta descripción detallada, por lo tanto, no se debe entender en un sentido limitativo, y el ámbito de las diversas formas de realización se define solo por las reivindicaciones anexas, junto con toda la serie de equivalentes a los que tienen derecho tales reivindicaciones.
40
[0194] Se puede hacer referencia en este documento a tales formas de realización del objeto inventivo, individualmente y/o colectivamente, mediante el término "invención" meramente por conveniencia y sin pretensión de limitar voluntariamente el ámbito de esta aplicación a cualquier única invención o concepto inventivo si se describe de hecho más de una. Así, aunque formas de realización específicas se han ilustrado y descrito aquí, se debería apreciar que cualquier disposición calculada para conseguir el mismo fin se puede 45 sustituir para las formas de realización específicas mostradas. Esta divulgación se destina para cubrir cualquiera o la totalidad de las adaptaciones o variaciones de diversas formas de realización. Las combinaciones de las formas de realización anteriores, y otras formas de realización no descritas específicamente aquí, serán aparentes a los expertos en la técnica tras la revisión de la descripción mencionada anteriormente.
50
[0195] El resumen de la divulgación se proporciona para permitir que el lector determine rápidamente la naturaleza de la divulgación técnica. Se proporciona con el entendimiento de que no se usará para interpretar o limitar el ámbito o significado de las reivindicaciones. Además, en la descripción detallada anteriormente mencionada, se puede observar que varias características se agrupan en una única forma de realización con motivo de simplificar la divulgación. Este método de divulgación no se debe interpretar como que refleja una 55 intención de que las formas de realización reivindicadas requieran más características que las que se nombran expresamente en cada reivindicación. Más bien, como lo reflejan las reivindicaciones siguientes, el objeto inventivo está en menos de todas las características de una única forma de realización descrita. Así, las reivindicaciones siguientes se incorporan por la presente en la descripción detallada, donde cada reivindicación existe por sí sola como una forma de realización separada. 60

Claims (15)

  1. REIVINDICACIONES
    1. Método que comprende:
    recibir datos jerárquicos de al menos una fuente de datos (2102) en al menos un búfer de un rúter 5 (2104), donde dichos datos jerárquicos comprenden datos secuenciales donde los datos futuros dependen de los datos precedentes,
    recibir por el rúter (2104) una solicitud a partir de un dispositivo (2108) situado junto con dicho rúter (2104) dentro de un entorno local,
    en respuesta a la solicitud, seleccionar y proporcionar mediante el rúter (2104) datos jerárquicos 10 iniciales desde el al menos un búfer del rúter (2104) al dispositivo (2108), donde los datos jerárquicos iniciales incluyen un punto de acceso para habilitar la descodificación de dichos datos jerárquicos, donde el punto de acceso es descodificable sin referencia a otros datos jerárquicos; y
    después de proporcionar los datos jerárquicos iniciales al dispositivo (2108), proporcionar datos jerárquicos adicionales desde el al menos un búfer del rúter (2104) al dispositivo (2108), 15
    caracterizado por el hecho de que
    los datos jerárquicos recibidos por el rúter se refieren a una pluralidad de flujos (2112) de datos de vídeo, donde dicha pluralidad de flujos (2112) se refiere a un canal único, donde cada flujo de dicha pluralidad de flujos (2112) lleva datos de vídeo para una resolución, calidad o velocidad de datos diferente, y 20
    donde dicha solicitud comprende información para solicitar que el rúter (2104) transmita uno de dichos flujos (2112).
  2. 2. Método según la reivindicación 1, que comprende además:
    25
    proporcionar, por el rúter (2104) al dispositivo (2108), un manifiesto que indica diversos flujos (2112) disponibles para dicho canal junto con información de la velocidad de datos con respecto a cada uno de dichos flujos disponibles (2112), y donde dicha solicitud se emite por el dispositivo (2108) basándose en dicha información de velocidad de datos.
    30
  3. 3. Método según la reivindicación 2, que comprende además:
    recibir el manifiesto por el rúter (2104) antes de proporcionarlo al dispositivo (2108).
  4. 4. Método según la reivindicación 2, que comprende además: 35
    generar o modificar el manifiesto por el rúter (2104) antes de proporcionarlo al dispositivo (2108).
  5. 5. Método según la reivindicación 1, donde el rúter (2104) reduce la velocidad de datos de un flujo de dicha pluralidad de flujos (2112) reduciendo la cantidad de datos en dicho flujo (2112). 40
  6. 6. Método según la reivindicación 1, donde los datos jerárquicos iniciales y los datos jerárquicos adicionales proporcionados en respuesta a la solicitud se seleccionan por el rúter (2104) independientemente del flujo (2112) seleccionado por el dispositivo (2108) a través de dicha solicitud.
    45
  7. 7. Método según la reivindicación 5, donde la cantidad de datos se reduce eliminando algunos fotogramas de los que no depende ningún otro fotograma.
  8. 8. Método según la reivindicación 1, donde el rúter (2104) controla una retroalimentación de la velocidad de datos de dicho dispositivo (2108) y, basándose en dicha retroalimentación, ajusta la velocidad de datos de los datos de 50 vídeo posteriores.
  9. 9. Método según la reivindicación 1, donde la solicitud indica una preferencia con respecto a la resolución, velocidad de datos o calidad, donde los datos jerárquicos iniciales y los datos jerárquicos adicionales se proporcionan desde un flujo de la pluralidad de flujos (2112) de datos jerárquicos seleccionado por el rúter (2104) 55 basándose en dicha preferencia.
  10. 10. Método según la reivindicación 9, donde el un flujo de la pluralidad de flujos (2112) de datos jerárquicos se selecciona además por el rúter (2104) basándose en el ancho de banda de transmisión disponible.
    60
  11. 11. Método según la reivindicación 1, donde dicha pluralidad de flujos (2112) de datos de vídeo se recibe por el rúter (2104) vía multidifusión, y donde los datos jerárquicos iniciales y los datos jerárquicos adicionales se proporcionan por el rúter (2104) al dispositivo (2108) vía una conexión punto a punto.
  12. 12. Conmutador/rúter (2400), que comprende: 65
    una interfaz de comunicación de multidifusión (2402) configurada para recibir datos jerárquicos de al menos una fuente de datos (2102), donde dichos datos jerárquicos comprenden datos secuenciales donde los datos futuros dependen de los datos precedentes;
    una interfaz de comunicación punto a punto (2404), donde dichos datos jerárquicos se refieren a una pluralidad de flujos (2113) de datos de vídeo, donde dicha pluralidad de flujos se refiere a un canal único 5 y donde cada flujo de dicha pluralidad de flujos lleva datos de vídeo para una resolución, calidad o velocidad de datos diferente;
    donde dicho conmutador/rúter (2400) comprende además al menos un búfer (2406) para memorizar la pluralidad recibida de flujos de datos de vídeo;
    donde dicha interfaz de comunicación punto a punto se configura para recibir una solicitud a partir de un 10 dispositivo (2108), situado junto con dicho rúter (2104) dentro de un entorno local, para transmitir datos de vídeo (2114) al dispositivo (2108), y para transmitir datos de información sobre un flujo de la pluralidad de flujos (2113) de datos de vídeo desde el al menos un búfer (2406) al dispositivo (2108) en respuesta a la solicitud; donde los datos de vídeo y de información transmitidos en respuesta a la solicitud comprenden los datos jerárquicos iniciales con un punto de acceso para habilitar la 15 descodificación de dichos datos jerárquicos, donde el punto de acceso es descodificable sin referencia a otros datos jerárquicos;
    donde dicho conmutador/rúter se configura además para proporcionar datos jerárquicos adicionales desde dicho búfer a dicho dispositivo (2108) y que además comprende una
    lógica de control (2408) para procesar la solicitud para seleccionar el flujo de la pluralidad de flujos 20 (2113) de datos de vídeo.
  13. 13. Conmutador/rúter (2400) según la reivindicación 12, donde la solicitud indica un flujo específico de la pluralidad de flujos (2113) de datos, donde la lógica de control (2408) se configura para seleccionar el flujo específico de la pluralidad de flujos (2113) de datos. 25
  14. 14. Conmutador/rúter (2400) según la reivindicación 12, donde la solicitud indica un flujo específico de la pluralidad de flujos de datos, donde la lógica de control (2408) se configura para seleccionar otro flujo de la pluralidad de flujos (2113) de datos basándose en el ancho de banda de transmisión disponible.
    30
  15. 15. Conmutador/rúter (2400) según la reivindicación 12, donde la solicitud indica una velocidad de datos preferida, donde la lógica de control (2408) se configura para seleccionar un flujo de la pluralidad de flujos (2113) de datos basándose en la velocidad de datos preferida.
ES12774444.9T 2011-04-18 2012-04-18 Métodos y sistemas para transmisión de datos Active ES2665302T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/089,070 US8335873B2 (en) 2006-09-14 2011-04-18 Method and systems for data transmission
US201113089070 2011-04-18
PCT/US2012/034101 WO2012145411A1 (en) 2011-04-18 2012-04-18 Methods and systems for data transmission

Publications (1)

Publication Number Publication Date
ES2665302T3 true ES2665302T3 (es) 2018-04-25

Family

ID=47042223

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12774444.9T Active ES2665302T3 (es) 2011-04-18 2012-04-18 Métodos y sistemas para transmisión de datos

Country Status (7)

Country Link
US (5) US8335873B2 (es)
EP (1) EP2700200B1 (es)
BR (1) BR112013026818B1 (es)
CA (1) CA2833392C (es)
ES (1) ES2665302T3 (es)
MX (1) MX2013012210A (es)
WO (1) WO2012145411A1 (es)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11303684B2 (en) 2006-09-14 2022-04-12 Opentv, Inc. Methods and systems for data transmission
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US8386629B2 (en) * 2007-12-27 2013-02-26 At&T Intellectual Property I, L.P. Network optimized content delivery for high demand non-live contents
US9037648B2 (en) * 2008-08-19 2015-05-19 John Ogilvie Anonymity-preserving reciprocal vetting from a system perspective
EP2204965B1 (en) * 2008-12-31 2016-07-27 Google Technology Holdings LLC Device and method for receiving scalable content from multiple sources having different content quality
US8837453B2 (en) * 2009-05-28 2014-09-16 Symbol Technologies, Inc. Methods and apparatus for transmitting data based on interframe dependencies
US8782267B2 (en) * 2009-05-29 2014-07-15 Comcast Cable Communications, Llc Methods, systems, devices, and computer-readable media for delivering additional content using a multicast streaming
US8531979B2 (en) * 2009-09-30 2013-09-10 Sony Corporation Wireless link quality monitoring in network-enabled TVs
US9325940B2 (en) * 2010-05-13 2016-04-26 Nextcast Labs, Inc. Video class room
US20130086478A1 (en) * 2010-06-08 2013-04-04 Gibby Media Group Inc. Systems and methods for multimedia editing
US8560331B1 (en) * 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
US20120079000A1 (en) * 2010-09-27 2012-03-29 Motorola-Mobility, Inc. Selectively receiving media content
US8422392B2 (en) * 2010-12-31 2013-04-16 Stmicroelectronics, Inc. System and method for microeconomic multiplexing of data over communication channels
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9338482B2 (en) * 2011-11-30 2016-05-10 Mobitv, Inc. Enhanced group of pictures (GOP) alignment in media stream variants
EP2661045A1 (en) * 2012-05-04 2013-11-06 Thomson Licensing Method and apparatus for providing a plurality of transcoded content streams
US10136443B2 (en) * 2012-09-07 2018-11-20 Nokia Solutions And Networks Oy Mechanism and apparatus to perform cooperative resource management in wireless networks
US20140074621A1 (en) * 2012-09-07 2014-03-13 Opentv, Inc. Pushing content to secondary connected devices
US9154854B1 (en) * 2012-09-19 2015-10-06 Time Warner Cable Enterprises Llc Notification in a network environment
US11083344B2 (en) 2012-10-11 2021-08-10 Roman Tsibulevskiy Partition technologies
EP2912813B1 (en) * 2012-10-23 2019-12-04 Telefonaktiebolaget LM Ericsson (publ) A method and apparatus for distributing a media content service
US9813325B2 (en) * 2012-12-27 2017-11-07 Comcast Cable Communications, Llc Information stream management
US9900629B2 (en) 2013-03-13 2018-02-20 Apple Inc. Codec techniques for fast switching with intermediate sequence
US9215267B2 (en) * 2013-03-14 2015-12-15 Disney Enterprises, Inc. Adaptive streaming for content playback
US9565139B2 (en) * 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
US9444856B2 (en) 2013-09-25 2016-09-13 Ericsson Ab System and method for managing adjacent channels in an adaptive streaming environment
US20150089073A1 (en) 2013-09-25 2015-03-26 Ericsson Television Inc System and method for effectuating fast channel change in an adpative streaming environment
JP2015091093A (ja) * 2013-11-07 2015-05-11 ソニー株式会社 送信制御装置、受信制御装置、送信制御方法、および受信制御方法
CN111416984A (zh) 2014-01-29 2020-07-14 皇家Kpn公司 建立事件的流传输呈现
EP3207682B1 (en) 2014-10-14 2019-07-31 Koninklijke KPN N.V. Managing concurrent streaming of media streams
TWI548267B (zh) * 2015-05-07 2016-09-01 鴻海精密工業股份有限公司 控制設備及其控制視訊點播的方法
US10701415B2 (en) * 2016-05-19 2020-06-30 Arris Enterprises Llc Method and apparatus for segmenting data
WO2018003540A1 (ja) * 2016-06-30 2018-01-04 ソニーセミコンダクタソリューションズ株式会社 受信装置、送信装置、及び、データ処理方法
EP3337174B1 (en) * 2016-12-14 2021-04-07 Alcatel-Lucent España Method and device for transmission of content
US20180183845A1 (en) * 2016-12-22 2018-06-28 Facebook, Inc. Systems and methods for providing content
US10715880B2 (en) 2017-08-24 2020-07-14 Skitter, Inc. Method for creation and distribution of segmented video over distributed multicast-aware sparse networks with low latency
US10897516B2 (en) * 2017-11-15 2021-01-19 Cisco Technology, Inc. Application buffering of packets by fog computing node for deterministic network transport
US10771842B2 (en) 2018-04-09 2020-09-08 Hulu, LLC Supplemental content insertion using differential media presentation descriptions for video streaming
JP6961845B2 (ja) 2018-05-29 2021-11-05 キュリアサー プロダクツ インコーポレイテッド 対話型トレーニング及びデモンストレーション用の反射ビデオディスプレイ機器及びその使用方法
US11206244B2 (en) * 2018-12-21 2021-12-21 ARRIS Enterprise LLC Method to preserve video data obfuscation for video frames
FR3094597B1 (fr) 2019-03-27 2021-06-11 Streamroot Procédé de diffusion de contenus en streaming dans un réseau pair à pair
US11465030B2 (en) 2020-04-30 2022-10-11 Curiouser Products Inc. Reflective video display apparatus for interactive training and demonstration and methods of using same
US11167172B1 (en) 2020-09-04 2021-11-09 Curiouser Products Inc. Video rebroadcasting with multiplexed communications and display via smart mirrors
US20220283878A1 (en) * 2021-03-02 2022-09-08 Zapata Computing, Inc. Dependency-based data routing for distributed computing
US11615727B2 (en) * 2021-04-12 2023-03-28 Apple Inc. Preemptive refresh for reduced display judder

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0616272B2 (ja) * 1984-06-27 1994-03-02 株式会社日立製作所 メモリアクセス制御方式
US6389010B1 (en) 1995-10-05 2002-05-14 Intermec Ip Corp. Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones
EP0702493A1 (en) 1994-09-19 1996-03-20 International Business Machines Corporation Interactive playout of videos
US6134383A (en) 1995-04-11 2000-10-17 Kabushiki Kaisha Toshiba Recording medium, recording apparatus and recording method for recording data into recording medium, and reproducing apparatus and reproducing method for reproducing data from recording medium
TW436777B (en) 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
US5872588A (en) 1995-12-06 1999-02-16 International Business Machines Corporation Method and apparatus for monitoring audio-visual materials presented to a subscriber
WO1998028915A2 (en) 1996-12-23 1998-07-02 Koninklijke Philips Electronics N.V. Method and system for supplying data streams
US6426778B1 (en) * 1998-04-03 2002-07-30 Avid Technology, Inc. System and method for providing interactive components in motion video
US6219358B1 (en) 1998-09-11 2001-04-17 Scientific-Atlanta, Inc. Adaptive rate control for insertion of data into arbitrary bit rate data streams
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6675387B1 (en) 1999-04-06 2004-01-06 Liberate Technologies System and methods for preparing multimedia data using digital video data compression
US6621870B1 (en) 1999-04-15 2003-09-16 Diva Systems Corporation Method and apparatus for compressing video sequences
US20010025377A1 (en) 1999-12-30 2001-09-27 Hinderks Larry W. High bandwidth transmission system and method having local insertion, delay play and demand play
US6493388B1 (en) 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US20020067907A1 (en) * 2000-06-06 2002-06-06 Eric Ameres Universal video client/universal video server system
KR20040041082A (ko) * 2000-07-24 2004-05-13 비브콤 인코포레이티드 멀티미디어 북마크와 비디오의 가상 편집을 위한 시스템및 방법
US7657916B2 (en) 2000-07-31 2010-02-02 Cisco Technology, Inc. Digital subscriber television networks with local physical storage devices and virtual storage
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7779097B2 (en) * 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
EP1235392A1 (en) 2000-09-22 2002-08-28 Matsushita Electric Industrial Co., Ltd. Data transmitting/receiving method, transmitting device, receiving device, transmitting/receiving system, and program
US6934340B1 (en) * 2001-03-19 2005-08-23 Cisco Technology, Inc. Adaptive control system for interference rejections in a wireless communications system
WO2002093299A2 (en) 2001-05-11 2002-11-21 Scientific-Atlanta, Inc. Channel buffering and display management system for multi-tuner set-top box
US7960005B2 (en) 2001-09-14 2011-06-14 Ochoa Optics Llc Broadcast distribution of content for storage on hardware protected optical storage media
US6971121B2 (en) 2001-12-06 2005-11-29 Scientific-Atlanta, Inc. Composite buffering
US7404001B2 (en) * 2002-03-27 2008-07-22 Ericsson Ab Videophone and method for a video call
US7133905B2 (en) * 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7187687B1 (en) * 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US20040022222A1 (en) * 2002-07-31 2004-02-05 Allister Clisham Wireless metropolitan area network system and method
US7835365B2 (en) * 2002-09-26 2010-11-16 Sharp Laboratories Of America, Inc. Connection management in a centralized communication system
US8108455B2 (en) 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
US7499469B2 (en) 2003-01-13 2009-03-03 Broadcom Corporation Method and system for generating digital video broadcast (DVB) transport stream from direct satellite system (DSS) transport stream
US20040223614A1 (en) * 2003-05-08 2004-11-11 Seaman Philip Jeffrey Secure video receiver
US6901072B1 (en) * 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
DE10355345A1 (de) 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
CN101027862B (zh) 2004-10-29 2011-06-08 美国博通公司 对通信流量分级的多信道通信
US7852831B2 (en) * 2005-02-22 2010-12-14 Akbar Imran M Method and system for providing private virtual secure Voice over Internet Protocol communications
WO2006099296A2 (en) 2005-03-10 2006-09-21 Nexthop Technologies, Inc. Flexible, scalable, wireless data forwarding and mobility for secure wireless networks
US7889571B2 (en) * 2008-01-09 2011-02-15 Unity Semiconductor Corporation Buffering systems methods for accessing multiple layers of memory in integrated circuits
US8135040B2 (en) * 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
DE602006017029D1 (de) * 2006-01-06 2010-11-04 Alcatel Lucent Verfahren zur Bereitstellung von Daten und Datenübertragungssystem
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US8773494B2 (en) * 2006-08-29 2014-07-08 Microsoft Corporation Techniques for managing visual compositions for a multimedia conference call
US7930449B2 (en) 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US9979931B2 (en) * 2007-05-30 2018-05-22 Adobe Systems Incorporated Transmitting a digital media stream that is already being transmitted to a first device to a second device and inhibiting presenting transmission of frames included within a sequence of frames until after an initial frame and frames between the initial frame and a requested subsequent frame have been received by the second device
US7899451B2 (en) * 2007-07-20 2011-03-01 Jianhong Hu OWA converged network access architecture and method
US8169916B1 (en) * 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US9462018B2 (en) 2008-01-10 2016-10-04 Hewlett-Packard Development Company, L.P. Multiway peer-to-peer media streaming
CA2757647A1 (en) 2008-04-04 2009-12-03 Powerwave Cognition, Inc. Methods and systems for a mobile, broadband, routable internet
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US9590814B2 (en) * 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
US9253233B2 (en) * 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
WO2015058389A1 (en) * 2013-10-24 2015-04-30 Telefonaktiebolaget L M Ericsson (Publ) Method, multimedia streaming service node, computer program and computer program product for combining content
FR3021477A1 (fr) * 2014-05-26 2015-11-27 Orange Telechargement de contenu et mise a disposition de reseaux de telecommunications etendus en vue d'un tel telechargement.
US9961389B2 (en) * 2015-12-09 2018-05-01 Ericsson Ab Recording device space optimization in a multicast adaptive bitrate (MABR) streaming network

Also Published As

Publication number Publication date
CA2833392A1 (en) 2012-10-26
US20180034871A1 (en) 2018-02-01
US20110255535A1 (en) 2011-10-20
EP2700200A1 (en) 2014-02-26
US10681097B2 (en) 2020-06-09
BR112013026818A2 (pt) 2017-01-10
US8782305B2 (en) 2014-07-15
US20130010793A1 (en) 2013-01-10
US9344470B2 (en) 2016-05-17
US9712581B2 (en) 2017-07-18
US8335873B2 (en) 2012-12-18
EP2700200A4 (en) 2014-10-08
BR112013026818B1 (pt) 2022-11-29
US20140304424A1 (en) 2014-10-09
MX2013012210A (es) 2014-03-27
EP2700200B1 (en) 2018-01-17
WO2012145411A1 (en) 2012-10-26
CA2833392C (en) 2019-08-20
US20160261660A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
ES2665302T3 (es) Métodos y sistemas para transmisión de datos
US11317164B2 (en) Methods, apparatus, and systems for providing media content over a communications network
US7930449B2 (en) Method and system for data transmission
US11870829B2 (en) Methods and systems for data transmission
CA2965484C (en) Adaptive bitrate streaming latency reduction
US8201195B2 (en) System, method and computer readable medium for inserting data objects into encrypted video stream
JP5580302B2 (ja) ピアツーピアネットワークのための放送シーディング
ES2734293T3 (es) Transmisión de petición de bloques mejorada mediante partición de bloques o controles de petición para mejorar el manejo del lado del cliente
US8762452B2 (en) Virtualization in adaptive stream creation and delivery
US20070121629A1 (en) Accelerated channel change
KR20160111021A (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
KR20160111016A (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
KR20160110374A (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
CN107148779B (zh) 一种传送媒体内容的方法