DE19806985B4 - Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht - Google Patents

Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht Download PDF

Info

Publication number
DE19806985B4
DE19806985B4 DE19806985A DE19806985A DE19806985B4 DE 19806985 B4 DE19806985 B4 DE 19806985B4 DE 19806985 A DE19806985 A DE 19806985A DE 19806985 A DE19806985 A DE 19806985A DE 19806985 B4 DE19806985 B4 DE 19806985B4
Authority
DE
Germany
Prior art keywords
volume
sub
volumes
group
data set
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
DE19806985A
Other languages
English (en)
Other versions
DE19806985A1 (de
Inventor
Barthold Fort Collins Lichtenbelt
Hasan Shahzad Fort Collins Naqvi
Tom Palo Alto Malzbender
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19806985A1 publication Critical patent/DE19806985A1/de
Application granted granted Critical
Publication of DE19806985B4 publication Critical patent/DE19806985B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

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

Abstract

Cache-effizientes Organisationsverfahren für volumetrische Daten zur aufbereiteten Anzeige eines Volumendatensatzes (302) auf einer zweidimensionalen Graphikanzeige (110) eines Computersystems (100) mit folgenden Schritten:
(a) Wiedergewinnen (202) des Volumendatensatzes (302) von einem Speichermedium (112);
(b) Auswählen (206) eines gesamten Teilvolumens (304) aus dem Volumendatensatz (302);
(c) Umwandeln (212) jeder Adresse eines Voxel-Tupels des gesamten Teilvolumens (304) in eine lineare Adresse;
(d) Verarbeiten (212, 214, 216) des Teilvolumens (304) durch ein Volumenaufbereitungssystem (120); und
(e) Wiederholen der Schritte (b) bis (d) für jedes Teilvolumen (304) des Volumendatensatzes (302).

Description

  • Diese Erfindung bezieht sich auf Computersysteme und insbesondere auf die graphische Anzeige von diskreten Objekten in Computersystemen. Noch spezieller bezieht sich die Erfindung auf eine Volumenaufbereitung für eine Graphikanzeige, die ein Organisationsverfahren für volumetrische Daten verwendet, das zur Volumenaufbereitung Cache-effizient und effizient für einen Hardware-Entwurf und eine -Verwendung ist.
  • Die Volumenaufbereitung ist ein wichtiger Zweig von Computergraphiken, der hinter der Entwicklung der geometrischen Aufbereitung und der Pixelaufbereitung folgt. Volumenaufbereitung bezieht sich auf die direkte Aufbereitung eines Volumendatensatzes, der auch als ein "Volumen" bezeichnet wird, um die Charakteristika des Inneren eines körperlichen Objekts zu zeigen, wenn dasselbe auf einer zweidimensionalen Graphikvorrichtung angezeigt wird. Ein Volumendatensatz ist ein dreidimensionales Array von Voxeln. Diese Voxel sind typischerweise auf einem Gitter mit regelmäßigen Abständen organisiert. Voxel wurden als Abtastpunkte definiert, die durch einen finiten Abstand getrennt sind. Jedes Voxel besitzt eine Position und einen Wert. Die Voxel-Position ist ein Drei-Tupel, das eine x-, y- und z-Position in dem dreidimensionalen Voxelarray (3D-Voxelarray) spezifiziert. Der Voxelwert hängt von seinem Format ab. Beispielsweise kann ein Voxel ein Intensitätselement und ein Indexelement aufweisen. Diese Elemente werden bei dem Volumenaufbereitungsprozeß üblicherweise unterschiedlich behandelt. Die Sammlung der Werte für alle Punkte in dem Volumen wird als Skalarfeld des Volumens bezeichnet.
  • Volumendatensätze können durch zahlreiche Einrichtungen er zeugt werden, jedoch am üblichsten durch bestimmte Verfahren einer dreidimensionalen Abtastung oder Stichprobenentnahme und durch eine numerische Modellierung. Beispielsweise kann ein Volumendatensatz durch eine Magnetresonanzbilderzeugung (Magnetic Resonance Imaging), oder MRI, erzeugt werden, bei der die Dichte von menschlichem oder tierischem Gewebe an jedem Punkt eines dreidimensionalen Gitters berechnet wird. Eine Anzeige dieser Informationen könnte die Grenzen der verschiedenen Gewebetypen, wie sie durch Dichteänderungen angezeigt sind, anzeigen. Die Volumenaufbereitung ist das Verfahren des Anzeigens dieser Daten auf einer zweidimensionalen Graphikvorrichtung.
  • Das Koordinatensystem des Volumens wird als der Quellenraum bezeichnet. Das allererste Voxel in einem Volumendatensatz in dem Quellenraum besitzt die Koordinaten (x0, y0, z0), wobei x0, y0 und z0 den untersten Wert aller x-, y- und z-Positionen in dem Volumendatensatz darstellen, wobei diese Koordinaten als der Ursprung des Volumendatensatzes betrachtet werden. Normalerweise sind die Koordinaten für dieses Ursprung-Voxel auf (0,0,0) eingestellt. Die drei Koordinaten entsprechen der Reihe nach der Spalte, der Zeile und dem Schnitt des Bilds in dem Volumendatensatz. Das letzte Voxel in einem Volumendatensatz befindet sich in der diagonalen entgegengesetzten Ecke bezüglich des Ursprungsquellen-Voxels des Volumendatensatzes. Die Koordinaten desselben sind mit (xu, yu, zu) bezeichnet, wobei xu, yu und zu die obersten Werte aller x-, y- und z-Positionen in dem Volumendatensatz darstellen.
  • Volumendatensätze können ziemlich groß sein und können folglich die Betriebsmittel des Computersystems belasten. Beispielsweise kann ein typischer Volumendatensatz von einer MRI-Abtasteinrichtung 6,7 Millionen Voxel oder mehr enthalten, wohingegen Polygon-Datensätze für eine geometrische Aufbereitung typischerweise weniger als eine halbe Million Polygone enthalten. Folglich existiert ein viel größerer Bedarf nach einer Spezialzweckhardwarebeschleunigung, wenn Vo lumen aufbereitet werden. Spezielle Graphikhardware ist entworfen, um Graphikalgorithmen sehr schnell auszuführen, viel schneller als der Prozessor in einer typischen Computer-Workstation. Ein chipinterner Cache (on chip cache) ist ein RAM, der sich physikalisch auf dem Graphikhardwarechip oder dem Prozessorchip befindet. Ein chipinterner RAM ist viel billiger als ein externer RAM und arbeitet viel schneller.
  • Bei der Volumenaufbereitung ist es häufig notwendig, in der Lage zu sein, das aufbereitete Bild von verschiedenen Projektionen zu betrachten. Das Koordinatensystem des Betrachters wird als der Betrachtungsraum oder Bildraum bezeichnet. Dasselbe beschreibt, von welcher Richtung der Volumendatensatz betrachtet und aufbereitet wird. Folglich ist ein Schlüsselschritt bei dem Volumenaufbereitungsverfahren die dreidimensionale räumliche Volumentransformation des ursprünglichen Volumendatensatzes von dem Quellenraum in den Betrachtungsraum. Typische erforderliche Transformationstypen können ein Zoomen, ein Schwenken, eine Drehung und ein gerader Schnitt des Eingangsvolumens für eine Projektion in eine Ausgangsrastertyp-Anzeigevorrichtung sein. Sobald eine Transformation durchgeführt wurde, müssen verschiedene Umtasttechniken (Resampling Techniques) angewendet werden, beispielsweise eine Interpolation des nächstliegenden Nachbarn oder eine trilineare Interpolation, zusätzlich zu anderen Schritten in der Volumenaufbereitungspipeline, um Pixelwerte zur Aufbereitung zu bestimmen.
  • Ein Strahl ist eine imaginäre Linie, die von einem Pixel auf einer Bildebene ausgeht und durch das Volumen verläuft. Auf diesem Strahl werden diskrete Schritte verwendet, wobei an jedem Schritt Abtastpunkte entlang des Strahls interpoliert werden. Abtastpunkte entlang des Strahls von der Bildebene zu dem Volumen tragen nicht zu dem aufbereiteten Bild bei, ebenso wie Abtastpunkte entlang des Strahls, nachdem der Strahl das Volumen verlassen hat. Abhängig von der Ansicht, die durch den Benutzer gewünscht ist, ist es möglich, daß einige Strahlen überhaupt nicht durch das Volumen verlaufen und somit nichts zu dem aufbereiteten Bild beitragen. Herkömmliche Volumenaufbereitungsimplementierungen verarbeiten typischerweise alle Abtastpunkte entlang eines Strahls ungeachtet dessen, ob der Strahl durch das Volumen verläuft oder nicht, oder ungeachtet dessen, ob die Abtastpunkte entlang des Strahls innerhalb des Volumens liegen oder nicht. Diese Implementierungen erfordern, um die Aufbereitungszeit zu verringern, häufig spezielle Hardwarelösungen, um zu überprüfen und zu verfolgen, wohin die Abtastpunkte fallen. Folglich wird eine große Menge von Zeit- und System-Betriebsmitteln bei dem Aufbereitungsverfahren durch die Überprüfung und Verfolgung der Abtastpunkte, die zum Aufbereiten des Bilds nicht benötigt werden, verschwendet. Dies verlangsamt das Aufbereitungsverfahren stark und erfordert kostspielige Aufwendungen für die Hardware.
  • Die Volumenaufbereitung ist eine sehr rechenintensive Technik. Nur die heutigen leistungsstärksten Supercomputer sind in der Lage, vernünftige Aufbereitungsgeschwindigkeiten zu erreichen. Einer der Flaschenhälse beim Erreichen vernünftiger Aufbereitungsgeschwindigkeiten ist die Organisation und die Wiedergewinnung des Volumendatensatzes in dem Hauptspeicher. Volumendatensätze werden als eine Datenstruktur betrachtet, die aus einem Stapel von Schnitten, oder Bildern, besteht, die zweidimensional sind. Die normale und natürliche Art des Arbeitens mit einem Volumendatensatz ist auf einer Schnitt-Um-Schnitt-Basis.
  • Jedoch enthält jeder Schnitt eine große Anzahl von Voxeln. Ein typischer Volumenaufbereitungsalgorithmus wird mindestens mit drei Schnitten gleichzeitig arbeiten müssen. Dies ist der Fall, da sich Voxel, die in dem Volumendatensatz nebeneinander liegen, auf unterschiedlichen Schnitten befinden. Die Voxelmenge in drei Schnitten wird typischerweise jede Datenspeichergröße für einen chipinternen Cache, der heutzutage möglich ist, überschreiten. Diese Voxel, die über aufeinanderfolgende Schnitte nebeneinander liegen, werden nicht linear in dem Speicher gespeichert, was ebenfalls die Cache-Effizienz unterbricht. Zusätzlich macht es das Arbeiten mit Schnitten unzweckmäßig, den Schnitt als erwünschte oder nicht-erwünschte Daten enthaltend auszuwählen, da der Schnitt die gesamte Breite und Höhe des Volumendatensatzes überspannt. In den meisten Fällen wird nahezu jeder Schnitt einige interessierende Voxel enthalten.
  • In der Technik existiert ein Bedarf nach einem verbesserten Verfahren zur Volumenaufbereitung, das bezüglich der Datenorganisation Cache-effizient ist. In der Technik existiert ferner ein Bedarf danach, nur erwünschte Daten aus einem Volumendatensatz zu verarbeiten, um die Aufbereitungszeit zu verkürzen. Es existiert ein weiterer Bedarf in der Technik nach einem Verfahren, das keinen externen RAM in der Graphikhardware erfordert, sondern stattdessen den kleinen chipinternen RAM benutzen kann. Ein weiterer Bedarf in der Technik besteht nach einem Verfahren, das Volumendatensätze nicht auf einer Basis Schnitt um Schnitt verarbeitet, was weder Cache-effizient noch Graphikhardware-effizient ist. In der Technik existiert ferner ein Bedarf danach, in der Lage zu sein, Volumendatensätze linear auf einem Speichermedium, beispielsweise in einem Speicher oder auf einer Platte, zu speichern, sowie in ausreichend kleinen Größen, um einen Cache zu benutzen, ohne denselben zu überlasten. Ein weiterer Bedarf in der Technik besteht nach einem Volumenaufbereitungsverfahren, das einen Volumendatensatz von einem Speicher oder einer Platte aufruft und denselben nur einmal verarbeitet, um die Aufbereitungszeit zu verkürzen. Es ist folglich offensichtlich, daß in der Technik ein Bedarf nach einem verbesserten Verfahren zur Datenorganisation für die Volumenaufbereitung besteht, das diese Aufgaben löst. Die vorliegende Erfindung erfüllt diese Bedürfnisse.
  • Die US-A-5,187,660 betrifft eine Anordnung zum Anzeigen von Volumendaten, welche das Unterteilen von Volumendaten in einer Anzahl von Teilblöcken zeigt. Diese Teilblöcke basieren auf der Anzahl von Prozessoren, die in dem Computerbildverarbeitungssystem vorhanden sind. Die Lehre dieser Schrift ist auf die Darstellung von dreidimensionalen Daten auf einem zweidimensionalen Anzeigegerät innerhalb eines Multi-Prozessor-Computersystems gerichtet. Die Motivation zum Aufteilen des Volumendatensatzes besteht darin, den Vorteil der Mehrzahl von Prozessoren auszunutzen, indem die Volumendaten gleichzeitig in der Mehrzahl von Prozessoren für eine entsprechende Volumenaufbereitung verarbeitet werden. Hierfür wird die Anzahl von Voxeln bestimmt, die in jedem Teilblock enthalten sind, nämlich durch Teilen der Gesamtzahl von Voxeln in dem Volumendatensatz durch die Gesamtanzahl von verfügbaren Prozessoren. Anschließend wird dann eine erste Reihe von Voxeln für einen ersten Teilblock in einen ersten Prozessor, eine zweite Reihe von Voxeln für einen zweiten Teilblock in einen zweiten Prozessor und eine n-te Reihe von Voxeln für einen n-ten Teilblock in einen n-ten Prozessor geladen. Nachdem jeder Prozessor eine erste Reihe von Voxeln für einen Teilblock erhalten hat, wird dieser Prozess für eine zweite Reihe von Voxeln für einen Teilblock wiederholt und immer wieder wiederholt, bis eine erste Scheibe jedes Teilblocks verarbeitet wurde. Dieser Prozess wird dann für die verbleibenden Scheiben jedes Teilblocks wiederholt. Nachdem jedes Voxel in jeder Reihe eines Teilblocks durch deren zugeordneten Prozessor erhalten wird, wandelt der Prozessor jedes Voxel in x, y und z-Pixelkoordinate um. Ein Intensitätspegel wird dann für jedes Pixel bestimmt, der von dem durch den Anwender ausgewählten Aufbereitungsmodus abhängt.
  • Die US-A-5,557,711 beschreibt ein Verfahren und eine Vorrichtung zur Volumenaufbereitung, wobei hier der Objektraum zwischen einer Mehrzahl von Verarbeitungseinheiten aufgeteilt wird. Jede Verarbeitungseinheit erzeugt eine Ansicht der Daten, die auf einen Abschnitt des Objektraums be schränkt ist. Die so erzeugte Ansicht wird dann durch eine Mehrzahl von Prozessoren kombiniert, um die Ansicht des Objekts zu erzeugen.
  • Die GB 2 286 071 A beschreibt ein Cache-Speichersystem für Daten, die in einem mehrdimensionalen Raum Array-artig angeordnet sind. Die gerade genannten Schriften zeigen keine Umwandlung einer Adresse eines Voxel-Tupels eines Teilvolumens in eine lineare Adresse.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein Cache-effizientes Verfahren zur volumetrischen Datenorganisation zu schaffen, das bei der aufbereiteten Anzeige ein verbessertes Verhalten ermöglicht.
  • Diese Aufgabe wird durch Verfahren gemäß den Ansprüchen 1 und 8 gelöst.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, einen Volumendatensatz durch ein Verfahren zu organisieren, das Blockbildung genannt wird, bei dem der Volumendatensatz in kleinere Teilvolumina unterteilt wird, die auf eine sehr Cache-effiziente Art und Weise durch ein Volumenaufbereitungssystem verarbeitet werden können.
  • Ein weiterer Vorteil der Erfindung besteht darin, daß jedes Teilvolumen ausgewählt werden kann, wenn es gewünschte Daten enthält, wobei nur diejenigen Teilvolumen durch das Volumenaufbereitungssystem verarbeitet werden, die gewünschte Daten enthalten.
  • Noch ein weiterer Vorteil der Erfindung besteht darin, die Teilvolumina klein genug zu machen, so daß ein gesamtes Teilvolumen in den Prozessor-Cache paßt, wenn dasselbe aufgerufen wird.
  • Noch ein weiterer Vorteil der Erfindung besteht darin, die Teilvolumina klein genug zu machen, so daß eine spezielle Graphikhardware nur einen kleinen chipinternen RAM benötigt, um das Bild effizient aufzubereiten.
  • Ein weiterer Aspekt der Erfindung besteht darin, jedes Voxel-Tupel in einem Teilvolumen in eine lineare Adresse umzuwandeln, so daß die Voxel für eine Cache-Effizienz linear auf einem Speichermedium gespeichert werden können.
  • Noch ein weiterer Vorteil der Erfindung besteht darin, ein Teilvolumen mit gewünschten Daten in dem Volumenaufbereitungsverfahren nur einmal zu verarbeiten.
  • Die obigen und weitere Vorteile der Erfindung werden in ei nem Organisationsverfahren für volumetrische Daten erreicht, das eine Cache-effiziente Volumenaufbereitung und einen effizienten Graphikhardware-Entwurf und eine -Verwendung ermöglicht. Die Erfindung verwendet ein Konzept, das als Blockbildung bezeichnet wird. Die Blockbildung ist das Verfahren des Aufteilens eines Volumendatensatzes in viel kleinere Teilvolumina oder Blöcke. Diese Teilvolumina oder Blöcke können zusammen verwendet werden, um das ursprüngliche Volumen wiederherzustellen.
  • Jedes Teilvolumen ist für sich selbst ein dreidimensionaler Volumendatensatz und kann durch ein Volumenaufbereitungssystem als solcher behandelt werden. Jedes Teilvolumen ist auf eine lineare Weise in einem Hauptspeicher oder auf einer Platte gespeichert. Dies wird erreicht, indem jedes Voxel-Tupel in dem Teilvolumen in eine lineare Adresse umgewandelt wird. Das bedeutet, daß alle Voxel in dem Teilvolumen in einem zusammenhängenden Teil des Hauptspeichers gespeichert sind. Wenn die Teilvolumina klein genug gemacht werden, wird das Teilvolumen basierend auf der Konfiguration des eingeschlossenen Computersystems und der verwendeten Anwendungssoftware ohne weiteres in den Cache passen, wenn es aufgerufen wird. Eine typische Teilvolumengröße liegt in der Nachbarschaft von 5% der Cache-Größe.
  • Ein Cache ist auf eine solche Weise entworfen, daß derselbe nur für Daten effizient ist, die linear in einem Hauptspeicher gespeichert sind. Das Volumenaufbereitungssystem verarbeitet ein Teilvolumen zu einer Zeit. Da das gesamte Teilvolumen in den Cache paßt, muß der Prozessor niemals darauf warten, daß Daten aus einem Hauptspeicher ankommen, wenn derselbe jedes Teilvolumen verarbeitet. Sobald das Volumenaufbereitungssystem das erste Teilvolumen fertig hat, wird dasselbe das zweite Teilvolumen aufrufen und die Bearbeitung desselben beginnen. Somit muß jedes Teilvolumen nur einmal zur Verarbeitung aufgerufen werden, was die Aufbereitungszeit stark reduziert.
  • Die Verwendung von Blöcken oder Teilvolumen weist den zusätzlichen Vorteil auf, die Belastung zu verringern, die auf einer speziellen Graphikhardware plaziert wird. Die kleinen Teilvolumina ermöglichen, daß sich der Cache für eine solche Graphikhardware auf dem Chip befindet, und nicht extern, was den Chipentwurf vereinfacht, wobei der RAM für den chipinternen Cache nicht groß sein muß. Die Größe der Teilvolumina kann variiert werden, um zu der spezifischen Konfiguration des Computersystems und der Graphikhardware, die durch ein Anwendungsprogramm verwendet werden, zu passen.
  • Die Blockbildung kann durch zwei unterschiedliche Techniken erreicht werden: eine überlappende Blockbildung oder eine nicht-überlappende Blockbildung. Bei der nicht-überlappenden Blockbildung weist jedes Teilvolumen eine Basisgröße auf, die durch sechs Begrenzungs-Ebenen oder -Flächen umrissen ist, die Voxel aufweisen, die sich auf den Flächen befinden, ebenso wie innere Voxel, die durch die Ebenen begrenzt sind. Jedes Teilvolumen enthält einen Satz von Voxeln, die eindeutig für ein jeweiliges Teilvolumen sind. Bei diesem Verfahren existiert keine Vervielfachung von Voxeln zwischen Teilvolumen. Da jedoch Abtastpunkte auf Strahlen, die durch den Volumendatensatz geworfen werden, aus den Grenzen aller nicht-überlappender Teilvolumen fallen können, wird das Volumenaufbereitungssystem gleichzeitig auf mehrere Teilvolumen zugreifen müssen, um eine Interpolation der Abtastpunkte und Gradientenberechnungen durchzuführen. Folglich kann es bei dieser nicht-überlappenden Blockbildungstechnik notwendig sein, das Teilvolumen, das verarbeitet wird, plus bis zu 26 umgebende Teilvolumina aufzurufen und in dem Cache zu plazieren. Diese Technik plaziert verglichen mit der überlappenden Blockbildungstechnik eine größere Belastung auf der Graphikhardware.
  • Bei der überlappenden Blockbildungstechnik weist jedes Teilvolumen eine Basisgröße auf, die durch sechs Begrenzungsebenen oder Flächen umrissen ist, die Voxel aufweisen, die auf den Flächen angeordnet sind, ebenso wie innere Voxel, die durch die Ebenen begrenzt sind. Die Grenzebenen und die Voxel, die auf denselben angeordnet sind, werden von benachbarten Teilvolumen gemeinsam verwendet. Jedes Teilvolumen wird dann über seine Basisgröße hinaus ausgedehnt, um die nächstliegenden Voxel von bis zu 26 umgebenden Teilvolumina zu enthalten, die auf sechs neuen Begrenzungsebenen angeordnet sind. Die sechs neuen Begrenzungsebenen verlaufen parallel zu den ursprünglichen sechs Ebenen, befinden sich jedoch in einer Richtung von dem Mittelpunkt des Teilvolumens in sowohl der x-, der y- als auch der z-Richtung weg um ein Voxel entfernt. Die Folge ist, daß jedes Teilvolumen drei Ebenen von Voxeln mit seinem benachbarten Nachbar in sowohl der x-, der y- und der z-Richtung gemeinsam verwendet. Die drei gemeinsam verwendeten Ebenen sind die mittlere gemeinsame Ebene benachbarter Teilvolumina und jede Ebene auf jeder Seite der gemeinsam verwendeten gemeinsamen Ebene. Für Teilvolumina, die an den äußeren Begrenzungen des Volumendatensatzes angeordnet sind, werden weniger Teilvolumina existieren, die Voxel zu der erweiterten Größe des Teilvolumens beitragen.
  • Bei der überlappenden Blockbildungstechnik wird nur ein erweitertes Teilvolumen zu einer Zeit von dem Volumenaufbereitungssystem benötigt. Da das erweiterte Teilvolumen alle drei gemeinsam verwendeten Ebenen der unmittelbar umgebenden Voxel sowohl in der x-, der y- als auch der z-Richtung enthält, kann jeder Abtastpunkt auf einem Strahl, der durch das Teilvolumen verläuft, der aus der Basisgröße des Teilvolumens herausfällt, durch die Verwendung der Voxel, die in der erweiterten Größe enthalten sind, interpoliert werden, wobei alle Gradienten berechnet werden können. Diese Technik liefert eine geringere Belastung für die Graphikhardware, erhöht jedoch die Belastung bezüglich der Datenspeicherfähigkeit, da jedes Teilvolumen eine erweiterte Größe besitzt.
  • Sobald der Volumendatensatz durch irgendeine Technik in Blöcke unterteilt wurde, kann das Anwendungsprogramm Teilvolumina auswählen, wenn dieselben die gewünschten Daten, die von dem Benutzer benötigt werden um aufbereitet zu werden, enthalten. Die Auswahl findet während des Betriebs durch Parameter statt, die durch das ablaufende Anwendungsprogramm geliefert werden, die in den Teilvolumina gespeichert sind. Teilvolumina, die nicht ausgewählt sind, werden durch das Volumenaufbereitungssystem nicht verarbeitet. Wenn das ablaufende Anwendungsprogramm keine Parameter zur Auswahl von Teilvolumina liefert, wird das Volumenaufbereitungssystem alle Teilvolumina verarbeiten. Die Auswahl von Teilvolumina verringert die Aufbereitungszeit stark, da Daten, die nichts zu dem gewünschten Bild beitragen, nicht durch das Volumenaufbereitungssystem verarbeitet werden. Zusätzlich muß die Blockbildung nur einmal für einen Volumendatensatz durchgeführt werden. Verschiedene Ansichten können dann erzeugt werden, beispielsweise mehrere orthographische oder perspektivische Ansichten, indem ein Anwendungsprogramm das Blockbildungsschema verwendet.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines Computersystems mit einem Volumenaufbereitungssystem, das die vorliegende Erfindung verkörpert;
  • 2 ein Blockdiagramm eines Organisationsverfahrens für volumetrische Daten für ein Volumenaufbereitungssystem der vorliegenden Erfindung;
  • 3 graphisch einen Volumendatensatz, der in nichtüberlappende Teilvolumina unterteilt ist;
  • 4 graphisch in zwei Dimensionen die nichtüberlappende Blockbildungstechnik;
  • 5 graphisch in zwei Dimensionen die überlappende Blockbildungstechnik, die auf 4 angewendet ist; und
  • 6 graphisch Abtastpunkte entlang eines Strahls, der durch einen Volumendatensatz, der durch zwei nicht-überlappende Teilvolumina verläuft, geworfen wurde.
  • 1 zeigt ein Blockdiagramm eines Computersystems, das ein Volumenaufbereitungssystem enthält, das das Organisationsverfahren für volumetrische Daten gemäß der vorliegenden Erfindung verkörpert. Bezugnehmend nun auf 1 enthält ein Computersystem 100 ein Verarbeitungselement 102 mit einem chipinternen Cache. Das Verarbeitungselement 102 steht mit anderen Elementen des Computersystems 100 über einen Systembus 104 in Verbindung. Eine Tastatur 106 ermöglicht, daß ein Benutzer Informationen in das Computersystem 100 eingibt. Eine Graphiksteuerung 114 mit einem chipinternen Cache und eine Graphikanzeige 110, die mit dem Systembus 104 verbunden ist, ermöglichen, daß das Computersystem 100 Informationen zu dem Benutzer ausgibt. Ferner ist eine Maus 108 verwendet, um Informationen einzugeben, während eine Speichervorrichtung 112 verwendet ist, um Daten und Programme in dem Computersystem 100 zu speichern. Ein Speicher 116, der ebenfalls mit dem Systembus 104 verbunden ist, enthält ein Betriebssystem 118, ein Anwendungsprogramm 122 und ein Volumenaufbereitungssystem 120, das das Organisationsverfahren für volumetrische Daten gemäß der vorliegenden Erfindung enthält.
  • Wenn es durch ein Anwendungsprogramm 122 aufgerufen wird, beginnt das Volumenaufbereitungssystem die Ausführung durch das Aufrufen eines Volumendatensatzes aus der Speichervorrichtung 112 und das Plazieren derselben in dem Speicher 116 über den Systembus 104. Wenn die Verarbeitung beginnt, wird der Volumendatensatz in Teilvolumina aufgeteilt. Jedes Voxel-Tupel eines Teilvolumens wird in eine lineare Adresse umgewandelt. Nach der Umwandlung der Voxel-Tupel wird jedes Teilvolumen linear in den Speicher 116 zurückgespeichert und kann ferner in die Speichereinrichtung 112 zurückgespeichert werden.
  • Wenn dieselben durch ein Anwendungsprogramm 122 aufgerufen werden, werden die Teilvolumina des Volumendatensatzes, die linear in dem Speicher 116 gespeichert sind, über den Systembus 104 in dem Cache planiert, der sich auf dem Verarbeitungselement 102 befindet. Die Ergebnisse, die von der Verarbeitung durch das Volumenaufbereitungssystem 120 erhalten werden, werden über den Systembus 104 zu dem chipinternen Cache, der sich auf der Graphiksteuerung 114 befindet, gesendet. Die Graphiksteuerung 114 sendet dann die verarbeiteten Daten zu der Graphikanzeige 110.
  • 2 zeigt ein Blockdiagramm eines Organisationsverfahrens für volumetrische Daten für ein Volumenaufbereitungssystem der vorliegenden Erfindung. Wie nun in 2 gezeigt ist, gewinnt ein Block 202 einen Volumendatensatz von dem Plattenspeicher wieder. Ein Block 204 bestimmt die Teilvolumen-Blockgröße basierend auf der Computerkonfiguration und dem Anwendungsprogramm. In einem Block 206 wird die Blockbildungstechnik ausgewählt. Wenn die überlappende Blockbildungstechnik ausgewählt ist, springt die Steuerung zu einem Block 208.
  • Der Block 208 teilt den Volumendatensatz in Teilvolumina der Größe, die in dem Block 205 bestimmt wurde. Jedes Teilvolumen wird erweitert, um die nächstliegenden Voxel von den unmittelbar umgebenden Ebenen, Kanten und Ecken der benachbarten Teilvolumina einzuschließen, wie ausführlicher bei der Erläuterung der 5 und 6 erklärt wird. Jedes Teilvolumen überlappt somit jedes benachbarte Teilvolumen um ein Pixel in der x-, der y- und der z-Richtung.
  • Beim Erzeugen von Teilvolumina, die sich nahe den peripheren Grenzen des Volumendatensatzes befinden, kann die bestimmte Größe für Teilvolumina eine solche sein, daß sich das Teilvolumen aus den Grenzen des Volumendatensatzes heraus er streckt. Diese Situation kann auf eine von drei Möglichkeiten gehandhabt werden. Zuerst können alle Teilvolumina kleiner gemacht werden als die gewünschte Größe, so daß alle Teilvolumina in die Grenzen des Volumendatensatzes fallen werden. Dies ist die am wenigsten bevorzugte Option. Zweitens können nur die Teilvolumina, die nicht passen, kleiner als die bestimmte Größe gemacht werden. Zuletzt können Tupel-Positionen, die aus den Volumendatensatzgrenzen fallen, mit Nullen oder einem anderen unwichtigen Wert gefüllt werden. Dies ist die bevorzugte Option für das bevorzugte Ausführungsbeispiel der Erfindung.
  • Wenn in dem Block 206 die nicht-überlappende Blockbildungstechnik ausgewählt wird, springt die Steuerung zu einem Block 210. Der Block 210 unterteilt den Volumendatensatz in Teilvolumina der Größe, die in dem Block 204 bestimmt wurde. Jedes Teilvolumen überlappt kein anderes Teilvolumen. Folglich enthält jedes Teilvolumen einen eindeutigen Satz von Voxeln.
  • Ein Block 212 wandelt jedes (x-,y-,z-)-Voxel-Tupel in eine lineare Adresse k um. Dies wird durch Verwendung der folgenden Gleichung erreicht: k = x + (y·Block_x_Größe) + (z·Block_x_Größe·Block_y_Größe)
  • Block_x_Größe ist die Anzahl von Voxeln in der x-Richtung des Teilvolumens (Breite), während Block_y_Größe die Anzahl von Voxeln in der y-Richtung des Teilvolumens (Höhe) ist. Wenn ein Teilvolumen beispielsweise in der x-Richtung 16 Voxel breit war, in der y-Richtung 16 Voxel hoch war und in der z-Richtung 16 Voxel tief war, würden ein Voxel mit den Koordinaten (3, 2, 1) und ein Voxel mit den Koordinaten (4, 2, 1) die folgenden unten gezeigten linearen Adressen aufweisen:
    für (3,2,1) k = 3 + (2·16) + (1·16·16) = 3 + 32 + 256 = 291
    für (4,2,1) k = 4 + (2·16)+(1·16·16) = 4 + 32 + 256 = 292
  • Fachleute werden erkennen, daß durch die Verwendung der obigen Gleichung sichergestellt ist, daß jedes Voxel in einem Teilvolumen eine eindeutige Adresse k aufweist, wobei eine lineare Beziehung zwischen Voxeln festgelegt wird.
  • Ein Block 214 speichert die Teilvolumina mit den Adressen k für jedes Voxel in dem Speicher 116 (1) oder auf einer Speichervorrichtung 112 (1). Die Voxel in einem Teilvolumen werden eine lineare Beziehung aufweisen, wenn dieselben auf diese Weise gespeichert werden. Wenn das Volumenaufbereitungssystem ein Teilvolumen zur Verarbeitung aufruft, macht es die lineare Beziehung ideal, das Teilvolumen in dem Cache zu plazieren, was die Verarbeitungszeit stark verringert.
  • In einem Block 216 wird jedes Teilvolumen während des Betriebs mit Parametern, die durch das Anwendungsprogramm 122 (1) geliefert werden, die anzeigen, ob das Teilvolumen entweder erwünschte oder nicht-erwünschte Daten aufweist, ausgewählt. Dies kann erreicht werden, indem ein oder mehrere Bits mit bestimmten Werten eingestellt werden, die anzeigen, daß die Daten in einem Teilvolumen erwünscht sind oder von einem bestimmten Typ sind. Alternativ kann eine separate Datenstruktur verwendet werden, um Informationen über den Inhalt der Teilvolumina zu halten. Nach der Auswahl können die verwendeten Parameter gespeichert und für eine neue Aufbereitung wiederverwendet werden. Wenn das Anwendungsprogramm 122 (1) keine Auswahlparameter liefert, verarbeitet das Volumenaufbereitungssystem 120 (1) alle Teilvolumina.
  • 3 zeigt graphisch einen Volumendatensatz, der in nicht-überlappende Teilvolumina aufgeteilt ist. Bezugnehmend auf 3 enthält ein Volumendatensatz 302 Voxel, die auf einem Gitter mit regelmäßigem Gitterabstand organisiert sind. Die äußeren Grenzen des Volumendatensatzes 302 sind als gerade Linien dargestellt, die acht Grenzvoxel verbin den. Ein Grenzvoxel 306 ist veranschaulichend. Ein Teilvolumen 304 ist veranschaulichend für alle dargestellten Teilvolumina, die ebenfalls durch gerade Linien dargestellt sind, die acht Grenzvoxel verbinden. Die Größe des Teilvolumens 304 wird basierend auf der Konfiguration des Computersystems und/oder des Anwendungsprogramms, das verwendet wird, bestimmt. Das Teilvolumen 304 wird eine bestimmte Anzahl von Pixeln breit mal eine bestimmte Anzahl von Pixeln hoch mal eine bestimmte Anzahl von Pixeln tief sein. Der Volumendatensatz 302 ist in Teilvolumina aufgeteilt, für die das Teilvolumen 304 veranschaulichend ist. Das Teilvolumen 308 fällt teilweise aus dem Volumendatensatz 302. Bei dem bevorzugten Ausführungsbeispiel der Erfindung werden Tupelpositionen, die aus dem Volumendatensatz 302 fallen, mit Nullen oder einem bestimmten anderen unwichtigen Wert gefüllt.
  • 4 zeigt graphisch in zwei Dimensionen die nichtüberlappende Blockbildungstechnik. Bezugnehmend nun auf 4 ist ein Voxel 402 veranschaulichend für alle dargestellten Voxel, welche nur einen Teil aller Voxel, die in einem Volumendatensatz enthalten sind, darstellen. Jedes Voxel-Tupel weist eindeutige (x,y,z)-Koordinaten auf. Die Tiefe in der z-Richtung erstreckt sich senkrecht aus der Papierebene, wie durch das Bezugszeichen 422 gezeigt ist. Teilvolumina 404, 406, 408, 410, 412, 414, 416, 418 und 420 weisen äußere Grenzen auf, die als gerade Linien, die die vier Grenzvoxel, die bei dieser zweidimensionalen Ansicht sichtbar sind, verbinden, dargestellt sind. Jedes Teilvolumen 404 bis 420 ist sechs Voxel breit mal sechs Voxel hoch mal sechs Voxel tief und enthält einen eindeutigen Satz von Voxeln, derart, daß kein Teilvolumen irgendwelche Voxel mit irgendeinem anderen Teilvolumen gemeinsam hat.
  • 5 zeigt graphisch in zwei Dimensionen die überlappende Blockbildungstechnik. Bezugnehmend nun auf 5 werden bei der überlappenden Blockbildungstechnik anfänglich Teilvolumina derart strukturiert, daß die Grenzebenen jedes Teilvolumens mit benachbarten Teilvolumina gemeinsam verwendet sind. Teilvolumen 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522 und 524 sind jeweils sechs Voxel breit mal sechs Voxel hoch mal sechs Voxel tief. Die Tiefe in der z-Richtung erstreckt sich senkrecht aus der Papierebene, wie durch das Bezugszeichen 558 gezeigt ist. Jedes dieser Teilvolumen muß überlappt werden, um ein erweitertes Teilvolumen zu werden. Beispielsweise werden die Teilvolumina 512 und 514 überlappt, indem jede der sechs Grenzebenen, die die Teilvolumina 512 und 514 aufweisen, verwendet wird, und jede Ebene um ein Voxel nach außen erweitert wird, in eine Richtung von dem Mittelpunkt des jeweiligen Teilvolumens weg, wobei sechs neue benachbarte Ebenen gebildet werden, die zusätzliche Voxel enthalten. Alle Voxel, die in den sechs Ebenen liegen, einschließlich der Voxel, die entlang der zwölf Kanten und acht Ecken, die durch den Schnitt der sechs neuen benachbarten Ebenen gebildet sind, sind in den erweiterten Teilvolumina 538 und 540 enthalten.
  • Das erweiterte Teilvolumen 538 ist durch die Punkte 542, 544, 546 und 548 begrenzt, die Linien in der z-Richtung darstellen, die in dieser zweidimensionalen Ansicht als Punkte erscheinen. Die Ebenen 526 und 528 sind benachbarte Ebenen in der x-Richtung. Die Ebenen 530, 532, 534 und 536 sind benachbarte Ebenen in der y-Richtung. Die Ebenen 526, 528, 530, 532, 534 und 536 erscheinen in 5 als Kanten. Voxel von den Teilvolumina 502, 504 und 506, die auf der Ebene 526 liegen und durch die Ebenen 530 und 534 begrenzt sind, sind in dem erweiterten Teilvolumen 538 enthalten. Voxel von den Teilvolumina 506, 514 und 522, die auf der Ebene 534 liegen und durch die Ebenen 526 und 528 begrenzt sind, sind in dem erweiterten Teilvolumen 538 enthalten. Voxel von den Teilvolumina 518, 520 und 522, die auf der Ebene 528 liegen und durch die Ebenen 530 und 534 begrenzt sind, sind in dem erweiterten Teilvolumen 538 enthalten. Voxel von den Teilvolumina 502, 510 und 518, die auf der Ebene 530 liegen und durch die Ebenen 526 und 528 begrenzt sind, sind in dem erweiterten Teilvolumen 538 enthalten. Fachleute werden erkennen, daß für die zwei benachbarten Ebenen in der z-Richtung, die in 5 nicht gezeigt sind, der gleiche Voxeleinschluß stattfindet. Auf eine gleichartige Weise umfaßt das erweiterte Teilvolumen 540 die Voxel, die auf Ebenen 526, 528, 532 und 536 liegen und durch Punkte 550, 552, 554 und 556 begrenzt sind, die Linien in der z-Richtung darstellen, die in dieser zweidimensionalen Ansicht als Punkte erscheinen.
  • 6 zeigt graphisch Abtastpunkte entlang eines Strahls, der durch einen Volumendatensatz geworfen wurde, welcher durch zwei nicht-überlappende Teilvolumina verläuft. Bezugnehmend nun auf 6 sind Teilvolumina 602 und 604 benachbart zueinander. Ein Strahl 606 wurde von einem Pixel auf einer Bildebene durch einen Volumendatensatz geworfen und verläuft durch die Teilvolumina 602 und 604. Der Strahl 606 betritt das Teilvolumen 604 an einem Eintrittspunkt 608 und verläßt das Teilvolumen 604 an einem Austrittspunkt 610. Der Strahl 606 betritt das Teilvolumen 602 an einem Eintrittspunkt 612 und verläßt das Teilvolumen 602 an einem Austrittspunkt 614. Abtastpunkte 616 und 618 auf dem Strahl 606 fallen in das Teilvolumen 604. Wenn das Teilvolumen 604 als gewünschte Daten enthaltend ausgewählt wurde, wird das Volumenaufbereitungssystem ferner die Abtastpunkte 616 und 618 verarbeiten, um die Aufbereitung des Pixels, von dem der Strahl 606 ausgeht, zu unterstützen. Wenn das Teilvolumen 604 nicht als gewünschte Daten enthaltend ausgewählt wurde, wird das Teilvolumen 604 ignoriert.
  • Abtastpunkte 626 und 628 auf dem Strahl 606 fallen in das Teilvolumen 602. Wenn das Teilvolumen 602 als gewünschte Daten enthaltend ausgewählt wurde, wird das Volumenaufbereitungssystem auch die Abtastpunkte 626 und 628 verarbeiten, um die Aufbereitung des Pixels, von dem der Strahl 606 ausgeht, zu unterstützen. Wenn das Teilvolumen 602 nicht als gewünschte Daten enthaltend ausgewählt wurde, wird das Teilvolumen 602 ignoriert.
  • Ein Abtastpunkt 620 auf dem Strahl 606 liegt weder innerhalb des Teilvolumens 602 noch des Teilvolumens 604. Wenn eines oder beide der Teilvolumen 602 oder 604 als gewünschte Daten enthaltend ausgewählt wurden, dann müssen beide Teilvolumina aus dem Speicher aufgerufen und in dem Cache plaziert werden, damit das Volumenaufbereitungssystem in der Lage ist, den Abtastpunkt 620 zu verarbeiten, einschließlich des Berechnens beliebiger Gradienten.
  • Wenn die Teilvolumina 602 und 604 durch die überlappende Blockbildungstechnik in Blöcke gebildet wurden, wie in 5 gezeigt und erläutert ist, und die Ebene 624 die gemeinsam verwendete Ebene zwischen den Teilvolumina 602 und 604 wäre, fällt ein Punkt 624 in das Teilvolumen 602. Das Teilvolumen 602 wäre in der Lage, den Abtastpunkt 620, einschließlich des Berechnens beliebiger Gradienten, zu verarbeiten, nachdem dasselbe aus dem Speicher aufgerufen und in dem Cache plaziert worden ist. Dies ist der Fall, da das Teilvolumen 602 in seiner erweiterten Größe die Voxel enthält, die in einer parallelen Ebene enthalten sind, die ein Voxel über die Ebene 624 hinaus in eine Richtung weg von dem Mittelpunkt des Teilvolumens 602 angeordnet sind.

Claims (10)

  1. Cache-effizientes Organisationsverfahren für volumetrische Daten zur aufbereiteten Anzeige eines Volumendatensatzes (302) auf einer zweidimensionalen Graphikanzeige (110) eines Computersystems (100) mit folgenden Schritten: (a) Wiedergewinnen (202) des Volumendatensatzes (302) von einem Speichermedium (112); (b) Auswählen (206) eines gesamten Teilvolumens (304) aus dem Volumendatensatz (302); (c) Umwandeln (212) jeder Adresse eines Voxel-Tupels des gesamten Teilvolumens (304) in eine lineare Adresse; (d) Verarbeiten (212, 214, 216) des Teilvolumens (304) durch ein Volumenaufbereitungssystem (120); und (e) Wiederholen der Schritte (b) bis (d) für jedes Teilvolumen (304) des Volumendatensatzes (302).
  2. Verfahren gemäß Anspruch 1, bei dem die Größe des Teilvolumens (304) kleiner ist als ein Prozessor-Cache, der auf dem Computersystem (100) angeordnet ist, und bei dem der Prozessor-Cache kleiner ist als ein Graphiksteuerungs-Cache, der auf dem Computersystem angeordnet ist.
  3. Verfahren gemäß Anspruch 1, bei dem die Größe des Teilvolumens (304) kleiner ist als ein Graphiksteuerungs-Cache, der auf dem Computersystem (100) angeordnet ist, und bei dem der Graphiksteuerungs-Cache kleiner ist als ein Prozessor-Cache, der auf dem Computersystem angeordnet ist.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt (c) ferner folgenden Schritt (c1) aufweist: (c1) Speichern (214) von Daten des Voxel-Tupels des Teilvolumens (304) in einem Speichermedium (112) an der linearen Adresse.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem der Schritt (c) ferner folgenden Schritt (c1) aufweist: (c1) Speichern von Parametern, die durch ein Anwendungsprogramm (122) geliefert werden, zusammen mit den Daten jedes Voxel-Tupels des Teilvolumens (304), wobei das Anwendungsprogramm die Parameter verwendet, um das Teilvolumen für die weitere Verarbeitung (216) durch das Volumenaufbereitungssystem (120) auszuwählen.
  6. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt (b) ferner folgende Schritte (b1) und (b2) aufweist: (b1) Auswählen (206) des Teilvolumens (304) des Volumendatensatzes (302), wobei das Teilvolumen sechs Flächen besitzt; und (b2) Einschließen (208) einer Gruppe von zusätzlichen Voxeln, die das Teilvolumen unmittelbar umgeben, in das Teilvolumen (304), um ein erweitertes Teilvolumen (538, 540) zu erzeugen, wobei die Gruppe von zusätzlichen Voxeln in einer Gruppe von sechs Ebenen enthalten ist, wobei jede aus der Gruppe von sechs Ebenen durch eine Schnittlinie mit einer weiteren aus der Gruppe von sechs Ebenen begrenzt ist, wobei eine jeweilige aus der Gruppe der sechs Ebenen parallel zu einer jeweiligen entsprechenden der sechs Flächen des Teilvolumens ist, und wobei ferner eine jeweilige aus der Gruppe von sechs Ebenen benachbart zu der jeweils entsprechenden der sechs Flächen des Teilvolumens angeordnet und in einer Richtung von einem Mittelpunkt des Teilvolumens weg angeordnet ist.
  7. Verfahren gemäß Anspruch 6, bei dem der Schritt (b2) ferner folgenden Schritt (b2a) aufweist: (b2a) Speichern (214) von Daten jedes Voxel-Tupels des erweiterten Teilvolumens (538, 540) auf ein Speichermedium (112) an der linearen Adresse.
  8. Cache-effizientes Organisationsverfahren für volumetrische Daten zur aufbereiteten Anzeige eines Volumendatensatzes (302) auf einer zweidimensionalen Graphikanzeige (110) eines Computersystems (100) mit folgenden Schritten: (a) Wiedergewinnen (202) des Volumendatensatzes (302) von dem Speichermedium (112); (b) Teilen (208, 210) des Volumendatensatzes (302) in eine Mehrzahl von Teilvolumina (304), wobei jedes der Mehrzahl von Teilvolumina einen eindeutigen Satz von Voxeln enthält; (c) Umwandeln (212) jeder Adresse eines Voxel-Tupels von jedem der Mehrzahl von Teilvolumina (304) in eine lineare Adresse; und (c) Verarbeiten (212, 214, 216) der Mehrzahl von Teilvolumina (304) durch ein Volumenaufbereitungssystem (120), wobei jedes Teilvoulmen (304) in seiner Gesamtheit verarbeitet wird, bevor eine Verarbeitung eines nachfolgendes Teilvolumens beginnt.
  9. Verfahren gemäß Anspruch 8, bei dem der Schritt (c) ferner folgende Schritte (c1) und (c2) aufweist: (c1) Speichern (214) von Daten von jedem Voxel-Tupel von jedem der Mehrzahl von Teilvolumina (304) in ein Speichermedium (112) an der linearen Adresse; und (c2) Speichern von Parametern, die durch ein Anwendungsprogramm (112) geliefert werden, zusammen mit den Daten jedes Voxel-Tupels von jedem der Mehrzahl von Teilvolumina (304), wobei das Anwendungsprogramm (122) die Parameter verwendet, um eine bestimmte Anzahl aus der Mehrzahl von Teilvolumina zur weiteren Verarbeitung (216) durch das Volumenaufbereitungssystem auszuwählen.
  10. Verfahren gemäß Anspruch 8, bei dem der Schritt (b) ferner folgende Schritte (b1) und (b2) aufweist: (b1) Teilen (208, 210) des Volumendatensatzes (302) in die Mehrzahl von Teilvolumina (304), wobei jedes der Mehrzahl von Teilvolumina sechs Flächen aufweist, und wobei ferner jedes der Mehrzahl von Teilvolumina, das benachbart zu einem weiteren der Mehrzahl von Teilvolumina ist, eine der sechs Flächen bei jeder auftretenden Nachbarschaft gemeinsam verwendet; und (b2) Einschließen (208) einer Gruppe von zusätzlichen Voxeln, die jedes der Mehrzahl von Teilvolumina unmittelbar umgibt, in jedes der Mehrzahl von Teilvolumina (304), um eine Mehrzahl von erweiterten Teilvolumina (538, 540) zu erzeugen, wobei jedes aus der Gruppe von zusätzlichen Voxeln für jedes der Mehrzahl von Teilvolumina in einer Gruppe von sechs Ebenen enthalten ist, wobei jede aus der Gruppe von sechs Ebenen durch einen Schnitt mit einer weiteren aus der Gruppe von sechs Ebenen begrenzt ist, wobei eine jeweilige aus der Gruppe von sechs Ebenen parallel zu einer jeweils entsprechenden der sechs Flächen von jeweils einem der Mehrzahl von Teilvolumina ist, und wobei ferner eine jeweilige aus der Gruppe von sechs Ebenen benachbart zu einer jeweiligen der sechs Flächen eines jeweiligen der Mehrzahl von Teilvolumina und in einer Richtung von einem Mittelpunkt des jeweiligen der Mehrzahl von Teilvolumina weg angeordnet ist.
DE19806985A 1997-05-30 1998-02-19 Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht Expired - Fee Related DE19806985B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/865,757 US6144383A (en) 1997-05-30 1997-05-30 Volumetric data organization method that allows for cache efficient rendering speedups and efficient graphics hardware design
US865757 2001-05-25

Publications (2)

Publication Number Publication Date
DE19806985A1 DE19806985A1 (de) 1998-12-03
DE19806985B4 true DE19806985B4 (de) 2005-03-17

Family

ID=25346161

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19806985A Expired - Fee Related DE19806985B4 (de) 1997-05-30 1998-02-19 Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht

Country Status (4)

Country Link
US (1) US6144383A (de)
JP (1) JP3445152B2 (de)
DE (1) DE19806985B4 (de)
GB (1) GB2325838B (de)

Families Citing this family (20)

* 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
US6765570B1 (en) * 1998-07-21 2004-07-20 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets using a three-dimensional sampling probe
JP2001109905A (ja) * 1999-10-01 2001-04-20 Mitsubishi Electric Inf Technol Center America Inc ボリューム・レンダリング・システムにおけるボリューム・データ・セットのレンダリング方法
CA2315302A1 (en) * 2000-07-13 2002-01-13 Paul A. Halmshaw Three dimensional imaging system
DE60027791T2 (de) * 2000-10-30 2007-06-14 Landmark Graphics Corp., Houston System und verfahren zum analysieren und abbilden dreidimensionaler volumendatenmengen
US7006085B1 (en) 2000-10-30 2006-02-28 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets
AU2002239631A1 (en) * 2000-12-18 2002-07-01 John T. Snuffer Rasterization of three-dimensional images
BR0116765C1 (pt) * 2001-01-31 2004-07-06 Magic Earth Inc Método e dispositivo para análise e visualização de um grupo tridimensional realçado de volume de dados utilizando um ou mais atributos
US6690820B2 (en) * 2001-01-31 2004-02-10 Magic Earth, Inc. System and method for analyzing and imaging and enhanced three-dimensional volume data set using one or more attributes
KR100441082B1 (ko) * 2002-07-31 2004-07-21 학교법인연세대학교 가시 순차적 분할 렌더링 알고리즘을 이용한 3차원 텍스쳐기반의 볼륨 그래픽 구조 및 방법
US20060170682A1 (en) * 2003-02-21 2006-08-03 Koninklijke Philips Electronics N.V. Caching For Volume Visualization
US7154500B2 (en) * 2004-04-20 2006-12-26 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US7609876B2 (en) * 2004-10-22 2009-10-27 Siemens Medical Solutions Usa, Inc. Virtual grid alignment of sub-volumes
JP4927580B2 (ja) * 2007-01-31 2012-05-09 株式会社日立メディコ 画像処理装置及びその方法
US20080232694A1 (en) * 2007-03-21 2008-09-25 Peter Sulatycke Fast imaging data classification method and apparatus
US8184120B2 (en) * 2008-05-19 2012-05-22 Siemens Aktiengesellschaft Framework for processing and rendering large volume data
CN101853518B (zh) * 2010-05-28 2012-01-11 电子科技大学 基于各向异性体数据的错切变形体绘制方法
KR102038627B1 (ko) * 2012-10-23 2019-10-30 삼성전자주식회사 자기공명영상 시스템 및 자기공명영상 방법
KR101967242B1 (ko) * 2012-11-14 2019-04-09 삼성전자주식회사 자기공명영상 시스템 및 자기공명영상 방법
US11398072B1 (en) * 2019-12-16 2022-07-26 Siemens Healthcare Gmbh Method of obtaining a set of values for a respective set of parameters for use in a physically based path tracing process and a method of rendering using a physically based path tracing process

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187660A (en) * 1989-12-01 1993-02-16 At&T Bell Laboratories Arrangement for displaying on a display volumetric data
GB2286071A (en) * 1994-01-31 1995-08-02 Fujitsu Ltd Cache-memory system suitable for data arrayed in multidimensional space
US5557711A (en) * 1990-10-17 1996-09-17 Hewlett-Packard Company Apparatus and method for volume rendering

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685070A (en) * 1984-08-03 1987-08-04 Texas Instruments Incorporated System and method for displaying, and interactively excavating and examining a three dimensional volume
CA1258923A (en) * 1986-04-14 1989-08-29 Robert A. Drebin Methods and apparatus for imaging volume data
US4985856A (en) * 1988-11-10 1991-01-15 The Research Foundation Of State University Of New York Method and apparatus for storing, accessing, and processing voxel-based data
FR2662525B1 (fr) * 1990-05-25 1992-08-28 Gen Electric Cgr Procede de visualisation d'une partie de l'image d'une structure physique.
US5201035A (en) * 1990-07-09 1993-04-06 The United States Of America As Represented By The Secretary Of The Air Force Dynamic algorithm selection for volume rendering, isocontour and body extraction within a multiple-instruction, multiple-data multiprocessor
US5313567A (en) * 1991-06-13 1994-05-17 At&T Bell Laboratories Arrangement for determining and displaying volumetric data in an imaging system
US5255366A (en) * 1991-11-25 1993-10-19 Industrial Technology Research Institute Address processing unit for a graphics controller
JPH06223198A (ja) * 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
JPH0778266A (ja) * 1993-06-25 1995-03-20 Sony Corp 画像処理装置
JP3527796B2 (ja) * 1995-06-29 2004-05-17 株式会社日立製作所 高速3次元画像生成装置および方法
JP3203160B2 (ja) * 1995-08-09 2001-08-27 三菱電機株式会社 ボリューム・レンダリング装置及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187660A (en) * 1989-12-01 1993-02-16 At&T Bell Laboratories Arrangement for displaying on a display volumetric data
US5557711A (en) * 1990-10-17 1996-09-17 Hewlett-Packard Company Apparatus and method for volume rendering
GB2286071A (en) * 1994-01-31 1995-08-02 Fujitsu Ltd Cache-memory system suitable for data arrayed in multidimensional space

Also Published As

Publication number Publication date
GB9810156D0 (en) 1998-07-08
GB2325838A (en) 1998-12-02
GB2325838B (en) 2002-01-16
JP3445152B2 (ja) 2003-09-08
DE19806985A1 (de) 1998-12-03
US6144383A (en) 2000-11-07
JPH117541A (ja) 1999-01-12

Similar Documents

Publication Publication Date Title
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69129712T2 (de) Arbeitsraumanzeigen
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE69916646T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE69428491T2 (de) Bildlinse
DE69312505T2 (de) Polygonaufrasterung
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE68928594T2 (de) Verfahren und Gerät zur Speicherung, zum Zugriff und zur Verarbeitung von auf Voxel basierenden Daten
DE69130123T2 (de) Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts
DE69428323T2 (de) Ein Bildanzeigevorrichtung
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69914355T2 (de) Bildverarbeitungsgerät
DE19807053B4 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE102007050615B4 (de) Brick-basierter Fusionsrenderer
DE69426042T2 (de) Verfahren und Gerät zur Erzeugung von phantomen Kontrollwerten einer B-spline Kurve
DE60100806T2 (de) Abbildung von volumendaten
DE60122333T2 (de) Verfahren und System zur kachelweisen Bildwiedergabe
DE102005035796A1 (de) System und Verfahren zum Polygon-Glätten beim texturbasierten Volumen-Rendering

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8364 No opposition during term of opposition
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: 20140902