DE19807053A1 - Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung - Google Patents
Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische BetrachtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-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.
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.
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].
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.
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.
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)
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)
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 |
-
1997
- 1997-05-30 US US08/865,756 patent/US6014143A/en not_active Expired - Fee Related
-
1998
- 1998-02-19 DE DE19807053A patent/DE19807053B4/de not_active Expired - Fee Related
- 1998-05-12 GB GB9810151A patent/GB2325836B/en not_active Expired - Fee Related
- 1998-05-28 JP JP14741298A patent/JP3290954B2/ja not_active Expired - Fee Related
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 |