JP3590639B2 - Information synchronization control method, information transmission device, and information output device - Google Patents
Information synchronization control method, information transmission device, and information output device Download PDFInfo
- Publication number
- JP3590639B2 JP3590639B2 JP02172893A JP2172893A JP3590639B2 JP 3590639 B2 JP3590639 B2 JP 3590639B2 JP 02172893 A JP02172893 A JP 02172893A JP 2172893 A JP2172893 A JP 2172893A JP 3590639 B2 JP3590639 B2 JP 3590639B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- information
- output
- transition
- class
- 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 - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、マルチメディア情報を表示/再生する情報処理装置において、情報要素間の同期関係を制御する情報同期制御方法、情報伝送装置および情報出力装置に関する。
【0002】
【従来の技術】
ワークステーション、記憶装置、通信装置などの発展に伴い、テキストデータや静止画像ばかりでなく、サウンドシークエンス、オーディオビジュアル等の新しい表現メディア(相互交換されるデータの種類、符号化された形式で記述される情報そのもの)を利用したアプリケーションプログラムが普及しつつある。
【0003】
この表現メディアの多様化により、各々のメディアを組み合わせた使い方、すなわち、マルチメディア(複数種類の表現メディア)を扱う要求が増加し、それとともに、マルチメディア情報を異なるプラットフォーム間で共有するための標準的な情報の交換形式の規定が望まれている。
【0004】
その1つの例が、情報要素(単一の表現メディアによって表される塊、以下、メディアオブジェクトととも記す)間の表示/再生における同期制御方式(時間依存関係の制御方式)の規定である。
【0005】
マルチメディア同期制御の制御方式には、大きく分けて、ビット/パケットレベル、オブジェクト(1つの意味のまとまり単位)レベルの2つの段階が考えられる。前者の例にはCCITT勧告H.221等があり、後者の例にはISO/IEC/DIS10744(HyTime)が挙げられる。
【0006】
HyTime等、従来のオブジェクトレベルの同期制御方式においては、個々のメディアオブジェクトの出現位置/領域が、空間および時間軸上にアドレッシングされている。つまり、表示/再生位置が静的にスケジュールされている。
【0007】
【発明が解決しようとする課題】
マルチメディア情報を表示/再生する際の情報要素間の同期関係を制御する方式のうち、オブジェクトレベルの同期制御方式においては、表示/再生位置を静的にスケジュールする方法が一般的である。
【0008】
しかしながら、このような静的なスケジューリングのみをサポートする制御方式は、ユーザからの対話のタイミングによる同期を制御する能力が貧弱である課題を有している。
【0009】
例えば、いま、ここに、マルチメディア情報表示/再生装置があり、この装置は同期関係を記述したスクリプト(情報要素間の表示/再生制御のシナリオを記述したプログラム)を読み込み、それを実行することが可能であるものとする。そして、そのスクリプトには、ディスプレイ装置の画面上にボタンと動画表示領域を配置し、ユーザが画面上のボタンを押すと、動画の再生が行なわれるというように記述されているものとする。
【0010】
ただし、そのスクリプトは、静的なスケジューリングのみをサポートする同期制御記述方式で記述されている。ここでいう、静的にスケジューリングするとは、”ボタンが押された場合には、動画をそのデータの最初から再生する。”というような記述の仕方のことをいう。
【0011】
従って、この場合、動画の再生途中にボタンを押したとき、動画が再生途中であるか否かにかかわらず、動画の最初から再生が行なわれ、再生をそのまま続けるか、最初から再生し直すかの選択ができない。つまり、ボタンを押したときの動画の表示状態により、再生の仕方を細かく制御することができないという問題点がある。
【0012】
従って、ユーザとの対話管理を含めた、マルチメディアオブジェクトの同期制御を効果的に記述するためには、スクリプトに、現在表示中のメディアオブジェクトの表示の状態に依存した同期制御を記述する能力(動的なスケジューリングの能力)が求められる。
【0013】
さらに、メディアが異なると、その状態の種類が異なるため、すべてのメディアに共通な状態というものを定義することができるとともに、個々のメディアの特性に依存する状態を定義することができる能力を有することが望ましい。
【0014】
例えば、静止画と動画を例に取ると、静止画は時間に依存しないデータ(離散メディア)であるため、それがもつ表示の状態は大きく分けると、”表示中”、または”表示されていない”、という2つの状態のいずれかである。これに対して、動画の場合は、それが時間に依存するデータ(連続メディア)であるため、”表示中”、または”表示されていない”、という2つの状態に区分される他、”表示中”はさらに、”通常の速度での再生”と、”倍速再生”に区分される。
【0015】
本発明は、以上のような問題点に鑑みてなされたものであり、マルチメディア情報の同期制御を行なうに際し、マルチメディアオブジェクトの表示中のマルチメディア情報要素の状態に依存した細かな同期制御を可能とすることを目的としている。
【0016】
【課題を解決するための手段】
請求項1に記載の情報同期制御方法は、複数のメディアからの情報を出力する際の各情報の出力状態の同期関係を制御する情報同期制御法において、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報が出力されるとき、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトに従って、各情報の出力状態の同期関係を制御することを特徴とする。
【0017】
各情報のメディアからの出力状態とその遷移は、基本クラス、基本クラスの下位の導出クラス、または導出クラスの下位の導出クラスにより定義されるようにすることができる。
【0018】
また、基本クラスと導出クラスは、メディアの状態を定義するステートと、状態の遷移を表わすイベントにより定義することができる。
【0019】
請求項4に記載の情報伝送装置は、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報の出力状態とその遷移の定義内容を記述するとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きを記述したスクリプトを作成する第1の作成手段としてのクラス定義スクリプト作成部11と、各情報のそれぞれに対応する各オブジェクトデータのそれぞれを作成する第2の作成手段としてのメディアオブジェクトデータを作成部12と、第1の作成手段と第2の作成手段の出力を合成して伝送する伝送手段としての転送制御部13とを備えることを特徴とする。
【0020】
請求項5に記載の情報出力装置は、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトと、各情報のそれぞれに対応する各オブジェクトデータとが合成された信号を入力信号とし、その入力信号からスクリプトと、各オブジェクトデータとを分離する分離手段としての転送制御部16と、分離手段により分離されたスクリプトを解釈し、その解釈結果に基づいて、分離手段により分離された各オブジェクトデータのそれぞれに対応する各情報の出力状態の同期関係を制御する制御情報を出力する解釈手段としてのスクリプト解釈実行部17と、解釈手段の出力に対応して、分離手段により分離された各オブジェクトデータを処理する処理手段としての表示制御部18とを備えることを特徴とする。
【0021】
本発明の情報同期制御方法においては、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報が出力されるとき、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトに従って、各情報の出力状態の同期関係が制御される。従って、マルチメディアオブジェクトのより細かな同期制御が可能となる。
本発明の情報伝送装置においては、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトの伝送が可能になる。従って、このスクリプトが伝送された装置においては、そのスクリプトに従って、各情報の出力状態の同期が制御される。従って、マルチメディアオブジェクトのより細かな同期制御が可能となる。
本発明の情報出力装置においては、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトに従って、各情報の出力状態の同期が制御される。従って、マルチメディアオブジェクトのより細かな同期制御が可能となる。
【0022】
【実施例】
以下に実施例について説明する。本実施例においては、メディアがクラスとして定義され、クラスにおいて、メディアの状態遷移がイベントとして定義される。クラスは、さらに基本クラスと導出クラスとに区分される。
【0023】
基本クラスのシンタクスは、以下のように定義される。
【0024】
”state”の項には、状態番号と対応する状態名の組を記述する。状態番号は、この”state”の項内で一意な整数である。”event”の項には、”<状態番号(正の整数)>→<状態番号(正の整数)>”で示される<状態番号(正の整数)>→<状態番号(正の整数)>の状態遷移を引き起こすイベントの名前とイベント番号が組にして列挙される。イベント番号は、この”event”の項内で一意な整数である。なお、”[...]*”は、...が1つ以上出現することを表す。なお、後述するように、状態番号”0”として設定された状態は、初期状態とされる。
【0025】
導出クラスのシンタクスは、以下のように定義される。
【0026】
この”クラス名”で識別される導出クラスは、親クラスである”基本クラス名”または”導出クラス名”で識別されるクラスの状態遷移と、それを引き起こすイベントを継承する。この場合、”状態番号”のフォーマットは、”.”で区切られた2つ以上の正の整数列で表わされ、最も右側の整数の左に隣接する整数は、1つ上位の親クラスの状態番号を表わす(後述の例を参照のこと)。すなわち、導出クラスの記述は、親のクラス(基本クラスまたは導出クラス)のある状態を、さらに細分化した状態を定義することになる。
【0027】
例えば、ある基本クラスにおいて、状態番号n(nは正の整数)が定義される場合、その導出クラス(子クラス)において、親クラスの状態番号nに対応する状態をさらに細分化して定義するときは、状態番号をn.m(n、mは正の整数)とする。
【0028】
さらに、その導出クラス(子クラス)の導出クラス(孫クラス)において、子クラスの状態番号n.mに対応する状態をさらに細分化して定義する場合は、状態番号をn.m.k(n、m、kは正の整数)とする。
【0029】
以上のことを、図1を参照してさらに説明する。図1において、1は、基本クラスAにおける状態の集合を表し、1.0は状態番号0の状態を表し、1.1は状態番号1の状態を表し、1.2は状態番号nの状態を表している。また、2は、基本クラスAの導出クラスBにおける、Aの状態番号nの状態1.2を細分化した状態の集合を表し、2.0は状態番号n.0の状態を表し、2.1は状態番号n.1の状態を表し、2.2は状態番号n.mの状態を表している。同様に、3は、導出クラスBの導出クラスCにおける、Bの状態番号n.mの状態2.2を細分化した状態の集合を表し、3.0は状態番号n.m.0の状態を表し、3.1は状態番号n.m.1の状態を表し、3.2は状態番号n.m.kの状態を表している。
【0030】
上述のクラス定義に記述された状態遷移に従うオブジェクトの宣言と、それらの表示制御手続きがスクリプトに記述される。スクリプトのシンタクスは以下のようになる。
script <スクリプト名> {
<オブジェクト定義部>
<イニシャルメッセージパッシング記述部>
<イベントメッセージパッシング記述部>
}
【0031】
オブジェクト定義部は、次のように規定される。
<オブジェクト定義部> =
[<オブジェクト変数> = new <クラス名>(<内容部識別子>);]*
【0032】
オブジェクト定義部は、このスクリプトで記述の対象となるオブジェクトを定義する部分である。オブジェクト変数は、指定されたクラスのインスタンスを特定する識別子となる。
【0033】
内容識別子は、次式で表わされるように、そのオブジェクトの表現メディアそのもののデータを特定する識別子である。
<内容識別子> =
content_identifier = <正の整数>
【0034】
イニシャルメッセージパッシング記述部は、次式で表わされ、そのスクリプトが起動されたとき、一番最初に実行される部分である。
<イニシャルメッセージパッシング記述部> =
<メッセージパッシング記述部>
【0035】
メッセージパッシング記述部は次式で表わされる。
<メッセージパッシング記述部> =
do {[<イベント名> → <オブジェクト変数>;]*}
【0036】
この式により、オブジェクト変数で特定されるオブジェクトに対してイベント名で特定されるイベントが送られる。その結果、対象オブジェクトの状態遷移が起こる。このイベント名は、対象のオブジェクトのクラス定義において定義されていなければならない。
【0037】
イベントメッセージパッシング記述部は次式で表わされる。
<イベントメッセージパッシング記述部> =
[switch (<イベント判定部>) {
[case (<状態判定部>) <メッセージパッシング記述部>]*
}]*
【0038】
イベント転送の検出(後述)が起こったとき、すべてのswitch文のイベント判定部に指定されている条件のテストが行なわれ、それが成立した場合、case文の状態判定部に指定されている条件のテストが行なわれる。テストした条件が成立した場合、メッセージパッシング記述部に記述されているメッセージパッシングが行なわれる。
【0039】
case文の状態判定部はなくてもよく、その場合には、ただちにメッセージパッシングが行なわれる。
【0040】
イベント判定部は次式で表わされる。
<イベント判定部> =
<オブジェクト変数> . <イベント判定メソッド>
【0041】
オブジェクト変数で特定される対象オブジェクトにおいて当該イベントが起こったか否かをテストする。起こっていれば、このイベント判定部が成立することとなる。
【0042】
イベント判定メソッドは次式で表わされる。
<イベント判定メソッド> =
isSelected()、または、getMessage(<イベント名>)
【0043】
isSelected()メソッドは、対象オブジェクトに対して”ユーザの選択”(後述)が起こったか否かをテストするものであり、getMessage()メソッドは、引き数<イベント名>で特定されるイベントが対象オブジェクトにおいて起こったか否かをテストするものである。
【0044】
状態判定部は次式で表わされる。
<状態判定部> =
<オブジェクト変数> . <状態判定メソッド>
[<論理演算子> <オブジェクト変数> . <状態判定メソッド>]*
【0045】
これは、オブジェクト変数で特定される対象オブジェクトにおける状態をテストするものであり、対象オブジェクトが下記の状態判定メソッドの引き数<状態番号>で特定される状態にあるか否かをテストする。
<状態判定メソッド> =
testState(<状態番号>)
【0046】
なお、<論理演算子> はC言語の論理演算子(&&(および),||(または))と同じ意味である。
【0047】
上述のクラス定義の表記構文と、スクリプトの表記構文にもとづいて、具体的なクラス定義とスクリプトの例を送り側で記述し、それらを伝送媒体を介して受け側のマルチメディア情報表示/再生情報処理装置に伝送し、受け側において、送り側で意図したシナリオにもとづいて、マルチメディア情報を同期制御する方法を以下に説明する。
【0048】
最初に、メディア(Media)クラスを定義する。このクラスに属するオブジェクトのとりえる状態として、例えば、次の2つの状態を定義する。
あ)表示待機中(WAIT)
い)表示中(RUN)
【0049】
このオブジェクトが生成されたときの初期状態は”表示待機中(WAIT)”とする。
【0050】
また、イベントとして、次の2つを定義する。
ア)run
イ)stop
【0051】
以上のメディアの定義をまとめると、次のようになる。
【0052】
図2に示すように、このオブジェクトが状態”WAIT”の時に、”run”というメッセージを受けると、このオブジェクトの状態が、”RUN”に遷移する。また、オブジェクトが状態”RUN”の時に、”stop”というメッセージを受けると、このオブジェクトの状態が”WAIT”に遷移する。この状態遷移を表にまとめると、表1に示すようになる。
【0053】
【表1】
【0054】
次に、上述のメディアクラスから導出される連続メディア(Continuous Media:再生状態が時間に依存するメディア)クラスを定義する。この連続メディアクラスは上述のメディアクラスの導出クラスであるから、上記2つの状態”WAIT”と”RUN”を有する。
【0055】
さらに、”RUN”の状態を
あ)通常再生(PLAY)
い)早送り再生(FAST_PLAY)
の2つの状態に分ける。このうち、”通常再生(PLAY)”を初期状態とする(状態番号を0として設定した方が初期状態とされる)。
【0056】
このようなContinuousMediaクラスのクラス定義は次のようになる。
class ContinuousMedia : Media {
state:
1.0: PLAY;
1.1: FAST_PLAY;
event:
1.0:playFast: 1.0→1.1;
1.1:playNormal: 1.1→1.0;
}
【0057】
ここで、”:Media”は、”ContinuousMedia”クラスが導出される親クラスを示す。また、状態番号が”n.m(n,mは正の整数)”となっているのは、状態”n.m: ...”が、親クラスの状態”n: ...”に含まれることを意味する。すなわち、状態”1.0:PLAY”と”1.1:FAST_PLAY”は、ともに親クラス”Media”の状態”1:RUN”の中に含まれる。
【0058】
ただし、この場合、状態”1.0:PLAY”が初期状態(状態番号が0となっているため)となる。つまり、状態”WAIT”のときにイベント”run”を受け取ると、状態”PLAY”に遷移する。また、状態”PLAY”または”FAST_PLAY”のときにイベント”stop”を受け取ると、状態”WAIT”に遷移する。このように、子のクラス(下位のクラス)を定義する場合に、親のクラス(上位のクラス)に定義されている状態遷移を継承させることができる。
【0059】
また、以上のContinuousMediaクラスの状態遷移を図と表に表わすと、図3と表2に示すようになる。
【0060】
【表2】
【0061】
次に、上述の各クラス(MediaとContinuousMedia)を用いて、所定のオブジェクトの表示状態を制御するために、例えば、下記のようなスクリプト(スクリプト名”sample”)を定義する。
【0062】
即ち、この実施例においては、オブジェクトaがクラスMediaとして規定され、オブジェクトbとcがクラスContinuousMediaとして規定される。そして、それぞれはID(content_identifier)1,2または3として識別されるようになされている。
【0063】
do {run→a;}
は、オブジェクトaにイベントrunを転送することを意味している。
は、aというオブジェクトがrunというメッセージを受けたとき、cというオブジェクトにrunというイベントを転送することを意味している。
【0064】
は、オブジェクトaが選択されたとき、各caseの条件が充足されるか否かを順次判定するものである。このうち、例えば
case ((b.testState(0)) && (c.testState(0))) do {run→b;}
は、オブジェクトbの状態が0(WAIT)であり、かつ、オブジェクトcの状態も0(WAIT)であるとき、オブジェクトbに対して、runのイベントを転送することを意味している。
【0065】
図4に、上述のクラス定義とスクリプトを交換するマルチメディア情報表示/再生装置(情報伝送装置または情報出力装置)の構成例を示す。この実施例においては、図中左側が、クラス定義とスクリプトの作成を行う送り側31とされ、図中右側が、表示制御を行なう受け側32とされている。
【0066】
上述したクラス定義部のファイルとスクリプトのファイルが、送り側31のクラス定義/スクリプト作成部11において作成される。さらに、スクリプトにおけるcontent_identifier1,2,3に対応する表現メディアのオブジェクトが、メディアオブジェクトデータ作成部12において作成される。例えば、content_identifier1のデータとして、符号化方式Aで符号化された静止画のデータが含まれているファイルが作成され、content_identifier2のデータとして、符号化方式Bで符号化された音声のデータが含まれているファイルが作成され、さらに、content_identifier3のデータとして、符号化方式Cで符号化された動画のデータが含まれているファイルが作成される。
【0067】
この例においては、スクリプトから判るように、content_identifier1に対応するオブジェクトはMediaクラスのオブジェクトであり、content_identifier2,3に対応するオブジェクトはContinuousMediaクラスのオブジェクトであり、符号化方式にそれぞれA,B,Cを選んでいるが、他の符号化方式を用いることができるのは勿論である。すなわち、スクリプトそのものは、表現メディアの符号化方式に依存しないため、受け側32の能力に合わせた符号化方式を選択することができる。
【0068】
それぞれの表現メディアオブジェクトファイルのデータ構造には、content_identifierを記述するレコード、符号化方式を記述するレコード、表示属性を記述するレコード、および符号化されたデータが格納されるレコードがある。
【0069】
クラス定義スクリプト作成部11により作成したクラス定義部とスクリプトのファイル、並びに、メディアオブジェクトデータ作成部12により作成されたメディアオブジェクトのファイルは、転送制御部13に入力され、合成される。転送制御部13より出力されたデータは、通信制御装置14において所定の方式で変調され、伝送媒体10に伝送される。
【0070】
伝送媒体10と転送制御プロトコルには、例えば、EthernetとTCP/IPを用いることができる。勿論、その他の組合せを用いることも可能である。
【0071】
受け側32においては、伝送媒体10を介して伝送されてきたデータを通信制御装置15が受信、復調し、これを転送制御部16に供給する。転送制御部16は、受け取ったファイルを分離し、クラス定義部とスクリプトのファイルをスクリプト解釈/実行部17に供給し、残りの表現メディアオブジェクトのファイルを表示制御部18に供給する。
【0072】
スクリプト解釈/実行部17においてクラス定義またはスクリプトが解釈される以前に、送り側31と受け側32の間で(具体的には送り側31のクラス定義/スクリプト作成部11と、受け側32のスクリプト解釈/実行部17の間で)、各クラスの状態の表示上の意味について合意がなされている必要がある。例えば、この実施例では、Mediaクラスの状態WAITとRUNや、CoutinuousMediaクラスの状態PLAYとFAST_PLAYの違いについて合意がなされている必要がある。
【0073】
本実施例においては、状態を識別したり、状態間の遷移を定義することは可能であるが、個々の状態の表示上の意味については定義されていない。従って、スクリプトの交換(伝送)に先立ち、予め各クラスの状態の意味について合意を行なうという過程が必要となるのである。
【0074】
以上のような合意が予めなされている状態で、最初にスクリプト解釈/実行部17において、クラス定義部の解釈が行なわれ、次にスクリプトの<オブジェクト定義部>が解釈され、オブジェクトa,b,cの状態情報を記憶する領域が確保される。状態情報を記憶する領域には、オブジェクトa,b,cの各々の状態番号が記憶される。クラス定義から、オブジェクトaは1桁の状態番号を持ち、オブジェクトb,cは2桁の状態番号を持つことが判るので、表3に示すように、各々のオブジェクトに対して2つの整数のフィールド1,2を持つレコードが定義される。
【0075】
【表3】
【0076】
スクリプト解釈/実行部17では、すべてのオブジェクトを初期状態にセットする。すなわちオブジェクトa,b,cのいずれも状態”WAIT”になり、すべてのフィールドは”0”で初期化される(表4の状態no.1参照)。
【0077】
【表4】
【0078】
このとき、スクリプト解釈/実行部17において、スクリプトの<イニシャルメッセージパッシング記述部>が解釈され、”run”という名前のイベントがオブジェクトaに送られる。
【0079】
オブジェクトaは、上述したように、次のような文により、Mediaクラスのオブジェクトと宣言されている。
a = new Media(content_identifier = 1);
このため、Mediaクラスの定義により、イベント”run”を受け取ると、状態が0から1、すなわち状態”WAIT”から状態”RUN”に遷移することになる。従って、オブジェクトaの状態情報を記憶する領域の第1フィールドには状態番号”1”が記憶される(表4における状態no.2参照)。
【0080】
このときまた、スクリプト解釈/実行部17は、表示制御部18に対して、オブジェクトaの内容部を表示するよう要求する。これにより、表示制御部18は、content_identifier=1に対応する表現メディアオブジェクトのデータ(符号化方式Aにて符号化されている)を、内蔵する復号器(符号化方式Aに対応する、例えばMR(modified read)復号器)により復号化し、内蔵するディスプレイに表示させる。
【0081】
このように、あるイベントがあるオブジェクトに送られ、その対象オブジェクトの状態遷移が起こる事象を、”イベントの転送が検出される”という。スクリプト解釈/実行部17は、表示制御部18によりイベント転送が検出された場合、スクリプトの<イベントメッセージパッシング記述部>の<イベント判定部>を1つずつテストする。
【0082】
いまの場合、最初の文
switch (a.getMessage(run)) {
do {run→c;}
}
の<イベント判定部>に該当するイベントが起こったことになるため、do以降の<メッセージパッシング記述部>
do {run→c;}
が実行される。すなわち、”run”という名前のイベントがオブジェクトcに送られる。
【0083】
オブジェクトcは文
c = new ContinuousMedia(content_identifier = 3);
により、ContinuousMediaクラスのオブジェクトと宣言されているが、ContinuousMediaクラスの定義には、イベント”run”を受け取った場合の状態遷移の定義がなされていない。しかしながら、このContinuousMediaクラスの親クラスがMediaクラスであるので、Mediaクラスに定義されているイベント”run”を受け取った場合の状態遷移定義に従い、オブジェクトcの状態が状態”RUN”、すなわち状態”PLAY”になる。なぜなら、ContinuousMediaクラスの定義により、親クラスの状態”RUN”の初期状態が状態”PLAY”になると宣言されているためである。
【0084】
そして、オブジェクトcの状態情報を記憶する領域の第1フィールドに状態番号1が、第2フィールドに状態番号0が記憶される。すなわち、状態番号”1.0”が記憶されることになる(表4の状態no.3参照)。このとき、スクリプト解釈/実行部17は、表示制御部18に対して、オブジェクトcの内容部、すなわち、content_identifier=3に対応する表現メディアオブジェクトを表示するよう要求する。表示制御部18は、この要求に対応して、符号化方式Cの復号器により動画データを復号し、ディスプレイに表示させる。
【0085】
ここで、オブジェクトcの動画の内容が再生されている途中で、ユーザがディスプレイ上で、例えばマウス等の表示制御部18の管理下の指示装置により、オブジェクトaを指示したとすると、オブジェクトスクリプト解釈/実行部17にイベント転送の検出が通知(この場合のイベントは表示状態の遷移を起こさない特別なものである。つまり、オブジェクトaの表示領域内においてユーザの指示が起こったという事象のみが通知)され、スクリプトの<イベントメッセージパッシング記述部>の<イベント判定部>がテストされる。
【0086】
このとき、このイベントが、
switch (a.isSelected()) {
}
に該当するイベントであることが判るため、このswitch文の中の各case文の<状態判定部>がテストされる。
【0087】
いまの場合、
case ((b.testState(0)) && (c.testState(1.0))) do {playFast→c;}
に該当するので(オブジェクトbが状態”WAIT”であり、かつ、オブジェクトcが状態”PLAY”であるので)、
<メッセージパッシング記述部>
do {playFast→c;}
が実行され、”playFast”という名前のイベントがオブジェクトcに送られる。
【0088】
これにより、オブジェクトcは状態が、”PLAY”から”FAST_PLAY”に遷移する。従って、オブジェクトcの状態情報を記憶する領域に、状態番号”1.1”が記憶される(表4の状態no.4参照)。またこのとき、オブジェクトcの動画の再生速度を早くする指令が、スクリプト解釈/実行部17から表示制御部18に通知され、表示制御部18において、オブジェクトcの動画が高速再生される。
【0089】
この後、オブジェクトcの再生が終了する(データの最後まで再生してしまう)と、オブジェクトcに対して”stop”というイベントが送られ、オブジェクトcの状態が状態”WAIT”に遷移し、状態番号が”0”に設定される(表4の状態no.5参照)。
【0090】
この”stop”イベントの転送は、スクリプトそのものには記述されていない特別なもので、時間に依存する連続メディアの再生が終了したときに限り、表示制御部18が”stop”イベントの転送が起こったとものとみなし、スクリプト解釈/実行部17に対してイベント転送の検出を通知する。
【0091】
このとき、スクリプトの<イベントメッセージパッシング記述部>の<イベント判定部>がテストされ、このイベントが、
switch (c.getMessage(stop)) {
}
に該当するイベントであることが判るため、このswitch文の中の各case文の<状態判定部>がテストされる。
【0092】
いまの場合、オブジェクトaが状態”PLAY”であり、かつ、オブジェクトbが状態”WAIT”であるから、
case ((a.testState(1) && b.testState(0)) do {stop→a;}
の<メッセージパッシング記述部>
do {stop→a;}
が実行され、オブジェクトaの表示がディスプレイから消えて、状態が状態”WAIT”に遷移する(表4の状態no.6参照)。
【0093】
上述の表4の状態no.3において、オブジェクトcの再生が終了してしまった後に、ユーザがディスプレイ上でオブジェクトaを指示した場合の表示の流れは、表5に示すようになる。
【0094】
【表5】
【0095】
オブジェクトcの再生が終了した場合、オブジェクトcに対して”stop”というイベントが送られたものとみなされ、オブジェクトcの状態が”WAIT”に遷移し、状態番号が”0”に設定される(表5の状態no.4参照)。スクリプト解釈/実行部17にイベント転送の検出が通知され、オブジェクトaの内容がディスプレイから消えて、状態が”WAIT”に遷移する(表5の状態no.5参照)。
【0096】
従って、以後は、ユーザがディスプレイ上でマウス等の指示装置により、オブジェクトaを指示することができないため、オブジェクトの状態遷移の表4の場合と異なる状態の流れとなる。
【0097】
以上の処理をフローチャートに表すと、図5および図6に示すようになる。即ち、図5に示すように、最初にステップS1において、クラス定義部の解釈を行い、次にステップS2において、スクリプトの解釈/実行を行う。
【0098】
このステップS2におけるスクリプトの解釈/実行の処理の詳細は、図6に示されている。
【0099】
即ち、最初にステップS11において、オブジェクト定義部の解釈が実行される。次にステップS12に進み、ステップS11におけるオブジェクト定義部の解釈に対応して、オブジェクト状態領域の確保が実行される。さらにステップS13においては、ステップS12において確保したオブジェクト状態記憶領域が初期化される。
【0100】
次にステップS14において、イニシャルメッセージパッシング記述部が実行され、そしてステップS15において、オブジェクト状態が更新される。
【0101】
ステップS16においては、event_check_counterが1にセットされる。そして、次にステップS17に進み、event_check_counter番目(いまの場合、この値は、ステップS16において1に設定されている)のイベント判定部のテストが実行される。テストの結果が正しいとき、ステップS18に進み、state_check_counterに1が設定される。
【0102】
次にステップS19に進み、state_check_counter番目(いまの場合、この値は、ステップS18において1に設定されている)の状態判定部のテストが実行される。このテストの結果が正しいとき、ステップS20に進み、state_check_counter番目のメッセージパッシング記述部が実行される。
【0103】
ステップS20における処理の後、ステップS21に進み、state_check_counterの値が1だけインクリメントされる。ステップS19において、state_check_counter番目の状態判定部のテストの結果が誤りであると判定された場合においては、ステップS20の処理はスキップされ(そのメッセージパッシング記述部は実行されず)、ステップS21の処理が実行される。
【0104】
次にステップS22に進み、state_check_counterの値が1つのswitch文における状態判定部の総数と等しいか否かが判定される。ステップS22における判定がNOである場合においては、ステップS19に戻り、それ以降の処理が繰り返される。ステップS22における判定がYESである場合においては、ステップS23に進み、event_check_counterを1だけインクリメントする。ステップS17において、event_check_counter番目のイベント判定部のテストの結果が誤りであると判定された場合においては、ステップS18乃至S22における処理がスキップされ、ステップS23の処理が実行される。
【0105】
ステップS23の次にステップS24に進み、ステップS23でインクリメントしたevent_check_counterの値がイベント判定部の総数と等しいか否かが判定される。ステップS24の判定がNOである場合においては、ステップS17に戻り、それ以降の処理が繰り返し実行される。ステップS24の判定がYESである場合においては、ステップS25に進み、イベント転送の検出待ちの状態となる。そして、イベント転送が検出されたとき、ステップS25からステップS15に戻り、それ以降の処理が繰り返し実行される。
【0106】
以上においては、送り側31から受け側32に対して、伝送媒体10を介してクラス定義とスクリプトを伝送するようにしたが、例えば図7に示すように、蓄積媒体20を介して送り側31から受け側32に対して、これらのデータを伝送することが可能である。この場合においては、図4の実施例における通信制御装置14,15が、蓄積媒体制御装置21,22に変更される。蓄積媒体制御装置21は、転送制御部13より供給されるデータを蓄積媒体20に記録し、蓄積媒体制御装置22は、蓄積媒体20に記録されたデータを再生し、転送制御部16に出力する。
【0107】
以上においては、クラス定義/スクリプトの交換に先立ち、予め各クラスの状態の表示上の意味について、送り側と受け側の間で、合意がなされていなければならないことを述べたが、これは、例えば、標準化機関等において、クラス定義の登録手続きを規定し、クラス名により一意に参照可能なクラス定義と、そこで記述されている状態の表示上の意味を記述したドキュメントを登録することにより実現することができる。
【0108】
このようにすれば、クラス定義の部分を広範囲の異なるシステムにおいて共有することができる。また、スクリプトの汎用性(さまざまなベンダーからのシステム/プラットフォーム上でのスクリプトの互換性)が保証されることとなる。
【0109】
【発明の効果】
以上の如く、本発明の情報同期制御方法によれば、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報が出力されるとき、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトに従って、各情報の出力状態の同期関係が制御されるようにしたので、マルチメディアオブジェクトのより細かな同期制御が可能となる。
本発明の情報伝送装置によれば、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトの伝送が可能になるようにした。従って、このスクリプトが伝送された装置においては、そのスクリプトに従って、各情報の出力状態の同期が制御される。これにより、マルチメディアオブジェクトのより細かな同期制御が可能となる。
本発明の情報出力装置によれば、各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、各情報が出力される場合、各情報の出力状態とその遷移の定義内容が記述されるとともに、各情報のそれぞれについての定義内容に従った状態遷移の手続きであって、各情報の出力状態の同期関係を規定する所定のシナリオに基づく手続きが記述されたスクリプトに従って、各情報の出力状態の同期関係が制御されるようにしたので、マルチメディアオブジェクトのより細かな同期制御が可能となる。
【図面の簡単な説明】
【図1】クラスの階層的定義による状態遷移の継承を説明する図である。
【図2】メディアクラスの状態遷移を説明する図である。
【図3】連続メディアクラスの状態遷移を説明する図である。
【図4】本発明の情報伝送装置および情報出力装置の一実施例の構成を示すブロック図である。
【図5】図4の実施例の動作を説明するフローチャートである。
【図6】図5のステップS2のより詳細な処理を説明するフローチャートである。
【図7】本発明の情報伝送装置および情報出力装置の他の実施例の構成を示すブロック図である。
【符号の説明】
11 クラス定義スクリプト作成部
12 メディアオブジェクトデータ作成部
13 転送制御部
14,15 通信制御装置
16 転送制御部
17 スクリプト解釈/実行部
18 表示制御部
20 蓄積媒体
21,22 蓄積媒体制御装置[0001]
[Industrial applications]
The present invention relates to an information synchronization control method for controlling a synchronization relationship between information elements, an information transmission device, and an information output device in an information processing device for displaying / reproducing multimedia information.
[0002]
[Prior art]
With the development of workstations, storage devices, communication devices, etc., not only text data and still images, but also new expression media such as sound sequences, audiovisuals, etc. (types of data exchanged, described in encoded form) Application programs that use the information itself) are becoming widespread.
[0003]
Due to the diversification of expression media, the usage of combining each media, that is, the demand for handling multimedia (multiple types of expression media) is increasing, and the standard for sharing multimedia information between different platforms is also increasing. It is desired to define a standard information exchange format.
[0004]
One example is a definition of a synchronization control method (control method of time dependency) in display / reproduction between information elements (lumps represented by a single expression medium, hereinafter also referred to as a media object).
[0005]
The control method of the multimedia synchronization control can be roughly divided into two stages, that is, a bit / packet level and an object (unit of one meaning). The former example includes CCITT Recommendation H. 221 and the like, and an example of the latter is ISO / IEC / DIS 10744 (HyTime).
[0006]
In a conventional object-level synchronization control method such as HyTime, appearance positions / areas of individual media objects are addressed on a space and a time axis. That is, the display / reproduction position is statically scheduled.
[0007]
[Problems to be solved by the invention]
Of the methods of controlling the synchronization relationship between information elements when displaying / reproducing multimedia information, a method of statically scheduling a display / reproduction position is generally used in an object-level synchronization control method.
[0008]
However, such a control method that supports only static scheduling has a problem that the ability to control synchronization based on the timing of a dialogue from a user is poor.
[0009]
For example, here, there is a multimedia information display / playback apparatus, which reads a script describing a synchronous relationship (a program describing a display / playback control scenario between information elements) and executes it. Is possible. Then, it is assumed that the script describes such that a button and a moving image display area are arranged on the screen of the display device, and that the moving image is reproduced when the user presses the button on the screen.
[0010]
However, the script is described in a synchronous control description method that supports only static scheduling. Here, the static scheduling means a description method such as "When a button is pressed, a moving image is reproduced from the beginning of the data."
[0011]
Therefore, in this case, when the button is pressed during the reproduction of the moving image, the reproduction is performed from the beginning of the moving image regardless of whether or not the moving image is being reproduced. Cannot be selected. That is, there is a problem that the reproduction method cannot be finely controlled depending on the display state of the moving image when the button is pressed.
[0012]
Therefore, in order to effectively describe the synchronization control of multimedia objects, including the interaction management with the user, the ability to describe the synchronization control depending on the display state of the currently displayed media object in the script ( Dynamic scheduling capability).
[0013]
Furthermore, since different media have different types of states, it is possible to define a state that is common to all media and has the ability to define a state that depends on the characteristics of individual media. It is desirable.
[0014]
For example, in the case of a still image and a moving image, since a still image is data (discrete media) that does not depend on time, the display state of the still image can be roughly classified into “displaying” or “not displayed”. "In one of the two states. On the other hand, in the case of a moving image, since it is time-dependent data (continuous media), it is classified into two states, “displaying” and “not displayed”. "Medium" is further classified into "reproduction at normal speed" and "double speed reproduction".
[0015]
The present invention has been made in view of the above-described problems, and when performing the synchronous control of multimedia information, performs fine synchronous control depending on the state of the multimedia information element during the display of the multimedia object. It is intended to be possible.
[0016]
[Means for Solving the Problems]
The information synchronization control method according to
[0017]
Output status of each information from mediaTosoThe transition of the base class, the derived class below the base class,Is derivedDefined by the derived class below the outgoing classCan be done.
[0018]
In addition, the base class and the derived class can be defined by a state that defines the state of the media and an event that indicates a transition of the state.
[0019]
The information transmission device according to claim 4,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. The state transition procedure is defined hierarchically so as to inherit the transition of each information, and describes the output state of each information and the definition contents of the transition, and is a state transition procedure according to the definition contents of each information. A procedure based on a predetermined scenario that specifies the synchronization relation of the output state ofA class definition
[0020]
The information output device according to claim 5,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. Is defined hierarchically so as to inherit the transition of the information, the output state of each information and the definition content of the transition are described, and a state transition procedure according to the definition content of each information, A signal in which a script describing a procedure based on a predetermined scenario that defines a synchronous relationship between information output states and each object data corresponding to each piece of information are combined as an input signal.Input signalRasuCrypto and,eachA
[0021]
In the information synchronization control method of the present invention,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. Is defined hierarchically to inherit the transition of each information, when each information is output, the output state of each information and the definition contents of the transition are described, and the state according to the definition contents of each information According to a script describing a procedure of transition, which is a procedure based on a predetermined scenario that defines a synchronous relationship between output states of each information., Synchronization of output status of each informationRelationshipIs controlled. Therefore, finer synchronization control of the multimedia object is possible.
Information transmission of the present inventionEquipmentIn the meantime,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. Is defined hierarchically so as to inherit the transition of the information, the output state of each information and the definition content of the transition are described, and a state transition procedure according to the definition content of each information, It is possible to transmit a script in which a procedure based on a predetermined scenario that defines a synchronous relationship between information output states is described. Therefore, in the device to which this script has been transmitted, according to the script,The synchronization of the output state of each information is controlled. Therefore, finer synchronization control of the multimedia object is possible.
In the information output device of the present invention, the output state of each piece of information from the medium is defined hierarchically so that the predetermined output state of the upper layer is further subdivided into output states. Are hierarchically defined so as to inherit the transition of the output state of the upper layer, the output state of each information and the definition of the transition are described, and the definition of each information is followed. The synchronization of the output state of each piece of information is controlled in accordance with a script describing a procedure for a state transition, which is based on a predetermined scenario that defines the synchronization relationship between the output states of each piece of information. Therefore, finer synchronization control of the multimedia object is possible.
[0022]
【Example】
Examples will be described below. In this embodiment, the media is defined as a class, and in the class, the state transition of the media is defined as an event. Classes are further divided into base classes and derived classes.
[0023]
The syntax of the base class is defined as follows.
[0024]
The "state" field describes a set of a state number and a corresponding state name. The state number is a unique integer within the term “state”. In the item of “event”, <state number (positive integer)> → <state number (positive integer)> ”<state number (positive integer)> → <state number (positive integer) The name and event number of the event that causes the state transition of> are listed as a pair. The event number is a unique integer within this “event” term. Note that "[...] *" indicates. . . Represents one or more occurrences. Note that, as described later, the state set as the state number “0” is an initial state.
[0025]
The derived class syntax is defined as follows:
[0026]
The derived class identified by this “class name” inherits the state transition of the class identified by the parent class “base class name” or “derived class name” and the event that causes it. In this case, the format of the “state number” is represented by a sequence of two or more positive integers separated by “.”, And the integer adjacent to the left of the rightmost integer is the parent class of the next higher parent class. Represents the state number (see example below). That is, the description of the derived class defines a state in which a state of a parent class (base class or derived class) is further subdivided.
[0027]
For example, when a state number n (n is a positive integer) is defined in a certain base class, when a state corresponding to the state number n of the parent class is further subdivided and defined in the derived class (child class) Sets the state number to n. m (n and m are positive integers).
[0028]
Further, in the derived class (grandchild class) of the derived class (child class), the state number n. When the state corresponding to m is further subdivided and defined, the state number is set to n. m. k (n, m, and k are positive integers).
[0029]
The above is further described with reference to FIG. In FIG. 1, 1 represents a set of states in the basic class A, 1.0 represents a state of a
[0030]
The declaration of the objects according to the state transition described in the above class definition and the display control procedure thereof are described in the script. The syntax of the script is as followsBecome.
script <script name> {
<Object definition section>
<Initial message passing description section>
<Event message passing description section>
}
[0031]
The object definition part is defined as follows.
<Object definition part> =
[<Object variable> = new <class name> (<content part identifier>);] *
[0032]
The object definition section defines an object to be described in this script. The object variable is an identifier for specifying an instance of the specified class.
[0033]
The content identifier is an identifier that specifies the data of the expression media of the object itself, as expressed by the following equation.
<Content identifier> =
content_identifier = <positive integer>
[0034]
The initial message passing description part is expressed by the following equation, and is the part that is executed first when the script is started.
<Initial message passing description part> =
<Message passing description section>
[0035]
The message passing description part is expressed by the following equation.
<Message passing description part> =
do {[<event name> → <object variable>;] *}
[0036]
According to this expression, an event specified by the event name is sent to the object specified by the object variable. As a result, a state transition of the target object occurs. This event name must be defined in the class definition of the target object.
[0037]
The event message passing description is expressed by the following equation.
<Event message passing description section> =
[Switch (<event judging unit>) {
[Case (<state determination unit>) <message passing description unit>] *
}] *
[0038]
When an event transfer is detected (to be described later), a test is performed on the conditions specified in the event determination units of all the switch statements. If the test is satisfied, the conditions specified in the state determination unit of the case statement are determined. Test is performed. If the tested condition is satisfied, the message passing described in the message passing description section is performed.
[0039]
The state determination unit of the case statement may not be provided, and in that case, message passing is performed immediately.
[0040]
The event determination unit is represented by the following equation.
<Event judgment part> =
<Object variable>. <Event judgment method>
[0041]
Test whether the event has occurred in the target object specified by the object variable. If so, this event determination unit is established.
[0042]
The event determination method is represented by the following equation.
<Event judgment method> =
isSelected () or getMessage (<event name>)
[0043]
The isSelected () method tests whether or not “user selection” (described later) has occurred for the target object. The getMessage () method targets the event specified by the argument <event name>. Tests whether something happened in the object.
[0044]
The state determination unit is represented by the following equation.
<State judgment unit> =
<Object variable>. <Status judgment method>
[<Logical operator> <object variable>. <Status judgment method>] *
[0045]
This tests the state of the target object specified by the object variable, and tests whether the target object is in the state specified by the argument <state number> of the following state determination method.
<Status judgment method> =
testState (<state number>)
[0046]
Note that <logical operator> has the same meaning as the logical operators in C language (&& (and), || (or)).
[0047]
Based on the notation syntax of the class definition and the notation syntax of the script, specific examples of the class definition and the script are described on the transmission side, and the multimedia information display / playback information on the reception side is transmitted via a transmission medium. A method of transmitting multimedia data to a processing device and performing synchronous control of multimedia information on the receiving side based on a scenario intended on the transmitting side will be described below.
[0048]
First, a Media class is defined. For example, the following two states are defined as possible states of an object belonging to this class.
A) Waiting for display (WAIT)
I) Displaying (RUN)
[0049]
The initial state when this object is generated is "waiting for display (WAIT)".
[0050]
Also, the following two events are defined.
A) run
B) stop
[0051]
The above media definitions can be summarized as follows.
[0052]
As shown in FIG. 2, when a message "run" is received when the object is in the state "WAIT", the state of the object transits to "RUN". Further, when a message “stop” is received when the object is in the state “RUN”, the state of the object transits to “WAIT”. Table 1 summarizes the state transitions.
[0053]
[Table 1]
[0054]
Next, a continuous media (continuous media: media whose playback state depends on time) derived from the above-described media class is defined. Since this continuous media class is a derived class of the above-described media class, it has the two states “WAIT” and “RUN”.
[0055]
In addition, the status of "RUN"
A) Normal playback (PLAY)
I) Fast forward playback (FAST_PLAY)
Into two states. Of these, "normal reproduction (PLAY)" is set as the initial state (the state where the state number is set to 0 is the initial state).
[0056]
The class definition of such a ContinuousMedia class is as follows.
class ContinuousMedia: Media {
state:
1.0: PLAY;
1.1: FAST_PLAY;
event:
1.0: playFast: 1.0 → 1.1;
1.1: playNormal: 1.1 → 1.0;
}
[0057]
Here, “: Media” indicates a parent class from which the “ContinuousMedia” class is derived. Also, the state number "nm (n, m is a positive integer)" means that the state "nm: ..." is replaced by the parent class state "n: ...". It is meant to be included. That is, the states “1.0: PLAY” and “1.1: FAST_PLAY” are both included in the state “1: RUN” of the parent class “Media”.
[0058]
However, in this case, the state “1.0: PLAY” is the initial state (because the state number is 0). That is, when the event “run” is received in the state “WAIT”, the state transits to the state “PLAY”. When the event “stop” is received in the state “PLAY” or “FAST_PLAY”, the state transits to the state “WAIT”. As described above, when a child class (lower class) is defined, a state transition defined in a parent class (higher class) can be inherited.
[0059]
FIG. 3 and Table 2 show the state transition of the ContinuousMedia class in a diagram and a table.
[0060]
[Table 2]
[0061]
Next, for example, the following script (script name “sample”) is defined in order to control the display state of a predetermined object using the above-described classes (Media and ContinuousMedia).
[0062]
That is, in this embodiment, the object a is defined as the class Media, and the objects b and c are defined as the class ContinuousMedia. Each is identified as an ID (content_identifier) 1, 2, or 3.
[0063]
do {run → a ;}
Means that the event run is transferred to the object a.
Means that when the object a receives the message run, an event run is transferred to the object c.
[0064]
Is to sequentially determine whether or not the condition of each case is satisfied when the object a is selected. Of these, for example
case ((b. testState (0)) && (c. testState (0))) do {run → b;}
Indicates that when the state of the object b is 0 (WAIT) and the state of the object c is also 0 (WAIT), a run event is transferred to the object b.
[0065]
FIG. 4 shows a configuration example of a multimedia information display / reproduction device (information transmission device or information output device) that exchanges the above-described class definition and script. In this embodiment, the left side in the figure is a sending
[0066]
The class definition file and the script file described above are created in the class definition /
[0067]
In this example, as can be seen from the script, the object corresponding to content_identifier1 is an object of the Media class, the object corresponding to content_identifier2 and 3 is an object of the ContinuousMedia class, and A, B, and C are respectively used as the encoding methods. Although it has been selected, it goes without saying that other encoding methods can be used. That is, since the script itself does not depend on the encoding method of the expression media, it is possible to select an encoding method according to the capability of the receiving
[0068]
The data structure of each expression media object file includes a record that describes content_identifier, a record that describes an encoding method, a record that describes a display attribute, and a record that stores encoded data.
[0069]
The class definition part and script file created by the class definition
[0070]
As the transmission medium 10 and the transfer control protocol, for example, Ethernet and TCP / IP can be used. Of course, other combinations can be used.
[0071]
On the receiving
[0072]
Before the class definition or the script is interpreted by the script interpreting / executing
[0073]
In the present embodiment, it is possible to identify states and to define transitions between states, but the display meaning of each state is not defined. Therefore, prior to the exchange (transmission) of the script, a process of agreeing in advance on the meaning of the state of each class is required.
[0074]
In the state where the above agreement has been made in advance, first, the script interpreting / executing
[0075]
[Table 3]
[0076]
The script interpreting / executing
[0077]
[Table 4]
[0078]
At this time, the script interpreting / executing
[0079]
As described above, the object a is declared as an object of the Media class by the following statement.
a = new Media (content_identifier = 1);
Therefore, according to the definition of the Media class, when the event “run” is received, the state changes from 0 to 1, that is, from the state “WAIT” to the state “RUN”. Therefore, the state number “1” is stored in the first field of the area for storing the state information of the object a (see state No. 2 in Table 4).
[0080]
At this time, the script interpreting / executing
[0081]
In this manner, an event in which a certain event is sent to an object and the state transition of the target object occurs is referred to as "event transfer is detected". When an event transfer is detected by the
[0082]
In this case, the first sentence
switch (a. getMessage (run)) {
do {run → c;}
}
Since the event corresponding to the <event determination unit> has occurred, the <message passing description unit> after do
do {run → c;}
Is executed. That is, an event named “run” is sent to the object c.
[0083]
Object c is a sentence
c = newContinuousMedia (content_identifier = 3);
Is declared as an object of the ContinuousMedia class, but the definition of the ContinuousMedia class does not define the state transition when the event “run” is received. However, since the parent class of the ContinuousMedia class is the Media class, the state of the object c is the state "RUN", that is, the state "PLAY" according to the state transition definition when the event "run" defined in the Media class is received. "become. This is because the definition of the ContinuousMedia class declares that the initial state of the state “RUN” of the parent class becomes the state “PLAY”.
[0084]
Then, the
[0085]
Here, if it is assumed that the user designates the object a on the display by a pointing device under the control of the
[0086]
At this time, this event
switch (a. isSelected ()) {
}
Is determined, the <state determination unit> of each case statement in the switch statement is tested.
[0087]
In this case,
case ((b. testState (0)) && (c. testState (1.0))) do {playFast → c;}
(Since the object b is in the state “WAIT” and the object c is in the state “PLAY”),
<Message passing description section>
do {playFast → c;}
Is executed, and an event named “playFast” is sent to the object c.
[0088]
As a result, the state of the object c changes from “PLAY” to “FAST_PLAY”. Therefore, the state number “1.1” is stored in the area for storing the state information of the object c (see state No. 4 in Table 4). At this time, the script interpreting / executing
[0089]
Thereafter, when the reproduction of the object c is completed (the data is reproduced to the end of the data), an event of “stop” is sent to the object c, and the state of the object c transits to the state “WAIT”. The number is set to "0" (see state no. 5 in Table 4).
[0090]
The transfer of the “stop” event is a special one not described in the script itself, and the
[0091]
At this time, the <event determination section> of the <event message passing description section> of the script is tested, and this event is
switch (c.getMessage (stop))
}
Is determined, the <state determination unit> of each case statement in the switch statement is tested.
[0092]
In this case, since the object a is in the state “PLAY” and the object b is in the state “WAIT”,
case ((a. testState (1) && b. testState (0)) do {stop → a;}
<Message passing description part>
do {stop → a;}
Is executed, the display of the object a disappears from the display, and the state transits to the state “WAIT” (see state no. 6 in Table 4).
[0093]
The state no. In Table 3, after the reproduction of the object c is completed, the display flow when the user designates the object a on the display is as shown in Table 5.
[0094]
[Table 5]
[0095]
When the reproduction of the object c is completed, it is considered that the event “stop” has been sent to the object c, the state of the object c transits to “WAIT”, and the state number is set to “0”. (See state no. 4 in Table 5). The script interpreting / executing
[0096]
Therefore, thereafter, since the user cannot specify the object a with the pointing device such as the mouse on the display, the state flow is different from that in Table 4 of the state transition of the object.
[0097]
FIG. 5 and FIG. 6 show the above processing in a flowchart. That is, as shown in FIG. 5, first, in step S1, the class definition part is interpreted, and then in step S2, the script is interpreted / executed.
[0098]
Details of the script interpretation / execution process in step S2 are shown in FIG.
[0099]
That is, first, in step S11, the interpretation of the object definition unit is executed. Next, the process proceeds to step S12, in which an object state area is secured according to the interpretation of the object definition unit in step S11. Further, in step S13, the object state storage area secured in step S12 is initialized.
[0100]
Next, in step S14, the initial message passing description section is executed, and in step S15, the object state is updated.
[0101]
In step S16, event_check_counter is set to 1. Then, the process proceeds to step S17, where a test of the event_check_counter (in this case, the value is set to 1 in step S16) of the event determination unit is executed. If the result of the test is correct, the process proceeds to step S18, where 1 is set to the state_check_counter.
[0102]
Next, proceeding to step S19, a test of the state_check_counter state determination unit (in this case, this value is set to 1 in step S18) is executed. If the result of this test is correct, the process proceeds to step S20, where the state_check_counter-th message passing description part is executed.
[0103]
After the process in step S20, the process proceeds to step S21, and the value of the state_check_counter is incremented by one. If it is determined in step S19 that the test result of the state_check_counter-th state determination unit is incorrect, the process in step S20 is skipped (the message passing description unit is not executed), and the process in step S21 is performed. Be executed.
[0104]
Next, the process proceeds to step S22, and it is determined whether the value of the state_check_counter is equal to the total number of state determination units in one switch statement. If the determination in step S22 is NO, the process returns to step S19, and the subsequent processing is repeated. If the determination in step S22 is YES, the process proceeds to step S23, and the event_check_counter is incremented by one. If it is determined in step S17 that the test result of the event_check_counter-th event determination unit is incorrect, the processing in steps S18 to S22 is skipped, and the processing in step S23 is performed.
[0105]
After step S23, the process proceeds to step S24, and it is determined whether the value of event_check_counter incremented in step S23 is equal to the total number of event determination units. If the determination in step S24 is NO, the process returns to step S17, and the subsequent processing is repeatedly executed. If the determination in step S24 is YES, the process proceeds to step S25, and waits for detection of event transfer. When the event transfer is detected, the process returns from step S25 to step S15, and the subsequent processes are repeatedly executed.
[0106]
In the above description, the class definition and the script are transmitted from the
[0107]
In the above, prior to the exchange of the class definition / script, it has been stated that the display meaning of the state of each class must be agreed in advance between the sender and the receiver. For example, a standardization organization stipulates a procedure for registering a class definition, and registers a class definition that can be uniquely referenced by a class name and a document that describes the display meaning of the state described therein. be able to.
[0108]
In this way, portions of the class definition can be shared by a wide variety of different systems. Also, script versatility (script compatibility on systems / platforms from various vendors) is guaranteed.
[0109]
【The invention's effect】
As described above, according to the information synchronization control method of the present invention,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. Is defined hierarchically to inherit the transition of each information, when each information is output, the output state of each information and the definition contents of the transition are described, and the state according to the definition contents of each information In accordance with a script describing a procedure based on a predetermined scenario that defines a synchronous relationship between output states of each information, a synchronous relationship between output states of each information is controlled.As a result, finer synchronization control of the multimedia object is possible.
According to the information transmission device of the present invention,The output state of each piece of information from the media is defined hierarchically so that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is defined as the output state of the upper layer. Is defined hierarchically so as to inherit the transition of the information, the output state of each information and the definition content of the transition are described, and a state transition procedure according to the definition content of each information, It is possible to transmit a script describing a procedure based on a predetermined scenario that defines a synchronous relationship between information output states. Therefore, in the device to which this script has been transmitted, the synchronization of the output state of each information is controlled according to the script. This allowsFiner synchronization control of multimedia objects becomes possible.
According to the information output device of the present invention, the output state of each piece of information from the medium is hierarchically defined such that the predetermined output state of the upper layer is further subdivided into output states. Each transition is defined hierarchically so as to inherit the transition of the output state of the upper layer, and when each information is output, the output state of each information and the definition contents of the transition are described, and each information is described. According to a script describing a procedure based on a predetermined scenario that defines a synchronization relationship between the output states of each information, the synchronization relationship between the output states of each information is Since the control is performed, finer synchronization control of the multimedia object can be performed.
[Brief description of the drawings]
Fig. 1 State transition by hierarchical definition of classesInheritanceFIG.
FIG. 2 is a diagram illustrating a state transition of a media class.
FIG. 3 is a diagram illustrating a state transition of a continuous media class.
FIG. 4 is a block diagram illustrating a configuration of an embodiment of an information transmission device and an information output device according to the present invention.
FIG. 5 is a flowchart for explaining the operation of the embodiment in FIG. 4;
FIG. 6 is a flowchart illustrating a more detailed process of step S2 of FIG. 5;
FIG. 7 is a block diagram showing a configuration of another embodiment of the information transmission device and the information output device of the present invention.
[Explanation of symbols]
11 Class definition script creation unit
12 Media object data creation unit
13 Transfer control unit
14,15 Communication control device
16 Transfer control unit
17 Script interpreter / executor
18 Display control unit
20 Storage media
21 and 22 storage medium control device
Claims (5)
各情報のメディアからの出力状態が、上位階層の所定の出力状態をさらに細分化した出力状態とするように階層的に定義され、各階層の前記出力状態のそれぞれの遷移が、上位階層の出力状態の遷移を継承するように階層的に定義され、
前記各情報が出力されるとき、
前記各情報の前記出力状態とその遷移の定義内容が記述されるとともに、前記各情報のそれぞれについての前記定義内容に従った状態遷移の手続きであって、前記各情報の出力状態の同期関係を規定する所定のシナリオに基づく前記手続きが記述されたスクリプトに従って、各情報の出力状態の同期関係を制御する
ことを特徴とする情報同期制御方法。In an information synchronization control method for controlling a synchronization relationship between output states of each information when outputting information from a plurality of media,
The output state of each piece of information from the medium is hierarchically defined such that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is output from the upper layer. Defined hierarchically to inherit state transitions,
When the above information is output,
The output state of each piece of information and the definition content of the transition are described, and a state transition procedure according to the definition content of each piece of the information is performed. An information synchronization control method comprising: controlling a synchronization relationship between output states of respective information in accordance with a script in which the procedure based on a prescribed predetermined scenario is described .
ことを特徴とする請求項1に記載の情報同期制御方法。Transition of the output state and its from the media of the respective information, the base class, a derived class of the lower of the base class, or to claim 1, characterized in that it is defined by the derived classes of the lower guide out class Information synchronization control method described.
ことを特徴とする請求項2に記載の情報同期制御方法。The information synchronization control method according to claim 2, wherein the base class and the derived class are defined by a state that defines a state of the media and an event that indicates a transition of the state.
前記各情報のそれぞれに対応する各オブジェクトデータのそれぞれを作成する第2の作成手段と、
前記第1の作成手段と第2の作成手段の出力を合成して伝送する伝送手段と
を備えることを特徴とする情報伝送装置。 The output state of each piece of information from the medium is hierarchically defined such that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is output from the upper layer. It is defined hierarchically so as to inherit the transition of the state, describes the output state of each piece of information and the definition of the transition, and performs a state transition procedure according to the definition of each piece of the information. First creation means for creating a script describing the procedure based on a predetermined scenario defining a synchronous relationship between output states of each information ;
Second creating means for creating each of the object data corresponding to each of the information ;
An information transmission apparatus, comprising: a transmission unit that combines and transmits outputs of the first generation unit and the second generation unit.
前記各情報のそれぞれに対応する各オブジェクトデータと
が合成された信号を入力信号とし、
前記入力信号から前記スクリプトと、前記各オブジェクトデータとを分離する分離手段と、
前記分離手段により分離された前記スクリプトを解釈し、その解釈結果に基づいて、前記分離手段により分離された前記各オブジェクトデータのそれぞれに対応する前記各情報の出力状態の同期関係を制御する制御情報を出力する解釈手段と、
前記解釈手段の出力に対応して、前記分離手段により分離された前記各オブジェクトデータを処理する処理手段と
を備えることを特徴とする情報出力装置。 The output state of each piece of information from the medium is hierarchically defined such that a predetermined output state of the upper layer is further subdivided into output states, and each transition of the output state of each layer is output from the upper layer. The state transition is defined hierarchically so as to inherit the state transition, the output state of the information and the definition of the transition are described, and a state transition procedure according to the definition for each of the information is performed. A script that describes the procedure based on a predetermined scenario that defines a synchronous relationship between output states of the information,
Each object data corresponding to each of the information;
Is used as the input signal,
Separating means for separating said input signal or al the script, said each object data,
Interpreting said script separated by the separating means, on the basis of the interpretation result, the control information for controlling the synchronization relationship between the output state of each information corresponding to each of the respective object data separated by said separating means Interpreting means for outputting
An information output device comprising: a processing unit configured to process the object data separated by the separation unit in accordance with an output of the interpretation unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02172893A JP3590639B2 (en) | 1993-01-14 | 1993-01-14 | Information synchronization control method, information transmission device, and information output device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02172893A JP3590639B2 (en) | 1993-01-14 | 1993-01-14 | Information synchronization control method, information transmission device, and information output device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06214690A JPH06214690A (en) | 1994-08-05 |
| JP3590639B2 true JP3590639B2 (en) | 2004-11-17 |
Family
ID=12063140
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02172893A Expired - Fee Related JP3590639B2 (en) | 1993-01-14 | 1993-01-14 | Information synchronization control method, information transmission device, and information output device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3590639B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5452435A (en) * | 1993-03-31 | 1995-09-19 | Kaleida Labs, Inc. | Synchronized clocks and media players |
| US20060245096A1 (en) * | 2005-04-29 | 2006-11-02 | Microsoft Corporation | Application framework phasing model |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07104959B2 (en) * | 1983-12-28 | 1995-11-13 | 株式会社日立製作所 | Growth model display |
| JPH02216588A (en) * | 1989-02-17 | 1990-08-29 | Hitachi Ltd | Interactive script/animation generation method |
| JP3171632B2 (en) * | 1991-01-29 | 2001-05-28 | 富士通株式会社 | Video display processor |
| JPH04282775A (en) * | 1991-03-12 | 1992-10-07 | Fujitsu Ltd | Illustration control processor |
| JPH05242208A (en) * | 1992-03-03 | 1993-09-21 | Nippon Telegr & Teleph Corp <Ntt> | Multimedia scenario editing apparatus and method |
-
1993
- 1993-01-14 JP JP02172893A patent/JP3590639B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH06214690A (en) | 1994-08-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7945141B2 (en) | Information storage medium including event occurrence information, and apparatus and method for reproducing the information storage medium | |
| US5680639A (en) | Multimedia control system | |
| EP1110402B1 (en) | Apparatus and method for executing interactive tv applications on set top units | |
| US5748187A (en) | Synchronization control of multimedia objects in an MHEG engine | |
| US6049832A (en) | Method for accessing information on a host computer from a client computer through an intelligent virtual host component | |
| EP1041851A1 (en) | Network control system | |
| US9344471B2 (en) | Method and apparatus for managing and processing information of an object for multi-source-streaming | |
| JP4959696B2 (en) | State-based timing of interactive multimedia presentations | |
| KR20010042221A (en) | System and method for describing multimedia content | |
| JP2006523418A (en) | Interactive content synchronization apparatus and method | |
| KR20010104704A (en) | Methods for initiating activity in intelligent devices connected to an in home digital network using extensible markup language(XML) for information exchange and systems therefor | |
| CN117914957A (en) | Multi-protocol interactive communication method, device, equipment, storage medium and product | |
| JP3590639B2 (en) | Information synchronization control method, information transmission device, and information output device | |
| US8117241B2 (en) | Method and apparatus for generating media-exchangeable multimedia data and method and apparatus for reconstructing media-exchangeable multimedia data | |
| US7692562B1 (en) | System and method for representing digital media | |
| JP2549251B2 (en) | How to create an annotation record for live data | |
| JP5619838B2 (en) | Synchronicity of interactive multimedia presentation management | |
| JP2005063069A (en) | Controlled device, remote control device and remote control system | |
| GB2366109A (en) | System for authoring contents of digital television | |
| US20120096157A1 (en) | Method and apparatus for managing and processing information an object for multi-resource-streaming | |
| JP2007299030A (en) | Program for acquiring gui display information | |
| CN101840720B (en) | Reproduction apparatus and reproduction method | |
| CN117241062A (en) | A video synthesis method, device, storage medium and electronic equipment | |
| Welch et al. | Video Processing in occam-pi | |
| US20030070002A1 (en) | System and method for manipulating HAVi specification virtual key data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020527 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040716 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040823 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100827 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110827 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120827 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |