DE102008028311B4 - Method and apparatus for efficient client-server visualization of multi-dimensional data - Google Patents

Method and apparatus for efficient client-server visualization of multi-dimensional data Download PDF

Info

Publication number
DE102008028311B4
DE102008028311B4 DE200810028311 DE102008028311A DE102008028311B4 DE 102008028311 B4 DE102008028311 B4 DE 102008028311B4 DE 200810028311 DE200810028311 DE 200810028311 DE 102008028311 A DE102008028311 A DE 102008028311A DE 102008028311 B4 DE102008028311 B4 DE 102008028311B4
Authority
DE
Germany
Prior art keywords
client
quality image
pixel mask
pixel
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE200810028311
Other languages
German (de)
Other versions
DE102008028311A1 (en
Inventor
Gianluca Paladini
Mathia Scucchiari
Thomas Moeller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Medical Solutions USA Inc
Original Assignee
Siemens Medical Solutions USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/157,082 external-priority patent/US8063901B2/en
Application filed by Siemens Medical Solutions USA Inc filed Critical Siemens Medical Solutions USA Inc
Publication of DE102008028311A1 publication Critical patent/DE102008028311A1/en
Application granted granted Critical
Publication of DE102008028311B4 publication Critical patent/DE102008028311B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities

Abstract

In Antwort auf eine Anfrage von einem Client lädt ein Server zur Volumenwiedergabe einen Volumendatensatz aus einem Speicherarchiv, erzeugt eine unterabgetastete Kopie niedriger Auflösung aus einem derartigen Volumendatensatz und sendet sie an einen Client. In Antwort auf nachfolgende Anfragen von dem Client gibt der Server zur Volumenwiedergabe ein Bild hoher Qualität des Volumendatensatzes voller Auflösung wieder und gibt ein Bild geringer Qualität der unterabgetasteten Kopie des Volumendatensatzes wieder, erzeugt dann eine Pixelmaske oder eine Hybridpixelmaske, die kennzeichnend ist für eine Differenz zwischen dem Bild hoher Qualität und dem Bild geringer Qualität, und sendet eine derartige Pixelmaske an den Client. Der Client empfängt von dem Server die Pixelmaske und berechnet ein Bild hoher Qualität basierend zumindest teilweise auf der Pixelmaske und auf einem selektiven Wiedergeben seiner lokalen unterabgetasteten Kopie geringer Auflösung des Volumendatensatzes.In response to a request from a client, a volume rendering server loads a volume data set from a library, generates a sub-sampled low resolution copy from such volume data set, and sends it to a client. In response to subsequent requests from the client, the volume rendering server plays back a high-quality, full-resolution volume dataset and reproduces a low-quality image of the subsampled copy of the volume dataset, then generates a pixel mask or hybrid pixel mask indicative of a difference between the high quality image and the low quality image, and sends such a pixel mask to the client. The client receives the pixel mask from the server and computes a high quality image based at least in part on the pixel mask and selectively rendering its low resolution local subsampled copy of the volume data set.

Description

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 206210 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 218224 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.

Claims (16)

Verfahren zum Volumenwiedergeben mit: Empfangen einer Datenladeanfrage von einem Client (106); Laden eines Volumendatensatzes mit voller Auflösung auf einen Server (104); Berechnen (214) einer unterabgetasteten Kopie niedriger Auflösung aus dem Volumendatensatz voller Auflösung durch den Server (104); Senden der unterabgetasteten Kopie des Volumendatensatzes voller Auflösung an den Client (106); Empfangen einer Wiedergabeanfrage von dem Client (106); Wiedergeben eines Bilds hoher Qualität von dem Volumendatensatz voller Auflösung auf dem Server (104), basierend mindestens auf vorbestimmten Wiedergabeparametern, die durch den Client (106) spezifiziert werden; Wiedergeben auf dem Server (104) eines Bilds niedriger Qualität von der unterabgetasteten Kopie niedriger Auflösung des Volumendatensatzes voller Auflösung; Erzeugen (222) einer Pixelmaske (501) zumindest teilweise basierend auf dem Bild mit hoher Qualität und dem Bild niedriger Qualität auf dem Server (104); Senden (224) der Pixelmaske von dem Server (104) an den Client (106), Empfangen der vom Server gesendeten Pixelmaske am Client (106); Wiedergeben eines Bilds eines lokal unterabgetasteten Volumens niedriger Auflösung basierend auf Pixelwerten in der Pixelmaske am Client (106); und Kombinieren der Pixelmaskenwerte in der Pixelmaske mit selektiv wiedergegebenen Pixelwerten zu einem Bild hoher Qualität am Client (106).Volume rendering method comprising: receiving a data load request from a client ( 106 ); Load a full-resolution volume dataset to a server ( 104 ); To calculate ( 214 ) a subsampled low resolution copy from the full resolution volume data set by the server ( 104 ); Send the subsampled copy of the full resolution volume dataset to the client ( 106 ); Receiving a play request from the client ( 106 ); Play a high quality image of the full resolution volume dataset on the server ( 104 ), based at least on predetermined playback parameters set by the client ( 106 ) are specified; Play on the server ( 104 ) a low-quality image from the lower-resolution subsampled copy of the full-resolution volume data set; Produce ( 222 ) of a pixel mask ( 501 ) based at least in part on the high quality image and the low quality image on the server ( 104 ); Send ( 224 ) of the pixel mask from the server ( 104 ) to the client ( 106 ), Receive the pixel mask sent by the server at the client ( 106 ); Reproducing an image of a locally subsampled low resolution volume based on Pi xel values in the pixel mask on the client ( 106 ); and combining the pixel mask values in the pixel mask with selectively rendered pixel values into a high quality image at the client ( 106 ). Verfahren nach Anspruch 1, wobei die Pixelmaske (501) eine Hybrid-Pixelmaske ist.The method of claim 1, wherein the pixel mask ( 501 ) is a hybrid pixel mask. Verfahren nach Anspruch 2, wobei das Erzeugen der Hybrid-Pixelmaske aufweist: Durchführen einer XOR-Verknüpfung zwischen dem Bild hoher Qualität und dem Bild niedriger Qualität; Speichern von Nullwerten, die das Ergebnis der XOR-Verknüpfung sind; und Ersetzen der Nicht-Nullwerte, die das Ergebnis der XOR-Verknüpfung sind, durch Pixelwerte von dem Bild hoher Qualität.The method of claim 2, wherein generating the Hybrid pixel mask has: Perform an XOR between the picture of high quality and the low quality image; to save null values that are the result of the XOR operation; and Replace the non-zero values that are the result of the XOR operation, by pixel values from the high quality image. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Pixelmaske (501) eine Hybrid-Pixelmaske ist, und das Erzeugen des Bilds hoher Qualität aufweist: selektives Wiedergeben von nur denjenigen Pixelwerten, die als Null in der Pixelmaske (501) markiert sind, und Kombinieren der selektiv wiedergegebenen Pixelwerte mit Nicht-Nullwerten in der Pixelmaske (501).Method according to one of claims 1 to 3, wherein the pixel mask ( 501 ) is a hybrid pixel mask, and generating the high quality image comprises: selectively rendering only those pixel values that are zero in the pixel mask ( 501 ) and combining the selectively rendered non-zero pixel values in the pixel mask ( 501 ). Verfahren nach einem der Ansprüche 1 bis 4, wobei das Erzeugen der Pixelmaske ferner aufweist: Berechnen einer XOR-Verknüpfung zwischen Pixeln in dem Bild hoher Qualität und dem Bild niedriger Qualität, die auf dem Server (104) berechnet werden.The method of claim 1, wherein generating the pixel mask further comprises: calculating an XOR between pixels in the high quality image and the low quality image displayed on the server; 104 ) be calculated. Verfahren nach Anspruch 5, ferner mit: Empfangen der Pixelmaske von dem Server (104) am Client (106); Wiedergeben eines Bilds niedriger Qualität von einem lokalen unterabgetasteten Volumen niedriger Auflösung; Kombinieren von Pixelwerten der Pixelmaske (501) und Pixelwerten des Bilds niedriger Qualität unter Verwendung eines XOR-Operators; und Erzeugen eines Bilds hoher Qualität basierend auf den kombinierten Pixelwerten.The method of claim 5, further comprising: receiving the pixel mask from the server ( 104 ) on the client ( 106 ); Reproducing a low quality image from a local subsampled low resolution volume; Combining pixel values of the pixel mask ( 501 ) and pixel values of the low-quality image using an XOR operator; and generating a high quality image based on the combined pixel values. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Senden der unterabgetasteten Kopie des Volumens voller Auflösung von dem Server (104) zu dem Client (106) ein Komprimieren der unterabgetasteten Kopie des Volumens voller Auflösung aufweist.Method according to one of claims 1 to 6, wherein the transmission of the sub-sampled copy of the full-resolution volume from the server ( 104 ) to the client ( 106 ) comprises compressing the subsampled copy of the full resolution volume. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Senden der Pixelmaske von dem Server (104) zu dem Client (106) ein Komprimieren der Pixelmaske (501) unter Verwendung einer verlustfreien Kompression aufweist.The method of any one of claims 1 to 7, wherein sending the pixel mask from the server ( 104 ) to the client ( 106 ) compressing the pixel mask ( 501 ) using lossless compression. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Wiedergabeanfrage von dem Client (106) an den Server (104) auf der Schnelligkeit von Eingaben basiert, die von einem Benutzer empfangen werden, der mit Betrachtungsparametern auf dem Client (106) interagiert.Method according to one of claims 1 to 8, wherein the playback request from the client ( 106 ) to the server ( 104 ) is based on the speed of inputs received from a user who is viewing parameters on the client ( 106 ) interacts. Vorrichtung zum Volumenwiedergeben, mit: einem Server (104) zum Empfangen einer Datenladeanfrage von einem Client (106); und einem Mittel zum Laden eines Volumendatensatzes voller Auflösung auf den Server (104); wobei der Server angepasst ist zum Berechnen einer unterabgetasteten Kopie niedriger Auflösung aus dem Volumendatensatz voller Auflösung; zum Übertragen der unterabgetasteten Kopie des Volumendatensatzes voller Auflösung an den Client (106); zum Empfangen einer Wiedergabeanfrage von dem Client (106); zum Wiedergeben eines Bilds hoher Qualität von dem Volumendatensatz voller Auflösung basierend zumindest teilweise auf vorbestimmten Wiedergabeparametern; zum Wiedergeben eines Bilds niedriger Qualität von der unterabgetasteten Kopie niedriger Auflösung des Volumendatensatzes voller Auflösung; zum Erzeugen einer Pixelmaske (501) zumindest teilweise basierend auf dem Bild hoher Qualität und dem Bild niedriger Qualität; und zum Übertragen der Pixelmaske an den Client (106), und der Client angepasst ist zum Empfangen der Pixelmaske (501); zum Wiedergeben eines Bilds eines lokalen unterabgetasteten Volumens niedriger Auflösung basierend auf Pixelwerten in der Pixelmaske (501); und zum Kombinieren der Pixelmaskenwerte in der Pixelmaske (501) mit selektiv wiedergegebenen Pixelwerten zu einem Bild hoher Qualität.Device for volume rendering, comprising: a server ( 104 ) for receiving a data load request from a client ( 106 ); and means for loading a full resolution volume dataset onto the server ( 104 ); wherein the server is adapted to calculate a subsampled low resolution copy from the full resolution volume data set; to transmit the subsampled copy of the full resolution volume data set to the client ( 106 ); for receiving a playback request from the client ( 106 ); for reproducing a high quality image from the full resolution volume data set based at least in part on predetermined rendering parameters; for displaying a low quality image from the lower resolution subsampled copy of the full resolution volume data set; for creating a pixel mask ( 501 ) based at least in part on the high quality image and the low quality image; and to transfer the pixel mask to the client ( 106 ), and the client is adapted to receive the pixel mask ( 501 ); to render an image of a local sub-sampled low resolution volume based on pixel values in the pixel mask ( 501 ); and for combining the pixel mask values in the pixel mask ( 501 ) with selectively rendered pixel values to a high quality image. Vorrichtung nach Anspruch 10, wobei der Server (104) zum Erzeugen der Pixelmaske (501) aufweist: ein Mittel zum Durchführen einer XOR-Verknüpfung zwischen dem Bild hoher Qualität und dem Bild niedriger Qualität; ein Mittel zum Speichern von Nullwerten, die das Ergebnis der XOR-Verknüpfung sind; und ein Mittel zum Ersetzen der Nicht-Nullwerte, die das Ergebnis der XOR-Verknüpfung sind, mit Pixelwerten von dem Bild hoher Qualität.Apparatus according to claim 10, wherein the server ( 104 ) for generating the pixel mask ( 501 ): means for performing XOR linking between the high quality image and the low quality image; means for storing zero values which are the result of the XOR operation; and means for replacing the non-zero values that are the result of the XOR operation with pixel values from the high-quality image. Vorrichtung nach Anspruch 10 oder 11, wobei die Pixelmaske (501) eine Hybrid-Pixelmaske ist, und der Server (104) zum Erzeugen des Bilds hoher Qualität aufweist: ein Mittel zum selektiven Wiedergeben von nur denjenigen Pixelwerten, die als Null in der Pixelmaske (501) markiert sind; und ein Mittel zum Kombinieren der selektiv wiedergegebenen Pixelwerte mit Nicht-Nullwerten in der Pixelmaske (501).Apparatus according to claim 10 or 11, wherein the pixel mask ( 501 ) is a hybrid pixel mask, and the server ( 104 ) for generating the high quality image: means for selectively rendering only those pixel values zero in the pixel mask ( 501 ) are marked; and a means for combining the selectively replayed apply pixel values with nonzero values in the pixel mask ( 501 ). Vorrichtung nach einem der Ansprüche 10 bis 12, wobei der Server zum Erzeugen der Pixelmaske (501) ferner aufweist: ein Mittel zum Berechnen einer XOR-Verknüpfung zwischen Pixeln in dem Bild hoher Qualität und dem Bild niedriger Qualität.The apparatus of any of claims 10 to 12, wherein the server for generating the pixel mask ( 501 ) further comprises: means for calculating an XOR between pixels in the high quality image and the low quality image. Vorrichtung nach einem der Ansprüche 10 bis 13, wobei der Client angepasst ist zum Empfangen der Pixelmaske (501); zum Wiedergeben eines Bilds schlechter Qualität des lokalen unterabgetasteten Volumens schlechter Auflösung; zum Kombinieren der Pixelwerte der Pixelmaske (501) und der Pixelwerte des Bilds schlechter Qualität unter Verwendung eines XOR-Operators; und zum Erzeugen eines Bilds hoher Qualität basierend auf den kombinierten Pixelwerten.Apparatus according to any one of claims 10 to 13, wherein the client is adapted to receive the pixel mask ( 501 ); to reproduce a poor quality image of the local sub-sampled low-resolution volume; for combining the pixel values of the pixel mask ( 501 ) and the pixel values of the poor quality picture using an XOR operator; and to generate a high quality image based on the combined pixel values. Vorrichtung nach einem der Ansprüche 10 bis 14, ferner mit: einem Mittel zum Komprimieren der unterabgetasteten Kopie des Volumens voller Auflösung.The device of any one of claims 10 to 14, further comprising: one Means for compressing the subsampled copy of the volume full resolution. Maschinenlesbares Medium mit Programmanweisungen, die darauf gespeichert sind, wobei die Anweisungen in der Lage sind durch einen Prozessor ausgeführt zu werden, um den Prozessor zu veranlassen das Verfahren gemäß einem der Ansprüche 1 bis 9 durchzuführen.Machine readable medium with program instructions, which are stored on it, the instructions being able to executed by a processor to initiate the process according to a processor the claims 1 to 9.
DE200810028311 2007-06-19 2008-06-13 Method and apparatus for efficient client-server visualization of multi-dimensional data Active DE102008028311B4 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US94485807P 2007-06-19 2007-06-19
US60/944,858 2007-06-19
US12/157,082 2008-06-06
US12/157,082 US8063901B2 (en) 2007-06-19 2008-06-06 Method and apparatus for efficient client-server visualization of multi-dimensional data

Publications (2)

Publication Number Publication Date
DE102008028311A1 DE102008028311A1 (en) 2009-01-29
DE102008028311B4 true DE102008028311B4 (en) 2010-02-18

Family

ID=40157534

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810028311 Active DE102008028311B4 (en) 2007-06-19 2008-06-13 Method and apparatus for efficient client-server visualization of multi-dimensional data

Country Status (1)

Country Link
DE (1) DE102008028311B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11302056B2 (en) 2020-06-10 2022-04-12 Nvidia Corporation Techniques for traversing data employed in ray tracing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US20040179744A1 (en) * 1998-07-03 2004-09-16 Chang Paul Joseph Methods and apparatus for dynamic transfer of image data
US7042454B1 (en) * 1999-10-27 2006-05-09 Hewlett-Packard Development Company, L.P. Method and apparatus for displaying distributed multiresolution scenes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61283967A (en) 1985-06-10 1986-12-13 Toshiba Corp Picture recording and reproducing device
JP3766608B2 (en) 2001-05-02 2006-04-12 テラリコン・インコーポレイテッド 3D image display device in network environment
US6925117B2 (en) 2003-03-12 2005-08-02 Kabushiki Kaisha Toshiba Data transmission apparatus, method and program, data reception apparatus and method, and data transmission and reception system, using differential data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US20040179744A1 (en) * 1998-07-03 2004-09-16 Chang Paul Joseph Methods and apparatus for dynamic transfer of image data
US7042454B1 (en) * 1999-10-27 2006-05-09 Hewlett-Packard Development Company, L.P. Method and apparatus for displaying distributed multiresolution scenes

Also Published As

Publication number Publication date
DE102008028311A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
CN101334818B (en) Method and apparatus for efficient client-server visualization of multi-dimensional data
DE602004009591T2 (en) DIFFERENTIAL CODING BY USING A 3D GRAPHIC PROCESSOR
US6683933B2 (en) Three-dimensional image display device in network
DE102006043894B3 (en) Multi-dimensional compressed graphical data recalling and graphically visualizing method, involves forming volume areas at examination point in location variant detailed gradient as volume units of partitioned, viewer-distant volume areas
DE102005007530B4 (en) Prioritized image visualization from scalable compressed data
DE69634962T2 (en) Extrapolation of pixel values of a video object contained in a block
DE102007040585B4 (en) Providing representative image information
Jeong et al. Ssecrett and neurotrace: interactive visualization and analysis tools for large-scale neuroscience data sets
DE69831961T2 (en) IMAGE OBJECT PROCESSING FOR OBJECT-BASED CODING SYSTEMS USING MASKS AND ROUNDED MEDIUM VALUES
DE102007034006B9 (en) System and method for direct volume playback
DE102008035461A1 (en) Multi-volume rendering of single-mode data in medical diagnostic imaging
DE10392338T5 (en) Visualization of the volume-volume fusion
US20070130165A1 (en) Systems for fast efficient retrieval of medical image data from multidimensional data sets, related methods and computer products
DE112013004778T5 (en) Encoding images using a 3D mesh of polygons and corresponding structures
DE102013020810A1 (en) Efficient super-scanning with shading strands per pixel
DE102013017640A1 (en) Distributed tiled caching
DE102019127726A1 (en) SUITABLE STREAMING OF INDIVIDUAL APPLICATION WINDOWS FOR REMOTE WORKPLACE APPLICATIONS
DE102005029225A1 (en) System and method for rapidly generating maximum / minimum intensity projections of high quality
DE102007038920A1 (en) Fast JPEG-LS-based compression method for medical images
EP3066596A1 (en) System for displaying and editing data for a medical device
DE102009042326A1 (en) Interactively changing the appearance of an object represented by volume rendering
DE102008005476B4 (en) Method for image compression of medical sectional images with 3D graphic information
DE102004056538A1 (en) Gradual navigation in a medical volume image
DE102008028311B4 (en) Method and apparatus for efficient client-server visualization of multi-dimensional data
Campoalegre et al. Interactive visualization of medical volume models in mobile devices

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R082 Change of representative