DE102007020060B4 - Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting - Google Patents

Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting Download PDF

Info

Publication number
DE102007020060B4
DE102007020060B4 DE102007020060A DE102007020060A DE102007020060B4 DE 102007020060 B4 DE102007020060 B4 DE 102007020060B4 DE 102007020060 A DE102007020060 A DE 102007020060A DE 102007020060 A DE102007020060 A DE 102007020060A DE 102007020060 B4 DE102007020060 B4 DE 102007020060B4
Authority
DE
Germany
Prior art keywords
node
calculation
nodes
volume
memory
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
DE102007020060A
Other languages
English (en)
Other versions
DE102007020060A1 (de
Inventor
Alexander Ehlert
Dr. Engel Klaus
Frederik Lange
Jesko Schwarzer
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE102007020060A priority Critical patent/DE102007020060B4/de
Priority to US12/105,767 priority patent/US8203553B2/en
Publication of DE102007020060A1 publication Critical patent/DE102007020060A1/de
Application granted granted Critical
Publication of DE102007020060B4 publication Critical patent/DE102007020060B4/de
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
    • G06T15/08Volume rendering

Abstract

Verfahren zur Berechnung eines Bildes im Rahmen einer Volumendarstellung durch Ray Casting mittels einer Mehrzahl von Rechenknoten, bei der – ein darzustellendes Volumen in Teilvolumina unterteilt wird, welche den Rechenknoten zugeordnet werden, – eine der Zuordnung von Teilvolumina zu Rechenknoten entsprechende Aufteilung von Volumenpunkten zugeordneten Daten auf den Rechenknoten zugehörige Speicher vorgenommen wird, und – die Berechnung wenigstens eines Bildpunktes durch Generierung eines durch das Volumen führenden Strahls durchgeführt wird, wobei – schrittweise auf dem Strahl liegende Punkte nacheinander berücksichtigt werden, – für einen Schritt der Berechnung ein Rechenknoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechenknoten zugehörigen Speicher festgelegt wird, und – für einen weiteren Schritt der Berechnung ein weiterer Rechenknoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechenknoten zugehörigen Speicher festgelegt wird, und wobei – die von einer Teilfläche des Bildes umfassten Bildpunkte gemeinsam schrittweise bzgl. der Festlegung eines Rechenknotens für die Berechnung behandelt werden, – die Teilfläche nach Maßgabe ihrer Projektion auf das Volumen entlang der Strahlen für die Berechnung der umfassten Bildpunkte einem der Rechenknoten zugeordnet wird, – sich in einem Berechnungsschritt die Projektion der Teilfläche über mehrere Teilvolumina zumindest teilweise erstreckt und für die gemeinsame Berechnung einer der zugehörigen Rechenknoten festgelegt wird, – und bei dieser Berechnung nicht nur auf den dem ausgewählten Rechenknoten zugeordneten Speicher, sondern auch auf zumindest einen weiteren Speicher zugegriffen wird, der einem derjenigen anderen Rechenknoten zugeordnet ist, in deren zugeordnete Teilvolumina sich die Projektion zumindest teilweise erstreckt.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Berechnung eines Bildes im Rahmen einer Volumendarstellung durch Ray Casting mittels einer Mehrzahl von Rechen-Knoten.
  • Die Erfindung liegt auf dem Gebiet des Volume Rendering, d. h. der Darstellung bzw. Visualisierung von dreidimensionalen Körpern bzw. Objekten. Die Modellierung, Rekonstruktion oder Visualisierung von dreidimensionalen Objekten hat einen weiten Anwendungsbereich in den Feldern Medizin (z. B. CT, PET), Physik (z. B. Elektronenstruktur großer Moleküle) oder Geophysik (Beschaffenheit und Lage von Erdschichten). Typischerweise wird das zu untersuchende Objekt bestrahlt (z. B. mittels elektromagnetischer Wellen oder Schallwellen), um seine Beschaffenheit zu untersuchen. Die gestreute Strahlung wird detektiert und aus den detektierten Werten werden Eigenschaften des Körpers ermittelt. Üblicherweise besteht das Ergebnis in einer physikalischen Größe (z. B. Dichte, Gewebetyp, Elastizität, Geschwindigkeit), deren Wert für den Körper ermittelt wird. Dabei verwendet man in der Regel ein virtuelles Gitter, an dessen Gitterpunkten der Wert der Größe ermittelt wird. Diese Gitterpunkte werden üblicherweise als Voxel bezeichnet. Der Begriff „Voxel” ist ein aus den Begriffen „Volume” und „Pixel” gebildetes Synthesewort. Ein Voxel entspricht der Raumkoordinate eines Gitterpunktes, der der Wert einer Größe an diesem Ort zugeordnet ist. Dabei handelt es sich meist um eine physikalische Größe, die als skalares oder vektorielles Feld dargestellt werden kann, d. h. der Raumkoordinate ist der entsprechende Feldwert zugeordnet. Durch Interpolation der Voxel kann man den Wert der Größe bzw. des Feldes an beliebigen Objektpunkten (d. h. an beliebigen Ortspunkten des untersuchten Objektes) erhalten.
  • Mittels Volume Rendering wird aus den Voxeln eine dreidimensionale Darstellung des untersuchten Objekts bzw. Körpers auf einer zweidimensionalen Darstellungsfläche (z. B. Bildschirm) erzeugt. Dabei werden durch das Volume Rendering aus den Voxeln sog. Pixel erzeugt (häufig mit der Zwischenstufe von aus den Voxeln durch Interpolation gewonnenen Objektpunkten), aus welchen das Bild der zweidimensionalen Bildanzeige zusammengesetzt ist. Um auf einer zweidimensionalen Anzeige drei Dimensionen zu visualisieren, wird in der Regel ein sog. Alpha-Compositing bzw. eine Alpha-Zerlegung vorgenommen. Bei dieser Standardmethode werden Voxeln bzw. aus Voxeln gebildeten Volumenpunkten sowohl Farbwerte als auch Durchlässigkeitswerte (üblicherweise bezeichnet mit dem englischen Begriff Opacity, der die Durchlässigkeit bzw. die Deckkraft verschiedener Schichten des Körpers ausdrückt) zugeordnet. Konkreter werden einem Objektpunkt üblicherweise ein Farbwert in Form eines Drei-Tupels, der die Anteile der Farben rot, grün und blau kodiert (sog. RGB-Wert), und ein sog. Alpha-Wert, der die Durchlässigkeit parametrisiert, zugeordnet.
  • Für die Zuordnung eines passenden Farbwertes wird meist mit einem Beleuchtungsmodell gearbeitet. Dieses Beleuchtungsmodell berücksichtigt Lichteffekte (in der Regel Reflexionen des Lichtes an Oberflächen des Objektes; dabei kann es sich um die äußere Oberfläche oder um Oberflächen innere Schichten des untersuchten Objektes handeln) bei einer zum Zwecke der Visualisierung modellierten bzw. simulierten Bestrahlung des Objektes.
  • Es gibt in der Literatur eine Reihe von Beleuchtungsmodellen, die angewandt werden, beispielsweise das Phong-, Gouraud- oder Schlick-Modell. Gemeinsam ist praktisch allen verwendeten Modellen, dass für die Anwendung des Modells der Winkel zwischen dem einfallenden Licht und der Oberflächennormalen der reflektierenden Oberfläche benötigt wird. Zu diesem Zweck müssen für alle diese Modelle für die verwendeten Voxel bzw. Objektpunkte der Gradient und daraus der Normalenvektor bestimmt werden.
  • Das vielleicht meistbenutzte Verfahren zum Volume Rendering ist das sog. Ray-Casting bzw. die Simulation einer Lichteinstrahlung zur Darstellung bzw. Visualisierung des Körpers. Im Folgenden werden zentrale Elemente einer Ray-Casting-Visualisierung beschrieben. Beim sog. Ray-Casting oder Ray-Tracing, wie es für Volumenvisualisierung auch genannt wird, werden imaginäre Strahlen, die vom Auge des Betrachters ausgehen, durch den untersuchten Körper bzw. das untersuchte Objekt gesendet. Entlang der Strahlen werden Objektpunkte aus den Voxeln berechnet und zu einem zweidimensionalen Bild mittels Compositing vereinigt. Dabei werden folgende zwei wichtige Prozeduren durchgeführt, die auch getrennt voneinander ausgeführt werden können.
  • Klassifizierung:
  • Den Werten entlang der Strahlen werden Durchlässigkeitswerte bzw. Alpha-Werte zugeordnet.
  • Shading:
  • Es werden mit Hilfe eines Beleuchtungsmodells den einzelnen Punkten Farbwerte zugeordnet.
  • Es werden also für einen Strahl in (üblicherweise) äquidistanten Schritten Objektpunkte auf dem Strahl bestimmt. Für jeden Objektpunkt werden Klassifizierung und Shading durchgeführt. Das Ergebnis für Farbwert und Durchlässigkeitswert für den berechneten Objektpunkt wird iterativ mit den bereits berechneten Werten zusammengesetzt. D. h. es liegen Farbwert und Durchlässigkeitswert für den bereits durchlaufenen bzw. berechneten Strahlabschnitt vor, mit denen der Farbewert und Durchlässigkeitswert für den aktuell berechneten Objektpunkt im Sinne einer Volumensvisualisierung kombiniert werden (In der Literatur verwendet man häufig dafür den Ausdruck Compositing). Das Ergebnis für den Farbwert nach Durchlaufen des Strahls liefert dann ein Pixel. Die Gesamtheit der Pixel, die mittels der Generierung von Strahlen erzeugt wurden, setzt sich zu einer zweidimensionales Bildfläche zusammen, auf der eine dreidimensionale Darstellung des untersuchten Körpers zu sehen ist.
  • Auf Grund der hohen Anzahl von Voxeln, die für eine scharfe Darstellung des untersuchten Objektes bzw. Körpers erforderlich ist, ist der Rechenaufwand erheblich. Es besteht die Anforderung, die Rechnungen möglichst schnell durchzuführen, um dem Betrachter die Möglichkeit des (mit einer Neuberechnung des Bildes verbundenen) Perspektivenwechsels beim Betrachten des visualisierten Objektes zu eröffnen. Zum Zweck einer schnellen Berechnung ist es tunlich, die Rechenlast auf eine Mehrzahl von Recheneinheiten (Rechenknoten, Prozessoren) zu verteilen.
  • In der Veröffentlichung ”A Data Distributed, Parallel Algorithm for Ray-Traced Volume Rendering”, veröffentlicht in Parallel Rendering Symposium, San Jose, 25–26 Oct 1993, ISBN: 0-8186-4920-8, Seiten 15–22, 105, ist ein Algorithmus zur strahlbasierten Volumendarstellung offenbart. Der Volumendatenansatz wird in Subvolumina aufgeteilt, welche in lokalen Speichern verschiedener Knoten gespeichert und getrennt lokal gerendert werden.
  • Die JP 06274647 A beschreibt ein Verfahren zur Berechnung eines Bildes im Rahmen einer Volumendarstellung durch Ray Casting, wobei mehrere Rechenknoten mit zugehörigen Speicher verwendet werden.
  • In der US 6559 843 B1 ist ein Verfahren zur Volumendarstellung beschrieben, wobei ein Volumendatensatz in Teilvolumina aufgeteilt wird. Jedes Teilvolumen wird dabei in einem einem Rechenelement zugeordneten Speicher gespeichert.
  • Es ist Aufgabe der Erfindung, die verteilte Berechnung von Bildern im Zuge eines Ray Castings zu verbessern.
  • Die Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst.
  • Bei der Erfindung werden die für die im Zuge des Ray-Castings erforderlichen Berechnungen mittels einer Mehrzahl von Knoten, denen jeweils Speicher zugeordnet ist, durchgeführt. Bei diesen Knoten handelt es sich beispielsweise um Prozessoren. Diese Knoten können aber auch jede andere von Recheneinheiten darstellen, solange diese für die Übernahme von Teilaufgaben bei Berechnungen im Zuge eines Ray Castings geeignet sind.
  • Der Speicher kann beispielsweise durch Cache-Speicher gegeben sein. Generell ist jede Form von Speicher möglich, sofern die einzelnen Knoten einen zugeordneten Speicherbereich haben, auf den schneller zugegriffen werden kann als auf nicht zugeordneten Speicher. Eine derartige Situation ist z. B. in sogenannten Non-Uniform-Memory-Architecturee (NUMA) gegeben, welche dem Engpass der Speicherzugriffszeiten durch effizienteren Speicherzugriff eines Prozessors auf seinen eigenen, lokal zugewiesenen Speicher begegnen. Im Folgenden wird im Zusammenhang von dem einen Knoten zugeordneten Speicher als einem (für den Knoten) lokalen Speicher gesprochen. Nicht zugeordneter Speicher wird als nicht-lokaler Speicher bezeichnet. Dabei kann ein Speicherbereich auch für mehr als einen Knoten als lokaler Speicher fungieren.
  • Ziel des Ray-Castings ist es, ein Objekt bzw. Volumen zu visualisieren. Dazu werden das Volumen beschreibende Informationen (Voxel) bearbeitet und dann der Form eines zweidimensionalen Bildes dargestellt. Bei diesen Informationen handelt es sich beispielsweise um im Zuge einer CT-Aufnahme gegebene Grauwerte, die Volumenpunkten zugeordnet sind. Die das zu untersuchende Volumen charakterisierenden Informationen bzw. Daten werden in den den Knoten zugeordneten Speichern abgelegt. Zu diesem Zweck wird das Volumen in Subvolumina bzw. Teilvolumina unterteilt. Jedem Teilvolumen werden ein Knoten und dessen lokaler Speicher zugeordnet, wo die zum Teilvolumen gehörigen Daten (z. B. im Teilvolumen liegende Voxel) abgespeichert werden.
  • Eine zentrale Idee der Erfindung ist es nun, die Berechnung des Bildes durch die Mehrzahl von Knoten im Hinblick auf die durch das Ray-Casting vorgegebene Rechnungsweise bzw. den Berechnungsablauf durchzuführen. Beim Ray-Casting werden Strahlen simuliert, die das untersuchte Volumen durchdringen. Entlang dieser Strahlen werden Schritt für Schritt Berechnungen durchgeführt, so dass am Ende für jeden Strahl ein Bildpunkt resultiert. Erfindungsgemäß wird nun die Berechnung eines Bildpunktes mittels Generierung eines durch das zu untersuchende Volumen gesendeten Strahl Schritt für Schritt durchgeführt, wobei die einzelnen Schritte durch einen für den Berechnungsschritt geeigneten Knoten durchgeführt wird. Die Eignung eines Knotens für einen Berechnungsschritt bestimmt sich dabei aus den für diesen Schritt benötigten Daten. Die Zuordnung der Aufgabe, den Berechnungsschritt durchzuführen, zu einem Knoten kann z. B. davon abhängig gemacht werden, dass sämtliche Daten oder ein möglichst großer Teil der Daten, die für diesen Berechnungsschritt erforderlichen sind, lokal bei dem Knoten gespeichert sind. Für eventuell bei dem Berechnungsschritt erforderliche nicht lokal vorliegende Daten greift dann der Knoten auf bei anderen Knoten gespeicherte Daten zurück. In der Regel wird nur ein Strahlabschnitt in dem zugeordneten, Teilvolumen liegen, d. h. nach Abarbeitung des Teilabschnittes ist ein einem angrenzenden Teilvolumen zugeordneter Knoten für die weiteren strahlbezogenen Rechnungen geeigneter. Dann wird gegebenenfalls in Abhängigkeit eines Kriteriums ein anderer Knoten die für den Strahl erforderlichen Rechnungen übernehmen. Das Kriterium kann dabei auch auf die Geeignetheit eines Knotens für die simultane Berechnung eines Bündels oder einer Vielzahl von Strahlen abzielen. Als weiteres Kriterium für die Aufteilung der Berechnung können zusätzlich Aspekte der Lastverteilung berücksichtigt werden, vor allem im Zuge einer Überlastvermeidung.
  • Die Erfindung hat den Vorteil, dass die Berechnung eines Punktes über einen Strahl kontinuierlich durch schrittweises Abarbeiten des Strahles durchgeführt wird. Ein nachträgliches Anpassen von Strahlabschnitten zugehörigen Teilergebnissen ist somit nicht erforderlich. Weiter ist günstig, dass durch dieses strahlbezogene Berechnen die aktuell berechneten Werte für eine Optimierung der Rechnung verwendet werden können; so ist es vor allem möglich, die Berechnung des Punktes über einem Strahl zu beenden, wenn der Reststrahl keinen Beitrag mehr zum Bildpunkt liefert (Dies ist dann gegeben, wenn der Strahl im Volumen soweit vorgedrungen ist, dass das Volumen für den Strahl intransparent geworden ist).
  • Bei der Berechnung eines Punktes mittels eines Strahles ist es sinnvoll, wenn beim Wechsel des zuständigen Knotens strahlbezogene Daten von dem die Zuständigkeit verlierenden Knoten zu dem neu zuständigen Knoten übermittelt werden, so dass die Berechnung nahtlos weitergeführt werden kann.
  • Gemäß der Erfindung wird die Berechnung einer Mehrzahl von benachbarten Bildpunkten (Teilbereich oder Teilfläche des zu berechnenden Bildes) gemeinsam behandelt, d. h. es folgt eine gemeinsame Abarbeitung bzw. Zuordnung zu einem abarbeitenden Knoten. Für diese Teilfläche ist auch der englische Begriff Patch üblich. Den zunächst für den Patch zuständigen Knoten kann man festlegen, indem man den Patch auf das darzustellende Volumen projiziert und das Teilvolumen bzw. Subvolumen bestimmt, mit dem der Patch die größte Schnittfläche hat. Der dem Untervolumen zugeordnete Knoten wird dann mit der Abarbeitung des durch den Patch gegebenen Strahlenbündels betraut. Durch die schrittweise Abarbeitung des Patches wandert dieser Patch sozusagen durch das Volumen. Eine Zuordnung zu einem anderen Knoten und Berechnung durch diesen Knoten kann nun von der Lage des Patches innerhalb des Volumens abhängig gemacht werden. Mögliche Kriterien für einen Knotenwechsel sind dann, dass bei einem neuen Schritt ein anderer Knoten mehr Strahlen des Patches umfasst als der zuvor zuständige Knoten, oder dass der Patch vollständig das Volumen, das den bearbeitenden Knoten zugeordnet ist, verlassen hat.
  • Die Erfindung umfasst auch ein Rechensystem mit einer Mehrzahl von Knoten, die für die Durchführung eines erfindungsgemäßen Verfahrens ausgestaltet sind. Eine entsprechende Softwareprogrammierung ist möglich. Die für das Ray Casting erforderlichen Rechenschritte werden im Hinblick auf einen Geschwindigkeitsgewinn derzeit auch mittels Hardware-Lösungen, die auf FPGAs (field programmable gate arrays) aufsetzten, realisiert. Die Knoten des Rechensystems bilden z. B. eine NUMA-Architektur.
  • Im Folgenden wird der Erfindungsgegenstand im Rahmen eines Ausführungsbeispiels näher erläutert. Es zeigen:
  • 1: eine Beispielskonfiguration eines mit Knoten gebildeten Rechensystems.
  • 2: eine Illustration der Propagation eines Strahles durch zwei Teilvolumina.
  • 3: Unterteilung der Bildfläche in Patches und Projektion eines Patchs auf das darzustellende Volumen.
  • 4: Unterteiltes Volumen, auf welches exemplarisch zwei Patches projiziert sind.
  • 5: Illustration des Vorgehens bei Behandlung eines Patches, der nicht vollständig lokal behandelbar ist.
  • 6: Propagation eines Patches durch das Volumen.
  • 7: Tabelle mit zwischen Knoten zwecks Weiterführung der Berechnung übermittelten Werten
  • In 1 ist ein mit Knoten gebildetes System dargestellt. Zu sehen sind acht Knoten 0 bis 7, die zwei Gruppen von jeweils vier Knoten (0 bis 3 und 4 bis 7) bilden, welche über ein breitbandiges Netz 10 verbunden sind. Die Knoten bilden eine NUMA Architektur (Non-Uniform-Memory-Architecture) mit lokalem sowie nicht-lokalem Speicher für die einzelnen Knoten. D. h. man hat ein Multiprozessorsystem mit einem Speicherdesign, wo die Speicherzugriffszeit von der Position des Speichers relativ zum Prozessor bzw. zum Knoten abhängt. Bei einer NUMA-Archictectur kann ein Prozessor auf seinen eigenen lokalen Speicher schneller zugreifen als auf einen nicht lokalen Speicher, d. h. lokaler und nicht-lokaler Speicher stehen für alle Prozessoren bzw. Knoten zur Verfügung mit dem Unterschied, dass ein Zugriff auf einen lokalen Speicher deutliche Geschwindigkeitsvorteile mit sich bringt.
  • Es wird nun das darzustellende Volumen in Teilvolumina unterteilt, wobei die einzelnen Teilvolumina eine Vielzahl von Gitterpunkten umfassen, zu denen Grauwerte des Volumens vorliegen. Zwei derartige Teilvolumina 15, 13 sind in 2 gezeigt. Beide Teilvolumina sind mit einem Gitter durchsetzt, wobei die Schnittpunkte des Gitters von dem jeweiligen Teilvolumen umfassten Voxeln entsprechen, d. h. zu diesen Koordinaten liegen Grauwerte von. Im Zuge des Ray Castings wird ein Strahl durch das Volumen gesendet; dies ist in 2 mittels eines Pfeiles 31 angedeutet. Entlang dieses Pfeiles 31 werden die Grauwerte durch Interpolation in äquidistanten Schritten bestimmt und für eine Zusammensetzung zu einem Bildpunkt bearbeitet, d. h. eine Klassifizierung und ein Shading wird durchgeführt. Den Subvolumina ist jeweils ein bearbeitender Knoten zugeteilt, der in seinem lokalen Speicher die entsprechenden Grauwerte des Subvolumens speichert. Für die beiden Subvolumina aus 2 handelt es sich beispielsweise um die Knoten 5 und 3 (wie in 2 dargestellt).
  • Günstig ist es, nicht jeden Strahl einzeln zu behandeln, sondern eine Gruppe von Strahlen, bzw. entsprechenden Bildpunkten zusammenzufassen. Dies ist in 3 verdeutlicht. Es ist eine Bildfläche 11 zu sehen, die in Teilflächen bzw. Patches unterteilt ist. Ein Patch umfasst z. B. 16 × 16 Bildpunkte bzw. Strahlen. Weiter ist die Projektion eines dieser Patches auf ein darzustellendes Volumen gezeigt. Dieses Volumen ist unterteilt in Subvolumina, die jeweils einem Knoten bzw. dem lokalen Speicher eines Knotens zugeordnet sind. Durch die Ziffern auf diesen Teilvolumina wird diese Zuordnung zum Ausdruck gebracht. Das vordere Teilvolumen rechts oben ist noch mal vergrößert dargestellt; es ist dem Knoten 3 zugeordnet. Die Projektion des Patches auf das Volumen erfolgt senkrecht zu der Hauptkomponente der Blickrichtung bzw. Ausbreitungsrichtung der Strahlen. Unterhalb des Volumens sind die Projektionen des Patches auf das Volumen konstituierende Subvolumina für die verschiedenen Schichten des Volumens gezeigt. In diesem Fall liegen die Projektionen auf Grenzen von Subvolumina. Es ist daher erforderlich, nach einem Kriterium ein zugehöriges Subvolumen bzw. einen zugehörigen Knoten festzulegen bzw. zu bestimmen. Wie dies geschehen kann, ist in 4 gezeigt.
  • In 4 sieht man die Projektion von zwei Patches, wobei die erste vollständig auf einem Subvolumen, welches dem Knoten 5 zugeordnet ist, zu liegen kommt. Die Bearbeitung dieses Patches wird daher – zumindest solang der Patch innerhalb der ersten Schicht sich bewegt – dem Knoten 5 zugeteilt. Dagegen liegt der Patch 2 auf der Grenzfläche von vier Subvolumina, die den Knoten 1, 2, 5 und 6 zugeordnet sind. Ein Kriterium für die Festlegung des zuständigen Knotens ist beispielsweise die Größe der Fläche der Projektion auf dem entsprechenden Subvolumen. Hier liegt der größte Teil des Patches auf dem Subvolumen, welches dem Knoten 2 zugeordnet ist, d. h. Knoten 2 wird für die Berechnung bestimmt, wobei im Zuge der Berechnung nicht nur auf lokalen Speicher, sondern auch auf den Knoten 1, 5 bzw. 6 zugeordneten Speicher zugegriffen wird. Dies ist noch einmal anhand von 5 verdeutlicht. Die Daten des dem Knoten 2 zugeordneten Subvolumens sind lokal, d. h. der Speicherzugriff ist entsprechend schnell, während Zugriff auf die Daten, die den anderen drei Subvolumen (mit Zuordnung zu den Knoten 1, 5 und 6) zugeordnet sind, mittels eines NUMA-Auftrags bzw. Requests erfolgt.
  • In 6 ist dargestellt, wie der projizierte Patch im Zuge der Abarbeitung der einzelnen Schritte bei der Berechnung der Bildpunkte entlang der Strahlen durch das Volumen wandert bzw. propagiert wird. Es ist ersichtlich, dass die Projektion den Bereich von Teilvolumina verlässt und zu anderen Teilvolumina weiter fortschreitet. So wechseln die Teilvolumina vollständig an den Grenzen der durch die Teilvolumina gebildeten Schichten, die parallel zu dem Patch verlaufen (hier vier Schichten). Es wird daher ein Kriterium vorgegeben, nach welchem einem Neuzuordnung des Patches bei einem neuen Berechnungsschritt vorzunehmen ist. Dieses Kriterium ist beispielsweise, dass der Patch vollständig den Bereich des Teilvolumens des zuständigen Knotens verlassen hat, was beispielsweise an den Grenzen der Schichten passiert. Ein alternatives Kriterium ist dadurch gegeben, dass jeweils das Teilvolumen (bzw. der dem Teilvolumen zugehörige Knoten) zugeordnet wird, das die meisten Strahlen des Patches umfasst. Dies berücksichtigt dann auch Änderungen innerhalb einer Schicht.
  • Wie aus dem Vorherigen ersichtlich ist, wechselt die Zuständigkeit der Knoten für die Berechnung des Patches bzw. der entsprechenden Bildpunkte. Um eine nahtlose Berechnung entlang der durch den Patch umfassten Strahlen durchzuführen, wird eine Kommunikation zwischen Knoten bei der Übergabe der Zuständigkeit vorgesehen, so dass die Berechnung nahtlos weitergeführt werden kann. Dabei wird die Menge der übermittelten Informationen nach Möglichkeit beschränkt, um die dadurch entstehende zusätzliche Ressourcen-Beanspruchung zu minimieren. Typische strahlbezogene Informationen sind in 7 gezeigt, welche gleichzeitig das Format der übermittelten Datenpakete beschreibt. Dabei werden folgende Informationen übergeben: der Startpunkt eines Strahls (RayStart) sowie dessen Richtung (RayDirection), die aktuellen Farbwerte des Strahles beim letzten Bearbeitungsschritt (RayColor) sowie der aktuelle Transparenzwert (RayOpacity), der letzte Grauwert (RayPrevVoxelColor) und eine den Strahl betreffende Zustandsinformation (RayState). Eine weitere wichtige Information ist die Schrittweite, mit der die Farbwertberechnung entlang des Strahles vorgenommen wird. Diese Information ist in der Länge des Richtungsvektors (RayDirection) enthalten.
  • Das Ausführungsbeispiel zeigt nur eine Ausgestaltung des Erfindungsgegenstandes. Weitere sind dem Fachmann ohne weiteres aus der Beschreibung der Erfindung ableitbar.

Claims (9)

  1. Verfahren zur Berechnung eines Bildes im Rahmen einer Volumendarstellung durch Ray Casting mittels einer Mehrzahl von Rechenknoten, bei der – ein darzustellendes Volumen in Teilvolumina unterteilt wird, welche den Rechenknoten zugeordnet werden, – eine der Zuordnung von Teilvolumina zu Rechenknoten entsprechende Aufteilung von Volumenpunkten zugeordneten Daten auf den Rechenknoten zugehörige Speicher vorgenommen wird, und – die Berechnung wenigstens eines Bildpunktes durch Generierung eines durch das Volumen führenden Strahls durchgeführt wird, wobei – schrittweise auf dem Strahl liegende Punkte nacheinander berücksichtigt werden, – für einen Schritt der Berechnung ein Rechenknoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechenknoten zugehörigen Speicher festgelegt wird, und – für einen weiteren Schritt der Berechnung ein weiterer Rechenknoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechenknoten zugehörigen Speicher festgelegt wird, und wobei – die von einer Teilfläche des Bildes umfassten Bildpunkte gemeinsam schrittweise bzgl. der Festlegung eines Rechenknotens für die Berechnung behandelt werden, – die Teilfläche nach Maßgabe ihrer Projektion auf das Volumen entlang der Strahlen für die Berechnung der umfassten Bildpunkte einem der Rechenknoten zugeordnet wird, – sich in einem Berechnungsschritt die Projektion der Teilfläche über mehrere Teilvolumina zumindest teilweise erstreckt und für die gemeinsame Berechnung einer der zugehörigen Rechenknoten festgelegt wird, – und bei dieser Berechnung nicht nur auf den dem ausgewählten Rechenknoten zugeordneten Speicher, sondern auch auf zumindest einen weiteren Speicher zugegriffen wird, der einem derjenigen anderen Rechenknoten zugeordnet ist, in deren zugeordnete Teilvolumina sich die Projektion zumindest teilweise erstreckt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Rechen Knoten mit ihren Speichern eine Non-Uniform Memory Architecture bilden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei einem Wechsel des für die Berechnung zuständigen Rechen Knotens strahlbezogene Daten von dem die Zuständigkeit verlierenden zu dem neu zuständigen Rechen Knoten übermittelt werden.
  4. Verfahren nach einem der vorhergehende Ansprüche, dadurch gekennzeichnet, dass die Teilfläche einem Rechen Knoten nach Maßgabe der Größe der Projektion der Teilfläche auf das dem Rechen Knoten zugehörige Teilvolumen zugeordnet wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass – die Zuordnung zu einem Rechen Knoten nach Maßgabe des Fortschreitens der Projektion der Teilfläche gemäß der schrittweisen Berücksichtigung von auf den Strahlen liegenden Punkten durch das Volumen geändert wird, und – eine Zuordnung zu einem anderen Rechen Knoten nach Maßgabe eines Kriteriums für die Position der Projektion der Teilfläche in dem Volumen vorgenommen wird.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Kriterium entweder darin besteht, dass kein Punkt der Projektion mehr in dem zugeordneten Teilvolumen liegt oder dass ein anderes Teilvolumen einen größeren Teil der Projektion umfasst.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Kriterium für die Festlegung eines Rechen Knoten für einen Berechnungsschritt neben den für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechen Knoten zugehörigen Speicher noch die Rechenlast der Rechen Knoten verwendet wird.
  8. Rechensystem mit einer Mehrzahl von Knoten, welches für die Durchführung eines Verfahren zur Berechnung eines Bildes im Rahmen einer Volumendarstellung durch Ray Casting mittels der Mehrzahl von Rechen Knoten ausgestaltet ist, bei dem – ein darzustellendes Volumen in Teilvolumina unterteilt wird, welche den Rechen Knoten zugeordnet werden, – eine der Zuordnung von Teilvolumina zu Rechen Knoten entsprechende Aufteilung von Volumenpunkten zugeordneten Daten auf den Rechen Knoten zugehörige Speicher vorgenommen wird, – die Berechnung wenigstens eines Bildpunktes durch Generierung eines durch das Volumen führenden Strahls durchgeführt wird, – schrittweise auf dem Strahl liegende Punkte nacheinander berücksichtigt werden, – für einen Schritt der Berechnung ein Rechen Knoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Rechen Knoten zugehörigen Speicher festgelegt wird, und – für einen weiteren Schritt der Berechnung ein weiterer Knoten nach Maßgabe von für diesen Schritt der Berechnung benötigten Daten und deren zumindest teilweiser Abspeicherung in dem dem Knoten zugehörigen Speicher festgelegt wird, wobei – die von einer Teilfläche des Bildes umfassten Bildpunkte gemeinsam Schrittweise bzgl. der Festlegung eines Rechen Knotens für die Berechnung behandelt werden, – die Teilfläche nach Maßgabe ihrer Projektion auf das Volumen entlang der Strahlen für die Berechnung der umfassten Bildpunkte einem der Rechen Knoten zugeordnet wird, – sich in einem Berechnungsschritt die Projektion der Teilfläche über mehrere Teilvolumina zumindest teilweise erstreckt und für die gemeinsame Berechnung einer der zugehörigen Rechen Knoten festgelegt wird, und – bei dieser Berechnung nicht nur auf den dem ausgewählten Rechen-Knoten zugeordneten Speicher, sondern auch auf zumindest einen weiteren Speicher zugegriffen wird, der einem derjenigen anderen Rechen Knoten zugeordnet ist, in deren zugeordnete Teilvolumina sich die Projektion zumindest teilweise erstreckt.
  9. Rechensystem nach Anspruch 8, dadurch gekennzeichnet, dass die Rechen Knoten mit ihren Speichern eine Non-Uniform Memory Architecture bilden.
DE102007020060A 2007-04-27 2007-04-27 Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting Expired - Fee Related DE102007020060B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102007020060A DE102007020060B4 (de) 2007-04-27 2007-04-27 Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting
US12/105,767 US8203553B2 (en) 2007-04-27 2008-04-18 Distributed calculation of images of volumetric objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007020060A DE102007020060B4 (de) 2007-04-27 2007-04-27 Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting

Publications (2)

Publication Number Publication Date
DE102007020060A1 DE102007020060A1 (de) 2008-11-06
DE102007020060B4 true DE102007020060B4 (de) 2013-12-05

Family

ID=39809480

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007020060A Expired - Fee Related DE102007020060B4 (de) 2007-04-27 2007-04-27 Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting

Country Status (2)

Country Link
US (1) US8203553B2 (de)
DE (1) DE102007020060B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8564617B2 (en) * 2010-01-12 2013-10-22 International Business Machines Corporation Accelerated volume rendering
JP5551955B2 (ja) * 2010-03-31 2014-07-16 富士フイルム株式会社 投影画像生成装置、方法、及びプログラム
DE102011076878A1 (de) * 2011-06-01 2012-12-06 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur effizienten Editierung eines dreidimensionalen Volumens mittels Ray Casting
EP3593529B1 (de) * 2017-03-06 2022-07-06 Gelsight, Inc. Oberflächentopographiemesssysteme

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274647A (ja) * 1993-03-17 1994-09-30 Nec Corp ローカルメモリ型並列可視化装置
US20020048401A1 (en) * 2000-09-01 2002-04-25 Yuri Boykov Graph cuts for binary segmentation of n-dimensional images from object and background seeds
US6559843B1 (en) * 1993-10-01 2003-05-06 Compaq Computer Corporation Segmented ray casting data parallel volume rendering
US7031517B1 (en) * 1998-10-02 2006-04-18 Canon Kabushiki Kaisha Method and apparatus for segmenting images
US20060239553A1 (en) * 2005-03-28 2006-10-26 Charles Florin CT/MRI heart isolation using a graph cut algorithm

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674430B1 (en) * 1998-07-16 2004-01-06 The Research Foundation Of State University Of New York Apparatus and method for real-time volume processing and universal 3D rendering
US6664961B2 (en) * 2000-12-20 2003-12-16 Rutgers, The State University Of Nj Resample and composite engine for real-time volume rendering
US7301538B2 (en) * 2003-08-18 2007-11-27 Fovia, Inc. Method and system for adaptive direct volume rendering
US7333107B2 (en) * 2005-08-18 2008-02-19 Voxar Limited Volume rendering apparatus and process

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274647A (ja) * 1993-03-17 1994-09-30 Nec Corp ローカルメモリ型並列可視化装置
US6559843B1 (en) * 1993-10-01 2003-05-06 Compaq Computer Corporation Segmented ray casting data parallel volume rendering
US7031517B1 (en) * 1998-10-02 2006-04-18 Canon Kabushiki Kaisha Method and apparatus for segmenting images
US20020048401A1 (en) * 2000-09-01 2002-04-25 Yuri Boykov Graph cuts for binary segmentation of n-dimensional images from object and background seeds
US20060239553A1 (en) * 2005-03-28 2006-10-26 Charles Florin CT/MRI heart isolation using a graph cut algorithm

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K.-L. Ma, J. S. Painter, C. D. Hansen, M. F. Krogh: A Data Distributed, Parallel Algorithm for Ray-Traced Volume Rendering. In: Parallel Rendering Symposium, San Jose, CA, 25-26 Oct. 1993, ISBN: 0-8186-4920-8, S. 15-22, 105. *
M. Linkenheil: "Graph-Cut-Segmentierung für die medizinische Bildverarbeitung, Deutsches Krebs- forschungszentrum Heidelberg, August 2005, S. i-iv, 1-85. *

Also Published As

Publication number Publication date
US20080297508A1 (en) 2008-12-04
US8203553B2 (en) 2012-06-19
DE102007020060A1 (de) 2008-11-06

Similar Documents

Publication Publication Date Title
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
EP3178068B1 (de) Verfahren, visualisierungsvorrichtung und computerprogrammprodukt zur visualisierung eines dreidimensionalen objekts
DE102009042328B4 (de) Effiziente Bestimmung von Lichteffekten beim Volume Rendering
EP2005259B1 (de) Verfahren zum rendern und generieren computer-generierter videohologramme in echtzeit
DE3407983A1 (de) Mehrprozessorrechnersystem zum verarbeiten in einer hierarchischen datenstruktur definierter objektelemente zu einer farbigen abbildung
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE102004007835A1 (de) Vorrichtung zur Darstellung von dynamischen komplexen Szenen
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE112019005672T5 (de) Erzeugung stellungsvarianter 3d-gesichtsattribute
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE102013018445A1 (de) Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit
DE102017102952A1 (de) Eine Vorrichtung zum Erzeugen eines dreidimensionalen Farbbildes und ein Verfahren zum Produzieren eines dreidimensionalen Farbbildes
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE102011076878A1 (de) Verfahren und Vorrichtung zur effizienten Editierung eines dreidimensionalen Volumens mittels Ray Casting
DE102009042326A1 (de) Interaktive Veränderung der Darstellung eines mittels Volume Rendering dargestellten Objekts
EP0829822A2 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
DE102007020060B4 (de) Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting
DE102019200270A1 (de) Bereitstellen eines Differenzbilddatensatzes und Bereitstellen einer trainierten Funktion
EP3591611A1 (de) Bestimmen eines differenzbilddatensatzes eines untersuchungsvolumens
DE102014105146B4 (de) System, Verfahren und Computerprogrammprodukt zum Durchführen einer Pfad-Raum-Filterung
DE102013014779A1 (de) Textelement-datenstruktur für programmierbare schattierungseinheit für eine graphikverarbeitungseinheit und verfahren zum betreiben davon
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
DE102020210030A1 (de) Verfahren und Vorrichtung zur Visualisierung von dreidimensionalen Objekten
DE69830572T2 (de) Verbesserung an künstlicher bilderzeugung
WO2002061686A1 (de) Verfahren und vorrichtung zur bildrekonstruktion eines raumvolumens

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8181 Inventor (new situation)

Inventor name: LANGE, FREDERIK, 91052 ERLANGEN, DE

Inventor name: SCHWARZER, JESKO, 53179 BONN, DE

Inventor name: EHLERT, ALEXANDER, 73249 WERNAU, DE

Inventor name: ENGEL, KLAUS, DR., 90491 NUERNBERG, DE

R019 Grant decision by federal patent court
R020 Patent grant now final

Effective date: 20140306

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141101