ES2278025T3 - Actualizacion sincronica de aplicaciones interactivas dinamicas. - Google Patents

Actualizacion sincronica de aplicaciones interactivas dinamicas. Download PDF

Info

Publication number
ES2278025T3
ES2278025T3 ES02731509T ES02731509T ES2278025T3 ES 2278025 T3 ES2278025 T3 ES 2278025T3 ES 02731509 T ES02731509 T ES 02731509T ES 02731509 T ES02731509 T ES 02731509T ES 2278025 T3 ES2278025 T3 ES 2278025T3
Authority
ES
Spain
Prior art keywords
broadcasting
interactive
interactive application
application
server
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
ES02731509T
Other languages
English (en)
Inventor
Bryan C. Gebhardt
Houman Azarm
Charles N. Mccullough
Edgard S. Valdivia
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.)
Wink Communications Inc
Original Assignee
Wink Communications 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
Priority claimed from US09/843,614 external-priority patent/US7222155B1/en
Application filed by Wink Communications Inc filed Critical Wink Communications Inc
Application granted granted Critical
Publication of ES2278025T3 publication Critical patent/ES2278025T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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
    • 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/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/26258Content 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 for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • 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/812Monomedia components thereof involving advertisement data
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8545Content authoring for generating interactive applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

Procedimiento implementado por ordenador para actualizar una emisión de una aplicación interactiva desde un sistema de radiodifusión (114 y 116) hasta un dispositivo de recepción (120), a través de unos medios de transmisión (118), comprendiendo el procedimiento las etapas siguientes: recibir en el sistema de radiodifusión una señal de radiodifusión que comprende por lo menos un registro de una primera aplicación interactiva (115); caracterizado porque se selecciona una segunda aplicación interactiva (115), y se emiten los registros de la segunda aplicación interactiva hasta el dispositivo de recepción (120), en lugar de por lo menos algunos de los registros de la primera aplicación interactiva, para la ejecución de la segunda aplicación interactiva por el dispositivo de recepción; se recibe en el sistema de radiodifusión la señal de radiodifusión de uno o más registros adicionales de la primera aplicación interactiva; y se emiten los registros adicionales seleccionados desde el sistema deradiodifusión hasta el dispositivo de recepción, para la ejecución de la segunda aplicación interactiva en conjunción con los registros adicionales.

Description

Actualización sincrónica de aplicaciones interactivas dinámicas.
Referencia cruzada con solicitudes relacionadas
La presente solicitud es una continuación en parte de la solicitud de n.º de serie 09/333.724 en trámite, presentada el 15 de junio de 1999. Esta solicitud está relacionada con las siguientes solicitudes en trámite: la solicitud de n.º de serie 09/431.001, titulada "Automated Control Of Interactive Application Execution Using Defined Time Periods", presentada el 1 de noviembre de 1999, de Eric E. Del Sesto, Charles N. McCullough, Pat Ransil y Houman Azarmand, y la solicitud de n.º de serie 09/754.650, titulada "Ensuring Reliable Delivery of Interactive Content", presentada el 3 de enero de 2001, de Brian P. Dougherty, Timothy V. Travaille y Leo C. Meier.
Antecedentes A. Campo técnico
La presente invención se refiere en general al campo de la televisión interactiva, y más particularmente, al control automático de la interactividad en sincronía con los programas de radiodifusión de televisión.
B. Antecedentes de la invención
La mayoría de sistemas de televisión interactiva tratan de aumentar los programas de radiodifusión con interactividad seleccionable por el telespectador. Por ejemplo, la interactividad puede emitirse en un canal interactivo especial, pudiendo el telespectador sintonizar una caja de conexión u otro dispositivo para recibir y presentar la interactividad. Esta interactividad suele proporcionarse con una interfaz de usuario que ocupa toda la pantalla de televisión. De esta forma, el telespectador decide si desea ver programas de radiodifusión convencionales en los canales habituales, o utilizar la interactividad en un canal interactivo. En otras implementaciones, la interactividad puede ser activada en cualquier canal, pero continúa ocupando toda la pantalla de televisión. No obstante, en estas implementaciones de televisión interactiva, no suele ser necesario que la interactividad sea sincrónica con el programa de radiodifusión concreto que se está emitiendo, puesto que la interactividad reemplaza toda la pantalla, bloqueando de ese modo la presentación del programa de radiodifusión. Los programas de radiodifusión incluyen programas de televisión, anuncios, guías de programación y similares.
En otra versión de televisión interactiva, lo que se pretende es ocupar sólo una parte de la pantalla de televisión y proporcionar la interactividad junto con el programa que se está emitiendo. Por ejemplo, un programa de juego de radiodifusión puede venir acompañado de interactividad para permitir que el telespectador participe en el juego e introduzca respuestas a las preguntas formuladas durante el programa. Esta interactividad se presenta únicamente en una parte de la pantalla de televisión, para permitir que el telespectador continúe viendo el programa de
radiodifusión.
Es deseable que la interactividad que se presenta junto a un programa de radiodifusión se mantenga en sincronía con el programa de radiodifusión. Esto significa que la interactividad deberá estar disponible para el telespectador siempre que se emita el programa de radiodifusión al que acompaña, y que cualquier información de estado creada por el espectador (por ejemplo, el total de puntos acumulados en un juego) deberá conservarse, aunque el programa de radiodifusión se suspenda temporalmente y luego se reanude (por ejemplo, durante una pausa comercial).
Asimismo, esto significa que la interactividad no deberá aparecer cuando el programa de radiodifusión acompañante no se emita o se interrumpa por cualquier motivo. En particular, para obtener una correcta sincronía es necesario que la interactividad de un programa de televisión no aparezca en la pantalla cuando se emite un anuncio durante el programa. Esto se debe a los dos motivos indicados a continuación. En primer lugar, el anuncio puede ir acompañado de su propia interactividad (por ejemplo, para que el usuario pueda solicitar información acerca del producto anunciado). Por lo tanto, será necesario presentar la interactividad del anuncio, y volver a presentar la interactividad del programa cuando el anuncio (o la serie de anuncios) finalice y se reanude el programa de televisión. La nueva presentación de la interactividad del programa deberá tener lugar de forma rápida y, como se ha indicado, deberá conservar la información de estado disponible al iniciarse el anuncio. Por ejemplo, si el telespectador ha ido acumulando puntos en un juego interactivo, estos puntos deberán estar disponibles cuando se reanude la interactividad del programa.
En segundo lugar, aunque los anuncios no dispongan de su propia interactividad, resulta inadecuado presentar la interactividad del programa durante los mismos. Esto es debido a que la interactividad reemplazará una parte de la pantalla de televisión, ocultando de ese modo una parte del anuncio, hecho que es inadmisible para el anunciante que ha pagado por la emisión del anuncio. Asimismo, la interactividad del programa no está asociada al anuncio, con lo cual su aparición puede crear confusión en el telespectador.
En consecuencia, es deseable proporcionar un sistema, un procedimiento y unos productos de software de televisión interactiva que sincronicen correctamente la interactividad de los diversos programas de radiodifusión, y se adapten a la interrupción de éstos por otros programas de radiodifusión.
Aparte de sistemas de televisión interactiva, los sistemas de radiodifusión de televisión convencionales proporcionan diversos niveles de control automatizado y manual sobre la forma de seleccionar y obtener programas para la transmisión por radiodifusión. Los sistemas de radiodifusión convencionales suelen incluir un sistema de programación de radiodifusión, diversas fuentes de radiodifusión, una unidad de inserción de datos y un transmisor. Las fuentes de radiodifusión proporcionan el contenido de vídeo, de audio y de otro tipo que se emite por medio del transmisor. Estas fuentes de radiodifusión pueden ser diversos tipos de platinas de vídeo y audio, bibliotecas de cintas de vídeo, fuentes de audio/vídeo digital, fuentes de vídeo en directo, ordenadores servidores y similares.
El sistema de programación generalmente controla las fuentes de radiodifusión de un sistema de radiodifusión con secuencias de señales de control nativas. Estas señales de control dan la orden de iniciar, detener, cargar o realizar cualquier otra gestión de los programas de radiodifusión. La secuencia de señales de control viene determinada principalmente por una lista de reproducción que indica qué fuente de radiodifusión debe activarse o desactivarse y en qué momentos, y las asignaciones de canales hacia los cuales deben encaminarse las fuentes de radiodifusión activas. En un sistema de control manual, las señales de control se generan en respuesta a las operaciones manuales de los operadores humanos para activar o desactivar selectivamente cualquiera de las fuentes de radiodifusión, y asignar la salida al canal adecuado.
Los datos de radiodifusión de la fuente de radiodifusión se pasan al transmisor; a continuación, el transmisor transmite la señal de radiodifusión a una cantidad cualquiera de receptores de radiodifusión a través de un canal seleccionado y, por último, el receptor de radiodifusión (tal como una caja de conexión o un televisor compatible), sintonizado con el canal seleccionado, recibe la señal de radiodifusión y presenta un programa de radiodifusión.
Los sistemas y controles manuales de programación convencionales generalmente proporcionan las señales de control de salida sólo a las fuentes de radiodifusión o dispositivos similares. Esto es debido a que estas señales de control adoptan un formato específico para las fuentes de radiodifusión y no están destinadas a controlar otros tipos de equipos de radiodifusión. Por ejemplo, los sistemas de programación que controlan fuentes de vídeo utilizan señales de control que son significativas para los dispositivos de fuentes de vídeo. En consecuencia, es deseable proporcionar un sistema y un procedimiento que utilicen las señales de control existentes de los sistemas de programación para facilitar todavía más el control automatizado de la interactividad sincrónica con los programas de radiodifusión. Es deseable evitar la necesidad de efectuar modificaciones en el sistema de programación para utilizar nuevos equipos con capacidad de automatización.
En algunas radiodifusiones, se insertan unos códigos que indican el programa de radiodifusión o el tipo de programa de radiodifusión (por ejemplo, programa de televisión o anuncio) en la señal de radiodifusión. Un conjunto de códigos comúnmente utilizado es el sistema de códigos ISCI (Industry Standard Coding Identification) de American Association of Advertising Agencies Inc. Los códigos ISCI se utilizan normalmente para indicar el patrocinio y la afiliación de una radiodifusión comercial. Sin embargo, estos códigos no se utilizan actualmente para controlar la ejecución de la interactividad que pueda ir asociada a un programa de televisión, un anuncio publicitario u otro tipo de programa de radiodifusión. En consecuencia, es deseable proporcionar un sistema y un procedimiento que utilicen estos códigos y otros similares incorporados en la señal de radiodifusión para controlar la sincronización de la interactividad de diversos programas de radiodifusión.
Un sistema de televisión interactiva coopera con el sistema de radiodifusión convencional, tal como el descrito anteriormente, para proporcionar una interactividad eficaz. Dicho sistema incluye un servidor de radiodifusión, en el que se almacena una base de datos de aplicaciones interactivas. Las aplicaciones interactivas se asocian selectivamente con diversos programas de radiodifusión y acompañan a dichos programas en el momento de su emisión. El servidor de radiodifusión suele recibir su propia lista de reproducción para un período de radiodifusión determinado, y utiliza la información de programación que ésta contiene para identificar los programas de radiodifusión particulares que se están emitiendo actualmente. El servidor de radiodifusión recupera la aplicación o las aplicaciones interactivas asociadas con el programa o los programas emitidos actualmente y proporciona estas aplicaciones interactivas a una unidad de inserción de datos. La unidad de inserción de datos combina los datos de las aplicaciones interactivas con los datos de radiodifusión de las fuentes de radiodifusión para crear la señal de radiodifusión, que entonces contiene el programa de radiodifusión acompañado de su aplicación interactiva. La señal de radiodifusión combinada es transmitida por el transmisor en un canal seleccionado. Cualquiera de los receptores de radiodifusión sintonizados con el canal recibe la señal de radiodifusión que contiene tanto el programa de radiodifusión como la aplicación interactiva acompañante. El receptor de radiodifusión presenta el programa de radiodifusión y decodifica y ejecuta la aplicación interactiva, presentándola de la forma más adecuada en la pantalla de televisión. El servidor de radiodifusión es capaz, además, de enviar mandatos al receptor de radiodifusión para iniciar, parar, suspender o reanudar selectivamente la ejecución de una aplicación interactiva determinada según las instrucciones predefinidas de la lista de reproducción.
No obstante, el servidor de radiodifusión no ha sido integrado previamente en los sistemas de programación existentes para automatizar el control de las aplicaciones interactivas, basándose en las señales de control del sistema de programación. Una de las dificultades en este sentido es la ausencia de uniformidad (y la variedad) de las señales de control utilizadas por los diversos tipos de sistemas de programación para controlar sus fuentes de radiodifusión, que como se ha indicado anteriormente están destinadas a interconectarse con otras fuentes de radiodifusión. Este sistema tampoco ha sido previamente sensible a los códigos ISCI o similares para el control de la interactividad. En consecuencia, es deseable proporcionar aplicaciones interactivas sincrónicas a través de una interfaz eficaz entre los sistemas de programación y el servidor de radiodifusión.
Otro de los problemas de los sistemas de programación y los servidores de radiodifusión existentes es la ausencia de flexibilidad en el tratamiento de los cambios parciales del contenido de las aplicaciones interactivas. En algunos casos, es deseable realizar sólo cambios seleccionados en el contenido de una aplicación, en lugar de sustituir toda la aplicación. Por ejemplo, las aplicaciones de información dinámica electrónica de cotizaciones bursátiles necesitan una provisión ininterrumpida de las actualizaciones de los registros de cotizaciones. En otro ejemplo, las aplicaciones interactivas de noticias nocturnas tal vez necesiten actualizar sólo las partes relacionadas con los titulares de noticias actuales, y las aplicaciones interactivas para un programa de variedades tal vez necesiten actualizar sólo las partes que describen el horario actual de los invitados. Hasta ahora, los sistemas existentes se han limitado a realizar estos cambios de la aplicación interactiva en su fuente de radiodifusión, integrando la información cambiada en el contenido interactivo antes de generar la señal de radiodifusión. No obstante, este procedimiento no permite que los sistemas de radiodifusión locales (por ejemplo, una cabecera de cable) inserten localmente información importante o actualizaciones en su ubicación aguas abajo. Además, en los sistemas en los que un servidor de radiodifusión local puede sustituir la aplicación interactiva, indicada en la señal de radiodifusión recibida, por una versión adaptada de la aplicación interactiva (por ejemplo, una versión con gráficos de calidad más alta), también es deseable enviar actualizaciones de la señal de radiodifusión a la aplicación adaptada para integrar las actualizaciones con la aplicación.
En el documento WO 99/15968, se da a conocer una red de distribución de televisión que permite a los usuarios descargar páginas web de Internet relacionadas con los programas de radiodifusión de televisión emitidos actualmente, mediante la utilización de hiperenlaces con los canales. A través de un canal ascendente, el usuario envía las peticiones de hiperenlace con los canales a la cabecera de red, pulsando el botón de la web del mando a distancia. La cabecera se interconecta con un proveedor de servicios de Internet para descargar las páginas web relacionadas. La cabecera utiliza un señalizador de ID con información del canal y el tiempo de la petición para identificar la ubicación de la información que se va a descargar en el usuario. Una aplicación de navegador transforma la información obtenida en un mapa de bits, preferentemente comprimido. La aplicación de navegador envía entonces el mapa de bits comprimido al gestor de presentación visual del terminal. Preferentemente, el gestor de presentación visual del terminal es operativo para reducir al mínimo la cantidad de información que debe transmitirse a la caja de conexión. Esto se consigue transmitiendo,
a la caja de conexión, sólo la información necesaria para actualizar las partes de la pantalla que van a cambiar.
En el artículo "JTV-Java-enabled Television" de P. Thrift et al., Proceedings of the SPIE, SPIE, Bellingham, VA, US, vol. 3228, 4 de noviembre de 1997, pp. 117-122, se da a conocer la API JTV. Esta API permite a los programadores elaborar y distribuir aplicaciones interactivas y applets que combinan Java con un contenido de radiodifusión y de televisión interactiva mejorado.
La solicitud de patente europea EP 1 003 313 da a conocer un procedimiento para proporcionar una aplicación interactiva a una pluralidad de plataformas de destino.
Sumario de la invención
La presente invención permite el control automatizado de la interactividad para que la presentación de la interactividad se mantenga sincronizada con los respectivos programas de radiodifusión, independientemente de si un programa de radiodifusión y su interactividad son interrumpidos por otros programas de radiodifusión o interactividades.
Según una forma de realización de la presente invención, las señales de control utilizadas normalmente sólo para controlar las fuentes de radiodifusión (o dispositivos similares, tales como los subtituladores) se reciben y procesan para proporcionar mandatos a un servidor de radiodifusión. Estos mandatos dan selectivamente la orden de controlar la ejecución de la interactividad en un receptor de radiodifusión, al servidor de radiodifusión. A su vez, el servidor de radiodifusión transmite mandatos al receptor de radiodifusión, que ejecuta los mandatos para controlar la interactividad.
Las señales de control utilizadas en la presente invención pueden proceder de una diversidad de fuentes; por ejemplo, de un sistema de programación de radiodifusión convencional que funciona en modalidad automática o manual, o de fuentes pregrabadas que codifican las señales en conjunción con los programas de radiodifusión (p. ej., en cinta de vídeo).
Como se ha indicado, las señales de control se suelen formatear específicamente para controlar las fuentes de radiodifusión (p. ej., los tipos particulares de vídeo, audio u otros dispositivos de salida). Además, las señales de control simplemente controlan la radiodifusión de estas fuentes y no presentan ninguna relación directa o intrínseca con la ejecución de la interactividad. En consecuencia, la presente invención convierte las señales de control en mandatos que son aceptables por el servidor de radiodifusión para controlar selectivamente la ejecución de la interactividad.
En la presente invención, puede utilizarse también información de estado del servidor de radiodifusión para determinar el estado actual de la ejecución de la interactividad en diversos de los receptores de radiodifusión. Esta información de estado permite generar diferentes mandatos en respuesta a las señales de control opacas procedentes del sistema de programación.
La presente invención permite el control sincrónico automatizado de la interactividad para una diversidad de tipos de sistemas de programación de radiodifusión diferentes. En general, los diversos tipos de sistemas de programación proporcionan diferentes cantidades y tipos de información en sus señales de control.
Ciertos sistemas de programación básicos proporcionan simplemente una señal de control que da la orden de iniciar, detener o preparar un programa de radiodifusión, y que a veces incluye un ID de programa de radiodifusión para el programa. Para este tipo de sistema de programación, la identificación del programa de radiodifusión (por ejemplo, un programa de televisión o un anuncio) se utiliza para determinar si existe una aplicación interactiva adjunta para el programa de radiodifusión. La información de temporización se utiliza para determinar si la aplicación interactiva debe iniciarse, detenerse, suspenderse o reanudarse. Se proporcionan mandatos y datos adecuados para que el servidor de radiodifusión controle selectivamente la emisión de la aplicación interactiva.
Otro tipo de sistema de programación proporciona señales de control que pueden utilizarse para identificar los programas comerciales que se están emitiendo durante un programa de televisión, aunque por otro lado no identifican los propios programas de televisión. La presente invención utiliza esta información para identificar la interactividad asociada al anuncio y proporcionar, de ese modo, los mandatos para que el servidor de radiodifusión lleve a cabo la emisión de la interactividad identificada, junto con los mandatos de suspensión y reanudación selectiva de la interactividad que puede acompañar al programa de televisión en el que se ha emitido el anuncio.
Otro tipo de sistema de programación proporciona señales de control que indican el programa junto con su duración. En este caso, la presente invención es capaz de suspender y reanudar selectivamente la interactividad adecuada para un programa de radiodifusión y los anuncios intermedios.
En una forma de realización, la presente invención proporciona un servidor de automatización que actúa de interfaz entre los sistemas de programación de radiodifusión convencionales y un servidor de aplicaciones interactivas (y otras formas de interactividad), para controlar selectivamente la ejecución de la interactividad que puede acompañar a los programas de radiodifusión, en respuesta a las señales de control generadas por el sistema de programación.
Según la presente invención, el servidor de automatización se interconecta además con el servidor de radiodifusión para proporcionar a éste mandatos de inicio, cancelación, suspensión o reanudación selectiva de la ejecución de una aplicación interactiva. Mediante las señales de control del sistema de programación, el servidor de automatización determina qué programas de radiodifusión se están emitiendo, y crea y mantiene información de estado acerca del estado de cada programa de radiodifusión. Mediante la información que indica los programas de radiodifusión y la interactividad asociada a éstos (si la hubiera), el servidor de automatización también mantiene información de estado acerca del estado de cada aplicación interactiva. Utilizando esta información de estado y las señales de control del sistema de programación, el servidor de automatización determina los mandatos adecuados que van a enviarse al servidor de radiodifusión para mantener la sincronía entre los programas de radiodifusión y las aplicaciones
interactivas.
Gracias a este comportamiento sincrónico, la interactividad aparece en los momentos en que se presenta el programa asociado y no aparece en otros momentos. Por ejemplo, la presente invención proporciona la presentación sincrónica adecuada de las aplicaciones interactivas de los programas de televisión que están segmentados por una o más pausas comerciales (cada una de las cuales puede constar de varios anuncios que, a su vez, pueden disponer de su propia interactividad). La presente invención detecta cuándo se produce una pausa comercial durante la emisión de un programa de televisión a partir de las señales de control del sistema de programación. A continuación, la presente invención puede suspender (detener) la ejecución de la interactividad del programa de televisión, sin cancelar la interactividad, hasta que se pueda determinar con seguridad que no existen más segmentos del mismo programa de televisión una vez que el anuncio ha finalizado. Durante la pausa comercial, se ejecuta la interactividad adecuada para los anuncios. Si el programa de televisión se reanuda, es decir, se emite otro segmento del programa de televisión, la presente invención detecta que el segmento anterior y el segmento actual están relacionados y reinicia la interactividad suspendida, restaurando cualquier información de estado (p. ej., los puntos conseguidos actualmente en un juego, los datos de formularios, etc.) que pueda haberse creado antes de la pausa comercial. Si el programa de televisión no se reanuda después de la pausa comercial y se emite un nuevo programa de televisión, también en este caso la presente invención detecta el cambio de programa de radiodifusión y finaliza la interactividad del anterior programa de televisión e inicia la interactividad del siguiente programa de televisión.
En una forma de realización de la presente invención, el servidor de automatización incluye una pluralidad de interfaces de canal, cada una de las cuales recibe y gestiona las señales de control de un canal específico. Cada interfaz de canal incluye un módulo conversor y un gestor de eventos. El módulo conversor convierte las señales de control nativas del sistema de programación, referentes a los programas de radiodifusión emitidos por el canal, en un grupo fijo de mandatos atómicos. El conversor también mantiene información de estado acerca del ciclo de vida de cada programa de radiodifusión. El gestor de eventos recibe los mandatos atómicos y los convierte en mandatos para que el servidor de radiodifusión controle la interactividad de los programas de radiodifusión. El gestor de eventos mantiene información de estado acerca del ciclo de vida de las aplicaciones interactivas del canal y, a partir de esta información de estado, genera los mandatos adecuados para el servidor de radiodifusión. Gracias a la utilización de un conversor y un gestor de eventos separados, la presente invención puede interactuar fácilmente con los diferentes sistemas de programación utilizando conversores diferentes, mientras conserva el mismo gestor de eventos. Además, la separación del módulo conversor y el gestor de eventos permite al servidor de automatización interactuar potencialmente con diferentes tipos de servidores de radiodifusión creando nuevos tipos de gestores de eventos, sin necesidad de realizar cambios en el módulo conversor. Esta característica permite al servidor de automatización cooperar con la interactividad definida en diversas normas que puede ser desarrollada en el futuro.
En el contexto de la presente invención, la interactividad puede ser proporcionada por cualquiera de las formas de aplicaciones interactivas, tales como las que se transmiten en la misma señal que los programas de radiodifusión y son ejecutadas por el receptor de radiodifusión u otro dispositivo de usuario final que recibe la señal de radiodifusión, o las aplicaciones interactivas ejecutadas en una cabecera de cable u otra fuente de radiodifusión, las aplicaciones interactivas que se ejecutan en un ordenador convencional y se emiten a través de Internet u otras redes en sincronía con los programas de radiodifusión, o las que se proporcionan asincrónicamente respecto del programa de radiodifusión y se ejecutan cuando es necesario.
En otra forma de realización, la presente invención detecta los registros actualizados de una aplicación interactiva en la señal de radiodifusión, y proporciona selectivamente estas actualizaciones al servidor de radiodifusión. Esto permite al servidor de radiodifusión transmitir estas actualizaciones a los receptores de radiodifusión que están recibiendo la aplicación, e integrar dichas actualizaciones en la aplicación. Una forma de realización de este sistema incluye un gestor de actualizaciones que presenta un lector de códigos y un detector de códigos. El detector de códigos detecta la presencia, la ausencia o los cambios de los códigos de identificación en la señal de radiodifusión, y avisa acerca de los mismos al módulo conversor (o gestor de eventos) del servidor de automatización. El lector de códigos extrae los registros actualizados de la señal de radiodifusión. El gestor de eventos indica al lector de códigos que debe iniciar o interrumpir la provisión de registros actualizados al servidor de radiodifusión. Esto permite al sistema local que presenta el servidor de radiodifusión extraer actualizaciones de la señal de radiodifusión e integrar dichas actualizaciones en la versión local de la aplicación, para combinar de ese modo las actualizaciones de la entidad de radiodifusión remota (p. ej., una entidad de radiodifusión de red) con aplicaciones relevantes localmente o aplicaciones adaptadas (p. ej., aplicaciones digitales de ancho de banda superior).
El servidor de automatización de la presente invención puede adoptar la forma de realización de un producto de software o de una parte de un sistema o un aparato de mayor tamaño que incluye hardware y software para usos especiales. Asimismo, la presente invención puede llevarse a la práctica como una diversidad de procedimientos para controlar la ejecución de la interactividad asociada con los programas de radiodifusión.
Breve descripción de los dibujos
La Figura 1 es una ilustración de un sistema según la presente invención.
La Figura 2 es una ilustración de un receptor de radiodifusión.
La Figura 3 es un diagrama de flujo del procedimiento global de recepción y ejecución de aplicaciones interactivas.
La Figura 4 es una ilustración del servidor de automatización de una forma de realización de la presente invención.
La Figura 5 es una ilustración de una interfaz de canal, que incluye un módulo conversor y un gestor de eventos.
La Figura 6 es un diagrama del ciclo de vida del gestor de interfaces.
La Figura 7 es un diagrama del ciclo de vida de una interfaz de canal, que incluye un módulo conversor y un gestor de eventos.
La Figura 8 es un diagrama de máquina de estados para un conversor ideal.
La Figura 9 es un diagrama de flujo de la lógica de correlación del módulo conversor.
La Figura 10 es un diagrama de flujo de la lógica de correlación del gestor de eventos.
La Figura 11 es un diagrama de máquina de estados del gestor de eventos.
La Figura 12 es un diagrama de traza de eventos en el que se representa la segmentación de la interactividad de un programa de radiodifusión con respecto a los anuncios.
La Figura 13 es una ilustración de un sistema que proporciona actualizaciones para las aplicaciones interactivas dinámicas.
Descripción detallada de las formas de realización preferidas
Con referencia a la Figura 1, se representa una ilustración de un sistema según la presente invención. Debe tenerse en cuenta que el sistema ilustrado en la Figura 1 puede incorporarse en sistemas más complejos y de mayor tamaño, que seguirán proporcionando las características y ventajas de la presente invención.
A. Visión general del sistema
En general, el sistema 100 comprende un sistema de programación 106, un servidor de automatización 108, un servidor de radiodifusión 110, un sistema de tráfico 104, unas fuentes de programas de radiodifusión 102, una unidad de inserción de datos 116 y un transmisor 118. Estos elementos se utilizan habitualmente en una forma de realización utilizada por un operador de cable en una cabecera de cable. La implementación de la presente invención en otras instalaciones es, por supuesto, factible. Los receptores de radiodifusión (BR) 120 están distribuidos remotamente en los domicilios, las oficinas y otros edificios similares de los telespectadores. La persona o las personas que reciben los programas se denominan "abonados" o "telespectadores".
El sistema 100 coopera con varias entidades de radiodifusión 114. Una entidad de radiodifusión 114 proporciona el material de programación que se va a transmitir a los BR 120. El término "entidad de radiodifusión" 114 hace referencia, en la presente memoria, a una entidad que proporciona un programa que se va a transmitir en una señal de radiodifusión. Un "programa" es un segmento discreto de una emisión. Por lo tanto, en la presente memoria, los programas incluyen programas de televisión, anuncios publicitarios, anuncios de servicios públicos, eventos de pago por visión y similares. Las entidades de radiodifusión incluyen redes de televisión, así como anunciantes que preparan anuncios, proveedores de pago por visión, redes de cable y similares.
Una entidad de radiodifusión 114 proporciona datos de vídeo de radiodifusión (que incluyen, según las necesidades, datos de audio y otros tipos de datos) a diversas fuentes de programas de radiodifusión 102, tales como una serie de reproductores de cintas de vídeo, reproductores de discos láser, subtituladores, servidores de vídeo, generadores de caracteres, máquinas de edición de audio, memorias de imágenes fijas, sistemas de efectos digitales, transmisiones directas desde los estudios, transmisiones directas remotas sobre el terreno (p. ej. desde las cámaras que registran un evento deportivo en directo) y similares que contienen o generan material de programación. Los datos de vídeo de radiodifusión se almacenan en las fuentes de programas de radiodifusión 102 hasta que se necesitan para la emisión. Entre las fuentes de programas de radiodifusión adecuadas, se incluyen la biblioteca TCS45 Automated Video Library de Odetics, Inc., Anaheim, California y el servidor MediaStream de Hewlett-Packard, Palo Alto, California y dispositivos o sistemas similares.
El sistema de tráfico 104 recibe un horario de programación desde la entidad de radiodifusión 114. El horario de programación indica qué programas proporcionados por la entidad de radiodifusión 114 se van a emitir, por qué canales se van a emitir y a qué horas se van a emitir. Dependiendo de la entidad de radiodifusión 114, pueden incluirse programas comerciales dentro del horario de programación, o pueden proporcionarse intervalos de tiempo para la inserción de los anuncios proporcionados por otras entidades de radiodifusión 114 dentro del horario de programación. El sistema de tráfico 104 integra los horarios de programación de las numerosas entidades de radiodifusión diferentes con la información de programación de radiodifusión generada localmente (p. ej., por el operador de cable) para generar una lista de reproducción 113. Un sistema de tráfico 104 adecuado es el Columbine JDS de Columbine JDS Systems, Inc.
En una forma de realización, esta lista de reproducción 113 se prepara con antelación a las emisiones e indica los programas que serán emitidos en momentos particulares. Preferentemente, la lista de reproducción 113 contiene suficiente información para identificar los programas, y los tiempos de inicio y fin y las asignaciones de canal y red de éstos. Además, para cada programa y tiempo particular, puede disponerse de información que indica la fuente de programas de radiodifusión particular 102 que va a proporcionar el programa.
El sistema de programación 106 puede incluir componentes de control manual o automatizado (o de ambos tipos) y aparatos de conmutación adecuados. El sistema de programación 106 recibe además la lista de reproducción 113 que indica los programas que se van a emitir, los tiempos de emisión y las fuentes de programas de radiodifusión 102 utilizadas. Por medio de sus componentes manuales o automatizados, el sistema de programación 106 acopla las fuentes de programas de radiodifusión a los respectivos medios de radiodifusión para controlar las fuentes de programas y los medios de radiodifusión utilizados en un momento dado. Más particularmente, el sistema de programación 106 genera señales de control nativas que se formatean, y habitualmente sólo son significativas, para las diversas fuentes de programas de radiodifusión 102. Los tipos y la complejidad de los componentes automatizados y manuales varían, así como lo hacen los tipos de señales de control que éstos proporcionan. El componente manual del sistema de programación 106 es utilizado por el operador para seleccionar y activar manualmente las fuentes de programas de radiodifusión 102 según las necesidades, y generar las correspondientes señales de control que son igualmente recibidas por el servidor de automatización 108.
Otra fuente de señales de control para el servidor de automatización 108 incluye señales de control pregrabadas que se incluyen con los datos de radiodifusión en las fuentes de radiodifusión 102. Por lo tanto, las señales de control adecuadas para un programa de radiodifusión particular pueden generarse previamente y almacenarse en una cinta de vídeo del programa de radiodifusión en momentos adecuados. Esta forma de almacenamiento de las señales de control puede realizarse en cualquiera de los medios en los que se almacenan los programas de radiodifusión. Como alternativa, las señales de control pueden grabarse previamente y almacenarse en los medios por separado de los programas de radiodifusión, y reproducirse en conjunción con éstos. Otra posibilidad es incorporar en tiempo real las señales de control en los datos de radiodifusión, utilizando, por ejemplo, un generador de códigos de tiempo VITC o una unidad de inserción de datos NORPAK.
Además, para obtener las señales de control, puede aplicarse la tecnología de activar o extraer las mismas del sistema de programación 106.
\newpage
Preferentemente el servidor de radiodifusión 110 es un sistema informático que ejecuta uno o más programas de software que proporcionan las funciones descritas en la presente memoria. Un servidor de radiodifusión adecuado es el Wink Broadcast Server, de Wink Communications, Inc., Alameda, California. El servidor de radiodifusión 110 contiene una base de datos de aplicaciones interactivas 112. En la base de datos de aplicaciones interactivas 112, se almacenan las aplicaciones interactivas u otras formas de interactividad que se van a emitir a diversos BR 120 distribuidos remotamente. Las aplicaciones interactivas y otras formas de contenidos interactivos pueden ser añadidas a la base de datos de aplicaciones interactivas 112 por una entidad de radiodifusión 114 u otro proveedor de programas, y pueden ser transmitidas a la base de datos 112 mediante un enlace de red seguro u otros medios de transmisión. Los campos de la base de datos 112 asocian las aplicaciones interactivas, por ejemplo, con una entidad de radiodifusión, una red, un canal, un programa o un tiempo de radiodifusión particular. Además, cada aplicación interactiva de la base de datos 112 presenta preferentemente un código de identificación de aplicación interactiva exclusivo, mediante el cual puede ser identificada. La asociación del código de identificación de la aplicación interactiva con el código de identificación del programa (tal como el utilizado por las fuentes de radiodifusión) permite al servidor de radiodifusión 112 recuperar de forma selectiva una aplicación interactiva tras la recepción de un código de identificación de programa. Para facilitar la descripción, el término "aplicación interactiva" abarca todas las formas de interactividad para los programas de radiodifusión, descritas en la presente memoria o equivalentes a las descritas.
En una forma de realización de la presente invención, las aplicaciones interactivas almacenadas en la base de datos 112 se describen mediante un protocolo de comunicaciones compacto. El protocolo compacto es operativo para emitir con eficacia un conjunto compacto de información y mandatos entre los componentes del sistema, permitiendo de ese modo la utilización de transportes de ancho de banda reducido, tales como el intervalo de borrado vertical ("VBI"). Aunque en una forma de realización preferida de la presente invención se utiliza el protocolo compacto descrito en la presente memoria, es posible definir aplicaciones interactivas según otros protocolos, incluidos, por ejemplo, el lenguaje de marcado de hipertexto ("HTML"), el lenguaje de marcado extensible ("XML"), el lenguaje JAVA de SUN MICROSYSTEMS INC. o el protocolo de televisión interactiva basado en HTML ATVEF. En la patente US n.º 5.689.799, titulada "Method and Apparatus for Routing Confidential Information", se proporciona una descripción detallada de uno de los protocolos compactos adecuados para las aplicaciones interactivas, que incluye las definiciones, los guiones y los mandatos aceptados. Las propias aplicaciones interactivas son productos de software que comprenden códigos y datos ejecutables, que configuran y controlan el funcionamiento del receptor de radiodifusión 120, de la forma indicada más adelante.
Puede existir una pluralidad de servidores de radiodifusión 110, cada uno de los cuales presta servicio a un área geográfica, un grupo de entidades de radiodifusión o un grupo de abonados particular. En una forma de realización, cada servidor de radiodifusión 110 es identificado mediante un código de identificación de servidor exclusivo.
Por lo general, el servidor de radiodifusión 110 determina qué aplicaciones interactivas deberán emitirse en un canal particular y a una hora particular, recupera de la base de datos 112 las aplicaciones interactivas correspondientes al canal y la hora o el código de identificación del programa particular y prepara las aplicaciones interactivas para su emisión.
Para determinar qué aplicaciones interactivas se emiten en las diversas horas, canales, etc., el servidor de radiodifusión 110 recibe la lista de reproducción 113 de los programas que se van a emitir desde el sistema de tráfico 104. El servidor de radiodifusión 110 utiliza esta información para identificar y recuperar de la base de datos 112 la correspondiente aplicación interactiva (si la hubiera) que va a acompañar a cada programa de radiodifusión. El servidor de radiodifusión 110 proporciona además unos mandatos, que se transmiten a los BR 120, que dan la orden a éstos de iniciar, detener, cancelar, suspender o reanudar las aplicaciones interactivas que pueden recibirse o pueden haberse recibido y almacenado en la memoria de los BR 120.
El servidor de radiodifusión 110 formatea la aplicación interactiva recuperada, si es necesario, y la prepara para su inserción en una señal de radiodifusión. Mediante la lista de reproducción 113 recibida desde la entidad de radiodifusión 114, el servidor de radiodifusión 110 pasa la aplicación interactiva 115 y los diversos mandatos a la unidad de inserción de datos ("DIU") 116 para incorporar la aplicación interactiva 115 en los datos de radiodifusión 117 en el momento de la emisión del programa.
La DIU 116 recibe la aplicación interactiva 115 o los mandatos del servidor de radiodifusión 110 y la señal de radiodifusión, o la transmisión, que contiene el programa correspondiente a la aplicación interactiva 115. La transmisión de radiodifusión puede recibirse desde las fuentes de programas de radiodifusión, directamente desde la entidad de radiodifusión 114 o, en caso de que la entidad de radiodifusión no proporcione la transmisión, desde una tercera parte, tal como una red, un operador de cable o una estación de televisión local. La DIU 116 cambia el formato de la aplicación interactiva 115 y los mandatos por un formato adecuado para su inserción en la transmisión de la entidad de radiodifusión y su transmisión conjunta como datos de radiodifusión 117. La DIU 116 puede recibir transmisiones desde varias entidades de radiodifusión y puede insertar una aplicación interactiva separada en cada transmisión. Asimismo, la DIU 116 puede insertar simultáneamente una aplicación interactiva separada en varios canales de las mismas o diferentes entidades de radiodifusión 114.
La DIU 116 inserta los datos de radiodifusión 117 que contienen las aplicaciones interactivas, los mandatos y los programas de radiodifusión en los medios de radiodifusión. Los medios de radiodifusión consisten en el espectro de frecuencias utilizado para transmitir la aplicación interactiva 115. En una forma de realización, los medios de radiodifusión consisten en una señal de televisión analógica estándar que cumple las normas NTSC (National Televisión Standards Committee), y el VBI es utilizado como transporte para emitir la aplicación interactiva. El transporte es la parte específica de los medios de radiodifusión que transmite la aplicación interactiva 115. En otra forma de realización, los medios de radiodifusión consisten en un múltiplex de vídeo digital MPEG2 estándar, que contiene uno o más servicios de vídeo MPEG2, utilizándose una o varias secuencias elementales MPEG2 contenidas en el múltiplex como medio de transporte. La DIU 116 puede trabajar con fuentes de vídeo analógico o digital y, alternativamente, puede trabajar como una interfaz para una red de área amplia que conecta la entidad de radiodifusión 114 o las fuentes de radiodifusión 102 directamente con diversos transmisores 118.
En una forma de realización, la DIU 116 utiliza procedimientos convencionales para insertar datos que definen una aplicación interactiva en el VBI de la transmisión de radiodifusión. La norma "North American Broadcast Teletext Standard" (EIA-506) define los procedimientos y protocolos para enviar datos en una o más líneas del VBI. No obstante, se dispone de una gran diversidad de mecanismos de transporte diferentes, incluidos los que emiten la aplicación interactiva 115 por separado del programa de televisión. Dichos mecanismos de transporte incluyen los transmisores fuera de banda, que transmiten la aplicación interactiva 115 en una parte no utilizada del espectro de frecuencias de televisión, y los transmisores de radio de modulación de frecuencia ("FM") convencionales, que transmiten la aplicación interactiva 115 fuera del espectro de frecuencias de televisión. En otra forma de realización, la DIU utiliza procedimientos convencionales para insertar datos en una secuencia elemental de un múltiplex
MPEG2.
En una forma de realización, se insertan códigos de comprobación de errores o de corrección de errores, tales como los códigos Hamming, en los datos. En una forma de realización, la DIU 116 convierte los datos en un código Hamming y, en otra forma de realización, los datos recibidos desde el servidor de radiodifusión 110 por la DIU 116 ya están codificados.
La DIU 116 se acopla a un transmisor 118 para proporcionar la transmisión de radiodifusión, incluidas todas las aplicaciones interactivas o los mandatos insertados del servidor de radiodifusión 110. En una forma de realización, el transmisor 118 es un enlace ascendente de satélite que proporciona la transmisión a los receptores de enlace ascendente locales que, entonces, distribuyen la transmisión a los BR 120 por medio del cable. En otra forma de realización, el transmisor 118 es un amplificador de cabecera de sistema de cable convencional. En otras formas de realización, el transmisor 118 es un transmisor de radiodifusión de televisión convencional o un transmisor digital de televisión de alta definición. En otras formas de realización, el transmisor 118 puede transmitir los datos de radiodifusión a través de una conexión WAN, Internet u otras redes públicas/privadas.
En otra forma de realización, la DIU 116 inserta la aplicación interactiva 115 en el programa antes de que éste sea emitido. Por ejemplo, la DIU 116 puede insertar una aplicación interactiva en la copia fuente de un anuncio de televisión. En consecuencia, la aplicación interactiva se emite cada vez que se emite el anuncio. En esta forma de realización, el servidor de radiodifusión 110 no necesita sincronizar la recuperación de la aplicación interactiva con la programación contenida en la lista de reproducción. No obstante, el servidor de automatización 108 seguirá siendo utilizado para controlar la sincronización del funcionamiento de dicha aplicación interactiva de radiodifusión durante la emisión del anuncio y de cualquier aplicación interactiva que se emita durante el programa de televisión en el que se emite el anuncio.
Independientemente del procedimiento de transmisión y del tiempo de inserción, los datos de radiodifusión 117, incluida la aplicación interactiva, son recibidos por el BR de un abonado 120. Aunque en la Figura 1 sólo se ilustra un BR 120, debe tenerse en cuenta que en una forma de realización habitual existen cientos o miles de BR 120 que reciben los datos de radiodifusión 117 y responden de la forma indicada en la presente memoria. En una forma de realización común, el BR 120 es una caja de conexión de televisión que recibe los datos 117 por medio de un cable coaxial. Además, el BR 120 puede estar integrado en el televisor. Por otra parte, pueden utilizarse también otros receptores de radiodifusión, incluido un receptor de radiodifusión NTSC, un receptor digital de televisión de alta definición, un reproductor de cintas de vídeo o un receptor de radio FM.
La arquitectura anterior admite una serie de formas de realización útiles, en las que el servidor de automatización 108 controla la transmisión por el servidor de radiodifusión 110 de los diversos tipos y formatos de datos para conseguir un funcionamiento sincrónico con los programas de radiodifusión. En primer lugar, deberá tenerse en cuenta que el servidor de radiodifusión 110 también puede servir otros tipos de datos, aparte de o además de las aplicaciones interactivas. Por ejemplo, el servidor de radiodifusión puede servir datos tales como programas informáticos o datos de audio/vídeo. El servidor de radiodifusión también puede servir datos, formularios, códigos o disparos para las aplicaciones interactivas transmitidas previamente a los receptores de radiodifusión.
Según la presente invención, estos diversos tipos de datos pueden transmitirse en respuesta a los mandatos del servidor de automatización 108. Por ejemplo, el servidor de radiodifusión puede enviar una aplicación interactiva a un receptor de radiodifusión mucho antes de la hora a la que la aplicación interactiva y su programa de radiodifusión asociado van a aparecer. Entonces, en respuesta a los mandatos del servidor de automatización 108, el servidor de radiodifusión 110 puede enviar códigos de disparo que desencadenan la ejecución de la aplicación interactiva cargada previamente, de tal forma que se ejecuta en sincronía con el programa de radiodifusión. Asimismo, en respuesta al servidor de automatización 108, el servidor de radiodifusión 110 puede transmitir formularios u otros datos para actualizar o modificar las características, la interfaz de usuario o las funciones de una aplicación interactiva que ya reside en el receptor de radiodifusión. Esto permite al servidor de automatización 108 manipular o cambiar la aplicación interactiva en respuesta a las señales de control del sistema de programación 106.
El servidor de radiodifusión 110 también puede servir datos hipermedia, tales como texto, gráficos, imágenes, localizadores uniformes de recursos (URL), identificadores uniformes de recursos (URI), HTML, XML, ATVEF, applets de JAVA u otros tipos o formatos de datos, asimismo en respuesta a los mandatos del servidor de automatización 108. Por ejemplo, en respuesta a la provisión por el sistema de programación 106 de señales de control que indican el inicio de un programa de televisión, el servidor de automatización 108 puede ordenar al servidor de radiodifusión 110 que transmita un URL de un sitio o página web al receptor de radiodifusión, que a su vez carga el sitio web para presentarlo al usuario en sincronía con el programa de televisión.
Para cualquiera de estos tipos de datos u otros que pueden ser servidos por el servidor de radiodifusión 110 en respuesta a los mandatos del servidor de automatización 108, la base de datos de aplicaciones interactivas o su equivalente almacena los datos en asociación con los identificadores de los programas de radiodifusión. Esto permite al servidor de automatización 108 determinar los datos adecuados para servir según el identificador de programa de las señales de control del sistema de programación 106.
B. Receptor de radiodifusión
La Figura 2 ilustra una forma de realización del BR 120 según una forma de realización de la presente invención. En una forma de realización, el BR 120 es el decodificador de CATV General Instrument CFT-2200. El BR 120 incluye un sintonizador 202 para recibir los datos de radiodifusión 117 desde el transmisor 118. En una forma de realización, el sintonizador 202 es un sintonizador de televisión por cable convencional. En otra forma de realización, el sintonizador es un sintonizador de radiodifusión de televisión, un sintonizador de radio FM, un sintonizador digital o alguna otra forma de sintonizador. En otra forma de realización, se puede utilizar un ordenador personal con hardware y software adecuados para presentar los programas de radiodifusión recibidos a través de diversos tipos de canales de transmisión, incluidos los de cable, de Internet y de satélite. En la forma de realización ilustrada en la Figura 2, se ilustra una pantalla 218, habitualmente un televisor, dentro del BR 120. Como se ha indicado anteriormente, la pantalla 218 también puede hallarse fuera del BR 120.
El BR 120 comprende asimismo un extractor de datos 206 acoplado al sintonizador 202, para extraer la aplicación interactiva de los datos de radiodifusión 117. En una forma de realización, el extractor de datos 206 es un circuito de extracción de datos VBI dentro de banda convencional. En otra forma de realización, el extractor de datos 206 es un módem convencional. El extractor de datos 206 proporciona, al bus 208, un tren de bits en serie que contiene la aplicación interactiva extraída. El bus 208 está acoplado a un microprocesador 210 que almacena la aplicación interactiva extraída en un primer dispositivo de memoria 212, por medio del bus 208, según las instrucciones de un programa almacenado en un segundo dispositivo de memoria 214. En una forma de realización, el microprocesador 210 utiliza la información del código de error de los datos extraídos para comprobar o corregir los errores de la aplicación interactiva decodificada. En una forma de realización, el primer dispositivo de memoria 212 es una memoria de acceso aleatorio ("RAM") convencional, mientras que el segundo dispositivo de memoria 214 es una memoria de sólo lectura ("ROM") convencional. Un tercer dispositivo de memoria 213, que puede ser una RAM o una memoria flash, se acopla al microprocesador 210 para almacenar el resto de datos. Una ventaja de la memoria flash es que el software o los datos residentes en el BR 120 pueden ser modificados por una aplicación interactiva recibida.
En una forma de realización, el BR 120 también utiliza el extractor de datos 206 para extraer una señal de tiempo de los datos de radiodifusión 117. La señal de tiempo indica la hora actual utilizando una base de tiempo estándar, tal como el tiempo universal coordinado ("UTC") o la hora local del abonado. En otra forma de realización, el BR 120 presenta un reloj de tiempo real que es establecido por el abonado o la señal de tiempo recibida. En cualquier caso, el BR 120 preferentemente tiene acceso a la hora actual y, en consecuencia, puede realizar funciones de indicación de fecha y de temporización.
Como se describe más adelante, el microprocesador 210 utiliza el programa almacenado en el segundo dispositivo de memoria 214 y la aplicación interactiva almacenada en el primer dispositivo de memoria 212, para ejecutar la aplicación interactiva y proporcionar una salida. El programa almacenado en el segundo dispositivo de memoria 214 es preferentemente un motor de ejecución 217 para ejecutar una aplicación interactiva definida mediante varios guiones, formularios, definiciones y recursos de códigos y gráficos. Uno de los motores de ejecución preferidos es el Wink Engine suministrado por Wink Communications, Inc., Alameda, California. El receptor de radiodifusión 120 incluye, ya sea formando parte del motor de ejecución 217 o bien del sistema operativo nativo 219 almacenado también en el segundo dispositivo de memoria 214, funciones de temporización que pueden ser ejecutadas como procedimientos de fondo, para realizar la cuenta atrás desde el valor introducido o una especificación temporal equivalente.
El resultado de ejecutar una aplicación interactiva puede ser, por ejemplo, un formulario que presenta información o un menú al telespectador, o que recibe entradas del telespectador, o puede ser una respuesta, silenciosa o no, que contiene datos de utilización del BR 120 o del televisor o datos que indican las preferencias del telespectador. Para los objetivos de la presente invención, los formularios pueden presentar cualquiera de los diversos tipos de información y obtener cualquiera de los diversos tipos de respuestas del usuario. Con este fin, el BR 120 preferentemente incluye un generador de superposiciones gráficas 216 acoplado al bus 208 y controlado por la aplicación interactiva 115 almacenada en el primer dispositivo de memoria 212 y el programa almacenado en el segundo dispositivo de memoria 214. El generador de superposiciones gráficas 216 genera una pantalla gráfica sensible a la aplicación interactiva 115. Esta pantalla gráfica se presenta en una pantalla 218, habitualmente un televisor, acoplado al BR 120. Como es obvio, el generador de superposiciones gráficas 216 no se suele utilizar cuando la aplicación interactiva se ejecuta en silencio.
En una forma de realización, el generador de superposiciones gráficas 216 también recibe, desde el sintonizador 202, la señal de radiodifusión correspondiente a un programa de radiodifusión, para permitir la presentación simultánea del programa de radiodifusión y los aspectos gráficos, si los hubiera, de la aplicación interactiva 115 (por ejemplo, para introducir datos en el formulario presentado). En una forma de realización, el microprocesador 210 también está acoplado a un decodificador de entradas de usuario 222 acoplado a un receptor de entradas de usuario 224, para permitir que el usuario se comunique con el microprocesador 210 y responda a la aplicación interactiva 115. En una forma de realización, el decodificador de entradas de usuario 222 es un decodificador de control remoto de infrarrojos convencional. El receptor de entradas de usuario 224 es preferentemente un receptor de infrarrojos convencional 224, con el cual el usuario puede utilizar un dispositivo de mando a distancia portátil. Las teclas del mando a distancia pulsadas por el usuario se convierten en señales infrarrojas codificadas que son recibidas por el receptor de entradas de usuario 224, decodificadas por el decodificador de entradas de usuario 222 y enviadas al microprocesador 210 para permitir que el usuario se comunique con la aplicación interactiva 115.
En una forma de realización, el BR 120 es un decodificador de TV por cable conectado a un sistema de clave por medio de un cable coaxial de banda ancha. En esta forma de realización, el controlador de línea 230 es un módem RF que es capaz de enviar respuestas a la cabecera del sistema de cable por medio del cable coaxial, utilizando habitualmente una parte de fuera de banda del espectro RF, y la puerta de comunicaciones 232 es una toma RF estándar. En otra forma de realización, el BR 120 es un televisor, un VCR o una caja de conexión en la que el controlador de línea 230 es un módem telefónico estándar y la puerta de comunicaciones 232 es un conector RJ-11 estándar.
El microprocesador 210 puede estar acoplado también a un codificador de mandatos infrarrojos convencional 226, que acepta una entrada de mandato infrarrojo y codifica una señal para un emisor infrarrojo convencional 228, permitiendo de ese modo que la aplicación interactiva 115 controle los dispositivos externos.
C. Ejecución de la aplicación interactiva
La Figura 3 es un diagrama de flujo que ilustra las etapas para recibir y ejecutar una aplicación interactiva mediante el protocolo de información compacto según una forma de realización preferida de la presente invención. El BR 120 recibe y decodifica 310 un registro de encabezamiento de la aplicación preparado por el servidor de radiodifusión 110, insertado por la DIU 116 y transmitido por el transmisor 118. El registro de encabezamiento de la aplicación describe la información que sigue y contiene el código de identificación de la aplicación interactiva.
El resto de funciones de la aplicación interactiva es descrito por las definiciones, los guiones y los mandatos que pueden codificarse y transmitirse en cualquier orden. Las definiciones, los guiones y los mandatos son recibidos y decodificados 312 por el BR 120, y definen el resto de funciones y los parámetros de respuesta utilizados cuando se ejecuta 314 el resto de la aplicación interactiva.
Parte o todo el resto de la aplicación interactiva recibida puede almacenarse 312 dentro del BR 120. En una forma de realización, la aplicación interactiva se emite repetidamente, permitiendo al BR 120 sintonizarse con un programa en cualquier momento, y al mismo tiempo recibir la aplicación interactiva completa. Cualquier actualización deseada de la aplicación interactiva almacenada puede ser recibida y decodificada 316. Si se dispone de definiciones, guiones o mandatos adicionales o actualizados, éstos pueden ser enviados hasta que se termine la aplicación 318. En una forma de realización, puede emitirse un mandato de terminación para detener 320 la aplicación interactiva.
Puede enviarse una nueva aplicación interactiva en cualquier momento, incluso mientras una aplicación original está ejecutando o transmitiendo una respuesta. Por ejemplo, una nueva aplicación interactiva correspondiente a un anuncio puede interrumpir una aplicación original correspondiente a un programa de noticias, permitiendo, entonces, la presente invención que esta última aplicación reanude su actividad tras la terminación de la primera.
En otras formas de realización que utilizan diferentes formas de interactividad, tales como las URL, el receptor de radiodifusión 120 proporciona las funciones adecuadas de decodificación, análisis y ejecución según el tipo de interactividad. Por lo tanto, para los datos de tipo URL, el receptor de radiodifusión 120 puede incluir un navegador y los mecanismos adecuados para la recuperación, la carga y la presentación de páginas web, applets de JAVA y similares.
D. Servidor de automatización 1. Vista global del comportamiento del servidor de automatización
El servidor de automatización 108 se interconecta con el sistema de programación 106 para recibir las señales de control que éste proporciona a las fuentes de programas de radiodifusión 102. Además, el servidor de automatización 108 está acoplado para comunicarse con el servidor de radiodifusión 110 y recibir información de estado acerca de las aplicaciones interactivas que están preparadas para ser emitidas o que están siendo emitidas actualmente y los canales por los cuales son emitidas. El servidor de automatización 108 utiliza la información de estado (incluida la lista de reproducción) y las señales de control para generar mandatos específicos para el servidor de radiodifusión 110. Estos mandatos dan la orden al servidor de radiodifusión 110 de controlar de forma selectiva la preparación de una aplicación interactiva que se va a emitir, o la ejecución de una aplicación interactiva que se está emitiendo actualmente.
En particular, el servidor de automatización 108 genera, en respuesta a las señales de control, mandatos para que el servidor de radiodifusión 110 programe, inicie, detenga o cancele la ejecución de una aplicación interactiva. El servidor de automatización 108 genera secuencias de estos mandatos para que la interactividad adecuada de los anuncios y los programas de televisión se ejecute de forma sincrónica (incluida la presentación y la terminación) con otros programas de radiodifusión.
Las señales de control del sistema de programación 106 están explícitamente o implícitamente asociadas a canales particulares. A partir de las características de la señal de control, su asignación de canal y la información de la lista de reproducción, el servidor de automatización 108 determina el estado y el tipo del programa de radiodifusión que se está emitiendo actualmente o el siguiente programa de radiodifusión que se va a emitir, según el caso. En particular, el servidor de automatización 108 determina si la señal de control indica que el programa emitido actualmente es un programa de televisión o un anuncio.
En respuesta a la recepción de una señal de control que indica que se ha iniciado la emisión de un anuncio en un canal particular (es decir, una señal de control para que una de las fuentes de radiodifusión reproduzca datos de radiodifusión para un anuncio), el servidor de automatización 108 determina si actualmente se está ejecutando una aplicación interactiva en ese canal y, de ser así, genera un mandato para que el servidor de radiodifusión 110 suspenda (detenga) la ejecución de la aplicación interactiva. El servidor de radiodifusión 110 transmite este mandato al receptor o los receptores de radiodifusión 120. Estos receptores de radiodifusión, sintonizados con el canal adecuado, suspenden la ejecución de la aplicación interactiva. Sin embargo, el servidor de automatización 108 no cancela la aplicación interactiva, puesto que el receptor de radiodifusión 120 necesitará ejecutar la aplicación interactiva otra vez cuando el anuncio o los anuncios hayan terminado. Por lo tanto, la aplicación interactiva deberá estar disponible para ejecutarse nuevamente
de inmediato y deberá conservar la información de estado que tenía cuando se inició el anuncio o los anuncios.
El servidor de automatización 108 puede determinar también si el anuncio presenta una aplicación interactiva asociada. En caso afirmativo, el servidor de automatización 108 ordena al servidor de radiodifusión que transmita la aplicación interactiva y que la ejecute. Si no existe ninguna aplicación interactiva asociada en particular con el anuncio, el servidor de automatización 108 puede solicitar al servidor de radiodifusión que inicie la ejecución de una aplicación interactiva por omisión.
En algún momento, el servidor de automatización 108 recibirá una señal de control que indica que el anuncio ha finalizado. En respuesta a esta señal de control, el servidor de automatización 108 genera un mandato para que el servidor de radiodifusión 110 reanude la ejecución de la aplicación interactiva, que a su vez transmite el mandato a los receptores de radiodifusión 120. Los receptores de radiodifusión que están sintonizados con el canal adecuado reciben este mandato y reanudan la ejecución de la aplicación interactiva para el programa de televisión.
En este caso, el efecto percibido por el telespectador es que la aplicación interactiva que acompaña al programa de televisión original desaparece de la pantalla del televisor durante los anuncios. Las aplicaciones interactivas específicas de los anuncios, o las aplicaciones por omisión, se ejecutan y presentan durante los anuncios. Cuando los anuncios finalizan y el programa de televisión se reanuda, la aplicación interactiva para el programa de televisión reaparece. La aplicación interactiva que reaparece dispone de la información de estado (p. ej., la puntuación actual) que tenía antes del anuncio, con lo cual el telespectador puede seguir utilizando la aplicación interactiva.
Es habitual que un programa de radiodifusión, tal como un programa de televisión, presente un formato de varios segmentos separados por intervalos publicitarios. La interactividad que está asociada al programa de televisión deberá estar sistemáticamente disponible con su información de estado durante cada uno de los segmentos. El servidor de automatización 108 alcanza este objetivo correlacionando la información extraída de las señales de control e identificando cada segmento que se emite, para determinar si los diversos segmentos son realmente partes de un único programa de televisión en lugar de otro programa de radiodifusión y, por esta razón, están asociados a la misma aplicación interactiva. Una vez que se han correlacionado los segmentos que, de lo contrario, no estarían relacionados, el servidor de automatización 108 es capaz de suspender y reanudar adecuadamente una sola aplicación interactiva para el programa de televisión durante diversos intervalos publicitarios. Este procedimiento se describe en mayor detalle con respecto a la Figura 12, proporcionada más adelante.
El servidor de automatización 108 puede adoptar la forma de realización de un producto de software que se ejecuta en una estación de trabajo o un ordenador personal convencional (por ejemplo, uno que utiliza el conjunto de chips Intel y el sistema operativo de Microsoft Corp) o puede estar codificado en un ASIC especial u otra forma de realización de hardware.
2. Vista global funcional del servidor de automatización
Con referencia a la Figura 4, se representa una ilustración de la arquitectura funcional del servidor de automatización 108 según una forma de realización de la presente invención. En esta forma de realización, el servidor de automatización 108 incluye un gestor de interfaces 400. El gestor de interfaces 400 gestiona una pluralidad de interfaces de canal 402, cada una de las cuales está asociada con uno o más canales. Cada interfaz de canal 402 recibe señales de control para su canal o canales asignados desde el sistema de programación 106, y envía mandatos al servidor de radiodifusión 110.
Con referencia a la Figura 5, se representa la estructura funcional de una interfaz de canal 402. Cada módulo de interfaz de canal 402 incluye un módulo conversor 502 y un gestor de eventos 504. El módulo conversor 502 recibe las señales de control desde el sistema de programación 106 y convierte las señales en mandatos atómicos. El gestor de eventos 504 recibe los mandatos atómicos y los procesa para convertirlos en mandatos que el servidor de radiodifusión 110 puede comprender.
3. Gestor de interfaces
Con referencia a la Figura 6, se representa un diagrama de interacción del ciclo de vida del gestor de interfaces 400. El gestor de interfaces 400 crea y mantiene todas las interfaces de canal 402 para diferentes sistemas de programación 106. El gestor de interfaces 400 presenta tres etapas principales: una etapa de inicialización, una etapa de ejecución y una etapa de cierre. Cuando el servidor de automatización 108 se pone en funcionamiento, crea 602 un gestor de interfaces 400 y lo inicializa. Durante esta etapa de inicialización, el gestor de interfaces 400 lee 604 un archivo de inicialización (init) y crea 606 e inicializa 608 diferentes interfaces de canales 402 necesarias para trabajar con el sistema de programación 106.
Una vez que el gestor de interfaces 400 ha creado e inicializado todos los objetos necesarios, realiza la transición hacia la etapa de ejecución. Durante esta etapa, el gestor de interfaces 400 solicita 610 a cada interfaz de canal 402 que lleve a cabo su ejecución.
Normalmente, el servidor de automatización 108 y su gestor de interfaces 400 permanecen en la etapa de ejecución durante largos períodos de tiempo. Pero cuando se produce un error irremediable o cuando el servidor de automatización 108 necesita ser actualizado, el servidor de automatización 108 se cierra. Durante esta etapa de cierre, el gestor de interfaces 612 solicita a cada interfaz de canal 402 que se cierre.
Con referencia a la Figura 7, se representa el diagrama de interacción de ciclo de vida de cada interfaz de canal 402. Como se representa en la Figura 4, cada interfaz de canal 402 contiene un módulo conversor 502 y un gestor de eventos 504. Una interfaz de canal 402 también presenta tres etapas principales: la etapa de inicialización, la etapa de ejecución y la etapa de cierre.
Durante la etapa de inicialización, se crean 702 e inicializan 704 el módulo conversor 502 y el gestor de eventos 504. Los parámetros de inicialización del gestor de eventos 504 incluyen información que indica lo siguiente:
\bullet
cómo configurar los eventos del servidor de radiodifusión para cada tipo de evento,
\bullet
dónde encontrar la aplicación interactiva,
\bullet
los parámetros para ajustar con precisión la temporización del servidor de automatización,
\bullet
cómo conectarse con el servidor de radiodifusión,
\bullet
cómo responder a la desconexión repentina del servidor de radiodifusión y
\bullet
si los eventos están preprogramados.
Los parámetros de inicialización del módulo conversor 502 incluyen información que indica lo siguiente:
\bullet
cómo conectarse con el sistema de programación,
\bullet
cómo responder a la desconexión repentina del sistema de programación,
\bullet
parámetros específicos del sistema de programación, tales como los que interpretan un mandato particular si éste puede ser utilizado de manera diferente por las diferentes entidades de radiodifusión,
\bullet
el ajuste fino para la lectura y la interpretación de los mandatos del sistema de programación y
\bullet
expresiones habituales u otro tipo de información habitual utilizados para diferenciar los anuncios de los programas.
Durante la etapa de ejecución, la interfaz de canal 402 entra en un bucle infinito (bucle de eventos) 708 para procesar las señales de control del sistema de programación 106. La interfaz de canal 402 también puede recibir peticiones (p. ej., peticiones de cierre) directamente desde un cliente servidor de automatización separado. La interfaz de canal 402 solicita 710 mandatos atómicos del módulo conversor 502 y, si éstos están relacionados con algún evento, los pasa 712 al gestor de eventos 504. Si un mandato atómico es un mandato Null o un mandato Error, entonces la interfaz de canal 402 procesa 714 los mandatos por sí misma. Si se produce un error irremediable, entonces la interfaz de canal registra el error y abandona 715 el bucle de eventos.
Durante la etapa de cierre, la interfaz de canal 402 recibe 716 una petición de cierre y, por consiguiente, transmite 718 la petición al módulo conversor 502 y al gestor de eventos 504 para que éstos puedan cerrarse sin dificultades y, una vez se han cerrado, la interfaz de canal 402 se reorganiza y sale del bucle de eventos para cerrarse.
4. Vista global del módulo conversor
Puede considerarse que cada programa de radiodifusión tiene un "ciclo de vida" particular. Este ciclo de vida es gestionado por el sistema de programación 106, que a su vez funciona básicamente como una máquina de estados con respecto a cada programa de radiodifusión. No obstante, el sistema de programación 106 sólo proporciona una cantidad limitada de información acerca de un programa de radiodifusión (habitualmente, sólo la que se necesita para controlar una fuente de radiodifusión).
A continuación, para cada programa de radiodifusión, el módulo conversor 502 reconstruye el comportamiento de la máquina de estados con la información limitada que recibe desde el sistema de programación 106, para recrear el ciclo de vida del programa de radiodifusión. Esto a su vez permite al mismo proporcionar los mandatos atómicos adecuados para que el gestor de eventos 504 gestione las aplicaciones interactivas que pueden tener importancia para el programa de radiodifusión. Por lo tanto, como se representa en la Figura 5, el módulo conversor 502 crea y mantiene una máquina de estados 510 para cada programa de radiodifusión que identifica en las señales de control del sistema de programación 106.
Cada módulo conversor 502 es específico para el tipo de sistema de programación 106 con el que se comunica, y proporciona una correlación entre los estados del sistema de programación 106 y un grupo de eventos que el módulo conversor 502 puede comprender. Puesto que cada tipo de sistema de programación 106 proporciona diferentes tipos de información en sus señales de control, se plantea la necesidad de dar cuenta de los errores, la pérdida de información, etc., para establecer la correlación entre la máquina de estados implícita del sistema de programación 106 y una máquina de estados definida por el módulo conversor 502.
Como se ha indicado, existen diversos tipos de sistemas de programación 106, cada uno de los cuales proporciona diferentes tipos de señales de control que presentan diversos niveles de información y, de esta manera, cada uno de los módulos conversores 502 se corresponde con un cierto tipo de sistema de programación 106. No obstante, se considera que todos los sistemas de programación 106 pueden describirse con respecto a un sistema de programación "ideal" 106 que proporciona el grupo más completo de señales de control. La Tabla 1 indica los tipos de señales de control proporcionados por un sistema de programación ideal 106, y los datos que se incluyen en cada uno de estos tipos de señales ideales.
TABLA 1 Señales de control del sistema de programación ideal
1
Estas señales son ideales en el sentido en que, si todos los datos especificados están presentes, el módulo conversor 502 puede determinar con mucha facilidad el estado correcto del programa de radiodifusión, y generar los datos necesarios para transmitirlos al gestor de eventos 504. En los sistemas de programación no ideales 106, el módulo conversor 502 utiliza fuentes de datos externas adicionales para determinar los datos adecuados para transmitir al gestor de eventos 504 (por ejemplo, la lista de reproducción del servidor de radiodifusión 110), e información sobre la relación de las aplicaciones interactivas con los identificadores de los programas de radiodifusión contenidos en la base de datos de aplicaciones interactivas.
La señal de precarga es una señal de control que es utilizada habitualmente por un sistema de programación 106 para que una fuente de radiodifusión 106 cargue un programa de radiodifusión antes de ser emitido en un momento subsiguiente. Idealmente, esta señal incluye un ID de programa que identifica de forma exclusiva el programa de radiodifusión que se debe cargar. La identificación del canal especifica el canal para la radiodifusión, pudiendo ser el canal implícito o explícito. La duración indica la duración del programa de radiodifusión, y es utilizada por el servidor de automatización 108 para provocar la terminación de una aplicación interactiva en ausencia de una señal de finalización explícita del sistema de programación 106.
La señal de precarga puede ser o no recibida en un momento preciso. Es decir, en algunos sistemas de programación, esta señal se recibe con precisión (con una precisión de fracciones de segundos antes de la emisión del evento), mientras que en otros sistemas esta señal se puede recibir antes de la radiodifusión del evento, con una antelación de unos segundos a unas horas. Los tiempos de las señales de preparación previa, inicio de evento y finalización de evento deben ser asignados con precisión. Si se utiliza una señal de control nativa tanto para la señal de precarga como para cualquiera de las otras señales de control, deberá asignarse a ésta un tiempo preciso.
La ubicación de aplicación interactiva indica la ubicación de una aplicación interactiva que está destinada a acompañar al programa de radiodifusión. Esta ubicación está indicada en la base de datos de aplicaciones interactivas 112, o puede ser el nombre de trayectoria del directorio de archivos en el que están almacenadas las aplicaciones interactivas. El tipo de evento define el tipo de programa de radiodifusión. El número de tipos depende del diseño del sistema y puede diferenciar simplemente entre programas de televisión y anuncios, o además entre guías de programación, subtitulado opcional y otros tipos de contenido de radiodifusión. Los tipos de eventos se describen a continuación con respecto al gestor de eventos 504 y la Tabla 7.
Puesto que estas señales y su contenido de datos son para un sistema de programación ideal 106, en realidad, el sistema de programación 106 puede utilizar sólo algunas de estas señales, sólo algunos de los datos indicados o ambas cosas. No obstante, el módulo conversor 502 y el gestor de eventos 504 son operativos para proporcionar cualquier tipo de datos ausente de dichas señales de control, y controlar de ese modo el servidor de radiodifusión 110.
Una vez conocidas las señales de control ideales, podrá definirse el módulo conversor "ideal" 502. El módulo conversor ideal 502 establece la correlación entre las señales de control del sistema de programación 106 y un grupo de mandatos atómicos que son utilizados por el gestor de eventos 504. El conversor ideal representa, por lo tanto, el ciclo de vida de cualquier programa de radiodifusión y la forma en que el gestor de eventos 504 puede responder a los diferentes estados del ciclo de vida del programa de radiodifusión, para generar mandatos para que el servidor de radiodifusión 110 controle la ejecución de una aplicación interactiva asociada al programa de radiodifusión.
En la Tabla 2, se indican los mandatos atómicos generados por el módulo conversor 502.
TABLA 2 Mandatos atómicos para el gestor de eventos
2
TABLA 2 (continuación)
3
Puesto que al servidor de radiodifusión 110 le lleva cierto tiempo programar una aplicación interactiva, en algunas circunstancias, el módulo conversor 502 tal vez no envíe el mandato atómico de programación con suficiente tiempo para permitir que la aplicación interactiva sea sincronizada con los datos de vídeo que se están emitiendo. En este caso, las aplicaciones interactivas pueden preprogramarse en el servidor de radiodifusión 110 mediante algún otro procedimiento manual o automático, y el servidor de automatización 108 puede ahorrar tiempo realizando la búsqueda de la aplicación interactiva preprogramada en lugar de dar la orden de programarla al servidor de radiodifusión 110. En esta modalidad, el servidor de automatización 108 no cancela los eventos preprogramados porque éstos pueden ser emitidos otra vez. En su lugar, el responsable de la cancelación de dichos eventos es el procedimiento que los programó.
Los módulos conversores concretos 502 para cualquier sistema de programación particular 106 se obtienen a partir del módulo conversor ideal 502. Con referencia a la Figura 8, se representa la descripción de una máquina de estados de conversión ideal 510. Puede considerarse que cada programa de radiodifusión realiza la transición hacia un grupo de estados definidos por las señales de control.
La máquina de estados empieza por el estado "inicio" 800.
A partir de este estado, el módulo conversor 502 pasa al estado "cargado" 802. Al estado "cargado" 802 puede llegarse desde cualquiera de las tres señales ideales 801: la señal de precarga, la señal de preparación previa o la señal de inicio.
Normalmente, la primera señal de control 801 recibida por el módulo conversor 502 será la señal de precarga. En el sistema de programación 106, esta señal indica que el programa de radiodifusión está a punto de ser emitido. Al estado "inicio" 802 también se llega, como se ha indicado, con una señal de preparación previa si no se ha recibido previamente una señal de precarga. Una señal de preparación previa también indica que el programa de radiodifusión está a punto de ser emitido.
En el estado "cargado" 802, el módulo conversor 502 determina la aplicación interactiva adecuada asociada al programa de radiodifusión y programa su ejecución. El módulo conversor 502 determina, con la mayor exactitud posible, los datos ideales para este estado, tales como el ID del programa de radiodifusión, el tipo de evento y la ubicación de la aplicación interactiva asociada para el programa de radiodifusión. El tipo de evento describe el tipo de programa de radiodifusión (indica, por ejemplo, si es un programa de televisión, un anuncio o es desconocido). Los tipos de evento se describirán en mayor detalle más adelante. En algunos casos, la asignación de canal es implícita, puesto que el módulo conversor 502 está asociado a un canal particular; en otros casos, el canal puede ser codificado explícitamente en la señal de control.
Más particularmente, el módulo conversor 502 registra la hora actual y la señal recibida. El módulo conversor 502 establece como ID del programa para la aplicación interactiva asociada el ID de programa contenido en la señal de control. Si es necesario, el módulo conversor 502 calcula el tipo de evento utilizando expresiones habituales (véase más adelante). En caso contrario, el módulo conversor 502 establece el tipo de evento en "desconocido", y deja que sea el gestor de eventos 504 el que determine el tipo de evento a partir de los datos contenidos en la propia aplicación interactiva. Si es necesario, el módulo conversor 502 establece también como ubicación de la aplicación interactiva el ID del programa. También en este caso, el gestor de eventos 504 determinará la ubicación real basándose en el ID del programa y el número de segmento del programa de radiodifusión, según convenga.
El módulo conversor 502 crea y proporciona un mandato de programación para el gestor de eventos 504, utilizando los datos ideales creados. Este mandato de programación da la orden al gestor de eventos 504 de determinar si existe una aplicación interactiva asociada al ID del programa de radiodifusión y, de ser así, solicitar al servidor de radiodifusión que se prepare para emitir la aplicación interactiva identificada.
El siguiente estado es el estado "preparado" 804. A este estado se llega desde el estado "cargado" 802 con una señal de preparación previa o una señal de inicio. También se realizan transiciones automáticas hacia el estado "preparado" 804 si la primera señal recibida 801 ha sido una señal de preparación previa o una señal de inicio. Es decir, si la primera señal recibida 801 es una cualquiera de estas dos señales, el módulo conversor 502 pasa automáticamente por los estados "cargado" 802, "preparado" 804 y "en antena" 806.
El estado "preparado" 804 controla la temporización de los mandatos atómicos enviados al gestor de eventos 504. Antes de ponerse en funcionamiento, el servidor de automatización 108 es configurado con el tiempo de antelación con el que se puede recibir una señal de preparación previa antes de que se emita el evento del sistema de programación. Este tiempo es habitualmente de 1 a 10 segundos y se suele medir en milisegundos. Tras recibir una señal de preparación previa o de inicio, el módulo conversor ideal entra en el estado "preparado" 804. En el estado "preparado" 804, se realiza preferentemente una pausa de X-Y microsegundos, siendo X la antelación con la que llega la señal de preparación previa e Y, la cantidad de tiempo necesaria para que el gestor de eventos 504 y el servidor de radiodifusión 110 inicien la aplicación interactiva (el evento) para el programa de radiodifusión. Una vez transcurrido este tiempo, el módulo conversor 502 realiza automáticamente la transición hacia el estado "en antena" 806, momento en el cual el evento se inicia, y genera también una señal de inicio 805 que puede ser utilizada por otras máquinas de estados de evento (véase la sección "Estado fuera de antena"). Debe tenerse en cuenta que si X-Y es menor que cero o si la señal de control es una señal de inicio, entonces no se realiza ninguna pausa en el estado "preparado" 804, sino que se pasa al estado "en antena" 806 para permitir que el evento del servidor de radiodifusión se inicie tan pronto como sea posible.
Al estado "en antena" 806 se llega automáticamente después del estado "preparado" 804. En este estado, el módulo conversor 502 crea y envía un mandato atómico de inicio al gestor de eventos 504. La combinación de esto con la pausa introducida en el estado "preparado" 804 da por resultado el inicio de la ejecución de la aplicación interactiva con el programa de radiodifusión.
Durante el estado "en antena" 806, pueden recibirse y procesarse 810 señales adicionales que constituyen disparos secundarios 809. Estos disparos secundarios pueden provocar la ejecución de funciones adicionales asociadas a la aplicación interactiva que se está emitiendo.
Cuando se recibe una señal de finalización de evento 807, se termina la emisión de la aplicación interactiva, con lo cual se pasa al estado "fuera de antena" 808. En este estado, el evento se cancela. Es decir, el módulo conversor 502 crea un mandato de cancelación basándose en el ID del programa actual, y lo envía al gestor de eventos 504 para cancelar la aplicación interactiva actual. Este estado puede ser activado por las señales de control asociadas a otros eventos. Por ejemplo, si las señales de control nativas del sistema de programación no incluyen ninguna señal de finalización de evento, la señal de inicio de evento para el siguiente evento provocará el fin del evento previo.
Cuando se recibe una señal de error, el módulo conversor 502 crea un mandato de cancelación basándose en el ID del programa actual, y lo envía al gestor de eventos 504 para cancelar la aplicación interactiva actual.
Estos estados representan, por lo tanto, el ciclo de vida de cada programa de radiodifusión, desde la perspectiva de un sistema de programación 106. A partir de esta información, el servidor de automatización 108 determina el estado de la aplicación interactiva asociada con el programa de radiodifusión, y proporciona los mandatos adecuados para este estado al servidor de radiodifusión 110.
En consecuencia, el módulo conversor 502 está diseñado para controlar los programas de radiodifusión de un canal específico en correspondencia con dichos estados. Más particularmente, el módulo conversor 502 mantiene una máquina de estados 510 para cada ID de programa de radiodifusión que recibe. Esta máquina de estados se crea cada vez que se recibe un ID de programa de radiodifusión, y se conserva hasta que el sistema de programación 106 indica que el programa de radiodifusión ha terminado.
Con referencia a la Figura 9, se representa un diagrama de flujo del funcionamiento global del módulo conversor 502, y particularmente de su lógica de correlación 506. Cada vez que el módulo conversor 502 recibe 900 una señal de control desde el sistema de programación 106, determina 902 si la señal de control se refiere a uno de los eventos que gestiona. Un evento viene indicado por un ID de programa u otro tipo de datos representativos de un programa de radiodifusión, en lugar de señales de error u otro tipo de datos, tales como los mensajes de arranque, de cierre, de error o del sistema.
Si la señal de control no se refiere a un evento, el módulo conversor 502 determina 904 si se trata de una señal de error. Las señales de error se pasan 906 al módulo gestor de eventos 504 para su tratamiento.
Si la señal de control no es una señal de error, ésta se ignora 910.
Si la señal es una señal de evento, el módulo conversor 502 aplica la lógica de correlación 506 para determinar si el evento identificado es un nuevo evento o un evento para el cual ya se dispone de una máquina de estados 510, utilizando el ID del programa del evento como clave para la máquina de estados. Si el evento es un evento nuevo, el módulo conversor 502 crea 912 una nueva máquina de estados 510 para el ID del programa y el evento, e inicia 914 la máquina de estados 510.
Si ya se dispone de una máquina de estados, la señal de control del evento se pasa 916 a la máquina de estados 510 asociada con el ID del programa. La máquina de estados 510 se ocupa del evento según la lógica de estados descrita anteriormente con respecto a la máquina de estados ideal, y con respecto a los tipos de conversores específicos, como se indica en mayor detalle a continuación.
5. Tipos de conversor
Cada sistema de programación 106 genera su propio grupo particular de señales de control que son interpretadas por un módulo conversor 502. Las secciones siguientes describen cómo se implementan módulos conversores específicos en términos del diagrama de estados del módulo conversor ideal. Es decir, puede establecerse la correlación entre las señales de control específicas del sistema de programación y las señales de control genéricas del conversor ideal. Cada módulo conversor particular 502 pasa por los mismos estados que los descritos para el módulo conversor ideal. No obstante, las acciones de los estados de cada conversor particular varían ligeramente para adaptarse a las diferencias de las señales de control que reciben.
Las correspondencias entre la máquina de estados del conversor ideal y la máquina de estados particular para cada tipo de conversor se resumen en las Tablas 4 a 6 siguientes. Los encabezamientos de las columnas de estas tablas se definen en la Tabla 3:
\vskip1.000000\baselineskip
TABLA 3 Encabezamientos de columnas para las Tablas 4 a 6
4
a) Conversor tipo 1: sistema de programación básico
Un sistema de programación básico 106 es un sistema que codifica muy pocos datos en sus señales de control, habitualmente no más de un ID de programa. La interpretación de esta señal de control por medio de la máquina de estados del conversor conlleva la creación y la inferencia de los datos adecuados para recrear lo que podrían ser los datos ideales para una señal de control ideal. Un ejemplo de sistema de programación básico 106 es el Louth ADC-100.
En una forma de realización, el servidor de automatización 108 se interconecta con un sistema de programación básico emulando un subtitulador. En una forma de realización, tal como un sistema de programación Louth, el subtitulador emulado es el subtitulador Cavena. Normalmente, el sistema de programación básico 106 envía señales al subtitulador para preparar un subtítulo, empezar un subtítulo e interrumpir un subtítulo que se está presentando a través de los datos de programa de vídeo de un programa de radiodifusión. En la presente invención, el servidor de automatización 108 utiliza estas señales de control para sincronizar las aplicaciones interactivas con el
vídeo.
\newpage
Algunos sistemas de programación básicos 106 presentan preferentemente la capacidad para proporcionar información de preparación previa. En este caso, se envía una señal de preparación con una antelación de segundos configurable con respecto a la hora real de inicio del programa de radiodifusión. El servidor de automatización 108 utiliza la información para precargar e iniciar de antemano la aplicación interactiva, de tal forma que ésta pueda llegar al usuario justo cuando se inicia el programa de radiodifusión. En consecuencia, el conversor tipo 1 efectúa la transición hacia los estados "cargado" 802, "preparado" 804 y "en antena" 806 cuando recibe la señal de preparación. Esta transición se define en la Tabla 4 como una transición automática.
Cuando el servidor de automatización 108 recibe una señal de inicio 805 desde un sistema de programación básico 106, ya sabe que la aplicación interactiva ha comenzado gracias a la señal de preparación; en consecuencia, ignora la señal de inicio. Si la señal de control del sistema de programación básico presenta un error, el servidor de automatización 108 detiene la aplicación interactiva actual y pasa al estado de error 812.
En la Tabla 4, se resumen las relaciones entre las señales de control nativas de un sistema de programación básico 106, las señales de control ideales y las transiciones de estado de la máquina de estados del módulo conversor ideal 502.
\vskip1.000000\baselineskip
TABLA 4 Señales de control y transiciones de estado para el conversor de un sistema de programación básico
6
b) Conversor tipo 2: sistema de programación basado en códigos
El segundo tipo de sistema de programación 106 es un sistema que utiliza códigos de identificación para diferenciar selectivamente entre programas de televisión y anuncios. Un ejemplo de este tipo de sistema de programación 106 es un sistema basado en códigos ISCI, tal como el utilizado por ESPN Inc. en sus sistemas de radiodifusión. En este tipo de sistema, los códigos ISCI están presentes en programas de radiodifusión tales como los anuncios y no están presentes en los programas de televisión. Estos tipos de códigos pueden ser proporcionados directamente por el sistema de programación 106 o indirectamente mediante su registro previo en los medios (p. ej., una cinta de vídeo) en conjunción con los programas de radiodifusión.
Otros tipos de sistemas basados en códigos incluyen los sistemas que utilizan códigos que identifican individualmente las aplicaciones interactivas, las URL, las URI y similares.
El servidor de automatización 108 se interconecta con un sistema de programación basado en códigos 106 a través de un lector de códigos de tiempo VITC o un lector de códigos de tiempo similar. El sistema de programación basado en códigos envía, a través de un código de tiempo VITC, información ISCI durante los anuncios e información no ISCI durante los programas. El servidor de automatización 108 utiliza esta información para añadir selectivamente aplicaciones interactivas durante los anuncios y los programas. Puesto que las señales de control del sistema de programación no identifican los programas mediante un ID, sólo se trabaja con una aplicación interactiva por omisión.
Generalmente, cuando la señal de control presenta un código ISCI o similar, el conversor 502 deduce que ha empezado un anuncio. En consecuencia, la máquina de estados 510 pasa por los estados "cargado", "preparado" y "en antena" e inicia la aplicación interactiva. Estas transiciones se producen automáticamente y, por ello, se denominan "transiciones automáticas" en la Tabla 5. En el estado "cargado", el código ISCI (u otro tipo de código, tal como una URL, un identificador de aplicación o similar) es utilizado como ID de programa (es decir, el código se guarda como ID del programa) en los datos ideales. Esto permite al gestor de eventos 504 determinar la aplicación interactiva correcta.
Cuando se produce un cambio en el código ISCI, el conversor 502 deduce que ha empezado un nuevo anuncio. En consecuencia, la máquina de estados 510 pasa por el estado "fuera de antena" e interrumpe el contenido de interactividad, creando el mandato atómico de cancelación para cancelar la aplicación interactiva actual del anuncio. Para el nuevo código ISCI, el conversor 502 crea una nueva máquina de estados 510 que pasa por los estados "cargado", "preparado" y "en antena", y se genera un mandato atómico para empezar la aplicación interactiva del nuevo anuncio.
Cuando la señal de control no contiene ningún código ISCI, el conversor 502 deduce que el programa de televisión ha empezado (o que está siendo emitido). Por consiguiente, la máquina de estados 510 pasa al estado "fuera de antena" e interrumpe el contenido interactivo, creando el mandato atómico de cancelación para cancelar la aplicación interactiva actual para el anuncio. Basándose en la misma señal (es decir, en ausencia de un código ISCI), se crea una nueva máquina de estados 510 para un ID de programa desconocido con un tipo de evento de programa. Como se indica más adelante, el gestor de eventos determinará que este ID de programa debería asociarse con el programa por omisión. La máquina de estados 510 pasa por los estados "cargado", "preparado" y "en antena", y genera un mandato atómico de inicio para iniciar una aplicación por omisión para el programa de televisión. Cuando se detecta de nuevo un código ISCI, la máquina de estados 510 pasa al estado "fuera de antena" y se genera un mandato atómico de cancelación.
Debido a que en los sistemas basados en códigos frecuentemente existen pequeños intervalos sin datos (en especial, durante las transiciones entre códigos), el conversor 502 esperará una cantidad configurable de milisegundos para detectar la ausencia de códigos ISCI, evitándose de ese modo falsas detecciones.
Si la señal de control contiene algún error, la máquina de estados 510 también cancela el contenido interactivo actual y pasa al estado "error".
En la Tabla 5 se resumen las relaciones entre las señales de control nativas de un sistema de programación basado en códigos 106, las señales de control ideales y las transiciones de estado de la máquina de estados del módulo conversor ideal 502, tanto para los eventos de anuncios como para el evento de programa por omisión.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Tabla pasa a página siguiente)
TABLA 5 Señales de control y transiciones de estado para conversor de sistema de programación basado en códigos
7
c) Conversor tipo 3: sistema de programación basado en lista de reproducción
El tercer tipo de sistema de programación 106 admitido por la presente invención es un sistema de programación basado en una lista de reproducción. En este tipo de sistema, las señales de control identifican el programa que se está emitiendo y su duración, para proporcionar los elementos de una lista de reproducción (en algunos casos, también se incluye el título del programa de radiodifusión). Un ejemplo de este tipo de sistema de programación es el sistema de casetes múltiples BZCA-1100 del sistema de gestión de bibliotecas (LSM) que ejecuta el software BZCA-1102 Spot Reel Option, proporcionado por Sony Corporation.
El servidor de automatización 108 se interconecta con este tipo de sistema de programación 106, actuando como un terminal de control. El terminal de control (por ejemplo, el terminal LMS BAC-1200) presenta en pantalla una lista de reproducción de transmisión que es una tabla de eventos programados. La lista de reproducción contiene información de eventos, tal como el ID del programa, el título del programa y la duración, para cada programa de radiodifusión.
El módulo conversor basado en lista de reproducción 502 captura y analiza toda la información de eventos recibida desde el sistema de programación 106. En la lista de reproducción, los eventos aparecen con tiempos adelantados con respecto a sus horas de emisión. Cuando un evento (es decir, un programa de radiodifusión) aparece en la lista de reproducción de transmisión, el conversor 502 precarga la aplicación interactiva para ese evento y cambia al estado "cargado" 802. El sistema de programación 106 proporciona información de preparación previa para cada evento, enviando el estado del evento de una señal de control de reproducción con una antelación de segundos configurable con respecto a la hora de emisión del evento.
El módulo conversor 502 pasa por los estados "preparado" 804 y "en antena" 806 e inicia la aplicación interactiva cuando recibe la señal de control de reproducción de un evento. Si el conversor 502 no recibe la señal de control de reproducción de un evento debido a un problema de red o algún otro problema y recibe la señal de control en pantalla o en línea de un evento, entonces efectúa la transición al estado "en antena" 806 e inicia la aplicación interactiva. En este caso, el servidor de automatización 108 desaprovecha la ventaja de la información de preparación previa, pero a pesar de esto la aplicación interactiva se inicia.
Si el módulo conversor 502 recibe una señal en antena o en línea y todavía no está en el estado "preparado" 804, entonces trata la señal en antena/en línea como una señal de reproducción, pasando al estado "preparado" 804 y luego automáticamente al estado "en antena" 806.
Cuando los datos del evento desaparecen de la lista de reproducción de transmisión, el módulo conversor 502 pasa al estado "fuera de antena" 808 y da la orden al gestor de eventos 504 de cancelar la aplicación interactiva actual.
Si se produce cualquier otro tipo de error, tal como la pérdida de la conexión con el sistema de programación, entonces el servidor de automatización 108 interrumpe la aplicación interactiva actual y pasa al estado "error".
En la Tabla 6, se resumen las relaciones entre las señales de control nativas de un sistema de programación basado en lista de reproducción 106, las señales de control ideales y las transiciones de estado de la máquina de estados del módulo conversor ideal 502.
TABLA 6 Señales de control y transiciones de estado para conversor de sistema de programación basado en lista de reproducción
8
6. Cálculo de tipo de evento de conversor basado en expresiones habituales
Los sistemas de programación 106 que calculan el tipo de evento de un ID de programa pueden enviar esta información directamente al servidor de automatización 108. Puesto que muchos sistemas de programación 106 no pueden proporcionar esta función, algunas entidades de radiodifusión 114 utilizan unos ID de programa que diferencian entre diferentes tipos de programas (p. ej., programas de televisión y anuncios). El servidor de automatización 108 utiliza y aprovecha esta información. El conversor 502 utiliza esta información para determinar qué tipo de evento debe programar. Por ejemplo, el ID de los anuncios puede presentar el prefijo "VT", y el ID de un programa de televisión puede presentar un prefijo diferente o ninguno. El servidor de automatización 108 utiliza expresiones habituales con los ID de programa para diferenciar entre los anuncios y programas de televisión. El tipo de evento que se establece es "anuncio" si el ID del programa coincide con los criterios de los anuncios, o "programa de televisión" si el ID del programa coincide con los criterios de los programas de televisión, de acuerdo con un análisis de expresiones habituales. Si la entidad de radiodifusión 114 no asigna ningún nombre a los ID de programas para diferenciar entre programas de televisión y anuncios, entonces el tipo de evento establecido será "desconocido". En tal caso, el gestor de eventos 504 buscará en el archivo de la aplicación interactiva particular un señalizador que indique si el contenido es para un anuncio o un programa de televisión.
7. Visión general del gestor de eventos
Otra vez con referencia a la Figura 5, el gestor de eventos 504 recibe los diversos mandatos atómicos 514 desde las máquinas de estados del módulo conversor 510 y, en respuesta a éstos, da instrucciones al servidor de radiodifusión 110 acerca de cómo controlar las aplicaciones interactivas.
Por lo general, en un sistema convencional sin servidor de automatización 108, el servidor de radiodifusión 110 envía las aplicaciones interactivas a una unidad de inserción de datos 116 según una lista de reproducción predefinida, que es una lista de eventos del servidor de radiodifusión.
No obstante, el servidor de automatización 108, por medio de las señales de control proporcionadas por el sistema de programación 106, es capaz de automatizar la creación de la lista de reproducción del servidor de radiodifusión, y añadir, suprimir y modificar dinámicamente los eventos de la lista de reproducción del servidor de radiodifusión para que concuerden con los cambios casi de tiempo real de la lista de reproducción del sistema de programación. Aunque la lista de reproducción del servidor de radiodifusión puede contener eventos para todos los canales, el gestor de eventos 504 sólo gestiona los eventos de los canales para los cuales recibe mandatos atómicos.
En la Figura 5, puede observarse cómo el módulo conversor 502 envía mandatos atómicos 514 al gestor de eventos 504. El gestor de eventos 504 interpreta los mandatos atómicos 514 para generar una secuencia de mandatos primitivos para el servidor de radiodifusión 110. Cuando el gestor de eventos 504 recibe los mandatos atómicos 514, establece la correlación entre los ID de los programas contenidos en éstos y los eventos particulares del servidor de radiodifusión, por medio de la lógica de correlación 508. Si no existe ningún evento de servidor de radiodifusión adecuado para un ID de programa particular, el gestor de eventos 504 crea un evento de servidor de radiodifusión. En general, el gestor de eventos 502 crea, modifica o elimina eventos de servidor de radiodifusión según las necesidades.
El gestor de eventos 504 mantiene una máquina de estados separada 512 para cada evento del servidor de radiodifusión que gestiona. El ID de programa de cada evento asigna una máquina de estados a cada evento. Los mandatos atómicos del módulo conversor 502 son encaminados pues hacia estas máquinas de estados, basándose en los ID de sus programas. Este procedimiento se describe más adelante en la sección "Lógica de correlación de mandatos atómicos". La máquina de estados de un evento 512 es responsable de la generación de los mandatos primitivos de servidor de radiodifusión correctos, tal como se describe detalladamente en la sección "Máquina de estados de evento".
La utilización de dos máquinas de estados del módulo conversor 502 y del gestor de eventos 504 permite interconectar fácilmente cualquiera de los diversos tipos de sistemas de programación diferentes 106 con el servidor de automatización 108, a la vez que permite realizar una implementación relativamente simple y eficaz del gestor de eventos 504. De esta forma, se puede crear un nuevo módulo conversor 502 para que funcione con un nuevo sistema de programación 106, sin necesidad de realizar ningún cambio en el gestor de eventos 504.
Puesto que los diferentes tipos de eventos pueden provocar un comportamiento diferente de la lógica de correlación de los mandatos atómicos 508 y las máquinas de estado de los eventos 512, en la siguiente sección se definen los diversos tipos de eventos admitidos por el gestor de eventos 504.
a) Tipos de eventos
Los tipos de eventos determinan cómo deben comportarse los eventos del servidor de radiodifusión. Existen tres categorías diferentes que definen el comportamiento de los eventos:
\bullet
Tipo de programa,
\bullet
Segmentación e
\bullet
Interactividad.
El tipo de programa puede ser "anuncio", "programa de televisión" o "desconocido". Un anuncio es un elemento de programación de televisión autónomo que suele ser corto (de 30 a 120 segundos). Un programa de televisión es un programa que contiene uno o más segmentos. Entre los segmentos de un programa de televisión, se presentan habitualmente uno o más anuncios. Si el servidor de automatización 108 no puede determinar el tipo de programa a partir de las señales de control enviadas por el sistema de programación 106, el tipo se establece en "desconocido". Habitualmente, los eventos desconocidos suelen tratarse de la misma forma que la programación autónoma (como los anuncios), aunque también pueden ser tratados como programas de televisión.
El tipo de programa y la segmentación están estrechamente relacionados. En una forma de realización preferida, los programas de televisión se tratan siempre como programas segmentados, y los anuncios se tratan siempre como programas no segmentados. Los programas desconocidos pueden tratarse de una u otra forma. El tratamiento de los programas de televisión segmentados se describe más adelante en mayor detalle con respecto a la Figura 12.
La interactividad (p. ej., una aplicación interactiva) puede referirse a un evento interactivo normal o a un evento interactivo por omisión. Un evento normal es un evento que tiene una aplicación interactiva particular asociada. Si el gestor de eventos 504 no puede hallar una aplicación interactiva específica asociada a un evento de la base de datos de aplicaciones interactivas 112, puede reemplazarla por una aplicación interactiva por omisión hasta que finalice el evento. Puede especificarse también un evento nulo como evento por omisión, lo cual significa que no se emitirá ninguna aplicación interactiva en el transcurso del evento.
En la tabla siguiente, se indican seis tipos de eventos y se resumen los comportamientos de cada tipo de evento.
TABLA 7 Tipos de eventos
9
Los tipos de eventos también se utilizan para determinar las opciones de los eventos del servidor de radiodifusión.
b) Determinación del tipo de evento
Inicialmente, el módulo conversor 502 determina el tipo de evento y lo pasa al gestor de eventos 504 en el mandato atómico 514. En algunos casos, el módulo conversor 502 no tiene suficiente información para determinar el tipo de evento particular. El módulo conversor 502 realiza una determinación inicial del tipo de evento, pero el gestor de eventos 504 puede cambiar el tipo de evento si dispone de información más completa. El gestor de eventos 504 dispone de dos tipos de información que el módulo conversor 502 no tiene:
1.
El gestor de eventos 504 sabe si existe una aplicación interactiva para el ID de programa del evento y
2.
El gestor de eventos 504 puede obtener información sobre el tipo de evento de la aplicación interactiva. La aplicación contiene información que determina si ésta puede suspenderse o no. El servidor de automatización 108 supone que todos los programas de televisión se pueden suspender y que ningún anuncio se puede suspender.
Combinando la información del gestor de eventos y del módulo conversor, el gestor de eventos 504 puede determinar el tipo de evento correcto, como se resume en la tabla proporcionada a continuación.
TABLA 8 Determinación de tipo de evento por el gestor de eventos
10
\dotable{\tabskip\tabcolsep#\hfil\tabskip0ptplus1fil\dddarstrut\cr}{
 *:  \begin{minipage}[t]{155mm} Debe tenerse en cuenta que el
tipo de evento del módulo conversor siempre prevalece sobre el tipo
de evento de la aplicación
interactiva.\end{minipage} \cr}
\vskip1.000000\baselineskip
c) Lógica de correlación de mandatos atómicos
El gestor de eventos 504 mantiene una máquina de estados separada 512 para cada evento que gestiona. Cuando el gestor de eventos 504 recibe mandatos atómicos 514 desde el módulo conversor 502, debe asociar el ID de programa del mandato atómico con el evento de servidor de radiodifusión adecuado, y pasar el mandato atómico a la máquina de estados 512 adecuada. La lógica de correlación del gestor de eventos 508 se encarga de este procedimiento.
La lógica de correlación 508 crea y mantiene una tabla de asociación de eventos que asocia los ID de los programas con los ID de los eventos del servidor de radiodifusión. Sólo los mandatos atómicos programados pueden provocar la creación de nuevos eventos del servidor de radiodifusión. Por consiguiente, sólo dichos mandatos pueden añadir una nueva fila a la tabla de asociación de eventos, asociando un ID de programa con el ID del nuevo evento del servidor de radiodifusión. La asociación se elimina de la tabla cuando el evento ha pasado a través de su máquina de estados 512, y la máquina de estados se elimina.
En la Figura 10, se ilustra el comportamiento de los estados de una forma de realización de la lógica de correlación 508. La Tabla 9 describe esta figura.
\vskip1.000000\baselineskip
TABLA 9 Máquina de estados del gestor de eventos
12
TABLA 9 (continuación)
13
Cuando se crea una nueva máquina de estados para el evento, la lógica de correlación 508 determina el tipo de evento, según las reglas de la Tabla 8, anterior.
Para los eventos interactivos no segmentados normales, se establece una correlación biunívoca (de uno a uno) entre los eventos del sistema de programación y los eventos del servidor de radiodifusión de la tabla de asociación de eventos. A continuación, se describen dos excepciones principales a lo anterior.
d) Establecimiento de correlación en casos especiales de eventos
En general se establece una correlación biunívoca entre los eventos del sistema de programación y los eventos del servidor de radiodifusión. A continuación, se indican dos excepciones principales.
(i) Eventos por omisión
En el momento del arranque, el gestor de eventos 504 crea tres eventos del servidor de radiodifusión (uno para cada tipo de evento por omisión). Estos eventos son los tres primeros eventos de la tabla de asociación de eventos. Como se ha descrito anteriormente con respecto a los tipos de eventos, los eventos por omisión se eligen cuando no puede hallarse ninguna aplicación interactiva para el ID de programa especificado. Con este objetivo, la tabla de asociación de eventos permite establecer la correlación entre muchos ID de programa y el mismo ID de evento por omisión. Cuando la lógica de correlación 508 recibe un mandato atómico de programación que no tiene ninguna aplicación interactiva asociada, la lógica de correlación 508 asocia el ID del programa con el evento por omisión que corresponde al tipo de evento indicado en el mandato atómico de programación. La lógica de correlación 508 no transmite el mandato atómico de programación, puesto que el evento por omisión ya está programado.
(ii) Eventos segmentados
Como se ha indicado previamente, un programa de televisión puede segmentarse en varias partes. Para el sistema de programación 106, el programa de televisión es una serie de varios eventos que disponen de su propio ID de programa. Para el servidor de radiodifusión, el programa de televisión es un solo evento que se suspende y reanuda en cada segmento. Por consiguiente, la tabla de asociación de eventos elimina esta disparidad estableciendo la correlación entre varios ID de programas y un único evento del servidor de radiodifusión.
Si el sistema de programación 106 proporciona información acerca de la segmentación en su ID de programa, la lógica de correlación de eventos 508 crea una nueva máquina de estados de evento 512 para el primer segmento del programa de televisión y establece automáticamente la correlación entre los demás segmentos y la misma máquina de estados de evento 512.
Desgraciadamente, la mayoría de sistemas de programación no proporcionan esta información. Por lo tanto, el servidor de automatización 108 determina si dos ID de programas diferentes están asociados con el mismo programa de televisión, determinando si ambos ID de programas se corresponden con la misma aplicación interactiva de la base de datos de aplicaciones interactivas 112. Cuando la lógica de correlación 508 determina que el nuevo ID de programa es para otro segmento de un programa de televisión que ya está incluido en la tabla de asociación de eventos, la lógica de correlación 508:
1. asocia el nuevo ID de programa con el evento del servidor de radiodifusión preexistente en la tabla de asociación de eventos y
2. no transmite el mandato atómico de programación, puesto que el programa de televisión ya ha sido programado.
Las secciones "Máquina de estados de evento" y "Segmentación" proporcionan información más detallada al respecto.
e) Mandatos primitivos del servidor de radiodifusión
Las máquinas de estados del gestor de eventos emiten cuatro mandatos primitivos del servidor de radiodifusión (programación'', inicio, finalización y cancelación) para controlar el servidor de radiodifusión. Estos mandatos son análogos a los mandatos atómicos del mismo nombre. El mandato de programación prepara una aplicación interactiva para la radiodifusión y la añade a la lista de reproducción del servidor de radiodifusión. El mandato de inicio empieza la emisión de la aplicación interactiva, y el mandato de finalización interrumpe la emisión de ésta. El mandato de cancelación detiene la aplicación interactiva (si es que no está detenida), elimina la aplicación interactiva de la memoria y suprime el evento asociado de la lista de reproducción del servidor de radiodifusión.
En formas de realización alternativas, estos mandatos particulares pueden ampliarse para incluir otros comportamientos más complejos, tales como la suspensión indefinida, la suspensión durante un intervalo de tiempo seleccionado, la reanudación inmediata, la reanudación después de un intervalo de tiempo seleccionado, etc.
Además, el contenido de los mandatos, es decir, el tipo de interactividad que puede ser gestionada por los mandatos, es variable, dependiendo también de los tipos de interactividad seleccionados por el diseñador del sistema. Por lo tanto, los mandatos pueden programar o iniciar disparos para interactividad, formularios u otros datos emitidos previamente, URL, páginas web, applets de Java u otro tipo de interactividad hipermedia y similares.
8. Máquina de estados de evento
Los mandatos atómicos llegan a su fin en una máquina de estados de evento 512 particular. Cada máquina de estados de evento 512 está asociada con un evento del servidor de radiodifusión y controla todas las operaciones de ese evento. La lógica de correlación de mandatos atómicos 508 determina qué máquina de estados 512 recibe un mandato atómico particular (con algunas excepciones citadas más abajo).
En la Figura 11, se ilustra el comportamiento de una máquina de estados de evento 512, con referencia a los eventos de anuncios, los eventos de programas de televisión y los eventos por omisión. La máquina de estados de evento traza el ciclo de vida de un evento. En la Figura 11, las transiciones de estado se marcan de la forma indicada a continuación para indicar a qué tipos de eventos se refieren:
C:
transición aplicable a eventos de anuncios,
S:
transición aplicable a eventos de programas de televisión y
D:
transición aplicable a eventos por omisión.
En general, un evento pasará por los estados siguientes:
"Programado" 1102: Un mandato atómico de programación del módulo conversor 502 determina que el evento sea programado en el servidor de radiodifusión. La máquina de estados 512 emite el mandato primitivo de programación de radiodifusión que da la orden al servidor de radiodifusión 110 de preparar una aplicación interactiva para emitirla, y de añadir dicha aplicación a la lista de reproducción del servidor de radiodifusión. Después de la programación, será necesario iniciar el evento mediante un mandato atómico de inicio.
"Iniciado" 1104, "finalizado" 1106: El mandato de inicio del módulo conversor 502 hace pasar la máquina de estados al estado "iniciado" 1104. La máquina de estados emite un mandato primitivo de radiodifusión. Una vez que se ha iniciado, el evento puede empezar y finalizar una cantidad cualquiera de veces mediante mandatos atómicos de inicio y finalización. La máquina de estados realiza la transición hacia el estado "finalizado" 1106 sólo en los programas de televisión y los eventos por omisión. Con los eventos de anuncios, no se llega al estado "finalizado" 1106.
En respuesta al mandato primitivo de inicio de radiodifusión, el servidor de radiodifusión 110 puede iniciar la aplicación interactiva de varias maneras, incluida la transmisión de la aplicación interactiva (si es que no ha sido transmitida previamente) o, si la aplicación ha sido transmitida previamente, la transmisión de un disparo a la aplicación interactiva para comenzar la ejecución. Asimismo, el servidor de radiodifusión 110 puede transmitir otros tipos de datos, tales como los formularios o el contenido para la aplicación interactiva, o puede transmitir una URL o similar, como se ha indicado anteriormente.
"Procesamiento de disparo secundario" 1108: Asimismo, una vez que se ha iniciado un evento, puede producirse o no algún disparo secundario. Un disparo secundario es una acción que se produce mientras el evento está activo (es decir, está programado en el servidor de radiodifusión). Un ejemplo de esto sería un aviso que indica al usuario final que faltan cinco minutos para que finalice el evento. Estos disparos son creados por el sistema de programación 106 y pasados al módulo conversor como una señal de control.
"Cancelado" 1110: Por último, una vez que el programa de radiodifusión asociado a un evento ha finalizado, se envía un mandato atómico de cancelación desde el módulo conversor 502. La máquina de estados reacciona emitiendo un mandato primitivo de cancelación de radiodifusión para el servidor de radiodifusión 110, que cancela el evento. A este estado se llega de maneras diferentes con los diferentes eventos; por ejemplo, en el caso de los eventos de anuncios, se llega cuando se recibe el mandato atómico de cancelación desde el módulo conversor 502; en el caso de los eventos de programas de televisión, se llega cuando se recibe el mandato atómico de inicio de siguiente programa de televisión y, por último, en el caso de los eventos por omisión, se llega en el momento del cierre.
Para que el inicio de un evento del servidor de radiodifusión (aplicación interactiva) se sincronice con precisión con el programa de radiodifusión del sistema de programación asociado, algunos sistemas de programación presentan la capacidad de preparación previa. La preparación previa es la cantidad de tiempo que un dispositivo controlado por el sistema de programación 106 (p. ej., un VTR) necesita para finalizar una operación (tal como el inicio de la reproducción de un programa). El sistema de programación 106 puede dar el mismo tipo de aviso de preparación previa al servidor de automatización 108, proporcionando a éste suficiente tiempo para que inicie una aplicación interactiva. Algunos sistemas de programación sólo admiten un valor de preparación previa. Si el tiempo de respuesta del servidor de automatización 108 es más corto que el valor de preparación previa, el servidor de automatización 108 introduce un determinado retardo adicional en el inicio de un evento del servidor de radiodifusión. Esta temporización de ajuste fino es llevada a cabo por el diseñador del sistema en las máquinas de estados de los eventos. Los estados "iniciado", "finalizado" y "cancelado" pueden introducir un cierto retardo antes de iniciar, finalizar o cancelar el evento del servidor de radiodifusión.
Aunque todos los eventos del servidor de radiodifusión comparten esta misma máquina de estados básica, la máquina de estados es diferente para cada tipo de evento. Los detalles de estas diferencias se describen más adelante.
Los disparos secundarios se tratan de la misma manera para todos los tipos de eventos. Los disparos secundarios representan un sistema para ampliar el servidor de automatización 108. Algunos sistemas de programación 106 funcionan con más señales que las de control básicas (precarga, preparación previa, en antena y fuera de antena). Por ejemplo, los disparos secundarios pueden enviar una señal de control 5 minutos antes de que finalice un programa, para avisar de ese modo al dispositivo que el programa está a punto de terminar. El servidor de automatización puede utilizar esta señal para actualizar la aplicación interactiva actual y avisar al telespectador que la aplicación interactiva está a punto de terminar. Deberá tenerse en cuenta que esto sólo constituye un ejemplo de empleo de los disparadores secundarios.
a) Evento tipo anuncio
Es la máquina de estados de evento más simple. Un evento de anuncio no finaliza ni se reinicia nunca, por lo tanto, pasa del estado "programado" al estado "iniciado" (en potencia, con algún disparador secundario) y finalmente al estado "cancelado". En la tabla siguiente, se resumen los estados, los mandatos atómicos que provocan la transición hacia éstos y las acciones realizadas en dichos estados.
\vskip1.000000\baselineskip
TABLA 10 Máquina de estados para evento tipo anuncio
14
\newpage
b) Evento tipo programa de televisión
La máquina de estados del evento de programa de televisión 512 es muy similar a la máquina de estados del evento de anuncio, pero también debe dar cuenta de la segmentación (descrita en la sección "Tipos de eventos").
A diferencia de lo que ocurre en un evento de anuncio, el mandato de cancelación sólo detiene el evento de programa de televisión, puesto que es posible que éste deba ser reanudado más adelante. El programa de televisión sólo puede ser cancelado cuando se recibe el mandato atómico de inicio del siguiente programa de televisión. En la tabla siguiente, se resumen los estados, los mandatos atómicos que provocan la transición hacia éstos y las acciones realizadas en dichos estados.
\vskip1.000000\baselineskip
TABLA 11 Máquina de estados para evento tipo programa de televisión
15
c) Tipos de eventos por omisión
Hay tres tipos diferentes de eventos por omisión: los eventos de programas de televisión por omisión, los eventos de anuncios por omisión y los eventos desconocidos por omisión. Los eventos por omisión se utilizan cuando no existe ninguna aplicación interactiva asociada al ID del programa.
A diferencia de lo que ocurre en un evento de anuncio, el mandato de cancelación sólo detiene un evento por omisión, puesto que es posible que éste deba ser reiniciado más adelante. El evento por omisión sólo se cancela cuando se cierra el servidor de automatización 108. La diferencia principal entre los eventos normales y los eventos por omisión es que hay casos en que dos ID de programas en secuencia pueden referirse a los mismos eventos por omisión. En este caso, es preferible no detener el evento por omisión y reiniciarlo de inmediato, sino dejar que siga reproduciéndose. Para que esto resulte eficaz, el estado "finalizado" en realidad no detiene el evento hasta que no se tiene la seguridad de que el siguiente mandato atómico de inicio no es también para este evento por omisión. Sin tener en cuenta el tipo de evento por omisión, en la tabla siguiente se resumen los estados, los mandatos atómicos que provocan la transición hacia éstos y las acciones realizadas en dichos estados.
TABLA 12 Máquina de estados para tipo de evento por omisión
16
9. Segmentación
En la Figura 12, se ilustra cómo se utiliza la segmentación de los programas de televisión para proporcionar al telespectador una presentación coherente, mantener la aplicación interactiva adecuada durante los diferentes segmentos del programa de televisión y, asimismo, proporcionar la aplicación interactiva adecuada durante los anuncios.
En la Figura 12, se representa un diagrama de traza de eventos del flujo de las señales de control, los mandatos atómicos y los mandatos del servidor de radiodifusión del sistema de programación 106, el módulo conversor (ideal) 502 y el gestor de eventos 504, durante el tratamiento de un programa de televisión segmentado. El programa de televisión, programa A, se emite en dos segmentos, A.1 y A.2, cada uno de los cuales presenta un ID de programa exclusivo. El anuncio X aparece entre los dos segmentos. Después del segmento A.2, viene el anuncio Y seguido de un nuevo programa, el programa B. El problema resuelto en este caso por la presente invención es el del mantenimiento de la misma interactividad durante los segmentos A.1 y A.2 (aunque los segmentos posean cada uno un ID de programa exclusivo), mientras se proporciona la interactividad, ya sea específica o por omisión, que acompaña al anuncio X y al anuncio Y. Para obtener este resultado, el gestor de eventos 504 debe establecer la correlación entre los ID de programa de ambos segmentos A.1 y A.2 y el mismo evento de radiodifusión (programa A) en la tabla de asociación de eventos. Esto se realiza mediante los diversos procedimientos descritos anteriormente. La secuencia de señales de control y de mandatos atómicos adopta, por lo tanto, la forma indicada a continuación.
Segmento de programa A.1
1200: En primer lugar, el sistema de programación 106 emite una señal de precarga A.1.
1202: A su vez, el módulo conversor 502 programa el segmento A.1.
1204: El gestor de eventos 504 crea una nueva máquina de estados 512 para este evento (programa A), almacena la correlación de este ID de programa y la máquina de estados en la tabla de asociación de eventos. La máquina de estados del programa A da la orden al servidor de radiodifusión 110 de programar la aplicación interactiva adecuada que se va a emitir con el programa A.
1206: A continuación, el sistema de programación 106 emite una señal de preparación previa o una señal de inicio para A.1.
1208: A su vez, el módulo conversor 502 inicia el segmento A.1, potencialmente después de un cierto retardo determinado por la cantidad de preparación previa y la cantidad de tiempo empleado por el gestor de eventos 504 y el servidor de radiodifusión 110 para iniciar el evento del servidor de radiodifusión.
1210: La máquina de estados del programa A del gestor de eventos en correspondencia con esto da al servidor de radiodifusión la orden de iniciar la aplicación interactiva para el programa A.
1212: El receptor de radiodifusión 120 ejecuta la aplicación interactiva del programa A que aparece en el dispositivo de pantalla (p. ej., el aparato de televisión) acoplado al receptor de radiodifusión 120.
Si el sistema de programación 106 ha emitido una señal de preparación previa, el módulo conversor 502 ignora la subsiguiente señal de inicio del sistema de programación 106, puesto que el programa A.1 ya habrá comenzado.
\vskip1.000000\baselineskip
Anuncio X
1214: Después de cierto tiempo, el sistema de programación 106 emite una señal de precarga para el anuncio X.
1216: A continuación, el módulo conversor 502 emite un mandato atómico de programación de anuncio X.
1218: El gestor de eventos emite un mandato de programación para que el servidor de radiodifusión 110 programe la aplicación interactiva (incluida la aplicación por omisión) para el anuncio X.
1220: A continuación, el sistema de programación 106 emite una señal de preparación previa o de inicio de anuncio.
1222 y 1224: Puesto que el módulo conversor 502 desconoce que existe otro segmento del programa A, se transmite un mandato de cancelación para el segmento A.1 y un mandato de inicio de anuncio X. (Si el sistema de programación 106 envía una señal de finalización de A.1, ésta se ignorará ya que antes se habrán recibido las señales de precarga y preparación previa para el anuncio X.)
1226 y 1228: Normalmente, el gestor de eventos 504 responde cancelando el segmento A.1. No obstante, el gestor de eventos 504 ignora temporalmente el mandato de cancelación y, en su lugar, emite un mandato de finalización de A.1 para detener la aplicación interactiva para el programa A, y un mandato de inicio de anuncio X para iniciar la ejecución de la aplicación interactiva del anuncio X.
1230 y 1232: Cuando el receptor de radiodifusión recibe estos mandatos, el receptor suspende la ejecución de la aplicación interactiva para el programa A, pero no la termina, e inicia la ejecución de la aplicación interactiva (o la aplicación por omisión) del anuncio X. La información de estado disponible (por ejemplo, la puntuación obtenida en un juego, el formulario particular que estaba observando el telespectador o una información similar) se conserva aunque la aplicación interactiva se suspenda. Otro efecto de la suspensión es, por ejemplo, la desaparición de la aplicación interactiva del programa A de la pantalla del televisor del telespectador, de tal forma que la aplicación interactiva del programa A no se presenta cuando el anuncio X está en pantalla, y la interactividad del anuncio X se lleva a cabo de forma adecuada.
El gestor de eventos 504 pospone el mandato de cancelación del módulo conversor hasta que puede determinar que no hay ningún segmento más del programa A, lo cual le es desconocido en ese momento. Esto sucede después, cuando el programa B se inicia de la manera indicada a continuación.
\vskip1.000000\baselineskip
Segmento de programa A.2
1234: Cuando el anuncio X está a punto de finalizar, el sistema de programación 106 emite una señal de precarga de A.2.
1236: El módulo conversor 502 emite un mandato de programación de A.2.
En este momento, la lógica de correlación 508 del gestor de eventos 504 determina que el ID de programa de este evento (segmento A.2) se correlaciona con la misma aplicación interactiva que el ID de programa del segmento A.1. En consecuencia, la lógica de correlación 508 encamina todos los mandatos para el segmento A.2 (según los respectivos ID de programa) hacia la máquina de estados del programa A. Puesto que la aplicación interactiva para este segmento del programa A ya se ha cargado en el receptor de radiodifusión, no es necesario que el servidor de radiodifusión realice ahora la precarga del mismo. Por lo tanto, el gestor de eventos no emite ningún otro mandato de programación.
1238: A continuación, el sistema de programación 106 emite una señal de preparación previa de A.2 o de inicio de A.2
\newpage
1240 y 1242: El módulo conversor 502 envía un mandato de cancelación para el anuncio X y un mandato de inicio para el segmento A.2.
1244 y 1246: En primer lugar, el gestor de eventos 504 da la orden al servidor de radiodifusión de cancelar la interactividad para el anuncio X y, a continuación, encamina el mandato de inicio hacia la máquina de estados del programa A que da la orden al servidor de radiodifusión de iniciar la aplicación interactiva asociada al programa A. Debido a que la aplicación interactiva para el programa A sólo fue suspendida previamente, ahora puede volver a funcionar (1248) con el estado en el que estaba antes del inicio del anuncio X.
Por lo tanto, si el programa A era un programa de juego y la aplicación interactiva era su correspondiente aplicación de juego, la suspensión de la aplicación para el anuncio X habrá determinado el almacenamiento en memoria del total de puntos alcanzado por el telespectador en el juego (y otros estados), con lo cual éstos podrán restaurarse cuando se emita el segmento A.2 y se reinicie la aplicación.
\vskip1.000000\baselineskip
Anuncio Y
1250: En algún momento posterior, el sistema de programación 106 emite una señal de precarga de anuncio Y.
1252: El módulo conversor 502 envía el mandato de programación del anuncio Y al gestor de eventos 504.
1254: El gestor de eventos 504 programa la interactividad para el anuncio Y en el servidor de radiodifusión.
1256: A continuación, el sistema de programación 106 emite una señal de preparación previa de anuncio Y o de inicio de anuncio Y.
1258 y 1260: El módulo conversor 502 envía un mandato de cancelación para el segmento A.2 y un mandato de inicio para el anuncio Y.
1262 y 1264: También en este caso, el gestor de eventos 504 pospone el mandato de cancelación y, en su lugar, da la orden al servidor de radiodifusión de detener la interactividad para el programa A e iniciar la interactividad, si la hubiera (incluida la interactividad por omisión), para el anuncio Y. La aplicación interactiva del programa A se suspende (1266), y se ejecuta la interactividad para el anuncio Y (1268).
También aquí, la máquina de estados para el programa A pospone la cancelación de la aplicación interactiva del segmento A.2, puesto que desconoce todavía si existe otro segmento del programa A.
\vskip1.000000\baselineskip
Programa B
1270: Cuando el anuncio Y está a punto de finalizar, el sistema de programación 106 emite una señal de precarga de programa B.
1272: El módulo conversor 502 programa el programa B.
1274: La lógica de correlación 508 del gestor de eventos determina que el ID del programa B es diferente del ID del programa A y, por lo tanto, deduce que no hay ningún segmento más para el programa A. Entonces, se crea una nueva máquina de estados para el programa B. A continuación, el gestor de eventos 504 emite un mandato de programación de programa B para que el servidor de radiodifusión programe la interactividad para el programa B. El gestor de eventos no cancela todavía la interactividad para el programa A, puesto que el programa B todavía no ha empezado.
1276: A continuación, el sistema de programación 106 emite una señal de preparación previa o una señal de inicio del programa B.
1278 y 1280: El módulo conversor 502 emite mandatos atómicos para cancelar el anuncio Y e iniciar el programa B.
1282 y 1284: El gestor de eventos 504 cancela el anuncio Y y, a continuación, encamina el mandato de inicio a la nueva hacia la máquina de estados del programa B.
1288: Cuando aparece el mandato de inicio del programa B, el gestor de eventos 504 puede cancelar con seguridad la interactividad para el segmento A.2 del programa A, puesto que es evidente que empieza un nuevo programa. Este mandato de cancelación no procede directamente del módulo conversor 502, sino que es sintetizado por la máquina de estados del programa A del gestor de eventos, basándose en el mandato de inicio para el programa B. Puesto que es posible programar el programa B algunas horas antes de su emisión, la interactividad del programa A no debe cancelarse hasta que comience realmente el programa B. Debe observarse también que la cancelación no puede tener lugar cuando se programa el evento B, debido a la posibilidad de programas consecutivos y debido a que el programa B puede programarse horas antes del tiempo de su inicio.
En algunos casos, no hay ningún anuncio (por ejemplo, el anuncio Y) entre dos programas de televisión (por ejemplo, el programa A y el programa B). Es decir, los dos programas pueden ser consecutivos (es decir, el programa B puede empezar justo después del programa A). En este caso, el mandato de cancelación del programa A 1288 aparece antes del mandato de inicio del programa B 1284.
En una forma de realización alternativa, el gestor de eventos 504 puede iniciar una aplicación interactiva antes de cancelar otra. Esto es deseable, por ejemplo, si la cancelación de una aplicación interactiva lleva más tiempo que la finalización de ésta. Por consiguiente, el inicio de la aplicación interactiva del programa B antes de la cancelación de la aplicación interactiva del programa A en los casos en que los dos programas no son consecutivos constituirá una optimización. En general, la forma de realización alternativa consiste en detener la aplicación interactiva previa, iniciar la siguiente aplicación interactiva y, finalmente, cancelar la aplicación interactiva previa.
E. Actualización de aplicaciones interactivas dinámicas
Como se ha descrito anteriormente, el servidor de radiodifusión 110 puede transmitir datos que actualizan o modifican las características, la interfaz del usuario o las funciones de una aplicación interactiva. Estas actualizaciones incluyen (de forma no restrictiva) actualizaciones de la información de la aplicación interactiva, actualizaciones de texto (p. ej., nuevas puntuaciones deportivas, anuncios clasificados, noticias, preguntas o respuestas de juegos, listas de invitados a un programa), actualizaciones de imágenes (p. ej, un nuevo mapa del tiempo), actualizaciones de sonidos y actualizaciones de archivos.
Cuando se considera la posibilidad de actualizar aplicaciones interactivas, resulta útil dividir las aplicaciones interactivas en tres clases:
1. Aplicación estática: este tipo de aplicación no recibe ninguna actualización durante su ejecución.
2. Aplicación dinámica: una aplicación dinámica es una aplicación que se actualiza con información nueva (habitualmente, mientras se está ejecutando). Un ejemplo de aplicación dinámica puede ser el de una aplicación electrónica de información dinámica de resultados deportivos que recibe las nuevas puntuaciones durante un partido de fútbol; análogamente, una aplicación interactiva de información dinámica electrónica de cotizaciones que recibe cotizaciones bursátiles actualizadas. La fuente de las actualizaciones de datos puede variar e incluye las transmisiones directas de datos en tiempo real, la recolocación de información web o las actualizaciones definidas estadísticamente transmitidas en momentos específicos (p. ej., preguntas y respuestas de una aplicación interactiva que acompaña a un programa de juego). La fuente de actualizaciones de datos puede hallarse en la entidad de radiodifusión nacional que genera actualizaciones nacionales o en el sitio local que genera actualizaciones locales. Como se ha indicado anteriormente, cada aplicación dinámica presenta un código de identificación de aplicación exclusivo.
3. Aplicación dinámica reeditada: es una aplicación interactiva que se reedita periódicamente para incluir nueva información, pero que reutiliza el mismo código de identificación de aplicación y permanece igual estructuralmente. Por lo tanto, las actualizaciones constituyen los nuevos datos para cada emisión de la aplicación con su programa acompañante. Un ejemplo de dicha aplicación interactiva es la que acompaña a un programa de televisión de variedades, tal como el programa de la NBC "Jay Leno Show". Aunque esta aplicación tiene el mismo aspecto cada noche, se actualiza a diario para incluir la información de los invitados de cada noche y otra información actual. La ventaja que diferencia este tipo de aplicación de una aplicación estática es que permite almacenar persistentemente la aplicación interactiva en la base de datos de aplicaciones interactivas 112, marcando los registros o las partes seleccionadas de la aplicación interactiva para indicar que se van a actualizar cuando se transmita la aplicación. Esto resulta ventajoso, porque permite a la entidad de radiodifusión 114 transmitir sólo las actualizaciones, en lugar de toda la aplicación interactiva.
Con referencia a la Figura 13, se representa una forma de realización de un sistema que proporciona actualizaciones para las aplicaciones interactivas dinámicas. Además de los diversos elementos descritos con respecto a la Figura 1, en esta implementación se incluye un gestor de actualizaciones 1300. El gestor de actualizaciones 1300 incluye dos módulos, un detector de códigos de contenidos interactivos 1302 y un lector de códigos de contenidos interactivos 1304. Generalmente, el detector de códigos 1302 identifica los códigos de identificación de aplicación interactiva de la señal recibida y los proporciona al servidor de automatización 108. El servidor de automatización 108 averigua el estado de la aplicación interactiva identificada y proporciona señales de control al lector de códigos 1304. El lector de códigos 1304 es capaz de leer la señal de radiodifusión e identificar las partes (los registros) que son actualizaciones de los correspondientes registros de la aplicación interactiva disponible en el servidor de radiodifusión 110. El servidor de automatización 108 proporciona mandatos al lector de códigos 1304 para que éste envíe dichas actualizaciones al servidor de radiodifusión 110 y éstas sean transmitidas a los dispositivos de recepción, o deje de enviar dichas actualizaciones. A continuación, el servidor de radiodifusión 110 proporciona las actualizaciones a la DIU 116 para que finalmente sean transmitidas al receptor de radiodifusión 120. Estas características permiten al servidor de radiodifusión 110 actualizar una aplicación interactiva, sin depender de la construcción de una forma actualizada de la aplicación por la entidad de radiodifusión. El receptor de radiodifusión 120 recibe los registros actualizados y los ejecuta junto con la aplicación interactiva subyacente.
Más particularmente, el detector de códigos 1302 recibe la señal de vídeo de radiodifusión de entrada desde la entidad de radiodifusión 114, y detecta diversas condiciones relacionadas con la presencia, la ausencia o el cambio de los códigos de identificación de la aplicación interactiva en la parte VBI de la señal (o en la correspondiente parte de otros transportes de datos). El gestor de actualizaciones 1300 inicia un nuevo detector de códigos 1302 para cada canal. El servidor de automatización 108, como se ha indicado, también mantiene un correspondiente conversor 502 para cada canal y una máquina de estados 510 para cada aplicación interactiva.
El detector de códigos 1302 examina el VBI para detectar la presencia de los registros de una aplicación interactiva, y lee el código de identificación de la aplicación en cada registro. Al recibir un primer código de identificación de la aplicación, el detector de códigos 1302 proporciona una señal del nuevo código de identificación a un correspondiente conversor 502 del servidor de automatización 108. Asimismo, si el detector de códigos 1302 detecta un cambio en el código de identificación de la aplicación, el detector de códigos 1302 también emite la señal del nuevo código de identificación.
Si el detector de códigos 1302 detecta un mandato de suspensión o de finalización, entonces el detector de códigos 1302 emite una correspondiente señal de suspensión o finalización. Si el detector de códigos 1302 detecta la ausencia de códigos de identificación de aplicación (por ejemplo, la ausencia de registros de aplicación interactiva), entonces se inicia un temporizador. El tiempo de expiración del temporizador es configurable por el usuario. Si no se ha recibido ningún registro de aplicación interactiva antes de que expire el tiempo, el detector de códigos 1302 emite una señal de ausencia de datos.
En otra forma de realización, el detector de códigos 1302 también examina la señal de radiodifusión para comprobar la presencia de señales de disparo particulares. Por ejemplo, las señales de disparo pueden transmitirse en líneas preservadas (por ejemplo, en la línea de subtitulación opcional, es decir, la línea 21). Las señales de disparo de la línea 21 contienen un identificador de contenido, tal como un código de identificación de aplicación interactiva, y un contador de duración (p. ej., 8 segundos) para controlar un temporizador de cuenta atrás. Por ejemplo, un contador de 30 segundos de duración iniciará un temporizador de cuenta atrás de 30 segundos. Cuando el temporizador expira, la aplicación interactiva (u otro tipo de contenido) se detiene. Si se recibe una señal de disparo, los registros de la aplicación interactiva se ignoran. En su lugar, el detector de códigos 1302 determina si hay algún cambio en el código de identificación de la aplicación, que en este caso se transmite en las líneas preservadas. Si el código de identificación ha cambiado, se envía una señal del nuevo código de identificación al conversor 502, y el temporizador se restablece para iniciar la cuenta atrás del contador de duración. Si el temporizador expira, entonces se envía un mandato de ausencia de datos al conversor.
En correspondencia con cada detector de códigos 1302, el servidor de automatización 108 mantiene un conversor 502 y un gestor de eventos 504. El conversor 502 recibe las diversas señales desde el detector de códigos 1302. Cada vez que se recibe una señal de preparación y de inicio, el conversor 502 inicia una nueva máquina de estados 510 (puesto que existe una nueva aplicación correspondiente), y efectúa la transición a través de ésta de la forma descrita anteriormente. Asimismo, el gestor de eventos 504 inicia un gestor de eventos 512 para recibir los mandatos atómicos 514 emitidos por la correspondiente máquina de estados del conversor 510.
En la Tabla 13 se resumen las relaciones entre los tipos de señales de control proporcionadas por el detector de códigos 1302 y las señales ideales del conversor 502.
TABLA 13
17
Como se ha descrito, el gestor de eventos 504 gestiona los eventos (aplicaciones interactivas) del servidor de radiodifusión 110 en respuesta a los mandatos atómicos del conversor 502, utilizando una máquina de estados para realizar el seguimiento del estado de cada evento. Cuando recibe un mandato de programación desde el conversor 502, el gestor de eventos 504 da la orden al servidor de radiodifusión 110 de iniciar y mantener un nuevo evento (aplicación interactiva) para la radiodifusión. Entonces, el servidor de radiodifusión 110 proporciona un ID de evento al gestor de eventos 504, para referirse a ese evento. El ID de evento es un identificador exclusivo de un caso particular de aplicación interactiva emitida.
En otra forma de realización, el detector de códigos 1302 incorpora directamente las funciones del conversor y mantiene su propia máquina de estados para cada aplicación interactiva que identifica. En consecuencia, el detector de códigos establece directamente la correlación entre los cambios de la señal de radiodifusión y los mandatos atómicos, y proporciona estos mandatos atómicos al gestor de eventos 504. Esta forma de realización pasa las funciones del conversor al detector de códigos 1302.
En cualquiera de las formas de realización, el gestor de eventos 504 incluye algunas funciones adicionales para interactuar con el lector de códigos 1304. Más particularmente, el gestor de eventos 504 proporciona dos mandatos adicionales para controlar el detector de códigos 1302. En primer lugar, al recibir un mandato atómico de inicio, el gestor de eventos 504 pasa al estado "iniciado" 1104, como se ha descrito anteriormente. En este caso, además de sus otras funciones, el gestor de eventos 504 transmite un mandato de inicio de actualizaciones al lector de códigos 1304 del canal, en el que se indica el código de aplicación interactiva y el correspondiente ID de evento proporcionado por el servidor de radiodifusión 110. Cuando el gestor de eventos recibe un mandato atómico de finalización, pasa al estado "finalizado" 1106 y transmite un mandato de finalización al lector de códigos 1304, que proporciona el código de identificación de la aplicación interactiva cuyas actualizaciones deben ser interrumpidas.
El lector de códigos 1304 es responsable de determinar qué registros de una aplicación interactiva se actualizan, y de proporcionar estos registros al servidor de radiodifusión 110. Como los otros módulos, el lector de códigos 1304 está orientado a canales y mantiene un estado separado en cada canal y una aplicación en cada canal. Para cada aplicación, el detector de códigos 1302 determina qué registros de la aplicación interactiva son actualizaciones y transmite estas actualizaciones al servidor de radiodifusión 110. Antes de recibir un mandato de inicio de actualizaciones, el lector de códigos 1304 almacena los registros actualizados en memoria caché. El lector de códigos 1304 empieza a proporcionar estas actualizaciones en respuesta al mandato de inicio de actualizaciones del gestor de eventos 504. El lector de códigos 1304 proporciona un mandato de actualización al servidor de radiodifusión 110, junto con la identificación de la aplicación interactiva, el ID de evento reconocido por el servidor de radiodifusión y el registro actualizado que se va a emitir. El servidor de radiodifusión 110 prepara los registros actualizados que serán emitidos por la DIU 116. En respuesta a un mandato de finalización del gestor de eventos 504, el lector de códigos 1304 deja de transmitir los registros actualizados al servidor de radiodifusión 110.
En algunas formas de realización, el servidor de radiodifusión 110 proporciona una aplicación interactiva para un programa de radiodifusión determinado, que es diferente de la aplicación interactiva codificada que recibe en la señal de radiodifusión, para transmitirla a los receptores de radiodifusión. El servidor de radiodifusión 110 puede modificar o sustituir por una aplicación diferente la aplicación interactiva recibida. La aplicación diferente puede ser una versión adaptada localmente de la aplicación recibida en un principio, que proporciona, por ejemplo, información que es importante localmente, tal como las ubicaciones comerciales para un distribuidor nacional, o proporciona un contenido mejorado, tal como unas aplicaciones de mayor ancho de banda (p. ej., en MPEG u otros formatos digitales).
En una forma de realización en la que se insertarán aplicaciones digitales en una secuencia de vídeo digital de radiodifusión, la unidad de inserción de datos 116 presenta la capacidad de inserción de formato MPEG u otros formatos digitales bien conocidos por las personas medianamente expertas en la materia (por ejemplo, una secuencia MPEG 1 ó 2). El servidor de radiodifusión 110 transmite el contenido interactivo al multiplexor del subsistema local que genera la secuencia MPEG. El multiplexor del subsistema local habitualmente presenta una puerta en serie o TCP/IP para recibir el tren de bits del contenido interactivo. Tras la recepción del tren de bits del contenido interactivo, el multiplexor añade el contenido interactivo a una secuencia de vídeo digital de salida, de conformidad con su funcionamiento normal. El multiplexor también puede eliminar y sustituir contenidos interactivos cuando sea necesario. Si la secuencia digital es vídeo digital por componentes en serie (una secuencia de vídeo digital basada en paquetes, especificada en la norma SMPTE 259M-C), se utilizará un codificador Norpak para añadir el contenido interactivo mediante la sustitución de los paquetes existentes por los nuevos paquetes que le han sido transmitidos por el servidor de radiodifusión local 110. Por otra parte, si se ha transmitido una versión digital de un contenido interactivo a un subsistema analógico 628, el servidor de radiodifusión interactivo 606 puede cambiar la aplicación digital por una aplicación analógica de menor ancho de banda. Si se ha transmitido una versión analógica de un contenido interactivo al sistema 100, primero se convierte la versión analógica en un programa digital o se cambia la versión analógica por un programa digital. Si se va a digitalizar la versión analógica, se utiliza un convertidor software analógico-digital para convertir la versión analógica en un programa digital que satisface los protocolos del subsistema local. En una forma de realización, el servidor de radiodifusión local 110 es capaz de suministrar varias aplicaciones. Por ejemplo, un subsistema de cabecera de cable puede suministrar secuencias analógicas y digitales para que las viviendas que disponen de receptores de radiodifusión digitales puedan recibir interactividad de alta calidad, mientras que las viviendas que disponen de receptores de radiodifusión analógicos pueden seguir recibiendo la interactividad más sencilla. En esta forma de realización, el servidor de radiodifusión local 110 selecciona las versiones perfeccionadas y las versiones sencillas del contenido interactivo y las inserta en las respectivas señales.
En estas formas de realización, por lo tanto, el gestor de actualizaciones 1300 permite el movimiento de los registros actualizados asociados con una aplicación interactiva recibida originalmente hacia su versión local adaptada que se está transmitiendo. Esto puede comportar un cambio en la capa de transporte (por ejemplo, desde la línea VBI hasta MPEG, o similar), pero permite integrar dichos registros en la aplicación local. Por consiguiente, el servidor de radiodifusión 110 puede proporcionar actualizaciones para la versión local adaptada de la aplicación, aun cuando la entidad de radiodifusión no haya creado inicialmente ninguna señal de radiodifusión en la que se combinaran las actualizaciones y la aplicación adaptada.
Para determinar qué registros de una aplicación interactiva son actualizaciones, y qué otros son registros estáticos, pueden utilizarse diversos procedimientos. Una forma de realización simple marca cada registro con un señalizador que indica si el registro es un registro estático o una actualización. (Los registros pueden ser actualizados por una entidad de radiodifusión nacional o en el sistema local.) Una vez que el lector de códigos 1304 ha leído cada registro de la aplicación interactiva que ha recibido, envía como actualizaciones los registros que contienen el señalizador al servidor de radiodifusión 110.
En una forma de realización más perfeccionada, se incluye un número de secuencia en cada registro. Los registros de la aplicación interactiva no actualizada se ponen a 0. Cada vez que se actualiza un registro, su número de secuencia se incrementa. El lector de códigos 1304 mantiene, para cada aplicación interactiva, una tabla que contiene los registros de la aplicación interactiva y sus números de secuencia (cada registro incluye un ID de registro). Cuando se recibe un registro para una aplicación interactiva, el lector de códigos 1304 compara el número de secuencia de su tabla con el número de secuencia del registro recibido. Si el ID de secuencia del registro recibido es superior al número de secuencia almacenado, el lector de códigos 1304 deduce que este registro es una actualización y lo almacena en memoria caché o lo envía al servidor de radiodifusión 110, según convenga. El lector de códigos 1304 también actualiza el número de secuencia almacenado en la tabla.
Esta forma de realización de numeración de secuencias es particularmente útil en las aplicaciones dinámicas reeditadas mencionadas anteriormente, que utilizan el mismo código de identificación interactivo, pero que necesitan actualizaciones diferentes cada vez que se emiten. Las versiones almacenadas localmente de estas aplicaciones interactivas contienen números de secuencia íntegramente constituidos por valores cero. Cada versión nacional actualizada de la aplicación interactiva contiene un número de secuencia de valor uno para todos los registros dinámicos, es decir, todos los registros que se van a actualizar. Por ejemplo, si la aplicación va a emitirse por la noche, los registros actualizados cada noche (p. ej., la lista de invitados) se numeran en secuencia con el valor "1". Puesto que el servidor de radiodifusión local 110 recarga la aplicación local cada vez que se emite, presentará los registros de valor 0 cada vez que esto ocurra. Por consiguiente, el lector de códigos 1304 identificará los números de secuencia actualizada en cada nueva emisión. Esto permite utilizar, a la entidad de radiodifusión nacional, la misma aplicación interactiva cada vez, cambiando simplemente los registros dinámicos. El trabajo adicional necesario para proporcionar actualizaciones cada noche se reduce, puesto que no es necesario que la entidad de radiodifusión nacional (o la entidad que proporciona la aplicación interactiva) utilice y efectúe el seguimiento de una aplicación diferente con un código de identificación de aplicación diferente cada noche.
La inclusión de señalizadores y de números de secuencia en los registros también puede tener lugar simultáneamente. La aplicación interactiva puede configurarse localmente para que sólo se añadan señalizadores de actualización a algunos de sus registros dinámicos. Esto es deseable, por ejemplo, si el operador del sistema local desea ignorar ciertas actualizaciones proporcionadas por una entidad de radiodifusión nacional. En esta forma de realización, el lector de códigos 1304 sólo transmitirá los registros que contienen señalizadores de actualización y números de secuencia incrementados.
Para perfeccionar todavía más la provisión de actualizaciones, será deseable asegurar que el registro actualizado (tal como el provisto por una aplicación interactiva de radiodifusión nacional) sea compatible con el registro al que reemplaza en la aplicación local. Esto se debe a que la sustitución de un tipo de registro (p. ej., texto) por otro tipo de registro (p. ej., un mapa de bits) puede determinar que la aplicación interactiva deje de funcionar en el receptor de radiodifusión, lo cual sería un resultado inadmisible. Aunque realizar la comprobación de todos los tipos de los registros en el lector de códigos 1304 es teóricamente posible, en la práctica, no resulta una implementación práctica, debido a la necesidad de procesar los registros a velocidades muy altas.
En consecuencia, una solución será utilizar sumas de verificación dobles (firmas) en cada aplicación interactiva.
La primera suma de verificación se calcula con la estructura de los registros actualizados, pero no con su contenido variable, es decir, las partes sin contenido de los registros actualizados. Por ejemplo, la suma de verificación puede calcularse con los ID de los registros y los nombres de los registros de todos los registros actualizados (cabe la posibilidad de utilizar también el tipo de registro o una combinación determinada de estos campos, por ejemplo, el ID y el tipo). Por ejemplo, el contenido de un registro denominado lista_invitados puede cambiar, pero el nombre permanecerá constante en todas las actualizaciones, así como el tipo. Esta suma de verificación "dinámica" se transmite junto con la aplicación interactiva, y es recibida por el lector de códigos 1304 y comparada con la correspondiente suma de verificación dinámica de los correspondientes registros de la aplicación interactiva local. Si las sumas de verificación coinciden, el lector de códigos 1304 deduce que los registros actualizados son compatibles con los correspondientes registros almacenados localmente.
La segunda suma de verificación se calcula a partir de todas las partes estáticas (invariables) de la aplicación interactiva, tanto en la versión nacional (o, en un sentido más amplio, remota) como en la versión almacenada localmente. Esta suma de verificación estática se transmite junto con la aplicación interactiva, y es recibida por el lector de códigos 1304 y comparada con la correspondiente suma de verificación estática de la versión almacenada localmente de la misma aplicación interactiva. Si estas sumas de verificación concuerdan, el lector de códigos 1304 deduce que las partes estáticas de la aplicación interactiva (por ejemplo, los guiones, los botones, las disposiciones de pantalla, etc.) son idénticas.
Si alguna de las sumas de verificación falla, el lector de códigos 1304 no proporciona los registros actualizados al servidor de radiodifusión 110. Puesto que sólo se comparan dos valores de suma de verificación, este procedimiento es muy rápido y no requiere la adición de ancho de banda por el lector de códigos 1304.
Además de las actualizaciones de datos dinámicas, el gestor de actualización 1300 tiene capacidad para pasar información de control desde una aplicación interactiva de radiodifusión nacional (o remota) hasta la aplicación interactiva local. Estas señales de control incluyen lo siguiente (sin limitarse a ello):
\bullet
Mandatos, tales como los que dan la orden de abandonar la aplicación interactiva y los que dan la orden de suspender la aplicación interactiva. Estos mandatos proporcionan otro mecanismo para controlar el funcionamiento de la aplicación interactiva.
\bullet
Información sobre el origen de la señal (por ejemplo, de qué servidor de radiodifusión nacional procede la señal).
\bullet
Información de los tiempos de ejecución de la aplicación. Dicha información (denominada información de "arriendos") puede utilizarse para controlar los intervalos de tiempo específicos durante los cuales puede iniciarse, ejecutarse o terminarse una aplicación. Para obtener más información sobre estas características, deberá consultarse la solicitud en trámite de número de serie 09/431.001.
Algunas de estas señales, o todas, pueden pasarse a la aplicación interactiva adaptada localmente según las necesidades del sistema de televisión interactiva.
F. Sumario
En resumen, por lo tanto, la presente invención proporciona diversos procedimientos y medios para controlar el comportamiento del contenido interactivo en sincronía con la emisión y la presentación visual de los programas de radiodifusión, incluidos los programas de televisión, los anuncios y similares. Los principios de la presente invención, incluida la utilización de señales de control nativas para determinar la identidad y el estado de los programas de radiodifusión y gestionar los estados de la interactividad asociada con los programas de radiodifusión, pueden implementarse de una diversidad de maneras diferentes que admiten numerosas variantes. Algunas de las variantes incluidas en el alcance de la presente invención son las indicadas a continuación.
El servidor de automatización 108 descrito en la presente memoria utiliza las máquinas de doble estado del módulo conversor 502 y el gestor de eventos 504. Aunque esto resulta beneficioso, existen otras formas de realización de la presente invención que pueden implementar el servidor de automatización 108 o sus funciones sin máquinas de estados (utilizando, por ejemplo, guiones programados para cada tipo de señal de control u otros mecanismos).
El conjunto de señales de control y estados ideales del módulo conversor 502, los mandatos atómicos proporcionados al gestor de eventos 504 o los mandatos generados para controlar un dispositivo tipo servidor de radiodifusión pueden variar para abarcar más o menos señales y mandatos. Asimismo, las acciones específicas en cada uno de los estados pueden variar. Por ejemplo, además de los mandatos de finalización o cancelación, puede utilizarse un mandato de reanudación o de reanudación con retardo para un control más complejo. El mandato de almacenamiento puede dar la orden al receptor de radiodifusión 120 de guardar los datos generados durante la interactividad para su posterior recuperación. Este mandato puede generarse, por ejemplo, como respuesta a condiciones de error, cambios de canal u otros eventos, para guardar los datos que han sido creados por el usuario o la interactividad. El mandato de envío o carga puede dar la orden al receptor de radiodifusión de transmitir, hasta un mecanismo de recopilación, los datos que han sido creados/almacenados (por ejemplo, para realizar la compra de un producto por medio de una aplicación interactiva de compras).
Los tipos de interactividad que pueden ser controlados por el servidor de automatización 108 y la presente invención pueden variar y no se limitan a las aplicaciones interactivas existentes. Está previsto que la interactividad tipo página web o combinaciones de páginas web y aplicaciones interactivas pueda ser controlada utilizando los principios de la presente invención.
Los tiempos de envío de los mandatos al servidor de radiodifusión o un dispositivo similar pueden variar, dependiendo del ancho de banda, la velocidad de conexión para transmitir los datos y el tiempo de respuesta de ejecución del receptor de radiodifusión con respecto a la rapidez con la que puede presentar una imagen de televisión. Por lo tanto, los mandatos podrán enviarse antes, bastante antes, exactamente en el mismo momento o justo después de que tenga lugar el evento de radiodifusión subyacente. Los tiempos de los mandatos pueden optimizarse para aprovechar la información de que se dispone tan pronto como sea posible.
Los medios que permiten proporcionar las señales de control al servidor de automatización o sus equivalentes pueden variar. Estos medios incluyen los datos binarios a través de una puerta en serie, una LAN o una interfaz de telecomunicaciones con el sistema de programación, o los datos binarios codificados en una señal de vídeo analógica o digital.
\newpage
En consecuencia, deberá tenerse en cuenta que la presente invención no está limitada intrínsecamente por los detalles de las formas de realización preferidas proporcionadas en la presente memoria, sino por el alcance de las reivindicaciones subsiguientes.

Claims (27)

1. Procedimiento implementado por ordenador para actualizar una emisión de una aplicación interactiva desde un sistema de radiodifusión (114 y 116) hasta un dispositivo de recepción (120), a través de unos medios de transmisión (118), comprendiendo el procedimiento las etapas siguientes:
recibir en el sistema de radiodifusión una señal de radiodifusión que comprende por lo menos un registro de una primera aplicación interactiva (115); caracterizado porque
se selecciona una segunda aplicación interactiva (115), y se emiten los registros de la segunda aplicación interactiva hasta el dispositivo de recepción (120), en lugar de por lo menos algunos de los registros de la primera aplicación interactiva, para la ejecución de la segunda aplicación interactiva por el dispositivo de recepción;
se recibe en el sistema de radiodifusión la señal de radiodifusión de uno o más registros adicionales de la primera aplicación interactiva; y
se emiten los registros adicionales seleccionados desde el sistema de radiodifusión hasta el dispositivo de recepción, para la ejecución de la segunda aplicación interactiva en conjunción con los registros adicionales.
2. Procedimiento según la reivindicación 1, en el que la segunda aplicación interactiva es una versión adaptada de la primera aplicación interactiva.
3. Procedimiento según la reivindicación 1, en el que la primera aplicación interactiva se emite a través de un primer protocolo de transporte, y la segunda aplicación interactiva se emite a través de un segundo protocolo de transporte.
4. Procedimiento según la reivindicación 1, en el que la primera aplicación interactiva se emite a través de un protocolo de transporte analógico, y la segunda aplicación interactiva se emite a través de un protocolo de transporte digital.
5. Procedimiento según la reivindicación 4, en el que el protocolo de transporte analógico es el intervalo de borrado vertical de una señal de radiodifusión de televisión analógica.
6. Procedimiento según la reivindicación 4, en el que el protocolo de transporte digital es una señal MPEG.
7. Procedimiento según la reivindicación 4, en el que el protocolo de transporte digital es una señal ATVEF.
8. Procedimiento según la reivindicación 4, en el que el protocolo de transporte digital es una señal HTTP.
9. Procedimiento según la reivindicación 4, en el que la emisión de los registros adicionales hasta el dispositivo de recepción comprende asimismo la conversión del formato de los registros actualizados, que es un formato compatible con el protocolo de transporte analógico, en un formato compatible con el protocolo de transporte digital.
10. Procedimiento según la reivindicación 1, en el que la emisión de los registros adicionales actualizados seleccionados hasta el dispositivo de recepción comprende asimismo la selección de un registro adicional que es una actualización de un correspondiente registro de la segunda aplicación interactiva.
11. Procedimiento según la reivindicación 10, en el que la selección de un registro adicional que es una actualización de un correspondiente registro de la segunda aplicación interactiva comprende asimismo las etapas siguien-
tes:
almacenar para cada registro de la primera aplicación interactiva un número de secuencia actual,
determinar la superación o no, por el número de secuencia del registro adicional de la primera aplicación interactiva recibido, del número de secuencia actual del registro; y
si se determina que el número de secuencia sobrepasa el número de secuencia almacenado, seleccionar el registro adicional y ajustar el número de secuencia almacenado para el registro adicional al número de secuencia recibido.
12. Procedimiento según la reivindicación 10, en el que la selección de un registro adicional que es una actualización de un correspondiente registro de la segunda aplicación interactiva comprende asimismo las etapas siguien-
tes:
almacenar para cada registro de la primera aplicación interactiva un número de secuencia actual;
identificar para cada registro adicional de la primera aplicación interactiva un señalizador de actualización para determinar si el registro es o no una actualización;
para cada registro adicional que presenta un señalizador de actualización, determinar la superación o no, por el número de secuencia del registro adicional de la aplicación interactiva recibido, el número de secuencia actual del registro para determinar si se utiliza o no el registro adicional; y
si se determina que el número de secuencia sobrepasa el número de secuencia almacenado, ajustar el número de secuencia almacenado del registro adicional al número de secuencia recibido.
13. Procedimiento según la reivindicación 1, en el que la emisión de un registro adicional seleccionado hasta el dispositivo de recepción comprende asimismo la emisión de un registro adicional actualizado sólo si el registro adicional es compatible con un correspondiente registro de la segunda aplicación interactiva.
14. Procedimiento según la reivindicación 1, en el que la emisión de los registros adicionales seleccionados hasta el dispositivo de recepción comprende las etapas siguientes: determinar la compatibilidad o incompatibilidad de los registros adicionales con los correspondientes registros de la segunda aplicación interactiva,
comparar una primera suma de verificación de las partes sin contenido de los registros adicionales de la primera aplicación interactiva con una primera suma de verificación de las partes sin contenido de los correspondientes registros que contienen un contenido variable.
15. Procedimiento según la reivindicación 14, en el que las partes sin contenido de los registros incluyen por lo menos uno de los elementos de entre el grupo constituido por:
ID del registro;
tipo del registro; y
nombre del registro.
16. Procedimiento según la reivindicación 14, en el que la emisión de los registros adicionales seleccionados hasta el dispositivo de recepción comprende asimismo la etapa siguiente: comparar una segunda suma de verificación de las partes estáticas de los registros de la primera aplicación interactiva con una segunda suma de verificación de las partes estáticas de los registros de la segunda aplicación interactiva.
17. Procedimiento según la reivindicación 1, que comprende asimismo las etapas siguientes:
recibir en el sistema de radiodifusión en la señal de radiodifusión información de control para controlar la ejecución de la segunda aplicación interactiva en el dispositivo de recepción; y
emitir la información de control hasta el dispositivo de recepción.
18. Sistema para actualizar una emisión de una aplicación interactiva desde un sistema de radiodifusión (114 y 116) hasta un dispositivo de recepción (120), a través de unos medios de transmisión (118), estando el sistema caracterizado porque presenta:
un detector de códigos (502 y 1302) adaptado para recibir una señal de radiodifusión e identificar en la señal los códigos relacionados con un cambio de estado (802, 804, 806, 808, 1102, 1104, 1106 y 1108) de una primera aplicación interactiva (115), y que proporciona señales de salida que indican el cambio de estado;
un servidor que mantiene información de estado para la primera aplicación interactiva en respuesta a las señales de salida del detector de códigos, y que, en respuesta al estado de la primera aplicación interactiva, genera mandatos para iniciar o detener la generación de registros actualizados de la aplicación interactiva:
un lector de códigos (1304), adaptado para leer los códigos de una aplicación interactiva e identificar los registros de la primera aplicación interactiva que son actualizaciones de los correspondientes registros de una segunda aplicación interactiva (115) almacenados en un servidor de radiodifusión (110), y acoplado comunicativamente con el servidor, que proporciona selectivamente los registros actualizados al servidor de radiodifusión (110) en respuesta a los mandatos del servidor; y
un servidor de radiodifusión (110) que emite la segunda aplicación interactiva a los dispositivos de recepción para que éstos la ejecuten, en lugar de la primera aplicación interactiva, y que emite selectivamente los registros actualizados a los dispositivos de recepción, para la ejecución de la segunda aplicación interactiva en conjunción con los registros actualizados.
19. Sistema según la reivindicación 18, en el que el detector de códigos identifica los códigos relacionados con un cambio del estado de la aplicación interactiva, detectando los cambios del código de identificación de la aplicación interactiva.
\newpage
20. Sistema según la reivindicación 18, en el que el detector de códigos identifica los códigos relacionados con un cambio del estado de la aplicación interactiva, detectando un nuevo código de identificación de aplicación interactiva.
21. Sistema según la reivindicación 20, en el que el servidor, en respuesta a una señal de salida del detector de códigos que indica un nuevo código de identificación interactiva, da la orden al lector de códigos de iniciar la provisión de registros actualizados del servidor de radiodifusión.
22. Sistema según la reivindicación 18, en el que el detector de códigos identifica los códigos relacionados con un cambio del estado de la aplicación interactiva, detectando la ausencia del código de identificación de la aplicación interactiva en la señal de radiodifusión durante un período de tiempo predeterminado.
23. Sistema según la reivindicación 22, en el que el servidor, en respuesta a una señal de salida del detector de códigos que indica la ausencia del código de identificación de la aplicación interactiva durante el período predeterminado, da la orden al lector de códigos de interrumpir la provisión de registros actualizados de la segunda aplicación interactiva al servidor de radiodifusión.
24. Sistema según la reivindicación 18, en el que el lector de códigos almacena en memoria caché los registros actualizados antes de recibir, desde el servidor, el mandato de proporcionar los registros actualizados al servidor de radiodifusión.
25. Sistema según la reivindicación 18, en el que el detector de códigos detecta mandatos para controlar la ejecución de la primera aplicación interactiva en una parte preservada de la señal de radiodifusión, y el lector de códigos proporciona los mandatos al servidor de radiodifusión para que sean emitidos hasta el dispositivo de recepción.
26. Sistema según la reivindicación 18, que comprende asimismo unos medios para realizar las etapas de procedimiento según cualquiera de las reivindicaciones 2 a 16.
27. Medios legibles por ordenador para implementar un procedimiento para actualizar la emisión de una aplicación interactiva según una de las reivindicaciones 1 a 17.
ES02731509T 2001-04-25 2002-04-25 Actualizacion sincronica de aplicaciones interactivas dinamicas. Expired - Lifetime ES2278025T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/843,614 US7222155B1 (en) 1999-06-15 2001-04-25 Synchronous updating of dynamic interactive applications
US843614 2001-04-25

Publications (1)

Publication Number Publication Date
ES2278025T3 true ES2278025T3 (es) 2007-08-01

Family

ID=25290526

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02731509T Expired - Lifetime ES2278025T3 (es) 2001-04-25 2002-04-25 Actualizacion sincronica de aplicaciones interactivas dinamicas.

Country Status (8)

Country Link
EP (1) EP1381961B1 (es)
JP (1) JP4724420B2 (es)
AT (1) ATE349854T1 (es)
AU (1) AU2002303484B2 (es)
CA (1) CA2445186A1 (es)
DE (1) DE60217091T2 (es)
ES (1) ES2278025T3 (es)
WO (1) WO2002086746A1 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818438A (en) 1995-04-25 1998-10-06 Bellsouth Corporation System and method for providing television services
US7702995B2 (en) 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US8936101B2 (en) 2008-07-17 2015-01-20 Halliburton Energy Services, Inc. Interventionless set packer and setting method for same
US9788058B2 (en) 2000-04-24 2017-10-10 Comcast Cable Communications Management, Llc Method and system for automatic insertion of interactive TV triggers into a broadcast data stream
AUPS300302A0 (en) * 2002-06-17 2002-07-11 Itvworld.Com Australia Pty Ltd Managing interactive broadcasting services
US20040237120A1 (en) * 2003-05-22 2004-11-25 Lewin Blake P. Systems and methods for dynamically generating and distributing synchronized enhancements to a broadcast signal
JP2007515092A (ja) 2003-12-18 2007-06-07 松下電器産業株式会社 プログラムデータファイル保存方法および認証プログラム実行方法
KR20110031506A (ko) 2003-12-18 2011-03-28 파나소닉 주식회사 애플리케이션 프로그램을 인증 및 실행하는 방법
US8286203B2 (en) 2003-12-19 2012-10-09 At&T Intellectual Property I, L.P. System and method for enhanced hot key delivery
US20090300200A1 (en) * 2004-06-30 2009-12-03 Robert Jochemsen Content managing module and apparatus comprising such content managing module as well as method for controlling interactive applications
EP1696321A1 (en) * 2005-02-23 2006-08-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for executing software applications
US7805750B2 (en) * 2005-04-15 2010-09-28 Scientific-Atlanta, Inc. Storage control system
US7721318B2 (en) 2005-04-15 2010-05-18 Scientific-Atlanta, Inc. Uplink signaling for global decoder control
US7810131B2 (en) 2005-04-15 2010-10-05 Scientific-Atlanta, Llc Control system with global control stream for controlling a plurality of decoders
CN100486329C (zh) * 2005-11-16 2009-05-06 中兴通讯股份有限公司 一种iptv与流媒体设备的接口适配方法
US8402503B2 (en) 2006-02-08 2013-03-19 At& T Intellectual Property I, L.P. Interactive program manager and methods for presenting program content
EP1881667A1 (en) * 2006-07-17 2008-01-23 Motorola, Inc., A Corporation of the State of Delaware; Apparatus and method for presenting an event during a broadcast
KR101673426B1 (ko) * 2009-04-01 2016-11-07 포스월 미디어, 인코포레이티드 양방향 콘텐츠로 비디오 광고를 강화시키기 위한 시스템들, 방법들 및 장치들
WO2012157741A1 (ja) * 2011-05-19 2012-11-22 日本放送協会 放送機器
US8935719B2 (en) 2011-08-25 2015-01-13 Comcast Cable Communications, Llc Application triggering
US9414114B2 (en) 2013-03-13 2016-08-09 Comcast Cable Holdings, Llc Selective interactivity
US11076205B2 (en) 2014-03-07 2021-07-27 Comcast Cable Communications, Llc Retrieving supplemental content
JP6612805B2 (ja) * 2017-03-24 2019-11-27 マクセル株式会社 放送受信装置及びキャッシュ制御方法
JP6892490B2 (ja) * 2017-03-24 2021-06-23 マクセル株式会社 放送受信装置
CN107920277A (zh) * 2017-11-06 2018-04-17 深圳创维-Rgb电子有限公司 Epg信息扩充方法、装置及计算机可读存储介质
CN110413347B (zh) * 2019-07-31 2023-08-18 Oppo广东移动通信有限公司 应用程序中广告的处理方法、装置、存储介质及终端

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5861881A (en) * 1991-11-25 1999-01-19 Actv, Inc. Interactive computer system for providing an interactive presentation with personalized video, audio and graphics responses for multiple viewers
EP0788714B1 (en) * 1994-10-24 2006-03-22 Intel Corporation Video indexing protocol
US6021433A (en) * 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
US5961603A (en) * 1996-04-10 1999-10-05 Worldgate Communications, Inc. Access system and method for providing interactive access to an information source through a networked distribution system
ES2235296T3 (es) * 1998-09-11 2005-07-01 Two Way Media Limited Distribucion de aplicaciones interactivas.

Also Published As

Publication number Publication date
EP1381961A4 (en) 2005-03-09
JP4724420B2 (ja) 2011-07-13
DE60217091T2 (de) 2007-06-21
EP1381961B1 (en) 2006-12-27
ATE349854T1 (de) 2007-01-15
EP1381961A1 (en) 2004-01-21
AU2002303484B2 (en) 2006-06-15
JP2005527171A (ja) 2005-09-08
WO2002086746A8 (en) 2004-01-08
WO2002086746A1 (en) 2002-10-31
CA2445186A1 (en) 2002-10-31
DE60217091D1 (de) 2007-02-08

Similar Documents

Publication Publication Date Title
ES2278025T3 (es) Actualizacion sincronica de aplicaciones interactivas dinamicas.
US7941564B2 (en) Synchronous updating of dynamic interactive applications
JP4972258B2 (ja) 放送プログラムとの同期動作を維持するための放送及びインタラクティブ・アプリケーションの実行の自動制御
US7028327B1 (en) Using the electronic program guide to synchronize interactivity with broadcast programs
KR100530295B1 (ko) 라이브 프로그래밍 이벤트를 구비하여 완전한 대화성을 제공하는 디지털 대화형 시스템 및 방법
EP1269750B1 (en) Ensuring reliable delivery of interactive content
US20020010928A1 (en) Method and system for integrating internet advertising with television commercials
AU2002303484A1 (en) Synchronous updating of dynamic interactive applications
WO2003043322A3 (en) Remote re-creation of data in a television system
KR20010033896A (ko) 단방향 데이터 스트림을 위한 양방향 접속을 시뮬레이션하기 위한 호스트 장치
US20030063217A1 (en) Interactive television with embedded universal time codes
EP1749402A2 (en) Display of enhanced content
KR20040096014A (ko) 디지털 방송에서의 광고 방법
JP2007504764A (ja) 識別子が放送番組内に存在する場合のタイムベースの停止
CN100586192C (zh) 视听节目的同步系统和方法、相关设备和方法
CA2567497C (en) Display of enhanced content
US8132223B2 (en) Display of enhanced content
KR20020062022A (ko) 쌍방향 콘텐츠 재생이 가능한 디지털 텔레비젼 수신기 및그 방송시스템
US20030025834A1 (en) Video synchronisation and information management system
EP1410634B1 (en) System and method for inserting graphics in a video signal