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 multidimensional data is generally generated
as a displayed or reproduced volume image. The volume rendering
(Rendering) is a process for creating a two-dimensional
(2D) image from a three-dimensional (3D) data set (for example
a volume that has a stack of 2D images) as it is
from a specific location with specified rendering parameters
(shading, projection type, etc.) would appear. One
Volume rendering method (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 in the implementation of a system for
interactive volume rendering is the fast, efficient and
local processing big
Amount of data required to reproduce each frame (picture frame).
The problem concerning the big one
Data volume is complicated by modern medical imaging equipment,
the big ones
Can capture data sets.
For example
on the Siemens Somatom Sensation 64 CT scanner, which cuts from
0.33 mm thickness can capture five thousand
or more cuts may be required for a full body scan
(Scan). The memory size, the
necessary to store such a large volume of data,
as well as the processing performance necessary for reproduction exceeds
the abilities
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 B2 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 stripped down client architecture is described in US 6,683,933 B2 titled "Three-dimensional image display device in network" (Saito). A problem with this approach is that a large amount of images must be sent from the server to the client. Each time a user manipulates viewing parameters of a 3D volume (e.g., 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 inputs new image again and sends the new image to the client. The use of the client-server architecture in such a way can be expensive and slow due to the large amount of updates (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 A , den Titel „Image recording and reproducing
apparatus using differential data compression and expansion techniques” (Asahina)
und in US 6,925,117
B2 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 A , entitled "Image recording and reproducing apparatus using differential data compression and expansion techniques" (Asahina) and US 6,925,117 B2 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. Differential compression subtracts new data 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. One limitation of differential compression is that the reference data must be at the client and at the server. Even through the use of differential compression techniques to reduce the required transmission bandwidth, it is difficult to achieve interactive performance for multiple clients. In current practice, typically ten or more rendered frames (frames) per second need to be transmitted 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 applications” 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.
US 7,042,454 B1 betrifft
allgemein das Speichern und Anzeigen von Computergrafiken, insbesondere
die Manipulierung und die Anzeige großer Sätze von dreidimensionalen Daten
unter Verwendung verschiedener diskreter Computersysteme, die miteinander
arbeiten. Zur effizienten Manipulierung und Anzeige von 3D Datensätzen werden „Multiresolution” Modellierungstechniken
verwendet, die auf einige Elemente, die eine 3D Szene bilden und
weniger wichtig sind als andere, angewendet. US Pat. No. 7,042,454 B1 relates generally to the storage and display of computer graphics, in particular the manipulation and display of large sets of three-dimensional data using various discrete computer systems that work together. For efficient manipulation and display of 3D datasets, "multiresolution" modeling techniques are used which are applied to some elements that make up a 3D scene and are less important than others.
US 6,208,347 B1 betrifft
die Konstruktion von Maschenmodellen, die 3D Objekte darstellen,
wobei die Objekte unterschiedlich detailliert angezeigt werden. US 6,208,347 B1 concerns the construction of mesh models that represent 3D objects, where the objects are displayed in different detail.
US 2004/0179744 A1 betrifft
das Gebiet der Datenübertragung,
insbesondere einer effizienten Technik zur Übertragung großer Datenmengen über Netzwerke
unter Verwendung einer hierarchischen Darstellung von Volumendaten
mittels Wavelet-Zerlegung. US 2004/0179744 A1 relates to the field of data transmission, in particular an efficient technique for the transmission of large amounts of data over networks using a hierarchical representation of volume data by means of wavelet decomposition.
Aufgabe
der Erfindung ist es, Systeme und Verfahren zu schaffen, 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.task
The invention is to provide systems and methods, all
above points regarding "slimmed down" client,
Solve smart client and differential compression techniques, and one
solution
can create
a fast performance during
has an interactive volume rendering on the client while images are
with full diagnostic quality
be visualized and the extent of network bandwidth, the
is needed
minimizes the need for a server to send images to multiple clients
becomes.
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
invites
Volume rendering server (also known as volume rendering)
Volume dataset from a library creates a subsampled
Low resolution copy
from 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 response to
Subsequent requests from the client are given by the server for volume
a high-quality image of the full-resolution volume data set 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 between the
Picture of high quality
and the image of low 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
from the server the pixel mask and calculates a picture of high quality at least
partly based on the pixel mask and on a selective one
Playing its subsampled copy of the 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 be apparent to those skilled in the art
Area with reference to the following detailed description and
the attached
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 consisting of pixel values in a hybrid pixel mask has been witnessed;
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
a system for remotely playing large 3D and
4D records over one
Low bandwidth network with efficient interactive performance
and more efficient visualization with full accuracy on one
usual
PC based client hardware. Such a system can be different
Volume rendering techniques (also known as volume rendering techniques)
to be applied, 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 106a–n
Fähigkeiten
aufweisen, die in herkömmlichen personal
Desktop Computer, 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 106a -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 starts 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 by 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 alternative embodiments, the record list may be organized based on search parameters provided 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 hybrid pixels 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 includes a logical XOR link between the hybrid 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 Parametern
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 hence it is 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 play again become. 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 like or alternative embodiments, the volume data is not limited to a single 3D volume, but uses a 4D sequence of multiple 3D volumes (eg, 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 is to be understood that a pixel mask, according to some embodiments, is not a hybrid combination of pixel flags and high-quality pixel values, but a result of an XOR operation between a high-quality image 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 can
in a compressed, uncompiled (not translated) and / or encrypted
Format are saved. The programs can also have program elements
which are generally helpful, such as an operating system,
a database management system, and device drivers to the controller
to allow with computer peripherals and other facilities / components
to communicate. Corresponding general purpose program elements are one
One skilled in the art is aware of this, and need not be detailed here
to be discribed.
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. Furthermore, the present method does not require that 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 picture and sends the entire picture to the client. Additionally, the present methods use a pixel mask that resides 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
It should be understood that the embodiments as shown and
only clarify the principles of the present invention
and various modifications by those skilled in the art
can be implemented
without departing from the scope of the invention. Professionals on this
Area can
implement various other feature combinations without the
Area of the invention to leave.