JPH0922565A - データ処理装置および方法 - Google Patents

データ処理装置および方法

Info

Publication number
JPH0922565A
JPH0922565A JP7170745A JP17074595A JPH0922565A JP H0922565 A JPH0922565 A JP H0922565A JP 7170745 A JP7170745 A JP 7170745A JP 17074595 A JP17074595 A JP 17074595A JP H0922565 A JPH0922565 A JP H0922565A
Authority
JP
Japan
Prior art keywords
time
world object
actor
world
self
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.)
Pending
Application number
JP7170745A
Other languages
English (en)
Inventor
Takahiko Sueyoshi
隆彦 末吉
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP7170745A priority Critical patent/JPH0922565A/ja
Publication of JPH0922565A publication Critical patent/JPH0922565A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Abstract

(57)【要約】 【目的】 複数のデータの時間軸を簡単に管理すること
ができるようにする。 【構成】 時間軸に沿って行われるメソッドを有する時
間オブジェクト(TimedObject)を規定する
とともに、そのサブクラスとして世界オブジェクト(W
orld)と時間アクタ(TimedActor)を規
定する。世界オブジェクトは、自分自身に属する時間オ
ブジェクトのリストを有するとともに、1つの時間軸を
得るメソッドを有する。時間アクタは、周期アクタ(P
eriodicActor)と非周期アクタ(Spor
adicActor)とを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置お
よび方法に関し、特にマルチメディアのデータを処理す
る場合に用いて好適なデータ処理装置および方法に関す
る。
【0002】
【従来の技術】CD−ROMデータ、MDなどのような
大容量の記憶メディアに、音声データ動画像データ、静
止画データ、テキストデータ、コンピュータ・グラフィ
ックスデータなどを必要に応じて圧縮し、記録再生する
マルチメディアが普及しつつある。動画像データや静止
画データは、例えばMPEG方式で圧縮され、音声デー
タは、例えばADPCM,ATRACなどの方式で圧縮
される。また、音声データは、記録媒体や所定の伝送路
を介して、MIDI方式で授受される場合もある。
【0003】これらのマルチメディアのシステムにおい
ては、マウス、キーボード、リモートコマンダなどの入
力デバイスを用いて、所定の指令を入力することで、例
えば所定の画像の再生を行っている最中に、その場面に
関係する他の任意の情報を取り出したり、再生状態を他
のモードに変更制御することができる。また、電話回線
などの通信回線を利用して、他の装置との間でデータを
授受し、画像を合成したりすることも可能である。
【0004】
【発明が解決しようとする課題】ところで、このような
マルチメディアシステムにおいては、例えばその動画像
データと、それに付随する音声データとは、同期して再
生する必要がある。複数のデータを同期して再生するに
は、その再生状態を管理するプログラムが必要となる。
多数のデータの所定のものを任意に組み合わせ、任意の
タイミングで同期して再生させるには、それを制御する
プログラムが複雑となり、多くの手間と労力を必要とす
る。その結果、例えば、所定のデータを、ある場面にお
いては、倍速再生し、ある場面においては、通常の速度
で再生し、その状態を他のデータの再生と同期させたり
するといったような、時間軸を複雑に組み合わせるよう
な動作を実行させることは、実質的に困難であった。
【0005】本発明はこのような状況に鑑みてなされた
ものであり、多数のデータの時間軸を簡単に管理するこ
とができるようにするものである。
【0006】
【課題を解決するための手段】請求項1に記載のデータ
処理装置は、時間軸に沿って行われるメソッドを有する
時間オブジェクトと、自分自身に属する時間オブジェク
トのリストを有するとともに、1つの時間軸を得るメソ
ッドを有する、時間オブジェクトのサブクラスとしての
世界オブジェクトとを備えることを特徴とする。
【0007】請求項8に記載のデータ処理方法は、時間
軸に沿って行なわれるメソッドを有する時間オブジェク
トを規定し、自分自身に属する時間オブジェクトのリス
トを有するとともに、1つの時間軸を得るメソッドを有
する世界オブジェクトを、時間オブジェクトのサブクラ
スとして規定することを特徴とする。
【0008】請求項1に記載のデータ処理装置において
は、時間オブジェクトが時間軸に沿って行われるメソッ
ドを有し、時間オブジェクトのサブクラスとしての世界
オブジェクトが、自分自身に属する時間オブジェクトの
リストを有するとともに、1つの時間軸を得るメソッド
を有する。
【0009】請求項8に記載のデータ処理方法において
は、時間軸に沿って行われるメソッドを有する時間オブ
ジェクトが規定され、かつ、自分自身に属する時間オブ
ジェクトのリストを有し、1つの時間軸を得るメソッド
を有する世界オブジェクトが、時間オブジェクトのサブ
クラスとして規定される。
【0010】
【発明の実施の形態】本発明においては、マルチメディ
アの再生を管理するアプリケーションプログラムが、デ
ータと手続きとを融合した論理的な単位としてのオブジ
ェクトとして記述される。このオブジェクトは、メッセ
ージの通信により駆動される。そして、このオブジェク
トは、共通情報を保持するクラス(class)と、個
々の値を保持するインスタンス(instance)と
に区分されるが、このクラスは、図1に示すように階層
化される。
【0011】すなわち、このシステムにおいては、時間
軸に沿って動作するオブジェクトの抽象として、Tim
edObjectというクラスが規定される。そして、
このTimedObjectクラスのサブクラス(su
b class)として、複数のオブジェクトを含むこ
とができるWorldクラスと、実質的に動作する個々
のオブジェクトの抽象としてのTimedActorク
ラスが規定される。
【0012】TimedActorクラスには、そのサ
ブクラスとして、PeriodicActorクラス
と、SporadicActorクラスとが規定され
る。そして、PeriodicActorのさらにサブ
クラスとして、MPEGActorクラス、Sound
Actorクラス、TextActorクラスおよびA
nimationActorクラスが、それぞれ規定さ
れる。従って、例えば、WorldクラスとTimed
Actorクラスの親クラス(parent clas
s)またはスーパークラス(super class)
がTimedObjectクラスということになる。サ
ブクラスのオブジェクトは、親クラスのオブジェクトの
性質を承継し、親クラスのオブジェクトのデータと手続
きを、メッセージによらずに参照することが可能とされ
る。
【0013】以下、TimedObjectクラス、W
orldクラスおよびTimedActorクラスに対
応するオブジェクトを、それぞれ時間オブジェクト、世
界オブジェクトおよび時間アクタと適宜記述する。
【0014】また、同様に、PeriodicActo
rクラス、SporadicActorクラス、MPE
GActorクラス、SoundActorクラス、T
extActorクラスおよびAnimationAc
torクラスに対応するオブジェクトを、それぞれ周期
アクタ、非周期アクタ、MPEGアクタ、サウンドアク
タ、テキストアクタおよびアニメーションアクタと適宜
記述する。
【0015】時間オブジェクト(TimedObjec
t)は、時間が進むに従って、他のオブジェクトと並行
して動作するような並行オブジェクトである。時間オブ
ジェクトは、通常の並行オブジェクトとは異なり、メッ
セージの受信により起動されるだけでなく、時間の進行
によっても自らのメソッドを起動することができる。時
間オブジェクトは、時間軸に従って自分自身が行う動作
のスケジュールを持っている並行オブジェクトと考える
ことができる。スケジュール中に記述できる内容は、特
に限定されないが、他のオブジェクトへのメッセージ送
信、入出力処理、数値計算、記号処理などが含まれる。
【0016】時間オブジェクトは自分自身のみでは、時
間を進行させることができない。時間軸は、世界オブジ
ェクトによって規定されており、時間オブジェクトは、
世界オブジェクトに所属することで、初めて、自分自身
の時間を進行させることができる。自らが所属している
世界オブジェクトを親世界オブジェクトと呼ぶことにす
る。
【0017】図2は、時間オブジェクトの構成を表して
いる。同図に示すように、時間オブジェクトの親クラス
は、所定のオブジェクトとされ、特に制限は存在しな
い。
【0018】時間オブジェクトの持つインスタンス変数
は、status,pworld,sleptTime
である。
【0019】statusは、時間オブジェクトの状態
を指定する。時間オブジェクトの主な状態は、図3に示
すように、準備状態(Ready)、走行状態(Ru
n)、休止状態(Sleep)の3つであり、いずれか
1つの状態から他の1つの状態に遷移する。走行状態
は、時間オブジェクト内の時間が進行中である状態を示
す。休止状態は、時間オブジェクト内の時間が止まって
いる状態を示し、この状態では、時間軸に依存した動作
を行うことができない。準備状態は、どの世界オブジェ
クトにも所属していない状態(pworld変数に何も
指定されていない状態)であり、この状態は、時間オブ
ジェクトが生成された直後や、親世界オブジェクトを変
更する時などに一時的に発生する状態である。
【0020】pworldには、その時間オブジェクト
の属する親世界オブジェクトが指定される。
【0021】sleptTimeには、その時間オブジ
ェクトが最後に休止状態になった時の時刻(自分の属す
る親世界オブジェクトの時刻)が指定される。Slep
tTimeは、時間オブジェクトが休止状態の時にのみ
意味を持つ値である。
【0022】図2に示すように、時間オブジェクトは、
Initialize,Finalize,Slee
p,Wakeup,SleepUntil,Chang
eWorldのメソッドを有する。
【0023】Initialize(TimedObj
ect self)は、時間オブジェクトが生成される
と呼び出される、初期化のためのメソッドである。この
メソッドは、サブクラスによって実装される。
【0024】Finalize(TimedObjec
t self)は、時間オブジェクトが消滅すると呼び
出される、後処理のためのメソッドである。このメソッ
ドは、サブクラスによって実装される。
【0025】Sleep(TimedObject s
elf)は、時間オブジェクトを休止状態にするための
メソッドである。このメソッドは、サブクラスによって
実装される。
【0026】Wakeup(TimedObject
self)は、時間オブジェクトを走行状態するための
メソッドである。このメソッドは、サブクラスによって
実装される。
【0027】ChangeWorld(TimedOb
ject self,Worldnew)は、時間オブ
ジェクトの親世界オブジェクトを設定するメソッドであ
る。このメソッドは、サブクラスによって実装される。
【0028】図4に示すように、世界オブジェクト(W
orld)は、時間オブジェクト(TimedObje
ct)を親クラスとする、時間の流れ(時間軸)を管理
するオブジェクトである。時間オブジェクトは、それ自
身では時間を進行させることはできず、自分自身の時間
を進行させるためには、そのChangeWorldメ
ソッドを用いて、特定の時間軸、すなわちこの世界オブ
ジェクトに所属しなければならない。
【0029】複数の時間オブジェクト間の同期は、それ
らの時間オブジェクトを1つの(共通の)世界オブジェ
クトに所属させることによって実現される。世界オブジ
ェクトもまた、その時間を進行させるために、別の世界
オブジェクトに所属しなければならない。
【0030】世界オブジェクト間の関係は、次のように
規定される。 1.時間オブジェクトの集合は、世界オブジェクトへの
所属関係により木構造を構成する(図5参照)。 2.木構造の中間ノードは世界オブジェクトであり、葉
(リーフ)ノードは時間アクタである(図5参照)。 3.木構造の根(ルート)ノードは特殊な世界オブジェ
クトである「ルート世界オブジェクト」である(図5参
照)。ルート世界オブジェクトの時間軸は、我々が生活
している現実世界の時間軸と完全に一致する。 4.2つの世界オブジェクト間に所属関係があるとき、
これらの時間の流れは、offsetとratioとい
う2つのパラメータ(インスタンス変数)によって関連
付けられる(図6参照)。
【0031】すなわち、図6に示すように、2つの世界
オブジェクトW1,W2があり、W1にW2が所属して
いるとする。W1の時間軸をt1,W2の時間軸をt2
とすると、W2のoffsetは、t2の原点に対応す
るt1の時刻で表わされる。すなわち、t2の原点がル
ート世界時間(ルート世界オブジェクトの時間)のtに
対応するとき、そのtに対応するt1の時刻が、t2の
t1に対応するオフセット(offset)とされる。
【0032】W2のratioは、t1の単位時間u1
に対するt2の単位時間u2の大きさの比(u2/u
1)で表わされる。特に、ルート世界オブジェクトのo
ffsetは0であり、ratioは1.0である。
【0033】図4に示すように、世界オブジェクトは、
インタンス変数として、offset,ratio,T
OListを有する。
【0034】offset,ratioは、図6を用い
て説明したパラメータに対応する。TOListは、こ
の世界オブジェクトに所属している時間オブジェクトの
リストである。
【0035】また、図4に示すように、世界オブジェク
トは、メソッドとして、CurrentTime,Sl
eep,Wakeup,ChangeWorld,Sc
heduleAtを有する。
【0036】CurrentTime(World s
elf)は、世界オブジェクトself(自分自身)に
おける現在時刻を返すメソッドである。
【0037】システムの現在時刻は、典型的にはリアル
タイムクロックを用いてオペレーティングシステムが提
供するが、ここでは、Nowというシステム関数によっ
てシステムの現在時刻が取得できるものとする。従っ
て、Nowの値は、ルート世界オブジェクトにおける時
刻(ルート世界時刻)と一致する。
【0038】CurrentTimeメソッドのアルゴ
リズムを図7に示す。ステップS1においては、関数N
owにより、現在時刻(ルート世界時刻)を得て、この
現在時刻をnowに設定する。
【0039】次に、ステップS2においては、次式で示
すように、ルート世界オブジェクトに対するオフセット
時間absOffsetを得る。 absOffset=GetAbsOffsetTim
e(self)
【0040】次に、ステップS3において、次式で示す
ように、ルート世界時間に対する時間の進む比率abs
Ratioを得る。 absRatio=GetAbsRatio(sel
f)
【0041】次に、ステップS4に進み、いま現在、自
分自身の世界オブジェクトが休止状態であるか否かが判
定される。休止状態でない場合(走行状態または準備状
態の場合)においては、ステップS5に進み、次式に示
すように、世界オブジェクトの現在時刻timeを計算
する。 time=(now−absOffset)×AbsR
atio
【0042】このnowは、ステップS1で得た値であ
り、absOffsetは、ステップS2で得た値であ
り、AbsRatioは、ステップS3で得た値であ
る。
【0043】このようにして得たtimeが、世界オブ
ジェクトの現在時刻として、ステップS7において、例
えば、メッセージを出力したオブジェクトに対して返さ
れる。
【0044】一方、ステップS4において、自分自身の
世界オブジェクトが休止状態であると判定された場合に
おいては、ステップS6に進み、親の時間オブジェクト
に規定されているsleptTime(最後に休止状態
になったときの時刻)を得て、これをtimeに設定す
る。 time=sleptTime
【0045】そして、ステップS7に進み、ステップS
6で得たtimeを出力する。
【0046】図7のステップS2におけるabsOff
setを得るための関数GetAbsOffsetと、
ステップS3におけるabsRatioを得るための関
数GetAbsRatioの詳細は、図8のフローチャ
ートと図9のフローチャートに、それぞれ表されてい
る。
【0047】図8に示すように、GetAbsOffs
etの処理に際しては、最初にステップS11におい
て、absOffsetに0を初期設定し、world
に自分自身(世界オブジェクトself)を初期設定す
る。
【0048】次に、ステップS12に進み、ステップS
11で設定されたworldは、ルート世界オブジェク
トであるか否かが判定される。ルート世界オブジェクト
である場合においては、上述したように、offset
の値は0である。そこで、ステップS16に進み、ステ
ップS11で設定したabsOffset(=0)を出
力する。
【0049】ステップS12において、worldがル
ート世界オブジェクトではないと判定された場合におい
ては、ステップS13に進み、worldに規定されて
いる世界オブジェクトのoffsetとratioを得
る。いまの場合、ステップS11において、world
にselfが設定されているため、自分自身の世界オブ
ジェクトのoffsetとratioが得られることに
なる。
【0050】次に、ステップS14に進み、次式を演算
する。 absOffset=offset+absOffse
t/ratio
【0051】すなわち、ステップS11で得たabsO
ffsetを、ステップS13で得たratioで割算
し、その割算して得られた値に対して、ステップS13
で得たoffsetを加算し、その加算値をabsOf
fsetに設定する。
【0052】次に、ステップS15に進み、world
に規定されている世界オブジェクト(いまの場合、自分
自身)の親世界オブジェクト(時間オブジェクトのpw
orldに規定されている世界オブジェクト)をwor
ldに代入する。
【0053】そして、ステップS12に戻り、それ以降
の処理を繰り返し実行する。
【0054】すなわち、世界オブジェクトが他の世界オ
ブジェクトに属し、その世界オブジェクトがさらに他の
世界オブジェクトに属するような場合、各親世界オブジ
ェクトに対するoffsetとratioを順次計算
し、最終的にルート世界オブジェクトに達するまで同様
の処理が行われる。そして、最終的に、absOffs
etとして、ルート世界オブジェクトの時間軸に対する
オフセットが出力されることになる。
【0055】図9に示すGetAbsRatioの演算
においては、ステップS21において、absRati
oに1.0が初期設定され、worldに自分自身が初
期設定される。
【0056】次に、ステップS22においては、wor
ldに規定されている世界オブジェクトがルート世界オ
ブジェクトであるか否かが判定され、ルート世界オブジ
ェクトである場合においては、ステップS21において
設定されたabsRatio(いまの場合、1.0)を
出力する。
【0057】worldに規定されている世界オブジェ
クトがルート世界オブジェクトではない場合において
は、ステップS22からステップS23に進み、wor
ldに規定されている世界オブジェクトのratioを
得る。
【0058】次に、ステップS24に進み、次の演算を
行う。 absRatio=absRatio×ratio
【0059】次に、ステップS25に進み、world
に規定されている世界オブジェクト(いまの場合、自分
自身の世界オブジェクト)の親世界オブジェクトとして
規定されているpworldの世界オブジェクトをwo
rldに代入する。
【0060】そして、ステップS22に戻り、それ以降
の処理を繰り返し実行する。
【0061】すなわち、これにより、ルート世界オブジ
ェクトに対する世界オブジェクトのratioがabs
Ratioとして出力される。
【0062】図4の世界オブジェクトのSleep(W
orld self)は、世界オブジェクトselfが
走行状態である場合、これを休止状態にするメソッドで
ある。Sleepメソッドは、世界オブジェクトsel
fが休止状態または準備状態である場合には、何も処理
を行わない。世界オブジェクトselfが走行状態であ
る場合は、世界オブジェクトselfに所属する時間オ
ブジェクト全てに対してSleepを実行した後、自分
自身が休止状態に遷移する。
【0063】図10は、Sleepメソッドのアルゴリ
ズムを示す。最初にステップS31において、自分自身
の世界オブジェクトが休止状態または準備状態にあるか
否かを判定する。休止状態または準備状態にあるとき、
特に処理を行わず、終了する。
【0064】休止状態または準備状態ではないとき、す
なわち走行状態であるとき、ステップS32に進み、自
分自身の世界オブジェクトに所属する各時間オブジェク
トに対して、Sleepを実行する。
【0065】次に、ステップS33に進み、次式に示す
ように、休止時刻を取得して、それをsleptTim
eに設定する。 sleptTime=CurrentTime(sel
f)
【0066】すなわち、自分自身の世界オブジェクトに
おける現在時刻をCurrentTimeメソッドで取
得し、その値をsleptTimeに設定する。
【0067】次に、ステップS34に進み、自分自身を
休止状態にし、処理を終了する。
【0068】図4の世界オブジェクトのWakeup
(World self)は、世界オブジェクトsel
fが休止状態にあるとき、これを走行状態にするメソッ
ドである。Wakeupメソッドは、世界オブジェクト
selfが休止状態以外の場合(走行状態または準備状
態の場合)は、何も処理を行わない。世界オブジェクト
selfが休止状態である場合は、自分自身を走行状態
に遷移した後、世界オブジェクトselfに所属する時
間オブジェクト全てに対してWakeupを実行する。
【0069】図11は、Wakeupメソッドのアルゴ
リズムを示す。ステップS41においては、世界オブジ
ェクト自分自身が休止状態にあるか否かを判定し、休止
状態でない場合(走行状態または準備状態である場
合)、特に処理を行わず、終了する。
【0070】次に、自分自身が休止状態にある場合、ス
テップS42に進み、自分自身を走行状態にする。そし
てさらに、ステップS43に進み、次式に従って、of
fsetを補正する。 offset=offset+(CurrentTim
e(self)−sleptTime)×ratio
【0071】すなわち、自分自身の現在時刻から、図1
0のステップS33で記憶した休止時刻を減算し、得ら
れた結果に対してratioを乗算して、その乗算結果
をoffsetに加算した値をoffsetに設定す
る。
【0072】次に、ステップS44に進み、自分自身の
世界オブジェクトに所属している各時間オブジェクトに
対して、Wakeupを実行する。
【0073】図4の世界オブジェクトのChangeW
orld(World self,World ne
w)は、世界オブジェクトselfと世界オブジェクト
newとの関係を規定するoffset,ratioを
計算した後、時間オブジェクトselfの親世界オブジ
ェクトを、世界オブジェクトnewに変更するメソッド
である。新しい親世界オブジェクトnewが休止状態で
あれば、自分自身に対してSleepメソッドを実行す
る。
【0074】図12は、ChangeWorldメソッ
ドのアルゴリズムを示す。最初にステップS51におい
て、世界オブジェクトnewへ移動した後の世界オブジ
ェクトselfのoffsetとratioを計算す
る。
【0075】図13は、古い(いま所属している)世界
オブジェクトoldから新しい世界オブジェクトnew
にルート世界オブジェクトの時刻tにおいて移動した場
合におけるoffsetとratioを計算する原理を
表している。
【0076】すなわち、ratioは、世界オブジェク
トnewにおける単位時間をUnit_new、世界オ
ブジェクトoldにおける単位時間をUnit_ol
d、世界オブジェクトselfにおける単位時間をUn
it_self、さらに、ルート世界オブジェクトにお
ける単位時間をUnit_rootとするとき、次式で
表される。 ratio =(Unit_self)/(Unit_new) ={(Unit_self)/(Unit_root)} /{(Unit_new)/(Unit_root)} =GetAbsRatio(self)/GetAbsRatio(new)
【0077】すなわち、図9を参照して説明したメソッ
ドGetAbsRatioメソッドを用いて取得した自
分自身の世界オブジェクトのratioと、新しい世界
オブジェクトnewのratioとの比が新たなrat
ioとなる。
【0078】一方、世界オブジェクトselfの世界オ
ブジェクトnewに対するoffsetは、ルート世界
オブジェクトの時刻tに対応する世界オブジェクトse
lfと世界オブジェクトnewの時刻を、それぞれt_
selfまたはt_newとするとき、上記で得られた
ratioを用いて、次式で表される。 offset =t_new−t_self×ratio
【0079】以上のようにして、世界オブジェクトne
wに対するoffsetとratioが計算されたと
き、次に、ステップS52に進み、それまで親世界オブ
ジェクトとしてpworldに規定されていた世界オブ
ジェクトを、世界オブジェクトoldとする。
【0080】次に、ステップS53に進み、ステップS
52で設定されたそれまでの親世界オブジェクトである
世界オブジェクトoldの時間オブジェクトのリストT
OListから、世界オブジェクトselfを除去する
(世界オブジェクトselfは、新たな世界オブジェク
トnewへ属することになるので)。
【0081】次に、ステップS54に進み、自分自身を
準備状態にする。すなわち、statusにTO_Re
adyを設定する。
【0082】さらに、ステップS55に進み、世界オブ
ジェクトnewの時間オブジェクトのリストTOLis
tに、世界オブジェクトselfを加える。そして、ス
テップS56においては、selfの親世界オブジェク
トにpworldをnewとする。さらに、ステップS
57で、statusにTO_Runを設定し、自分自
身を走行状態にする。
【0083】次に、ステップS58に進み、世界オブジ
ェクトnewは休止状態であるか否かを判定し、休止状
態である場合においては、ステップS59に進み、世界
オブジェクトselfに対してSleepを実行する。
すなわち、Sleep(self)メソッドを実行す
る。
【0084】ステップS58において、世界オブジェク
トnewが休止状態ではないと判定された場合において
は、ステップS59の処理はスキップされる(ステップ
S57で設定した走行状態のままとされる)。
【0085】図4の世界オブジェクトのSchedul
eAt(World self,Time time)
は、世界オブジェクトselfの現在時刻を任意の時刻
timeに設定するメソッドである。このSchedu
leAtメソッドは、親世界オブジェクトに対するof
fsetを設定し直した後、世界オブジェクトself
に所属する時間オブジェクト全てに対してSchedu
leAtを実行する。
【0086】図14は、ScheduleAtメソッド
のアルゴリズムを示す。ステップS71においては、世
界オブジェクトselfの現在時刻が任意の時刻tim
eとなるように、selfのインスタンス変数offs
etを再設定する。
【0087】すなわち、いま、例えば図15に示すよう
に、世界オブジェクトselfがその親の世界オブジェ
クトparentに対して、オフセットとしてoldO
ffsetを有するとする。このとき、ルート世界オブ
ジェクトにおける時刻tに対応する世界オブジェクトs
elfの時刻は、t_self_oldであり、世界オ
ブジェクトparentにおける時刻は、t_parと
なる。
【0088】この状態において、ステップS71では、
現在時刻t_self_newを、世界オブジェクトs
elfの任意の時刻timeに設定する。このために
は、世界オブジェクトselfの任意の時刻timeが
現在時刻t_self_newと一致するように、Of
fsetをnewOffsetに再設定すれば良い。
【0089】このため、任意の時刻timeに対応する
offsetを次式に従って求め、設定する。 offset =CurrentTime(parent) −time×{(Unit_self)/(Unit_par)} =CurrentTime(parent) −time×ratio_self
【0090】上式におけるCurrentTime(p
arent)は、世界オブジェクトparentにおけ
る現在時刻t_parを表し、Unit_selfは、
世界オブジェクトselfにおける単位時間を表し、U
nit_parは、世界オブジェクトparentにお
ける単位時間を表し、ratio_selfは、世界オ
ブジェクトselfの世界オブジェクトparentに
対する単位時間の比率を表わしている。
【0091】以上のようにして、ステップS71におい
て、任意の時刻timeに対応するoffsetが設定
されたときに、次にステップS72に進み、世界オブジ
ェクトselfに所属する各時間オブジェクトobjに
対して、objが世界オブジェクトのインスタンスであ
れば、ScheduleAt(obj,Current
Time(obj))を実行し、またobjが時間アク
タのインスタンスであれば、ScheduleAt(o
bj,time)を実行する。
【0092】一方、図16に示すように、時間アクタ
(TimedActor)は、TimedObject
クラスを親クラスとし、時間が進むに従って時系列デー
タを生成するような時間オブジェクトである。時系列デ
ータの種類(型)には、音声、動画、アニメーションな
どが考えられる。時系列データの符号化や解釈の方法
は、そのデータ型に依存する。時間アクタが、どのよう
に時系列データを生成するかは任意である。
【0093】すなわち、時間アクタは、予め時刻印が割
り当てられたデータ列を受け取ってもよいし、時刻に依
存する関数を用いてデータを計算しても良い。
【0094】また、図16に示すように、時間アクタ
は、beginning,endingのインスタンス
変数を有している。
【0095】beginningは、活動を開始する時
刻を規定し、endingは、活動を終了する時刻を規
定する。
【0096】さらに、図16に示すように、時間アクタ
は、メソッドとして、Task,Sleep,Wake
up,ChangeWorled,ScheduleA
tを有している。
【0097】Task(TimedActor sel
f)は、活動開始時刻beginningが来ると、自
動的に呼ばれ、selfを走行状態に遷移させた後、所
定の処理を実行する特別なメソッドである。このメソッ
ドは、サブクラスによって実装される。
【0098】Sleep(TimedActor se
lf)は、時間アクタself(自分自身)を休止状態
にするメソッドである。このSleepメソッドは、時
間アクタselfが休止状態または準備状態の場合は、
何も処理を行わないが、時間アクタselfが走行状態
である場合は、Taskメソッドを中断した後、時間ア
クタselfを休止状態に遷移させる。
【0099】図17は、Sleepメソッドのアルゴリ
ズムを示す。ステップS81においては、時間アクタs
elfが休止状態であるかまたは準備状態であるかが判
定される。休止状態または準備状態である場合において
は、特に処理が行われず、終了する。
【0100】時間アクタselfが休止状態または準備
状態ではない場合(走行状態である場合)、ステップS
82に進み、次式を演算して、休止時刻をsleptT
imeに設定する。 sleptTime=CurrentTime(pwo
rld)
【0101】すなわち、時間アクタselfの所属する
世界オブジェクトpworldの現在時刻を求め、これ
をsleptTimeに設定する。
【0102】次に、ステップS83に進み、自分自身を
休止状態にし、ステップS84において、Taskメソ
ッドを中断する。
【0103】図16の時間アクタのWakeup(Ti
medActor self)は、時間アクタself
を走行状態にするメソッドである。Wakeupメソッ
ドは、時間アクタselfが休止状態以外の場合は、何
も処理を行わないが、時間アクタselfが休止状態で
ある場合は、それを走行状態に遷移させた後、中断して
いたTaskメソッドを再開させる。
【0104】図18は、Wakeupメソッドのアルゴ
リズムを示す。ステップS91においては、時間アクタ
selfが休止状態であるか否かを判定する。休止状態
でない場合(走行状態または準備状態である場合)、特
に処理を行わず、終了する。
【0105】時間アクタselfが休止状態である場合
においては、ステップS92に進み、Taskメソッド
を再開する。そして、ステップS93において、自分自
身を走行状態にする。
【0106】図16の時間アクタのChangeWor
ld(TimedActor self,World
new)は、時間アクタselfの親世界オブジェクト
を新たな世界オブジェクトnewに変更するメソッドで
ある。新しい親世界オブジェクトが休止状態であれば、
自分自身に対してSleepメソッドを実行する。
【0107】図19は、ChangeWorldメソッ
ドのアルゴリズムを示す。この図19のステップS10
1乃至S107の処理は、基本的に図12に示したステ
ップS52乃至S58の処理と同様の処理である。ただ
し、図12に示すステップS51の処理が、図19のフ
ローチャートにおいては、省略されている。対象となる
オブジェクトが、図12における場合においては、世界
オブジェクトselfであるのに対し、図19のフロー
チャートにおいては、時間アクタselfである点を除
き、図12における場合と同様の処理であるから、その
説明は省略する。
【0108】図16の時間アクタのScheduleA
t(TimedActor self,Time ti
me)は、Taskメソッドを中止し、活動開始時刻b
eginningに任意の時刻timeを設定した後、
時間アクタを休止状態に遷移させるメソッドである。こ
のメソッドにより、活動開始時刻timeになると、T
askメソッドが再開される。
【0109】図20に示すように、親クラスとしてTi
medActorを有する周期アクタ(Periodi
cActor)は、指定された周期に従ってtaskメ
ソッドを実行する時間アクタである。
【0110】周期アクタは、インタンス変数として、c
ycleを有する。cycleには、周期アクタが活動
を繰り返す周期が設定される。
【0111】また、周期アクタは、メソッドとして、T
askを有する。Task(PeriodicActo
r self)は、活動開始時刻beginning
(親TimedActorに規定されている)が来る
と、自動的に呼ばれ、所定の処理を実行するメソッドで
ある。それ以後、終了時刻ending(親Timed
Actorに規定されている)が来るまで、cycle
に指定された周期に従ってtaskメソッドが呼ばれ
る。このメソッドは、サブクラスによって実装される。
【0112】図21に示すように、TimedActo
rクラスを親クラスとする非周期アクタ(Sporad
icActor)は、活動開始時刻beginning
(親TimedActorに規定されている)が来ると
taskメソッドを実行する時間アクタである。tas
kメソッドが終了するか、あるいは終了時刻endin
g(親TimedActorに規定されている)が過ぎ
ると活動を停止する。
【0113】図22に示すように、PeriodicA
ctorクラスを親クラスとするMPEGアクタ(MP
EGActor)は、MPEG動画を再生する周期アク
タである。
【0114】MPEGアクタは、インタンス変数とし
て、streamを有する。streamは、MPEG
データを供給する入力ストリームである。MPEGデー
タをCD−ROMやMD−DATAのような記憶媒体か
ら読み出す場合には、入力ストリームは、記憶媒体中の
MPEGデータの位置と大きさを管理し、オープン、ク
ローズ、読み出しといった手続きを実現する。また、ネ
ットワークを介して、接続されたサーバからMPEGデ
ータが送られてくる場合にも同様の手続きを実現する。
【0115】図22に示すように、MPEGアクタは、
Initialize,Task,Finalizeの
メソッドを有する。
【0116】Initialize(MPEGActo
r self)メソッドは、入力ストリームをオープン
し、システム内のデータ転送用のバッファに、入力スト
リーム中の適切なオフセット位置からのMPEGデータ
の転送を開始する。
【0117】Task(MPEGActor sel
f)メソッドは、データ転送用のバッファ中の次に再生
するGOP(Group of Picture)分の
MPEGデータに対して、MPEG再生ルーチンを実行
し、再生する。MPEG再生ルーチンは、入力としてM
PEGデータを受け取り、それをデコーダバッファに転
送して、動画を再生する。また、親PeriodicA
ctorの周期cycleに、MPEG再生ルーチン実
行時間(データ転送時間+GOP再生時間)を設定し直
す。
【0118】MPEGアクタselfが所属する世界オ
ブジェクトのルート世界オブジェクトに対するrati
oが1でない場合は、例えばI(イントラ)フレームと
それを再生する時間の対応表を予め作っておき、現在時
刻に一番近い時刻のIフレームを表示するようにするこ
とによって、早送り再生、スロー再生、巻戻し再生が実
現できる。
【0119】Finalize(MPEGActor
self)メソッドは、入力ストリームをクローズす
る。
【0120】図23に示すように、PeriodicA
ctorクラスを親クラスとするSoundアクタ(S
oundActor)は、音声を再生する周期アクタで
ある。Soundアクタは、インタンス変数として、s
treamを有する。
【0121】streamは、音声データを供給する入
力ストリームである。音声データには、サンプリングデ
ータの他に、サンプリング情報(サンプル・サイズ、周
波数)や、サウンドの種類(PCM,ADPCM,MI
DI)などが含まれる。ストリームのフォーマットは特
に限定しない。音声データをCD−ROMやMD−DA
TAのような記憶媒体から読み出す場合には、入力スト
リームは、記憶媒体中のMPEGデータの位置と大きさ
を管理し、オープン、クローズ、読み出しといった手続
きを実現する。また、ネットワークを介して、接続され
たサーバから音声データが送られてくる場合にも同様の
手続きを実現する。
【0122】図23に示すように、Soundアクタ
は、Initialize,Task,Finaliz
eのメソッドを有する。
【0123】Initialize(SoundAct
or self)メソッドは、入力ストリームをオープ
ンし、システム内のデータ転送用のバッファに、入力ス
トリーム中の適切なオフセット位置からの音声データの
転送を開始する。
【0124】Task(SoundActor sel
f)メソッドは、データ転送用のバッファ中の次に再生
するGOS(Group of Sound)分の音声
データに対して、音声再生ルーチンを実行し、再生す
る。音声再生ルーチンは、入力として音声データを受け
取り、それをデコーダバッファに転送して、音声を再生
する。また、親PeriodicActorの周期cy
cleに、音声再生ルーチン実行時間(データ転送時間
+GOS再生時間)を設定し直す。
【0125】音声アクタselfが所属する世界オブジ
ェクトのルート世界オブジェクトに対するratioが
1でない場合は、例えば音声データを間引きしたり、再
生周波数を調整するなどして、早送り再生、スロー再生
が実現できる。
【0126】Finalize(SoundActor
self)メソッドは、入力ストリームをクローズす
る。
【0127】図24に示すように、PeriodicA
ctorクラスを親クラスとするTextアクタ(Te
xtActor)は、時間に依存したテキストを再生す
る周期アクタである。Textアクタは、インタンス変
数として、streamを有する。
【0128】streamは、テキストデータを供給す
る入力ストリームである。テキストデータには、表示す
べき時間、テキストの文字列、表示する位置、サイズ、
フォントなどの情報が含まれる。ストリームのフォーマ
ットは特に限定しない。テキストデータをCD−ROM
やMD−DATAのような記憶媒体から読み出す場合に
は、入力ストリームは、記憶媒体中のMPEGデータの
位置と大きさを管理し、オープン、クローズ、読み出し
といった手続きを実現する。また、ネットワークを介し
て、接続されたサーバからテキストデータが送られてく
る場合にも同様の手続きを実現する。
【0129】図24に示すように、Textアクタは、
Initialize,Task,Finalizeの
メソッドを有する。
【0130】Initialize(TextActo
r self)メソッドは、入力ストリームをオープン
し、システム内のデータ転送用のバッファに、入力スト
リーム中の適切なオフセット位置からのテキストデータ
の転送を開始する。
【0131】Task(TextActor sel
f)メソッドは、データ転送用のバッファ中の次に表示
するテキストデータに対して、テキスト表示ルーチンを
実行し、再生する。テキスト表示ルーチンは、入力とし
てテキストデータを受け取り、そのデータを反映した内
容を表示装置に表示する。また、親PeriodicA
ctorの周期cycleに、テキスト再生ルーチン実
行時間(データ転送時間+表示時間)を設定する。
【0132】Finalize(TextActor
self)メソッドは、入力ストリームをクローズす
る。
【0133】図25に示すように、PeriodicA
ctorクラスを親クラスとするAnimationア
クタ(AnimationActor)は、時間に依存
したアニメーションを再生する周期アクタである。An
imationアクタは、インタンス変数として、st
reamを有する。
【0134】streamは、アニメーションデータを
供給する入力ストリームである。アニメーションデータ
には、表示すべきアニメーションのイメージデータ、イ
メージの種類(Pict,tiff,bitmapな
ど)、表示する位置、サイズなどの情報が含まれる。ス
トリームのフォーマットは特に限定しない。アニメーシ
ョンデータをCD−ROMやMD−DATAのような記
憶媒体から読み出す場合には、入力ストリームは、記憶
媒体中のアニメーションデータの位置と大きさを管理
し、オープン、クローズ、読み出しといった手続きを実
現する。また、ネットワークを介して、接続先のサーバ
からアニメーションデータが送られてくる場合にも同様
の手続きを実現する。
【0135】図25に示すように、Animation
アクタは、Initialize,Task,Fina
lizeのメソッドを有する。
【0136】Initialize(Animatio
nActor self)メソッドは、入力ストリーム
をオープンし、入力ストリーム内のバッファに、入力ス
トリーム中の適切なオフセット位置からのアニメーショ
ンデータの転送を開始する。
【0137】Task(AnimationActor
self)メソッドは、システム内のデータ転送用の
バッファ中の次に表示するアニメーションデータに対し
て、アニメーション表示ルーチンを実行し、再生する。
アニメーション表示ルーチンは、入力としてアニメーシ
ョンデータを受け取り、そのデータを反映した内容を表
示装置に表示する。また、親PeriodicActo
rの周期cycleに、アニメーション再生ルーチン実
行時間(データ転送時間+表示時間)を設定する。
【0138】Finalize(AnimationA
ctor self)メソッドは、入力ストリームをク
ローズする。
【0139】次に、時間オブジェクトを用いた応用例に
ついて説明するが、以下の応用例において、時間オブジ
ェクトを用いて記述されたアプリケーションは、図26
に示すようなシステム構成における再生端末上で実行さ
れるものとする。再生端末1は、動画、音声、テキス
ト、アニメーションを再生、表示する表示装置2に接続
される。また、再生端末1は、動画、音声などを記録し
たCD−ROMやMD−DATAなどの記憶媒体3にア
クセスすることができる。さらに、再生端末1は、ネッ
トワーク(同軸ケーブル、光ファイバ、コンピュータネ
ットワーク、電話回線など)5を介して、メディアを送
出するビデオサーバやオーディオサーバなどのサーバ4
にアクセスすることができる。
【0140】〔多国籍語カラオケ・アプリケーションの
例〕背景画、音、テキストがそれぞれ別の入力ストリー
ムからなるカラオケのアプリケーションを考える。テキ
ストデータを日本語や韓国語など複数用意し、それらを
切り替えることで多国籍語カラオケ・アプリケーション
が実現できる。入力ストリームは、アプリケーションの
再生端末1に接続された記憶媒体3(CD−ROMやM
D−DATAなど)から読み出しても良いし、ネットワ
ーク5を介して接続されたサーバ4から送られてきても
良い。背景画のみ、CD−ROMなどの記憶媒体3から
供給し、音とテキストは、ネットワーク5から送られて
くる場合も考えられる。いずれの組み合わせにおいて
も、適切な時間アクタと入力ストリームを組み合わせる
ことでカラオケを実現できる。背景画、音、テキストの
同期は、それらを再生する時間アクタが所属する世界オ
ブジェクトの実装において保証される。
【0141】1.このようなアプリケーションにおける
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクトw1を作成する(カラオケ再生用)。 w1をルート世界オブジェクトに所属させる。 ChangeWorld(w1,ルート世界オブジェク
ト) w1を休止状態にする。 Sleep(w1) 世界オブジェクトw2を作成する(準備用)。 w2をルート世界オブジェクトに所属させる。 ChangeWorld(w2,ルート世界オブジェク
ト) w2を休止状態にする。 Sleep(w2) MPEGアクタm1を作成する(背景画用)。 m1をw1に所属させる(図27(A))。 ChangeWorld(m1,w1) 音声アクタs1を作成する(カラオケ音声用)。 s1をw1に所属させる(図27(A))。 ChangeWorld(s1,w1) テキストアクタt1を作成する(日本語歌詞用)。 t1をw1に所属させる(図27(A))。 ChangeWorld(t1,w1) テキストアクタt2を作成する(韓国語歌詞用)(図2
7(B))。 t2をw2に所属させる。 ChangeWorld(t2,w2)
【0142】2.演奏の開始は、次のように記述でき
る。 世界オブジェクトw1を走行状態にする。 Wakeup(w1) これにより、図27(A)に示すように、背景画と日本
語の歌詞が表示され、同期した音声(伴奏音)が出力さ
れる。
【0143】3.韓国語に変換する操作は、次のように
記述できる。 t1をw2に所属させる。 ChangeWorld(t1,w2) t2をw1に所属させる。 ChangeWorld(t2,w1) t2をw1におけるw1の現在時刻にスケジュールす
る。 ScheduleAt(t2,CurrentTime
(w1)) これにより、図27(B)に示すように、歌詞が日本語
から韓国語に変更された表示となる。
【0144】4.演奏の一時停止は、次のように記述で
きる。 世界オブジェクトw1を休止状態にする。 Sleep(w1) これにより、ポーズ状態が実現される。
【0145】〔インタラクティブ・ストーリの分岐の
例〕メニューによってストーリを分岐させ、ユーザにそ
の先のストーリを選択させるインタラクティブ・ストー
リにおいて、ユーザにストーリを選択させた後、ユーザ
が選ばなかった方のストーリを子画面に早送りで再生す
るアプリケーションを考える。
【0146】1.このようなアプリケーションにおける
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクトw1を作成する(ストーリA用)。 w1をルート世界オブジェクトに所属させる。 ChangeWorld(w1,ルート世界オブジェク
ト) w1を休止状態にする。 Sleep(w1) 世界オブジェクトw2を作成する(ストーリB用)。 w2をルート世界オブジェクトに所属させる。 ChangeWorld(w2,ルート世界オブジェク
ト) w2を休止状態にする。 Sleep(w2) MPEGアクタm1を作成する(ストーリA用)(図2
8(A))。 m1をw1に所属させる。 ChangeWorld(m1,w1) 音声アクタs1を作成する(ストーリA用)(図28
(A))。 s1をw1に所属させる。 ChangeWorld(s1,w1) MPEGアクタm2を作成する(ストーリB用)(図2
8(A))。 m2をw2に所属させる。 ChangeWorld(m2,w2) 音声アクタs2を作成する(ストーリB用)。(図28
(A)) s2をw2に所属させる。 ChangeWorld(s2,w2)
【0147】2.分岐ストーリAが選択された後の効果
は、次のように記述できる。 世界オブジェクトw1を走行状態にする。 Wakeup(w1) 世界オブジェクトw2のratioを0.5にする。 世界オブジェクトw2を走行状態にする。 Wakeup(w2) 音声アクタs2を休止状態にする。 Sleep(s2) これにより、図28(B)に示すように、ストーリAの
画像と対応する音声が通常の速度で再生され、ストーリ
Bの画像が2倍の速度で表示され、それに対応する音声
は再生されない状態となる。
【0148】〔子供お絵書き用時間キャンバスの例〕時
間軸の概念を取り入れたお絵書きツールのアプリケーシ
ョンを考える。時間キャンバスには、ある時刻に対応し
た絵、音、およびテキストが表現できる。時間キャンバ
スには、標準の時間部品をドラッグし、かつドロップす
ることによって貼り付けることができる。時間部品は、
例えば、時間に従って、春夏秋冬のイメージに変化して
いく木のアニメーションである(図29)。子供がある
時刻に時間キャンバス上に春の木のイメージをドラッグ
し、かつドロップする。その後、時間キャンバスの時間
を進めると、木のイメージも変化していく。
【0149】1.このようなアプリケーションにおける
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクトw1を作成する(時間キャンバス
用)。 w1をルート世界オブジェクトに所属させる。 ChangeWorld(w1,ルート世界オブジェク
ト) w1を休止状態にする。 Sleep(w1) 世界オブジェクトw2を作成する(時間部品用)。 w2をルート世界オブジェクトに所属させる。 ChangeWorld(w2,ルート世界オブジェク
ト) w2を休止状態にする。 Sleep(w2) Animationアクタa1を作成する(時間部品
用)(図29)。 a1をw2に所属させる。 ChangeWorld(a1,w2)
【0150】2.任意の時刻t1の時間キャンバスを表
示するには、次のように記述する。w1を時刻t1にス
ケジュールする。 ScheduleAt(w1,t1) これにより、時間キャンバス上に、時刻t1の画像(背
景画像)が表示される。
【0151】3.任意の時刻t2の時間部品を表示する
には、次のように記述する。 w2を時刻t2にスケジュールする。 ScheduleAt(w2,t2) これにより、時刻t2の時間部品(木のアニメーショ
ン)が表示される。
【0152】4.時間部品を時間キャンバスに貼り付け
るには、次のように記述する。 w2をw1に所属させる。 ChangeWorld(w2,w1) これにより、図30に示すように、時刻t2の時間部品
(木のアニメーション)が時間キャンバス上に表示され
る。
【0153】以上、本発明をマルチメディアのデータを
同期して再生する場合を例として説明したが、本発明
は、これに限らず、複数のデータを任意のタイミングで
自由に出力させる場合に適用することが可能である。
【0154】
【発明の効果】以上の如く、請求項1に記載のデータ処
理装置および請求項8に記載のデータ処理方法によれ
ば、時間軸に沿って行われるメソッドを有する時間オブ
ジェクトを規定するとともに、自分自身に属する時間オ
ブジェクトのリストと、1つの時間を得るメソッドを有
する世界オブジェクトを、時間オブジェクトのサブクラ
スとして規定するようにしたので、多数のデータの時間
軸を自由に組み合わせた状態で簡単に管理することがで
き、複数のデータを任意のタイミングで出力させるプロ
グラムを迅速かつ容易に設計することが可能となる。
【図面の簡単な説明】
【図1】本発明のデータ処理装置におけるクラス階層を
説明する図である。
【図2】時間オブジェクトの構成を示す図である。
【図3】時間オブジェクトの状態遷移を表す図である。
【図4】世界オブジェクトの構成を示す図である。
【図5】時間オブジェクトの木構造を説明する図であ
る。
【図6】ratioとoffsetの関係を説明する図
である。
【図7】世界オブジェクトのCurrentTimeメ
ソッドのアルゴリズムを説明する図である。
【図8】世界オブジェクトのGetAbsOffset
メソッドのアルゴリズムを説明する図である。
【図9】世界オブジェクトのGetAbsRatioメ
ソッドのアルゴリズムを説明する図である。
【図10】世界オブジェクトのSleepメソッドのア
ルゴリズムを説明する図である。
【図11】世界オブジェクトのWakeupメソッドの
アルゴリズムを説明する図である。
【図12】世界オブジェクトのChangeWorld
メソッドのアルゴリズムを説明する図である。
【図13】図12のステップS51における処理を説明
する図である。
【図14】世界オブジェクトのScheduleAtメ
ソッドのアルゴリズムを説明する図である。
【図15】図14のステップS71における処理を説明
する図である。
【図16】時間アクタの構成を示す図である。
【図17】時間アクタのSleepメソッドのアルゴリ
ズムを説明する図である。
【図18】時間アクタのWakeupメソッドのアルゴ
リズムを説明する図である。
【図19】時間アクタのChangeWorldメソッ
ドのアルゴリズムを説明する図である。
【図20】周期アクタの構成を示す図である。
【図21】非周期アクタの構成を示す図である。
【図22】MPEGアクタの構成を示す図である。
【図23】Soundアクタの構成を示す図である。
【図24】Textアクタの構成を示す図である。
【図25】Animationアクタの構成を示す図で
ある。
【図26】本発明が適用されるシステムの構成例を示す
図である。
【図27】他国籍語カラオケ・アプリケーションの例を
示す図である。
【図28】インタラクティブ・ストーリのメニューの例
を示す図である。
【図29】子供用お絵書きツールの例を示す図である。
【図30】子供用お絵書きツールの他の例を示す図であ
る。
【符号の説明】
1 再生端末 2 表示装置 3 記憶媒体 4 サーバ 5 ネットワーク

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 時刻に対応してデータを処理するデータ
    処理装置において、 時間軸に沿って行われるメソッドを有する時間オブジェ
    クトと、 自分自身に属する前記時間オブジェクトのリストを有す
    るとともに、1つの時間軸を得るメソッドを有する、前
    記時間オブジェクトのサブクラスとしての世界オブジェ
    クトとを備えることを特徴とするデータ処理装置。
  2. 【請求項2】 前記時間オブジェクトは、 属する前記世界オブジェクトを設定するメソッドと、 属する前記世界オブジェクトを規定するインスタンス変
    数とを備えることを特徴とする請求項1に記載のデータ
    処理装置。
  3. 【請求項3】 前記世界オブジェクトは、自分自身が属
    する他の世界オブジェクトとしての親世界オブジェクト
    を設定するメソッドを備えることを特徴とする請求項1
    に記載のデータ処理装置。
  4. 【請求項4】 前記世界オブジェクトは、インスタンス
    変数として、 前記親世界オブジェクトの時刻に対するオフセットと、 前記親世界オブジェクトの時間の単位に対する自分自身
    の時間の単位の比とを備えることを特徴とする請求項3
    に記載のデータ処理装置。
  5. 【請求項5】 前記時間オブジェクトのサブクラスとし
    て、時間の経過に伴って、時系列データを出力する時間
    アクタをさらに備えることを特徴とする請求項1に記載
    のデータ処理装置。
  6. 【請求項6】 前記時間アクタは、インスタンス変数と
    して、活動を開始する活動開始時刻と、活動を終了する
    終了時刻とを有することを特徴とする請求項5に記載の
    データ処理装置。
  7. 【請求項7】 前記時間アクタは、そのサブクラスに、 前記活動開始時刻が到来すると自動的に呼び出され、前
    記活動終了時刻が到来するまで、所定の周期で実行され
    るメソッドを有する周期的アクタと、 前記活動開始時刻が到来すると自動的に呼び出され、前
    記活動終了時刻が到来するか、活動が終了するまで実行
    されるメソッドを有する非周期的アクタとを備えること
    を特徴とする請求項6に記載のデータ処理装置。
  8. 【請求項8】 時刻に対応してデータを処理するデータ
    処理方法において、 時間軸に沿って行われるメソッドを有する時間オブジェ
    クトを規定し、 自分自身に属する前記時間オブジェクトのリストを有す
    るとともに、1つの時間軸を得るメソッドを有する世界
    オブジェクトを、前記時間オブジェクトのサブクラスと
    して規定することを特徴とするデータ処理方法。
JP7170745A 1995-07-06 1995-07-06 データ処理装置および方法 Pending JPH0922565A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7170745A JPH0922565A (ja) 1995-07-06 1995-07-06 データ処理装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7170745A JPH0922565A (ja) 1995-07-06 1995-07-06 データ処理装置および方法

Publications (1)

Publication Number Publication Date
JPH0922565A true JPH0922565A (ja) 1997-01-21

Family

ID=15910609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7170745A Pending JPH0922565A (ja) 1995-07-06 1995-07-06 データ処理装置および方法

Country Status (1)

Country Link
JP (1) JPH0922565A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266240A (ja) * 1997-08-05 2009-11-12 At & T Corp ビデオと音とを整合させる方法および装置、コンピュータ可読媒体、ならびにデータを複合化する方法およびデコーダ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266240A (ja) * 1997-08-05 2009-11-12 At & T Corp ビデオと音とを整合させる方法および装置、コンピュータ可読媒体、ならびにデータを複合化する方法およびデコーダ

Similar Documents

Publication Publication Date Title
CN100488242C (zh) 根据字幕反复播放视频部分的方法和装置
US20060204214A1 (en) Picture line audio augmentation
US11653072B2 (en) Method and system for generating interactive media content
JPH10145762A (ja) 対話型マルチメディア文書のスタティックおよびダイナミック構成要素の提示を同期させる方法
CN101106770A (zh) 一种手机上制作带背景音乐的拍照动画的方法
CN101344883A (zh) 记录演示文稿的方法
US7554542B1 (en) Image manipulation method and system
JP4373466B2 (ja) 編集方法、コンピュータプログラム、編集システム及びメディア・プレーヤ
KR20070098362A (ko) 배경 음악을 동영상에 합성시키는 음성 합성 장치 및 방법
JPH0922565A (ja) データ処理装置および方法
JPH1195778A (ja) 同期映像生成方法およびそれを用いたカラオケ装置
CN110225279A (zh) 一种移动终端的视频制作系统和视频制作方法
JP2002073049A (ja) 音楽配信サーバ、音楽再生端末、及びサーバ処理プログラムを記憶した記憶媒体、端末処理プログラムを記憶した記憶媒体
JP2002008052A (ja) プレゼンテーションシステムおよび記録媒体
US20210390752A1 (en) Real-time animation motion capture
JP2865906B2 (ja) シナリオ従属データの記録方法及びシナリオ従属データ再生システム
JP3320056B2 (ja) カラオケ映像再生装置
JP2003271158A (ja) 画像変更機能を持つカラオケ装置及びプログラム
KR102524870B1 (ko) 미디 음악 기반의 안무 영상 콘텐츠 서비스 장치 및 방법과, 이를 기록한 컴퓨팅 장치에 의해 판독 가능한 기록매체
KR102391963B1 (ko) 사용자 체험 데이터에 기반한 소장품 제작 서비스 및 소장품 제작 서비스 제공 방법
KR200214587Y1 (ko) 에니메이션 속도 조절장치가 부착된 컴퓨터 음악반주기
Chunwijitra et al. Authoring tool for video-based content on WebELS learning system to support higher education
JP2000132150A (ja) 映像表示装置
JP4068915B2 (ja) 映像データ編集装置及び編集方法
JP2011082689A (ja) 動画作成装置、コンピュータプログラム及び記憶媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060816

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061026

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061117