JP4011128B2 - オーディオ・ビデオ対話型プログラムの実行を制御する方法 - Google Patents

オーディオ・ビデオ対話型プログラムの実行を制御する方法 Download PDF

Info

Publication number
JP4011128B2
JP4011128B2 JP13556995A JP13556995A JP4011128B2 JP 4011128 B2 JP4011128 B2 JP 4011128B2 JP 13556995 A JP13556995 A JP 13556995A JP 13556995 A JP13556995 A JP 13556995A JP 4011128 B2 JP4011128 B2 JP 4011128B2
Authority
JP
Japan
Prior art keywords
audio
video interactive
message
interactive program
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP13556995A
Other languages
English (en)
Other versions
JPH0851596A (ja
Inventor
メナンド ジーン−レネ
デルパツク アラン
Original Assignee
オープン ティーヴィー インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オープン ティーヴィー インコーポレイテッド filed Critical オープン ティーヴィー インコーポレイテッド
Publication of JPH0851596A publication Critical patent/JPH0851596A/ja
Application granted granted Critical
Publication of JP4011128B2 publication Critical patent/JP4011128B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

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)
  • Stored Programmes (AREA)
  • Television Signal Processing For Recording (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、オーディオビデオ対話型(audio video interactive)実行可能なプログラム・コンポーネントの実行を制御する方法に関する。
【0002】
【発明の背景】
対話型テレビジョンシステムが提案されている。対話型テレビジョンシステムでは、テレビジョン受信機は、放送機器によりプログラム可能であり、ユーザにより入力されたデータに応答し、放送されたビデオ上にオーバレイされたオンスクリーン・グラフィック・ディスプレィを生成し、放送されたオーディオと合成された音声を生成し、かつ/あるいは、放送機器、または他の外部のデータ処理サービスとデータを交換する処理装置を含む。このようなシステムでは、放送ロケーションはコンピュータシステムを含み、このコンピュータシステムは、対話型アプリケーション・プログラム情報を生成し、実行可能なコードとデータを含み、追加のコンポーネントとしての対話型アプリケーション・プログラム情報と関連するテレビジョン信号のビデオおよびオーディオ・コンポーネントとを合成する。テレビジョン受信器の処理装置は、対話型アプリケーション・プログラム情報を放送機器から受信し、その情報により表された対話型アプリケーション・プログラムを実行し、テレビジョンの映像とオーディオとに合成されるグラフィックスと音声を生成し、リモートコントロールユニットを介して受信されるユーザ入力を処理する。
【0003】
提案されているオーディオ・ビデオ対話型システムでは、放送機器からのオーディオ・ビデオ対話型信号はパケットデータ・ストリームの形式で放送され、複数の時間多重されたパケットサービスを含む。各パケットサービスは複合オーディオ・ビデオ対話型信号の異なる信号コンポーネントを有する。例えば、あるサービスはビデオコンポーネントを有し、あるサービスはオーディオコンポーネントを有し、あるサービスは対話型アプリケーション・プログラム情報を有する。また、あるサービスはステレオとSAPオーディオチャンネル、および/またはクローズド・キャプション情報等を有する。さらに、パケットデータ・ストリームの中には、2つ以上のオーディオ・ビデオ対話型プログラムに対するコンポーネントを有するパケットサービスを含むことができるものもある。各パケットサービスは、パケットサービスに関連するる一意のサービスコンポーネント識別子(SCID)を有し、そのパケットサービス内のパケットは、それぞれ、そのサービス識別子を含む。
【0004】
さらに、提案されたオーディオ・ビデオ対話型システムでは、1つのパケットサービスがプログラムガイドを有し、予め定めたサービス識別子を含む。プログラムガイド・パケットサービスにより運ばれるデータは、オーディオ・ビデオ対話型プログラムのコンポーネントと、それらのコンポーネントを運ぶパケットサービスのサービス識別子とを関係付けるるるこのデータを用いて、望ましいオーディオ・ビデオ対話型プログラムのコンポーネントを運ぶパケットサービスをパケットストリームから取り出すことができる。
【0005】
オーディオ・ビデオ対話型信号パケットストリーム内のコンポーネントは、複数のパケットからなる1以上の伝送ユニットにより運ばれる。任意の伝送ユニット内の最初のパケットはヘッダパケットであり、残りのパケットは関連するデータパケットである。ヘッダパケットは後続データについての情報を含み、関連するデータパケットはコンポーネント信号のその部分を構成するデータを運ぶ。異なる伝送ユニットは異なる数のデータパケットを含み、コンポーネント信号の伝送ユニットへの分割は、所望の時間に、視聴者のロケーションに別個のコンポーネント信号を供給するために必要なタイミングにより影響されるか、あるいは、他のリアルタイムに考慮すべきことにより影響される。
【0006】
対話型アプリケーション・プログラム情報コンポーネントは、1つまたはそれ以上の(実行可能なコードを含む)コードモジュールと、恐らくは、1つまたはそれ以上のデータモジュールと、ディレクトリモジュールとによりなる。このディレクトリモジュールは対話型アプリケーション・プログラムのコンポーネントを構成するコードモジュールとデータモジュールを記述するデータを含む。これらのモジュールは、アプリケーション・プログラム・データ・コンポーネントのフロー内で連続して繰り返される。既に述べたが、モジュールはそれぞれ個別に識別され、伝送ユニットにより運ばれる。伝送ユニット内のヘッダパケットは、後続のデータパケット内のデータが属するモジュール内のモジュールの識別子とロケーションを含む。対話型アプリケーション・プログラム情報コンポーネントは、オーディオ・ビデオ対話型のアプリケーション・プログラムの実行を制御するための特別な信号も含む。例えば、ある信号は、現在実行中のオーディオ・ビデオ対話型のアプリケーション・プログラムに対して実行を中断するように命令する。また、別の信号は、現在中断されているオーディオ・ビデオ対話型のアプリケーション・プログラムについて実行を再開するように命令する。さらに、他の信号は、現在実行中のオーディオ・ビデオ対話型のアプリケーション・プログラムに対して実行を停止するように命令する。これらの信号は、オーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内の信号パケットに組み込まれる。
【0007】
オーディオ・ビデオ対話型受信機の処理装置は、システム・ローダーの制御の下に、最初、データフローからディレクトリ・モジュールを取り出し、そのディレクトリに含まれた情報を利用して、どのコードモジュールを最初に実行するべきかを決定する。そして、オートスタート・モジュールと呼ばれる、そのコードモジュールがデータフローから取り出され、メモリにロードされる。オートスタート・モジュールがメモリ内に完全にロードされると、処理装置がそのコードモジュールを実行し始める。実行している間、そのコードモジュールは、ディレクトリモジュール内で識別されたデータモジュールからのデータを要求することができる。そして、これらのデータモジュールが取り出され、メモリ内にロードされる。データモジュールがメモリ内に完全にロードされると、要求されているコードモジュールが通知され、引き続きそのデータを処理する。1つのコードモジュールを後続のコードモジュールにチェインすることも可能である。このような場合、現コードモジュールは、ディレクトリ・モジュールにリストアップされた新しいコードモジュールにチェインする要求を発行し、そのメモリ空間は解放される。そして、要求されたコードモジュールはデータフローから取り出され、メモリにロードされる。要求されたコードモジュールがメモリに完全にロードされると、実行される。他の機能も可能であり、次に説明する。
【0008】
他のディストリビューティッドのコンピュータシステムとは異なり、オーディオ・ビデオ対話型受信機により受信されているオーディオ・ビデオ対話型プログラム・コンポーネントは何時でも変わることがある。例えば、オーディオ・ビデオ対話型プログラムは、非オーディオ・ビデオ対話型コマーシャルまたはオーディオ・ビデオ対話型コマーシャルにより割り込まれることがある。もちろん、このオーディオ・ビデオ対話型コマーシャルは別個のオーディオ・ビデオ対話型プログラムを含んでいる。あるいは、視聴者は或るオーディオ・ビデオ対話型プログラムから別のオーディオ・ビデオ対話型プログラムへチャンネルを変えることがある。オーディオ・ビデオ対話型型実行可能なコードと、そのコードにより発生されている音声およびグラフィックス、受信されているオーディオコンポーネントおよびビデオコンポーネントとの間の適正な同期を保持することが必要である。
【0009】
【発明の概要】
本発明の原理によると、ディレクトリとディレクトリ中に関連する識別子を有するオーディオ・ビデオ対話型プログラムを含んでいるパケットストリームを受信するオーディオ・ビデオ対話型受信機において、オーディオ・ビデオ対話型プログラムの実行を制御する方法であって、該方法は次のステップを含んでいる。最初に、パケットストリーム中にオーディオ・ビデオ対話型プログラムの存在に応答して、オーディオ・ビデオ対話型プログラムをメモリにロードするステップを含む。次に、ロードされたオーディオ・ビデオ対話型プログラムの実行を開始するステップ、それから、異なるオーディオ・ビデオ対話型プログラムを識別するディレクトリがパケットストリーム中に検出されるとき、実行中のオーディオ・ビデオ対話型プログラムを最小化するステップを含む。
【0010】
【実施例】
図1は本発明に係るオーディオ・ビデオ対話型信号デコーダの一部を示すブロック図である。図1に示すデコーダは、オーディオ・ビデオ対話型プログラムへの参加を希望する視聴者ロケーションに設けられている。図1において、トランスポート機構(図示せず)はデコーダの入力端子5に接続されている。入力端子5はチューナ10の入力端子に接続されている。チューナ10の出力端子は、オーディオ・ビデオ対話型プログラム・コンポーネント検出器30のデータ入力端子に接続されている。プログラム・コンポーネント検出器30のデータ出力端子は、処理ユニット40のシステムバス416に接続されている。処理ユニット40は、CPU(cenyral processing unit)410と、リード/ライトメモリ(RAM)412と、ROM(read only memory)414を含み、共に、システムバス416に周知の方法で接続されている。ストリームI/Oアダプタ408は、システムバス416と、プログラム・コンポーネント検出器30の制御端子間に双方向接続される。
【0011】
オーディオ処理装置418はシステムバス416に接続されており、オーディオ・ビデオ対話型オーディオ出力端子25にオーディオ信号を供給する。ビデオ処理装置420も、システムバス416に接続されており、ビデオ信号をオーディオ・ビデオ対話型ビデオ出力端子15に供給する。さらに、入出力機能がI/Oポート422により与えられ、双方向端子45を介して、図示しないローカル処理装置に結合されている。ユーザI/Oアダプタ424はユーザからのデータを入力端子35を介して受信する。モデム426は双方向端子55を介して外部コンピュータ(図示せず)に接続されている。ユーザI/Oアダプタ424と、モデム426も、周知の方法でシステムバス416に接続される。他の装置、例えば、数値計算プロセッサ、他のI/Oアダプタ等を、周知の方法で、システムバス416に接続することができる。その上、デコーダのケースの外部のケース内の他の機器と接続するためのバス拡張装置を含ませることができる。
【0012】
動作時、トランスポート機構は、例えばデコーダへの直接RF衛星リンクか、ケーブルシステムフィード(cable system feed)か、あるいは光ファイバーリンクでも可能であり、複数のオーディオ・ビデオ対話型信号を搬送する。複数のオーディオ・ビデオ対話型信号は、ユーザにより選択され視聴される。直接衛星リンクでは、例えば、複数のオーディオ・ビデオ対話型データストリームは、個々のRF搬送波信号を変調することにより、トランスポート機構上で周波数多重化されたものでもよい。各RF搬送波信号は、衛星内の各トランスポンダから視聴者に再び放送される。チューナ10は、周波の方法で、処理ユニット40の制御により、所望のRF変調信号を選択する。例えば、直接衛星システムでは、所望のオーディオ・ビデオ対話型プログラム信号のコンポーネントを運ぶバケットサービスを含むRF変調信号を、周知のRFチューナにより同調をとることができる。チューナ10の出力は、それらのパケットサービスを含むベースバンドのデジタル・パケット・データストリームである。
【0013】
CPU410は、次のようにして、所望のパケットサービスをプログラム・コンポーネント検出器30に対して要求する。すなわち、所望のサービス識別子とRAM412バッファのロケーションを、ストリームI/Oアダプタ408を介して、適正なSCID(service component identifier)と、プログラム・コンポーネント検出器30内のDMA(directmemory access)コントローラ・レジスタとに書き込むことにより、要求を行っている。そして、プログラム・コンポーネント検出器30は、所望のパケットサービスのため、パケットデータストリームを監視する。所望のパケットサービスから、ヘッダパケットが受信されると、そのヘッダパケットは、周知のDMA書き込み技法を用いて、RAM412内の予め定めたヘッダパケットバッファに貯えられ、ヘッダパケット割り込みが発生される。所望のパケットサービスからデータパケットが受信されると、そのデータパケットは周知のDMA書き込み技法を使用して、RAM412内の前もって特定されているバッファロケーションに貯えられる。伝送ユニット内の全てのデータパケットが受信されると、データ完了割り込みが発生される。パケットサービスからのヘッダパケット、および/または、データパケットの受信は、CPU410の制御によりイネーブルにされるか、あるいは、ディスエーブルにされる。1994年4月22日に出願された米国特許出願第232,787号(発明者:K.E.Bridgewater外、発明の名前:PACKET VIDEO SIGNAL INVERSE TRANSPORT PROCESSOR MEMORY ADDRESS DIRCUITRY)を参照されたい。ここに、この特許出願番号を付して、プログラム・コンポーネント検出器30の詳細な説明の一部とする。
【0014】
例えば、新しいRF変調信号がチューナ10により同調されると、固定されたプログラムガイドサービス識別子を、プログラム・コンポーネント検出器30内のサービス識別子レジスタに供給することにより、プログラムガイドを含むパケットサービスが、CPU410により要求される。プログラムガイドパケット内のデータが受信され、メモリに貯えられると、そのデータにより、CPU410は所望のオーディオ・ビデオ対話型プログラムのためのパケットデータサービスを要求することができる。
【0015】
要求されたパケットサービス内のパケットがプログラム・コンポーネント検出器30により受信され、しかも、DMAにより、RAM412内の予め特定されたバッファロケーションに書き込まれた後に、ビデオ処理装置420とオーディオ処理装置418が、プログラム・コンポーネント検出器30の制御の下に、周知のDMA読み出し技法を用いて、各パケットサービスと関連するRAM412バッファロケーションからデータを読み出す。そして、ビデオ処理装置420とオーディオ処理装置418は、圧縮され、符号化されたデータを復号し、出力端子15にオーディオ・ビデオ対話型ビデオ信号を出力し、出力端子25にオーディオ・ビデオ対話型オーディオ信号を出力する。CPU410は、復号プロセスにおいて、ビデオ処理装置420および/またはオーディオ処理装置418と協力することも可能である。データコンポーネントパケットサービスパケットは、次のような方法により、CPU410の制御の下に処理される。
【0016】
上述したように、プログラム・コンポーネント検出器30により、要求されたパケットサービスからヘッダパケットが受信されるごとに、そのヘッダパケットはそのパケットサービスのためにRAM412内の予め定めたロケーションに貯えられ、ヘッダパケット割り込み信号がCPU410のために生成される。ヘッダパケット割り込み信号に応答して、割り込みハンドラ(handler)が実行される。割り込みハンドラは、ヘッダパケットの内容を解析し、プログラム・コンポーネント検出器30内のDMAレジスタのRAM412バッファロケーションを適正に更新し、DMA転送をイネーブルにするか、あるいは伝送ユニットが望まれていない場合は、DMA転送をディスエーブルにする。DMA転送が一度イネーブルにされると、データパケット内のデータはDMA制御によりRAM412内にロードされる。データパケットのロードが完了すると、プログラム・コンポーネント検出器30はデータ完了割り込み信号を発生する。データ完了割り込み信号に応答して、割り込みハンドラが実行され、クリーンアップ(clean−up)機能を実行し、次のヘッダパケットのための準備をする。
【0017】
図2は、図1に示す処理ユニット40により実行されるソフトウェア200の構造を示す。図2はオーディオ・ビデオ対話型処理マルチタスク・オペレーティングシステムを構成する主なソフトウェア・コンポーネントを示す。図2を説明する。コンポーネントは全てROM414に貯えられる。ただし、黒く塗られたアプリケーション・プログラムは除く。アプリケーション・プログラムは、オーディオ・ビデオ対話型信号のデータコンポーネントにより運ばれ、放送ロケーションから受信され、RAM412に貯えられる。図2に示すソフトウェア・コンポーネントは、実行可能なコードおよび関連する定数データを表す。コードが実行されると、変数データを生成し、変数データにアクセスする。変数データはRAM412に貯えられる。
【0018】
提案されたオーディオ・ビデオ対話型放送システムでは、例えば、異なる製造業者からの異なる命令セットを用いて、異なるデコーダはCPUを使用することができる。このシステムでは、アプリケーション・プログラムは、プロセッサに無関係な中間コードである。各デコーダのソフトウェアは、アプリケーション中間コードを解釈するコンポーネント(INTERPRETER:インタプリタ)を含む。インタプリタにより、放送されたアプリケーション・プログラムは、どのような形式のCPU410を含むデコーダ上でも実行することができる。このインタープリタは、RAM412からオーディオ・ビデオ対話型データコンポーネント命令を中間コードの形で読み出し、メモリを操作し、API(application program interface)を介して、他のソフトウェア・コンポーネントを介してハードウェアと対話する。このAPIは、基本的には、アプリケーション・プログラムで利用可能なサブルーチンのリストであって、サブルーチンを呼び出すのに必要な情報である。APIはアプリケーション・プログラムにより発行され、デコーダ要素をアクセスするために、アプリケーション・プログラムにより使用することができる。
【0019】
数学ライブラリは整数演算と浮動小数点演算を実行するのに必要な機能を全て実行する。フロー・オペレーティング・システムは、オーディオ・ビデオ対話型信号のデータコンポーネントを監視するのに必要な全てのドライバーと、プロセス要求されたモジュールとを制御する。このことは後程詳細に説明する。ユーザインターフェース管理コンポーネントは、ユーザとの対話を全て扱い、ユーザと通信するため、イベントマネジャとグラフィックス・ライブラリを利用する。このグラフィックス・ライブラリは、受信されたオーディオ・ビデオ対話型ビデオ上にオーバレイする全てのグラフィックイメージを生成し、数学ライブラリを用いて、複雑な曲線を描く。
【0020】
デコーダソフトウェアの異なるソフトウェアコンポーネントは、互いにメッセージを送信して、他と非同期に通信する。各プログラムコンポーネントは、メッセージキュー(message queue)を有し、そのキューから次のメッセージを繰り返し読み出し、そのメッセージを処理し、他のプログラムコンポーネントにメッセージを送信することにより、オペレートする。メッセージ保留がない場合は、次のメッセージを待つ。イベントマネジャは、メッセージを適正にルーティングし、メッセージキューを維持することにより、他のソフトウェアコンポーネントとの間でのメッセージ通信を管理する。
【0021】
各ハードウェアアダプタは、関連するソフトウェアドライバも含む。ドライバは、関連するハードウェアアダプタ内のレジスタとCPU410との間で、システムバス416を介して、実際の対話を行う。例えば、モデム426と、外部I/Oポート422と、ストリームI/Oアダプタ408と、ユーザI/O 424に対して、ドライバが存在する。さらに、別のドライバがソフトウェアタイマを保守し、デコーダのフロントパネルを操作する。これらのドライバはイベントマネジャに密接に依存している。上記のコンポーネントは、全て、マルチタスクカーネルにより供給される共通の機能を使用する。例えば、カーネルは、プロセスの優先順位と、アクティブタスクキューと、信号と、セマフォアと、プリエンプティブ・スイッチング・クロック・チックと、割り込み(ハードウェアおよびソフトウェア)と、プロセススタックを保守する。さらに、カーネルは、ハードウェア初期化を行い、システムローダである最初のシステムタスクを開始する。
【0022】
開始時に、システムローダはフロー・オペレーティング・システムへのAPIコールを実行し、フロー・オペレーティング・システムはストリームドライバをコールし、ストリームI/Oアダプタ408を介して、プログラム・コンポーネント検出器30に適正なデータを送る。システムローダからのこれらのAPIコールにより、ディレクトリ・モジュールに対して、データコンポーネントパケットサービスのスキャンを開始する。この方法は以下に詳細に説明する。ディレクトリ・モジュールが見つけられると、ディレクトリ・モジュールがRAM412にロードされ、そのプログラムを実行するのに必要な資源が全て利用可能か否かを知るため、チェックされる。肯定判定された場合は、システムローダはオートスタート・モジュールと呼ばれる最初のモジュールに対してオーディオ・ビデオ対話型データコンポーネントの走査を開始し、それによりオーディオ・ビデオ対話型プログラムは起動されることになる。オートスタートモジュールが見つかると、データコンポーネント・パケットサービスから取り出され、RAM412にロードされる。このオートスタートモジュールは、中間コードの形式であり、インタプリタによりインタプリートされて実行される。オートスタートモジュールは初期化の残りを実行し、オーディオ・ビデオ対話型プログラムの実行を開始する。このプログラムは他のコードモジュールとデータモジュールをロードすることができ、全て、APIコールにより、他のコードモジュールとチェイン(chain)することができる。このようにして、システムローダはクラシックのUNIX(登録商標)シェルと同様に動作する。
【0023】
さらに、システムローダは引き続きデータコンポーネント・パケットサービスをスキャンし、伝送されたディレクトリ・モジュールと、RAM412内の現在のディレクトリ・モジュールとを比較する。伝送されたディレクトリ・モジュールがRAM412に格納されているディレクトリ・モジュールと異なる場合、データコンポーネント・パケットサービスが変更されたこと、例えば、視聴者がチャンネルを変えたときとか、対話型コマーシャルが放送されているときのようなことを示す。この場合、メッセージが、イベントマネジャを介して、APIを用いて、アプリケーション・プログラムに送られる。このメッセージに応答して、アプリケーション・プログラムは全ての資源の割り振りを解除し、処理要素40内に最小限存在するように維持する。例えば、コードモジュールとデータモジュールの全てを格納するために使用されるメモリを解放することができ、アプリケーションの実行状態だけがRAM412に保たれる。アプリケーション・プログラムの最小化が完了すると、メッセージがシステムローダに送られる。
【0024】
そして、新しいディレクトリモジュールにより表わされるオーディオ・ビデオ対話型プログラムを実行するのに必要な資源を、システムローダは割り振る。新しいディレクトリ・モジュールがオーディオ・ビデオ対話型データコンポーネント・パケットサービス内で検出されたとき、前に最小化されたアプリケーションのリストが検索される。そして、新しいディレクトリにより表されるアプリケーションが存在する場合は、そのアプリケーションは、データコンポーネントフローから、必要なコードモジュールとデータモジュールを再ロードすることにより再開される。また、前に停止した所から実行を再開することにより再開される。このモジュールは、介在する対話型コマーシャルの終了時に起きる。このプロセスは繰り返すことができる。ただし、第2のオーディオ・ビデオ対話型プログラムに、第3のオーディオ・ビデオ対話型プログラムが割りこむことができる。後に、再起動される。
【0025】
図3はフローとメモリのレイアウトを示す。図4はオーディオ・ビデオ対話型プログラム中のデータコンポーネントからのモジュール抽出を理解するのに有用な詳細なメモリレイアウトと(図1の)プログラム・コンポーネント検出器30の更に詳細なブロック図である。図4において、(図1の)チューナ10からのベースバンドのデジタルパケットストリームが、プログラム・コンポーネント検出器30内でヘッダパケットDMAコントローラ34と、データDMAコントローラ32との各データ入力端子に接続されている。データDMAコントローラ32と、ヘッダパケットDMAコントローラ34の各データ出力端子は、処理ユニット40のシステムバス416に接続されている。ストリームI/Oアダプタ408は、システムバス416と、データDMAコントローラ32の制御入力端子と、ヘッダパケットDMAコントローラ34の制御入力端子との間に接続されている。動作時には、ストリームI/Oアダプタ408は、(図1の)CPU410から、データDMAコントローラ32とヘッダパケットDMAコントローラ34に、制御情報、例えば、バッファロケーション開始アドレスおよび終了アドレスと、読み出しアドレス/書き込みアドレスと、転送計数値を、周知の方法で供給する。そして、CPU410の制御の下に、ストリームI/Oアダプタ408は、データDMAコントローラ32および/またはヘッダパケットDMAコントローラ34をイネーブルにして、周知の方法で、データパケットまたはヘッダパケットを、パケットストリームからバッファに転送するか、あるいは、このような転送をディスエーブルにする。データDMAコントローラ32がデータ転送を完了すると、CPU410に対して、データ完了割り込みを生成する。ヘッダパケットDMAコントローラ34がヘッダパケットのローディンを完了すると、CPU410に対して、ヘッダパケット割り込みを生成する。
【0026】
図4でも、RAM412を大きなブロックで表し、データ構造を大きなブロック内の小さいブロックで表す。図4のブロックは図示のためだけであり、絶対記憶位置または相対記憶位置の何れかを示すものではなく、データ構造に対して、RAM412に割り振られたサイズを示すものでもない。参照番号412に、モジュールリクエストキュー322と、ヘッダパケットバッファ324と、ディレクトリ・モジュールバッファ326と、モジュールバッファ328のデータ構造を示す。テータ構造内の情報のフィールドは、そのフィールド内に含まれる情報のタイプの名前を含む水平スライスとして示されている。これらについては以下に詳細に説明する。
【0027】
図3は、ヘッダパケットデータコンポーネント・パケットサービスからモジュールを取り出し、しかも、そのモジュールをRAM412内のバッファに格納する際の後続の手順を示す。同様な手順は他のモジュール処理に対しても続けられる。これも以下に説明する。図3では、アプリケーション・プログラム(またはシステムローダ)で取られるアクションを、“APPLNPROG”のヘッドを付けた左カラムに示す。ブロック302で、アプリケーション・プログラムは、APIを用いて、フロー・オペレーティング・システムにリクエストを出し、識別子IDを有するモジュールを、オーディオ・ビデオ対話型プログラムコンポーネントパケットサービスからロードする。上述したように、APIコールは、基本的には、オペレーティングシステム機能へのサブルーチンコールである。したがって、プログラムの実行はフロー・オペレーティング・システム(FOS)に移行される。フロー・オペレーティング・システムのアクションは“フロー・オペレーティング・システム”のヘッドを付けた右隣のカラムに示す。リクエストはモジュールのロードを含むので、ブロック312で、フロー・オペレーティング・システムはモジュールのローディングを含むので、ブロック312にて、フロー・オペレーティング・システムは、メモリマネジャから、そのモジュールを含むだけのサイズのメモリの割り振りをリクエストする。例えば、リクエストされたモジュールがコードモジュールまたはデータモジュールである場合は、(図4の)前に格納されたディレクトリ・モジュール326は、モジュールIDの長さ(LENGTH)を含んでいるフィールドを含む。この場合、メモリマネジャは、開始アドレスSTARTと終了アドレスENDを有するモジュールメモリバッファ(図4の328)を割り振る。そして、ブロック314においてリクエスト、例えば、モジュールの識別子IDと、リクエストREQUEST(この場合はモジュールを取り出しロードするリクエスト)のタイプを示す情報と、割り振られたバッファ開始アドレスSTARTと終了アドレスENDが、全て、リクエストキュー(QVEVE)322内のエントリに格納される。そして、ヘッダパケットがパケットストリーム内に生じたとき、ヘッダパケットDMAコントローラがイネーブルにされ、ヘッダパケットをRAM412にロードする。
【0028】
リクエストがディレクトリ・モジュールに対するものである場合は、その長さが元々分かっていない。この場合、比較的大きいメモリ割り振りがリクエストされる。この割り振りがあまりにも小さい場合は、より大きなメモリ割り振りをリクエストした後、ディレクトリ・モジュールがロードされるか、あるいはそれをロードするだけのメモリがないと決定されるまでリクエストは繰り返えされ、その場合、オーディオ・ビデオ対話型プログラムをランさせる試みは放棄される。
【0029】
また、フロー・オペレーティング・システムはコールしたアプリケーション・プログラムに直ちに戻る。次いで、アプリケーション・プログラムは他の処理、例えば、他のモジュールのリクエストを発し、他の初期化等の処理を実行することができる。リクエストされたモジュールへのアクセスが必要とされると、アプリケーション・プログラムは、ブロック304にて、カーネル内の待ち機能にAPIコールを発する。この機能により、リクエストされたモジュールのロードが成功したことを示すメッセージが、そのアプリケーション・プログラムにより受信されるまで、アプリケーション・プログラムの実行は中断させられる。そのようなメッセージが受信されると、アプリケーション・プログラムは再びアクティベートされ、そのメッセージを処理する。あるいはまた、例えば、より速くユーザ入力に応答するため、アプリケーション・プログラムはアクティブのままであり、そのメッセージキューを周期的にポーリングし、リクエストされたモジュールロードの成功を示すメッセージをチェックし、そのメッセージが受信されたとき、メッセージを処理するようにしてもよい。
【0030】
上述したように、ヘッダパケットDMAコントローラ34は、メモリマネジャにより、前に割り振られたRAM412のヘッダパケット(HDR PKT)バッファ324(図4)にヘッダパケットをロードし、CPU410にヘッダパケット割り込みを発する。カーネル内のヘッダ割り込みハンドラにより実行される処理の一部を、図3に“HEADER IN TR”のヘッドを付して示す。ブロック332にて、伝送ユニットに入れて運ばれているモジュールの識別子、この場合、ヘッダパケットは、ヘッダパケットバッファ324内の知られたロケーション、すなわち、IDから取り出される。ブロック334にて、リクエストキュー322が試験され、このモジュールに対する保留中のリクエストが存在かるか否かが判定される。
【0031】
そのモジュールに対する保留中のリクエストがある場合には、ブロック336において、プログラム・コンポーネント検出器30のデータパケットDMAコントロール32は、リクエストキュー322からのアドレスSTARTで始まり、アドレスENDで終了するモジュールバッファ328と;モジュールバッファ328の開始アドレスSTARTと送信ユニットのデータオフセットOFFSETの和、すなわち(START+OFFSET)である書き込みアドレスと;START+OFFSET+SIZE(あるいは代りに、最後の書き込みアドレスに代わってヘッダパケットバッファ324からのサイズSIZEであるロード計数値)である最後の書き込みアドレスと;で初期化される。そして、データパケットDMAコントローラ32がイネーブルにされる。
【0032】
ブロック338にて、これがロードリクエストの行われた後受信された最初のヘッダパケットである場合は、リクエストキュー322に格納される最初の書き込みアドレスのポインタFIRSTが、この最初の送信ユニットの書き込みアドレス(すなわち、FIRST=START+OFFSET)に初期化される。さらに、予想される次の書き込みアドレスを指すポインタNEXTも、リクエストキュー322に格納されており、最初の送信ユニットの書き込みアドレス(すなわち、NEXT=START+OFFSET)に初期化される。そして、他の処理がブロック338にて行われる。これについては以下に詳細に説明する。例えば、現在処理されているリクエストのリクエストキュー322内のロケーションを指す特殊なポインタCURR REQは、RAM412内の予め決められたロケーション(図示せず)に格納される。その後、ブロック339にて、割り込みハンドラーはリターンする(339)。
【0033】
データパケットDMAコントローラ32は、先に受信した書き込みアドレス
(START+ODDSET)を指す書き込みポインタ(WP)を初期化し、オーディオ・ビデオ対話型プログラムコンポーネントパケットサービス内の後続のデータパケットから、データをRAM412内のモジュールバッファ328内の順次ロケーションにロードする。送信ユニット内の全てのデータがRAM412にロードされると、データ完了割り込みが生成される。カーネル内のデータ完了割り込みハンドラにより実行される処理の一部を、図3の右カラムに“DATA
COMPL INTR”のヘッドを付けて示す。
【0034】
ブロック342にて、DMA転送の現在の状態に関連するクリーンアップ機能が実行される。現在のリクエストポインタ(CVRR REQ)は、ヘッダパケット割り込みハンドラ内に前にセットされており、リクエストキュー322内のエントリーを指しており、伝送ユニットはリクエストキューへのロードを丁度終了したばかりである。現在のリクエスト内で、予想される次の書き込みアドレスポインタNEXTは、ヘッダパケットバッファ324からの値SIZEによりインクリメントされ、次の伝送ユニットに対して予想される書き込みアドレスを指している。予想される次の書き込みアドレスポインタ、NEXTの値が、モジュールバッファ328の終了アドレス、ENDに等しい場合は、ラップアランドして、書き込みアドレスポインタNEXTはモジュールバッファ328の開始アドレスSTARTにリセットされる。
【0035】
ブロック344にて、リクエストされたモジュールの全体がメモリにロードされたか否かが判定される。予想される次の書き込みアドレスポインタ、NEXTの値は、最初のロードされたアドレス,STARTの値と比べられるそれらの値が同じである場合は、モジュール全体はロードされている。ブロック346で、メッセージは、イベントマネジャにより、リクエストしているアプリケーション・プログラムに送られ、リクエスト・モジュールが、図3に破線で示すように、完全に取り出されたことを示す。さらに、リクエストはリクエストキュー322から除去される。予想される次の書き込みアドレス NEXTの値が最初にロードされたアドレス,STARTと同じでない場合は、データ完了割り込みハンドラはリターンし(349)、リクエストされたモジュールのためのデータを含む次の伝送ユニットが、先に説明したように、ヘッダパケット割り込みハンドラにより処理される。どちらの場合も、現在のリクエストポインタ(CVRR REQ)はクリアされる。
【0036】
伝送ユニットのある部分がプログラム・コンポーネント検出器30により適正に受信されない場合、後続のヘッダパケットが受信されてから、先行するヘッダパケットからのデータ完了割り込み信号がプログラム・コンポーネント検出器30内のDMA回路により生成される。よって、先行するデータ完了割り込み信号が生成される前に後続のヘッダパケット割り込み信号が生成される。ヘッダパケット割り込みハンドラとデータ完了割り込みハンドラは、協力して処理し、このような状況を識別することができ、そのようなエラーを処理することができる。
【0037】
ヘッダパケット割り込みハンドラでは、データパケットDMAコントローラ34がイネーブルにされて、次の伝送ユニットを受信した後、そのような処理が(図3の)ブロック338で実行される。受信された各ヘッダパケットに対し、データ完了割り込みハンドラによって前に更新された現在のリクエストキューエントリの予想される次の書き込みアドレス,NEXTが、新たに受信されるヘッダパケットのための書き込みアドレス(START+OFFSET)と比較される。それらのアドレスが同じである場合は、前の伝送ユニットの受信が成功したことになる。しかしながら、最後の終了アドレスが新らしいオフセットと同じでない場合は、前の伝送ユニットのDMA転送が完全に成功しなかったことを意味する。この場合、前の伝送ユニットのDMA転送が完全に成功しなかったことを意味する。この場合、最初の書き込みアドレス,FIRSTと、予想される次の書き込みアドレス,NEXTは、現在の書き込みアドレス(START+OFFSET)に更新される。すなわち、前にロードされた伝送ユニットは必然的に破棄され、モジュールのロードは現在の伝送ユニットから再スタートされる。前に成功りにロードされた伝送ユニットは、再ロードされるときエラーを生じるかもしれないので、データ紛失というエラーから回復する時間が長くかかることがある。しかしなから、このような回復を用いることにより、ヘッダパケット割り込みハンドラと、データ完了割り込みハンドラにより実行されるタスクを、最小化することができ、2つのポインタのみがメモリに必要なだけである。
【0038】
モジュール完了メッセージ処理の一部として、イベントハンドラが、受信されたモジュールに対してエラーチェックを行う。例えば、CRC(cyclic redundancy check)コードがモジュールの埋め込み部分として伝送される。イベントハンドラは、RAM412内のモジュールバッファ328内の受信されたモジュール全体のCRCを計算し、そのCRCと埋め込みCRCとを比較する。新たに計算されたCRCが埋め込みCRCと等しい場合は、モジュールは正しく受信されたことを示し、そうでない場合は、エラーが起きたことを示し、モジュールは先に述べたように再ロードされる。
【0039】
リクエストされたモジュールがメモリ内に完全にロードされると、アプリケーションモジュールによる更なる処理が、図3に、待ち機能304に対するAPIコールの底から直線で示すように、推論により続行することができる。しかしながら、アプリケーション・プログラム内の別のタスクが、そのアプリケーション・プログラムのメッセージキューからのメッセージの受信に応答してアクティブにされる。
【0040】
先に説明したAPIすなわちアプリケーション・プログラム・インタフェースは、インタプリタを介してアプリケーション・プログラムか、またはシステムローダによりデータストリームへアクセスする機能を含んでいる。アプリケーションプログラマは、発行されたAPI記述を用いて、望ましいデータストリーム機能へアクセスするためのAPIコールを定式化することになる。最初のグループの機能は、モジュールのディレクトリに関する。最初の機能DIR_NEWは、新しいディレクトリのリクエストである。先に説明したように、このAPI機能に応答して、メモリの割り振りがなされ、その後、リクエストはデータストリームに次のディレクトリ・モジュールをロードするためにエンキューされ、API機能はリターンする。ディレクトリがロードされたとき、メッセージは、リクエスト・プログラムに送られる。他の機能DIR_FREEは、現在のディレクトリにより占められているメモリ空間を解放する。機能DIR_SELECTは、どのディレクトリ・モジュールが後続のAPIコールで使用されるかを示した。機能DIR_CURRENTは、現在選択されているディレクトリにハンドラを戻る。
【0041】
機能DIR_SPYとDIR_STOP_SPYはDIR_NEW機能と同様である。DIR_SPY APIコールに応答して、リクエストは、ディレクトリ・モジュールのリクエストキューにエンキューされる。しかし、ディレクトリ・モジュールをロードし、しかも、ディレクトリ・モジュールがロードされたときメッセージを送信する代わりに、この機能は、ディレクトリモジュールがデータフロー(ディレクトリ・モジュールはロードされていない)内で検出されたときにはいつでもメッセージを送る。また、リクエストは、DIR_STOP_SPY APIコールが行われるまで、リクエストキュー内に残ったままである。DIR_STOP_SPY APIコールがなされたとき、リクエストキュー内にディレクトリ・スパイ・リクエストを検索し、そのエントリが除去される。これらの機能は、データストリーム内の現在のディレクトリから何らかの変更をスパイするのに有用である。最後に、現在のディレクトリについての情報を抽出するためのAPIコール、すなわちDIR_IDENTIFIERと、DIR_REQUIREMENTと、DIR_NB_MODULESが存在する。
【0042】
モジュール内に埋め込みCRCコードがあるので、モジュールをロードするためのメモリ割り振りリクエストは、このコードを考慮しなければならない。3つのAPIコールがこれを処理するために与えられている。機能MODULE_ALLOCは、CRCまたはメモリ要件を考慮して、引数としてモジュール識別子を取り、そのモジュールをロードするための適当なメモリ容量割り振りをリクエストする。機能MODULE_FREEは、モジュールにより取られるメモリ領域を解放する。機能MODULE_CHECKは、ロードされたモジュールのCRCチェックを行い、その結果を戻す。これは、CRCがメモリ内にロードされたモジュール内に埋め込まれているので、何時なされてもよい。
【0043】
APIコールの他のセットは、モジュールを取り扱い、現在選択されているディレクトリを用いてそれらを識別する。モジュールについての情報を抽出するためのAPIコールがあり、それらは、MODULE_REQUIREMENTとMODULE_SIZEと、MODULE_FLAGである。これらにより、システムは、モジュールがロードおよび/または実行することができるか否かを判定する。機能MODULE_RUNは、先に述べたように実行可能なモジュールをロードし、新しいプロセスを作成し、モジュールのエントリポイントで実行を開始するために使用される。この機能は、オーディオ・ビデオ対話型プログラムの実行を開始するためのシステムローダにより使用される。機能MODULE_CHAINは、後続の実行可能なモジュールをロードし、現在のモジュールの実行を終了し、そのエントリポイントで新たにロードされるモジュールの実行を開始するために使用される。この場合には新しいプロセスは生成されるが、実行を開始しない。上述したように、メッセージは、モジュールのロードが完了したとき、リクエスト・プログラムに送られる。機能MODULE_EXECは、新たなプロセスを生成し、MODULE_LOAD APIコールにより前にロードされているモジュールの実行をエントリポイントで開始するために使用される。
【0044】
機能MODULE_LINKは、現在のプロセスと、資源と、変数を用いて新しいモジュールを実行する。それは、新しいモジュールへの動的なリンクを与えることにより、モジュール内からのサブルーチンのようなコールを許可する。これにより、必要なときだけダイナミックにリンクすることができる、より小さいモジュールにオーディオ・ビデオ対話型プログラムを分割することができる。MODULE_LINK機能は、リロケーションとジャンプテーブルを保持する。MODULE_SPYとMODULE_STOP_SPYは、DIRECTRY_SPYとDIRECTRY_STOP_SPYと同様に作動する。ただし、識別されたモジュールに対してである。MODULE_SPY APIコールは、モジュールの識別子を含むリクエストキュー内にエントリを挿入する。同じ識別子を有するヘッダモジュールがデータストリーム内に検出されたときにはいつでも、メッセージがリクエスト・プログラムに送られる。これは、MODULE_STOP_SPY APIコールがなされるまで続く。MODULE_STOP_SPY APIコールに応答して、識別されたモジュールに対するスパイリクエストを含むエントリが、リクエストキューから除去される。MODULE_STOP_LOAD機能はプロセス内の現在のモジュールロードリクエストを停止し、リクエストキューからロードリクエストエントリを除去する。機能FLOW_MESSAGEとFLOW_STOP_MESSAGEは、データストリームに関して、中断されたデータフローか、あるいはデータフローの終了のような特別な連絡パケットが生起したとき、メッセージシのリクエストを除去する。そのようなイベントが生起したとき、メッセージはリクエスト・プログラムに送られる。
【0045】
先に説明したように、システムローダは、システムの初期化を実行し、アプリケーション・プログラムの実行が受信されたオーディオコンポーネントとビデオコンポーネントとに同期することを確実にするためにデータストリームを監視する。図5は、システムロードの初期化機能を示すフロー図である。図5のブロック52で、(17の)デコーダの種々のハードウェアとソフトウェアのコンポーネントが初期化される。また、RAM412内のロケーションが、種々のデータ構造のために割り振られ初期化される。これらの初期化機能は周知であり、デコーダの他のソフトウェアコンポーネントに依存する。システムプログラマは、どのハードウェアとソフトウェアの初期化が必要か、どのデータ構造が必要か、初期化をどのように行うかを理解するであろう。従って、このブロックは以下では詳細に説明しない。
【0046】
ブロック54にて、上述したDIR_NEW APIコールが行われる。このAPIコールは、オーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に現れる次のディレクトリ・モジュールを、RAM412内の割り振られたバッファ内にロードする。このAPIコールは、ディレクトリが後までRAM412内にロードされないとしても直ちにシステムローダに戻る。システムローダは、他の機能を実行し、必要なら、ディレクトリ・モジュールがロードされたことを示すメッセージが、イベントマネジャにより、受信されるまで、APIコール(図示せず)を実行する。ブロック56にて、(図1の)デコーダで使用可能な資源はディレクトリモジュール内で必要な資源を示すデータと比較される。デコーダが、オーディオ・ビデオ対話型プログラムを実行するだけの資源を有している場合は、MODULE_RUN APIコールが、上述したように、前にロードされているディレクトリモジュール内で識別されるオートスタートコードモジュールをロードするために行われる。再び、APIコールは直ちにリターンし、コードモジュールは、ある時間が経過するまで、データストリームから完全にはロードされなくてもよい。オートスタートコードモジュールが完全にロードされた後、他のタスクが、インタプリタを介してオーディオ・ビデオ対話型プログラムを実行するためのマルチタスクカーネルを用いて周知の方法で生成される。
【0047】
ブロック58にて、システムローダは、実行信号とディレクトリの変更のためのオーディオ・ビデオ対話型プログラムのコンポーネントを監視し始め、以下に説明するオーディオ・ビデオ対話型プログラムへメッセージを送ることにより、オーディオ・ビデオ対話型プログラムの実行を制御する。図6は、システムローダの監視機能を示す状態遷移図であり、システムローダの動作を理解するのに有用である。ディレクトリがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内で検出された場合は、視聴者が選択したプログラムは対話型プログラムである。ディレクトリがRAM412内に一且ロードされ、オートスタートコードモジュールがオーディオ・ビデオ対話型コンポーネントパケットサービスからリクエストされると、システムローダの制御により、オーディオ・ビデオ対話型プログラムはINACTIVE状態61に入る。INACTIVE状態61では、アプリケーションを開始するための全ての資源は割り振られており、アプリケーションは部分的に、あるいは完全にロードされるが、視聴者との対話はない。例えば、オートスタートモジュールがロードされているとき、オーディオ・ビデオ対話型プログラムはINACTIVE状態61のままである。その上、オートスタートモジュールがロードされた後でさえ、視聴者はオーディオ・ビデオ対話型プログラムを運ぶチャンネルを介してチャンネルを変更するだけであり、オーディオ・ビデオ対話型プログラムと対話する意図はない。あるいは、視聴者は対話を決意する前に、オーディオ・ビデオ対話型プログラムを観察したいかもしれない。どの場合にも、リモートコントロールが対話モードではなく、通常のチャンネル変更モードで働くと言うことが重要である。これがINACTIVE状態61の目的である。見ているチャンネルが対話型プログラムを放送していることを視聴者に知らせるために、特別の対話型プログラムロゴまたはアイコンがオーディオ・ビデオ対話型ビデオ上に重ね合わされる。
【0048】
視聴者がオーディオ・ビデオ対話型プログラムと実際に対話し始めるため、ACTIVATE KEYと呼ばれる特別なキーがリモートコントロール上に設けられている。対話型プログラムロゴまたはアイコンが表示されているとき、視聴者はACTIVATE KEYを押すことができる。ACTIVATE KEYの押下に応答して、システムローダはACTIVATEメッセージをACTIVATE状態63に入るオーディオ・ビデオ対話型プログラムに送る。ACTIVE状態63では、インタプリタはそのエントリポイントで、前にロードされたオーディオ・ビデオ対話型プログラムを実際に実行し始める。オーディオ・ビデオ対話型プログラムのオートスタートモジュールが実行を開始するとき、それは、RAM412内にそれ自身のデータ構造を割り振り、初期化し、他のコードモジュールおよび/またはデータモジュールをロードし、リモートコントロールとフロントコントロールパネルの全てのユーザアクションを制御する。
【0049】
オーディオ・ビデオ対話型プログラムは全てのユーザ対話を制御するので、それはユーザがチャンネルを変更することを妨げるか、あるいは他の通常のリモートコントロール機能を実行することを妨げる。通常のリモートコントロール機能に戻るには、視聴者は、先ず現在のオーディオ・ビデオ対話型プログラムを停止しなければならない。視聴者がACTIVATE KEYを再び押下すると、プログラムは非アクティブにされる。このキーの押下に応答して、システムローダは、DEACTIVATEメッセージを実行中のオーディオ・ビデオ対話型プログラムに送り、そのプログラムは、ACTIVE状態63を離れ、INACTIVE状態61に戻る。再び、特別の対話型プログラムロゴまたはアイコンが表示され、オーディオ・ビデオ対話型プログラムはロードされているが実行されていないということを示す。視聴者は、その後、チャンネルを変更し、あるいは他の通常のリモートコントロール機能を実行し、あるいはACTIVE KEYを再び押下することによりオーディオ・ビデオ対話型プログラムを再びアクティブにしてもよい。こうして、ACTIVATE KEYは、それが押されたとき、ACTIVE状態63とINACTIVE状態61との間で切り替わるトグルとして働く。ACTIVEとDEACTIVATEのメッセージはACTIVE TO GGLEメッセージとして考えてもよく、その意味(ACTIVEあるいはDEACTIVE)はACTIVATE KEYが押下されるとき、オーディオ・ビデオ対話型プログラムの状態(それぞれINACTIVEまたはACTIVE)に依存する。
【0050】
オーディオ・ビデオ対話型プログラムがACTIVE状態63にて実行されると、その実行を中断したいときがある。例えば、非対話型コマーシャルが放送されるべきとき、送信されたオーディオとビデオは(図1の)デコーダ10により生成される音やグラフィックスとは一致せず、視聴者が、通常通り、リモートコントロールを使用することができることが望ましい。しかしながら、アプリケーションのプログラマはそのような中断が必要となることを前もって知ることはできない。こうして、この場合、オーディオ・ビデオ対話型プログラムとは独立な放送機器はオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に中断信号パケットと呼ばれる(上記のような)特別の信号パケットを繰り返し含めてもよい。このような各パケットは現在実行中のオーディオ・ビデオ対話型プログラムが実行を中断すべきであるということを示すデータを含んでいる。
【0051】
FLOW_MESSAGE APIコールを介して、システムローダは、そのようなパケットがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内で認識されたときにはいつでもメッセージを受信する。例えば、中断信号パケットが受信されたとき、システムローダは、中断信号メッセージを受信し、最初の中断信号メッセージに応答してオーディオ・ビデオ対話型プログラムにSUSPENDメッセージを送り、そのプログラムは、実行を中断してSUSPENDED状態65に入る。SUSPENDED状態65では、オーディオ・ビデオ対話型プログラムの実行は、それを、中断されたポイントから再び開始することができるように停止する。すなわち、オーディオ・ビデオ対話型プログラムを実行するために必要な資源の全てが割り当てられたままであり、オーディオ・ビデオ対話型プログラムの実行状態はRAM412内のあるロケーションに格納される。また、前に実行中の対話型プログラムが中断されたが、許可されたとき回復の用意ができていることを示す第2のロゴまたはアイコンが現在のビデオ画像上に重ね合わされる。
【0052】
割り込み(例えば、非対話型コマーシャル)が終わったとき、放送機器はオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に中断信号パケットを含めることを止める。システムローダは、中断信号メッセージを受信することなく予め決められた期間後、オーディオ・ビデオ対話型プログラムにCONTINUEメッセージを送り、そのプログラムは前に中断されたところから実行を再開して、上記のACTIVE状態63に入る。
【0053】
上述したSUSPEND/CONTINUE信号構成の他の実施例は、放送機器がオーディオ・ビデオ対話型プログラムの実行を中断することを望むとき、オーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に単一の中断信号パケットを含めることである。その後、放送機器は、オーディオ・ビデオ対話型プログラムの実行を再開することが望まれるとき、オーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に継続信号パケットと呼ばれる他の特別な信号パケットを含める。このパケットは現在中断されているオーディオ・ビデオ対話型プログラムが実行を再開することを指令するデータを含む。システムローダは、継続信号パケットを認識し、オーディオ・ビデオ対話型プログラムにCONTINUEメッセージを送り、そのプログラムは実行を再開し、上述したようにACTIVE状態63に入る。
【0054】
視聴者が、中断されたオーディオ・ビデオ対話型プログラムの実行を停止することも可能である。プログラム中断ロゴまたはアイコンが表示されているとき、視聴者が、DEACTIVATEメッセージを、中断されたオーディオ・ビデオ対話型プログラムに送り、そのプログラムは上述したINACTIVE状態61に入る。視聴者がACTIVATE KEYを押したとき、プログラムは、INACTIVE状態61から実行を再開するだけであり、システムローダにオーディオ・ビデオ対話型プログラムに対してACTIVATEメッセージを送らせ、そのプログラムにACTIVE状態63に入らせる。システムローダが依然として中断信号パケットを受信している場合は、別のSUSPENDメッセージが直ちにオーディオ・ビデオ対話型プログラムに送られ、そのプログラムは再びSUSPENDED状態65に入る。INACTIVE状態61と、ACTIVE状態63と、SUSPENDED状態65は、オーディオ・ビデオ対話型プログラムがシステムローダから送られるメッセージに応答して切り替わる状態である。しかしながら、システムローダにより直接コントロールされて入る2つの他の状態が存在する。
【0055】
オーディオ・ビデオ対話型プログラムはその実行の終了に到達することができる。例えば、放送機器は、実行終了信号パケットと呼ばれる他の特別な信号パケットをオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービスに含めてもよい。システムローダは、実行終了信号パケットがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に認識された時、FLOW_MESSAGE APIコールを介して実行終了メッセージを受信する。実行終了メッセージに応答して、システムローダは、EXITメッセージをオーディオ・ビデオ対話型プログラムに送る。オーディオ・ビデオ対話型プログラムが、INACTIVE状態61か、ACTIVE状態63か、あるいはSUSPENDED状態65のどの状態にあるかにかかわらず、オーディオ・ビデオ対話型プログラムは、その資源の割り振りを解除し、(図1の)デコーダ10からそれ自体の全てのレコードを除去することによりEXITメッセージに応答する。このプログラムはHALTED状態69に入ったと思い、デコーダ10から消える。プログラムそれ自身がユーザコマンドを介してあるいはそれ自身の実行により、その実行が終了に達したことを認識することができる場合もある。オーディオ・ビデオ対話型プログラムがその実行の終了を認識したとき、EXITメッセージが受信された場合に行われる同じ処理を行い、それ自身によりHALTED状態69に入る。
【0056】
オーディオ・ビデオ対話型プログラムがSUSPENDED状態にあるとき、別の対話型オーディオ・ビデオ対話型プログラムを、オーディオ・ビデオ対話型プログラム・コンポーネント・データフロー上で受信することが可能である。例えば、オーディオ・ビデオ対話型プログラムがコマーシャルにより中断されていれば、そのコマーシャルはそれ自身対話型プログラムであってもよいし、ユーザが別のオーディオ・ビデオ対話型プログラムを放送するチャンネルにチャンネルを変更してもよい。これら両方の場合は、新しいオーディオ・ビデオ対話型プログラムはディレクトリ・モジュールを含み、中断されたオーディオ・ビデオ対話型プログラムのディレクトリ・モジュールとは異なる。
【0057】
システムローダは、DIR_SPY APIコールを介して、ディレクトリがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に検出されるときにはいつでもメッセージを受信する。システムローダは、現在アクティブなディレクトリを検出されたばかりのディレクトリと比較する。システムローダが、別のディレクトリがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に存在すると認識すると、それはそのディレクトリにより表わされるオーディオ・ビデオ対話型プログラムのロードを始める。
【0058】
最初に、メッセージが現在中断されているオーディオ・ビデオ対話型プログラムに送られ、プログラム・コンポーネント・パケットサービスはそのプログラムをもはや放送していないということ、あるいはプログラムは“フローを失った”ということを示す。このメッセージは現在実行しているプログラムがそれ自身を最小にするリクエストであり、すなわちMINIMIZEメッセージである。MINIMIZEメッセージに応答して、現在中断しているオーディオ・ビデオ対話型プログラムは、先ずその現在の実行状態と環境を、持続時間とオーディオ・ビデオ対話型プログラムの識別子を含めて、RAM412内の小さいブロック内に格納する。これらについては以下に説明する。それから、中断されたプログラムはその資源の割り振りを開始する。最小化されたオーディオ・ビデオ対話型プログラムはどんなコードも含まず、メッセージに応答して状態を変更することはできず、それ自身再スタートすることもできない。
【0059】
システムローダは新たに検出されたディレクトリとオートスタートモジュールをロードし、新しいオーディオ・ビデオ対話型プログラムをINACTIVE状態61におき、先に説明したように対話型プログラムロゴまたはアイコンを表示する。視聴者は、ACTIVATE KEYを押すことにより、この新しいオーディオ・ビデオ対話型プログラムとの対話を開始あるいは停止することができ、そのプログラムをそれ自身中断してもよいし継続してもよい。
【0060】
最小化プロセスは繰り返しプロセスである。例えば、この新しいオーディオ・ビデオ対話型プログラムは、中断された場合、さらに他のオーディオ・ビデオ対話型プログラムがオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内に検出された場合、最小化することができる。この場合、メモリの他のブロックが割り振られ、オーディオ・ビデオ対話型プログラムの実行状態と環境が、その識別子と継続時間と共に、このメモリブロックに格納される。その後先に説明したように、新たに検出されたプログラムの実行状態と環境を含む全てのメモリブロックを格納するのに必要なメモリ量によってのみ制限される。
【0061】
新しいディレクトリ・モジュールをロードするか、あるいは前にロードされているディレクトリ・モジュールにより表わされるプログラムを実行するのに十分な使用可能なメモリ空間がない場合であって、しかも、最小化されたプログラムを表わす割り振られたメモリブロックがある場合には、システムローダは充分なメモリ空間を得るという意図で、(最も古いメモリブロックの割り振りを最初に解除するか、あるいは、元のアプリケーションにより拡張可能とマークされたメモリブロックの割り振りを最初に解除するというような)アルゴリズムにしたがって、メモリブロックの全て、あるいはいくらかの割り振りを自動的に解除することができる。あるいは、システムローダは、視聴者に最小化されたアプリケーションのリストを提供し、削除すべきアプリケーションを視聴者が選択することができるようにしてもよい。そして、選択された最小化アプリケーションを表すブロックは、充分なメモリ空間を得るため割り振りが解除される。
【0062】
一方、前に最小化されたオーディオ・ビデオ対話型プログラムの実行状態と環境を含むメモリブロックは、メモリ内に割り振られたままである。上述したように、そのようなメモリブロック内には継続時間がある。あるブロック内の継続時間を超えたとき、前に最小化されたオーディオ・ビデオ対話型プログラムはタイムアウトする。この場合、そのプログラムはHALTED状態69に入ったと考えられ、実行状態と環境を含むメモリブロックは割り振りが解除され、前に最小化されたオーディオ・ビデオ対話型プログラムの全ての記録は失われる。
【0063】
しかしながら、(23の)デコーダ10は、前に最小化されたオーディオ・ビデオ対話型プログラムのディレクトリと、コードモジュールと、データモジュールを含むオーディオ・ビデオ対話型プログラム・コンポーネントを再び受信することができるか、あるいはそのオーディオ・ビデオ対話型プログラムは“フローを再取得”することができる。例えば、対話型コマーシャルが終了し、HALTED状態69に入ってもよいし、視聴者がこのチャンネルにチャンネルを戻してもよい。システムローダは、“新しい”ディレクトリをオーディオ・ビデオ対話型プログラム・コンポーネント・パケットサービス内にロードし始める。新しいディレクトリがロードされるといつでも、アプリケーション識別子とRAM412内に現在格納されている実行状態と環境を含む全てのブロック内の識別子とが比較される。一致するブロックが見つかった場合は、コードモジュールとデータモジュールがロードされ、オーディオ・ビデオ対話型プログラムはINACTIVE状態61におかれる。しかし、その実行状態は、それが最小化される直前の実行状態に更新される。視聴者がACTIVATE KEYを押すと、オーディオ・ビデオ対話型プログラムはACTIVE状態63に入り、それが前に停止された場所から実行を開始する。このようにして、他のオーディオ・ビデオ対話型プログラムをランするためオーディオ・ビデオ対話型プログラムを一時的に停止してもよく、それから両方のプログラムのために充分な資源を必要とすることなくメモリ内に同時に残るように再開してもよい。
【0064】
【発明の効果】
以上説明したように、本発明によれば、パケットストリームを受信するオーディオ・ビデオ対話型受信機において、オーディオ・ビデオ対話型プログラムを効率的に実行する制御方法が得られる。
【図面の簡単な説明】
【図1】本発明に係るオーディオ・ビデオ対話型信号デコーダの一部を示すブロック図である。
【図2】図1に示す処理ユニット40により実行されるソフトウェアの構造を示す図である。
【図3】オーディオ・ビデオ対話型プログラムのデータコンポーネントからモジュールを抽出することを理解する際に有用なフロー図とメモリレイアウト図である。
【図4】オーディオ・ビデオ対話型プログラムのデータコンポーネントからモジュールを抽出することを理解する際に有用な部分的にブロック形式の、また部分的にメモリレイアウト形式の図である。
【図5】システムローダの初期化機能を示すフロー図である。
【図6】システムローダのデータストリーム監視機能を示す状態遷移図である。
【符号の説明】
10 チューナ
15 オーディオ・ビデオ対話型ビデオ出力端子
25 オーディオ・ビデオ対話型オーディオ出力端子
30 プログラム・コンポーネント検出器
32 データパケットDMAコントローラ
34 ヘッダパケットDMAコントローラ
40 処理ユニット
45 ローカル処理装置
55 外部コンピュータ
408 ストリームI/O
410 CPU
412 RAM
414 ROM
418 オーディオ処理装置
420 ビデオ処理装置
422 I/Oポート
426 モデム

Claims (7)

  1. オーディオ・ビデオ対話型プログラムと実行信号を含むパケットストリームを受け取るオーディオ・ビデオ対話型受信機であって、前記オーディオ・ビデオ対話型プログラムの実行を制御する実行コントローラを含んでいる受信機における前記オーディオ・ビデオ対話型プログラムの実行を制御する方法であって、
    実行コントローラ中で、
    前記パケットストリーム中の前記オーディオ・ビデオ対話型プログラムの存在に応答して、メモリに前記オーディオ・ビデオ対話型プログラムをロードし、
    ユーザの入力に応答して、作動トグル・メッセージを前記オーディオ・ビデオ対話型プログラムに送り、
    前記パケットストリーム中の終了実行信号に応答して、出口メッセージをオーディオ・ビデオ対話型プログラムに送り、
    前記パケットストリーム中の中断実行信号に応答して、前記オーディオ・ビデオ対話型プログラムに中断メッセージを送り、
    前記パケットストリーム中の継続実行信号に応答して、前記オーディオ・ビデオ対話型プログラムに継続メッセージを送るステップを有し、かつ
    前記オーディオ・ビデオ対話型プログラム中で、
    前記オーディオ・ビデオ対話型プログラムが非作動である非作動状態;
    前記オーディオ・ビデオ対話型プログラムが実行中である作動状態;及び、
    オーディオ・ビデオ対話型プログラムの実行が中断されている中断状態;
    の中の1つにおいて、
    前記メモリへの前記オーディオ・ビデオ対話型プログラムをロードするのに応答して、非作動状態に入り、
    前記出口メッセージに応答して実行を中止し、前記メモリから前記オーディオ・ビデオ対話型プログラムをアンロードし、
    前記非作動状態にあるとき、作動トグル・メッセージに応答して前記作動状態に入り、
    前記作動状態にあるとき、前記作動トグル・メッセージに応答して前記非作動状態に入り、
    中断メッセージに応答して、中断状態に入り、
    前記中断状態にあるとき、継続メッセージに応答して、作動状態に入り、
    作動トグル・メッセージに応答して、前記非作動状態に入ることを実行するステップとを備えていることを特徴とする方法。
  2. パケットストリーム中の中断実行信号が、中断期間中、反復性の中断実行信号パケットにより表わされ、かつ継続実行信号が非反復性中断実行信号パケットにより表わされ、
    実行コントローラにおいて中断メッセージを送るステップが第1の中断実行信号パケットに応答して中断メッセージを送るステップを含み、
    実行コントロールにおいて継続メッセージを送るステップが、中断実行信号パケットが受け取られてない所定時間期間の後、継続メッセージを送るステップを含む、請求項記載の方法。
  3. パケットストリーム中の中断実行信号が中断実行信号パケットにより表わされ、かつ継続実行信号が継続実行信号パケットにより表され、 実行コントローラにおいて中断メッセージを送るステップが、中断実行信号パケットに応答して中断メッセージを送るステップと、
    実行コントローラにおいて継続メッセージを送るステップが、継続実行信号パケットに応答して継続メッセージを送るステップとを含む、請求項記載の方法。
  4. ユーザの制御の下に、複数のパケットストリームの中の1つを選択的に受け取るオーディオ・ビデオ対話型受信機において、各パケットストリームは、識別子と実行信号を有するオーディオ・ビデオ対話型プログラムを含んでおり、前記受信機はオーディオ・ビデオ対話型プログラムの実行を制御する実行コントローラを含んでおり、 記受信機におけるオーディオ・ビデオ対話型プログラムの実行を制御する方法が、
    実行コントローラ中で、
    前記複数のパケットストリームの前記選択された1つにオーディオ・ビデオ対話型プログラムの存在に応答して、メモリに前記オーディオ・ビデオ対話型プログラムをロードし、前記メモリの各ロケーションに前記ロードされたアプリケーション・プログラムの識別子を格納し、最小化されたオーディオ・ビデオ対話型プログラムの識別子を含んでいる前記メモリに予め格納されたブロックをサーチし、かつブロックに含まれている識別子が前記メモリにロードされた前記オーディオ・ビデオ対話型プログラムの識別子に一致する場合には、前記新しくロードされたオーディオ・ビデオ対話型プログラムの実行状態と環境を前記一致するブロックに含まれている実行状態と環境にセットし、
    ユーザ入力に応答してオーディオ・ビデオ対話型プログラムに作動トグル・メッセージを送り、
    複数のパケットストリームの選択された1つにおける終了実行信号に応答し、オーディオ・ビデオ対話型プログラムに出口メッセージを送り、
    複数のパケットストリームの選択された1つにおける中断実行信号に応答してオーディオ・ビデオ対話型プログラムに中断メッセージを送り、
    複数のパケットストリームの中の選択された1つにおける継続実行信号に応答し、オーディオ・ビデオ対話型プログラムに継続メッセージを送り、
    メモリの各ロケーション中の識別子とは異なる識別子を有するデータストリームにおけるオーディオ・ビデオ対話型プログラムの存在に応答して、オーディオ・ビデオ対話型プログラムに最小化メッセージを送るステップを有し、かつ、
    オーディオ・ビデオ対話型プログラム中で、
    オーディオ・ビデオ対話型プログラムが非作動である非作動状態;
    オーディオ・ビデオ対話型プログラムが実行中である作動状態;
    オーディオ・ビデオ対話型プログラムの実行が中断している中断状態;及び、
    最小化状態のいずれか1つの状態において、
    前記オーディオ・ビデオ対話型プログラムの実行を中止し、その後前記オーディオ・ビデオ対話型プログラムの前記識別子とオーディオ・ビデオ対話型プログラムの前記実行状態および環境とを前記メモリのブロックに格納し、その後前記メモリから前記オーディオ・ビデオ対話型プログラムをアンロードし、
    前記メモリへの前記オーディオ・ビデオ対話型プログラムのロードに応答して非作動状態に入り、
    前記出口メッセージに応答して実行を中止し、前記メモリから前記オーディオ・ビデオ対話型プログラムをアンロードし、
    前記非作動状態のとき、作動トグル・メッセージに応答して、前記作動状態に入り、
    前記作動状態にあるとき、
    前記作動トグル・メッセージに応答して、前記非作動状態に入り、
    中断メッセージに応答して、前記中断状態に入り、
    前記中断状態にあるとき、
    継続メッセージに応答して前記作動状態に入り、作動トグル・メッセージに応答して前記非作動状態に入り、
    前記最小化メッセージに応答して前記最小化状態に入ることを実行するステップとを備えていることを特徴とするオーディオ・ビデオ対話型プログラムの実行を制御する方法。
  5. 前記アプリケーション・プログラムの最小化状態で実行するステップ中の前記格納するステップが、
    メモリの前記ブロックに格納されたデータがメモリに留まる時間の期間を示す時間期間をメモリのブロックに格納し、該時間期間が経過したのち、メモリの前記ブロックに格納されたデータを除去するステップを更に含んでいる、請求項記載の方法。
  6. 複数のパケットストリーム中の選択された1つにおける前記中断実行信号が、中断期間中、反復性の中断実行信号パケットにより表わされ、かつ前記継続実行信号が非反復性の中断実行信号パケットにより表わされ、
    前記実行コンローラにおいて中断メッセージを送るステップが、第1の中断実行信号パケットに応答して中断メッセージを送るステップを含み、
    前記実行コントローラにおいて継続メッセージを送るステップが、中断実行信号パケットが受け取られない所定の時間期間の後、継続メッセージを送るステップを含む、請求項記載の方法。
  7. 前記中断実行信号が中断実行信号パケットにより表わされ、前記継続実行信号が継続実行信号パケットにより表わされ、
    前記実行コントローラにおいて中断メッセージを送るステップが、中断実行信号パケットに応答して中断メッセージを送るステップを含み、
    前記実行コントローラにおいて継続メッセージを送るステップが、継続実行信号パケットに応答して継続メッセージを送るステップを含む、
    請求項記載の方法。
JP13556995A 1994-04-28 1995-04-26 オーディオ・ビデオ対話型プログラムの実行を制御する方法 Expired - Lifetime JP4011128B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/234,146 US5563648A (en) 1994-04-28 1994-04-28 Method for controlling execution of an audio video interactive program
US234146 1994-04-28

Publications (2)

Publication Number Publication Date
JPH0851596A JPH0851596A (ja) 1996-02-20
JP4011128B2 true JP4011128B2 (ja) 2007-11-21

Family

ID=22880139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13556995A Expired - Lifetime JP4011128B2 (ja) 1994-04-28 1995-04-26 オーディオ・ビデオ対話型プログラムの実行を制御する方法

Country Status (11)

Country Link
US (1) US5563648A (ja)
EP (2) EP0680213B1 (ja)
JP (1) JP4011128B2 (ja)
KR (1) KR100334086B1 (ja)
CN (1) CN1097386C (ja)
CA (1) CA2145898C (ja)
DE (3) DE69531561T2 (ja)
ES (2) ES2147719T3 (ja)
PT (1) PT949816E (ja)
RU (1) RU95106670A (ja)
TW (1) TW357534B (ja)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
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
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system 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
US5920572A (en) * 1995-06-30 1999-07-06 Divicom Inc. Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
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
DE69729826T2 (de) * 1996-05-30 2004-11-25 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Übertragung von Daten, Verfahren und Vorrichtung zum Empfang von Daten und Kommunikationssystem
KR100487012B1 (ko) * 1996-09-11 2005-06-16 마츠시타 덴끼 산교 가부시키가이샤 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치
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
WO1998046006A2 (en) * 1997-04-07 1998-10-15 At & T Corp. System and method for interfacing mpeg-coded audiovisual objects permitting adaptive control
US6079566A (en) * 1997-04-07 2000-06-27 At&T Corp System and method for processing object-based audiovisual information
US6044397A (en) * 1997-04-07 2000-03-28 At&T Corp System and method for generation and interfacing of bitstreams representing MPEG-coded audiovisual objects
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
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
US6351474B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6351471B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of 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
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
AU3300299A (en) * 1998-02-20 1999-09-06 Thomson Licensing S.A. System for forming, partitioning and processing electronic program guides
US7032236B1 (en) * 1998-02-20 2006-04-18 Thomson Licensing 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
WO2000030346A1 (en) * 1998-11-12 2000-05-25 General Instrument Corporation Application programming interface (api) for accessing and managing resources in a 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
US7017173B1 (en) 1999-03-30 2006-03-21 Sedna Patent Services, Llc System enabling user access to secondary content associated with a primary content stream
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
US7222155B1 (en) 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
US7325245B1 (en) * 1999-09-30 2008-01-29 Intel Corporation Linking to video information
EP1224806B1 (en) * 1999-10-29 2003-11-19 OpenTV, Corp. System and method for recording pushed data
US6970641B1 (en) 2000-09-15 2005-11-29 Opentv, Inc. Playback of interactive programs
US8250617B2 (en) 1999-10-29 2012-08-21 Opentv, Inc. System and method for providing multi-perspective instant replay
DK1234446T3 (da) * 1999-10-29 2003-10-13 Opentv Corp Afspilning af interaktive programmer
US7000245B1 (en) 1999-10-29 2006-02-14 Opentv, Inc. 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
US7343617B1 (en) 2000-02-29 2008-03-11 Goldpocket Interactive, Inc. Method and apparatus for interaction with hyperlinks in a television broadcast
US7367042B1 (en) 2000-02-29 2008-04-29 Goldpocket Interactive, Inc. Method and apparatus for hyperlinking in a television broadcast
FR2807265B1 (fr) * 2000-04-03 2003-01-24 Sagem Dispositif de reception et de restitution de sequences audio et video
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
US8936101B2 (en) * 2008-07-17 2015-01-20 Halliburton Energy Services, Inc. Interventionless set packer and setting method for same
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US7360231B2 (en) * 2000-05-01 2008-04-15 The Directv Group, Inc. System for obtaining data regarding customer use of interactive television
AU2001257510A1 (en) * 2000-05-03 2001-11-12 Worldgate Service, Inc. System and method to control and distribute processing and memory resources among applications in a television terminal
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
WO2003015393A2 (en) * 2001-08-06 2003-02-20 Digeo Inc. Providing content and applicatons via carousel transmission to thin-client interactive television terminals
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
US20030196206A1 (en) 2002-04-15 2003-10-16 Shusman Chad W. Method and apparatus for internet-based interactive programming
US20040210947A1 (en) 2003-04-15 2004-10-21 Shusman Chad W. Method and apparatus for interactive video on demand
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
JP4875987B2 (ja) * 2004-11-02 2012-02-15 パナソニック株式会社 アプリケーションプログラム実行装置
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)

* Cited by examiner, † Cited by third party
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
EP0573406B1 (en) * 1989-08-23 1997-06-04 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
DE69210303T2 (de) * 1991-05-23 1996-11-14 Hitachi Ltd Breitbildschirmfernsehempfänger mit Bildseitenverhältnisumwandlungsfunktion und Verfahren zur Darstellung eines vergrösserten Abschnittes
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

Also Published As

Publication number Publication date
DE949816T1 (de) 2001-01-25
CN1112333A (zh) 1995-11-22
EP0680213B1 (en) 2000-02-16
CA2145898A1 (en) 1995-10-29
KR950035418A (ko) 1995-12-30
EP0949816A2 (en) 1999-10-13
ES2147719T1 (es) 2000-10-01
EP0680213A2 (en) 1995-11-02
RU95106670A (ru) 1997-01-20
PT949816E (pt) 2003-12-31
JPH0851596A (ja) 1996-02-20
DE69515076D1 (de) 2000-03-23
EP0949816A3 (en) 2000-06-14
US5563648A (en) 1996-10-08
CA2145898C (en) 2004-10-26
DE69531561D1 (de) 2003-09-25
ES2147719T3 (es) 2004-05-01
CN1097386C (zh) 2002-12-25
DE69515076T2 (de) 2000-07-13
DE69531561T2 (de) 2004-06-17
EP0680213A3 (en) 1996-05-08
ES2142966T3 (es) 2000-05-01
EP0949816B1 (en) 2003-08-20
TW357534B (en) 1999-05-01
KR100334086B1 (ko) 2002-09-05

Similar Documents

Publication Publication Date Title
JP4011128B2 (ja) オーディオ・ビデオ対話型プログラムの実行を制御する方法
JP3781454B2 (ja) オーディオ・ビデオ対話信号を処理する方法と装置
EP1194838B1 (en) Methods and apparatus for implementing individual class loaders
EP0996894B1 (en) Ieee1394 set top box device driver
US8621511B2 (en) System and method to control distribute processing and memory resources among applications in a television terminal
JP2002513253A (ja) レシーバ/デコーダおよびビデオデータの処理方法
WO1998043167A1 (en) Computer memory organization
JP4303884B2 (ja) モデム制御
EP1286262A1 (en) Optimising the performance of an operating system of a receiver/decoder
JP4642230B2 (ja) 受信器/復号器部

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060131

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060501

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070612

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070905

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term