明細書 動画像合成装置および方法 技術分野
本発明は、 1つ以上の動画像を合成して画面上に表示する動画像合成装置お よびその方法に関する。 背景技術
近年、 パーソナルコンピュータやワークステーションの普及に伴い、 画面上 で画像を動かしながら再生するために、 動画像データの再生ソフトウエアを利 用するユーザが増えている。 従来の再生ソフトウェアは、 表示される画像部品 のデータとその動きのデータを一体化して格納しておき、 再生時にそれを描画 装置に送る機能を持っている。
しかしながら、 画面上で画像部品が上下に振動しながら移動するというよう な複雑な動きを再生する場合、 最終的な動きをあらかじめ手作業で合成してお く必要がある。 したがって、 再生時に複数の異なる複雑な動きを表現するため には、 すべての種類の動きを合成しておき、 再生時にそれぞれの画像部品を決 められた動きに従って表示することになる。 また、 複数の画像部品が並進等の 同じ動きの要素から作成された動きを使用する場合でも、 それぞれ別々に動き を合成する必要がある。
このように、 従来の再生ソフトウェアでは、 多数の複雑な動きを表現するた めには、 あらかじめ動きのデータを作成するために多大な作業量を必要とする。 また、 再生時に新たな動きを合成することができず、 動きをフレキシブルに変 更することができない。 さらに、 同じ動きの要素を複数の画像部品で共用する 方法が提供されていないという問題もある。
発明の開示
本発明の課題は、 複数の動画像を画面上に表示する際に、 それぞれの動きの 要素の汎用性を高め、 複雑な動きを容易に表現する動画像合成装置およびその 方法を提供することである。
図 1は、 本発明の動画像合成装置の原理図である。 図 1の動画像合成装置は、 複数の描画情報発生手段 1、 1つ以上の画像管理手段 2、 および描画手段 3を 備え、 1つ以上の画像を合成して表示する。
各描画情報発生手段 1は、 動画像の描画に用いられる描画情報を生成する。 また、 各画像管理手段 2は、 各画像の画像データを管理し、 複数の描画情報発 生手段 1のうち 1つ以上が生成する描画情報を組み合わせて、 各画像の現時刻 における描画情報を生成する。 そして、 描画手段 3は、 画像管理手段 2から画 像データと現時刻における描画情報を受け取り、 現時刻における描画情報に基 づいて画像データを描画する。
描画情報は、 各画像毎に用意され、 画面上での画像の位置座標に関する情報 を含む。 画像の再生時において、 複数の描画情報発生手段 1は、 それぞれ異な る動きの要素を表現する描画情報を生成し、 画像管理手段 2は、 それらが生成 する描画情報を合成して 1つの描画情報を生成する。
例えば、 第 1の描画情報発生手段が正弦波の上下振動を表す描画情報を生成 し、 第 2の描画情報発生手段が右移動を表す描画情報を生成する場合、 それら を合成して得られる描画情報は、 正弦波の軌跡に沿って上下振動しながらおへ 移動する動きを表す。
描画手段 3は、 こうして合成された描画情報に基づいて画像デ一夕を描画し、 合成された動きを表現する。 また、 画像管理手段 2が複数ある場合は、 各画像 データを対応する描画情報に基づいて描画し、 画面上で複数の画像を合成する。 このように、 画像の再生時において、 複数の描画情報発生手段 1が生成する
描画情報をリアルタイムに合成することにより、 複雑な動きが容易に生成され る。 また、 複数の画像管理手段 2が 1つの描画情報発生手段 1を利用できるた め、 1つの動きの要素を異なる複数の画像の表示に用いることができる。
また、 描画情報発生手段 1を個々の動きを表現する動きの部品として扱い、 動画の再生中に発生したイベントに応じて、 描画情報発生手段 1を追加/削除 することもできる。 これにより、 ユーザの操作入力等に応じて画像の動きを変 更することが可能になる。
例えば、 図 1の描画情報発生手段 1は、 後述する図 2の描画情報発生部 2 3 および図 4の描画情報発生部 4 1に対応し、 画像管理手段 2は、 図 2の画像管 理部 1 1に対応し、 描画手段 3は、 図 2の描画部 1 2、 V R AM (video rand om access memory) 1 3、 およびディスプレイ 1 4に対応する。 図面の簡単な説明
図 1は、 本発明の動画像合成装置の原理図である。
図 2は、 第 1の動画像合成装置の構成図である。
図 3は、 第 2の動画像合成装置の構成図である。
図 4は、 第 3の動画像合成装置の構成図である。
図 5は、 第 5の動画像合成装置の構成図である。
図 6は、 第 1の動画像合成を示す図である。
図 7は、 第 1の描画更新処理のフローチャートである。
図 8は、 イベント処理のフローチャートである。
図 9は、 第 1の描画情報発生処理のフローチャートである。
図 1 0は、 描画情報関数取得処理のフローチャートである。
図 1 1は、 第 2の動画像合成を示す図である。
図 1 2は、 第 2の描画情報発生処理のフローチャートである。
図 1 3は、 描画情報列を示す図である。
図 1 4は、 描画情報列取得処理のフローチャートである。
図 1 5は、 第 3の動画像合成を示す図である。
図 1 6は、 第 2の描画更新処理のフローチャートである。
図 1 7は、 第 3の描画情報発生処理のフローチャートである。
図 1 8は、 第 4の動画像合成を示す図である。
図 1 9は、 第 4の描画情報発生処理のフローチャートである。
図 2 0は、 第 1の動画像を示す図である。
図 2 1は、 第 5の動画像合成を示す図である。
図 2 2は、 第 2の動画像を示す図である。
図 2 3は、 第 3の動画像を示す図である。
図 2 4は、 情報処理装置の構成図である。
図 2 5は、 記録媒体を示す図である。
図 2 6は、 第 5の動画像合成装置の構成図である。 発明を実施するための最良の形態
以下、 図面を参照しながら、 本発明の実施の形態を詳細に説明する。
本発明では、 画像部品毎に複数の描画情報発生部を設け、 再生時に各画像部 品の動きをリアルタイムに合成する。 描画情報とは、 画像部品の位置、 大きさ、 回転角度、 色、 前後関係等の描画のために利用される情報であり、 各時刻の描 画情報を与えることで、 画像部品の動きが決定される。 複数の描画情報発生部 が生成する描画情報をリアルタイムに合成することにより、 複雑な動きが容易 に生成される。 また、 複数の描画情報発生部から同じ動きの要素を参照できる ようにすることで、 動きの要素が汎用的に利用可能となる。
図 2は、 絶対的な描画情報に基づく動画像合成装置の構成図である。 図 2の 動画像合成装置は、 1つ以上の画像管理部 1 1、 描画部 1 2、 V R AM (vi de o random access memory) 1 3、 およびディスプレイ 1 4を備える。
画像管理部 1 1は、 画像部品毎に設けられ、 例えば、 1フレームに 1回等の 適当な間隔または動的に決定される間隔で、 描画部 1 2に対して現時刻の画像 データと描画情報を渡す。 描画部 1 2は、 各画像管理部 1 1から受け取った画 像デ一夕を描画情報に従って V R AM 1 3に書き込み、 ディスプレイ 1 4の画 面に表示する。
画像管理部 1 1は、 画像ソース 2 1、 メモリ 2 2、 および 1つ以上の描画情 報発生部 2 3を含む。 画像ソース 2 1は、 例えば、 静止画のメモリや動画デコ —ダ等であり、 V R AM 1 3に書き込むべき画像データを発生する。 したがつ て、 画像ソース 2 1のデータには、 静止画、 動画、 文字、 記号等の任意の画像 が含まれる。
描画情報発生部 2 3は、 互いに順序関係を持って関連付けられている。 各描 画情報発生部 2 3は、 対応する動きの要素に応じて現時刻の絶対的な描画情報 を計算し、 上位の描画情報発生部 2 3から渡された現時刻の描画情報に計算結 果を加え、 下位の描画情報発生部 2 3に渡す。
最上位の描画情報発生部 2 3は、 メモリ 2 2から前時刻の描画情報を読み出 し、 それに基づいて現時刻の描画情報を計算し、 下位の描画情報発生部 2 3に 渡す。 最下位の描画情報発生部 2 3が出力した現時刻の描画情報は、 描画部 1 2に渡されるとともに、 メモリ 2 2に書き込まれる。
ここで、 描画情報発生部 2 3の順序、 種類、 数は固定的に構成されていても よいし、 時刻、 ユーザの操作等により動的に変化してもよい。 描画情報発生部 2 3は、 ソフトウェアまたはハードウェアにより構成される。
図 2の動画像合成装置は、 例えば、 図 3に示すような構成により実現される。 図 3の動画像合成装置は、 図 2の構成に加えて、 描画情報列管理部 3 1を備え る。
描画情報列管理部 3 1は、 1つ以上の描画情報列 3 2を格納しており、 これ らの描画情報列 3 2は識別子 (インデックス) により識別される。 描画情報列
3 2は、 離散的な任意の時刻における複数の描画情報のリストであり、 例えば、 0秒、 1 0秒、 6 0秒、 6 5秒の各時刻における描画情報を記述している。 各描画情報発生部 2 3は、 描画情報列 3 2を参照するための識別子 3 3と描 画情報を変形させるための修飾パラメ—夕 3 4を保持している。 ある時刻にお いて、 描画情報発生部 2 3は、 識別子 3 3に対応する描画情報列管理部 3 1内 の描画情報列 3 2から、 その時刻の前後の描画情報を取り出す。 そして、 取り 出した描画情報を用いて補間を行う等の方法により、 現時刻の描画情報を計算 する。
次に、 描画情報発生部 2 3は、 計算した描画情報に対してパラメータ 3 4に よる拡大、 縮小等の操作を施し、 上位の描画情報発生部 2 3から渡された現時 刻の描画情報に計算結果を加え、 下位の描画情報発生部 2 3に渡す。 パラメ一 タ 3 4は、 描画情報そのものに適用するだけでなく、 描画情報を取り出す場合 に時刻に対して適用することも可能である。 このようにして時刻を変更するこ とにより、 画像の移動スピードを変えることができる。
図 4は、 描画情報の差分に基づく動画像合成装置の構成図である。 図 4の動 画像合成装置は、 図 2の動画像合成装置と同様に、 1つ以上の画像管理部 1 1、 描画部 1 2、 V R AM 1 3、 およびディスプレイ 1 4を備える。
画像管理部 1 1は、 画像ソース 2 1、 メモリ 2 2、 1つ以上の描画情報発生 部 4 1、 および加算器 4 2、 4 3を含む。 各描画情報発生部 4 1は、 対応する 動きの要素に応じて前時刻と現時刻の描画情報の差分 (差分描画情報) を計算 し、 加算器 4 3に出力する。
加算器 4 3は、 各描画情報発生部 4 1から出力された現時刻の差分描画情報 の総和を計算し、 加算器 4 2は、 メモリ 2 2から読み出された前時刻の描画情 報に差分描画情報の総和を加算して、 現時刻の描画情報を求める。 加算器 4 2 から出力された現時刻の描画情報は、 描画部 1 2に渡されるとともに、 メモリ 2 2に格納される。
ここで、 描画情報発生部 4 1の種類、 数は固定的に構成されていてもよいし、 時刻、 ユーザの操作等により動的に変化してもよい。 描画情報発生部 4 1の動 作順序は特に指定する必要はなく、 並列に動作してもよい。 描画情報発生部 4 1は、 ソフトウェアまたはハードウェアにより構成される。
図 4の動画像合成装置は、 例えば、 図 5に示すような構成により実現される。 図 5の動画像合成装置は、 図 4の構成に加えて、 図 3の描画情報列管理部 3 1 を備える。
各描画情報発生部 4 1は、 図 3の描画情報発生部 2 3と同様に、 描画情報列 3 2を参照するための識別子 3 3と描画情報を変形させるための修飾パラメ一 夕 3 4を保持している。 描画情報発生部 4 1は、 識別子 3 3を用いて描画情報 列管理部 3 1から取り出した描画情報に基づく補間等の方法により、 現時刻の 差分描画情報を計算する。 そして、 計算した差分描画情報に対してパラメータ 3 4による拡大、 縮小等の操作を施し、 加算器 4 3に出力する。
次に、 以上説明した動画像合成装置の動作について、 より詳細に説明する。 ここでは、 主として、 画像管理部 1 1と描画部 1 2を再生ソフトウェアにより 構成した場合の描画処理について説明する。
画像ソース 2 1のデ一夕、 描画情報列管理部 3 1のデ一夕、 描画情報発生部 2 3、 4 1のプログラム、 描画部 1 2のプログラム等は、 既にコンピュータの メモリ上に読み込まれて展開されているものとする。 例えば、 画像ソース 2 1 が M P E G (moving picture exper ts group) デコーダの場合、 イメージ展開 後の動画像データがメモリ上に読み込まれる。
また、 描画部 1 2は、 イベントループ等の他のイベント制御部等からのィべ ント通知を受け取るために、 変数を保持している。 イベントとしては、 ユーザ による操作入力やシステムによる割り込み等の任意の形態が考えられ、 特定の 形態に限定されない。
また、 描画の更新間隔として一定値 d tを用いているが、 再生するハードウ
エアの機能等に応じて更新間隔を動的に変化させた場合でも、 基本的なァルゴ リズムは同様である。 一般に、 更新間隔が大きいほど描画回数が少なくなり、 描画速度が速くなる。 したがって、 更新間隔を適当に調整することにより、 リ アルタイムの処理が実現される。
また、 描画情報としては、 画像を表示する位置に対応する 2次元座標を用い ているが、 画像の大きさや回転角度等の他の描画情報を用いた場合でも、 基本 的なアルゴリズムは同様である。
また、 描画情報列 3 2に含まれるデータとしては、 識別子と時刻と 2次元座 標の列を用いているが、 より複雑な動きを表現する情報を含んでいても、 全体 のアルゴリズムは変化しない。 描画情報発生部 2 3、 4 1は、 それぞれ独自の 内部時間と座標空間を保持しているため、 1つの描画情報列 3 2に対して、 そ れぞれ異なつた動きを表現することができる。
図 6は、 図 3の構成において、 描画情報列 3 2の代わりに描画情報関数を用 いた場合の動画像合成処理を示している。 図 6の描画情報関数管理部 5 1は、 1つ以上の描画情報関数 5 2をリスト構造で格納しており、 これらの描画情報 関数 5 2は識別子により識別される。
描画部 1 2は、 任意の数の画像管理部 1 1へのポインタのリスト 6 1、 ィべ ント通知を受け取るための変数 6 2、 および描画の更新間隔 6 3を保持してい る。 リスト 6 1に含まれるポィンタ p l m a g e i ( i = l , 2 , . . . , Μ) は、 画像管理部 # iを指している。
各画像管理部 1 1は、 画像ソース 2 1のデータ 6 4、 メモリ 2 2に対応する 前時刻の最終描画座標 6 5、 描画座標 6 6、 および最上位の描画情報発生部 #
1を保持しており、 描画情報発生部 # i ( i = l, 2 , . . . , N— 1 ) は、 下位の描画情報発生部 # ( i + 1 ) へのポインタ 1 p iを保持している。 ただ し、 最下位の描画情報発生部 # Nは、 他の描画情報発生部 2 3へのポインタを 保持していない。
また、 各描画情報発生部 # i ( i = l, 2, . . . , N) は、 描画情報関数 識別子 p f k (k= 1, 2, . . . , K) 、 スピードパラメータ s p e e d i、 スケールパラメ一夕 x— s c a l e i、 y— s c a l e i、 および内部時刻 t _ 1 a s t iを保持している。
識別子 p f kは、 描画情報関数管理部 51の描画情報関数 52と対応付けら れており、 各描画情報発生部 23は、 任意の描画情報関数 52を参照すること ができる。 したがって、 1つの描画情報関数 52は、 1つの画像管理部 1 1内 の複数の描画情報発生部 23から参照されることもあり、 複数の画像管理部 1 1内の描画情報発生部 23から参照されることもある。
図 7は、 図 6の動画像合成装置における描画更新処理のフローチャートであ る。 1回の描画更新処理により、 画像管理部 # 1〜#Mの M個の画像データ 6 4が、 逐次、 描画情報発生部 # 1〜#Nを通じて生成された座標に描画される。 ループ aは、 各画像管理部 1 1を呼び出す処理に対応し、 M回繰り返される。 ル一プ aにおいて、 画像管理部 1 1は、 描画座標 (x, y) に前時刻の最終 描画座標 (X— 1 a s t , y_l a s t) を設定し (ステップ S 1) 、 ィベン ト処理を行う (ステップ S 2) 。 イベント処理においては、 更新間隔 d tの間 に描画部 12に通知され、 変数 Ev e n tに格納されたイベント情報を識別し て、 必要があれば動的に描画情報発生部 23を再構築する。 このイベント処理 の詳細については後述することにする。
次に、 最上位の描画情報発生部 # 1を呼び出し、 更新間隔 d tの間における 描画座標の変化を計算する (ステップ S 3) 。 このとき、 下位の描画情報発生 部 23が存在すれば、 それらが再帰的に呼び出され、 最下位の描画情報発生部 #Nが出力した描画座標 (x, y) が現時刻の描画座標として描画部 12に渡 される。 この描画情報発生処理の詳細については後述することにする。
次に、 画像管理部 1 1は、 得られた (X, y) を (X— 1 a s t , y_ 1 a s t) に設定し (ステップ S 4) 、 描画部 12は、 描画座標 (X, y) の位置
に画像データ 6 4を描画する (ステップ S 5 ) 。
すべての画像管理部 1 1についてループ aの処理が終了すると、 描画部 1 2 は、 新たなイベント通知を受け取るために E v e n tをクリアし (ステップ S 6 ) 、 処理を終了する。
図 8は、 図 7のステップ S 2におけるイベント処理のフローチャートである。 描画部 1 2の変数 E v e n tに格納されたイベント情報は、 画像データ 6 4の 識別子と、 新しい描画情報発生部 2 3を作成するか、 または既存の描画情報発 生部 2 3を削除するかを表すフラグを含んでいる。 さらに、 作成 ·削除対象の 描画情報発生部 2 3を指定する付加情報も含んでいる。
画像管理部 1 1は、 描画部 1 2からイベント情報を受け取ると、 イベント通 知の対象が処理中の画像データ 6 4かどうかを識別子で判断する (ステップ S 1 1 ) 。 処理中の画像データ 6 4が対象でなければ処理を終了し、 それが対象 であれば、 フラグと付加情報を用いて描画情報発生部 2 3の追加 ·削除を行う。 ここでは、 フラグが追加を表すかどうかを判定し (ステップ S 1 2 ) 、 それ が追加を表す場合は、 付加情報により指定される描画情報発生部 2 3を追加し (ステップ S 1 3 ) 、 処理を終了する。 また、 フラグが追加を表していない場 合は、 付加情報により指定される描画情報発生部 2 3を削除し (ステップ S 1 4 ) 、 処理を終了する。
描画情報発生部 2 3の追加 '削除は、 例えば、 画像管理部 1 1が保持してい る描画情報発生部 2 3のリストにデータを追加したり、 そのリス卜からデ一夕 を削除する処理によって実現される。 このとき、 描画情報発生部 2 3間のボイ ンタは、 必要に応じて再設定される。
このような描画情報発生部 2 3の動的再構築処理により、 画像の複雑な動き を動的に変化させることができる。 例えば、 単振動と平行移動を合成して正弦 波の形に動いていた画像の画像管理部 1 1から、 単振動のみ、 もしくは平行移 動のみの描画情報発生部 2 3を削除することで、 画像をより単純な別の動きへ
移行させることが可能になる。 また、 平行移動していた画像の画像管理部 1 1 に、 単振動の描画情報発生部 23を追加することで、 画像をより複雑な別の動 きへ移行させることが可能になる。
図 9は、 図 7のステップ S 3における描画情報発生処理のフローチャートで ある。 最上位の描画情報発生部 # 1は、 更新間隔 d tと描画座標 (X, y) を 入力として処理を行い、 更新された描画座標 (X, y) を出力する。
描画情報発生部 # 1は、 まず、 グローバルな更新間隔 d tを描画情報発生部 # 1の内部更新間隔 d t 1に変換するために、 d tにパラメータ s p e e d 1 を乗算する (ステップ S 21) 。
次に、 描画情報関数管理部 51から、 描画情報関数識別子 P f 1に対応する 描画情報関数 f l (t_l a s t, d t, x, y) を取得する (ステップ S 2 2) 。 この描画情報関数取得処理については後述することにする。 そして、 前 時刻に計算された内部時刻 t_l a s t 1、 内部更新間隔 d t 1、 入力された 描画座標 (X, y) を用いて、 新たな描画座標 (X, y) を次式により計算す る (ステップ S 23) 。
(x, y) = f l (t_l a s t l, d t l, x, y) (1)
(1) 式は、 xおよび yが、 それぞれ、 t— 1 a s t 1、 d t l, x、 yの 関数として計算されることを表している。 f l (t_l a s t 1, d t l, x, y) としては、 例えば、 x=0、 y = s i n ( t _ 1 a s t 1 + d t 1 ) のよ うな関数が用いられる。
次に、 得られた (x, y) を内部座標空間からグロ一バルな座標空間へ変換 するために、 x、 yに、 それぞれ、 パラメ一夕 X— s c a 1 e 1、 y_s c a l e iを乗算し、 その結果を改めて x、 yとおく (ステップ S 24) 。
そして、 t 1 a s t 1 = t 1 a s t 1 +d t 1とおいて内部時刻を更新
し (ステップ S 25) 、 下位の描画情報発生部 23が存在するかどうかを判定 する (ステップ S 26) 。 ここでは、 下位の描画情報発生部 23へのポインタ 1 p 1が存在すれば、 下位の描画情報発生部 23が存在すると判定される。 下 位の描画情報発生部 23が存在しなければ、 描画座標 (x, y) を 1回の更新 処理の結果として出力する。
下位の描画情報発生部 23が存在すれば、 それを呼び出し、 更新間隔 d tと 得られた描画座標 (X, y) を入力として与えて、 同様の描画情報発生処理を 行わせる (ステップ S 27) 。 ここでは、 図 9の描画情報発生処理が再帰的に 呼び出されて、 描画情報発生部 # iの処理を実行する。
このとき、 描画情報発生部 # iは、 ステップ S 2 1で d t l=d t * s p e e d iの計算を行い、 ステップ S 22で識別子 p f kに対応する描画情報関数 f k (t— l a s t, d t , x, y) を取得し、 ステップ S 23で描画座標 (X, y) を次式により計算する。 (x, y) = f k (t_l a s t i , d t l, x, y) (2) また、 ステップ S 24で x = x* x― s c a 1 e i、 y = y * y_ s c a 1 e iの計算を行い、 ステップ S 25で t— l a s t i = t_ 1 a s t i +d t 1の計算を行い、 ステップ S 26でポインタ 1 p iが存在するかどうかを判定 する。
そして、 ステップ S 26において下位の描画情報発生部 23が存在すれば、 それを呼び出す。 また、 下位の描画情報発生部 23が存在しなければ、 得られ た描画座標 (X, y) を呼び出し元の上位の描画情報発生部 23に出力して、 処理を終了する。
下位の描画情報発生部 23から描画座標を受け取つた上位の描画情報発生部 23は、 それを順に上位の描画情報発生部 23に伝えていき、 最上位の描画情
3 報発生部 # 1は、 受け取った描画座標を 1回の更新処理の結果として出力する。 このような描画情報発生処理により、 描画の更新時に、 複数の描画情報発生 部 2 3が生成する描画情報をリアルタイムに合成して、 描画部 1 2に与えるこ とが可能になる。 したがって、 描画の更新を自動的に繰り返すことで、 画像の 複雑な動きが容易に生成される。
図 1 0は、 図 9のステップ S 2 2における描画情報関数取得処理のフローチ ヤートである。 描画情報発生部 # iが描画情報関数管理部 5 1に識別子 p f k を渡すと、 描画情報関数管理部 5 1は、 ループ aの処理を行う。 ループ aは、 描画情報関数 5 2の数に対応して、 K回繰り返される。
ループ aにおいて、 描画情報関数管理部 5 1は、 入力された p f kを 1つの 描画情報関数 5 2の識別子と比較する (ステップ S 3 1 ) 。 そして、 それらが 一致すれば、 p f kに対応する描画情報関数 5 2を出力して (ステップ S 3 2 ) 、 処理を終了する。 それらが一致しなければ、 p f kを次の描画情報関数 5 2の識別子と比較する処理を繰り返す。
次に、 図 1 1は、 図 3の構成を用いた場合の動画像合成処理を示している。 図 1 1の描画情報列管理部 3 1は、 1つ以上の描画情報列 3 2をリス卜構造で 格納しており、 これらの描画情報列 3 2は識別子により識別される。 各描画情 報列 3 2は、 離散的な時刻と描画座標の座標値の列を含んでいる。
描画部 1 2のポインタのリスト 6 1、 イベント変数 6 2、 更新間隔 6 3、 お よび画像管理部 1 1の画像データ 6 4、 最終描画座標 6 5、 描画座標 6 6につ いては、 図 6と同様である。 また、 各描画情報発生部 # i ( i = l,
2, . . . , N) は、 図 6の描画情報関数識別子の代わりに、 描画情報列識別 子 I D k ( k = 1 , 2 , . . . , K) を保持している。
識別子 I D kは、 描画情報列管理部 3 1の描画情報列 3 2と対応付けられて おり、 各描画情報発生部 2 3は、 任意の描画情報列 3 2を参照することができ る。 したがって、 1つの描画情報列 3 2は、 1つの画像管理部 1 1内の複数の
描画情報発生部 23から参照されることもあり、 複数の画像管理部 1 1内の描 画情報発生部 23から参照されることもある。
また、 描画情報発生部 # iは、 パラメ一夕の 1つとして、 差分計算フラグ b D i f f iを保持している。 描画情報発生部 # iは、 この bD i f f iの値が 真のとき、 入力された描画座標に差分を加えて出力し、 bD i f f iの値が偽 のとき、 入力された描画座標に関係なく、 絶対的な描画座標を出力する。
図 1 1の動画像合成装置における描画更新処理は、 基本的に図 7と同様であ る。 ただし、 図 7のステップ S 3において、 最上位の描画情報発生部 # 1は、 更新間隔 d tと描画座標 (x, y) を入力として、 図 12のような描画情報発 生処理を行い、 更新された描画座標 (X, y) を出力する。
描画情報発生部 # 1は、 まず、 更新間隔 d tにパラメ一夕 s p e e d 1を乗 算して、 d tを内部更新間隔 d t 1に変換し (ステップ S 41) 、 描画情報列 管理部 31から、 描画情報列識別子 I D 1に対応する描画情報列を取得する (ステップ S42) 。 この描画情報列取得処理については後述することにする。 そして、 その描画情報列から、 t— 1 a s t 1および t__l a s t 1 +d t 1の前後の時刻の座標値を取得し、 それらを用いた補間により、 t— 1 a s t l〜t— 1 a s t 1 +d t 1の間の座標変化の差分 (dx, d y) を計算する (ステップ S43) 。 この (dx, dy) は、 内部更新間隔 d t 1の間におけ る画像の移動量に対応する。
例えば、 図 13のような描画情報列が取得された場合、 差分 (dx, dy) は、 次のようにして求められる。 ただし、 t l<t 2<t 3< * · · <!:】で あり、 x l, X 2, X 3, . . . , X Jは互いに異なり、 y l, y 2, y
3, . . . , y Jは互いに異なるものとする。
まず、 t 1< t_ 1 a s t 1< t_ 1 a s t 1 +d t 1< t 2の場合、 差分 (dx, dy) は次式により計算される。
d x= (x 2 -x 1) *d t l/ (t 2- t l)
d y= (y 2 -y 1 ) * d t 1/ (t 2- t 1) (3) また、 t lく t— l a s t l<t 2< - · - <t j <t_l a s t 1 +d t 1< t ( j + 1 ) の場合、 差分 (dx, dy) は次式により計算される。 d x= (x 2 -x 1) * (t 2- t_l a s t l) / (t 2- t l)
+ x j - x 2
+ (χ ( j + 1 ) - x j ) * (t_l a s t l +d t l - t j ) / ( t ( j + 1 ) - t j )
d y= (y 2 -y 1) * (t 2- t_l a s t l) / (t 2- t l)
+ y j - y 2
+ (y ( j + 1 ) 一 y j ) * (t_l a s t 1 + d t 1 - t j ) / ( t ( j + 1 ) - t j )
(4) また、 t— 1 a s t 1< t J < t_ 1 a s t 1 +d t 1の場合、 差分 (dx: dy) は次式により計算される。 d x= (x J -x ( J - 1) ) * ( t J - t_ 1 a s t 1)
/ (t J - t ( J - 1) )
dy= (y J - y (J - 1) ) * ( t J - t __ 1 a s t 1 )
/ ( t J - t ( J一 1) ) (5) また、 t— 1 a s t l〉t Jの場合、 差分 (dx, dy) は次式により計算 される。
d x= 0
dy=0 (6) これらの計算式 (3) 、 (4) 、 (5) 、 (6) は直線補間の一例を示して いるが、 描画情報列のデータから差分 (dx, dy) を求める際に、 より複雑 な補間法を用いてもよい。
こうして差分 (dx, dy) が得られると、 次に、 dx、 dyに、 それぞれ、 パラメ一夕 X— s c a 1 e 1、 y_s c a 1 e 1を乗算し、 その結果を改めて dx、 dyとおく (ステップ S 44) 。 そして、 差分計算フラグ bD i f f 1 の値を判定する (ステップ S 45) 。
bD i f f 1の値が真であれば、 入力された描画座標 (X, y) に差分 (d X, dy) を加算して、 その結果を改めて (X, y) とおく (ステップ S 4 6) 。 また、 bD i f f 1の値が偽であれば、 差分 (dx, dy) をそのまま (X, y) とおく (ステップ S 47) 。 この場合、 入力された描画座標 (x, y) はキャンセルされ、 新たな描画座標 (X, y) が生成される。
次に、 t— l a s t l= t— l a s t l +d t lとおいて内部時刻を更新し (ステップ S 48) 、 下位の描画情報発生部 23が存在するかどうかを判定す る (ステップ S 49) 。 下位の描画情報発生部 23が存在しなければ、 描画座 標 (X, y) を 1回の更新処理の結果として出力する。
下位の描画情報発生部 23が存在すれば、 それを呼び出し、 更新間隔 d tと 得られた描画座標 (x, y) を入力として与えて、 同様の描画情報発生処理を 行わせる (ステップ S 50) 。 ここでは、 図 12の描画情報発生処理が再帰的 に呼び出されて、 描画情報発生部 # iの処理を実行する。
このとき、 描画情報発生部 # iは、 ステップ S 41で d t l=d t * s p e e d iの計算を行い、 ステップ S 42で識別子 I D kに対応する描画情報列を
7 取得し、 ステップ S 43で描画情報列から t— l a s t i〜!:— l a s t i + d t 1の間の座標変化の差分 (dx, dy) を計算する。
また、 ステップ S 44で x = x * X— s c a 1 e i、 y = y * y_s c a 1 e iの計算を行い、 ステップ S 45で差分計算フラグ bD i f f iの値を判定 し、 ステップ S 48で t_l a s t i = t— l a s t i +d t 1の計算を行い、 ステップ S 49でポインタ 1 p iが存在するかどうかを判定する。
そして、 ステップ S 49において下位の描画情報発生部 23が存在すれば、 それを呼び出す。 また、 下位の描画情報発生部 23が存在しなければ、 得られ た描画座標 (X, y) を呼び出し元の上位の描画情報発生部 23に出力して、 処理を終了する。
下位の描画情報発生部 23から描画座標を受け取つた上位の描画情報発生部 23は、 それを順に上位の描画情報発生部 23に伝えていき、 最上位の描画情 報発生部 # 1は、 受け取った描画座標を 1回の更新処理の結果として出力する。 このような描画情報発生処理により、 描画情報発生部 23は、 描画情報関数の 代わりに描画情報列を用いて描画情報を生成することができる。
図 14は、 図 12のステップ S 42における描画情報列取得処理のフローチ ャ一トである。 描画情報発生部 # iが描画情報列管理部 31に識別子 I D kを 渡すと、 描画情報列管理部 31は、 ループ aの処理を行う。 ループ aは、 描画 情報列 32の数に対応して、 K回繰り返される。
ループ aにおいて、 描画情報列管理部 31は、 入力された I Dkを 1つの描 画情報列 32の識別子と比較する (ステップ S 51) 。 そして、 それらが一致 すれば、 I D kに対応する描画情報列 32を出力して (ステツプ S 52 ) 、 処 理を終了する。 それらが一致しなければ、 I Dkを次の描画情報列 32の識別 子と比較する処理を繰り返す。
図 6および図 1 1の動画像合成装置によれば、 各描画情報発生部 23は、 上 位の描画情報発生部 23から渡された描画情報をキャンセルして、 新たに描画
情報を生成することができる。 したがって、 例えば、 あらかじめ決められた特 定の時刻に画像の動きを停止させることも可能である。
一般に、 各描画情報発生部 2 3が、 上位の描画情報発生部 2 3からの描画情 報を入力として絶対的な描画情報を生成する場合、 画像管理部 1 1から出力さ れる描画情報は、 描画情報発生部 2 3の動作順序に影響される。
例えば、 画像管理部 1 1が 2つの描画情報発生部 # 1、 # 2を含み、 描画情 報発生部 # 1が画面上での上下振動の描画情報を生成し、 描画情報発生部 # 2 が、 時刻 0〜 t 1の間は右に移動し、 時刻 t 1以降は停止するような描画情報 を生成する場合を考える。
この場合、 描画情報発生部 # 1、 描画情報発生部 # 2の順に動作すると、 最 終的に、 時刻 0〜 t 1の間は上下振動しながら右に移動し、 時刻 t 1以降はそ の場で停止するような描画情報が出力される。 また、 描画情報発生部 # 2、 描 画情報発生部 # 1の順に動作すると、 最終的に、 時刻 0〜 t 1の間は上下振動 しながら右に移動し、 時刻 t 1以降はその場で上下振動するような描画情報が 出力される。 したがって、 描画情報発生部 # 1、 # 2の動作順序によって、 合 成される動きが異なる。
次に、 図 1 5は、 図 5の構成において、 描画情報列 3 2の代わりに描画情報 関数 5 2を用いた場合の動画像合成処理を示している。 図 1 5において、 描画 部 1 2のポインタのリスト 6 1、 イベント変数 6 2、 更新間隔 6 3、 および画 像管理部 1 1の画像データ 6 4、 最終描画座標 6 5、 描画座標 6 6、 描画情報 発生部 4 1が保持する情報、 および描画情報関数管理部 5 1については、 図 6 と同様である。
各画像管理部 1 1は、 さらに差分座標 6 7を保持しており、 1つ以上の描画 情報発生部 4 1をリスト構造で保持している。
図 1 6は、 図 1 5の動画像合成装置における描画更新処理のフローチャート である。 1回の描画更新処理により、 画像管理部 # 1〜# Mの M個の画像デ一
夕 64が、 逐次、 描画情報発生部 # 1〜#Nにより生成された座標に描画され る。 ループ aは、 各画像管理部 1 1を呼び出す処理に対応し、 M回繰り返され る。 また、 ループ bは、 各描画情報発生部 41を呼び出す処理に対応し、 N回 繰り返される。
ループ aにおいて、 画像管理部 1 1は、 図 8に示したイベント処理を行い (ステップ S 61) 、 描画座標 (x, y) に前時刻の最終描画座標 (X— 1 a s t, y— 1 a s t) を設定して (ステップ S 62) 、 ループ bの処理を行う。 ループ bにおいて、 描画情報発生部 41を呼び出し、 更新間隔 d tの間にお ける座標変化の差分 (dx, dy) を計算する (ステップ S 63) 。 この描画 情報発生処理の詳細については後述することにする。 そして、 得られた差分 (dx, dy) を描画座標 (x, y) に加算し、 その結果を改めて描画座標 (X, y) とおく (ステップ S 64) 。
ループ bについては、 最上位の描画情報発生部 # 1から順に、 ポインタ l p iを迪りながら下位の描画情報発生部 # ( i + 1) を呼び出してもよく、 描画 情報発生部 # 1〜#Nを並列に動作させてもよい。
すべての描画情報発生部 41についてループ bの処理が終了すると、 次に、 画像管理部 1 1は、 得られた (X, y) を (X— 1 a s t , y_ 1 a s t ) に 設定し (ステップ S 65) 、 描画部 12は、 描画座標 (X, y) の位置に画像 デ一夕 64を描画する (ステップ S 66) 。
すべての画像管理部 1 1についてループ aの処理が終了すると、 描画部 12 は、 新たなイベント通知を受け取るために Ev e n tをクリアし (ステップ S 67) 、 処理を終了する。
図 17は、 図 16のステップ S 63における描画情報発生処理のフローチヤ ートである。 描画情報発生部 # iは、 更新間隔 d tを入力として処理を行い、 描画座標の差分 (dx, dy) を出力する。
描画情報発生部 # iは、 まず、 更新間隔 d tにパラメ一夕 s p e e d iを乗
算し、 d tを内部更新間隔 d t 1に変換する (ステップ S 71) 。 次に、 図 1 0の描画情報関数取得処理を行って、 描画情報関数管理部 51から、 描画情報 関数識別子 P f kに対応する描画情報関数 f k (t) を取得する (ステップ S 72) 。 ここで、 f k ( t) を、 f k (t) = (f kx (t) , f ky (t) ) (7) と書くことにすると、 描画情報発生部 # iは、 前時刻に計算された内部時刻 t _1 a s t 1と内部更新間隔 d t 1を用いて、 差分 (dx, dy) を次式によ り計算する (ステップ S 73) 。 d = f k X ( t― 1 a s t i + d t 1 ) - f k x ( t― 1 a s t i ) d y= f k y (t_l a s t i +d t l) 一 f ky ( t_ 1 a s t i )
(8)
( 8 ) 式は、 内部時刻 t— l a s t iと t_l a s t i +d t lの間におけ る関数 f kx (t) 、 f ky (t) の差分を表している。
次に、 得られた dx、 d yに、 それぞれ、 ゾ\°ラメ一夕 x_s c a 1 e i、 y — s c a 1 e iを乗算し、 その結果を改めて d x、 dyとおく (ステップ S 7 4) 。 そして、 t— 1 a s t i = t— 1 a s t i + d t 1とおいて内部時刻を 更新し (ステップ S 75) 、 差分 (dx, dy) を出力して、 処理を終了する。 各描画情報発生部 # iが出力した差分 (dx, dy) は、 図 16のステップ S 64において描画座標 (X, y) に加算され、 最終的にすべての描画情報発 生部 41が出力した差分 (dx, dy) の総和により、 描画座標 (x, y) が 更新される。
このような描画情報発生処理により、 描画の更新時に、 複数の描画情報発生
部 41が生成する描画情報をリアルタイムに合成して、 描画部 12に与えるこ とが可能になる。 したがって、 描画の更新を自動的に繰り返すことで、 画像の 複雑な動きが容易に生成される。
次に、 図 18は、 図 5の構成を用いた場合の動画像合成処理を示している。 図 18において、 描画部 12のポインタのリスト 61、 イベント変数 62、 更 新間隔 63、 および画像管理部 1 1の画像データ 64、 最終描画座標 65、 描 画座標 66、 差分座標 67については、 図 15と同様であり、 描画情報発生部 41が保持する情報および描画情報列管理部 31については、 図 1 1と同様で ある。 ただし、 描画情報発生部 41は、 差分計算フラグは保持していない。 図 18の動画像合成装置における描画更新処理は、 基本的に図 16と同様で ある。 ただし、 図 16のステップ S 63において、 描画情報発生部 41は、 更 新間隔 d tを入力として、 図 19のような描画情報発生処理を行い、 描画座標 の差分 (dx, dy) を出力する。
描画情報発生部 # iは、 まず、 更新間隔 d tにパラメータ s p e e d iを乗 算し、 d tを内部更新間隔 d t 1に変換し (ステップ S 81) 、 図 14の描画 情報列取得処理を行って、 描画情報列管理部 31から、 描画情報列識別子 I D kに対応する描画情報列を取得する (ステップ S 82) 。
次に、 その描画情報列から、 t— 1 a s t iおよび t— 1 a s t i +d t 1 の前後の時刻の座標値を取得し、 それらを用いた補間により、 t— 1 a s t i 〜 t_ l a s t i +d t 1の間の座標変化の差分 (d x, dy) を計算する (ステップ S 83) 。
次に、 得られた dx、 d yに、 それぞれ、 パラメ一夕 X— s c a 1 e i、 y — s c a 1 e iを乗算し、 その結果を改めて d x、 dyとおく (ステップ S 8 4) 。 そして、 t— 1 a s t i = t— 1 a s t i + d t 1とおいて内部時刻を 更新し (ステップ S 85) 、 差分 (dx, dy) を出力して、 処理を終了する。 このような描画情報発生処理により、 描画情報発生部 41は、 描画情報関数の
代わりに描画情報列を用いて描画情報を生成することができる。
以上説明した実施形態において、 画像管理部 1 1へのポインタ 61、 描画情 報発生部 23、 41、 描画情報関数 52、 および描画情報列 32はリスト構造 で保持されるものとしたが、 要素を追加 ·削除可能な構造であれば、 これらを 他の任意の形式で保持することができる。
次に、 図 20から図 23までを参照しながら、 動画像合成の具体例について 説明する。
図 20は、 時刻 t = 0における画面構成を示している。 ここでは、 画面の左 上を原点とする xy座標系が設定され、 3つの画像 I 1、 1 2、 I 3が時間の 経過とともに描画位置 (X, y) を変化させながら、 表示される。
図 21は、 これらの画像を管理する画像管理部 1 1による動画像合成処理を 示している。 ここでは、 図 5の構成の動画像合成装置を用い、 描画情報関数 5 2および描画情報列 32を併用している。
画像 I 1の画像管理部 1 1は、 画像データ 64、 最終描画座標 (x l, y 1) 、 および 2つの描画情報発生部 # 1、 #2を保持し、 画像 I 2の画像管理 部 1 1は、 画像デ一夕 64、 最終描画座標 (x 2, y 2) 、 および 1つの描画 情報発生部 41を保持し、 画像 I 3の画像管理部 1 1は、 画像データ 64、 最 終描画座標 (x 3, y 3) 、 および 1つの描画情報発生部 41を保持している。 画像 I 1の描画情報発生部 # 1は描画情報関数識別子 p f 1を保持し、 描画 情報発生部 # 2は描画情報関数識別子!) f 2を保持している。 また、 画像 I 2 の描画情報発生部 41は描画情報関数識別子 p f 2を保持し、 画像 I 3の描画 情報発生部 41は描画情報列識別子 I D 1を保持している。
各描画情報発生部 41は、 入力される更新間隔 d tと保持している最終更新 時刻 t— 1 a s t iを利用し、 指定された描画情報関数 52もしくは描画情報 列 32を用いて、 位置座標の差分 (dx, dy) を計算する。 ここでは、 各描 画情報関数 52は、 直接、 差分 (dx, dy) を与えており、 次のように定義
される。
•描画情報関数 P f 1 dx=0
d y = 100 * (s i n ( t_ 1 a s t + d t ) — s i n ( t_ 1 a s t) )
(9) この関数によれば、 x方向の差分 d xは 0であり、 y方向の差分 dyは、 時 刻 t— l a s tと t— l a s t +d tにおける s i n ( t ) の差分の 100倍 に相当する。 その結果、 この関数は、 振幅 100の上下振動を表す。
•描画情報関数 P f 2 d x= 10 * d t
dy=0 (10) この関数によれば、 x方向の差分 dxは、 更新間隔 d tの 10倍に相当し、 y方向の差分は 0である。 その結果、 この関数は、 X方向 (右方向) に単位時 間あたり 10だけ移動する直線移動を表す。
また、 描画情報列 32は、 一辺の長さが 100である正方形の 4つの頂点の 位置座標を含み、 描画情報列 32により指定される軌跡は、 左上頂点を始点と し、 正方形の各辺に沿って時計周りに移動することを表す。 この場合、 差分 (dx, dy) は、 指定された軌跡から直線補間により計算される。
各画像管理部 1 1は、 これらの描画情報関数 52もしくは描画情報列 32か ら計算された差分 (dx, dy) を用いて、 次のように位置座標 (x, y) を 計算する。
,画像 I 1の画像管理部 1 1
描画情報発生部 # 1は、 描画情報関数 P f 1を用いて上下振動の差分を計算 し、 描画情報発生部 # 2は、 描画情報関数 p f 2を用いて右移動の差分を計算 する。 これらの 2つの差分の総和が 1回の更新における位置座標の変化量とな る。 その結果、 画像 I 1は、 正弦波の軌跡に沿って移動する。
•画像 I 2の画像管理部 1 1
描画情報発生部 4 1は、 描画情報関数 p f 2を用いて右移動の差分を計算し、 それが 1回の更新における位置座標の変化量となる。 その結果、 画像 I 2は、 右へ直線移動する。
·画像 I 3の画像管理部 1 1
描画情報発生部 4 1は、 描画情報列 I D 1を用いて正方形移動の差分を計算 し、 それが 1回の更新における位置座標の変化量となる。 その結果、 画像 I 3 は、 描画情報列 I D 1により指定された軌跡に沿って移動する。
このような動画像合成処理において、 あるイベントが時刻 t = 1で通知され、 イベント処理が行われた場合を考える。 この場合、 時刻 t = 0では、 各画像は、 図 2 0に示したように、 その初期位置に表示される。 また、 時刻 t = 0から時 刻 t = lまでの間は、 図 2 2に示すように、 各画像は、 それぞれの描画情報発 生部 4 1が生成する差分を位置座標に加えながら移動していく。 したがって、 画像 I 1は正弦波の軌跡に沿って移動し、 画像 I 2は右へ直線移動し、 画像 I 3は正方形の軌跡に沿って移動する。
次に、 時刻 t == 1でイベントが通知され、 画像 I 1の画像管理部 1 1から描 画情報発生部 # 1を削除するように要求されたとする。 ここで、 画像 I 1の画 像管理部 1 1は、 イベント処理を行って、 描画情報発生部 # 1を削除する。 し たがって、 これ以降、 上下振動の差分は生成されず、 描画情報発生部 # 2のみ が差分を生成する。
次に、 時刻 t = 1から時刻 t = 2までの間も、 図 2 3に示すように、 各画像
は、 それぞれの描画情報発生部 4 1が生成する差分を位置座標に加えながら移 動していく。 このとき、 画像 I 1は上下振動を停止し、 時刻 t = lのときの y 座標の値を保ったまま、 右へ直線移動する。 また、 画像 I 2は右へ直線移動し、 画像 I 3は正方形の軌跡に沿って移動する。
時刻 t = 1のィベント通知の内容が、 画像 I 1の画像管理部 1 1に新たな描 画情報発生部 # 3を追加する要求であった場合は、 画像管理部 1 1は描画情報 発生部 # 3を追加する。 これ以降、 3つの描画情報発生部 # 1、 # 2、 # 3が 生成する差分が加算されて、 画像 I 1の位置座標が決定される。
ところで、 図 6、 1 1、 1 5、 および 1 8の動画像合成装置は、 図 2 4に示 すような情報処理装置 (コンピュータ) を用いて構成することができる。 図 2 4の情報処理装置は、 C P U (中央処理装置) 7 1、 メモリ 7 2、 入力装置 7 3、 出力装置 7 4、 外部記憶装置 7 5、 媒体駆動装置 7 6、 およびネットヮー ク接続装置 7 7を備え、 それらはバス 7 8により互いに接続されている。
メモリ 7 2は、 例えば、 R OM (read only memory) 、 R AM (random acc ess memory) 等を含み、 処理に用いられるプログラムとデータを格納する。 C P U 7 1は、 メモリ 7 2を利用してプログラムを実行することにより、 必要な 処理を行う。
ここでは、 画像管理部 1 1、 描画部 1 2、 描画情報関数管理部 5 1、 描画情 報列管理部 3 1、 描画情報発生部 2 3、 4 1等がプログラムにより記述された ソフトウェアコンポーネントに対応し、 それぞれ、 メモリ 7 2内の特定のプロ グラムコードセグメントに格納される。 また、 ポインタのリスト 6 1、 ィベン ト変数 6 2、 更新間隔 6 3、 画像データ 6 4、 最終描画座標 6 5、 描画座標 6 6等もメモリ 7 2内に格納される。
入力装置 7 3は、 例えば、 キーボード、 ポインティングデバイス、 タツチパ ネル等であり、 ュ一ザからの指示や情報の入力に用いられる。 入力装置 7 3へ の操作入力がイベントとして描画部 1 2に通知される場合もある。 出力装置 7
4は、 例えば、 図 5の V R AM 1 3およびディスプレイ 1 4を含み、 ユーザへ の問い合わせおよび合成された動画像の出力に用いられる。
外部記憶装置 7 5は、 例えば、 磁気ディスク装置、 光ディスク装置、 光磁気 ディスク (magneto-opt i cal di sk) 装置等である。 この外部記憶装置 7 5に、 上述のプログラムとデ一夕を保存しておき、 必要に応じて、 それらをメモリ 7 2にロードして使用することもできる。 また、 外部記憶装置 7 5は、 画像デー 夕 6 4、 描画情報関数 5 2、 描画情報列 3 2等を蓄積するデータベースとして も用いることができる。
媒体駆動装置 7 6は、 可搬記録媒体 7 9を駆動し、 その記録内容にアクセス する。 可搬記録媒体 7 9としては、 メモリカード、 フロッピ一ディスク、 C D — R OM ompac t di sk read only memory ) 、 光アイスク、 光磁 アイスク 等、 任意のコンピュータ読み取り可能な記録媒体が用いられる。 この可搬記録 媒体 7 9に上述のプログラムとデータを格納しておき、 必要に応じて、 それら をメモリ 7 2にロードして使用することもできる。
ネットワーク接続装置 7 7は、 L AN (l ocal area network) 等の任意のネ ットワーク (回線) を介して外部の装置と通信し、 通信に伴うデータ変換を行 う。 また、 必要に応じて、 上述のプログラムとデータを外部の装置から受け取 り、 それらをメモリ 7 2にロードして使用することもできる。
図 2 5は、 図 2 4の情報処理装置にプログラムとデータを供給することので きるコンピュータ読み取り可能な記録媒体を示している。 可搬記録媒体 7 9や 外部のデ一夕べ一ス 8 0に保存されたプログラムとデータは、 メモリ 7 2に口 ードされる。 そして、 C P U 7 1は、 そのデータを用いてそのプログラムを実 行し、 必要な処理を行う。
以上説明した実施形態では、 主として、 画像管理部 1 1をソフトウェアによ り実現する構成について説明したが、 画像管理部 1 1をハードウェアにより実 現することも可能である。
図 26は、 複数の画像管理部 1 1を 1つのハードウェア回路により構成した 例を示している。 図 26の画像管理部は、 複数のメモリ 81 (# 1〜#M) 、 メモリ 81を選択するセレクタ 82、 83、 複数の描画情報発生回路 84 (# 1〜#N) 、 描画情報発生回路 84を選択するセレクタ 85、 86、 および制 御回路 87を備える。
制御回路 87は、 制御信号 C 1によりセレクタ 82、 83を切り替え、 制御 信号 C 2によりセレクタ 85、 86を切り替え、 制御信号 C 3により描画情報 発生回路 84を制御する。 ここでは、 簡単のために、 描画情報として描画座標 (x, y) のみを取り扱うものとする。
メモリ # 1〜#Mは、 それぞれ、 上述した画像管理部 # 1〜#Mに対応し、 ある時刻 tにおいて前時刻の描画情報を記憶している。 また、 描画情報発生回 路 # 1〜#Nは、 それぞれ、 上述した描画情報発生部 # 1〜#Nに対応し、 1 つの動きの要素に対応する演算を行い、 描画情報を出力する。 時刻し 更新間 隔 d t、 前時刻の描画座標 (X, y) を入力とすると、 出力される描画座標 (χ' , y' ) は、 次のように表される。
X ' = f X t, d t , χ, y;
y ' = f y ( t , d t , x, y) (1 1) ここで、 d tは前時刻と現時刻 tの差に相当し、 f x (t, d t, x, y) 、 f y (t, d t, x, y) は、 画像の動きを生成する関数に相当する。 例えば、 s i n (t) を用いて上下振動する動きを生成する場合は、 次式のようになる。 f ( t, d t , x, y ) = x
f y (t, d t , x, y) =y + s i n ( t ) - s i n ( t - d t )
(12)
これらの関数は、 過去の描画座標の履歴を出力することもできる。 例えば、 時刻 t 1の入力座標値 (X— t 1, y _ t 1 ) を記憶しておき、 時刻 t 1以降、 ( x _ t 1 , y _ t 1 ) を出力し続けるような関数を定義してもよい。
複数の画像に対して同じ描画情報発生回路 8 4を使用する場合、 このような 描画座標のデータを画像毎に描画情報発生回路 8 4内のレジスタに格納してお き、 制御回路 8 7からの制御信号 C 3によりレジス夕を切り替えて、 適切なデ —夕を出力する。
時刻 tにおいて描画更新処理が開始されると、 まず、 制御回路 8 7からの制 御信号 C 1により、 セレクタ 8 2、 8 3が切り替えられ、 メモリ # 1が選択さ れる。 次に、 制御信号 C 2により、 セレクタ 8 5、 8 6が切り替えられ、 描画 情報発生回路 # 1が選択される。 同時に、 必要に応じて、 制御信号 C 3により、 描画情報発生回路 # 1内のレジスタが切り替えられ、 適切なデータが選択され る。 こうして、 メモリ # 1の描画座標が描画情報発生回路 # 1に入力され、 描 画情報発生回路 # 1からの出力はメモリ # 1に記憶される。
次に、 セレクタ 8 5、 8 6が切り替えられ、 描画情報発生回路 # 2が選択さ れて、 メモリ # 1から描画情報が入力される。 そして、 描画情報発生回路 # 1 の場合と同様にして描画座標が生成され、 メモリ # 1に記憶される。 このよう な動作が、 画像管理部 # 1に割り当てられたすべての描画情報発生回路 8 4に ついて繰り返された後、 最後の描画情報発生回路 8 4の出力は、 画像管理部 # 1の現時刻の描画情報として出力される。 このとき同時に、 その描画情報はメ モリ # 1にも記憶される。
こうして、 画像管理部 # 1としての動作が終了すると、 次に、 セレクタ 8 2、 8 3が切り替えられ、 メモリ # 1が選択されて、 画像管理部 # 2としての動作 が同様に行われる。 このような動作が M個の画像管理部について繰り返される と、 時刻 tにおける描画更新処理が完了する。
例えば、 メモリ # 1に対応する画像管理部 # 1が、 正弦波の軌跡に沿って右 方向に移動する動きを生成し、 メモリ # 2に対応する画像管理部 # 2力 正弦 波の軌跡に沿って左方向に移動する動きを生成する場合を考える。 描画情報発 生回路 # 1、 # 2、 # 3は、 それぞれ、 次のような動きを生成するものとする。 描画情報発生回路 # 1 : s i n ( t ) の上下振動
描画情報発生回路 # 2 :右方向への直線移動
描画情報発生回路 # 3 :左方向への直線移動
この場合、 図 2 6の回路は、 まず、 セレクタ 8 2、 8 3によりメモリ # 1を 選択し、 セレクタ 8 5、 8 6により描画情報発生回路 # 1を選択する。 これに より、 メモリ # 1の描画座標に s i n ( t ) の上下振動が付加される。 次に、 セレクタ 8 5、 8 6により描画情報発生回路 # 2を選択する。 これにより、 メ モリ # 1の描画座標に右移動が付加され、 その結果、 正弦波の軌跡に沿って右 方向に移動する場合の描画座標が出力される。
次に、 セレクタ 8 2、 8 3によりメモリ # 2を選択し、 セレクタ 8 5、 8 6 により描画情報発生回路 # 1を選択する。 これにより、 メモリ # 2の描画座標 に s i n ( t ) の上下振動が付加される。 次に、 セレクタ 8 5、 8 6により描 画情報発生回路 # 3を選択する。 これにより、 メモリ # 2の描画座標に左移動 が付加され、 その結果、 正弦波の軌跡に沿って左方向に移動する場合の描画座 標が出力される。
このように、 セレクタを用いてメモリ 8 1および描画情報発生回路 8 4を切 り替えることにより、 複数の描画情報発生回路 8 4の出力を合成して 1つの画 像の動きを生成することができる。 また、 1つの描画情報発生回路 8 4を、 複 数の画像の動きを生成するために利用することもできる。
以上説明したように、 本発明は、 ソフトウェア、 ハードウェアを問わず、 時 間の経過とともに、 もしくはイベントに応じて動画像が動くような任意の分野 で利用可能である。 ソフトウェアにおけるアプリケーションとしては、 例えば、
次のようなものが挙げられる。
( 1 ) 動画像作成ソフトウェア
( 2 ) ホームページ作成ソフトウェアおよび閲覧ソフトウエア
( 3 ) C D— R OMコンテンツ作成ソフトウエアおよび再生ソフトウェア ( 4 ) プレゼンテーション作成ソフトウェアおよび再生ソフトウェア
( 5 ) ゲーム作成ソフトウエアおよびプレイソフトウェア
例えば、 ホームページ作成等に利用される従来のマルチメディアタイトル制 作 ·再生システムでは、 1つの画像部品には 1つの動きしか与えることができ ない。 したがって、 右へ移動しながら上下振動するというような動きを与えた い場合は、 あらかじめ 2つの動きが合成された結果を想定し、 作成しておく必 要がある。
これに対して、 本発明のシステムによれば、 再生時に、 右への移動と上下振 動を別々に生成し、 それらを 1つの画像部品に関連付けることで、 右へ移動し ながら上下振動するという動きを合成することができる。 このシステムを利用 すれば、 ユーザのインタラクションや時刻等に応じて、 動的に動きを追加した り削除したりすることが可能になる。
このシステムでは、 再生時に右への移動と上下振動が別々に管理されている ため、 右へ移動している画像をクリックすると、 右へ移動しながら上下振動を 開始し、 もう一度クリックすると上下振動を停止するという動きを容易に生成 することができる。 この場合、 まず、 右への移動を基本的な動きとして画像部 品に関連付けておき、 クリックイベントによって上下振動を追加 Z削除するよ うに構成すればよい。
従来のシステムでは、 右への移動と、 右へ移動しながら上下振動するという 動きとを別々に作成しておき、 クリックにより切り替えることになる。 しかし、 これらの 2つの動きの連続性に注意して作成しなければ、 切り替え時に動きが 不連続になる可能性がある。
また、 本発明のシステムを利用すれば、 マルチメディアタイトルの制作者が それぞれの動きを部品として扱うことができる。 完成したマルチメディアタイ トルには、 各種の動きの要素が分解された状態で記録されているため、 他の制 作者が作成したマルチメディアタイトルから気に入った動きの要素を取り出し て、 動きの部品として使用することができる。
例えば、 あるリズムを刻んで上下振動しながらあるパスに沿って移動する画 像を含むマルチメディアタイトルは、 リズムを刻んだ上下振動とパスに沿った 移動の 2つの動きの部品を含むと考えられる。 この場合、 リズムを刻んだ上下 振動だけを取り出して利用することにより、 他のマルチメディァ夕ィトルにお いてもそのリズムを刻んだ上下振動を実現できる。 従来のシステムでは、 制作 時にあらかじめ動きが合成されているため、 リズムを刻んだ上下振動だけを取 り出すことは非常に困難である。
以上説明した実施形態において、 描画情報関数としては、 正弦波の上下振動 や左右の直線移動が用いられているが、 他の任意の関数も同様に利用可能であ る。 例えば、 余弦波の振動、 直線 y = a x + bに沿った移動、 放物線に沿った 移動、 円や楕円に沿った移動等も関数として定義することができる。 また、 描 画情報列としては、 正方形の軌跡に限らず、 放物線、 円、 楕円等の任意の軌跡 を設定することができる。
さらに、 描画情報発生部が生成する描画情報は、 画像の描画位置のみに限ら れず、 画像の拡大 縮小率、 回転角度、 色、 前後関係等を指定する情報であつ てもよい。 これらの情報を動的に組み合わせることにより、 より多彩な動画像 を表示することが可能になる。 産業上の利用可能性
本発明によれば、 複数の動画像を画面上に表示する際に、 複数の動きの要素 を組み合わせて、 容易に複雑な動きを生成することができる。 例えば、 ィベン
卜に応じてリアル夕ィムに動きを追加 Z削除したり、 動きを停止したりする とができ、 1つの動きの要素を複数の画像に適用することもできる。