JPH0846923A - オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プログラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法と装置 - Google Patents

オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プログラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法と装置

Info

Publication number
JPH0846923A
JPH0846923A JP7166281A JP16628195A JPH0846923A JP H0846923 A JPH0846923 A JP H0846923A JP 7166281 A JP7166281 A JP 7166281A JP 16628195 A JP16628195 A JP 16628195A JP H0846923 A JPH0846923 A JP H0846923A
Authority
JP
Japan
Prior art keywords
module
time
data
schedule
instance
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.)
Granted
Application number
JP7166281A
Other languages
English (en)
Other versions
JP4087466B2 (ja
Inventor
Jr Ansley W Jessup
ウエイン ジェサップ, ジュニア アンスレイ
Kuriacose Joseph
ジョセフ クリアコス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RCA Licensing Corp
Original Assignee
RCA Licensing Corp
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 RCA Licensing Corp filed Critical RCA Licensing Corp
Publication of JPH0846923A publication Critical patent/JPH0846923A/ja
Application granted granted Critical
Publication of JP4087466B2 publication Critical patent/JP4087466B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/07Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information characterised by processes or methods for the generation
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8545Content authoring for generating interactive applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/38Arrangements for distribution where lower stations, e.g. receivers, interact with the broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/86Arrangements characterised by the broadcast information itself
    • H04H20/91Arrangements characterised by the broadcast information itself broadcasting computer programmes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Systems (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

(57)【要約】 【目的】 オーディオ・ビデオ・インタラクティブ(A
VI)・コンポジット信号のための、アプリケーション
・プログラムを表す、会話的コンポーネント・データ・
ストリームを生成するための方法と装置を提供するこ
と。 【構成】 アプリケーション・プログラムを表すプログ
ラム・ファイルが生成される。インタラクティブ・コン
ポーネントのデータ構造を定義するフロー・データが生
成される。フロー・ビルダー10において、データ・ス
トリームが、フロー・データに応答してプログラム・フ
ァイルをデータ・ストリームに選択的に挿入することに
より生成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オーディオ・ビデオ・
インタラクティブ(audio video interactive :AV
I)送信システムのためのフロー・ビルダー(flow bui
lder)に関する。
【0002】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願第08/269,291号(1
994年6月30日出願)の明細書の記載に基づくもの
であって、当該米国特許出願の番号を参照することによ
って当該米国特許出願の明細書の記載内容が本明細書の
一部分を構成するものとする。
【0003】
【背景技術】オーディオ・ビデオ・インタラクティブ
(AVI)システムは、提案された放送エンターテイン
メント・システムであり、それでは、コンポジット信号
が放送局(broadcast location)から受信局(receivin
g locations )に放送される。AVI信号は、現在のテ
レビ・システムと同様にオーディオ成分(コンポーネン
ト)とビデオ成分(コンポーネント)とを含み、また、
インタラクティブ・アプリケーション成分(コンポーネ
ント)を含んでいる。受信局は、インタラクティブ・ア
プリケーション・コンポーネントを抽出し、放送ビデオ
とオーディオ上に重畳されたスクリーン・ディスプレイ
とサウンドをそれぞれ提供し、インタラクティブ・アプ
リケーション・コンポーネントに応答して看者(viewe
r)入力の全てに応答するデータ・プロセッサを含んで
いる。受信局のデータ・プロセッサは、また、インタラ
クティブ・アプリケーション・コンポーネントに応答し
てモデムのような、看者から放送者へあるいは広告者の
ような第三者に情報を通信するための通信装置を含んで
いる。
【0004】インタラクティブ・アプリケーション・コ
ンポーネントは、ディレクトリー・モジュールを含む複
数のモジュールを具備し、ディレクトリー・モジュール
は、インタラクティブ・プログラム・コンポーネントを
構築する他のモジュールに対する内容のテーブルとして
働く。加えて、そこには受信局のデータ・プロセッサに
よって実行される実行可能コードを含む少なくとも1つ
のコード・モジュールがある。特に、auto-exec モジュ
ールが指定される1コード・モジュールはインタラクテ
ィブ・アプリケーションの実行を開始するために必要な
実行可能なコードを含んでいる。このauto-exec モジュ
ールは、インタラクティブ・アプリケーション・コンポ
ーネントから自動的に抽出され、受信局のデータ・プロ
セッサがインタラクティブ・アプリケーション・コンポ
ーネントの存在をまず検出するとき実行される。コード
・モジュールあるいはモジュール内の実行可能なコード
に従って受信局のデータ・プロセッサにより処理される
べきデータを含む1以上のデータ・モジュールがまた存
在してもよい。最後に、AVIコンポジット信号は、イ
ンタラクティブ・アプリケーションにメッセージを送信
するための信号モジュールを含んでもよい。
【0005】看者がいつでもAVIアプリケーションに
参加することができ、彼ら自身のペースで対話をしなが
ら進行し、受信局のデータ・プロセッサ内で必要とされ
るメモリ量を最小にすることができるためには、コード
・モジュールとデータ・モジュールがAVI信号内で連
続して繰り返されるということが考えられる。あるモジ
ュールが他のモジュールよりより高い頻度で繰り返され
ることが必要であろう。例えば、AVIコンポジット信
号がまず看者により同調されるときと、看者が会話を始
める時の間の時間を最小にするために、インタラクティ
ブ・コンポーネント内の他のモジュールより高い頻度で
ディレクトリー・モジュールとauto-exec モジュールの
両方を繰り返すことが望ましいであろう。加えて、特定
のモジュールがある予め決められた時間だけ受信局に送
信されることを確保することが必要かもしれない。たと
えば、サブタイトルの場合には、サブタイトルを含むデ
ータ・モジュールが、それらのワードを話すオーディオ
・コンポーネントの前に受信者に到着していることが必
要である。
【0006】アプリケーション・プログラマーは、アプ
リケーションがプログラムされつつあるとき、どのモジ
ュールが他のモジュールより高い頻度で繰り返されるべ
きか、および/あるいはどのモジュールが予め決められ
た時間だけ送信されなければならないかを知っている。
こうして、アプリケーション・プログラマーは、どのモ
ジュールがインタラクティブ・アプリケーション・コン
ポーネント中に含まれるべきかを指定するデータを提供
し、アプリケーションの準備の一部としてそれらのモジ
ュールに対するスケジュール・データを提供することが
できる。このようにして提供されたモジュールとスケジ
ュール・データを解析し、要求されるスケジュールの制
約を満足するインタラクティブ・コンポーネント・デー
タ・ストリームを生成し、他のスケジュール制約との了
解を最大とするための機構を提供することが望ましい。
【0007】
【発明の概要】本発明の原理によれば、オーディオ・ビ
デオ・インタラクティブ(AVI)・コンポジット信号
のための、アプリケーション・プログラムを表す、イン
タラクティブ・コンポーネント・データ・ストリームを
生成するための方法は、以下のステップを具備する。ま
ず、アプリケーション・プログラムを表すプログラム・
ファイルが生成される。その後、インタラクティブ・コ
ンポーネントのデータ構造を定義するフロー・データが
生成される。最後に、データ・ストリームが、フロー・
データに応答してプログラム・ファイルをデータ・スト
リームに選択的に挿入することにより生成される。イン
タラクティブ・コンポーネント・データ・ストリームを
生成するための装置は、アプリケーション・プログラム
を表すプログラム・ファイルのソースと、インタラクテ
ィブ・コンポーネントのデータ構造を定義するフロー・
データソースとを具備する。フロー・ビルダーは、フロ
ー・データソースからのデータに応答してファイルのソ
ースからのファイルをインタラクティブ・コンポーネン
トに選択的に挿入する。
【0008】
【実施例】図1は、本発明によるフロー・ビルダー(fl
ow builder)を含む送信局の一部を示すブロック・ダイ
アグラムである。図1において、アプリケーション・コ
ンポーネント・データ・ストリーム内に含まれるべきモ
ジュールを特定し、それらのモジュールに対して情報を
スケジュールするフロー・データとコード・ファイル、
データ・ファイルのようなアプリケーション・ファイル
とが両方ともフロー・ビルダー10の各入力端子にアプ
リケーション・プログラマーにより供給される。フロー
・ビルダー10の出力端子はトランスポート・パケッタ
イザー(transport packetizer)20の入力端子に接続
されている。トランスポート・パケッタイザー20の出
力端子はマルチプレクサ30の第一の入力端子に接続さ
れている。マルプレサ30の出力端子はAVIデータ・
ストリームを搬送するトランスポート媒体に接続されて
いる。マルチプレクサ30の第二の入力端子はパケット
化ビデオ表現データ信号を受信するように接続され、マ
ルチプレクサ30の第三の入力端子はパケット化オーデ
ィオ表現データ信号を受信するように接続されている。
【0009】図2は、本発明によるフロー・ビルダー1
0を含むデータ処理システムを示すブロック・ダイアグ
ラムである。図2において、中央処理ユニット(CP
U)11は、リード・ライト・メモリ(RAM)12と
リード・オンリー・メモリ(ROM)にシステム・バス
14を介して接続されている。図2のデータ処理システ
ムは、さらに、アプリケーション・プログラマーにデー
タを提供するためのユーザー入力装置16と、アプリケ
ーション・プログラマーからのデータを受信するための
表示装置15を含み、両者はシステム・バスに接続され
ている。大規模格納装置17は、また、システム・バス
に接続され、アプリケーション・プログラマーにより使
用されるアプリケーション・ビルダー・プログラムと、
アプリケーション・ファイルと、フロー・データ・ファ
イルとを含むファイルを一時的に格納するために使用さ
れる。CPU11、RAM12、ROM13、表示装置
15、ユーザー入力装置16、および大規模格納装置1
7は、データ処理システムとして既知のように動作し、
それらの動作は詳細には説明しない。例えば、こうして
説明される図2のデータ処理システムは、パーソナル・
コンピューター(PC)あるいはワーク・ステーション
として実現される。ネットワーク・アダプター、モデ
ム、プリンター、バス拡張器等のような他の既知の装置
が、データ処理システムのシステム・バスに接続されて
もよい。
【0010】付加的な出力ポートがパケッタイザー出力
アダプター18により提供され、そのアダプターは(図
1の)トランスポート・プロセッサ20へのインターフ
ェイスとして働く。パケッタイザー出力アダプター18
は、また、システム・バス14に接続されていて、プリ
ンターへのインターフェイスとして現在使用されている
ような単なるシリアルあるいはパラレル出力ポートであ
ってもよい。しかしながら、特に設計された出力アダプ
ターが必要とされてもよい。データ処理システム・イン
ターフェイス設計の当業者は、そのような出力アダプタ
ーをどのように設計し実現するか理解できよう。パケッ
タイザー出力アダプター18の出力端子はフロー・ビル
ダー10の出力端子19に接続されている。出力端子1
9は、トランスポート・パケッタイザー20の入力端子
に接続されている。
【0011】図1と図2を参照して、動作に際し、アプ
リケーション・プログラマーは、ユーザー入力装置16
と表示装置15を用いて、コードとデータ・ファイルの
ためのソース・データを生成する。ソース・データは、
マス格納装置17内に一時的に格納される。大規模格納
装置17に同様に格納されたコンパイラーは、アプリケ
ーション・ビルダー内で、ソース・データを既知のよう
にして実行可能なコード・ファイルと関連するデータ・
ファイルとに変換し、大規模格納装置17にこれらのフ
ァイルを格納する。同様にして、アプリケーション・プ
ログラマーは、インタラクティブ・コンポーネントに含
まれるモジュールとそれらの特性とを指定し、そのモジ
ュールのインタラクティブ・コンポーネントのデータ・
ストリーム内への挿入をスケジュールするためのソース
・フロー・データを生成する。このソース・データの内
容は、以下に詳細に説明する。フロー・ビルダー10
は、ソース・フロー・データを処理し、コード・ファイ
ルとデータ・ファイルをモジュールと関連づけ、モジュ
ールのアプリケーション・コンポーネント・データ・ス
トリーム内への挿入をスケジュールし、そのデータ・ス
トリームを生成する。フロー・ビルダー10の出力は、
インタラクティブ・コンポーネント・データ・ストリー
ムであり、そのデータ・ストリーム内の各指定されたモ
ジュールは適切にシーケンスされ、適当な時間に現れ
る。その出力は出力端子19を介してトランスポート・
パケッタイザー20に供給される。トランスポート・パ
ケッタイザー20は、既知の方法でインタラクティブ・
コンポーネント・データ・ストリームをパケット化す
る。パケット化データ・ストリームと、パケット化ビデ
オおよびオーディオのコンポーネントはマルチプレクサ
30でマルチプレクスされ、既知の方法でAVIデータ
・ストリームを形成する。
【0012】図3は、図1と図2に示されるフロー・ビ
ルダー10の動作を示すデータ・フロー図である。図3
において、アプリケーションビルダー5は、アプリケー
ション・プログラマーから、実行可能なコードとデータ
からなるインタラクティブ・アプリケーション・プログ
ラムを表すソース・データを受信する。アプリケーショ
ン・ビルダー5は、コードファイルとデータ・ファイル
を含むファイル・セット104を作成する。それは、ま
た、フロー・ビルダー10内でモジュールを生成するこ
とが可能である。例えば、信号モジュールおよび/ある
いは微小データ・モジュールがフロー・ビルダー10内
で生成され、内部的に処理されてもよい(いずれかのタ
イプのモジュールが生成される間に、コードとより大き
なデータ・モジュールがアプリケーションビルダー5に
より実際に作成される)。図3の残りの部分は、フロー
・ビルダー10を通してのデータ・フローを示す。
【0013】フロー・ビルダー10は、アプリケーショ
ン・プログラマーにより提供されるソース・フロー・デ
ータを解析する。ソース・フロー・データのフォーマッ
トは、以下に詳細に説明する。フロー・データは、
(1)アプリケーションと関連するデータ、(2)アプ
リケーションに含まれるべきモジュールとその特性を特
定するデータ、(3)コードファイルとデータ・ファイ
ルとをモジュールと関連づけるデータ、(4)アプリケ
ーション・コンポーネント・データ・ストリーム内での
モジュールの出現をスケジュールするためのデータを含
んでいる。フロー・データはプロセス102で処理さ
れ、特に、解析される。アプリケーションに関連するデ
ータとモジュールとそれらの特性を特定するデータとは
プロセス106に導かれる。プロセス106は、ディレ
クトリー・モジュールを構築し、ディレクトリー・ファ
イル108内に構築されたディレクトリー・モジュール
を格納する。
【0014】図4は、ディレクトリー・ファイル108
の構造を示すメモリレイアウト図である。図4におい
て、ディレクトリー・ファイル108内のデータ・フィ
ールドは水平方向のバンドで示され、レコード(record
s )は太い水平線により分離されている。ディレクトリ
ー・ファイル108は、アプリケーションのための識別
子、アプリケーションをランさせるために必要なデコー
ダー・メモリ、およびアプリケーションでのモジュール
の全体数を含むアプリケーション・データを含む第一の
レコードを持つ。アプリケーションに関連づけられたデ
ータがプロセス106により受信されると、それは格納
され、解析される。適切なデータがディレクトリー・フ
ァイル108の第一のレコードの対応するフィールドに
おかれる。ディレクトリー・ファイル108は、さら
に、モジュール識別子、このモジュールをランさせるた
めに必要なメモリ上のモジュール長、および他のフラグ
を含むアプリケーション内の各モジュールに対するレコ
ードを持っている。モジュールとその特性とを特定する
データがプロセス106により受信されると、また、そ
れは格納され、解析される。このデータは、新しく定義
されたモジュールに関するものならば、新しいレコード
・ディレクトリー・ファイル108内で作成される。適
切なモジュール・データが新しいレコード内の対応する
フィールドにおかれる。データがプロセス106により
受信されるにつれて、以前に定義されたレコード内のフ
ィールドは更新される。例えば、モジュールが新たに定
義されるごとに、アプリケーション内のモジュールの全
体数を特定するアプリケーション・レコード内のフィー
ルドはインクリメントされることにより更新される。
【0015】アプリケーション・データを含むソース・
フロー・データ・ステートメントは、 Application(APPLN_ID,APPLN_MEMORY) である。
【0016】(実際のプログラム・ステートメントは、
異なる形式であってもよいし、および/あるいは異なる
あるいは付加的なアーギュメントを含んでもよい。それ
らは簡略化のため省略されている。さらに、そのような
プログラミング・ステートメントを生成して処理するた
めシステム・プログラミングの当業者は、オブジェクト
指向のプログラミングのようなプログラム・パラダイ
ム、C++プログラミング環境のようなプログラミング
環境を選択することが可能である。)プロセス102が
フロー・データ中にこのステートメントを認識すると、
ディレクトリー・モジュール・プロセス106を構築す
るように導かれる。そのプロセスは、ディレクトリー・
モジュール・ファイル108を初期化し、アプリケーシ
ョン識別子(Applicatioin_ID )と要求されるアプリケ
ーションメモリ(APPLN_MEMORY)とを第一のレコードの
対応するフィールドに挿入する。
【0017】モジュールとその特性を特定するための4
つの可能なソース・フロー・データステートメントがあ
る。すなわち、 appAutoExec(MODULE_ID,MODULE_MEMORY) appCode(MODULE_ID,MODULE_MEMORY) appData(MODULE_ID,MODULE_MEMORY) appSignal() である。
【0018】第一のプログラミング・ステートメント
は、インタラクティブ・コンポーネントが受信局でまず
検出されるときに自動的に実行されるコードを含む自動
実行(auto−exec)モジュールを識別する。第
二のプログラミング・ステートメントは、実行可能なコ
ードを含むモジュールを識別し、第三のプログラミング
・ステートメントはデータを含むモジュールを識別す
る。これらのプログラミング・ステートメントのうちの
1つがプロセス102により認識されると、それは、デ
ィレクトリー・モジュール・プロセス106を構築する
ように導かれ、そのプロセス106は、新しいモジュー
ル・レコードを作成し、モジュール識別子(MODUL
E_ID)と要求されるモジュール・メモリ(MODU
LE_MEMORY)を新たに作成されたモジュール・
レコード内の対応するフィールドに挿入する。これらの
プログラミング・ステートメントの最後のものは、信号
モジュールを特定する。これは、受信局に信号を送るた
めの特別なモジュールである。実施例では、信号モジュ
ールは、120キャラクターに制限され、モジュール名
が割り当てられない。
【0019】図3を再び参照して、フロー・データがプ
ロセス102で解読されるにつれて、コード・ファイル
とデータ・ファイルをモジュールと関連づけるデータは
プロセス110に供給される。プロセス110は、ファ
イル・セット104から適切なコード・ファイルおよび
/あるいはデータ・ファイルを、ディレクトリー・ファ
イル108内の関連するモジュール・レコードからデー
タを引き出す。引き出されたデータを用いて、プロセス
110は、そのファイルのためのデータを含むファイル
をフォーマットして生成し、それをモジュール・ファイ
ルセット112に格納する。
【0020】図5の右側は、モジュール・ファイル11
2の構造を示すメモリ・レイアウト図である。インタラ
クティブ・コンポーネント・データ・ストリーム内に含
まれる各モジュールはモジュール・ファイル112内に
レコードを有して、受信局にトランスポート媒体上を送
信されるとき、そのモジュールを実際に構成するデータ
を含む。図5に示されるように、各モジュールは、その
モジュールに関連するデータを含むヘッダー・フィール
ドと、モジュール・データ・フィールドを含む。ヘッダ
ー・フィールドは、モジュール識別子と、モジュール・
バージョン番号と、モジュール長を含み、この場合、そ
れは巡回冗長チェック(CRC)コードを含む。この情
報のいくつかは、ファイル・セット104内のコード・
ファイルあるいはデータ・ファイルから決定されてもよ
く、いくつかは、プロセス106により維持されている
モジュール関連データにより供給されてもよい。モジュ
ール・データ・フィールドは、そのモジュールを構築す
る実行可能なコードあるいはデータを含み、それは、フ
ァイルセット104内の特定されたコード・ファイルあ
るいはデータ・ファイルから引き出される。好適実施例
では、ヘッダー・データ・フィールドはヘッダー・パケ
ット内に形成され、モジュール・データ・フィールドは
(図1の)トランスポート・パケッタイザー20内の複
数の等しいサイズのデータ・パケット内にパケット化さ
れる。
【0021】コード・ファイルとデータ・ファイルをモ
ジュールに関連づけるデータを含むソース・フロー・デ
ータ・ステートメントは、 MODULE_ID.moduleSource(ModuleFile) あるいは、 MODULE_ID.moduleSource(ModuleBuffer) である。最初のステートメントは、ファイル・セット1
04からのコード・ファイルあるいはデータ・ファイル
を以前に定義されたモジュールと関連づけ、第二のステ
ートメントはソース・フロー・データ内の適切なプログ
ラミング・ステートメント(図示せず)により以前に定
義されたメモリ・バッファを以前に定義されたモジュー
ルと関連づける。第二のステートメントは、アプリケー
ション・プログラマーが上記のようにソース・フロー・
データ内のモジュール・データを定義することを可能と
する。プロセス102は、フロー・データ内のこれら2
つのステートメントのいずれか一方を認識するとき、フ
ォーマット・モジュール・プロセス110に導かれ、そ
れは、モジュール・ファイル112内に新しいレコード
を作成し、プログラミング・ステートメントからのモジ
ュール識別子(MODULE_ID )と、(このステートメント
が同じモジュールに対して複数回コールされれば、プロ
セス110により自動的に維持される)モジュール・バ
ージョン番号と、(ディレクトリー・ファイル108内
の対応するレコードからの)モジュール長とをモジュー
ル・ファイル112内の新たに作成されたレコードのヘ
ッダー・フィールド内に置く。その後、(第一のステー
トメントに対する)ファイル・セット104からの特定
のコードファイルあるいはデータ・ファイルの内容、あ
るいは(第二のステートメントに対する)メモリ・バッ
ファがモジュール・ファイル112内の新たに作成され
たレコードのモジュール・データ・フィールド内にコピ
ーされる。
【0022】図3を再び参照して、フロー・データがプ
ロセス102において解読されるとき、アプリケーショ
ン・コンポーネント・データ・ストリーム内のモジュー
ルの出現をスケジュールするためのデータはプロセス1
14に導かれる。プロセス114は、アプリケーション
・プログラマーにより提供されるスケジュール情報の全
てを集める。集められたスケジュール・データは、モジ
ュールのための要求されたスケジュール時間とオプショ
ンとしてのスケジュール時間の両方を含んでいる。異な
る形式のスケジュール・リクエストを以下に詳細に説明
する。全ての情報が集められたとき、インストラクショ
ンがプロセス114に与えられ、モジュールをスケジュ
ールする。集められたスケジュール・データは処理さ
れ、集められたスケジュール・データに従ってモジュー
ルをスケジュールすることが実行される。要求されたス
ケジュール時間の全てが満足されないときには、スケジ
ュール・リクエストは失敗し、診断メッセージがアプリ
ケーション・プログラマーに戻される。他に、モジュー
ルをインタラクティブ・コンポーネント・データ・スト
リーム内に置くためのタイミング情報が生成され、スケ
ジュール・ファイル116に格納される。スケジュール
・ファイル116を生成するためのプロセスを以下に詳
細に説明する。
【0023】図5の左側は、スケジュール・ファイル1
16の構造を示すメモリ・レイアウト図である。スケジ
ュール・ファイル116は、インタラクティブ・コンポ
ーネント・データストリーム内でのモジュールの出現
(また、インスタンスと呼ばれる)の度に1つのレコー
ドを持ち、インタラクティブ・プログラムの初めからそ
の出現までの時間オフセットと、その時間オフセットに
インタラクティブ・コンポーネント・データ・ストリー
ム内に置かれるべきモジュール・データを含むモジュー
ル・ファイル112内のレコードを指すポインターと、
データ・ストリーム内に置かれるべき送信単位の長さ
と、スケジュールされた送信単位に含まれるべきデータ
のモジュール・データ・フィールド内のオフセットとを
含んでいる。スケジュール・ファイル116内のレコー
ドは、先頭のスケジュールされたモジュールに関連する
レコードから、最後にスケジュールされたモジュールに
関連するレコードまで、時間オフセット順に維持されて
いる。これらのフィールドの詳細を以下に説明する。
【0024】図5において、スケジュール・ファイル1
16内の最初のレコードは、そのレコードのモジュール
・ポインター・フィールドからモジュール・ファイル1
12内の最初のレコードまで走る矢印により示されるよ
うに、モジュール・ファイル112内の最初のモジュー
ルをインタラクティブ・コンポーネント・データ・スト
リームに挿入するためのスケジュール・データを含んで
いる。スケジュール・ファイル116内の2番目のレコ
ードは、モジュール・ファイル112内の4番目のモジ
ュールに関連し、スケジュール・ファイル116内の3
番目のレコードはモジュール・ファイル112内の3番
目のモジュールに関連する。
【0025】上記のように、アプリケーション・プログ
ラマーは、要求されたスケジュール時間とオプションス
ケジュール時間とを含むフロー・ビルダー10にスケジ
ュール・データを供給する。実施例では、モジュール・
スケジュール・リクエストの4つのカテゴリーがある。
すなわち、ディレクトリー・モジュール、固定時間モジ
ュール、フレックスタイムモジュール、最大挿入(max-
insert)モジュールである。
【0026】上記のように、フロー・ビルダー10内の
プロセス106は、アプリケーション・プログラマーか
らのフロー・データに応答してディレクトリー・モジュ
ールを自動的に生成する。スケジュール・モジュール・
プロセス114は、インタラクティブ・コンポーネント
・データ・ストリームの初め(時間オフセット=0)に
ディレクトリー・モジュールのインスタンスを自動的に
おく。実施例では、これは、変更できず、このときに他
のいずれかのモジュールに対する要求されたスケジュー
ル・リクエストは競合状態となり、エラーであり、診断
メッセージが発行される。
【0027】ディレクトリー・モジュールの他のインス
タンスは、以下の2つのプログラミング・ステートメン
トの内の一方を用いて、アプリケーション・プログラマ
ーからのフロー・データに応答してスケジュールされ
る。
【0028】insertDirectory(insertionTime) または、 insertDirectory(insertionTime, moduleSpacing, inse
rtionDuration) 最初のステートメントは、ディレクトリー・モジュール
のインスタンスが時間オフセットinsertionTime でイン
タラクティブ・コンポーネント・データ・ストリーム内
に挿入されることをリクエストする。2番目のステート
メントは、ディレクトリー・モジュールの多数のインス
タンスが挿入され、時間オフセットinsertionTime で始
まり、insertionDuration の期間、時間オフセットmodu
leSpacingだけ離されている。insertionDuration アー
ギュメントが省略されると、ディレクトリー・モジュー
ルの多くのインスタンスはインタラクティブ・プログラ
ムが終了するまで挿入される。これらのプログラミング
・ステートメント(と続くそれら)により表現される挿
入リクエストと関連するデータは、フロー・ビルダー1
0内の内部データ構造(図示せず)に一時的に格納され
る。アプリケーション・プログラマーからのそのような
いずれのスケジュール・リクエストもないときには、デ
ィレクトリー・モジュールはauto-exec モジュール(後
述)と同じ周期で自動的にスケジュールされる。
【0029】固定時間モジュール・リクエストは、以下
のプログラミング・ステートメントを用いてなされる。
【0030】 MODULE_ID.insertModule(insertionTime) このステートメントは、モジュールMODULE_ID のインス
タンスが時間オフセットinsertionTime でデータ・フロ
ー内に挿入されることをリクエストする。そのようなス
ケジュール・リクエストの数は、いずれのモジュールに
対してもなされる。固定時間スケジュール・リクエスト
はスケジュール・リクエストを要求する。固定時間スケ
ジュール・リクエストの全ては、スケジュールが成功す
るために競合無しで満足されなければならない。そのよ
うなスケジュール・リクエストの全てに関連するデータ
は、フロー・ビルダー10内の内部データ構造に格納さ
れる。
【0031】フレックス・タイム・モジュール・スケジ
ュール・リクエストは、スケジュール時間のある程度の
柔軟性があるものである。フレックス・タイム・モジュ
ール・スケジュール・リクエストにはいくつかの形式が
ある。最初の形式は、ここで説明していないプログラミ
ング・ステートメントを用いてフロー・ビルダー10に
より維持される時間オフセット値である現在のシステム
時間の後最初に利用可能となる時間にインタラクティブ
・コンポーネント・データ・ストリームに挿入されるべ
きリクエストされたモジュールの単一のインスタンスに
対するリクエストである。フレックス・タイム・モジュ
ールのこの種のものをスケジュールすることをリクエス
トするためのプログラミング・ステートメントは、 MODULE_ID.insertModule() であり、それは、特に指定された挿入時間オフセットを
持たない(上記)フレックス・タイム・スケジュール・
リクエストと同じ形式である。
【0032】フレックス・タイム・モジュール・スケジ
ュール・リクエストの2番目の形式は、インタラクティ
ブ・コンポーネント・データ・ストリームに挿入される
べきリクエストされたモジュールの多数のインスタンス
に対する1つである。この種のフレックス・タイム・モ
ジュールのスケジュールをリクエストするためのプログ
ラミング・ステートメントは、 MODULE_ID.insertModule(insertionTime,moduleSpacin
g,insertionPeriod) である。このステートメントは、リクエストされたモジ
ュールMODULE_ID の多数のインスタンスがインタラクテ
ィブ・コンポーネント・データ・ストリームに挿入され
るべきことをリクエストする。最初のインスタンスは、
insertionTime 後に最初に利用可能となった時間オフセ
ットで挿入されるべきである。リクエストされたモジュ
ールMODULE_ID のインスタンス間の区間は、時間オフセ
ット期間moduleSpacing である。インスタンスは、inse
rtionTime からの時間オフセット期間insertionPeriod
の間に挿入される。insertionPeriod アーギュメントが
省略されると、リクエストされたモジュールの多くのイ
ンスタンスはinsertionTimeとインタラクティブ・アプ
リケーションの終了の間に挿入される。多数のインスタ
ンスの内のいずれかがスケジュールできなければ、スケ
ジュールは失敗であり、診断メッセージが発行される。
最大挿入モジュール・スケジュールのためのプログラミ
ング・ステートメントは、 MODULE_ID.insertModule(insertionTime,MAXIMUM_INSER
TION,insertionPeriod) このステートメントは、moduleSpacing アーギュメント
として供給される、予め定義された定数MAXIMUM_INSERT
ION つきのフレックス・タイム・モジュール・リクエス
トの多数インスタンス形式と同様である。この場合、リ
クエストされたモジュールの多くのインスタンスとして
適合するようなMODULE_ID は、insertionPeriod 時間オ
フセット期間の間にインタラクティブ・コンポーネント
・データ・ストリームに挿入されるべきであろう。しか
しながら、この場合、スケジュールできるインスタンス
がなければ、スケジュールは成功であり、診断メッセー
ジは発行されない。
【0033】上記のように、スケジュール・リクエスト
の全てが受信され、処理された後、インストラクション
がインタラクティブ・コンポーネント・データ・ストリ
ームをスケジュールするように供給される。そのような
インストラクションに対するプログラミング・ステート
メントは、 scheduleFlow() である。このインストラクションに応答して、上記のよ
うにフロー・ビルダー10内の内部データ構造に格納さ
れた、前にエンターされたスケジュール・リクエストの
全てを表す前に格納されたデータは解析され、スケジュ
ール・ファイル116が生成される。
【0034】一般に、いずれかのモジュール・リクエス
トがスケジュールされるとき、インタラクティブ・コン
ポーネント・データ・ストリーム内の開始時間オフセッ
トはそのリクエストから決定され、そのモジュールに対
する終了時間オフセットはモジュールの長さと、インタ
ラクティブ・コンポーネントの送信レートとから決定さ
れる。スケジュール・リクエストにより表される時間の
ブロックは、何らかの競合が存在するか否かを決定する
ために既にスケジュールされたモジュールに対してチェ
ックされる。競合が存在すれば、解決行動がとられ、そ
れは、処理されるべきスケジュール・リクエストの形式
(フィックスト(fixed )・タイム、フレックス・タイ
ム等)に依存する。他に、新しいレコードが新たにスケ
ジュールされたモジュールを表す(図5の)スケジュー
ル・ファイル116内に作成される。
【0035】図5を参照して、スケジュール・ファイル
116の新しいレコードでは、開始時間オフセットは時
間オフセット・フィールドに挿入され、その時間オフセ
ットに送信されるべきモジュールを含むモジュール・フ
ァイル112内のエントリーを指すポインターがモジュ
ール・ポインター・フィールドに挿入される。モジュー
ルの長さは、モジュール・ヘッダーから引き出され、送
信単位長フィールドに挿入され、送信単位オフセットは
初めに0に設定される。これらの最後の2つのフィール
ドは、以下に説明するように、競合解決手順の一部とし
て変更されることができる。
【0036】図6は、scheduleFlow()プログラミング・
ステートメントに応答して図3のスケジュール・モジュ
ール・プロセスにより実行される処理200のフロー図
であり、図7は図6に示されるスケジュール・プロセス
を理解する際に有益なタイミング図である。図7では、
モジュールは、各時間ライン上に四角として表され、そ
の四角の中にはモジュールの識別子が示されている。各
時間ラインは、スケジュール・プロセス内の異なる時間
におけるインタラクティブ・コンポーネント・データ・
ストリームの同じ部分を表す。
【0037】図6で、ステップ202でプロセスは始ま
る。ステップ204で、最初のディレクトリー・モジュ
ールが、上記のように、時間オフセット0でインタラク
ティブ・コンポーネント・データ・ストリームに挿入さ
れる。図5を参照して、スケジュール・ファイル116
内の最初のレコードは、この最初のディレクトリー・モ
ジュールを表し、モジュール・ファイル112内の最初
のレコードはディレクトリー・モジュールを含んでい
る。この場合、時間オフセット・フィールドの値は0で
あり、モジュール・ポインターはモジュール・ファイル
112内のディレクトリー・モジュール・エントリーを
指している。送信単位長は、ディレクトリー・モジュー
ルの長さを含み、その送信単位オフセットは0である。
図7を参照して、時間ラインa)は最初のディレクトリ
ー・モジュール300が時間0に挿入された後のデータ
・ストリームを示している。
【0038】ステップ206では、全ての固定時間モジ
ュール・リクエストがスケジュールされる。上記のよう
に、固定時間モジュール・リクエストは、ディレクトリ
ー・モジュールを含めて、いずれの種類のモジュールに
対しても存在する。最初に、全ての固定時間ディレクト
リー・モジュール・リクエストがスケジュールされる。
その後、残りの固定時間モジュール・リクエストがその
順番にスケジュールされ、それらのリクエストは(図3
の)ソース・データ・フロー内で生じる。上記のよう
に、各固定時間モジュール・リクエストに対する開始と
終了の時間オフセットは決定される。これらの時間オフ
セットのいずれかが前にスケジュールされたモジュール
と重なれば、競合が存在する。この場合、スケジュール
は失敗であり、診断メッセージが発行される。
【0039】例えば、図7の時間ラインb)は、ステッ
プ206の完了後のデータ・ストリームを示している。
この例では、固定時間ディレクトリー・モジュール・リ
クエストは時間t1の間になされていた。このリクエス
トに応答して、ディレクトリー・モジュールのインスタ
ンス302がデータ・ストリームに挿入された。その
後、auto-exec モジュールに対する固定時間モジュール
・リクエストが時間t2の間になされ、そしてコード1
モジュールに対する固定時間モジュール・リクエストが
時間t3の間にその順番でなされた。これらのリクエス
トに応答して、auto-exec モジュールのインスタンス3
04は時間t2にデータ・ストリームに挿入され、コー
ド1モジュールのインスタンス306が時間t3でデー
タ・ストリームに挿入される。固定時間モジュール・リ
クエストが時間t4の間に後でなされれば、しかしなが
ら、以前にスケジュールされたコード1モジュールとの
競合が生じ、スケジュールは失敗であり、診断メッセー
ジが発行される。
【0040】ステップ208では、フロー・ビルダー1
0により、(上記のようにauto-exec モジュールと同じ
繰り返しレートで)自動的に生成される、あるいは、ア
プリケーション・プログラマーにより多数インスタンス
・フレックス時間リクエストであるかのどちらかである
それらのディレクトリー・モジュール・スケジュール・
リクエストが処理される。ディレクトリー・モジュール
の多数のインスタンスは、最初にリクエストされまたは
自動的に生成された最後(すなわち、インタラクティブ
・プログラムの終り)に対するインスタンスからスター
トするようにスケジュールされる。各リクエストされた
インスタンスでは、望ましい開始時間が計算される。モ
ジュールが既にその望ましい開始時間にスケジュールさ
れていれば、その望ましい開始時間の前後で、他のモジ
ュールがスケジュールされていないその望ましい開始時
間にできるだけ近い時間が探される。ディレクトリー・
モジュールはスケジュールされ、そのときに始まる。
【0041】完全なディレクトリー・モジュールが利用
可能なタイム・スロット内に適合することができなけれ
ば、ディレクトリー・モジュールは多数の送信単位内に
分割される。最初に利用可能な時間スロット内に適合す
るものがデータ・ストリーム中の送信単位に挿入され、
ディレクトリー・モジュールの残りのものが完全なディ
レクトリー・モジュールが送信されるまで、引き続いて
の利用可能なタイム・スロットの全てを占拠する送信単
位に適合する。ディレクトリー・モジュールに対する最
後の送信単位が、次のディレクトリー・モジュール・イ
ンスタンスの所望の開始時間を超えて延長すると、スケ
ジュールは失敗し、診断メッセージが生じる。
【0042】図5を参照して、モジュールが分割される
とき、スケジュール・ファイル116内の分離レコード
がデータ・ストリーム内に挿入される各送信単位に対し
て生成される。最初のレコードが生成され、その時間オ
フセットはモジュールの最初の部分の開始時間であり、
モジュール・ポインターは望ましいモジュール(この場
合、ディレクトリー・モジュール)を含むモジュール・
ファイル112のレコードを指している。送信単位長
は、最初の部分で送信されることができるバイト数に設
定され、送信単位オフセットは0に設定される。スケジ
ュール・ファイル116の2番目のレコードはその後生
成され、その時間オフセットはデータ・ストリーム内の
次に使用可能なタイム・スロットの開始時間であり、モ
ジュール・ポインターはまだ、望ましいモジュールを含
むモジュール・ファイル112内のレコードを指してい
る。この場合、送信単位長は、2番目の部分で送信され
ることができるバイト数を含み、送信単位オフセット
は、送信されるべきモジュール・ファイル112内の望
ましいモジュール・レコードのモジュール・フィールド
内の次のバイトを指すように設定される。スケジュール
・ファイル116内の後続のレコードは、モジュールが
完全に送信されるまで同様に生成される。
【0043】図7を参照して、時間ラインc)は、ステ
ップ208の完了後の時間ラインを示している。この例
では、プログラマー・フレックス・タイム・ディレクト
リー・モジュール・リクエストは、望ましい時間t5で
始まるディレクトリー・モジュールの多数のインスタン
スを挿入するようにさせられる。モジュールは、インタ
ラクティブ・コンポーネント・データ・ストリームの終
了まで、インスタンス間に距離SPACING離れてい
る。この場合には、望ましい時間t5は、前にスケジュ
ールされたauto-exec モジュール304とオーバーラッ
プしている。t5にもっとも近い使用可能な時間はt6
であり、すなわちauto-exec モジュール304の終了時
である。ディレクトリー・モジュールの全体を送信する
のに十分な自由時間があり、それでスケジュール・ファ
イル116のエントリーは、時間t6でデータ・ストリ
ーム内にディレクトリー・モジュールの完全なインスタ
ンス308を挿入させられる。ディレクトリー・モジュ
ールの次のインスタンスのための望ましい開始時間は時
間t7である。この時間が利用可能であるが、ディレク
トリー・モジュールの完全なインスタンスを含むために
十分な時間はなく、ディレクトリー・モジュールは分割
されなければならない。
【0044】(“D”とラベルが付いた) ディレクト
リー・モジュールのインスタンスの最初の部分310は
時間t7で始まり、時間t3で終わる。これは、以前に
スケジュールされたコード1モジュールのインスタンス
306の開始時間である。(“IR”とラベルが付い
た)ディレクトリー・モジュール・インスタンスの2番
目の部分312は、時間t8で始まり、時間t9で終わ
る。時間t8は、コード1モジュール・インスタンス3
06の終了時である。最初の部分310と2番目の部分
312の結合は、図7に連結部分310と312により
示されるように、ディレクトリー・モジュールの完全な
インスタンスを含んでいる。
【0045】上記のように、(図5の)スケジュールフ
ァイル116内の2つのレコードはディレクトリー・モ
ジュールのこのインスタンスのために生成される。この
最初のレコードは、コード1モジュール・レコードの前
に置かれ、t7の時間オフセットと、最初の部分にバイ
ト数B1を含む送信長フィールドと、0の送信単位オフ
セットとを含んでいる。2番目のレコードは、コード1
モジュール・レコードの後におかれ、t8の時間オフセ
ットと、2番目の部分にバイト数B2を含む送信長フィ
ールドと、B1+1の送信単位オフセットとを含んでい
る。前記2つのレコードのためのモジュール・ポインタ
ーは、ディレクトリー・モジュールを含むモジュール・
ファイル112内のレコードを指す。
【0046】図7を再び参照して、ディレクトリー・モ
ジュールの次のインスタンスのための望ましい開始時間
は時間tlOであり、それは時間t7+SPACING
である。この時間が利用可能なので、また、ディレクト
リー・モジュールの完全なインスタンスのための十分な
利用可能な時間があるので、(図5の)スケジュールフ
ァイル116の単一のレコードは、上記のようにして、
ディレクトリー・モジュールのインスタンス314を時
間tlOで始まるデータストリームに挿入させられる。
ディレクトリー・モジュールの前のインスタンス(31
0、312)の終了時間t9が次のインスタンスの望ま
しい開始時間tlOより後ならば(例えば、コード1モ
ジュール・インスタンス306の期間が長ければ、起き
るであろう)、スケジュールは失敗であり、診断メッセ
ージが発行されるであろう。SPACINGだけ離され
たディレクトリー・モジュールのインスタンスを挿入す
る上記のプロセスは、インタラクティブ・コンポーネン
ト・プログラムが終了するまで続けられる。(上記のよ
うに)モジュールの多数のインスタンスをデータ・スト
リームに挿入するための時間期間を指定することもでき
る。そのようなリクエストがなされると、ディレクトリ
ー・モジュール・インスタンスはインスタンスの望まし
い開始時間が指定された時間期間内にある限り挿入され
るであろう。
【0047】再び図6を参照して、ステップ210で、
フレックス・タイム・モジュールはスケジュールされ
る。上記のように、2つの形式のフレックス・タイム・
モジュール・リクエストが存在する。最初の形式は、単
一インスタンス・フレックス・タイム・モジュール・リ
クエストであり、2番目の形式は多数インスタンス・フ
レックス・タイム・モジュール・リクエストである。ス
テップ210では、まず、(ディレクトリー・モジュー
ルの単一のインスタンスに対するリクエストを含めて)
全ての単一インスタンス・フレックス・タイム・モジュ
ール・リクエストが、ソース・フロー・データ内にアプ
リケーション・プログラマーにより供給される順番にス
ケジュールされる。上記のように、望ましい開始時間
は、ソース・フロー・データ内のリクエストから決定さ
れる。望ましい開始時間が利用可能ならば、レコードは
スケジュール・ファイル116内に生成され、望ましい
開始時間は時間オフセット・フィールドに格納され、モ
ジュール・ポインターは望ましいモジュールを含むモジ
ュール・ファイル112内のレコードを指している。望
ましいモジュールの完全なインスタンスを搬送するのに
利用可能時間が十分でなければ、上記のように、モジュ
ールはセクションに分割される。望ましい開始時間が利
用可能でなければ、望ましいモジュールは次の利用可能
時間に挿入され、必要ならば部分に分割されてもよい。
上記のように、挿入期間は、アプリケーション・プログ
ラマーにより指定できる。望ましいモジュールが望まし
い開始時間の挿入期間内にスケジュールされることがで
きなければ、スケジュールは失敗であり、診断メッセー
ジが発行される。
【0048】図7を参照して、時間ラインd)はステッ
プ210の最初の部分の完了後のデータ・ストリームを
示している。時間ラインd)では、挿入期間PERIO
D内の時間t3で信号モジュールSのインスタンスをス
ケジュールするリクエストが処理される。時間t3は、
しかしながら、利用可能ではなく、次の利用可能なタイ
ム・スロットが探される。このタイム・スロットは時間
t9であり、それはディレクトリー・モジュールのイン
スタンスの2番目の部分312の終了時である。このタ
イム・スロットは挿入期間PERIOD内にあるので、
信号モジュールSのインスタンス316は以下に説明す
るようにして時間t9で始まるデータ・ストリームに挿
入される。挿入期間PERIODは短縮化され、時間t
9まで延びていなければ、このスケジュール・リクエス
トは失敗し、診断メッセージが発行される。
【0049】図6を再び参照して、多数インスタンス・
フレックス・タイム・モジュール・リクエストがステッ
プ210でスケジュールされる。モジュールの全てのリ
クエストされたインスタンスは、次のモジュール・リク
エストがスケジュールされる前にスケジュールされる。
そのようなスケジュール・リクエストに対するスケジュ
ール・プロセスは、詳細に説明したように、多数インス
タンス・ディレクトリー・モジュール・リクエストに対
するそれと同様であり、ここでは詳細には説明しない。
インスタンスは、データ・ストリーム内の最初の望まし
いインスタンスから始まり最後までスケジュールされ
る。望ましい開始時間は、スケジュール・リクエストか
ら決定される。望ましい開始時間が利用可能ならば、レ
コードはその時間に望ましいモジュールのインスタンス
を挿入するためにスケジュール・ファイル116内に生
成される。望ましい時間が自由でなければ、次の利用可
能な時間が探され、インスタンスはそのときに挿入され
る。完全なインスタンスを挿入するのに十分な時間がな
ければ、インスタンスはいくつかの部分に分割される。
完全なインスタンスが次のインスタンスの望ましい開始
時間前にスケジュールされることができなければ、スケ
ジュールは失敗であり、診断メッセージが発行される。
【0050】多数のインスタンス・フレックス・タイム
・モジュール・リクエストがスケジュールされる順番
は、アプリケーション・プログラマーにより2つの方法
でなされることができる。最初に、各モジュールは、ソ
ース・フロー・データ内のプログラミング・ステートメ
ントにより優先度が与えられる。モジュールに優先度を
割り当てるプログラミング・ステートメントは、 MODULE_ID.setPriority(priorityValue) である。実施例では、0のpriorityValue が最高の優先
度であり、より低い値はより高い値よりも高い優先度を
持っている。多数のインスタンス・フレックス・タイム
・モジュール・リクエストがスケジュールされるとき、
より高い優先度を持つモジュールの全てのインスタンス
はより低い優先度のモジュールのどのインスタンスがス
ケジュールされるより前にスケジュールされる。
【0051】第二に、アプリケーション・プログラマー
がいずれかのモジュールに対する優先度を設定しないと
しても、モジュールはそれらがソース・フロー・データ
内に定義された順番に従って優先度を受け、ソース・フ
ロー・データ内で早く定義されたモジュールは後で定義
されたものより高い優先度を有する。この場合、多数イ
ンスタンス・フレックス・タイム・モジュールリクエス
トがスケジュールされつつあるとき、ソース・フロー・
データ内で先に定義されたモジュールの全てのインスタ
ンスは、後で定義されたモジュールの全てのインスタン
スがスケジュールされる前にスケジュールされる。
【0052】図7を再び参照して、時間ラインe)は、
ステップ210の2番目の部分が完了した後のデータス
トリームを示している。時間ラインe)では、インスタ
ンス間にモジュール距離SPACINGで時間t10に
始まる、データ・モジュールの多数のインスタンスを挿
入するフレックスタイムリクエストが処理される。時間
t10は利用可能ではないので、データモジュールのイ
ンスタンス318は次の利用可能な時間t11に挿入さ
れる。次の望ましい挿入時間t12は時間t10後にS
PACING時間がある。再び時間t12は利用可能で
はなく、データ・モジュールの次のインスタンス320
は次に利用可能な時間t13に挿入される。次の望まし
い時間t14は時間t12からSPACING時間あ
る。この時間は利用可であり、データ・モジュールのイ
ンスタンス322は、(図7に部分的に示されるだけだ
が)時間t14で挿入される。
【0053】図6を再び参照して、全ての最大挿入モジ
ュール・リクエストはステップ212で処理される。各
最大挿入モジュール・リクエストは、開始時間と時間期
間を含み、その時間期間にリクエストされたモジュール
のできるだけ多くのインスタンスがデータ・ストリーム
に挿入される。どの単一のインスタンスに対しても、次
に利用可能な時間が探される。レコードはスケジュール
・ファイル116内に生成され、時間オフセットはこの
時間に設定され、モジュール・ポインターは望ましいモ
ジュールを含むモジュール・ファイル内のレコードを指
している。望ましいモジュールの完全なインスタンスを
挿入するのに十分な時間があれば、送信単位長はモジュ
ールの長さに設定され、送信オフセットは0に設定され
る。他に、上記のようにモジュールは分割される。
【0054】アプリケーション・プログラマーにより多
くの最大挿入モジュール・リクエストが提供されてもよ
い。(setPriority プログラミング・ステートメントを
使用してアプリケーションプログラマーにより明確に、
あるいは上記のように、ソース・データ・フロー内のモ
ジュール定義ステートメントの位置により)各モジュー
ルに割り当てられた優先度はモジュールのインスタンス
をスケジュールする際に影響を与える。最高の優先度レ
ベルで始めて、その優先度レベルで各リクエストされた
項目から1つの項目が次の利用可能な時間にスケジュー
ルされる。その後、次に低い優先度レベルが処理され、
再びその優先度レベルの各リクエストされた項目から1
つのインスタンスが次の利用可能な時間にスケジュール
される。これは、最低の優先度レベルの各項目のインス
タンスがスケジュールされるまで続く。その後、プロセ
スは、最高の優先度レベルから繰り返される。フロー・
ビルダー10は、もはや利用可能なものが残っていなく
なるまで、優先度レベル・インスタンス・スケジュール
を通して繰り返される。
【0055】図7を参照して、最大挿入モジュール・リ
クエストは3つの小さいデータ・モジュールA、B、C
を処理した。Aは、最高の優先度レベルを持ち、Bは中
間の優先度レベルを持ち、Cは最低の優先度レベルを持
つ。データ・モジュールAは最高の優先度を持つので、
データ・モジュールAの1つのインスタンス324は、
次に利用可能な時間t15でまずスケジュールされる。
その後、次に低い優先度のデータモジュールBの1つの
インスタンス326は次に利用可能な時間t16でスケ
ジュールされる。その後、次に低い優先度のデータ・モ
ジュールCの1つのインスタンス328が次に利用可能
な時間t17でスケジュールされる。モジュールCは最
低の優先度を持つので、フロービルダー10は最高の優
先度レベルに戻るまでループする(loops )。再び、最
高の優先度のデータモジュールAの1つのインスタンス
330が次に利用可能な時間t18でスケジュールされ
る。その後、次に低い優先度のデータモジュールBの1
つのインスタンス332が次に利用可能な時間t19で
スケジュールされる。その後、最低の優先度のデータ・
モジュールCの1つのインスタンスが次に利用可能な時
間t20でスケジュールされる。しかしながら、モジュ
ールCの完全なインスタンスは時間t20で始まる利用
可能な時間に適合しない。そこで、データモジュールC
は上記のように、2つの部分に分割される。最初の部分
334は時間t20でスケジュールされ、2番目の部分
336は時間t21でスケジュールされる。これは、全
ての利用可能なタイム・スロットがデータ・モジュール
A、B、Cのインスタンスで満たされるまで続く。
【0056】図3を再び参照して、利用可能な時間の全
てが最大挿入モジュールで満たされたとき、スケジュー
ル・ファイル116は完了する。その後、プロセス11
8は、スケジュール・ファイル116とモジュール・フ
ァイル112内のデータを処理することにより、リアル
タイムでインタラクティブ・コンポーネント・データ・
ストリームを生成する。プロセス118は、(図1の)
送信システム内のシステム・クロック(図示せず)から
クロック信号(図示せず)を受信する。インタラクティ
ブ・プログラムが開始されたとき、スケジュール・ファ
イル内の最初のレコードはプロセス118により読み出
される。その後、システムクロックからの時間がその最
初のレコード内の時間オフセット・フィールドと比べら
れる。システム・クロック時間が時間オフセットと同じ
になったときは、スケジュールされたモジュールがパケ
ット化されるべき時である。まず、ヘッダー・データが
(図1の)パケッタイザー20に供給される。このデー
タは、モジュール識別子、モジュール・ファイル112
内のヘッダー・フィールドからのモジュール・バージョ
ン、およびスケジュールファイル116内の対応するフ
ィールドからの送信単位長とオフセットを含んでいる。
このヘッダー・データはヘッダーあるいは補助のパケッ
トと呼ばれる特別の形式の単一のパケットにパケット化
される。第二にモジュール・ポインターによりポイント
されているモジュール・ファイル112のレコードから
のモジュール・データがモジュール・ファイル112か
ら引き出され、トランスポート・パケッタイザー20に
供給される。スケジュール・ファイル116の現在のレ
コードからの送信単位長はトランスポートパケッタイザ
ー20に供給されるべきモジュール・データのバイト数
を示し、送信単位オフセット・フィールドはモジュール
・データのためのモジュール・データ・ファイル112
内の指示されたレコードのモジュール・データ・フィー
ルドの開始位置を示す。トランスポート・パケッタイザ
ー20はモジュール・データを連続するパケットにパケ
ット化し、それをマルチプレクサ30に供給する。マル
チプレクサ30は、オーディオとビデオのパケットとイ
ンタラクティブ・コンポーネント・パケットを結合し、
トランスポート媒体にマルチプレクスされたパケット・
ストリームを供給する。その後、プロセス118は、次
のエコー度を読み、インタラクティブ・プロセスが完了
するまでそのプロセスを繰り返す。
【図面の簡単な説明】
【図1】本発明によるフロー・ビルダーを含む送信局の
一部のブロック・ダイアグラムを示す図である。
【図2】本発明によるフロー・ビルダーを含むデータ処
理システムのブロック・ダイアグラムを示す図である。
【図3】図1に示されるフロー・ビルダーの動作を示す
データ・フロー図である。
【図4】図3に示されるフロー・ビルダーの動作を理解
する際に有益な、ディレクトリー・ファイルの構造を示
すメモリレイアウト図である。
【図5】図3に示されるフロー・ビルダーで使用される
スケジュール・ファイルとモジュール・ファイルの構造
と関係を示すメモリレイアウト図である。
【図6】図3に示されるフロー・ビルダー内のスケジュ
ール・モジュールにより実行される処理のフロー図であ
る。
【図7】図6に示されるスケジュール・プロセスを理解
する際に有益なタイミング図である。
【符号の説明】
10 フロー・ビルダー 20 トランスポート・パケッタイザー 30 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンスレイ ウエイン ジェサップ, ジ ュニア アメリカ合衆国 08046 ニュージャージ ィー州 ウィリングボロウ エルムウッド レーン 22 (72)発明者 クリアコス ジョセフ アメリカ合衆国 08536 ニュージャージ ィー州 プレインズボロウ ラベンス ク レスト ドライブ 818 (54)【発明の名称】 オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プロ グラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法 と装置

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 オーディオ・ビデオ・インタラクティブ
    ・コンポジット信号のための、アプリケーション・プロ
    グラムを表すインタラクティブ・コンポーネント・デー
    タ・ストリームを生成するための方法であって、 前記アプリケーション・プログラムを表すプログラム・
    ファイルを生成するステップと、 前記インタラクティブ・コンポーネントのデータ構造を
    定義するフロー・データを生成するステップと、および
    前記フロー・データに応答してプログラム・ファイルを
    前記データ・ストリームの中に選択的に挿入することに
    より前記データ・ストリームを生成するステップとから
    なる方法。
  2. 【請求項2】 前記データ・ストリーム生成ステップ
    は、 前記フロー・データを、前記アプリケーション・プログ
    ラムを表すデータと、モジュールとそれらの特性を指定
    するデータと、プログラム・ファイルをモジュールと関
    連づけるデータと、前記インタラクティブ・コンポーネ
    ントへのモジュールのスケジュールを表すデータとに解
    読するステップと、 前記アプリケーション・プログラムを表す前記データ
    と、モジュールとそれらの特性を指定するデータとに応
    答して、ディレクトリー・モジュールを構築するステッ
    プと、 プログラム・ファイルをモジュールと関連づける前記デ
    ータに応答してモジュールをフォーマットするステップ
    と、および前記インタラクティブ・コンポーネントへの
    モジュールのスケジュールを表す前記データに応答し
    て、モジュールを前記データ・ストリームにスケジュー
    ルするステップとを具備する請求項1記載の方法。
  3. 【請求項3】 前記モジュールのスケジュールを表すデ
    ータは、各々モジュールを指定する連続するスケジュー
    ル・リクエストを具備し、 前記モジュール・スケジュール・ステップは、各スケジ
    ュール・リクエストに対して、 前記スケジュール・リクエストと前にスケジュールされ
    たモジュールとの間に競合が存在するかどうかを判定す
    るステップと、 競合が存在すれば、競合解決プロセスを実行するステッ
    プと、および競合が存在しなければ、指定されたモジュ
    ールのインスタンスを前記データ・ストリーム内にスケ
    ジュールするステップとを具備する請求項2記載の方
    法。
  4. 【請求項4】 前記スケジュール・リクエストは、リク
    エストされたスケジュール時間に固定時間モジュールを
    スケジュールするリクエストであり、 前記競合判定ステップは、 前記リクエストされたスケジュール時間から挿入開始時
    間を決定するステップと、 前記識別されたモジュールのサイズと予め決められた送
    信速度とから挿入終了時間を決定するステップと、 モジュールの、前にスケジュールされたインスタンスに
    前記挿入開始時間と前記挿入終了時間のいずれか一方が
    オーバーラップするかどうかを判定するステップと、お
    よびモジュールの、前にスケジュールされたインスタン
    スに前記挿入開始時間と前記結果的な挿入終了時間のい
    ずれか一方がオーバーラップすれば、競合を見つけるス
    テップとを具備し、さらに前記競合解決ステップは、 前記スケジュール・ステップが失敗したことを見つける
    ステップと、および診断メッセージを発行するステップ
    とを具備する請求項3記載の方法。
  5. 【請求項5】 前記指定されたモジュールは、前記ディ
    レクトリー・モジュールである請求項4記載の方法。
  6. 【請求項6】 前記連続するスケジュール・リクエスト
    の1つが、リクエストされたスケジュール時間にフレキ
    シブル時間モジュールをスケジュールするリクエストで
    あり、 前記インスタンス・スケジュール・ステップは、 前記リクエストされたスケジュール時間がモジュール
    の、前にスケジュールされたインスタンスとオーバーラ
    ップするかどうかを判定するステップと、 前記リクエストされたスケジュール時間が前にスケジュ
    ールされたモジュールとオーバーラップしなければ、前
    記リクエストされたスケジュール時間にインスタンスの
    開始時間を設定し、前記リクエストされたスケジュール
    時間が前にスケジュールされたモジュールとオーバーラ
    ップすれば、スケジュールされたモジュールが存在しな
    い前記データ・ストリーム内の次の時間にインスタンス
    の開始時間を設定するステップと、 前記指定されたモジュールのサイズと予め決められた送
    信速度から、前記指定されたモジュールの完全なインス
    タンスを前記データ・ストリームに挿入するのに十分な
    時間があるかどうかを判定するステップと、および十分
    な時間があれば前記インスタンス開始時間に前記データ
    ・ストリームに前記モジュールの完全なインスタンスを
    挿入し、十分な時間がなければ前記インスタンスの開始
    時間に始まる前記データ・ストリーム内の連続する複数
    の利用可能なタイム・スロットに前記モジュールを挿入
    するステップとを具備する請求項3記載の方法。
  7. 【請求項7】 前記スケジュール・リクエストは、指定
    されたモジュール挿入時間期間内の前記リクエストされ
    たスケジュール時間に前記フレキシブル時間モジュール
    をスケジュールするリクエストであり、 前記競合判定ステップは、 前記インスタンス開始時間が前記挿入時間期間内にある
    かどうかを判定するステップと、および前記インスタン
    ス開始時間が前記挿入時間期間内になければ競合を見つ
    けるステップとを具備し、および前記競合解決ステップ
    は、 前記スケジュール・ステップが失敗したことを見つける
    ステップと、および診断メッセージを発行するステップ
    とを具備する請求項6記載の方法。
  8. 【請求項8】 前記スケジュール・リクエストの前記1
    つは、モジュール離隔時間だけ離された前記リクエスト
    されたスケジュール時間に始まるようにフレキシブル時
    間モジュールの多数のインスタンスをスケジュールする
    リクエストであり、 前記モジュール・スケジュール・ステップは、さらに、 前記アプリケーション・プログラムが完了するまで、前
    記モジュール離隔時間だけインクリメントされた前記前
    の開始時間に等しい望ましい開始時間で前記インスタン
    ス・スケジュール・ステップを繰り返すステップを具備
    し、 前記競合決定ステップは、 前記指定されたモジュールの前記前にスケジュールされ
    たインスタンスに対する終了挿入時間を決定するステッ
    プと、 前記終了挿入時間が前記指定されたモジュールの前記現
    在のインスタンスに対する前記インスタンス開始時間よ
    り後かどうかを判定するステップと、および前記終了挿
    入時間が前記指定されたモジュールの前記現在のインス
    タンスに対する前記インスタンス開始時間より後ならば
    競合を見つけるステップとを具備し、および前記競合解
    決ステップは、 前記スケジュール・ステップが失敗したことを見つける
    ステップと、および診断メッセージを発行するステップ
    とを具備する請求項6記載の方法。
  9. 【請求項9】 モジュールの特性は優先度値であり、 前記ディレクトリー・モジュールを構成するステップ
    は、モジュールとそれらの特性を指定する前記データに
    応答して優先度値をモジュールに割り当てるステップを
    具備し、 前記連続するスケジュール・リクエストのサブセット
    は、リクエストされたスケジュール時間にフレキシブル
    時間モジュールをスケジュールするリクエストであり、 前記インスタンス・スケジュール・ステップは、 最高の優先度値が割り当てられた前記モジュールを指定
    するスケジュール・リクエストの前記サブセットのうち
    の1つを初めに選択するステップと、 前記選択されたスケジュール・リクエストに対して前記
    繰り返しステップを実行するステップと、 次に低い優先度値が割り当てられたモジュールを指定す
    るスケジュール・リクエストの前記サブセットのうちの
    次の1つを選択するステップと、および前記選択された
    スケジュール・リクエスト内で指定される前記モジュー
    ルに割り当てられた前記優先度値が最低の優先度値にな
    るまで前記実行ステップと前記選択ステップを繰り返
    し、その後前記最初に選択するステップを繰り返すステ
    ップとを具備する請求項8記載の方法。
  10. 【請求項10】 前記繰り返しステップは、前記アプリ
    ケーション・プログラムの終了まで前記インスタンス・
    スケジュール・ステップを繰り返す請求項8記載の方
    法。
  11. 【請求項11】 前記スケジュール・リクエストの前記
    1つは、指定されたモジュール挿入時間期間のためのモ
    ジュール離隔時間だけ離された前記リクエストされたス
    ケジュール時間で始まるようにフレキシブル時間モジュ
    ールの多数のインスタンスをスケジュールするリクエス
    トであり、 前記繰り返しステップは、前記挿入時間期間の終了ま
    で、前記リクエストされたスケジュール時間で始まる前
    記インスタンス・スケジュール・ステップを繰り返す請
    求項8記載の方法。
  12. 【請求項12】 前記指定されたモジュールは前記ディ
    レクトリー・モジュールである請求項6記載の方法。
  13. 【請求項13】 前記連続するスケジュール・リクエス
    トの1つは、リクエストされたスケジュール時間に最大
    挿入モジュールをスケジュールするリクエストであり、 前記インスタンス・スケジュール・ステップは、 前記リクエストされたスケジュール時間で始まる、スケ
    ジュールされるモジュールがない前記データ・ストリー
    ム内の次の時間にインスタンスの開始時間を設定するス
    テップと、 前記指定されたモジュールのサイズと予め決められた送
    信速度から前記指定されたモジュールの完全なインスタ
    ンスを前記データ・ストリームに挿入するのに十分な時
    間があるかどうかを判定するステップと、 十分な時間があれば前記インスタンス開始時間に前記デ
    ータ・ストリームに前記モジュールの完全なインスタン
    スを挿入し、十分な時間がない場合には、前記インスタ
    ンス開始時間に始まる前記データ・ストリーム内の複数
    の利用可能なタイム・スロットに前記モジュールを挿入
    するステップと、および前記設定、前記判定、および前
    記挿入ステップを繰り返すステップとを具備する請求項
    3記載の方法。
  14. 【請求項14】 前記繰り返すステップは、前記アプリ
    ケーション・プログラムの終了まで繰り返す請求項13
    記載の方法。
  15. 【請求項15】 前記スケジュール・リクエストの前記
    1つは、指定されたモジュール挿入時間期間の間のリク
    エストされたスケジュール時間で最大挿入モジュールを
    スケジュールするリクエストであり、 前記繰り返すステップは、前記挿入時間期間の終了まで
    繰り返す請求項13記載の方法。
  16. 【請求項16】 モジュールの特性は優先度値であり、 前記データ・ストリーム生成ステップは、モジュールと
    それらの特性とを指定する前記データに応答してモジュ
    ールに優先度値を割り当てるステップを更に具備し、 前記連続するスケジュール・リクエストのサブセット
    は、リクエストされたスケジュール時間に最大挿入モジ
    ュールをスケジュールするリクエストであり、 前記インスタンス・スケジュール・ステップは、 最高の優先度値が割り当てられた前記モジュールを指定
    するスケジュール・リクエストの前記サブセットのうち
    の1つを初めに選択するステップと、 前記選択されたスケジュール・リクエストに対して前記
    設定ステップ、前記判定ステップ、前記挿入ステップを
    実行するステップと、 次に低い優先度値が割り当てられたモジュールを指定す
    るスケジュール・リクエストの前記サブセットのうちの
    次の1つを選択するステップと、および前記選択された
    スケジュール・リクエスト内で指定された前記モジュー
    ルに割り当てられた前記優先度値が最低の優先度値にな
    るまで前記実行ステップと前記選択ステップを繰り返
    し、その後前記最初に選択するステップを繰り返すステ
    ップとを更に具備する請求項13記載の方法。
  17. 【請求項17】 前記繰り返すステップは、前記アプリ
    ケーション・プログラムの終了まで繰り返す請求項13
    記載の方法。
  18. 【請求項18】 前記スケジュール・リクエストの前記
    1つは、指定されたモジュール挿入時間期間の間のリク
    エストされたスケジュール時間で最大挿入モジュールを
    スケジュールするリクエストであり、 前記繰り返すステップは、前記挿入時間期間の終了まで
    繰り返す請求項13記載の方法。
  19. 【請求項19】 前記モジュールをスケジュールするス
    テップは、前記データ・ストリームの最初のモジュール
    としてディレクトリー・モジュールを最初にスケジュー
    ルする請求項2記載の方法。
  20. 【請求項20】 前記モジュール・スケジュールを表す
    データは、それぞれモジュールを指定する連続するスケ
    ジュール・リクエストを具備し、各リクエストは固定時
    間モジュール・リクエスト、フレキシブル時間モジュー
    ル・リクエスト、および最大挿入モジュール・リクエス
    トからなる組から選択され、 前記モジュールをスケジュールするステップは、 前記データ・ストリーム内の最初のモジュールとして前
    記ディレクトリー・モジュールを自動的にスケジュール
    するステップと、 その後、前記データ・ストリーム内の固定時間モジュー
    ル・リクエストをスケジュールするステップと、 その後、前記ディレクトリー・モジュールを指定するス
    ケジュール・リクエストが前記連続するスケジュール・
    リクエスト内になければ、前記ディレクトリー・モジュ
    ールを前記データ・ストリーム内に自動的にスケジュー
    ルするステップと、 その後、フレキシブル時間モジュール・リクエストを前
    記データ・ストリーム内にスケジュールするステップ
    と、 その後、最大挿入モジュール・リクエストを前記データ
    ・ストリーム内にスケジュールするステップとを具備す
    る請求項2記載の方法。
  21. 【請求項21】 前記連続するスケジュール・リクエス
    トの1つは、auto-exec モジュールを指定し、 前記ディレクトリー・モジュールを指定するスケジュー
    ル・リクエストが前記連続するスケジュール・リクエス
    ト内になければディレクトリー・モジュールを自動的に
    スケジュールするステップは、前記auto-exec モジュー
    ルと同じ頻度で前記データ・ストリーム内のディレクト
    リー・モジュールをスケジュールするステップを具備す
    る請求項20記載の方法。
  22. 【請求項22】 オーディオ・ビデオ・インタラクティ
    ブ・コンポジット信号のための、アプリケーション・プ
    ログラムを表す、インタラクティブ・コンポーネント・
    データ・ストリームを生成するための装置であって、 前記アプリケーション・プログラムを表すプログラム・
    ファイルのソースと、 前記インタラクティブ・コンポーネントのデータ構造を
    定義するフロー・データのソースと、および前記フロー
    ・データ・ソースからのデータに応答してファイルを前
    記ファイル・ソースから前記インタラクティブ・コンポ
    ーネントに選択的に挿入するためのフロー・ビルダーと
    を具備する装置。
  23. 【請求項23】 前記ファイル・ソースは、 前記アプリケーション・プログラムを表すデータのソー
    スと、および前記アプリケーション・プログラム・デー
    タ・ソースに応答して、前記プログラム・ファイルを生
    成するためのアプリケーション・ビルダーとを具備する
    請求項22記載の装置。
  24. 【請求項24】 前記インタラクティブ・コンポーネン
    トは、複数のモジュールを搬送する連続する送信単位で
    あり、 前記前記フロー・データは、前記アプリケーション・プ
    ログラムを表すデータと、モジュールとそれらの特性を
    指定するデータと、プログラム・ファイルをモジュール
    と関連づけるデータと、前記インタラクティブ・コンポ
    ーネントへのモジュールのスケジュールを表すデータと
    からなり、 前記フロー・ビルダーは、 前記フロー・データを、前記アプリケーション・プログ
    ラムを表すデータと、モジュールとそれらの特性を指定
    するデータと、プログラム・ファイルをモジュールと関
    連づけるデータと、前記インタラクティブ・コンポーネ
    ントへのモジュールのスケジュールを表すデータとに解
    読する解読器と、 アプリケーション・プログラムを表す前記解読されたデ
    ータと、前記モジュールとそれらの特性を指定する前記
    解読されたデータとに応答して、アプリケーション・デ
    ータを含む1つのレコードと、データを表すモジュール
    を含む各指定されたモジュールに対する1つのレコード
    とを含むディレクトリー・モジュール・ファイルを構築
    するためのディレクトリー・モジュール構築器と、 前記プログラムグラム・ファイルをモジュールに関連づ
    ける前記解読されたデータに応答して、各関連づけられ
    たプログラム・ファイルに対してレコードを含むモジュ
    ール・ファイルと、前記モジュールと関連づけられた前
    記プログラム・ファイルを含むモジュールとを構成する
    ためのモジュール・フォーマッターと、および前記モジ
    ュールのスケジュールを表す前記解読されたデータに応
    答して、前記送信単位内に送信されるべき前記プログラ
    ム・ファイルを含む前記モジュール・ファイル内の前記
    レコードへのポインターと、前記送信単位が送信される
    べき時間とを含む前記インタラクティブ・コンポーネン
    トの各送信単位に対するレコードを含むスケジュール・
    ファイルを生成するためのモジュール・スケジューラー
    とを具備する請求項22記載の装置。
JP16628195A 1994-06-30 1995-06-30 オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プログラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法と装置 Expired - Lifetime JP4087466B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US269291 1972-07-06
US08/269,291 US5581706A (en) 1994-06-30 1994-06-30 Method forming an audio/video interactive data signal

Publications (2)

Publication Number Publication Date
JPH0846923A true JPH0846923A (ja) 1996-02-16
JP4087466B2 JP4087466B2 (ja) 2008-05-21

Family

ID=23026634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16628195A Expired - Lifetime JP4087466B2 (ja) 1994-06-30 1995-06-30 オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プログラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法と装置

Country Status (5)

Country Link
US (1) US5581706A (ja)
EP (1) EP0690400A3 (ja)
JP (1) JP4087466B2 (ja)
KR (1) KR100381126B1 (ja)
CN (1) CN1146237C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003519984A (ja) * 1999-12-30 2003-06-24 オープンティブイ・インコーポレーテッド フロー・スケジューリングのための方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778406A (en) * 1995-06-30 1998-07-07 Thomson Consumer Electronics, Inc. Apparatus for delivering CPU independent data for little and big endian machines
GB9602431D0 (en) * 1996-02-07 1996-04-03 Philips Electronics Nv Interactive audio entertainment apparatus
EP0823823A3 (en) * 1996-08-07 2001-02-14 Matsushita Electric Industrial Co., Ltd. Digital broadcasting 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
JPH10126750A (ja) * 1996-10-23 1998-05-15 Matsushita Electric Ind Co Ltd 番組情報放送システム、放送装置、及び受信端末装置
US6016307A (en) 1996-10-31 2000-01-18 Connect One, Inc. Multi-protocol telecommunications routing optimization
US5951646A (en) * 1996-11-25 1999-09-14 America Online, Inc. System and method for scheduling and processing image and sound data
US5913038A (en) * 1996-12-13 1999-06-15 Microsoft Corporation System and method for processing multimedia data streams using filter graphs
BR9714604A (pt) * 1997-03-21 2002-08-06 Canal Plus Sa Transmissão e recepção de programas de televisão e outros dados
ATE330420T1 (de) 1997-03-21 2006-07-15 Thomson Licensing Datenfernladung
US6049806A (en) * 1997-04-11 2000-04-11 Multimedia Archival Systems, Inc. Computer system for managing a plurality of data types
US6233253B1 (en) 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
EP0907285A1 (en) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Downloading data
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
US7197570B2 (en) 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US6574618B2 (en) 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US11109114B2 (en) 2001-04-18 2021-08-31 Grass Valley Canada Advertisement management method, system, and computer program product
US6374405B1 (en) * 1999-02-17 2002-04-16 Opentv, Corp. Module scheduling with a time interval and ending time
US8085813B2 (en) * 1999-10-28 2011-12-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US6976034B1 (en) * 1999-10-28 2005-12-13 Lightwaves Systems, Inc. Method of transmitting data including a structured linear database
US9900734B2 (en) 1999-10-28 2018-02-20 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US6868419B1 (en) * 1999-10-28 2005-03-15 Lightwaves Systems Inc. Method of transmitting data including a structured linear database
GB2357922A (en) * 1999-12-07 2001-07-04 Sony Service Ct Optimising a data carousel
US7249155B1 (en) * 2000-02-09 2007-07-24 International Business Machines Corporation Method for processing a request to multiple instances of a server program
US6757894B2 (en) 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
US7051315B2 (en) 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
US8766773B2 (en) * 2001-03-20 2014-07-01 Lightwaves Systems, Inc. Ultra wideband radio frequency identification system, method, and apparatus
US7983349B2 (en) * 2001-03-20 2011-07-19 Lightwaves Systems, Inc. High bandwidth data transport system
US7545868B2 (en) * 2001-03-20 2009-06-09 Lightwaves Systems, Inc. High bandwidth data transport system
GB0108476D0 (en) * 2001-04-04 2001-05-23 Skydrive Corp Bvi Transmission systems
US20020184642A1 (en) * 2001-04-23 2002-12-05 Lude Peter J. Method and apparatus for opportunistically broadcasting rich media digital content
US7136485B2 (en) * 2001-05-04 2006-11-14 Hewlett-Packard Development Company, L.P. Packetizing devices for scalable data streaming
US6990202B2 (en) * 2001-10-04 2006-01-24 Hewlett-Packard Development Company, L.P. Packetizing devices for secure scalable data streaming
KR100425681B1 (ko) * 2001-07-23 2004-04-03 엘지전자 주식회사 디에스엠-씨씨 기반 장치의 에이피아이 구현 장치 및 방법
US7944953B2 (en) * 2002-04-03 2011-05-17 Tvworks, Llc Method and apparatus for transmitting data in a data stream
US7961705B2 (en) * 2003-04-30 2011-06-14 Lightwaves Systems, Inc. High bandwidth data transport system
US8345778B2 (en) 2007-10-29 2013-01-01 Lightwaves Systems, Inc. High bandwidth data transport system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862268A (en) * 1980-03-31 1989-08-29 General Instrument Corporation Addressable cable television control system with video format data transmission
US4866770A (en) * 1986-07-08 1989-09-12 Scientific Atlanta, Inc. Method and apparatus for communication of video, audio, teletext, and data to groups of decoders in a communication system
US4847700A (en) * 1987-07-16 1989-07-11 Actv, Inc. Interactive television system for providing full motion synched compatible audio/visual displays from transmitted television signals
US5195092A (en) * 1987-08-04 1993-03-16 Telaction Corporation Interactive multimedia presentation & communication system
US4920432A (en) * 1988-01-12 1990-04-24 Eggers Derek C System for random access to an audio video data library with independent selection and display at each of a plurality of remote locations
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US5119188A (en) * 1988-10-25 1992-06-02 Telaction Corporation Digital audio-video presentation display system
RU2106758C1 (ru) * 1989-08-23 1998-03-10 Дельта Бета Пти., Лтд. Способ оптимизации передачи программы многим пользователям, система для оптимизации передачи программы многим пользователям, приемник для приема программы, полученной от системы оптимизации передачи программы, и устройство планирования для системы оптимизации передачи программы
WO1991008534A1 (de) * 1989-11-29 1991-06-13 Siemens Aktiengesellschaft Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
US5132992A (en) * 1991-01-07 1992-07-21 Paul Yurt Audio and video transmission and receiving system
DE69210303T2 (de) * 1991-05-23 1996-11-14 Hitachi Ltd Breitbildschirmfernsehempfänger mit Bildseitenverhältnisumwandlungsfunktion und Verfahren zur Darstellung eines vergrösserten Abschnittes
US5343239A (en) * 1991-11-20 1994-08-30 Zing Systems, L.P. Transaction based interactive television system
JP2521016B2 (ja) * 1991-12-31 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチメディア・デ―タ処理システム
CA2104753C (en) * 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
JP3958355B2 (ja) * 1992-12-09 2007-08-15 セドナ・パテント・サービシズ・エルエルシー ケーブルテレビ配送システムのためのネットワーク・コントローラ
US5414455A (en) * 1993-07-07 1995-05-09 Digital Equipment Corporation Segmented video on demand system
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
US5440336A (en) * 1993-07-23 1995-08-08 Electronic Data Systems Corporation System and method for storing and forwarding audio and/or visual information on demand
US5453779A (en) * 1994-03-15 1995-09-26 International Business Machines Corporation Scheduling policies with grouping for providing VCR control functions in a video server
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003519984A (ja) * 1999-12-30 2003-06-24 オープンティブイ・インコーポレーテッド フロー・スケジューリングのための方法
JP4718743B2 (ja) * 1999-12-30 2011-07-06 オープンティブイ・インコーポレーテッド フロー・スケジューリングのための方法

Also Published As

Publication number Publication date
US5581706A (en) 1996-12-03
JP4087466B2 (ja) 2008-05-21
CN1120776A (zh) 1996-04-17
KR100381126B1 (ko) 2003-07-07
EP0690400A2 (en) 1996-01-03
CN1146237C (zh) 2004-04-14
EP0690400A3 (en) 1999-11-17
KR960003179A (ko) 1996-01-26

Similar Documents

Publication Publication Date Title
JPH0846923A (ja) オーディオ・ビデオ・インタラクティブ・コンポジット信号のための、アプリケーション・プログラムを表す、インタラクティブ・コンポーネント・データ・ストリームを生成するための方法と装置
EP0758833B1 (en) Method and apparatus for providing an interactive guide to events available on an information network
US6233255B1 (en) Apparatus and method for remultiplexing and coding multimedia information
JP4444510B2 (ja) トランスポート・ストリームに埋め込まれたバイトコードの配信のための方法およびその装置
US5410698A (en) Method and system for dynamic loading of software libraries
EP0788714B1 (en) Video indexing protocol
JP2001511629A (ja) デジタルトランスポートストリーム処理
US20020023270A1 (en) Three part architecture for digital television data broadcasting
KR19990045329A (ko) 네트워크상에 mpeg-2 전송 스트림을 분배하는 방법 및 인터페이스 장치
CN1112334A (zh) 处理一种音频视频交互式信号的方法和装置
JP2009077451A (ja) 伝送データ・ストリームからデータ・セクションを抽出する方法
EP1652384A1 (en) Handling feature availability in a broadcast
EP0872053A1 (en) Transmission of multimedia objects in a digital broadcasting system
US7458090B2 (en) Method and apparatus of displaying bit stream data, method and apparatus for generating bit stream data, and storage medium
EP1022908B1 (en) Information server and method of constructing a transport stream
CN100379294C (zh) 视听节目同步系统和方法
EP1022909B1 (en) Information server and a method of arranging carousel information
US7000244B1 (en) Multi-threaded direct memory access engine for broadcast data demultiplex operations
EP1022901B1 (en) Information server
JP4460702B2 (ja) 情報サーバ及びキャルセル情報配列方法
JP2001229029A (ja) デジタルテレビ受信器のゲーム及び対話式プログラムに関する装置及び方法
EP1022902B1 (en) Method and system for prioritising data operations
CA2555276C (en) System and method for describing presentation and behavior information in an itv application
EP1392060A1 (en) System and method for broadcast testing
WO2001017147A1 (en) Multi-threaded direct memory access engine for broadcast data demultiplex operations

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060125

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070312

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071003

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080104

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: 20080129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080221

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

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: 20120229

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140228

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