Die
vorliegende Erfindung betrifft allgemein die Visualisierung von
dreidimensionalen oder vierdimensionalen Daten, und spezieller eine
Client-Server Architektur zur Visualisierung von dreidimensionalen
und vierdimensionalen Daten.The
The present invention relates generally to the visualization of
three-dimensional or four-dimensional data, and more particularly one
Client-server architecture for visualization of three-dimensional
and four-dimensional data.
Die
Visualisierung von mehrdimensionalen Daten wird im Allgemeinen erzeugt
als ein dargestelltes oder wiedergegebenes Volumenbild. Das Volumenwiedergeben
(Rendering) ist ein Prozess zum Erzeugen eines zweidimensionalen
(2D) Bilds aus einem dreidimensionalen (3D) Datensatz (beispielsweise
eines Volumens, das einen Stapel von 2D Bildern aufweist), wie es
von einem spezifischen Ort aus mit spezifizierten Wiedergabeparametern
(beispielsweise Schattierung, Projektionstyp, etc.) erscheinen würde.
Ein Verfahren zum Volumenwiedergeben (Renderig) wird bezeichnet
als Ray-Casting, wie es beschrieben ist in Levoy „Display
of Surfaces from Volume Data", IEEE Computer Graphics and Applications,
Ausgabe 8, Nr. 3, Mai 1988, Seiten 29–37 .The visualization of multi-dimensional data is generally generated as a displayed or rendered volume image. Rendering is a process of creating a two-dimensional (2D) image from a three-dimensional (3D) data set (e.g., a volume having a stack of 2D images) as from a specific location with specified rendering parameters (e.g., shading , Projection type, etc.) would appear. A method of rendering (Rendering) is referred to as ray-casting, as described in Levoy "Display of Surfaces from Volume Data", IEEE Computer Graphics and Applications, Issue 8, No. 3, May 1988, pages 29-37 ,
Ein
primäres technisches Hindernis bei der Implementierung
eines Systems zur interaktiven Volumenwiedergabe ist das schnelle,
effiziente und lokale Verarbeiten großer Datenmengen, was
erforderlich ist zur Wiedergabe jedes Rahmens (Bildrahmens). Das
Problem betreffend das große Datenvolumen wird erschwert
durch moderne medizinische Bildgebungseinrichtungen, die selbst
große Datenmengen erfassen können. Beispielweise
können bei dem Siemens Somatom Sensation 64 CT Scanner, der
Schnitte von 0,33 mm Dicke erfassen kann, fünftausend oder
mehr Schnitte erforderlich sein für eine vollständige
Körperabtastung (Scan). Die Speichergröße,
die erforderlich ist, um ein derartig großes Volumen von
Daten zu speichern, so wie die Verarbeitungsperformance, die notwendig
ist zur Wiedergabe, übersteigt die Fähigkeiten
von typischen lokalen Prozessoren (beispielweise Desktop, personal
Computer (PCs), Laptops, etc.).One
primary technical obstacle to implementation
a system for interactive volume rendering is the fast,
efficient and local processing of large amounts of data, what
is required to reproduce each frame (picture frame). The
Problem concerning the large data volume is made more difficult
through modern medical imaging facilities that themselves
can capture large amounts of data. for example
can be found on the Siemens Somatom Sensation 64 CT scanner, the
Can detect cuts of 0.33 mm thickness, five thousand or
more cuts will be needed for a full one
Body scan (scan). The memory size,
which is necessary to such a large volume of
To save data, as well as the processing performance necessary
is to rendering, exceed the capabilities
from typical local processors (for example desktop, personal
Computers (PCs), laptops, etc.).
Ein
allgemeiner Ansatz zur Lösung dieses Problems ist die Verwendung
einer Client-Server Architektur, bei der eine schnelle Servermaschine
mit erheblicher Speicher- und Verarbeitungsleistung verwendet wird,
um ein volumenwiedergegebenes Bild zu erzeugen, das dann über
ein Netzwerk an eine Client Maschine (beispielweise Client-PC, etc.) übertragen
wird, wo das volumenwiedergegebene Bild angezeigt wird. In einigen
Fällen wird ein „abgespeckter" Client verwendet.
Die Client-Maschine muss keine spezielle Verarbeitungsleistung haben
und wird nur verwendet zum Anzeigen von Bildern, die vollständig
beim Server verarbeitet werden. Eine derartige abgespeckte Client
Architektur ist beschrieben in US
6,683,933 mit dem Titel „Three-dimensional image
display device in network" (Saito). Ein Problem bei diesem Ansatz
liegt darin, dass eine große Menge von Bildern von dem
Server zum Client gesendet werden muss. Jedes Mal, wenn ein Benutzer
Betrachtungsparameter eines 3D Volumens (beispielsweise Ausrichtung,
Drehung, Translationsskalierung, Farbe, Opazität, Schattierung,
etc.) beeinflusst unter Verwendung einer Zeigevorrichtung wie einer
Maus, benachrichtigt der Client den Server über derartige Änderungen,
und der Server gibt ein neues Bild wieder und sendet das neue Bild
an den Client. Die Verwendung der Client-Server Architektur in einer
derartigen Weise kann teuer und langsam sein, auf Grund der großen
Menge von Updates (Aktualisierungen).A common approach to this problem is to use a client-server architecture that uses a fast server machine with significant memory and processing power to create a volume rendered image that is then sent over a network to a client machine (e.g. PC, etc.) where the volume-rendered image is displayed. In some cases, a "slimmed down" client is used, the client machine does not need to have any special processing power, and is only used to display images that are completely processed by the server Such a slimmed down client architecture is described in US 6,683,933 A problem with this approach is that a large amount of images must be sent from the server to the client every time a user views parameters of a 3D volume (for example, alignment, rotation, translation scaling, color, opacity, shading, etc.) using a pointing device such as a mouse, the client notifies the server of such changes, and the server plays a new image and sends the new image to the server Client The use of the client-server architecture in such a way can be expensive and slow due to the large amount of updates.
Ein
allgemeiner Ansatz zur Umgehung dieser Probleme ist die Verwendung
von Datenkomprimierungstechniken. Die Verwendung von Komprimierungstechniken
ist jedoch beschränkt, auf Grund von klinischen Vorgaben,
dass die Bilder, die am Server angezeigt werden, die Originaldiagnosequalität bewahren
müssen. Die Vollständigkeit der Originalbilddaten
sollte durch die Verwendung von verlustbehafteten Kompressionsalgorithmen
nicht beeinträchtigt werden. Beispielen von verlustlosen
Techniken zum Übertragen von komprimierten Bildern über
ein Netzwerk sind beschrieben in US
4,751,587 mit den Titel „Image recording and reproducing
apparatus using differential data compression and expansion techniques"
(Asahina) und in US 6,925,117 mit
dem Titel „Data transmission apparatus, method and program,
data reception apparatus and method, and data transmission and receiption
system, using differntial data" (Kamisuwa). Diese Verfahren beruhen auf
einer Differenzkomprimierung. Im Folgenden auch als Differenzkomprimierung
bezeichnet. Bei der Differenzkomprimierung werden neue Daten von
Referenzdaten subtrahiert. Die resultierende Differenz wird komprimiert
und von dem Server zum Client übertragen, und der Client
expandiert die Differenzdaten und subtrahiert sie von den Referenzdaten, wodurch
die neuen Daten gewonnen werden. Eine Einschränkung der
Differenzkomprimierung liegt darin, dass die Referenzdaten beim
Client und beim Server sein müssen. Selbst durch die Verwendung von
Differenzkomprimierungstechniken, um die erforderliche Übertragungsbandbreite
zu reduzieren, ist es schwierig eine interaktive Performance für
mehrere Clients zu erreichen. In der gegenwärtigen Praxis müssen
typischerweise zehn oder mehr wiedergegebene Rahmen (Bildrahmen)
pro Sekunde über das Netzwerk für jeden Client übertragen
werden. Wenn mehrere Clients mit einem Server verbunden sind, ist die
Netzwerkbandbreite ein signifikanter Engpass.A common approach to circumvent these problems is the use of data compression techniques. However, the use of compression techniques is limited due to clinical constraints that the images displayed on the server must retain the original diagnostic quality. The completeness of the original image data should not be affected by the use of lossy compression algorithms. Examples of lossless techniques for transmitting compressed images over a network are described in U.S. Patent Nos. 4,769,866 US 4,751,587 entitled "Image recording and reproducing apparatus using differential data compression and expansion techniques" (Asahina) and US 6,925,117 entitled "Data transmission apparatus, method and program, data reception apparatus and method, and data transmission and reception system, using differntial data" (Kamisuwa) .These methods are based on differential compression, also referred to below as differential compression new data is subtracted from reference data, the resulting difference is compressed and transmitted from the server to the client, and the client expands the difference data and subtracts it from the reference data, thereby obtaining the new data Even with the use of differential compression techniques to reduce the required transmission bandwidth, it is difficult to achieve interactive performance for multiple clients, and in current practice typically ten or more must transmitted frames (image frames) per second over the network for each client. If multiple clients are connected to a server, network bandwidth is a significant bottleneck.
Ein
anderer Ansatz zum Minimieren die Datenmenge, die von dem Server
zum Client übertragen wird, ist die Verwendung eines Hybridkombination
aus einem lokalen und einem entfernten Volumenwiedergeben (beispielsweise
die Verwendung eines Smart Clients), wie er beschrieben wird von Engel
et al., „Combining local and remote visualization techniques
for interactive volume rendering in medical applicaiotns" Proceedings
of IEEE Visualization '00, Piscataway, NJ: Institute of Electrical
and Electronics Engineers, 2000; 449–452 . In der
Smart Client Architektur befindet sich die Applikationslogik und
die Verarbeitung auf dem Server und der Client hat die Fähigkeit
ebenso eine lokale Verarbeitung durchzuführen. Der Server überträgt
zuerst eine unterabgetastete Kopie der Volumendaten mit niedriger
Auflösung an den Client. Wenn der Benutzer mit dem Volumen interagiert,
führt der Smart Client ein lokales Volumenwiedergeben durch
unter Verwendung der unterabgetasteten Kopie des Volumens, ohne
irgendeine Bearbeitung anzufordern, die durch den Server durchzuführen
ist. Bei Beendigung der Benutzerinteraktion (der Benutzer stoppt
beispielsweise die Bewegung der Maus und/oder lässt die
Maustaste los, etc.) sendet der Smart Client eine Anfrage an den
Server, ein Bild wiederzugeben und über das Netzwerk zu senden.
Obwohl die Anzahl an Bildern, die durch den Server wiedergegeben
werden, bei einem derartigen Ansatz stark reduziert wird, und die
interaktive Performance verbessert wird, werden die Bilder, die
lokal durch den Smart Client während der Interaktion wiedergegeben
werden, berechnet unter Verwendung von unterabgetasteten Daten mit
niedriger Auflösung, und die resultierenden Bilder haben
nicht die ursprüngliche diagnostische Qualität.Another approach to minimizing the amount of data transferred from the server to the client is to use a hybrid combination of local and remote volume rendering (e.g., the use of a Smart Clients), as described by Engel et al., "Combining local and remote visualization techniques for interactive volume rendering in medical applications" Proceedings of IEEE Visualization '00, Piscataway, NJ: Institute of Electrical and Electronics Engineers, 2000; 449-452 , In the Smart Client architecture, the application logic and processing resides on the server, and the client has the ability to perform local processing as well. The server first transmits a subsampled copy of the low resolution volume data to the client. When the user interacts with the volume, the smart client performs a local volume rendering using the subsampled copy of the volume without requesting any processing to be performed by the server. Upon completion of user interaction (for example, the user stops moving the mouse and / or releases the mouse button, etc.), the smart client sends a request to the server to play a picture and send it over the network. Although the number of images rendered by the server is greatly reduced in such an approach, and interactive performance is improved, the images that are rendered locally by the smart client during the interaction are computed using subsampled data with low resolution, and the resulting images do not have the original diagnostic quality.
Entsprechend
sind Systeme und Verfahren erforderlich, die alle oben genannten
Punkte bezüglich „abgespeckter" Client, Smart
Client und Differenzkomprimierungstechniken lösen, und
eine Lösung schaffen können, die eine schnelle
Performance während einem interaktiven Volumenwiedergeben
auf dem Client aufweist, während Bilder mit voller diagnostischer
Qualität visualisiert werden und das Ausmaß der
Netzwerkbandbreite, die benötigt wird, damit ein Server
Bilder an mehrere Clients senden kann, minimiert wird.Corresponding
Systems and procedures are required, all of the above
Points regarding "slimmed down" client, Smart
Solve client and differential compression techniques, and
can create a solution that is fast
Performance during an interactive volume rendering
on the client while having full diagnostic images
Quality can be visualized and the extent of
Network bandwidth needed to allow a server
To send images to multiple clients is minimized.
Kurze Zusammenfassung der ErfindungBrief summary of the invention
Die
vorliegende Erfindung betrifft allgemein die Visualisierung von
dreidimensionalen oder vierdimensionalen Daten und spezieller eine
Client-Server Architektur zur Visualisierung von dreidimensionalen und
vierdimensionalen Daten. In Antwort auf eine Anfrage von einem Client
lädt ein Server zur Volumenwiedergabe (auch bekannt als
Volumen-Rendering) einen Volumendatensatz aus einem Speicherarchiv, erzeugt
eine unterabgetastete Kopie mit niedriger Auflösung aus
einem derartigen Volumendatensatz und sendet sie an den Client.
Die unterabgetastete Kopie des Volumendatensatzes mit voller Auflösung kann
kodiert und komprimiert werden vor der Übertragung. In
Antwort auf nachfolgende Anfragen von dem Client gibt der Server
für ein Volumenwiedergeben ein hochqualitatives Bild des
Volumendatensatzes mit voller Auslösung wieder und gibt
ein Bild niedriger Qualität der unterabgetasteten Kopie
des Volumendatensatzes wieder, erzeugt dann eine Pixelmaske oder
Hybridpixelmaske, die kennzeichnend ist für eine Differenz
zwischen dem Bild hoher Qualität und dem Bild niedriger
Qualität, und sendet eine derartige Pixelmaske an den Client.The
The present invention relates generally to the visualization of
three-dimensional or four-dimensional data and more specifically one
Client-server architecture for the visualization of three-dimensional and
four-dimensional data. In response to a request from a client
loads a server for volume rendering (aka
Volume Rendering) creates a volume record from a library
a subsampled low-resolution copy
such a volume record and sends it to the client.
The subsampled copy of the full resolution volume dataset can
encoded and compressed before transmission. In
The server gives an answer to subsequent requests from the client
for a volume rendering a high quality picture of the
Volume data set with full release again and gives
a low quality image of the subsampled copy
of the volume data set, then creates a pixel mask or
Hybrid pixel mask, which is indicative of a difference
lower between the high quality image and the image
Quality, and sends such a pixel mask to the client.
Der
Client empfängt vom Server die Pixelmaske und berechnet
ein Bild hoher Qualität zumindest teilsweise basierend
auf der Pixelmaske und auf einem selektiven Wiedergeben seiner unterabgetasteten
Kopie des Volumendatensatzes mit niedriger Auflösung.Of the
Client receives the pixel mask from the server and calculates
a high quality image based at least in part
on the pixel mask and on a selective rendering of its subsampled
Copy of volume data set with low resolution.
Diese
und andere Vorteile der Erfindung werden für einen Fachmann
auf diesem Gebiet unter Bezugnahme auf die folgende detaillierte
Beschreibung und die beigefügten Zeichnungen offensichtlich.These
and other advantages of the invention will become apparent to those skilled in the art
in this field with reference to the following detailed
Description and the accompanying drawings obviously.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
1 zeigt
ein Volumenwiedergabesystem gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung; 1 shows a volume rendering system according to an embodiment of the present invention;
2 zeigt
ein Flussdiagramm eines Verfahrens zum Volumenwiedergeben gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung; 2 FIG. 12 is a flowchart of a volume rendering method according to an embodiment of the present invention; FIG.
3 verdeutlicht
die Verwendung einer XOR-Logikoperation zum Erzeugen einer Hybrid-Pixelmaske; 3 illustrates the use of an XOR logic operation to generate a hybrid pixel mask;
4 verdeutlicht
ein beispielhaftes Bild, das aus Pixelwerten in einer Hybrid-Pixelmaske
erzeugt worden ist; 4 illustrates an exemplary image generated from pixel values in a hybrid pixel mask;
5 zeigt
das Wiedergeben eines Bilds unter Verwendung einer Hybrid-Bitmaske; 5 Fig. 10 shows rendering of an image using a hybrid bitmask;
6 zeigt
die Verwendung einer XOR-Logikoperation zum Kombinieren einer Hybrid-Pixelmaske
mit einem selektiv wiedergegebenen Bild; 6 shows the use of an XOR logic operation to combine a hybrid pixel mask with a selectively rendered image;
7 zeigt
ein Flussdiagramm eines Verfahrens zum Volumenwiedergeben gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung; und 7 FIG. 12 is a flowchart of a volume rendering method according to an embodiment of the present invention; FIG. and
8 zeigt
eine schematische Zeichnung einer Steuerung. 8th shows a schematic drawing of a controller.
Detaillierte BeschreibungDetailed description
Ein
Ausführungsbeispiel der vorliegenden Erfindung enthält
ein System zum Fern-Wiedergeben großer 3D und 4D Datensätze über
ein Netzwerk niedriger Bandbreite mit effizienter interaktiven Performance
und effizienter Visualisierung mit voller Genauigkeit auf einer
herkömmlichen PC-basierten Client Hardware. Ein derartiges
System kann auf verschiedene Volumenwiedergabetechniken (auch bekant
als Volumen Rendering Techniken) angewendet werden, einschließlich
einem direkten Volumenwiedergeben, einer Maximum-Intensitätsprojektion
und einer Mehrebenen-Reformatierung.One embodiment of the present invention includes a system for remotely reproducing large 3D and 4D data sets over a low bandwidth network with efficient interactive performance and efficient full Ge visualization accuracy on a conventional PC-based client hardware. Such a system may be applied to various volume rendering techniques (also known as volume rendering techniques), including direct volume rendering, maximum intensity projection, and multi-level reformatting.
1 zeigt
ein Volumenwiedergabesystem 100 gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung. Das Volumenwiedergabesystem 100 enthält
ein PACS (Picture Archiving and Communication System = Bildarchivierungs-
und Kommunikationssystem) 102, das an einen oder an mehrere Verarbeitungsserver 104 gekoppelt
ist. Das PACS 102 und der Verarbeitungsserver 104 sind
an einen oder an mehrere Clients 106a–na, 106b, 106c,
..., 106n gekoppelt. 1 shows a volume rendering system 100 according to an embodiment of the present invention. The volume rendering system 100 contains a PACS (Picture Archiving and Communication System) 102 to one or more processing servers 104 is coupled. The PACS 102 and the processing server 104 are to one or more clients 106a -n / A, 106b . 106c , ..., 106n coupled.
Das
PACS 102 kann einen oder mehrere Computer oder Netzwerke
aufweisen, die zur Speicherung, zum Hohlen, zur Verteilung und zur
Präsentation von Bildern in bekannter Weise bestimmt sind. Gemäß mindestens
einem Ausführungsbeispiel kann das PACS 102 eine
Server- und/oder Abtastvorrichtung sein, die in der Lage ist, Bilddaten
zu übertragen, beispielsweise ein Computertomographie (CT) oder
Magnetresonanz (MR) Scanner. Gemäß einigen Ausführungsbeispielen
werden diese Bilder in einem unabhängigen Format gespeichert,
beispielsweise DICOM (Digital Imaging and Communications in Medicine)
für medizinische Bilder.The PACS 102 may include one or more computers or networks designed to store, hollow, distribute and present images in a known manner. In accordance with at least one embodiment, the PACS 102 a server and / or scanner capable of transmitting image data, such as a computed tomography (CT) or magnetic resonance (MR) scanner. In some embodiments, these images are stored in an independent format, such as DICOM (Digital Imaging and Communications in Medicine) for medical images.
Der
Verarbeitungsserver 104 ist vorzugsweise eine Hochleistungsmaschine,
die in der Lage ist große Volumendaten mit hoher Geschwindigkeit
wiederzugeben, und die konfiguriert ist zum Durchführen verschiedener
anderer Funktionen, die hier insbesondere bezüglich 2 beschrieben
werden. Ein beispielhafter Computer 800, der unter Bezugnahme auf 8 beschrieben
wird, kann als Verarbeitungsserver 104 verwendet werden.
Gemäß mindestens einem Ausführungsbeispiel
enthält der Verarbeitungsserver 104 einen zentralen
Prozessor und einen großen Speicher und Datenspeicher.
In dem gleichen oder in alternativen Ausführungsbeispielen weist
der Verarbeitungsserver 104 zusätzliche Hochgeschwindigkeitsberechnungsvorrichtungen auf,
einen Speicher mit großer Kapazität, der an einen
Hochgeschwindigkeitsbus gekoppelt ist, und/oder bestimmte Verarbeitungskarten,
die auf Prozessoren, wie digitale Signalverarbeitung (DSP), Graphikverarbeitungseinheit
(GPU) oder FPGA (Field-Programmable Gate Array) Chips basieren. Obwohl
in 1 als ein einzelner Verarbeitungsserver 104 gezeigt,
soll verstanden werden, dass mehrere Verarbeitungsserver 104 an
das PACS 102 und die Clients 106a–n gekoppelt
sein können. In dieser Weise sind das Volumenwiedergabesystem 100 und die
Verarbeitungsserverarchitektur skalierbar, um in der Lage zu sein
eine große Anzahl von Clients 106–n zu
unterstützen, und um die Fähigkeit zu haben in
eine clusterbasierte Konfiguration erweitert zu werden, wo mehrere
Verarbeitungsserver-Knoten miteinander verbunden sind und parallel
arbeiten. Der Verarbeitungsserver 104 kann an das PACS 102 gekoppelt
sein durch eine Hochgeschwindigkeitsnetzwerkverbindung, und an die
Clients 106a–n durch eine langsame bis mittlere
Geschwindigkeitsverbindung. Gemäß mindestens einem
Ausführungsbeispiel können der Verarbeitungsserver 104 und das
PACS 102 als eine einzelne Einheit implementiert sein.
Der Verarbeitungsserver 104 und das PACS 102 können
also kombiniert sein, um sich Funktionalität und Verarbeitungsressourcen
zu teilen.The processing server 104 is preferably a high performance machine capable of reproducing large volume data at high speed, and which is configured to perform various other functions, particularly as described herein 2 to be discribed. An exemplary computer 800 , referring to 8th can be described as a processing server 104 be used. In accordance with at least one embodiment, the processing server includes 104 a central processor and a large memory and data storage. In the same or alternative embodiments, the processing server 104 additional high speed computation devices, a large capacity memory coupled to a high speed bus, and / or certain processing boards based on processors such as digital signal processing (DSP), graphics processing unit (GPU), or FPGA (Field Programmable Gate Array) chips. Although in 1 as a single processing server 104 shown, it should be understood that multiple processing servers 104 to the PACS 102 and the clients 106a -N can be coupled. In this way are the volume rendering system 100 and the processing server architecture is scalable to accommodate a large number of clients 106 And to have the ability to be extended into a cluster-based configuration where multiple processing server nodes are interconnected and operate in parallel. The processing server 104 can contact the PACS 102 be coupled through a high-speed network connection, and to the clients 106a -N through a slow to medium speed connection. In accordance with at least one embodiment, the processing server may 104 and the PACS 102 be implemented as a single entity. The processing server 104 and the PACS 102 So they can be combined to share functionality and processing resources.
Die
Clients 106a–n können irgendein geeigneter
Computer, Client oder ein Computerprodukt sein, das konfiguriert
ist zum Durchführen verschiedener Funktionen, die hier
beschrieben werden, insbesondere unter Bezugnahme auf 2.
Ein beispielhafter Computer 800, der im Folgenden unter Bezugnahem
auf 8 beschrieben wird, kann als ein Client 106 verwendet
werden. Clients 106–n können bekannte
Computerarbeitsstationen sein. In einigen Ausführungsbeispielen
können die Clients 106–n Fähigkeiten
aufweisen, die in herkömmlichen personal Desktop Computern,
Laptops und dergleichen gefunden werden können.The clients 106a -N may be any suitable computer, client, or computer product configured to perform various functions described herein, particularly with reference to FIG 2 , An exemplary computer 800 In the following, reference is made to 8th can be described as a client 106 be used. clients 106 -N can be known computer workstations. In some embodiments, the clients may 106 -N have capabilities that can be found in traditional personal desktop computers, laptops and the like.
2 zeigt
ein Flussdiagramm eines Verfahrens 200 zur Volumenwiedergabe
gemäß einem Ausführungsbeispiel der vorliegenden
Erfindung. Das Verfahren 200 kann implementiert werden
durch irgendeine geeignete Kombination von Komponenten des Volumenwiedergabesystems 100.
Das Verfahren beginnt in Schritt 202. 2 shows a flowchart of a method 200. for volume reproduction according to an embodiment of the present invention. The procedure 200. can be implemented by any suitable combination of components of the volume rendering system 100 , The procedure begins in step 202 ,
In
Schritt 204 sendet ein Client 106a einen Abfrageaufruf
an das PACS 106. Dies kann ein Ersuchen sein eine Liste
von Volumendatensätzen zu erfassen, die zum Laden verfügbar
sind, wobei jeder Datensatz durch eine Serie von Bildern gebildet
ist (beispielsweise CT Schnittbilder, MR Schnittbilder, etc.). Gemäß einigen
Ausführungsbeispielen kann die Datensatzliste am Client 106 betrachtet
werden, indem eine entsprechende Benutzerschnittstelle (UI) verwendet
wird, in der Form einer „Arbeitsliste", die Datensätze
anzeigt, die zu einem bestimmten Zeitpunkt für ein Betrachten
geplant sind. In dem gleichen oder in alternativen Ausführungsbeispielen kann
die Datensatzliste organisiert sein basierend auf Suchparametern,
die durch einen Benutzer am Client 106a durch eine patientenspezifische
UI spezifiziert werden. Eine UI an einem Client 106 kann
also vorkonfiguriert sein und/oder konfigurierbar sein zum Anzeigen
der Bildinformation, die von einem Benutzer angefordert wird.In step 204 sends a client 106a a query call to the PACS 106 , This may be a request to capture a list of volume datasets available for loading, each dataset being formed by a series of images (eg, CT slice images, MR slice images, etc.). According to some embodiments, the record list may be at the client 106 may be viewed using a corresponding user interface (UI) in the form of a "worklist" that displays records scheduled for viewing at a particular time in the same or alternate embodiments Search parameters by a user at the client 106a be specified by a patient-specific UI. A UI on a client 106 Thus, it may be preconfigured and / or configurable to display the image information requested by a user.
In
Schritt 206 sendet das PACS 102 eine angeforderte
Datensatzliste an den Client 106. Die Datensatzliste kann
einem Benutzer am Client 106 angezeigt werden über
eine oder über mehrere UIs, wie oben beschrieben.In step 206 sends the PACS 102 a requested record list to the client 106 , The record list can be given to a user at the client 106 are displayed via one or more UIs, as described above.
In
Schritt 208 sendet der Client 106 eine Anfrage
an das PACS 102, um einen Datensatz von dem PACS 102 zum
Verarbeitungsserver 104 zu laden. Diese Anfrage kann in
Antwort auf eine Benutzerauswahl von einem oder von mehreren Datensätzen
von der empfangenen Datensatzliste in Schritt 206 erfolgen.In step 208 the client sends 106 a request to the PACS 102 to get a record from the PACS 102 to the processing server 104 to load. This request may be in response to a user selection of one or more records from the received record list in step 206 respectively.
In
Schritt 210 fordert der Verarbeitungsserver 104 Volumendaten
basierend auf dem ausgewählten Datensatz von dem PACS 102 an
und die angeforderten Daten werden an den Verarbeitungsserver 104 übertragen.
Wie oben diskutiert können in einigen Ausführungsbeispielen
das PACS 102 und der Verarbeitungsserver 104 kombiniert
werden als eine PACS/Verarbeitungs-Servereinheit (nicht gezeigt).
In derartigen Ausführungsbeispielen können der
Transfer von Volumendaten und/oder irgendeiner anderen entsprechenden
Information zwischen einem Client 106 und dem PACS 102 und/oder
dem Verarbeitungsserver 104 oder zwischen dem PACS 102 und
dem Verarbeitungsserver 104, wie speziell unter Bezugnahme
auf die Verfahrensschritte 206–210 diskutiert,
in der PACS/Verarbeitungsserver-Einheit vereint sein.In step 210 requests the processing server 104 Volume data based on the selected record from the PACS 102 and the requested data is sent to the processing server 104 transfer. As discussed above, in some embodiments, the PACS 102 and the processing server 104 combined as a PACS / processing server unit (not shown). In such embodiments, the transfer of volume data and / or any other corresponding information between a client 106 and the PACS 102 and / or the processing server 104 or between the PACS 102 and the processing server 104 as specifically with reference to the process steps 206 - 210 discussed to be united in the PACS / processing server entity.
In
Schritt 212 werden die Volumendaten, die in Schritt 210 an
den Verarbeitungsserver 104 gesendet worden sind, sortiert.
Das Datensortieren kann in irgendeiner geeigneten Reihenfolge vorgenommen werden,
beispielsweise in einer benutzerbestimmten Reihenfolge. Gemäß mindestens
einem Ausführungsbeispiel werden die Volumendaten (beispielsweise
Schnitte, Bilder, etc.) durch eine Position entlang einer Z-Achse
sortiert. In dem gleichen oder in alternativen Ausführungsbeispielen
können die mehreren Volumina sortiert werden basierend
auf ihrer Erfassungszeit in einer 4D Sequenz.In step 212 will be the volume data in step 210 to the processing server 104 have been sent, sorted. Data sorting may be done in any suitable order, for example in a user-defined order. In accordance with at least one embodiment, the volume data (eg, slices, images, etc.) are sorted by a position along a Z-axis. In the same or alternative embodiments, the multiple volumes may be sorted based on their detection time in a 4D sequence.
In
Schritt 214 wird eine unterabgetastete Kopie der Volumendaten
bestimmt. Gemäß mindestens einem Ausführungsbeispiel
enthält das Bestimmen der unterabgetasteten Kopie der Volumendaten
ein Berechnen einer unterabgetasteten Kopie und ein Komprimieren
der berechneten unterabgetasteten Kopie in einen Volumendatensatz
niedriger Auflösung mit wenig Speicherbedarf. Die unterabgetastete Kopie
ist also eine Version einer niedrigeren Auflösung von dem
Volumendatensatz voller Auflösung, und benötigt,
speziell wenn komprimiert, weniger Speicher für ein Speichern
und verwendet weniger Bandbreite bei der Übertragung. Die
unterabgetastete Kopie des Volumendatensatzes wird dann kodiert. Gemäß einigen
Ausführungsbeispielen wird die unterabgetastete Kopie der
Volumendaten mit verlustlosen Komprimierungsverfahren kodiert, wie
beispielsweise Huffman-Kodierung, Run-Length-Kodierung, etc. Gemäß alternativen
Ausführungsformen wird die unterabgetastete Kopie der Volumendaten
kodiert mit verlustbehafteten Komprimierungsverfahren, wie beispielsweise
JPEG(Joint Photographic Experts Group)-Kompression oder dergleichen.In step 214 a subsampled copy of the volume data is determined. In accordance with at least one embodiment, determining the subsampled copy of the volume data includes calculating a subsampled copy and compressing the calculated subsampled copy into a low resolution volume data set having a small memory footprint. Thus, the subsampled copy is a lower resolution version of the full resolution volume data set, and, especially when compressed, requires less memory for storage and uses less bandwidth in transmission. The subsampled copy of the volume data set is then encoded. In some embodiments, the subsampled copy of the volume data is encoded with lossless compression techniques, such as Huffman encoding, run-length encoding, etc. In alternative embodiments, the subsampled copy of the volume data is encoded with lossy compression techniques, such as JPEG (Joint Photographic Experts Group ) Compression or the like.
In
Schritt 216 wird die komprimierte und kodierte unterabgetastete
Kopie der Volumendaten von dem Verarbeitungsserver 104 an
den Client 106 gesendet, wo sie dekodiert wird.In step 216 becomes the compressed and encoded subsampled copy of the volume data from the processing server 104 to the client 106 sent where it is decoded.
In
Schritt 218 sendet der Client 106 eine Anfrage
für ein qualitativ hochwertiges Bild an den Verarbeitungsserver 104 zusammen
mit Information über neue Betrachtungsparameter, wie oben
beschrieben. Der Client 106 startet also eine Anfrage zum
Wiedergeben eines hochqualitativen Bilds basierend auf einer oder
auf mehreren Benutzereingaben.In step 218 the client sends 106 a request for a high quality image to the processing server 104 along with information about new viewing parameters as described above. The client 106 So starts a request to play a high quality image based on one or more user input.
In
Schritt 220 gibt der Verarbeitungsserver 104 ein
neues hochqualitatives Bild wieder unter Verwendung der hochqualitativen
Volumendaten voller Auflösung. Der Verarbeitungsserver 106 gibt
auch ein neues Bild niedrigerer Qualität wieder unter Verwendung
des in Schritt 204 bestimmten unterabgetasteten Volumens
niedrigerer Auflösung.In step 220 gives the processing server 104 a new high-quality image again using the high-quality volume data full resolution. The processing server 106 Also restores a new lower quality image using the in step 204 certain subsampled volumes of lower resolution.
In
Schritt 222 erzeugt der Verarbeitungsserver 104 eine
Pixelmaske basierend auf dem neuen hochqualitativen Bild und dem
neuen Bild niedrigerer Qualität. Gemäß mindestens
einem Ausführungsbeispiel ist die Pixelmaske eine Hybridkombination
von Pixelflags und Pixelwerten, bekannt als Hybrid-Pixelmaske. In
derartigen Ausführungsbeispielen gibt jedes Pixel der Hybridpixelmaske,
das einen Nullwert aufweist, an, dass das hochqualitative Bild und
das Bild niedrigerer Qualität den gleichen Pixelwert haben,
während jedes Pixel in der Hybrid-Pixelmaske, das einen
Wert nicht gleich Null aufweist, den Pixelwert enthält,
der dem hochqualitativen Bild entspricht. Die Erzeugung einer Hybrid-Pixelmaske
wird im weiteren Detail im Folgenden unter Bezugnahme auf die 3 und 4 diskutiert.In step 222 generates the processing server 104 a pixel mask based on the new high quality image and the new lower quality image. In accordance with at least one embodiment, the pixel mask is a hybrid combination of pixel flags and pixel values, known as a hybrid pixel mask. In such embodiments, each pixel of the hybrid pixel mask having a zero value indicates that the high quality image and the lower quality image have the same pixel value, while each pixel in the hybrid pixel mask having a nonzero value contains the pixel value that matches the high quality image. The generation of a hybrid pixel mask will be described in further detail below with reference to FIGS 3 and 4 discussed.
In
Schritt 224 wird die Pixelmaske durch den Verarbeitungsserver 104 kodiert.
Das Kodieren kann mit entsprechenden verslustlosen Komprimierungsverfahren
erfolgen, beispielsweise durch ein Huffman-Kodieren oder Run-Lenght-Kodieren.
Die Pixelmaske wird dann an den Client 106 gesendet in
Antwort auf eine Wiedergabeanfrage für eine hohe Qualität
in Schritt 218.In step 224 the pixel mask gets through the processing server 104 coded. The coding can be done with corresponding non-smooth compression methods, for example by Huffman coding or Run Lenght coding. The pixel mask is then sent to the client 106 sent in response to a high quality rendering request in step 218 ,
Jedes
Mal, wenn ein neues Bild mit hoher Qualität wiedergegeben
und angezeigt werden muss auf einem Client 106, können
die Verfahrensschritte 218–224 wiederholt
werden.Each time a new high-quality image needs to be rendered and displayed on a client 106 , can the process steps 218 - 224 be repeated.
In
Schritt 226 dekodiert der Client 106 die komprimierte
Pixelmaske, und bestimmt dann (beispielsweise erzeugt, berechnet,
etc.) ein neues Bild hoher Qualität am Client durch selektives
Wiedergeben nur eines Nebensatzes von Bildpixeln aus den unterabgetasteten
Volumendaten, die mit einem Nullwert in der Pixelmaske markiert
sind. Die verbleibenden Pixelwerte werden in ein finales Ergebnis
von der Pixelmaske durch eine logische Exklusive-ODER-Verknüfung
(XOR) gemischt. In dieser Weise kann der Client 106 ein
neues Bild hoher Qualität erzeugen.In step 226 decodes the client 106 the compressed pixel mask, and then determines (eg, generates, calculates, etc.) a new high quality image on the client by selectively rendering only a subset of image pixels from the subsampled volume data marked with a null value in the pixel mask. The remaining pixel values are mixed into a final result from the pixel mask by a logical exclusive OR (XOR) combination. In this way the client can 106 create a new image of high quality.
Die
Verwendung einer Pixelmaske reduziert signifikant die Anzahl an
Berechnungen, die für einen Client 106 erforderlich
sind, um ein Volumenwiedergeben des lokal unterabgetasteten Volumens
selektiv durchzuführen. Der Client 106 bestimmt
basierend auf der Pixelmaske, welche Pixel wiedergegeben werden
sollen, oder nicht, und muss folglich nicht ein vollständiges
Referenzbild berechnen, wie es typischerweise bei der Differenzkomprimierung
verwendet wird. Eine beispielhafte Hybrid-Pixelmaskenerzeugung ist
in 3 gezeigt, und 4 verdeutlicht ein
Beispiel der resultierenden Pixelwerte in einer Hybrid-Pixelmaske.The use of a pixel mask significantly reduces the number of calculations required for a client 106 are required to selectively perform volume rendering of the locally subsampled volume. The client 106 determined based on the pixel mask, which pixels are to be reproduced or not, and therefore need not calculate a complete reference image, as is typically used in the differential compression. An exemplary hybrid pixel mask generation is in 3 shown, and 4 illustrates an example of the resulting pixel values in a hybrid pixel mask.
Das
Verfahren endet in Schritt 228.The procedure ends in step 228 ,
3 zeigt
die Verwendung einer XOR-Logikoperation 300, um eine Hybrid-Pixelmaske
zu erzeugen (beispielsweise Bilden, Berechnen, etc.). Datenwerte 302 eines
wiedergegebenen Referenzdatensatzes (beispielsweise ein Datensatz,
der ursprünglich im PACS 102 erfasst worden ist,
etc.) werden mit der XOR-Operation 300 mit Datenwerten 304 eines
wiedergegebenen unterabgetasteten Datensatzes (beispielsweise der
in Schritt 214 des Verfahrens 200 bestimmte Datensatz)
verglichen. Nullwerte, die von der XOR-Operation 300 her
resultieren, geben Pixelwerte an, die identisch sind in hochqualitativ
wiedergegebenen Bildern und niederqualitativ wiedergegebenen Bildern,
und werden als Nullwerte direkt in der Pixelmaske gespeichert. Für
Nicht-Nullwerte, die von der XOR-Operation 300 her resultieren,
werden die ursprünglichen Pixelwerte von dem hochqualitativen
Bild in der Pixelmaske gespeichert. 3 shows the use of an XOR logic operation 300 to create a hybrid pixel mask (eg, make, calculate, etc.). data values 302 a reproduced reference data set (for example, a data set originally in the PACS 102 has been detected, etc.) with the XOR operation 300 with data values 304 a reproduced subsampled data set (for example, the one in step 214 of the procedure 200. specific record). Null values returned by the XOR operation 300 result in pixel values that are identical in high-quality rendered images and low-quality rendered images, and are stored as null values directly in the pixel mask. For non-zero values, that of the XOR operation 300 The original pixel values from the high quality image are stored in the pixel mask.
4 zeigt
ein beispielhaftes Bild 400, das von Pixelwerten in einer
Hybrid-Pixelmaske erzeugt worden ist. Das Bild 400 kann
beispielsweise aus den Datenwerten 306 der Hybrid-Pixelmaske
erzeugt werden, wie oben unter Bezugnahme auf 3 diskutiert.
Auf Grund der Ähnlichkeit zwischen dem hochqualitativen
Bild und dem niederqualitativen Bild können viele Pixel
als Nullwerte kodiert werden, die leicht mit verlustlosen Komprimierungsverfahren komprimiert
werden können, wie Huffman-Kodierung, Run-Lenght-Kodierung,
etc. 4 shows an exemplary picture 400 generated by pixel values in a hybrid pixel mask. The picture 400 can be, for example, from the data values 306 of the hybrid pixel mask, as described above with reference to FIG 3 discussed. Because of the similarity between the high quality image and the low quality image, many pixels can be encoded as null values that can be easily compressed with lossless compression techniques, such as Huffman coding, run-length encoding, etc.
5 zeigt
das Wiedergeben eines Bilds unter Verwendung einer Hybrid-Bitmaske
(beispielsweise die Hybrid-Bitmaske, wie sie in 3 bestimmt worden
ist), wie in dem Verfahrensschritt 226 des Verfahrens 200.
Ein Strahl 502 wird durch Pixel in der Bildebene 504 von
dem Betrachtungsursprung 506 zu dem wiederzugebenden Volumen 508 geworfen. Abtastungen
werden entlang des Strahls 502 berechnet, die gemäß verschiedenen
Wiedergabetechniken akkumuliert werden (beispielsweise Alpha Blending, Maximum-Intensitätsprojektion,
Minimum-Intensitätsprojektion, etc.). 5 FIG. 10 shows rendering of an image using a hybrid bitmask (eg, the hybrid bitmask as shown in FIG 3 has been determined), as in the method step 226 of the procedure 200. , A ray 502 is through pixels in the image plane 504 from the viewing origin 506 to the volume to be played 508 thrown. Scans are taken along the beam 502 which are accumulated according to various rendering techniques (eg, alpha blending, maximum intensity projection, minimum intensity projection, etc.).
Jede
berechnete Abtastung wird trilinear interpoliert, was einen erheblichen
Berechnungsaufwand erfordert. Noch mehr Berechnungen sind erforderlich,
wenn Voxel schattiert werden müssen, da ein Gradientenvektor
berechnet werden muss und eine Schattierungsoperation (beispielsweise Phong-Shading)
für jedes Voxel berechnet werden muss. Die Verwendung der
erfindungsgemäßen Hybrid-Pixelmaske 501 (beispielsweise
Hybrid-Pixelmasken, die im Vorangegangenen unter Bezugnahme auf
die 2 bis 4 diskutiert worden sind) reduziert
das Ausmaß an Berechnungen, die erforderlich sind zum Verarbeiten
eines volumenwiedergegebenen Bilds am Client 106 durch
selektives Markieren der Pixel, durch die ein Strahl geworfen werden soll.
Entsprechend müssen nur Pixel, die den gleichen Wert in
dem hochqualitativen Bild und dem niederqualitativen Bild am Verarbeitungsserver 104 haben
und folglich als Nullwerte in der Pixelmaske markiert sind, an dem
anfordernden Client 106 ray-gecastet werden. Ein Stahl 512,
der nicht ausgeworfen wird, wird nicht an das wiedergegebene Volumen 108 gesendet
und die lange Verarbeitungszeit, die zu der Interpolation der Abtastungen
entlang eines derartigen Strahls gehört, wird vermieden.Each calculated sample is trilinearly interpolated, which requires a considerable amount of computation. Even more calculations are required when voxels need to be shaded because a gradient vector must be calculated and a shading operation (eg, phong shading) must be calculated for each voxel. The use of the hybrid pixel mask according to the invention 501 (For example, hybrid pixel masks referred to above with reference to FIGS 2 to 4 have been discussed) reduces the amount of computation required to process a volume rendered image on the client 106 by selectively marking the pixels through which a beam is to be thrown. Accordingly, only pixels having the same value in the high quality image and the low quality image at the processing server need to be rendered 104 and thus marked as null values in the pixel mask, at the requesting client 106 be ray-casted. A steel 512 which is not ejected will not match the volume being played 108 and the long processing time associated with the interpolation of the samples along such a beam is avoided.
In
Bildgebungsausführungsbeispielen, die MPR (Multi-Planar
Reformatting) verwenden (beispielsweise Rekonstruktion von Bildern
in koronaler und sagittaler Ebene in Verbindung mit dem ursprünglichen
Axialdatensatz), wird das selektive Wiedergeben implementiert durch
das Auswerfen von Strahlen 502 entlang jeder Reihe von
Pixeln in der Bildebene. In derartigen Ausführungsbeispielen,
da die Strahlabtastungen Pixeln in der Bildebene entsprechen, sollten
die Hybrid-Pixelmaskenflags, die entlang des Strahls abtasten, berechnet
werden.In imaging embodiments that use multi-planar reformatting (e.g., reconstruction of images at the coronal and sagittal levels in conjunction with the original axial data set), selective rendering is implemented by ejecting rays 502 along each row of pixels in the image plane. In such embodiments, since the ray scans correspond to pixels in the image plane, the hybrid pixel mask flags that scan along the ray should be calculated.
Weiter
bezugnehmend auf den obigen Verfahrensschritt 226, nachdem
die selektive Pixelwiedergabeberechnung beendet ist, führt
der Client 106 einen abschließenden Verfeinerungsdurchlauf
durch, um das Bild, das auf dem Schirm zu zeichnen ist, in voller
Qualität zu erzeugen. Diese Operation enthält eine
logische XOR-Verknüpfung zwischen der Hybrid-Pixelmaske
und dem lokalen Bildpuffer, das unter Verwendung des selektiven
Wiedergebens berechnet worden ist. 6 zeigt
ein Beispiel einer derartigen Operation.Further referring to the above method step 226 After the selective pixel rendering calculation is completed, the client performs 106 a final refinement sweep to produce the image to be drawn on the screen in full quality. This operation contains a logical XOR link between the Hyb rid pixel mask and the local frame buffer computed using selective rendering. 6 shows an example of such an operation.
6 verdeutlicht
die Verwendung einer logischen XOR-Operation 600 zum Verfeinern
(beispielsweise Erzeugen, Bilden, Berechnen, etc.) von Pixelwerten 602 für
ein hochqualitatives Bild, das durch den Client 106 anzuzeigen
ist. Nicht-Null Pixelwerte 604 der Hybrid-Pixelmaske werden
mit Nicht-Null Pixelwerten 606 eines selektiv wiedergegebenen
Bilds vom Client 106 durch die XOR-Operation 600 vermengt.
In dieser Weise wird ein qualitativ hochwertiges Endbild 602 gebildet. 6 illustrates the use of a logical XOR operation 600 for refining (eg, generating, forming, calculating, etc.) pixel values 602 for a high quality image by the client 106 is to be displayed. Non-zero pixel values 604 The hybrid pixel mask will work with non-zero pixel values 606 a selectively rendered image from the client 106 through the XOR operation 600 mixed. In this way, a high-quality final image 602 educated.
7 zeigt
ein Flussdiagram eines Verfahrens 700 des Volumenwiedergebens
gemäß einem Ausführungsbeispiel der vorliegenden
Erfindung. Das Verfahren 700 kann implementiert werden
durch eine geeignete Kombination von Komponenten des Volumenwiedergabesystems 100.
Das Verfahren beginnt in Schritt 702. 7 shows a flowchart of a method 700 volume rendering according to an embodiment of the present invention. The procedure 700 can be implemented by an appropriate combination of components of the volume rendering system 100 , The procedure begins in step 702 ,
In
Schritt 704 empfängt der Client 106 eine Eingabe
von einem Benutzer. Gemäß einigen Ausführungsbeispielen
kann die Eingabe von einer UI aus erfolgen, wie oben diskutiert,
oder kann von einer I/O-Vorrichtung kommen, wie im Folgenden unter
Bezugnahme auf 8 diskutiert.In step 704 the client receives 106 an input from a user. According to some embodiments, the input may be from a UI, as discussed above, or may come from an I / O device, as discussed below with reference to FIG 8th discussed.
In
Schritt 706 erfolgt eine Bestimmung bezüglich
der Schnelligkeit von Eingaben, die von einem Benutzer für
ein Bild am Client 106 empfangen werden. In einigen Fällen
interagiert ein Benutzer mit Betrachtungsparametern (beispielsweise
Orientierung, Drehung, etc., in einer UI) eines Bilds in einer ausreichend
schnellen Art und Weise (beispielsweise schnelles Bewegen der Maus),
dass es nicht begründet wäre für den
Benutzer erkennbare Änderungen bezüglich der Qualität
des Bilds, das behandelt wird, zu empfangen. In einigen Ausführungsbeispielen kann
die Schnelligkeit von Eingaben basierend auf vorbestimmten Parameter
bestimmt werden. Beispielhafte Parameter enthalten eine gewünschte
interaktive Rahmenrate und ein Delta-Distanz-Intervall, das während
einer Mausbewegung durchlaufen wird.In step 706 a determination is made regarding the speed of inputs made by a user for a picture on the client 106 be received. In some cases, a user with viewing parameters (eg, orientation, rotation, etc., in a UI) of an image in a sufficiently fast manner (eg, moving the mouse quickly) interacts that it would not be reasonably noticeable to the user that there are any changes Quality of the image being treated to receive. In some embodiments, the speed of inputs may be determined based on predetermined parameters. Example parameters include a desired interactive frame rate and a delta distance interval that is traversed during a mouse movement.
Wenn
die Schnelligkeit von Eingaben, die von einem Benutzer für
ein Bild am Client 106 empfangen werden, einen bestimmten
Level überschreitet, gibt das Verfahren die Steuerung zu
Schritt 706 und Bilder werden als lokale Bilder geringer
Qualität in bekannter Weise wiedergegeben. Das Volumenwiedergabesystem 100 greift
also auf herkömmliche Verfahren zum Wiedergeben von Volumina
zurück. Beispielsweise, wenn die lokale Wiedergaberahmenrate
an einem Client 106 unter eine bestimmte Geschwindigkeit
fällt, oder wenn eine Mausbewegung einen definierten Schwellenwert überschreitet,
schaltet das Volumenwiedergabesystem 100 auf ein lokales
Wiedergeben mit schlechter Qualität in Schritt 708 unter
Verwendung des unterabgetasteten Volumens geringer Qualität
auf dem Client 106.When the speed of input made by a user for a picture on the client 106 is received, exceeds a certain level, the method gives the control to step 706 and images are reproduced as low quality local images in a known manner. The volume rendering system 100 Thus, it uses traditional methods of rendering volumes. For example, if the local rendering frame rate is at a client 106 falls below a certain speed, or if a mouse movement exceeds a defined threshold, the volume rendering system will switch 100 to a local playing with poor quality in step 708 using the sub-sampled low quality volume on the client 106 ,
Wenn
die Schnelligkeit von Eingaben, die von einem Benutzer für
ein Bild am Client 106 empfangen wird, einen bestimmten
Level nicht überschreitet, reicht das Verfahren die Steuerung
an Schritt 710 und ein Volumen wird wiedergegeben unter
Verwendung verschiedener Schritte des Verfahrens 200, wie
oben beschrieben. Wenn ein Benutzer also mit Betrachtungsparametern
eines Bilds am Client 106 interagiert in einer langsamen
bis moderat schnellen Art und Weise (beispielsweise Bewegen der
Maus um eine kleine Distanz), so dass die Bewegungsdetails leicht
unterscheidet werden können und es folglich wichtig ist,
vollständige diagnostische Qualitätsbilder zu
betrachten, wird ein Volumenwiedergeben verwendet unter Verwendung
einer Pixelmaske oder einer Hybrid-Pixelmaske, wie oben bezüglich
des Verfahrens 200 beschrieben.When the speed of input made by a user for a picture on the client 106 is received, does not exceed a certain level, the procedure passes the control step 710 and a volume is rendered using various steps of the method 200. , as described above. So if a user is viewing parameters of an image on the client 106 interacts in a slow to moderately fast manner (e.g., moving the mouse a small distance) so that the motion details can be easily distinguished and it is therefore important to view complete diagnostic quality images, volume rendering is done using a pixel mask or a hybrid pixel mask, as above with respect to the method 200. described.
Das
Verfahren endet in Schritt 712.The procedure ends in step 712 ,
Das
Verfahren 700 kann in Ausführungsbeispielen des
Volumenwiedergabesystems 100 verwendet werden, die eine
Mehrfensteranzeige am Client 106 verwenden, bei dem eine
Interaktion mit einer MPR-Ebene in einem Fenster mit anderen zwei MPR-Ebenen
in anderen Fenster synchronisiert wird. Ein Benutzer kann innerhalb
eines Fensters interagierten durch Ziehen von Linien, die eine Kreuzung repräsentieren
zwischen einer ausgewählten MPR-Ebene und zwei anderen
MPR-Ebenen. Die interaktive Bewegung derartiger Linien veranlasst
die anderen zwei Fenster dazu erneut wiedergegeben zu werden. In
Anhängigkeit von dem Ausmaß, um das jede Kreuzungslinie
bewegt worden ist, kann das Volumenwiedergabesystem 100 die
entsprechenden MPR-Fenster wiedergeben müssen unter Verwendung
entweder eines Niederqualitäts- oder Hochqualitätswiedergebens,
basierend auf Konfigurationseinstellungen für eine gewünschte
interaktive Rahmenrate und ein Deltaintervall der Mausbewegung,
wie oben unter Bezugname auf Schritt 706 des Verfahrens 700 beschrieben.The procedure 700 may in embodiments of the volume rendering system 100 used, which is a multi-window display on the client 106 that synchronizes an interaction with an MPR layer in one window with other two MPR layers in other windows. A user may interact within a window by dragging lines representing an intersection between a selected MPR plane and two other MPR planes. The interactive movement of such lines causes the other two windows to be replayed. Depending on the extent to which each crossing line has been moved, the volume rendering system may 100 must reproduce the corresponding MPR windows using either low quality or high quality rendering, based on configuration settings for a desired interactive frame rate and a mouse movement delta interval, as referenced above, step by step 706 of the procedure 700 described.
In
einem alternativen Ausführungsbeispiel verwendet das Volumenwiedergabesystem 100 immer
ein lokales Wiedergeben niedriger Qualität während
einer Interaktion, wie in Schritt 708 des Verfahrens 700 diskutiert,
und ein Wiedergeben hoher Qualität, wie oben unter Bezug nahme
auf das Verfahren 200 und Schritt 710 des Verfahrens 700 beschrieben, wird
verwendet als eine finale Aktualisierung hoher Qualität,
wenn die Interaktion aufhört.In an alternative embodiment, the volume rendering system uses 100 always a low-quality local playback during an interaction, as in step 708 of the procedure 700 and high quality rendering as discussed above with reference to the process 200. and step 710 of the procedure 700 is used as a final high quality update when the interaction ceases.
In
gleichen oder in alternativen Ausführungsbeispielen sind
die Volumendaten nicht beschränkt auf ein einzelnes 3D
Volumen, sondern verwenden eine 4D Sequenz von mehreren 3D Volumina
(beispielsweise eine Sequenz von Volumina, die sequenzielle Herzphasen
darstellen). In diesen Ausführungsbeispielen triggert ein
Client 106 automatisch zu spezifischen Zeitintervallen
das Wiedergeben von einem der Volumina in der 4D Sequenz, und das
Verfahren 200 wird verwendet für eine Client-Server Fernvisualisierung
jedes 3D Volumens in der Sequenz. Dies erfordert, dass als ein erster
Schritt eine unterabgetastete Kopie jedes Volumens in der Sequenz
an den Client 106 übertragen wird, bevor die Sequenz
wiedergegeben wird.In equal or alternative embodiments, the volume data is not limited on a single 3D volume, but use a 4D sequence of multiple 3D volumes (for example, a sequence of volumes representing sequential cardiac phases). In these embodiments, a client triggers 106 automatically at specific time intervals reproducing one of the volumes in the 4D sequence, and the procedure 200. is used for a client-server remote visualization of every 3D volume in the sequence. This requires, as a first step, an undersampled copy of each volume in the sequence to the client 106 is transmitted before the sequence is played back.
Obwohl
im Vorangegangenen allgemein als eine „Hybrid-Pixelmaske"
oder eine „Pixelmaske" bezeichnet, soll verstanden werden,
dass eine Pixelmaske gemäß einigen Ausführungsbeispielen
keine Hybridkombination von Pixelflags und Pixelwerten hoher Qualität
ist, sondern ein Ergebnis einer XOR-Operation zwischen einem Bild
hoher Qualität und einem Bild niedriger Qualität,
das auf dem Verarbeitungsserver 104 berechnet wird. Sobald
die Pixelmaske an den Client 106 übertragen ist,
gibt der Client 106 alle Pixel eines Bilds niedriger Qualität
lokal wieder basierend auf der lokalen Kopie des unterabgetasteten
Volumens niedrigerer Auflösung, und führt dann
eine XOR-Operation zwischen der Pixelmaske und dem Bild niedriger
Qualität durch, wodurch ein Bild hoher Qualität
erhalten wird.Although, in the foregoing, generally referred to as a "hybrid pixel mask" or "pixel mask," it should be understood that a pixel mask is not a hybrid combination of high-quality pixel flags and pixel values, but a result of an XOR operation between a high-quality image, in some embodiments and a low-quality image on the processing server 104 is calculated. Once the pixel mask to the client 106 is transferred, gives the client 106 locally resampling all the pixels of a low quality image based on the local copy of the lower resolution subsampled volume, and then performing an XOR operation between the pixel mask and the low quality image, thereby obtaining a high quality image.
8 zeigt
eine schematische Zeichnung eines Computers 800 gemäß einem
Ausführungsbeispiel der Erfindung. Wie oben diskutiert
kann ein oder können mehrere der Verarbeitungsserver 104 und/oder
Clients 106a–n implementiert werden als ein Computer,
wie ein Computer 800 und/oder können verschiedene
Komponenten des Computers 800 entsprechend verwenden. Der
Computer 800 enthält einen Prozessor 802,
der den gesamten Betrieb des Computers 800 steuert, indem
Computerprogrammanweisungen ausgeführt werden, die einen
derartigen Betrieb definieren. Die Computerprogrammanweisungen können
in einer Speichervorrichtung 804 (beispielweise Magnetplatte,
Datenbank, etc.) gespeichert werden und in den Speicher 806 geladen werden,
wenn die Ausführung der Computerprogrammanweisungen erwünscht
ist. Folglich werden Anwendungen zum Durchführen der hier
beschriebenen Verfahrensschritte, wie das Volumen wiedergeben, in
Verfahren 200 und 700 durch Computerprogrammanwei sungen
definiert, die in dem Speicher 806 und/oder dem Speicher 804 gespeichert
sind, und von dem Prozessor 802 gesteuert, der die Computerprogrammanweisungen
ausführt. Der Computer 800 kann auch eine oder
mehrere Netzwerkschnittstellen 808 enthalten für
eine Kommunikation mit anderen Vorrichtungen über ein Netzwerk
(beispielsweise ein Peer-to-Peer Netzwerk, etc.). Der Computer 800 enthält
auch eine Eingabe/Ausgabevorrichtung 810 (beispielsweise
eine Anzeige, eine Tastatur, eine Maus, Lautsprecher, Schaltflächen,
etc.), die eine Benutzerinteraktion mit dem Computer 800 erlauben.
Der Computer 800 und/oder der Prozessor 802 können
eine oder können mehrere zentrale Verarbeitungseinheiten
aufweisen, nur Lesespeicher(ROM)-Vorrichtungen und/oder Zufallszugriffsspeicher(RAM)-Vorrichtungen.
Ein Fachmann auf diesem Gebiet erkennt, dass eine Implementierung einer
tatsächlichen Steuerung andere Komponenten ebenso enthalten
kann, und dass die Steuerung gemäß 8 für
illustrative Zwecke eine grobe Darstellung von einigen der Komponenten
einer derartigen Steuerung zeigt. 8th shows a schematic drawing of a computer 800 according to an embodiment of the invention. As discussed above, one or more of the processing servers may be 104 and / or clients 106a -N be implemented as a computer, like a computer 800 and / or can be different components of the computer 800 use accordingly. The computer 800 contains a processor 802 that the entire operation of the computer 800 controls by executing computer program instructions that define such operation. The computer program instructions may be stored in a storage device 804 (for example, magnetic disk, database, etc.) are stored and stored in memory 806 loaded when the execution of the computer program instructions is desired. Thus, applications for performing the method steps described herein, such as rendering the volume, are in process 200. and 700 defined by computer program instructions stored in the memory 806 and / or the memory 804 stored and by the processor 802 controlling the computer program instructions. The computer 800 can also have one or more network interfaces 808 included for communication with other devices over a network (eg, a peer-to-peer network, etc.). The computer 800 Also includes an input / output device 810 (for example, a display, keyboard, mouse, speakers, buttons, etc.) that provide user interaction with the computer 800 allow. The computer 800 and / or the processor 802 For example, one or more central processing units may comprise only read only memory (ROM) devices and / or random access memory (RAM) devices. One skilled in the art will recognize that an implementation of an actual control may include other components as well, and that the control of FIG 8th for illustrative purposes, shows a rough representation of some of the components of such control.
Gemäß einigen
Ausführungsbeispielen der vorliegenden Erfindung können
Anweisungen eines Programms (beispielsweise Steuerungssoftware)
in einen Speicher 806 gelesen werden, beispielsweise von
einer ROM-Vorrichtung in eine RAM-Vorrichtung, oder von einem LAN-Adapter
in eine RAM-Vorrichtung. Die Ausführung von Sequenzen der
Anweisungen in dem Programm können den Computer 800 veranlassen
zum Durchführen von einem oder von mehreren der Verfahrensschritte,
wie sie hier beschrieben werden, beispielsweise diejenigen, die oben
unter Bezugnahme auf die Verfahren 200 und 700 beschrieben
worden sind. In alternativen Ausführungsbeispielen kann
eine fest verdrahtete Schaltung oder können integrierte
Schaltungen verwendet werden anstelle oder in Kombination mit Softwareanweisungen
zum Implementieren der Protzesse der vorliegenden Erfindung. Folglich
sind die Ausführungsbeispiele der vorliegenden Erfindung
nicht beschränkt auf irgendeine spezifische Kombination
von Hardware, Firmware und/oder Software. Das Verfahren 806 kann
die Software für den Computer 800 speichern, der
angepasst sein kann zum Ausführen des Softwareprogramms,
um folglich gemäß der vorliegenden Erfindung zu
arbeiten, und insbesondere gemäß den Verfahren,
wie sie im Vorangegangenen im Einzelnen beschrieben wurden. Es soll
verstanden werden, dass ein Fachmann auf diesem Gebiet die Erfindung,
wie sie hier beschrieben wurde, in verschiedener Art und Weise implementieren
kann unter Verwendung von weit verbreiteten Programmiertechniken,
sowie von Altzweckhardware-Sub-Systemen oder bestimmten Steuerungen.According to some embodiments of the present invention, instructions of a program (eg, control software) may be stored in memory 806 from a ROM device to a RAM device, or from a LAN adapter to a RAM device. The execution of sequences of instructions in the program may damage the computer 800 cause to perform one or more of the method steps as described herein, for example, those described above with reference to the methods 200. and 700 have been described. In alternative embodiments, hardwired circuitry or integrated circuits may be used in lieu of or in combination with software instructions for implementing the beliefs of the present invention. Thus, the embodiments of the present invention are not limited to any specific combination of hardware, firmware, and / or software. The procedure 806 can the software for the computer 800 which may be adapted to execute the software program so as to operate in accordance with the present invention, and in particular according to the methods as described in detail above. It should be understood that one skilled in the art can implement the invention as described herein in a variety of ways, using widely used programming techniques, as well as legacy hardware subsystems or particular controllers.
Derartige
Programme können in einem komprimierten, uncompilierten
(nicht übersetzen) und/oder verschlüsselten Format
gespeichert werden. Die Programme können darüber
hinaus Programmelemente enthalten, die allgemein hilfreich sind,
beispielsweise ein Betriebssystem, ein Datenbankmanagementsystem,
und Gerätetreiber, um der Steuerung zu erlauben mit Computerperipheriegeräten
und anderen Einrichtungen/Komponenten zu kommunizieren. Entsprechende
Allzweckprogrammelemente sind einem Fachmann auf diesem Gebiet bekannt,
und müssen hier nicht im Einzelnen beschrieben werden.Such programs may be stored in a compressed, uncompiled (non-translated) and / or encrypted format. The programs may also contain program elements that are generally helpful, such as an operating system, a database management system, and device drivers to allow the controller to communicate with computer peripherals and other devices / components. Corresponding general-purpose program elements are those skilled in the art and need not be described in detail here.
Im
Vorangegangenen wurde ein Verfahren für ein Volumenwiedergeben
beschrieben unter Verwendung eines „Smart"-Client-Verfahrens,
das alle Vorteile eines lokalen und entfernten Hybridwiedergebens
aufweist, aber keinen der Nachteile von herkömmlichen Smart-Client-
und „abgespecker" Client-Verfahren. Entsprechend kann das
Volumenwiedergabesystem 100 volumenwiedergegebene Bilder mit
vollständiger diagnostischer Qualität während
einer Interaktion visualisieren. Dies bietet den Vorteil gegenüber
bekannten Verfahren, wie oben beschrieben, bei denen das System
wiedergegebene Bilder niedriger Qualität basierend auf
einem unterabgetasteten Volumen während einer Benutzerinteraktion
visualisiert. Die Verfahren, die hier beschrieben werden, erfordern
nicht, dass der Client 106 alle Pixelwerte eines lokal
wiedergegebenen Bilds berechnet, im Gegensatz zum Stand der Technik,
insbesondere „Engel", bei dem ein vollständiges
Bild wiedergegeben werden muss unter Verwendung des lokal unterabgetasteten
Volumens. Ferner erfordert das vorliegende Verfahren nicht, dass
der Verarbeitungsserver 104 alle Pixel eines volumenwiedergegebenen
Bilds mit diagnostischer Qualität an den Client 106 sendet. Bei
bekannten Verfahren, wie beispielsweise beschrieben in „Saito",
gibt der Server ein gesamtes Bild wieder und sendet das gesamte
Bild an den Client. Zusätzlich verwenden die vorliegenden
Verfahren eine Pixelmaske, die auf dem Verarbeitungsserver 104 erzeugt
und an den Client 106 gesendet wird, so dass der Client 106 die
notwendige Information hat, um selektiv nur eine reduzierte Anzahl
von Pixeln lokal wiederzugeben, ohne Erfordernis eines vollständigen
Referenzbilds, das auf dem Client existiert. Da eine kleinere Informationsmenge
an den Client 106 gesendet wird, kann der Netzwerkverkehr
reduziert werden, wodurch die Bandbreitenverwendungskosten reduziert
werden. Dies ist im Gegensatz zum Stand der Technik, wie oben diskutiert,
bei dem die Differenz zwischen einem Referenzbild und einem neuen
Bild auf dem Verarbeitungsserver 104 kodiert und an den
Client 106 gesendet wird, und dann die Differenzdaten dekodiert
und von einem Referenzbild subtrahiert werden, das auf dem Client 106 vorhanden
ist, um ein neues Bild zu berechnen.In the foregoing, a method for volume rendering has been described using a "smart" client method that has all the advantages of local and remote hybrid rendering, but none of the disadvantages of conventional smart client and "snoop" client methods. Accordingly, the volume rendering system can 100 Visualize volume rendered images with complete diagnostic quality during an interaction. This offers the advantage over known methods, as described above, where the system visualizes low quality rendered images based on a subsampled volume during user interaction. The procedures that are described here do not require the client 106 calculates all pixel values of a locally reproduced image, in contrast to the prior art, in particular "angel", in which a complete image must be rendered using the locally subsampled volume Further, the present method does not require the processing server 104 all pixels of a volume rendered image with diagnostic quality to the client 106 sends. In known methods, such as described in "Saito," the server plays back an entire image and sends the entire image to the client In addition, the present methods use a pixel mask stored on the processing server 104 generated and sent to the client 106 is sent, so the client 106 has the necessary information to selectively reproduce only a reduced number of pixels locally, without the need for a complete reference image existing on the client. As a smaller amount of information to the client 106 is sent, network traffic can be reduced, reducing bandwidth usage costs. This is in contrast to the prior art, as discussed above, in which the difference between a reference image and a new image on the processing server 104 coded and sent to the client 106 is sent, and then the difference data is decoded and subtracted from a reference image that is on the client 106 is present to calculate a new image.
Die
vorangegangene detaillierte Beschreibug soll als beispielhaft und
illustrativ, aber nicht als einschränkend verstanden werden,
und der Bereich der Erfindung, wie er hier offenbart ist, wird nicht durch
die detaillierte Beschreibung bestimmt, sondern durch die Patentansprüche.
Es soll verstanden werden, dass die Ausführungsbeispiele,
wie gezeigt und beschrieben, die Prinzipien der vorliegenden Erfindung
nur verdeutlichen und verschiedene Modifikationen von Fachleuten
auf diesen Gebiet implementiert werden können, ohne den
Bereich der Erfindung zu verlassen. Fachleute auf diesem Gebiet
können verschiedene andere Merkmalskombinationen implementieren,
ohne den Bereich der Erfindung zu verlassen.The
The preceding detailed description is intended to be exemplary and
illustrative, but not to be construed as limiting
and the scope of the invention as disclosed herein is not
the detailed description determined, but by the claims.
It should be understood that the embodiments,
as shown and described, the principles of the present invention
just clarify and various modifications by professionals
can be implemented in this area without the
Area of the invention to leave. Professionals in the field
can implement various other feature combinations,
without departing from the scope of the invention.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.This list
The documents listed by the applicant have been automated
generated and is solely for better information
recorded by the reader. The list is not part of the German
Patent or utility model application. The DPMA takes over
no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
-
- US 6683933 [0004] - US 6683933 [0004]
-
- US 4751587 [0005] US 4751587 [0005]
-
- US 6925117 [0005] - US 6925117 [0005]
Zitierte Nicht-PatentliteraturCited non-patent literature
-
- Levoy „Display
of Surfaces from Volume Data", IEEE Computer Graphics and Applications,
Ausgabe 8, Nr. 3, Mai 1988, Seiten 29–37 [0002] Levoy "Display of Surfaces from Volume Data", IEEE Computer Graphics and Applications, Issue 8, No. 3, May 1988, pages 29-37 [0002]
-
- Engel et al., „Combining local and remote visualization
techniques for interactive volume rendering in medical applicaiotns"
Proceedings of IEEE Visualization '00, Piscataway, NJ: Institute
of Electrical and Electronics Engineers, 2000; 449–452 [0006] Engel et al., "Combining local and remote visualization techniques for interactive volume rendering in medical applications" Proceedings of IEEE Visualization '00, Piscataway, NJ: Institute of Electrical and Electronics Engineers, 2000; 449-452 [0006]