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
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
Abstract
ができるようにする。 【構成】 時間軸に沿って行われるメソッドを有する時
間オブジェクト(TimedObject)を規定する
とともに、そのサブクラスとして世界オブジェクト(W
orld)と時間アクタ(TimedActor)を規
定する。世界オブジェクトは、自分自身に属する時間オ
ブジェクトのリストを有するとともに、1つの時間軸を
得るメソッドを有する。時間アクタは、周期アクタ(P
eriodicActor)と非周期アクタ(Spor
adicActor)とを有する。
Description
よび方法に関し、特にマルチメディアのデータを処理す
る場合に用いて好適なデータ処理装置および方法に関す
る。
大容量の記憶メディアに、音声データ動画像データ、静
止画データ、テキストデータ、コンピュータ・グラフィ
ックスデータなどを必要に応じて圧縮し、記録再生する
マルチメディアが普及しつつある。動画像データや静止
画データは、例えばMPEG方式で圧縮され、音声デー
タは、例えばADPCM,ATRACなどの方式で圧縮
される。また、音声データは、記録媒体や所定の伝送路
を介して、MIDI方式で授受される場合もある。
ては、マウス、キーボード、リモートコマンダなどの入
力デバイスを用いて、所定の指令を入力することで、例
えば所定の画像の再生を行っている最中に、その場面に
関係する他の任意の情報を取り出したり、再生状態を他
のモードに変更制御することができる。また、電話回線
などの通信回線を利用して、他の装置との間でデータを
授受し、画像を合成したりすることも可能である。
マルチメディアシステムにおいては、例えばその動画像
データと、それに付随する音声データとは、同期して再
生する必要がある。複数のデータを同期して再生するに
は、その再生状態を管理するプログラムが必要となる。
多数のデータの所定のものを任意に組み合わせ、任意の
タイミングで同期して再生させるには、それを制御する
プログラムが複雑となり、多くの手間と労力を必要とす
る。その結果、例えば、所定のデータを、ある場面にお
いては、倍速再生し、ある場面においては、通常の速度
で再生し、その状態を他のデータの再生と同期させたり
するといったような、時間軸を複雑に組み合わせるよう
な動作を実行させることは、実質的に困難であった。
ものであり、多数のデータの時間軸を簡単に管理するこ
とができるようにするものである。
処理装置は、時間軸に沿って行われるメソッドを有する
時間オブジェクトと、自分自身に属する時間オブジェク
トのリストを有するとともに、1つの時間軸を得るメソ
ッドを有する、時間オブジェクトのサブクラスとしての
世界オブジェクトとを備えることを特徴とする。
軸に沿って行なわれるメソッドを有する時間オブジェク
トを規定し、自分自身に属する時間オブジェクトのリス
トを有するとともに、1つの時間軸を得るメソッドを有
する世界オブジェクトを、時間オブジェクトのサブクラ
スとして規定することを特徴とする。
は、時間オブジェクトが時間軸に沿って行われるメソッ
ドを有し、時間オブジェクトのサブクラスとしての世界
オブジェクトが、自分自身に属する時間オブジェクトの
リストを有するとともに、1つの時間軸を得るメソッド
を有する。
は、時間軸に沿って行われるメソッドを有する時間オブ
ジェクトが規定され、かつ、自分自身に属する時間オブ
ジェクトのリストを有し、1つの時間軸を得るメソッド
を有する世界オブジェクトが、時間オブジェクトのサブ
クラスとして規定される。
アの再生を管理するアプリケーションプログラムが、デ
ータと手続きとを融合した論理的な単位としてのオブジ
ェクトとして記述される。このオブジェクトは、メッセ
ージの通信により駆動される。そして、このオブジェク
トは、共通情報を保持するクラス(class)と、個
々の値を保持するインスタンス(instance)と
に区分されるが、このクラスは、図1に示すように階層
化される。
軸に沿って動作するオブジェクトの抽象として、Tim
edObjectというクラスが規定される。そして、
このTimedObjectクラスのサブクラス(su
b class)として、複数のオブジェクトを含むこ
とができるWorldクラスと、実質的に動作する個々
のオブジェクトの抽象としてのTimedActorク
ラスが規定される。
ブクラスとして、PeriodicActorクラス
と、SporadicActorクラスとが規定され
る。そして、PeriodicActorのさらにサブ
クラスとして、MPEGActorクラス、Sound
Actorクラス、TextActorクラスおよびA
nimationActorクラスが、それぞれ規定さ
れる。従って、例えば、WorldクラスとTimed
Actorクラスの親クラス(parent clas
s)またはスーパークラス(super class)
がTimedObjectクラスということになる。サ
ブクラスのオブジェクトは、親クラスのオブジェクトの
性質を承継し、親クラスのオブジェクトのデータと手続
きを、メッセージによらずに参照することが可能とされ
る。
orldクラスおよびTimedActorクラスに対
応するオブジェクトを、それぞれ時間オブジェクト、世
界オブジェクトおよび時間アクタと適宜記述する。
rクラス、SporadicActorクラス、MPE
GActorクラス、SoundActorクラス、T
extActorクラスおよびAnimationAc
torクラスに対応するオブジェクトを、それぞれ周期
アクタ、非周期アクタ、MPEGアクタ、サウンドアク
タ、テキストアクタおよびアニメーションアクタと適宜
記述する。
t)は、時間が進むに従って、他のオブジェクトと並行
して動作するような並行オブジェクトである。時間オブ
ジェクトは、通常の並行オブジェクトとは異なり、メッ
セージの受信により起動されるだけでなく、時間の進行
によっても自らのメソッドを起動することができる。時
間オブジェクトは、時間軸に従って自分自身が行う動作
のスケジュールを持っている並行オブジェクトと考える
ことができる。スケジュール中に記述できる内容は、特
に限定されないが、他のオブジェクトへのメッセージ送
信、入出力処理、数値計算、記号処理などが含まれる。
間を進行させることができない。時間軸は、世界オブジ
ェクトによって規定されており、時間オブジェクトは、
世界オブジェクトに所属することで、初めて、自分自身
の時間を進行させることができる。自らが所属している
世界オブジェクトを親世界オブジェクトと呼ぶことにす
る。
いる。同図に示すように、時間オブジェクトの親クラス
は、所定のオブジェクトとされ、特に制限は存在しな
い。
は、status,pworld,sleptTime
である。
を指定する。時間オブジェクトの主な状態は、図3に示
すように、準備状態(Ready)、走行状態(Ru
n)、休止状態(Sleep)の3つであり、いずれか
1つの状態から他の1つの状態に遷移する。走行状態
は、時間オブジェクト内の時間が進行中である状態を示
す。休止状態は、時間オブジェクト内の時間が止まって
いる状態を示し、この状態では、時間軸に依存した動作
を行うことができない。準備状態は、どの世界オブジェ
クトにも所属していない状態(pworld変数に何も
指定されていない状態)であり、この状態は、時間オブ
ジェクトが生成された直後や、親世界オブジェクトを変
更する時などに一時的に発生する状態である。
の属する親世界オブジェクトが指定される。
ェクトが最後に休止状態になった時の時刻(自分の属す
る親世界オブジェクトの時刻)が指定される。Slep
tTimeは、時間オブジェクトが休止状態の時にのみ
意味を持つ値である。
Initialize,Finalize,Slee
p,Wakeup,SleepUntil,Chang
eWorldのメソッドを有する。
ect self)は、時間オブジェクトが生成される
と呼び出される、初期化のためのメソッドである。この
メソッドは、サブクラスによって実装される。
t self)は、時間オブジェクトが消滅すると呼び
出される、後処理のためのメソッドである。このメソッ
ドは、サブクラスによって実装される。
elf)は、時間オブジェクトを休止状態にするための
メソッドである。このメソッドは、サブクラスによって
実装される。
self)は、時間オブジェクトを走行状態するための
メソッドである。このメソッドは、サブクラスによって
実装される。
ject self,Worldnew)は、時間オブ
ジェクトの親世界オブジェクトを設定するメソッドであ
る。このメソッドは、サブクラスによって実装される。
orld)は、時間オブジェクト(TimedObje
ct)を親クラスとする、時間の流れ(時間軸)を管理
するオブジェクトである。時間オブジェクトは、それ自
身では時間を進行させることはできず、自分自身の時間
を進行させるためには、そのChangeWorldメ
ソッドを用いて、特定の時間軸、すなわちこの世界オブ
ジェクトに所属しなければならない。
らの時間オブジェクトを1つの(共通の)世界オブジェ
クトに所属させることによって実現される。世界オブジ
ェクトもまた、その時間を進行させるために、別の世界
オブジェクトに所属しなければならない。
規定される。 1.時間オブジェクトの集合は、世界オブジェクトへの
所属関係により木構造を構成する(図5参照)。 2.木構造の中間ノードは世界オブジェクトであり、葉
(リーフ)ノードは時間アクタである(図5参照)。 3.木構造の根(ルート)ノードは特殊な世界オブジェ
クトである「ルート世界オブジェクト」である(図5参
照)。ルート世界オブジェクトの時間軸は、我々が生活
している現実世界の時間軸と完全に一致する。 4.2つの世界オブジェクト間に所属関係があるとき、
これらの時間の流れは、offsetとratioとい
う2つのパラメータ(インスタンス変数)によって関連
付けられる(図6参照)。
オブジェクトW1,W2があり、W1にW2が所属して
いるとする。W1の時間軸をt1,W2の時間軸をt2
とすると、W2のoffsetは、t2の原点に対応す
るt1の時刻で表わされる。すなわち、t2の原点がル
ート世界時間(ルート世界オブジェクトの時間)のtに
対応するとき、そのtに対応するt1の時刻が、t2の
t1に対応するオフセット(offset)とされる。
に対するt2の単位時間u2の大きさの比(u2/u
1)で表わされる。特に、ルート世界オブジェクトのo
ffsetは0であり、ratioは1.0である。
インタンス変数として、offset,ratio,T
OListを有する。
て説明したパラメータに対応する。TOListは、こ
の世界オブジェクトに所属している時間オブジェクトの
リストである。
トは、メソッドとして、CurrentTime,Sl
eep,Wakeup,ChangeWorld,Sc
heduleAtを有する。
elf)は、世界オブジェクトself(自分自身)に
おける現在時刻を返すメソッドである。
タイムクロックを用いてオペレーティングシステムが提
供するが、ここでは、Nowというシステム関数によっ
てシステムの現在時刻が取得できるものとする。従っ
て、Nowの値は、ルート世界オブジェクトにおける時
刻(ルート世界時刻)と一致する。
リズムを図7に示す。ステップS1においては、関数N
owにより、現在時刻(ルート世界時刻)を得て、この
現在時刻をnowに設定する。
すように、ルート世界オブジェクトに対するオフセット
時間absOffsetを得る。 absOffset=GetAbsOffsetTim
e(self)
ように、ルート世界時間に対する時間の進む比率abs
Ratioを得る。 absRatio=GetAbsRatio(sel
f)
分自身の世界オブジェクトが休止状態であるか否かが判
定される。休止状態でない場合(走行状態または準備状
態の場合)においては、ステップS5に進み、次式に示
すように、世界オブジェクトの現在時刻timeを計算
する。 time=(now−absOffset)×AbsR
atio
り、absOffsetは、ステップS2で得た値であ
り、AbsRatioは、ステップS3で得た値であ
る。
ジェクトの現在時刻として、ステップS7において、例
えば、メッセージを出力したオブジェクトに対して返さ
れる。
世界オブジェクトが休止状態であると判定された場合に
おいては、ステップS6に進み、親の時間オブジェクト
に規定されているsleptTime(最後に休止状態
になったときの時刻)を得て、これをtimeに設定す
る。 time=sleptTime
6で得たtimeを出力する。
setを得るための関数GetAbsOffsetと、
ステップS3におけるabsRatioを得るための関
数GetAbsRatioの詳細は、図8のフローチャ
ートと図9のフローチャートに、それぞれ表されてい
る。
etの処理に際しては、最初にステップS11におい
て、absOffsetに0を初期設定し、world
に自分自身(世界オブジェクトself)を初期設定す
る。
11で設定されたworldは、ルート世界オブジェク
トであるか否かが判定される。ルート世界オブジェクト
である場合においては、上述したように、offset
の値は0である。そこで、ステップS16に進み、ステ
ップS11で設定したabsOffset(=0)を出
力する。
ート世界オブジェクトではないと判定された場合におい
ては、ステップS13に進み、worldに規定されて
いる世界オブジェクトのoffsetとratioを得
る。いまの場合、ステップS11において、world
にselfが設定されているため、自分自身の世界オブ
ジェクトのoffsetとratioが得られることに
なる。
する。 absOffset=offset+absOffse
t/ratio
ffsetを、ステップS13で得たratioで割算
し、その割算して得られた値に対して、ステップS13
で得たoffsetを加算し、その加算値をabsOf
fsetに設定する。
に規定されている世界オブジェクト(いまの場合、自分
自身)の親世界オブジェクト(時間オブジェクトのpw
orldに規定されている世界オブジェクト)をwor
ldに代入する。
の処理を繰り返し実行する。
ブジェクトに属し、その世界オブジェクトがさらに他の
世界オブジェクトに属するような場合、各親世界オブジ
ェクトに対するoffsetとratioを順次計算
し、最終的にルート世界オブジェクトに達するまで同様
の処理が行われる。そして、最終的に、absOffs
etとして、ルート世界オブジェクトの時間軸に対する
オフセットが出力されることになる。
においては、ステップS21において、absRati
oに1.0が初期設定され、worldに自分自身が初
期設定される。
ldに規定されている世界オブジェクトがルート世界オ
ブジェクトであるか否かが判定され、ルート世界オブジ
ェクトである場合においては、ステップS21において
設定されたabsRatio(いまの場合、1.0)を
出力する。
クトがルート世界オブジェクトではない場合において
は、ステップS22からステップS23に進み、wor
ldに規定されている世界オブジェクトのratioを
得る。
行う。 absRatio=absRatio×ratio
に規定されている世界オブジェクト(いまの場合、自分
自身の世界オブジェクト)の親世界オブジェクトとして
規定されているpworldの世界オブジェクトをwo
rldに代入する。
の処理を繰り返し実行する。
ェクトに対する世界オブジェクトのratioがabs
Ratioとして出力される。
orld self)は、世界オブジェクトselfが
走行状態である場合、これを休止状態にするメソッドで
ある。Sleepメソッドは、世界オブジェクトsel
fが休止状態または準備状態である場合には、何も処理
を行わない。世界オブジェクトselfが走行状態であ
る場合は、世界オブジェクトselfに所属する時間オ
ブジェクト全てに対してSleepを実行した後、自分
自身が休止状態に遷移する。
ズムを示す。最初にステップS31において、自分自身
の世界オブジェクトが休止状態または準備状態にあるか
否かを判定する。休止状態または準備状態にあるとき、
特に処理を行わず、終了する。
なわち走行状態であるとき、ステップS32に進み、自
分自身の世界オブジェクトに所属する各時間オブジェク
トに対して、Sleepを実行する。
ように、休止時刻を取得して、それをsleptTim
eに設定する。 sleptTime=CurrentTime(sel
f)
おける現在時刻をCurrentTimeメソッドで取
得し、その値をsleptTimeに設定する。
休止状態にし、処理を終了する。
(World self)は、世界オブジェクトsel
fが休止状態にあるとき、これを走行状態にするメソッ
ドである。Wakeupメソッドは、世界オブジェクト
selfが休止状態以外の場合(走行状態または準備状
態の場合)は、何も処理を行わない。世界オブジェクト
selfが休止状態である場合は、自分自身を走行状態
に遷移した後、世界オブジェクトselfに所属する時
間オブジェクト全てに対してWakeupを実行する。
リズムを示す。ステップS41においては、世界オブジ
ェクト自分自身が休止状態にあるか否かを判定し、休止
状態でない場合(走行状態または準備状態である場
合)、特に処理を行わず、終了する。
テップS42に進み、自分自身を走行状態にする。そし
てさらに、ステップS43に進み、次式に従って、of
fsetを補正する。 offset=offset+(CurrentTim
e(self)−sleptTime)×ratio
0のステップS33で記憶した休止時刻を減算し、得ら
れた結果に対してratioを乗算して、その乗算結果
をoffsetに加算した値をoffsetに設定す
る。
世界オブジェクトに所属している各時間オブジェクトに
対して、Wakeupを実行する。
orld(World self,World ne
w)は、世界オブジェクトselfと世界オブジェクト
newとの関係を規定するoffset,ratioを
計算した後、時間オブジェクトselfの親世界オブジ
ェクトを、世界オブジェクトnewに変更するメソッド
である。新しい親世界オブジェクトnewが休止状態で
あれば、自分自身に対してSleepメソッドを実行す
る。
ドのアルゴリズムを示す。最初にステップS51におい
て、世界オブジェクトnewへ移動した後の世界オブジ
ェクトselfのoffsetとratioを計算す
る。
オブジェクトoldから新しい世界オブジェクトnew
にルート世界オブジェクトの時刻tにおいて移動した場
合におけるoffsetと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)
ドGetAbsRatioメソッドを用いて取得した自
分自身の世界オブジェクトのratioと、新しい世界
オブジェクトnewのratioとの比が新たなrat
ioとなる。
ブジェクトnewに対するoffsetは、ルート世界
オブジェクトの時刻tに対応する世界オブジェクトse
lfと世界オブジェクトnewの時刻を、それぞれt_
selfまたはt_newとするとき、上記で得られた
ratioを用いて、次式で表される。 offset =t_new−t_self×ratio
wに対するoffsetとratioが計算されたと
き、次に、ステップS52に進み、それまで親世界オブ
ジェクトとしてpworldに規定されていた世界オブ
ジェクトを、世界オブジェクトoldとする。
52で設定されたそれまでの親世界オブジェクトである
世界オブジェクトoldの時間オブジェクトのリストT
OListから、世界オブジェクトselfを除去する
(世界オブジェクトselfは、新たな世界オブジェク
トnewへ属することになるので)。
準備状態にする。すなわち、statusにTO_Re
adyを設定する。
ジェクトnewの時間オブジェクトのリストTOLis
tに、世界オブジェクトselfを加える。そして、ス
テップS56においては、selfの親世界オブジェク
トにpworldをnewとする。さらに、ステップS
57で、statusにTO_Runを設定し、自分自
身を走行状態にする。
ェクトnewは休止状態であるか否かを判定し、休止状
態である場合においては、ステップS59に進み、世界
オブジェクトselfに対してSleepを実行する。
すなわち、Sleep(self)メソッドを実行す
る。
トnewが休止状態ではないと判定された場合において
は、ステップS59の処理はスキップされる(ステップ
S57で設定した走行状態のままとされる)。
eAt(World self,Time time)
は、世界オブジェクトselfの現在時刻を任意の時刻
timeに設定するメソッドである。このSchedu
leAtメソッドは、親世界オブジェクトに対するof
fsetを設定し直した後、世界オブジェクトself
に所属する時間オブジェクト全てに対してSchedu
leAtを実行する。
のアルゴリズムを示す。ステップS71においては、世
界オブジェクトselfの現在時刻が任意の時刻tim
eとなるように、selfのインスタンス変数offs
etを再設定する。
に、世界オブジェクトselfがその親の世界オブジェ
クトparentに対して、オフセットとしてoldO
ffsetを有するとする。このとき、ルート世界オブ
ジェクトにおける時刻tに対応する世界オブジェクトs
elfの時刻は、t_self_oldであり、世界オ
ブジェクトparentにおける時刻は、t_parと
なる。
現在時刻t_self_newを、世界オブジェクトs
elfの任意の時刻timeに設定する。このために
は、世界オブジェクトselfの任意の時刻timeが
現在時刻t_self_newと一致するように、Of
fsetをnewOffsetに再設定すれば良い。
offsetを次式に従って求め、設定する。 offset =CurrentTime(parent) −time×{(Unit_self)/(Unit_par)} =CurrentTime(parent) −time×ratio_self
arent)は、世界オブジェクトparentにおけ
る現在時刻t_parを表し、Unit_selfは、
世界オブジェクトselfにおける単位時間を表し、U
nit_parは、世界オブジェクトparentにお
ける単位時間を表し、ratio_selfは、世界オ
ブジェクトselfの世界オブジェクトparentに
対する単位時間の比率を表わしている。
て、任意の時刻timeに対応するoffsetが設定
されたときに、次にステップS72に進み、世界オブジ
ェクトselfに所属する各時間オブジェクトobjに
対して、objが世界オブジェクトのインスタンスであ
れば、ScheduleAt(obj,Current
Time(obj))を実行し、またobjが時間アク
タのインスタンスであれば、ScheduleAt(o
bj,time)を実行する。
(TimedActor)は、TimedObject
クラスを親クラスとし、時間が進むに従って時系列デー
タを生成するような時間オブジェクトである。時系列デ
ータの種類(型)には、音声、動画、アニメーションな
どが考えられる。時系列データの符号化や解釈の方法
は、そのデータ型に依存する。時間アクタが、どのよう
に時系列データを生成するかは任意である。
り当てられたデータ列を受け取ってもよいし、時刻に依
存する関数を用いてデータを計算しても良い。
は、beginning,endingのインスタンス
変数を有している。
刻を規定し、endingは、活動を終了する時刻を規
定する。
は、メソッドとして、Task,Sleep,Wake
up,ChangeWorled,ScheduleA
tを有している。
f)は、活動開始時刻beginningが来ると、自
動的に呼ばれ、selfを走行状態に遷移させた後、所
定の処理を実行する特別なメソッドである。このメソッ
ドは、サブクラスによって実装される。
lf)は、時間アクタself(自分自身)を休止状態
にするメソッドである。このSleepメソッドは、時
間アクタselfが休止状態または準備状態の場合は、
何も処理を行わないが、時間アクタselfが走行状態
である場合は、Taskメソッドを中断した後、時間ア
クタselfを休止状態に遷移させる。
ズムを示す。ステップS81においては、時間アクタs
elfが休止状態であるかまたは準備状態であるかが判
定される。休止状態または準備状態である場合において
は、特に処理が行われず、終了する。
状態ではない場合(走行状態である場合)、ステップS
82に進み、次式を演算して、休止時刻をsleptT
imeに設定する。 sleptTime=CurrentTime(pwo
rld)
世界オブジェクトpworldの現在時刻を求め、これ
をsleptTimeに設定する。
休止状態にし、ステップS84において、Taskメソ
ッドを中断する。
medActor self)は、時間アクタself
を走行状態にするメソッドである。Wakeupメソッ
ドは、時間アクタselfが休止状態以外の場合は、何
も処理を行わないが、時間アクタselfが休止状態で
ある場合は、それを走行状態に遷移させた後、中断して
いたTaskメソッドを再開させる。
リズムを示す。ステップS91においては、時間アクタ
selfが休止状態であるか否かを判定する。休止状態
でない場合(走行状態または準備状態である場合)、特
に処理を行わず、終了する。
においては、ステップS92に進み、Taskメソッド
を再開する。そして、ステップS93において、自分自
身を走行状態にする。
ld(TimedActor self,World
new)は、時間アクタselfの親世界オブジェクト
を新たな世界オブジェクトnewに変更するメソッドで
ある。新しい親世界オブジェクトが休止状態であれば、
自分自身に対してSleepメソッドを実行する。
ドのアルゴリズムを示す。この図19のステップS10
1乃至S107の処理は、基本的に図12に示したステ
ップS52乃至S58の処理と同様の処理である。ただ
し、図12に示すステップS51の処理が、図19のフ
ローチャートにおいては、省略されている。対象となる
オブジェクトが、図12における場合においては、世界
オブジェクトselfであるのに対し、図19のフロー
チャートにおいては、時間アクタselfである点を除
き、図12における場合と同様の処理であるから、その
説明は省略する。
t(TimedActor self,Time ti
me)は、Taskメソッドを中止し、活動開始時刻b
eginningに任意の時刻timeを設定した後、
時間アクタを休止状態に遷移させるメソッドである。こ
のメソッドにより、活動開始時刻timeになると、T
askメソッドが再開される。
medActorを有する周期アクタ(Periodi
cActor)は、指定された周期に従ってtaskメ
ソッドを実行する時間アクタである。
ycleを有する。cycleには、周期アクタが活動
を繰り返す周期が設定される。
askを有する。Task(PeriodicActo
r self)は、活動開始時刻beginning
(親TimedActorに規定されている)が来る
と、自動的に呼ばれ、所定の処理を実行するメソッドで
ある。それ以後、終了時刻ending(親Timed
Actorに規定されている)が来るまで、cycle
に指定された周期に従ってtaskメソッドが呼ばれ
る。このメソッドは、サブクラスによって実装される。
rクラスを親クラスとする非周期アクタ(Sporad
icActor)は、活動開始時刻beginning
(親TimedActorに規定されている)が来ると
taskメソッドを実行する時間アクタである。tas
kメソッドが終了するか、あるいは終了時刻endin
g(親TimedActorに規定されている)が過ぎ
ると活動を停止する。
ctorクラスを親クラスとするMPEGアクタ(MP
EGActor)は、MPEG動画を再生する周期アク
タである。
て、streamを有する。streamは、MPEG
データを供給する入力ストリームである。MPEGデー
タをCD−ROMやMD−DATAのような記憶媒体か
ら読み出す場合には、入力ストリームは、記憶媒体中の
MPEGデータの位置と大きさを管理し、オープン、ク
ローズ、読み出しといった手続きを実現する。また、ネ
ットワークを介して、接続されたサーバからMPEGデ
ータが送られてくる場合にも同様の手続きを実現する。
Initialize,Task,Finalizeの
メソッドを有する。
r self)メソッドは、入力ストリームをオープン
し、システム内のデータ転送用のバッファに、入力スト
リーム中の適切なオフセット位置からのMPEGデータ
の転送を開始する。
f)メソッドは、データ転送用のバッファ中の次に再生
するGOP(Group of Picture)分の
MPEGデータに対して、MPEG再生ルーチンを実行
し、再生する。MPEG再生ルーチンは、入力としてM
PEGデータを受け取り、それをデコーダバッファに転
送して、動画を再生する。また、親PeriodicA
ctorの周期cycleに、MPEG再生ルーチン実
行時間(データ転送時間+GOP再生時間)を設定し直
す。
ブジェクトのルート世界オブジェクトに対するrati
oが1でない場合は、例えばI(イントラ)フレームと
それを再生する時間の対応表を予め作っておき、現在時
刻に一番近い時刻のIフレームを表示するようにするこ
とによって、早送り再生、スロー再生、巻戻し再生が実
現できる。
self)メソッドは、入力ストリームをクローズす
る。
ctorクラスを親クラスとするSoundアクタ(S
oundActor)は、音声を再生する周期アクタで
ある。Soundアクタは、インタンス変数として、s
treamを有する。
力ストリームである。音声データには、サンプリングデ
ータの他に、サンプリング情報(サンプル・サイズ、周
波数)や、サウンドの種類(PCM,ADPCM,MI
DI)などが含まれる。ストリームのフォーマットは特
に限定しない。音声データをCD−ROMやMD−DA
TAのような記憶媒体から読み出す場合には、入力スト
リームは、記憶媒体中のMPEGデータの位置と大きさ
を管理し、オープン、クローズ、読み出しといった手続
きを実現する。また、ネットワークを介して、接続され
たサーバから音声データが送られてくる場合にも同様の
手続きを実現する。
は、Initialize,Task,Finaliz
eのメソッドを有する。
or self)メソッドは、入力ストリームをオープ
ンし、システム内のデータ転送用のバッファに、入力ス
トリーム中の適切なオフセット位置からの音声データの
転送を開始する。
f)メソッドは、データ転送用のバッファ中の次に再生
するGOS(Group of Sound)分の音声
データに対して、音声再生ルーチンを実行し、再生す
る。音声再生ルーチンは、入力として音声データを受け
取り、それをデコーダバッファに転送して、音声を再生
する。また、親PeriodicActorの周期cy
cleに、音声再生ルーチン実行時間(データ転送時間
+GOS再生時間)を設定し直す。
ェクトのルート世界オブジェクトに対するratioが
1でない場合は、例えば音声データを間引きしたり、再
生周波数を調整するなどして、早送り再生、スロー再生
が実現できる。
self)メソッドは、入力ストリームをクローズす
る。
ctorクラスを親クラスとするTextアクタ(Te
xtActor)は、時間に依存したテキストを再生す
る周期アクタである。Textアクタは、インタンス変
数として、streamを有する。
る入力ストリームである。テキストデータには、表示す
べき時間、テキストの文字列、表示する位置、サイズ、
フォントなどの情報が含まれる。ストリームのフォーマ
ットは特に限定しない。テキストデータをCD−ROM
やMD−DATAのような記憶媒体から読み出す場合に
は、入力ストリームは、記憶媒体中のMPEGデータの
位置と大きさを管理し、オープン、クローズ、読み出し
といった手続きを実現する。また、ネットワークを介し
て、接続されたサーバからテキストデータが送られてく
る場合にも同様の手続きを実現する。
Initialize,Task,Finalizeの
メソッドを有する。
r self)メソッドは、入力ストリームをオープン
し、システム内のデータ転送用のバッファに、入力スト
リーム中の適切なオフセット位置からのテキストデータ
の転送を開始する。
f)メソッドは、データ転送用のバッファ中の次に表示
するテキストデータに対して、テキスト表示ルーチンを
実行し、再生する。テキスト表示ルーチンは、入力とし
てテキストデータを受け取り、そのデータを反映した内
容を表示装置に表示する。また、親PeriodicA
ctorの周期cycleに、テキスト再生ルーチン実
行時間(データ転送時間+表示時間)を設定する。
self)メソッドは、入力ストリームをクローズす
る。
ctorクラスを親クラスとするAnimationア
クタ(AnimationActor)は、時間に依存
したアニメーションを再生する周期アクタである。An
imationアクタは、インタンス変数として、st
reamを有する。
供給する入力ストリームである。アニメーションデータ
には、表示すべきアニメーションのイメージデータ、イ
メージの種類(Pict,tiff,bitmapな
ど)、表示する位置、サイズなどの情報が含まれる。ス
トリームのフォーマットは特に限定しない。アニメーシ
ョンデータをCD−ROMやMD−DATAのような記
憶媒体から読み出す場合には、入力ストリームは、記憶
媒体中のアニメーションデータの位置と大きさを管理
し、オープン、クローズ、読み出しといった手続きを実
現する。また、ネットワークを介して、接続先のサーバ
からアニメーションデータが送られてくる場合にも同様
の手続きを実現する。
アクタは、Initialize,Task,Fina
lizeのメソッドを有する。
nActor self)メソッドは、入力ストリーム
をオープンし、入力ストリーム内のバッファに、入力ス
トリーム中の適切なオフセット位置からのアニメーショ
ンデータの転送を開始する。
self)メソッドは、システム内のデータ転送用の
バッファ中の次に表示するアニメーションデータに対し
て、アニメーション表示ルーチンを実行し、再生する。
アニメーション表示ルーチンは、入力としてアニメーシ
ョンデータを受け取り、そのデータを反映した内容を表
示装置に表示する。また、親PeriodicActo
rの周期cycleに、アニメーション再生ルーチン実
行時間(データ転送時間+表示時間)を設定する。
ctor self)メソッドは、入力ストリームをク
ローズする。
ついて説明するが、以下の応用例において、時間オブジ
ェクトを用いて記述されたアプリケーションは、図26
に示すようなシステム構成における再生端末上で実行さ
れるものとする。再生端末1は、動画、音声、テキス
ト、アニメーションを再生、表示する表示装置2に接続
される。また、再生端末1は、動画、音声などを記録し
たCD−ROMやMD−DATAなどの記憶媒体3にア
クセスすることができる。さらに、再生端末1は、ネッ
トワーク(同軸ケーブル、光ファイバ、コンピュータネ
ットワーク、電話回線など)5を介して、メディアを送
出するビデオサーバやオーディオサーバなどのサーバ4
にアクセスすることができる。
例〕背景画、音、テキストがそれぞれ別の入力ストリー
ムからなるカラオケのアプリケーションを考える。テキ
ストデータを日本語や韓国語など複数用意し、それらを
切り替えることで多国籍語カラオケ・アプリケーション
が実現できる。入力ストリームは、アプリケーションの
再生端末1に接続された記憶媒体3(CD−ROMやM
D−DATAなど)から読み出しても良いし、ネットワ
ーク5を介して接続されたサーバ4から送られてきても
良い。背景画のみ、CD−ROMなどの記憶媒体3から
供給し、音とテキストは、ネットワーク5から送られて
くる場合も考えられる。いずれの組み合わせにおいて
も、適切な時間アクタと入力ストリームを組み合わせる
ことでカラオケを実現できる。背景画、音、テキストの
同期は、それらを再生する時間アクタが所属する世界オ
ブジェクトの実装において保証される。
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクト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)
る。 世界オブジェクトw1を走行状態にする。 Wakeup(w1) これにより、図27(A)に示すように、背景画と日本
語の歌詞が表示され、同期した音声(伴奏音)が出力さ
れる。
記述できる。 t1をw2に所属させる。 ChangeWorld(t1,w2) t2をw1に所属させる。 ChangeWorld(t2,w1) t2をw1におけるw1の現在時刻にスケジュールす
る。 ScheduleAt(t2,CurrentTime
(w1)) これにより、図27(B)に示すように、歌詞が日本語
から韓国語に変更された表示となる。
きる。 世界オブジェクトw1を休止状態にする。 Sleep(w1) これにより、ポーズ状態が実現される。
例〕メニューによってストーリを分岐させ、ユーザにそ
の先のストーリを選択させるインタラクティブ・ストー
リにおいて、ユーザにストーリを選択させた後、ユーザ
が選ばなかった方のストーリを子画面に早送りで再生す
るアプリケーションを考える。
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクト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)
は、次のように記述できる。 世界オブジェクトw1を走行状態にする。 Wakeup(w1) 世界オブジェクトw2のratioを0.5にする。 世界オブジェクトw2を走行状態にする。 Wakeup(w2) 音声アクタs2を休止状態にする。 Sleep(s2) これにより、図28(B)に示すように、ストーリAの
画像と対応する音声が通常の速度で再生され、ストーリ
Bの画像が2倍の速度で表示され、それに対応する音声
は再生されない状態となる。
間軸の概念を取り入れたお絵書きツールのアプリケーシ
ョンを考える。時間キャンバスには、ある時刻に対応し
た絵、音、およびテキストが表現できる。時間キャンバ
スには、標準の時間部品をドラッグし、かつドロップす
ることによって貼り付けることができる。時間部品は、
例えば、時間に従って、春夏秋冬のイメージに変化して
いく木のアニメーションである(図29)。子供がある
時刻に時間キャンバス上に春の木のイメージをドラッグ
し、かつドロップする。その後、時間キャンバスの時間
を進めると、木のイメージも変化していく。
時間オブジェクトの作成は、次のように記述できる。 世界オブジェクトw1を作成する(時間キャンバス
用)。 w1をルート世界オブジェクトに所属させる。 ChangeWorld(w1,ルート世界オブジェク
ト) w1を休止状態にする。 Sleep(w1) 世界オブジェクトw2を作成する(時間部品用)。 w2をルート世界オブジェクトに所属させる。 ChangeWorld(w2,ルート世界オブジェク
ト) w2を休止状態にする。 Sleep(w2) Animationアクタa1を作成する(時間部品
用)(図29)。 a1をw2に所属させる。 ChangeWorld(a1,w2)
示するには、次のように記述する。w1を時刻t1にス
ケジュールする。 ScheduleAt(w1,t1) これにより、時間キャンバス上に、時刻t1の画像(背
景画像)が表示される。
には、次のように記述する。 w2を時刻t2にスケジュールする。 ScheduleAt(w2,t2) これにより、時刻t2の時間部品(木のアニメーショ
ン)が表示される。
るには、次のように記述する。 w2をw1に所属させる。 ChangeWorld(w2,w1) これにより、図30に示すように、時刻t2の時間部品
(木のアニメーション)が時間キャンバス上に表示され
る。
同期して再生する場合を例として説明したが、本発明
は、これに限らず、複数のデータを任意のタイミングで
自由に出力させる場合に適用することが可能である。
理装置および請求項8に記載のデータ処理方法によれ
ば、時間軸に沿って行われるメソッドを有する時間オブ
ジェクトを規定するとともに、自分自身に属する時間オ
ブジェクトのリストと、1つの時間を得るメソッドを有
する世界オブジェクトを、時間オブジェクトのサブクラ
スとして規定するようにしたので、多数のデータの時間
軸を自由に組み合わせた状態で簡単に管理することがで
き、複数のデータを任意のタイミングで出力させるプロ
グラムを迅速かつ容易に設計することが可能となる。
説明する図である。
る。
である。
ソッドのアルゴリズムを説明する図である。
メソッドのアルゴリズムを説明する図である。
ソッドのアルゴリズムを説明する図である。
ルゴリズムを説明する図である。
アルゴリズムを説明する図である。
メソッドのアルゴリズムを説明する図である。
する図である。
ソッドのアルゴリズムを説明する図である。
する図である。
ズムを説明する図である。
リズムを説明する図である。
ドのアルゴリズムを説明する図である。
ある。
図である。
示す図である。
を示す図である。
る。
Claims (8)
- 【請求項1】 時刻に対応してデータを処理するデータ
処理装置において、 時間軸に沿って行われるメソッドを有する時間オブジェ
クトと、 自分自身に属する前記時間オブジェクトのリストを有す
るとともに、1つの時間軸を得るメソッドを有する、前
記時間オブジェクトのサブクラスとしての世界オブジェ
クトとを備えることを特徴とするデータ処理装置。 - 【請求項2】 前記時間オブジェクトは、 属する前記世界オブジェクトを設定するメソッドと、 属する前記世界オブジェクトを規定するインスタンス変
数とを備えることを特徴とする請求項1に記載のデータ
処理装置。 - 【請求項3】 前記世界オブジェクトは、自分自身が属
する他の世界オブジェクトとしての親世界オブジェクト
を設定するメソッドを備えることを特徴とする請求項1
に記載のデータ処理装置。 - 【請求項4】 前記世界オブジェクトは、インスタンス
変数として、 前記親世界オブジェクトの時刻に対するオフセットと、 前記親世界オブジェクトの時間の単位に対する自分自身
の時間の単位の比とを備えることを特徴とする請求項3
に記載のデータ処理装置。 - 【請求項5】 前記時間オブジェクトのサブクラスとし
て、時間の経過に伴って、時系列データを出力する時間
アクタをさらに備えることを特徴とする請求項1に記載
のデータ処理装置。 - 【請求項6】 前記時間アクタは、インスタンス変数と
して、活動を開始する活動開始時刻と、活動を終了する
終了時刻とを有することを特徴とする請求項5に記載の
データ処理装置。 - 【請求項7】 前記時間アクタは、そのサブクラスに、 前記活動開始時刻が到来すると自動的に呼び出され、前
記活動終了時刻が到来するまで、所定の周期で実行され
るメソッドを有する周期的アクタと、 前記活動開始時刻が到来すると自動的に呼び出され、前
記活動終了時刻が到来するか、活動が終了するまで実行
されるメソッドを有する非周期的アクタとを備えること
を特徴とする請求項6に記載のデータ処理装置。 - 【請求項8】 時刻に対応してデータを処理するデータ
処理方法において、 時間軸に沿って行われるメソッドを有する時間オブジェ
クトを規定し、 自分自身に属する前記時間オブジェクトのリストを有す
るとともに、1つの時間軸を得るメソッドを有する世界
オブジェクトを、前記時間オブジェクトのサブクラスと
して規定することを特徴とするデータ処理方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009266240A (ja) * | 1997-08-05 | 2009-11-12 | At & T Corp | ビデオと音とを整合させる方法および装置、コンピュータ可読媒体、ならびにデータを複合化する方法およびデコーダ |
-
1995
- 1995-07-06 JP JP7170745A patent/JPH0922565A/ja active Pending
Cited By (1)
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 |