ES2213069T3 - Metodo de programacion de flujo. - Google Patents
Metodo de programacion de flujo.Info
- Publication number
- ES2213069T3 ES2213069T3 ES00990411T ES00990411T ES2213069T3 ES 2213069 T3 ES2213069 T3 ES 2213069T3 ES 00990411 T ES00990411 T ES 00990411T ES 00990411 T ES00990411 T ES 00990411T ES 2213069 T3 ES2213069 T3 ES 2213069T3
- Authority
- ES
- Spain
- Prior art keywords
- time
- module
- modules
- initial time
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/165—Centralised control of user terminal ; Registering at central
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mechanical Treatment Of Semiconductor (AREA)
- Arc Welding Control (AREA)
- Circuits Of Receivers In General (AREA)
- Stored Programmes (AREA)
Abstract
Método que comprende: (a) examinar una lista de entradas de módulos, teniendo cada entrada de módulo un tiempo inicial mínimo, un tiempo inicial máximo y una duración restante; (b) para cada entrada de módulo, ajustar dicho tiempo inicial a un tiempo actual si dicho tiempo inicial mínimo es anterior a dicho tiempo actual; (c) ordenar dicha lista de entradas de módulos por el tiempo inicial mínimo más temprano y, dentro de las entradas de módulos que tienen tiempos iniciales mínimos idénticos, ordenar por tiempo inicial máximo más temprano; (d) seleccionar una primera entrada en dicha lista de entradas de módulos; (e) determinar una cantidad de tiempo disponible para programar una parte de dicha primera entrada, en el que dicho tiempo disponible conste de la unidad más pequeña de la diferencia entre dicho tiempo actual y un tiempo inicial mínimo más temprano de una de dichas entradas de módulos que tienen un tiempo inicial mínimo más tarde que dicho tiempo actual; y la diferencia entre dichotiempo inicial máximo de dicha primera entrada de módulo y el tiempo inicial máximo más temprano de una de dichas entradas de módulo que tienen un tiempo inicial mínimo igual a dicho tiempo actual; (f) programar dicha parte de dicha primera entrada, en el que se selecciona un tamaño de dicha parte para ser: igual a dicho tiempo disponible si dicha duración restante de dicha primera entrada es superior o igual a dicho tiempo disponible; e igual a dicha duración restante de dicha primera entrada si (i) dicha duración restante es inferior a dicho tiempo disponible o (ii) dicho tiempo actual es igual a un tiempo inicial máximo de dicha primera entrada; (g) restar dicha parte de dicha duración restante de dicha primera entrada; (h) sumar dicha parte a dicho tiempo inicial máximo de dicha primera entrada; (i) sumar dicha parte a dicho tiempo actual; y (j) repetir (a) ¿ (i).
Description
Método de programación de flujo.
La presente invención se refiere, generalmente, a
métodos de programación y más particularmente a métodos para
programar un flujo de información seleccionando y programando partes
de módulos con las prioridades más altas.
Los sistemas de televisión interactiva son
capaces de ofrecer una amplia variedad de servicios a los
espectadores. Dichos servicios pueden incluir la entrega de
programación de televisión, aplicaciones interactivas y parecidos.
Los sistemas de televisión interactiva también son capaces de
registrar las respuestas de los espectadores a la información audio
y vídeo presentada por el sistema. Por lo tanto, los sistemas de
televisión interactiva pueden ser útiles para varios fines de
marketing, de espectáculos e instructivos.
En un sistema de televisión interactiva, un
proveedor de servicio de emisión genera una señal de televisión
interactiva para transmitir a la televisión de un espectador. La
señal de televisión interactiva puede incluir una parte que consta
de un código de aplicación o información de control, así como una
parte audio-vídeo que consta de un programa de
televisión. El proveedor del servicio de emisión combina las partes
audio-vídeo e interactiva en una sola señal para
transmitir a un receptor conectado a la televisión del usuario. La
señal se comprime generalmente antes de transmitir y se transmite
por los canales típicos de emisión, tales como línea de televisión
por cable (CATV) o sistemas de transmisión directa por satélite.
Típicamente, la señal transmitida por el
proveedor de servicio de emisión es recibida por una caja privada de
conexión conectada a la televisión de un espectador. La caja privada
de conexión separa la parte interactiva de la parte
audio-vídeo y somete a descompresión las respectivas
partes de la señal. Luego, la caja privada de conexión puede
ejecutar las aplicaciones recibidas y pasar la información
audio-vídeo recibida a la televisión. La caja
privada de conexión también puede combinar la información
audio-vídeo con gráficos interactivos o audio
generados por la aplicación interactiva antes de transmitir la
información a la televisión. Los gráficos interactivos y el audio
pueden presentar información adicional al espectador, o pueden
solicitar que el espectador ingrese información. La caja privada de
conexión puede ofrecer información del espectador u otra información
al proveedor del servicio de emisión por medio de una conexión por
módem u otra vía de retorno.
Las aplicaciones interactivas, programación
televisiva y otra información transmitida por el sistema de
televisión interactiva pueden constar de uno o más módulos de
información. Estos módulos se formatean normalmente en paquetes,
cada uno de los cuales contiene una parte de la información de los
módulos. Los paquetes se transmiten a la caja privada de conexión,
en donde se reconstruyen y vuelven a convertir en los módulos. Los
paquetes de un módulo pueden transmitirse sucesivamente, o pueden
intercalarse con los paquetes que contienen partes de otros
módulos.
La forma sencilla de programar la transmisión de
un módulo es calcular (aproximadamente) el tiempo requerido para
entregar todo el módulo y luego restarlo del tiempo de entrega
programado. La duración de la transmisión puede determinarse
dividiendo el tamaño del módulo por la tasa de bits a la que se
transmitirán sus paquetes. Este método para programar un módulo
requiere la reserva del canal de emisión para este módulo concreto y
que todos los paquetes del módulo se transmitan sucesivamente. Esto
puede presentar considerables dificultades a la hora de programar el
posible número elevado de módulos que necesiten transmitirse por el
sistema. Por lo tanto, sería conveniente encontrar un mecanismo
mejorado para programar la entrega de los módulos.
En términos generales, la invención se refiere a
un sistema y método para programar la entrega de módulos de
información.
Según un aspecto de la invención, se
proporciona un método que comprende: (a) examinar una lista de
entradas de módulo, teniendo cada entrada de módulo un tiempo
inicial mínimo, un tiempo inicial máximo y una duración restante;
(b) para cada entrada de módulo, ajustar dicho tiempo inicial mínimo
a un tiempo actual si dicho tiempo inicial mínimo es anterior a
dicho tiempo actual; (c) ordenar dicha lista de entradas de módulos
por el tiempo inicial mínimo más temprano y, dentro de las entradas
de módulos que tienen tiempos iniciales mínimos idénticos,
ordenar por tiempo inicial máximo más temprano; (d) seleccionar
una primera entrada en dicha lista de entradas de módulos; (e)
determinar una cantidad de tiempo disponible para programar una
parte de dicha primera entrada, en donde ese tiempo disponible
conste de la unidad más pequeña de la diferencia entre dicho tiempo
actual y un tiempo inicial mínimo más temprano de una de dichas
entradas de módulos que tienen un tiempo inicial mínimo más tarde
que dicho tiempo actual; y la diferencia entre dicho tiempo inicial
máximo de dicha primera entrada de módulo y el tiempo inicial máximo
más temprano de una de dichas entradas de módulo que tienen un
tiempo inicial mínimo igual a dicho tiempo actual; (f) programar
dicha parte de dicha primera entrada, en donde se selecciona un
tamaño de dicha parte para ser igual a dicho tiempo disponible si
dicha duración restante de dicha primera entrada es superior o igual
a dicho tiempo disponible; e igual a dicha duración restante de
dicha primera entrada si (i) dicha duración restante es inferior a
dicho tiempo disponible o (ii) dicho tiempo actual es igual a un
tiempo inicial máximo de dicha primera entrada; (g) restar dicha
parte de dicha duración restante de dicha primera entrada; (h) sumar
dicha parte a dicho tiempo inicial máximo de dicha primera entrada;
(i) sumar dicha parte a dicho tiempo actual; y (j) repetir (a) -
(i).
Según un segundo aspecto de la invención, se
proporciona un programador que comprende: un procesador, y una
primera memoria acoplada a dicho procesador y configurada para
guardar una pluralidad de entradas de módulos, cada una de dichas
entradas de módulos tiene un correspondiente tiempo inicial mínimo,
un tiempo inicial máximo, un tiempo de terminación y una duración;
en donde dicho procesador se configura para: (a) examinar una lista
de entradas de módulo, teniendo cada entrada de módulo un tiempo
inicial mínimo, un tiempo inicial máximo y una duración restante;
(b) para cada entrada de módulo, ajustar dicho tiempo inicial
mínimo a un tiempo actual si dicho tiempo inicial mínimo es
anterior a dicho tiempo actual; (c) ordenar dicha lista de entradas
de módulos por el tiempo inicial mínimo más temprano y, dentro de
las entradas de módulos que tienen tiempos iniciales mínimos
idénticos, ordenar por tiempo inicial máximo más temprano; (d)
seleccionar una primera entrada en dicha lista de entradas de
módulos; (e) determinar una cantidad de tiempo disponible para
programar una parte de dicha primera entrada, en donde ese tiempo
disponible conste de la unidad más pequeña de la diferencia entre
dicho tiempo actual y un tiempo inicial mínimo más temprano de una
de dichas entradas de módulos que tienen un tiempo inicial mínimo
más tarde que dicho tiempo actual; y la diferencia entre dicho
tiempo inicial máximo de dicha primera entrada de módulo y el tiempo
inicial máximo más temprano de una de dichas entradas de módulo que
tienen un tiempo inicial mínimo igual a dicho tiempo actual; (f)
programar dicha parte de dicha primera entrada, en el que se
selecciona un tamaño de dicha parte para ser igual a dicho tiempo
disponible si dicha duración restante de dicha primera entrada es
superior o igual a dicho tiempo disponible; e igual a dicha
duración restante de dicha primera entrada si (i) dicha duración
restante es inferior a dicho tiempo disponible o (ii) dicho tiempo
actual es igual a un tiempo inicial máximo de dicha primera entrada;
(g) restar dicha parte de dicha duración restante de dicha primera
entrada; (h) sumar dicha parte a dicho tiempo inicial máximo de
dicha primera entrada; (i) sumar dicha parte a dicho tiempo actual;
y (j) repetir (a) - (i).
Una forma de realización comprende un método para
programar el flujo de módulos en un sistema de transmisión de
información. Se compila una lista de módulos a transmitir. La lista
contiene un tiempo inicial mínimo, un tiempo inicial máximo y una
duración restante para cada uno de los módulos. Se examina la lista
y todo tiempo inicial mínimo anterior al tiempo actual es ajustado
al tiempo actual. Entonces se ordena la lista, primero de
conformidad a los tiempos iniciales mínimos de los módulos, y luego
de conformidad a los tiempos iniciales máximos de los módulos.
Entonces se selecciona un módulo disponible para transmitir (es
decir, uno que tiene un tiempo inicial mínimo anterior, o igual, al
tiempo actual) y que tiene el tiempo inicial máximo más temprano de
la parte superior de la lista. Luego se selecciona la parte máxima
de módulo seleccionado que puede transmitirse antes de recalcularse
el orden de la lista. Se adelanta el tiempo actual en una cifra
equivalente a la parte programada del módulo y se vuelve a calcular
la información correspondiente a cada uno de los módulos, si es
necesario (es decir, la longitud de la parte programada se resta del
tiempo inicial máximo y de la duración del módulo programado, y se
actualiza el tiempo inicial mínimo de cada módulo al tiempo actual).
Luego se vuelve a ordenar la lista de conformidad a la información
actualizada para los módulos y se repiten las etapas anteriores.
Una forma de realización comprende un medio de
almacenamiento legible por ordenador que abarca el método anterior.
El medio de almacenamiento puede constar de disquetes, cintas
magnéticas, discos ópticos, RAM, ROM, memoria flash, etc. El medio
de almacenamiento tiene registradas instrucciones del programa en el
mismo para controlar el funcionamiento de un sistema informático. El
sistema informático ejecuta las instrucciones del programa para
dirigir el sistema informático para que examine la información del
módulo, ordene los módulos, seleccione el módulo de mayor prioridad,
programe al menos parte de este módulo y recalcule la información
del módulo. Estas etapas se repiten hasta que se hayan programado
los módulos completamente.
Una forma de realización comprende un programador
en un sistema de televisión interactiva para construir un flujo de
módulos. El programador se implementa en una estación emisora y se
configura para determinar el tamaño y el orden en que se emitirán
las partes de los módulos a los abonados. El programador se
configura para examinar la información de programación para cada
módulo y para priorizar los módulos de conformidad con esta
información. La información incluye un tiempo inicial mínimo, un
tiempo inicial máximo y una duración para cada módulo. El
programador examina los tiempos iniciales mínimos y, para cada uno
de ellos que sea anterior al tiempo actual, lo ajusta para que sea
igual al tiempo actual. Luego, el programador lista los módulos, en
orden ascendente, de conformidad con sus tiempos iniciales mínimos.
Los módulos que tienen el mismo tiempo inicial mínimo se ordenan de
conformidad con los tiempos iniciales máximos crecientes. Entonces
se selecciona el primer módulo de la lista a programar. El
programador determina cuánto puede transmitirse del módulo antes de
que tenga que recalcularse el orden de los módulos (es decir, sus
prioridades). El programador programa una parte correspondiente del
módulo para su transmisión. A continuación se actualiza la
información para los módulos, se recalculan las prioridades de los
módulos y se selecciona el siguiente módulo (o parte del mismo) a
programar.
Debe observarse que muchas formas de realización
adicionales del presente sistema y método resultarán evidentes a las
personas de conocimientos ordinarios en la técnica de la invención.
Se espera que las formas de realización dadas a conocer en la
presente sean ilustrativas más que limitativas, y es de esperar que
las modificaciones y variaciones de las formas de realización dadas
a conocer se encuentren dentro del espíritu y alcance de la presente
memoria.
Otros objetivos y ventajas de la invención
aparecerán con la lectura de la siguiente descripción, haciendo
referencia a los dibujos adjuntos, en los que:
La Fig. 1 es un diagrama en bloque que muestra un
sistema de televisión interactiva en el que se utiliza una forma de
realización.
La Fig. 2 es un diagrama mostrando el flujo de
información en un programador en una forma de realización.
La Fig. 3 es un diagrama de flujo que muestra el
método de una forma de realización.
La Fig. 4 es un diagrama que muestra la relación
entre los tiempos iniciales mínimo y máximo para un módulo y el
tiempo inicial, tiempo final y duración del módulo.
La Fig. 5 es una línea de tiempo correspondiente
a un ejemplo que muestra el método de una forma de realización.
Aunque la invención se presta a varias
modificaciones y formas alternativas, aquí se muestran varias formas
de realización específicas a modo de ejemplo en los dibujos y se
describirán en la presente con detalle. No obstante, deberá
entenderse que los dibujos y descripción detallada de los mismos no
tienen intención de limitar la invención a la forma concreta dada a
conocer, sino que por el contrario, su intención es abarcar todas
las modificaciones, equivalentes y alternativas que se incluyan
dentro del espíritu y envergadura de la presente invención tal como
lo definen las reivindicaciones adjuntas.
A continuación se describe una forma de
realización de la invención. Dicha forma de realización comprende un
método para programar un grupo de módulos en donde sólo puede
programarse un módulo único a un mismo tiempo. El método consiste
principalmente en las etapas siguientes: priorizar los módulos,
seleccionar el módulo con la prioridad más alta, programar al menos
una parte de este módulo y repetir estas etapas. La siguiente
descripción se centra en una implementación del método en un sistema
de televisión interactiva.
La priorización de los módulos se basa en un
tiempo inicial mínimo y un tiempo inicial máximo para cada uno de
los módulos. Los módulos que tienen un tiempo inicial mínimo
anterior o igual al tiempo actual están listos para ser programados.
Estos módulos se seleccionan (con igual prioridad en base a sus
respectivos tiempos iniciales mínimos) ajustando el tiempo inicial
mínimo para cada uno de ellos al tiempo actual, y disponiendo los
módulos en orden de menor a mayor tiempo inicial mínimo. Los módulos
que tienen el mismo tiempo inicial mínimo se disponen en orden de
menor a mayor de tiempos iniciales mínimos. Así, el primer módulo de
la lista de módulos será el módulo disponible que tiene el tiempo
inicial máximo más temprano.
Al menos una parte del módulo seleccionado se
programa. Programar esta parte del módulo seleccionado afecta a la
información que hay en la lista de módulos. Con relación al módulo
seleccionado, la duración restante se reduce y el tiempo inicial
máximo aumenta. Con relación a los otros módulos de la lista, se
avanza el tiempo actual y, si el tiempo inicial mínimo de un módulo
es anterior al nuevo tiempo actual, se actualizará al tiempo actual.
Puesto que la información de la lista ha cambiado, las prioridades
de los módulos también podrían haber cambiado. Por lo tanto, es
posible que tenga que reordenarse la lista. Como se explicará más
detalladamente a continuación, la parte del módulo que se programa
se determina en base a la información correspondiente a los módulos
no seleccionados de la lista. Hablando en general, el tamaño de la
parte se calcula para que sea justo lo suficientemente grande como
para necesitar que la lista del módulo se reordene.
Como se ha indicado anteriormente, cuando se
programa una parte del módulo seleccionado, la duración restante del
módulo se reduce en la cantidad programada y el tiempo inicial
máximo para el módulo aumenta por la cantidad programada. Por lo
tanto, esta información será actualizada después de programar la
parte del módulo. El tiempo actual también se aumenta por la
cantidad programada. Una vez actualizada esta información, los
tiempos iniciales mínimos de los módulos disponibles se vuelven a
ajustar al tiempo actual y los módulos se vuelven a priorizar de
manera que pueda seleccionarse otro módulo (o parte del mismo) para
programarlo. Estas etapas se repiten hasta que se hayan programado
todos los módulos completos. (Si no puede programarse uno o más
módulos, se presentará una notificación de error al usuario).
En una forma de realización, el método se
implementa en un sistema de televisión interactiva. Con referencia a
la Fig. 1, se conecta una estación emisora 12 a una o más estaciones
receptoras 14-16 por medio de una red de emisión 13.
La red de emisión 13 puede constar de cualquier medio adecuado para
transmitir una señal de emisión, incluyendo medios de transmisión
por satélite, cable, compañía telefónica, MMDS (microondas) y
terrestre. La información a transmitir de la estación emisora a las
estaciones receptoras viene proporcionada por la fuente de datos 11.
La fuente 11 puede constar de una o más fuentes individuales de
datos y puede incluir dispositivos tales como servidores de vídeo o
datos, servidores de aplicación, alimentaciones directas de
televisión y parecidos. Puesto que no todos los módulos
proporcionados por la fuente de datos 11 pueden transmitirse por la
red de emisión 13, la cual se supone que es limitada, a un mismo
tiempo, es necesario determinar el orden en que la
información
proporcionada por la fuente de datos será transmitida a las estaciones receptoras.
proporcionada por la fuente de datos será transmitida a las estaciones receptoras.
Con referencia a la Fig. 2, se muestra la función
del presente método. Como se indicó anteriormente, la información
proporcionada por una fuente de datos debe programarse para su
transmisión. En esta forma de realización, se proporciona la
información en forma de una pluralidad de módulos. Un programador 21
acepta como información de entrada una lista 22 de estos módulos.
Cada entrada de la lista identifica varias limitaciones de
programación asociadas con cada módulo. El programador 21 prioriza
los módulos en la lista y selecciona módulos a programar en base a
la información para cada módulo de la lista. El programador 21
produce como salida un programa 23. El programa 23 identifica el
orden en que deberían transmitirse los módulos, o partes de los
módulos, para satisfacer las limitaciones de programación
asociadas.
Con referencia a la Fig. 3, se muestra un
diagrama de flujo ilustrando el método en una forma de realización.
En esta forma de realización, el método consta generalmente de las
etapas siguientes: ordenar una lista de módulos de conformidad con
la información de programación asociada; seleccionar un módulo
disponible con el tiempo inicial máximo más temprano; determinar una
parte del módulo seleccionado a programar; programar la parte del
módulo; recalcular la información de programación para los módulos
de la lista y repetir estas etapas hasta que se hayan programado
todos los módulos.
Como se ha indicado anteriormente, cada módulo
tiene asociada cierta información de programación. Esta información
define las limitaciones dentro de las cuales deberá programarse cada
módulo. En esta forma de realización, cada módulo tiene inicialmente
un correspondiente tiempo inicial, tiempo final y duración. El
tiempo inicial y el tiempo final definen una ventana temporal dentro
de la cual deberá transmitirse el módulo. Es decir, la transmisión
del módulo no debe empezar antes que el tiempo inicial, y no deberá
terminarse después del tiempo final.
La duración inicial del módulo se determina por
el tamaño del módulo y la tasa de bits de la transmisión. Si la
duración inicial es mayor que la diferencia entre el tiempo inicial
y el tiempo final, no podrá programarse el módulo dentro de las
limitaciones dadas. En tal caso, se notifica al usuario que no
pueden satisfacerse las limitaciones de programación para ese
módulo, y ya no se vuelve a considerar más ese módulo (es decir, no
se intentará programar el módulo). (Debería indicarse que el usuario
puede ser una persona, una aplicación del cliente o cualquier otra
entidad que requiera notificación de los errores de programación. Si
la duración inicial del módulo es igual a la diferencia entre el
tiempo inicial y el tiempo final, se programará la transmisión del
módulo para que comience a la hora inicial y continúe hasta que el
módulo haya sido transmitido completamente para que quede incluido
dentro de la ventana permitida. Si la duración inicial del módulo es
inferior a la diferencia entre el tiempo inicial y el tiempo final,
es posible programar el módulo, y posiblemente otros módulos, dentro
de la ventana permitida.
En una forma de realización, la información
mantenida en la lista de módulos incluye un tiempo inicial mínimo
(MinBT) y un tiempo inicial máximo (MaxBT). El tiempo inicial mínimo
se ajusta en un principio al tiempo de inicio (ST). El tiempo
inicial máximo se ajusta en un principio al tiempo de finalización
(ET) menos la duración (D):
MinBT = ST
MaxBT = ET - D
Esto se muestra en la Fig. 4.
En términos generales, la lista de módulos se
ordena por los tiempos iniciales mínimos y los tiempos iniciales
máximos de los módulos respectivos. Sin embargo, antes de ordenar la
lista, se comparan los tiempos iniciales mínimos con el tiempo
actual y cualquiera de estos tiempos que sea anterior al tiempo
actual se ajusta al tiempo actual. Al hacerlo, se prioriza los
módulos disponibles para la programación (es decir, los módulos para
los que se ha llegado al tiempo inicial mínimo) sólo por sus tiempos
iniciales máximos. (Como se explicó anteriormente en esta
revelación, se vuelven a calcular los tiempos iniciales mínimo y
máximo y se vuelve a ordenar la lista siempre que se programa una
parte de un módulo.)
Puesto que los módulos se ordenan por tiempo
inicial mínimo y luego por tiempo inicial máximo, el primer módulo
de la lista reordenada es uno de los módulos disponibles que tenga
el tiempo inicial máximo más temprano. (Si existieran dos módulos
disponibles con el mismo tiempo inicial máximo, podrán ordenarse aún
más de conformidad a otros criterios, tales como clasificación
predeterminada de prioridad, o simplemente podría seleccionarse uno
de los módulos al azar). Se programa al menos una parte de este
primer módulo. Si la parte programada del módulo tiene una duración
P, el tiempo inicial máximo del módulo programado deberá ajustarse
en esa cantidad porque el resto del módulo tiene una duración más
corta que la duración D inicial y, en consecuencia, requiere menos
tiempo para transmitirse antes del tiempo final.
Puesto que P ajusta el tiempo inicial máximo del
módulo, es posible que el orden de la lista de módulos ya no sea
válido. Si la parte del módulo es más pequeña que el tamaño óptimo,
el recálculo y reordenación de la lista se realizará cuando no sea
necesario. Si la parte del módulo es más grande que el tamaño
óptimo, podría dejarse un módulo con prioridad más elevada sin
programar y, en consecuencia, es posible que no se satisfagan sus
limitaciones de programación. Por lo tanto, se escoge la parte del
módulo a programar (y el correspondiente valor de P) de manera que
sea apenas lo suficientemente grande como para que tenga que
volverse a ordenar la lista (a menos que el resto del módulo sea
menor que esa cantidad, en cuyo caso se programa el resto del módulo
y se selecciona el siguiente módulo de la lista para su
programación).
De este modo, para programar debidamente la parte
del módulo seleccionado, se determinará la cantidad de módulo que
debería programarse (es decir, la duración P). En una forma de
realización, la cantidad de tiempo disponible para programar una
parte del módulo seleccionado se determina restando el tiempo actual
del tiempo inicial máximo más pequeño de los módulos (incluyendo los
que aún no están disponibles). El valor de P se calcula de esta
manera porque, hasta que no se llegue a un tiempo inicial máximo del
módulo, ese módulo puede esperar a ser programado. Una vez se
alcance el tiempo inicial máximo, se programará todo el módulo.
En otra forma de realización, la duración
disponible para la programación se determina mediante la necesidad
de recalcular y posiblemente reordenar la lista de módulos. El
recálculo y la reordenación serán necesarios si ocurre cualquiera de
estas dos condiciones: aparece un módulo nuevo disponible (es decir,
su tiempo inicial mínimo es anterior o igual al nuevo tiempo
actual); o el tiempo inicial máximo de otro módulo disponible pasa a
ser anterior o igual al tiempo inicial máximo del módulo
seleccionado. Por lo tanto, se escoge la parte del módulo
seleccionado de manera que P sea la cantidad menor de la diferencia
entre el tiempo actual (antes de programar la parte) y el tiempo
inicial mínimo más temprano entre los módulos que no están
disponibles; y la diferencia entre el tiempo inicial máximo del
módulo seleccionado y el tiempo inicial máximo más temprano entre
los módulos que están disponibles.
En otra forma de realización, puede escogerse P
para que sea el menor de la diferencia entre el tiempo actual y el
tiempo inicial mínimo más temprano entre los módulos que no están
disponibles; y la diferencia entre los tiempos iniciales máximos del
módulo disponible próximo al módulo seleccionado de la lista, más 1.
Esta unidad adicional del módulo seleccionado (que podría ser un
paquete u otra unidad de programación mínima) se programa de manera
que, una vez actualizada la información del módulo, los dos primeros
módulos de la lista no tendrán tiempos iniciales mínimo y máximo
idénticos. De este modo, si el módulo seleccionado y el siguiente
módulo de mayor prioridad tienen los mismos tiempos iniciales mínimo
y máximo, se dará preferencia al módulo ya seleccionado. Si, por
alguna circunstancia, dos módulos disponibles al principio de la
lista tienen el mismo tiempo inicial máximo, podrá escogerse la
parte a programar de manera que P tenga al menos una duración mínima
predeterminada (p.ej., 1).
Una vez se haya determinado la cantidad de la
parte seleccionada del módulo, ésta podrá programarse. Cuando se
programe esta parte del módulo, se actualizará la información de los
módulos. Como se estableció anteriormente, el tiempo inicial máximo
del módulo seleccionado es adelantado por P. Si se ha programado
todo el módulo seleccionado, se retirará este módulo de la lista. El
tiempo actual (CT) se adelanta al tiempo final de la parte
programada (es decir, CT = CT + P). Los tiempos iniciales mínimos de
los módulos disponibles se actualizan de manera que sus tiempos
iniciales mínimos sean iguales al tiempo actual. También se
actualiza de esta manera todo módulo anteriormente no disponible
para el cual el tiempo inicial mínimo es anterior o igual al nuevo
tiempo actual (es decir, MinBT = CT). Luego se vuelve a ordenar la
lista y se selecciona un módulo nuevo para su programación. (Debería
indicarse que el módulo "nuevo" no necesariamente es diferente
del módulo seleccionado anteriormente - después de recalcular y
reordenar, el mismo módulo podría seguir siendo el primero de la
lista). Se repiten estas etapas hasta que se hayan programado todos
los módulos completamente.
En una forma de realización, este método podría
implementarse como un mecanismo de preprogramación. Es decir, antes
de empezar la transmisión, podrá compilarse la información para
todos los módulos y proporcionarse como material de información a un
programador que utilice este método. Entonces, el programador puede
generar un programa para la transmisión de los módulos. Este
programa puede usarse después para controlar el orden y las
cantidades de transmisión de los módulos. Esta implementación
permite que un usuario identifique cualquier problema de
programación que pueda surgir (p.ej. la duración de un módulo que
exceda la diferencia entre el tiempo de inicio y el tiempo de
finalización) y para remediar el problema (p.ej. modificando las
limitaciones de programación para uno o más módulos). Debería
indicarse que, particularmente en las formas de realización que
preprograman los módulos, el tiempo "actual" no es generalmente
el tiempo en el que se hace un cálculo, sino que en su lugar es un
tiempo correspondiente a la finalización de esos módulos (o partes
de los mismos) que ya han sido programados.
En otra forma de realización, el método puede
implementarse como un mecanismo de programación en tiempo real. Por
ejemplo, un programador de la estación emisora de un sistema de
televisión interactiva podría configurarse para que aceptara que se
le pidieran módulos, identificara y programara limitaciones y
programara los módulos, incluso cuando se transmitan otros módulos.
El programador podría configurarse para añadir módulos solicitados
recientemente a la lista conforme se soliciten y
recalcular/reordenar la lista, o podría realizarse el recálculo y
reordenación en tiempos determinados por la información que se
incluía anteriormente en la lista. Tanto la forma de realización de
tiempo real como de preprogramación podrían implementarse fácilmente
como aplicaciones de software.
La operación del método puede ilustrarse con el
siguiente ejemplo sencillo. Piense que se necesita programar tres
módulos. El primero tiene un tiempo de inicio (ST) de 0, un tiempo
de finalización (ET) de 14 y una duración (D) de 4. (En este
ejemplo, los tiempos y las duraciones serán sin unidades a modo de
simplicidad). El segundo módulo tiene un tiempo de inicio de 5, un
tiempo de finalización de 17 y una duración de 10, y el tercero
tiene un tiempo de inicio de 2, un tiempo de finalización de 16 y
una duración de 3. Los tiempos iniciales mínimos de los módulos son,
al principio, iguales a sus respectivos tiempos de inicio. Sus
tiempos iniciales máximos son iguales a sus tiempos finales menos
las duraciones respectivas (es decir, 10 para el primer módulo, 7
para el segundo módulo y 13 para el tercer módulo). Por lo tanto, al
principio (es decir, a tiempo actual CT = 0), la lista de módulos
contiene la siguiente información:
CT = 0 (punto A) | MinBT | MaxBT | Duración restante |
Módulo 1 | 0 | 10 | 4 |
Módulo 2 | 2 | 13 | 3 |
Módulo 3 | 5 | 7 | 10 |
Al revisar el ejemplo, sería útil hacer
referencia a la Fig. 5, la cual describe una línea de tiempo
correspondiente a la programación de los módulos. Cada una de las
siguientes tablas muestra la lista de módulos en un punto concreto
(A-E) de la línea de tiempo correspondiente al
tiempo actual identificado en la tabla.
En CT = 0 sólo un módulo (el Módulo 1) tiene un
tiempo inicial mínimo anterior o igual al tiempo actual. Por lo
tanto, se selecciona el Módulo 1 para su programación. Una parte del
Módulo 1 que tiene una duración de 2 puede programarse porque no
habrá otros módulos disponibles hasta ese momento. Una vez
programada esa parte del Módulo 1, deberá actualizarse la
información para el módulo. Más específicamente, se aumenta el
tiempo inicial máximo por la duración de la parte programada (MaxBt
= MaxBT + P) y se reduce la duración restante por la misma cantidad
(D = D - P). También se actualiza el tiempo actual añadiendo P.
Luego, se reordena la lista por los tiempos iniciales mínimo y
máximo de manera que, en CT = 2, aparezca así:
CT = 2 (punto A) | MinBT | MaxBT | Duración restante |
Módulo 1 | 2 | 12 | 2 |
Módulo 3 | 2 | 13 | 3 |
Módulo 2 | 5 | 7 | 10 |
Puesto que el módulo 1 sigue siendo el primer
módulo de la lista, se vuelve a seleccionar para su programación.
Sin embargo, esta vez, la duración de la parte programada se
determina tomando la cantidad menor de la diferencia entre el tiempo
actual y el tiempo inicial mínimo más temprano entre los módulos que
no están disponibles (es decir, 3); y la diferencia entre el tiempo
inicial máximo del módulo seleccionado y el tiempo inicial máximo
más temprano entre los módulos que están disponibles (es decir, 5).
Aunque es posible programar un máximo de 3 unidades del Módulo 1,
este módulo sólo tiene una duración restante de 2. Por lo tanto, se
programa toda la parte restante y se retira de la lista. Una vez
actualizado el tiempo actual (CT = CT + 2 = 4), se actualiza la
información del módulo y se vuelve a ordenar la lista:
CT = 4 (punto B) | MinBT | MaxBT | Duración restante |
Módulo 1 | - | - | - |
Módulo 3 | 4 | 13 | 3 |
Módulo 2 | 5 | 7 | 10 |
Puesto que en 1 unidad de tiempo otro módulo (el
Módulo 2) pasará a estar disponible, se programará una parte del
Módulo 3 que tenga una duración 1. Una vez actualizada y reordenada
la lista de módulos, la tabla aparecerá de la siguiente forma:
CT = 5 (punto C) | MinBT | MaxBT | Duración restante |
Módulo 1 | - | - | - |
Módulo 2 | 5 | 7 | 10 |
Módulo 3 | 5 | 14 | 2 |
Puesto que el módulo 2 tiene un tiempo inicial
máximo anterior, tiene prioridad ante el módulo 3. Puesto que no hay
módulos adicionales que puedan pasar a disponibles, se determina la
duración permisible de la parte programada del módulo 2
fundamentalmente por la diferencia entre los tiempos iniciales
máximos de este módulo y el siguiente módulo más cercano (es decir,
14 - 7 = 7). Puesto que la programación de una parte del Módulo 2
con una duración de 7 podría provocar que los tiempos iniciales
mínimo y máximo de los Módulos 2 y 3 sean idénticos, se escoge la
parte programada para que tenga una duración de 8. Una vez
programada esta parte del Módulo 2, la lista actualizada y
reordenada será como se indica:
CT = 13 (punto D) | MinBT | MaxBT | Duración restante |
Módulo 1 | - | - | - |
Módulo 3 | 13 | 14 | 2 |
Módulo 2 | 13 | 15 | 2 |
Ahora el Módulo 3 tiene prioridad sobre el Módulo
2 y se selecciona para su programación. Se escoge P para que sea 2
(por las mismas razones indicadas en el párrafo anterior). Puesto
que la duración restante del Módulo 3 es 2, puede programarse el
resto del módulo y eliminarse el módulo de la lista, como se
muestra:
CT = 15 (punto E) | MinBT | MaxBT | Duración restante |
Módulo 1 | - | - | - |
Módulo 3 | - | - | - |
Módulo 2 | 15 | 15 | 2 |
Ahora se programa el Módulo 2, que es el único
módulo que queda en la lista. Puesto que no se ha excedido el tiempo
inicial máximo, puede programarse el resto del módulo con todo éxito
dentro de su ventana permitida.
El resultado de las etapas descritas en los
párrafos anteriores es el siguiente programa:
tiempo | módulo | cantidad programada |
0 | 1 | 2 |
2 | 1 | 2 |
4 | 3 | 1 |
5 | 2 | 8 |
13 | 3 | 2 |
15 | 2 | 2 |
Mientras que se ha descrito la invención actual
con referencia a las formas de realización concretas, se entenderá
que las formas de realización son ilustrativas y que la envergadura
de la invención no se limita a estas formas de realización. Muchas
variaciones, modificaciones, adiciones y mejoras de las formas de
realización descritas son posibles. Estas variaciones,
modificaciones, adiciones y mejoras pueden quedar incluidas dentro
del campo de la invención como se detalla en las siguientes
reivindicaciones.
Claims (11)
1. Método que comprende:
(a) examinar una lista de entradas de módulos,
teniendo cada entrada de módulo un tiempo inicial mínimo, un tiempo
inicial máximo y una duración restante;
(b) para cada entrada de módulo, ajustar dicho
tiempo inicial a un tiempo actual si dicho tiempo inicial mínimo es
anterior a dicho tiempo actual;
(c) ordenar dicha lista de entradas de módulos
por el tiempo inicial mínimo más temprano y, dentro de las entradas
de módulos que tienen tiempos iniciales mínimos idénticos, ordenar
por tiempo inicial máximo más temprano;
(d) seleccionar una primera entrada en dicha
lista de entradas de módulos;
(e) determinar una cantidad de tiempo disponible
para programar una parte de dicha primera entrada, en el que dicho
tiempo disponible conste de la unidad más pequeña de la diferencia
entre dicho tiempo actual y un tiempo inicial mínimo más temprano de
una de dichas entradas de módulos que tienen un tiempo inicial
mínimo más tarde que dicho tiempo actual; y la diferencia entre
dicho tiempo inicial máximo de dicha primera entrada de módulo y el
tiempo inicial máximo más temprano de una de dichas entradas de
módulo que tienen un tiempo inicial mínimo igual a dicho tiempo
actual;
(f) programar dicha parte de dicha primera
entrada, en el que se selecciona un tamaño de dicha parte para ser:
igual a dicho tiempo disponible si dicha duración restante de dicha
primera entrada es superior o igual a dicho tiempo disponible; e
igual a dicha duración restante de dicha primera entrada si (i)
dicha duración restante es inferior a dicho tiempo disponible o (ii)
dicho tiempo actual es igual a un tiempo inicial máximo de dicha
primera entrada;
(g) restar dicha parte de dicha duración restante
de dicha primera entrada;
(h) sumar dicha parte a dicho tiempo inicial
máximo de dicha primera entrada;
(i) sumar dicha parte a dicho tiempo actual;
y
(j) repetir (a) - (i).
2. Método según la reivindicación 1, en donde
dicho tamaño se selecciona para que dicha parte no sea superior a
una duración máxima predeterminada.
3. Método según la reivindicación 1 ó 2, en el
que dicho tiempo inicial mínimo para cada entrada de módulos se
ajusta inicialmente a un tiempo de inicio identificado por cada
entrada de módulos.
4. Método según la reivindicación 1, 2 ó 3, que
también comprende transmitir dicha parte de dicha entrada
seleccionada de entre la pluralidad de entradas de módulos.
5. Método según la reivindicación 1, 2, 3 ó 4,
que presenta una indicación de un error si, para cualquiera de dicha
pluralidad de entradas de módulos, una duración de cualquiera de
dichas entradas de módulos es superior a un tiempo final de
cualquiera de dichas entradas de módulos menos dicho tiempo
actual.
6. Programador que comprende:
un procesador; y
una primera memoria acoplada a dicho procesador y
configurada para guardar una pluralidad de entradas de módulos, cada
una de dichas entradas de módulos tiene un correspondiente tiempo
inicial mínimo, un tiempo inicial máximo, un tiempo de terminación y
una duración; en donde dicho procesador se configura para:
(a) examinar una lista de entradas de módulos,
teniendo cada entrada de módulos un tiempo inicial mínimo, un tiempo
inicial máximo y una duración restante;
(b) para cada entrada de módulos, ajustar dicho
tiempo inicial mínimo a un tiempo actual si dicho tiempo inicial
mínimo es anterior a dicho tiempo actual;
(c) ordenar dicha lista de entradas de módulos
por el tiempo inicial mínimo más temprano y, dentro de las entradas
de módulos que tienen tiempos iniciales mínimos idénticos, ordenar
por tiempo inicial máximo más temprano;
(d) seleccionar una primera entrada en dicha
lista de entradas de módulos;
(e) determinar una cantidad de tiempo disponible
para programar una parte de dicha primera entrada, en donde ese
tiempo disponible conste de la unidad más pequeña de la diferencia
entre dicho tiempo actual y un tiempo inicial mínimo más temprano de
una de dichas entradas de módulos que tienen un tiempo inicial
mínimo más tarde que dicho tiempo actual; y la diferencia entre
dicho tiempo inicial máximo de dicha primera entrada de módulos y el
tiempo inicial máximo más temprano de una de dichas entradas de
módulos que tienen un tiempo inicial mínimo igual a dicho tiempo
actual;
(f) programar dicha parte de dicha primera
entrada, en donde se selecciona un tamaño de dicha parte para: ser
igual a dicho tiempo disponible si dicha duración restante de dicha
primera entrada es superior o igual a dicho tiempo disponible; e
igual a dicha duración restante de dicha primera entrada si (i)
dicha duración restante es inferior a dicho tiempo disponible o (ii)
dicho tiempo actual es igual a un tiempo inicial máximo de dicha
primera entrada;
(g) restar dicha parte de dicha duración restante
de dicha primera entrada;
(h) sumar dicha parte a dicho tiempo inicial
máximo de dicha primera entrada;
(i) sumar dicha parte a dicho tiempo actual;
y
(j) repetir (a) - (i).
7. Programador según la reivindicación 6, en el
que se selecciona que dicho tamaño no sea mayor que una duración
máxima predeterminada.
8. Programador según la reivindicación 6, en el
que se configura dicho procesador para que reordene periódicamente
dichas entradas de módulos en dicha memoria.
9. Programador según la reivindicación 8, en el
que se configura dicho procesador para que reordene dichas entradas
de módulos en dicha memoria cuando la programación de dicha primera
entrada de dichas entradas de módulos provoque que cambie una o más
prioridades asociadas con dicha pluralidad de entradas.
10. Programador según la reivindicación 6, en el
que se configura dicho programador para que genere un programa y
almacene dicho programa en una segunda memoria.
11. Programador según la reivindicación 6, en el
que se conecta dicho programador a una o más fuentes de módulos y se
configura para que seleccione módulos proporcionados por dichas
fuentes de módulos a un transmisor de emisión.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US476722 | 1999-12-30 | ||
US09/476,722 US6738972B1 (en) | 1999-12-30 | 1999-12-30 | Method for flow scheduling |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2213069T3 true ES2213069T3 (es) | 2004-08-16 |
Family
ID=23892986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES00990411T Expired - Lifetime ES2213069T3 (es) | 1999-12-30 | 2000-12-27 | Metodo de programacion de flujo. |
Country Status (12)
Country | Link |
---|---|
US (1) | US6738972B1 (es) |
EP (1) | EP1243139B1 (es) |
JP (1) | JP4718743B2 (es) |
CN (1) | CN1237801C (es) |
AT (1) | ATE261641T1 (es) |
AU (1) | AU784891B2 (es) |
BR (1) | BR0016885A (es) |
CA (1) | CA2396097A1 (es) |
DE (1) | DE60008928T2 (es) |
DK (1) | DK1243139T3 (es) |
ES (1) | ES2213069T3 (es) |
WO (1) | WO2001050759A2 (es) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100193B2 (en) * | 2000-03-29 | 2006-08-29 | Intellocity Usa, Inc. | Rate controlled insertion of asynchronous data into a synchronous stream |
US20020157103A1 (en) * | 2000-01-07 | 2002-10-24 | Deyang Song | Method for digital media playback in a broadcast network |
CN1316361C (zh) * | 2000-06-27 | 2007-05-16 | 皇家菲利浦电子有限公司 | 确定一个进度表的方法、调度器和系统 |
US7403994B1 (en) * | 2000-08-29 | 2008-07-22 | International Business Machines Corporation | Method of doing business over a network by transmission and retransmission of digital information on a network during time slots |
US7150017B1 (en) * | 2000-08-29 | 2006-12-12 | International Business Machines Corporation | System and method for scheduling digital information transmission and retransmission on a network during time slots |
KR100524763B1 (ko) * | 2003-07-23 | 2005-10-31 | 엘지전자 주식회사 | 개선된 edf 스케쥴링 방법 |
US7289996B2 (en) * | 2004-09-09 | 2007-10-30 | International Business Machines Corporation | Data transmission management |
WO2006035404A1 (en) * | 2004-09-30 | 2006-04-06 | Koninklijke Philips Electronics N.V. | Detection of new software image for download for digital/hybird tv during play mode |
GB2425012A (en) * | 2005-04-08 | 2006-10-11 | Quadriga Technology Ltd | Ranking data files for scheduling transmission |
US8726325B2 (en) * | 2005-08-08 | 2014-05-13 | Telvue Corporation | Method and apparatus for scheduling delivery of video and graphics |
BRPI0520497A2 (pt) * | 2005-08-26 | 2009-05-12 | Thomson Licensing | sistema e método sob demanda que usam programação de transmissão dinámica |
DE102007006432B4 (de) * | 2007-02-05 | 2010-07-08 | Arndt-Helge Grap | Vorrichtung und Verfahren zur Bereitstellung von Daten |
US20090094248A1 (en) * | 2007-10-03 | 2009-04-09 | Concert Technology Corporation | System and method of prioritizing the downloading of media items in a media item recommendation network |
CN101414958B (zh) * | 2007-10-18 | 2011-02-09 | 华为技术有限公司 | 一种业务调度方法及装置 |
US20100169918A1 (en) * | 2008-12-30 | 2010-07-01 | Biesemeyer Ralph E | Community Programmed Television |
JP2011211650A (ja) * | 2010-03-30 | 2011-10-20 | Oki Electric Industry Co Ltd | 告知放送サーバ及び告知端末 |
CN102196299B (zh) * | 2011-05-31 | 2018-04-27 | 中兴通讯股份有限公司 | 同时发送或接收多条图文视频紧急广播消息的方法及系统 |
WO2013064907A2 (en) * | 2011-11-03 | 2013-05-10 | Marvell World Trade Ltd. | Method and apparatus for arbitration of time-sensitive data transmissions |
CN103561195A (zh) * | 2013-11-11 | 2014-02-05 | 西安诺瓦电子科技有限公司 | 媒体播放时段调度方法 |
US9431002B2 (en) | 2014-03-04 | 2016-08-30 | Tribune Digital Ventures, Llc | Real time popularity based audible content aquisition |
US9454342B2 (en) | 2014-03-04 | 2016-09-27 | Tribune Digital Ventures, Llc | Generating a playlist based on a data generation attribute |
US9798509B2 (en) | 2014-03-04 | 2017-10-24 | Gracenote Digital Ventures, Llc | Use of an anticipated travel duration as a basis to generate a playlist |
US20150334170A1 (en) * | 2014-05-19 | 2015-11-19 | Tribune Digital Ventures, Llc | Use of a remainder duration as a basis to generate a playlist |
US10261964B2 (en) | 2016-01-04 | 2019-04-16 | Gracenote, Inc. | Generating and distributing playlists with music and stories having related moods |
US10565980B1 (en) | 2016-12-21 | 2020-02-18 | Gracenote Digital Ventures, Llc | Audio streaming of text-based articles from newsfeeds |
US10019225B1 (en) | 2016-12-21 | 2018-07-10 | Gracenote Digital Ventures, Llc | Audio streaming based on in-automobile detection |
US10419508B1 (en) | 2016-12-21 | 2019-09-17 | Gracenote Digital Ventures, Llc | Saving media for in-automobile playout |
CN107609803B (zh) * | 2017-10-27 | 2021-03-26 | 国网河南省电力公司商丘供电公司 | 一种网络用户需求调度方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701582A (en) * | 1989-08-23 | 1997-12-23 | Delta Beta Pty. Ltd. | Method and apparatus for efficient transmissions of programs |
US5168356A (en) | 1991-02-27 | 1992-12-01 | General Electric Company | Apparatus for segmenting encoded video signal for transmission |
US5210872A (en) * | 1991-06-28 | 1993-05-11 | Texas Instruments Inc. | Critical task scheduling for real-time systems |
US5394548A (en) * | 1992-10-09 | 1995-02-28 | Fujitsu Limited | Multi-media scheduling system |
US5592626A (en) * | 1994-02-07 | 1997-01-07 | The Regents Of The University Of California | System and method for selecting cache server based on transmission and storage factors for efficient delivery of multimedia information in a hierarchical network of servers |
US5473773A (en) * | 1994-04-04 | 1995-12-05 | International Business Machines Corporation | Apparatus and method for managing a data processing system workload according to two or more distinct processing goals |
JP3658420B2 (ja) * | 1994-04-14 | 2005-06-08 | 株式会社日立製作所 | 分散処理システム |
US5581706A (en) * | 1994-06-30 | 1996-12-03 | Rca Thomson Licensing Corporation | Method forming an audio/video interactive data signal |
FR2723653B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives qui ne subissent que des contraintes du type delais |
US5712976A (en) | 1994-09-08 | 1998-01-27 | International Business Machines Corporation | Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes |
US5675739A (en) * | 1995-02-03 | 1997-10-07 | International Business Machines Corporation | Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types |
US5787482A (en) * | 1995-07-31 | 1998-07-28 | Hewlett-Packard Company | Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window |
US5832262A (en) * | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
JPH09261617A (ja) | 1996-01-19 | 1997-10-03 | Matsushita Electric Ind Co Ltd | オンデマンド通信システム |
US5832208A (en) * | 1996-09-05 | 1998-11-03 | Cheyenne Software International Sales Corp. | Anti-virus agent for use with databases and mail servers |
US5951698A (en) * | 1996-10-02 | 1999-09-14 | Trend Micro, Incorporated | System, apparatus and method for the detection and removal of viruses in macros |
US5951646A (en) | 1996-11-25 | 1999-09-14 | America Online, Inc. | System and method for scheduling and processing image and sound data |
US6317774B1 (en) * | 1997-01-09 | 2001-11-13 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
JPH10301793A (ja) * | 1997-04-30 | 1998-11-13 | Toshiba Corp | 情報処理装置及びスケジューリング方法 |
JPH1153194A (ja) * | 1997-07-31 | 1999-02-26 | Matsushita Electric Ind Co Ltd | プログラムダウンロードシステム |
US6571391B1 (en) * | 1998-07-09 | 2003-05-27 | Lucent Technologies Inc. | System and method for scheduling on-demand broadcasts for heterogeneous workloads |
US6374405B1 (en) * | 1999-02-17 | 2002-04-16 | Opentv, Corp. | Module scheduling with a time interval and ending time |
JP4460712B2 (ja) * | 1999-06-11 | 2010-05-12 | パナソニック株式会社 | デジタル放送送出装置 |
US6378052B1 (en) * | 1999-08-11 | 2002-04-23 | International Business Machines Corporation | Data processing system and method for efficiently servicing pending requests to access a storage system |
-
1999
- 1999-12-30 US US09/476,722 patent/US6738972B1/en not_active Expired - Lifetime
-
2000
- 2000-12-27 CN CN00817939.5A patent/CN1237801C/zh not_active Expired - Fee Related
- 2000-12-27 EP EP00990411A patent/EP1243139B1/en not_active Expired - Lifetime
- 2000-12-27 AU AU27440/01A patent/AU784891B2/en not_active Ceased
- 2000-12-27 AT AT00990411T patent/ATE261641T1/de not_active IP Right Cessation
- 2000-12-27 ES ES00990411T patent/ES2213069T3/es not_active Expired - Lifetime
- 2000-12-27 WO PCT/US2000/035640 patent/WO2001050759A2/en active IP Right Grant
- 2000-12-27 JP JP2001551012A patent/JP4718743B2/ja not_active Expired - Fee Related
- 2000-12-27 CA CA002396097A patent/CA2396097A1/en not_active Abandoned
- 2000-12-27 DE DE60008928T patent/DE60008928T2/de not_active Expired - Lifetime
- 2000-12-27 BR BR0016885-8A patent/BR0016885A/pt not_active IP Right Cessation
- 2000-12-27 DK DK00990411T patent/DK1243139T3/da active
Also Published As
Publication number | Publication date |
---|---|
CA2396097A1 (en) | 2001-07-12 |
DK1243139T3 (da) | 2004-04-13 |
JP4718743B2 (ja) | 2011-07-06 |
WO2001050759A2 (en) | 2001-07-12 |
AU784891B2 (en) | 2006-07-20 |
ATE261641T1 (de) | 2004-03-15 |
EP1243139B1 (en) | 2004-03-10 |
DE60008928T2 (de) | 2005-01-27 |
BR0016885A (pt) | 2002-10-01 |
DE60008928D1 (de) | 2004-04-15 |
EP1243139A2 (en) | 2002-09-25 |
CN1237801C (zh) | 2006-01-18 |
CN1415166A (zh) | 2003-04-30 |
AU2744001A (en) | 2001-07-16 |
US6738972B1 (en) | 2004-05-18 |
JP2003519984A (ja) | 2003-06-24 |
WO2001050759A3 (en) | 2001-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2213069T3 (es) | Metodo de programacion de flujo. | |
ES2475496T3 (es) | Procedimientos y aparatos para la creación y transporte de flujos de contenido multimedia | |
US9185004B2 (en) | Quality of service for distribution of content to network devices | |
ES2199264T3 (es) | Procedimiento y aparato para proporcionar una guia interactiva para eventos disponibles en una red de informacion. | |
US7899493B2 (en) | Sharing a radio frequency interface resource | |
ES2349864T3 (es) | Sistemas y métodos para resolver conflictos y administrar los recursos de sistema en sistemas. | |
US7573816B2 (en) | System and method for combining requests for data bandwidth by a data source for transmission of data over a wireless communication medium | |
US20190207994A1 (en) | Data feed resource reservation system | |
US8356110B2 (en) | Adaptive bandwidth resource management for media streams | |
ES2238580T3 (es) | Procedimiento para la transmision de emisiones audiovisuales propuestas por los usuarios, terminal y servidor para llevar a cabo el procedimiento. | |
US20110047271A1 (en) | Method and system for allocating resources | |
US8332528B2 (en) | Personal broadcast and content delivery engine | |
ES2301457T3 (es) | Metodo y aparato para compartir preferencias del telespectador. | |
ES2324468T3 (es) | Procedimiento de distribucion de claves de descifrado de datos digitales encriptados. | |
ES2247015T3 (es) | Procedimiento de datos digitales de multiples flujos de datos. | |
ES2223820T3 (es) | Sistema y metodo para la difusionm digital de fijacion de objetivos de contenido de audio. | |
US7530090B2 (en) | System for transmitting programs to client terminals | |
US20230023917A1 (en) | Method and System for Selective broadcasting of Instructions or Media Content to Targeted Electronic Devices Using a Modular Format | |
US20220086527A1 (en) | Seamless timers |