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
Application number
ES00990411T
Other languages
English (en)
Inventor
Pierre Willard
Jerome Rousseau
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 ES2213069T3 publication Critical patent/ES2213069T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/25Management 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/262Content 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/26208Content 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/26233Content 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
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/25Management 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/262Content 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
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised 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.
Antecedentes de la invención 1. Campo de la invención
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.
2. Descripción de la técnica relacionada
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.
Sumario de la invención
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.
Breve descripción de los dibujos
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.
Descripción detallada de una forma de realización preferida
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.
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.
ES00990411T 1999-12-30 2000-12-27 Metodo de programacion de flujo. Expired - Lifetime ES2213069T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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