JPH10134030A - マルチメディアデータ・プレゼンテーションシステムおよび方法 - Google Patents

マルチメディアデータ・プレゼンテーションシステムおよび方法

Info

Publication number
JPH10134030A
JPH10134030A JP12390897A JP12390897A JPH10134030A JP H10134030 A JPH10134030 A JP H10134030A JP 12390897 A JP12390897 A JP 12390897A JP 12390897 A JP12390897 A JP 12390897A JP H10134030 A JPH10134030 A JP H10134030A
Authority
JP
Japan
Prior art keywords
execution
script
multimedia data
objects
script file
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.)
Withdrawn
Application number
JP12390897A
Other languages
English (en)
Inventor
Akiko Kanetani
朗子 金谷
Kouki Katou
光幾 加藤
Hiroshi Ishikawa
博 石川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP12390897A priority Critical patent/JPH10134030A/ja
Publication of JPH10134030A publication Critical patent/JPH10134030A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】 マルチメディアデータの複雑なプレゼンテー
ションを、効率よく自動的に実行することが課題であ
る。 【解決手段】 プレゼンテーションのシナリオを記述し
たスクリプトファイルxxxx.scrに対応するオブ
ジェクトs1を起動すると、指定されたキーワード“相
撲”を有するビューオブジェクトv1、v2が検索さ
れ、これらに対応する実行用オブジェクトex1、ex
2が生成される。ex1、ex2には、それらのsta
rtTime属性に記述された時刻0に、operat
ion属性に記述された手続き“play”がそれぞれ
適用され、v1、v2に対応するビデオデータが同時に
再生開始される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
データベースに格納された多様なマルチメディアデータ
を自由に組合せて、複雑なプレゼンテーションを実行す
ることの可能なマルチメディアデータ・プレゼンテーシ
ョンシステムおよびその方法に関する。
【0002】
【従来の技術】近年、盛んに利用されるようになったマ
ルチメディアの蓄積、検索、再生を統合して行うプラッ
トフォームとして、マルチメディアデータベースが著し
い発展を果たしつつある。
【0003】マルチメディアデータベースは、テキス
ト、グラフィックス、動画像、音声など性質が異なる多
様なメディアに対し、データの符号化などの各メディア
に特有な操作をユーザから隠蔽することにより、各メデ
ィアを統合的に扱えるようにしたデータベースである。
【0004】オブジェクト指向データベースを利用した
マルチメディアデータベースでは、各メディアのデータ
は、対応するオブジェクトを介してアクセスされる。こ
こで、オブジェクトとは、データとそれに適用される手
続きの組みを表し、これを用いることにより、多様なメ
ディアを同等に扱うことが可能になる。
【0005】このようなマルチメディアデータベースに
格納されるマルチメディアデータの大きな特徴の1つ
は、動画像、音声などの膨大なデータ量の時系列データ
を含んでいることである。これらの時間に関して連続し
た連続メディアデータは、適切な再生スピード(例え
ば、動画像を記録した時と同じピクチャレート)で再生
する必要がある。
【0006】また、動画像と音声とを同時に出力したり
する場合などにおいて、メディア間の同期を取るため
に、指定時刻から正確に再生を開始する必要があり、再
生中に処理の遅延が許されないという要求もある。
【0007】さらに、マルチメディアデータを検索した
結果として、複数の動画像を同時に表示する場合、膨大
なデータの復号にコンピュータの資源を大量に用いるた
め、資源の適切な配分を行う必要がある。
【0008】マルチメディアデータのプレゼンテーショ
ンには、このような要求を満たしつつ、データを部分的
に表示したり、複数のデータを同時に、あるいは連続的
に表示するなどの機能が必要になる。また、ユーザの希
望に応じて、例えば複数の連続メディアデータの再生を
同時に開始/終了させたり、逐次的に連続して実行した
りするような複雑な組合せのプレゼンテーションも考え
られる。
【0009】ところで、従来のマルチメディアデータベ
ースにおいては、1種類の内容(コンテンツ)に対して
品質の異なる複数の実体データが格納される場合があ
る。例えば、同一の内容のデータにおいて、フォーマッ
トの違いや時系列データの再生レートの違い、あるいは
イメージデータの表示サイズの違いにより、品質の異な
る複数のデータが存在し、必要に応じていずれかが使用
される。
【0010】しかし、上述のような複雑な組合せのプレ
ゼンテーションにおいては、資源の制約などから使用で
きるデータが制限される場合があり、メディア毎に使用
データを選択する処理が複雑になる。
【0011】
【発明が解決しようとする課題】上述のような従来のマ
ルチメディアデータベースには次のような問題がある。
従来は、オーサリングツールとしてデータの切り貼り等
の編集を行うソフトウェアツールはあるが、マルチメデ
ィアデータの一部分をデータベースから検索して組み合
わせたり、その編集結果をデータベースに格納して再利
用する機構はない。また、複雑な組合せのプレゼンテー
ションを実行する場合に、資源の制約を考慮して、複数
のデータから適切なデータを自動的に選択するという機
構も存在しない。
【0012】このため、様々な形態のマルチメディアデ
ータを柔軟に組み合わせて利用することが難しく、それ
らを組み合わせて利用する場合は、すべてのデータを複
製し直す処理が必要になる。また、複雑な構成のプレゼ
ンテーションにおいて、資源の制約を満たす適切なデー
タを選択することが極めて困難である。
【0013】本発明は、マルチメディアデータを格納し
たオブジェクト指向データベースシステムにおいて、複
雑なプレゼンテーションを効率よく自動的に実行するマ
ルチメディアデータ・プレゼンテーションシステムおよ
びその方法を提供することを目的とする。
【0014】
【課題を解決するための手段】図1は、本発明のマルチ
メディアデータ・プレゼンテーションシステムの原理図
である。図1のマルチメディアデータ・プレゼンテーシ
ョンシステムは、記憶手段1、生成手段2、および実行
手段3を備える。
【0015】記憶手段1は、マルチメディアデータの組
合せ方法を含むプレゼンテーションのシナリオを記述し
たスクリプトファイルと、そのスクリプトファイルから
生成される実行用オブジェクトと、その実行用オブジェ
クトに対応するマルチメディアデータとを記憶する。
【0016】生成手段2は、上記スクリプトファイルを
解析して、上記プレゼンテーションに必要な上記実行用
オブジェクトを生成する。実行手段3は、上記実行用オ
ブジェクトを起動して、その実行用オブジェクトに対応
する上記マルチメディアデータを出力する。
【0017】プレゼンテーションにおけるマルチメディ
アデータの組合せ方法としては、例えば、動画像と音声
を同時に再生したり、2つ以上の異なる動画像を連続し
て再生するなどの様々なバリエーションが考えられる。
ユーザは、このような組合せ方法と実行時間の制御方法
等を含むシナリオを記述したスクリプト情報をシステム
に入力し、入力されたスクリプト情報はスクリプトファ
イルとして記憶手段1に格納される。
【0018】次に、生成手段2は、スクリプトファイル
に記述されたシナリオを解析して、組み合わされたマル
チメディアデータを自動的に実行するための実行用オブ
ジェクトを生成し、記憶手段1に格納する。
【0019】次に、実行手段3は、実行用オブジェクト
を起動することで、それに対応付けられたマルチメディ
アデータを記憶手段1から検索し、シナリオ通りに表示
装置等に出力する。
【0020】このように、シナリオに基づいて個々のマ
ルチメディアデータに対応付けられた実行用オブジェク
トを生成すれば、それらの実行用オブジェクトを起動す
ることで、自動的にシナリオ通りのプレゼンテーション
が実現される。したがって、多数のマルチメディアデー
タを複雑に組み合わせたシナリオであっても、ユーザが
意識することなく、効率のよいデータ再生が行われる。
【0021】また、記憶手段1は、さらに上記実行用オ
ブジェクトに対応するマルチメディアデータの内容を表
すコンテンツオブジェクトと、そのコンテンツオブジェ
クトに対応付けられ、そのマルチメディアデータの品質
を表す1つ以上のストリームオブジェクトとを記憶し、
実行手段3は、その実行用オブジェクトを参照して、使
用するマルチメディアデータの品質を決定する。
【0022】コンテンツオブジェクトは、例えば、テキ
スト、グラフィックス、動画像、音声などのマルチメデ
ィアデータの種類と、実行時間長と、検索に用いられる
キーワード等の内容を表し、ストリームオブジェクト
は、例えば、表示サイズや再生レート等のマルチメディ
アデータの品質を表す。
【0023】通常、1つのコンテンツオブジェクトに
は、品質の異なる複数のストリームオブジェクトが対応
付けられ、ストリームオブジェクトとマルチメディアデ
ータとは1対1に対応付けられている。あるコンテンツ
オブジェクトが表す内容を出力するためにどのストリー
ムオブジェクトに対応するマルチメディアデータを用い
るかは、後述する実施の形態で説明するように、同時に
再生される内容と計算機資源の制約等を考慮して自動的
に決定される。
【0024】こうして、1つ以上のストリームオブジェ
クトから選択されたストリームオブジェクトの識別情報
が対応する実行用オブジェクトに保持され、実行手段3
は、その識別情報から、使用するマルチメディアデータ
の品質を決定することができる。これにより、適切な品
質のマルチメディアデータを用いて、シナリオ通りのプ
レゼンテーションが自動的に行われる。
【0025】また、生成手段2は、上記スクリプトファ
イルに対応するスクリプトオブジェクトを生成して記憶
手段1に格納し、そのスクリプトオブジェクトを起動す
ることにより、上記実行用オブジェクトを生成し、さら
に実行手段3にその実行用オブジェクトを起動させる。
【0026】スクリプトオブジェクトには、それを実行
するための手続きを作用させることができ、スクリプト
オブジェクトを実行すると、スクリプトファイルの解析
と、実行用オブジェクトの生成および実行の一連の処理
が自動的に行われる。これにより、スクリプトファイル
を利用したプレゼンテーションが完全に自動化される。
【0027】また、スクリプトオブジェクトには、関連
するすべての実行用オブジェクトの識別情報を保持させ
ることもでき、実行手段3は、その識別情報により指定
される実行用オブジェクトを起動すればよい。
【0028】このように、スクリプトファイルをオブジ
ェクトとして扱うことで、それに手続きを適用すること
が可能になる。特に、スクリプトオブジェクトをコンテ
ンツオブジェクトと同様に扱えば、コンテンツオブジェ
クトに対して適用可能な時間制御等の任意の手続きを、
スクリプトオブジェクトにも適用することができるよう
になる。
【0029】このような性質を利用して、スクリプトオ
ブジェクトを別のスクリプトファイル内に記述すれば、
スクリプトファイルを入れ子構造で作成することが可能
になり、既存のスクリプトファイルの再利用が実現され
る。これにより、個々のスクリプトファイルを構成単位
として各スクリプトファイルのシナリオを組み合わせ、
より複雑なプレゼンテーションのシナリオを作成するこ
とが可能になる。
【0030】例えば、図1の記憶手段1は、実施形態に
おける図2のマルチメディアデータ格納部11、ストリ
ームオブジェクト格納部12、コンテンツオブジェクト
格納部13、スクリプトファイル格納部14、スクリプ
トオブジェクト格納部15、および実行用オブジェクト
格納部16に対応し、生成手段2はスクリプト管理部1
7に対応し、実行手段3はスクリプト実行部18に対応
する。
【0031】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。本発明においては、
多様なマルチメディアデータを複雑に組み合わせてプレ
ゼンテーションを行うために、プレゼンテーションのシ
ナリオを記述したスクリプトを利用する。このプレゼン
テーションのシナリオには、プレゼンテーションに用い
るマルチメディアデータまたはその検索条件、マルチメ
ディアデータの時間的な組合せ方法、マルチメディアデ
ータの出力方法等が含まれる。
【0032】また、上述のシナリオをより単純化するた
めに、個々のスクリプトをパッケージ化してデータベー
スに保存し、別のスクリプト内で再利用する機構を設け
る。そのために、マルチメディアデータを、その内容を
表すオブジェクト(コンテンツオブジェクト)を介して
扱い、スクリプト自身もオブジェクト(スクリプトオブ
ジェクト)としてコンテンツオブジェクトと同様に扱
う。
【0033】これにより、スクリプトを入れ子構造で記
述することができ、既に存在するスクリプトを用いて、
より複雑なプレゼンテーションのシナリオを新たに作成
することが可能になる。
【0034】また、スクリプトオブジェクトに対して手
続きを適用することにより、間接的に、そのスクリプト
から派生するコンテンツオブジェクトに、その手続きが
適用される。このように、スクリプトオブジェクトを用
いれば、実際にコンテンツを記述しなくても手続きを適
用することができるようになる。
【0035】そして、スクリプトに記述されたプレゼン
テーションを実行する際には、スクリプトに記述された
すべてのコンテンツオブジェクトについて、それを参照
可能であって、かつ、実行開始時刻の属性を持つ実行用
クラスのオブジェクト(実行用オブジェクト)を生成す
る。
【0036】この実行用オブジェクトにスケジューラを
適用することで、コンテンツオブジェクトに対応付けら
れた品質の異なる複数のマルチメディアデータのオブジ
ェクト(ストリームオブジェクト)が参照され、実行環
境に適したデータおよび開始時刻が自動的に決定され
る。
【0037】このように、スクリプト自身をコンテンツ
と同様にオブジェクトを用いて扱うことで、多様なプレ
ゼンテーションのシナリオを作成することができ、シナ
リオから生成される実行用オブジェクトを介して、効率
よく自動的にマルチメディアデータを出力することがで
きる。
【0038】図2は、本発明のマルチメディアデータ・
プレゼンテーションシステムの構成図である。図2のマ
ルチメディアデータ・プレゼンテーションシステムは、
マルチメディアデータ格納部11、ストリームオブジェ
クト格納部12、コンテンツオブジェクト格納部13、
スクリプトファイル格納部14、スクリプトオブジェク
ト格納部15、実行用オブジェクト格納部16、スクリ
プト管理部17、スクリプト実行部18、入力装置1
9、および表示装置20を備える。
【0039】入力装置19は、例えばキーボードやポイ
ンティングデバイス等の入力機器および入力インタフェ
ースを含み、表示装置20は、例えばディスプレイ装置
等の出力装置に対応する。また、マルチメディアデータ
の出力には、表示装置20以外にプリンタや音声出力装
置等も用いられる。
【0040】マルチメディアデータ格納部11はマルチ
メディアデータを格納し、ストリームオブジェクト格納
部12はマルチメディアデータの品質属性を格納し、コ
ンテンツオブジェクト格納部13はマルチメディアデー
タの内容属性を格納する。
【0041】また、スクリプトファイル格納部14は、
マルチメディアデータのプレゼンテーションのためのシ
ナリオを記述したシナリオファイル(スクリプトファイ
ル)を格納し、スクリプトオブジェクト格納部15はス
クリプトファイルの属性を格納し、実行用オブジェクト
格納部16はスクリプトファイルを解析した時に生成さ
れる実行用オブジェクトを格納する。
【0042】また、スクリプト管理部17は、スクリプ
トオブジェクト管理部21、スクリプトパーザ22、お
よび実行用オブジェクト生成部23を備える。スクリプ
トオブジェクト管理部21は、入力装置19から入力さ
れる指示に応じて、スクリプトオブジェクトを生成し、
それをスクリプトオブジェクト格納部15に格納して管
理する。
【0043】スクリプトパーザ22は、入力装置19か
ら入力される指示に応じて、スクリプトファイル格納部
14に格納されたスクリプトファイルを解析し、個々の
コンテンツオブジェクトの実行開始予定時刻を計算した
り、スクリプトオブジェクトの属性を更新したりする。
実行用オブジェクト生成部23は、スクリプトパーザ2
2からの要求に応じて実行用オブジェクトを生成し、そ
れを実行用オブジェクト格納部16に格納する。
【0044】また、スクリプト実行部18は、スケジュ
ーラ24とデータ表示部25を備える。スケジューラ2
4は、実行用オブジェクトをスケジューリングし、それ
ぞれのコンテンツオブジェクトに対して、実行すべきス
トリームオブジェクトと起動に要する時間を考慮した実
際の実行開始時刻を決定する。
【0045】データ表示部25は、スケジュールされた
実行開始時刻にプレーヤ26を起動し、プレーヤ26
は、ストリームオブジェクトに対応するマルチメディア
データをマルチメディアデータ格納部11から検索し
て、表示装置20に表示する。
【0046】図3は、図2のマルチメディアデータ・プ
レゼンテーションシステムを備えるデータベースシステ
ムの構成例を示している。図3のデータベースシステム
は、コンピュータを用いて実現され、CPU(中央処理
装置)31、メモリ32、入力装置19、出力装置2
0、データベース33、および媒体駆動装置35を備え
る。これらの各装置は、バス34により互いに接続され
ている。
【0047】データベース33は、図2のマルチメディ
アデータ格納部11、ストリームオブジェクト格納部1
2、コンテンツオブジェクト格納部13、スクリプトフ
ァイル格納部14、スクリプトオブジェクト格納部1
5、および実行用オブジェクト格納部16を有する。
【0048】このデータベース33は、例えば、磁気デ
ィスク装置、光ディスク装置、光磁気ディスク装置等に
より実装され、スクリプト管理部17とスクリプト実行
部18の各機能を実現するためのプログラムを保存する
こともできる。
【0049】また、CPU31は、メモリ32に格納さ
れたプログラムを実行することにより、スクリプト管理
部17とスクリプト実行部18の各機能に対応する処理
を行う。メモリ32としては、例えばROM(read onl
y memory)、RAM(randomaccess memory)等が用い
られる。
【0050】媒体駆動装置35は、可搬記録媒体36を
駆動し、その記憶内容にアクセスする。可搬記録媒体3
6としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体を使用することができる。この可搬記録
媒体36には、データのほかに、スクリプト管理部17
とスクリプト実行部18の各機能を実現するためのプロ
グラムが格納される。
【0051】本実施形態においては、スクリプトオブジ
ェクト、実行用オブジェクト、コンテンツオブジェク
ト、およびストリームオブジェクトは、オブジェクト指
向データベースにより管理され、これらのオブジェクト
のクラス階層とデータの参照関係は図4に示すようにな
る。ここで、クラスとはオブジェクトの構造の定義に相
当し、その具体例がオブジェクトとなる。
【0052】図4において、最上位のクラスはComp
ositeクラス(コンポジットクラス)40であり、
実行の対象となるオブジェクトをまとめるTarget
クラス(ターゲットクラス)41と、実行の際に使用す
る実行用オブジェクトをまとめるExecクラス(実行
用クラス)42と、マルチメディアデータの個々の品質
属性を表すオブジェクトをまとめるStreamクラス
(ストリームクラス)60から成る。
【0053】ターゲットクラス41は、個々のマルチメ
ディアデータの内容属性を表すコンテンツオブジェクト
をまとめるContentsクラス(コンテンツクラ
ス)50と、コンテンツの組合せを表現するスクリプト
の属性を表すスクリプトオブジェクトをまとめるScr
iptクラス(スクリプトクラス)43とから成る。
【0054】コンテンツクラス50は、メディア毎にV
ideo Contentsクラス(ビデオコンテンツ
クラス)51、Audio Contentsクラス
(オーディオコンテンツクラス)52等から成る。一
方、ストリームクラス60も、メディア毎にVideo
クラス(ビデオクラス)61、Audioクラス(オー
ディオクラス)62等から成る。
【0055】実行用クラス42に属する実行用オブジェ
クトは、対応するターゲットクラス41に含まれるコン
テンツクラス50またはスクリプトクラス43のオブジ
ェクトを参照する。スクリプトクラス43に属するスク
リプトオブジェクトは、シナリオを記述するスクリプト
ファイルと、そのスクリプトファイルを解析して生成さ
れる実行用オブジェクトとを参照する。
【0056】コンテンツクラス50に含まれる各クラス
51、52、・・・のコンテンツオブジェクトは、スト
リームクラス60の対応する各クラス61、62、・・
・のストリームオブジェクトをそれぞれ参照する。ここ
で、1つのコンテンツオブジェクトに対しては、品質の
異なる複数のストリームオブジェクトが対応する場合も
あり得る。
【0057】さらに、ビデオクラス61、オーディオク
ラス62、・・・の各ストリームオブジェクトは、それ
ぞれ対応するマルチメディアデータであるVideo
Data(ビデオデータ)72、Audio Data
(オーディオデータ)73、・・・を参照する。
【0058】ターゲットクラス41、スクリプトクラス
43、実行用クラス42の属性とメソッドは、それぞれ
図5、6、7に示されるようになる。ここで、メソッド
とはオブジェクトに適用される手続きを表し、各メソッ
ドに含まれる()内には引数が記述される。
【0059】図5において、ターゲットクラス41は、
データの全実行時間長を表すtimeLength、お
よびキーワードを表すkeywordsの各属性と、デ
ータ検索の際に指定キーワードの有無をチェックするk
eyword()のメソッドから成る。
【0060】また、図6において、スクリプトクラス4
3は、対応するスクリプトファイル名を表すscrip
tFile、および実行用オブジェクトの集合を表すe
xecsの各属性と、起動されるスクリプトオブジェク
ト(起動スクリプト)を解析するparse()、およ
び起動スクリプトを実行するdo()のメソッドから成
る。スクリプトオブジェクトの生成時には、execs
属性はEMPTY(空集合)になっている。
【0061】また、図7において、実行用クラス42
は、script、startTime、tartge
t、operation、allTimeLengt
h、およびscheduleDataの各属性と、pa
rallel()、serial()、rendezv
ous()、wait()、anytime()、sc
hedule()、およびexecute()の各メソ
ッドとから成る。
【0062】scriptは対応するスクリプトオブジ
ェクトを表し、startTimeは理想的な実行開始
時刻を表し、tartgetは実行するターゲットオブ
ジェクトを表し、operationは実行オペレーシ
ョンを表し、allTimeLengthは対応するス
クリプトオブジェクトの開始から終了までの全実行時間
長を表し、scheduleDataは使用ストリーム
データの識別情報とスケジューリング後の実際の実行開
始時刻の組を表す。
【0063】ここで、使用ストリームデータとは、実際
に使用するマルチメディアデータを指し、その識別情報
としては、例えばそのマルチメディアデータの品質を表
すストリームオブジェクトの識別子が用いられる。
【0064】実行用オブジェクトの生成時には、sta
rtTime属性は特定のデフォルト値(例えば0)に
設定され、allTimeLength属性はターゲッ
トオブジェクトのtimeLength属性に記述され
た値に設定される。このとき、scheduleDat
a属性は空のままである。
【0065】また、parallel()、seria
l()、rendezvous()、wait()、a
nytime()は、起動されるオブジェクト(起動オ
ブジェクト)を、それぞれ、同時に、連続して、終了時
刻がそろうように、指定時間だけ遅らせて、指定時間内
に実行するために、起動オブジェクトの実行開始時刻を
計算する。ここで、これらのメソッドの起動オブジェク
トは、複数の実行用オブジェクトの集合である場合があ
る。
【0066】また、schedule()は、起動オブ
ジェクトに対して資源の制約を考慮したスケジューリン
グを行い、個々のオブジェクトの実行ストリームと、起
動に要する時間を考慮した実行開始時刻とを決定し、e
xecute()は、スケジューリング後の起動オブジ
ェクトを実行する。
【0067】コンテンツクラス50およびストリームク
ラス60の詳細については、先願の「マルチメディアデ
ータ検索システム、マルチメディアデータのオブジェク
ト生成装置及びマルチメディアデータの管理方法」(特
願平7−240350)、および「マルチメディアデー
タ検索システム、マルチメディアデータのスケジューリ
ング装置、マルチメディアデータの再生方法及び再生プ
ログラム記憶媒体」(特願平7−240351)に示さ
れている。
【0068】そこで、図8から図17までを参照しなが
ら、これらの先願の技術について説明する。図8は、コ
ンテンツクラス50の階層構造と、各クラスの属性とメ
ソッドの例を示している。
【0069】図8において、コンテンツオブジェクトの
クラス構造は、コンテンツオブジェクトの共通の属性を
示すコンテンツクラス50の下位に、ビデオコンテンツ
クラス51、オーディオコンテンツクラス52、イメー
ジコンテンツクラス(Image Contentsク
ラス)53、およびテキストコンテンツクラス(Tex
t Contentsクラス)54を有している。
【0070】ここで、コンテンツに対応するデータの一
部分を切り取って得られる情報ビューの概念について説
明する。この情報ビューを記述するビューオブジェクト
については、上述の先願(特願平7−240350、特
願平7−240351)と、先願「マルチメディアデー
タ検索システム」(特願平7−161712)とに詳述
されている。
【0071】ビューオブジェクトとは、一連のデータの
うちの一部分を時間および/または空間の観点から切り
取った結果としての部分データの特徴、例えばキーワー
ドと、その部分データを特定するデータ、例えばテキス
トデータではファイルの先頭から何バイト目から何バイ
ト目までというような部分データを特定するデータを記
述するオブジェクトである。したがって、このビューオ
ブジェクトは、部分データ毎にキーワードに対応して生
成される。
【0072】オブジェクト指向データベースでは、種類
の異なるデータをオブジェクトとして統一的に扱うこと
ができ、ポリモルフィズムによって、メディアやフォー
マットの違いを意識せずに同じメソッドを使うことがで
きる。したがって、異なるフォーマットを持つデータを
追加する場合には、新たなビューオブジェクトのクラス
を設ければよく、異なるフォーマットを持つデータに対
しても柔軟に拡張できる。
【0073】マルチメディアデータの表示の手続きにつ
いては、メディアの種類によって一般的に異なるが、ビ
ューオブジェクトに定義されている表示用のメソッドを
起動することにより、そのメディアのデータのフォーマ
ットに適した表示の手続きが実行される。
【0074】上述のように、ビューオブジェクトはコン
テンツの一部分をアクセスするために用いられ、コンテ
ンツが動画像や音声など時系列データに関する事象の場
合、コンテンツの先頭からビューの先頭までの時間とビ
ューの時間長とを用いることにより、ビューのコンテン
ツに対する位置を表すことができる。
【0075】また、コンテンツの先頭からビューの先頭
までの時間とビューの時間長とを、ビューオブジェクト
の属性として記録しておく。このビューオブジェクト
は、コンテンツクラス50で表される。
【0076】例えば、図9に示すように、コンテンツの
先頭からスキップする時間skipLengthとビュ
ーの時間長timeLengthとを指定することによ
り、コンテンツにビューを設定することができる。
【0077】ビューオブジェクトを実際にユーザに提示
する場合、ビューに対応するコンテンツ、コンテンツの
先頭からビューの先頭までの時間skipLengt
h、およびビューの時間長timeLengthによ
り、コンテンツにおけるビューの部分を知ることができ
る。このため、コンテンツの指定した部分を再生できる
再生プログラムを用いることにより、ビュー機能をユー
ザに提供することができる。
【0078】このような情報ビューの機能を用いれば、
例えばあるビデオデータの任意の時間部分を切り取って
表示したり、他のマルチメディアデータのビューと組み
合わせることで、より複雑なプレゼンテーションを実現
したりすることが可能になる。
【0079】図8において、コンテンツクラス50は、
コンテンツの実行時間長timeLength、コンテ
ンツのキーワードkeywords、コンテンツに対応
するストリームデータの集合streams、コンテン
ツが情報ビューによって切り出された部分コンテンツで
ある場合の元のコンテンツparent、およびコンテ
ンツに対応する部分コンテンツchildsの各属性
と、コンテンツが該当キーワードを有しているかどうか
をチェックするkeyword()のメソッドを有す
る。
【0080】また、ビデオコンテンツクラス51は、コ
ンテンツの先頭からの時間skipLengthの属
性、事象が生じた時刻absStartTimeの属
性、部分ビデオコンテンツを生成するsetVie
w()のメソッド、コンテンツに対応するビデオストリ
ームオブジェクトを生成するnewVideo()のメ
ソッド、およびビデオデータのコンテンツを表示するp
lay()のメソッドを有する。
【0081】なお、事象が生じた時刻absStart
Timeは、コンテンツオブジェクトの絶対時間を意味
しており、この事象が生じた時刻absStartTi
meを用いることにより、複数のコンテンツを同期させ
て表示することができる。
【0082】また、オーディオコンテンツクラス52
は、コンテンツの先頭からの時間skipLength
の属性、事象の生じた時刻absStartTimeの
属性、部分オーディオコンテンツを生成するsetVi
ew()のメソッド、コンテンツに対応するオーディオ
ストリームオブジェクトを生成するnewAudi
o()のメソッド、およびオーディオデータのコンテン
ツを表示するplay()のメソッドを有する。
【0083】また、イメージコンテンツクラス53は、
コンテンツの左上相対座標skipLengthX、s
kipLengthYの属性、ビューの大きさview
LengthX、viewLengthYの属性、部分
イメージコンテンツを生成するsetView()のメ
ソッド、コンテンツに対応するイメージストリームオブ
ジェクトを生成するnewImage()のメソッド、
およびイメージデータのコンテンツを表示するdisp
lay()のメソッドを有する。
【0084】また、テキストコンテンツクラス54は、
コンテンツの先頭からのバイト数skipLength
の属性、ビューの長さviewLengthの属性、部
分テキストコンテンツを生成するsetView()の
メソッド、コンテンツに対応するテキストストリームオ
ブジェクトを生成するnewText()のメソッド、
およびテキストイメージデータのコンテンツを表示する
display()のメソッドを有する。次に、図10
は、ストリームクラス60の階層構造と、各クラスの属
性とメソッドの例を示している。
【0085】図10において、ストリームオブジェクト
のクラス構造は、ストリームオブジェクトの共通の属性
を示すストリームクラス60の下位に、ビデオクラス6
1、オーディオクラス62、イメージクラス(Imag
eクラス)63、およびテキストクラス(Textクラ
ス)64を有している。
【0086】さらに、各メディア毎のクラスの下位に
は、各メディア毎のフォーマット毎のクラスを有してい
る。すなわち、ビデオクラス61の下位にはMPEGク
ラス65、オーディオクラス62の下位にはMPEGA
udioクラス66、イメージクラス63の下位にはJ
PEGクラス67が設けられている。
【0087】ストリームクラス60は、ストリームオブ
ジェクトに対応するコンテンツcontents、スト
リームオブジェクトに対応する実マルチメディアデータ
のファイル名fileName、およびマルチメディア
データを表示装置20に表示する際の負荷情報load
CPU、loadIOの各属性を有する。
【0088】この負荷情報loadCPU、loadI
Oは、ストリームオブジェクトの選択に使用される。す
なわち、マルチメディアデータを表示する際に、この負
荷情報loadCPU、loadIOを参照して、適切
なストリームオブジェクトを選択することにより、資源
の制約を満足することができる。
【0089】また、ビデオクラス61は、ビデオデータ
のピクチャレート(フレームレート)frameRat
eの属性、ビデオデータのフレームの大きさwidt
h、heightの属性、同一コンテンツでフレームレ
ートの異なるビデオストリームを生成するnewRat
e()のメソッド、同一コンテンツでサイズの異なるビ
デオストリームを生成するnewSize()のメソッ
ド、およびストリームオブジェクトに対応するビデオデ
ータを表示するplay()のメソッドを有する。
【0090】また、オーディオクラス62は、オーディ
オデータのコーディングレートcodingRateの
属性、同一コンテンツでコーディングレートの異なるオ
ーディオストリームを生成するnewRate()のメ
ソッド、およびストリームオブジェクトに対応するオー
ディオデータを表示するplay()のメソッドを有す
る。
【0091】また、イメージクラス63は、イメージデ
ータの表示サイズwidth、heightの属性、同
一コンテンツでサイズの異なるイメージストリームを生
成するnewSize()のメソッド、およびストリー
ムオブジェクトに対応するイメージデータを表示するd
isplay()のメソッドを有する。
【0092】また、テキストクラス64は、ストリーム
オブジェクトに対応するテキストデータを表示するdi
splay()のメソッドを有する。また、ビデオクラ
ス61の下位のMPEGクラス65は、MPEG(movi
ng picture experts group)形式のビデオデータを扱う
もので、同一コンテンツでフレームレートの異なるビデ
オストリームを生成するnewRate()のメソッ
ド、同一コンテンツでサイズの異なるビデオストリーム
を生成するnewSize()のメソッド、およびスト
リームオブジェクトに対応するビデオデータを表示する
play()のメソッドを有する。
【0093】また、オーディオクラス62の下位のMP
EGAudioクラス66は、MPEG形式のオーディ
オデータを扱うもので、同一コンテンツでコーディング
レートの異なるオーディオストリームを生成するnew
Rate()のメソッド、およびストリームオブジェク
トに対応するオーディオデータを表示するplay()
のメソッドを有する。
【0094】また、イメージクラス63の下位のJPE
Gクラス67は、JPEG(jointphotographic expert
s group)形式の静止画データを扱うもので、同一コン
テンツでサイズの異なるイメージストリームを生成する
newSize()のメソッド、およびストリームオブ
ジェクトに対応するイメージデータを表示するdisp
lay()のメソッドを有する。
【0095】尚、コンテンツを表示させる場合、コンテ
ンツクラス50が有するストリームデータの集合str
eamsからストリームオブジェクトの集合を獲得し、
表示する環境に適するストリームオブジェクトを選出
し、その選出したストリームオブジェクトに対応するマ
ルチメディアデータにおいて、コンテンツオブジェクト
のビューで設定された部分を表示する。
【0096】また、複数のコンテンツを同期させたり、
正確に連続して表示させたりする場合、スケジューラ2
4を用いてストリームオブジェクトの選択と各マルチメ
ディアデータの開始時刻の決定を行う。
【0097】次に、コンテンツオブジェクトとストリー
ムオブジェクトとマルチメディアデータとの関係につい
て、ビデオデータを例にとって説明する。図11は、コ
ンテンツオブジェクトとストリームオブジェクトとビデ
オデータの関係を示している。
【0098】図11において、例えば、“7時のニュー
ス”という1時間番組に対して、品質の異なる3つのビ
デオデータ82a、82b、82cがマルチメディアデ
ータ格納部11に格納されているとする。ここで、ビデ
オデータ82aは、例えば、フレームレートが30fp
sであり、ビデオデータ82bは、例えば、フレームレ
ートが15fpsであり、ビデオデータ82cは、例え
ば、フレームレートが10fpsである。
【0099】これらのビデオデータ82a〜82cに対
し、“7時のニュース”という1時間番組の内容属性に
対応するコンテンツオブジェクト80aを生成する。こ
こで、コンテンツオブジェクト80aに対応する識別子
oidをc1とする。
【0100】さらに、“7時のニュース”という1時間
番組の内容属性を有するビデオデータ82a〜82cが
3つ有るので、これらのビデオデータ82a、82b、
82cにそれぞれ対応するストリームオブジェクト81
a、81b、81cを生成する。そして、ストリームオ
ブジェクト81a、81b、81cのビデオデータのフ
ァイル名fileNameに、ビデオデータ82a、8
2b、82cの各ファイル名data1、data2、
data3をそれぞれ記述する。
【0101】ここで、ストリームオブジェクト81aに
対応する識別子oidをs1とし、ストリームオブジェ
クト81bに対応する識別子oidをs2とし、ストリ
ームオブジェクト81cに対応する識別子oidをs3
とする。
【0102】この時、コンテンツオブジェクト80aの
ストリームデータの集合streamsには、識別子の
集合{s1、s2、s3}が記述され、ストリームオブ
ジェクト81a〜81cのコンテンツcontents
には、識別子c1が記述される。
【0103】次に、“7時のニュース”という1時間番
組の中の一部分の“天気予報”という内容に着目した場
合、コンテンツオブジェクト80aにビューを設定する
ことにより、“天気予報”という内容属性に対応するコ
ンテンツオブジェクト(ビューオブジェクト)80bを
生成する。ここで、コンテンツオブジェクト80bに対
応する識別子oidをc2とする。
【0104】この時、コンテンツオブジェクト80aの
部分コンテンツchildsには、コンテンツオブジェ
クト80bに対応する識別子{c2}が記述される。ま
た、コンテンツオブジェクト80bの元のコンテンツp
arentには、コンテンツオブジェクト80aに対応
する識別子c1が記述される。また、コンテンツオブジ
ェクト80bのストリームデータの集合streams
には、コンテンツオブジェクト80aと同様に識別子の
集合{s1、s2、s3}が記述される。
【0105】もし、品質の異なる新しいビデオデータが
さらに追加された場合、その新しいビデオデータのスト
リームオブジェクトの識別子を、コンテンツオブジェク
ト80aのストリームデータの集合streamsに追
加するとともに、コンテンツオブジェクト80bのスト
リームデータの集合streamsにも追加する。
【0106】こうして、コンテンツオブジェクト80a
とそのビューを表すコンテンツオブジェクト80bと
が、ストリームオブジェクト81a〜81cを介して、
ビデオデータ82a〜82cにそれぞれ関係付けられ
る。したがって、スケジューラ24は、環境や資源の制
約に応じて適当なフレームレートのビデオデータを選択
することが可能になる。
【0107】次に、図12を参照しながら、ストリーム
オブジェクトのコンテンツオブジェクトへの対応付けの
方法について説明する。まず、図12(a)に示すよう
に、コンテンツオブジェクト83に対しストリームオブ
ジェクト84が対応付けられている場合を考える。ここ
で、ストリームオブジェクト84は、MPEG−1vi
deoフォーマットで、フレームサイズが320×24
0、ピクチャレートが30fps(フレーム/秒)、再
生時のCPU31に対する負荷が100%のストリーム
データを表すものとする。
【0108】次に、図12(b)に示すように、ストリ
ームオブジェクト84と異なる品質のストリームデー
タ、例えば、MPEG−1videoフォーマットで、
フレームサイズが320×240、ピクチャレートが1
5fps、再生時のCPU31に対する負荷が60%の
ストリームデータと、MPEG−1videoフォーマ
ットで、フレームサイズが160×112、ピクチャレ
ートが30fps、再生時のCPU31に対する負荷が
35%のストリームデータとを生成し、これらに対応す
るストリームオブジェクトをそれぞれストリームオブジ
ェクト85、86とする。
【0109】次に、図12(c)に示すように、新たに
生成したストリームオブジェクト85、86をコンテン
ツオブジェクト83に対応付ける。これは、ストリーム
オブジェクト84に対し、メソッドnewRat
e()、newSize()をそれぞれ施すことにより
行う。
【0110】以上により、コンテンツオブジェクト83
を表示する時に、負荷および品質が異なる3種類のスト
リームオブジェクト84、85、86に対応するストリ
ームデータの中から適切なものを選択して用いることが
できる。
【0111】例えば、動画像と音声とを同期させて出力
したり、検索した複数の動画像を同時にウィンドウに表
示させたりすることにより、複数のデータを同時に出力
する場合、計算機が持つCPU31、メモリ32、出力
装置20などの資源が有限であるため、資源が足りなく
なる可能性がある。
【0112】一方、データを再生する場合に使用する資
源とデータの再生品質との間には関連性がある。そし
て、ある特定の品質を持つデータを再生する場合、その
特定の品質を持つデータの再生に要する量の資源が必要
である。そのため、資源が足りないまま再生しようとす
ると、品質の劣化が生じる場合がある。
【0113】特に、動画像の場合、資源が足りない状態
で再生すると、フレームの再生が間に合わないため正し
い再生レートより遅くなったり、フレームが不定期に飛
ばされたりして表示される。また、音声の場合、不定期
に音飛びが生じる。
【0114】このため、ビューを再生するときに確保で
きる資源を用いて再生できる最も品質の良いデータを選
択して用いることが望まれる。本実施形態では、ビュー
の再生をする場合、ビューに対応するコンテンツに関連
付けられているストリームオフジェクトの属性を見て、
適切なデータを選択することができ、限られた資源の範
囲内で最も品質の良いデータを再生することができる。
【0115】例えば、データが動画像の場合、データを
再生するのに要するCPU31の資源量は、フレームサ
イズとピクチャレートによって左右される。そのため、
デジタル化されているデータに対し、フレームサイズや
ピクチャレートを変化させることにより、異なる品質で
負荷の異なるデータを新たに生成することができる。
【0116】例えば、ある動画像データのピクチャレー
トがrfpsの場合、フレームをn個置きに選択するこ
とにより、ピクチヤレートがr/(n+1)fpsの動
画像データを生成することができる。そして、ピクチヤ
レートがr/(n+1)fpsの動画像データをコンテ
ンツと対応付けることにより、異なる負荷のデータをコ
ンテンツに追加することが可能である。
【0117】また、既に存在するデータからフレームサ
イズを小さくしたフレームを生成し、そのフレームを用
いてフレームサイズが小さく負荷も小さい(品質も元の
データより劣化した)新たな動画像データを生成し、コ
ンテンツと対応付けることができる。
【0118】このように、使用できる資源の範囲内で再
生できるデータを選択する自由度を増すことが可能とな
る。次に、図13および図14を参照しながら、マルチ
メディアデータベースにおいて、ピクチャレートを変え
たマルチメディアデータを生成する例を示す。これは、
メソッドnewRate()を用いて行う。
【0119】図13において、動画像のフレームは一定
のインターバルで表示される。この場合、フレームをn
個置きに選択すると、ピクチャレートが元のデータより
小さいデータを得ることができる。例えば、図13に示
すように、ピクチャレートがrfpsのフレームから1
個置きにフレームを選択した場合、ピクチャレートが
(r/2)fpsのデータを得ることができる。
【0120】図14は、レートを変えたマルチメディア
データの生成装置を示すブロック図である。図14にお
いて、MPEGファイル91には、ピクチャレートがr
fpsのMPEG−1videoデータが格納されてい
る。このピクチャレートがrfpsのMPEG−1vi
deoデータをMPEGデコーダ92で復号して、フレ
ームデータを作成する。そして、フレームをn個おきに
選択するフレーム選択プログラム93を用いて、このフ
レームデータを間引く。
【0121】フレーム選択プログラム93により選択さ
れたフレームデータをMPEGエンコーダ94で符号化
することにより、ピクチャレートが(r/(n+1))
fpsのMPEG−1videoデータを生成し、MP
EGファイル95に格納する。
【0122】そして、このピクチャレートが(r/(n
+1))fpsのMPEG−1videoデ−タに対応
するストリームオブジェクトを生成し、コンテンツオブ
ジェクトに対応づけることにより、コンテンツを異なる
ピクチヤレートで表現できる。
【0123】次に、図15および図16を参照しなが
ら、フレームサイズを変えたマルチメディアデータを生
成する例を示す。これは、メソッドnewSize()
を用いて行い、MPEG−1videoデータから各画
素を(n−1)個おきに選択することにより、フレーム
サイズを1/nに縮小する。
【0124】例えば、図15(a)に示すように、元の
フレーム96のフレームサイズがc画素×r画素のMP
EG−1videoデータから、図15(b)(c)に
示すように、 V1,0 、V3,0 、V5,0 、・・・、 V0,1 、V1,1 、V2,1 、・・・、 V1,2 、V3,2 、V5,2 、・・・、 V0,3 、V1,3 、V2,3 、・・・、 ・・・・・・・・・・・・・・・、 の画素を間引くことにより、縮小したフレーム97のフ
レームサイズが(c/2)画素×(r/2)画素のMP
EG−1videoデータを生成することができる。
【0125】図16は、フレームサイズを変えたマルチ
メディアデータの生成装置を示すブロック図である。図
16において、MPEGファイル101には、フレーム
サイズがc画素×r画素のMPEG−1videoデー
タが格納されている。このフレームサイズがc画素×r
画素のMPEG−1videoデータをMPEGデコー
ダ102で復号してフレームデータを作成する。このフ
レームデータの各画素を(n−1)個おきに選択するサ
イズ選択プログラム103を用いて間引く。
【0126】サイズ選択プログラム103により縮小さ
れたフレームデータをMPEGエンコーダ104で符号
化することにより、フレームサイズが(c/n)画素×
(r/n)画素のMPEG−1videoデータを生成
し、MPEGファイル105に格納する。
【0127】そして、このフレームサイズが(c/n)
画素×(r/n)画素のMPEG−1videoデ−タ
に対応するストリームオブジェクトを生成し、コンテン
ツオブジェクトに対応付けることにより、コンテンツを
異なるフレームサイズで表現できる。
【0128】尚、上述した例では、フレームデータの各
画素を(n−1)個おきに選択してフレームサイズを縮
小するようにしているが、n×n画素の平均値を用いて
1/nの大きさに縮小したフレームを作成してもよい。
【0129】次に、図17を参照しながら、スケジュー
ラ24によるビューオブジェクトのスケジューリング処
理について説明する。今、ビューオブジェクトが選択可
能なデータが、図17(a)に示すように、優先順位1
〜6のストリームオブジェクトにより示されているとす
る。
【0130】ここで、優先順位1のストリームオブジェ
クトは、フレームサイズが320×240画素で、ピク
チャレートが30fpsであり、CPU31の負荷は1
00%となる。
【0131】また、優先順位2のストリームオブジェク
トは、フレームサイズが320×240画素で、ピクチ
ャレートが15fpsであり、CPU31の負荷は60
%となる。
【0132】また、優先順位3のストリームオブジェク
トは、フレームサイズが320×240画素で、ピクチ
ャレートが10fpsであり、CPU31の負荷は45
%となる。
【0133】また、優先順位4のストリームオブジェク
トは、フレームサイズが160×112画素で、ピクチ
ャレートが30fpsであり、CPU31の負荷は35
%となる。
【0134】また、優先順位5のストリームオブジェク
トは、フレームサイズが160×112画素で、ピクチ
ャレートが15fpsであり、CPU31の負荷は20
%となる。
【0135】また、優先順位6のストリームオブジェク
トは、フレームサイズが160×112画素で、ピクチ
ャレートが10fpsであり、CPU31の負荷は15
%となる。
【0136】これらの優先順位は、異なるフレームサイ
ズおよびピクチャレートの場合、フレームサイズの大き
い方から優先して選択し、同じフレームサイズでピクチ
ャレートが異なる場合、ピクチャレートの大きい方から
優先して選択するという方法で決定する。
【0137】これらのストリームオブジェクトを用い
て、図17(b)に示すように、長さの異なる4つのビ
ューオブジェクトvo1、vo2、vo3、vo4を再
生する場合、ビューオブジェクト同士の時間に関する重
なりは、例えば、4個の時間帯T1、T2、T3、T4
に分けられるものとする。
【0138】この場合、時間帯T1から順に負荷を計算
しながら、使用するデータを決定していく。ただし、同
一時間帯において表示される画像は、なるべく品質が同
じになるように選択する。
【0139】まず、時間帯T1において、ビューオブジ
ェクトvo4のみが表示されるので、一旦優先順位1の
ストリームオブジェクトを選択し、フレームサイズが3
20×240画素で、ピクチャレートが30fpsで表
示され、CPU31の負荷は100%となる。
【0140】次に、時間帯T2において、2つのビュー
オブジェクトvo3、vo4が表示される。この2つの
ビューオブジェクトvo3、vo4を優先順位1のスト
リームオブジェクトで同時に表示した場合、CPU31
の負荷の合計は200%となって、100%を越えてし
まうので、ビューオブジェクトvo3、vo4に対し、
優先順位3のストリームオブジェクトを選択する。この
ことにより、フレームサイズが320×240画素で、
ピクチャレートが10fpsで表示され、CPU31の
負荷の合計は90%となる。
【0141】次に、時間帯T3において、4つのビュー
オブジェクトvo1〜vo4が表示される。これら4つ
を同時に表示するためには、フレームサイズが320×
240画素の画像を選択することはできず、フレームサ
イズを縮小する必要がある。そのため、ビューオブジェ
クトvo3、vo4において、時間帯T1、T2のスト
リームオブジェクトの選択をやり直し、優先順位4のス
トリームオブジェクトを選択する。
【0142】こうして、図17(b)に示すように、フ
レームサイズが160×112画素で、ピクチャレート
が30fpsの画像が表示され、時間帯T1のCPU3
1の負荷は35%となり、時間帯T2のCPU31の負
荷の合計は70%となる。
【0143】また、時間帯T3のビューオブジェクトv
o1に対し、優先順位4のストリームオブジェクトを選
択し、ビューオブジェクトvo2〜vo4に対し、優先
順位5のストリームオブジェクトを選択する。この場
合、CPU31の負荷の合計は95%となる。
【0144】次に、時間帯T4において、ビューオブジ
ェクトvo4のみが表示される。この場合、時間帯T3
でフレームサイズが160×112画素に縮小され、優
先順位が4に設定されている。このため、時間帯T4で
も同サイズでピクチャレートが30fpsの画像を選択
する。この場合、CPU31の負荷は35%となる。
【0145】以上の選択処理により、ビューオブジェク
トvo3の場合、時間帯T2において、フレームサイズ
が160×112画素で、ピクチャレートが30fps
の画像データを、時間帯T3において、フレームサイズ
が160×112画素で、ピクチャレートが15fps
の画像データを連続して表示することができる。
【0146】また、ビューオブジェクトvo4の場合、
時間帯T1、T2において、フレームサイズが160×
112画素で、ピクチャレートが30fpsの画像デー
タを、時間帯T3において、フレームサイズが160×
112画素で、ピクチャレートが15fpsの画像デー
タを、時間帯T4において、フレームサイズが160×
112画素で、ピクチャレートが30fpsの画像デー
タを連続して表示することができる。
【0147】以上説明したように、先願に示されたコン
テンツオブジェクトとそのビューオブジェクトの関係、
およびコンテンツオブジェクトとストリームオブジェク
トの関係を用いることで、多様なマルチメディアデータ
から適切なものを自動的に選択し、それらをスケジュー
リングすることができる。
【0148】次に、図18から図24までを参照しなが
ら、図2のマルチメディアデータ・プレゼンテーション
システムの動作について説明する。まず、スクリプトを
利用したプレゼンテーションの流れを図18に示す。図
18において、まずスクリプトオブジェクトに対してメ
ソッドparse()を作用させると、スクリプト管理
部17内のスクリプトパーザ22が、スクリプトオブジ
ェクトのscriptFile属性に指定されたファイ
ルを読み込んで解析する。
【0149】そして、個々のコンテンツの実行開始時刻
を計算し、その値を属性とする実行用オブジェクトを実
行用オブジェクト生成部23を介して生成し、その実行
用オブジェクトをスクリプトオブジェクトのexecs
属性として、スクリプトオブジェクトを更新する。
【0150】次に、生成された実行用オブジェクトに対
してメソッドschedule()を作用させると、ス
クリプト実行部18内のスケジューラ24が起動され
る。スケジューラ24は、実行用オブジェクトをスケジ
ューリングし、起動のために必要な時間を考慮した実行
開始時刻と使用ストリームを決定し、それらをsche
duleData属性として実行用オブジェクトを更新
する。
【0151】さらに、その実行用オブジェクトにメソッ
ドexecute()を作用させると、データ表示部2
5は、実行用オブジェクトのscheduleData
属性に記述されたストリームのうち、target属性
に記述されたコンテンツオブジェクトにより指定される
部分を、operation属性に記述された方法で、
スケジュールされた実行開始時刻に起動して実行する。
【0152】図18に示す処理の流れは、スクリプトオ
ブジェクトにメソッドdo()を作用させることで、自
動的に行われる。また、メソッドparse()でスク
リプトファイルを解析した結果、ターゲットオブジェク
トがスクリプトオブジェクトであった場合は、そのスク
リプトオブジェクトに再びparse()を作用させる
ことを繰り返す。こうして、最終的にスクリプトパーザ
22から出力されるターゲットオブジェクトは、すべて
コンテンツオブジェクトとなる。
【0153】図19は、スクリプトファイルに記述でき
るスクリプトのオペレーションの例を示している。スク
リプトファイルの記述に使用できるオペレーションに
は、オブジェクト生成に関するメソッドとして、新しい
コンテンツオブジェクトを生成するnewConten
ts()、コンテンツの部分オブジェクトであるビュー
オブジェクトを生成するsetView()、各種メデ
ィアのストリームオブジェクトを生成するnewVid
eo()、newAudio()、newImag
e()、newText()、各種ストリームの品質の
異なるストリームオブジェクトを生成するnewRat
e()、newSize()等がある。
【0154】上述のように、メソッドnewConte
nts()およびsetView()は、Conten
tsクラスのオブジェクトを起動オブジェクトとし、n
ewVideo()、newAudio()、newI
mage()、newText()は、それぞれ、Vi
deoContentsクラス、AudioConte
ntsクラス、ImageContentsクラス、T
extContentsクラスのオブジェクトを起動オ
ブジェクトとする。
【0155】また、newRate()はVideoク
ラスまたはAudioクラスのオブジェクトを起動オブ
ジェクトとし、newSize()はVideoクラス
またはImageクラスのオブジェクトを起動オブジェ
クトとする。
【0156】また、検索に関するメソッドとして、起動
オブジェクトに指定キーワードがあるかどうかを調べる
keyword()があり、実行制御に関するメソッド
として、オペレーションがplayであることを指定す
るplay()、オペレーションがdoであることを指
定するdo()、実行用オブジェクトを実行するexe
cute()がある。
【0157】メソッドkeyword()、pla
y()、およびdo()はTargetクラスのオブジ
ェクトを起動オブジェクトとし、メソッドexecut
e()はExecクラスのオブジェクトを起動オブジェ
クトとする。
【0158】また、時間制御に関するメソッドとして、
起動オブジェクトの開始時刻の同期を指定するpara
llel()、起動オブジェクトを連続して開始するよ
うに指定するserial()、起動オブジェクトの終
了時刻の同期を指定するrendezvous()、起
動オブジェクトの開始時刻を指定した時間内に設定する
anytime()、起動オブジェクトの開始時刻を指
定した時間だけ遅延させるwait()がある。
【0159】これらの時間制御に関するメソッドは、E
xecクラスのオブジェクトを起動オブジェクトとす
る。さらに、オブジェクト指向データベースシステムが
提供している一般的なメソッドである、起動オブジェク
トの属性を表示するprint()、起動クラスの新規
オブジェクトを生成するnew()、起動オブジェクト
と同じ属性を持つ新規オブジェクトを生成するcopy
()等も利用できる。
【0160】上述の時間制御用メソッドに関しては、起
動オブジェクトが複数の実行用オブジェクトの集合であ
る場合は、そのすべての要素のオブジェクトに対して対
応する時間制御を行う。また、起動オブジェクトが実行
用オブジェクトの複数の集合を{ }でまとめたもので
ある場合は、各集合を塊り(ブロック)と見なして、ブ
ロック毎に対応する時間制御を行う。
【0161】スクリプトファイルはこれらのオペレーシ
ョンを利用して記述されるが、それ以外に、使用するオ
ブジェクトをスクリプトファイルの最初の部分で宣言す
る、スクリプトの最後に“end;”を記述する、各文
の最後は“;”で終了するというような決まりがある。
【0162】図20は、スクリプトファイルの第1の例
を示している。このスクリプトファイルの内容を各文に
付けられた文番号にしたがって説明する。 1:VideoContentsクラスのオブジェクト
の集合(set)としてvsを用いることを宣言する。 2:Execクラスのオブジェクトの集合としてexs
を用いることを宣言する。 3:オブジェクト指向データベースシステムで用意され
た検索文を利用して、キーワードが“相撲”であるVi
deoContentsオブジェクトをデータベース3
3より検索し、検索結果をvsに代入する。 4:vsの各オブジェクトに対してplayオペレーシ
ョンを適用するような実行用オブジェクトを生成し、結
果をexsに代入する。 5:実行用オブジェクトexsを並列実行(同時に実行
開始する)ように指定し、その結果をexsに代入す
る。 6:exsを実行する。 7:スクリプトの終了。
【0163】このスクリプトファイルのファイル名を
“xxxx.scr”とすると、これを解析した時に利
用されるオブジェクトの関係は、図21に示すようにな
る。スクリプトファイルxxxx.scrに対応するス
クリプトオブジェクトをs1(keywords=“相
撲”、ScriptFile=“xxxx.scr”)
とし、keywords属性として“相撲”を有する2
つのビューオブジェクトv1(timeLength=
5)、v2(timeLength=10)が検索され
たものとする。
【0164】スクリプトオブジェクトs1を解析する
と、検索されたビューオブジェクトの集合(v1,v
2)に対応して、“play”をoperation属
性とし、互いに並列実行される実行用オブジェクト(e
x1,ex2)が生成される。このとき、実行用オブジ
ェクトex1、ex2のtarget属性には、ビュー
オブジェクトv1、v2がそれぞれ記述され、scri
pt属性にはs1がともに記述される。
【0165】さらに、これらの実行用オブジェクトex
1、ex2は、スクリプトオブジェクトs1のexec
s属性に記述される。図21において、実行用オブジェ
クトex1、ex2は、ビューオブジェクトv1、v2
の時間関係を陽に表現していることが分かる。例えば、
実行用オブジェクトex1、ex2のstartTim
eの値はともに0であり、同時に実行が開始されること
を示している。また、これらのallTimeLeng
thの値は、ビューオブジェクトv1、v2のtime
Lengthのうち大きい方の値10に揃えられてい
る。
【0166】スケジューラ24は、実行用オブジェクト
ex1、ex2により表現された時間関係を利用してス
ケジューリングを行うことになる。図22は、図2のス
クリプトファイルを解析した結果得られた2つのビュー
オブジェクトv1、v2の理想的な実行形態を示すタイ
ミングチャートである。図22において、ビューオブジ
ェクトv1、v2の実行が時刻0から同時に開始され、
時刻5においてビューオブジェクトv1が終了し、時刻
10においてビューオブジェクトv2が終了する。
【0167】こうして、スクリプトファイルに記述され
たシナリオに基づいて、検索されたビューオブジェクト
v1、v2が並列に実行されることになる。次に、図2
3は、スクリプトファイルの第2の例を示している。こ
のスクリプトファイルの内容を各文に付けられた文番号
にしたがって説明する。 1:Scriptクラスのオブジェクトの集合としてs
sを用いることを宣言する。 2:Execクラスのオブジェクトの集合としてexs
を用いることを宣言する。 3:オブジェクト指向データベースシステムで用意され
た検索文を利用して、キーワードが“相撲”または“野
球”であるスクリプトオブジェクトをデータベース33
より検索し、検索結果をssに代入する。 4:ssの各オブジェクトに対してdoオペレーション
を適用するような実行用オブジェクトを生成し、結果を
exsに代入する。 5:実行用オブジェクトexsを直列実行(連続して実
行する)ように指定し、その結果をexsに代入する。 6:exsを実行する。 7:スクリプトの終了。
【0168】このように、図23のスクリプトファイル
には、データベース33から検索されたスクリプトオブ
ジェクトにdoオペレーションを適用するような実行用
オブジェクトを生成することが記述されている。この実
行用オブジェクトを実行すると、スクリプトオブジェク
トにメソッドdo()が適用される。
【0169】これにより、図18に示すような流れにし
たがって、そのスクリプトオブジェクトに対応するスク
リプトファイルが解析され、新たな実行用オブジェクト
が生成されることになる。したがって、図23のスクリ
プトファイルは、別のスクリプトファイルが入れ子にな
った構造を持っていることが分かる。
【0170】また、スクリプトファイル内に入れ子にな
ったスクリプトファイルを解析した結果、さらに別のス
クリプトオブジェクトにdoオペレーションを適用する
こともあり、スクリプトファイルの入れ子構造は2つ以
上の階層を成すことがある。こうしたスクリプトファイ
ルの入れ子構造を利用すれば、非常に複雑なプレゼンテ
ーションのシナリオを、比較的簡単に記述することが可
能になる。
【0171】図23のスクリプトファイルの例では、k
eywords属性が“相撲”であるスクリプトオブジ
ェクトとして、図21に示したスクリプトオブジェクト
s1が検索され、keywords属性が“野球”であ
るスクリプトオブジェクトとして、ビューオブジェクト
v3(timeLength=8)のみから成るスクリ
プトオブジェクトs2が検索されたとする。
【0172】この場合、図23のスクリプトファイルが
解析されると、対応するスクリプトオブジェクトのex
ecs属性は、入れ子になっているスクリプトオブジェ
クトs1、s2のスクリプトファイルを再び解析して得
られる3つの実行用オブジェクトの集合となる。これら
の実行用オブジェクトは、それぞれビューオブジェクト
v1、v2、v3をtarget属性として有する。
【0173】図24は、図23のスクリプトファイルを
解析した結果得られた2つのスクリプトオブジェクトs
1、s2の理想的な実行形態を示すタイミングチャート
である。図24において、まずスクリプトオブジェクト
s1から得られたビューオブジェクトv1、v2が、図
22に示すように並列に実行される。これに引き続い
て、スクリプトオブジェクトs2から得られたビューオ
ブジェクトv3の実行が、時刻10において開始され時
刻18において終了する。
【0174】こうして、スクリプトファイルに記述され
たシナリオに基づいて、検索されたスクリプトオブジェ
クトs1、s2が直列に実行されることになり、その結
果として、ビューオブジェクトv1、v2が並列に実行
され、ビューオブジェクトv2に連続してビューオブジ
ェクトv3が実行される。
【0175】次に、図25から図38までを参照しなが
ら、図2のマルチメディアデータ・プレゼンテーション
システムにより行われるプレゼンテーション処理を詳細
に説明する。
【0176】図25は、スクリプトを利用したプレゼン
テーションの全体の流れを示すフローチャートである。
入力装置19からスクリプトファイルまたはファイル名
が入力されると図25の処理が開始され、スクリプト管
理部17は、まず与えられたスクリプトファイルに対応
するスクリプトオブジェクトが、スクリプトオブジェク
ト格納部15にあるかどうかを判定する(ステップS
1)。
【0177】ここで、もし以前に入力されたスクリプト
ファイルのファイル名が入力された場合は、対応するス
クリプトオブジェクトが存在すると判定し、新たにスク
リプトファイルが入力された場合は対応するスクリプト
オブジェクトは存在しないと判定する。
【0178】対応するスクリプトオブジェクトが既に存
在する場合は、次に、スクリプトオブジェクト管理部2
1が、そのスクリプトオブジェクトをスクリプトオブジ
ェクト格納部15より検索する(ステップS2)。ま
た、それが存在しない場合は、スクリプトオブジェクト
管理部21は、入力されたスクリプトファイルに対応す
るスクリプトオブジェクトを新規に生成して、スクリプ
トオブジェクト格納部15に格納する(ステップS
3)。
【0179】ステップS2におけるスクリプトオブジェ
クトの検索は、オブジェクト指向データベースシステム
の提供する検索文を利用して行われる。例えば、スクリ
プトファイル“xxxx.scr”に対応するスクリプ
トオブジェクトを検索するには、 Script from Script where
Script.scriptFile==“xxxx.
scr”; という検索文が作成され、キーワードが“xxxx”の
スクリプトオブジェクトを検索するには、キーワードチ
ェック用のメソッドkeyword()を利用して、 Script from Script where
Script.keyword(“xxxx”); という検索文が作成される。そして、スクリプトオブジ
ェクト管理部21はこれらの検索文に対応する検索処理
を行い、スクリプトオブジェクト格納部15より該当す
るオブジェクトを検索する。
【0180】また、ステップS3におけるスクリプトオ
ブジェクトの新規生成は、オブジェクト指向データベー
スシステムの提供するメソッドnew()を利用して行
われる。
【0181】例えば、スクリプトファイル“xxxx.
scr”に対応するスクリプトオブジェクトを生成する
場合、 Script.new(scriptFile:=“x
xxx.scr”); により新規にオブジェクトが生成され、生成されたオブ
ジェクトがスクリプトオブジェクト格納部15に格納さ
れる。
【0182】次に、スクリプトパーザ22は、スクリプ
トファイルに対応するスクリプトオブジェクトに対して
メソッドdo()を適用し、スクリプトオブジェクトを
実行して(ステップS4)、処理を終了する。
【0183】例えば、実行するスクリプトオブジェクト
をscとすると、 sc.do(); によりそのスクリプトオブジェクトが実行され、これに
より、図18の流れにしたがって、parse()、s
chedule()、execute()が順に実行さ
れる。
【0184】図26は、メソッドdo()に基づくスク
リプトオブジェクトの実行処理を示すフローチャートで
ある。図26において処理が開始されると、スクリプト
パーザ22は、まずスクリプトオブジェクトが既に解析
されているかどうかを判定する(ステップS11)。
【0185】ここで、実行対象のスクリプトオブジェク
トが新規に生成されたものでない場合、つまり、以前に
入力されたスクリプトファイルに対応する場合は、それ
は既に解析されていると判定し、ステップS3において
新規に生成されたスクリプトオブジェクトの場合は、ま
だ解析されていないと判定する。
【0186】スクリプトオブジェクトが既に解析されて
いる場合は、次に、スクリプト実行部18が、スクリプ
トオブジェクトのexecs属性に記述された実行用オ
ブジェクトの集合の情報をもとに、実行用オブジェクト
格納部16よりそれらの実行用オブジェクトを検索する
(ステップS12)。
【0187】また、それがまだ解析されていない場合
は、スクリプトパーザ22がそのスクリプトオブジェク
トにメソッドparse()を適用することでそれを解
析して、実行用オブジェクト生成部23に実行用オブジ
ェクトを生成させる(ステップS13)。
【0188】次に、スクリプト実行部18は、ステップ
S12で検索された実行用オブジェクト、または、ステ
ップS13で生成された実行用オブジェクトがスケジュ
ーリングされているかどうかを調べる(ステップS1
4)。そして、それらがスケジューリングされていない
場合は、メソッドschedule()を適用して、ス
ケジューラ24にスケジューリング処理を行わせる(ス
テップS15)。
【0189】次に、データ表示部25は、スケジューリ
ング後の実行用オブジェクトにメソッドexecute
()を適用してそれらを実行し(ステップS16)、処
理を終了する。尚、ステップS14において、実行用オ
ブジェクトが既にスケジューリングされている場合は、
直ちにステップS16の処理が行われる。
【0190】例えば、スクリプトオブジェクトをsc、
scに対応する実行用オブジェクトの集合をxsとする
と、 if(scが既に解析されている) xs=sc.execs; else xs=sc.parse(); if(xsがスケジューリングされていない) xs=xs.schedul e(); xs.execute(); のような内容のプログラムを実行することで、スクリプ
トオブジェクトscが実行される。
【0191】次に、図27から図38までを参照しなが
ら、図26におけるステップS13、S15、S16の
各処理の詳細について説明する。図27は、ステップS
13におけるスクリプトオブジェクトの解析処理のフロ
ーチャートである。図27において処理が開始される
と、スクリプトパーザ22は、スクリプトオブジェクト
のscriptFile属性に記述されたスクリプトフ
ァイルを解析して実行に適した形式に書き換える。
【0192】そして、実行用オブジェクト生成部23
は、書き換えられたスクリプトファイルに基づいて必要
なメソッドを実行し、実行用オブジェクトの集合SET
1を生成する(ステップS21)。
【0193】次に、実行用オブジェクト生成部23は、
空集合SET2を生成し(ステップS22)、SET1
が空であるかどうかを調べる(ステップS23)。SE
T1が空でなければ、そこから1つの実行用オブジェク
トを取り出し、それをX1とおく(ステップS24)。
そして、実行用オブジェクトX1のtarget属性を
参照して、そこに記述されたターゲットオブジェクトが
スクリプトオブジェクトかコンテンツオブジェクトかを
調べる(ステップS25)。
【0194】実行用オブジェクトのターゲットオブジェ
クトがスクリプトオブジェクトである場合は、 X1.target.parse(); によりメソッドparse()を再帰的に実行すること
で、そのスクリプトオブジェクトが解析され、実行用オ
ブジェクトの集合SET3が生成される(ステップS2
6)。
【0195】次に、実行用オブジェクト生成部23は、
メソッドadd()を利用してSET2にSET3の要
素を加え(ステップS27)、メソッドremov
e()を利用してSET1から要素X1を取り除いて
(ステップS29)、ステップS23以降の処理を繰り
返す。
【0196】ステップS25において、ターゲットオブ
ジェクトがコンテンツオブジェクトである場合は、単に
SET2に要素X1を加えて(ステップS28)、ステ
ップS29以降の処理を行う。
【0197】そして、ステップS23においてSET1
が空になると、そのときのSET2を実行用オブジェク
ト格納部16に格納し(ステップS30)、メソッドr
eturn()によりSET2を出力して(ステップS
31)、処理を終了する。こうして出力されたSET2
により、対応するスクリプトオブジェクトのexecs
属性が書き換えられる。
【0198】例えば、スクリプトオブジェクトをsc、
対応するスクリプトファイルをsf、実行用オブジェク
トの集合をxsとすると、 sf=sc.scriptFile; xs=sfを解析した結果生成される実行用オブジェクト loop(xsのすべての実行用オブジェクトxについて) if(x.targetのクラスがScriptである){ x.target.parse(); xを新たに生成された実行用オブジェクトの集合に差し替える。
【0199】 }; sc.execs=xs; のような内容のプログラムを実行することで、実行用オ
ブジェクトを生成して、実行用オブジェクト格納部16
に格納することができる。
【0200】スクリプトファイルの中に他のスクリプト
ファイルを表すスクリプトオブジェクトが入れ子になっ
ている場合、このような解析処理を実行することによ
り、入れ子になっているスクリプトオブジェクトが再帰
的に実行用オブジェクトに展開される。したがって、ス
ケジューラ24は、スクリプトオブジェクトではなく、
実行用オブジェクトとそれに対応するコンテンツオブジ
ェクトとを参照しながら、スケジューリング処理を行う
ことができるようになる。
【0201】図28は、図27のステップS21におけ
るにスクリプトファイルの解析処理のフローチャートで
ある。図28において処理が開始されると、スクリプト
パーザ22は、まず指定されたスクリプトファイルを読
み込み、文の終わり“;”を判断して、一文ずつ取り出
す(ステップS41)。
【0202】次に、その文にメソッドが2つ以上存在す
るかどうかを調べ(ステップS42)、2つ以上存在す
る場合はその文を分解して、一文に1つのメソッドとな
るようにする(ステップS43)。
【0203】例えば、 a.m1().m2(); のように、あるオブジェクトaに対して2つのメソッド
m1()、m2()が作用している文の場合、仮のオブ
ジェクトtを用いて、 t=a.m1(); t.m2(); のような2つの文に分解することができる。
【0204】次に、各文のメソッド名が、play、d
o、parallel、serial、rendezv
ousのいずれかに該当するかどうかを調べる(ステッ
プS44)。メソッド名がこれらのいずれかである場合
は、後述するように、それぞれのメソッドに対応して文
を書き換え(ステップS45)、それ以外のメソッドの
場合はそのままにしておく。
【0205】次に、解析していない文が残っているかど
うかを調べ(ステップS46)、そのような文があれ
ば、ステップS41以降の処理を繰り返す。そして、ス
クリプトファイルのすべての文が解析されると、処理を
終了する。ここで、ステップS45の書き換え処理を各
メソッド名毎に説明する。 (イ)メソッド名がオペレーション(play、do)
の場合 ターゲットオブジェクトに、オペレーションを行うメソ
ッドplay()またはdo()を適用するように記述
されている場合、そのメソッド名をoperation
属性とする実行用オブジェクトを生成するように書き換
える。
【0206】例えば、ターゲットオブジェクトtgに対
してメソッドplay()を適用する文 tg.play(); がスクリプトファイルに記述されている場合、この文
を、 Exec.new( script:=スクリプトファイル名、 startTime:=0, target:=tg, operation:=“play” allTimeLength:=tg.timeLength ); と書き換える。書き換えられた文をステップS21で実
行することにより、tgにメソッドplay()を適用
する新しい実行用オブジェクトが生成される。 (ロ)メソッド名が時間制御用のメソッドである場合 実行用オブジェクトに時間制御を行うメソッドであるp
arallel()、serial()、rendez
vous()のいずれかを適用するように記述されてい
る場合、それを実行することにより、実行用オブジェク
トの時間に関する属性startTime、allTi
meLengthが変更される。
【0207】ここで、起動オブジェクトが実行用オブジ
ェクトの単体である場合は、そのオブジェクトを唯一の
要素とする集合に起動オブジェクトを書き換えてから実
行するものとする。個々の時間制御用メソッドに対応す
る書き換え処理の内容は以下の通りである。
【0208】(1)メソッド名がparallelの場
合 例えば、n個の実行用オブジェクトの集合(ブロック)
をxsとして、 xs.parallel(); と記述されているならば、xsの個々の要素を取り出
し、それらの要素をそれぞれ要素1個の集合xs1,x
s2,...,xsnとみなして、 xs1.parallel(xs2)....para
llel(xsn); のように書き換える。
【0209】また、それぞれが1つ以上の実行用オブジ
ェクトから成るブロックであるxs1,xs
2,...,xsnに対して、 {xs1,xs2,...,xsn}.paralle
l(); と記述されているならば、 xs1.parallel(xs2)....para
llel(xsn); のように書き換える。
【0210】こうして、複数の実行用オブジェクトの並
列実行を記述する文も、複数のブロックの並列実行を記
述する文も、ともに同じ形式で表現することができた。
書き換えられた文をステップS21で実行することによ
り、xs1,xs2,...,xsnの各要素の属性が
更新される。
【0211】ここで、2つのブロックの並列実行を表す xs1.parallel(xs2) は、 if((xs1の要素のallTimeLength)<(xs2の要素のa llTimeLength)) loop(xs1のすべての要素xiについて) xi.allTimeLength= (xs2の要素のallTimeLength); else loop(xs2のすべての要素xiについて) xi.allTimeLength= (xs1の要素のallTimeLength); のような処理を行うことを意味する。
【0212】通常、allTimeLength属性
は、1つのブロック内のすべての要素について同じ値に
なっており、xs1の要素のallTimeLengt
hとは、xs1の任意の要素のallTimeLeng
th属性に記述された値を意味する。
【0213】このような処理により、xs1とxs2の
allTimeLength属性のうち小さい方の値が
大きい方の値に更新され、xs1とxs2のすべての要
素のallTimeLength属性が同じ値になる。
【0214】尚、xs1とxs2の間では、各要素のs
tartTime属性の値は独立に設定されているの
で、各ブロックで最初に開始される要素のstartT
ime属性は、例えば生成時に設定された0のままにな
っている。このため、各要素のstartTime属性
を更新しなくても、xs1とxs2は同時に実行開始さ
れる。
【0215】さらに、更新されたxs1およびxs2を
1つのブロックとみなして、parallel(xs
3),...,parallel(xsn)を、同様に
して順に作用させていくことで、最終的にxs1,xs
2,...,xsnのallTimeLength属性
が、それらの最大値に統一される。
【0216】こうして更新された実行用オブジェクトの
ブロックxs1,xs2,...,xsnを実行する
と、各ブロックが1つの要素から成る場合は図29のよ
うに並列実行され、各ブロックが直列に実行されるいく
つかの要素から成る場合は、図30のように並列実行さ
れる。図29においては、各実行用オブジェクトが同時
に実行開始されており、図30においては、各ブロック
の先頭の実行用オブジェクトが同時に実行開始されてい
ることが分かる。
【0217】(2)メソッド名がserialの場合 例えば、 xs.serial(); と記述されているならば、xsの個々の要素を取り出
し、それらの要素をそれぞれ要素1個の集合xs1,x
s2,...,xsnとみなして、 xs1.serial(xs2)....serial
(xsn); のように書き換える。
【0218】また、それぞれが1つ以上の実行用オブジ
ェクトから成るブロックであるxs1,xs
2,...,xsnに対して、 {xs1,xs2,...,xsn}.seria
l(); と記述されているならば、 xs1.serial(xs2)....serial
(xsn); のように書き換える。
【0219】こうして、複数の実行用オブジェクトの直
列実行を記述する文も、複数のブロックの直列実行を記
述する文も、ともに同じ形式で表現することができた。
書き換えられた文をステップS21で実行することによ
り、xs1,xs2,...,xsnの各要素の属性が
更新される。
【0220】ここで、2つのブロックの直列実行を表す xs1.serial(xs2) は、 allTimeLength= (xs1の要素のallTimeLength)+ (xs2の要素のallTimeLength); loop(xs2のすべての要素xiについて){ xi.startTime=xi.startTime+ (xs1の要素のallTimeLength); xi.allTimeLength=allTimeLength; }; loop(xs1のすべての要素xiについて) xi.allTimeLength=allTimeLength; のような処理を行うことを意味する。この処理により、
xs1とxs2のallTimeLength属性がそ
れらの和に更新され、xs2の各要素のstartTi
me属性にxs1のallTimeLength属性の
値が加算される。
【0221】さらに、更新されたxs1およびxs2を
1つのブロックとみなして、serial(xs
3),...,serial(xsn)を、同様にして
順に作用させていくことで、最終的にxs1,xs
2,...,xsnのallTimeLength属性
がそれらの総和に統一され、xs2,...,xsnの
各要素のstartTime属性がすべて更新される。
【0222】こうして更新された実行用オブジェクトの
ブロックxs1,xs2,...,xsnを実行する
と、各ブロックが1つの要素から成る場合は図31のよ
うに直列実行され、各ブロックが直列に実行されるいく
つかの要素から成る場合は図32のように直列実行され
る。
【0223】図31においては、1つの実行用オブジェ
クトが実行終了すると、連続して次の実行用オブジェク
トが実行開始されており、図32においては、1つのブ
ロックの末尾の実行用オブジェクトが実行終了すると、
連続して次のブロックの先頭の実行用オブジェクトが実
行開始されていることが分かる。
【0224】(3)メソッド名がrendezvous
の場合 例えば、 xs.rendezvous(); と記述されているならば、xsの個々の要素を取り出
し、それらの要素をそれぞれ要素1個の集合xs1,x
s2,...,xsnとみなして、 xs1.rendezvous(xs2)....re
ndezvous(xsn); のように書き換える。
【0225】また、それぞれが1つ以上の実行用オブジ
ェクトから成るブロックであるxs1,xs
2,...,xsnに対して、 {xs1,xs2,...,xsn}.rendezv
ous(); と記述されているならば、 xs1.rendezvous(xs2)....re
ndezvous(xsn); のように書き換える。
【0226】こうして、複数の実行用オブジェクトの同
時終了を記述する文も、複数のブロックの同時終了を記
述する文も、ともに同じ形式で表現することができた。
書き換えられた文をステップS21で実行することによ
り、xs1,xs2,...,xsnの各要素の属性が
更新される。
【0227】ここで、2つのブロックの同時終了を表す xs1.rendezvous(xs2) は、 diff=(xs2の要素のallTimeLength)− (xs1の要素のallTimeLength); if(diff>0) loop(xs1のすべての要素xiについて){ xi.startTime=xi.startTime+diff; xi.allTimeLength= (xs2の要素のallTimeLength); }; else loop(xs2のすべての要素xiについて){ xi.startTime=xi.startTime−diff; xi.allTimeLength= (xs1の要素のallTimeLength); }; のような処理を行うことを意味する。この処理により、
xs1とxs2のallTimeLength属性のう
ち小さい方の値が大きい方の値に更新され、xs1また
はxs2の各要素のstartTime属性に、xs1
とxs2のallTimeLength属性の差(絶対
値)が加算される。
【0228】さらに、更新されたxs1およびxs2を
1つのブロックとみなして、rendezvous(x
s3),...,rendezvous(xsn)を、
同様にして順に作用させていくことで、最終的にxs
1,xs2,...,xsnのallTimeLeng
th属性がそれらの最大値に統一され、その最大値に満
たないallTimeLength属性を持っていた要
素のstartTime属性が更新される。
【0229】こうして更新された実行用オブジェクトの
ブロックxs1,xs2,...,xsnを実行する
と、各ブロックが1つの要素から成る場合は図33のよ
うに実行され、各ブロックが直列に実行されるいくつか
の要素から成る場合は図34のように実行される。図3
3においては、各実行用オブジェクトが同時に実行終了
しており、図34においては、各ブロックの末尾の実行
用オブジェクトが同時に実行終了していることが分か
る。
【0230】図28のステップS44において、メソッ
ド名がplay、do、parallel、seria
l、rendezvous以外のものである場合は、文
の書き換えは行われず、図27のステップS21におい
てそのまま実行される。これにより、対応する実行用オ
ブジェクトが新しく生成されたり、実行用オブジェクト
の属性が更新されたりする。
【0231】ここで、メソッドwait()、anyt
ime()、execute()の場合を例に取り、ス
テップS21で行われる処理を説明する。 (ハ)メソッド名がwaitの場合 例えば、ユーザが指定した遅延時間をtimeとして、 xs.wait(time) と記述されているならば、 loop(xsのすべての要素xiについて){ xi.startTime=xi.startTime+time; xi.allTimeLength= xi.allTimeLength+time; }; のような処理が行われる。これにより、xsの各要素の
startTime属性とallTimeLength
属性にtimeの値が加算される。
【0232】こうして更新された実行用オブジェクトの
ブロックxsを実行すると、xsが直列に実行される3
つの要素から成る場合は、図35のように実行される。
図35において、各実行用オブジェクトは、元のsta
rtTimeより指定時間timeだけ遅れて実行開始
されていることが分かる。 (ニ)メソッド名がanytimeの場合 例えば、ユーザが指定した時間をtimeとして、 xs.anytime(time) と記述されているならば、 timeLag=time−(xsの要素のallTimeLength); loop(xsのすべての要素xiについて){ xi.startTime=[xi.startTime, xi.startTime+timeLag]; xi.allTimeLength=time; }; のような処理が行われる。ここで、[a,b]は、a≦
t≦bなる任意の値tを表している。これにより、xs
の各要素のstartTime属性とallTimeL
ength属性がtimeを用いて更新される。
【0233】こうして更新された実行用オブジェクトの
ブロックxsを実行すると、xsが直列に実行される3
つの要素から成る場合は、図36のように実行される。
図36において、各実行用オブジェクトは元のstar
tTimeより最大timeLagだけ遅れて実行開始
され、すべての実行用オブジェクトの実行は指定時間t
ime内に完了していることが分かる。
【0234】ここで、startTime属性の更新値
については、例えば動画像のビューを複数表示させる場
合などに、スケジューラ24を用いて、資源量に余裕の
ある時間帯に表示するように調整することが可能であ
る。この調整方法として、例えば、次の2つの方法が考
えられる。
【0235】第1の方法は、メソッドanytimeを
利用するビューオブジェクト以外のビューオブジェクト
の長さを用いて、ビューが重複する時間帯を区切り、a
nytimeを利用するビューオブジェクトの開始時刻
を、各時間帯の先頭時刻に仮設定する方法である。この
方法では、timeLag内に収まる設定時刻のうち、
重複するビューオブジェクトの数が最も少なくなるよう
な値が、startTimeとして採用される。
【0236】例えば、図37(a)に示すように、並列
に実行されるビューオブジェクトv11、v12と同じ
時間帯に、メソッドanytime()が適用されたビ
ューオブジェクトv13を追加する場合を考える。そし
て、ビューオブジェクトv13のstartTime属
性が、a≦startTime≦bとなるように指定さ
れたとする。
【0237】このとき、第1の方法によれば、図37
(b)に示すように、ビューオブジェクトv11の実行
時間からビューオブジェクトv12の実行時間に対応す
る時間帯T11が切り取られ、その残りが時間帯T12
となる。ビューオブジェクトv13のstartTim
eの設定時刻としては、2つの時間帯T11、T12の
先頭が考えられるが、この例では、時間帯T12の先頭
は上限値bを越えていることが分かる。
【0238】そこで、startTimeは、時間帯T
11の先頭である時刻aに設定される。この場合、時間
帯T11のすべてに渡って、3つのビューオブジェクト
v11、v12、v13が重複して実行される。
【0239】また、第2の方法は、第1の方法で決定し
たstartTimeをずらして、ビューオブジェクト
同士の重複部分が最小になるように、startTim
eを設定し直す方法である。
【0240】図37(b)の例に第2の方法を適用する
と、ビューオブジェクトv13のstartTime
は、図37(c)に示すように、上限時刻bまでずらさ
れることになる。このとき、時間帯T11におけるビュ
ーオブジェクトv11、v12、v13の重複時間は、
a≦startTime≦bの制限の下で最小となって
いる。 (ホ)メソッド名がexecuteの場合 実行用オブジェクトにメソッドexecute()を適
用するように記述されている場合は、その起動オブジェ
クト(実行用オブジェクト)を解析結果として、集合S
ET1の要素に加える。
【0241】以上のように、実行用オブジェクトに時間
制御用のメソッドが適用される度に、そのstartT
ime属性やallTimeLength属性が更新さ
れるが、更新の結果として、1つのブロックに属する各
実行用オブジェクトのallTimeLength属性
は同じ値になる。
【0242】また、上述のブロックxs1,xs
2,...,xsn,xs内の各実行用オブジェクト
は、必ずしも、図30、32、34、35、36に示し
たように直列に実行されるとは限らず、並列に実行され
ることもあれば、より複雑な時間制御が施されることも
ある。一般に、ブロック内の実行用オブジェクトの時間
関係は、対応するスクリプトファイルの記述に依存して
決まる。
【0243】次に、図38のフローチャートを参照しな
がら、図26のステップS15における実行用オブジェ
クトのスケジューリング処理について説明する。図38
において処理が開始されると、スクリプト実行部18
は、スケジューリングの対象となる複数の実行用オブジ
ェクトのstartTime属性に記述された実行開始
時刻と、allTimeLength属性に記述された
全実行時間長とを読み込む(ステップS51)。
【0244】また、それらのtarget属性に記述さ
れたコンテンツオブジェクトを参照して、そのtime
Length属性に記述された実行時間長と、stre
ams属性に記述されたストリームデータの品質(スト
リームオブジェクトの識別情報)とを読み込む。
【0245】次に、スケジューラ24を起動して、読み
込んだデータを渡す(ステップS52)。スケジューラ
24は、同じ時間帯に実行されるコンテンツオブジェク
トと資源の制約等の実行環境とを考慮し、例えば図17
に示したようなスケジューリング処理を行う。そして、
各実行用オブジェクト毎に、使用するストリームデータ
の品質と、起動に要する時間を考慮した実行開始時刻と
を決定する。
【0246】このとき、startTime属性から読
み取った実行開始時刻に、プレーヤ26や表示装置20
等の起動に必要な時間が加味されて、実際の実行開始時
刻が決定される。また、各時間帯において使用可能なC
PU負荷等の制限を満たすように、各コンテンツに対応
するストリームデータが決定される。
【0247】そして、決定したストリームデータに対応
するストリームオブジェクトの識別情報と、実行開始時
刻とを用いて、個々の実行用オブジェクトのsched
uleData属性を更新し(ステップS53)、処理
を終了する。
【0248】このように、実行用オブジェクトに記され
たstartTime、allTimeLength、
targetの各属性を参照することで、複数の実行用
オブジェクトのスケジューリングを自動的に行うことが
可能となる。また、スケジューリングの結果は各実行用
オブジェクトのscheduleData属性に書き込
まれ、対応するマルチメディアデータの実行時に参照さ
れる。
【0249】次に、図39のフローチャートを参照しな
がら、図26のステップS16における実行用オブジェ
クトの実行処理について説明する。図39において処理
が開始されると、データ表示部25は、スケジューリン
グされたk個の実行用オブジェクトのschedule
Data属性から、実行開始時刻と使用ストリームデー
タの識別情報の組を読み込む(ステップS61)。
【0250】次に、scheduleDataに記述さ
れたストリームオブジェクトに対応するストリームデー
タを、各実行用オブジェクト毎に用意されたプレーヤ2
6に一組ずつ渡す(ステップS62−1,S62−
1,...,S62−k)。
【0251】そして、スケジューリングされた実行開始
時刻に、コマンドfork&execを用いて各プレー
ヤ26を起動し、処理を終了する。こうして、各実行用
オブジェクトに対応するストリームデータがプレーヤ2
6によりスケジュール通りに実行され、表示装置20に
出力される。
【0252】このように、実行用オブジェクトに記され
たscheduleData属性を参照することで、ス
ケジューリング結果に基づくデータ出力が自動的に行わ
れ、その結果として、入力されたスクリプトファイルに
従ったプレゼンテーションが実現される。
【0253】次に、動画像を表示する場合を例に取っ
て、上述の先願(特願平7−240351)に示された
スケジューリング処理およびデータ出力処理について説
明する。
【0254】動画像を再生する場合、ハードウェアによ
る1台の復号装置では1度に1つの動画像(ビデオスト
リーム)しか扱うことができないため、任意の数の動画
像を同時に再生することができない。一方、プレーヤ2
6としてソフトウェアを用いる場合、動画像の数に合わ
せてプレーヤ26を用意することで、任意の数の動画像
を同時に再生することができる。
【0255】また、複数の実行用オブジェクトにより複
数のビューとその再生開始時刻(実行開始時刻)とを指
定した場合、幾つかのビューが同時に再生され、同時に
再生される動画像の数が時刻によって変化することがあ
る。このため、同時に再生される動画像の数の変化に応
じて、動画像を再生するための負荷を変化させることに
より、コンピュータ資源を有効に使用することができ
る。
【0256】例えば、スケジューラ24は、あるビュー
に対し、ビュー(動画像)の同時再生数の変化に応じて
再生に使用するストリームデータのファイルを選択す
る。そして、データ表示部25が管理するウィンドウシ
ステムを用いて作成した1つの表示ウィンドウに、選択
したファイルを順に再生して表示することにより、ユー
ザは、データ自体は独立しているにもかかわらず連続し
たビューが再生されているものとして見ることができ
る。
【0257】一方、単にウィンドウを生成して動画像を
順に再生するのみでは、動画像の切替え部分で処理に時
間がかかり連続して再生しているようには見えない。こ
れは、データ表示部25がプレーヤ26を起動する時に
生じる初期化に時間がかかったり、マルチメディアデー
タに部分的にアクセスするための処理に時間がかかった
りして、再生画像をウィンドウに連続して出力できない
ためである。
【0258】このため、再生画像の出力に先立ち、あら
かじめ必要な前処理を行い、指定された再生開始時刻ま
でsleepして待つことにより、再生画像をウィンド
ウに連続して出力できるようにする。
【0259】すなわち、再生開始時刻より前にプレーヤ
26をビュー毎に起動する。そして、プレーヤ26の起
動パラメータとして、ウィンドウシステム上でウィンド
ウを作成する位置とフレームサイズ、ストリームデータ
のファイル名、ビューの再生開始時刻、ピクチャレー
ト、ストリームデータ上の部分アクセスを開始する位
置、ビューの再生時間長(実行時間長)を入力する。こ
れらのパラメータはスケジューラ24により決定され、
それぞれのビューの表示時間帯は連続させる。
【0260】このように、ビューを実現するためには、
与えられたストリームデータに対して、指定された箇所
から再生できなけばならない。動画像の場合、先頭から
のフレーム数などを用いることにより、ストリームデー
タの再生開始場所を指定することができる。
【0261】例えば、MPEG−1videoフォーマ
ットでは、数枚のフレームを符号化したデータを1まと
まりにしたGOP(group of pictures )という単位を
用いてデータ内の位置が表される。もし、指定されたフ
レームが、どのGOPに含まれるか、さらにGOP内の
フレームの何番目であるか(オフセット)を知ることが
できれば、そこから再生を開始することができる。
【0262】このため、MPEG−1videoデータ
の場合、あらかじめデータ内の各GOPの開始位置に対
応するバイト数(開始バイト)と、各GOP内で最初に
再生されるフレーム番号との対応関係を調べ、それらを
対応表にしてストリームオブジェクトの属性として保持
しておく。
【0263】そして、データを指定されたフレームから
再生する場合、対応表にあるフレーム番号のうち指定さ
れたフレーム番号以下であって、かつ、最大のフレーム
番号を検索し、その最大のフレーム番号に対応するGO
Pの開始バイトを取得する。また、その最大のフレーム
番号と指定されたフレーム番号との差をオフセットとす
る。
【0264】こうして取得したGOPの開始バイトから
データの復号を開始し、オフセットに対応する数のフレ
ームは復号のみ行い、オフセットの次のフレームから表
示を開始すれば、指定されたフレームからの再生が行わ
れる。
【0265】したがって、MPEG−1videoデー
タを再生するプレーヤ26には、MPEG−1vide
oデータが格納されているファイル名と、ウィンドウシ
ステムでの表示用ウィンドウの位置、再生を開始するG
OPの開始バイト、フレームのオフセット、再生開始時
刻、表示フレーム数、ピクチャレート等が入力される。
【0266】そして、プレーヤ26は、データの再生開
始時刻以前にウィンドウシステムに表示用ウィンドウを
生成し、それぞれのビューに対応するデータのシーケン
スヘッダ部分を読み込み、初期化を行う。
【0267】その後、指定されたGOPの開始バイトの
位置にファイルの読み出しポインタを移動し、そこから
始まるGOPを解析し、オフセットで指定されたフレー
ム分を表示せずに復号のみ行う。これにより初期化が終
了するので、再生開始時刻までsleepして待つ。
【0268】再生開始時刻になり、sleep状態から
run状態に遷移すると、プレーヤ26は、ウィンドウ
システム上の指定位置に生成したウィンドウに、復号し
たフレームを、指定されたピクチャレートで、指定され
たフレームから、指定された表示フレーム数だけ表示す
る。
【0269】このように、プレーヤ26をビュー毎に起
動することで、複数の動画像を同時に連続表示すること
が可能になる。尚、ここで説明したプレーヤ26の処理
は一例に過ぎず、上述の先願(特願平7−24035
1)に示された他の再生プログラムも、プレーヤ26と
して同様に使用することができる。
【0270】以上説明した実施形態においては、コンテ
ンツの実行方法を記したスクリプト自身に対応するスク
リプトオブジェクトを定義し、これをコンテンツオブジ
ェクトと同じクラスのオブジェクトとして扱うことで、
スクリプトに対してメソッドを自動的に適用することが
可能になる。
【0271】このため、入力するスクリプトの中に他の
スクリプトを表す変数を記述しておき、それにpara
llel()等の任意の時間制御用メソッドを作用させ
ておけば、間接的に、その変数が表すスクリプトから派
生する実行用オブジェクトにそのメソッドを作用させる
ことができる。
【0272】また、スクリプトがこのように入れ子構造
になっている場合、入れ子になっているスクリプトを再
帰的に実行用オブジェクトに展開することで、スケジュ
ーリングを容易に行うことが可能になる。
【0273】また、コンテンツオブジェクトとスクリプ
トオブジェクトとを参照可能な実行用オブジェクトのク
ラスを設け、この実行用オブジェクトを参照すること
で、多数のコンテンツの複雑な組合せに対して効率のよ
いスケジューリングが行われる。
【0274】本実施形態においては、主としてスクリプ
トを利用した動画像のビューの表示方法について説明し
たが、音声、イメージ(グラフィックス)、テキスト等
の他の任意のマルチメディアデータについても、同様に
スクリプトを利用して出力することができる。また、資
源の制約を満たす限りにおいて、異種のマルチメディア
データを自由に組み合わせたプレゼンテーションを容易
に実現することができる。
【0275】また、実行用オブジェクトの時間制御用メ
ソッドとしては、parallel()、serial
()、rendezvous()、wait()、an
ytime()以外にも、任意のメソッドを定義して用
いることができる。例えば、複数のデータを一定時間間
隔で出力したり、順序をランダムに変更して出力したり
するメソッドを用意しておいてもよい。
【0276】
【発明の効果】本発明によれば、スクリプトを利用して
複数のマルチメディアデータをデータベースから検索
し、それらの一部分を多様に組み合わせて出力すること
ができる。また、スクリプト自身をデータベース化して
おき、それを必要に応じて検索して再利用することもで
きる。このため、他のスクリプトが入れ子になっている
ような複雑なスクリプトも自動的に実行される。
【0277】また、マルチメディアデータのプレゼンテ
ーションにおいては実行環境の資源の制約を受ける場合
が多いが、複雑な組合せのプレゼンテーションであって
も、ユーザが意識することなく適切なスケジューリング
が行われ、制約を満たすデータを用いたプレゼンテーシ
ョンが自動的に行われる。
【0278】したがって、マルチメディアデータを格納
したデータベースシステムにおいて、スクリプトに記述
された複雑なプレゼンテーションを効率よく自動的に実
行することが可能になる。
【図面の簡単な説明】
【図1】本発明のマルチメディアデータ・プレゼンテー
ションシステムの原理図である。
【図2】マルチメディアデータ・プレゼンテーションシ
ステムの構成図である。
【図3】データベースシステムの構成図である。
【図4】クラス階層と参照関係を示す図である。
【図5】ターゲットクラスの属性とメソッドを示す図で
ある。
【図6】スクリプトクラスの属性とメソッドを示す図で
ある。
【図7】実行用クラスの属性とメソッドを示す図であ
る。
【図8】コンテンツクラスの属性とメソッドを示す図で
ある。
【図9】コンテンツとビューの時間関係を示す図であ
る。
【図10】ストリームクラスの属性とメソッドを示す図
である。
【図11】コンテンツオブジェクトとストリームオブジ
ェクトとビデオデータの関係を示す図である。
【図12】コンテンツオブジェクトとストリームオブジ
ェクトとの対応付けの方法を示す図である。
【図13】フレームの選択方法を示す図である。
【図14】ピクチャレートを下げたデータの生成装置を
示す図である。
【図15】フレームサイズの縮小方法を示す図である。
【図16】フレームサイズを縮小したデータの生成装置
を示す図である。
【図17】スケジューラの選択可能データとスケジュー
リング結果を示す図である。
【図18】スクリプトを利用したプレゼンテーションの
流れを示す図である。
【図19】スクリプト用オペレーションを示す図であ
る。
【図20】第1のスクリプトファイルを示す図である。
【図21】スクリプトオブジェクトとビューオブジェク
トと実行用オブジェクトの関係を示す図である。
【図22】2つのビューオブジェクトの並列実行を示す
タイミングチャートである。
【図23】第2のスクリプトファイルを示す図である。
【図24】2つのスクリプトオブジェクトの直列実行を
示すタイミングチャートである。
【図25】スクリプトを利用したプレゼンテーションの
フローチャートである。
【図26】スクリプトオブジェクトの実行処理のフロー
チャートである。
【図27】スクリプトオブジェクトの解析処理のフロー
チャートである。
【図28】スクリプトファイルの解析処理のフローチャ
ートである。
【図29】実行用オブジェクトの並列実行を示す図であ
る。
【図30】ブロックの並列実行を示す図である。
【図31】実行用オブジェクトの直列実行を示す図であ
る。
【図32】ブロックの直列実行を示す図である。
【図33】実行用オブジェクトの同時終了実行を示す図
である。
【図34】ブロックの同時終了実行を示す図である。
【図35】指定時間だけ遅らせた実行を示す図である。
【図36】指定時間内の実行を示す図である。
【図37】指定時間内における実行開始時刻の決定方法
を示す図である。
【図38】実行用オブジェクトのスケジューリング処理
のフローチャートである。
【図39】実行用オブジェクトの実行処理のフローチャ
ートである。
【符号の説明】
1 記憶手段 2 生成手段 3 実行手段 11 マルチメディアデータ格納部 12 ストリームオブジェクト格納部 13 コンテンツオブジェクト格納部 14 スクリプトファイル格納部 15 スクリプトオブジェクト格納部 16 実行用オブジェクト格納部 17 スクリプト管理部 18 スクリプト実行部 19 入力装置 20 表示装置 21 スクリプトオブジェクト管理部 22 スクリプトパーザ 23 実行用オブジェクト生成部 24 スケジューラ 25 データ表示部 26 プレーヤ 31 CPU 32 メモリ 33 データベース 34 バス 35 媒体駆動装置 36 可搬記録媒体 40 コンポジットクラス 41 ターゲットクラス 42 実行用クラス 43 スクリプトクラス 51 ビデオコンテンツクラス 52 オーディオコンテンツクラス 53 イメージコンテンツクラス 54 テキストコンテンツクラス 60 ストリームクラス 61 ビデオクラス 62 オーディオクラス 63 イメージクラス 64 テキストクラス 65 Mpegクラス 66 MpegAudioクラス 67 Jpegクラス 71 スクリプトファイル 72、82a、82b、82c ビデオデータ 73 オーディオデータ 80a、80b、83 コンテンツオブジェクト 81a、81b、81c、84、85、86 ストリー
ムオブジェクト 91、95、101、105 MPEGファイル 92、102 MPEGデコーダ 93 フレーム選択プログラム 94、104 MPEGエンコーダ 96、97 フレーム 103 サイズ選択プログラム
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G09G 5/00 510 G06F 15/62 321A

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 データベースからマルチメディアデータ
    を検索して出力する情報処理装置において、 マルチメディアデータの組合せ方法を含むプレゼンテー
    ションのシナリオを記述したスクリプトファイルと、該
    スクリプトファイルから生成される実行用オブジェクト
    と、該実行用オブジェクトに対応するマルチメディアデ
    ータとを記憶する記憶手段と、 前記スクリプトファイルを解析して、前記プレゼンテー
    ションに必要な前記実行用オブジェクトを生成する生成
    手段と、 前記実行用オブジェクトを起動して、該実行用オブジェ
    クトに対応する前記マルチメディアデータを出力する実
    行手段とを備えることを特徴とするマルチメディアデー
    タ・プレゼンテーションシステム。
  2. 【請求項2】 前記記憶手段は、さらに前記実行用オブ
    ジェクトに対応するマルチメディアデータの内容を表す
    コンテンツオブジェクトと、該コンテンツオブジェクト
    に対応付けられ、該マルチメディアデータの品質を表す
    1つ以上のストリームオブジェクトとを記憶し、前記実
    行手段は、該実行用オブジェクトを参照して、使用する
    マルチメディアデータの品質を決定し、これにより、適
    切な品質のマルチメディアデータを用いて、前記スクリ
    プトファイルに記述された前記プレゼンテーションを自
    動的に行うことを特徴とする請求項1記載のマルチメデ
    ィアデータ・プレゼンテーションシステム。
  3. 【請求項3】 前記記憶手段は、前記マルチメディアデ
    ータの内容の一部分を表すビューオブジェクトを前記コ
    ンテンツオブジェクトとして記憶し、前記実行手段は、
    該ビューオブジェクトを参照して該マルチメディアデー
    タの一部分を出力することを特徴とする請求項2記載の
    マルチメディアデータ・プレゼンテーションシステム。
  4. 【請求項4】 前記生成手段は、前記スクリプトファイ
    ルに対応する第1のスクリプトオブジェクトを生成して
    前記記憶手段に格納し、該第1のスクリプトオブジェク
    トを起動することにより、前記実行用オブジェクトを生
    成し、さらに前記実行手段に該実行用オブジェクトを起
    動させることを特徴とする請求項2記載のマルチメディ
    アデータ・プレゼンテーションシステム。
  5. 【請求項5】 前記記憶手段は、前記第1のスクリプト
    オブジェクトの属性として、前記スクリプトファイルの
    識別情報と該スクリプトファイルから生成された前記実
    行用オブジェクトの識別情報とを記憶し、前記実行手段
    は、該第1のスクリプトオブジェクトにより指定される
    該実行用オブジェクトを参照して、前記使用するマルチ
    メディアデータを出力することを特徴とする請求項4記
    載のマルチメディアデータ・プレゼンテーションシステ
    ム。
  6. 【請求項6】 前記記憶手段は、コンテンツオブジェク
    トとスクリプトオブジェクトとを、それぞれ、同一のク
    ラスに属するターゲットオブジェクトとして記憶し、コ
    ンテンツオブジェクトとスクリプトオブジェクトを統一
    的に扱うことを特徴とする請求項4記載のマルチメディ
    アデータ・プレゼンテーションシステム。
  7. 【請求項7】 前記生成手段は、前記スクリプトファイ
    ルに記述された検索条件にしたがって前記記憶手段から
    検索されたターゲットオブジェクトに対応して、該ター
    ゲットオブジェクトの識別情報を有する前記実行用オブ
    ジェクトを生成することを特徴とする請求項6記載のマ
    ルチメディアデータ・プレゼンテーションシステム。
  8. 【請求項8】 前記スクリプトファイルに、コンテンツ
    オブジェクトまたはスクリプトオブジェクトに対してメ
    ソッドを作用させるように記述されているとき、前記生
    成手段は、記述されたコンテンツオブジェクトまたはス
    クリプトオブジェクトの識別情報をターゲット属性と
    し、該メソッドをオペレーション属性とするような実行
    用オブジェクトを生成することを特徴とする請求項6記
    載のマルチメディアデータ・プレゼンテーションシステ
    ム。
  9. 【請求項9】 前記生成手段は、前記スクリプトファイ
    ルを解析して、実行対象となるターゲットオブジェクト
    と、該ターゲットオブジェクトの第1の実行開始時刻と
    を決定するスクリプトパーザ手段を備え、前記記憶手段
    は、該第1の実行開始時刻を前記実行用オブジェクトの
    開始時刻属性として記憶することを特徴とする請求項6
    記載のマルチメディアデータ・プレゼンテーションシス
    テム。
  10. 【請求項10】 前記スクリプトパーザが前記スクリプ
    トファイルを解析したとき、前記実行対象となるターゲ
    ットオブジェクトが第2のスクリプトオブジェクトであ
    る場合は、該第2のスクリプトオブジェクトに対応する
    スクリプトファイルを再び解析し、解析過程で現れるス
    クリプトオブジェクトに対応するスクリプトファイルを
    再帰的に解析することを繰り返して、最終的な実行対象
    のターゲットオブジェクトと、該最終的な実行対象のタ
    ーゲットオブジェクトの実行開始時刻とを求めることを
    特徴とする請求項9記載のマルチメディアデータ・プレ
    ゼンテーションシステム。
  11. 【請求項11】 前記実行手段は、前記実行用オブジェ
    クトから前記コンテンツオブジェクトの識別情報と開始
    時刻属性とを読み取り、読み取った情報に基づいて、使
    用するストリームオブジェクトと、起動に要する時間を
    考慮した第2の実行開始時刻とを決定し、決定したスト
    リームオブジェクトの識別情報と実行開始時刻とを該実
    行用オブジェクトのスケジュールデータ属性として格納
    するスケジューラ手段を備え、該スケジュールデータ属
    性に基づいて、前記使用するマルチメディアデータを出
    力することを特徴とする請求項2記載のマルチメディア
    データ・プレゼンテーションシステム。
  12. 【請求項12】 前記実行部手段は、前記使用するマル
    チメディアデータのうち、前記コンテンツオブジェクト
    に記述された部分を出力するための処理を前記第2の実
    行開始時刻に開始するプレーヤ手段を、各実行用オブジ
    ェクト毎に備えることを特徴とする請求項11記載のマ
    ルチメディアデータ・プレゼンテーションシステム。
  13. 【請求項13】 前記スクリプトファイルを作成するた
    めのスクリプト情報を前記生成手段に入力する入力手段
    と、前記マルチメディアデータを前記実行手段から受け
    取って表示または再生する出力手段をさらに備え、前記
    生成手段は、前記スクリプト情報に基づいて作成した前
    記スクリプトファイルを前記記憶手段に格納することを
    特徴とする請求項1記載のマルチメディアデータ・プレ
    ゼンテーションシステム。
  14. 【請求項14】 前記スクリプトファイルに前記実行用
    オブジェクトの実行時間制御に関する記述がある場合、
    前記生成手段は、該実行時間制御に関する記述に基づい
    て、該実行用オブジェクトの第1の実行開始時刻を計算
    し、該第1の実行開始時刻を該実行用オブジェクトの開
    始時刻属性として前記記憶手段に格納することを特徴と
    する請求項1記載のマルチメディアデータ・プレゼンテ
    ーションシステム。
  15. 【請求項15】 前記スクリプトファイルに2つ以上の
    実行用オブジェクトを並列実行するように記述されてい
    る場合、前記生成手段は、該2つ以上の実行用オブジェ
    クトが同時に実行を開始するように、各実行用オブジェ
    クトの第1の実行開始時刻を計算することを特徴とする
    請求項14記載のマルチメディアデータ・プレゼンテー
    ションシステム。
  16. 【請求項16】 前記スクリプトファイルに、複数の実
    行用オブジェクトをブロックとみなして、2つ以上のブ
    ロックを並列実行するように記述されている場合、前記
    生成手段は、該2つ以上のブロックの先頭の実行用オブ
    ジェクトが同時に実行を開始するように、各実行用オブ
    ジェクトの第1の実行開始時刻を計算することを特徴と
    する請求項14記載のマルチメディアデータ・プレゼン
    テーションシステム。
  17. 【請求項17】 前記スクリプトファイルに2つ以上の
    実行用オブジェクトを直列実行するように記述されてい
    る場合、該2つ以上の実行用オブジェクトが連続して実
    行されるように、各実行用オブジェクトの第1の実行開
    始時刻を計算することを特徴とする請求項14記載のマ
    ルチメディアデータ・プレゼンテーションシステム。
  18. 【請求項18】 前記スクリプトファイルに、複数の実
    行用オブジェクトをブロックとみなして、2つ以上のブ
    ロックを直列実行するように記述されている場合、該2
    つ以上のブロックが連続して実行されるように、各実行
    用オブジェクトの第1の実行開始時刻を計算することを
    特徴とする請求項14記載のマルチメディアデータ・プ
    レゼンテーションシステム。
  19. 【請求項19】 前記スクリプトファイルに2つ以上の
    実行用オブジェクトを同時に終了させるように記述され
    ている場合、該2つ以上の実行用オブジェクトの終了時
    刻が一致するように、各実行用オブジェクトの第1の実
    行開始時刻を計算することを特徴とする請求項14記載
    のマルチメディアデータ・プレゼンテーションシステ
    ム。
  20. 【請求項20】 前記スクリプトファイルに、複数の実
    行用オブジェクトをブロックとみなして、2つ以上のブ
    ロックを同時に終了させるように記述されている場合、
    該2つ以上のブロックの終了時刻が一致するように、各
    実行用オブジェクトの第1の実行開始時刻を計算するこ
    とを特徴とする請求項14記載のマルチメディアデータ
    ・プレゼンテーションシステム。
  21. 【請求項21】 前記スクリプトファイルに1つ以上の
    実行用オブジェクトを指定時間後に実行するように記述
    されている場合、該1つ以上の実行用オブジェクトが該
    指定時間だけ遅れて実行を開始するように、各実行用オ
    ブジェクトの第1の実行開始時刻を計算することを特徴
    とする請求項14記載のマルチメディアデータ・プレゼ
    ンテーションシステム。
  22. 【請求項22】 前記スクリプトファイルに1つ以上の
    実行用オブジェクトを指定時間内に実行するように記述
    されている場合、該1つ以上の実行用オブジェクトが指
    定時間内に実行を開始し、終了するように、各実行用オ
    ブジェクトの第1の実行開始時刻を計算することを特徴
    とする請求項14記載のマルチメディアデータ・プレゼ
    ンテーションシステム。
  23. 【請求項23】 データベースからマルチメディアデー
    タを検索して出力するためのプログラムを記録した記録
    媒体であって、 マルチメディアデータの組合せ方法を含むプレゼンテー
    ションのシナリオを記述したスクリプトファイルを解析
    して、該プレゼンテーションに必要な実行用オブジェク
    トを生成する機能と、 前記実行用オブジェクトを起動して、該実行用オブジェ
    クトに対応するマルチメディアデータを出力する機能と
    をコンピュータに実現させるためのプログラムを記録し
    たコンピュータ読み取り可能な記録媒体。
  24. 【請求項24】 前記スクリプトファイルに対応するス
    クリプトオブジェクトを生成する機能と、該スクリプト
    オブジェクトを起動することにより、前記実行用オブジ
    ェクトを生成して起動する機能とを前記コンピュータに
    実現させるためのプログラムをさらに記録した請求項2
    3記載のコンピュータ読み取り可能な記録媒体。
  25. 【請求項25】 データベースからマルチメディアデー
    タを検索して出力する方法において、 マルチメディアデータの組合せ方法を含むプレゼンテー
    ションのシナリオを記述したスクリプトファイルを作成
    し、 該スクリプトファイルを解析して、前記プレゼンテーシ
    ョンに必要な実行用オブジェクトを生成し、 前記実行用オブジェクトを起動して、該実行用オブジェ
    クトに対応するマルチメディアデータを出力することを
    特徴とするマルチメディアデータ・プレゼンテーション
    方法。
  26. 【請求項26】 前記スクリプトファイルに対応するス
    クリプトオブジェクトを生成し、該スクリプトオブジェ
    クトを起動することにより、前記実行用オブジェクトを
    生成して起動することを特徴とする請求項25記載のマ
    ルチメディアデータ・プレゼンテーション方法。
JP12390897A 1996-05-22 1997-05-14 マルチメディアデータ・プレゼンテーションシステムおよび方法 Withdrawn JPH10134030A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12390897A JPH10134030A (ja) 1996-05-22 1997-05-14 マルチメディアデータ・プレゼンテーションシステムおよび方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-126887 1996-05-22
JP12688796 1996-05-22
JP12390897A JPH10134030A (ja) 1996-05-22 1997-05-14 マルチメディアデータ・プレゼンテーションシステムおよび方法

Publications (1)

Publication Number Publication Date
JPH10134030A true JPH10134030A (ja) 1998-05-22

Family

ID=26460699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12390897A Withdrawn JPH10134030A (ja) 1996-05-22 1997-05-14 マルチメディアデータ・プレゼンテーションシステムおよび方法

Country Status (1)

Country Link
JP (1) JPH10134030A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000055838A1 (fr) * 1999-03-17 2000-09-21 Seiko Epson Corporation Procede et appareil d'affichage de projection
JP2003006555A (ja) * 2001-06-25 2003-01-10 Nova:Kk コンテンツ配信方法、シナリオデータ、記録媒体およびシナリオデータ生成方法
JP2003111078A (ja) * 2001-09-27 2003-04-11 Fujitsu Ltd コンテンツ符号化装置、コンテンツ復号化装置、コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ符号化方法、コンテンツ復号化方法、コンテンツ符号化プログラム、およびコンテンツ復号化プログラム
KR20050017820A (ko) * 2003-08-09 2005-02-23 정관선 전송된 키워드를 이용한 웹하드 파일실행방법 및 시스템
WO2007013334A1 (ja) * 2005-07-27 2007-02-01 Sharp Kabushiki Kaisha 映像合成装置及びプログラム
US9239839B2 (en) 2004-04-06 2016-01-19 Thomson Licensing Device and method for multimedia data retrieval
US9262209B2 (en) 2010-08-10 2016-02-16 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1079365B1 (en) * 1999-03-17 2014-09-17 Seiko Epson Corporation Method and apparatus for projection display
EP1079365A1 (en) * 1999-03-17 2001-02-28 Seiko Epson Corporation Method and apparatus for projection display
KR100418650B1 (ko) * 1999-03-17 2004-02-11 세이코 엡슨 가부시키가이샤 투사형표시장치 및 그 표시방법
US6712476B1 (en) 1999-03-17 2004-03-30 Seiko Epson Corporation Projection display apparatus and method of display
US6913362B2 (en) 1999-03-17 2005-07-05 Seiko Epson Corporation Projection display apparatus and method of display
WO2000055838A1 (fr) * 1999-03-17 2000-09-21 Seiko Epson Corporation Procede et appareil d'affichage de projection
JP2003006555A (ja) * 2001-06-25 2003-01-10 Nova:Kk コンテンツ配信方法、シナリオデータ、記録媒体およびシナリオデータ生成方法
JP2003111078A (ja) * 2001-09-27 2003-04-11 Fujitsu Ltd コンテンツ符号化装置、コンテンツ復号化装置、コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ符号化方法、コンテンツ復号化方法、コンテンツ符号化プログラム、およびコンテンツ復号化プログラム
KR20050017820A (ko) * 2003-08-09 2005-02-23 정관선 전송된 키워드를 이용한 웹하드 파일실행방법 및 시스템
US9665627B2 (en) 2004-04-06 2017-05-30 Thomson Licensing Dtv Method and device for multimedia data retrieval
US9239839B2 (en) 2004-04-06 2016-01-19 Thomson Licensing Device and method for multimedia data retrieval
KR100983185B1 (ko) * 2005-07-27 2010-09-20 샤프 가부시키가이샤 영상 합성 장치 및 기록매체
US8736698B2 (en) 2005-07-27 2014-05-27 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
US8743228B2 (en) 2005-07-27 2014-06-03 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
US8836804B2 (en) 2005-07-27 2014-09-16 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
US8836803B2 (en) 2005-07-27 2014-09-16 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
US8687121B2 (en) 2005-07-27 2014-04-01 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
US9100619B2 (en) 2005-07-27 2015-08-04 Sharp Kabushiki Kaisha Video synthesizing apparatus and program
KR100955141B1 (ko) 2005-07-27 2010-04-28 샤프 가부시키가이샤 영상 합성 장치 및 기록매체
WO2007013334A1 (ja) * 2005-07-27 2007-02-01 Sharp Kabushiki Kaisha 映像合成装置及びプログラム
US9262209B2 (en) 2010-08-10 2016-02-16 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method

Similar Documents

Publication Publication Date Title
US9098505B2 (en) Framework for media presentation playback
JP4430882B2 (ja) 複合メディアコンテンツの変換装置及び変換方法並びに複合メディアコンテンツ変換プログラム
KR100825898B1 (ko) 소형매체형식 파일들을 동기식 멀티미디어통합언어로변환하기 위한 시스템 및 방법
US5515490A (en) Method and system for temporally formatting data presentation in time-dependent documents
JP4959695B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
KR100321839B1 (ko) 비디오내로하이퍼링크를통합하는방법및장치
KR101494904B1 (ko) 비디오 파일에 대한 썸네일을 생성하는 방법 및 장치
US8265457B2 (en) Proxy editing and rendering for various delivery outlets
US5748187A (en) Synchronization control of multimedia objects in an MHEG engine
JP2023518388A (ja) ビデオ特殊効果の処理方法、装置、電子機器及びコンピュータプログラム
JP2008545335A5 (ja)
JP2010516011A (ja) Hd−dvdタイミング・マークアップ実行の最適化
CN111930289B (zh) 一种处理图片和文本的方法和系统
CN1205539C (zh) 程控生成连续性媒体表示的系统和方法
WO2010045736A1 (en) Reduced-latency rendering for a text-to-movie system
JPH10134030A (ja) マルチメディアデータ・プレゼンテーションシステムおよび方法
WO2022227329A1 (zh) 媒体文件生成、播放方法及设备
JP3606729B2 (ja) リッチテキスト素材の表示方法及び映像情報提供システム
JP2000242661A (ja) 関連情報検索装置および関連情報検索処理を実行するプログラムを記録した記憶媒体
JP3036099B2 (ja) データ管理方法
van Ossenbruggen et al. Towards a multimedia formatting vocabulary
Yang et al. SMILAuthor: An authoring system for SMIL-based multimedia presentations
US20040170382A1 (en) Task-oriented nonlinear hypervideo editing method and apparatus
JP5619838B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
US20090019084A1 (en) Method and system for preloading

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040803