DE102005029240A1 - System und Verfahren für ein schnelles Volumen-Rendern - Google Patents

System und Verfahren für ein schnelles Volumen-Rendern Download PDF

Info

Publication number
DE102005029240A1
DE102005029240A1 DE102005029240A DE102005029240A DE102005029240A1 DE 102005029240 A1 DE102005029240 A1 DE 102005029240A1 DE 102005029240 A DE102005029240 A DE 102005029240A DE 102005029240 A DE102005029240 A DE 102005029240A DE 102005029240 A1 DE102005029240 A1 DE 102005029240A1
Authority
DE
Germany
Prior art keywords
node
level
empty
voxels
nodes
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.)
Ceased
Application number
DE102005029240A
Other languages
English (en)
Inventor
Lining Yang
Min Xie
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 Medical Solutions USA Inc
Original Assignee
Siemens Medical Solutions USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Medical Solutions USA Inc filed Critical Siemens Medical Solutions USA Inc
Publication of DE102005029240A1 publication Critical patent/DE102005029240A1/de
Ceased legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

Ein Verfahren zum Verbreiten eines Strahls durch ein Bild enthält ein Bereitstellen eines digitalisierten volumetrischen Bildes mit einer Mehrzahl von Intensitäten, die einem Bereich von Voxeln in einem dreidimensionalen Raum entsprechen, einem Bereitstellen einer reduzierten Path Octree Struktur des volumetrischen Bildes, wobei das reduzierte Path Octree eine Mehrzahl von Knoten ersten Levels enthält, wobei jeder Knoten ersten Levels eine Mehrzahl der Voxel enthält, einem Initialisieren eines Strahls innerhalb des volumetrischen Bildes, und Besuchen (52) jedes Knotens ersten Levels entlang des Strahls, wobei, wenn der Knoten ersten Levels nicht leer ist, jedes Voxels, das in jedem Knoten ersten Levels enthalten ist, besucht wird.

Description

  • Diese Erfindung beansprucht die Priorität von „Fast Volume Rendering Using a Reduced Path Octree and Multi-Resolution Ray Marching Algorithmens", US Provisional Application Nr. 60/582,983 von Yang, et al, angemeldet am 25. Juni 2004, deren Inhalte durch Bezugnahme aufgenommen werden.
  • Technisches Gebiet
  • Diese Erfindung richtet sich an ein Volumen-Rendern (Wiedergeben) eines digitalen medizinischen Bildes.
  • Diskussion des betreffenden Standes der Technik
  • Mit erhöhter Rechenleistung und verbesserten medizinischen Geräten nimmt die Größe von volumetrischen 3D-Datensätzen schnell zu, die durch verschiedene Bildgebungsmodalitäten erzeugt werden. Das Visible Human-Projekt von der National Library of Medicine produzierte Datensätze der Größe 512 % 512 % 1728 (864 MB), während die CT-Maschine von Siemens Medical Solutions Datensätze der Größe 512 % 512 % 2048 (1 GB) erzeugen kann. Für medizinische Fachleute kann eine Interaktivität sehr hilfreich sein, um Erkrankungen aus derartig großen Datensätzen zu diagnostizieren.
  • Während des letzten Jahrzehnts hat man sich mehr auf die Entwicklung von schnellen Volumenrenderingtechniken konzentriert. Vier beliebte Techniken sind das Ray-Casting, Splatting, Shear-Warp und 3D-Textur-Mapping. Von diesen Technologien kann das Ray-Casting Bilder mit der besten Qualität erzeugen, und die zugehörigen Algorithmen passen sich gut an die Zunahme der Datensatzgröße an. Eine Interaktivität ist jedoch unter Verwendung eines Brute-Force Ansatz für das Ray-Casting schwierig zu erreichen, aufgrund der intensiven Speichernutzung, und aufgrund der rechenintensiven Natur dieser Techniken.
  • Das Space Leaping (Leerstellen auslassen) ist eine häufig verwendete Technik zum Beschleunigen von Ray-Casting Algorithmen. Space Leaping kann dem Renderer erlauben, leere Regionen zu durchspringen, ohne Abtastungen von diesen Regionen zu interpolieren und zu mischen. Viele Techniken, die das Überspringen von Leerstellen ausnutzen, führen zusätzliche Datenstrukturen ein, wie beispielsweise ein Octree oder ein Kd-Tree. Andere Techniken enthalten ein Berechnen eines Abstandfeldes und ein Verwenden dieses Feldes zum Überspringen einer Leerstelle. Die meisten dieser Verfahren haben jedoch zum Nachteil, dass sie entweder lange Vorverarbeitungen benötigen, jedes Mal wenn sich die Übertragungsfunktion ändert, komplizierte Initiierungsschemen, die die Laufzeitperformance reduzieren, oder eine vergrößerte Speicherbasisfläche aufgrund der extra Datenstrukturen. Diese Eigenschaften reduzieren die Wirkungsweise dieser Space Leaping Techniken, bei einer Anwendung für ein Ray-Casting basierend auf einem Volumenrendering.
  • Zusammenfassung der Erfindung
  • Die hier beschriebenen beispielhaften Ausführungsbeispiele der Erfindung enthalten allgemein Verfahren und Systeme zum Volumenrendering, indem eine min-max reduzierte Path Octree Datenstruktur und ein Multi-Resolution-Ray-Marching Algorithmus verwendet werden, um den DVR (Direct-Volume-Rendering) und SSD (Shaded Surface Display) Rendering Modus zu beschleunigen. Die Verfahren gemäß den Ausführungsbeispielen, wie hier offenbart, haben eine reduzierte Indizierungskomplexität und Speicherzuschlag, verglichen mit einer kompletten Octree Struktur, und können eine interaktive Renderinggeschwindigkeit für große Datensätze erreichen, was einem Benutzer erlaubt, die Übertragungsfunktion „on the fly" zu ändern, ohne die Vorverarbeitungszeitperiode zu verlängern.
  • Gemäß einem Aspekt der Erfindung wird ein Verfahren geschaffen zum Fortpflanzen eines Strahls durch ein Bild, enthaltend ein Bereitstellen eines digitalisierten volumetrischen Bildes, das eine Mehrzahl von Intensitäten enthält, die einem Bereich von Voxeln in einem dreidimensionalen Raum entsprechen, ein Bereitstellen einer Octree Struktur mit reduziertem Weg (reduzierte Path Octree Struktur) des volumetrischen Bildes, wobei die reduzierte Path Octree eine Mehrzahl von Knoten ersten Levels enthält, wobei jeder Knoten ersten Levels eine Mehrzahl der Voxel enthält, ein Initialisieren eines Strahls in das volumetrische Bild, und Besuchen jedes Knotens ersten Levels entlang des Strahls, wobei, falls der Knoten ersten Levels nicht leer ist, jedes Voxel, das innerhalb jedes Knotens ersten Levels enthalten ist, besucht wird.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Besuchen eines jeden Voxels, das in jedem Knoten ersten Levels enthalten ist, ein Abtasten einer jeden Voxelintensität und ein Abfassen jeder Abtastung in einer Wiedergabe des Bildes.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Octree ferner eine Mehrzahl von Knoten zweiten Levels, wobei jeder Knoten zweiten Levels eine Mehrzahl von benachbarten Knoten ersten Levels enthält, und ferner mit einem Besuchen jedes Knotens zweiten Levels entlang des Strahls, und wenn der Knoten zweiten Levels nicht leer ist, Besuchen jedes Knotens ersten Levels, der in dem nicht leeren Knoten zweiten Levels enthalten ist.
  • Gemäß einem weiteren Aspekt der Erfindung enthält jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel, die innerhalb des Knotens enthalten sind.
  • Gemäß einem weiteren Aspekt der Erfindung ist ein Knoten leer, wenn der Maximumintensitätswert für diesen Knoten kleiner als ein vorbestimmter Schwellenwert ist.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Verfahren ein Zählen der Anzahl an Nicht-Null Intensitäten in einem Knoten, wobei ein Knoten leer ist, wenn ein Minimumwert von der Anzahl der Nicht-Null Intensitäten gleich der maximalen Anzahl der Intensitäten ist.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Verfahren ein Besuchen aller Nachbarknoten des Knoten ersten Levels, und für jeden nicht leeren Nachbarknoten ein Abtasten jeder Intensität, die in dem Nachbarknoten enthalten ist, und ein Abfassen jeder Abtastung in der Wiedergabe des Bildes.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Verfahren, wenn der Knoten ersten Levels leer ist, ein Besuchen aller Nachbarknoten des Knotens ersten Levels, und für jeden nicht leeren Nachbarknoten ein Abtasten der Intensität für jedes Voxel, das in dem Nachbarknoten enthalten ist, und ein Abfassen jeder Abtastung in die Wiedergabe des Bildes.
  • Gemäß einem weiteren Aspekt der Erfindung enthält das Abtasten einer Intensität eine trilineare Interpolation.
  • Gemäß einem weiteren Aspekt der Erfindung enthält jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel, die in einem Ein-Voxel-Padding in jeder Richtung in jedem Nachbar um den Knoten enthalten sind.
  • Gemäß einem anderen Aspekt der Erfindung wird eine Programmspeichervorrichtung geschaffen, die von einem Computer lesbar ist, verkörpert in einem Programm von Anweisungen, die durch den Computer ausführbar sind, um die Verfahrensschritte zum Fortpflanzen eines Strahls durch ein Bild durchzuführen.
  • Kurzbeschreibung der Figuren
  • 1 zeigt ein schematisches Diagramm einer beispielhaften Octree Datenstruktur gemäß einem Ausführungsbeispiel der Erfindung.
  • 2 zeigt ein schematisches Diagramm einer beispielhaften reduzierten Path Octree Datenstruktur gemäß einem Ausführungsbeispiel der Erfindung.
  • Die 3a – b verdeutlichen ein Knotenverlust, und wie es verhindert werden kann, gemäß einem Ausführungsbeispiel der Erfindung.
  • Die 4a – b verdeutlichen ein Beispiel eines Bildes mit und ohne Knoten-Leaking gemäß einem Ausführungsbeispiel der Erfindung.
  • 5 zeigt ein Flussdiagramm eines Multi-Resolution Space-Leaping Ray-Marching Verfahrens gemäß einem Ausführungsbeispiel der Erfindung.
  • 6 zeigt ein Flussdiagramm eines Verfahrens zum Verhindern von Knoten-Leaks gemäß einem Ausführungsbeispiel der Erfindung.
  • 7 zeigt ein Blockdiagramm eines beispielhaften Computersystems zum Implementieren eines Multi-Resolution Space-Leaping Ray-Marching Verfahrens gemäß einem Ausführungsbeispiel der Erfindung.
  • 8 zeigt einen Pseudocode für eine beispielhafte rekursive Implementierung eines Multi-Resolution Space-Leaping Ray-Marching Verfahrens gemäß einem Ausführungsbeispiel der Erfindung.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • Wie hier verwendet, betrifft der Ausdruck „Bild" mehrdimensionale Daten, die aus diskreten Bildelementen zusammengesetzt sind (beispielsweise Pixel für 2D-Bilder und Voxel für 3D-Bilder). Das Bild kann beispielsweise ein medizinisches Bild eines Subjekts sein, aufgenommen durch Computertomografie, Magnetresonanzbildgebung, Ultraschall oder durch ein anderes medizinisches Bildgebungssystem, das einem Fachmann auf diesem Gebiet bekannt ist. Das Bild kann auch aus nicht medizinischem Zusammenhang stammen, beispielsweise von Fernerfassungssystemen, der Elektronenmikroskopie, etc. Obwohl ein Bild als Funktion von R3 bis R bedacht werden kann, sind die Verfahren der Erfindungen nicht auf derartige Bilder beschränkt und können für Bilder mit irgendeiner Dimension verwendet werden, beispielsweise für ein 2D Bild oder ein 3D Volumen. Für ein 2D- oder 3D-Bild ist der Bereich des Bildes typischerweise ein zweidimensionales oder dreidimensionales Rechteckarray, wobei jedes Pixel oder Voxel adressiert werden kann durch Bezugnahme auf einen Satz von zwei oder drei zueinander orthogonalen Achsen. Die Begriffe „digital" und „digitalisiert", wie hier verwendet, betreffen Bilder oder Volumen, je nachdem, in einem digitalen oder digitalisierten Format, das über ein digitales Erfassungssystem oder durch Umwandlung eines analogen Bildes gewonnen wird.
  • Ray-Casting ist ein Prozess, der für jedes Pixel in einem Bildvolumen, das zu rendern ist, einen einzelnen Strahl von dem Beobachtungspunkt durch das Zentrum des Pixels und in das Volumen wirft, optische Eigenschaften integriert, beispielsweise Farbe und Opazität, die von den betroffenen Volumendichten entlang des Strahlweges gewonnen werden. Zwei Modi für ein Ray-Casting sind DVR (Direct Volumen Rendering) und SSD (Shaded Surface Display). In vielen Bildgebungsmodalitäten, beispielsweise CT oder MRI, können die resultierenden Intensitätswerte oder Bereiche der Werte mit bestimmten Typen von Gewebe korreliert werden, wodurch man beispielsweise Knochen, Muskeln, Fleisch und Fettgewebe, Nervenfasern; Blutgefäße, Organwände, etc. unterscheiden kann, basierend auf den Intensitätsbereichen innerhalb des Bildes. Die rohen Intensitätswerte in dem Bild können als Eingabe für eine Übertragungsfunktion dienen, deren Ausgabe ein Opazitäts- oder Farbwert ist, der den Gewebetyp charakterisieren kann. Diese Opazitätswerte können verwendet werden, um eine Nachschlagetabelle zu definieren, wobei ein Opazitätswert, der einen bestimmten Gewebetyp charakterisiert, zu jedem Pixelpunkt gehört. Die optischen Eigenschaften, die durch einen Strahl integriert werden, können für ein Pixel aus der Nachschlagetabelle gewonnen werden. Die Verwendung von Opazitätswerten zur Klassifizierung von Gewebe erlaubt einem Benutzer ein Objekt oder einen Gewebetyp, der anzuzeigen ist, auszuwählen, und nur Opazitätswerte zu integrieren, die dem ausgewählten Objekt oder dem Gewebe entsprechen.
  • Ein Octree ist eine Datenstruktur, die verwendet wird, um effizient einen 3D-Datensatz zu durchlaufen. Gemäß einem beispielhaften nicht einschränkenden Verfahren zum Aufbauen eines Octree wird jede Gruppe von acht benachbarten Voxeln eines Datensatzes in einen Elternknoten ersten Levels gruppiert. In einem 512 % 512 % 512 Datensatz erhält man 256 % 256 % 256 % Knoten ersten Levels der Größe 2 % 2 % 2. Dann wird jede Gruppe von acht benachbarten Knoten ersten Levels in den Elternknoten nächsten Levels gruppiert, etc. Dieser Prozess kann wiederholt werden, bis jedes Voxel in dem Datensatz gruppiert worden ist, wobei der Top-Level-Knoten die Spitze der Octree Struktur bildet. Der Top-Level-Knoten eines Octrees wird als Wurzelknoten bezeichnet, der normalerweise Information über das gesamte Datensatzvolumen enthält. Jeder Zwischenschichtknoten enthält Information über die Knoten des nächstniedrigeren Levels. Während der Ray-Casting Laufzeit wird jeder Strahl verfolgt durch Durchlaufen des Octrees beginnend beim Wurzelknoten. Wenn der Wurzelknoten angibt, dass er leer ist, dann ist das gesamte Sub-Volumen leer, und nichts muss getan werden. Andernfalls durchläuft der Strahl die Knoten des nächstniedrigeren Levels. Diese Technik des Überspringens leerer Knoten und des Besuchens des Knotens mit dem nächstniedrigeren Level, wenn ein Elternknoten nicht leer ist, wird wiederholt, bis der Strahl ein individuelles Voxel besucht, an welchem Punkt das Voxel über eine trilineare Interpolation abgetastet wird.
  • Ein nicht einschränkendes Beispiel eines Octree ist in 1 gezeigt. Ein Datensatz 20 ist schematisch in der Figur gezeigt. Der Datensatz, der in der Figur gezeigt ist, enthält 32 % 32 % 32 Voxel 10. Jede Gruppe von acht benachbarten Voxeln 10, die einen 2 % 2 % 2 Würfel bilden, wird in einen Knoten 11 ersten Levels gruppiert. Jede Gruppe von acht benachbarten Knoten 11 ersten Levels, die einen 2 % 2 % 2 Würfel der Knoten ersten Levels bilden, wird in einen Knoten 12 zweiten Levels gruppiert. Jede Gruppe der acht benachbarten Knoten 12 zweiten Levels, die einen 2 % 2 % 2 Würfel der Knoten zweiten Levels bilden, wird in einen Knoten 13 dritten Levels gruppiert. Ähnlich wird jede Gruppe von acht benachbarten Knoten 13 dritten Levels, die einen 2 % 2 % 2 Würfel der Knoten dritten Levels bilden, in einen Knoten 14 vierten Levels gruppiert. Abschließend werden die acht benachbarten Knoten 14 vierten Levels, die einen 2 % 2 % 2 Würfel bilden, in einen Knoten 15 fünften Levels gruppiert. Dieser Knoten fünften Levels, der der Toplevel für diesen Datensatz ist, bildet den Wurzelknoten.
  • Die linke Seite in der 1 stellt dar, wie Knoten in einem gegebenen Level des Octree Bezug nehmen auf Knoten in dem nächstniedrigeren Level. Fünf Reihen 16 sind in der Figur gezeigt, eine Reihe für jeden Level in dem Octree. Die Reihe 151 verdeutlicht die acht Zellen des Knotens 15 fünften Levels, nummeriert von 0 bis 7, usw. für die Reihen 141, 131, 121 und 111. Obwohljede Zelle in der Reihe 151 auf acht Knoten niedrigeren Levels zeigt, ist dies nur für die Zelle 7 in dem Diagramm gezeigt, um die Figur übersichtlich zu halten. Die Zelle 7 der Reihe 151 ist gezeigt als auf den ersten der acht Knoten vierten Levels in der Reihe 141 zeigend. Ähnlich zeigt jede Zelle in der Reihe 141 auf acht Knoten niedrigeren Levels, und dies ist durch die Zelle 7 der Reihe 141 angedeutet, die auf den ersten der acht Knoten 131 dritten Levels zeigt. Die Zelle 7 der Reihe 131 ist gezeigt als auf den ersten der acht Knoten 121 zweiten Levels zeigend, und die Zelle 7 der Reihe 121 ist gezeigt als auf acht Knoten 111 ersten Levels zeigend. In dieser Weise kann man von dem Wurzelknoten 15 durch jeden Knoten niedrigeren Levels wandern, bis man individuelle Voxel 10 erreicht.
  • Obwohl die Octree Datenstruktur bei der Codierung von Information über die Leerstelle wirkungsvoll ist, gibt es verschiedene Nachteile. Zum einen hat sie ein relativ komplexes Indizierungsschema, das während der Laufzeit einen Performanceoverhead zur Folge hat. Um beispielsweise 512 % 512 % 512 Datensätze zu rendern, muss ein Strahl bis herunter auf neun Level der Octree Knoten gehen, bevor er individuelle nicht leere Voxel erreicht, um eine Interpolation durchzuführen. Zum Zweiten benötigt ein Octree zusätzlichen Speicher, um die Information zu speichern, die zu jedem Knoten niedrigeren Levels gehört. Bei Datensätzen, die in der Größe zunehmen, können Speicherressourcen ziemlich teuer werden, und jeder zusätzliche Overhead muss sorgsam geprüft werden. Letztendlich sollte jedes Mal, wenn ein Benutzer die Übertragungsfunktion ändern will, das Octree rekonstruiert werden, um den Leerraum erneut zu codieren. Wenn man die Komplexität der Octree Datenstruktur berücksichtigt, kann ein erneutes Codieren des Leerraums eine unerwünschte Vorverarbeitung mit sich bringen.
  • Gemäß einem Ausführungsbeispiel der Erfindung ist in 2 eine reduzierte Path Octree Datenstruktur gezeigt. In einem reduzierten Path Octree sind die Zwischenschichten reduziert. Ein nicht einschränkendes Beispiel, das in 2 gezeigt ist, ist ein Zweischicht-Octree, das eine untere Schicht mit 4 % 4 % 4 Knoten aufweist, und eine obere Schicht mit 16 % 16 % 16 Knoten. Jeder 4 % 4 % 4 Knoten 22 gehört zu einer Liste von 64 Voxeln 21, die darin enthalten sind, während jeder 16 % 16 % 16 Knoten 23 zu den 64 4 % 4 % 4 Knoten 22, die darin enthalten sind, gehört. Das gesamte Bildvolumen 20 enthält 2 % 2 % 2 Knoten 23 der Größe 16 % 16 % 16. Zu jedem Knoten bei jedem Level gehört ein Minimum- und ein Maximumwert aller Knoten/Voxel, die in dem Knoten enthalten sind. Eine reduzierende Anzahl an Zwischenschichten reduziert den zusätzlichen Speicher, der von der Datenstruktur benötigt wird, und reduziert die Komplexität des Indizierens. Jede Schicht kann als ein unterabgetastetes Volumen behandelt werden, und die Indizierungsbeziehung zwischen verschiedenen Schichten für die entsprechenden Knoten ist implizit ohne zusätzliche erforderliche Pointer. Wenn man beispielsweise einen 512 % 512 % 512 Würfel Datensatz und ein Voxel mit der (x, y, z) Position, die (240, 36, 410) ist, betrachtet, ist die entsprechende Knotenstelle in der 4 % 4 % 4 Schicht gleich (60, 9, 103) und die entsprechende Knotenstelle in der 16 % 16 % 16 Schicht ist gleich (15, 3, 26). Zu beachten ist, dass die Division durch 4 mit Abschneiden wirkungsvoll durch ein Rechtsschieben um zwei Bit berechnet werden kann. Allgemeiner kann die Umwandlung eines Index oberen Levels in einen Index unteren Levels durchgeführt werden, indem der Index oberen Levels um eine entsprechende Anzahl an Bits nach rechts verschoben wird.
  • Die Octree Struktur hängt von der Übertragungsfunktion ab, um zu bestimmen, welche Knoten leer sind. Ein Ändern der Übertragungsfunktion erfordert folglich eine Neuberechnung der Octree Datenstruktur, was während der Laufzeit eine erkennbare Verzögerung bringen kann. Gemäß einem anderen Ausführungsbeispiel der Erfindung, um diese Verzögerung zu verkürzen, kann eine min-max Struktur in die Octree Struktur eingearbeitet werden. Anstatt zu speichern, ob ein Knoten leer ist oder nicht, werden der Minimum- und Maximumwert aller Voxel, die in einem Knoten enthalten sind, gespeichert. Diese Datenstruktur kann das erste Mal konstruiert werden, wenn das Bildvolumen geladen wird, und muss nicht aktualisiert werden, wenn sich die Übertragungsfunktion ändert.
  • Gemäß einem Ausführungsbeispiel der Erfindung kann eine min-max Struktur während DVR verwendet werden, um die „Leere" eines Knotens während der Laufzeit zu bestimmen, bei Verwendung mit einer anderen Datenstruktur verwendet wird, die als die alphasummierte Bereichstabelle bezeichnet wird. Die Gleichung 1 definiert, wie die alphasummierte Bereichstabelle für jeden Eintrag konstruiert wird, wobei lut[i].alpha den Opazitätswert der Nachschlagetabelle für das i-te Voxel darstellt.
  • Figure 00090001
  • Die Leerstellen eines Knotens können bestimmt werden durch Vergleichen des Tabelleneintrags des Maximumwerts und des Tabelleneintrags des Minimumwerts, um zu sehen, ob sie gleich sind. Wenn die Tabelleneinträge den gleichen Wert aufweisen, sagt man, dass der Knoten leer ist, wie alle Voxel, die in diesem Knoten enthalten sind. Die Gleichung 2 verdeutlicht ein Beispiel zum Bestimmen, ob ein Knoten leer ist oder nicht. if((lutsum[530] – lutsum[15] = 0) (2)
  • In dem Beispiel gemäß Gleichung 2 sind Minimum- und Maximumwerte des Knotens jeweils 15 und 530. Verglichen mit den ursprünglichen Volumendaten und der reduzierten Path Octree Datenstruktur, ist die alphasummierte Bereichstabelle bezüglich der Größe klein und leicht zu verarbeiten. Beispielsweise hat eine typische alphasummierte Bereichstabelle für 16 % 16 % 16 Knoten nur 4096 Einträge. Da die Berechnung der Tabelle, wie in Gleichung 1 gezeigt, inkremental ist, ist die Aktualisierung der Tabelle sehr schnell. Jedes Mal, wenn sich die Übertragungsfunktion ändert, muss folglich nur die alphasummierte Bereichstabelle aktualisiert werden, anstatt das reduzierte Path Octree zu rekonstruieren. Die Aktualisierung der Tabelle kann in Millisekunden durchgeführt werden, und wird von einem Endbenutzer nicht wahrgenommen.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung kann eine min-max reduzierte Path Octree Datenstruktur für SSD verwendet werden, indem ein Schwellenwert verwendet wird, um eine Oberfläche zu bestimmen. Während der Laufzeit wird dieser Schwellenwert mit dem min-max Wert eines Knotens verglichen. Wenn der Maximumwert eines Knotens unter dem Schwellenwert liegt, werden alle Voxel innerhalb dieses Knotens übersprungen.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung wird ein Multi-Resolution Space-Leaping Algorithmus verwendet, der adaptive Schrittgrößen verwendet. Der Einfachheit halber wird gemäß einem nicht einschränkenden Beispiel, das zwei Octree Level aufweist, 16 % 16 % 16 und 4 % 4 % 4, und eine Rendering Abtastdistanz entlang des Strahls, die auf die Voxeldistanz eingestellt ist, eine Einheitenschrittgröße verwendet. Es soll verstanden werden, dass diese Octree Struktur und die Abtastdistanz lediglich beispielhaft sind, und dass andere Octree Strukturen mit einer anderen Knotenstruktur und anderen Abtastdistanzen verwendet werden können, und innerhalb des Schutzbereichs eines Ausführungsbeispiels der Erfindung liegen.
  • 5 zeigt ein Flussdiagramm eines Multi-Resolution-Space-Leaping Ray-Marching Verfahrens gemäß einem Ausführungsbeispiel der Erfindung. In einem nicht einschränkenden Beispiel, das hier beschrieben wird, wird eine min-max reduzierte Path Octree Struktur verwendet, die zwei Level enthält, 4 % 4 % 4 und 16 % 16 % 16. Der Strahl startet an dem ersten 16 % 16 % 16 Knoten in Schritt 50 mit einem Strahl-Inkrement von 16. Wenn in Schritt 51 der Knoten leer ist, kann er übersprungen werden. Der Prozess springt zu Schritt 58, um mit dem nächsten 16 % 16 % 16 Knoten fortzufahren. Wenn der 16 % 16 % 16 Knoten nicht leer ist, dann wird ein erster Knoten niedrigeren Levels, beispielsweise der 4 % 4 % 4 Levelknoten innerhalb des 16 % 16 % 16 Elternknotens in Schritt 52 besucht und die Strahlinkrementgröße auf 4 reduziert. Wenn in Schritt 53 erneut der Knoten leer ist, wird er übersprungen. Der Prozess springt zu Schritt 57, um mit dem nächsten 4 % 4 % 4 Knoten fortzufahren. Wenn der 4 % 4 % 4 Knoten nicht leer ist, dann wird der Knoten nächstniedrigeren Levels, beispielsweise die 1 % 1 % 1 Levelknoten innerhalb des 4 % 4 % Elternknotens in Schritt 54 besucht und die Strahlinkrementgröße auf 1 reduziert. In Schritt 55 wird der Knoten abgetastet und in das Bild montiert. Eine bekannte Abtasttechnik ist die trilineare Interpolation. In Schritt 56 wird der nächste 1 % 1 % 1 Knoten besucht, bis alle 1 % 1 % 1 Knoten in dem 4 % 4 % 4 Knoten besucht worden sind. Die Strahlinkrementgröße wird jetzt zurück auf 4 erhöht und der nächste 4 % 4 % 4 Knoten in Schritt 57 besucht, und die vorangegangenen Schritte 53, 54, 55 und 56 werden wiederholt. Nachdem alle 4 % 4 % 4 Knoten innerhalb des bestimmten 16 % 16 % 16 Knotens verarbeitet worden sind, wird die Strahlinkrementgröße auf 16 erhöht und der nächste 16 % 16 % 16 Knoten wird in Schritt 58 besucht. Die vorangegangenen Schritte 51 bis 57 werden wiederholt, bis der Strahl das Volumen verlässt. Während der Untersuchung eines Knotens werden die Leere des Knotens für DVR bestimmt durch die Differenz der alphasummierten Bereichseinträge für die Minimum- und Maximumwerte, die in diesem Knoten gespeichert sind. Die Leere des Knotens für SSD wird dadurch bestimmt, ob der Maximumwert, der in dem Knoten gespeichert ist, größer als der vordefinierte Schwellenwert ist.
  • Verglichen mit einem Space-Leaping Algorithmus, der keine hierarchische Datenstruktur aufweist, kann ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung bis zu zehnmal schneller durchgeführt werden. Dies liegt daran, dass ein Strahl mit der vier- bis sechzehfachen Schrittgröße eines Non-Space-Leaping Ray-Marching Schritts wandert, wodurch die Anzahl der Speicherzugriffe für die Voxel entlang des Strahls reduziert werden kann, was wiederum die Cache Misses sowie eine zeitaufwendige trilineare Interpolation reduziert. Gemäß diesem Ausführungsbeispiel der Erfindung kann eine Leerstelle effizient übersprungen werden, ohne unnötigen Extraspeicher oder kompliziertes Indizieren zu verwenden. Ein Benutzer kann die Übertragungsfunktion „on the fly" ändern, ohne beobachtbare Verarbeitungsverzögerungen.
  • Die Verwendung eines 2-Level min-max reduzierten Path Octree in 5 ist beispielhaft, gemäß einem anderen Ausführungsbeispiel der Erfindung kann eine willkürliche Octree Struktur mit einer willkürlichen Anzahl von Leveln verwendet werden. 8 verdeutlicht einen Pseudecode gemäß einer beispielhaften nicht einschränkenden rekursiven Implementierung eines Multi-Resolution Space-Leaping Ray-Marching Verfahrens gemäß diesem Ausführungsbeispiel der Erfindung. Für jeden Strahl wird eine rekursive Funktion get_sample aufgerufen mit dem augenblicklichen Knoten als Argument, um den Bildwert für diesen Strahl zu bilden. Für jeden nicht leeren Knoten wird der Knoten nächstniedrigeren Levels, angegeben als node.sub in dem Pseudocode besucht, bis die Knoten untersten Levels erreicht sind, an welchem Punkt jeder der untersten Knoten abgetastet ist, typischerweise indem eine trilineare Interpolation verwendet wird, und die Abtastungen werden in das Bild montiert.
  • In ähnlicher Weise kann gemäß einem anderen Ausführungsbeispiel der Erfindung ein Octree mit einem Level verwendet werden. In diesem Ausführungsbeispiel wird die in 5 gezeigte äußerste Knotenschleife weggelassen und jeder Knoten würde abgetastet werden, wenn ein Knoten äußeren Levels nicht leer ist.
  • Ein Durchquerungsschema gemäß einem Ausführungsbeispiel der Erfindung, wie oben beschrieben, kann jedoch einen Knotenverlust verursachen. 3(a) zeigt ein Beispiel eines Knotenverlusts. Aus Klarheitsgründen zeigen die 3a – b einen beispielhaften nicht einschränkenden 4 % 4 Level Octreeknoten. Der Knotenverlust erfolgt aufgrund einer Zunahme der Strahlschrittgröße während der Laufzeit. Bezugnehmend auf 3a ist während des Wanderns eines Strahls der Knoten 1 leer, und der Strahl verläuft weiter mit einer Schrittgröße von 4 und erreicht den Knoten 2. Nach einer Untersuchung wird der Knoten 2 als leer befunden, und der Strahl setzt sich fort, ohne Abtastung der Voxel innerhalb dieser zwei Knoten. Jedoch ist der Knoten 3 nicht leer. Wenn der Strahl mit der Einheitenschrittgröße weiterverläuft, können zumindest zwei Voxel (in rot) in Knoten 3 gefunden werden, die nicht leer sind. Mit der Schrittgrößeneinstellung größer als die Einheitenschrittgröße, wurde dieser Knoten, der abgetastet wer den sollte, übersprungen. Die Artefakte, die durch einen Knotenverlust verursacht werden, sind sichtbarer in schattierten und SSD Rendering Modi. 4a zeigt ein Beispielbild, das die Wirkung des Knotenverlusts im SSD Modus verdeutlicht, wie durch die Mehrzahl der schwarzen Flecken, die auf dem Gesicht des Subjekts sichtbar sind, angedeutet.
  • Gemäß einem Ausführungsbeispiel der Erfindung, das sich gegen einen Knotenverlust richtet, können zusätzliche Schritte in der oben beschriebenen Strahlwanderprozedur enthalten sein, wobei Nachbarknoten in allen Richtungen überprüft werden. Erneut bezugnehmend auf 3b, ist der Knoten 1 leer, während der Knoten 3 nicht leer ist. Unter Verwendung der Verfahren gemäß den oben beschriebenen Ausführungsbeispielen, wird der Strahl den Knoten 3 auslassen und direkt in den Knoten 2 gehen. Um dieses Phänomen zu vermeiden, sollte die Leere des Knotens 1 und seiner Nachbarknoten, die Knoten 3 und 4, überprüft werden.
  • 6 zeigt ein Flussdiagramm eines Verfahrens zur Vermeidung eines Knotenverlusts, gemäß einem Ausführungsbeispiel der Erfindung. Zur Einfachheit wird ein beispielhaftes 1-Level 4 % 4 Octree, wie in den 3a – b gezeigt, für 6 verwendet. Beginnend in Schritt 60 wird jeder 4 % 4 Knoten entlang eines Strahls besucht, und der augenblickliche Knoten und jeder seiner Nachbarknoten wird auf Leere in Schritt 61 geprüft. Im Allgemeinen ergeben sich drei Fälle.
    • (1) Der gegenwärtige Knoten und jeder seiner Nachbarknoten ist leer. In diesem Fall kann der Prozess den gegenwärtigen Knoten überspringen und zu Schritt 69 gehen, um mit dem nächsten Knoten fortzufahren.
    • (2) Der gegenwärtige Knoten ist leer, während mindestens ein Nachbarknoten nicht leer ist. In diesem Fall wird die Strahlinkrementschrittgröße von 4 auf 1 reduziert und ein 1 % 1 Knoten, der die Strahlfront enthält, wird in Schritt 62 gewonnen. Die Leere des Nachbarknotens in der Strahlfortschreitrichtung wird in Schritt 63 für alle Voxel in dem Knoten geprüft. Es gibt zwei mögliche Unterfälle hier. Wenn ein Voxel ein leerer Knoten ist, wird dieses Voxel übersprungen, die Strahlfront verläuft in Schritt 65 weiter mit einem Schritt, und der nächste Knoten wird in Schritt 62 erhalten. Andererseits, wenn das Voxel nicht in einem leeren Knoten ist, wird es abgetastet, typischerweise unter Verwendung einer trilinearen Interpolation, in Schritt 64, und die Strahlfront verläuft in Schritt 65 weiter mit einem Schritt und der nächste Knoten wird in Schritt 62 erhalten. In 3b sind die Nachbarn die Knoten 3 und 4, und die Voxel starten von Voxel 31 in dem gegenwärtigen Knoten und den nächsten drei Voxeln 32. In 3b sind das Voxel 31 und das erste der Voxel 32 in dem Knoten 1, der leer ist, während das zweite und dritte Voxel 32 in dem Knoten 3 sind, der nicht leer ist.
    • (3) Der gegenwärtige Knoten ist nicht leer. In diesem Fall wird die Strahlinkrementschrittgröße von 4 auf 1 reduziert, und ein 1 % 1 Knoten in Schritt 66 besucht und in Schritt 67 abgetastet, typischerweise unter Verwendung einer trilinearen Interpolation. Der nächste 1 % 1 Knoten wird in Schritt 68 gewonnen, bis alle derartigen Knoten besucht worden sind. Zu beachten ist, dass wenn ein Knoten in diesem Fall abgetastet wird, alle Voxel in dem Knoten abgetastet werden sollten. Dies erfordert manchmal einen Schritt zurück mit einer Einheitenschrittgröße, um diese übersprungenen Voxel abzutasten. Beispielsweise, bezugnehmend auf 3b sollte die Abtastung das Originalvoxel 31 enthalten, drei übersprungene Voxel 34 und eine nächste Abtastung 32 in dem Knoten 1, mit der Einheitenschrittgröße.
  • Nachdem alle 1 % 1 Knoten in einem 4 % 4 Knoten besucht worden sind, wird der nächste 4 % 4 Knoten in Schritt 69 gewonnen, bis alle derartigen Knoten besucht worden sind. Für ein Octree mit mehr als einem Level können die oben genannten Schritte für jeden Knoten bei jedem anderen Octree Level wiederholt werden.
  • Im Fall (1) ist der Betriebsoverhead minimal und der Strahl kann schnell mit einer Schrittgröße von 16 und/oder 4 für das gegebene Beispiel fortschreiten. Der Fall (1) sollte am Öftesten auftreten, wenn ein Strahl die Leerstelle durchläuft. Es kann eine um das vier- bis sechzehnfache bessere Performance erhalten werden.
  • Im Fall (2) ist der Betriebsoverhead immer noch gering zum Prüfen der Knoten-Leere mit einer Einheitenschrittgröße. Wenn die Knotengrößen Potenzen von 2 sind, kann ein Runden von einem Einheitenabtastindex in einen Knotenindex wirkungsvoll durch ein Rechtsschieben des Einheitenindex um eine vorbestimmte Anzahl an Bits berechnet werden. In dem beispielhaften Fall, wie in 3b gezeigt, wo ein 4 % 4 Knoten verdeutlicht ist, kann der Knotenindex berechnet werden durch Rechtsschieben der Indices um zwei Bit. Solange ein Knoten nicht leer ist, was auftreten kann, wenn ein Strahl nahe einem nicht leeren Objekt verläuft, besteht keine Notwendigkeit eine trilineare Interpolation zu verwenden, um den Knoten erneut abzutasten.
  • Der Fall (3) ist rechenintensiver als die Fälle (1) und (2), da eine trilineare Interpolation typischerweise verwendet wird, um den Knoten entlang des Strahls erneut abzutasten. Kein Leer stellenauslassen oder Überspringen kann verwendet werden, bis der Strahl entweder aus dem nicht leeren Raum verläuft oder die Opazität des Rendering einen Schwellenwert erreicht, in welchem Fall die Strahlwanderung beendet wird.
  • Eine andere Situation, bei der ein Knotenverlust auftreten kann, ist wenn ein Strahl nahe der Grenze eines Knotens ist. In diesem Fall verwendet ein erneutes Abtasten mit einer trilinearen Interpolation acht Nachbarvoxel, die in separaten Knoten lokalisiert sind. Der Abtastwert kann nicht aus der Leere des Knotens bestimmt werden, der die Abtastung enthält, sondern benötigt die Information der Voxel von anderen Knoten. Um diese Situation zu verhindern, werden während des Aufbaus eines K % K% K Knotens niedrigeren Levels des Octrees das Minimum und das Maximum der (K + 1) % (K + 1) % (K + 1) Voxel verwendet. Ein „Padding" eines Voxels in jeder Richtung wird verwendet, dass sich mit Nachbarknoten überlappt, wenn das Minimum und Maximum des Knotens berechnet wird. Dieses Padding kann sicherstellen, dass irgendeine Abtastung nahe einer K % K % K Knotengrenze irgendein Nachbarvoxel berücksichtigen kann, dass zu dem Abtastwert beitragen kann.
  • Die 4a – b verdeutlichen ein Beispiel eines Bildes sowohl mit als auch ohne Knotenverlust, gemäß einem Ausführungsbeispiel der Erfindung. Das in 4a gezeigte Bild verdeutlicht die Wirkung des Knotenverlusts, während das Bild in 4b ein Bild zeigt, das ohne Knotenverlust wiedergegeben wird. Die Wiedergabezeit für die Abtastung ist angegeben an der oberen linken Ecke jedes Bildes. Jedes Bild wurde aus einem 512 % 512 % 512 CT Datensatzes für einen Kopf gerendert, und die Zeit zum Rendern betrug 459 Millisekunden/Rahmen unter Verwendung einer Strahlwanderung ohne Knotenverlust, während die Zeit für ein Rendern des gleichen Bildes mit Korrektur des Knotenverlusts 521 Millisekunden/Rahmen betrug.
  • Ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung wurde getestet unter Verwendung von drei Datensätzen: 512 % 512 % 1024 sichtbarer weiblicher Datensatz, ein 512 % 512 % 512 CT Datensatz eines Kopfs, und ein 512 % 512 % 512 Datensatz eines Unterleibs. Die Testplattform war ein Dual Xenon 3 Gigahertz Computer mit einem 1 Gigabyte Speicher. Für den DVR Modus bei voller Auflösung wurden 2 – 4 Rahmen pro Sekunde für die Datensätze des Kopfes und des Unterleibs erreicht, und ungefähr 0,5 bis 2 Rahmen pro Sekunde bei Verwendung des sichtbaren weiblichen Datensatzes. Die Renderingperformance für SSD betrug ungefähr 1 bis 3 Rahmen pro Sekunde für den Datensatz des Kopfes und des Unterleibs und ungefähr 0,5 bis 1 Rahmen pro Sekunde unter Verwendung des sichtbaren weiblichen Datensatzes. Ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung kann bis zu zehnmal schneller sein, ohne Hardwaregraphikbeschleunigung, als ein Space-Leaping Ansatz ohne hierarchische Datenstruktur. Zusätzlich kann ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung ungefähr zwanzig- bis dreißigmal weniger Speicher benutzen, verglichen mit dem ursprünglichen Octree Algorithmus.
  • Es soll verstanden werden, dass die gegenwärtige Erfindung in verschiedenen Formen in Hardware, Software, Firmware, speziellen Prozessen oder Kombinationen davon implementiert werden kann. Gemäß einem Ausführungsbeispiel kann die Erfindung in Software implementiert werden als ein Anwendungsprogramm, das auf einer computerlesbaren Programmspeichervorrichtung verkörpert ist. Das Anwendungsprogramm kann auf eine Maschine hochgeladen und durch diese ausgeführt werden, die irgendeine geeignete Architektur enthält.
  • Bezugnehmend auf 7 kann gemäß einem Ausführungsbeispiel der Erfindung ein Computersystem 71 zum Implementieren der vorliegenden Erfindung u. a. eine zentrale Verarbeitungseinheit (CPU) 72, einen Speicher 73 und eine Eingabe/Ausgabe (I/O)-Schnittstelle 74 enthalten. Das Computersystem 71 ist im Allgemeinen durch die I/O-Schnittstelle 74 an eine Anzeige 75 und an verschiedene Eingabevorrichtungen 76 gekoppelt, beispielsweise eine Maus und eine Tastatur. Die Unterstützungsschaltungen können Schaltungen enthalten, beispielsweise einen Cache, Leistungsversorgungen, Taktschaltungen und einen Kommunikationsbus. Der Speicher 73 kann ein RAM (Random Access Memory), ein ROM (Read Only Memory), ein Plattenlaufwerk, ein Bandlaufwerk, etc. oder Kombinationen davon enthalten. Die vorliegende Erfindung kann als eine Routine 77 implementiert sein, die in dem Speicher 73 gespeichert und von der CPU 72 ausgeführt wird, um das Signal von der Signalquelle 78 zu verarbeiten. Das Computersystem 71 ist ein Allzweckcomputersystem, das zu einem Computersystem für einen bestimmten Zweck wird, wenn die Routine 77 gemäß der vorliegenden Erfindung ausgeführt wird.
  • Das Computersystem 71 enthält auch ein Betriebssystem und Mikroanweisungscode. Verschiedene Prozesse und Funktionen, die hier beschrieben wurden, können entweder Teil des Mikroanweisungscodes oder Teil des Anwendungsprogramms (oder Kombinationen aus beidem) sein, das über das Betriebssystem ausgeführt wird. Darüber hinaus können verschiedene andere periphere Geräte mit der Computerplattform verbunden sein, beispielsweise eine zusätzliche Datenspeichervorrichtung und eine Druckervorrichtung.
  • Es soll ferner verstanden werden, dass, da einige der Systemkomponenten und der Verfahrensschritte in den beigefügten Figuren in Software implementiert werden können, die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder den Prozessschritten) verschieden sein können, in Abhängigkeit von der Art und Weise, in der die vorliegende Erfindung programmiert wird. Durch Angabe der Lehren der vorliegenden Erfindung ist ein Fachmann auf diesem Gebiet in der Lage, diese und ähnliche Implementierungen oder Konfigurationen der vorliegenden Erfindung auszuführen.
  • Die bestimmten Ausführungsbeispiele, wie oben offenbart, sind lediglich beispielhaft, und die Erfindung kann in anderer jedoch äquivalenter Art und Weise, die für Fachleute auf diesem Gebiet offensichtlich ist, modifiziert und praktiziert werden. Darüber hinaus sind die Details des Aufbaus oder des Designs, wie hier gezeigt, nicht einschränkend und können anders sein als in den folgenden Ansprüchen beschrieben. Es ist folglich offensichtlich, dass bestimmte Ausführungsbeispiele, wie hier offenbart, geändert oder modifiziert werden können, und dass alle derartige Änderungen unter den Schutzbereich der Erfindung fallen. Entsprechend wird der Schutzbereich durch die folgenden Ansprüche angegeben.

Claims (24)

  1. Verfahren zum Verbreiten eines Strahls durch ein Bild, enthaltend ein Bereitstellen eines digitalisierten volumetrischen Bildes, das eine Mehrzahl von Intensitäten enthält, die einen Bereich von Voxeln in einem dreidimensionalen Raum entsprechen; ein Bereitstellen einer reduzierten Path Octree Struktur des volumetrischen Bildes, wobei die reduzierte Path Octree Struktur eine Mehrzahl von Knoten ersten Levels enthält, wobei jeder Knoten ersten Levels eine Mehrzahl der Voxel enthält; ein Initialisieren eines Strahls in das Innere des volumetrischen Bildes; und ein Besuchen jedes Knotens ersten Levels entlang des Strahls, wobei, wenn der Knoten ersten Levels nicht leer ist, jedes Voxel besucht wird, das in jedem Knoten ersten Levels enthalten ist.
  2. Verfahren nach Anspruch 1, wobei das Besuchen jedes Voxels, das in jedem Knoten ersten Levels enthalten ist, ein Abtasten jeder Voxelintensität und ein Montieren jeder Abtastung in eine Wiedergabe des Bildes enthält.
  3. Verfahren nach Anspruch 1, wobei das Octree ferner eine Mehrzahl von Knoten zweiten Levels enthält, wobei jeder Knoten zweiten Levels eine Mehrzahl von benachbarten Knoten ersten Levels enthält, und ferner mit einem Besuchen jedes Knotens zweiten Levels entlang des Strahls und wenn der Knoten zweiten Levels nicht leer ist, ein Besuchen jedes Knotens ersten Levels, der in dem nicht leeren Knoten zweiten Levels enthalten ist.
  4. Verfahren nach Anspruch 1, wobei jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel aufweist, die in dem Knoten enthalten sind.
  5. Verfahren nach Anspruch 4, wobei ein Knoten leer ist, wenn der Maximumintensitätswert für diesen Knoten kleiner als ein vorbestimmter Schwellenwert ist.
  6. Verfahren nach Anspruch 4, ferner mit einem Zählen der Anzahl an Nicht-Null Intensitäten in einem Knoten, wobei ein Knoten leer ist, wenn ein Minimumwert der Anzahl der Nicht-Null Intensitäten gleich der maximalen Anzahl der Intensitäten ist.
  7. Verfahren nach Anspruch 2, ferner mit einem Besuchen aller Nachbarknoten des Knotens ersten Levels, und für jeden nicht leeren Nachbarknoten Abtasten jeder Intensität, die in dem Nachbarknoten enthalten ist, und Montieren jeder Abtastung in die Wiedergabe des Bildes.
  8. Verfahren nach Anspruch 2, wobei, wenn der Knoten ersten Levels leer ist, alle Nachbarknoten des Knotens ersten Levels besucht werden, und für jeden nicht leeren Nachbarknoten die Intensität jedes Voxels, das in dem Nachbarknoten enthalten ist, abgetastet wird und jede Abtastung in die Wiedergabe des Bildes montiert wird.
  9. Verfahren nach Anspruch 2, wobei das Abtasten einer Intensität eine trilineare Interpolation enthält.
  10. Verfahren nach Anspruch 4, wobei jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel enthält, die in einem Ein-Voxel Padding in jeder Richtung in jedem Nachbarn um den Knoten enthalten sind.
  11. Verfahren zum Rendern eines volumetrischen Bildes, enthaltend: Bilden eines reduzierten Path Octree eines volumetrischen Bildes, wobei das reduzierte Path Octree n-Level enthält, wobei n μ 1 ist, wobei zerlegte Gruppen benachbarter Voxel des Bildes in einen oder in mehrere Knoten ersten Levels gebildet werden, wobei zerlegte Gruppen von benachbarten Knoten i-ten Levels des Octrees in einen oder in mehrere Knoten (i + 1)-ten Levels gebildet werden, wobei jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert enthält; Besuchen jedes Knotens n-ten Levels entlang eines Strahls durch das Bild, wobei, wenn der Knoten n-ten Levels nicht leer ist, Besuchen jedes Knotens niedrigeren Levels, der darin enthalten ist, entlang des Strahls, wobei, wenn der Knoten niedrigeren Levels nicht leer ist, Wiederholen der Schritte des Besuchens jedes Knotens des nächstniedrigeren Levels, bis ein Knoten untersten Levels, der ein nicht leeres individuelles Voxel enthält, besucht ist; und Abtasten jeder Voxelintensität und Montieren jeder Abtastung in eine Wiedergabe des Bildes.
  12. Verfahren nach Anspruch 11, wobei nur diejenigen Voxel entlang des Strahls abgetastet werden.
  13. Verfahren nach Anspruch 11, wobei das volumetrische Bild eine Mehrzahl von digitalisierten Intensitäten enthält, die einen Bereich von Voxeln in einem dreidimensionalen Raum entsprechen.
  14. Verfahren nach Anspruch 11, wobei der Minimumintensitätswert eines Knotens eine Minimumintensität aller Voxel enthält, die in dem Knoten enthalten sind, wobei ein Maximumintensitätswert eines Knotens eine Maximumintensität aller Voxel, die in dem Knoten enthalten sind, enthält, und ferner mit einem Verwenden der Minimum- und Maximumintensitätswerte zum Bestimmen, ob ein Knoten leer ist.
  15. Programmspeichervorrichtung, die von einem Computer lesbar ist, die ein Programm aus Anweisungen verkörpert, die von dem Computer ausführbar sind zum Durchführen der Verfahrensschritte zum Verbreiten eines Strahls durch ein Bild, mit einem Bereitstellen eines digitalisierten volumetrischen Bildes, das eine Mehrzahl von Intensitäten enthält, die einen Bereich von Voxeln in einem dreidimensionalen Raum entsprechen; einem Bereitstellen einer reduzierten Path Octree Struktur des volumetrischen Bildes, wobei das reduzierte Path Octree eine Mehrzahl von Knoten ersten Levels enthält, wobei jeder Knoten ersten Levels eine Mehrzahl der Voxel enthält; einem Initialisieren eines Strahls in das Innere des volumetrischen Bildes; und Besuchen jedes Knotens ersten Levels entlang des Strahls, wobei, wenn der Knoten ersten Levels nicht leer ist, jedes Voxels, das in jedem Knoten ersten Levels enthalten ist, besucht wird.
  16. Computerlesbare Programmspeichervorrichtung nach Anspruch 15, wobei das Besuchen jedes Voxels, das innerhalb jeden Knotens ersten Levels enthalten ist, ein Abtasten jeder Voxelintensität enthält und ein Montieren jeder Abtastung in eine Wiedergabe des Bildes.
  17. Computerlesbare Programmspeichervorrichtung nach Anspruch 15, wobei das Octree ferner eine Mehrzahl von Knoten zweiten Levels enthält, wobei jeder Knoten zweiten Levels eine Mehrzahl von benachbarten Knoten ersten Levels enthält, und ferner mit einem Besuchen jedes Knotens zweiten Levels entlang des Strahls, und wenn der Knoten zweiten Levels nicht leer ist, Besuchen jedes Knotens ersten Levels, der in dem nicht leeren Knoten zweiten Levels enthalten ist.
  18. Computerlesbare Programmspeichervorrichtung nach Anspruch 1, wobei jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel, die in dem Knoten enthalten sind, enthält.
  19. Computerlesbare Programmspeichervorrichtung nach Anspruch 18, wobei ein Knoten leer ist, wenn der Maximumintensitätswert für diesen Knoten kleiner als ein vorbestimmter Schwellenwert ist.
  20. Computerlesbare Programmspeichervorrichtung nach Anspruch 18, wobei das Verfahren ferner ein Zählen der Anzahl an Nicht-Null Intensitäten in einem Knoten enthält, wobei ein Knoten leer ist, wenn ein Maximumwert der Anzahl der Nicht-Null Intensitäten gleich der maximalen Anzahl der Intensitäten ist.
  21. Computerlesbare Programmspeichervorrichtung nach Anspruch 16, wobei das Verfahren ferner ein Besuchen aller Nachbarknoten des Knotens ersten Levels enthält, und für jeden nicht leeren Nachbarknoten ein Abtasten jeder Intensität, die in dem Nachbarknoten enthalten ist, und ein Montieren jeder Abtastung in die Wiedergabe des Bildes.
  22. Computerlesbare Programmspeichervorrichtung nach Anspruch 16, wobei das Verfahren ferner enthält, wenn der Knoten ersten Levels leer ist, ein Besuchen aller Nachbarknoten des Knotens ersten Levels, und für jeden nicht leeren Nachbarknoten ein Abtasten der Intensität jedes Voxels, das in dem Nachbarknoten enthalten ist, und ein Montieren jeder Abtastung in die Wiedergabe des Bildes.
  23. Computerlesbare Programmspeichervorrichtung nach Anspruch 16, wobei das Abtasten einer Intensität eine trilineare Interpolation enthält.
  24. Computerlesbare Programmspeichervorrichtung nach Anspruch 18, wobei jeder Knoten einen Minimumintensitätswert und einen Maximumintensitätswert aller Voxel aufweist, die in einem Ein-Voxel Padding in jeder Richtung in jedem Nachbarn um den Knoten enthalten sind.
DE102005029240A 2004-06-25 2005-06-23 System und Verfahren für ein schnelles Volumen-Rendern Ceased DE102005029240A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US58298304P 2004-06-25 2004-06-25
US60/582,983 2004-06-25
US11/158,879 US7242401B2 (en) 2004-06-25 2005-06-22 System and method for fast volume rendering
US11/158,879 2005-06-22

Publications (1)

Publication Number Publication Date
DE102005029240A1 true DE102005029240A1 (de) 2006-03-09

Family

ID=35505172

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005029240A Ceased DE102005029240A1 (de) 2004-06-25 2005-06-23 System und Verfahren für ein schnelles Volumen-Rendern

Country Status (2)

Country Link
US (1) US7242401B2 (de)
DE (1) DE102005029240A1 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9007393B2 (en) * 1997-07-02 2015-04-14 Mental Images Gmbh Accurate transparency and local volume rendering
US8189002B1 (en) * 2004-10-29 2012-05-29 PME IP Australia Pty, Ltd. Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets
US8568317B1 (en) * 2005-09-27 2013-10-29 Nuvasive, Inc. System and methods for nerve monitoring
US8064986B2 (en) * 2005-11-23 2011-11-22 General Electric Company Method and system for displaying a cine loop formed from combined 4D volumes
US7903113B2 (en) * 2006-07-14 2011-03-08 Siemens Medical Solutions Usa, Inc. Systems and methods of image rendering from datasets
US8049752B2 (en) * 2006-07-25 2011-11-01 Siemens Medical Solutions Usa, Inc. Systems and methods of determining sampling rates for volume rendering
US7839404B2 (en) * 2006-07-25 2010-11-23 Siemens Medical Solutions Usa, Inc. Systems and methods of direct volume rendering
US7675517B2 (en) * 2006-08-03 2010-03-09 Siemens Medical Solutions Usa, Inc. Systems and methods of gradient assisted volume rendering
US7777742B2 (en) * 2006-08-21 2010-08-17 Siemens Medical Solutions Usa, Inc. Systems and methods of non-rigid volume registration
US20090040220A1 (en) * 2007-02-05 2009-02-12 Jonathan Gibbs Hybrid volume rendering in computer implemented animation
US20080231627A1 (en) * 2007-03-20 2008-09-25 Robert Allen Shearer Using Ray Tracing to Enhance Artificial Intelligence Character Behavior
US8009168B2 (en) * 2007-06-26 2011-08-30 Microsoft Corporation Real-time rendering of light-scattering media
US7990377B2 (en) * 2007-06-26 2011-08-02 Microsoft Corporation Real-time rendering of light-scattering media
US8190403B2 (en) * 2007-06-26 2012-05-29 Microsoft Corporation Real-time rendering of light-scattering media
US7940268B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Real-time rendering of light-scattering media
US7940269B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Real-time rendering of light-scattering media
US8392529B2 (en) 2007-08-27 2013-03-05 Pme Ip Australia Pty Ltd Fast file server methods and systems
JP4539699B2 (ja) * 2007-09-19 2010-09-08 富士ゼロックス株式会社 携行物管理ゲート
US9904969B1 (en) 2007-11-23 2018-02-27 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
WO2009067680A1 (en) 2007-11-23 2009-05-28 Mercury Computer Systems, Inc. Automatic image segmentation methods and apparartus
US9019287B2 (en) 2007-11-23 2015-04-28 Pme Ip Australia Pty Ltd Client-server visualization system with hybrid data processing
US8319781B2 (en) 2007-11-23 2012-11-27 Pme Ip Australia Pty Ltd Multi-user multi-GPU render server apparatus and methods
US10311541B2 (en) 2007-11-23 2019-06-04 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
CN100465993C (zh) * 2007-12-12 2009-03-04 北京航空航天大学 基于Octree编码的三维网格数字盲水印方法
US8144964B1 (en) * 2008-05-30 2012-03-27 Ellis Amalgamated LLC Image feature analysis
US20100033482A1 (en) * 2008-08-11 2010-02-11 Interactive Relighting of Dynamic Refractive Objects Interactive Relighting of Dynamic Refractive Objects
US8169434B2 (en) * 2008-09-29 2012-05-01 Microsoft Corporation Octree construction on graphics processing units
US8610706B2 (en) * 2008-10-04 2013-12-17 Microsoft Corporation Parallel surface reconstruction
US9177416B2 (en) * 2010-03-22 2015-11-03 Microsoft Technology Licensing, Llc Space skipping for multi-dimensional image rendering
KR101334188B1 (ko) * 2011-11-25 2013-11-28 삼성전자주식회사 볼륨 데이터의 렌더링 장치 및 방법
US8571311B2 (en) * 2011-12-15 2013-10-29 Microsoft Corporation Raster graphics image transcoding for file size reduction
US20130249899A1 (en) * 2012-03-07 2013-09-26 Willow Garage Inc. Point cloud data hierarchy
US20130268862A1 (en) * 2012-03-07 2013-10-10 Willow Garage Inc. Point cloud data hierarchy
US20130265299A1 (en) * 2012-03-07 2013-10-10 Willow Garage Inc. Point cloud data hierarchy
US20140089834A1 (en) * 2012-03-07 2014-03-27 Willow Garage Inc. Point cloud data hierarchy
US9245383B2 (en) * 2012-08-17 2016-01-26 Google Inc. Accelerated three-dimensional intersection testing using compressed volumes
US9509802B1 (en) 2013-03-15 2016-11-29 PME IP Pty Ltd Method and system FPOR transferring data to improve responsiveness when sending large data sets
US10540803B2 (en) 2013-03-15 2020-01-21 PME IP Pty Ltd Method and system for rule-based display of sets of images
US10070839B2 (en) 2013-03-15 2018-09-11 PME IP Pty Ltd Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images
US8976190B1 (en) 2013-03-15 2015-03-10 Pme Ip Australia Pty Ltd Method and system for rule based display of sets of images
US11183292B2 (en) 2013-03-15 2021-11-23 PME IP Pty Ltd Method and system for rule-based anonymized display and data export
US11244495B2 (en) 2013-03-15 2022-02-08 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
CN104658028B (zh) * 2013-11-18 2019-01-22 清华大学 在三维图像中快速标记目标物的方法和装置
CN104200511B (zh) * 2014-08-27 2017-02-15 电子科技大学 基于块内插值的多分辨率体绘制方法
US9984478B2 (en) 2015-07-28 2018-05-29 PME IP Pty Ltd Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images
US11599672B2 (en) 2015-07-31 2023-03-07 PME IP Pty Ltd Method and apparatus for anonymized display and data export
WO2018035507A1 (en) 2016-08-19 2018-02-22 Linear Algebra Technologies Limited Rendering operations using sparse volumetric data
CN107808370B (zh) * 2016-11-30 2021-06-18 湖南大学 一种基于区域求和的立方体图的图像滤波方法
US10395423B2 (en) * 2016-12-29 2019-08-27 Intel Corporation Apparatus and method for rendering adaptive mesh refinement (AMR) data
US10589509B2 (en) * 2017-01-25 2020-03-17 Hewlett-Packard Development Company, L.P. Representing an object in terms of sub-volumes
US10265138B2 (en) * 2017-09-18 2019-04-23 MediVis, Inc. Methods and systems for generating and using 3D images in surgical settings
US10909679B2 (en) 2017-09-24 2021-02-02 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
EP3620871A1 (de) * 2018-09-10 2020-03-11 Stefan Becker Verfahren zur parallelisierten simulation der bewegung einer maschinenkomponente in oder in der nähe eines arbeitsobjekts
CN109685881B (zh) * 2018-11-13 2023-10-20 海信视像科技股份有限公司 一种体绘制方法、装置及智能设备
CN114283245B (zh) * 2022-03-04 2022-06-14 中科计算技术创新研究院 基于三维模型层次化隐式场的渲染方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3889195B2 (ja) * 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
US6597359B1 (en) * 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing

Also Published As

Publication number Publication date
US20050285858A1 (en) 2005-12-29
US7242401B2 (en) 2007-07-10

Similar Documents

Publication Publication Date Title
DE102005029240A1 (de) System und Verfahren für ein schnelles Volumen-Rendern
DE102007034006B9 (de) System und Verfahren für ein Direktvolumenwiedergeben
DE69838698T2 (de) Bildanzeigevorrichtung und Verfahren
DE102007033999B4 (de) Systeme und Verfahren zum Bestimmen von Abtastraten für ein Volumenwiedergeben
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE102005029225A1 (de) System und Verfahren zur schnellen Erzeugung von Maximum/Minimum-Intensitätsprojektionen hoher Qualität
DE102014004841B4 (de) Grafik auf Kachelbasis
DE69835408T2 (de) Verfahren und Vorrichtung zur Komposition von Bildfarben unter Speicherbeschränkungen
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE3712639A1 (de) Verfahren und einrichtung zum abbilden von volumendaten
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102014006734A1 (de) Eckpunktparameter-datenkompression
WO2008101596A2 (de) Verfahren und vorrichtung zur darstellung von 3d bilddatensätzen auf 2d bildern
DE102007032294A1 (de) Empfindungsbasierte Qualitätsmetriken für das Volumenwiedergeben
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE102009042328A1 (de) Effiziente Bestimmung von Lichteffekten beim Volume Rendering
DE102007050615B4 (de) Brick-basierter Fusionsrenderer
DE102008050049B4 (de) Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche
DE102008050449A1 (de) Clipping Geometrien beim Raycasting
DE102008032701A1 (de) Verfahren und System zum direkten Wiedergeben von Multi-Volumendaten
DE102007020879A1 (de) Verfahren und Vorrichtung für die äußerst schnelle Symmetrie- und SIMD- gestützte Projektion/Rückprojektion für die 3D-PET-Bildrekonstruktion
DE102020108526A1 (de) Adaptive pixelabtastreihenfolge für zeitlich dichtes rendern
DE102010001052A1 (de) System, Verfahren und Computerprogrammprodukt zum Importance-Sampling von aufgeteilten Bereichen

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20120620

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20140717