JP3929649B2 - ビデオ特殊効果装置 - Google Patents
ビデオ特殊効果装置 Download PDFInfo
- Publication number
- JP3929649B2 JP3929649B2 JP21558699A JP21558699A JP3929649B2 JP 3929649 B2 JP3929649 B2 JP 3929649B2 JP 21558699 A JP21558699 A JP 21558699A JP 21558699 A JP21558699 A JP 21558699A JP 3929649 B2 JP3929649 B2 JP 3929649B2
- Authority
- JP
- Japan
- Prior art keywords
- plug
- effect
- parameter
- image
- effects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Studio Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、ビデオ特殊効果装置に関するものである。
【0002】
【従来の技術】
コンピュータ使用ビデオ特殊効果装置の中には、「コア」コンピュータ・プログラムと、必要時に格納できる幾つかのプログラム・モジュール又は「プラグイン」とを利用するものがある。
【0003】
この構成を取るビデオ特殊効果装置の一例においては、ユーザが一般に、多数の使用可能なモジュールから一連の効果モジュールを選択することにより、或るビデオシーケンスに適用する合成特殊効果を設定できるようになっている。例えば、ユーザによって設定される一連(又は「有向非繰返しグラフ(directed acyclic graph)」)の効果には、次のようなものが含まれるであろう。
(i)イメージローダ(画像の格納)
(ii)イメージローダに連動したモーショントラッカ(動きの追跡)
(iii) 動きの追跡とイメージローダに連動した照明効果
(iv)動きの追跡とイメージローダに連動した画像再編成
【0004】
これらの効果の各々はプログラム・モジュール又はプラグインとして具現され、データは、コア・プログラムの全般的制御の下にモジュール間を転送される。
合成効果内の幾つかの特殊効果モジュールを「動画化」したいことがよくある。これは、該効果の作動パラメータを時間と共に(即ち、ビデオシーケンスにおける画像ごとに)変化させることである。例えば、上述の照明効果は、光のソース及び画像内の行先位置を時間と共に変化させ、光が画像を横切る如く見えるようにすることにより動画化できるであろう。
【0005】
【発明が解決しようとする課題】
本発明の課題は、簡単で便利な方法によりビデオ特殊効果を動画化することである。
【0006】
【課題を解決するための手段】
本発明によるビデオ特殊効果装置は、
コア・プログラム・オブジェクトと、
該コア・プログラム・オブジェクトに応答する複数の描画プロセッサ・プラグイン・プログラム・オブジェクトであって、描画プロセッサは有向非繰返しグラフ状に配置され、各描画プロセッサは、上記有向非繰返しグラフにおいて先行する描画プロセッサから受けた或る画像及び/又は他の画像に関する入力データから、且つ上記描画プロセッサに関する作動パラメータに応答してビデオ信号の連続画像に関する出力結果を描画する動作ができる、複数の描画プロセッサ・プラグイン・プログラム・オブジェクトとを具え、
各作動パラメータは、パラメータ値を上記描画プロセッサ・プラグイン・オブジェクトに伝えるように構成されたパラメータ・プラグイン・オブジェクトによって定められることを特徴とするものである。
【0007】
本発明は、別々のプラグイン・オブジェクトを用いてパラメータ値を定めることにより、プラグイン・オブジェクトを用いる特殊効果装置のパラメータ値を制御する便利ですばらしく簡単な方法を提供している。この技法は、ユーザの目に見えないようにできるものであるが、効果プラグイン・オブジェクト内に注文の動画化コードを必要とせず、パラメータ値を直接容易に動画化することができ、また、1つの効果の出力を他の効果へのパラメータ入力として容易に転送することができるものである。
【0008】
【発明の実施の形態】
以下、図面を参照して本発明を具体的に説明する。
図1は、本発明を適用できるデジタルビデオ特殊効果装置の概要図である。図1において、連続する画像を表すデジタルビデオ信号は、入力インタフェース(I/F)100を介して受信されディスクアレイ装置110に記憶される。ディスクアレイ装置110はまた、本効果装置により生成された処理済み画像をも記憶し、これらは出力インタフェース120を介し出力として供給される。
【0009】
中央処理ユニット(CPU)130は、ディスクアレイに記憶されたデータにアクセスし、ユーザの指令(コマンド)に従い種々のビデオ特殊効果を達成する。CPU130は、マウス及びキーボードのようなユーザ入力装置140から入力を受け、作業データ及びプログラムコードをメモリ150に記憶させ、出力データを生成し、表示駆動部170を介してスクリーン160に表示させる。
【0010】
本効果装置は、適当なソフトウェア、例えばマイクロソフト・ウィンドーズNT(登録商標)オペレーティングシステムにより動作する汎用コンピュータ(例えば、PC)として具現することができる。この例では、ディスクアレイは、ウルトラSCSIデータリンクを介してCPU130に接続される。
【0011】
図2は、図1の装置に使用する作動ソフトウェアの編成の概略を(極めて一般的な水準で)示すものである。
このソフトウェアは、2種類のプログラムコードより成り、1つは図2の左側に示すコア構造部であり、もう1つは図2の右側に示す種々のプラグイン部である。このソフトウェアが初めに格納されると、コア構造部は、常に存在して異なる特殊効果プロセス間で共通する本装置の動作の各部分を制御する。これに対し、プラグライン部は、個々の特殊効果(照明効果、動き追跡効果など)に関するもので必要な時にのみ格納される。
【0012】
この配置は、現在ユーザが要求する効果モジュールに関するプラグインのみをメモリに格納すればよいので、極めて効率のよいものである。こうすると、想定されるすべての特殊効果に対するプログラムコードを格納しなければならないシステムに比べて、メモリを少なくすることができる。これはまた、装置の初期設定をもつと迅速化し、システムを最初スタートさせる際にプログラムコードをすべてメモリに格納する必要をなくし、グラフエディタ(後述参照)において最初にアイコンを選ぶときのコードの格納による遅延を少なくすることができる。更に、この配置は、グラフエディタ及びプラグインを除くコア処理のみを含むので、供給又は組込むべき装置部品(特に、作動ソフトウェア)を減らすことができる。このシステムはまた第三者又はユーザがプラグイン部及びコア構造部間の決められたインタフェース・プロトコルを守る限り、彼等自身のプラグインを生成することを可能にしている。よって、ユーザは、比較的小さなプラグイン・プログラムを書込むことにより、注文の効果を極めて簡単に生成することができよう。
【0013】
コア構造部及びプラグイン部は、David Chappell著1996年Microsoft Press 発行の「Understanding Active X and OLE」という本に記載された、いわゆるOLE(Object Linking and Embedding)プロトコルを用いて互いに伝達を行う。
【0014】
OLEシステムでは、ソフトウェア設計者は、コンピュータ・プログラムの種々異なるセクションをいわゆる「COM(Component Object Model)オブジェクト」として実現できる。各COMオブジェクトは、各々が幾つかの「メソッド」を含む1以上の「COMインタフェース」を支えている。メソッドは、特定の運動を実行する機能又は手順である。COMメソッドは、上記COMオブジェクトを使用するソフトウェアによって呼び出すことができる。このシステムでは、COMオブジェクトを使用するソフトウェアの他の部分は、所定のインタフェースを介してのみそうすることができるように制約されている。即ち、それらは、所定のCOMインタフェースを介さなければ、該オブジェクト内のプログラムコード又はデータに直接アクセスすることができない。
【0015】
そこで、本システムでも、コア構造部はプラグイン部とこれらのCOMインタフェースを介して伝達を行う(実のところ、コア構造部は、COMインタフェースを提供できる幾つかの相互連絡オブジェクトを有するが、基本原理は同じである。)。
【0016】
図3は、図2に示したものよりずっと詳細に作動ソフトウェアの編成を示すものである。図3は、4つの象限に分割されている。左上の象限はいわゆるビューワーウィンドー310を示し、右上の象限は効果ユーザインタフェース(UI)320を示し、右下の象限は、関連するパラメータデータ(PD)を有する「効果サーバ」330を示し、左下の象限は、オブジェクトマネージャ350、描画マネージャ352及び変更マネージャ358と共にグラフを含むコア・プロセッサ340を示す。左下と右下の象限の間のインタフェースには、ウィンドーズNTレジストリの一部をなすメタ・データベース354と、効果アイコンを含むパレット356と、省略パラメータ値とがある。メタ・データベース354については図11を参照してあとで説明する。パレット356については図6〜9を参照して後述する。
【0017】
コア・プロセッサ340内には、個々の特殊効果を続けて連結した「グラフ」、即ち「有向非繰返しグラフ」がある。各効果は、グラフ内でプロキシ(代理)効果(PE)として表示されている。各PEは、効果の出力が得られると直ちにこれを記憶するキャッシュ(C)を有するので、例えば一連の効果の中で重要な効果に関連するパラメータが変化した場合、一連の効果の中の効果からデータを再使用することができる。各プロキシ効果は、夫々の効果サーバ330と対応している。
【0018】
オブジェクトマネージャ350は、システム内で用いるオブジェクトの存続期間やメモリ処理を制御する責任をもつ。描画マネージャ352は、描画タスクの開始、進行、優先順位の指定及び停止を制御する。変更マネージャ358は、情報の取消し/やり直し及びシステム各部への変更の連絡を制御する。
【0019】
図3は、基本的に、左側の2つの象限(左上及び左下)がどの効果にも関係しないというコア構造部の機能的特徴を示すように分割されている。これらのオブジェクトは、ユーザがどの特殊効果を実施しようと望んでいるかに関係なく、メモリに格納される。右側の2つの象限(右上及び右下)は、プラグイン部に関係する。各プラグインは、そのプラグインによって実施される効果に関連した処理を行うサーバ330と、その効果に関するユーザインタフェース制御(実際は、ビューワーウィンドー310における表示制御)を行うユーザインタフェース(UI)320とを有する。
【0020】
図3には同様の上下に分ける分割線があり、これにより、2つの上方の象限(左上及び右上)は特殊効果に関連するユーザインタフェース制御に関係し、2つの下方の象限(左下及び右下)はそれらの効果を実施するために行う処理や編成に関係していることを示す。
【0021】
ビューワーウィンドー310は、本装置によって実行するために作成された一連の効果のうち特定の効果の出力及びそれの制御パラメータを観察する機会をユーザに与えるものである。即ち、ユーザがビューワーウィンドーを開くと、或る効果の出力が生成されるか、或いは可能な場合キャッシュ・メモリから検索される。
【0022】
多数のCOMオブジェクトを使用するこのタイプのシステムでは、各オブジェクトがその作業又は結果のデータを別々のデータファイルに蓄えるべきだとするのは望ましくない、と一般に考えられている。実際、そのようにすると、OLEシステムを確立させた論理の多くと合わないようである。代わりに、このタイプのシステムのデータは、全部のオブジェクトによりただ1つのファイル又は「複合文書」に記憶される。ただし、順序付けされた構造であれば、複合文書内に記憶される。
【0023】
元来、複合文書内にはファイル及びディレクトリ構造に似た或る構造が設けられている。ディレクトリの均等物はいわゆる「ストレージ」であり、ファイルの類似物はいわゆる「ストリーム」である。各複合文書はルート(根)ストレージを有し、その下方にはストレージ及びストリームのよく知られた木構造がある。COMストリーム・インタフェースはCOMストレージ・インタフェースより簡単であるが、勿論ストレージ・インタフェースの方がもっと柔軟性がある。
【0024】
一般に、各COMオブジェクトを自分のストレージ又は自分のストリームに割り当て、その中に作業データを記憶させることができる。しかし、コア・プロセッサ340が幾つかのプラグインの動作を調整する本ビデオ特殊効果プロセッサのような階層システムにおいては、これまで1つのストリームを各効果プラグインに割当てるようにしていた。
【0025】
これに対し、本実施態様では、単にストレージ又はストリームのいずれか一方をプラグインに割当てることは、プラグイン・オブジェクトの設計及び動作に余りに多くの制約を課すことになると認識されていて、代わりに、コア構造部とプラグイン部との間のインタフェース定義において、各プラグインは、プラグイン設計者が望む場合、その作業データを容易に記憶できるように1つのストリームを選択でき、同じく望む場合、複数のストリームとストレージの自己の「ディレクトリ」配置の下でその作業データを記憶できるように1つのストレージを選択できるようになっている。この選択は、プラグイン・プログラムコードを作成するプラグイン設計者によって予め行われる。
【0026】
以下の説明において、種々のオブジェクト間の通信プロトコルについては図4及び図5に関連して説明し、コア・プログラム340のグラフエディタ部を用いて個々の効果を連結し、複合効果を作る方法については図6〜図9を参照して説明し、ビューワーウィンドー及びそれと効果ユーザインタフェース(UI)320との対話については、図10を参照して説明する。
【0027】
図4は、図3の配置における更新された効果パラメータの伝播状態を模式的に示す。
この伝播状態は、ユーザが「照明」特殊効果を設定し、光源の効果が画像に加えられる場合の例である。光源は、ユーザが定めるソースと画像に関する行先位置とを有する。ユーザがこれらの位置の1つを変えたいと望む場合、現在該効果から描画されている出力を無効とし、その変化を図3の異なる象限に示す種々のオブジェクトに伝達させる必要がある。この処理過程を図4に示す。
【0028】
図4において、ユーザは、変更されたパラメータをビューワーウィンドー310を介して実際に書入れる(図10参照)。ビューワーウィンドーは特定の効果ユーザインタフェース320と対応しており、このインタフェースはまた個々の効果に関する各プラグインの一部をなす。(実のところ、1つのビューワーウィンドーを1より多い効果と対応させることができ、任意の特定時間に開かれるビューワーウィンドーをすべての効果がもつには及ばないが、都合上図3の簡略化された配置に基いて説明する。)プラグインは、「これより編集に入る(about to edit)」との通知をコア側に発する。
【0029】
上記の変更が行われた後、プラグインは「変更発生」メッセージを発する。これにより、一連の動作が発生及び/又は開始される。最初のステップ401で、ビューワーウィンドーは更新されたパラメータを効果UI320に伝達する。効果UI320は、「セット」コマンドを対応する効果サーバ330に発し、修正された値を効果サーバ330内のパラメータ・メモリにセットさせる。このステップを図4の402で示す。
【0030】
ステップ403で、効果サーバ330は、「取消し/やり直し」オブジェクトをコア・プロセッサ340の中に書込んで、変更の前後におけるパラメータの(効果サーバ内の)記録を指し示すハンドル又はポインタの詳細を供給する。この「取消し/やり直し」オブジェクトを受取ると、ステップ404で、コア側は、パラメータが変更され幾つかのキャッシュされたデータ出力が無効になるかも知れないという通知を全ビューワーウィンドーに流す。この通知は、パラメータの変更が行われたビューワーウィンドーに限定されない。
【0031】
ステップ405で、各ビューワーウィンドーは、対応する効果UI320にその処理パラメータの更新を要求するメッセージを発する。ステップ406で、効果UI320は、「ゲット」コマンドを対応する効果サーバに発して新しいパラメータを得させる。新しいパラメータは、ステップ407で効果UI320に返送される。効果UIはそれから、ステップ408でビューワーウィンドーにその変化を伝えて表示させる。
【0032】
一般に、処理パラメータが変わると、1つ以上の効果出力の描画をやり直す必要が生じる。図5は、描画し直しコマンドが装置内を伝播する様子を示し、これは図4の処理から引き続いて起こる。
【0033】
ステップ502ではビューワーウィンドーは描画し直しコマンドを描画マネージャ352に発する。すると、描画マネージャは描画し直しコマンドを対応する効果サーバ330に発する。効果サーバは、画像の作り直しを終えると、「終了」メッセージをコア・プロセッサ340に発する。コア側は、ステップ505でこれをビューワーウィンドーに知らせ、ステップ506及び507で、ビューワーウィンドーは効果UI320と対話し描画し直した効果出力を表示する。
【0034】
数個のビューワーウィンドーが開き、数個のフレームが関心の域(これは、テスト目的でユーザがビデオクリップ全体の部分集合として決めることができる。)内にある場合、処理資源をとっておくため次の優先順に従い多数の同時発生タスクとして画像が描かれる。
(i)ユーザが観察するために現在表示されている単数又は複数の画像、
(ii)関心のある出力シーケンスの最初と最後の画像、
(iii) 関心のある出力ビデオシーケンスの残りの画像
【0035】
更に細かい段階として、描画マネージャは、効果サーバに描画し直しコマンドを発する前に、シーケンス内のどの画像を描画すべきかを指定する「描画準備」メッセージを発する。効果サーバは、これに応じてその「依存性」を、即ち描画マネージャから要求される前に必要となる描画像を作成しなければならないことを通知する。これらの画像は、他の効果(例えば、非繰返し有向グラフにおける直ぐ前の効果)により描画されるものか、或いはその効果自体によって描画されるものかも知れない。この後者の例は、モーショントラッカの場合に起りうる。即ち、例えば、画像5を描くためにモーショントラッカが画像4に対する自分の描画出力を必要とする場合である。
【0036】
効果サーバから返送された該メッセージを受取ると、描画マネージャは、それらの画像を求める「描画準備」メッセージを送る。以下、従属ツリーが終わるまで同様のことが行われる。
各階段において、プロキシ効果は、要求された画像又は描画出力がキャッシュに記憶されたかどうかをチェックし、描画マネージャに知らせる。
【0037】
そこで、例えば、画像5を指定する描画準備メッセージがモーショントラッカに送られると、モーショントラッカは、これに応答して画像4に対する自己の描画出力を要求していることを告げる。すると、描画マネージャは、画像4に対する描画準備メッセージをモーショントラッカに送る。モーショントラッカは、これに応答して画像3を要求していることを示す。以下同様である。こうして、所要画像(画像5)が描画される前に必要な描画ジョブのリストが作成される。キャッシュに記憶されている描画出力は、描画マネージャのジョブのリストには含まれない。
【0038】
或る効果が前の効果の描画出力を必要とする場合には同じことが起こり、同様に一連の効果を前にさかのぼる。
この過程が終わると、描画マネージャは、現在要求されている画像が、それの依存する画像がすべて描かれるまでは描かないように逆の順序で、要求されたすべてのジョブを進めてゆく。
【0039】
最適化の条件として、描画マネージャは、各効果への入力が何であるかを前記グラフから検出するのがよい。そして、効果サーバは、所定のコードを送り(例えば、ゼロ応答)簡単に「この効果に対する入力はすべて要求済み」と告げるとよい。
【0040】
更に、各効果サーバから、その出力が隣り合う画像と同じであるかどうかを描画マネージャに知らせうるように、同じプロトコルを使用するとよい。これの簡単な例は、その出力が不変である場合の(一定)パラメータ・プラグインである。更なる例は、どれか他の効果の出力が既に準備されキャッシュに記憶されていて、連続する出力が同一かどうかを容易に検出できる場合である。かような通知に応答して、描画マネージャは、有向非繰返しグラフで後の他の効果サーバにその情報を送る。すると、その効果サーバは、(適当ならば)一連の画像の1つだけを描画し、入力が変わらない他の画像に対してその出力を繰返す。
【0041】
図6は、グラフ・エディタ・ウィンドー610とパレット・ウィンドー600を示す概略図である。これらは、コア・プロセッサ340の制御の下に表示スクリーン160に表示される。
パレット・ウィンドー600は幾つかのアイコン620を含み、これらの各々は、考えられる種々の効果の1つにマッピングされ、それらの効果を表している。本システムには、各効果に対するプラグインが存在する。ユーザは、マウスを用いてこれらのアイコンをスクロール可能なグラフ・ウィンドー610に「引き込む」ことができる。ユーザは、グラフ・ウィンドー内にこれらのアイコンを配置し、該ウィンドー内で図形線として示す論理リンク630で互いに連結することができる。
【0042】
論理リンク630は、或る効果の出力を次の効果の入力へ送ることを表し、(この具体例では)常にグラフ・ウィンドーの下から上の方への向きをもつ。即ち、図6の例は、イメージローダ(I/L)アイコン640の出力を照明効果650に送ることを示す。
【0043】
ユーザがグラフ・ウィンドー内に上記の図形線を描くと、コア・プロセッサ340は、論理リンクを設定して描画出力が或る効果プラグインから他のプラグインに送られる経路を決定する。
これより、図7を参照して図形線を作成する方法を説明する。それから、図8を参照して論理リンクを説明する。
【0044】
図7において、ユーザが照明効果を(例えば、マウスのクリックで)選択すると、アイコン650からマウスポインタ730に向かう動かせる図形線720が得られる。マウスポインタが混合効果アイコン700に近づくと、その混合効果アイコンが拡大され、即ち拡大線710に囲まれ、その最下部に2つの入力ポート740が現れる。マウスポインタが入力ポートの一方に近づくと、図形線720はその入力ポートに飛びつき、マウスクリックで所定場所に固定される。これにより、効果650と効果700の間に論理的及び図形的な連結が確立される。
【0045】
これらの論理的及び図形的な連結が確定されると、ユーザは、グラフ・ウィンドー内で効果アイコンが連結されたグループ800を「箱に入れる」ことができる(図8)。ここで、「箱に入れる」とは、コンピュータ・マウスを使って標準的な方法で上記グループの周りに箱を描くことである。(これを実現する1つの方法は、箱の左上隅でクリックして保持し、マウスを右下隅に引き、これからマウスボタンを放すことである。これは、複数の画面のオブジェクトを選択する標準的方法である。)
【0046】
ユーザはそれから、連結された効果のグループをパレット領域に引き込むことができる。これにより、該グループの入力から形成される一連の入力と、該グループの出力から形成される一連の出力とを有する新しい複合効果アイコン810が作成される。論理的にいえば、効果アイコン810は、特定のプラグインにマッピングされないで、特定の方法で相互連結されたプラグインの連結グループにマッピングされる。
【0047】
複合効果アイコン810は、それからパレット・ウィンドーの一部となり、ユーザによりグラフの設計に使用される。ユーザがあとで複合アイコン810を利用したい場合、単にそれをグラフ・ウィンドーの適所に引き込むだけでよい。効果アイコン810は、グラフ・ウィンドー上でも1つのアイコンのままであるのがよいが、他の具体例では元のグループ800に引き伸ばすこともある。或いはまた、1つのアイコンとして圧縮した形で表示してもよい。ただし、ユーザが引き伸ばしボタンをクリックして元のアイコン・グループ800を観察できるように、引き伸ばしボタン付きの表示とするのがよい。いずれにしても、アイコン810によって与えられる複合効果は、元のグループ800のコピーである。
【0048】
図9は、この方法の根底にあるデータメモリを示す。図9において、アイコン850は、パレット領域600におけるパレットアイコン620からグラフ・エディタ領域610に引き込まれたものである。
パレット領域600について述べると、図3に示したパレット356には、ルート(根)860及び該ルートからぶら下がる個々のデータ項目870を有するツリー(木)のように配置されたデータ構造が記憶される。各データ項目870は、1つの効果アイコン620を表すが、効果875のような複合効果の場合は別である。この場合、その効果を形成する効果アイコン(3a,3b)は、そのデータ項目875からぶら下がる下部構造として配置される。
【0049】
グラフ・エディタ領域には、効果を記憶する類似のデータ構造が存在する。ここでは、ただ1つの効果885がぶら下がったルート880が示されている。グラフ・エディタ領域において幾つかの効果をグループとして一緒に集めパレットに引き込む場合、それらは更に、構造875に似た複合効果構造となる。
【0050】
図10は、ビューワーウィンドーの概略図である。ビューワーウィンドーは、画像表示領域900、種々の「属性ページ」910、効果制御部920(ここでは、照明効果の例における位置決め十字線を示す。)及び「バーボタン」930を具えている。
ビューワーウィンドーの基本配置は、コア構造部によって設定され、効果ごとに基準となるものである。ただし、属性ページ910を用いて調整できる個々の項目は、特定の効果に対応する効果ユーザインタフェース(UI)320によって設定される。効果UI320はまた、制御部920に対する表示の細目を与える。
【0051】
図示の例では、十字線920は、照明効果における光のソース又は目標位置を決定する。ユーザは、コンピュータ・マウスを用いて十字線を移動させることができる。十字線を移動させると、当該制御に関連するパラメータ(x,y)値が変わり、図4の手順(パラメータ値の更新)が開始される。その手順の最後のステップ408(図4)で、効果UIは訂正されたパラメータ値をビューワーウィンドーに発する。その段階で、十字線はその新しい位置に再表示される。したがって、ユーザには移動操作が十字線を最終の位置に動かしたように見えるが、実のところは、移動操作がパラメータを図4に示す経路によって更新させ、その結果十字線の移動が生じたのである。
【0052】
図11は、作動ソフトウェアの初期の配置を模式的に示すものである。これは、本装置の特定の動作期間において何等かの描画を行う前の状態を表す。
プラグインは、「ダイナミック・ロード・ライブラリー(DLL)」のようなウィンドーズ・オペレーティング・システムによって実現できる。DLLは一般に、プログラムコード、データ及びサブルーチン・ライブラリを含む大きなファイルである。従来、記憶を保存し、システムの性能を改善するために、DLLによって取扱われる特定の処理の実行又は開始のため最初に必要なときにDLLをメモリに格納していた。この具体例では、記憶保存及びシステム性能改善のこのアイディアを、更に一歩進めて用いる。
【0053】
即ち、パレット領域から1つの効果アイコンを最初に取出すとき、従来は、その効果に対応するDLLをメモリに格納して、コア・プロセッサ340にグラフを作成するための十分な情報(例えば、他の効果アイコンとの相互連絡性)を提供していた。
【0054】
この具体例では、当該効果に対するDLLをその段階では格納しない。その代わりに、該効果を表すいわゆる「メタデータ」1000を格納する。このメタデータは、コア・プロセッサに、該効果と他の効果との相互連絡性を定める情報(例えば、入力と出力の数)を提供する。これにより、コア・プロセッサは何もDLLを格納することなくグラフを作成することができ、それらが絶対に必要となるまで大きなファイルを格納しないので、メモリの節約になる。
【0055】
ビューワーウィンドーが或る効果に関連して開かれているか、又は複合効果が他の手段によって実行されている場合は、DLLが格納され、メタデータは破棄されるか又は無視される。
図12〜14は、特に本システムの自動化を容易にする効果プラグインの機能的特徴を模式的に示すものである。
【0056】
図12は、以前に提案されたプラグインの模式図である。この効果プラグインは、画像情報(「クリップ」1300として示す。)を受けて、3つの処理パラメータP1,P2及びP3(照明位置など)に基いて動作する。図12のプラグインでは、パラメータ値は、プラグイン内に、即ちプラグインの一部として書かれた注文プログラムコードにより設定される。このため、例えば、パラメータが時間と共に変化する動画システムや、照明位置のようなパラメータが、モーショントラッカのような他の効果によって変化する装置では、効果プラグイン内に余分なコードを加えたものや、多数の効果プラグインを複合したものがしばしば必要となり、パラメータの総合的な制御が極めて難しくなる。
【0057】
図13は、本発明の実施形態による他の方法を示す模式図である。ここで、各パラメータは、「主」効果プラグイン1330に連結された別々のプラグイン1320により、効果間の連結が上述のグラフ・エディタにおいて定められたのと同様にして定められる。実のところ、上述の説明はプロセス全体を簡略化して行ったものであるが、簡略化は説明を助けるためである。
【0058】
パラメータ・プラグインは、例えば、グラフ・エディタ及びパレットにおける「ページから離れた」スクリーン位置にそれらを表示することにより、通常はユーザから隠されている。
そこで、或る効果を自己充足の非動画式に(即ち、他の効果からパラメータ値を移入することなく)作動させようとする場合、主効果のビューワーウィンドーを用いて各パラメータ・プラグイン1320に対するパラメータを設定する。
【0059】
パラメータを他の効果の出力、例えば動き追跡効果によって与えられる位置の値により決めようとする場合、主効果プラグイン1330と適切なパラメータ・プラグイン1320との間の論理リンクを切り離し、動き追跡効果とのリンクを開始させればよい。
この方式が動画化にいかに役立つかを理解するために、図14を参照する。
【0060】
図14は、最初に図3に示したコア側とプラグイン側の間を左右に分けた各部分を示す。図14の左側には、1つのプロキシ効果(PE)1340が「主」効果サーバ1350に対して設けられている。また、複数のプロキシ効果1360がパラメータ・プラグイン1320の各々に対して設けられる。これらのプロキシ効果1360は、プロキシ効果1340よりずっと簡単なものであり、プロキシ効果1360とパラメータ・プラグイン1320との間の通信は、プロキシ効果1340と効果サーバ1350との間の通信プロトコルの簡略化された部分集合を使用して行う。
【0061】
実際のところ、プロキシ効果1360は単一のデータ値(非動画システムの場合)でよく、或いは動画システムではそれらの値のリストでもよい。動画システムでは、データ値のリストは「キーフレーム」値、即ち連続する個々の画像のために設定されたデータ値として表現でき、間に介在する値は、線形もしくはユーザが決めた非線形補間に従ってコア側により補間される。よって、動画を、各プラグイン内に注文動画ソフトウェアを書込むことなく、特に簡単で便利な方法で作成することができる。
【0062】
この説明を先に効果間の依存性について述べた説明と結びつけると、描画マネージャから「描画準備」メッセージを効果サーバ1350が受取ったとき、それに応答して、出力を供給する前にその入力が全部必要である、と告げることができる。効果の入力には勿論パラメータ・プラグインが含まれるので、次の段階で描画マネージャは描画準備メッセージを各パラメータ・プラグインに送ることになるであろう。パラメータ・プラグインが単一の値しか含まないか、或いは現在の画像がキーフレームであれば、パラメータ・プラグインは直ちに適切なパラメータを描画時に供給することができる。しかし、パラメータ・プラグインが動画データを含み、現在の画像がキーフレームでなければ、パラメータはまず補間してから効果に使用しなければならない。
【0063】
図15は、システム・キャッシュ1100の模式図である。これは全キャッシュ領域の概略図であり、実のところ、先に述べたように、キャッシュはまた、夫々のプロキシ効果に対応した複数の個々のキャッシュと見ることもできる。しかし、かような個々のキャッシュにメモリ資源が動的に割当てられるので、図15の表示も正しいものである。
【0064】
キャッシュは、システム・メモリ150の中に設けられ、画像1110及び効果からの非画像描画出力1130(例えば、動き追跡効果の場合の動きベクトル)を記憶することができる。
【0065】
キャッシュの意図は、有向非繰返しグラフ内の各効果の描画出力(これが画像であるかどうかに拘らず)を記憶することである。こうすると、或る効果の有向非繰返しグラフにおける特定の位置が変更された場合、その位置よりあとの効果を描画し直して新しい出力を供給する必要がなくなる。代わりに、キャッシュされている出力を再使用できる。更なる利点は、特定の効果(開かれたビューワーウィンドーに表示されたもの)の出力をパラメータ変更の前後に記憶することにより、取消し/やり直し動作を助け動作の速度を早めることである。対応するパラメータ変更も記憶されるので、キャッシュメモリ1100から適切な素材を格納することにより、パラメータの変更を簡単に取消したり、やり直したりすることができる。これは、変更が行われたときに効果サーバによって書込まれた取消し/やり直しオブジェクトの制御の下に行われる。
【0066】
画像は、動きベクトルのような簡単なデータ値よりはるかに大きなメモリ空間、恐らく百万倍のメモリ空間を占める。したがって、この具体例では、キャッシュメモリが容量の限界に近づいている状態で他の画像を記憶しようとするときは、最も前にアクセスしたキャッシュ内の画像を削除して、新しく記憶する画像のための空間を作る。ただし、キャッシュ内の他のデータ、パラメータ値や非画像描画出力などは、画像に比べるとほんの僅かのメモリ空間しか使わないので、本装置の動作期間中は削除しない。よって、この情報は、該情報が動作期間を通じて有効である限り、再使用又は取消し/やり直し動作に使用できる。
【0067】
実際には、データ項目を洗い流せるかどうかをプラグインに指定させるようにすることができる。即ち、画像データ項目は取決めにより洗い流せるものと設定し、非画像データ項目は洗い流せないものと設定することができる。
【0068】
図16は、コア・プロセッサ340及び効果サーバ330間の非同期/同期コンバータ(プラグイン・インタフェース)1200の模式図である。
コンバータ1200は、描画マネージャから非同期再描画コマンドを、「行うべき」列、即ち行うべき描画ジョブのリストの形で受取る。1つのジョブが終わると、「終了」メッセージがコンバータ1200から描画マネージャに返送される。
コンバータ1200は、非同期のジョブ要求を受け、同期要求を適切なソフトウェア・プラグインに発する。これは、インタフェース1200が制御「スレッド」(ウィンドーズ用語)をソフトウェア・プラグインに回送することを意味し、これが、該ジョブが完了するまで該スレッドの制御を保持することになる。その時のみ、ソフトウェア・プラグインが該スレッドをインタフェースに返送し、該インタフェースが「終了」メッセージをコア側に発して応答する。
【0069】
初期設定の際、コア・プロセッサは、各プラグイン(又はむしろ当該プラグインに関連するメタデータ)に問合せて、該プラグインが同期又は非同期通信を処理できるかどうかを決定する。ハードウェア・プラグイン(例えば、特定の方法で描画するための周辺カード)又は恐らく異なる機械で作動している非同期ソフトウェア・プラグインをソフトウェア・プラグインの代わりに組込めば、ハードウェア・アクセラレータはこのような動作に極めてよく適しているので、該プラグインはコア側(実のところ、非同期的に描画タスクを開始する描画マネージャ)と非同期インタフェースを介して対話を行う。したがって、この場合、コンバータ1200は迂回される。
【0070】
コンバータは、コア側の一部として又は各関連プラグインの一部として実施してもよい。
よって、コンバータ1200を2つのソフトウェアの間に設けるという反直観的な方法により、将来専用ハードウェアに改良される効率的なハードウェア・インタフェースが提供される。
【0071】
【発明の効果】
以上説明したとおり、本発明によれば、ビデオ特殊効果を簡単で便利な方法により動画化することができる。
【図面の簡単な説明】
【図1】デジタルビデオ特殊効果装置の概略図である。
【図2】図1の装置の作動ソフトウェアの編成を示す概略図である。
【図3】図1の装置の作動ソフトウェアの編成の詳細を示す模式図である。
【図4】図1の装置における更新された効果パラメータの伝播状態を示す模式図である。
【図5】図1の装置における再描画コマンドの伝播状態を示す模式図である。
【図6】グラフ・エディタ・ウィンドー及びパレット・ウィンドーを示す概略図である。
【図7】グラフ編集動作の例を示す説明図である。
【図8】複合効果アイコンの作成例を示す説明図である。
【図9】複合効果のファイル構造を示す模式図である。
【図10】ビューワーウィンドーの概略図である。
【図11】作動ソフトウェアの初期配置を示す模式図である。
【図12】以前に提案された効果プラグインの模式図である。
【図13】新しい形式の効果プラグインの模式図である。
【図14】図13の効果プラグインにおける効果サーバとプロキシ効果との関係を示す模式図である。
【図15】システム・キャッシュを示す概略図である。
【図16】プラグイン・インタフェースを示す概略図である。
【符号の説明】
310,320,330,340‥‥描画プロセッサ、1340‥‥コア・プログラム・オブジェクト、1350‥‥描画プロセッサ・プラグイン・プログラム・オブジェクト
Claims (5)
- コア・プログラム・オブジェクトと、
該コア・プログラム・オブジェクトに応答する複数の描画プロセッサ・プラグイン・プログラム・オブジェクトであって、描画プロセッサは有向非繰返しグラフ状に配置され、各描画プロセッサは、上記有向非繰返しグラフにおいて先行する描画プロセッサから受けた或る画像及び/又は他の画像に関する入力データから、且つ上記描画プロセッサに関する作動パラメータに応答してビデオ信号の連続画像に関する出力結果を描画する動作ができる、複数の描画プロセッサ・プラグイン・プログラム・オブジェクトとを具え、
各作動パラメータは、パラメータ値を上記描画プロセッサ・プラグイン・オブジェクトに伝えるように構成されたパラメータ・プラグイン・オブジェクトによって定められることを特徴とするビデオ特殊効果装置。 - 少なくとも上記パラメータ・プラグイン・オブジェクトの幾つかは、上記ビデオ信号の画像ごとに変化するパラメータ値を供給する動作ができる請求項1の装置。
- 少なくとも上記パラメータ・プラグイン・オブジェクトの幾つかは、上記ビデオ信号の画像の部分集合におけるパラメータ値を定め、上記コア・オブジェクトは、上記ビデオ信号の間にある画像に対するパラメータ値を補間する手段を有する請求項2の装置。
- 描画プロセッサの出力を、該描画プロセッサに関連する1以上の上記パラメータ・プラグイン・オブジェクトの代わりに他の描画プロセッサに連結する手段を有する請求項1〜3のいずれか1項の装置。
- 上記プラグイン・プログラム・オブジェクトがCOMオブジェクトである請求項1〜4のいずれか1項の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9816765:3 | 1998-07-31 | ||
GB9816765A GB2340360B (en) | 1998-07-31 | 1998-07-31 | Animation of video special effects |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000083195A JP2000083195A (ja) | 2000-03-21 |
JP3929649B2 true JP3929649B2 (ja) | 2007-06-13 |
Family
ID=10836540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21558699A Expired - Fee Related JP3929649B2 (ja) | 1998-07-31 | 1999-07-29 | ビデオ特殊効果装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6556205B1 (ja) |
EP (1) | EP0977157B1 (ja) |
JP (1) | JP3929649B2 (ja) |
KR (1) | KR100652465B1 (ja) |
DE (1) | DE69930352T2 (ja) |
GB (1) | GB2340360B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7436535B2 (en) * | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US8024657B2 (en) * | 2005-04-16 | 2011-09-20 | Apple Inc. | Visually encoding nodes representing stages in a multi-stage video compositing operation |
US7417646B1 (en) * | 2005-04-16 | 2008-08-26 | Apple Inc. | Background rendering in video compositing |
US8026920B2 (en) * | 2005-09-13 | 2011-09-27 | Microsoft Corporation | Extensible visual effects on active content in user interfaces |
CN101436306B (zh) * | 2008-12-19 | 2013-03-27 | 北京中星微电子有限公司 | 一种实现图像特效的方法、装置和视频显示卡 |
GB2468859A (en) * | 2009-03-24 | 2010-09-29 | Nat Univ Ireland Cork | Processing a condensed graph on multiple machines using proxies |
US20110093092A1 (en) * | 2009-10-19 | 2011-04-21 | Bum Suk Choi | Method and apparatus for creating and reproducing of motion effect |
US9436685B2 (en) | 2010-12-23 | 2016-09-06 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
US20120166953A1 (en) * | 2010-12-23 | 2012-06-28 | Microsoft Corporation | Techniques for electronic aggregation of information |
US9679404B2 (en) | 2010-12-23 | 2017-06-13 | Microsoft Technology Licensing, Llc | Techniques for dynamic layout of presentation tiles on a grid |
US9715485B2 (en) | 2011-03-28 | 2017-07-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
CN108259496B (zh) | 2018-01-19 | 2021-06-04 | 北京市商汤科技开发有限公司 | 特效程序文件包的生成及特效生成方法与装置、电子设备 |
CN112860168B (zh) | 2018-02-08 | 2022-08-02 | 北京市商汤科技开发有限公司 | 特效程序文件包的生成及特效生成方法与装置、电子设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2278250B (en) * | 1990-08-31 | 1995-03-15 | Canon Kk | Image processing |
US5191645A (en) * | 1991-02-28 | 1993-03-02 | Sony Corporation Of America | Digital signal processing system employing icon displays |
GB2262365B (en) * | 1991-12-10 | 1995-08-09 | Sony Broadcast & Communication | Apparatus and methods for designing,analyzing or simulating signal processing functions |
US5448686A (en) | 1992-01-02 | 1995-09-05 | International Business Machines Corporation | Multi-resolution graphic representation employing at least one simplified model for interactive visualization applications |
CA2097232C (en) * | 1993-05-28 | 1999-01-19 | Phillip J. Beaudet | Displaying partial graphs by expanding and collapsing nodes |
US5485568A (en) * | 1993-10-08 | 1996-01-16 | Xerox Corporation | Structured image (Sl) format for describing complex color raster images |
US5561752A (en) | 1994-12-22 | 1996-10-01 | Apple Computer, Inc. | Multipass graphics rendering method and apparatus with re-traverse flag |
US5986667A (en) * | 1994-12-22 | 1999-11-16 | Apple Computer, Inc. | Mechanism for rendering scenes using an object drawing subsystem |
US5793965A (en) * | 1995-03-22 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for determining the type of an object in a distributed object system |
US5808625A (en) * | 1995-08-04 | 1998-09-15 | Silicon Graphics Incorporated | System and method for using dependency graphs for the control of a graphics creation process |
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
US6295367B1 (en) * | 1997-06-19 | 2001-09-25 | Emtera Corporation | System and method for tracking movement of objects in a scene using correspondence graphs |
US6272650B1 (en) * | 1998-02-03 | 2001-08-07 | Amazing Media, Inc. | System and method for disambiguating scene graph loads |
US6166732A (en) * | 1998-02-24 | 2000-12-26 | Microsoft Corporation | Distributed object oriented multi-user domain with multimedia presentations |
US6266053B1 (en) * | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
-
1998
- 1998-07-31 GB GB9816765A patent/GB2340360B/en not_active Expired - Fee Related
-
1999
- 1999-07-26 DE DE69930352T patent/DE69930352T2/de not_active Expired - Lifetime
- 1999-07-26 EP EP99305902A patent/EP0977157B1/en not_active Expired - Lifetime
- 1999-07-28 US US09/362,395 patent/US6556205B1/en not_active Expired - Fee Related
- 1999-07-29 JP JP21558699A patent/JP3929649B2/ja not_active Expired - Fee Related
- 1999-07-31 KR KR1019990031544A patent/KR100652465B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6556205B1 (en) | 2003-04-29 |
JP2000083195A (ja) | 2000-03-21 |
EP0977157A2 (en) | 2000-02-02 |
EP0977157A3 (en) | 2004-04-07 |
DE69930352T2 (de) | 2006-12-14 |
DE69930352D1 (de) | 2006-05-11 |
KR20000012136A (ko) | 2000-02-25 |
GB2340360A (en) | 2000-02-16 |
GB9816765D0 (en) | 1998-09-30 |
EP0977157B1 (en) | 2006-03-15 |
GB2340360B (en) | 2002-11-06 |
KR100652465B1 (ko) | 2006-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4299924B2 (ja) | ビデオ特殊効果装置 | |
JP4166378B2 (ja) | デジタル画像処理装置 | |
JP4166376B2 (ja) | ディジタル・ビデオ信号処理装置及び方法 | |
JP4299925B2 (ja) | データ処理装置 | |
JP4166377B2 (ja) | ビデオ処理装置及び方法 | |
JP3980795B2 (ja) | デジタルビデオ処理装置 | |
JP3929649B2 (ja) | ビデオ特殊効果装置 | |
KR100663655B1 (ko) | 데이터 처리 방법 및 데이터 처리 장치 | |
US6801225B1 (en) | Data storage in ole systems | |
GB2340359A (en) | Controlling video special effects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060307 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070307 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100316 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110316 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |