JP3904861B2 - 画像処理方法及び装置、コンピュータプログラム - Google Patents

画像処理方法及び装置、コンピュータプログラム Download PDF

Info

Publication number
JP3904861B2
JP3904861B2 JP2001246783A JP2001246783A JP3904861B2 JP 3904861 B2 JP3904861 B2 JP 3904861B2 JP 2001246783 A JP2001246783 A JP 2001246783A JP 2001246783 A JP2001246783 A JP 2001246783A JP 3904861 B2 JP3904861 B2 JP 3904861B2
Authority
JP
Japan
Prior art keywords
state variable
value
candidate
variable value
processor
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
Application number
JP2001246783A
Other languages
English (en)
Other versions
JP2002140717A (ja
Inventor
伸夫 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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
Priority to JP2001246783A priority Critical patent/JP3904861B2/ja
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to AU2001278786A priority patent/AU2001278786A1/en
Priority to KR1020027005154A priority patent/KR20020039696A/ko
Priority to EP01956994A priority patent/EP1312048A2/en
Priority to PCT/JP2001/007146 priority patent/WO2002017226A2/en
Priority to TW090120540A priority patent/TW576981B/zh
Priority to US09/933,611 priority patent/US6757448B2/en
Publication of JP2002140717A publication Critical patent/JP2002140717A/ja
Application granted granted Critical
Publication of JP3904861B2 publication Critical patent/JP3904861B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、オブジェクト画像の状態をコンピュータグラフィクス(CG)によって表現するためのオブジェクトデータの処理技術に関し、より詳しくは、オブジェクト画像をカオス的な動きで表現する上で好適となる画像処理方法及び画像処理装置に関する。「オブジェクト」とは表現対象となる物体をいう。この明細書では、不規則に動く生物やそれに類する物体を「オブジェクト」とする。
【0002】
【発明の背景】
CGにより表現されるオブジェクト画像がどのように動くかは、CGの設計者が製作段階で決めたプログラムに従って決められる。この種のプログラムでは、例えば、公知のモーションキャプチャを用いたり、物理法則を用いた数値計算を行うことによって、オブジェクト画像の動きを決めている。
オブジェクトは、通常は一定の論理で動くため、その動きがある程度予想される。そのために、上記のようなプログラムによってその動きを容易に決めることができ、それを表現したオブジェクト画像の動きも自然な動きとなる。
しかし、予期しない動きをするオブジェクト画像を表現しようとすると、プログラムの設計によっては、動きが不自然なオブジェクト画像になってしまったりする場合がある。特に、複数のオブジェクトが相互に関連を持ちながら、かつ全体として合目的に動くような生物的な動きを表現しようとすると、それを実現するためのプログラムの設計が著しく困難となる。このようなプログラムを制作した場合であっても、それにより行われる画像処理では、大量のデータ処理が必要となり、処理時間がかかる。そのため、リアルタイム処理が要求されるビデオゲームなどで上記の生物的な動きの表現を行うことは、通常は不向きとなる。
【0003】
しかしながら、最近のビデオゲームなどでは、ユーザの興趣性を高めるために、論理に裏付けられない、より自然で自由な、ユーザが予想できないような動きをするオブジェクト画像の表現が求められている。
このような表現を可能にするために、乱数などによるゆらぎ変数を用いる手法自体は、画像処理の分野では、従来より知られていた。すなわち、ゆらぎ変数を用いてオブジェクトの位置、形状などの状態を表す状態変数値を求め、これによってカオス的な振る舞いを表現していた。この振る舞いが自然に見えるかどうかは、ゆらぎ変数から得られる状態変数値が所定の範囲内にあるか否かでチェックしており、状態変数値が所定の範囲内であればその状態変数値を採用し、所定の範囲外であれば不自然な振る舞いになるため、その状態変数値を採用せずに、もう一度ゆらぎ変数を用いて状態変数値を求めていた。
【0004】
前述のように、複数のオブジェクトが相互に関連を持ちながら、かつ全体として合目的に動作するような動きを表現する場合は、データ処理が大量になることから、複数のプロセッサによりデータ処理を行うマルチプロセッサ方式を採用することが考えられる。
マルチプロセッサ方式を採用する場合、物理的に接続されたプロセッサ間の状態変数値の送受は容易であるが、すべてのプロセッサ間で相互に状態変数値を送受する必要がある場合には、状態変数値の送受に時間がかかるために、高速処理が出来ない。
例えば、一つのプロセッサで一つのオブジェクトの状態変数値を求める場合、直接接続されたプロセッサ間では、状態変数値を、相互に直接送受することが容易なので、オブジェクト間に相互に関連を持たせることが容易であるが、しかし、直接接続されていないプロセッサ間では、状態変数値を直接送受することができない。この場合は、送受しようとするプロセッサに接続されている他のプロセッサを経由して状態変数値を送受することになるため、高速に処理することができない。
すべてのプロセッサ間をクロスバー接続することにより、状態変数値の送受をマルチプロセッサ全体で高速に行うことも可能であるが、この場合、必要なハードウェアが膨大になり、現実的ではない。
【0005】
本発明の主たる課題は、オブジェクト画像の動きを、より自然に表現できるようにする画像処理方法及び装置を提供することにある。
本発明の他の課題は、複数のオブジェクトが相互に関連を持ちながら全体として合目的に動くようなオブジェクトの動きを高速に表現できるようにする画像処理方法及び装置を提供することにある。
本発明の他の課題は、上記の画像処理装置をコンピュータシステムにおいて実現するためのコンピュータプログラムを提供することにある。
【0006】
【課題を解決するための手段】
本発明が提供する画像処理方法は、オブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定個数発生させ、所定の条件値との一致度合いが最も高い第1候補状態変数値を前記状態変数値として決定し、この決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成することを特徴とする方法である。
時点毎に最適な第1候補状態変数値に基づいて状態変数値を決定し、これに基づいてオブジェクトデータを生成するので、上記の条件値としてオブジェクト画像の動きを規定しておくことで、自由な動きのオブジェクト画像を容易に表現することができるようになる。
【0007】
前記所定個数の候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に発生させ、前記状態変数値を時点毎に時系列に決定していくことにより、前記オブジェクト画像をカオス的に表現するための前記オブジェクトデータを容易に生成できるようになる。
【0008】
本発明の他の画像処理方法は、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において実行される方法であって、
前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を発生させ、この候補状態変数値を前記コントローラへ個別的に送出し、
前記候補状態変数値を受け取ったコントローラが、その候補状態変数値を含む参照用数値をすべてのプロセッサに同時期に一斉送出し、
前記候補状態変数値を送出したプロセッサが、前記コントローラから受け取った前記参照用数値と当該候補状態変数値との相対関係を定量化してその結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成することを特徴とする。
「参照用数値」とは、プロセッサから送られた一又は複数の候補状態変数値をコントローラからすべてのプロセッサに転送し、各プロセッサにおいて上記相対関係を判断する場合の参照用とする数値をいう。あるプロセッサから一つの候補状態変数値のみが送られた場合、通常は参照用数値とその候補状態変数値は同じ数値となる。候補状態変数値が複数の場合には、平均値を参照用数値とすることができる。
【0009】
参照用数値により、自プロセッサで発生した候補状態変数値を他のすべてのプロセッサに対して容易に送れるようになる。つまり、従来、直接接続されたプロセッサ以外のプロセッサに処理結果等を送るときには、直接接続されたプロセッサ間を経由して送る必要があるために、例えば、複数のプロセッサのすべてに処理結果を送るときなどは多大な時間を要した。しかし、コントローラによりすべてのプロセッサの処理結果を取り込み、これを参照用数値として各プロセッサに一斉に送出可能としたことで、すべてのプロセッサに、従来より短時間で、処理結果を送ることが可能となる。
また、他のプロセッサで発生した候補状態変数値を受け取ることも容易に可能となる。そのために、自プロセッサで発生した候補状態変数値を、他のプロセッサで発生した候補状態変数値と比較して、自プロセッサで発生した候補状態変数値の妥当性を容易に確認可能となる。これにより、例えば、複数のオブジェクトが相互に関連を持ちながら全体として合目的に動くような動作が高速に表現できるようになる。
【0010】
本発明の他の画像処理方法は、複数のプロセッサ及び各プロセッサとの間で双方向の通信を行うコントローラを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において実行される方法であって、
前記複数のプロセッサの少なくとも一つが、それぞれ前記オブジェクト画像の状態を定める状態変数値の候補となる候補状態変数値を所定個数発生させるとともに所定の条件値との一致度合いが最も高い第1候補状態変数値を前記コントローラに個別的に送出し、
前記第1候補状態変数値を受け取った前記コントローラが、その第1候補状態変数値を含む参照用数値をすべてのプロセッサに同時期に一斉送出し、
前記第1候補状態変数値を送出したプロセッサが、前記コントローラから受け取った参照用数値と前記第1候補状態変数値との相対関係を定量化してその結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて前記オブジェクトデータを生成することを特徴とする。
最適な候補状態変数値(第1候補状態変数値)に基づいて状態変数値を決定し、これに基づいてオブジェクトデータを生成するので、上記の条件値としてオブジェクト画像の動きを規定しておくことで、自由な動きのオブジェクト画像を容易に表現することができるようになる。
また、この方法では、第1候補状態変数値を、コントローラにより、すべてのプロセッサに短時間で送ることが可能なので、複数のオブジェクトが相互に関連を持ちながら全体として合目的に動くようなオブジェクトの動きを高速に表現できる。
【0011】
前記複数のプロセッサの少なくとも一つに、所定範囲で変化可能なゆらぎ変数を発生させ、そのゆらぎ変数に基づいて前記候補状態変数値を発生させるようにすることで、前記オブジェクト画像をカオス的に表現するための前記オブジェクトデータを容易に生成できるようになる。
参照用数値は、候補状態変数値の他に、上記のようなゆらぎ変数値を含んでもよい。つまり、前記ゆらぎ変数を発生させたプロセッサが、そのゆらぎ変数を前記コントローラに個別的に送出し、
前記ゆらぎ変数を受け取った前記コントローラが、受け取ったすべてのゆらぎ変数の平均値をとり、この平均値を前記ゆらぎを送出したすべてのプロセッサに一斉送出し、
前記平均値を受け取ったプロセッサが、その平均値と前記発生させたゆらぎ変数とに基づいて前記候補状態変数値を発生させる。
これにより、候補状態変数値を発生させるためのゆらぎ変数値に、他のプロセッサで発生したゆらぎ変数値の影響を反映させることができるようになる。これにより、例えば、個々のオブジェクトはそれぞれ独立して動作しているように見えても、全体としては一つの群のように動作する画像を得ることができる。
オブジェクトデータを生成するこれらの装置では、前記複数のプロセッサを一以上のグループに分け、一つのグループ内のプロセッサの各々が決定した前記候補状態変数値の一つを当該グループに属するすべてのプロセッサで用いる共通の状態変数値とするようにしてもよい。これは、一つのプロセッサで複数の候補状態変数値を発生させて、この中から最も条件値との一致度合いが高い第1候補状態変数値を状態変数値とする場合と同様に、自由な動きのオブジェクト画像を容易に表現することができるようになるが、グループに属するプロセッサで候補状態変数値を発生させるために、一つのプロセッサで行うよりも高速な処理が可能となる。
【0012】
本発明の画像処理装置は、オブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に発生させる手段と、前記発生した所定個数の候補状態変数値のうち所定の条件値との一致度合いが最も高い第1候補状態変数値を前記状態変数値として時点毎に時系列に決定していき、各時点で決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成する手段とを備える。これにより、前記オブジェクト画像をカオス的に表現する。
【0013】
本発明の他の画像処理装置は、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を発生させる手段と、発生した候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、前記受け取った参照用数値と前記発生した候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備える画像処理装置である。
【0014】
本発明の他の画像処理装置は、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定個数発生させるとともに所定の条件値との一致度合いが最も高い第1候補状態変数値を特定する手段と、特定した前記第1候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記第1候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、前記受け取った参照用数値と前記特定した第1候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備える画像処理装置である。
【0015】
本発明のコンピュータプログラムは、コンピュータシステムをオブジェクト画像の状態を表現するためのオブジェクトデータを生成する画像処理装置として動作させるためのコンピュータプログラムであって、前記画像処理装置が、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に発生させる手段と、前記発生した所定個数の候補状態変数値のうち所定の条件値との一致度合いが最も高い第1候補状態変数値を前記状態変数値として時点毎に時系列に決定していき、各時点で決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成する手段とを備え、これにより、前記オブジェクト画像をカオス的に表現するものである。
【0016】
本発明の他のコンピュータプログラムは、コンピュータシステムを画像処理装置として動作させるためのコンピュータプログラムであって、前記画像処理装置が、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成するものであり、前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を発生させる手段と、発生した候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、前記受け取った参照用数値と前記発生した候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えるものである。
【0017】
本発明の他のコンピュータプログラムは、コンピュータシステムを画像処理装置として動作させるためのコンピュータプログラムであって、前記画像処理装置が、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成するものであって、前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定個数発生させるとともに所定の条件値との一致度合いが最も高い第1候補状態変数値を特定する手段と、特定した前記第1候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記第1候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、前記受け取った参照用数値と前記特定した第1候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えるものである。
【0018】
【発明の実施の形態】
以下に、本発明の実施形態を図面を参照しつつ詳細に説明する。
【0019】
<全体構成>
図1は、本発明の画像処理装置を、マルチプロセッサシステムに適用した場合の全体の構成図の一例である。
このマルチプロセッサシステム1は、影響コントローラ10と、複数のセルプロセッサ20と、複数のWTA(winner take all)・総和回路30と、を含んで構成されている。
影響コントローラ10とすべてのセルプロセッサ20とは、ブロードキャストチャネル(一斉送出可能な通信チャネル)により接続されている。
本発明のコントローラは、影響コントローラ10とWTA・総和回路30とにより具現されている。
【0020】
このマルチプロセッサシステム1は、各セルプロセッサ20のデータ処理結果であり、ある時点におけるオブジェクトの状態を表現するための状態変数値を影響コントローラ10により管理して、影響コントローラ10からすべてのセルプロセッサ20の状態変数値を、参照用数値の一例として各セルプロセッサ20へブロードキャストにより送信するものである。ブロードキャストにより状態変数値を各セルプロセッサ20へ送信するので、各セルプロセッサ20は、高速に他のセルプロセッサ20により発生された状態変数値を入手可能である。
状態変数値は、各セルプロセッサ20により行われるデータ処理の結果として得られる値であり、CGによるオブジェクトの位置座標、形状、色等の状態を表す。状態変数値は、乱数などのランダムに変化するゆらぎ変数を用いて発生することにより、カオス的なゆらぎをもつ変数となる。ゆらぎ変数は、例えば以下の式により得られる値である。
【数1】
Rk+1=4*Rk*(1−Rk)
0<Rk<1
Rk:ゆらぎ変数
【0021】
ブロードキャストチャネルは、影響コントローラ10と複数のセルプロセッサ20との間の伝送経路であり、アドレスを送るアドレスバスと、各セルプロセッサ20のデータ処理結果である状態変数値などのデータを送るデータバスとを含んで構成される。アドレスには、個々のセルプロセッサ20を特定するためのセルアドレスと、すべてのセルプロセッサ20を対象とするブロードキャストアドレスとがある。セルアドレスは、メモリ上のアドレス(物理アドレス又は論理アドレス)に対応しており、セルプロセッサ20のデータ処理結果は、常に、当該セルプロセッサ20を示すセルアドレスに対応するアドレスに記憶される。各セルプロセッサ20には、各々を識別するための識別情報としてID(identification)が付されている。セルアドレスはこのIDにも対応する。これにより、例えば、送信されるデータがどのセルプロセッサ20により導出されたかを、セルアドレスにより表すことができる。
【0022】
複数のWTA・総和回路30は、図1に示すように接続される。即ち、WTA・総和回路30は、セルプロセッサ20側を一段目としてピラミッド状に接続される。一段目のWTA・総和回路30の入力端の各々には2つのセルプロセッサ20が接続され、出力端は二段目のWTA・総和回路30の入力端に接続される。二段目以降は、入力端の各々に下位の段の2つのWTA・総和回路30の出力が接続され、出力端に上位の段のWTA・総和回路30の入力端が接続される。最上段のWTA・総和回路30は、入力端の各々に下段の2つのWTA・総和回路30の出力端が接続され、出力端は影響コントローラ10に接続される。
【0023】
次に、影響コントローラ10、セルプロセッサ20、WTA・総和回路30のそれぞれについて詳細に説明する。
【0024】
<影響コントローラ>
影響コントローラ10は、ブロードキャストチャネルによりすべてのセルプロセッサ20にデータをブロードキャストするとともに、各セルプロセッサ20の状態変数値を受信して保持する。図2に影響コントローラ10の構成例を示す。影響コントローラ10は、マルチプロセッサシステム1全体の動作を制御するCPU(Central Processor Unit)コア101と、SRAM(Static Random Access Memory)などの書き換え可能なメインメモリ102と、DMAC(Direct Memory Access Controller)103とがバスB1で接続されて構成される。バスB1には、最上段のWTA・総和回路30の出力端及びハードディスクや可搬性メディア等の外部メモリも接続される。
【0025】
CPUコア101は、起動時に外部メモリから起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メインメモリ102から読み出したデータに基づいて、各セルプロセッサ20に対してブロードキャストするブロードキャストデータ(参照用数値)を生成する。ブロードキャストデータは、例えば、状態変数値と当該状態変数値を算出したセルプロセッサ20を示すセルアドレスとの組からなる、1又は複数組のペアデータである。
また、各セルプロセッサ20が状態変数値を発生させる際に用いる所定の条件となる拘束条件を生成する。拘束条件とは、例えば、セルプロセッサ20で発生させる状態変数値が取り得る値の範囲を指定する条件である。拘束条件値は、例えば、各セルプロセッサ20に固定した値であったり、各セルプロセッサ20より発生された1サイクル前の状態変数値から導出する。
メインメモリ102は、各セルプロセッサ20の状態変数値などのデータを保存するものであり、マルチプロセッサシステム1全体の共有メモリとして用いられる。状態変数値は、当該状態変数値を算出したセルプロセッサ20のセルアドレスに応じたメインメモリ102のアドレスに保存される。
DMAC103は、メインメモリ102と各セルプロセッサ20との間のダイレクトメモリアクセス転送制御を行う。例えば、各セルプロセッサ20に対しては、ブロードキャストチャネルを介して、ブロードキャストデータをブロードキャストする。また、各セルプロセッサ20のデータ処理結果を個別に取得して、メインメモリ102に保存する。
【0026】
<セルプロセッサ>
各セルプロセッサ20は、ブロードキャストデータの中から必要となるデータを取捨選択してデータ処理を行い、データ処理の終了時に、その旨をWTA・総和回路30へ報告する。データ処理の結果である状態変数値を、影響コントローラ10からの指示により、影響コントローラ10送出する。各セルプロセッサ20は、図示しない共有メモリを介してカスケード接続される。各セルプロセッサ20は、データ処理を同期的なクロックで行ってもよく、各々異なるクロックで行ってもよい。図3にセルプロセッサ20の構成例を示す。
セルプロセッサ20は、セルCPU201と、入力バッファ202と、出力バッファ203と、WTAバッファ204と、プログラムコントローラ205と、命令メモリ206と、データメモリ207と、を含んで構成される。
【0027】
セルCPU201は、プログラマブルな浮動小数点演算器を備えたプロセッサであり、セルプロセッサ20内の動作を制御して、データ処理を行うものである。セルCPU201は、影響コントローラ10からブロードキャストされたブロードキャストデータを入力バッファ202を介して取得し、ペアデータのセルアドレスにより自己が行うべき処理に必要なデータか否かを判断して、必要であればデータメモリ207の対応するアドレスに状態変数値を書き込む。また、データメモリ207から状態変数値を読み出してデータ処理を行い、発生した状態変数値を出力バッファ204に書き込み、WTA・総和回路30にデータ処理の終了を示すデータを送る。
【0028】
入力バッファ202は、影響コントローラ10からブロードキャストされたブロードキャストデータを保持するものである。保持されたブロードキャストデータは、セルCPU201からの要求により、セルCPU201へ送られる。
出力バッファ203は、セルCPU201の状態変数値を保持するものである。保持された状態変数値は、影響コントローラ10からの要求により、影響コントローラ10へ送信される。
入力バッファ202及び出力バッファ203は、この他に制御用のデータ等の送受を行ってもよい。
WTAバッファ204は、セルCPU201によるデータ処理の終了時に、セルCPU201からデータ処理の終了を示すデータを受信して、これをWTA・総和回路30へ送信することにより、データ処理の終了をWTA・総和回路30に報告するものである。データ処理の終了を示すデータには、例えば、自セルプロセッサ20のIDと、出力バッファ203に保存された状態変数値が影響コントローラ10へ読み取られるときの優先度を決める優先度データとが含まれる。
【0029】
プログラムコントローラ205は、セルプロセッサ20の動作を規定するプログラムを影響コントローラ10から取り込むものである。セルプロセッサ20の動作を規定するプログラムには、セルプロセッサ20で実行されるデータ処理のためのプログラムや、当該セルプロセッサ20で処理に必要なデータを決めるデータ選択プログラム、処理結果が影響コントローラ10へ読み取られるときの優先度を決める優先度決定プログラムなどがある。
命令メモリ206は、プログラムコントローラ205により取り込んだプログラムを保存するものである。保存したプログラムは、必要に応じてセルCPU201に読み込まれる。
【0030】
データメモリ207は、セルプロセッサ20において処理されるデータを保存するものである。セルCPU201により必要と判断されたブロードキャストデータが書き込まれる。ブロードキャストデータは、セルアドレスに応じたアドレスに保存される。また、本実施形態では、候補状態変数値及び比較値の組を一時保存すると共に、新たな状態変数値が決定すると、新たな状態変数値が所定のアドレスに書き込まれる。
また、本実施形態ではデータメモリ207の一部は共有メモリを介して隣接するセルプロセッサ20に繋がっており、1サイクル毎に隣接するセルプロセッサ20とデータの送受が可能となっている。
【0031】
セルCPU201には、コンピュータプログラムを実行することによって、図4に示すように、ゆらぎ生成部2011、候補状態変数値生成部2012、比較値生成部2013、比較部2014等の機能ブロックが形成される。このコンピュータプログラムは、命令メモリ206に保存されており、プログラムコントローラ205を介して影響コントローラ10から送られたものである。
【0032】
ゆらぎ生成部2011は、例えば数式1などによりゆらぎ変数を発生するものである。発生したゆらぎ変数は、候補状態変数値生成部2012へ送られる。
候補状態変数値生成部2012は、ゆらぎ変数に基づいて状態変数値の候補である候補状態変数値を生成するものである。生成した候補状態変数値は、比較値生成部2013へ送られる。候補状態変数値は、所定の条件を満たすことにより状態変数値とされる。
比較値生成部2013は、候補状態変数値生成部2012により発生した候補状態変数値とブロードキャストデータから取捨選択した状態変数値とにより所定の演算を行って算出した値と、外部から入力される所定の条件値である拘束条件値とを比較して、比較値を導出する。比較値は、候補状態変数値が、現時点のセルプロセッサ20の状態変数値としてどの程度適しているかを表す値である。比較値は、例えば、発生した候補状態変数値と取捨選択した状態変数値とから算出される値と、拘束条件値との差分値である。候補状態変数値と比較値とを組にして、データメモリ207に保存する。また、以上のようにして生成される候補状態変数値と比較値の組を計数する。拘束条件値は、例えば、命令メモリ206を経由して、影響コントローラ10から取り込む。
比較部2014は、複数の比較値から最適と判断される比較値を検出する。最適と判断される比較値とは、例えば、比較値が、候補状態変数値と取捨選択した状態変数値とから算出される値と、拘束条件値との差分値である場合、最小の比較値ということになる。最適な比較値を検出すると、WTAバッファ204へデータ処理の終了を示すデータを送信する。また、最適と判断した比較値と組になる候補状態変数値を、自セルプロセッサ20の新たな状態変数値として、データメモリ207の所定のアドレスに保存し、他の候補状態変数値及び比較値を消去する。
【0033】
<WTA・総和回路>
複数のWTA・総和回路30は、各セルプロセッサ20から送られるデータ処理の終了を示すデータにより、影響コントローラ10がセルプロセッサ20から状態変数値を取り込む順序を決めて影響コントローラ10へ報告する。
【0034】
図5にWTA・総和回路30の構成例を示す。
各WTA・総和回路30は、2つの入力レジスタA、B(以下、第1入力レジスタ301、第2入力レジスタ302)と、切換器303と、比較器304と、加算器305と、出力レジスタ306と、を含んで構成される。
【0035】
第1入力レジスタ301及び第2入力レジスタ302は、それぞれ整数レジスタ及び浮動小数点レジスタを備えている。整数レジスタには、例えばセルプロセッサ20から送られるデータ処理の終了を示すデータのうち、IDデータが書き込まれ、浮動小数点レジスタには、例えば優先度データが書き込まれる。
【0036】
切換器303は、比較器304及び加算器305のいずれか一方を活性化する。具体的には、動作モードに従って一方のみを使用可能とする。動作モードは、例えば影響コントローラ10からの指示により決められる。動作モードについては、後述する。
比較器304は、第1入力レジスタ301及び第2入力レジスタ302の各々の浮動小数点レジスタが保持する浮動小数点値の比較を行い、大きい方(又は小さい方)の値と、それに付随する整数とを、出力レジスタ306へ書き込む。
加算器305は、第1入力レジスタ301及び第2入力レジスタ302の各々の浮動小数点レジスタが保持する浮動小数点値の和を算出し、算出結果を出力レジスタへ書き込む。
出力レジスタ306は、第1入力レジスタ301及び第2入力レジスタ302とほぼ同じに構成される。つまり、整数レジスタ及び浮動小数点レジスタを備えている。整数レジスタには、例えばIDデータが書き込まれ、浮動小数点レジスタには、例えば優先度データが書き込まれる。
【0037】
WTA・総和回路30は、以下に説明する3つの動作モードをもつ。
【0038】
最大値(WTA)モード:
切換器303により、比較器304が活性化される。比較器304は、第1入力レジスタ301及び第2入力レジスタ302の各々の浮動小数点レジスタが保持する浮動小数点値A、Bの比較を行い、大きい方(又は小さい方)の値と、それに付随する整数値を出力レジスタ306に書き込む。出力レジスタ306への書き込みが終了すると、第1入力レジスタ301及び第2入力レジスタ302をクリアする。出力レジスタ306の内容は、上位の段のWTA・総和回路30の入力レジスタに書き込まれる。このとき、書き込み先の入力レジスタがクリアされていないときは、書き込みがストールして、そのサイクルでは書き込みを行わず、次のサイクルで書き込むようにする。
【0039】
加算モード:
切換器303により、加算器305が活性化される。加算器305により、第1入力レジスタ301及び第2入力レジスタ302の各々の浮動小数点レジスタが保持する浮動小数点値A,Bの和を算出し、算出結果を出力レジスタ306に書き込む。出力レジスタ306の内容は、上位の段のWTA・総和回路30の入力レジスタに書き込まれる。
【0040】
近似ソートモード:
切換器303により、比較器304が活性化される。比較器304は、第1入力レジスタ301及び第2入力レジスタ302の各々の浮動小数点レジスタが保持する浮動小数点値A、Bの比較を行い、大きい方(又は小さい方)の値と付随する整数値を出力レジスタ306に書き込む。その後、出力レジスタ306に書き込まれた値を保持していた入力レジスタのみをクリアする。出力レジスタ306の内容を、上位の段のWTA・総和回路30の入力レジスタに書き込む。書き込み先の入力レジスタがクリアされていない場合は、書き込みがストールし、そのサイクルでは書き込みを行わない。ただし、下位の段のWTA・総和回路30の出力レジスタ306からの書き込み動作は行われる。
近似ソートモードにより、影響コントローラ10が最上段のWTA・総和回路30から受け取るデータは、浮動小数点値が多きい順或いは小さい順にソートされたものとなる。
【0041】
なお、各モードに入る前には、すべてのWTA・総和回路30の第1入力レジスタ301、第2入力レジスタ302及び出力レジスタ306がクリアされる。
【0042】
<実施例1>
この実施例では、セルプロセッサ20毎に設定される拘束条件値で状態変数値を更新する場合について説明する。図6は、このような処理のフローチャートである。
この例では、複数のオブジェクトが互いの距離を一定に保ちながら運動するようなアニメーションを作成する場合について説明する。オブジェクトの位置を表す位置座標を、X、Y、Zの直交座標系で表し、一個のセルプロセッサでは、一個のオブジェクトの位置座標を算出するものとする。i番目のセルプロセッサで処理されるkサイクル目の位置座標を、(Xi,k、Yi,k、Zi,k)と表す。この場合、位置座標が状態変数値である。
【0043】
影響コントローラ1は、各セルプロセッサ20の状態変数値である各オブジェクトの位置座標を、メインメモリ102から読み出してすべてのセルプロセッサ20へブロードキャストする(ステップS101)。各セルプロセッサ20では、ブロードキャストされた位置座標から、自プロセッサで必要となる位置座標のみを取捨選択する(ステップS102)。例えば、ブロードキャストされた位置座標のうち、自プロセッサが処理するオブジェクトに近接するオブジェクトについての処理を行うプロセッサについてのセルアドレスが付された位置座標(Xj,k、Yj,k、Zj,k)を選択する。
【0044】
次に各セルプロセッサ20は、X、Y、Z座標の各々について、ゆらぎ変数を発生する(ステップS103)。ゆらぎ変数は、例えば以下のような式により発生する。
【数2】
Ai,k+1 = 4 * Ai,k * (1−Ai,k)
Bi,k+1 = 4 * Bi,k * (1−Bi,k)
Ci,k+1 = 4 * Ci,k * (1−Ci,k)
0<Ai,k<1 、 0<Bi,k<1 、0<Ci,k<1
【0045】
このようにして発生したゆらぎ変数を用いて、候補状態変数値Xi,k+1、Yi,k+1、Zi,k+1を発生する(ステップS104)。例えば、以下のような式により候補状態変数値を発生する。この式では、ゆらぎ変数Ai,k+1、Bi,k+1、Ci,k+1と、1サイクル前の状態変数値Xi,k、Yi,k、Zi,kとの和により候補状態変数値Xi,k+1、Yi,k+1、Zi,k+1を発生している。
【数3】
Xi,k+1 = Ai,k+1 + Xi,k
Yi,k+1 = Bi,k+1 + Yi,k
Zi,k+1 = Ci,k+1 + Zi,k
【0046】
各セルプロセッサ20は、発生した候補状態変数値(Xi,k+1、Yi,k+1、Zi,k+1)及び取捨選択した状態変数値(Xj,k、Yj,k、Zj,k)から得られる値と、拘束条件値Lとから比較値Kを算出する。例えば以下のような式により、比較値Kを算出する(ステップS105)。比較値Kとそのときに用いた候補状態変数値とは、一つの組としてデータメモリ207に保存される。また、比較値Kと候補状態変数値との組の個数をカウントする(ステップS106)。
【数4】
K=SQRT((Xj,k−Xi,k+1)^2
+Yj,k−Yi,k+1)^2
+Zj,k−Zi,k+1)^2)−L
拘束条件値Lは、個々のセルプロセッサ20に固有の数値であり、例えば、当該セルプロセッサで位置座標の計算を行う対象のオブジェクトが、他のオブジェクトとの間で保つ一定の距離である。拘束条件値Lは、例えば、プログラムに含ませて、影響コントローラ10から各セルプロセッサ20へ予め入力しておく。拘束条件値Lは、設計時に予め設計者により決められたり、外部からの入力により決まる数値である。
比較値Kは、i番目のセルプロセッサで処理されたk+1サイクル目の位置座標とj番目のセルプロセッサで処理されたkサイクル目の位置座標との距離と、拘束条件値Lとの差である。
Xj,k、Yj,k、Zj,kは、取捨選択した状態変数値でありj番目のセルプロセッサ20のkサイクル目の位置座標を示す状態変数値を表す。
【0047】
セルプロセッサ20は、候補状態変数値及び比較値Kの組が所定の個数に達したか否かを判定する(ステップS107)。
判定の結果、所定の個数に達していない場合は、ステップS103に戻って、再びゆらぎ変数を発生して、候補状態変数値及び比較値Kの組を発生する(ステップS107:N)。
所定の個数に達している場合は(ステップS107:Y)、絶対値が最も小さい比較値Kを検出し(ステップS108)、この比較値Kと組となる候補状態変数値を特定する(ステップS109)。特定した候補状態変数値が、このセルプロセッサ20の新しい状態変数値となる。新しい状態変数値により、オブジェクトの新しい位置座標が決定する。
新しい状態変数値を決定すると、その旨を示す終了通知をWTA・総和回路30に送信する(ステップS110)。終了通知は、自プロセッサを示すIDを含む通知である。
【0048】
WTA・総和回路30は、終了通知をセルプロセッサ20から受信すると、近似ソートモードで動作して、受信した順に終了通知を影響コントローラ10へ送信する。影響コントローラ10は、終了通知により新しい状態変数値が決定したセルプロセッサ20を特定して、該当するセルプロセッサ20から新しい状態変数値を取得して、メインメモリ102が保持する該当するセルプロセッサ20の状態変数値を更新する(ステップS111)。
引き続き、次のサイクルにおけるオブジェクトの位置座標の導出を行う。そのために、ステップS101からの一連の処理を再び行う。このような処理を続けて行うことにより、オブジェクトが連続的に移動する画像が作成される。一連の処理は、例えば、マルチプロセッサシステム1に対して外部から終了の命令があるまで続けられる(ステップS112)。
【0049】
ゆらぎ変数を用いてオブジェクトの状態変数値(位置座標)を決定するために、カオス的な表現が可能となって、より自然な動作が可能となる。また、候補状態変数値及び比較値Kを所定の個数導出し、この中から最適な比較値Kと組となる候補状態変数値を選択して状態変数値を決めるので、ゆらぎ変数を用いている場合でも、オブジェクトが互いの距離を一定に保ちながら運動するという条件を満たすアニメーションが提供可能である。
なお、状態変数値及び比較値Kを導出して、比較値Kが拘束条件値Lを満たす場合に、所定個数の候補状態変数値を発生させずに、そのままこのときの候補状態変数値を新たな状態変数値としてもよい。この場合、拘束条件値Lを所定の範囲で表すようにするとよい。
ここで、拘束条件式に用いられるj番目のセルプロセッサ20が、i番目のセルプロセッサ20と共有メモリを介して接続されている場合は、影響コントローラ10によるブロードキャストによりj番目のセルプロセッサ20の状態変数値を取得する必要はなく、共有メモリを介して取得するようにしてもよい。
【0050】
<実施例2>
この実施例では、セルプロセッサ20が、ゆらぎ変数計算時に他のセルプロセッサからの影響を反映させることにより、カオス同期現象によるゆらぎ変数を発生する場合について説明する。図7は、このような処理のフローチャートである。
なお、この実施例は、実施例1に示す処理と、ゆらぎ変数計算(ステップS103)の工程のみが異なるので、この部分についてのみ説明する。
【0051】
各セルプロセッサ20は、ブロードキャストデータからの状態変数値の取捨選択が終了すると(ステップS102)、ゆらぎ変数Ai,tmp、Bi,tmp、Ci,tmpを発生する(ステップS1031)。ゆらぎ変数は、例えば以下の式により発生する。
【数5】
Ai,tmp = 4 * Ai,k * (1−Ai,k)
Bi,tmp = 4 * Bi,k * (1−Bi,k)
Ci,tmp = 4 * Ci,k * (1−Ci,k)
ゆらぎ変数の発生が終わると、WTA・総和回路30へ、発生したゆらぎ変数を送信する(ステップS1032)。
【0052】
WTA・総和回路30は、各セルプロセッサ20からゆらぎ変数を受信すると、加算モードで動作して、ゆらぎ変数の総和を求め、これを影響コントローラ10へ送信する(ステップS1033、S1034)。
【0053】
影響コントローラ10は、ゆらぎ変数の総和を受信して、これをセルプロセッサの個数で除算することにより、ゆらぎ変数の平均値AveA,k、AveB,k、AveC,kを算出する(ステップS1035)。算出したゆらぎ変数の平均値は、すべてのセルプロセッサ20にブロードキャストされる(ステップS1036)。
【0054】
各セルプロセッサ20は、ブロードキャストされたゆらぎ変数の平均値を用いてカオス同期計算を行う(ステップS1037)。カオス同期計算は、例えば以下のような式により行う。
【数6】
Ai,k+1 = α*Ai,tmp + β*AveA,k + γ*Ai+1,tmp
Bi,k+1 = α*Bi,tmp + β*AveB,k + γ*Bi+1,tmp
Ci,k+1 = α*Ci,tmp + β*AveC,k + γ*Ci+1,tmp
α+β+γ=1
【0055】
カオス同期計算により求められたゆらぎ変数には、ステップS1031で発生したゆらぎ変数、複数のセルプロセッサ20の各々で発生したゆらぎ変数の平均値、隣接するセルプロセッサで発生したゆらぎ変数が用いられる。つまり、カオス同期計算により求められるゆらぎ変数には、他のセルプロセッサで発生したゆらぎ変数が影響する。なお、隣接するセルプロセッサで発生したゆらぎ変数は、ゆらぎ変数の平均値とともにブロードキャストチャネルを介して影響コントローラ10から受け取るようにしてもよいが、共有メモリを介して、直接、隣接するセルプロセッサから受け取ってもよい。
各セルプロセッサ20は、このようにして求めた、カオス同期計算を施したゆらぎ変数Ai,k+1、Bi,k+1、Ci,k+1を用いて、候補状態変数値を発生する(ステップS104)。
【0056】
α、β、γの値を制御することにより、指定した一部のセルのゆらぎ変数を同期させたり、ずらしたりすることで部分的なセルの群のように見せることが可能となる。
ゆらぎ変数自体は、各セルプロセッサ20において独自に発生されるものである。そのために、ゆらぎ変数から求められる候補状態変数値も、各セルプロセッサ20で、無関係に計算される。そこで、この実施例で説明するように複数のセルプロセッサ20のゆらぎ変数の平均値を計算して、これを用いる。各プロセッサのゆらぎ変数の成分をフィードバックさせることで、カオスの同期計算が可能となる。
カオスの同期現象を用いることにより、オブジェクトが、より実際の生物に近い動作を行うアニメーションを提供できる。つまり、複数のオブジェクトが群をなして動作するような動きが可能となり、全体として、生物のような動きとなる。
【0057】
<実施例3>
この実施例では、複数のセルプロセッサ20で同じ拘束条件値により状態変数値を更新する場合について説明する。図8は、このような処理のフローチャートである。
セルプロセッサ20は、例えばN個で一つのグループをなしている。一つのグループにおいて、グループをなすN個のセルプロセッサ20のそれぞれで候補状態変数値を導出して、その中から最適な状態変数値を選択する。
【0058】
影響コントローラ1は、各セルプロセッサ20の状態変数値を、メインメモリから読み出してすべてのセルプロセッサ20へブロードキャストする(ステップS201)。各セルプロセッサ20では、ブロードキャストされた状態変数値から、自プロセッサで必要となる状態変数値のみを取捨選択する(ステップS202)。一つのグループをなすN個のセルプロセッサ20では、同じ状態変数値を取捨選択する。
【0059】
各セルプロセッサ20は、ゆらぎ変数を発生する(ステップS203)。発生したゆらぎ変数から候補状態変数値を発生する(ステップS204)。発生した候補状態変数値及び取捨選択した状態変数値から比較値Kを発生する(ステップS205)。ゆらぎ変数の発生、候補状態変数値の発生及び比較値Kの発生は、例えば、数式2、3、4により行う。
なお、一つのグループをなすセルプロセッサ20では、ゆらぎ変数、候補状態変数値、比較値Kを同じ数式により発生するが、ゆらぎ変数は、初期値を変えるなどして、各セルプロセッサ20で異なるゆらぎ変数を発生するようにする。
候補状態変数値は、データメモリ207及び出力バッファ203に保存される。比較値Kは、自セルプロセッサを示すIDと共にWTA・総和回路30へ送信される(ステップS206)。
【0060】
WTA・総和回路30は、最大値モードで動作し、一つのグループから送信されるN個の比較値KとIDとの組から、最適な比較値Kを選択し(ステップS207)、該当するIDを影響コントローラ10へ送信する。最適な比較値Kと組となるIDにより特定されるセルコントローラ20により発生された候補状態変数値が、このグループの新たな状態変数値となる。
影響コントローラ10は、WTA・総和回路30から送られたIDによりセルプロセッサ20を特定する。特定したセルプロセッサ20から候補状態変数値を取り込み、メインメモリ102の該当するアドレスの状態変数値を更新する(ステップS208)。
引き続き、次のサイクルにおける状態変数値の導出を行う。そのために、ステップS201からの一連の処理を再び行う。一連の処理は、例えば、マルチプロセッサシステム1に対して外部から終了の命令があるまで続けられる(ステップS209)。
【0061】
以上のような処理により、一つのセルプロセッサ20で候補状態変数値を複数発生して、その中から最適な状態変数値を選択する実施例1、2よりも、高速に最適な状態変数値を得ることが可能となる。
また、各セルプロセッサ20で実施例1のステップS103乃至ステップS109に示すような処理を行い、複数の候補状態変数値を発生して、この中から最適な状態変数値を検出し、さらに、各セルプロセッサ20内で最適とされた状態変数値の中から最適な状態変数値を検出するようにしてもよい。このようにすると、より最適な状態変数値を検出することができる。
【0062】
実施例1乃至3に示す処理は、一つのマルチプロセッサシステム1内で交互に行ってもよい。例えば、一つのセルプロセッサ20で、実施例1乃至3をそれぞれ1サイクルずつおこなうようにしてもよい。
これは、影響コントローラ10によって状態変数値のブロードキャストを行い、各セルプロセッサ20が、各自必要な状態変数値を取捨選択するようなマルチプロセッサシステムにおいて、各セルプロセッサ20により取捨選択される状態変数値を適宜調整することにより、容易に実現できる。
また、ゆらぎ変数として一様乱数を用い、拘束条件として物理的なエネルギー方程式を用いると、通常のモンテカルロ法と等価になる。
【0063】
図9は、以上のような本発明のオブジェクトデータ処理方法によるオブジェクトの動作を表す図である。複数のオブジェクトが、処理が進むにつれて、次第に統一性のある動作を行う様子を表している。
【0064】
各オブジェクトの拘束条件として、オブジェクト間の距離を設定し、この距離以内でオブジェクトが動作すると条件を決めて実施例1の方法を実行する。処理が進むにつれてオブジェクト間の距離を狭めていくと、オブジェクトは次第に集合するようになる。
これにより、図9に示すように、当初、画面全面に存在していた円又は楕円で表されるオブジェクトが、処理が進むにつれて次第に画面の左側に集まり、ついにはオブジェクトが一つに合わさるようになる画像が得られる。各オブジェクトを同じ色で表現すると、分離していたオブジェクトが、次第に集まって、最終的に一つのオブジェクトとなるような画像となる。
【0065】
ここで、実施例2の方法を実行する。つまり、オブジェクト同士で互いに動作に影響を与え合うようにする。これにより、例えば、ゆらぎ変数を用いているにもかかわらず、複数のオブジェクトが同じような動作をするようになる。
実施例1の方法と合わせて、複数のオブジェクトが、同じような動作で一箇所に集合するような画像が得られる。各オブジェクトで互いに影響を及ぼし合いながら動作するために、複数のオブジェクトが一つの物体として合目的に動作するような画像となる。
【0066】
各オブジェクトは、最適な状態変数値により位置が決められるので、自然な振る舞いで集合する画像となる。なお、実施例3の方法を実行すると、処理可能なオブジェクトの数は減少するが、実施例1と同様の処理が、より高速に実行可能となる。
【0067】
【発明の効果】
以上の説明から明らかなように、本発明によれば、従来手法に比べてより自然な動作を行うオブジェクト画像を表現でき、それを観る者の興趣性を高めることができる。また、本発明を、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有する装置に適用することにより、複数のオブジェクト画像が相互に関連しながら動く画像を高速に処理することが可能になる。
【図面の簡単な説明】
【図1】マルチプロセッサシステムの全体構成図。
【図2】影響コントローラの構成図。
【図3】セルプロセッサの構成図。
【図4】セルCPUの機能ブロック図。
【図5】WTA・総和回路の構成図。
【図6】実施例1のフローチャート
【図7】実施例2のフローチャート
【図8】実施例3のフローチャート
【図9】本発明により生成されるオブジェクトの状態遷移を示す例示図。
【符号の説明】
1 マルチプロセッサシステム
10 影響コントローラ
101 CPUコア
102 メインメモリ
103 DMAC
20 セルプロセッサ
201 セルCPU
2011 ゆらぎ生成部
2012 状態変数値生成部
2013 比較値生成部
2014 比較部
202 入力バッファ
203 出力バッファ
204 WTAバッファ
205 プログラムコントローラ
206 命令メモリ
207 データメモリ
30 WTA・総和回路
301 第1入力レジスタ
302 第2入力レジスタ
303 切換器
304 比較器
305 加算器
306 出力レジスタ

Claims (14)

  1. オブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を複数発生させ、
    複数の候補状態変数値から所定の条件値との一致度合いが最も高いものを前記状態変数値として決定し、
    この決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成することを特徴とする、
    画像処理方法。
  2. 前記複数の候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に発生させ、前記状態変数値を時点毎に時系列に決定していくことを特徴とする、
    請求項1記載の画像処理方法。
  3. 複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において実行される方法であって、
    前記複数のプロセッサの少なくとも一つが、前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定範囲で変化可能なゆらぎ変数に基づいて発生させ、この候補状態変数値を前記コントローラへ個別的に送出し、
    前記候補状態変数値を受け取ったコントローラが、その候補状態変数値を含む参照用数値をすべてのプロセッサに同時期に一斉送出し、
    前記候補状態変数値を送出したプロセッサが、前記コントローラから受け取った前記参照用数値と当該候補状態変数値との相対関係を定量化してその結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成することを特徴とする、
    画像処理方法。
  4. 複数のプロセッサ及び各プロセッサとの間で双方向の通信を行うコントローラを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置において実行される方法であって、
    前記複数のプロセッサの少なくとも一つが、それぞれ前記オブジェクト画像の状態を定める状態変数値の候補となる候補状態変数値を複数発生させるとともに、複数の候補状態変数値から所定の条件値との一致度合いが最も高い第1候補状態変数値を前記コントローラに個別的に送出し、
    前記第1候補状態変数値を受け取った前記コントローラが、その第1候補状態変数値を含む参照用数値をすべてのプロセッサに同時期に一斉送出し、
    前記第1候補状態変数値を送出したプロセッサが、前記コントローラから受け取った参照用数値と前記第1候補状態変数値との相対関係を定量化してその結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて前記オブジェクトデータを生成することを特徴とする、
    画像処理方法。
  5. 前記複数のプロセッサの少なくとも一つが、所定範囲で変化可能なゆらぎ変数を発生させ、そのゆらぎ変数に基づいて前記複数の候補状態変数値を発生させることで、前記オブジェクトデータを生成することを特徴とする、
    請求項記載の画像処理方法。
  6. 前記ゆらぎ変数を発生させたプロセッサが、そのゆらぎ変数を前記コントローラに個別的に送出し、
    前記ゆらぎ変数を受け取った前記コントローラが、受け取ったすべてのゆらぎ変数の平均値をとってこの平均値を前記ゆらぎを送出したすべてのプロセッサに一斉送出し、
    前記平均値を受け取ったプロセッサが、その平均値と前記発生させたゆらぎ変数とに基づいて前記候補状態変数値を発生させることを特徴とする、
    請求項3又は5記載の画像処理方法。
  7. 前記複数のプロセッサを一以上のグループに分け、一つのグループ内のプロセッサの各々が決定した前記候補状態変数値の一つを当該グループに属するすべてのプロセッサで用いる共通の状態変数値とすることを特徴とする、
    請求項3、4又は5記載の画像処理方法。
  8. オブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に複数発生させる手段と、
    前記発生した複数の候補状態変数値のうち所定の条件値との一致度合いが最も高い第1候補状態変数値を前記状態変数値として時点毎に時系列に決定していき、各時点で決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成する手段とを備えることを特徴とする、
    画像処理装置。
  9. 複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、
    前記複数のプロセッサの少なくとも一つが、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定範囲で変化可能なゆらぎ変数に基づいて発生させる手段と、
    発生した候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、
    前記受け取った参照用数値と前記発生した候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えることを特徴とする、
    画像処理装置。
  10. 複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成する装置であって、
    前記複数のプロセッサの少なくとも一つが、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を複数発生させるとともに、複数の候補状態変数値から所定の条件値との一致度合いが最も高い第1候補状態変数値を特定する手段と、
    特定した前記第1候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記第1候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、
    前記受け取った参照用数値と前記特定した第1候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えることを特徴とする、
    画像処理装置。
  11. コンピュータシステムをオブジェクト画像の状態を表現するためのオブジェクトデータを生成する画像処理装置として動作させるためのコンピュータプログラムであって、
    前記画像処理装置が、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を、所定範囲で変化可能なゆらぎ変数を用いて時系列に複数発生させる手段と、
    前記発生した複数の候補状態変数値のうち所定の条件値との一致度合いが最も高い第1候補状態変数値を前記状態変数値として時点毎に時系列に決定していき、各時点で決定した状態変数値に基づいて当該時点の前記オブジェクトデータを生成する手段とを備える
    コンピュータプログラム。
  12. コンピュータシステムを画像処理装置として動作させるためのコンピュータプログラムであって、
    前記画像処理装置が、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成するものであり、
    前記複数のプロセッサの少なくとも一つが、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を所定範囲で変化可能なゆらぎ変数に基づいて発生させる手段と、
    発生した候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、
    前記受け取った参照用数値と前記発生した候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えるものであることを特徴とする、
    コンピュータプログラム。
  13. コンピュータシステムを画像処理装置として動作させるためのコンピュータプログラムであって、
    前記画像処理装置が、複数のプロセッサと各プロセッサとの間で双方向の通信を行うコントローラとを有し、各プロセッサがそれぞれ自己に割り当てられたオブジェクト画像の状態を表現するためのオブジェクトデータを生成するものであって、
    前記複数のプロセッサの少なくとも一つが、
    前記オブジェクト画像のある時点での状態を定める状態変数値の候補となる候補状態変数値を複数発生させるとともに、複数の候補状態変数値から所定の条件値との一致度合いが最も高い第1候補状態変数値を特定する手段と、
    特定した前記第1候補状態変数値を前記コントローラへ個別的に送出するとともに、自らが送出した前記第1候補状態変数値を含む参照用数値を前記コントローラから受け取る手段と、
    前記受け取った参照用数値と前記特定した第1候補状態変数値との相対関係を定量化し、その結果が当該プロセッサに固有となる所定の範囲内にある場合にその第1候補状態変数値に基づいて当該時点での前記オブジェクトデータを生成する手段とを備えるものであることを特徴とする、
    コンピュータプログラム。
  14. 請求項11〜13のいずれか1項に記載されたコンピュータプログラムを記録してなる、コンピュータ読み取り可能な記録媒体。
JP2001246783A 2000-08-21 2001-08-15 画像処理方法及び装置、コンピュータプログラム Expired - Fee Related JP3904861B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2001246783A JP3904861B2 (ja) 2000-08-21 2001-08-15 画像処理方法及び装置、コンピュータプログラム
KR1020027005154A KR20020039696A (ko) 2000-08-21 2001-08-21 영상 처리 방법, 영상 처리 장치 및 컴퓨터 프로그램
EP01956994A EP1312048A2 (en) 2000-08-21 2001-08-21 Image processing method, image processing apparatus, and computer program
PCT/JP2001/007146 WO2002017226A2 (en) 2000-08-21 2001-08-21 Image processing method, image processing apparatus, and computer program
AU2001278786A AU2001278786A1 (en) 2000-08-21 2001-08-21 Image processing method, image processing apparatus, and computer program
TW090120540A TW576981B (en) 2000-08-21 2001-08-21 Image processing method, image processing apparatus, and computer program
US09/933,611 US6757448B2 (en) 2000-08-21 2001-08-21 Image processing method, image processing apparatus, and computer program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-249667 2000-08-21
JP2000249667 2000-08-21
JP2001246783A JP3904861B2 (ja) 2000-08-21 2001-08-15 画像処理方法及び装置、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2002140717A JP2002140717A (ja) 2002-05-17
JP3904861B2 true JP3904861B2 (ja) 2007-04-11

Family

ID=26598151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001246783A Expired - Fee Related JP3904861B2 (ja) 2000-08-21 2001-08-15 画像処理方法及び装置、コンピュータプログラム

Country Status (7)

Country Link
US (1) US6757448B2 (ja)
EP (1) EP1312048A2 (ja)
JP (1) JP3904861B2 (ja)
KR (1) KR20020039696A (ja)
AU (1) AU2001278786A1 (ja)
TW (1) TW576981B (ja)
WO (1) WO2002017226A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3776058B2 (ja) * 2002-05-30 2006-05-17 Necエレクトロニクス株式会社 システムlsi、システムlsiの設計方法、及び、記録媒体
US7289125B2 (en) * 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
JP5025157B2 (ja) 2005-09-29 2012-09-12 大日本スクリーン製造株式会社 画像記録装置および画像記録方法
US20090232415A1 (en) * 2008-03-13 2009-09-17 Microsoft Corporation Platform for the production of seamless orthographic imagery
US8854379B2 (en) * 2009-02-25 2014-10-07 Empire Technology Development Llc Routing across multicore networks using real world or modeled data
JP5742684B2 (ja) * 2011-11-25 2015-07-01 トヨタ自動車株式会社 エンジンの予測制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4267573A (en) * 1978-06-14 1981-05-12 Old Dominion University Research Foundation Image processing system
US5986675A (en) * 1996-05-24 1999-11-16 Microsoft Corporation System and method for animating an object in three-dimensional space using a two-dimensional input device
US5949434A (en) * 1997-03-20 1999-09-07 Charlton; Paul Method and apparatus for scaling graphic images
JP4075162B2 (ja) * 1998-10-30 2008-04-16 コニカミノルタビジネステクノロジーズ株式会社 データ処理装置

Also Published As

Publication number Publication date
AU2001278786A1 (en) 2002-03-04
US20020050998A1 (en) 2002-05-02
WO2002017226A2 (en) 2002-02-28
EP1312048A2 (en) 2003-05-21
KR20020039696A (ko) 2002-05-27
JP2002140717A (ja) 2002-05-17
US6757448B2 (en) 2004-06-29
TW576981B (en) 2004-02-21
WO2002017226A3 (en) 2002-05-30

Similar Documents

Publication Publication Date Title
US10810492B2 (en) Memory side acceleration for deep learning parameter updates
CN110298443B (zh) 神经网络运算装置及方法
US7017158B2 (en) Multi-processor system, data processing system, data processing method, and computer program
CN110750351B (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN105809728A (zh) 在图形处理单元中渲染场景的视图
EP3748495A1 (en) Audio playing method and device, terminal and computer-readable storage medium
GB2581017A (en) Neural network processing
EP3324367B1 (en) Identifying primitives in input index stream
EP2793171A1 (en) Classifier update device, information processing device, and classifier update method
JP3904861B2 (ja) 画像処理方法及び装置、コンピュータプログラム
CN108681773A (zh) 数据运算的加速方法、装置、终端及可读存储介质
US11275661B1 (en) Test generation of a distributed system
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
CN112100493B (zh) 文档排序方法、装置、设备及存储介质
JPWO2005098612A1 (ja) 重要成分優先計算方式ならびに装置
JP7408213B2 (ja) 仮想アプリケーションオブジェクトの出力方法、装置及びコンピュータプログラム
CN109344303A (zh) 一种数据结构切换方法、装置、设备和存储介质
JP2020035000A (ja) 機械学習システムおよびボルツマンマシンの計算方法
Sankaran et al. Performance comparison for scientific computations on the edge via relative performance
JP3872034B2 (ja) マルチプロセッサシステム、データ処理方法、データ処理システム、コンピュータプログラム、半導体デバイス
WO2022111013A1 (zh) 支援多种访问模式的设备、方法及可读存储介质
US10665280B2 (en) Information processing apparatus and semiconductor integrated circuit device
CN111831405B (zh) 一种数据处理方法、逻辑芯片及其设备
WO2024001870A1 (zh) 一种人工智能模型的训练方法及相关设备
CN108875930B (zh) 基于多机集群的神经网络训练方法及系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060821

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: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070110

R150 Certificate of patent or registration of utility model

Ref document number: 3904861

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140119

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees