DE60100806T2 - Abbildung von volumendaten - Google Patents

Abbildung von volumendaten Download PDF

Info

Publication number
DE60100806T2
DE60100806T2 DE60100806T DE60100806T DE60100806T2 DE 60100806 T2 DE60100806 T2 DE 60100806T2 DE 60100806 T DE60100806 T DE 60100806T DE 60100806 T DE60100806 T DE 60100806T DE 60100806 T2 DE60100806 T2 DE 60100806T2
Authority
DE
Germany
Prior art keywords
image
pixels
voxel
sheared
voxels
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
DE60100806T
Other languages
English (en)
Other versions
DE60100806D1 (de
Inventor
John Andrew Joppa BISSELL
Pavlos Papageorgiou
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.)
Canon Medical Research Europe Ltd
Original Assignee
Voxar Ltd
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 Voxar Ltd filed Critical Voxar Ltd
Publication of DE60100806D1 publication Critical patent/DE60100806D1/de
Application granted granted Critical
Publication of DE60100806T2 publication Critical patent/DE60100806T2/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
    • 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)
  • Apparatus For Radiation Diagnosis (AREA)
  • Holo Graphy (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Image Processing (AREA)
  • Investigating Or Analyzing Materials By The Use Of Ultrasonic Waves (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Description

  • Technischer Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft das Abbilden dreidimensionaler Voxeldaten. Insbesondere betrifft die Erfindung die Abbildung von dreidimensionalen Voxeldaten in bezug auf einen gewünschten Sichtpunkt und eine Sicht- bzw. Blickrichtung.
  • Das Abbilden von dreidimensionalen Objekten wird häufig als Volumendarstellung bezeichnet. Die Volumendarstellung findet in vielen Gebieten Anwendungen. Ein solches Gebiet ist die Darstellung von medizinischen Daten, die beispielsweise von dem Scannen bzw. Abtasten des menschlichen oder tierischen Körpers herrühren unter Verwendung von Computertomographen und anderen Röntgenstrahlabtastern, kernmagnetischen Resonanzabtastern und Ultraschallabtastern, um nur wenige Beispiele zu nennen.
  • Die dreidimensionalen Voxeldaten, die durch moderne Abtastgeräte erzeugt werden, können sehr detailliert sein und sehr kompliziert sein, um sie zu interpretieren. Es ist wünschenswert, einem Arzt, damit er in der Lage ist, solche Abtastdaten effektiv zu verwenden, Tools bzw. Werkzeuge bereitzustellen, die ohne weiteres in Echtzeit manipuliert werden können. Ein Arzt kann es wünschen, die Daten von unterschiedlichen Richtungen und von unterschiedlichen Positionen in bezug auf das abgetastete Objekt darzustellen, um in der Lage zu sein, das abgetastete Objekt zu analysieren und beispielsweise Abnormalitäten zu erfassen. Der Arzt kann es wünschen, die Drehung des abgetasteten Objektes oder die Navigation durch das abgetastete Objekt zu simulieren, wodurch Bilder in Echtzeit erzeugt werden, wenn die Translationen und Drehungen bewirkt werden. Um relativ glatte Bewegungseffekte zur Verfügung zu stellen und um einfach effektive Antwortzeiten bereitzustellen, ist die schnelle Echtzeitdarstellung wünschenswert. Ebenso ist es wünschenswert, solch eine schnelle Echtzeitdarstellung auf konventionellen Computerworkstations, beispielsweise auf einem Personal Computer, zu ermöglichen.
  • Viele Techniken sind für die Darstellung dreidimensionaler Voxeldaten bekannt.
  • Eine solche Technik setzt einen Dreh-Verzerr-Algorithmus ein [1].
  • Eine andere solcher Techniken setzt einen Scher-Verzerr-Algorithmus bzw. Scher-Warp-Algorithmus ein und ist als Scher-Warp-Faktorisierung bekannt [2]. Bei diesem Ansatz wird eine Sichttransformationsmatrix in eine 3D-Scherung faktorisiert, die parallel zu Scheiben bzw. Schnitten eines Referenzvolumens sind, und eine 2D-Verzerrung, um eine Projektion des gescherten Volu mens zu erzeugen. Obgleich die Scher-Verzerr-Faktorisierung eine relativ effiziente dreidimensionale Darstellung bereitstellt, wenn das Objekt von bestimmten Richtungen betrachtet wird, wird die Verarbeitung von anderen Blick- bzw. Sichtrichtungen signifikant langsamer.
  • Dementsprechend ist es ein Ziel der vorliegenden Erfindung, eine verbesserte Darstellung von dreidimensionalen Objekten bereitzustellen, die eine Darstellung zur Verfügung stellt, die im allgemeinen schneller und weniger richtungsabhängig ist als die konventionelle Scher-Warp-Verarbeitung, und vorzugsweise die Echtzeitdarstellung auf konventioneller Personal Computer Hardware erlaubt.
  • Zusammenfassung der Erfindung
  • Bestimmte und bevorzugte Aspekte der Erfindung werden in den begleitenden unabhängigen und abhängigen Ansprüchen ausgeführt. Kombinationen von Merkmalen von den abhängigen Ansprüchen können mit Merkmalen der unabhängigen Ansprüche kombiniert werden, wie es geeignet ist und nicht lediglich wie explizit in den Ansprüchen ausgeführt ist.
  • Ein Aspekt der Erfindung stellt ein computer-implementiertes Verfahren zur Verfügung zum Erzeugen eines zweidimensionalen Bildes aus einem Volumendatensatz, der ein Volumenobjekt von einem auswählbaren Blickpunkt repräsentiert. Das Verfahren beinhaltet das zur Verfügung stellen eines Volumenobjektdatensatzes in einem Speicher. Der Volumenobjektdatensatz weist Voxelwerte (Volumenpixelwerte) auf, die sortiert sind nach Voxeln entlang einer Reihe, die sich in einer ersten Richtung erstreckt, nach Reihen über eine Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt. In Antwort auf die Definition eines Blickvektors, der einer Blickrichtung in bezug auf einen Blickpunkt definiert, werden Scher- und Verzerrungsabbildungen bestimmt und es wird eine, die erste, die zweite oder die dritte Richtung als diejenige bestimmt, die dem Sicht- bzw. Blickvektor am nächsten ist (d. h. mit dem Blickvektor den kleinsten Winkel einschließt). Pixel eines zweidimensionalen gescherten Bildes, wobei das gescherte Bild eine Mehrzahl von Pixelzeilen hat, werden dann von den Voxelwerten des Volumenobjektdatensatzes abgeleitet, der von der Scherabbildung identifiziert wird. Die Scherabbildung bildet Voxelreihen in der ersten Richtung auf Pixelzeilen des gescherten Bildes ab. Ein Ausgangsbild kann dann abgeleitet werden durch Abbilden von Pixeln des gescherten Bildes entsprechend der Verzerrungsabbildung.
  • Auf diese Art und Weise ist, wenn der Blickvektor der ersten Richtung am nächsten ist, der sequentielle Speicherzugriff immer noch möglich. Dies stellt einen Unterschied zu konventionellen Scher-Verzerrverfahren dar, wo es unmöglich ist, einen sequentiellen Speicherzugriff in allen Blickvektororientierungen zur Verfügung zu stellen.
  • Genauer gesagt können durch Ausrichten der Voxelreihen von der ersten Richtung mit den Zeilen des gescherten Bildes zusammenhängende Voxelblöcke aus dem Speicher in einer Art und Weise abgefragt werden, die konsistent mit der Speicherung dieser Voxel in dem Speicher ist. Eine Verarbeitung hauptsächlich in Übereinstimmung mit der Organisation der Voxeldaten statt in der Ordnung, in der die Pixel eines Bildes angezeigt werden, läuft der Intuition zuwider, führt jedoch zu einer effizienteren Verarbeitung, da ein besserer Gebrauch von den Speicherabfrageprozessen, die typischerweise in Computersystemen verwendet werden, gemacht werden kann. Wo ein Speicherzugriff durchgeführt wird, ist es jetzt üblich, einen Block oder einen Ablauf von zusammenhängenden Speicherorten abzufragen. Dies liegt teilweise an der Konstruktion der Speicherchips, teilweise an der Verwendung der Cachespeicher und teilweise an der Optimierung der Busverwendung. Durch das Ordnen bzw. Sortieren der Verarbeitung abhängig von der Ordnung des Speicherns der Voxel ist es wahrscheinlicher, daß sukzessive Voxelwerte, die benötigt werden, um eine Zeile des gescherten Bildes aufzusummieren, in einem Block von abgefragten Daten verfügbar sind.
  • In einer bevorzugten Ausführungsform der Erfindung bildet die Scherabbildung ungeachtet dessen, welche Richtung dem Sicht- bzw. Blickvektor am nächsten ist, die Voxelzeilen in der ersten Richtung auf Pixelzeilen des gescherten Bildes ab, wodurch die oben erwähnten Vorteile für jede Richtung des Blickvektors in bezug auf das darzustellende Objekt zutreffen.
  • In einer Ausführungsform der Erfindung wird der Volumendatensatz im Hauptspeicher gehalten und Blöcke von aneinander grenzenden geordneten Voxelwerten, die verarbeitet werden, werden zeitweilig von dem Hauptspeicher zu dem Cachespeicher übertragen. Die Erzeugung der Pixel des zweidimensionalen gescherten Bildes wird vorzugsweise Zeile pro Zeile des gescherten Bildes durchgeführt. Ein Cachespeicher könnte derart betreibbar sein, daß er alle Daten hält, die für die Verarbeitung zumindest einer Abtastzeile des zweidimensionalen gescherten Bildes im Speicher erforderlich sind. Ein Pufferspeicher für das gescherte Bild wird für die Summation einer Zeile an einem Zeitpunkt des gescherten Bildes bereitgestellt. In einer Ausführungsform der Erfindung ist der Pufferspeicher für das gescherte Bild für eine Zeile von Pixeldaten ein first level Cachespeicher eines Mikroprozessors. Somit könnte in einer Ausführungsform der Erfindung ein second level Cachespeicher alle Reihen von Voxeldaten halten für die Erzeugung einer Zeile des gescherten Bildes und ein first level Cachespeicher könnte alle Pixel der Pixelzeile des gescherten Bildes halten. Auf diese Art und Weise ist eine besonders effiziente Verarbeitung durch die effektive Verwendung von Speicherresourcen möglich.
  • Das Ableiten einer Pixelzeile des gescherten Bildes beinhaltet das Identifizieren von einer oder mehreren Voxelreihen in der ersten Richtung, die auf die Pixelzeile des gescherten Bildes abgebildet werden, und das Sammeln von Beiträgen von Voxeln von der einen oder der mehreren Reihen von Voxeln, um entsprechende Pixelwerte der Pixelzeile des gescherten Bildes abzuleiten. In einer bevorzugten Ausführungsform wird ein Eintrag durchgeführt über die Beziehung zwischen aufeinander folgenden Reihen von Voxeln, die zu einer Pixelzeile beitragen. Die selben Beziehungen zwischen Reihen können für jeden Pixel des gescherten Bildes angewendet werden. Daher kann ein Eintrag (beispielsweise in der Form einer Tabelle) verwendet werden, um die Voxel zu identifizieren, die zu irgend einem Pixel des gescherten Bildes beitragen.
  • Die Akkumulation bzw. Summierung der Beiträge für ein Pixel des gescherten Bildes wird beendet, wenn ein Wert, der eine vorbestimmten Intensität oder Opazität darstellt, erreicht wird. Dieser Ansatz ist ein wenig wie die „frühe Strahlenbeendigung", um die unnötige Verarbeitung von Voxeln zu vermeiden, die nicht zu einem Pixel des gescherten Bildes beitragen, beispielsweise, da das Pixel bereits seine Maximalintensität erreicht hat.
  • Um ebenso die Verarbeitungseffizienz zu verbessern, kann die Vorverarbeitung des Volumendatensatzes eingesetzt werden, um Voxel zu identifizieren, die Werte haben, die einen vorbestimmten Grad der Opazität überschreiten. Diese Vorverarbeitung kann das Erzeugen eines Volumendatensatzes, der als Abfolge von Werten mit Opazitäten größer als die vorbestimmte Opazität, die durch Auslaß- bzw. Sprunglängen getrennt sind, beinhalten. Alternativ kann die Vorverarbeitung das Erzeugen eines Eintrages involvieren, der die Zuweisung der Voxel mit Opazitätswerten größer als die vorbestimmte Opazität anzeigt. Während der Erzeugung des gescherten Bildes können Voxel mit Voxelwerten geringer als oder gleich dem vorbestimmten Wert während der Akkumulation von Pixelwerten ignoriert werden, um das Erzeugen unnötiger Berechnungen und Speicherzugriffe zu vermeiden.
  • Die Erfindung findet insbesondere Anwendung auf die Darstellung von abgetasteten bzw. gescannten Daten, beispielsweise medizinischen Abtastdaten, seismischen Daten, nicht destruktive Testdaten usw. Solche Daten können durch eine oder mehrere der folgenden Abtasttechniken erzeugt werden, die lediglich beispielhaft angegeben werden: Teilchen- und/oder elektromagnetische Energieabtastung, Schall- oder Ultraschallabtastung.
  • Ein anderer Aspekt der Erfindung stellt ein Computerprogrammprodukt zur Verfügung, das einen Computercode aufweist, der, wenn er in dem Speicher eines Computers abgelegt ist, betreibbar ist, um den Prozessor des Computers zu steuern, um ein Verfahren, wie es oben ausgeführt ist, zu implementieren. Der Computerprogrammcode kann auf einem Trägermedium bereitgestellt werden. Das Trägermedium kann beispielsweise ein Speichermedium sein. Alternativ dazu kann es ein Übertragungsmedium sein.
  • Ein weiterer Aspekt der Erfindung stellt ein System zur Verfügung für das Erzeugen eines zweidimensionalen Bildes eines Volumendatensatzes, der ein Objektvolumen von einem auswählbaren Sichtpunkt darstellt. Das System beinhaltet einen Speicher für einen Objektvolumendatensatz. Der Volumendatensatz weist Werte auf, die geordnet sind nach Voxeln entlang einer Reihe, die sich in einer ersten Richtung erstreckt, nach Reihen über eine Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und zweiten Richtung und einer dritten Richtung erstreckt. Ein Sicht- bzw. Ansichtsprozessor ist derart betreibbar, daß er in Antwort auf die Definition eines Blickvektors, der einer Blickrichtung in bezug auf einen Blickpunkt bestimmt, Scher- und Verzerrungsabbildungen bestimmt und eine Richtung, die erste, die zweite oder die dritte Richtung als die dem Sichtvektor am nächsten kommende Richtung bestimmt. Ein Scherprozessor ist derart betreibbar, daß er Pixel eines zweidimensionalen gescherten Bildes mit einer Mehrzahl von Pixelzeilen von Voxelwerten des Volumenobjektdatensatzes ableitet, die von der Scherabbildung identifiziert werden. Die Scherabbildung bildet Reihen von Voxeln in der ersten Richtung auf Pixelzeilen des gescherten Bildes ab. Ein Warp- bzw. Verzerrprozessor ist derart betreibbar, daß er ein Ausgangsbit ableitet durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrabbildung.
  • Gemäß einem anderen Aspekt der Erfindung wird ein Computer-implementiertes Verfahren bereitgestellt zum Erzeugen eines zweidimensionalen Ausgangsbildes aus einem Volumenobjektdatensatz, wobei das Verfahren aufweist:
    • (a) zur Verfügung stellen eines Objektvolumendatensatzes, der Voxelwerte aufweist, die nach Voxeln entlang einer Zeile, die sich in einer ersten Richtung erstrecken, nach Zeilen entlang einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt, geordnet bzw. sortiert sind,
    • (b) zur Verfügung stellen eines Sichtvektors und eines Sichtpunktes, die Definieren einer Sichtrichtung gemäß dem Sichtvektor und dem Sichtpunkt und Bestimmen von einer, der ersten, der zweiten oder der dritten Richtung als die dem Sichtvektor am nächsten kommende Richtung,
    • (c) Bestimmen einer Scherabbildung von dem Objektvolumendatensatz auf ein zweidimensionales geschertes Bild,
    • (d) Bestimmen einer Verzerrungsabbildung von dem zweidimensional gescherten Bild zu einem zweidimensionalen Ausgangsbild,
    • (e) Ableiten von Pixeln eines zweidimensional gescherten Bildes mit einer Mehrzahl von Zeilen von Pixeln von Voxelwerten des Objektvolumendatensatzes, der durch die Scherabbildung identifiziert wird, wobei die Scherabbildung Zeilen von Voxeln in der ersten Richtung auf Zeilen von Pixeln des gescherten Bildes abbildet, und
    • (f) Ableiten des zweidimensionalen Ausgangsbildes durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrungsabbildung.
  • Ein oder mehrere von dem Sichtprozessor, dem Scherprozessor und dem Verzerrprozessor können teilweise oder vollständig durch Software implementiert werden, die den Betrieb der Allzweckhardware steuert. Ein oder mehrere von dem Sichtprozessor, dem Scherprozessor und dem Verzerrprozessor können jedoch gleichwertig teilweise oder vollständig durch Spezialhardware implementiert werden, beispielsweise durch einen applikationsspezifischen integrierten Schaltkreis (ASIC) oder irgend eine geeignete Technologie.
  • Kurze Beschreibung der Figuren
  • Eine beispielhafte Ausführungsform der vorliegenden Erfindung wird im folgenden nur beispielhaft beschrieben und in Bezug auf die begleitenden Zeichnungen, in denen gleiche Bezugszeichen gleiche Elemente betreffen und in denen:
  • 1 eine schematische Darstellung einer Computerworkstation für eine Ausführungsform der Erfindung ist,
  • 2 ein schematisches Blockdiagramm ist, das ein Beispiel einer Hardwarekonfiguration einer Workstation ist, wie sie in 1 dargestellt ist,
  • 3 eine Darstellung eines Beispiels eines Bildes ist, das von einem Beispiel der Erfindung ausgegeben werden kann,
  • 4 eine schematische Darstellung von verschiedenen Stufen eines Abbildungsprozesses von dreidimensionalen Voxeldaten in Übereinstimmung mit der Erfindung ist,
  • 5 eine schematische Darstellung einer dreidimensionalen Anordnung von abzubildenden Voxeln ist,
  • 6 eine run-skip- bzw. Ablauf-Sprung-Speichermethode für Voxeldaten darstellt, 7 eine alternative Speichermethode für Voxeldaten darstellt,
  • 8 eine Scherverarbeitungsstufe des Prozesses von 4 mehr im Detail zeigt, 9 Stufen in der Darstellung von dreidimensionalen Voxeldaten darstellt,
  • 10 Schritte bei der Bestimmung von Sichtparametern des Prozesses von 4 darstellt, 11A-11D verwendet werden, um detaillierter den Unterschied zwischen dem Stand der Technik und einer Ausführungsform der Erfindung zu erläutern,
  • 12 eine Schenrerarbeitungsstufe des Prozesses von 4 darstellt.
  • 13 und 14 stellen eine Voxelinterpolation für die Voxel-zu-Pixel-Abbildung dar,
  • 15 stellt eine Verzerrverarbeitungsstufe des Prozesses von 4 dar und
  • 16 zeigt eine Hardwareimplementierung, die die Erfindung verkörpert.
  • Detaillierte Beschreibung
  • Eine Ausführungsform der vorliegenden Erfindung wird im folgenden und im Kontext eines Computerimplementierten Systems, eines Verfahrens und eines Computerprogrammproduktes für das Abbilden von dreidimensionalen Voxeldaten beschrieben.
  • 1 ist eine schematische Darstellung einer Computerworkstation, die verwendet wird, um eine Ausführungsform der vorliegenden Erfindung bereitzustellen. Obgleich die vorliegende Ausführungs form in Begriffen eines Computerprogrammproduktes beschrieben wird, das einen Computer, beispielsweise einen Personal Computer oder irgend eine andere Form einer Workstation, veranlaßt, eine Funktionalität bereitzustellen, die von einer Ausführungsform der Erfindung erfordert wird, versteht es sich aus der folgenden Beschreibung, daß dies nur ein Beispiel nur einer Ausführungsform der vorliegenden Erfindung betrifft. In einer Ausführungsform der Erfindung kann beispielsweise ein Netzwerk aus Computern statt eines separaten Computers eine Ausführungsform der Erfindung implementieren. Alternativ dazu oder zusätzlich hierzu kann zumindest ein Teil der Funktionalität der Erfindung mittels Spezialhardware, beispielsweise in Form eines speziell integrierten Schaltkreises (z. B. applikationsspezifische integrierte Schaltkreise (ASICs)) implementiert werden.
  • Wie in 1 gezeigt ist, beinhaltet die Computerworkstation 10 eine Systemeinheit 12, eine Anzeige 14 (als ein zweidimensionales Bild anzeigend gezeigt, das von dreidimensionalen Voxeldaten in Übereinstimmung mit einem Beispiel der Erfindung abgeleitet wurde), eine Tastatur 18 und eine Maus 20.
  • 2 ist ein schematisches Blockdiagramm, das eine beispielhafte Konfiguration einer Computerworkstation 10 zeigt, wie sie in 1 gezeigt ist.
  • Wie in 2 gezeigt ist, beinhaltet die Computerworkstation 10 einen Bus 30, mit dem eine Anzahl von Einheiten verbunden sind. Ein Mikroprozessor (CPU) 32 ist mit dem Bus 30 verbunden. Nur-Lese-Speicher 34 und Speicher 36 mit wahlfreiem Zugriff sind ebenso mit dem Bus 30 verbunden. Ein Anzeigeadapter 38 verbindet die Anzeige 14 mit dem Bus 30. Ein Kommunikationsinterface 40, beispielsweise eine Netzwerkschnittstelle und/oder eine Telefonschnittstelle, wie z. B. ein Modem, eine ISDN- oder optische Schnittstelle, ermöglicht es, daß die Computerworkstation 10 mit anderen Computern über beispielsweise ein Intranet oder das Internet verbunden wird. Ein Eingabeeinrichtungsinterface 42 verbindet ein oder mehrere Eingabeeinrichtungen, beispielsweise die Tastatur 18 und die Maus 20, mit dem Bus 30. Eine Speicherschnittstelle 43 ermöglicht den Zugriff auf eine Festplatte 44. Eine optische Laufwerkschnittstelle 45 stellt einen Zugriff auf ein CD ROM 46 oder dergleichen zur Verfügung, und ein Diskettenlaufwerkinterface 47 stellt einen Zugriff auf ein Diskettenlaufwerk 48 zur Verfügung. Eine Druckerschnittstelle 49 verbindet ebenso einen Drucker 50. Es versteht sich, daß ein oder mehrere der in 4 dargestellten Komponenten ausgelassen werden können und/oder zusätzliche Komponenten bereitgestellt werden können, wie es für eine bestimmte Implementierung erforderlich ist.
  • 3 ist eine schematische Darstellung eines typischen Bildes, das mit einer Ausführungsform der Erfindung erzeugt werden kann.
  • 4 ist ein Überblick über die Verarbeitungsstufen 80 bei dem Betrieb einer Ausführungsform der Erfindung.
  • In den Vorverarbeitungsoperationen werden die ursprünglichen Objektvolumendaten in Schritt 82 durch geeignete Voxeldatenaufnahmevorrichtungen aufgenommen. Dies könnte beispielsweise durch einen Computertomographiescanner, einen Kernresonanzscanner, einen Ultraschallscanner usw. durchgeführt werden. Die aufgenommenen Bilddaten werden vorverarbeitet, um Volumendaten in der Form einer dreidimensionalen Anordnung von Voxeldaten zu erzeugen. Diese Daten können direkt gespeichert werden, um die 3D-Objektvoxeldaten zu erzeugen, wie in Schritt 86 in 4 identifiziert ist. Alternativ dazu kann eine weitere Vorverarbeitung dieser Bilddaten in Schritt 84 durchgeführt werden, wie später detaillierter beschrieben wird.
  • Die Daten werden in Schritt 86 im Volumendatenspeicher als ein Volumendatensatz gespeichert, der die Voxelwerte darstellt. Die Voxelwerte werden sortiert bzw. geordnet durch Voxel entlang einer Reihe, die sich in einer ersten Richtung erstreckt, durch Reihen entlang einer Ebene, die sich in der ersten Richtung und in einer zweiten Richtung erstreckt, und durch Ebenen durch ein Volumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt. Somit sind die Voxeldaten geordnet durch Voxel innerhalb einer Reihe, durch Reihen innerhalb einer Ebene (oder Schnitte bzw. Scheiben) und durch Ebenen innerhalb eines Volumens. Die Voxeldaten werden im Speicher im wesentlichen in dieser Ordnung gespeichert und obgleich, wie später erläutert wird, verschiedene Erweiterungen der Speichermethode eingesetzt werden können, um die Effizienz zu steigern.
  • Sobald die grundlegenden Objektvoxeldaten gespeichert werden, kann die Verarbeitung dieser Daten in Übereinstimmung mit einer Ausführungsform der Erfindung durchgeführt werden.
  • In Schritt 88 wird ein Sichtvektor (Sichtpunkt und -richtung) bestimmt. Dies könnte durch einen automatisierten Prozeß durchgeführt werden, beispielsweise durch ein Programm, das betreibbar ist, um ein Video zu erzeugen, das eine Serie von Ansichten aufweist, oder alternativ dazu durch einen Benutzer, der konventionelle Eingabeeinrichtungen verwendet, wie z. B. die Tastatur 18 und die Maus 20, die in 1 gezeigt sind.
  • Sobald der Sichtvektor bestimmt wurde, wird eine Berechnung in Schritt 90 durchgeführt betreffend die Beziehung zwischen dem Sichtvektor und den Koordinatenachsen des Koordinatensystems, in dem das Objekt definiert wird. Um dies zu erreichen, wird der Sichtvektor als Sichtmatrix in einer konventionellen Weise ausgedrückt. Geeignete Scher- und Verzerrparameter werden dann, wie später beschrieben wird, für die Verarbeitung der Voxeldaten bestimmt, um ein zweidimensionales Bild des Objektes, wie es entlang des Sichtvektors gesehen wird, abzuleiten.
  • In Schritt 92 werden sukzessive Zeilen der zweidimensionalen gescherten Bilddarstellung des Objektes, das von den Voxeldaten dargestellt wird, berechnet, und die Ergebnisse werden in Schritt 94 Zeile per Zeile im zweidimensionalen gescherten Bildspeicher 94 abgelegt.
  • In Schritt 96 werden dann die Zeilen der gescherten Bilddarstellung von dem gescherten Bildspeicher verzerrt, um das gewünschte zweidimensionale Bild des Objektes, das von den Voxeldaten dargestellt wird, zu erzeugen, wie es entlang des Sichtvektors gesehen wird. Das Endbild wird in Schritt 98 in dem Endbildspeicher gesammelt, der im Hauptspeicher abgelegt werden kann.
  • Für den Fachmann versteht es sich, daß die gesamte Verarbeitungsstrategie ähnlich zu derjenigen ist, die bei der konventionellen Scher-Verzerrverarbeitung verwendet wird. Es gibt jedoch signifikante Unterschiede zwischen der konventionellen Scher-Verzerrverarbeitung und der Verarbeitung in Übereinstimmung mit einer Ausführungsform der Erfindung. Diese Unterschiede stellen signifikante technische Vorteile zur Verfügung, wie sich aus dem folgenden leicht ergibt. Insbesondere in einer Ausführungsform der Erfindung wird die Verarbeitung der Voxeldaten, um die gescherte Bilddarstellung zu erzeugen, ausgewählt, um den Zugriff auf die Voxeldaten von dem Speicher zu optimieren, was signifikant die Verarbeitungseffizienz und die Verwendung der verfügbaren Systemresourcen verbessert.
  • 5 ist eine schematische Darstellung der Voxeldaten, die einen Volumendatensatz 100 eines abzubildenden Objektes zusammensetzen. 5 versucht, eine dreidimensionale Anordnung von Voxeln 104 in bezug auf i-, j- und k-Achsen darzustellen mit dem Ursprung an der oberen linken vorderen Ecke 102. Jedes Voxel 105 ist mit ein oder mehreren Werten verknüpft, die das Volumen im Raum darstellen. Der Wert oder die Werte können die Intensität des Voxels betreffen, beispielsweise betreffend die Dichte des Volumens im Raum. Der Wert oder die Werte könnten jedoch beispielsweise Werte betreffen, die von einem Scan des Objektes im Raum abgeleitet werden als eine Funktion der abgetasteten Werte. Beispielsweise könnten sie die Opakheit (Opazität) oder die Transparenz, die Farbe usw. des Volumens im Raum darstellen. Aus Gründen der Einfachheit wird im folgenden auf einen Opazitätswert bezug genommen, obgleich es verstanden sein sollte, daß dies alternativ dazu ein Transparenzwert oder beispielsweise ein Dichtewert, wie es geeignet ist, sein könnte. Ebenso werden aus Gründen der Bequemlichkeit der Erklärung nur die Begriffe Voxel, Reihen, Ebenen (oder Schnitte bzw. Scheiben) und Objektvolumen in bezug auf die Anordnung des Objektraumes definiert, wie er in 5 gezeigt ist, obgleich es erkannt werden sollte, daß andere Definitionen gegeben werden könnten.
  • Eine Zeile aus Voxeln (sagen wir 104(0,0,0), 104(1,0,0), 104(2,0,0) ..., 104(1,0,0)), die sich horizontal erstreckt, wie in 5 gezeigt ist, bildet eine Reihe (sagen wir 106(1,0)). Eine Serie von Reihen (sagen wir 106(0,0), 106(1,0), 106(2,0),..., 106(J,0)), die sich senkrecht zu den Reihen in vertikaler Richtung erstreckt, wie in 5 gezeigt ist, bildet eine Ebene (oder Scheibe) (sagen wir 108(0)).
  • Eine Reihe von Ebenen (sagen wir 108(0), 108(1), 108(2), ..., 108(K)), die sich senkrecht zu den Reihen und Ebenen senkrecht zu der Ebene der Seiten erstreckt, wie in 5 gezeigt ist, bilden ein Objektvolumen 100.
  • 6 zeigt eine Speichermethode für die Voxeldaten in dem Volumendatenspeicher 86. In dieser einfachen Speichermethode werden aufeinander folgende Werte für jedes der Voxel (104(0,0,0)104(1,0,0)) von links nach rechts, wie in den 5 und 6 dargestellt ist, entlang der horizontalen Reihe 106(0,0) der Ober- und Vorderseite des Volumens in sequentiellen Adressen in dem Speicher gespeichert. Danach werden sukzessive Voxelwerte von links nach rechts für die Reihe 106(1,0) unter der ersten Reihe in dem nächsten Satz von Adressen im Speicher gespeichert. Dies wird dann nach unten entlang der vorderen Ebene 108(0) des Objektvolumens 100 fortgesetzt. An der unteren rechten Seite der vorderen Ebene 108(0) der Voxeldaten wird der selbe Ansatz zu dem Voxeldatenspeicher für die Ebene 108(1) hinter der Frontebene angewendet. usw. für das gesamte Objektvolumen.
  • Es sei an dieser Stelle erwähnt, daß konventionelle Computertechnologie, insbesondere mit der Verwendung von Cachespeichereinrichtungen, die signifikant an Verarbeitungseffizienz gewinnt, hergestellt werden kann, wo Daten, die für die Verarbeitung erforderlich sind, in aneinandergrenzenden Speicherorten im Speicher gefunden werden. Wo ein Speicherzugriff durchgeführt wird, ist es üblich, einen Block oder eine Abfolge von aneinandergrenzenden Speicherorten abzufragen. Dies liegt teilweise an der Konstruktion des Speicherchips, teilweise an der Verwendung von Cachespeichern und teilweise an der Optimierung der Busverwendung.
  • Die konventionelle Scher-Verzerrverarbeitung basiert auf der Erzeugung der Pixelwerte eines gescherten Bildes in einer Anzahl von Durchläufen. Wo die Sichtrichtung am nächsten zu entweder der zweiten Q) oder der dritten (k) Achse ist, könnte dann der Algorithmus einen relativ effizienten Zugriff auf die Voxeldaten einsetzen. Wo jedoch der Sichtvektor in seiner Orientierung nahe der ersten (i) Achse ist, wird ein ineffizienter Zugriff auf die Voxeldaten notwendig, was zu einer signifikant langsameren Bilderzeugung führt. Eine Ausführungsform der Erfindung verhindert solch eine langsame Achse durch Einsetzen eines anderen und effizienteren Ansatzes an die gescherte Bilddatenerzeugung in zumindest der Achse, wo der Sichtvektor am nächsten der ersten (i) Achse ist.
  • Die Methodik, die von der vorliegenden Erfindung eingesetzt wird, wird unten detaillierter beschrieben. Bevor jedoch mit einer vollständigeren Beschreibung fortgesetzt wird, wird auf 7 bezug genommen, die einen run-skip-Ansatz bzw. Lauf-Sprungansatz für das Speichern einer Arbeitsuntergruppe der Voxeldaten des Volumendatensatzes darstellt. In dem anfänglichen, optionalen Vorverarbeitungsschritt 84, der in 4 gezeigt ist, können die Voxeldaten, die in bezug auf die 5 und 6 gezeigt sind, verarbeitet werden, um Pixel zu entfernen mit einem Opazitätswert unterhalb einer gegebenen Grenze. Eine revidierte Darstellung des Objektes kann als Startpunkt in Schritt 86 gespeichert werden für die Verarbeitung. von Voxeln, die weniger opak als die Schwelle sind, die entfernt und ersetzt wurden durch einen Zähler der entfernten Voxel. Im Ergebnis wird die revidierte Objektvolumendarstellung 110 beinhalten eine Abfolge von Voxeln 112, gefolgt von einem Sprungwert 114, der eine Voxelzahl zu der nächsten Abfolge von Voxeln 116 gibt, gefolgt von einem Sprungwert 118, gegeben als eine Zahl von Voxeln, usw. Die selbe grundlegende Ordnung von Voxeln, wie unter bezug auf 6 beschrieben wurde, wird eingesetzt mit einer Voxelordnung nach Voxeln innerhalb einer Zeile, Zeilen innerhalb einer Ebene und Ebenen innerhalb des Objektvolumens, um das komplette Objektvolumen 110 zu bilden. Die Reduktion der Daten, auf die für die Verarbeitung zugegriffen wird, führt zu einer Reduktion der benötigten Busbandbreite und dementsprechend zu einer Reduktion der Verarbeitungszeit. Typischerweise wird der Schwellwert, der für den Opazitätswert verwendet wird, bei oder unterhalb des niedrigsten Niveaus der Opazität von möglichem Interesse gewählt, damit die Arbeitsuntergruppe von 7 effektiv komplett ist, zumindest soweit irgend eine erwartete Verarbeitung betroffen wird.
  • 8 stellt eine Alternative zu der Darstellung in 7 dar. In diesem Fall werden die vollständigen Objektdaten 110 beibehalten. Eine weitere Anordnung 119 in Form einer Bitabbildung, die ein Bit für jedes Voxel aufweist, wird im Speicher definiert. Jedes Bit ist entweder auf einen Wert (sagen wir 1) eingestellt, wo das entsprechende Voxel oberhalb der Opazitätsgrenze ist, oder auf einen anderen Wert (sagen wir 0) eingestellt, wo das entsprechende Voxel unterhalb der Opazitätsgrenze liegt. Durch nur Zugreifen auf Voxel mit signifikanten Daten kann dieser Ansatz zu einer Reduktion in der benötigten Busbandbreite und zu einer Reduktion in der Verarbeitungszeit führen.
  • Als weitere Alternative könnte der 3D-Volumendatensatz 110 und/oder die Bitabbildung 119 unter Verwendung eines Lauf-Sprung-Ansatzes gespeichert werden. Wo ein Lauf-Sprung-Ansatz für den 3D-Volumendatensatz 110 angepaßt wird, identifiziert die Bitabbildung die Abfolge von Bits, die zurückgehalten werden, unter Verwendung von einem Bitwert und identifiziert die ausgelassenen Werte unter Verwendung eines anderen Bitwertes. Wo ein Abfolge-Sprung-Ansatz für die Bitabbildung 119 angepaßt wird, kann der Speicher, der für die Bitabbildung erforderlich ist, ebenso in einer Weise ähnlich der unter bezug auf die in 7 beschriebenen, reduziert werden. In einem weiteren Beispiel eines Abfolge-Sprung-Ansatzes wird eine Matrix aus Start- und Endzeigern zu dem Beginn und dem Ende, von Abfolge-Sprung-Datensätzen auf einer i-, j-Koordinatenbasis angeordnet.
  • Es folgt nun eine Beschreibung der Arbeitsweise einer Ausführungsform der Erfindung für das Erzeugen eines zweidimensionalen Bildes eines dreidimensionalen Objektes.
  • 9A stellt ein Objekt 120 in einer Region 100 im i-, j-, k-Objektraum 122 dar. Die Region 100 entspricht dem Objektvolumendatensatz 100, der in Schritt 86 in 4 gespeichert wird. Ein willkürlicher Sichtvektor W ist ebenso gezeigt. Dies könnte die vollständige Voxeldatendarstellung, wie sie unter bezug auf 6 beschrieben wurde, aufweisen oder könnte eine der alternativen Darstel lungen, die in Bezug auf die 7 oder 8 beschrieben wurden, oder irgend eine andere alternative Darstellung des Objektvolumendatensatzes 100 von 5 aufweisen. Die tatsächlichen gespeicherten Daten werden typischerweise als irgend eine Funktion der Daten abgeleitet, die aus dem Scan bzw. der Abtastung eines Objektes herrühren. Die Daten können Opazitätswerte, Farbwerte usw., anstelle von reinen Abtastintensitätswerten sein.
  • 9B stellt eine Darstellung eines vollständig gescherten zweidimensionalen Bildes 1030 im gescherten Bild(l, m, n)-Raum dar entsprechend dem gescherten Bildspeicher in Schritt 94 in 4. Die Dimension n ist orthogonal zu 1 und m, d. h. n ist rechtwinklig zu der Ebene, die durch 1 und m definiert wird und ist parallel zu dem Sichtvektor W. Das Ziel bzw. der Zweck der Scheroperation in einer Ausführungsform der Erfindung ist es, ein geschertes Bild zur Verfügung zu stellen, so daß die Reihen von Voxeln in der i-Richtung immer auf Pixellinien des gescherten Bildes in der I-Richtung abgebildet werden, um eine effiziente Verarbeitung bereitzustellen.
  • 9C stellt das zweidimensionale Endbild 130 im Endbild(x, y, z)-Raum dar entsprechend Schritt 98 in 4. Es sei erwähnt, daß n = z und daß es eine affine Transformation von 1 und m zu x und y gibt. Die Verzerr- bzw. Warpverarbeitung von Schritt 96 von 4 setzt Verzerrparameter ein, die in Schritt 90 von 4 bestimmt wurden, um die gescherte Objektdarstellung in die Endbilddarstellung umzuwandeln.
  • 10 ist ein Flußdiagramm für das detailliertere Beschreiben von Schritt 90 von 4.
  • In Schritt 140 wird eine Bestimmung durchgeführt, welche in der i-, j- oder k-Achse des Objektkoordinatenraums eine Orientierung hat, die der Orientierung des Sichtvektors am nächsten kommt. Dies kann unter Verwendung von konventioneller Matrizenberechnung durchgeführt werden durch Auffinden des Skalarprodukts des Sichtvektors mit den entsprechenden i-, j- und k-Achsen und Bestimmen der Achsen mit einer Orientierung, die dem Sichtvektor am nächsten kommt, die das größte Skalarprodukt mit dem Sichtvektor liefert. Die geeignete Schermatrix kann dann bestimmt werden.
  • In Schritt 142 wird eine Schermatrix bestimmt, so daß die i-Achse von 9A auf die I-Achse von 9B abgebildet ist, d. h. derart, daß eine Reihe von Voxeln in der i-Richtung auf Linien von Pixeln in dem gescherten Bild abgebildet wird. In diesem Beispiel werden die Voxelreihen in der i-Richtung auf horizontale Pixelreihen in der Abtastrichtung 1 des gescherten Bildes abgebildet. Die m- und n-Achse werden als orthogonal zueinander und zu der I-Achse eingestellt.
  • In Schritt 144 wird eine Verzerrmatrix erzeugt für das Bewirken einer 2D-Verzerrtransformation von dem gescherten Bild zu dem Endbild. Hier ist die Verzerrmatrix das Produkt der invertierten Schermatrix und der Sichtmatrix.
  • Obgleich die vorliegende Erfindung Scher- und Verzerrstufen einsetzt, beinhaltet eine Ausführungsform der vorliegenden Erfindung signifikante Verbesserungen in bezug auf die traditionellen Scher-Verzerr-Techniken. Durch das zur Verfügung stellen einer Scherung, die Voxelreihen auf Pixelpositionsreihen in dem gescherten Bild abbildet, ist eine effizientere Verarbeitung möglich, insbesondere wo der Sichtvektor der i-Richtung am nächsten ist. Dies liegt daran, daß die für die aneinander grenzenden Pixel auf einer Linie des gescherten Bildes benötigten Voxel wahrscheinlicher in aneinandergrenzenden Speicherplätzen im Voxelspeicher zu finden sind.
  • Der Unterschied zwischen der Abbildung, die in Übereinstimmung mit der Erfindung durchgeführt wird und der Abbildung, die durch einen traditionellen Scher-Verzerr-Prozeß eingesetzt wird, sollte aus der folgenden Beschreibung von 11 deutlicher werden. In jeder der 11A-11D erstreckt sich der Sichtvektor W rechtwinklig zu der Zeichenebene und in die Zeichnung.
  • 11A stellt die Erzeugung eines gescherten Bildes dar, wie es in einem konventionellen Scher-Verzerr-Prozeß eingesetzt wird, wo der Sichtvektor der i-Achse des Objektraumes am nächsten ist. Es wird angenommen, daß der Sichtvektor nahe, jedoch nicht parallel zu der i-Achse im Objektraum ist. Wie in 11A gezeigt ist, wird die k-Achse ausgerichtet, damit sie mit der I-Achse des gescherten Bildes übereinstimmt. Die Verarbeitung der Pixel des gescherten Bildes wird in der Ordnung durchgeführt, die durch den Pfeil S dargestellt wird, beginnend beispielsweise mit den Voxeln A. Da die Voxel in der Ordnung (i, j, k) gespeichert sind, bedeutet dies, daß jeder aufeinanderfolgende Voxel, der für die Berechnung der Reihen von Pixeln des gescherten Bildes erforderlich ist, in einer anderen Ebene von Voxeln zu finden ist (d. h. mit signifikanten Abständen im Speicher). Bei der Erzeugung der Pixel des gescherten Bildes wird (werden) der Beitrag (die Beiträge) von den Voxeln durch das Objekt gesammelt, wobei aufeinanderfolgende Schichten von Voxeln von vorne nach hinten verarbeitet werden, wie durch den Pfeil T dargestellt wird. Obgleich die Verarbeitung als von vorne nach hinten erfolgend gezeigt ist, könnte sie alternativ auch von hinten nach vorne bewirkt werden.
  • 11 B stellt die Erzeugung eines gescherten Bildes für eine Ausführungsform der Erfindung dar unter der Annahme des selben Objektes und des selben Sichtvektors, der der i-Achse am nächsten ist. Es wird erneut angenommen, daß der Sichtvektor nahe, jedoch nicht parallel zu der i-Achse im Objektraum ist. Es ist klar zu erkennen, daß sich die Scherung, die in 11 B in einer Ausführungsform der Erfindung angewendet wird, von der, die in 11A in dem konventionellen Scher-Verzerr-Prozeß angewendet wird, unterscheidet. In einer Ausführungsform der Erfindung wird eine Scherung eingesetzt, die die i-Achse auf die I-Achse des gescherten Bildes abbildet. Die Verarbeitung der Pixel einer Zeile des gescherten Bildes in der Richtung T wird dann mit der Organisation der Voxel im Speicher ausgerichtet. Wenn die Voxel in der Ordnung (i, j, k) gespeichert werden, bedeutet dies, daß jedes sukzessive Voxel, das für die Berechnung der Reihe aus Pixeln des gescherten Bildes benötigt wird, in eng benachbarten Orten im Speicher zu finden ist.
  • Der Unterschied zwischen der Scherung von 11A und der Scherung von 11B könnte als eine imaginäre zusätzliche Scherung AS, die in 11 B gezeigt ist, dargestellt werden. Es sollte jedoch verstanden werden, daß eine Ausführungsform der Erfindung nicht notwendigerweise zwei getrennte Scheroperationen bereitstellt, sondern daß eine bevorzugte Ausführungsform der Erfindung statt dessen eine einzelne Scheroperation einsetzt, die trotzdem äquivalent zu einer konventionellen Scherung plus der imaginären zusätzlichen Scherung AS sein könnte.
  • 11C stellt die Erzeugung einer Pixellinie dar, die Beiträge von den unterschiedlichen Schichten des Objektes zeigt. Es ist zu sehen, daß die Voxelreihen durch das Objekt, die zu einer Zeile von Pixeln LP des gescherten Bildes beitragen, von Schicht zu Schicht (Ebene zu Ebene) des Objektes gehen.
  • Die Berechnung der Voxelreihen des gescherten Objektes, die zu einer Pixelzeile LP des gescherten Bildes beitragen, kann während der Übertragung berechnet werden. Alternativ kann sie vorberechnet und in einem Eintrag (beispielsweise einer Schertabelle) gehalten werden, die die relative Beziehung zwischen den Reihen in aufeinander folgenden Ebenen zeigt, die erforderlich ist, um eine Pixelzeile zu erzeugen. Da die selbe relative Beziehung für jede Zeile des gescherten Bildes anzuwenden ist, kann die Vorberechnung dieser Beziehung und die Speicherung in beispielsweise einer Schertabelle eine effektive Technik für das Verbessern der Verarbeitungsleistung sein. Eine Schertabelle kann als Teil des Sichtparameterbestimmungsprozesses 90 von 9 berechnet werden.
  • 11 D stellt die Erzeugung des gescherten Bildes dar, wo die Blick- bzw. Sichtrichtung am nächsten der j- oder k-Achse des Objektraumes ist. In jedem Fall wird die Scherabbildung derart gewählt, daß die i-Achse auf der I-Achse des gescherten Bildraums abgebildet wird. Wo die j-Achse dem Sichtvektor am nächsten ist, wird dann die k-Achse derart angeordnet, daß sie auf die m-Achse des gescherten Bildraums abgebildet wird. Wo die k-Achse dem Sichtvektor am nächsten ist, wird dann die j-Achse derart angeordnet, daß sie auf die m-Achse des gescherten Bildraumes abgebildet wird. 11 D zeigt ebenso den Satz von Reihen von Voxeln, die auf die Pixellinie LP abgebildet wird. Es kann daher gesehen werden, daß die Verarbeitung der Pixel einer Zeile LP des gescherten Bildes in der Richtung T mit der Organisation der Voxeln in Speicher ausgerichtet werden kann. Da die Voxel in der Ordnung (i, j, k) gespeichert sind, bedeutet dies, daß jedes aufeinanderfolgende Voxel, das für die Berechnung der Pixelreihe des gescherten Bildes notwendig ist, in eng benachbarten Orten im Speicher gefunden werden.
  • Wie oben erwähnt wurde, kann das Anordnen, daß die Verarbeitung von Voxeln die Speicherung der Voxel im Speicher berücksichtigt, die Verarbeitung des Bildes stark verbessern. Durch das zur Verfügung stellen der Verarbeitung in dieser Art und Weise kann die Bilddarstellung von vergleichbarer Geschwindigkeit sein ungeachtet dessen, welche Achse dem Sichtvektor am nächsten ist, was eine „langsame Achse" verhindert. Wenn in Matrixbegriffen betrachtet, wird die Scherung derart angeordnet, daß der Speicherzugriff vorzugsweise entsprechend der inneren Schleife (i) durchgeführt wird, wo die Matrixachsen ausgedrückt werden als (i, j, k).
  • Die Erklärung der Erzeugung von Pixelwerten, die in den 11C und 11D dargestellt werden, basiert auf einem Punktabfrageansatz, wo der Wert von einem Voxel je Schicht genommen wird, damit er zu dem Wert eines Pixels beiträgt. Dies wird unter Bezug auf 12 detaillierter beschrieben.
  • 12 stellt detaillierter ein Beispiel der Erzeugung eines gescherten Bildes dar, das im Speicher 96 zu speichern ist. Die Erzeugung des gescherten Bildes wird vorzugsweise Zeile für Zeile durchgeführt, wobei eine Zeile des gescherten Bildes im Cachespeicher 150 in einem Prozessor, vorzugsweise in einem first level-Cachespeicher gehalten wird. 12 stellt einen gescherten Bildzeilenpuffer 152 für das Speichern von Pixelwerten für eine Zeile des Cachespeichers und einen Sättigungspufferspeicher 154 dar, der ein Bit für jedes Pixel aufweist, um anzuzeigen, ob die Sättigung für das Pixel erreicht wurde, wie später beschrieben wird. Der Cachespeicher 156, der ein second level-Prozessorcachespeicher sein kann, enthält Blöcke von wiedergewonnenen Voxeldaten.
  • Die Erzeugungslogik 158 für das gescherte Bild reagiert auf die Scherparameter von einer Schertabelle 160 (wie sie beispielsweise in einem Sichtparameterbestimmungsprozeß 90 von 4 berechnet wurden), um auf aneinander grenzende Voxelspeicher zuzugreifen, der Daten für Voxel enthält, die für die Berechnung der Pixel der Zeile der gescherten Bilddaten benötigt werden.
  • Die Scherverarbeitungslogik 158 ist derart betreibbar, daß sie Teilopazitäts-(Intensitäts)-Werte für eine Zeile von Pixeln aus den Opazitätswerten der entsprechenden Sätze von Voxelwerten sammelt. Ein erster Satz von Voxelwerten (von einer ersten Voxelreihe, wie sie unter Verwendung eines ersten Eintrages in der Schertabelle identifiziert wird) wird in einem ersten Durchlauf gespeichert. Dann wird ein zweiter Satz von Voxelwerten (von einer zweiten Reihe von Voxeldaten, wie sie von einem zweiten Eintrag in der Schertabelle identifiziert wird) mit den Opazitätswerten für die Pixel kombiniert, wie es geeignet ist. Dieser Prozeß wiederholt sich für aufeinanderfolgende Reihen, bis die Pixelwerte für die entsprechenden Pixel gesammelt wurden. Wenn zu irgend einer Zeit während dieses Prozesses ein Pixelwert einen gewünschten Grad der Opazität erreicht, dann wird ein Anzeiger an einem Ort in dem Sättigungspuffer für den betreffenden Pixel gesetzt, um anzuzeigen, daß für diesen Pixel keine weiteren Berechnungen notwendig sind. Dieser Ansatz ist ein wenig wie die „frühe Strahlenbeendigung", um nicht notwendige Verarbeitung von Voxeln zu vermeiden, die nicht zu einem Pixel des gescherten Bildes beitragen werden, beispielsweise, da die Pixel bereits eine maximale Opazität erreicht haben. Somit erhöht das Vorsehen des Sättigungspuffers die Verarbeitungseffizienz durch Verhindern von nicht notwendigen Datenabfragen und Berechnungsoperationen.
  • In der obigen Beschreibung wird die Annahme gemacht, daß für jeden Schritt durch das Objekt des Volumens nur ein Voxelwert verwendet wird (sogenannte Punktabfrage). In eine. Ausführungsform der Erfindung ist es jedoch ebenso möglich, relative Beiträge von benachbarten Voxelwerten zu faktorieren, abhängig von dem Schnittpunkt zwischen dem Sichtvektor und den Zentren der Voxel. Als eine Illustration unter bezug auf 13 durchläuft ein imaginärer Strahl 170 parallel zu dem Sichtvektor für das Erzeugen eines Pixelwertes an einem Schnittpunkt zwischen vier Voxeln (wie entlang des Sichtvektors blickend zu sehen ist). In solch einem Fall könnte ein 25%-Beitrag von dem Opazitätswert für jedes der vier Voxel verwendet werden, um einen zu dem Intensitätswert für das betreffende Pixel hinzuzufügenden Wert zu erzeugen. Der proportionale Beitrag kann entsprechend der relativen Verschiebung des imaginären Strahls 170 von den entsprechenden Voxelzentren eingestellt werden. Das zur Verfügung stellen solch einer proportionalen Verarbeitung erhöht die Verarbeitungsbelastung, kann jedoch zu einer verbesserten Klarheit und Definition eines Endbildes führen.
  • In einer Ausführungsform der Erfindung wird der Beitrag von vier Voxeln durch die bilineare Verarbeitung berechnet, wie in 14 dargestellt ist. Mit anderen Worten wird der Wert eines imaginären Strahles 170 in 14 durch die Linearinterpolation in der vertikalen Richtung (wie in 14 gezeigt ist) gefolgt durch eine lineare Interpolation in der horizontalen Richtung (wie in 14 gezeigt ist) bestimmt, in Übereinstimmung mit den folgenden Formeln: G = E(GF/EF) + F(EG/EF), wobei E = A(CE/AC) + C(AE/AC) und F = (B(FD/BD) + D(BF/BD),wobei A, B, C, D, E und F Werte an den entsprechenden in 14 gezeigten Positionen darstellen. A, B, C und D stellen die Zentren von vier Voxeln dar, und G ist der Punkt, an dem der Sichtvektor die Ebene, die die vier Voxelzentren enthält, durchquert.
  • 15 stellt den Verzerrverarbeitungsschritt von 96 von 4 detaillierter dar.
  • In Schritt 150 wird die Verarbeitung durchgeführt, um das gescherte Bild zu erzeugen.
  • In Schritt 180 findet die Verzerrverarbeitung unter Verwendung von Matrizenberechnung statt, um eine Bilddrehungs-, Skalierungs- und Scheroperation bereitzustellen. Somit wird die Position der Pixeldaten für jedes Pixel der Reihe des gescherten Bildes in Übereinstimmung mit Verzerrfaktoren verändert, um diese Pixeldaten an einer geeigneten Position in dem Endbild zu positionieren. Mit anderen Worten müssen die Pixelwerte, die eine horizontale Reihe in dem gescherten Bild bilden, nicht eine horizontale Reihe in dem Endbild bilden.
  • In Schritt 182 wird der Endbildzusammenbau durchgeführt. Das Endbild kann beispielsweise auf der Anzeigeeinrichtung von 14 der Workstation 10 von 14 dargestellt werden oder gedruckt werden, gespeichert werden oder zu einem anderen Ort, einer Workstation oder dergleichen, wie es erforderlich ist, übertragen werden.
  • Es wurde somit ein Computerprogramm und ein Computer-implementiertes System und ein Verfahren für das Erzeugen eines zweidimensionalen Bildes eines Volumendatensatzes, der ein Objektvolumen von einem auswählbaren Blickpunkt darstellt, beschrieben. Ein Objektvolumendatensatz beinhaltet Voxelwerte, die geordnet sind nach Voxeln entlang einer Reihe, die sich in einer ersten Richtung erstreckt, nach Reihen über einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt. In Antwort auf die Definition eines Blickvektors, der eine Blickrichtung in bezug auf einen Blickpunkt definiert, werden Scher- und Verzerrabbildungen bestimmt, entsprechend welcher Richtung, der ersten, der zweiten und der dritten Richtung, dem Blickvektor am nächsten ist. Pixel eines zweidimensionalen gescherten Bildes mit einer Mehrzahl von Zeilen von Pixeln werden dann aus den Voxelwerten des Objektvolumendatensatzes, der von der Scherabbildung identifiziert wird, bestimmt. Wo der Blickvektor der ersten Richtung am nächsten ist, bildet die Scherabbildung Voxelreihen in der ersten Richtung auf Pixellinien des gescherten Bildes ab. Ein Ausgangsbild wird dann durch Abbilden der Pixel des gescherten Bildes entsprechend der Verzerrabbildung bestimmt. Dieses Ausgangsbild kann angezeigt werden, gedruckt werden, zu einem entfernten Ort gesendet werden oder auf andere Art und Weise zu einem Benutzer kommuniziert werden.
  • Obgleich die beschriebene Ausführungsform ein Computerprogramm, das auf einem konventionellen Computer, beispielsweise einer konventionellen Computerworkstation, arbeitet, einsetzt, könnten somit beispielsweise in anderen Ausführungsformen eine Spezialhardware verwendet werden. Beispielsweise könnte zumindest ein Teil der Funktionalität unter Verwendung von Spezialschaltkreisen, beispielsweise eines feldprogrammierbaren Gatearrays (FPGA) oder eines anwendungsspezifischen integrierten Schaltkreises (ASIC) bewirkt werden. Ebenso könnte die Multithreadverarbeitung oder die parallel berechnende Hardware verwendet werden für zumindest einen Teil der Verarbeitung. Beispielsweise könnten unterschiedliche Threads verwendet werden, um entsprechende alternierende Reihen des gescherten Bildes zu erzeugen.
  • 16 zeigt eine besonders vorteilhafte Hardwareimplementierung, die die Erfindung verkörpert, die es möglich macht, in Echtzeit darzustellen. Die Figur zeigt ein CT-System 300, das einen CT-Scanner 302 und eine Volumen-CT-Konstruktionseinheit 304 zeigt, die in Wirkweise verbunden ist, um CT-Daten über eine Speichereinheit 400, die einen Volumenspeicher 404 aufweist, und eine Leiteinheit 402, die direkten Speicherzugriff (DMA) einsetzt, zu einem Computersystem 500 zu übertragen. Die Pixelzeilen sind schematisch gezeigt, wobei die ersten vier Zeilen mit LP1, LP2, LP3 und LP4 bezeichnet sind. Die Funktion der Speichereinheit 400 ist es, eine effiziente Übertragung der CT-Daten von dem CT-System 300 zu dem Computersystem 500 bereitzustellen. Es versteht sich, daß die Übertragung der CT-Daten in das Computersystem 500 in vielen anderen Art und Weisen durchgeführt werden können, einschließlich direkt ohne ein Zwischenelement, wie die Speichereinheit 400.
  • Das Computersystem 500 weist eine Mehrzahl von Verarbeitungselementen 504, 506 und 508 auf, wobei drei hiervon (PE1, PE2 und PE3) beispielhaft gezeigt sind. Jedes Verarbeitungselement hat lokalen Speicher, wie z. B. Speicher mit wahlfreiem Zugriff (RAM), wie z. B. statischen RAM (SRAM) oder dynamischen RAM (DRAM). Die dargestellten Verarbeitungselemente 504, 506 und 508 haben entsprechend lokale Speicher 524, 526 und 528 (M1, M2 und M3).
  • Die DMA Leiteinheit 402 hat Datenkommunikationsverbindungen zu jedem Verarbeitungselement 504, 506, 508 .... Die DMA Leiteinheit 42 hat ebenso eine Datenkommunikationsverbindung 507 zu einer Schnittstelle 509 des Computersystems. Die Verbindung 507 dient dazu, Steuerdaten zu tragen, die für die Datenkommunikation von dem Volumenspeicher 404 zu den Verarbeitungselementen 504, 506, 508 ... relevant sind, wie weiter unten erläutert wird. Das Computersystem 500 weist weiterhin die folgenden Komponenten auf: ein Chipset 513, ein PCI-Bus 530, der die Verarbeitungselemente 504, 506, 508 ... mit dem Chipset 513 verbindet, ein oder mehrere Hauptprozessoren 514 (zwei Prozessoren P1 und P2 sind gezeigt), die mit dem Chipset 513 verbunden sind, und etwas Speicher 515 (als DRAM gezeigt), der ebenso mit dem Chipset 513 verbunden ist. Das Computersystem 500 weist weiterhin eine Anzeige 516 auf, die über eine Busverbindung mit dem Chipset 513 verbunden ist.
  • Die Ausführungsform von 16 basiert auf dem Verständnis, daß durch Verwendung des Verfahrens des Darstellens von Voxeln, das oben beschrieben wurde, Reihen von Voxeln die eine Zeile von Pixeln in dem angezeigten Bild bilden, unabhängig von den anderen Voxeln verarbeitet werden. Dies erlaubt es, daß Voxel, die mit unterschiedlichen Pixelzeilen verknüpft sind, parallel verarbeitet werden. Die Ausführungsform von 16 ist ein Beispiel, wie solch eine Parallelverarbeitung der Pixelzeilendaten in der Praxis ausgeführt werden kann. Es versteht sich jedoch, daß das zugrundeliegende Konzept dieser Ausführungsform das ist, daß jeder Voxeldatensatz, der dafür bestimmt ist, zu einer gegebenen Pixelzeile in dem Endbild beizutragen, unabhängig z. B. parallel, verarbeitet werden kann. Die Anpassung der Parallelverarbeitung kann die Verarbeitungsgeschwindigkeit signifikant erhöhen und die Echtzeitdarstellung unter Verwendung von relativ bescheidener Hardware. Beispielsweise sollte es mit dem Beispielsystem, das in 16 gezeigt ist, möglich sein, 3D-Bilder von 512 × 512 × 24 Bit Pixeln mit 10 Einzelbildern pro Sekunde, basierend auf der Leistung gegenwärtiger Personalcomputer (PC) durchzuführen.
  • Unter Rückkehr zu dem Beispiel können, wenn n-Verarbeitungselemente verwendet werden, dann n-Zeilen von Pixeln des dargestellten Bildes gleichzeitig mit dem Verarbeitungselement 504, 506, 508 ..., die zugewiesen sind, um die Werte einer unterschiedlichen Zeile von Pixeln zu verarbeiten, berechnet werden. Die Pixelwerte für jede Zeile von Pixeln werden von den Verarbeitungselementen, wie früher beschrieben wurde, unabhängig berechnet. Beginnend mit der ersten Reihe aus Voxeln in der K = 0 Ebene werden die Voxelwerte von der DMA Leiteinheit 402 zu dem ersten Verarbeitungselement 504 verschoben. Die DMA Leiteinheit 402 verschiebt als nächstes die zweite Reihe von Voxeldaten zu dem zweiten Verarbeitungselement 506 und die dritte Reihe zu dem dritten Verarbeitungselement 508 usw., bis alle Verarbeitungselemente eine Reihe von Daten empfangen haben. Jedes Verarbeitungselement speichert die empfangene Reihe aus Voxeldaten in ihrem lokalen Speicher 524, 526, 528..., der als ein Pufferspeicher fungiert.
  • Jedes Verarbeitungselement berechnet einen Beitrag zu den Pixeln zu seiner zugewiesenen Pixelzeile von jedem Voxelelement dieser Reihe. Als nächstes geht die DMA Leiteinheit 402 auf die nächste hintere Ebene weiter, das ist K = 1, und beginnt erneut die Voxelwerte der ersten Reihe in der K = 1-Ebene zu dem Verarbeitungselement PE, und für die n-te Reihe in dieser Ebene zu dem n-ten Verarbeitungselement, d. h. zu PE, zu senden.
  • Wie vorher erörtert wurde, kann es notwendig sein, um die Tatsache anzuerkennen, daß Überlapps der Voxelreihen auftreten können, daß der Voxelwert, der zu einem Pixel beiträgt, aus einer linearen Interpolation von benachbarten Voxeln, d. h. aus vier Voxeln, berechnet wird. Jedes Verarbeitungselement erfordert ebenso die Voxelwerte von Voxeln, die zu diesem in seiner Zeile benachbart sind. Daher sendet die DMA Leiteinheit eine Voxelzeile zu zwei Verarbeitungselementen, die für benachbarte Zeilen verantwortlich sind, und beide Verarbeitungselemente speichern die Daten. In einem bestimmten Beispiel wird jedes Verarbeitungselement mit ausreichend lokalem Speicher ausgestattet, um bis zu vier Reihen von Voxeldaten und eine Zeile von Pixeldaten zu speichern.
  • Sobald die Beiträge von einer Voxelreihe berechnet wurden, werden die Voxeldaten aus dem betreffenden lokalen Speicher verworfen, und die Daten für die dahinter liegende Reihe in der nächsten k-Ebene werden empfangen und gespeichert. Dies wird fortgesetzt, bis die Endpixelwerte für die Pixelzeile erreicht wurden, d. h. bis die Beiträge von allen Voxeln addiert wurden.
  • Sobald jede Pixelzeile berechnet wurde, werden diese Daten zu dem Chipset 513 für die Anzeige auf der Anzeige 516 ausgegeben. Die gespeicherten Voxeldaten und Pixeldaten in den lokalen Speichern der Verarbeitungselemente werden dann verworfen. Der Prozeß beginnt dann erneut für die nächste Pixelzeile.
  • Die DMA Leiteinheit 402 will somit erst eine Zeile von Pixeln abrufen und sie, sagen wir, zu dem Verarbeitungselement 504 senden. Die DMA Leiteinheit 402 sendet alle Voxeldaten für die Volumenebene, die eine Zeile von Pixeln bildet. Die DMA Leiteinheit 402 sendet dann Voxeldaten für die nächste Ebene nach unten zu dem nächsten Verarbeitungselement 506, usw.
  • Die DMA Leiteinheit 402 ist in einem spezifischen Beispiel in der Lage, 1 k-Byte von Volumendaten je Transaktion abzurufen. Dies entspricht einer Zeile von 512 Voxeln entlang der i-Achse. Die DMA Leiteinheit 402 empfängt Steuerinformation von dem Host durch die Datenverbindung 507, um zu bestimmen, welche Zeile von Voxeln zu welchem Verarbeitungselement geht. Für dieses kann ein Kanal mit geringer Bandbreite, wie z. B. ein SCSI-Kanal, verwendet werden.
  • Der lokale Speicher von jedem Verarbeitungselement ist derart betreibbar, daß er aufnimmt: eine Zeile von Pixeln des gescherten Bildes, bis zu vier Reihen von Voxeln, sowie ein einfaches Programm und Parameter, die für das Projektieren von Voxeln zu Pixeln erforderlich sind. Somit ist eine geringe Menge von lokalem Speicher ausreichend, beispielsweise 32 KB – 272 KB. Es besteht keine Notwendigkeit für die Verarbeitungselemente, um miteinander wechselzuwirken, da sie keine Daten austauschen müssen, um ihre Berechnungen durchzuführen.
  • Es versteht sich, daß die Art und Weise, in der die Verarbeitungselemente mit dem Host-Computersystem verbunden sind, eine Vielzahl von Formen annehmen kann. In 16 wird ein System, in dem jedes Verarbeitungselement mit einem gemeinsamen PCI-Bus verbunden ist, gezeigt, dies ist jedoch nur ein Beispiel. Eine Alternative ist ein externes digitales Signalprozessor(DSP)-Gehäuse mit einer einzelnen PCI-Schnittstelle zu dem Host. Eine andere Alternative ist ein System, wo mehrere Verarbeitungselemente in einer Anordnungsklammer bzw. einem Arrayclip kombiniert werden, wie z. B. Pixel Fusion (Marke). Der Rest des Host-Systems ist üblicherweise ein einfacher PC-Host, ein Einheitssystem könnte ebenso verwendet werden.
  • Das System ist in der Lage, die ausstehende Darstellungsleistung verglichen mit bekannten Systemen bereitzustellen. Es sollte möglich sein, Echtzeitdarstellungen von Volumen durchzuführen, die aus 512 × 512 × 256 × 16 Bit Voxeln bestehen, die mit 10 Volumen je Sekunde ankommen. In einem bevorzugten Beispiel erzeugt das System 3D-Bilder von 512 × 512 × 24 Bit Pixeln mit 10 Einzelbildern je Sekunde ungeachtet des Inhaltes der Daten und der Blickparameter.
  • In den beschriebenen Ausführungsformen kann eine Computer-Implementierung, die ein Computerprogramm für das Speichern auf einem Datenträger oder in einem Speicher einsetzt, verwendet werden, um den Betrieb des Prozessors des Computers zu steuern. Das Computerprogramm kann auf einem geeigneten Trägermedium, beispielsweise einem Speichermedium, wie einem Festspeicher, einer magnetischen, einer optischen oder magnetooptischen Platte oder bandbasierten Medien geliefert werden. Alternativ kann es auf einem Übertragungsmedium geliefert werden, beispielsweise einem Medium mit einem Träger, wie z. B. ein Telefon, ein Radiokanal oder optischer Kanal.
  • Es versteht sich, daß, obgleich bestimmte Ausführungsformen der Erfindung beschrieben wurden, viele Modifikationen/Hinzufügungen und/oder Substitutionen innerhalb des Schutzbereiches der vorliegenden Erfindung durchgeführt werden können. Folglich ist das bestimmte beschriebene Beispiel nur illustrativ gedacht und nicht begrenzend.
  • Referenzen

Claims (51)

  1. Computer-implementiertes Verfahren zum Erzeugen eines zweidimensionalen Bildes aus einem Volumendatensatz, der ein Volumenobjekt von einem auswählbaren Blickpunkt repräsentiert, wobei das Verfahren aufweist: Zurverfügungstellen eines Volumenobjektdatensatzes (100) in einem Speicher, der Voxelwerte aufweist, die sortiert sind nach Voxeln (Volumenpixeln) entlang einer Reihe, die sich in einer ersten Richtung erstreckt, nach Reihen über einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und in einer dritten Richtung erstreckt, Definieren einer Blickrichtung in Bezug auf einen Blickpunkt in Antwort auf die Definition eines Blickvektors (W), Bestimmen von Scher- und Verzerrungsabbildungen und Bestimmen von einer, der ersten, der zweiten oder der dritten Richtung, als dem Blickvektor am nächsten kommend, Ableiten von Pixeln eines zweidimensionalen gescherten Bildes mit einer Mehrzahl von Zeilen von Pixeln von Voxelwerten des Objektvolumendatensatzes, der durch die Scherabbildung identifiziert wird, wobei die Scherabbildung Reihen von Voxeln in der ersten Richtung auf Pixellinien des gescherten Bildes abbildet, und Ableiten eines Ausgangsbildes durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrungsabbildung.
  2. Verfahren nach Anspruch 1, wobei die Erzeugung der Pixel des zweidimensionalen gescherten Bildes Zeile per Zeile des gescherten Bildes durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei die aufeinanderfolgenden Zeilen des gescherten Bildes in einem Pufferspeicher (152) des gescherten Bildes gehalten werden.
  4. Verfahren nach einem der vorherigen Ansprüche, wobei die Ableitung einer Zeile von Pixeln des gescherten Bildes das Identifizieren von einer oder mehreren Zeilen von Voxeln in der ersten Richtung beinhaltet, die auf die Zeile der Pixel des gescherten Bildes abgebildet werden, und Sammeln bzw. Summieren von Beiträgen von Voxeln von der einen oder der mehreren Zeilen von Voxeln, um die entsprechenden Pixelwerte der Zeile von Pixeln des gescherten Bildes abzuleiten.
  5. Verfahren nach Anspruch 4, wobei das Sammeln bzw. Summieren von Beiträgen für ein Pixel des gescherten Bildes beendet wird, wenn ein Wert, der für eine vorbestimmte Intensität oder Opazität repräsentativ ist, erreicht wird.
  6. Verfahren nach einem der vorherigen Ansprüche, das die Vorverarbeitung des Volumendatensatzes aufweist, um Voxel zu identifizieren, die Voxelwerte haben, die einen vorbestimmten Grad von Opazität überschreiten.
  7. Verfahren nach Anspruch 6, wobei die Vorverarbeitung das Erzeugen eines Volumendatensatzes aufweist, der als Abläufe von Werten mit Opazitäten, die größer als die vorbestimmte Opazität sind und durch Auslaßwerte getrennt sind, codiert ist.
  8. Verfahren nach Anspruch 6, das das Bestimmen eines Datensatzes aufweist, der Voxel mit Opazitätswerten identifiziert, die größer als die vorbestimmte Opazität sind.
  9. Verfahren nach einem der Ansprüche 5 bis 8, wobei die Voxel mit Voxelwerten, die kleiner oder gleich der vorbestimmten Werte sind, während der Ableitung von Pixeln des zweidimensionalen gescherten Bildes ignoriert werden.
  10. Verfahren nach einem der vorherigen Ansprüche, wobei der Objektvolumendatensatz abgefragte Daten aufweist.
  11. Verfahren nach Anspruch 10, wobei der Objektvolumendatensatz abgefragte bzw. abgetastete Daten aufweist, die erzeugt werden unter Verwendung von einer oder mehrerer der folgenden Abtasttechniken: Teilchen- und/oder elektromagnetische Energieabtastung, Schall- oder Ultraschallabtastung.
  12. Verfahren nach einem der vorherigen Ansprüche, wobei der Objektvolumendatensatz eine Mehrzahl von Voxelzeilensätzen aufweist, die jeweils eine Linie bzw. Zeile von Pixeln des gescherten Bildes ausmachen, und wobei der Schritt des Ableitens der Pixel die unabhängige Verarbeitung von unterschiedlichen Voxelzeilensätzen aufweist.
  13. Verfahren nach Anspruch 12, wobei die unabhängige Verarbeitung die Verarbeitung von zumindest zwei Voxelzeilensätzen parallel zueinander aufweist.
  14. Computerprogrammprodukt für das Erzeugen eines zweidimensionalen Bildes eines Volumendatensatzes, der ein Objektvolumen von einem auswählbaren Blickpunkt darstellt, wobei das Computerprogramm Programmcode aufweist, der betreibbar ist: um von einem Speicher auf ein Objektvolumendatensatz (100) zuzugreifen, der Voxelwerte aufweist, die geordnet sind nach Voxeln entlang einer Zeile, die sich in einer ersten Richtung erstreckt, nach Zeilen entlang einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und in einer dritten Richtung erstreckt, um in Antwort auf die Definition eines Sichtvektors (W), der eine Sicht- bzw. Blickrichtung in Bezug auf einen Blickpunkt definiert, Scher- und Verzerrungsabbildungen zu bestimmen und eine Richtung, die erste, die zweite oder die dritte Richtung als die dem Sichtvektor am nächsten kommende zu bestimmen, um Pixel eines zweidimensionalen gescherten Bildes mit einer Mehrzahl von Zeilen von Pixeln von Voxelwerten des Objektvolumendatensatzes abzuleiten, die durch die Scherabbildung identifiziert werden, wobei die Scherabbildung Zeilen von Voxeln in der ersten Richtung auf Zeilen von Pixeln des gescherten Bildes abbildet, und um ein Ausgangsbild abzuleiten durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrungsabbildung.
  15. Computerprogrammprodukt nach Anspruch 14, das einen Programmcode aufweist, der derart betreibbar ist, daß er die Erzeugung der Pixel des zweidimensional gescherten Bildes Zeile per Zeile des gescherten Bildes durchführt.
  16. Computerprogrammprodukt nach Anspruch 14 oder 15, das einen Programmcode aufweist, der derart betreibbar ist, daß er aufeinanderfolgende Zeilen des gescherten Bildes in einem Scherbildpufferspeicher (152) ablegt.
  17. Computerprogrammprodukt nach einem der Ansprüche 14 bis 16, das einen Programmcode aufweist, der derart betreibbar ist, daß eine Zeile von Pixeln des gescherten Bildes abgeleitet wird, um ein oder mehrere Zeilen von Voxeln in der ersten Richtung zu identifizieren, die auf die Zeile von Pixeln des gescherten Bildes abgebildet werden, und um Beiträge von Voxeln von der einen oder mehreren Zeilen von Voxeln zu sammeln bzw. zu summieren, um entsprechende Pixelwerte der Zeile von Pixeln des gescherten Bildes abzuleiten.
  18. Computerprogrammprodukt nach Anspruch 17, wobei der Programmcode derart betreibbar ist, daß er das Summieren von Beiträgen für ein Pixel des gescherten Bildes beendet, wenn ein Wert, der eine vorbestimmte Intensität oder Opazität repräsentiert, erreicht wird.
  19. Computerprogrammprodukt nach einem der Ansprüche 14 bis 18, wobei der Volumendatensatz vorverarbeitet wird, um Voxel zu identifizieren, die Voxelwerte haben, die einen vorbestimmten Grad der Opazität überschreiten.
  20. Computerprogrammprodukt nach Anspruch 19, wobei die Vorverarbeitung das Erzeugen eines Volumendatensatzes aufweist, der als Abläufe von Werten mit Opazitäten, die größer als eine vorbestimmte Opazität sind, und durch Auslassungswerte getrennt sind, codiert ist.
  21. Computerprogrammprodukt nach Anspruch 19, wobei die Vorverarbeitung das Erzeugen eines Volumendatensatzes aufweist, der als Abläufe von Werten mit Opazitäten, die größer als eine vorbestimmte Opazität sind, und durch Auslassungswerte getrennt sind, codiert ist.
  22. Computerprogrammprodukt nach Anspruch 19, wobei das Computerprogramm derart betreibbar ist, daß es einen Eintrag bestimmt, der Voxel mit Opazitätswerten identifiziert, die größer als die vorbestimmte Opazität ist.
  23. Computerprogrammprodukt nach einem der Ansprüche 14 bis 22, wobei das Computerprogramm derart betreibbar ist, daß es Voxel mit Voxelwerten, die kleiner oder gleich einem vorbestimmten Wert sind, ignoriert.
  24. Computerprogrammprodukt nach einem der Ansprüche 14 bis 23, wobei der Objektvolumendatensatz abgefragte Daten enthält.
  25. Computerprogrammprodukt nach Anspruch 24, wobei der Objektvolumendatensatz Daten aufweist, die unter Verwendung von einer oder mehrerer der folgenden Abtast- bzw. Abfragetechniken erzeugt wurden: Teilchen- und/oder elektromagnetische Energieabtastung, Schall- oder Ultraschallabtastung.
  26. Computerprogrammprodukt nach einem der Ansprüche 14 bis 25, wobei der Objektvolumendatensatz eine Mehrzahl von Voxelzeilensätzen aufweist, die jeweils eine Zeile von Pixeln des gescherten Bildes ausmachen und wobei der Schritt des Ableitens der Pixel die unabhängige Verarbeitung von unterschiedlichen Voxelzeilensätzen aufweist.
  27. Computerprogrammprodukt nach Anspruch 26, wobei die unabhängige Verarbeitung die Verarbeitung von zumindest zwei Voxelzeilensätzen parallel zueinander aufweist.
  28. Computerprogrammprodukt nach einem der Ansprüche 14 bis 27, das einen Computerprogrammcode auf einem Trägermedium aufweist.
  29. Computerprogrammprodukt nach Anspruch 28, wobei das Trägermedium ein Speichermedium ist.
  30. Computerprogrammprodukt gemäß Anspruch 29, wobei das Trägermedium ein Übertragungsmedium ist.
  31. Computer-implementiertes System, das einen Prozessor und einen Hauptspeicher und ein Computerprogrammprodukt nach einem der Ansprüche 14 bis 30 aufweist.
  32. System für das Erzeugen eines zweidimensionalen Bildes eines Volumendatensatzes, der ein Objektvolumen aus einem auswählbaren Blickpunkt darstellt, wobei das System aufweist: einen Speicher für einen Objektvolumendatensatz (100), der Voxelwerte aufweist, die nach Voxeln entlang einer Zeile, die sich in einer ersten Richtung erstreckt, nach Zeilen entlang einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt, geordnet sind, einen Ansichtprozessor, der derart betreibbar ist, daß er in Antwort auf die Definition eines Blickvektors (W), der eine Blickrichtung in Bezug auf einen Blickpunkt bestimmt, Scher- und Verzerrungsabbildungen bestimmt, und eine Richtung, die erste, die zweite oder die dritte als die dem Sichtvektor am nächsten kommende bestimmt, einen Scherungsprozessor, der derart betreibbar ist, daß er Pixel aus einem zweidimensionalen gescherten Bild mit einer Mehrzahl von Zeilen von Pixeln von Voxelwerten des Objektvolumendatensatzes ableitet, die durch die Scherabbildung identifiziert werden, wobei die Scherabbildung Zeilen von Voxeln in der ersten Richtung auf Zeilen von Pixeln des gescherten Bildes abbildet, und einen Verzerrungsprozessor, der derart betreibbar ist, daß er ein Ausgangsbild durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrungsabbildung ableitet.
  33. System nach Anspruch 32, wobei der Scherprozessor derart betreibbar ist, daß er die Erzeugung der Pixel des zweidimensionalen gescherten Bildes Zeile per Zeile des gescherten Bildes durchführt.
  34. System nach Anspruch 32 oder 33, wobei der Scherprozessor derart betreibbar ist, daß er aufeinanderfolgende Zeilen des gescherten Bildes in einem Pufferspeicher (152) für das gescherte Bild ablegt.
  35. System nach einem der Ansprüche 32 bis 34, wobei der Scherprozessor derart betreibbar ist, daß er eine Zeile von Pixeln des gescherten Bildes ableitet, um ein oder mehrere Zeilen von Voxeln in der ersten Richtung abzuleiten, die auf die Zeile von Pixeln des gescherten Bildes abgeleitet werden, und um Beiträge von Voxeln von der einen oder mehreren Zeile von Voxeln zu sammeln bzw. zu summieren, um entsprechende Pixelwerte der Zeile von Pixeln des gescherten Bildes abzuleiten.
  36. System nach Anspruch 35, wobei der Scherprozessor derart betreibbar ist, daß er die Summierung von Beiträgen für ein Pixel des gescherten Bildes beendet, wenn ein Wert, der eine vorbestimmte Intensität oder Opazität darstellt, erreicht wird.
  37. System nach einem der Ansprüche 32 bis 36, das einen Vorprozessor aufweist, der derart betreibbar ist, daß er Voxel mit Voxelwerten, die einen vorbestimmten Grad der Opazität überschreiten, identifiziert.
  38. System nach Anspruch 37, wobei der Vorprozessor derart betreibbar ist, daß er einen Volumendatensatz erzeugt, der als Abfolgen von Werten mit Opazitäten größer als die vorbestimmte Opazität, welche durch Auslaßwerte getrennt sind, codiert.
  39. System nach Anspruch 37, wobei der Vorprozessor derart betreibbar ist, daß er einen Volumendatensatz erzeugt, der als Abfolgen von Werten mit Opazitäten größer als die vorbestimmte Opazität, welche durch Auslaßwerte getrennt sind, codiert.
  40. System nach Anspruch 37, wobei der Vorprozessor derart betreibbar ist, daß er einen Eintrag bestimmt, der Voxel mit Opazitätswerten größer als die vorbestimmte Opazität identifiziert.
  41. System nach einem der Ansprüche 32 bis 40, wobei der Scherprozessor derart betreibbar ist, daß er Voxel mit Voxelwerten, die kleiner oder gleich einem vorbestimmten Wert sind, ignoriert.
  42. System nach einem der Ansprüche 32 bis 41, wobei die Speichereinrichtung einen Hauptspeicher und einen Cache-Speicher aufweist, wobei der Volumendatensatz in dem Hauptspeicher gehalten wird, und wobei die Blöcke von kontinuierlich geordneten Voxelwerten, die verarbeitet werden, zeitweise von dem Hauptspeicher zu dem Cache-Speicher übertragen werden.
  43. System nach Anspruch 42, wobei der Cache-Speicher ein Second-Level-Cache-Speicher eines Mikroprozessors ist.
  44. System nach Anspruch 42 oder 43, wobei der Cache-Speicher derart betreibbar ist, daß er alle Daten, die für die Verarbeitung von zumindest einer Abtastzeile des zweidimensionalen Bildes erforderlich ist, im Speicher hält.
  45. System nach einem der Ansprüche 32 bis 44, das einen Speicher für das gescherte Bild für das Speichern des gescherten Bildes aufweist.
  46. System nach Anspruch 45, wobei der Speicher für das gescherte Bild einen First-Level-Cache-Speicher eines Mikroprozessors für das Sammeln einer Zeile von Pixeln des gescherten Bildes und weiteren Speicher für das Ablegen von kompletten Zeilen des gescherten Bildes aufweist.
  47. System nach einem der Ansprüche 32 bis 46, wobei der Objektvolumendatensatz abgetastete Daten aufweist.
  48. System nach Anspruch 47, wobei der Objektvolumendatensatz abgetastete Daten aufweist, die unter Verwendung von einer oder mehrerer der folgenden Abtasttechniken erzeugt wurden: Teilchen- und/oder elektromagnetische Energieabtastung, Schall- oder Ultraschallabtastung.
  49. System nach einem der Ansprüche 32 bis 48, wobei der Speicher derart konfiguriert ist, daß er den Objektvolumendatensatz als eine Mehrzahl von Voxelzeilensätzen ablegt, wobei jeder von diesen eine Zeile von Pixeln des gescherten Bildes ausmacht, und wobei der Scherprozessor eine Mehrzahl von Verarbeitungselementen aufweist, die derart konfiguriert sind, daß sie unabhängig verschiedene Voxelzeilensätze verarbeiten.
  50. System nach Anspruch 49, wobei die Verarbeitungselemente derart konfiguriert sind, daß sie die Voxelzeilensätze parallel verarbeiten.
  51. Computer-implementiertes Verfahren zum Erzeugen eines zweidimensionalen Ausgangsbildes von einem Objektvolumendatensatz, wobei das Verfahren aufweist: a) Zurverfügungstellen eines Objektvolumendatensatzes (100), der Voxelwerte aufweist, die nach Voxeln entlang einer Zeile, die sich in einer ersten Richtung, nach Zeilen entlang einer Ebene, die sich in der ersten Richtung und einer zweiten Richtung erstreckt, und nach Ebenen durch ein Objektvolumen, das sich in der ersten und der zweiten Richtung und einer dritten Richtung erstreckt, geordnet bzw. sortiert sind, b) Zurverfügungstellen eines Sichtvektors (W) und eines Sichtpunktes, Definieren einer Sichtrichtung gemäß dem Sichtvektor und dem Sichtpunkt, und Bestimmen von einer, der ersten, der zweiten oder der dritten Richtung, als die dem Sichtvektor am nächsten kommende, c) Bestimmen einer Scherabbildung von dem Objektvolumendatensatz auf ein zweidimensional geschertes Bild, d) Bestimmen einer Verzerrungsabbildung von dem zweidimensional gescherten Bild zu einem zweidimensionalen Ausgangsbild, e) Ableiten von Pixeln eines zweidimensional gescherten Bildes mit einer Mehrzahl von Zeilen von Pixeln von Voxelwerten des Objektvolumendatensatzes, der durch die Scherabbildung identifiziert wird, wobei die Scherabbildung Zeilen von Voxeln in der ersten Richtung auf Zeilen von Pixeln des gescherten Bildes abbildet, und f) Ableiten des zweidimensionalen Ausgangsbildes durch Abbilden von Pixeln des gescherten Bildes gemäß der Verzerrungsabbildung.
DE60100806T 2000-04-10 2001-04-06 Abbildung von volumendaten Expired - Fee Related DE60100806T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0008799 2000-04-10
GB0008799A GB2361396B (en) 2000-04-10 2000-04-10 Imaging volume data
PCT/GB2001/001578 WO2001078013A1 (en) 2000-04-10 2001-04-06 Imaging volume data

Publications (2)

Publication Number Publication Date
DE60100806D1 DE60100806D1 (de) 2003-10-23
DE60100806T2 true DE60100806T2 (de) 2004-07-15

Family

ID=9889598

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60100806T Expired - Fee Related DE60100806T2 (de) 2000-04-10 2001-04-06 Abbildung von volumendaten

Country Status (8)

Country Link
US (1) US7109989B2 (de)
EP (1) EP1272978B1 (de)
JP (1) JP2003530176A (de)
AT (1) ATE250255T1 (de)
AU (1) AU2001244416A1 (de)
DE (1) DE60100806T2 (de)
GB (1) GB2361396B (de)
WO (1) WO2001078013A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7758508B1 (en) * 2002-11-15 2010-07-20 Koninklijke Philips Electronics, N.V. Ultrasound-imaging systems and methods for a user-guided three-dimensional volume-scan sequence
GB0329534D0 (en) * 2003-12-20 2004-01-28 Ibm Method for determining the bounding voxelisation of a 3d polygon
US20060058651A1 (en) * 2004-08-13 2006-03-16 Chiao Richard Y Method and apparatus for extending an ultrasound image field of view
JP2008515517A (ja) * 2004-10-08 2008-05-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像の左右反転および上下倒立のある三次元診断超音波撮像システム
JP4795672B2 (ja) * 2004-11-16 2011-10-19 株式会社東芝 超音波診断装置
KR101249988B1 (ko) * 2006-01-27 2013-04-01 삼성전자주식회사 사용자의 위치에 따른 영상을 디스플레이하는 장치 및 방법
US8571287B2 (en) * 2006-06-26 2013-10-29 General Electric Company System and method for iterative image reconstruction
US8217937B2 (en) * 2007-03-28 2012-07-10 The Aerospace Corporation Isosurfacial three-dimensional imaging system and method
IL184972A0 (en) * 2007-08-01 2008-11-03 Camero Tech Ltd System and method for volume visualization in through-the-obstacle imaging system
JP5383014B2 (ja) * 2007-08-30 2014-01-08 キヤノン株式会社 放射線画像処理装置及び方法
JP5637653B2 (ja) * 2008-08-18 2014-12-10 株式会社東芝 医用画像処理装置、超音波診断装置、及び医用画像処理プログラム
US8199994B2 (en) * 2009-03-13 2012-06-12 International Business Machines Corporation Automatic analysis of cardiac M-mode views
US20110019791A1 (en) * 2009-07-24 2011-01-27 The Research Foundation Of State University Of New York Selection of optimal views for computed tomography reconstruction
US8564617B2 (en) * 2010-01-12 2013-10-22 International Business Machines Corporation Accelerated volume rendering
CN103188998B (zh) * 2010-11-12 2015-03-04 株式会社日立医疗器械 医用图像显示装置以及医用图像显示方法
US20120144306A1 (en) * 2010-12-02 2012-06-07 Michael James Moody Method and system for interacting or collaborating with exploration
DE102011086771A1 (de) * 2011-11-22 2013-05-23 Siemens Aktiengesellschaft Computertomographieanlage und Verfahren zum Ermitteln von Volumeninformationen zu einem Körper
JP5981281B2 (ja) * 2012-09-12 2016-08-31 東芝メディカルシステムズ株式会社 超音波診断装置、画像処理装置及びプログラム
US20180025514A1 (en) * 2015-02-13 2018-01-25 Purdue Research Foundation Tomography system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295488A (en) * 1992-08-05 1994-03-22 General Electric Company Method and apparatus for projecting diagnostic images from volumed diagnostic data
JPH0778266A (ja) * 1993-06-25 1995-03-20 Sony Corp 画像処理装置
US5544283A (en) * 1993-07-26 1996-08-06 The Research Foundation Of State University Of New York Method and apparatus for real-time volume rendering from an arbitrary viewing direction
US5787889A (en) * 1996-12-18 1998-08-04 University Of Washington Ultrasound imaging with real time 3D image reconstruction and visualization
AU757621B2 (en) * 1998-07-16 2003-02-27 Research Foundation Of The State University Of New York, The Apparatus and method for real-time volume processing and universal 3D rendering
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
US6266733B1 (en) * 1998-11-12 2001-07-24 Terarecon, Inc Two-level mini-block storage system for volume data sets

Also Published As

Publication number Publication date
AU2001244416A1 (en) 2001-10-23
JP2003530176A (ja) 2003-10-14
GB2361396B (en) 2002-04-03
US7109989B2 (en) 2006-09-19
DE60100806D1 (de) 2003-10-23
EP1272978B1 (de) 2003-09-17
US20030156746A1 (en) 2003-08-21
EP1272978A1 (de) 2003-01-08
WO2001078013A1 (en) 2001-10-18
ATE250255T1 (de) 2003-10-15
GB2361396A (en) 2001-10-17
GB0008799D0 (en) 2000-05-31

Similar Documents

Publication Publication Date Title
DE60100806T2 (de) Abbildung von volumendaten
DE3855040T2 (de) Bildverarbeitungsverfahren und -gerät
DE102006043894B3 (de) Detailtiefenstufen-Einstellung mehrdimensionaler Bilddaten mit einem Client/Server-basierten Bildrenderingsystem
DE102005007530B4 (de) Priorisierte Bildvisualisierung aus skalierbaren komprimierten Daten
DE69427210T2 (de) Verfahren und Gerät zur Erzeugung von dreidimensionaler Animation
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69836255T2 (de) Bildanzeige
DE69428323T2 (de) Ein Bildanzeigevorrichtung
DE69821848T2 (de) Echt-Zeit PC basiertes Volumendarstellungssystem
DE102005035012B4 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
DE69428491T2 (de) Bildlinse
DE69029982T2 (de) Verfahren und Geräte zur dreidimensionalen Bilderzeugung
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE3712639A1 (de) Verfahren und einrichtung zum abbilden von volumendaten
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE69916808T2 (de) Verfahren und system zur strahlverfolgung
EP0984397A2 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE102008050449A1 (de) Clipping Geometrien beim Raycasting
DE112004000377T5 (de) Bildsegmentierung in einer dreidimensionalen Umgebung
DE102008050049B4 (de) Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche
DE102005035796B4 (de) System und Verfahren zum Polygon-Glätten beim texturbasierten Volumen-Rendering

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: TOSHIBA MEDICAL VISUALIZATION SYSTEMS EUROPE, , GB

8339 Ceased/non-payment of the annual fee