ES2147719T3 - Metodo para controlar la ejecucion de un programa de audio y video interactivo. - Google Patents
Metodo para controlar la ejecucion de un programa de audio y video interactivo.Info
- Publication number
- ES2147719T3 ES2147719T3 ES99115043T ES99115043T ES2147719T3 ES 2147719 T3 ES2147719 T3 ES 2147719T3 ES 99115043 T ES99115043 T ES 99115043T ES 99115043 T ES99115043 T ES 99115043T ES 2147719 T3 ES2147719 T3 ES 2147719T3
- Authority
- ES
- Spain
- Prior art keywords
- execution
- message
- program
- avi
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Circuits Of Receivers In General (AREA)
- Television Signal Processing For Recording (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
EN UN RECEPTOR INTERACTIVO AUDIO - VIDEO (RIAV), QUE RECIBE UNA CORRIENTE EN PAQUETE, QUE INCLUYE UN DIRECTORIO Y UN PROGRAMA RIAV, CON UN IDENTIFICADOR ASOCIADO EN EL DIRECTORIO, SE EXPONE UN PROCEDIMIENTO PARA CONTROLAR LA EJECUCION DEL PROGRAMA RIAV, Y QUE COMPRENDE LOS PASOS SIGUIENTES. EN PRIMER LUGAR, CARGAR EL PROGRAMA RIAV EN UNA MEMORIA, EN RESPUESTA A LA PRESENCIA DEL PROGRAMA RIAV EN LA CORRIENTE EN PAQUETE, A CONTINUACION, EMPEZAR LA EJECUCION DEL PROGRAMA RIAV CARGADO. Y, POR ULTIMO, REDUCIR AL MAXIMO LA EJECUCION DEL PROGRAMA RIAV CUANDO SE DETECTA EN LA CORRIENTE EN PAQUETE UN DIRECTORIO QUE IDENTIFICA UN DIFERENTE PROGRAMA RIAV.
Description
Método para controlar la ejecución de un programa
de audio y video interactivo.
La presente invención se refiere a un método para
controlar la ejecución de un componente de programas ejecutables
interactivos de audio y vídeo (AVI).
Se han propuesto sistemas de televisión
interactivos en los que un receptor de televisión incluye un
procesador programable por el emisor y que es capaz de responder a
datos introducidos por el usuario, generar gráficos en pantalla
superpuestos en la emisión de vídeo, generar sonidos combinados con
la emisión de audio e intercambiar datos con el emisor y otro
servicio exterior de procesamiento de datos. En dicho sistema, el
lugar de la emisión incluye un sistema informático para generar
información sobre programas de aplicación interactiva, incluyendo
códigos y datos ejecutables, y combinando la información de los
programas de aplicación interactiva con los componentes de audio y
vídeo de la señal de televisión asociada, como un componente
adicional. El procesador del receptor de televisión recibe desde el
emisor la información de los programas de aplicación interactiva,
ejecuta el programa de aplicación interactiva que esa información
representa, generando los gráficos y sonidos que hay que combinar
con el audio y el vídeo de la televisión y procesando las entradas
del usuario recibidas a través de un mando a distancia.
En un sistema AVI propuesto, la señal AVI
compuesta del emisor es emitida en forma de flujo de datos
empaquetados, incluyendo una serie de servicios de paquetes
multiplexados en el tiempo. Cada servicio de paquetes transporta una
señal de componente diferente de las que componen la señal AVI
compuesta. Por ejemplo, un servicio transporta el componente de
vídeo, otro el componente de audio y, otro más, el componente de
información de los programas de aplicación interactiva. Pueden
existir además otros servicios que transporten los canales de audio
SAP y estéreo, y/o subtitulado codificado para personas con
dificultades auditivas, etc. Además, algunos flujos de datos
empaquetados podrían incluir servicios de paquetes que transportan
señales de componentes para más de un programa AVI. Cada servicio de
paquetes cuenta con un identificador único de componente de
servicio (SCID) asociado con él y los paquetes en ese servicio de
paquetes incluyen, cada uno, ese identificador de servicios.
Además, en el sistema de AVI propuesto, un
servicio de paquetes transporta una guía de programas e incluye un
identificador predeterminado de servicio. Los datos transportados
por el servicio de paquetes de guía de programas asocian los
componentes de un programa AVI con los identificadores de servicio
de los servicios de paquetes que llevan esos componentes. Con estos
datos, pueden extraerse del flujo de paquetes los servicios de
paquetes que transportan los componentes del programa AVI
deseado.
Las señales de componente en el flujo de datos
empaquetados de la señal AVI son transportadas por una o más
unidades de transmisión, consistentes cada una en una serie de
paquetes. El primer paquete de cualquier unidad de transmisión es el
paquete de cabecera, y los paquetes restantes de la unidad de
transmisión son paquetes de datos asociados. El paquete de cabecera
contiene información sobre los datos posteriores, y los paquetes de
datos asociados transportan los datos que forman esa porción de la
señal de componente. Unidades de transmisión diferentes podrían
incluir un número distinto de paquetes de datos, y la partición de
las señales de los componentes en unidades de transmisión podría
verse influida por la sincronización necesaria para distribuir las
diferentes señales de componentes a las localizaciones de los
espectadores, a las horas deseadas, u otras consideraciones en
tiempo real.
El componente de información de los programas de
aplicación interactiva está compuesto por uno o más códigos módulos
de códigos (que contienen el código ejecutable), posiblemente uno o
más módulos de datos, y un módulo de directorios que incluye los
datos que describen los módulos de códigos y datos que constituyen
el componente de los programas de aplicación interactiva. Estos
módulos se repiten continuamente en el flujo de componentes de
datos del programa de aplicación. Los módulos se identifican cada
uno de una forma exclusiva, y son transportados por unidades de
transmisión, como se ha descrito anteriormente, en las que el
paquete de cabecera contiene el identificador del módulo y la
localización dentro de ese módulo al que pertenecen los datos en
los siguientes paquetes de datos. El componente de información de
los programas de aplicación interactiva incluye también una señal
especial para controlar la ejecución del programa de aplicación AVI.
Por ejemplo, una señal puede indicar a un pro de aplicación AVI,
que se ejecuta en ese momento, que suspenda la ejecución; otro
podría indicar a un pro de aplicación AVI, actualmente suspendido,
que reanude la ejecución; y otro podría indicar al programa de
aplicación de AVI, ejecutándose en ese momento, que termine la
ejecución. Estas señales podrían incorporarse a los paquetes de
señales dentro del servicio de paquetes de componentes del programa
AVI.
Un procesador en un receptor AVI, bajo el control
del cargador del sistema, extrae primero el módulo del directorio
del flujo de datos y utiliza la información incluida en el
directorio para determinar qué módulo de código hay que ejecutar
primero. Ese módulo de código, denominado módulo de autoarranque,
se extrae posteriormente del flujo de datos y se carga en la
memoria. Cuando el módulo de autoarranque se ha cargado
completamente en la memoria, el procesador comienza a ejecutar ese
módulo de código. Durante el curso de su ejecución, dicho módulo de
código podría solicitar datos de los módulos de datos identificados
en el módulo del directorio. Esos módulos de datos se extraerán
entonces y se cargarán en la memoria. Cuando el módulo se ha
cargado completamente en la memoria, se informa al módulo de código
solicitante, y prosigue la ejecución para procesar esos datos. Es
posible también que el módulo de código se encadene a un módulo
posterior. En ese caso, el módulo de código actual solicita
encadenarse a un nuevo módulo de código listado en el módulo del
directorio, y se libera su espacio de memoria. El módulo de código
solicitado se extrae entonces del flujo de datos y se carga en la
memoria. Una vez cargado completamente en la memoria, se ejecuta.
Hay otras funciones posibles que se describirán más adelante.
A diferencia de otros sistemas informáticos
distribuidos, el componente del programa AVI que está siendo
recibido por el receptor AVI podría cambiar en cualquier momento.
Por ejemplo, el programa AVI podría interrumpirse por un anuncio AVI
o no AVI que lógicamente incluye un programa AVI diferente. O un
espectador podría cambiar los canales de un programa AVI a otro
programa AVI. Es necesario mantener la sincronización correcta entre
el código ejecutable AVI y el sonido y los gráficos que se están
generando por dicho código y los componentes de audio y vídeo que
se están recibiendo.
De acuerdo con un aspecto de la presente
invención, se suministra un método para controlar la ejecución de
un programa interactivo de audio y vídeo (AVI) en un receptor AVI
que reciba un flujo de paquetes, que incluya un programa AVI y
señales de ejecución, incorporando el receptor un controlador de
ejecución (410) para controlar la ejecución del programa AVI, y
estando el método caracterizado por las etapas siguientes: en el
controlador de ejecución: cargar el programa AVI en una memoria
(412) en respuesta a la presencia del programa AVI en el flujo de
paquetes; enviar un mensaje de activar la alternación al programa
AVI en respuesta a una entrada del usuario; enviar un mensaje de
salida al programa AVI en respuesta a una señal de finalización de
ejecución en el flujo de paquetes; enviar un mensaje de suspensión
al programa AVI en respuesta a una señal de ejecución de suspensión
en el flujo de paquetes; y enviar un mensaje de continuación al
programa AVI en respuesta a una señal de ejecución de continuación
en el flujo de paquetes; y en el programa AVI, ejecución de lo
siguiente: un estado inactivo (61), en el que el programa AVI está
inactivo; un estado activo (63), en el que el programa AVI se está
ejecutando; y un estado suspendido (65), en el que se suspende la
ejecución del programa AVI; entrar al estado inactivo, en respuesta
a la caga del programa AVI en la memoria; detener la ejecución, y
descargar el programa AVI de la memoria en respuesta al mensaje de
salida; cuando se encuentra en el estado inactivo, adoptarse el
estado activo en respuesta a un mensaje de activar la alternación;
cuando se encuentra en el estado activo, adoptarse el estado
inactivo en respuesta a un mensaje de activar la alternación; y
adoptarse el estado suspendido en respuesta a un mensaje de
suspensión; y cuando se encuentre en el estado suspendido:
adoptarse el estado activo en respuesta a un mensaje de
continuación; y adoptarse el estado inactivo en respuesta a un
mensaje de activar la alternación.
De acuerdo con un segundo aspecto de la
invención, se proporciona un método para controlar la ejecución de
un programa interactivo de audio y vídeo (AVI) en un receptor AVI
que reciba de forma selectiva uno de los muchos flujos de paquetes
bajo el control de un usuario, incluyendo cada flujo de paquetes un
programa AVI con un identificador, y señales de ejecución,
incorporando el receptor un controlador de ejecución (410) para
controlar la ejecución del programa AVI, y caracterizándose el
método por las etapas siguientes: en el controlador de ejecución:
cargar el programa AVI en una memoria (412) en respuesta a la
presencia del programa AVI en el flujo de paquetes seleccionado de
entre otros muchos, almacenar el identificador del programa de
aplicación cargado en un lugar correspondiente en la memoria y
buscar bloques almacenados previamente en la memoria que contengan
identificadores de programas AVI minimizados y si un identificador
contenido en un bloque coincide con el identificador del programa
AVI cargado en la memoria, ajustar el estado y el entorno de
ejecución del programa AVI recién cargado a un estado y entorno de
ejecución incluido en el bloque coincidente; enviar un mensaje de
activar la alternación al programa AVI en respuesta a una entrada
del usuario; enviar un mensaje de salida al programa AVI en
respuesta a una señal de finalizar ejecución en el flujo de paquetes
seleccionado de entre otros muchos; enviar un mensaje de suspensión
al programa AVI en respuesta a una señal de ejecución de suspensión
en el flujo de paquetes seleccionado; y enviar un mensaje de
continuación al programa AVI en respuesta a una señal de ejecución
de continuación en el flujo de paquetes seleccionado; enviar un
mensaje de minimizar al programa AVI en respuesta a la presencia de
un programa AVI en el flujo de datos que contenga un identificador
diferente al identificador en el lugar respectivo de la memoria, y
en el programa AVI, ejecución de lo siguiente: un estado inactivo
(61), en el que el programa AVI está inactivo; un estado activo
(63), en el que el programa AVI se está ejecutando; un estado
suspendido (65), en el que se suspende la ejecución del programa
AVI; y un estado minimizado (67), incluyendo las etapas siguientes:
detención de la ejecución del programa AVI; almacenamiento del
identificador del programa AVI y el estado y entorno de ejecución
del programa AVI en un bloque de memoria; a continuación, descarga
del programa AVI de la memoria; adoptarse el estado inactivo, como
respuesta a la carga del programa AVI en la memoria; detención de la
ejecución, y descarga del programa AVI desde la memoria como
respuesta al mensaje de salida; cuando se encuentre en el estado
inactivo, adoptarse el estado activo como respuesta a un mensaje de
activar la alternación; y adoptarse el estado suspendido como
respuesta a un mensaje de suspensión; y cuando se encuentre en el
estado suspendido: adoptarse el estado activo en respuesta a un
mensaje de continuación; adoptarse el estado inactivo como respuesta
a un mensaje de activar la alternación; y adoptarse el estado
minimizado en respuesta al mensaje de minimización.
En los dibujos:
la figura 1 es un diagrama de bloque de una
porción de decodificador de señal AVI que incorpora la presente
invención;
la figura 2 es un diagrama de estructura del
programa para la ejecución del software por parte de la unidad de
procesamiento 40 representada en la
\hbox{figura 1;}
la figura 3 muestra los diagramas de flujo y los
de distribución de la memoria útil para comprender la extracción de
los módulos de los componentes de datos en un programa AVI;
la figura 4 es un diagrama, parcialmente en forma
de bloque y parcialmente en forma de distribución de la memoria
útil también para comprender la extracción de los módulos de los
componentes de datos en un programa AVI;
la figura 5 es un diagrama de flujo que muestra
la función de inicialización del cargador del sistema; y
la figura 6 es un diagrama de transición de
estado que muestra la función de control del flujo de datos del
cargador del sistema.
La figura 1 es un diagrama de bloque de una
porción de decodificador de señal AVI que incorpora la presente
invención. En cada localización del espectador que desee participar
en los programas AVI, se ha incorporado un decodificador, tal y como
se muestra en la figura 1. En dicha figura 1, un mecanismo de
transporte (no representado) está conectado al terminal de entrada
5 del decodificador. Un terminal de entrada 5 está conectado a un
terminal de entrada de un sintonizador 10. Un terminal de salida del
sintonizador 10 está conectado al terminal de entrada de datos de
un detector 30 de componentes del programa AVI. Un terminal de
salida de datos del detector 30 de componentes del programa está
conectado a un bus 416 del sistema de una unidad de procesamiento
40. La unidad de procesamiento 40 incluye una unidad de
procesamiento central (CPU) 410, una memoria de lectura y escritura
(RAM) 412 y una memoria de sólo lectura (ROM) 414 interconectadas
de un modo conocido por medio del bus 416 del sistema. Un adaptador
408 de entrada/salida de flujo está conectado bidireccionalmente
entre el bus 416 del sistema y un terminal de control del detector
30 de componente del programa.
Un procesador 418 de audio, conectado al bus 416
del sistema, proporciona una señal de audio al terminal 25 de
salida de audio de AVI, y un procesador 420 de vídeo, conectado
también al bus 416 del sistema, proporciona una señal de vídeo al
terminal 15 de salida de vídeo de AVI. Se suministran más salidas y
entradas por el puerto 422 de entrada/salida, conectado a un
procesador local colocado (no representado) por medio de un terminal
bidireccional 45; un adaptador 424 de entrada/salida del usuario,
para recibir los datos de éste a través de un terminal de entrada
35; y un módem 426 conectado a un ordenador externo (no
representado) por medio de un terminal bidireccional 55; todo ello
conectado de un modo conocido también al bus 416 del sistema. Otro
equipamiento, por ejemplo procesadores matemáticos, otros
adaptadores de entrada/salida, etc. podrían estar conectados al bus
416 del sistema de un modo conocido. Además, podría incluirse un
alargador de bus para conectarlo a otros equipos en cajas externas
a la caja de
\hbox{decodificador.}
En funcionamiento, el mecanismo de transporte,
que, por ejemplo, podría ser un enlace directo de RF por satélite,
una alimentación del sistema de cables o un enlace de fibra óptica
al codificador, transporta una serie de señales AVI, cualquiera de
las cuales podría ser seleccionada por el usuario para su
visualización. En un enlace directo por satélite, por ejemplo, una
serie de flujos de datos AVI podría ser multiplexada en frecuencia
en el mecanismo de transporte modulando las señales del respectivo
transportador de RF. Cada señal del transportador de RF ese
reemitida desde el respectivo repetidor en el satélite al lugar del
espectador. El sintonizador 10 seleccionado de un modo conocido una
señal modulada de RF deseada, bajo el control del procesador 40.
Por ejemplo, en el sistema directo del satélite, la señal modulada
de RF que contiene los servicios por paquetes y que transporta los
componentes de la señal del programa AVI deseada es sintonizada por
un sintonizador de RF conocido. La salida del sintonizador 10 es un
flujo de datos empaquetados digitales de banda base que contiene
esos servicios de paquetes.
La CPU 410 solicita los servicios de los paquetes
deseados desde el detector 30 de componente del programa
escribiendo los identificadores de servicios deseados y los lugares
del búfer de la RAM 412 en registros de control apropiados de
identificador de componente de servicio (SCID) y un controlador
(DMA) de acceso de memoria directo en el detector 30 de componente
del programa a través del adaptador 408 de entrada/salida del flujo.
El detector 30 de componente del programa controla entonces el
flujo de datos empaquetados para los servicios deseados del
paquete. Cuando se reciben los paquetes de cabecera de cualquiera
de los servicios de paquetes deseados, se almacenan en un búfer de
paquetes de cabecera predeterminado en la RAM 412 por medio de
técnicas de escritura de DMA conocidas, y se genera así una
interrupción de los paquetes de cabecera. Cuando se reciben los
paquetes de datos de cualquiera de los servicios de paquetes
deseados, se almacenan en los lugares de búfer especificados
previamente en la RAM 412, utilizando también técnicas de escritura
de DMA conocidas. Cuando se han recibido todos los paquetes de datos
en una unidad de transmisión, se genera una interrupción completa
de los datos. La recepción de paquetes de datos y/ de cabecera
desde un servicio de paquetes puede activarse y desactivarse bajo el
control de la CPU 410. Véase la solicitud de patente de invención
estadounidense nº 232.787, CIRCUITOS DE DIRECCIÓN DE MEMORIA DEL
PROCESADOR DE TRANSPORTE INVERSO DE SEÑALES DE PAQUETES DE VÍDEO, a
nombre de K.E. Bridgewater et al., Presentada el 22.04.1994
para una descripción más detallada del detector 30 de componente de
programa.
Por ejemplo, cuando el sintonizador 10 sintoniza
una nueva señal de RF modulada, la CPU 410 solicita el paquete de
servicio que contiene la guía de programas proporcionando el
identificador fijo de servicio guía de programa a un registro de
identificador de servicio en el detector 30 de componente del
programa. Cuando se han recibido los datos en los paquetes de guía
de programas y se han almacenado en la memoria, esos datos permiten
a la CPU solicitar los servicios del paquete de datos para el
programa AVI deseado.
Después de recibir los paquetes en el servicio de
paquetes suministrado por el detector 30 de componente del
programa, y se hayan escrito por medio del DMA en los lugares de
búfer previamente especificados en la RAM 412, los procesadores 420
de vídeo y 418 de audio leen los datos de los lugares de búfer de la
RAM 412 asociados con sus respectivos servicios de paquetes,
utilizando técnicas de lectura de DMA conocidas, bajo el control
del detector 30 de componente del programa. El procesador de vídeo
420 y el de audio 418 decodifican entonces los datos comprimidos y
codificados para producir una señal de vídeo AVI en el terminal 15
de salida, y la señal de audio AVI en el terminal 25 de salida,
respectivamente. Es posible también que la CPU 410 coopere con el
procesador 420 de vídeo y el 418 de audio en el proceso de
decodificación. Los paquetes de servicios del paquete de
componentes de datos son procesados bajo el control de la CPU 410 de
la manera que se describe a continuación.
Como se ha indicado anteriormente, siempre que el
detector 30 de componente del programa recibe un paquete de
cabecera de un servicio de paquetes solicitado, se almacena en un
lugar predeterminado de la RAM 412 para ese servicio de paquetes, y
se genera una señal de interrupción del paquete de cabecera para la
CPU 410. Como respuesta a esta señal de interrupción del paquete de
cabecera, se ejecuta una rutina de interrupción que analiza los
contenidos del paquete de cabecera y actualiza correctamente los
lugares de búfer de la RAM 412 en los registros de DMA en el
detector 30 de componente del programa y activa la transferencia de
DMA, o desactiva la transferencia de DMA si la unidad de
transmisión no es la deseada. Una vez que se ha activado la
transferencia de DMA, los datos de los paquetes de datos se cargan
en la RAM 412 bajo el control del DMA. Cuando la carga de los
paquetes de datos ha finalizado, el detector 30 de componente del
programa genera una interrupción completa de los datos. En
respuesta a esta señal de interrupción completa de los datos, se
ejecuta una rutina de interrupción para realizar funciones de
"limpieza" y preparar el siguiente paquete de cabecera.
La figura 2 es un diagrama de estructura del
software 200 ejecutado por la unidad de procesamiento 40
representada en la figura 1. La figura 2 muestra los componentes
principales de software que forman el sistema operativo multitarea
de procesamiento de AVI. En la figura 2, todos los componentes se
almacenan en la ROM 414, excepto el programa de aplicación,
indicado en la zona sombreada. El programa de aplicación es
transportado por los componentes de datos de la señal AVI, es
recibido desde el lugar del a emisión y almacenado en la RAM 412.
Los componentes de software representados en la figura 2
representan el código ejecutable y los datos constantes asociados.
Cuando se ejecuta el código, puede generar y acceder a datos
variables, que se almacenan en la RAM 412.
En el sistema de emisión AVI propuesto,
diferentes decodificadores pueden emplear CPUs que utilicen
paquetes de instrucciones distintos, por ejemplo de distintos
fabricantes. En este sistema, el programa de aplicación es un código
intermedio independiente del procesador. El software de cada
decodificador incluye un componente que interpreta el código de
aplicación intermedio (Intérprete). Esto permite la ejecución del
programa de aplicación de la emisión en decodificadores que
contengan cualquier tipo de CPU 410. Este intérprete leerá las
instrucciones de los componentes de datos de AVI en un código
intermedio desde la RAM 412, manipularán la memoria e interactuarán
con el hardware a través de otros componentes de software por medio
de una interfaz de programación de la aplicación (API). Esta API,
que es básicamente una lista de subrutinas disponibles para un
programa de aplicación y la información necesaria para llamarlas, es
publicada y puede ser utilizada por el programador de la aplicación
para acceder a los elementos del decodificador.
Una biblioteca matemática realiza todas las
funciones necesarias para implementar la aritmética de números
enteros y de coma flotante. Un sistema de operación de flujo maneja
todos los controladores necesarios para vigilar el componente de
datos de la señal AVI, y los módulos solicitados del proceso, según
se describirá en detalle más adelante. Un componente de manejo de la
interfaz de usuario maneja toda la interacción del usuario, y
utiliza una librería de gráficos y un gestor de eventos para
comunicarse con el usuario. La librería de gráficos realiza toda la
creación de imágenes gráficas que se superponen al vídeo AVI
recibido, y utiliza una biblioteca matemática para dibujar las
curvas complejas.
Los diferentes componentes del programa del
software de decodificación se comunican con otros asincrónicamente
enviándose mensajes recíprocos. Cada componente del programa
dispone de una cola de mensajes y funciona leyendo repetidamente el
mensaje siguiente de la cola, procesando ese mensaje, enviando
posiblemente un mensaje a otro componente del programa y, si no hay
más mensajes pendientes, esperando al mensaje siguiente. El gestor
de eventos dirige la comunicación de esos mensajes entre otros
componentes de software encaminando correctamente los mensajes y
manteniendo las colas de mensajes.
Cada adaptador de software incluye de igual modo
un controlador de software asociado. Este controlador realiza la
interacción real entre la CPU 410 y los registros en el adaptador
de hardware asociado por medio del bus 416 del sistema. Por ejemplo,
hay controladores para el módem 426, el puerto externo 422 de
entrada/salida, el adaptador 408 de entrada/salida de flujo y la
entrada/salida 424 del usuario. Además, los controladores separados
mantienen un temporizador de software y activan el panel frontal del
decodificador. Estos controladores dependen en gran medida del
gestor de eventos. Todos los componentes anteriores utilizan
funciones comunes proporcionadas por un kernel (núcleo)
multitarea. Por ejemplo, el kernel mantiene las prioridades
del proceso, las colas de tareas activas, señales, semáforos,
marcas horarias de cambio de tarea preferente, interrupciones
(hardware y software) y pilas de procesos. Asimismo, el
kernel proporciona la inicialización del hardware e
iniciación de la primera tarea del sistema, que es un cargador del
sistema.
Al comienzo, el cargador del sistema ejecuta
llamadas de API al sistema operativo de flujo, que a su vez llama
al controlador de flujo para enviar los datos adecuados al detector
30 de componentes del programa por medio del adaptador 408 de
entrada/salida del flujo. Estas llamadas de API desde el cargador
del sistema inician un rastreo del servicio de paquetes de los
componentes de datos para el módulo de directorio de un modo que se
describe en detalle más adelante. Cuando se encuentra el módulo del
directorio, se carga en la RAM 412 y se comprueba para ver si están
disponibles todos los recursos necesarios para ejecutar ese
programa. En caso afirmativo, el cargador del sistema inicia un
rastreo de los componentes de datos de AVI para el primer módulo,
denominado módulo de autoarranque, que iniciará el programa AVI.
Cuando se localiza el módulo de autoarranque, se extrae del
servicio de paquetes de los componentes de datos y se carga en la
RAM 412. Este módulo de autoarranque se encuentra en forma de
código intermedio, y se ejecuta por medio de la explicación del
intérprete. El módulo de autoarranque realiza el resto de la
inicialización y comienza la ejecución del programa AVI. Este
programa puede cargar posiblemente otro módulo de datos y códigos y
encadenarlo a otro módulo de código, todo ello por medio de
llamadas de API. De este modo, el cargador del sistema funciona del
mismo modo que un entorno UNIX® clásico.
Asimismo, el cargador del sistema continúa
rastreando el servicio de paquetes de los componentes de datos
comparando los módulos de directorios transmitidos con el módulo de
directorio actual en la RAM 412. Si el módulo de directorio
transmitido es diferente del almacenado en la RAM 412, indica que
el servicio de paquetes de componentes de datos ha cambiado, por
ejemplo, cuando un espectador cambia de canal o se está emitiendo
un anuncio interactivo. En este caso, se envía un mensaje al
programa de aplicación por medio del gestor de eventos a través de
la API. En respuesta a este mensaje, el programa de aplicación
retira la asignación a todos sus recursos y mantiene solamente una
presencia mínima en el elemento 40 de procesamiento. Por ejemplo,
puede liberarse la memoria utilizada para almacenar todos los
modelos de códigos y datos y mantener solamente el estado de
ejecución de la aplicación en la RAM 412. Cuando ha finalizado la
minimización del programa de aplicación, se envía un mensaje al
cargador del sistema.
El cargador del sistema asigna entonces los
recursos necesarios para ejecutar el programa AVI representado por
el nuevo módulo de directorio. Cuando se detecta un nuevo módulo de
directorio en el servicio de paquetes de los componentes de datos de
AVI, se busca una lista de aplicaciones previamente minimizadas, y
si está presente la aplicación representada por el nuevo
directorio, se reanuda esa aplicación recargando los módulos de
códigos y datos necesarios desde el flujo de componentes de datos, y
reanudando la ejecución desde donde se ha detenido previamente.
Esto podría suceder al final de un anuncio interactivo de un
intermedio. Este proceso podría ser recursivo, cuando pudiera, por
sí mismo, interrumpirse un segundo programa AVI por un tercer
programa AVI, y reactivarse posteriormente.
La figura 3 muestra diagramas de flujo y
diagramas de distribución de memoria y la figura 4 es un diagrama
de bloque más detallado del detector 30 de componentes del programa
(de la figura 1) y un diagrama de distribución de memoria más
detallado útil para comprender la extracción de módulos del
componente de datos de un programa AVI. En la figura 4, un flujo de
paquetes digitales de banda base desde el sintonizador 10 (de la
figura 1) está conectado a los respectivos terminales de entrada de
datos de un controlador 32 de DMA de datos y un controlador 34 de
DMA de paquetes de cabecera dentro del detector 30 de componentes
del programa. Los respectivos terminales de salida de datos del
controlador 32 de DMA y el controlador 34 de DMA de paquetes de
cabecera están conectados al bus 416 del sistema de la unidad de
procesamiento 40. El adaptador 408 de entrada/salida de flujo está
conectado entre el bus 416 del sistema y los respectivos terminales
de entrada de control del controlador 32 de DMA de datos y el
controlador 34 de DMA de paquetes de cabecera. En funcionamiento,
el adaptador 408 de entrada/salida de flujo proporciona información
de control, por ejemplo direcciones de inicio y final del lugar del
búfer, direcciones de lectura y escritura y cuentas de
transferencia, de un modo conocido de la CPU 410 (de la figura 1)
al controlador 32 de DMA de datos y el controlador 34 de DMA de
paquetes de cabecera. El adaptador 408 de entrada y salida de flujo
puede entonces activar el controlador 32 de DMA de datos y el
controlador 34 de DMA de paquetes de cabecera para transferir datos
o paquetes de cabecera, respectivamente, desde el flujo de paquetes
al búfer de un modo conocido, o desactivar dichas transferencias,
bajo el control de la CPU 410. Cuando el controlador 32 de DMA de
datos finaliza una transferencia de datos, genera una interrupción
completa de datos para la CPU 410. Cuando el controlador 34 de DMA
de paquetes de cabecera finaliza la carga de paquetes de cabecera,
genera una interrupción de dichos paquetes para la CPU 410.
También en la figura 4, la RAM 412 está
representada por un bloque grande, y las estructuras de datos por
bloques pequeños dentro de un bloque grande. Los bloques de la
figura 4 son solamente esquemáticos, y no pretenden representar
lugares absolutos o relativos o tamaños asignados en la RAM 412
para estructuras de datos. En 412, se muestran estructuras de datos
de una cola 322 de petición de módulos, un búfer 324 de paquetes de
cabecera, un búfer 326 de módulos de directorio y un búfer 328 de
módulos. Los campos de información dentro de las estructuras de
datos se muestran como secciones horizontales que incluyen el
nombre del tipo de información contenido en ese campo. Esto se
explicará en detalle más adelante.
La figura 3 muestra el método utilizado en la
extracción de un módulo del servicio de paquetes de los componentes
de datos y su almacenamiento en un búfer de la RAM 412. Se utilizan
métodos similares para el procesamiento de otros módulos, como se
describirá más adelante. En la figura 3, las acciones tomadas en un
programa de aplicación (o el cargador del sistema) se muestran en
la columna de la izquierda bajo el título "PROG. DE APLIC.".
En el bloque 302, el programa de aplicación, por medio de la API,
solicita al sistema operativo de flujo cargar un módulo que tenga
un identificador ID del servicio de paquetes de los componentes del
programa AVI. Como se ha descrito anteriormente, las llamadas de
API son básicamente llamadas de subrutina a las funciones del
sistema operativo. La ejecución del programa se transfiere así al
sistema operativo de flujo (FOS). Las acciones tomadas por el FOS
se muestran en la siguiente columna a la derecha, bajo el título
"FOS". Puesto que la petición implica la carga de un módulo,
en el bloque 312, el FOS solicita una asignación de memoria al
gestor de memoria con un tamaño suficiente para incluir el módulo.
Por ejemplo, si el módulo solicitado es de códigos o datos, el
módulo 326 de directorio (de la figura 4) almacenado previamente
incluye un campo con la longitud (LONGITUD) del módulo ID. En este
caso, un gestor de memoria asigna un búfer de memoria al módulo (328
de la figura 4) que tenga una dirección de arranque INICIO y una
dirección de término FIN. A continuación, en el bloque 314, la
información que describe la petición, por ejemplo el identificador
ID del módulo, el tipo de petición PETICIÓN (en este caso, una
petición para extraer y cargar un módulo) y la dirección INICIO de
activación del búfer asignado, y la dirección FIN de terminación,
se almacenan en la entrada de la cola solicitada (COLA) 322. El
controlador 34 de DMA de paquetes de cabecera se activa entonces
para cargar paquetes de cabecear en la RAM 412, cuando suceden en
el flujo de paquetes.
Si la petición es para el módulo del directorio,
no se conoce su longitud a priori. En este caso, se solicita
una asignación de memoria relativamente grande. Si esta asignación
resulta ser demasiado pequeña, la petición se repite, tras solicitar
una asignación de memoria más grande, hasta que el módulo del
directorio se cargue o se determine que la memoria es insuficiente
para cargarlo, en cuyo caso se renuncia a intentar ejecutar el
programa AVI.
El FOS vuelve inmediatamente al programa de
aplicación de llamada. El programa de aplicación se activa entonces
para realizar otro proceso, por ejemplo, emitir peticiones para
otros módulos, otras inicializaciones, etc. Cuando se requiera el
acceso al módulo solicitado, el programa de aplicación, en el
bloque 304, podría emitir una llamada de API para una función de
espera en el kernel. Esta función suspende la ejecución del
programa de aplicación hasta que ese programa de aplicación reciba
un mensaje que indique que el módulo solicitado se ha cargado
satisfactoriamente. Cuando se recibe dicho mensaje, el programa de
aplicación se reactiva para procesarlo. De forma alternativa, el
programa de aplicación podría permanecer activo, por ejemplo con el
fin de responder más rápidamente a las entradas de los usuarios, y
sondear periódicamente su cola de mensajes para encontrar el
mensaje que indica la carga satisfactoria del módulo solicitado, y
procesar el mensaje cuando se reciba.
Como se ha descrito anteriormente, el controlador
34 de DMA de paquetes de cabecera los carga en un búfer 324 de
paquetes de cabecera (PAQ. CAB.) (de la figura 4) en la RAM 412
previamente asignada por el gestor de memoria, y emite una
interrupción de los paquetes de cabecera a la CPU 410. Una parte del
proceso realizado por la rutina de interrupción de cabecera en el
kernel se muestra en la columna denominada "INTERR.
CABECERA" de la figura 3. En el bloque 332, el identificador del
módulo que se está transportando en la unidad de transmisión para
el cual éste es el paquete de cabecera, se recupera de un lugar
conocido, ID, en el búfer 324 de paquetes de cabecera. En el bloque
334, la cola de petición 322 será examinada para determinar si
existe una solicitud pendiente para ese módulo.
Si existe una petición pendiente para ese módulo,
entonces, en el bloque 336, el controlador 32 de DMA de paquetes de
datos del detector 30 de componentes del programa se inicializa
con: la dirección INICIO de arranque del búfer 328 del búfer del
módulo y la dirección FIN de finalización desde la cola de
peticiones 322; una dirección de escritura que es la suma de la
dirección INICIO de arranque del búfer 328 del módulo y la
desviación DESVIACIÓN de datos de la unidad de transmisión (es
decir, INICIO + DESVIACIÓN); y la última dirección de escritura que
es INICIO + DESVIACIÓN + TAMAÑO (o de modo alternativo, una cuenta
de carga que es el tamaño TAMAÑO desde el búfer 324 de paquetes de
cabecera en lugar de la última dirección de escritura). El
controlador 32 de DMA de paquetes de datos se activará
entonces.
En el bloque 338, si éste es el primer paquete de
cabecera recibido después de realizar la solicitud de carga, se
inicializa un puntero hacia la primera dirección de escritura,
PRIMERA, almacenada en la cola de petición 322, para la dirección de
escritura de la primera unidad de transmisión (es decir, PRIMERA =
INICIO + DESVIACIÓN). Asimismo, se inicializa también un puntero
para la dirección de escritura que se espera a continuación,
SIGUIENTE, también almacenada en la cola de petición 322 para la
dirección de escritura de la primera unidad de transmisión (es
decir, SIGUIENTE = INICIO + DESVIACIÓN). Tiene lugar entonces otro
proceso en el bloque 338, que se describirá más detalladamente a
continuación. Por ejemplo, un puntero especial para el lugar en la
cola de petición 322 de la petición que se está procesando en este
momento. PET. ACTUAL, se almacena en un lugar predeterminado (no
representado) en la RAM 412. Entonces, en el bloque 339, vuelve la
rutina de interrupción (339).
El controlador 32 de DMA de paquetes de datos
inicializa un puntero de escritura (PE) para la dirección de
escritura recibida previamente (INICIO + DESVIACIÓN) y carga los
datos de los paquetes de datos siguientes en el servicio de paquetes
de componentes del programa AVI en lugares secuenciales del búfer
328 del módulo en la RAM 412. Cuando todos los datos de la unidad
de transmisión se han cargado en la RAM 412, se genera una
interrupción completa de los datos. Una parte del proceso realizado
por la rutina de interrupción completa de los datos en el
kernel se muestra en la columna de la derecha con el título
"INTERR.COMPL.DE DATOS" de la figura 3.
En el bloque 342, se ejecutan las funciones de
limpieza relacionadas con el estado actual de la transferencia de
DMA. El puntero de solicitud actual (PET. ACTUAL), previamente
determinado en la rutina de interrupción de paquetes de cabecera,
apunta a la entrada en la cola de petición 322 para el cual acaba
de finalizar la carga de una unidad de transmisión. El puntero de
dirección de escritura que se espera a continuación, SIGUIENTE, en
la petición actual se incrementa por el TAMAÑO del valor desde el
búfer 324 de paquetes de cabecera, y apunta ahora a la dirección de
escritura esperada para la siguiente unidad de transmisión. Si el
nuevo valor del puntero de la dirección de escritura que se espera a
continuación, SIGUIENTE, es igual a la dirección final, FIN, del
búfer 328 del módulo, se reajusta a la dirección de inicio, INICIO,
del módulo 328 del búfer del módulo, de un modo envolvente.
En el bloque 344, se determina si se ha cargado
en la memoria todo el módulo solicitado. El valor del puntero de
dirección de escritura que se espera a continuación, SIGUIENTE, se
compara con el valor de la dirección que se cargó primero, INICIO.
Si son iguales, entonces se ha cargado todo el módulo. En el bloque
346, se envía un mensaje, por medio del gestor de eventos, al
programa de aplicación solicitante para indicar que el módulo
solicitado se ha recuperado en su totalidad, indicado con una línea
discontinua en la figura 3. Además, la petición se elimina de la
cola de peticiones 322. Si el valor de la dirección de escritura
que se espera a continuación SIGUIENTE no es el mismo que la
dirección que se cargó primero, INICIO, vuelve la rutina de
interrupción completa de datos (349), y se procesará la unidad de
transmisión siguiente que contenga datos para el módulo solicitado,
tal y como se ha descrito anteriormente. En cualquier caso, se
limpia el puntero de petición actual (PET. ACTUAL).
Si alguna parte de la unidad de transmisión no es
recibida correctamente por el detector 30 de componentes de
programas, se recibirá entonces un paquete de cabecera posterior
antes de la señal de interrupción completa de datos desde el paquete
de cabecera anterior que se ha generado por el circuito de DMA en
el detector 30 de componentes del programa. Éste, a su vez, genera
una señal de interrupción del paquete de cabecera posterior antes
de que pueda generarse la señal de interrupción completa de los
datos anteriores. El proceso en el administrador de interrupciones
de paquetes de cabecera y el administrador de interrupción completa
de datos pueden cooperar para identificar esta situación y
solucionar el error.
En la rutina de interrupción de paquetes de
cabecera, este proceso se realiza en el bloque 338 (de la figura
3), después de activar el controlador de DMA de paquetes de datos
para recibir la unidad de transmisión siguiente. Para cada paquete
de cabecera recibido, la dirección de escritura que se espera a
continuación, SIGUIENTE, en la entrada de cola de petición actual,
actualizada previamente por la rutina de interrupción completa de
datos, se compara con la dirección de escritura (INICIO +
DESVIACIÓN) para el paquete de cabecera recién recibido. Si son
iguales, la unidad de transmisión previa se ha recibido
satisfactoriamente. No obstante, si la última dirección de
finalización no es la misma que la nueva desviación, eso significa
que la transferencia de DMA de la unidad de transmisión anterior no
se ha completado satisfactoriamente. En ese caso, tanto la primera
dirección de escritura, PRIMERA, como la dirección de escritura que
se espera a continuación, SIGUIENTE, se actualizan a la dirección de
escritura actual (INICIO + DESVIACIÓN). Esto es, las unidades de
transmisión cargadas previamente son esencialmente descartadas, y
se reinicia la carga del módulo con la unidad de transmisión actual.
Esta forma de recuperación desde un tipo de error de pérdida de
datos podría llevar más tiempo, puesto que la unidad de transmisión
que se ha cargado previamente de forma satisfactoria podría producir
un error al recargarse. Sin embargo, utilizando esa forma de
recuperación, las tareas realizadas por la rutina de interrupción
de los paquetes de cabecera y la rutina de interrupción completas
de datos se minimizan y sólo se necesitan dos punteros en la
memoria.
Como parte de la administración de mensajes
completos del módulo, el gestor de eventos realiza una comprobación
de error en el módulo recibido. Por ejemplo, un código de
comprobación de redundancia cíclica (CRC) se transmite a una parte
acoplada del módulo. El gestor de eventos calcula un CRC por el
módulo recibido en el búfer 328 del módulo en la RAM 412, y lo
compara con el CRC acoplado. Si el CRC recién calculado es igual al
CRC acoplado, entonces el módulo se recibió correctamente o, de lo
contrario, sucedió un error y el módulo se recarga tal y como se ha
indicado anteriormente.
Cuando el módulo solicitado se ha cargado
completamente en la memoria, puede continuar el proceso por parte
del módulo de aplicación, representado en la figura 3 por
inferencia, como una línea desde la parte inferior de la llamada de
API a la función 304 de espera. Sin embargo, podría activarse una
tarea independiente en el programa de aplicación en respuesta a la
recepción del mensaje desde la cola de mensajes del programa de
aplicación.
El API mencionado incluye funciones para acceder
al flujo de datos por medio del programa de aplicación, del
intérprete o del cargador del sistema. Un programador de
aplicaciones utilizará la descripción de API publicada para formular
una llamada de API con el fin de acceder a la función del flujo de
datos deseada. Un primer grupo de funciones está relacionado con el
directorio de módulos. Una primera función, DIR_NEW, es una
solicitud para un nuevo directorio. Como se ha descrito
anteriormente, en respuesta a esta función de API, se realiza una
asignación de memoria, y se pone a la cola una petición para la
carga del siguiente módulo de directorio en el flujo de datos, y
entonces vuelve la función de API. Cuando el directorio se ha
cargado, se envía un mensaje al programa solicitante. Otra función,
DIR_FREE, libera espacio de la memoria tomado por el directorio
actual. La función DIR_SELECT indica qué módulo del directorio se
utilizará en llamadas de API posteriores. La función DIR_CURRENT
devuelve una administración al directorio seleccionado
actualmente.
Las funciones DIR_SPY y DIR_STOP_SPY son
similares a la función DIR_NEW. En respuesta a una llamada de API
DIR_SPY, se pone a la cola una petición en la cola de peticiones
para un módulo de directorio, pero en lugar de cargar un módulo de
directorio y enviar un mensaje cuando se ha cargado, esta función
envía un mensaje siempre que se detecte un módulo de directorio en
el flujo de datos (el módulo de directorio no está cargado).
Asimismo, la petición permanece en la cola de peticiones hasta que
se realice una llamada de API DIR_STOP_SPY. Cuando se realiza esta
llamada DYR-STOP-SPY, se busca la
cola de peticiones para la solicitud de observación del directorio,
y se elimina esa entrada. Estas funciones son útiles para observar
cualquier cambio desde el directorio actual en el flujo de datos.
Por último, existen llamadas de API para extraer información sobre
el directorio actual: DIR_IDENTIFIER, DIR_REQUIREMENT y
DIR_NB_MODULES.
Por causa del código CRC acoplado en el módulo,
cualquier solicitud de asignación de memoria para cargar un módulo
debe tener en cuenta este código. Para manejar esto, se suministran
tres llamadas de API. La función MODULE_ALLOC toma un identificador
de un módulo como un argumento y solicita una asignación de la
cantidad correcta de memoria para cargar el módulo, teniendo en
cuenta cualquier CRC u otros requisitos de memoria. La función
MODULE_FREE libera la memoria tomada por un módulo. MODULE_CHECK
realiza una comprobación de CRC de un módulo cargado y devuelve el
resultado. Esto puede realizarse en cualquier momento puesto que el
CRC está acoplado en el módulo cuando se carga en la memoria.
Otro grupo de llamadas de API organiza los
módulos, utilizando el directorio seleccionado actualmente para
identificarlos. Existen llamadas de API para extraer información
sobre un módulo: MODULE_REQUIREMENT, MODULE_SIZE y MODULE_FLAGS.
Éstas permiten al sistema determinar si un módulo puede cargarse y
ejecutarse. La función MODULE_RUN se utiliza para cargar un módulo
ejecutable, como se ha descrito anteriormente, crear un nuevo
proceso y comenzar la ejecución en el punto de entrada del módulo.
Esta función es utilizada por el cargador del sistema para iniciar
la ejecución de un programa AVI. La función MODULE_CHAIN se utiliza
para cargar un módulo ejecutable posterior, finalizar la ejecución
del módulo actual y comenzar la ejecución de un módulo recién
cargado en su punto de entrada. En este caso, no se crea un nuevo
proceso. La función MODULE_LOAD se utiliza para cargar un módulo,
pero no para iniciar la ejecución. Como ya se ha descrito, se envía
un mensaje al programa solicitante cuando la carga del módulo ha
finalizado. La función MODULE_EXEC se utiliza para crear un nuevo
proceso y comenzar la ejecución de un módulo, que fue cargado
previamente por la llamada de API MODULE_LOAD, en su punto de
entrada.
La función MODULE_LINK ejecuta un nuevo módulo
utilizando el proceso actual, los recursos y las variables. Permite
llamadas de tipo subrutina desde dentro de un módulo proporcionando
un enlace dinámico al módulo nuevo. Esto permite dividir los
programas AVI en módulos más pequeños que podrían vincularse
dinámicamente sólo cuando fuera necesario. La función MODULE_LINK
mantiene la reubicación y las tablas de salto. Las funciones
MODULE_SPY y MODULE_STOP_SPY funcionan de forma similar a
DIRECTORY_SPY y DIRECTORY_STOP_SPY pero con respecto a módulos
identificados. La llamada de API MODULE_SPY introduce una entrada en
una cola de peticiones incluido el identificador del módulo.
Siempre que se detecte un módulo de cabecera con el mismo
identificador en el flujo de datos, se envía un mensaje al programa
solicitante. Esto continúa hasta que se realiza una llamada de API
MODULE_STOP_SPY. En respuesta a la llamada de API MODULE_STOP_SPY,
la entrada que contiene la petición de observación para el módulo
identificado se elimina de la cola de peticiones. La función
MODULE_STOP_LOAD detiene cualquier petición de carga módulo
actualmente en curso y elimina la entrada de petición de carga de
la cola de peticiones. Las funciones FLOW_MESSAGE y
FLOW_STOP_MESSAGE, respectivamente, generan y eliminan una solicitud
para un mensaje cuando se produce un paquete de señales especiales,
relativo al flujo de datos, como flujo de datos suspendido o el
final de un flujo de datos. Cuando esto tiene lugar, se envía un
mensaje al programa solicitante.
Como se ha descrito anteriormente, el cargador
del sistema realiza la inicialización del sistema y controla el
flujo de datos para garantizar que la ejecución del programa de
aplicación está en sincronismo con los componentes de audio y vídeo
recibidos. La figura 5 es un diagrama de flujo que muestra la
función de inicialización del cargador del sistema. En el bloque 52
de la figura 5, están inicializados varios componentes de hardware
y software del decodificador (de 17). Además, los lugares de la RAM
412 están asignados e inicializados para varias estructuras de
datos. Estas funciones de inicialización son bien conocidas, y
dependen de los componentes de software del decodificador. Un
programador del sistema entenderá qué inicializaciones de hardware
y software y estructuras de datos se necesitan y cómo realizar las
inicializaciones. De este modo, este bloque no se describirá más en
detalle más adelante.
En el bloque 54, se realiza una llamada de API
DIR_NEW, descrita anteriormente. Esta llamada de API carga el
siguiente módulo de directorio que aparece en el servicio de
paquetes de componentes del programa AVI en un búfer asignado en la
RAM 412. Esta llamada de API vuelve inmediatamente al cargador del
sistema, aunque el directorio puede no cargarse en la RAM 412 hasta
más tarde. El cargador del sistema realiza otras funciones y
entonces, si fuera necesario, una llamada API de espera (no
representada) hasta que se reciba el mensaje, por medio del gestor
de eventos indicando que el módulo del directorio ha sido cargado.
En el bloque 56, los recursos disponibles en el decodificador (de
la figura 1) se comparan con los datos que indican los recursos
necesarios en el módulo del directorio. Si el decodificador dispone
de suficientes recursos para ejecutar el programa AVI, se realiza
una llamada de API MODULE_RUN para cargar el módulo de códigos de
autoarranque, identificado en el módulo del directorio previamente
cargado, como se ha descrito anteriormente. De nuevo, la llamada de
API vuelve inmediatamente, pero es posible que el módulo de códigos
no se cargue completamente desde el flujo de datos hasta más tarde.
Después de que el módulo de códigos de autoarranque esté totalmente
cargado, se crea otra tarea de un modo conocido utilizando el
kernel multitarea para ejecutar el programa AVI por medio
del intérprete.
En el bloque 58, el cargador del sistema comienza
a controlar el componente del programa AVI para la ejecución de
señales, y el directorio cambia y controla la ejecución del
programa AVI enviando mensajes al programa AVI como se describirá
más adelante. La figura 6 es un diagrama de transición de estado
que muestra la función de control del cargador del sistema. Si se
detecta un directorio en un servicio de paquetes de componentes del
programa AVI, entonces el programa que el espectador ha seleccionado
es un programa interactivo. Una vez que el directorio se ha cargado
en la RAM 412 y el módulo de códigos de autoarranque ha sido
solicitado desde el servicio de paquetes de componentes de AVI, el
programa AVI, bajo el control del cargador del sistema, entra en el
estado INACTIVO 61. En este estado INACTIVO 61, todos los recursos
para arrancar la aplicación han sido asignados y la aplicación
puede cargarse parcial o totalmente, pero no existe interacción con
el espectador. Por ejemplo, mientras el módulo de autoarranque se
está cargando, el programa AVI permanece en el estado INACTIVO 61.
Asimismo, incluso después de haber cargado el módulo de
autoarranque, el espectador podría estar simplemente cambiando de
canal a través del canal que lleva el programa AVI y no tenga
intención de interactuar con el programa AVI. O puede que el
espectador sólo desee examinar el programa AVI antes de tomar la
decisión de unirse a la interacción. En todos esos casos, es
importante que el mando a distancia actúe en un modo normal de
cambio de canal y no en un modo interactivo. Este es el objetivo
del estado INACTIVO 61. Con el fin de notificar al espectador que
el canal que está viendo está emitiendo un programa interactivo, se
superpondrá un logotipo o icono interactivo especial en el vídeo
AVI.
Para que el espectador comience realmente a
interactuar con el programa AVI, se incorpora una tecla especial,
denominada "TECLA ACTIVAR" más adelante, en el mando a
distancia. Cuando se muestra un logotipo o icono de un programa
interactivo, el espectador puede pulsar la TECLA ACTIVAR. Como
respuesta a la pulsación de la TECLA ACTIVAR, el cargador del
sistema envía un mensaje ACTIVAR al programa AVI que entra entonces
en el estado ACTIVO 63. En este estado ACTIVO 63, el intérprete
comienza realmente a ejecutar el programa AVI cargado previamente
en el punto de entrada. Cuando el módulo de autoarranque del
programa AVI comienza la ejecución, asigna e inicializa sus propias
estructuras de datos en la RAM 412, carga otros módulos de códigos y
datos y controla todas las acciones del usuario desde el mando a
distancia y el panel de control frontal.
Puesto que el programa AVI controla toda la
interacción del usuario, puede evitar que éste cambie de canal o
realice otras funciones normales con el mando a distancia. Para
volver a las funciones normales del mando a distancia, el espectador
debe detener primero el programa AVI actual. El espectador pulsa la
TECLA ACTIVAR de nuevo para desactivar el programa. Como respuesta
a la pulsación de esta tecla, el cargador del sistema envía un
mensaje DESACTIVAR al programa AVI en ejecución que abandona
entonces el estado ACTIVO 63 y vuelve al estado INACTIVO 61. De
nuevo, se muestra un logotipo o icono interactivo del programa,
indicando que el programa AVI está cargado pero no es está
ejecutando. El espectador puede entonces cambiar de canal o realizar
funciones normales con el mando a distancia o puede reactivar el
programa AVI pulsando de nuevo la TECLA ACTIVAR. Esta TECLA ACTIVAR
actúa como un conmutador que cuando se pulsa alterna entre el estado
ACTIVO 63 y el estado INACTIVO 61. Los mensajes ACTIVAR y DESACTIVAR
pueden considerarse también como mensajes de ALTERNANCIA DE
ACTIVACIÓN, cuyo significado (ACTIVAR o DESACTIVAR) depende del
estado del programa AVI (INACTIVO o ACTIVO, respectivamente) cuando
se pulsa la TECLA ACTIVAR.
Cuando se está ejecutando el programa AVI en el
estado ACTIVO 63, hay momentos en los que se desea suspender la
ejecución. Por ejemplo, cuando se va a transmitir un anuncio no
interactivo, el audio y vídeo transmitido no coincidirá con el
sonido y los gráficos que está generando el decodificador 10 (de la
figura 1), y se desea permitir al espectador que utilice el mando a
distancia en un modo normal. El programador de la aplicación, sin
embargo, no puede conocer de antemano cuándo se necesitarán dichas
suspensiones. Así, en este caso, el emisor, independientemente del
programa AVI, puede incluir repetitivamente paquetes de señales
especiales (como se ha descrito anteriormente), denominados
paquetes de señales suspendidas, en el servicio de paquetes de
componentes del programa AVI. Cada paquete contiene datos que
indican que el programa AVI ejecutado en ese momento va a suspender
la ejecución.
El cargador del sistema, por medio de la llamada
API FLOW_MESSAGE, recibe un mensaje siempre que dichos paquetes son
reconocidos en el servicio de paquetes de componentes del programa
AVI. Por ejemplo, cuando se recibe un paquete de señales
suspendido, el cargador del sistema recibe un mensaje de señal
suspendida, y en respuesta al primer mensaje de señal suspendida,
envía un mensaje de SUSPENDER al programa AVI que, a su vez,
suspende la ejecución entrando en el estado SUSPENDIDO 65. En este
estado SUSPENDIDO 65, la ejecución del programa AVI se detiene de
modo que pueda iniciarse desde el punto en el que se suspendió.
Esto es, todos los recursos necesarios para ejecutar el programa
AVI permanecen asignados, y el estado de ejecución del programa AVI
se almacena en un lugar de la RAM 412. Además, se superpone en la
imagen de vídeo actual un segundo logotipo o icono, indicando que
se ha suspendido un programa interactivo que se estaba ejecutando
previamente, pero que está preparado para reanudarse cuando
pueda.
Cuando termina la interrupción (por ejemplo, un
anuncio no interactivo), el emisor se detiene, incluidos los
paquetes de señales suspendidas en el servicio de paquetes de
componentes del programa AVI. El cargador del sistema, después de un
periodo de tiempo predeterminado sin recibir un mensaje de señal
suspendida, envía un mensaje de CONTINUAR al programa AVI que, a su
vez, reanuda la ejecución desde donde la suspendió previamente,
entrando en el estado ACTIVO 63, descrito anteriormente.
Una realización alternativa de la disposición de
señales SUSPENDER/ CONTINUAR, descrita anteriormente, es que el
emisor incluya un único paquete de señales suspendidas en el
servicio de paquetes de componentes del programa AVI cuando se desea
suspender la ejecución del programa AVI. El emisor incluye entonces
otro paquete de señales especial, denominado paquete de señales
continuo, en el servicio de paquetes de componentes del programa
AVI cuando se desea reanudar la ejecución de dicho programa AVI.
Este paquete contiene datos que indican al programa AVI suspendido
actualmente que reanude la ejecución. El cargador del sistema
reconoce el paquete de señales continuo, y envía un mensaje
CONTINUAR al programa AVI, que reanuda la ejecución y entra en el
estado ACTIVO 63, descrito anteriormente.
El espectador también puede detener la ejecución
de un programa AVI suspendido. Cuando se muestra un logotipo o
icono suspendido del programa, el espectador puede pulsar la TECLA
ACTIVAR. El cargador del sistema, que responde a la pulsación de
esta tecla, envía un mensaje de DESACTIVAR al programa AVI
suspendido que, a su vez, entra en el estado INACTIVO 61, ya
descrito. Desde este estado INACTIVO 61, el programa sólo puede
reanudar la ejecución cuando el espectador pulsa la TECLA ACTIVAR,
lo que provoca que el cargador del sistema envíe un mensaje de
ACTIVAR al programa AVI, que entrará entonces en el estado ACTIVO
63. Si el cargador del sistema aún está recibiendo paquetes de
señales suspendidas, se envía inmediatamente otro mensaje de
SUSPENDER al programa AVI, que de nuevo entra en el estado
SUSPENDIDO 65. El estado INACTIVO 61, el ACTIVO 63 y el SUSPENDIDO
65 son estados entre los que puede cambiar el programa AVI como
respuesta a los mensajes que se le envían desde el cargador del
sistema. Sin embargo, existen otros dos estados a los que se accede
bajo el control directo del cargador del sistema.
Un programa AVI puede alcanzar el fin de su
ejecución. Por ejemplo, el emisor puede incluir otro paquete de
señales especial, denominado paquete de señales de ejecución de
terminación, en el servicio de paquetes de componentes del programa
AVI. El cargador del sistema recibe un mensaje de ejecución de
terminación cuando se reconoce un paquete de señales de ejecución
final de terminación en el servicio de paquetes de componentes del
programa AVI, por medio de la llamada de API FLOW_MESSAGE. Como
respuesta al mensaje de ejecución final, el cargador del sistema
envía un mensaje SALIR al programa AVI. Independientemente del
estado en el que se encuentre el programa AVI, INACTIVO 61, ACTIVO
63 o SUSPENDIDO 65, el programa AVI responde al mensaje SALIR,
eliminando la asignación de todos sus recursos, y eliminando también
del decodificador 10 (de la figura 1) todos los registros. Se
considera que este programa ha entrado en el estado DETENIDO 69, y
desaparece del decodificador 10. En algunos casos, el programa puede
reconocer que su ejecución ha llegado a su fin, por medio de una
orden del usuario, o por su propia ejecución. Cuando el programa
AVI reconoce que su ejecución ha terminado, realiza el mismo
proceso que habría realizado si hubiera recibido un mensaje SALIR, y
entra en el estado DETENIDO 69 por su propia cuenta.
Cuando un programa AVI se encuentra en estado
SUSPENDIDO, es posible que se reciba un programa AVI interactivo
diferente en el flujo de datos de componentes del programa AVI. Por
ejemplo, si el programa AVI se suspendió para un anuncio, ese
anuncio puede ser él mismo un programa interactivo, o el usuario
podría haber cambiado de canal a otro que emita un programa AVI
diferente. En ambos casos, el nuevo programa AVI incluirá un módulo
de directorio, que es distinto del programa AVI suspendido.
El cargador del sistema, por medio de la llamada
de API DIR_SPY, recibe un mensaje siempre que se detecta un
directorio en el servicio de paquetes de componentes del programa
AVI. El cargador del sistema compara el directorio activo actual con
el directorio recién detectado. Cuando el cargador del sistema
reconoce que un directorio diferente está presente en el servicio
de paquetes de componentes del programa AVI, comienza a cargar el
programa AVI representado por ese directorio.
En primer lugar, se envía un mensaje al programa
AVI suspendido actualmente para indicar que el servicio de paquetes
de componentes del programa dejará de emitirse, o que ese programa
ha "perdido el flujo". Este mensaje es una petición para que el
programa que se está ejecutando en ese momento se minimice, es
decir, en un mensaje MINIMIZAR. Como respuesta al mensaje
MINIMIZAR, el programa AVI entonces suspendido primero almacena su
estado y entorno de ejecución actual en un bloque pequeño de la RAM
412 que contiene la identificación de la aplicación AVI, y un
tiempo de duración, que se describirá más adelante. El programa AVI
entonces comienza a eliminar las asignaciones de sus recursos. Un
programa AVI minimizado no incluye ningún código por lo que no puede
cambiar los estados en respuesta a los mensajes, o restaurarse por
sí mismo.
El cargador del sistema carga entonces el
directorio recién detectado y el módulo de autoarranque y coloca el
nuevo programa AVI en el estado INACTIVO 61 mostrando el logotipo o
icono del programa interactivo, como se ha descrito anteriormente.
El espectador puede entonces iniciar y detener la interacción con
su nuevo programa AVI pulsando la TECLA ACTIVAR, y el programa
puede él mismo suspenderse o continuar.
El proceso de minimización es un proceso
recursivo. Por ejemplo, este nuevo programa AVI, si se suspende,
puede también minimizarse si se ha detectado ya otro programa AVI
en el servicio de paquetes de componentes del programa AVI. En este
caso, se asigna otro bloque de memoria, y el estado y entorno de
ejecución de este programa AVI, junto con su identificador y el
tiempo de duración se almacenan en este bloque de memoria. A
continuación, se carga el programa AVI recién detectado, como ya se
ha descrito. El número de programas que pueden minimizarse
simultáneamente está limitado solamente por la cantidad de memoria
necesaria para almacenar todos los bloques de memoria que contengan
estados y entornos de ejecución de los programas minimizados.
Si no hay suficiente espacio de memoria
disponible para cargar el nuevo módulo de directorio, o ejecutar el
programa representado por un módulo de directorio previamente
cargado, y si hay bloques de memoria asignados representando
programas minimizados, el cargador del sistema puede eliminar
automáticamente la asignación de algunos o todos los bloques de
memoria de acuerdo con un algoritmo (como eliminar primero la
asignación del bloque de memoria más antiguo, o primero de los
bloques de memoria marcados como desechables por la aplicación
originaria) en un intento de conseguir suficiente espacio en la
memoria. De forma alternativa, el cargador del sistema podría
presentar una lista de aplicaciones minimizadas al espectador, y
permitir que sea él el que seleccione alguna o todas para
borrarlas. A los bloques que representan aplicaciones minimizadas
seleccionadas se les retira entonces la asignación para conseguir
suficiente espacio en la memoria.
Mientras tanto, los bloques de memoria que
contengan los estados y entornos de ejecución de los programas AVI
previamente minimizados permanecen asignados en la memoria. Como ya
se ha descrito, hay un tiempo de duración en cada bloque de
memoria. Si se supera el tiempo de duración de un bloque, el
programa AVI minimizado previamente se interrumpe. En este caso, se
considera que ese programa ha entrado en el estado DETENIDO 69, y a
su bloque de memoria que contiene el estado y entorno de ejecución
se le elimina la asignación, y todos los registros que ese programa
AVI minimizado previamente se pierden.
Sin embargo, es posible que el decodificador 10
reciba de nuevo un componente del programa AVI, que contenga el
directorio, el código y los módulos de datos de un programa AVI
minimizado previamente, o que ese programa AVI "obtenga de nuevo
el flujo". Por ejemplo, puede que haya terminado el anuncio
interactivo, entrando en el estado DETENIDO 69, o que el espectador
haya vuelto a este canal. El cargador del sistema comienza a cargar
el "nuevo" directorio en el servicio de paquetes de componentes
del programa AVI. Siempre que se carga un nuevo directorio, el
identificador de la aplicación se compara con los identificadores
en todos los bloques que contengan el estado y los entornos de
ejecución actualmente almacenados en la RAM 412. Si se encuentra un
bloque coincidente, entonces se cargan los módulos de datos y
códigos, y el programa AVI ubicado en el estado INACTIVO 61, pero
su estado de ejecución se actualiza a donde estaba justo antes de
minimizarse. Cuando el espectador pulsa la TECLA ACTIVAR, el
programa AVI entra en el estado ACTIVO 63, y comienza la ejecución
donde se abandonó previamente. De este modo, un programa AVI puede
detenerse temporalmente para ejecutar otro programa AVI, y luego
reanudarse, sin necesitar recursos suficientes para que ambos
programas permanezcan en la memoria de forma simultánea.
Claims (7)
1. Método para controlar la ejecución de un
programa interactivo de audio y vídeo (AVI) en un receptor AVI que
recibe un flujo de paquetes incluido un programa AVI y señales de
ejecución, incluyendo el receptor un controlador de ejecución (410)
para controlar la ejecución del programa AVI; estando dicho método
caracterizado por las etapas siguientes:
en el controlador de ejecución:
- cargar el programa AVI en una memoria (412) como respuesta a la presencia del programa AVI en el flujo de paquetes;
- enviar un mensaje de activar la alternación al programa AVI como respuesta a una entrada del usuario;
- enviar un mensaje de salida al programa AVI como respuesta a una señal de ejecución de finalización en el flujo de paquetes;
- enviar un mensaje de suspensión al programa AVI como respuesta a una señal de ejecución de suspensión en el flujo de paquetes; y
- enviar un mensaje de continuar al programa AVI como respuesta a una señal de ejecución de continuación en el flujo de paquetes; y
en el programa AVI:
- ejecución de uno de los siguientes:
- un estado inactivo (61), en el que el programa AVI está inactivo;
- un estado activo (63), en el que el programa AVI se está ejecutando; y
- un estado suspendido (65), en el que el programa AVI está suspendido;
- adoptarse el estado inactivo, como respuesta a la carga de un programa AVI en la memoria;
- detener la ejecución, y descargar un programa AVI de la memoria como respuesta al mensaje de salida;
- cuando se encuentra en el estado inactivo, adoptarse el estado activo como respuesta a un mensaje de activar la alternación;
- cuando se encuentra en el estado activo:
- adoptarse el estado inactivo, como respuesta a un mensaje de activar la alternación; y
- adoptarse el estado suspendido, como respuesta a un mensaje de suspensión; y
cuando se encuentra en el estado suspendido:
- adoptarse el estado activo, como respuesta a un mensaje de continuación; y
- adoptarse el estado inactivo, como respuesta a un mensaje de activar la alternación.
2. Método según la reivindicación 1,
caracterizado porque:
la señal de ejecución de suspensión del flujo de
paquetes está representada por paquetes de señales de ejecución de
suspensión repetitivas durante el intervalo de tiempo de
suspensión, y la señal de ejecución de continuación está
representada por paquetes de señales de ejecución de suspensión;
y
la etapa de enviar un mensaje de suspensión en el
controlador de ejecución incluye la etapa de enviar el mensaje de
suspensión en respuesta a un primer paquete de señales de ejecución
de suspensión; y
la etapa de enviar un mensaje de continuación en
el controlador de ejecución incluye la etapa de enviar el mensaje
de continuación tras un periodo de tiempo predeterminado en el que
no se reciban paquetes de señales de ejecución de suspensión.
3. Método según la reivindicación 1,
caracterizado porque:
la señal de ejecución de suspensión del flujo de
paquetes está representada por paquetes de señales de ejecución de
suspensión y la señal de ejecución de continuación está representada
por un paquete de señales de ejecución de continuación; y
la etapa de enviar un mensaje de suspensión en el
controlador de ejecución incluye la etapa de enviar el mensaje de
suspensión en respuesta a un paquete de señales de ejecución de
suspensión; y
la etapa de enviar un mensaje de continuación en
el controlador de ejecución incluye la etapa de enviar el mensaje
de continuación en respuesta a un paquete de señales de ejecución
de continuación.
4. Método para controlar la ejecución de un
programa interactivo de audio y vídeo (AVI) en un receptor de AVI
que reciba de forma selectiva una serie de flujos de paquetes bajo
el control del usuario, incluyendo cada paquete un programa AVI con
un identificador, y señales de ejecución, en el que el receptor
incluye un controlador de ejecución (410) para controlar la
ejecución del programa AVI, estando dicho método
caracterizado por las etapas siguientes:
en el controlador de ejecución:
- cargar el programa AVI en una memoria (412) como respuesta a la presencia del programa AVI en el flujo de paquetes seleccionado de entre varios; almacenar el identificador del programa de aplicación cargado en un lugar respectivo de la memoria y buscar bloques previamente almacenados en la memoria que contengan identificadores de programas AVI minimizados y si un identificador contenido en un bloque coincide con el identificador del programa AVI cargado en la memoria, ajustar el estado y el entorno de ejecución del programa AVI recién cargado a un estado y entorno de ejecución contenido en el bloque coincidente;
- enviar un mensaje de activar la alternación al programa AVI como respuesta a una entrada del usuario;
- enviar un mensaje de salida al programa AVI como respuesta a una señal de ejecución de finalización en el flujo de paquetes seleccionado de entre varios;
- enviar un mensaje de suspensión al programa AVI como respuesta a una señal de ejecución de suspensión en el flujo de paquetes seleccionado de entre varios;
- enviar un mensaje de continuación al programa AVI como respuesta a una señal de ejecución de continuación en el flujo de paquetes seleccionado de entre varios;
- enviar un mensaje de minimizar al programa AVI como respuesta a la presencia de un programa AVI en el flujo de datos con un identificador diferente que el respectivo identificador de la memoria; y
en el programa AVI:
- ejecución de uno de los siguientes:
- un estado inactivo (61), en el que el programa AVI está inactivo;
- un estado activo (63), en el que el programa AVI se está ejecutando;
- un estado suspendido (65), en el que el programa AVI está suspendido; y
- un estado minimizado (67), incluyendo las etapas siguientes:
- detención de la ejecución del programa AVI; a continuación almacenamiento del identificador del programa AVI y el estado y entorno de ejecución del mismo en un bloque de la memoria; y descarga del programa AVI desde ésta;
- adoptarse el estado inactivo, como respuesta a la carga de un programa AVI en la memoria;
- detener la ejecución, y descargar un programa AVI de la memoria como respuesta al mensaje de salida;
- cuando se encuentra en el estado inactivo, adoptarse el estado activo como respuesta a un mensaje alternante de activación;
- cuando se encuentra en el estado activo:
- adoptarse el estado inactivo, como respuesta a un mensaje de activar la alternación; y
- adoptarse el estado suspendido, como respuesta a un mensaje de suspensión; y
- cuando se encuentra en el estado suspendido:
- adoptarse el estado activo, como respuesta a un mensaje de continuación;
- adoptarse el estado inactivo, como respuesta a un mensaje de activar la alternación; y
- adoptarse el estado minimizado como respuesta al mensaje de minimización.
5. Método según la reivindicación 4,
caracterizado porque en la etapa de almacenamiento, en la
etapa de ejecución, en un estado minimizado, en el estado de
aplicación, incluye además la etapa siguiente:
- almacenar un tiempo de duración en el bloque de memoria, indicando el periodo de tiempo durante el cual los datos almacenados en el bloque de memoria permanecerán en la memoria y, después de que ese periodo de tiempo haya expirado, eliminar los datos almacenados en el bloque de memoria.
6. Método según la reivindicación 4,
caracterizado porque:
la señal de ejecución de suspensión en el flujo
de paquetes seleccionado de entre varios está representada por
paquetes de señales de ejecución de suspensión repetitivas durante
un intervalo de tiempo de suspensión, y la señal de ejecución de
continuación no está representada por ningún paquete de señales de
ejecución de suspensión repetitivo; y
la etapa de enviar un mensaje de suspensión en el
controlador de ejecución incluye la etapa de enviar el mensaje de
suspensión en respuesta a un primer paquete de señales de ejecución
de suspensión; y
la etapa de enviar un mensaje de continuación en
el controlador de ejecución incluye la etapa de enviar el mensaje
de continuación después de un periodo de tiempo predeterminado en el
que no se reciba ningún paquete de señales de ejecución de
suspensión.
7. Método según la reivindicación 4,
caracterizado porque:
la señal de ejecución de suspensión está
representada por un paquete de señales de ejecución de suspensión y
la señal de ejecución de continuación está representada por un
paquete de señales de ejecución de continuación; y
la etapa de enviar un mensaje de suspensión en el
controlador de ejecución incluye la etapa de enviar el mensaje de
suspensión en respuesta a un paquete de señales de ejecución de
suspensión; y
la etapa de enviar un mensaje de continuación en
el controlador de ejecución incluye la etapa de enviar el mensaje
de continuación en respuesta a un paquete de señales de ejecución
de continuación.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US234146 | 1994-04-28 | ||
US08/234,146 US5563648A (en) | 1994-04-28 | 1994-04-28 | Method for controlling execution of an audio video interactive program |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2147719T1 ES2147719T1 (es) | 2000-10-01 |
ES2147719T3 true ES2147719T3 (es) | 2004-05-01 |
Family
ID=22880139
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99115043T Expired - Lifetime ES2147719T3 (es) | 1994-04-28 | 1995-04-19 | Metodo para controlar la ejecucion de un programa de audio y video interactivo. |
ES95105800T Expired - Lifetime ES2142966T3 (es) | 1994-04-28 | 1995-04-19 | Metodo para controlar la ejecucion de un programa de audio/video interactivo. |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES95105800T Expired - Lifetime ES2142966T3 (es) | 1994-04-28 | 1995-04-19 | Metodo para controlar la ejecucion de un programa de audio/video interactivo. |
Country Status (11)
Country | Link |
---|---|
US (1) | US5563648A (es) |
EP (2) | EP0949816B1 (es) |
JP (1) | JP4011128B2 (es) |
KR (1) | KR100334086B1 (es) |
CN (1) | CN1097386C (es) |
CA (1) | CA2145898C (es) |
DE (3) | DE949816T1 (es) |
ES (2) | ES2147719T3 (es) |
PT (1) | PT949816E (es) |
RU (1) | RU95106670A (es) |
TW (1) | TW357534B (es) |
Families Citing this family (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9400101D0 (en) * | 1994-01-05 | 1994-03-02 | Thomson Consumer Electronics | Consumer interface for a satellite television system |
US8793738B2 (en) * | 1994-05-04 | 2014-07-29 | Starsight Telecast Incorporated | Television system with downloadable features |
US5666293A (en) * | 1994-05-27 | 1997-09-09 | Bell Atlantic Network Services, Inc. | Downloading operating system software through a broadcast channel |
US5768539A (en) * | 1994-05-27 | 1998-06-16 | Bell Atlantic Network Services, Inc. | Downloading applications software through a broadcast channel |
US5614940A (en) * | 1994-10-21 | 1997-03-25 | Intel Corporation | Method and apparatus for providing broadcast information with indexing |
US6064378A (en) * | 1994-12-23 | 2000-05-16 | Thomson Consumer Electronics, Inc. | Program guide in a digital video system |
US5778406A (en) * | 1995-06-30 | 1998-07-07 | Thomson Consumer Electronics, Inc. | Apparatus for delivering CPU independent data for little and big endian machines |
US5920572A (en) * | 1995-06-30 | 1999-07-06 | Divicom Inc. | Transport stream decoder/demultiplexer for hierarchically organized audio-video streams |
US5826166A (en) * | 1995-07-06 | 1998-10-20 | Bell Atlantic Network Services, Inc. | Digital entertainment terminal providing dynamic execution in video dial tone networks |
US5835717A (en) * | 1995-12-13 | 1998-11-10 | Silicon Graphics, Inc. | System and method for saving state information in an interactive television system |
US6044396A (en) * | 1995-12-14 | 2000-03-28 | Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. | Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel |
US5729292A (en) * | 1995-12-21 | 1998-03-17 | Thomson Multimedia, S.A. | Optimizing performance in a packet slot priority packet transport system |
US5835493A (en) * | 1996-01-02 | 1998-11-10 | Divicom, Inc. | MPEG transport stream remultiplexer |
US6101546A (en) * | 1996-03-11 | 2000-08-08 | Microsoft Corporation | Method and system for providing data files that are partitioned by delivery time and data type |
US6240555B1 (en) * | 1996-03-29 | 2001-05-29 | Microsoft Corporation | Interactive entertainment system for presenting supplemental interactive content together with continuous video programs |
US5918012A (en) * | 1996-03-29 | 1999-06-29 | British Telecommunications Public Limited Company | Hyperlinking time-based data files |
US6025837A (en) | 1996-03-29 | 2000-02-15 | Micrsoft Corporation | Electronic program guide with hyperlinks to target resources |
US6225993B1 (en) * | 1996-04-22 | 2001-05-01 | Sun Microsystems, Inc. | Video on demand applet method and apparatus for inclusion of motion video in multimedia documents |
EP0810789B1 (en) * | 1996-05-30 | 2004-07-14 | Matsushita Electric Industrial Co., Ltd. | Data transmitting apparatus, data receiving apparatus and method and communication system |
EP1513348A1 (en) * | 1996-09-11 | 2005-03-09 | Matsushita Electric Industrial Co., Ltd. | Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution |
JP3434653B2 (ja) * | 1996-12-05 | 2003-08-11 | 富士通株式会社 | マルチメディアデータ蓄積伝送方法及び装置 |
US5850218A (en) | 1997-02-19 | 1998-12-15 | Time Warner Entertainment Company L.P. | Inter-active program guide with default selection control |
GB2325537B8 (en) * | 1997-03-31 | 2000-01-31 | Microsoft Corp | Query-based electronic program guide |
CA2257578C (en) * | 1997-04-07 | 2003-01-21 | At&T Corp. | System and method for processing object-based audiovisual information |
EP0909509B1 (en) * | 1997-04-07 | 2007-05-30 | AT & T Corporation | System and method for generation and interfacing of bitstreams representing mpeg-coded audiovisual objects |
JP4726097B2 (ja) * | 1997-04-07 | 2011-07-20 | エイ・ティ・アンド・ティ・コーポレーション | 適応制御を行うことができるmpegコード化オーディオ・ビジュアル対象物をインターフェースで連結するためのシステムおよび方法 |
US5818440A (en) * | 1997-04-15 | 1998-10-06 | Time Warner Entertainment Co. L.P. | Automatic execution of application on interactive television |
US6801575B1 (en) * | 1997-06-09 | 2004-10-05 | Sharp Laboratories Of America, Inc. | Audio/video system with auxiliary data |
JPH1127641A (ja) * | 1997-07-07 | 1999-01-29 | Toshiba Corp | テレビジョン受信機 |
EP0907285A1 (en) * | 1997-10-03 | 1999-04-07 | CANAL+ Société Anonyme | Downloading data |
WO1999019864A2 (en) | 1997-10-15 | 1999-04-22 | At & T Corp. | Improved system and method for processing object-based audiovisual information |
US6351471B1 (en) * | 1998-01-14 | 2002-02-26 | Skystream Networks Inc. | Brandwidth optimization of video program bearing transport streams |
US6195368B1 (en) | 1998-01-14 | 2001-02-27 | Skystream Corporation | Re-timing of video program bearing streams transmitted by an asynchronous communication link |
US6246701B1 (en) | 1998-01-14 | 2001-06-12 | Skystream Corporation | Reference time clock locking in a remultiplexer for video program bearing transport streams |
US6292490B1 (en) | 1998-01-14 | 2001-09-18 | Skystream Corporation | Receipts and dispatch timing of transport packets in a video program bearing stream remultiplexer |
US6351474B1 (en) | 1998-01-14 | 2002-02-26 | Skystream Networks Inc. | Network distributed remultiplexer for video program bearing transport streams |
US6654931B1 (en) | 1998-01-27 | 2003-11-25 | At&T Corp. | Systems and methods for playing, browsing and interacting with MPEG-4 coded audio-visual objects |
US7032236B1 (en) * | 1998-02-20 | 2006-04-18 | Thomson Licensing | Multimedia system for processing program guides and associated multimedia objects |
EP1057339B1 (en) * | 1998-02-20 | 2003-07-09 | Thomson Consumer Electronics, Inc. | A multimedia system for processing program guides and associated multimedia objects |
US6609144B1 (en) | 1998-05-04 | 2003-08-19 | Matsushita Electric Industrial Co., Ltd. | Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution |
WO1999066679A1 (en) * | 1998-06-19 | 1999-12-23 | Matsushita Electric Industrial Co., Ltd. | Data transmitting/receiving method and device, and program recorded medium |
US6442755B1 (en) | 1998-07-07 | 2002-08-27 | United Video Properties, Inc. | Electronic program guide using markup language |
US6311221B1 (en) * | 1998-07-22 | 2001-10-30 | Appstream Inc. | Streaming modules |
JP2000092118A (ja) * | 1998-09-08 | 2000-03-31 | Hitachi Ltd | プログラマブルネットワーク |
FR2784474A1 (fr) * | 1998-10-08 | 2000-04-14 | Thomson Multimedia Sa | Gestionnaire d'applications avec jeu d'instructions de gestion variable |
US7487534B1 (en) * | 1998-11-12 | 2009-02-03 | General Instrument Corporation | Application programming interface (API) for accessing and managing resources in digital television receiver |
US7877290B1 (en) | 1999-03-29 | 2011-01-25 | The Directv Group, Inc. | System and method for transmitting, receiving and displaying advertisements |
US7552458B1 (en) * | 1999-03-29 | 2009-06-23 | The Directv Group, Inc. | Method and apparatus for transmission receipt and display of advertisements |
AU4182400A (en) | 1999-03-30 | 2000-10-16 | Diva Systems Corporation | User access to secondary content associated with a primary content |
US7222155B1 (en) | 1999-06-15 | 2007-05-22 | Wink Communications, Inc. | Synchronous updating of dynamic interactive applications |
US7069571B1 (en) | 1999-06-15 | 2006-06-27 | Wink Communications, Inc. | Automated retirement of interactive applications using retirement instructions for events and program states |
US7634787B1 (en) | 1999-06-15 | 2009-12-15 | Wink Communications, Inc. | Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs |
US7325245B1 (en) * | 1999-09-30 | 2008-01-29 | Intel Corporation | Linking to video information |
US8250617B2 (en) | 1999-10-29 | 2012-08-21 | Opentv, Inc. | System and method for providing multi-perspective instant replay |
US6970641B1 (en) * | 2000-09-15 | 2005-11-29 | Opentv, Inc. | Playback of interactive programs |
AU770707B2 (en) * | 1999-10-29 | 2004-02-26 | Opentv, Corp. | Playback of interactive programs |
US7000245B1 (en) | 1999-10-29 | 2006-02-14 | Opentv, Inc. | System and method for recording pushed data |
EP1224806B1 (en) * | 1999-10-29 | 2003-11-19 | OpenTV, Corp. | System and method for recording pushed data |
US6530084B1 (en) * | 1999-11-01 | 2003-03-04 | Wink Communications, Inc. | Automated control of interactive application execution using defined time periods |
US8291444B1 (en) | 1999-12-30 | 2012-10-16 | Intel Corporation | System for controlling use of broadcast content |
FR2803472B1 (fr) * | 2000-01-03 | 2003-05-16 | Nptv | Procede informatique pour l'exploitation d'une emission de television numerique interactive |
US7631338B2 (en) * | 2000-02-02 | 2009-12-08 | Wink Communications, Inc. | Interactive content delivery methods and apparatus |
US7028327B1 (en) | 2000-02-02 | 2006-04-11 | Wink Communication | Using the electronic program guide to synchronize interactivity with broadcast programs |
US7367042B1 (en) | 2000-02-29 | 2008-04-29 | Goldpocket Interactive, Inc. | Method and apparatus for hyperlinking in a television broadcast |
US7343617B1 (en) | 2000-02-29 | 2008-03-11 | Goldpocket Interactive, Inc. | Method and apparatus for interaction with hyperlinks in a television broadcast |
FR2807265B1 (fr) * | 2000-04-03 | 2003-01-24 | Sagem | Dispositif de reception et de restitution de sequences audio et video |
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 |
US7360231B2 (en) * | 2000-05-01 | 2008-04-15 | The Directv Group, Inc. | System for obtaining data regarding customer use of interactive television |
WO2001084824A2 (en) * | 2000-05-03 | 2001-11-08 | Worldgate Service, Inc. | Television terminal for processing and controlling memory resources for plural applications |
US6629227B1 (en) * | 2000-05-04 | 2003-09-30 | Scientific-Atlanta, Inc. | System and method for a communication terminal to manage memory and maintain a current application version for multiple applications |
GB0016062D0 (en) * | 2000-06-30 | 2000-08-23 | Koninkl Philips Electronics Nv | Playback of applications with non-linear time |
JP4543513B2 (ja) * | 2000-07-17 | 2010-09-15 | ソニー株式会社 | 双方向通信システム、表示装置、ベース装置および双方向通信方法 |
JP4501243B2 (ja) * | 2000-07-24 | 2010-07-14 | ソニー株式会社 | テレビジョン受像機およびプログラム実行方法 |
US6704926B1 (en) * | 2000-09-28 | 2004-03-09 | International Business Machines Corporation | Bimodal Java just-in-time complier |
US6889384B1 (en) * | 2000-11-08 | 2005-05-03 | The Directv Group, Inc. | Simplified interactive user interface for multi-video channel navigation |
US6917627B1 (en) | 2000-11-21 | 2005-07-12 | The Directv Group, Inc. | Hybrid satellite communications system |
US20020152467A1 (en) * | 2001-02-12 | 2002-10-17 | Rosario Fiallos | Automated generation of conditional access packets for IRD upgrades via radio frequency software download in satellite television systems |
US20020178455A1 (en) * | 2001-03-14 | 2002-11-28 | General Instrument Corporation | Dynamic movement of the control channel for broadband communication devices |
US7313824B1 (en) * | 2001-07-13 | 2007-12-25 | Liquid Machines, Inc. | Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent |
US7154916B2 (en) * | 2001-07-26 | 2006-12-26 | The Directv Group, Inc. | Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels |
WO2003015394A2 (en) * | 2001-08-06 | 2003-02-20 | Digeo, Inc. | System and method to provide local content and corresponding applications via carousel transmission |
US6996564B2 (en) * | 2001-08-13 | 2006-02-07 | The Directv Group, Inc. | Proactive internet searching tool |
US8880709B2 (en) * | 2001-09-12 | 2014-11-04 | Ericsson Television Inc. | Method and system for scheduled streaming of best effort data |
GB0122585D0 (en) | 2001-09-19 | 2001-11-07 | Koninl Philips Electronics Nv | Control of an interactive application |
GB0122669D0 (en) * | 2001-09-20 | 2001-11-14 | Koninl Philips Electronics Nv | Processing of a broadcast signal |
US20030093515A1 (en) * | 2001-11-14 | 2003-05-15 | Kauffman Marc W. | Quality of service control of streamed content delivery |
US20030099364A1 (en) * | 2001-11-28 | 2003-05-29 | Thompson Mark R. | Playback manipulation of HTTP streamed content objects |
US7844994B2 (en) * | 2002-03-22 | 2010-11-30 | The Directv Group, Inc. | System and method for persistent storage of common user information for interactive television using a centrally located repository |
US20040210947A1 (en) | 2003-04-15 | 2004-10-21 | Shusman Chad W. | Method and apparatus for interactive video on demand |
US20030196206A1 (en) | 2002-04-15 | 2003-10-16 | Shusman Chad W. | Method and apparatus for internet-based interactive programming |
US20040032486A1 (en) | 2002-08-16 | 2004-02-19 | Shusman Chad W. | Method and apparatus for interactive programming using captioning |
EP1377034A1 (en) * | 2002-06-27 | 2004-01-02 | Thomson Licensing S.A. | Data processing device and method for interactive television |
US20040031052A1 (en) * | 2002-08-12 | 2004-02-12 | Liberate Technologies | Information platform |
AU2003268273B2 (en) * | 2002-08-30 | 2007-07-26 | Opentv, Inc | Carousel proxy |
US20040194153A1 (en) * | 2003-03-24 | 2004-09-30 | Sony Corporation And Sony Electronics Inc. | Conservation of system resources by efficiently activating/de-activating applications |
US7076616B2 (en) * | 2003-03-24 | 2006-07-11 | Sony Corporation | Application pre-launch to reduce user interface latency |
US7693222B2 (en) * | 2003-08-13 | 2010-04-06 | Ericsson Television Inc. | Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation |
US7870352B2 (en) * | 2003-11-13 | 2011-01-11 | Stalker Altan J | State-based memory unloading |
PL367409A1 (en) * | 2004-04-20 | 2005-10-31 | Advanced Digital Broadcast Ltd. | Tv analogue and digital signal receiver and method for receiving analogue and digital signals |
WO2006049185A1 (ja) * | 2004-11-02 | 2006-05-11 | Matsushita Electric Industrial Co., Ltd. | アプリケーションプログラム実行装置 |
US20060225107A1 (en) * | 2005-04-01 | 2006-10-05 | Microsoft Corporation | System for running applications in a resource-constrained set-top box environment |
US7870562B1 (en) * | 2005-06-24 | 2011-01-11 | Apple Inc. | Media rendering hierarchy |
US8776078B2 (en) * | 2008-05-20 | 2014-07-08 | International Business Machines Corporation | Method for dynamically freeing computer resources |
US7991801B2 (en) * | 2008-06-10 | 2011-08-02 | International Business Machines Corporation | Real-time dynamic and synchronized captioning system and method for use in the streaming of multimedia data |
US8566481B2 (en) * | 2009-06-10 | 2013-10-22 | Cisco Technology, Inc. | Managing configuration data |
US20110154420A1 (en) * | 2009-12-17 | 2011-06-23 | Level 3 Communications, Llc | Data Feed Resource Reservation System |
US20120050619A1 (en) | 2010-08-30 | 2012-03-01 | Sony Corporation | Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system |
KR20120055779A (ko) * | 2010-11-23 | 2012-06-01 | 한국전자통신연구원 | 지그비 기반의 음성 데이터 송수신 시스템 및 그의 음성 데이터 송수신 방법 |
US8935719B2 (en) | 2011-08-25 | 2015-01-13 | Comcast Cable Communications, Llc | Application triggering |
JP5957204B2 (ja) * | 2011-11-01 | 2016-07-27 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
US8687947B2 (en) | 2012-02-20 | 2014-04-01 | Rr Donnelley & Sons Company | Systems and methods for variable video production, distribution and presentation |
US9880776B1 (en) | 2013-02-22 | 2018-01-30 | Veritas Technologies Llc | Content-driven data protection method for multiple storage devices |
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 |
US10114661B2 (en) * | 2014-11-07 | 2018-10-30 | Roku, Inc. | System and method for fast starting an application |
US9948962B2 (en) | 2014-11-13 | 2018-04-17 | Time Warner Cable Enterprises Llc | Apparatus and methods for efficient delivery of electronic program guide data |
US11650562B2 (en) | 2019-08-26 | 2023-05-16 | Toyota Motor Engineering & Manufacturing North America, Inc. | Interface assemblies for manufacturing components |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3803491A (en) * | 1971-05-26 | 1974-04-09 | Tocom | Communications system |
US3891792A (en) * | 1974-06-25 | 1975-06-24 | Asahi Broadcasting | Television character crawl display method and apparatus |
US4528589A (en) * | 1977-02-14 | 1985-07-09 | Telease, Inc. | Method and system for subscription television billing and access |
US4264925A (en) * | 1979-08-13 | 1981-04-28 | Michael J. Freeman | Interactive cable television system |
US4323922A (en) * | 1979-12-17 | 1982-04-06 | Oak Industries Inc. | Television coding system with channel level identification |
US4965825A (en) * | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US5191573A (en) * | 1988-06-13 | 1993-03-02 | Hair Arthur R | Method for transmitting a desired digital video or audio signal |
US5003591A (en) * | 1989-05-25 | 1991-03-26 | General Instrument Corporation | Functionally modifiable cable television converter system |
WO1991003112A1 (en) * | 1989-08-23 | 1991-03-07 | Delta Beta Pty. Ltd. | Program transmission optimisation |
US5132992A (en) * | 1991-01-07 | 1992-07-21 | Paul Yurt | Audio and video transmission and receiving system |
US5168356A (en) * | 1991-02-27 | 1992-12-01 | General Electric Company | Apparatus for segmenting encoded video signal for transmission |
EP0514819B1 (en) * | 1991-05-23 | 1996-05-01 | Hitachi, Ltd. | Wide-screen television receiver with aspect ratio conversion function and method of displaying a magnified range |
US5289276A (en) * | 1992-06-19 | 1994-02-22 | General Electric Company | Method and apparatus for conveying compressed video data over a noisy communication channel |
US5418559A (en) * | 1992-10-23 | 1995-05-23 | At&T Corp. | Multi-channel television converter for conventional and interactive signals |
US5440632A (en) * | 1992-12-02 | 1995-08-08 | Scientific-Atlanta, Inc. | Reprogrammable subscriber terminal |
-
1994
- 1994-04-28 US US08/234,146 patent/US5563648A/en not_active Expired - Lifetime
-
1995
- 1995-03-18 TW TW084102616A patent/TW357534B/zh not_active IP Right Cessation
- 1995-03-30 CA CA002145898A patent/CA2145898C/en not_active Expired - Lifetime
- 1995-04-19 DE DE0949816T patent/DE949816T1/de active Pending
- 1995-04-19 ES ES99115043T patent/ES2147719T3/es not_active Expired - Lifetime
- 1995-04-19 PT PT99115043T patent/PT949816E/pt unknown
- 1995-04-19 DE DE69515076T patent/DE69515076T2/de not_active Expired - Lifetime
- 1995-04-19 DE DE69531561T patent/DE69531561T2/de not_active Expired - Lifetime
- 1995-04-19 ES ES95105800T patent/ES2142966T3/es not_active Expired - Lifetime
- 1995-04-19 EP EP99115043A patent/EP0949816B1/en not_active Expired - Lifetime
- 1995-04-19 EP EP95105800A patent/EP0680213B1/en not_active Expired - Lifetime
- 1995-04-24 RU RU95106670/09A patent/RU95106670A/ru unknown
- 1995-04-26 JP JP13556995A patent/JP4011128B2/ja not_active Expired - Lifetime
- 1995-04-27 KR KR1019950010046A patent/KR100334086B1/ko not_active IP Right Cessation
- 1995-04-27 CN CN95104704A patent/CN1097386C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0680213B1 (en) | 2000-02-16 |
KR100334086B1 (ko) | 2002-09-05 |
PT949816E (pt) | 2003-12-31 |
DE949816T1 (de) | 2001-01-25 |
EP0949816A3 (en) | 2000-06-14 |
CN1112333A (zh) | 1995-11-22 |
DE69515076T2 (de) | 2000-07-13 |
DE69531561T2 (de) | 2004-06-17 |
RU95106670A (ru) | 1997-01-20 |
JP4011128B2 (ja) | 2007-11-21 |
CN1097386C (zh) | 2002-12-25 |
CA2145898C (en) | 2004-10-26 |
US5563648A (en) | 1996-10-08 |
ES2147719T1 (es) | 2000-10-01 |
CA2145898A1 (en) | 1995-10-29 |
DE69531561D1 (de) | 2003-09-25 |
EP0680213A3 (en) | 1996-05-08 |
ES2142966T3 (es) | 2000-05-01 |
JPH0851596A (ja) | 1996-02-20 |
KR950035418A (ko) | 1995-12-30 |
EP0949816A2 (en) | 1999-10-13 |
EP0680213A2 (en) | 1995-11-02 |
TW357534B (en) | 1999-05-01 |
DE69515076D1 (de) | 2000-03-23 |
EP0949816B1 (en) | 2003-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2147719T3 (es) | Metodo para controlar la ejecucion de un programa de audio y video interactivo. | |
JP3781454B2 (ja) | オーディオ・ビデオ対話信号を処理する方法と装置 | |
ES2201511T3 (es) | Tratamiento de un flujo de transporte digital. | |
ES2206957T3 (es) | Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394. | |
JP4283877B2 (ja) | プログラム受信実行装置及びそのためのプログラム送信装置 | |
EP0909094A1 (en) | Multithread data processor | |
CA2585255C (en) | System and method for reserve allocation of event data | |
CN114765691B (zh) | 视频直播的功能组件加载方法、数据处理方法及设备 | |
US20050278721A1 (en) | Applications manager with variable management instruction set | |
CN112653915A (zh) | 一种基于电视的传感赋能方法、装置、电视及存储介质 | |
US6439999B1 (en) | Method for controlling execution of processing in video game, storage medium storing processing execution control program, and game apparatus | |
JP2002513253A (ja) | レシーバ/デコーダおよびビデオデータの処理方法 | |
JP2001518217A (ja) | コンピュータ・メモリ構成 | |
JP4303884B2 (ja) | モデム制御 | |
KR100604211B1 (ko) | 리시버/디코더 및 이를 구비한 방송 시스템 | |
CN117667420A (zh) | 资源调度方法、设备及存储介质 | |
JP2003015889A (ja) | 情報処理装置 | |
MXPA00009426A (es) | Administracion de memoria en un receptor/descodificador | |
JPH07231323A (ja) | コンピュータ装置 | |
MXPA00000776A (es) | Controlador de dispositivo de caja superior ieee |