JP4778561B2 - 2値に基づく画像の分類および分割のための方法、プログラム、およびシステム - Google Patents

2値に基づく画像の分類および分割のための方法、プログラム、およびシステム Download PDF

Info

Publication number
JP4778561B2
JP4778561B2 JP2008539132A JP2008539132A JP4778561B2 JP 4778561 B2 JP4778561 B2 JP 4778561B2 JP 2008539132 A JP2008539132 A JP 2008539132A JP 2008539132 A JP2008539132 A JP 2008539132A JP 4778561 B2 JP4778561 B2 JP 4778561B2
Authority
JP
Japan
Prior art keywords
ray
group
binary classification
rays
subgroups
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
JP2008539132A
Other languages
English (en)
Other versions
JP2009515261A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2009515261A publication Critical patent/JP2009515261A/ja
Application granted granted Critical
Publication of JP4778561B2 publication Critical patent/JP4778561B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

本発明の実施は広くは、2値に基づく画像の分類および分割のためのスキームに関連するとしてもよい。特に本発明の実施は、レイトレーシングにおけるレイの分類に関する。
2値分類では、任意のオブジェクトを2つのグループに分けることを含みうる。一方のグループはある特性を有し、他方は有さない。2値分類は通常、意思決定、画像分割、データ圧縮、コンピュータ・ビジョン、医療分野での検査、品質管理などの分野で利用されている。2値分類には多くの方法があり、例を挙げると、以下に限定されないが、デシジョン・ツリー(決定木)、ベイジアン・ネットワーク、サポート・ベクター・マシンおよびニューラル・ネットワークがある。アプリケーションによっては、分類は複数回にわたって行われ、何百万回にもおよぶこともある。2値に基づく決定は2つの可能性のうち一方を選択することが含まれる。つまり、(1)グループに属するオブジェクトはすべてある特性を有する、と(2)グループ内の少なくとも2つのオブジェクトが異なる特性を有する、という可能性のうち一方を選択する。ある実施において、画像処理に関してあるピクセル群が任意の特性を有するかどうかを決定する必要がある場合もある。例えば、ピクセル群の色が互いに類似しているかどうか、もしくは同一のオブジェクトに属しているかどうか等を決定する必要がある場合がある。
大域照明に関する問題を解決する方法として、レイ(ray)をトレーシングする方法がある。つまり、レイと任意の形状の間で生じる相互作用を判断するアプローチである。レイトレーシング(Ray Tracing)は、様々な媒体における波動伝播に関する様々な物理現象をモデル化するために従来用いられてきた方法の1つである。レイトレーシングは、例えば、フォトリアル・コンピュータ・グラフィクスにおいて照明に関する解決方法を算出するべく用いられたり、無線通信において複雑な環境下におけるチャネルモデリングに利用したり、高度な音声アプリケーションにおける音声レンダリングに利用されてもよい。
大域照明のタスクにおいては、シーン(幾何学的オブジェクト、物質の特性、光などを含む)の3次元描写は、コンピュータのモニタでの表示もしくはハードコピー(印刷または撮影)の作成に適するべく2次元の表現へと変換される場合がある。複数のレイをまとめて処理すること、すなわち単一の命令を利用すること(最新コンピュータの複数データ処理機能(SIMD:単一命令多重データ処理))が有利である場合がある。任意のレイ群を2値分類した場合にその分類結果によって、異なる処理方法が利用され得る。ある実装においては、2値分類は、複数のレイ群をレイトレーシングする場合の最初に実施されるステップであるとしてもよい。大域照明分野の数多くのアプリケーションにおいて必要となるリアルタイム性能を実現するためには、当該分類ステップは非常に高速で実行されるのが望ましい。
添付図面は、本明細書に組み込まれるとともにその一部を成し、本発明の原理に即した実施を図示するものであり、明細書とともに用いられて、該実施を説明する。添付図面は必ずしも実寸には即しておらず、本発明の原理を図示することに重点を置いている。以下に図面を説明する。
カメラから画面上のピクセルを介してシーンにおけるオブジェクトまでたどった、複数のレイの一例を示す図である。
レイトレーシングプロセスの一例を示す図である。
インコヒーレントなレイ群を分離するプロセスの一例を示す図である。
各座標(x、yおよびz)についてレイの方向が異なる4×4のピクセル群の例を示す概念図である。
ストリーミング・SIMD・エクステンション(S.S.E)命令を用いてインコヒーレントなレイ群を分離するプロセスの一例を示す図である。
任意のレイ群においてコヒーレントかどうかを検出するためのプロセスの一例を示す図である。
S.S.Eインプレメンテーションにおいてさらに処理を行うべくインコヒーレントなレイ群を分離するプロセスの一例を示す図である。
画像分類/分割ロジックを有するコンピュータシステムの一例を示す図である。
以下に記述する詳細な説明は、添付図面を参照にしている。異なる図面において同一の参照番号が用いられる場合には、同一もしくは同様の構成要素を指すとしてよい。以下の記述では、本発明の様々な側面を完全に理解していただくべく、特定の構造、アーキテクチャ、インターフェース、方法などの具体例を詳細に説明しているが、説明を目的としてものであり本発明を限定するものではない。しかし、本開示内容に従えば、本発明の様々な側面は、本明細書に記載する具体的な内容とは異なる例においても実施することができるのは、当業者には明らかである。また、公知のデバイス、回路および方法の説明は、不必要な記述により本発明の説明があいまいになることを避けるべく、省略している。
本明細書では便宜上、実施によっては、本発明の実施形態をレイトレーシング分野で使用される用語および例に基づき説明している。本発明の実施形態はレイトレーシングに限定されない。また、特定のSIMDインプレメンテーションにも限定されない。当業者であれば、本明細書で説明するアルゴリズムを、異なるSIMDアーキテクチャで実行することができる。
<レイキャスティング>
レイキャスティングは、レイトレーシングとも呼ばれるが、本明細書では、選択点から特定の視線に沿って見える物を特定する技術を指すと理解されたい。構成によっては、レイとは、空間内の1点で発生する無限の長さを持つ半直線で、当該1点から方向ベクトルに沿って進む位置ベクトルによって示されるとしてもよい。レイトレーシングは、レイの位置ベクトルによって示されるある視点から、レイの方向ベクトルによって示される視線に沿った、1または複数のレイを発生させることによって、可視性を判断することを目的としてコンピュータグラフィクスで利用することができる。当該視線上にある最も近接した可視面の位置を決定するためには、仮想シーン内における全ての形状との間での交差について当該レイを試験して、最も近い交差を保持する必要がある。
図1は、カメラ102から画面上のピクセル104を介してシーン106内のオブジェクトまでたどった複数のレイを含む、実施形態100の一例を示す図である。同図には、9つの4×4のレイ群108が幾何学的に互いに離間して示されている。説明の便宜上特定の構成を有しているが、図1に示した実施形態は別の構成で実装されてもよい。実施によっては、アルゴリズムの複雑さに応じて、第1次の目線がシーン内のオブジェクトに衝突した後に第二次のレイが生成されるとしてもよい。第二次のレイの例を挙げると、以下に限定されないが、影のレイ(シーン内で光の方向に進む)、反射したレイおよび屈折したレイ等がある。実施によっては、レイトレーシング技術を用いて、算出された軌跡に沿って衝突点からの二次的なレイを生成することによって光学的に正しい影、反射もしくは屈折を算出するとしてもよい。このように、通常のシーンのレンダリングを行うことは何百万本もレイをトレーシングし、複数のデータストリームが同時に処理されていることを含む。こういった機能を利用するためには、レイ群を複数まとめて処理するのが効果的な場合もある。プロセッサ固有の命令、例えばStreaming Single Instruction/Multiple Data(SIMD)Extension(S.S.E)命令を利用することによって、4つの浮動小数点の数または整数を同時に処理し得る。
図2は、レイトレーシングプロセス200の一例を示す図である。説明の便宜上、図2は図1に示した実施形態100に基づいた内容となっているが、プロセス200は別のハードウェアおよび/またはソフトウェアを実行することによって実現され得ると理解されたい。
まず最初に、レイ群(レイキャスティング)が複数生成されるとしてもよい(動作202)。実装によっては、隣接し合うピクセルを通って進むレイを、図1に示すように複数まとめている。複数のレイがほぼ一緒にシーンを通過する場合に、通過アルゴリズムをより効率よく実行できるとしてもよい。しかし、幾つかのオブジェクトと交差すると、これらの複数のレイはコヒーレントでなくなってしまう場合がある。特に、一群を構成している複数のレイが別々のオブジェクトと交差する場合にはこの傾向が強まる。
起点(視点)および各レイの方向を決定する(動作204)。実装によっては、起源点は
Figure 0004778561
と示し、方向は
Figure 0004778561
と示すとしてもよい。視線はカメラの投影の中心で発生し、像面のピクセルを通過していくとしてもよい。異なる座標を識別するべく(x、y、zに替えて)数字を付すとしてもよい。例えば、レイの方向は
Figure 0004778561
と示すとしてもよい。また添え字「i」も、同一レイ群に属する異なるレイを区別するべく用いられる(4×4のレイ群の各レイを示すべくi=1〜16)。
レイ群がコヒーレントかどうか判断する(動作206)。実装によっては、以下に示す式(1)に従ってコヒーレントかどうか判断するとしてもよい。
Figure 0004778561
ここで、iは1からNの値をとり、Nはパケット内のレイの数とする。
レイ群に含まれるレイがすべて、座標x、yおよびzのそれぞれについて同一方向(正方向または負方向)に進んでいると判断された場合に(動作208)、当該レイ群はコヒーレントであると判断される(動作210)。レイ群に含まれるレイのすべてが座標x、yおよびzのそれぞれについて同一方向に進んでいない場合に(動作208)、当該レイ群はインコヒーレントであるとみなされる(動作212)。実装によっては、インコヒーレントなレイ群の進み方は、コヒーレントなレイ群とは異なっているとしてもよい。また、式(1)では完全な同等関係は定義されていないとしてもよい。例えば、方向座標の一部がゼロであるレイ群はインコヒーレントなレイ群として処理されるとしてもよい。
<分離アルゴリズム>
実装によっては、大域照明タスクで生成されるレイパケットの大半はコヒーレントである。しかし、1つのパケット内に多数のレイが含まれている場合、当該パケット内のレイの一部が異なる方向に進むという可能性もあり、つまりコヒーレントとなる場合もある。図1に示すように、1パケット内に含まれるレイの数が16で、4個のピクセルから成る行が4行並べられるパケットを複数使用するとしてもよい。例示を目的として、図3は、このパケット構成を持つインコヒーレントなレイ群を分離するプロセス300の一例を示す。説明の便宜上、図3は図1に示した実施形態100に基づく内容となっているが、プロセス100は別のハードウェアおよび/またはソフトウェアを実行することによって実施され得ると理解されたい。
まず最初に、レイ群がコヒーレントであるかどうかを判断する(動作302)。いくつかの実装によると、この判断は上記の式(1)に基づいて行うとしてもよいし、別の手段を用いて行うとしてもよい。
当該レイ群がコヒーレントであると判断された場合(動作302)、当該レイ群はまとめて処理される(動作304)。
当該レイ群がインコヒーレントであると判断された場合(動作302)、当該レイ群はコヒーレンス特性に従って複数のサブ群に分割される(動作306)。本例において各座標は2つの異なる方向を与え得るので、8つの異なるサブ群を定義することができる。
各サブ群について(動作308)、個別にレイトレーシングアルゴリズムを実行するとしてもよい(動作310)。
実行結果を合成する(動作310)。このステップでは、各サブ群から元々のレイ群へと交差データを複製する。当該交差データは、各レイの交差点までの距離および各レイが交差したオブジェクトの識別子を含む。
当業者であれば、アルゴリズム300の実施形態はどの高級言語で実装してもよく、また、レイトレーシングでのデータ処理量をサポートするような方法で実装され得ることに想到するであろう。
<S.S.Eの実行>
図4は、各座標(x,y,z)についてレイの方向が異なる、4×4のピクセル(402)から成るレイ群400の例を示す概念図である。具体的には、4×4のレイ群の方向符号および対応するコンパクトS.S.Eレイアウト404を図示している。領域406は正の方向を示し、領域408は負の方向を示す。
図5は、S.S.E命令に適した形式にレイ方向データを再編成するプロセス500の一例を示す図である。説明の便宜上、図5は図4に示した実施形態400に基づいた内容となっているが、プロセス500は別のハードウェアおよび/またはソフトウェアを実行することによって実施され得ると理解されたい。例えば、レイトレーシングを加速させる以外にも、多量のデータを処理しなければならないほかのアプリケーション(例えば、イメージの分割および分類に関する問題)も同様に恩恵を受けるとしてもよい。
データは当初、S.S.Eの実行に適さない形式で格納されているとしてもよい(動作502)。実装によっては、各起点/方向ベクトルは3つの浮動少数点の数(各座標に1つ)で表されるとしてもよい。このようにして、全てのベクトルは連続して以下のように格納されているとしてもよい(動作502)。
Figure 0004778561
本実装に係るレイアウトは、4つの方向ベクトルが格納されていることを表している。4つの方向ベクトルは、
Figure 0004778561
である(4×4のレイ群の第1行)。しかし、実装によっては、各S.S.E数が異なるベクトルの成分を含むので(最初の(dx,dy,dz,dx)等)、この形式は4方向SIMD処理には理想的でない場合がある。S.S.Eユニットの処理能力を最大限に利用するためには、データは以下のように並べ替えられる(動作504)。
Figure 0004778561
3つの同種のS.S.Eベクトルであるdir[0][0]、dir[0][1]およびdir[0][2]を上記に示す。具体的には、dir[i][j]において、指標「i」は列(0から3)で、指標「j」は座標(x、yおよびz)を表す。
一実装において、図4に示した16本のレイのデータ404は、dir[0][2]のすぐ後に、dir[1][0]が続くように、メモリに連続的に格納されるとしてもよい。dir[i][j]はそれぞれ16バイト(4×32ビット)を占有するので、4×4のレイ群全体の方向ベクトルを格納するためには合計16×3×4=192バイトを必要とするとしてもよい。図3に図示されている上述したプロセス300によると、最初にパケット内の全てのレイがコヒーレントであるかどうかを判断する。これは、図4において、すべてのxセクタ、yセクタおよびzセクタが領域406もしくは408の一方である状態に対応する。
図6は、S.S.E命令を用いてコヒーレントかどうかについてレイ群を試験するプロセス600の例を示す図であり、図2に示したステップ206の実施形態を実装する。説明の便宜上、図6は図4に示した実施形態400に基づいた内容となっているが、プロセス600は別のハードウェアおよび/またはソフトウェアを実行することによって実施され得ると理解されたい。当該プロセスは例えば、以下に限定されないが、MOVMSKPS演算(符号ビットの4ビットマスクを生成)などの様々な演算に基づいて実施することができる。一例を挙げると、S.S.E.固有命令を利用するとしてもよい。S.S.E.固有命令は例えば、IA−32Intel(登録商標)アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、
(http://www.intel.com/design/Pentium4/manuals/25366513.pdf)で開示されているものを利用してもよい。
プロセス600は、任意のパケットに含まれる全てのレイについて方向x、yおよびzを検査する。説明を簡単にするべく、4本のレイを含む行を4行備えるパケットについて説明する。プロセス600は、これより多い、または、少ない本数のレイを含むレイ群に対して実施され得ると理解されたい。
まず、4ビットマスクcm[0]を算出する。当該マスクは、第1行目のレイについてx方向の符号を格納している(動作610)。この動作は、
Figure 0004778561
として実現されるとしてもよい。
続いて、マスクcm[0]はx方向のコヒーレンスを検出するべく試験されるとしてもよい(実施形態612)。全てのレイのx方向が正の方向(この場合、cm[0]は「0」となる)もしくは負の方向(この場合、cm[0]は15となる)であれば、動作620に進む。そうでない場合には、当該レイ群はインコヒーレントなレイ群として処理されるとしてもよい(動作660に進む。動作660は図2の実施形態212に対応する)。
同様にy方向のマスクは、動作620において
Figure 0004778561
として算出されるとしてもよく、コヒーレントかどうか判断する試験を動作622で行うとしてもよい。
z方向のマスクは、動作630において
Figure 0004778561
として算出されるとしてもよく、コヒーレントかどうか判断する試験を動作632で行うとしてもよい。
残りの他の行については(例えば、dir[1]、dir[2]およびdir[3]で表される行)、方向マスクを、既に判明している第1行目のマスクcm[j]と比較するとしてもよい。レイ群全体でコヒーレントと判断されるためには、方向毎に生成されるマスク同士が同一でなければならない。以下のように試験が行われるとしてもよい(x方向の試験)。
Figure 0004778561
同様の試験をy方向(マスクcm[1]を利用)およびz方向(マスクcm[2]を利用)に関しても行うとしてもよい。これらの演算は動作640で実施されるとしてもよい。レイ群がインコヒーレントであると判明した場合には、動作660へと進む。それ以外の場合には、動作650において当該レイ群はコヒーレントなレイ群として処理される。
図7は、S.S.E.インプレメンテーションにおいてさらに処理を行うべく、S.S.E.命令を用いてインコヒーレントなレイ群を分割するプロセス700の一例を示す図である。当該プロセス700は図6に示した実施形態660に対応する。説明の便宜上、図7は図4に示した実施形態400に基づいた内容となっているが、プロセス700は別のハードウェアおよび/またはソフトウェアを実行することによって実施され得ると理解されたい。例示を目的として、当該プロセスは、図4に図示されるような4×4のレイパケットのような、複数のレイから成るパケットの各行に対して実装される。
プロセス700は、1行ごとに行われるとしてもよい。各行のレイをコヒーレントなサブ群に分割するとしてもよい。この分割は、マスク(論理S.S.E.値)の生成に基づいて実施するとしてもよい。当該マスクは1と0を含み、1はあるサブ群に属するレイを示し、0はそれ以外のレイを示す。ある行に含まれる4本のレイすべてが別の方向に進んでいるという可能性もあり、この場合はサブ群を4つ形成する必要がある。また、ある行のレイはすべてコヒーレントとなっている可能性もあり、この場合はサブ群が1つしか形成されない。多くの場合は、各行には1つまたは2つのサブ群が形成される。以下に説明する図7に図示したプロセスはこのような一般的なケースを扱う。図4において、第0行および第1行はコヒーレントであり(第0行では全てのレイが正の方向を向き、第1行では全てのレイの方向が一致している)、第2行はサブ群が2つあり、第3行はサブ群が3つある。
動作702では、各行において、当該行の第1レイ(指標0に対応)と同一の方向に進むレイはどれか判断する。この判断は、座標x、yおよびzそれぞれの個別マスクを第1レイの適切なマスク(以下に示すシャッフリング・オペレータ(shuffling operator)を用いて取得する)と比較することによって行うとしてもよい。4つの同一の値が返され、続いて、マスクと比較されるとしてもよい。これは、以下の6つの演算を実行することによって行うとしてもよい。
Figure 0004778561
この結果、第1レイの方向と一致する方向に関しては、論理変数への適切な入力(x方向についてはm[0]、y方向についてはm[1]、z方向についてはm[2])としては、0になる(全て0を含む)。
動作702において第1レイと同一方向に進むと判断されたレイはすべて、動作704において処理されるとしてもよい。変数mactが1を保持するレイ全てについてこの処理が行われるとしてもよい。
Figure 0004778561
動作706で判断されるように、当該行においてインコヒーレントなレイがない場合には、次の行を取り出すとしてもよい(動作720)。この判断は、
Figure 0004778561
を0と比較することによって、上述した変数mallの符号ビットをテストすることに基づいて行うとしてもよい。真と判断されれば、当該行にはインコヒーレントなレイはないとされる。
一方、動作706においてインコヒーレントなレイがあると判断された場合には、当該行には1方向においてだけ異なるサブ群が2つあるかどうかを判断する(動作708)。この判断は、j=1、2、3について、0でない
Figure 0004778561
は1つだけであることを確認することによって行われるとしてもよい。
動作708においてサブ群は2つだけであると判断された場合には、動作710において第2サブ群を処理する。この処理は例えば、変数mallが1であるレイすべてについて行われるとしてもよい。
それ以外の場合には(動作712)、当該行が有している可能性のあるサブ群をすべて特定して処理してもよい。これは、値m[0]、m[1]およびm[2]を用いて様々なマスクを形成し、形成したマスクを当該行を処理する際に用いて行うとしてもよいが、マスクに0でない成分がある場合に限られる。マスク値は7つあり、(上述したサブ群以外に)存在する可能性のあるサブ群を指す。
Figure 0004778561
存在する可能性のあるサブ群を示す論理表現は他にも可能である。
通常の実装においては、プロセス700に基づいて最も一般的な2つのケースを効率よく処理する。
(1)行の4本のレイ全てがコヒーレントである場合(処理する必要があるサブ群は1つだけ)。
(2)インコヒーレントな値を示すのは座標(x、yおよびz)のうち1つだけである場合。この場合に処理されるのは2つのサブ群であるが、パラグラフ[0050]で説明したマスクによって定義される計算をすべて行うことは避けられる。
<システム>
図8は、画像分類/分割ロジック802を含むコンピュータシステム800の例を示す。画像分類/分割ロジック802は、上述したプロセスのうちの1つであるとしてもよい。代表的な例を挙げると、コンピュータシステム800は、プロセッサ(CPU)820とチップセット806の間で情報を授受するためのプロセッサシステムバス804を備える。本明細書で説明しているように、「チップセット」という用語は、所望のシステム機能を実現するべくCPU820に接続される様々なデバイスをまとめて指し示すべく使用されるとしてもよい。実装によっては、CPU820はマルチコア・チップ・マルチプロセッサ(CMP)であってもよい。
代表的な例を挙げると、チップセット806は、グラフィクスコントローラ810が集積化されたメモリコントローラ808を有する。実装によっては、グラフィクスコントローラ810はディスプレイ812に接続されるとしてもよい。別の実装では、グラフィクスコントローラ810はチップセット806に接続され、メモリコントローラ808からは分離しているとしてもよい。この場合、チップセット806は、互いに分離しているメモリコントローラとグラフィクスコントローラを有する。グラフィクスコントローラは独立した構成としてもよい。代表的な例を挙げると、メモリコントローラ808はまたメインメモリ814に接続されるとしてもよい。実装によっては、メインメモリ814は、以下に限定されないが、RAM(Random Access Memory)、DRAM(Dynamic RAM)、SRAM(Static RAM)、SDRAM(Synchronous DRAM)、DDR−SDRAM(Double Data Rate SDRAM)、RDRAM(Rambus DRAM)等のデータの高速バッファリングをサポートすることが出来るデバイスを含むとしてもよい。
さらに図示されているように、チップセット806は入出力(I/O)コントローラ816を含むとしてもよい。図8ではチップセット806を互いに独立しているグラフィクスコントローラ810とI/Oコントローラ816を含むものとして図示しているが、一実施形態によると、グラフィクスコントローラ810は、例えばシステム・オン・チップ(SOC)を実現するべく、CPU820内に集積化されているとしてもよい。別の実施形態によれば、グラフィクスコントローラ810およびI/Oコントローラ816の機能はチップセット806内で統合される。
一実施形態によると、画像分類/分割ロジック802は、システム・オン・チップと同様に、メモリコントローラとI/Oコントローラがチップセット内に集積化され、CPUに集積化されたメモリコントローラを有するコンピュータシステム内で実行されるとしてよい。従って、図8は一実施形態を例示しているに過ぎず、本発明を限定するものではないことは当業者には明らかである。一実施形態によると、グラフィクスコントローラ810は、画像分類/分割ロジック802から受け取ったデータを表示するべくレンダリングするレンダリングエンジン818を含む。
上記で1以上の実装を説明および図示したが、本発明を網羅したものではなく、本発明の範囲を開示した形態そのものに限定するものでもない。上述の教示内容を鑑みて様々な変形および変更を実施することが可能であり、そのような変形および変更は本発明を様々な方法で実施することによって得られるとしてもよい。
システムの説明において独立した構成要素を含むものとしたが、当該構成要素はハードウェア、ソフトウェア/ファームウェアもしくは両者の組み合わせにおいて実現されるとしてもよい。ハードウェアを用いて実現した場合、システムが備える構成要素の一部は単一のチップまたはデバイス内で組み合わせられるとしてもよい。実装を幾つか挙げて説明してきたが、本発明は、明示されたものに限定されるべきではなく、情報の処理、送信、出力および格納が可能なプロセッサを複数含むデバイスもしくはインターフェースであればどのようなデバイスもしくはインターフェースを含むと解釈すべきである。プロセスは例えば、ローカルシステムのプロセッサまたはそれ以外の部分で実行されるソフトウェアにおいて実現されるとしてもよい。
例えば、図2、図3、図5、図6および図7に示した動作のうち少なくとも一部は、機械可読媒体で実現される命令もしくは命令群として実現されるとしてもよい。本願の明細書において使用した素子、動作または命令はいずれも、そう明示していない限り、本発明にとって必要不可欠であると理解されるべきではない。また本明細書では、冠詞「a」は1または複数を含むものとする。本発明の上述した実施は、本発明の目的および原理から大きく離れることなく、変更または変形することができるとしてもよい。そのような変更または変形は、本開示内容の範囲に含まれるものとし、本願特許請求の範囲によって保護されるものとする。

Claims (18)

  1. 2値分類ロジックを有するグラフィクスコントローラによる画像処理方法であって、
    前記2値分類ロジックが、複数のレイを含むレイ群を生成することと、
    前記2値分類ロジックが、前記レイ群の各レイについて起点と方向を決定することと、
    前記2値分類ロジックが、複数のレイすべてについて、座標x、yおよびzそれぞれに関して同一の方向に進むと判断される場合、レイ群をコヒーレントであると判断することと、
    前記2値分類ロジックが、その他の場合には、レイ群をインコヒーレントであると判断し、前記コヒーレントなレイ群と当該インコヒーレントなレイ群とを互いに異なるように処理することと
    を含む
    画像処理方法。
  2. 前記2値分類ロジックが、
    複数の異なるサブ群を検出するべく複数の浮動小数点の値の符号を利用することと、
    群に含まれる複数の項目がすべて同一のサブ群に属するかどうかを検出することと、
    元々のサブ群を複数の同種のサブ群に分割することと、
    浮動少数点の値の配列に基づいて複数のサブ群を分類することと
    を有する請求項1に記載の画像処理方法。
  3. 2値分類を行うべく、複数のSIMD命令が提供される
    請求項に記載の画像処理方法。
  4. 群に含まれる複数の項目がすべて同一のサブ群に属するかどうかを検出することはさらに、
    前記群に含まれる複数の項目がすべて同一の符号を有するかどうかを検出すること
    を含む
    請求項に記載の画像処理方法。
  5. 前記レイ群をコヒーレントであると判断することは、
    iが1からNの値を取り、Nはパケット内に含まれる複数のレイの数である場合に、全dx>0もしくは全dx<0、および全dy>0もしくは全dy<0、および全dz>0もしくは全dz<0に従って、判断することである、
    請求項に記載の画像処理方法。
  6. 前記レイ群に含まれるレイにおいて方向座標の一部ゼロであるレイ群を、インコヒーレントであるとして処理すること
    を含む
    請求項に記載の画像処理方法。
  7. ンコヒーレントであると判断したレイ群を前記2値分類ロジックが、コヒーレンス特性に基づいて前記レイ群を複数のサブ群に分割すること
    更に含む
    請求項に記載の画像処理方法。
  8. 2値分類ロジックが、各サブ群について、個別にレイトレーシングアルゴリズムを実行し、
    2値分類ロジックが、複数の異なるサブ群の結果を合成すること
    更に含む
    請求項に記載の画像処理方法。
  9. 前記レイ群を複数のサブ群に分割することは、
    2値分類ロジックが、複数のS.S.E.(ストリーミング・SIMD・エクステンション)命令を用いてインコヒーレントなレイ群を複数のコヒーレントであるサブ群に分割することを
    含む
    請求項に記載の画像処理方法。
  10. 前記レイ群の各レイについて起点と方向を決定することは、
    2値分類ロジックが、データをS.S.E.ユニットの形式へと再編成することを含み、それぞれの方向ベクトルは、4つのレイ毎に3つのS.S.Eベクトルで表される、
    請求項に記載の画像処理方法。
  11. 前記レイ群をコヒーレントであると判断することは、
    各レイの方向ベクトルを表す複数の浮動小数点の値の符号に基づき、2値分類ロジックが、前記レイ群の第1行の各レイの方向ベクトルを表す複数の浮動小数点の値の符号ビットがすべて同一であるかどうか検出することと、
    2値分類ロジックが、前記レイ群に含まれる複数の他の行の各レイの方向ベクトルを表す複数の浮動小数点の値の符号ビットを前記第1行と比較することと、
    2値分類ロジックが、前記コヒーレントな群を検出するべく複数の比較結果を利用することと
    を含む
    請求項に記載の画像処理方法。
  12. 複数のS.S.E.命令を用いてインコヒーレントなレイ群を複数のコヒーレントであるサブ群に分割することは、
    2値分類ロジックが、パケットの1行毎にレイ群を処理、任意の行の第1レイと同一の方向に進むサブ群に属する、当該行内の複数のレイを決定することと、
    2値分類ロジックが、前記行内の前記第1レイと同一のサブ群に属している複数のレイを全て1つのサブ群として処理することと、
    2値分類ロジックが、前記行内にあるサブ群の数は、1つ、2つもしくは3以上かどうか検出することと、
    2値分類ロジックが、サブ群の数が2つだけである場合には、第2のサブ群を処理することと、
    2値分類ロジックが、サブ群の数が3以上である場合には、前記サブ群に存在する可能性のある複数のサブ群すべてを示す複数のS.S.E論理マスク(論理S.S.E.値)を利用することと
    を含む
    請求項に記載の画像処理方法。
  13. 複数のS.S.E.命令を用いてインコヒーレントなレイ群を複数のコヒーレントであるサブ群に分割することはさらに、
    複数の最も一般的なケースを特定して、当該特定されたケースを効果的に処理するべくアルゴリズムを最適化させること
    を含む
    請求項に記載の画像処理方法。
  14. 前記サブ群に存在する可能性のある複数のサブ群すべてを示す前記複数のS.S.E論理マスクを用いてインコヒーレントなレイ群を複数のコヒーレントであるサブ群に分割することは、
    2値分類ロジックが、前記インコヒーレントなレイ群に存在する可能性のある前記複数のS.S.E論理マスクをすべて特定するべく、一連の複数のマスク値を用いること、
    を含む
    請求項1に記載の画像処理方法。
  15. 2値分類ロジックを有するグラフィクスコントローラに画像処理を実行させるためのプログラムであって、
    複数のレイを含むレイ群を生成することと、
    前記レイ群の各レイについて起点と方向を決定することと、
    複数のレイすべてについて、座標x、yおよびzそれぞれに関して同一の方向に進むと判断される場合、レイ群をコヒーレントであると判断することと、
    その他の場合には、レイ群をインコヒーレントであると判断し、前記コヒーレントなレイ群と当該インコヒーレントなレイ群とを互いに異なるように処理することと
    を実行させるためのプログラム。
  16. 2値分類ロジックを有するグラフィクスコントローラに、
    複数の異なるサブ群を検出するべく複数の浮動小数点の値の符号を利用し、
    群に含まれる複数の項目がすべて同一のサブ群に属するかどうかを検出し、
    元々のサブ群を複数の同種のサブ群に分割し、
    浮動小数点の値の配列に基づいて複数のサブ群を分類する
    ことをさらに実行させる
    請求項15に記載のプログラム
  17. 2値分類ロジックを有するグラフィクスコントローラに、
    複数のレイ群においてコヒーレンスを検出すること
    をさらに実行させる
    請求項16に記載のプログラム
  18. 2値分類ロジックを有するグラフィクスコントローラ
    を備え、
    当該2値分類ロジックは
    複数のレイを含むレイ群を生成
    前記レイ群の各レイについて起点と方向を決定
    複数の異なるサブ群を検出するべく、各レイの方向ベクトルを表す複数の浮動小数点の値の符号を利用して、サブ群に含まれる各レイの方向ベクトルを表す複数の浮動小数点の値の符号ビットがすべて同一であるかどうかを検出して、複数の同種のサブ群に分割して、浮動小数点の値の符号ビットの配列に基づいて複数のサブ群を分類
    複数のレイすべてについて座標x、yおよびzそれぞれに関して同一の方向(正または負)に進むと判断される場合、レイ群をコヒーレントであると判断する
    システム。
JP2008539132A 2005-12-12 2006-12-06 2値に基づく画像の分類および分割のための方法、プログラム、およびシステム Expired - Fee Related JP4778561B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/301,699 US20070132754A1 (en) 2005-12-12 2005-12-12 Method and apparatus for binary image classification and segmentation
US11/301,699 2005-12-12
PCT/US2006/047137 WO2007070456A2 (en) 2005-12-12 2006-12-06 Method and apparatus for binary image classification and segmentation

Publications (2)

Publication Number Publication Date
JP2009515261A JP2009515261A (ja) 2009-04-09
JP4778561B2 true JP4778561B2 (ja) 2011-09-21

Family

ID=38138817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008539132A Expired - Fee Related JP4778561B2 (ja) 2005-12-12 2006-12-06 2値に基づく画像の分類および分割のための方法、プログラム、およびシステム

Country Status (7)

Country Link
US (1) US20070132754A1 (ja)
EP (1) EP1960969A2 (ja)
JP (1) JP4778561B2 (ja)
KR (1) KR100964408B1 (ja)
CN (1) CN101331523B (ja)
TW (1) TWI395155B (ja)
WO (1) WO2007070456A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7969434B2 (en) 2006-09-19 2011-06-28 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering
US8674987B2 (en) 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US9478062B2 (en) 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US8018457B2 (en) * 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US8390618B2 (en) * 2008-03-03 2013-03-05 Intel Corporation Technique for improving ray tracing performance
US8217935B2 (en) 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US8421801B2 (en) * 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
EP3385913B1 (en) 2008-09-22 2020-04-01 Imagination Technologies Limited Systems and methods for a ray tracing shader api
US8379022B2 (en) * 2008-09-26 2013-02-19 Nvidia Corporation Fragment shader for a hybrid raytracing system and method of operation
KR101610194B1 (ko) * 2008-10-15 2016-04-07 삼성전자주식회사 영상처리를 위한 데이터 처리 장치 및 방법
CN102800050B (zh) * 2011-05-25 2016-04-20 国基电子(上海)有限公司 N维特征空间连通性计算方法
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
WO2012174334A1 (en) 2011-06-16 2012-12-20 Caustic Graphics, Inc. Graphics processor with non-blocking concurrent architecture
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
GB2541084B (en) 2013-03-15 2017-05-17 Imagination Tech Ltd Rendering with point sampling and pre-computed light transport information
US8952963B1 (en) 2014-02-13 2015-02-10 Raycast Systems, Inc. Computer hardware architecture and data structures for a grid traversal unit to support incoherent ray traversal
US10019342B2 (en) * 2015-12-24 2018-07-10 Intel Corporation Data flow programming of computing apparatus with vector estimation-based graph partitioning
US9990691B2 (en) * 2016-02-17 2018-06-05 Intel Corporation Ray compression for efficient processing of graphics data at computing devices
US11276224B2 (en) * 2020-04-17 2022-03-15 Samsung Electronics Co., Ltd. Method for ray intersection sorting
US11295509B2 (en) 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306380A (ja) * 1998-04-13 1999-11-05 Mitsubishi Electric Inf Technol Center America Inc ボリュームレンダリングシステムおよびボリュームレンダリング方法
JP2001084401A (ja) * 1999-09-01 2001-03-30 Mitsubishi Electric Inf Technol Center America Inc グラフィック・データの中を通る光線をトレーシングするための方法
JP2001092992A (ja) * 1999-09-24 2001-04-06 Ricoh Co Ltd 3次元形状処理方法およびその方法を実行するためのプログラムを記録した記録媒体
JP2001101451A (ja) * 1999-09-27 2001-04-13 Zio Software Inc 三次元画像高速表示装置および該高速表示装置を用いて三次元空間内の座標を三次元画像上で対話的に指定する方法
JP2001109903A (ja) * 1999-10-01 2001-04-20 Mitsubishi Electric Inf Technol Center America Inc ボリューム・レンダリング・システムにおけるボリューム・データ・セットのレンダリング方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104540A (en) * 1996-11-05 2000-08-15 Olympus Optical Co., Ltd. Decentered optical system
US6092059A (en) * 1996-12-27 2000-07-18 Cognex Corporation Automatic classifier for real time inspection and classification
US6389377B1 (en) * 1997-12-01 2002-05-14 The Johns Hopkins University Methods and apparatus for acoustic transient processing
US6502086B2 (en) * 1999-01-04 2002-12-31 International Business Machines Corporation Mapping binary objects in extended relational database management systems with relational registry
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US6477221B1 (en) * 2001-02-16 2002-11-05 University Of Rochester System and method for fast parallel cone-beam reconstruction using one or more microprocessors
US7102636B2 (en) * 2001-03-31 2006-09-05 Intel Corporation Spatial patches for graphics rendering
US20030152897A1 (en) * 2001-12-20 2003-08-14 Bernhard Geiger Automatic navigation for virtual endoscopy
US20030206184A1 (en) * 2002-05-06 2003-11-06 Reshetov Alexander V. Displaying content in different resolutions
US7098907B2 (en) * 2003-01-30 2006-08-29 Frantic Films Corporation Method for converting explicitly represented geometric surfaces into accurate level sets
US20050143965A1 (en) * 2003-03-14 2005-06-30 Failla Gregory A. Deterministic computation of radiation doses delivered to tissues and organs of a living organism
WO2004110309A2 (en) * 2003-06-11 2004-12-23 Case Western Reserve University Computer-aided-design of skeletal implants
US7349563B2 (en) * 2003-06-25 2008-03-25 Siemens Medical Solutions Usa, Inc. System and method for polyp visualization
US7336347B2 (en) * 2003-12-22 2008-02-26 American Gem Society Methods, apparatus, and systems for evaluating gemstones
US7739623B2 (en) * 2004-04-15 2010-06-15 Edda Technology, Inc. Interactive 3D data editing via 2D graphical drawing tools
US7990380B2 (en) * 2004-09-30 2011-08-02 Intel Corporation Diffuse photon map decomposition for parallelization of global illumination algorithm
US7627620B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Data-centric automatic data mining
KR100655491B1 (ko) * 2004-12-21 2006-12-11 한국전자통신연구원 음성인식 시스템에서의 2단계 발화 검증 방법 및 장치
US7969437B2 (en) * 2004-12-28 2011-06-28 Intel Corporation Method and apparatus for triangle representation
US7348975B2 (en) * 2004-12-28 2008-03-25 Intel Corporation Applications of interval arithmetic for reduction of number of computations in ray tracing problems
US7414624B2 (en) * 2005-10-28 2008-08-19 Intel Corporation Apparatus and method for a frustum culling algorithm suitable for hardware implementation
US8064694B2 (en) * 2006-06-21 2011-11-22 Hewlett-Packard Development Company, L.P. Nonhuman animal integument pixel classification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306380A (ja) * 1998-04-13 1999-11-05 Mitsubishi Electric Inf Technol Center America Inc ボリュームレンダリングシステムおよびボリュームレンダリング方法
JP2001084401A (ja) * 1999-09-01 2001-03-30 Mitsubishi Electric Inf Technol Center America Inc グラフィック・データの中を通る光線をトレーシングするための方法
JP2001092992A (ja) * 1999-09-24 2001-04-06 Ricoh Co Ltd 3次元形状処理方法およびその方法を実行するためのプログラムを記録した記録媒体
JP2001101451A (ja) * 1999-09-27 2001-04-13 Zio Software Inc 三次元画像高速表示装置および該高速表示装置を用いて三次元空間内の座標を三次元画像上で対話的に指定する方法
JP2001109903A (ja) * 1999-10-01 2001-04-20 Mitsubishi Electric Inf Technol Center America Inc ボリューム・レンダリング・システムにおけるボリューム・データ・セットのレンダリング方法

Also Published As

Publication number Publication date
US20070132754A1 (en) 2007-06-14
TW200745992A (en) 2007-12-16
EP1960969A2 (en) 2008-08-27
KR20080069681A (ko) 2008-07-28
TWI395155B (zh) 2013-05-01
CN101331523A (zh) 2008-12-24
JP2009515261A (ja) 2009-04-09
WO2007070456A3 (en) 2007-11-01
WO2007070456A2 (en) 2007-06-21
KR100964408B1 (ko) 2010-06-15
CN101331523B (zh) 2014-10-01

Similar Documents

Publication Publication Date Title
JP4778561B2 (ja) 2値に基づく画像の分類および分割のための方法、プログラム、およびシステム
JP7421585B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
US11790609B2 (en) Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene
US11836597B2 (en) Detecting visual artifacts in image sequences using a neural network model
US20230237313A1 (en) Layout Parasitics and Device Parameter Prediction using Graph Neural Networks
CN110766778B (zh) 使用散列执行并行路径空间滤波的方法和系统
US8773422B1 (en) System, method, and computer program product for grouping linearly ordered primitives
US20090106530A1 (en) System, method, and computer program product for generating a ray tracing data structure utilizing a parallel processor architecture
EP3714433A1 (en) Ray-triangle intersection testing with tetrahedral planes
WO2009117691A2 (en) Architectures for parallelized intersection testing and shading for ray-tracing rendering
JP2009169935A (ja) 並列プロセッサアーキテクチャを使用して単一ビット値のシーケンスに対してスキャン演算を実施するためのシステム、方法及びコンピュータプログラム製品
US11568323B2 (en) Electronic device and control method thereof
JP7004717B2 (ja) 入力インデックスストリームのプリミティブの識別
US11847733B2 (en) Performance of ray-traced shadow creation within a scene
US20200210805A1 (en) Neural Network Generator
US7999808B1 (en) Parallel processing system, method, and computer program product for executing node traversal or primitive intersection
US11010963B2 (en) Realism of scenes involving water surfaces during rendering
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
CN113822975B (zh) 用于对图像进行有效采样的技术
US8717382B2 (en) Method of detecting collisions in graphics processing unit
Reshetov Omnidirectional ray tracing traversal algorithm for kd-trees
Wong et al. Virtual subdivision for GPU based collision detection of deformable objects using a uniform grid
CN113850896A (zh) 用于光线跟踪系统的分层加速结构
Kao et al. Runtime techniques for efficient ray-tracing on heterogeneous systems
KR100808087B1 (ko) 스트리밍 최대 휘소 투영 볼륨 렌더링 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110512

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110701

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

Year of fee payment: 3

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