DE19807053A1 - Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung - Google Patents

Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung

Info

Publication number
DE19807053A1
DE19807053A1 DE19807053A DE19807053A DE19807053A1 DE 19807053 A1 DE19807053 A1 DE 19807053A1 DE 19807053 A DE19807053 A DE 19807053A DE 19807053 A DE19807053 A DE 19807053A DE 19807053 A1 DE19807053 A1 DE 19807053A1
Authority
DE
Germany
Prior art keywords
value
point
component
source space
determining
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.)
Granted
Application number
DE19807053A
Other languages
English (en)
Other versions
DE19807053B4 (de
Inventor
Hasan Shahzad Naqvi
Russell Huonder
Barthold Lichtenbelt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19807053A1 publication Critical patent/DE19807053A1/de
Application granted granted Critical
Publication of DE19807053B4 publication Critical patent/DE19807053B4/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/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

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

Description

Diese Erfindung bezieht sich auf Computersysteme und insbe­ sondere auf eine Graphikanzeige diskreter Objekte in Compu­ tersystemen. Noch spezieller bezieht sich diese Erfindung auf eine Volumenaufbereitung von Volumendatensätzen für eine Graphikanzeige in Computersystemen und ein Strahltransforma­ tionsverfahren für eine schnelle Volumenaufbereitung für ei­ ne perspektivische Betrachtung.
Die Volumenaufbereitung ist ein wichtiger Zweig von Compu­ tergraphiken, der nach der Entwicklung der geometrischen Aufbereitung und der Pixelaufbereitung folgt. Die Volumen­ aufbereitung bezieht sich auf die direkte Aufbereitung eines Volumendatensatzes, um die Charakteristika des Inneren eines körperlichen Objekts zu zeigen, wenn dasselbe auf einer zweidimensionalen Graphikvorrichtung angezeigt wird. Ein Vo­ lumendatensatz ist ein dreidimensionales Array von Voxeln. Voxel wurden als Abtastpunkte, die durch einen finiten Ab­ stand getrennt sind, definiert. Jedes Voxel weist eine Posi­ tion und einen Wert auf. Die Voxelposition ist ein Drei-Tu­ pel, das eine x-, eine y- und z-Position in dem dreidimen­ sionalen Voxelarray spezifiziert. Der Voxelwert hängt von seinem Format ab. Beispielsweise weist ein Voxel ein Inten­ sitätselement auf und kann ein Indexelement aufweisen. Diese Werte werden bei dem Volumenaufbereitungsverfahren üblicher­ weise unterschiedlich behandelt. Die Sammlung von Werten für alle Punkte in dem Volumen wird als ein Skalarfeld auf dem Volumen bezeichnet.
Volumendatensätze können durch zahlreiche Einrichtungen er­ zeugt werden, jedoch am üblichsten durch irgendein Verfahren einer dreidimensionalen Abtastung oder Probennahme und durch eine numerische Modellierung. Beispielsweise kann ein Volu­ mendatensatz durch eine Magnetresonanzbilderzeugung (Magne­ tic Resonance Imaging), oder MRI, erzeugt werden, bei der die Dichte des menschlichen oder tierischen Gewebes an jedem Punkt eines dreidimensionalen Gitters berechnet wird. Eine Anzeige dieser Informationen könnte die Grenzen der ver­ schiedenen Gewebetypen anzeigen, wie dieselben durch Dichte­ änderungen angezeigt sind. Die Volumenaufbereitung ist das Verfahren des Anzeigens dieser Daten auf einer zweidimensio­ nalen Graphikvorrichtung.
Das allererste Voxel in einem Volumendatensatz mit den Ko­ ordinaten (0,0,0) wird als der Ursprung des Volumendatensa­ tzes betrachtet. Die drei Koordinaten entsprechen der Reihe nach der Spalte, der Zeile und dem Schnitt des Bilds in dem Volumendatensatz.
Volumendatensätze können ziemlich groß sein und folglich ei­ ne Belastung auf den Systembetriebsmitteln plazieren. Bei­ spielsweise kann ein typischer Volumendatensatz von einer MRI-Abtasteinrichtung 6,7 Millionen Voxel oder mehr enthal­ ten, wohingegen Polygondatensätze für eine geometrische Auf­ bereitung typischerweise weniger als eine halbe Million Po­ lygone enthalten. Folglich existiert beim Aufbereiten von Volumen ein viel größerer Bedarf nach einer Hardwarebe­ schleunigung.
Bei der Volumenaufbereitung besteht eine häufige Notwendig­ keit darin, in der Lage zu sein, das aufbereitete Bild von verschiedenen orthographischen und perspektivischen Projek­ tionen zu betrachten. Studien haben gezeigt, daß bei einer Betrachtung derartiger aufbereiteter Anzeigen über lange Zeitdauern perspektivische Ansichten für den Betrachter we­ niger anstrengend sind als orthographische Ansichten. Über­ dies geben perspektivische aufbereitete Anzeigen häufig ei­ nen besseren visuellen Hinweis für eine räumliche Wahrneh­ mung als orthographische aufbereitete Anzeigen. Folglich ist ein Schlüsselschritt bei dem Volumenaufbereitungsverfahren die dreidimensionale räumliche Volumentransformation des ur­ sprünglichen Volumendatensatzes für eine orthographische oder perspektivische Aufbereitung. Typische Transformations­ typen, die sowohl für eine orthographische als auch eine perspektivische Aufbereitung erforderlich sind, können ein Zoomen, ein Schwenken, eine Drehung und einen geraden Schnitt des Eingangsvolumens für eine Projektion in eine Ausgangsrastertyp-Anzeigevorrichtung umfassen. Sobald eine Transformation durchgeführt wurde, müssen verschiedene Um­ tasttechniken angewendet werden, beispielsweise eine Inter­ polation des nächstliegenden Nachbarn oder eine trilineare Interpolation, um Pixelwerte für die Aufbereitung zu bestim­ men.
Typischerweise wird eine perspektivische Ansicht eines Vo­ lumendatensatzes realisiert, indem Objekte, die weiter von dem Betrachter entfernt sind, kleiner dargestellt werden, als Objekte, die näher zu dem Betrachter sind. Geometrische Objekte werden perspektivisch aufbereitet, indem x-, y- und z-Orte der Scheitelpunkte des geometrischen Objekts durch w, oder homogene Koordinate, geteilt werden, nachdem eine Mo­ dell- und Betrachtungs-Transformation durchgeführt wurde. Überdies moduliert die homogene Koordinate w den Grad der perspektivischen Verzerrung.
Geometrische Objekte und Volumenvoxel können durch die fol­ genden Schritte transformiert und in einer perspektivischen Ansicht dargestellt werden. Zunächst wird ein Quellenraum­ scheitelpunkt mit den Koordinaten (x, y, z) in homogene Ko­ ordinaten umgewandelt, um die nachfolgend gezeigte Matrix­ multiplikation zu ermöglichen:
Eine orthographische Modellbetrachtungsmatrix wird mit einer perspektivischen Matrix multipliziert, um wie nachfolgend gezeigt ist, eine kombinierte Matrix zu erhalten:
In der perspektivischen Matrix gilt: aP = (2.zNa­ he)/(rechts-links), fP = (2.zNahe)/(oben-unten), iP = (rechts+links) / (rechts-links), jP = (oben+unten)/(oben-un­ ten), kP = (zFern+zNahe)/(zFern-zNahe), und oP = (2.zFern.zNahe)/(zFern-zNahe). (links, unten, -zNahe) und (rechts, oben, -zNahe) spezifizieren Punkte auf der nahen Schnittebene, die auf die untere linke und die obere rechte Ecke des Fensters abgebildet werden, unter der Annahme, daß sich der Blickpunkt des Betrachters bei (0,0,0) befindet. Der ferne Schnittebenenort ist durch das Zeichen zFern spe­ zifiziert. Sowohl zNahe als auch zFern müssen positiv sein.
Um den Quellenraumscheitelpunkt von dem Quellenraum in den Bestimmungsraum zu transformieren, wird der Quellenraum­ scheitelpunkt in Matrixform mit der kombinierten Matrix mul­ tipliziert, um wie unten gezeigt den Bestimmungsraumschei­ telpunkt zu ergeben:
Durch das Durchführen der Matrixmultiplikation werden die Werte für x', y', z' und w' des Scheitelpunkts im Bestim­ mungsraum wie nachfolgend gezeigt hergeleitet:
x' = (a.x) + (e.y) + (i.z) + m
y' = (b.x) + (f.y) + (j + z) + n
z' = (c.x) + (g.y) + (k.z) + o
w' = (d.x) + (h.y) + (l.z) + p.
Als nächstes wird der Scheitelpunkt (x', y', z', w') in dem Bestimmungsraum durch die homogene Koordinate 'w' dividiert, um die perspektivische Verzerrung zu modellieren, wie nach­ folgend gezeigt ist:
x' = x'/w'
y' = y'/w'
z' = z'/w'
w' = w'/w' = 1.
Die x'- und die y'-Koordinaten können nun, wenn es erwünscht ist, für eine abschließende Aufbereitung weiter eingestellt werden und zu dem Rahmenpuffer gesendet werden.
Zwei Abbildungslösungsansätze wurden für derartige Transfor­ mationen verwendet. Ein Vorwärtsabbildungslösungsansatz, der in der obigen Beschreibung verwendet wurde, verwendet den Quellenraumscheitelpunkt und transformiert denselben über eine Transformationsmatrix, um in den Bestimmungsraum zu passen. Bei einer Rückwärtsabbildung, oder einem inversen Transformationslösungsansatz, wird jeder Bestimmungsraum­ scheitelpunkt über ein inverse Transformationsmatrix trans­ formiert und aus dem Quellenraum umgetastet. Die Vorwärtsab­ bildung unterliegt dem Risiko des Belassens von "Löchern" bei der Aufbereitung, da der Quellenraum manchmal kleiner ist als der Bestimmungsraum. Die inverse Transformation stützt sich selbst auf die Technik des "Strahlwerfens" oder einem Fortschreiten in der z-Richtung, was das "Löcher"-Pro­ blem beseitigt, da die Abtastpunkte von dem größeren Bestim­ mungsraum zurück in den kleineren Quellenraum verwendet wer­ den.
Das geometrische perspektivische Verfahren des Aufbereitens von Volumendatensätzen in einer perspektivischen Ansicht ist sehr rechenintensiv und am schwierigsten durchzuführen. Auf­ grund der typischerweise großen Größe von Volumendatensätzen sind dreidimensionale räumliche Transformationen und per­ spektivische Aufbereitungen ziemlich beanspruchend für die Systembetriebsmittel. Eine Optimierung des Verfahrens ist folglich ein anhaltender und herausfordernder Bedarf in der Technik. Sowohl Hardware als auch Software-orientierte Opti­ mierungslösungen sind vorteilhaft. Gegenwärtige Verfahren einer dreidimensionalen räumlichen Transformation und einer perspektivischen Aufbereitung, die Gleitkommazahlen verwen­ den, sind ziemlich aufwendig, speziell wenn Divisionen und häufige Multiplikationen enthalten sind. Wiederholte Berech­ nungen für jeden Abtastpunkt sind hinsichtlich der Aufberei­ tungszeit sehr aufwendig.
Eine dreidimensionale Texturabbildungstechnik unterstützt eine begrenzte Form einer Volumenaufbereitung, die modifi­ ziert werden kann, um perspektivische Ansichten zu ergeben. Jeder aufeinanderfolgende einer Texturabbildung unterzogene Schnitt des Volumens kann durch eine zweidimensionale Ska­ lierungs- oder Zoom-Operation eingestellt werden, um die Größe des Objekts während eines Fortschreitens in der z- Richtung zu reduzieren, um eine Perspektive zu erhalten. Je­ doch ist dieser Lösungsansatz nicht sehr genau.
Es besteht somit in der Technik ein Bedarf nach einem Ver­ fahren für eine dreidimensionale räumliche Transformation und eine Volumenaufbereitung für eine perspektivische An­ sicht, die die Nachteile der klassischen geometrischen per­ spektivischen und dreidimensionalen Texturabbildungsverfah­ ren überwindet, indem ein Strahltransformationslösungsansatz verwendet wird, der bezüglich der Qualität oder Genauigkeit weniger Kompromisse macht. Es existiert ein Bedarf nach ei­ nem Volumenaufbereitungsverfahren für eine perspektivische Ansicht, das die Anzahl von Gleitkommaberechnungen redu­ ziert, die erforderlich sind, um eine perspektivische An­ sicht aufzubereiten, speziell von Divisionen und Multiplika­ tionen. Ferner existiert in der Technik ein Bedarf danach, schnellere Ganzzahlberechnungen zu verwenden, beispielsweise Additionen und Subtraktionen, sowie andere einfachere CPU- Befehle, beispielsweise Verschiebungen und Maskierungen. Es existiert ein weiterer Bedarf in der Technik danach, wieder­ holte Berechnungen aus dem Verfahren zu beseitigen. Überdies existiert ein Bedarf in der Technik, sowohl Hardware- als auch Software-Optimierungstechniken zu verwenden. Ein weite­ rer Bedarf existiert in der Technik danach, einen inversen Transformationslösungsansatz für eine Volumenaufbereitung für eine perspektivische Ansicht zu verwenden, um "Löcher" in dem aufbereiteten Bild zu beseitigen. Es ist daher offen­ sichtlich, daß ein Bedarf nach einem verbesserten Verfahren für eine schnelle Volumenaufbereitung für eine perspektivi­ sche Ansicht besteht, das diese und weitere Bedürfnisse in der Technik erfüllt.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zur Volumenaufbereitung für eine perspektivische Ansicht zu schaffen, das eine schnelle und exakte Volumen­ aufbereitung ermöglicht.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 ge­ löst.
Ein Vorteil der vorliegenden Erfindung besteht darin, einen Strahltransformationslösungsansatz für eine dreidimensionale räumliche Transformation und eine Volumenaufbereitung für eine perspektivische Ansicht zu verwenden.
Ein weiterer Vorteil der Erfindung besteht darin, die Anzahl von Gleitkommaberechnungen zu reduzieren, die erforderlich sind, um eine perspektivische Ansicht aufzubereiten, indem ein 32-Bit-Festkommaformat mit 16 Bits eines Skalarteils und 16 Bits eines Bruchteils, das als 16,16-Format bezeichnet wird, und kein Gleitkommaformat, zum Codieren von Werten von einer kombinierten inversen Matrix und Bestimmungsbildpunk­ ten für eine dreidimensionale räumliche Transformation und eine Volumenaufbereitung für eine perspektivische Ansicht verwendet wird.
Noch ein weiterer Vorteil der Erfindung besteht darin, den nächsten Abtastpunkt entlang einer Strahltransformierten durch das Umwandeln der z-Vektor-Werte i, j und k in dem 16,16-Format in ganze Zahlen zu erhalten, und durch das Durchführen von ganzzahligen Additionen in der z-Richtung fortzuschreiten.
Noch ein weiterer Vorteil der Erfindung besteht darin, die Anfangsnachbarschaftsorte in dem Quellenraum zu bestimmen, indem die transformierten Matrixwerte für (x', y', z') um 16 Bit nach unten verschoben werden, was den ganzzahligen Wert in dem Quellenraum ergibt, der die Anfangsnachbarschaftsorte darstellt.
Ein weiterer Vorteil der Erfindung besteht darin, eine Mas­ kierungsoperation auf einem transformierten Matrixwert in dem 16,16-Format zu verwenden, um die 16-Bit-Bruchteilkom­ ponente als einen Index auf eine vorberechnete Nachschlagta­ belle, die den Bruchteil-Gleitkommawert enthält, zu verwen­ den.
Noch ein weiterer Vorteil der Erfindung besteht darin, die größeren Cache-Speicher in heutigen CPUs auszunutzen, um Aufruf e in Nachschlagtabellen zu verarbeiten und das Verhal­ ten zu optimieren.
Ein weiterer Vorteil der Erfindung besteht darin, in der La­ ge zu sein, sowohl Integer- als auch Gleitkomma-Pipelines, die in heutigen CPUs verfügbar sind, durch die Ausnutzung eines mannigfaltigen Lösungsansatzes für die dreidimensiona­ le räumliche Transformation und die Aufbereitung für eine perspektivische Ansicht auszunutzen.
Die obigen und weitere Vorteile der Erfindung werden bei ei­ nem Strahltransformationsverfahren für eine dreidimensionale räumliche Transformation und eine Volumenaufbereitung für eine perspektivische Ansicht erreicht. Das Verfahren verwen­ det die Rückwärtsabbildung, oder den inversen Transforma­ tionslösungsansatz, gekoppelt mit einem Werfen von Strahlen. Für die gewünschte perspektivische Ansicht konvergieren Strahlen an dem Projektionsmittelpunkt, oder dem Blickpunkt, von der Projektionsebene. Jeder Strahl wird unabhängig ad­ ressiert, wobei derselbe seine eigene eindeutige Transfor­ mationsmatrix aufweist, die als Strahltransformierte be­ zeichnet wird. Jede eindeutige Strahltransformierte wird mit einer Matrix für eine orthographische Modellansicht kombi­ niert, um eine schnelle orthographische Strahlfortschrei­ tungsvorschrift für die perspektivische Volumenaufbereitung zu erzeugen.
Zuerst wird ein Anfangsbestimmungsraumvoxel-Abtastpunkt be­ stimmt. Als nächstes wird die Inverse einer Matrix für eine orthographische Modellansicht mit der Matrix der eindeutigen Strahltransformierten, die dem Pixelort des Anfangsbestim­ mungsraumvoxel-Abtastpunkts (X, Y) zugeordnet ist, kombi­ niert, um eine kombinierte inverse Matrix zu erhalten. Als nächstes wird der Abtastpunkt von dem Bestimmungsraum in den Quellenraum transformiert, indem die Bestimmungsraumvoxel- Abtastpunktmatrix mit der kombinierten inversen Matrix mul­ tipliziert wird.
Die transformierten Abtastpunktwerte, die sich aus dieser Matrixmultiplikation ergeben, werden in einem 32-Bit-Fest­ kommaformat codiert, das aus 16 Bit eines Skalarteils und 16 Bit eines Bruchteils bestehen, was als 16,16-Format bezeich­ net wird. Fachleute werden erkennen, daß auch ein 48-Bit- Festkommaformat mit 24 Bits eines Skalarteils und 24 Bits eines Bruchteils, oder ein 64-Bit-Festkommaformat mit 32 Bits eines Skalarteils und 32 Bits eines Bruchteils oder eine gemischte Kombination der obigen, beispielsweise 8/24, verwendet werden könnten. Das 16,16-Format ist nachfolgend dargestellt:
Beispielsweise würde die Zahl 8,9 wie folgt codiert und ge­ speichert werden. 8,9 wird mit 65.536 multipliziert, abzüg­ lich eines beliebigen Bruchteils, und wird in dem 32-Bit-Re­ gister gespeichert. Bei diesem Beispiel würde der Abschnitt ",9" als 0,9×65.536 = 58.982 codiert werden und würde in dem tieferen Bruchteilabschnitt der ganzzahligen Zahl er­ scheinen. Fachleute werden erkennen, daß dieses Strahltrans­ formationsverfahren nicht die Verwendung des 16,16-Formats, um Werte zu codieren, erfordert. Das Stahltransformations­ verfahren wird mit der Verwendung einer herkömmlichen Ein­ richtung funktionieren. Das 16.16-Format wird bei dem bevor­ zugten Ausführungsbeispiel der Erfindung verwendet.
Für jeden transformierten Abtastpunkt (x', y', z') kann ent­ weder die Umtasttechnik des nächstliegenden Nachbarn oder der trilinearen Interpolation ausgewählt werden, um Pixel­ werte für die Aufbereitung festzulegen. Bei jeder Technik besteht der erste Schritt darin, den Anfangsnachbarschafts- Voxelpunkt, der durch (i, j, k) dargestellt ist, zu bestim­ men. Dies wird durch eine Verschiebungsoperation auf den transformierten x'-, y'- und z'-Abtastpunktwerten von der kombinierten Matrix und der Anfangspunktberechnung erreicht. Die transformierten x'-, y'- und z'-Abtastpunktwerte werden 16 Bit nach rechts verschoben, was den Bruchteilabschnitt des 16,16-Formats abschneidet. Dies ergibt die ganzzahligen Werte in dem Quellenraum, die den Anfangsnachbarschafts-Vo­ xelpunkt darstellen.
Für die Technik des nächstliegenden Nachbarn besteht eine Möglichkeit, den nächstliegenden Nachbarvoxelpunkt in dem Quellenraum zu bestimmen, darin, den transformierten (x',y',z')-Abtastpunkt in ganzzahlige Werte zu runden. Wenn (8,2; 6,5; 9,6) beispielsweise transformierte Abtastpunkt­ werte für (x', y', z') sind, werden die Werte nach dem Runden zu (8, 7, 10). Jedoch besteht eine effizientere Möglichkeit, das nächstliegende Nachbarvoxel zu bestimmen, darin, 0,5 zu jeder x'-, y'- und z'-Komponente zu addieren und dann die resultierenden x'-, y'- und z'-Werte abzuschneiden. Bei dem obigen Beispiel würde 0,5 zu den ursprünglichen transfor­ mierten Abtastpunktwerten von (x', y', z') addiert werden, was (8,7, 7,0, 10,1) ergibt. Das Abschneiden von jedem die­ ser Werte ergibt wie vorher (8, 7, 10). Der Vorteil dieses Verfahrens besteht darin, daß, statt jeden Abtastpunkt ent­ lang eines Strahls in einer Rundungsoperation auswerten und vergleichen zu müssen, der erste räumliche Ort in einem Strahl um 0,5 versetzt wird. Alle anderen Punkte entlang des Strahls sind relativ zu diesem ersten Punkt, da eine lineare Beziehung existiert. Sobald 0,5 addiert wurde, wird das nächste Nachbarvoxel bestimmt, indem einfach jeder der x'-, y'- und z'-Werte jedes nachfolgenden Abtastpunkts abge­ schnitten wird. Dies stellt eine effizientere Weise dar, um die Bestimmung des nächstliegenden Nachbarn zu handhaben.
Diese Technik wird bei dem bevorzugten Ausführungsbeispiel der Erfindung befolgt, wobei zuerst 0,5 zu jeder transfor­ mierten x'-, y'- und z'-Abtastpunktkomponente addiert wird, bevor der Quellenraum-Voxelpunkt des nächstliegenden Nach­ barn bestimmt wird. Die acht Quellenraumvoxel, die die Nach­ barschaft bilden, die den transformierten (x',y',z')-Abtast­ punkt umgeben, werden ausgewertet, um das Voxel zu erhalten, das nächstliegend zu dem Abtastpunkt ist. Die Werte, die diesem nächstliegenden Nachbarguellenraumvoxel zugeordnet sind, werden verwendet, um den Pixelwert zu bestimmen, der verwendet wird, um den ersten transformierten (x',y',z')-Ab­ tastpunkt entlang eines Strahls aufzubereiten. Durch ein Fortschreiten in der z-Richtung entlang des Strahls wird der nächste Abtastpunkt bestimmt. Dieses Fortschreitungsverfah­ ren wird erreicht, indem zuerst die z-Vektor-Werte i, j und k von der Matrixberechnung der transformierten Abtastpunkte in dem 16,16-Format in ganze Zahlen umgewandelt werden, und nachfolgend diese ganzzahligen Werte zu dem ersten transfor­ mierten (x', y', z')-Abtastpunkt eines Strahls addiert werden. Dieses Verfahren des Addierens von ganzzahligen Werten zu dem gegenwärtigen transformierten Abtastpunkt wird wieder­ holt, um den Rest der aufeinanderfolgenden transformierten Abtastpunkte entlang des Strahls zu erhalten. Danach wird der Anfangsbestimmungsraum-Voxelabtastpunkt des nächsten Strahls wie vorher bestimmt. Auf diese Weise werden alle Strahlen für das Volumen zur Aufbereitung verarbeitet.
Für die trilineare Interpolationstechnik werden die acht Quellenraumvoxel, die die Nachbarschaft, in der der trans­ formierte (x', y', z')-Abtastpunkt enthalten ist, bilden, be­ stimmt. Als nächstes werden Werte für Delta-x, Delta-y und Delta-z, die durch dx, dy und dz dargestellt sind, berech­ net. Diese Deltawerte stellen die Änderung in der x-, der y- und der z-Richtung des transformierten Abtastpunkts in der Nachbarschaft der acht Quellenraumvoxel dar. Diese Werte werden durch das Erhalten der Bruchteilkomponenten des transformierten (x', y', z')-Abtastpunkts durch das Maskieren des tieferen Bruchteilabschnitts der Werte, die in dem 16,16-Format gespeichert sind, und das nachfolgende Zugrei­ fen auf die Bruchteilnachschlagtabelle hergeleitet. Im An­ schluß werden Ankerwerte zur Verwendung bei einer Zeiger­ arithmetik, die das Optimieren des Verfahrens unterstützt, berechnet. Schließlich wird ein trilineares Interpolations­ verfahren angewendet, um die Werte von den acht Nachbar­ schafts-Quellenraumvoxeln, die den transformierten (x', y', z')-Abtastpunkt enthalten, kombiniert, um einen kom­ binierten Wert, der bei der Aufbereitung des ersten trans­ formierten Abtastpunkts entlang eines Strahls verwendet wer­ den soll, zu erhalten. Fortschreitend in der z-Richtung ent­ lang des Strahls wird der nächste transformierte Abtastpunkt entsprechend dem gleichen Verfahren, das oben beschrieben wurde, unter Verwendung von ganzzahligen Additionen und dem Anwenden des trilinearen Interpolationsverfahrens ausgewer­ tet. Dieses Verfahren wird für den Rest der Abtastpunkte entlang des Strahls wiederholt. Danach wird wie vorher der Anfangsbestimmungsraum-Voxelabtastpunkt des nächsten Strahls bestimmt. Die ganzzahligen Additionen werden für den Rest der transformierten Abtastpunkte entlang des zweiten Strahls verwendet, wobei die trilineare Interpolation verwendet wird, um Werte für die Aufbereitung zu erhalten. Auf die gleiche Weise werden alle Strahlen für das Volumen zur Auf­ bereitung verarbeitet.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Computersystems, das ein Volumenaufbereitungssystem, das die vorliegende Er­ findung verkörpert, aufweist;
Fig. 2 ein Blockdiagramm eines Strahltransformationsver­ fahrens für eine schnelle Volumenaufbereitung für eine perspektivische Ansicht gemäß der vorliegenden Erfindung;
Fig. 3 ein Blockdiagramm einer Nachschlagtabelleninitiali­ sierung;
Fig. 4 ein Blockdiagramm der Interpolationstechnik des nächstliegenden Nachbarn;
Fig. 5 ein Blockdiagramm der trilinearen Interpolations­ technik;
Fig. 6 eine zweidimensionale Darstellung eines Volumenda­ tensatzes im Quellenraum;
Fig. 7 eine zweidimensionale Darstellung des Volumendaten­ satzes von Fig. 6 in dem Bestimmungsraum nach der Transformation für eine perspektivische Ansicht;
Fig. 8 eine zweidimensionale Darstellung des Volumendaten­ satzes von Fig. 7 nach der Transformation durch die inverse kombinierte Matrix zurück in den Quellen­ raum; und
Fig. 9 eine dreidimensionale Darstellung der trilinearen Interpolationstechnik zum Bestimmen von Pixelwerten zur Aufbereitung von Abtastpunkten nach einer drei­ dimensionalen räumlichen Transformation.
Fig. 1 zeigt ein Blockdiagramm eines Computersystems, das ein Volumenaufbereitungssystem, das die vorliegende Erfin­ dung verkörpert, enthält. Bezugnehmend nun auf Fig. 1 ent­ hält ein Computersystem 100 ein Verarbeitungselement 102. Das Verarbeitungselement 102 steht über einen Systembus 104 mit anderen Elementen des Computersystems 100 in Verbindung. Eine Tastatur 106 ermöglicht, daß ein Benutzer Informationen in das Computersystem 100 eingibt, während eine Graphikan­ zeige 110 ermöglicht, daß das Computersystem 100 Informatio­ nen zu dem Benutzer ausgibt. Ferner ist eine Maus 108 ver­ wendet, um Informationen einzugeben, während eine Speicher­ vorrichtung 112 verwendet ist, um Daten und Programme in dem Computersystem 100 zu speichern. Ein Speicher 116, der eben­ falls mit dem Systembus 104 verbunden ist, enthält ein Be­ triebssystem 118 und ein Volumenaufbereitungssystem 120 ge­ mäß der vorliegenden Erfindung.
Fig. 2 zeigt ein Blockdiagramm des Strahltransformationsver­ fahrens für eine schnelle Volumenaufbereitung für eine per­ spektivische Ansicht gemäß der vorliegenden Erfindung. Wie nun in Fig. 2 gezeigt ist, ruft nach dem Eintritt ein Block 202 Fig. 3 auf, was die Nachschlagtabellen, die durch die Erfindung verwendet werden, initialisiert. Ein Block 204 initialisiert Werte, die in der Strahltransformationsmatrix der vorliegenden Erfindung verwendet werden, wie nachfolgend gezeigt ist:
Ein Block 206 erhält den ersten Strahl, der ausgewertet wer­ den soll, von einem Anfangsbestimmungsraum-Pixelort (X, Y). Ein Block 208 initialisiert die iR- und jR-Komponente des z-Vektors der Strahltransformationsmatrix für diesen spe­ ziellen 'X'- und 'Y'-Strahl, wobei "Abstand" die nahe Pro­ jektionsebene von dem Projektionsmittelpunkt, oder Blick­ punkt des Betrachters, beschreibt, wie unten gezeigt ist:
iR = X/Abstand
jR = Y/Abstand
Ein Block 210 multipliziert dann die inverse Matrix für die orthographische Modellansicht mit der Strahltransformations­ matrix, um eine kombinierte inverse Matrix zu ergeben, wie unten gezeigt ist:
Ein Block 212 wandelt dann die z-Vektor-Werte von der kom­ binierten inversen Matrix in ganze Zahlen um. Dies wird er­ reicht, indem die drei z-Vektor-Komponenten iC, jC und kC in dem Gleitkommaformat mit 65.536 multipliziert werden, was die Werte in das 16,16-Format umwandelt. Diese Werte werden später verwendet, um durch die Durchführung von ganzzahligen Additionen in der z-Richtung fortzuschreiten.
In einem Block 214 wählt der Benutzer, welche Interpola­ tionstechnik bei der Bestimmung von Pixelwerten verwendet werden soll. Wenn der Benutzer die Technik des nächstliegen­ den Nachbarn auswählt, springt die Steuerung zu einem Block 216, der Fig. 4 aufruft, um die Interpolationstechnik des nächstliegenden Nachbarn durchzuführen. Wenn die Interpola­ tionstechnik, die in dem Block 214 ausgewählt wird, die tri­ lineare Interpolation ist, springt die Steuerung zu einem Block 218, der Fig. 5 aufruft, um die trilineare Interpola­ tionstechnik durchzuführen. Danach wird die Steuerung von entweder Fig. 4 oder 5 zurückgegeben, wobei die Steuerung zu dem Volumenaufbereitungssystem 120 (Fig. 1) zurückkehrt.
Fig. 3 zeigt ein Blockdiagramm einer Nachschlagtabellen-Ini­ tialisierung. Bezugnehmend nun auf Fig. 3 initialisiert ein Block 302 eine Bruchteilnachschlagtabelle, die bei der Be­ rechnung von dx-, dy- und dz-Werten durch das Volumenaufbe­ reitungssystem (Fig. 1) verwendet werden soll. Die Tabelle wird aus dem folgenden Programmiercode in der "C"-Program­ miersprache abgeleitet:
for(i = 0; i < 65536; i++)
fixedPointLUT[i] = (float) i/65536.0;
Beispielsweise würde für i = 1 der Wert, der in der Bruch­ teilnachschlagtabelle gespeichert wird, 1/65.536 = 0,0000 lauten. Für i = 32.768 würde der Wert, der in der Bruchteil­ nachschlagtabelle gespeichert wird, 32.768/65.536 = 0,5000 lauten. Für i = 65.535 würde der Wert, der in der Bruchteil­ nachschlagtabelle gespeichert wird, 65.535/65.536 = 0,9999 lauten.
Ein Block 304 initialisiert eine y-Richtung-Nachschlagtabel­ le, die bei Pixelortberechnungen verwendet werden soll. Die Tabelle wird aus dem folgenden Programmiercode in der "C"- Programmiersprache abgeleitet:
for(i = 0; i < HEIGHT; i++)
yStrideLUT[i] = i.WIDTH;
Wenn ein Volumendatensatz beispielsweise 256 Voxel breit mal 128 Voxel hoch mal 64 Voxel tief war, würde für i = 1 der Wert, der in der y-Nachschlagtabelle gespeichert wird, 1.256 = 256 lauten. Für i = 64 würde der gespeicherte Wert 64.256 = 16.384 lauten. Für i = 127 würde der gespeicherte Wert 127.256 = 32.512 lauten.
Ein Block 306 initialisiert eine z-Richtung-Nachschlagtabel­ le, die bei Pixelortberechnungen verwendet werden soll. Die Tabelle wird aus dem folgenden Programmiercode in der "C"- Programmiersprache hergeleitet:
for(i = 0; i < DEPTH; i++)
zStrideLUT[i] = i.WIDTH.HEIGHT;
Wenn ein Volumendatensatz beispielsweise 256 Voxel breit mal 128 Voxel hoch mal 64 Voxel tief war, würde für i = 1 der Wert, der in der z-Nachschlagtabelle gespeichert wird, 1.256.128 = 32.768 lauten. Für i = 32 würde der gespeicherte Wert 32.256.128 = 1.048.576 lauten. Für i = 65 würde der gespeicherte Wert 65.256.128 = 2.129.920 lauten. Nachdem die Initialisierung abgeschlossen ist, springt die Steuerung von Fig. 3 zu Fig. 2 zurück.
Fig. 4 zeigt ein Blockdiagramm der Interpolationstechnik des nächstliegenden Nachbarn. Wie nun in Fig. 4 gezeigt ist, er­ hält ein Block 402 den ersten Abtastpunkt entlang des ersten Strahls, der in dem Block 206 (Fig. 2) ausgewählt wird. Ein Block 404 verwendet die kombinierte inverse Matrix, die in dem Block 210 (Fig. 2) bestimmt wird, um einen ersten trans­ formierten (x', y', z')-Abtastpunkt eines Strahls in dem Quel­ lenraum aus einem (x, y, z)-Voxelpunkt in dem Bestimmungsraum zu berechnen, indem eine Matrixmultiplikation wie nachfol­ gend gezeigt durchgeführt wird.
0,5 wird zu jeder x'-, y'- und z'-Komponente addiert. Jede Komponente wird ferner durch Multiplizieren mit 65.536 in das 16.16-Format umgewandelt.
In einem Block 406 wird der Anfangsnachbarschaftspunkt (i, j, k) im Quellenraum durch Abschneiden des Bruchteilab­ schnitts der transformierten x'-, y'- und z'-Abtastpunkt­ werte bestimmt. Dies wird erreicht, indem der 16,16-Format- Wert um 16 Bits nach rechts verschoben wird.
Ein Block 408 bestimmt den Wert, der bei der Aufbereitung des transformierten Abtastpunkts verwendet werden soll. Dies wird erreicht, indem für den Wert von j auf die y-Richtung- Nachschlagtabelle und für den Wert von k auf die z-Rich­ tung-Nachschlagtabelle zugegriffen wird, und indem der be­ rechnete Wert von i für die x-Komponente und ein Zeiger auf den Quellenvolumendatensatz entsprechend dem folgenden Pro­ grammiercode in der "C"-Programmiersprache verwendet wird:
result = srcVolume[zStrideLUT[k] + yStrideLUT[j] + i];
"Result" ist der Wert des nächstliegenden Quellenraumvoxels, das bei der Aufbereitung des transformierten Abtastpunkts verwendet wird. Ein Block 410 führt ein Zusammensetzungsver­ fahren bezüglich des Ergebnisses durch, das für diesen transformierten Abtastpunkt erhalten wird, um die Pixelwerte zu bestimmen, die verwendet werden, um den (X, Y)-Pixelort, der diesem Abtastpunkt entspricht, aufzubereiten. Fachleute werden erkennen, daß das Zusammensetzen durchgeführt werden kann, nachdem alle Abtastpunkte auf einem Strahl ausgewertet wurden, im Gegensatz zu dem Zusammensetzen von jedem Abtast­ punkt, während jeder Abtastpunkt verarbeitet wird.
Ein Block 412 bestimmt, ob weitere Abtastpunkte entlang des Strahls existieren, die ausgewertet werden sollen. Wenn dies der Fall ist, erhält ein Block 414 den nächsten Abtastpunkt entlang des Strahls, der ausgewertet werden soll. Ein Fort­ schreiten von Abtastpunkt zu Abtastpunkt entlang des Strahls wird durch einfache ganzzahlige Additionen unter Verwendung der Werte, die in dem Block 212 (Fig. 2) bestimmt werden, und der x'-, y'- und z'-Werte erreicht. Die Steuerung springt dann zu dem Block 406. Die Schritte in den Blöcken 406, 408 und 410 werden nachfolgend wiederholt. Wenn die Antwort in dem Block 412 negativ ist, was anzeigt, daß keine weiteren Abtastpunkte entlang des gegenwärtigen Strahls exi­ stieren, springt die Steuerung zu einem Block 416, der be­ stimmt, ob weitere Strahlen verarbeitet werden sollen. Wenn die Antwort im Block 416 positiv ist, springt die Steuerung zu dem Block 206 in Fig. 2, um den nächsten Strahl zu erhal­ ten. Wenn die Antwort in dem Block 416 negativ ist, was an­ zeigt, daß keine weiteren Strahlen verarbeitet werden sol­ len, springt Fig. 4 zu Fig. 2 zurück.
Fig. 5 zeigt ein Blockdiagramm der trilinearen Interpola­ tionstechnik. Wie nun in Fig. 5 gezeigt ist, erhält ein Block 502 den ersten Abtastpunkt entlang des ersten Strahls, der in dem Block 206 (Fig. 2) ausgewählt wurde. Ein Block 504 verwendet die kombinierte inverse Matrix, die in dem Block 210 (Fig. 2) bestimmt wurde, um den ersten transfor­ mierten (x', y', z')-Abtastpunkt eines Strahls in dem Quel­ lenraum aus einem (x, y, z)-Voxelpunkt in dem Bestimmungsraum zu berechnen, indem die nachfolgend gezeigte Matrixmultipli­ kation durchgeführt wird:
Jede Komponente wird ferner durch Multiplizieren mit 65.536 in das 16,16-Format umgewandelt.
In einem Block 506 wird der Anfangsnachbarschaftspunkt (i,j,k) in dem Quellenraum durch Abschneiden des Bruchteil­ abschnitts der transformierten x'-, y'- und z'-Abtastpunkt­ werte bestimmt. Dies wird erreicht, indem der Wert mit dem 16,16-Format um 16 Bits nach rechts verschoben wird.
Ein Block 508 berechnet die Werte von dx, dy und dz, die Delta-Werte sind, die die Änderung in der x-, der y- und der z-Richtung des transformierten Abtastpunktes in der umgeben­ den Nachbarschaft von acht Quellenraumvoxeln darstellen. Diese Werte werden durch Maskierung des tieferen Bruchteil­ abschnitts des 16,16-Formatwerts mittels einer 'Und'-Opera­ tion und das nachfolgende Zugreifen auf die Bruchteilnach­ schlagtabelle wie folgt berechnet:
dx = fixedPointLUT[x' & Oxffff];
dy = fixedPointLUT[y' & Oxffff];
dz = fixedPointLUT[z' & Oxffff].
Ein Block 510 berechnet Ankerwerte, die auf Daten in dem ursprünglichen Volumendatensatz zeigen. Diese Ankerwerte werden in einer Zeigerarithmetik verwendet, um die Berech­ nungen zu optimieren und ferner eine einfachere Compilierung zu ermöglichen.
Ein Block 512 wendet das Verfahren der trilinearen Interpo­ lation von Fig. 9 an. Werte von den acht Nachbarschafts- Quellenraumvoxeln, die den transformierten (x' ,y' , z') -Ab­ tastpunkt enthalten, werden trilinear interpoliert, um einen kombinierten Quellenwert abzuleiten, der verwendet werden wird, um das (X, Y)-Pixel, das dem transformierten (x', y', z')-Abtastpunkt für den Strahl entspricht, aufzube­ reiten.
Ein Block 514 führt ein Zusammensetzungsverfahren auf dem Ergebnis, das für diesen transformierten Abtastpunkt erhal­ ten wird, durch, um die Pixelwerte zu bestimmen, die ver­ wendet werden, um diesen (X, Y)-Pixelort, der diesem Pixel­ punkt entspricht, aufzubereiten. Fachleute werden erkennen, daß das Zusammensetzen durchgeführt werden kann, nachdem al­ le Abtastpunkte auf einem Strahl ausgewertet wurden, im Ge­ gensatz zu dem Zusammensetzen von jedem Abtastpunkt, während jeder Abtastpunkt verarbeitet wird.
Ein Block 516 bestimmt, ob weitere Abtastpunkte entlang des Strahls, der ausgewertet werden soll, existieren. Wenn dies der Fall ist, erhält ein Block 518 den nächsten Abtastpunkt entlang des Strahls, der ausgewertet werden soll. Ein Fort­ schreiten von Abtastpunkt zu Abtastpunkt entlang des Strahls wird durch einfache ganzzahlige Additionen unter Verwendung der Werte, die in dem Block 212 (Fig. 2) bestimmt wurden, und den Werten x', y' und z' erreicht. Die Steuerung springt dann zu einem Block 506. Die Schritte in den Blöcken 506, 508, 510, 512 und 514 werden dann wiederholt. Wenn die Ant­ wort in dem Block 516 negativ ist, was anzeigt, daß keine weiteren Abtastpunkte entlang des gegenwärtigen Strahls exi­ stieren, springt die Steuerung zu einem Block 520, der be­ stimmt, ob weitere Strahlen, die verarbeitet werden sollen, existieren. Wenn die Antwort in dem Block 520 positiv ist, kehrt die Steuerung zu dem Block 206 in Fig. 2 zurück um den nächsten Strahl zu erhalten. Wenn die Antwort in dem Block 520 negativ ist, was anzeigt, daß keine weiteren Strahlen, die verarbeitet werden sollen, existieren, springt die Steuerung von Fig. 5 zu Fig. 2 zurück.
Fig. 6 zeigt eine zweidimensionale Darstellung eines Volu­ mendatensatzes in dem Quellenraum. Wie nun in Fig. 6 gezeigt ist, wird eine vereinfachte zweidimensionale Darstellung ei­ nes Volumendatensatzes in dem Quellenraum verwendet, um die Transformationsbeziehung für die kombinierte inverse Matrix zwischen Voxeln und Abtastpunkten darzustellen. Das Bezugs­ zeichen 602 stellt die i-, die j- und die k-Richtung in dem Quellenraum dar, wobei sich die j-Richtung senkrecht aus der Papierebene erstreckt. Der Volumendatensatz 604 in dem Quel­ lenraum weist Voxel auf, die sich an den Schnittpunkten der Gitterlinien befinden. Ein Voxel 606 ist veranschaulichend für alle Voxel in dem Volumendatensatz 604.
Fig. 7 zeigt eine zweidimensionale Darstellung des Volumen­ datensatzes von Fig. 6 in dem Bestimmungsraum, oder Betrach­ tungsraum, nach der Transformation für eine perspektivische Aufbereitung. Bezugnehmend nun auf Fig. 7 wurde ein Operator der kombinierten Matrix auf den Volumendatensatz 604 (Fig. 6) angewendet, was eine Änderung der Ausrichtung, die für den Volumendatensatz 604 in dem Bestimmungsraum, oder Be­ trachtungsraum, gezeigt ist, für eine perspektivische Aufbe­ reitung zur Folge hat. Das Bezugszeichen 702 stellt die x-, die y- und die z-Richtung in dem Bestimmungsraum, oder Be­ trachtungsraum, dar, wobei sich die y-Richtung senkrecht aus der Papierebene erstreckt. Als ein Ergebnis des Operators der kombinierten Matrix wird für die perspektivische An­ sicht, die durch den Benutzer erwünscht ist, ein Projek­ tionsmittelpunkt 704 festgelegt. Ein Betrachtungsvektor 708 ist veranschaulichend für viele Betrachtungsvektoren, die von dem Projektionsmittelpunkt 704 ausgehen.
Fig. 8 zeigt eine zweidimensionale Darstellung des Volumen­ datensatzes von Fig. 7 zurück in dem Quellenraum nach der Transformation durch die kombinierte inverse Matrix. Wie nun in Fig. 8 gezeigt ist, wurde ein Operator der kombinierten inversen Matrix auf den Volumendatensatz 604 angewendet. Das Bezugszeichen 602 stellt die i-, die j- und die k-Richtung in dem Quellenraum dar, wobei sich die k-Richtung senkrecht aus der Papierebene erstreckt. Eine Bildebene 710 (Fig. 7) wurde ebenfalls in den Quellenraum gebracht, wobei die Be­ ziehung, die dieselbe in dem Bestimmungsraum, oder Betrach­ tungsraum, mit dem Volumendatensatz 604 hatte, bewahrt wird. Strahlen werden von dem Projektionsmittelpunkt 704 durch Pixelorte entlang der Bildebene 710 geworfen. Ein Pixel 812 und ein Strahl 814 sind veranschaulichend für die Pixel ent­ lang der Bildebene 710 und die Strahlen, die von denselben geworfen sind, die von dem Projektionsmittelpunkt 704 ausge­ hen.
Entlang des Strahls 814 sind Abtastpunkte 816, 818, 820 und 822 angeordnet, die in den Volumendatensatz 604 fallen. Eine Interpolationstechnik einer bestimmten Art muß angewendet werden, um Werte für die Abtastpunkte 816, 818, 820 und 822 aus den Nachbarschaftsvoxeln, die jeden Abtastpunkt umgeben, abzuleiten. Die Interpolation des nächstliegenden Nachbarn und die trilineare Interpolation sind zwei derartige Techni­ ken, die für dreidimensionale räumliche Transformationen verwendet werden. Abtastpunkte entlang weiterer Strahlen werden in gleicher Weise verarbeitet. Fachleute werden er­ kennen, daß die Grundsätze, die in den Fig. 6 bis 8 bei ei­ ner zweidimensionalen Darstellung gezeigt sind, ebenso in drei Dimensionen gelten.
Fig. 9 zeigt eine dreidimensionale Darstellung der trili­ nearen Interpolationstechnik zum Bestimmen von Pixelwerten zum Aufbereiten von Abtastpunkten nach einer dreidimensio­ nalen räumlichen Transformation. Wie nun in Fig. 9 gezeigt ist, stellt ein Bezugszeichen 932 die i-, die j- und die k-Richtung im Quellenraum dar. Ein Transformationsabtast­ punkt 918 ist ein (x', y', z')-Abtastpunkt in dem Quellenraum. 902, 904, 906, 908, 910, 912, 914 und 916 stellen acht Voxel in dem Quellenraum dar, die einen transformierten (x', y', z')-Abtastpunkt 918 enthalten. Der Abstand dx 934 wird durch Maskieren des tieferen Bruchteilabschnitts des Werts x' mit dem 16,16-Format und ein Zugreifen auf die Bruchteilnachschlagtabelle 302 (Fig. 3) bestimmt. Der Abstand dy 936 wird durch Maskieren des tieferen Bruchteil­ abschnitts des Werts y' mit dem 16,16-Format und ein Zugrei­ fen auf die Bruchteilnachschlagtabelle 302 (Fig. 3) be­ stimmt. Der Abstand dz 938 wird durch Maskieren des tieferen Bruchteilabschnitts des Werts z' mit dem 16,16-Format und ein Zugreifen auf die Bruchteilnachschlagtabelle 302 (Fig. 3) bestimmt.
Die Interpolation beginnt durch das Auswerten eines ersten Schnitts, der durch die Ebene definiert ist, die die Punkte 902, 904, 906 und 908 enthält. Der Wert des Punkts 920 wird interpoliert, indem die Differenz zwischen den Voxeln 904 und 902 gebildet wird, mit dem Wert des Abstands dx 934 mul­ tipliziert wird, und indem nachfolgend dieses Produkt zu dem Wert des Voxels 902 addiert wird, was durch die folgende Gleichung dargestellt ist, wobei P920, P904, usw., den Wert jedes Punkts an diesem Ort darstellen:
P920 = ((P904 - P902).dx) + P902.
In gleicher Weise wird der Wert des Punkts 922 durch das Bilden der Differenz zwischen dem Voxel 906 und 908, das Multiplizieren mit dem Wert des Abstands dx 934 und das nachfolgende Addieren dieses Produkts zu dem Wert des Voxels 908 bestimmt.
In gleicher Weise wird der Wert des Punkts 924 durch das Bilden der Differenz zwischen den Punkten 922 und 920, das Multiplizieren mit dem Wert des Abstands dy 936 und das nachfolgende Addieren dieses Produkts zu dem Wert des Punkts 920 bestimmt.
Die gleiche, oben angegebene Prozedur wird für den nächsten Schnitt verfolgt, der durch die Ebene definiert ist, die die Voxel 910, 912, 914 und 916 enthält. Die Werte der Punkte 926, 928 und 930 werden auf die gleiche Weise bestimmt, wie oben die Punkte 920, 922 und 924 bestimmt wurden.
Der schließliche Wert, der verwendet wird, um das Pixel, das dem transformierten Abtastpunkt 918 entspricht, aufzuberei­ ten, wird bestimmt, indem die Differenz zwischen den Punkten 930 und 924 gebildet wird, mit dem Wert des Abstands dz 938 multipliziert wird, und nachfolgend dieses Produkt zu dem Wert des Punkts 924 addiert wird. Dieses Verfahren wird für jeden Abtastpunkt entlang eines Strahls und für alle Strah­ len in dem Volumen, das aufbereitet werden soll, wiederholt.

Claims (10)

1. Strahltransformationsverfahren für eine schnelle Volu­ menaufbereitung für eine perspektivische Ansicht eines Volumendatensatzes (604) zur aufbereiteten Darstellung des Volumendatensatzes auf einer zweidimensionalen Gra­ phikanzeige (110) eines Computersystems (100) mit fol­ genden Schritten:
  • a) Ausdrücken eines Anfangsbestimmungsraumvoxels ei­ nes Strahls (814) in homogenen Koordinaten mit ei­ nem x-Wert, einem y-Wert, einem z-Wert und einem w-Wert;
  • b) Bestimmen eines Abstandswerts für eine Projek­ tionsebene für eine gewünschte perspektivische An­ sicht;
  • c) Erzeugen einer Strahltransformationsmatrix, die einem Pixelort zugeordnet ist, wobei der Pixelort eine X-Komponente und eine Y-Komponente aufweist, sowie den x-Wert und den y-Wert des Anfangsbestim­ mungsraumvoxels des Strahls (814), das in homoge­ nen Koordinaten ausgedrückt ist, wobei die Strahl­ transformationsmatrix ferner einen z-Vektor auf­ weist, wobei der z-Vektor eine iR-Komponente und eine jR-Komponente aufweist;
  • d) Initialisieren (204) aller Werte für die Strahl­ transformationsmatrix mit Ausnahme der iR-Kompo­ nente und der jR-Komponente;
  • e) Initialisieren (208) der iR-Komponente und der jR-Komponente des z-Vektors der Strahltransforma­ tionsmatrix durch Dividieren der X-Komponente des Pixelorts durch den Abstandswert für die iR-Kom­ ponente und Dividieren der Y-Komponente des Pixel­ werts durch den Abstandswert für die jR-Komponen­ te;
  • f) Erzeugen einer inversen Matrix für eine orthogra­ phische Modellansicht, wobei die inverse Matrix für eine orthographische Modellansicht homogene Koordinaten aufweist;
  • g) Multiplizieren (210) der inversen Matrix für eine orthographische Modellansicht mit der Strahltrans­ formationsmatrix, was eine kombinierte inverse Ma­ trix ergibt;
  • h) Multiplizieren (404, 504) des Anfangsbestimmungs­ raumvoxels, das in homogenen Koordinaten ausge­ drückt ist, mit der kombinierten inversen Matrix, was einen inversen transformierten Abtastpunkt (918) ergibt, wobei der inverse transformierte Ab­ tastpunkt einen x'-Koordinatenwert, einen y'-Koor­ dinatenwert und einen z'-Koordinatenwert aufweist;
  • i) Addieren (404) von 0,5 sowohl zu dem x'-Koordina­ tenwert, dem y'-Koordinatenwert als auch dem z'- Koordinatenwert des inversen transformierten Ab­ tastpunkts (918);
  • j) Bestimmen (406) eines Anfangsnachbarschaftspunkts;
  • k) Bestimmen einer Nachbarschaft von acht Quellen­ raumvoxeln, die den Anfangsnachbarschaftspunkt um­ geben;
  • l) Bestimmen eines nächstliegenden Nachbarschafts- Quellenraumvoxels aus der Nachbarschaft der acht Quellenraumvoxel relativ zu dem Anfangsnachbar­ schaftspunkt, wobei das nächstliegende Nachbar­ schafts-Quellenraumvoxel einen Quellenraumwert aufweist; und
  • m) Zuweisen (408) des Quellenraumwerts des nächstlie­ genden Nachbar-Quellenraumvoxels zu dem inversen transformierten Abtastpunkt (918), wobei der Quel­ lenraumwert bei dem weiteren Aufbereitungsverfah­ ren für den inversen transformierten Abtastpunkt verwendet wird.
2. Verfahren gemäß Anspruch 1, bei dem die Schritte (i) bis (m) durch folgende Schritte (i) bis (n) ersetzt sind:
  • i) Bestimmen (506) eines Anfangsnachbarschaftspunkts;
  • j) Bestimmen einer Nachbarschaft von acht Quellen­ raumvoxeln, die den Anfangsnachbarschaftspunkt um­ geben, wobei jedes der Nachbarschaft von acht Quellenraumvoxeln einen Quellenraumwert aufweist;
  • k) Bestimmen (508) eines Delta-x-Werts;
  • l) Bestimmen (508) eines Delta-y-Werts;
  • m) Bestimmen (508) eines Delta-z-Werts; und
  • n) Bestimmen (512) eines kombinierten Quellenraum­ werts für den inversen transformierten Abtastpunkt (918) durch eine trilineare Interpolation der Quellenraumwerte der Nachbarschaft von acht Quel­ lenraumvoxeln, dem Delta-x-Wert, dem Delta-y-Wert und dem Delta-z-Wert, wobei der kombinierte Quel­ lenraumwert für den inversen transformierten Ab­ tastpunkt bei dem weiteren Aufbereitungsverfahren für den inversen transformierten Abtastpunkt ver­ wendet wird.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem der Schritt zum Bestimmen eines Anfangsnachbarschaftspunkts ferner folgende Schritte aufweist:
Codieren des x'-Koordinatenwerts, des y'-Koordinaten­ werts und des z'-Koordinatenwerts des inversen trans­ formierten Abtastpunkts (918) in ein Festkommaformat, wobei das Festkommaformat einen Skalarabschnitt mit einer ersten vorbestimmten Anzahl von Bits und einen Bruchteilabschnitt mit einer zweiten vorbestimmten An­ zahl von Bits aufweist; und
Verschieben (406, 506) sowohl des x'-Koordinatenwerts, des y'-Koordinatenwerts als auch des z'-Koordinaten­ werts des inversen transformierten Abtastpunkts (918) um die vorbestimmte Anzahl von Bits nach rechts, was den Anfangsnachbarschaftspunkt ergibt, wobei der An­ fangsnachbarschaftspunkt eine ganzzahlige Komponente i, eine ganzzahlige Komponente j und eine ganzzahlige Kom­ ponente k aufweist.
4. Verfahren gemäß Anspruch 3, bei dem die erste vorbe­ stimmte Anzahl von Bits und die zweite vorbestimmte An­ zahl von Bits sechzehn ist.
5. Verfahren gemäß Anspruch 1, das ferner folgenden Schritt (a1), der vor dem Schritt (a) durchgeführt wird, und folgenden Schritt (m1), der nach dem Schritt (m) durchgeführt wird, aufweist:
  • a1) Erzeugen (202) einer y-Richtung-Nachschlagtabelle und einer z-Richtung-Nachschlagtabelle; und
  • m1) Zusammensetzen (410) des Quellenraumwerts, der dem inversen transformierten Abtastpunkt (918) zuge­ ordnet ist.
6. Verfahren gemäß Anspruch 5, bei dem der Schritt (1) ferner folgenden Schritt (l1) aufweist:
  • l1) Bestimmen des nächstliegenden Nachbarquellenraum­ voxels durch Zugreifen auf die y-Richtung-Nach­ schlagtabelle und die z-Richtung-Nachschlagtabel­ le.
7. Verfahren gemäß Anspruch 2, das ferner folgenden Schritt (a1), der nach dem Schritt (a) durchgeführt wird, und folgenden Schritt (n1), der nach dem Schritt (n) durchgeführt wird, aufweist:
  • a1) Erzeugen (202) einer Bruchteilnachschlagtabelle, einer y-Richtung-Nachschlagtabelle und einer z- Richtung-Nachschlagtabelle; und
  • n1) Zusammensetzen (514) des kombinierten Quellenraum­ werts für den invertierten transformierten Abtast­ punkt (918).
8. Verfahren gemäß Anspruch 7, bei dem die Schritte (k), (l), (m) und (n) ferner folgende Schritte (k1), (l1), (m1) und (n1) aufweisen:
  • k1) Bestimmen (508) des Delta-x-Werts durch Maskieren des x'-Koordinatenwerts des inversen transformier­ ten Abtastpunkts (918) und durch Zugreifen auf die Bruchteilnachschlagtabelle;
  • l1) Bestimmen (508) des Delta-y-Werts durch Maskieren des y'-Koordinatenwerts des inversen transformier­ ten Abtastpunkts (918) und Zugreifen auf die Bruchteilnachschlagtabelle;
  • m1) Bestimmen (508) des Delta-z-Werts durch Maskieren des z'-Koordinatenwerts des inversen transformier­ ten Abtastpunkts (918) und Zugreifen auf die Bruchteilnachschlagtabelle; und
  • n1) Bestimmen (512) des kombinierten Quellenwerts durch Zugreifen auf die y-Richtung-Nachschlagta­ belle und die z-Richtung-Nachschlagtabelle, um die trilineare Interpolation zu unterstützen.
9. Verfahren gemäß Anspruch 1, das ferner folgende Schrit­ te (n), (o), (p), (q) und (r) aufweist:
  • n) Isolieren (212) einer z-Vektor-Komponente der kom­ binierten inversen Matrix, wobei die z-Vektor-Kom­ ponente einen iC-Wert, einen jC-Wert und einen kC-Wert aufweist, und Umwandeln der z-Vektor-Kom­ ponente der kombinierten inversen Matrix in ganz­ zahlige Werte durch Multiplizieren sowohl des iC- Werts, der jC-Werts als auch des kC-Werts mit 65.536, was einen iF-Wert, einen jF-Wert und einen kF-Wert ergibt;
  • o) Ableiten (414) eines nächsten transformierten Ab­ tastpunktes entlang des Strahls (814) durch Addie­ ren des iF-Werts zu dem x'-Koordinatenwert, Addie­ ren des jF-Werts zu dem y'-Koordinatenwert und Addieren des kF-Werts zu dem z'-Koordinatenwert;
  • p) Wiederholen der Schritte (k) bis (m) für den näch­ sten transformierten Abtastpunkt;
  • g) Wiederholen der Schritte (o) und (p) bis alle nächsten transformierten Abtastpunkte entlang des Strahls (814) verarbeitet wurden; und
  • r) Erhalten (206, 402) eines nächsten Anfangsbestim­ mungsraumvoxels eines nächsten Strahls und Wieder­ holen der Schritte (a) bis (q) bis alle nächsten Strahlen verarbeitet wurden.
10. Verfahren gemäß Anspruch 2, das ferner folgende Schrit­ te (o), (p), (q), (r) und (s) aufweist:
  • o) Isolieren (212) einer z-Vektor-Komponente der kom­ binierten inversen Matrix, wobei die z-Vektor-Kom­ ponente einen iC-Wert, einen jC-Wert und einen kC-Wert aufweist, und Umwandeln der z-Vektor-Kom­ ponente der kombinierten inversen Matrix in ganz­ zahlige Werte durch das Multiplizieren sowohl des iC-Werts, des jC-Werts als auch des kC-Werts mit 65.536, was einen iF-Wert, einen jF-Wert und einen kF-Wert ergibt;
  • p) Ableiten (518) eines nächsten transformierten Ab­ tastpunktes entlang des Strahls (814) durch Addie­ ren des iF-Werts zu dem x'-Koordinatenwert, Addie­ ren des jF-Werts zu dem y'-Koordinatenwert und Ad­ dieren des kF-Werts zu dem z'-Koordinatenwert;
  • q) Wiederholen der Schritte (k) bis (n) für den näch­ sten transformierten Abtastpunkt;
  • r) Wiederholen der Schritte (p) und (q), bis alle nächsten transformierten Abtastpunkte entlang des Strahls (814) verarbeitet wurden, und
  • s) Erhalten (206, 502) eines nächsten Anfangsbestim­ mungsraumvoxels eines nächsten Strahls und Wieder­ holen der Schritte (a) bis (r), bis alle nächsten Strahlen verarbeitet wurden.
DE19807053A 1997-05-30 1998-02-19 Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung Expired - Fee Related DE19807053B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/865,756 US6014143A (en) 1997-05-30 1997-05-30 Ray transform method for a fast perspective view volume rendering
US865756 1997-05-30

Publications (2)

Publication Number Publication Date
DE19807053A1 true DE19807053A1 (de) 1998-12-03
DE19807053B4 DE19807053B4 (de) 2005-03-17

Family

ID=25346157

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19807053A Expired - Fee Related DE19807053B4 (de) 1997-05-30 1998-02-19 Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung

Country Status (4)

Country Link
US (1) US6014143A (de)
JP (1) JP3290954B2 (de)
DE (1) DE19807053B4 (de)
GB (1) GB2325836B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6008813A (en) * 1997-08-01 1999-12-28 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Real-time PC based volume rendering system
GB2329810B (en) * 1997-09-29 2002-02-27 Science Res Foundation Generation and use of compressed image data
JP3597360B2 (ja) * 1997-11-17 2004-12-08 株式会社リコー モデリング方法および記録媒体
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US6720964B1 (en) * 1998-08-27 2004-04-13 Ati International Srl Method and apparatus for processing portions of primitives that are being rendered
US6771263B1 (en) * 1998-10-13 2004-08-03 Gmd-Forschungszentrum Informationstechnik Gmbh Processing volumetric image data with shadows
US6297799B1 (en) * 1998-11-12 2001-10-02 James Knittel Three-dimensional cursor for a real-time volume rendering system
GB2358980B (en) 2000-02-07 2004-09-01 British Broadcasting Corp Processing of images for 3D display
US7110026B2 (en) * 2001-07-03 2006-09-19 Logitech Europe S.A. Image tagging for post processing
JP4109224B2 (ja) * 2004-07-01 2008-07-02 ザイオソフト株式会社 展開画像投影方法、展開画像投影プログラム、展開画像投影装置
JP4213135B2 (ja) * 2005-04-22 2009-01-21 ザイオソフト株式会社 展開画像投影方法、展開画像投影プログラム、展開画像投影装置
US20070046661A1 (en) * 2005-08-31 2007-03-01 Siemens Medical Solutions Usa, Inc. Three or four-dimensional medical imaging navigation methods and systems
US7999807B2 (en) 2005-09-09 2011-08-16 Microsoft Corporation 2D/3D combined rendering
US7522164B2 (en) * 2006-03-28 2009-04-21 International Business Machines Corporation Using self-adjustable three-dimensional matrix to simplify the construction of a complex 3D scene
KR100834374B1 (ko) 2006-07-11 2008-06-02 엠텍비젼 주식회사 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치
US20090040220A1 (en) * 2007-02-05 2009-02-12 Jonathan Gibbs Hybrid volume rendering in computer implemented animation
US20080232694A1 (en) * 2007-03-21 2008-09-25 Peter Sulatycke Fast imaging data classification method and apparatus
JP5394620B2 (ja) * 2007-07-23 2014-01-22 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー 超音波撮像装置および画像処理装置
KR100924122B1 (ko) * 2007-12-17 2009-10-29 한국전자통신연구원 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
US9390557B2 (en) * 2011-08-11 2016-07-12 Siemens Aktiengesellschaft Floating volume-of-interest in multilayer volume ray casting
WO2013054468A1 (ja) * 2011-10-14 2013-04-18 パナソニック株式会社 転置演算装置とその集積回路、および転置処理方法
US10290145B2 (en) * 2017-06-30 2019-05-14 International Business Machines Corporation Image space-based particle generation modeling
JP6544472B1 (ja) * 2018-09-06 2019-07-17 大日本印刷株式会社 レンダリング装置、レンダリング方法、及びプログラム
KR20210030147A (ko) * 2019-09-09 2021-03-17 삼성전자주식회사 3d 렌더링 방법 및 장치
JP6874932B1 (ja) * 2020-10-16 2021-05-19 エッジコーティックス ピーティーイー. リミテッド 集積回路上での量子化されたスケーリングの準備および実行

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313567A (en) * 1991-06-13 1994-05-17 At&T Bell Laboratories Arrangement for determining and displaying volumetric data in an imaging system
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
JPH06290276A (ja) * 1993-02-15 1994-10-18 Philips Electron Nv 3次元場面の映像化用配置及び方法
US5515484A (en) * 1993-10-06 1996-05-07 Silicon Graphics, Inc. Method and apparatus for rendering volumetric images
US5519401A (en) * 1993-11-01 1996-05-21 Loral Corporation Programmed radar coordinate scan conversion
US5787889A (en) * 1996-12-18 1998-08-04 University Of Washington Ultrasound imaging with real time 3D image reconstruction and visualization

Also Published As

Publication number Publication date
GB2325836B (en) 2001-08-15
JP3290954B2 (ja) 2002-06-10
DE19807053B4 (de) 2005-03-17
JPH117546A (ja) 1999-01-12
US6014143A (en) 2000-01-11
GB2325836A (en) 1998-12-02
GB9810151D0 (en) 1998-07-08

Similar Documents

Publication Publication Date Title
DE19807053A1 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE60300788T2 (de) Bild mit Feldtiefe aus Z-Pufferbilddaten und Alphamischung
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE69534697T2 (de) Verfahren zur Erzeugung texturierter Bilder und Spezialvideoeffekte
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE69722139T2 (de) Dreidimensionale abbildung von bildtexturen
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE3832222A1 (de) Vorrichtung und verfahren zum anzeigen eines 2-dimensionalen bildes eines 3-dimensionalen gegenstandes
DE4314265A1 (de) Dreidimensionales Textur-Abbildungs-Displaysystem
DE69531536T2 (de) Synthetisches bilderzeugungsverfahren mit sphärischem puffer
DE69735181T2 (de) Verfahren und Vorrichtung für virtuelle Architektur
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69916808T2 (de) Verfahren und system zur strahlverfolgung
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE602004012341T2 (de) Verfahren und System zur Bereitstellung einer Volumendarstellung eines dreidimensionalen Objektes
DE69921608T2 (de) Verfahren und vorrichtung zum zoomen von digitalen bilddateien
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE10056978B4 (de) Verfahren zur Erzeugung eines stereographischen Bildes

Legal Events

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

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

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

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

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140902