[go: up one dir, main page]

DE102012202537A1 - System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network - Google Patents

System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network Download PDF

Info

Publication number
DE102012202537A1
DE102012202537A1 DE201210202537 DE102012202537A DE102012202537A1 DE 102012202537 A1 DE102012202537 A1 DE 102012202537A1 DE 201210202537 DE201210202537 DE 201210202537 DE 102012202537 A DE102012202537 A DE 102012202537A DE 102012202537 A1 DE102012202537 A1 DE 102012202537A1
Authority
DE
Germany
Prior art keywords
backend
unit
volume data
render
end unit
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.)
Pending
Application number
DE201210202537
Other languages
German (de)
Inventor
Karlheinz Dorn
Thomas Friese
Dr. Ukis Vladyslav
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 Healthineers Ag De
Original Assignee
Siemens AG
Siemens Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG, Siemens Corp filed Critical Siemens AG
Priority to DE201210202537 priority Critical patent/DE102012202537A1/en
Publication of DE102012202537A1 publication Critical patent/DE102012202537A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

The system (1) has a front end-unit (2) for generating render orders (A) based on user inputs (E) and for transmitting the orders to a backend-unit (3). The backend-unit derives rendered VR-images (B) from volume dataset (V). The frontend-unit displays the VR-images. The frontend and backend-units are operated as components of a common operating system process or in different operating system processes of a common computer system or in different computer systems of a data transmission network i.e. Internet. The backend-unit comprises a data loading module for storing the volume dataset.

Description

Die Erfindung bezieht sich auf ein System zur Bildsynthese (auch: Rendern) eines Volumendatensatzes, wie er insbesondere in der Medizintechnik von einer tomographischen, bildgebenden Modalität, insbesondere einem Computertomographen oder MR-Tomographen erzeugt wird. The invention relates to a system for image synthesis (also: rendering) of a volume data set, as is generated in particular in medical technology by a tomographic, imaging modality, in particular a computed tomography or MR tomograph.

Als Volumendatensatz wird demnach ein Datensatz bezeichnet, der eine Vielzahl von Bildpunkten (Voxeln) enthält, wobei diese Bildpunkte jeweils einen Farb- oder Grauwert spezifizieren, und wobei diesen Bildpunkten jeweils eine Position in einem dreidimensionalen Bildkoordinatensystem zugewiesen ist. Ein Volumendatensatz besteht insbesondere häufig aus einer Aneinanderreihung einer Vielzahl von zweidimensionalen Schichtbildern (x/y-Ebenen), die das abgebildete Volumen parallel an unterschiedlicher Position einer dritten Bildkoordinate (z-Richtung) schneiden. Accordingly, a volume data set is a data record which contains a plurality of pixels (voxels), these pixels each specifying a color or gray value, and wherein each of these pixels is assigned a position in a three-dimensional image coordinate system. In particular, a volume data set frequently consists of a sequence of a plurality of two-dimensional slice images (x / y planes) which intersect the imaged volume in parallel at different positions of a third image coordinate (z direction).

Als „Bildsynthese“ oder „Rendern“ wird die Abbildung des Volumendatensatzes auf einen zweidimensionalen Bilddatensatz bezeichnet, der die in dem Volumendatensatz enthaltene 3D-Struktur in einer räumlichen (insbesondere perspektivischen) Ansicht aus einer vorgegebenen Blickrichtung (Perspektive) darstellt. Der durch Rendern erzeugte zweidimensionale Bilddatensatz (nachfolgend auch als VR-Bild bezeichnet) visualisiert also die Ansicht, die sich einem Beobachter ergeben würde, der die abgebildete 3D-Struktur unter der vorgegebenen Blickrichtung betrachtet. Rendern ist insbesondere in der Medizintechnik gebräuchlich, um medizinische Volumendatensätze (Tomogramme) in anzeigbare 2D-Ansichten umzusetzen. The term "image synthesis" or "rendering" refers to the mapping of the volume data set to a two-dimensional image data set that represents the 3D structure contained in the volume data set in a spatial (in particular perspective) view from a predetermined viewing direction (perspective). The two-dimensional image data set generated by rendering (also referred to below as VR image) thus visualizes the view which would result for an observer who views the imaged 3D structure under the given viewing direction. Rendering is commonly used in medical technology to translate medical volume datasets (tomograms) into displayable 2D views.

Das realistische Rendern von Volumendatensätzen erfordert jedoch regelmäßig einen hohen numerischen Aufwand, und ist daher nur mit performanten Rechnersystemen und/oder entsprechend hoher Rechenzeit durchzuführen. Insbesondere in der medizintechnischen Anwendung, wo die verwendeten Volumendatensätze oft speicherplatzintensiv sind und zudem regelmäßig aus in schneller zeitlicher Folge wechselnder Perspektive betrachtet werden, ist die Rechenzeit ein kritischer Faktor. Herkömmliche Bildsynthesesysteme sind daher häufig in hohem Maße auf die Minimierung des Rechenaufwandes und damit der Rechenzeit optimiert. Hierzu sind herkömmliche Bildsynthese-Systeme oft speziell auf eine bestimmte Hardwareumgebung ausgelegt und arbeiten nur in dieser Hardwareumgebung mit ausreichender Performanz. Insbesondere sind herkömmliche Bildsynthese-Systeme häufig entweder nur am Client oder nur in einer bestimmten Client-Server-Struktur lauffähig. Des Weiteren sind herkömmliche Bildsynthese-Systeme häufig entweder nur für die Nutzung auf eines Graphikprozessors (GPU) oder nur für die Nutzung eines Zentralprozessors (CPU) ausgelegt und/oder benötigen eine bestimmte Netzwerkqualität. Des Weiteren können Bildsynthese-Systeme üblicherweise nur Volumendaten eines bestimmten Datenformats einlesen. However, the realistic rendering of volume data sets regularly requires a high level of numerical complexity, and is therefore only possible with high-performance computer systems and / or correspondingly high computation time. In particular, in the medical technology application, where the volume data sets used are often memory space intensive and are also regularly considered in rapid temporal sequence of changing perspective, the computing time is a critical factor. Conventional image synthesis systems are therefore often optimized to minimize the computational effort and thus the computing time. For this purpose, conventional image synthesis systems are often designed specifically for a specific hardware environment and work only in this hardware environment with sufficient performance. In particular, conventional image synthesis systems often run either only on the client or only in a specific client-server structure. Furthermore, conventional image synthesis systems are often designed either for use only on a graphics processor (GPU) or for the use of a central processor (CPU) and / or require a certain network quality. Furthermore, image synthesis systems can usually read only volume data of a particular data format.

Im Zuge zunehmender Arbeitsteilung, insbesondere auch zwischen geographisch entfernten Standorten, und zunehmender datentechnischer Vernetzung besteht andererseits ein wachsendes Bedürfnis daran, Bildsynthese-Anwendungen flexibel in unterschiedlichen technischen Umgebungen zur Verfügung zu stellen. On the other hand, in the course of increasing division of labor, especially between geographically distant locations, and increasing data networking, there is a growing need to provide image synthesis applications flexibly in different technical environments.

Der Erfindung liegt die Aufgabe zugrunde, ein System zum Rendern eines Volumendatensatzes im Hinblick auf die vorstehend beschriebene Problematik zu verbessern. The invention has for its object to improve a system for rendering a volume data set in view of the above-described problems.

Diese Aufgabe wird erfindungsgemäß gelöst durch die Merkmale des Anspruchs 1. Vorteilhafte und teils für sich erfinderische Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. This object is achieved by the features of claim 1. Advantageous and partly inventive embodiments of the invention are the subject of the dependent claims.

Danach umfasst das System eine Frontend-Einheit und eine Backend-Einheit. Die Frontend-Einheit dient hierbei zur Interaktion mit einem Nutzer. Konkret ist sie dazu eingerichtet, anhand von Nutzereingaben Render-Aufträge zu erzeugen und an die Backend-Einheit zu übermitteln. Die Frontend-Einheit ist weiterhin dazu eingerichtet, gerenderte Bilder (VR-Bilder) anzuzeigen. Thereafter, the system includes a front-end unit and a back-end unit. The front-end unit serves to interact with a user. Specifically, it is set up to generate render jobs based on user input and to transmit them to the backend unit. The frontend unit is also set up to display rendered images (VR images).

Zur Interaktion mit einem Nutzer umfasst die Frontend-Einheit zweckmäßigerweise eine graphische Nutzeroberfläche (GUI), innerhalb der die VR-Bilder auf einem Bildschirm anzeigbar sind. Nutzereingaben können innerhalb dieser Nutzeroberfläche insbesondere durch Mausaktionen (also Bewegung eines Mauszeigers) in Kombination mit dem Betätigen einer oder mehrerer Tasten oder auf vergleichbare Weise getätigt werden. In der für Graphikanwendungen an sich üblichen Weise kann eine solche Mausaktion insbesondere die Anweisung vermitteln, eine auf der Nutzeroberfläche als VR-Bild angezeigte Volumenstruktur innerhalb eines Anzeigefeldes zu verschieben, zu drehen und/oder zu skalieren (d.h. zu vergrößern oder verkleinern). Solche Anweisungen werden auch als „Pan & Zoom“ bezeichnet und führen regelmäßig dazu, dass der angezeigte Volumendatensatz neu, insbesondere unter einer anderen Perspektive gerendert werden muss. For interaction with a user, the front-end unit expediently comprises a graphical user interface (GUI) within which the VR images can be displayed on a screen. User entries can be made within this user interface in particular by mouse actions (ie movement of a mouse pointer) in combination with the actuation of one or more keys or in a comparable manner. In the usual manner for graphics applications, such a mouse action may in particular impart the instruction to move, rotate, and / or scale (i.e., zoom in or out) a volume structure displayed on the user interface as a VR image within a display panel. Such instructions are also referred to as "pan & zoom" and regularly result in the displayed volume data set having to be re-rendered, especially under a different perspective.

Die Backend-Einheit dient zur Durchführung aller rechenintensiven Tätigkeit beim Rendern des Volumendatensatzes. Sie ist konkret dazu eingerichtet, nach Maßgabe der Render-Aufträge aus dem Volumendatensatz die VR-Bilder abzuleiten und diese VR-Bilder zur Anzeige an die Frontend-Einheit zurückzuleiten. The backend unit is used to perform all the computationally intensive activity of rendering the volume data set. Specifically, it is set up to derive the VR images from the volume data set in accordance with the render jobs and to return these VR images to the front-end unit for display.

Erfindungsgemäß sind die Frontend-Einheit und die Backend-Einheit dabei derart gestaltet, dass sie in verschiedenen „Deployment“-Varianten (also in verschiedenen Verteilungen auf zugrundeliegende Rechnersysteme) betrieben werden können. So sind die Frontend-Einheit und die Backend-Einheit sowohl auf einen gemeinsamen Rechnersystem als auch auf verschiedenen Rechnersystemen eines Datenübertragungsnetzwerkes, insbesondere dem Internet, betreibbar. In ersterem Fall sind die Frontend-Einheit und die Backend-Einheit weiterhin sowohl als Bestandteil eines gemeinsamen Betriebssystemprozesses als auch in unterschiedlichen Betriebssystemprozessen des gemeinsamen Rechnersystems betreibbar. Optional kann im Rahmen der Erfindung weiterhin vorgesehen sein, dass auch die Backend-Einheit selbst in unterschiedlichen Deploymentvarianten betreibbar ist. Insbesondere kann in diesem Sinne vorgesehen sein, dass verschiedene Schichten der Backend-Einheit auf verschiedene Server verteilt implementierbar sind. Eine oder mehrere Schichten der Backend-Einheit können dabei insbesondere auch zusammen mit der Frontend-Einheit auf einem gemeinsamen Client implementiert sein, während mindestens eine weitere Schicht der Backend-Einheit serverseitig implementiert ist. According to the invention, the front-end unit and the back-end unit are designed such that they can be operated in different "deployment" variants (that is, in different distributions on underlying computer systems). Thus, the front-end unit and the back-end unit can be operated both on a common computer system and on different computer systems of a data transmission network, in particular the Internet. In the former case, the frontend unit and the backend unit continue to be operable both as part of a common operating system process as well as in different operating system processes of the common computer system. Optionally, it can also be provided within the scope of the invention that the backend unit itself can also be operated in different deployment variants. In particular, it can be provided in this sense that different layers of the backend unit can be implemented distributed to different servers. One or more layers of the backend unit can in particular also be implemented together with the frontend unit on a common client, while at least one further layer of the backend unit is implemented on the server side.

Der Begriff „Rechnersystem“ bezeichnet dabei entweder eine (physikalische) Hardwarestruktur, d.h. einen Computer, mit einem darauf aufgesetzten Betriebssystem oder eine virtuelle Maschine (ggf. wiederum mit einem darauf aufgesetzten Betriebssystem). Rechnersysteme, auf denen die Frontend-Einheit implementiert ist, sind im Folgenden als „Client“ bezeichnet. Rechnersysteme, auf denen zumindest ein Teil der Backend-Einheit implementiert ist, nicht aber die Frontend-Einheit, sind im Folgenden als „Server“ bezeichnet. The term "computer system" designates either a (physical) hardware structure, i. a computer with an operating system mounted on it or a virtual machine (or, if necessary, with an operating system installed thereon). Computer systems on which the front-end unit is implemented are referred to below as "client". Computer systems on which at least part of the back-end unit is implemented, but not the front-end unit, are referred to below as "server".

Zusätzlich zu dem Betriebssystem kann das jeweilige Rechnersystem sogenannte Middleware (insbesondere in Form einer „Software-Plattform“ oder eines „Frameworks“) umfassen, die auf dem Betriebssystem aufgesetzt ist, und auf der wiederum die Frontend-Einheit bzw. Backend-Einheit ablaufen. So ist die Backend-Einheit vorzugsweise für den Ablauf innerhalb des .NET-Frameworks der Fa. Microsoft Corporation ausgebildet. Die Frontend-Einheit ist vorzugsweise als Internet-Applikation zum Ablauf in einem Internet-Browser des jeweiligen Clients ausgebildet. In addition to the operating system, the respective computer system may comprise what are known as middleware (in particular in the form of a "software platform" or a "framework") which is set up on the operating system and on which the front-end unit or back-end unit is run. Thus, the backend unit is preferably designed for the course within the .NET framework of the company Microsoft Corporation. The front-end unit is preferably designed as an Internet application for execution in an Internet browser of the respective client.

Die Frontend-Einheit und die Backend-Einheit sind insbesondere derart gestaltet, dass sie unabhängig voneinander ausführbar und ohne Source-Code-Änderung, d.h. mit ein und demselben Source-Code-Stamm in den unterschiedlichen Deployments ausführbar sind. In particular, the front-end unit and the back-end unit are designed to be executable independently of each other and without source code change, i. with one and the same source code root executable in the different deployments.

Die Betreibbarkeit des Systems in verschiedenen Deployments ermöglicht einen flexiblen, gleichzeitig aber effektiven Einsatz des Systems in unterschiedlichen Hardwareumgebungen bei gleichzeitig geringem Entwicklungsaufwand. So ist es insbesondere möglich, das System in einem gewöhnlichen Rechnernetzwerk, beispielsweise einem LAN einer medizinischen Einrichtung zu betreiben, wobei in diesem Fall die Backend-Einheit vorzugsweise auf einem zentralen Server implementiert ist, während eine Anzahl von Clients jeweils eine Instanz der Frontend-Einheit enthält. Mit dem gleichen System ist aber auch ein Offline-Einsatz möglich, wobei in diesem Fall die Frontend-Einheit und die Backend-Einheit auf ein und demselben Rechnersystem, beispielsweise einem PC ohne Netzanschluss implementiert sind. In einer weiteren Deployment-Variante können eine oder mehrere Instanzen der Frontend-Einheit auf mobilen Kleinrechnern, beispielsweise Smartphones oder Tablet-PCs implementiert sein, wobei diese Frontend-Einheiten über das Internet auf die – in diesem Fall im Rahmen eines Webservers implementierte – Backend-Einheit zugreifen. The operability of the system in different deployments allows a flexible, but effective use of the system in different hardware environments with low development costs. Thus, in particular, it is possible to operate the system in an ordinary computer network, for example a LAN of a medical device, in which case the backend unit is preferably implemented on a central server, while a number of clients each have an instance of the frontend unit contains. With the same system but also an offline use is possible, in which case the front-end unit and the back-end unit are implemented on the same computer system, such as a PC without power supply. In a further deployment variant, one or more instances of the front-end unit can be implemented on mobile mini-computers, for example smartphones or tablet PCs, these front-end units being transmitted via the Internet to the back-end system implemented in this case as part of a web server. Unit access.

Das erfindungsgemäße System ermöglicht insbesondere auch einen Wechsel zwischen verschiedenen Deployment-Varianten. Beispielsweise kann eine Frontend-Einheit, die auf einem Client implementiert ist, immer dann auf eine entfernt in einem Server implementierte Backend-Einheit zugreifen, wenn der Client netzwerktechnisch mit dem entsprechenden Server verbunden ist, und immer dann auf eine rechnerinterne Backend-Einheit zugreifen, wenn die Netzwerkverbindung unterbrochen wird. In einem anderen Anwendungsfall kann ein Nutzer das System wahlweise von seinem Büro-PC oder seinem Smartphone aus bedienen, wobei er auf identische Instanzen der Frontend-Einheit zugreift. The system according to the invention also makes it possible, in particular, to switch between different deployment variants. For example, a front-end appliance implemented on a client can always access a remotely deployed back-end appliance in a server if the client is network-connected to the appropriate server, and then access an on-machine backend appliance, when the network connection is lost. In another application, a user may optionally operate the system from his office PC or smartphone, accessing identical instances of the front-end unit.

Aufgrund seiner Flexibilität hinsichtlich des Deployments der Frontend-Einheit und der Backend-Einheit kann das System in Hardware-Umgebungen mit äußerst unterschiedlicher Performanz eingesetzt werden. Um angesichts dieser Variabilität der Umgebungsbedingungen eine Überlastung des Systems auszuschließen, verfügt das System in bevorzugter Ausbildung über eine automatische Arbeitsflusssteuerung. Im Zuge dieser Arbeitsflusssteuerung ist die Frontend-Einheit zweckmäßigerweise dazu eingerichtet, die Anzahl der „offenen“ (d.h. an die Backend-Einheit übermittelten, aber noch nicht abgeschlossenen) Render-Aufträge zu ermitteln, und neue Render-Aufträge nur dann abzusenden, wenn diese Anzahl einen vorgegebenen Grenzwert nicht überschreitet. Because of its flexibility in deploying the front-end unit and the back-end unit, the system can be used in hardware environments with very different performance. In order to avoid overloading the system in view of this variability of the environmental conditions, the system preferably has automatic workflow control. In the course of this workflow control, the front-end unit is conveniently set up to determine the number of "open" (ie transmitted to the backend unit but not yet completed) render jobs, and to submit new render jobs only if they are Number does not exceed a predetermined limit.

Ein Render-Auftrag ist hierbei dann abgeschlossen, wenn die Backend-Einheit das mit dem Render-Auftrag angeforderte VR-Bilder erzeugt und an die Frontend-Einheit zurückgeschickt hat. Sofern und solange die Anzahl der offenen Render-Aufträge den Grenzwert überschreitet, werden neue Render-Aufträge vorzugsweise durch die Frontend-Einheit verworfen. Alternativ ist im Rahmen der Erfindung grundsätzlich denkbar, dass die Frontend-Einheit überzählige Render-Aufträge in eine Warteschlange einreiht und zu einem späteren Zeitpunkt an die Backend-Einheit übermittelt. A render job is completed when the backend unit has generated the VR images requested with the render job and sent them back to the frontend unit. Provided and as long as the number of open render jobs exceeds the threshold, new render jobs are preferably discarded by the front end unit. Alternatively, in the context of the invention, it is fundamentally conceivable for the front-end unit to queue surplus render jobs in a queue and transmit them to the back-end unit at a later time.

Alternativ hierzu kann die Arbeitsflusssteuerung im Rahmen der Erfindung auch backend-seitig implementiert sein. In diesem Fall ist die Backend-Einheit dazu eingerichtet, die Anzahl der offenen Render-Aufträge zu ermitteln, und neue Render-Aufträge nur dann anzunehmen, wenn diese Anzahl den vorgegebenen Grenzwert nicht überschreitet. Überzählige Render-Aufträge werden anderenfalls von der Backend-Einheit durch entsprechende Mitteilung an die Frontend-Einheit abgelehnt oder stillschweigend ignoriert. Alternatively, the workflow control in the invention may also be implemented on the backend side. In this case, the backend unit is set up to determine the number of open render jobs, and to accept new render jobs only if that number does not exceed the specified limit. Otherwise, excess render jobs will be rejected or tacitly ignored by the backend unit by notification to the frontend unit.

Um abhängig von dem jeweiligen Deployment des Systems die zur Verfügung stehenden Ressourcen optimiert nutzen zu können, ist der Grenzwert, also die zugelassene Maximalanzahl an offenen Render-Aufträgen für verschiedene vorgesehene Deployment-Varianten vorzugsweise jeweils individuell, und somit gegebenenfalls unterschiedlich vorgegeben. Beispielsweise ist dieser Grenzwert auf den Wert „1“ gesetzt, wenn die Frontend-Einheit und die Backend-Einheit auf ein und demselben Rechnersystem implementiert sind. Bei Deployment der Frontend-Einheit und die Backend-Einheit über das Internet ist der Grenzwert dagegen vorzugsweise auf den Wert „6“ (pro Client) gesetzt. In order to be able to use the available resources optimally depending on the respective deployment of the system, the limit value, that is to say the permitted maximum number of open render jobs for different envisaged deployment variants, is preferably each individual, and thus possibly specified differently. For example, this limit is set to the value "1" when the front-end unit and the back-end unit are implemented on the same computer system. When deploying the front-end unit and the back-end unit via the Internet, the limit is preferably set to the value "6" (per client).

Zur weiteren Flexibilisierung des Systems ist die Backend-Einheit vorzugsweise derart eingerichtet, dass sie Volumendatensätze mindestens zweier Datenformate laden und verarbeiten kann. Insbesondere ist die Backend-Einheit dabei dazu eingerichtet, die Volumendaten von mehreren der Formate DICOM, RAW, JPEG und/oder Deep Zoom einzulesen. Vorzugsweise umfasst hierbei die Backend-Einheit ein multiformatfähiges Datenlademodul, das dazu eingerichtet ist, alle Volumendatensätze zur weiteren Verarbeitung in einem gemeinsamen Ausgabeformat, insbesondere dem Rohdatenformat RAW auszugeben. Alle Volumendatensätze, die ursprünglich in einem abweichenden Format gespeichert sind, werden hierbei von dem Datenlademodul in das gemeinsame Ausgabeformat umgewandelt. Alternativ können verschiedene Lademodule für die verschiedenen Datenformate vorgesehen sein. To further make the system more flexible, the backend unit is preferably set up in such a way that it can load and process volume data sets of at least two data formats. In particular, the backend unit is set up to read in the volume data from several of the DICOM, RAW, JPEG and / or Deep Zoom formats. In this case, the back-end unit preferably comprises a multiformat-capable data loading module which is set up to output all volume data records for further processing in a common output format, in particular the raw data format RAW. All volume data sets that were originally stored in a different format are converted by the data load module into the common output format. Alternatively, different load modules can be provided for the different data formats.

Ebenfalls um die je nach Deployment vorhandenen Hardwareressourcen bestmöglich zu nutzen, ist die Backend-Einheit in einer weiteren Ausführungsvariante dazu eingerichtet, die Hardware-Konfiguration des Rechnersystems zu ermitteln, auf dem die Backend-Einheit (oder zumindest dessen Render-Algorithmus) implementiert ist. Ein Hardware-Erkennungsmodul der Backend-Einheit prüft hierbei insbesondere, ob das Rechnersystem über einen Graphikprozessor (GPU) verfügt und/oder ermittelt die Anzahl der für die Bildsynthese verfügbaren Zentralprozessoren (CPUs oder CPU-Kerne). In Anhängigkeit der ermittelten Hardwarekonfiguration erzeugt die Backend-Einheit dabei die VR-Bilder wahlweise unter Zugriff auf den Graphikprozessor oder mindestens einem Zentralprozessor. Die Backend-Einheit ist also mit anderen Worten dazu eingerichtet, beide Prozessorarten zu nutzen und je nach Verfügbarkeit eine dieser beiden Prozessorarten auszuwählen. Die Backend-Einheit ist hierbei zweckmäßigerweise dazu eingerichtet, den Graphikprozessor zu nutzen, sofern ein solcher verfügbar ist und ansonsten auf einen oder mehrere Zentralprozessoren des zugrundeliegenden Rechnersystems auszuweichen. Likewise, in order to make the best possible use of the hardware resources available depending on the deployment, the backend unit in a further embodiment variant is set up to determine the hardware configuration of the computer system on which the backend unit (or at least its rendering algorithm) is implemented. A hardware recognition module of the backend unit checks in particular whether the computer system has a graphics processor (GPU) and / or determines the number of central processors (CPUs or CPU cores) available for the image synthesis. Depending on the hardware configuration determined, the backend unit thereby generates the VR images optionally with access to the graphics processor or at least one central processor. In other words, the back-end unit is set up to use both types of processors and to select one of these two types of processors depending on the availability. The backend unit is expediently adapted to use the graphics processor, if such is available and otherwise to avoid one or more central processors of the underlying computer system.

Zur weitestmöglichen Verringerung der Latenzzeit, also der Zeitspanne, die ein Nutzer von der Nutzereingabe bis zur Anzeige des VR-Bildes warten muss, ist die Backend-Einheit bevorzugt dazu eingerichtet, den einem Render-Auftrag zugrundeliegenden Volumendatendatensatz nicht im Ganzen, sondern progressiv (d.h. sukzessive in mehreren Teilen oder „Chunks“) einzuladen. Zumindest der erste Chunk ist dabei vorzugsweise derart gewählt, dass die in ihm enthaltenen Voxel über das ganze abgebildete Volumen verteilt sind, so dass bereits ein anhand dieses Chunks erzeugtes VR-Bild die gesamte Volumenstruktur des Volumendatensatzes, wenn auch in geringer Auflösung, wiedergibt. Das erste zu einem Volumendatensatz erzeugte VR-Bild wird hierbei zweckmäßigerweise nur aus einer Teilmenge der Voxel des Volumendatensatzes, und somit mit vergleichsweise geringer Auflösung erzeugt. Bei der Abarbeitung nachfolgender Render-Aufträge zu demselben Volumendatensatz werden jeweils alle bereits eingeladenen Voxel berücksichtigt, so dass die zugehörigen VR-Bilder mit sukzessive steigender Auflösung erzeugt werden. To reduce the latency time as much as possible, ie, the time that a user must wait from the user input to the display of the VR image, the backend unit is preferably set up to render the volume data record underlying a render job not as a whole but progressively (ie successively in several parts or "chunks"). At least the first chunk is preferably selected such that the voxels contained in it are distributed over the entire imaged volume, so that even a VR image generated on the basis of this chunk reproduces the entire volume structure of the volume data set, albeit in low resolution. The first VR image generated to form a volume data set is expediently generated only from a subset of the voxels of the volume data set, and thus with a comparatively low resolution. When processing subsequent render jobs for the same volume data set, all voxels already loaded are taken into account, so that the associated VR images are generated with successively increasing resolution.

Um unter den unterschiedlichen Umgebungsbedingungen, in denen das System betreibbar ist, stets eine vergleichbare Funktionalität des Systems sicherzustellen, ist die Backend-Einheit in einer besonders vorteilhaften Ausführung dazu eingerichtet, die Performanz des Rechnersystems oder Datenübertragungsnetzwerkes, auf dem die Frontend-Einheit und die Backend-Einheit ablaufen, zu bestimmen, und in Abhängigkeit dieser Performanz die Anzahl und/oder Größe der Chunks (insbesondere die Anzahl der x/y-Ebenen des Volumendatensatzes), die für die Abarbeitung des jeweils ersten Render-Auftrags zu einem Volumendatensatz eingelesen werden, derart zu wählen, dass das zugehörige erste VR-Bild stets innerhalb einer vorgegebenen Zeitspanne abgeschlossen ist. Diese Zeitspanne ist in zweckmäßiger Dimensionierung insbesondere auf etwa 1 Sekunde gesetzt. Durch das System wird somit sichergestellt, dass innerhalb dieser Zeitspanne (insbesondere innerhalb einer Sekunde) nach dem Laden eines neuen Volumendatensatzes stets das erste VR-Bild angezeigt wird. Sofern das System auf einem leistungsfähigen Rechnersystem oder Datenübertragungsnetzwerk implementiert ist, wird dieses erste VR-Bild bereits mit vergleichsweise hoher Auflösung angezeigt. Sofern andernfalls das System auf einem leistungsschwachen Rechnersystem oder Datenübertragungsnetzwerk implementiert ist, wird in dem ersten Bearbeitungszyklus ein VR-Bild mit entsprechend geringerer Auflösung erzeugt. In zweckmäßiger Ausführung kann der Nutzer einen jeden Render-Auftrag jederzeit abbrechen, wenn eine hinreichende Auflösung erreicht ist, wodurch in erheblichem Maße Rechenzeit eingespart werden kann. In order to always ensure comparable functionality of the system under the different environmental conditions in which the system is operable, the backend unit is arranged in a particularly advantageous embodiment, the performance of the computer system or data transmission network on which the front-end unit and the backend Unit, determine and, depending on this performance, the number and / or size of the chunks (in particular the number of x / y levels of the volume data set) which are read into a volume data set for the execution of the respectively first render job, such that the associated first VR image is always completed within a predetermined period of time. This time span is set in appropriate dimensioning in particular to about 1 second. The system thus ensures that the first VR image is always displayed within this period of time (in particular within one second) after loading a new volume data record. If the system is implemented on a high-performance computer system or data transmission network, this first VR image is already displayed with a comparatively high resolution. Otherwise, if the system is implemented on a low-performance computer system or data transmission network, a VR image with a correspondingly lower resolution is generated in the first processing cycle. In an expedient embodiment, the user can cancel any rendering job at any time, if a sufficient resolution has been achieved, which can considerably save computing time.

Die Performanz des Rechnersystems oder Datenübertragungsnetzwerkes leitet die Backend-Einheit dabei insbesondere aus der Rechenkapazität des backend-seitigen Rechnersystems, der Datenübertragungsrate zwischen Frontend-Einheit und Backend-Einheit und der Speicherzugriffszeit der Backend-Einheit ab. Im Rahmen der Erfindung kann vorgesehen sein, dass die Backend-Einheit die Performanz in Abhängigkeit des gegebenen Deployments aus hinterlegten Kennwerten ableitet. Vorzugsweise ermittelt die Backend-Einheit die Performanz der anhand einer Testmessung, insbesondere durch Messung der zum Laden, Rendern und Übertragen eines Testdatensatzes benötigten Zeit. Sofern im Rahmen des Systems mehrere Instanzen der Frontend-Einheit mit einer gemeinsamen Backend-Einheit verbunden sind, bestimmt die Backend-Einheit die Performanz vorzugsweise individuell für jede Frontend-Einheit. The performance of the computer system or data transmission network derives the backend unit in particular from the computing capacity of the backend-side computer system, the data transfer rate between the front-end unit and the back-end unit and the memory access time of the back-end unit. Within the scope of the invention, it can be provided that the backend unit derives the performance as a function of the given deployment from stored characteristic values. Preferably, the backend unit determines the performance of the time required by means of a test measurement, in particular by measuring the loading, rendering and transmission of a test data set. If, in the context of the system, several instances of the front-end unit are connected to a common back-end unit, the back-end unit preferably determines the performance individually for each front-end unit.

Um die verfügbaren Datenübertragungskapazitäten besonders effektiv nutzen zu können, ist die Frontend-Einheit vorzugsweise dazu eingerichtet, der Backend-Einheit einen Komprimierungsgrad vorzugeben, nach Maßgabe dessen die Backend-Einheit die VR-Bilder unterschiedlich stark komprimiert. Die Frontend-Einheit legt diesen Komprimierungsgrad dabei insbesondere in Abhängigkeit einer Verwendungsangabe über die beabsichtigte Verwendung der VR-Bilder fest. Die Verwendungsangabe bezeichnet hierbei insbesondere den medizinischen Verwendungszweck, zu dem der Nutzer die VR-Bilder zu verwenden gedenkt (z.B. Befundung, Berichterstellung, Verteilung, etc.). Es kann hierbei vorgesehen sein, dass die Verwendungsangabe von dem Nutzer explizit vorgegeben wird. Vorzugsweise leitet die Frontend-Einheit die Verwendungsangabe, und damit den Komprimierungsgrad aber aus dem eingestellten Arbeitsmodus des Frontends, z.B. einem ablaufenden Workflow, Angaben aus einer elektronischen Patientenakte oder sonstigen Umgebungsbedingungen automatisch ab. In order to be able to use the available data transmission capacities particularly effectively, the front-end unit is preferably set up to specify a degree of compression for the back-end unit according to which the back-end unit compresses the VR pictures differently. The front-end unit determines this degree of compression in particular depending on a use statement on the intended use of the VR images. The indication of use refers in particular to the medical purpose for which the user intends to use the VR images (for example, reporting, reporting, distribution, etc.). It can be provided here that the indication of use is explicitly specified by the user. Preferably, the front-end unit derives the indication of use, and thus the degree of compression from the set working mode of the front end, e.g. an expiring workflow, information from an electronic patient record or other environmental conditions automatically.

Der vorstehend beschriebenen Funktionalität liegt die Erkenntnis zugrunde, dass für verschiedene Verwendungszwecke die VR-Bilder in unterschiedlicher Mindestqualität benötigt werden, und dass dies auch den möglichen Komprimierungsgrad beeinflusst. So ist beispielsweise für das sogenannte „Reading“, d.h. das Befunden von medizinischen Volumendaten regelmäßig höchste Bildqualität zwingend erforderlich, so dass dieser Anwendungszweck mit einer starken Komprimierung der VR-Bilder nicht vereinbar ist. Für andere Anwendungszwecke, beispielsweise die Verteilung der VR-Bilder ist dagegen eine bereits vergleichsweise geringe Bildqualität ausreichend, so dass in diesem Fall eine vergleichsweise starke Bildkomprimierung möglich ist. Infolge der Vorgabe des Komprimierungsgrades werden die VR-Bilder von der Backend-Einheit somit stets so stark komprimiert, wie es der Anwendungszweck zulässt, wodurch die übertragene Datenmenge bedarfsgerecht minimiert wird. The functionality described above is based on the knowledge that the VR images are required in different minimum quality for different purposes, and that this also influences the possible degree of compression. For example, for the so-called "reading", i. The finding of medical volume data regularly requires the highest image quality, so that this application is incompatible with a strong compression of the VR images. For other purposes, such as the distribution of VR images, however, already comparatively low image quality is sufficient, so that in this case, a relatively strong image compression is possible. As a result of the specification of the degree of compression, the VR images are thus always compressed by the back-end unit as much as the application allows, thereby minimizing the amount of data transferred as required.

Zur effektiven Abarbeitung der – ggf. von einer Vielzahl von Frontend-Einheiten übermittelten Render-Aufträge ist die Backend-Einheit vorzugsweise multi-threaded gestaltet, also zur parallelen Abarbeitung mehrerer Ablaufstränge oder „Threads“ geeignet. Konkret ist die Backend-Einheit hierbei insbesondere dazu eingerichtet, jeden Render-Auftrag in einem dedizierten (d.h. diesem Render-Auftrag exklusiv zugewiesenen) Träger-Thread abzuarbeiten. Hierdurch werden Wartezeiten bei der Abarbeitung eines Render-Auftrages weitgehend vermieden. For the effective execution of the - possibly transmitted from a plurality of front-end units rendering jobs, the back-end unit is preferably designed multi-threaded, so suitable for the parallel processing of multiple drainage strands or "threads". Concretely, the backend unit is especially arranged to process each render job in a dedicated (i.e., exclusively assigned to that render job) thread. As a result, waiting times during the execution of a render job are largely avoided.

Zur weiteren Effizienzsteigerung ist die Backend-Einheit dabei zweckmäßigerweise dazu eingerichtet, für das eigentliche Rendern des Volumendatensatzes einen oder mehrere Sub-Threads zu erzeugen, die parallel zu dem Träger-Thread abgearbeitet werden. Um bei dieser hochgradig parallelisierten Abarbeitung der Render-Aufträge dennoch eine Überlastung des Rechnersystems, auf dem die Backend-Einheit implementiert ist, zu vermeiden, sind die Träger-Threads derart gestaltet, dass sie jeweils eine Abfolge von mehreren definierten Bearbeitungsstufen durchlaufen. Beispielhaft durchläuft jeder Träger-Thread eine Eingabestufe (input step), eine Steuerstufe (scheduling step), eine Renderstufe (rendering step), eine Komprimierungsstufe (compression step) und eine Ausgabestufe (output step), deren jeweiliger Inhalt nachfolgend näher erläutert wird. Die Träger-Threads sind dabei derart aufeinander abgestimmt (getaktet), dass sie die verschiedenen Bearbeitungsstufen nach Art eines Fließbands zeitlich versetzt synchron zueinander abarbeiten. Ein Träger-Thread, der einen später gestarteten Render-Auftrag abarbeitet, tritt in eine bestimmte Bearbeitungsstufe somit erst dann ein, wenn ein Träger-Thread eines vorausgehenden Render-Auftrags diese Bearbeitungsstufe verlassen hat. To further increase the efficiency of the backend unit is expediently set up to generate for the actual rendering of the volume data set one or more sub-threads, which are processed in parallel to the carrier thread. In order to avoid overloading the computer system on which the backend unit is implemented in this highly parallelized processing of the render jobs, the support threads are designed such that they each run through a sequence of several defined processing stages. By way of example, each support thread undergoes an input step, a scheduling step, a rendering step, a compression step, and an output step, the respective contents of which will be explained in more detail below. The carrier threads are coordinated (clocked) in such a way that they process the different processing stages in the manner of a conveyor belt in a time-shifted manner in synchronism with one another. A support thread that executes a render job started later, thus enters a certain processing stage only when a support thread a previous rendering job has left this editing stage.

Das Laden der Volumendaten wird vorzugsweise von der Backend-Einheit asynchron zu der Abarbeitung der Träger-Threads durchgeführt. „Asynchron“ heißt hierbei, dass die Backend-Einheit für das Nachladen der einzelnen Subvolumina nicht auf entsprechende Befehle aus dem Träger-Thread wartet, sondern die Ladetätigkeit unabhängig von der Abarbeitung des Träger-Threads durchführt. The loading of the volume data is preferably performed by the backend unit asynchronously with the processing of the carrier threads. "Asynchronous" means here that the backend unit does not wait for corresponding commands from the carrier thread for the reloading of the individual subvolumes, but carries out the loading operation independently of the processing of the carrier thread.

Bei der Frontend-Einheit und der Backend-Einheit handelt es sich in zweckmäßiger Ausführung um Softwarebausteine, so dass das erfindungsgemäße System im engeren Sinne durch ein Softwareprodukt gebildet ist. Im weiteren Sinn schließt das erfindungsgemäße System die Rechnersysteme und das ggf. vorhandene Datenübertragungsnetz, in denen bzw. dem das System deployment-abhängig implementiert ist, ein. In diesem Fall ist das erfindungsgemäße System somit durch eine Kombination einer Hardware und einer darauf lauffähig implementierten Software realisiert. The front-end unit and the back-end unit are expediently software components, so that the system according to the invention is formed in the narrower sense by a software product. In a broader sense, the system according to the invention includes the computer systems and the possibly existing data transmission network in which the system is implemented in a deployment-dependent manner. In this case, the system according to the invention is thus realized by a combination of a hardware and a software implementable thereon.

Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand einer Zeichnung näher erläutert. Darin zeigen: An embodiment of the invention will be explained in more detail with reference to a drawing. Show:

1 In einem schematischen Blockschaltdiagramm ein System zum Rendern von medizinischen Volumendatensätzen, mit einer Frontend-Einheit und einer Backend-Einheit, sowie ferner mit einer Speicherschicht, in der die Volumendatensätze gespeichert sind, 1 In a schematic block diagram, a system for rendering medical volume data sets, with a front-end unit and a back-end unit, and also with a storage layer, in which the volume data records are stored,

2 in Darstellung gemäß 1, jedoch in größerem Detail die Backend-Einheit und die Speicherschicht des Systems gemäß 1, 2 in illustration according to 1 but in greater detail the backend unit and the storage layer of the system according to FIG 1 .

3 in einem schematischen, zeitlichen Diagramm eine Ablaufstruktur mehrerer Threads (Ausführungsstränge) mittels welcher von der Frontend-Einheit an die Backend-Einheit gesendete Render-Aufträge in der letzteren ausgeführt werden, 3 in a schematic, temporal diagram, a sequence structure of a plurality of threads (execution threads) are executed by means of which render jobs sent from the front-end unit to the back-end unit in the latter,

4 in schematischer Darstellung mehrere in der Speicherschicht in pyramidentransformierter Form enthaltene Volumendatensätze, 4 schematically a plurality of volume data sets contained in the memory layer in pyramid-transformed form,

5 in schematischer Darstellung eine erste Deployment-Variante des Systems gemäß 1, mit einer Anzahl von Clients, auf denen jeweils eine Instanz der Frontend-Einheit implementiert ist, und mit einem Server, auf dem die Backend-Einheit implementiert ist, wobei die Clients und der Server über das Internet übertragungstechnisch miteinander verbunden sind, 5 in a schematic representation of a first deployment variant of the system according to 1 comprising a number of clients, each having an instance of the front-end unit implemented thereon, and a server implementing the back-end unit, the clients and the server being communicatively coupled via the Internet,

6 in Darstellung gemäß 5 eine weitere Deployment-Variante des Systems, wobei die Frontend-Einheit und die Backend-Einheit in einem gemeinsamen Betriebssystemprozess auf einem gemeinsamen Client implementiert sind, und 6 in illustration according to 5 another deployment variant of the system, wherein the front-end unit and the back-end unit are implemented in a common operating system process on a common client, and

7 in Darstellung gemäß 5 eine weitere Deployment-Variante des Systems, bei der die Frontend-Einheit und die Backend-Einheit in verschiedenen Betriebssystemprozessen auf einem gemeinsamen Client implementiert sind. 7 in illustration according to 5 Another Deployment variant of the system, in which the front-end unit and the back-end unit are implemented in different operating system processes on a common client.

Einander entsprechende Teile, Größen und Strukturen sind in allen Figuren stets mit gleichen Bezugszeichen versehen. Corresponding parts, sizes and structures are always provided with the same reference numerals in all figures.

1 zeigt vereinfacht ein System 1 zum Rendern von medizinischen Volumendatensätzen V (auch als Tomogramme bezeichnet), wie sie in der Medizintechnik typischerweise von einem Computertomographen erzeugt werden. 1 shows a simplified system 1 for rendering medical volume data sets V (also referred to as tomograms), as are typically generated in medical technology by a computer tomograph.

Das in 1 dargestellte System 1 wird im Wesentlichen gebildet durch eine Frontend-Einheit (kurz: Frontend 2) und eine Backend-Einheit (kurz: Backend 3). Bei dem Frontend 2 und dem Backend 3 handelt es sich um zwei Schichten, d.h. abgegrenzte Bestandteile einer Softwareapplikation, d.h. eines Anwendungsprogramms, die unabhängig (d.h. isoliert) voneinander lauffähig sind. Das Backend 3 ist hierbei in einer Laufzeitumgebung des sogenannten .NET-Frameworks der Fa. Microsoft Coorporation gekapselt implementiert. Das Frontend 2 ist als sogenannte Rich-Internet-Applikation ausgebildet und entsprechend zur Ausführung in einem Webbrowser bestimmt. This in 1 illustrated system 1 is essentially formed by a front-end unit (short: frontend 2 ) and a backend unit (short: backend 3 ). At the frontend 2 and the backend 3 These are two layers, ie separate components of a software application, ie an application program, that are independent of each other (ie isolated). The backend 3 is implemented encapsulated here in a runtime environment of the so-called .NET framework of the company. Microsoft Coorporation. The frontend 2 is designed as a so-called rich Internet application and determined accordingly for execution in a web browser.

Das Frontend 2 bildet eine graphische Benutzeroberfläche des Systems 1, über die ein menschlicher Nutzer 4 mit dem System 1 interagieren kann. Das Frontend 2 stellt sich dem Nutzer 4 dabei insbesondere als interaktiver Web-Inhalt (oder: Website) dar, der in dem Webbrowser darstellbar ist. Zur Interaktion mit dem Nutzer 4 umfasst das Frontend 2 insbesondere zwei (Software-)Komponenten, nämlich ein Eingabemodul 5 (auch „User Input Manager“) sowie ein Bildausgabemodul 6 (auch „Image Control“). The frontend 2 forms a graphical user interface of the system 1 about which a human user 4 with the system 1 can interact. The frontend 2 turns to the user 4 in particular as an interactive web content (or: website) that can be displayed in the web browser. To interact with the user 4 includes the frontend 2 in particular two (software) components, namely an input module 5 (also called "User Input Manager") as well as an image output module 6 (also "Image Control").

Das Eingabemodul 5 ist hierbei dazu eingerichtet, Nutzereingaben E zu erfassen, die der Nutzer 4 beispielsweise mit einer (Computer-)Maus 7 tätigt, und in korrespondierende Render-Aufträge A umzusetzen. Das Bildausgabemodul 6 ist dagegen dazu eingerichtet, dem Nutzer 4 gerenderte Bilddatensätze (nachfolgend VR-Bilder B) auf einem angeschlossenen Bildschirm 8 anzuzeigen. Die VR-Bilder B werden hierbei von dem Bildausgabemodul 6 innerhalb einer Anzeigefläche der graphischen Benutzeroberfläche dargestellt. The input module 5 is hereby set up to capture user input E, which is the user 4 for example with a (computer) mouse 7 and translate it into corresponding render jobs. The image output module 6 is on the other hand set up to the user 4 rendered image data sets (hereinafter VR images B) on a connected screen 8th display. The VR images B are from the image output module 6 displayed within a display area of the graphical user interface.

Bei den von dem Eingabemodul 5 erfassten Nutzereingaben E handelt es sich insbesondere um Bewegungen des Mauszeigers, die der Nutzer 7 im Bereich der graphischen Benutzeroberfläche, vorzugsweise unter gleichzeitiger Aktivierung einer oder mehrerer Maustasten vollführt. Eine solche Mausbewegung besteht beispielsweise darin, dass Nutzer 4 eine bestimmte Position eines angezeigten VR-Bildes B durch Annäherung des Mauszeigers und Aktivierung einer vorgegebenen Taste oder Tastenkombination „anklickt“ und den Mauszeiger bei gedrückter Taste von dieser Position wegbewegt. Je nach gedrückter Taste oder Tastenkombination kann eine solche Mausbewegung – entsprechend einer dem Eingabemodul 5 vorgegebenen Befehlskonvention – die Anweisung zum Inhalt haben, die in dem VR-Bild B enthaltene Volumenstruktur auf der Anzeigefläche zu verschieben, zu drehen oder zu skalieren (d.h. zu verkleinern oder zu vergrößern). In the case of the input module 5 detected user inputs E are in particular movements of the mouse pointer, the user 7 in the area of the graphical user interface, preferably with simultaneous activation of one or more mouse buttons. Such a mouse movement is, for example, that users 4 clicks on a specific position of a displayed VR image B by approaching the mouse pointer and activating a given key or key combination and moves the mouse pointer away from this position while holding down the key. Depending on the key or key combination pressed, such a mouse movement - corresponding to one of the input module 5 given instruction convention - the instruction to content to move, rotate or scale (ie reduce or enlarge) the volume structure contained in the VR image B on the display surface.

Entsprechend der hinterlegten Befehlskonvention leitet das Eingabemodul 5 hierbei aus der Mausbewegung die entsprechende Anweisung ab und formuliert eine Anzahl von dieser Anweisung entsprechenden Render-Aufträgen A. Um eine gleitende Bewegung der angezeigten Volumenstruktur zu simulieren, wird eine einzelne Mausbewegung dabei in der Regel in eine Vielzahl von Render-Aufträgen A zergliedert. So werden aus der Anweisung, die dargestellte Volumenstruktur um beispielsweise 30° zu verkippen, typischerweise mehrere Tausend Render-Aufträge A erzeugt, die sich jeweils durch quasi-infinitesimale Teildrehungen der Perspektive unterscheiden. The input module derives according to the stored command convention 5 Here, from the mouse movement of the corresponding statement and formulated a number of this statement corresponding render jobs A. To simulate a sliding movement of the displayed volume structure, a single mouse movement is usually decomposed into a plurality of render jobs A. For example, from the instruction to tilt the illustrated volume structure by, for example, 30 °, typically several thousand render jobs A are generated, which differ in each case by quasi-infinitesimal partial rotations of the perspective.

Zur Kommunikation mit dem Backend 3 umfasst das Frontend 2 eine weitere (Software-)Komponente, die als Bildanforderungsmodul 9 (auch „Image Requester“) bezeichnet ist. Das Bildanforderungsmodul 9 erhält die Render-Aufträge A von dem Eingabemodul 5. Das Bildanforderungsmodul 9 verpackt hierbei jeden Render-Auftrag A in eine Web-Anfrage W, also einen mit dem sogenannten Hyper-Text Transfer Protokoll (HTTP) kompatiblen Aufruf und übermittelt diese Web-Anfrage W an das Backend 3. To communicate with the backend 3 includes the frontend 2 another (software) component acting as an image request module 9 (also known as "Image Requester"). The image request module 9 gets the render jobs A from the input module 5 , The image request module 9 packs each render job A into a web request W, ie a call compatible with the so-called Hyper-Text Transfer Protocol (HTTP), and transmits this web request W to the backend 3 ,

Die Web-Anfrage W enthält neben einer Angabe über die Art oder den Inhalt des zugrundeliegenden Render-Auftrags A (beispielsweise der Durchführung eines Bildrotationsschritts unter Angabe der Drehrichtung)

  • – Angaben zur Datenlokalisierung, d.h. zum Speicherort der zu ladenden Volumendaten (z.B. lokale Festplatte, lokale virtuelle Festplatte oder Cloud Blob Storage),
  • – eine Angabe zu dem Datenformat der zu ladenden Volumendaten (z.B. DICOM, RAW, JPEG oder Deep Zoom), und
  • – einen Komprimierungsgrad, gemäß dem das Backend 3 das auftragsgemäß zu erstellende VR-Bild B für die Rücksendung an das Frontend 2 komprimiert.
The web request W contains, in addition to an indication of the type or content of the underlying render job A (for example, the execution of an image rotation step specifying the direction of rotation)
  • - data localization information, ie the location of the volume data to be loaded (eg local hard disk, local virtual hard disk or cloud blob storage),
  • - an indication of the data format of the volume data to be loaded (eg DICOM, RAW, JPEG or Deep Zoom), and
  • - a level of compression according to which the backend 3 the order to be created VR image B for the return to the front end 2 compressed.

Die Web-Anfrage W enthält zudem einen Rückruf, den das Backend 3 nach Abarbeitung des Render-Auftrags A aufrufen soll. Bei dem Rückruf handelt es sich insbesondere um eine Web-Adresse (URL) des Frontends 2, an die das Backend 3 das VR-Bild B sendet (d.h. streamt). The web request W also contains a call back which the backend 3 after processing the render job A should call. In particular, the callback is a web address (URL) of the frontend 2 to which the backend 3 the VR image B sends (ie streams).

Das Bildanforderungsmodul 9 empfängt die von dem Backend 3 übermittelten VR-Bilder B und leitet diese VR-Bilder B an das Bildausgabemodul 6 weiter, das die VR-Bilder B auf dem Bildschirm 8 zur Anzeige bringt. Mit der Übermittlung des fertigen VR-Bildes B durch das Backend 3 ist der zugehörige Render-Auftrag A abgeschlossen. The image request module 9 receives the from the backend 3 transmitted VR images B and passes these VR images B to the image output module 6 Next, the VR images B on the screen 8th brings to the display. With the transmission of the finished VR image B by the backend 3 is the associated render job A completed.

Um einen „Auftragsstau“ und eine damit verbundene Überlastung des Systems 1 auszuschließen, nimmt das Bildaufforderungsmodul 9 eine automatische Arbeitsflusssteuerung durch, indem es die Anzahl der an das Backend 3 abgesandten, aber noch nicht abgeschlossenen Render-Aufträge A zählt, und neue Webanfragen W nur dann an das Backend 3 übermittelt, wenn die Anzahl der noch offenen Render-Aufträge A einen vorgegebenen Grenzwert nicht überschreitet. Das Bildanforderungsmodul 9 bestimmt diese Anzahl beispielsweise, indem es eine Zählvariable

  • – mit dem Absenden einer jeden Web-Anfrage W um den Wert „1“ imkrementiert, und
  • – mit dem Abschluss eines jeden Render-Auftrages A, d.h. mit dem Empfang eines jeden VR-Bilds B um den Wert „1“ dekrementiert.
To a "backlog" and an associated overload of the system 1 exclude, takes the picture prompt module 9 An automatic workflow control by putting the number of the backend 3 sent, but not yet completed render orders A counts, and new web requests W only to the backend 3 transmitted if the number of open render jobs A does not exceed a predetermined limit. The image request module 9 For example, determine this number by adding a count variable
  • - With the sending of each web request W is incremented by the value "1", and
  • - decrements with the completion of each rendering job A, ie with the receipt of each VR image B by the value "1".

Das Frontend 2 und das Backend 3 können wahlweise auf ein und demselben Rechnersystem (Client) implementiert sein oder über verschiedene Rechnersysteme (Client und Server) eines Rechnernetzwerkes, insbesondere über das Internet verteilt implementiert sein. Für diese nachfolgend näher beschriebenen Deployment-Varianten ist der Grenzwert unterschiedlich vorgegeben. So erlaubt das Bildanforderungsmodul 9 maximal sechs offene Render-Aufträge A, wenn das Frontend 2 und das Backend 3 über das Internet verteilt sind. Dagegen erlaubt das Bildanforderungsmodul 9 lediglich einen offenen Render-Auftrag A, wenn das Frontend 2 und das Backend 3 auf ein und demselben Client implementiert sind. The frontend 2 and the backend 3 can optionally be implemented on one and the same computer system (client) or implemented via different computer systems (client and server) of a computer network, in particular distributed over the Internet. For these deployment variants described in more detail below, the limit value is specified differently. So allows the image request module 9 a maximum of six open render jobs A, if the frontend 2 and the backend 3 distributed over the internet. In contrast, the image request module allows 9 just an open render job A, if the frontend 2 and the backend 3 implemented on one and the same client.

Wie aus 2 zu ersehen ist, ist das Backend 3 selbst wiederum dreischichtig aufgebaut und umfasst eine Speicherzugriffsschicht 10 (Storage Access Layer), eine Speicherverwaltungsschicht 11 (Storage Management Layer) sowie eine Bildsynthese- oder Renderschicht 12 (Volume Rendering Layer). How out 2 can be seen is the backend 3 itself in turn three-layered and includes a memory access layer 10 (Storage Access Layer), a storage management layer 11 (Storage Management Layer) as well as a Image synthesis or rendering layer 12 (Volume Rendering Layer).

In der Speicherzugriffsschicht 10 umfasst das Backend 3 zwei Softwarekomponenten, nämlich ein Speicherinitialisierungsmodul 15 (auch „Storage Initializer“) sowie ein Datenlademodul 16 (auch „Multi-Format Data Loader“). In the memory access layer 10 includes the backend 3 two software components, namely a memory initialization module 15 (also called "Storage Initializer") as well as a data loading module 16 (also "Multi-Format Data Loader").

In der Speicherverwaltungsschicht 11 umfasst das Backend 3 drei Softwarekomponenten, nämlich einen Bildlademanager 17 (auch „Image Load Manager“), ein Umgebungsprüfmodul 18 (auch „Environment Checker“) sowie ein Chunk-Steuermodul 19 (auch „Chunk Manager“). In the storage management layer 11 includes the backend 3 three software components, namely an image loading manager 17 (also known as "Image Load Manager"), an environment testing module 18 (also called "Environment Checker") as well as a chunk control module 19 (also "Chunk Manager").

In der Renderschicht 12 umfasst das Backend 3 zwei Komponenten, nämlich ein Hardwareerkennungsmodul 20 (auch „Hardware Detektor“) sowie ein hardwareunabhängiges Rendermodul 21 (auch „HV-Independent Volume Renderer“). In the render layer 12 includes the backend 3 two components, namely a hardware detection module 20 (also "hardware detector") as well as a hardware-independent rendering module 21 (also called "HV Independent Volume Renderer").

Das Speicherinitialisierungsmodul 15 dient zur Initialisierung einer Speicherschicht 22, in der die zu ladenden Volumendatensätze V gespeichert sind. Beispielsweise dient das Speicherinitialisierungsmodul 15 dabei dazu, eine ggf. notwendige virtuelle Festplatte zu mounten. The memory initialization module 15 serves to initialize a storage layer 22 in which the volume data sets V to be loaded are stored. For example, the memory initialization module is used 15 doing so to mount a possibly necessary virtual hard disk.

Das Datenlademodul 16 dient zum Laden des zu rendernden Volumendatensatzes V aus der Speicherschicht 22. Es kann Volumendatensätze einlesen, die in einem der Datenformate DICOM, RAW, JPEG und Deep Zoom hinterlegt sind. Sofern der zu ladende Volumendatensatz nicht in dem RAW-Datenformat vorliegt, wird er von dem Lademodul 16 im Zuge des Ladeprozesses in dieses Datenformat umgewandelt. Aufgrund ihrer erheblichen Größe werden die Volumendatensätze V nicht auf einmal geladen, sondern schrittweise in Form von kleinen Subvolumina (auch „Chunks“). Die zu ladenden Subvolumina werden hierbei von dem Chunk-Steuermodul 19 vorgegeben, der zum Laden der Chunks auf das Datenlademodul 16 zugreift. The data loader module 16 serves to load the volume data set V to be rendered from the storage layer 22 , It can read volume data sets that are stored in one of the data formats DICOM, RAW, JPEG and Deep Zoom. Unless the volume data set to be loaded is in the RAW data format, it is taken from the load module 16 converted into this data format during the loading process. Due to their considerable size, the volume data sets V are not loaded at once, but gradually in the form of small subvolumes (also called "chunks"). The subvolumes to be loaded are from the chunk control module 19 specified for loading the chunks on the data loader module 16 accesses.

Das Chunk-Steuermodul 19 ist seinerseits gesteuert von dem Bildlademanager 17, der den progressiven Ladeverlauf der Volumendaten koordiniert. Im Zusammenspiel des Bildlademanagers 17 mit dem Chunk Steuermodul 19 und dem Datenlademodul 16 erfolgt das Laden der Chunks dabei insbesondere nach dem nachfolgend beschriebenen progressiven Ladeverfahren:
In einem ersten Schritt werden von dem Datenlademodul 16 als erster Chunk eine gegebene Anzahl von n (z.B. n ≤ 78) von zweidimensionalen Schichtbildern (xy-Ebenen) des Volumendatensatzes V eingelesen. Diese Schichtbilder sind hierbei derart aus dem Volumendatensatz V gewählt, dass sie über die z-Bildkoordinate des Volumendatensatzes V gleich verteilt sind und somit bereits ein grobkörniges Abbild der gesamten Bildinformation des Volumendatensatzes V abgeben. In einem zweiten Schritt lädt das Datenlademodul 16 als zweiten Chunk etwa die gleiche Anzahl n von Schichtbildern ein, wobei diese Schichtbilder derart gewählt sind, dass sie gleichmäßig zwischen den mit dem ersten Chunk eingelesenen Schichtbildern liegen. In einem dritten Verfahrensschritt werden durch das Datenlademodul 16 etwa doppelt so viele Schichtbilder eingeladen wie in dem vorausgehenden Verfahrensschritt, wobei diese Schichtbilder wiederum derart aus dem Volumendatensatz V ausgewählt werden, dass sie gleichmäßig über die z-Bildkoordinate verteilt sind. Der dritte Verfahrensschritt wird ggf. so lange wiederholt, bis alle Schichtbilder des Volumendatensatzes V eingelesen sind.
The chunk control module 19 is in turn controlled by the image load manager 17 that coordinates the progressive charge history of the volume data. In the interaction of the image loading manager 17 with the Chunk control module 19 and the data load module 16 the loading of the chunks takes place in particular according to the progressive charging method described below:
In a first step are from the data load module 16 as the first chunk, a given number of n (eg n ≤ 78) of two-dimensional slice images (xy planes) of the volume data set V are read in. In this case, these slice images are selected from the volume data set V in such a way that they are uniformly distributed over the z-image coordinate of the volume data set V and thus already give off a coarse-grained image of the entire image information of the volume data set V. In a second step, the data load module loads 16 as the second chunk about the same number n of layer images, wherein these layer images are chosen such that they lie evenly between the scanned with the first chunk layer images. In a third step, the data loading module 16 about twice as many layer images are loaded as in the preceding method step, these layer images again being selected from the volume data set V such that they are distributed uniformly over the z-image coordinate. If necessary, the third method step is repeated until all slice images of the volume data set V have been read.

Das Umgebungsprüfmodul 18 ermittelt die Performanz des Rechnersystems oder Datenübertragungsnetzwerkes, auf dem das Frontend 2 und das Backend 3 implementiert sind. Das Umgebungsprüfmodul 18 veranlasst hierbei – vorzugsweise unmittelbar nach dem Verbinden des Frontends 2 mit dem Backend 3 – das Laden eines Chunk eines Testdatensatz, das Rendern dieses Chunks zu einem Testbild und die Übermittlung des Testbilds an das Frontend 2 und misst die hierfür benötigte Testzeit als Maß für die Performanz. Durch Hochrechnung dieser Testzeit ermittelt das Umgebungsprüfmodul 18, wieviele Chunks eines Volumendatensatzes V geladen werden können, um ein erstes VR-Bild B mit dem auftragsgemäß angegebenen Komprimierungsgrad innerhalb von einer Sekunde darstellen zu können. The environment test module 18 Determines the performance of the computer system or data transmission network on which the frontend 2 and the backend 3 are implemented. The environment test module 18 causes this - preferably immediately after connecting the front end 2 with the backend 3 Loading a chunk of a test record, rendering that chunk to a test image, and sending the test image to the front end 2 and measures the required test time as a measure of performance. By extrapolating this test time, the environment test module determines 18 How many chunks of a volume data set V can be loaded in order to be able to display a first VR image B with the degree of compression specified within one second.

Das Rendermodul 21 macht die eigentliche Bildsynthese, erstellt also die VR-Bilder B aus dem geladenen Volumendatensatz V oder – falls der Volumendatensatz V noch nicht gänzlich geladen ist – aus den bereits geladenen Chunks desselben. Das Rendermodul 21 ist hierbei nicht auf eine konkrete Hardware ausgelegt, sondern kann – je nach den vorhandenen Gegebenheiten – sowohl auf einen Graphikprozessor (GPU) als auch auf einen oder mehrere Zentralprozessoren (CPU) zugreifen. The renderer module 21 does the actual image synthesis, so creates the VR images B from the loaded volume data set V or - if the volume data set V is not yet fully loaded - from the already loaded chunks of the same. The renderer module 21 is not designed for specific hardware, but can - depending on the existing conditions - access both a graphics processor (GPU) and one or more central processors (CPU).

Das Hardwareerkennungsmodul 20 prüft die Hardwarebedingungen des Rechnersystems, auf dem das Backend 3 oder zumindest dessen Renderschicht 12 implementiert ist. Insbesondere ermittelt das Hardwareerkennungsmodul 20, ob das Rechnersystem über einen Graphikprozessor verfügt. Andernfalls ermittelt das Hardwareerkennungsmodul 20 die Anzahl der zur Verfügung stehenden Zentralprozessoren. In Abhängigkeit dieses Prüfergebnisses konfiguriert das Hardwareerkennungsmodul 20 das Rendermodul 21 so, dass dieses – wenn vorhanden – auf den Graphikprozessor, sowie andernfalls auf den oder jeden zur Verfügung stehenden Zentralprozessor zugreift. The hardware detection module 20 Checks the hardware conditions of the computer system on which the backend 3 or at least its render layer 12 is implemented. In particular, the hardware detection module determines 20 whether the computer system has a graphics processor. Otherwise, the hardware detection module determines 20 the number of available central processors. Depending on this test result, the hardware detection module configures 20 the renderer module 21 such that it - if present - accesses the graphics processor as well as otherwise the or each available central processor.

Ist das Backend 3 beispielsweise in einem öffentlichen Cloud-Datenzentrum verteilt, so konfiguriert das Hardwareerkennungsmodul 20 das Rendermodul 21 so, dass letzteres parallel auf die verfügbaren Zentralprozessoren (oder CPU-Kerne) des Datenzentrums zugreift. Beim Einsatz des Systems 1 auf einem Einzelrechner, beispielsweise auf einem Tablet-PC, greift das Rendermodul 21 dagegen auf den Graphikprozessor dieses Rechnersystems zu. Is this the backend 3 For example, distributed in a public cloud data center, the hardware discovery module configures 20 the renderer module 21 such that the latter accesses in parallel the available central processors (or CPU cores) of the data center. When using the system 1 on a single computer, for example on a tablet PC, the rendering module takes over 21 on the other hand, to the graphics processor of this computer system.

Der Bildlademanager 17 dient auch zur Annahme und Interpretation der Web-Anfragen W und der darin enthaltenen Render-Aufträge A. Sie kann dabei insbesondere die verschiedenen Auftragsarten, z.B. Skalierung (Zoom)), Verschiebung (Pan), Rotation, Dynamic 2D Deep-Zoom, etc. unterscheiden und erzeugt entsprechend umgeformte Aufträge für das Render-Modul 21. The image loading manager 17 It is also used to accept and interpret web requests W and the render jobs A contained in them. In particular, they can handle the various types of jobs, eg scaling (zoom), shifting (pan), rotation, dynamic 2D deep zoom, etc. distinguish and generate appropriately transformed jobs for the render module 21 ,

Der Bildlademanager 17 ist dabei derart gestaltet, das er jeden Render-Auftrag A gemäß 3 in einem von mehreren dedizierten Träger-Threads Ti (i = 1, 2, 3, ...) abarbeitet. Mehrere Render-Aufträge A werden somit in unterschiedlichen, und voneinander getrennten Träger-Threads Ti bearbeitet. Im Zuge dieser Abarbeitung prüft der Bildlademanager 17 nach dem Erhalt einer Web-Anfrage W, ob die benötigten Volumendaten bereits im Zusammenhang mit früheren Render-Aufträgen A geladen wurden. Ist dies der Fall, so holt der Bildlademanager 17 die bereits geladenen Daten aus dem Cache. Andernfalls veranlasst der Bildlademanager 17 das Laden des ersten Chunks des benötigten Volumendatensatzes V. The image loading manager 17 is designed in such a way that it processes every rendering job A according to 3 in one of several dedicated carrier threads Ti (i = 1, 2, 3, ...) handles. Several render jobs A are thus processed in different, and separate carrier threads Ti. In the course of this processing, the image load manager checks 17 after receiving a web request W, if the required volume data has already been loaded in connection with previous render jobs A. If this is the case, the image load manager will pick up 17 the already loaded data from the cache. Otherwise, the image load manager will prompt 17 Loading the first chunk of the required volume data set V.

Die geladenen Volumendaten werden an das Rendermodul 21 übergeben, das – in der vorstehend beschriebenen Weise entweder unter Zugriff auf einen Graphikprozessor oder unter Zugriff auf einen oder mehrere Zentralprozessoren (oder CPU-Kerne) die VR-Bilder B erzeugt. The loaded volume data is sent to the renderer module 21 which, as described above, generates VR images B either by accessing a graphics processor or by accessing one or more central processors (or CPU cores).

Die „in-memory“ gerenderten Daten werden von dem Rendermodul 21 in eine Bitmap umgewandelt und entsprechend dem auftragsgemäß vorgegebenen Komprimierungsgrad komprimiert. Die geladenen Volumendaten werden in dem Zwischenspeicher (cache) abgelegt. Abschließend wird von dem Rendermodul 21 eine Web-Antwort R, die das erstellte VR-Bild B enthält, an das Frontend 2 zurückgesendet. The "in-memory" rendered data is received by the rendering engine 21 converted into a bitmap and compressed according to the order according to the specified degree of compression. The loaded volume data is stored in the cache. Finally, by the renderer module 21 a web response R containing the created VR image B to the frontend 2 returned.

Bei der gleichzeitigen Abarbeitung mehrerer Render-Aufträge A werden die parallelen Träger-Threads Ti durch den Bildlademanager 17 derart aufeinander abgestimmt, dass das Rendermodul 21 stets voll ausgelastet ist. Auf diese Weise werden einerseits unnötige Latenzzeiten bei der Abarbeitung der Render-Aufträge A vermieden. Andererseits wird auch eine Überlastung des Rendermoduls 21 ausgeschlossen. In the concurrent execution of multiple render jobs A, the parallel carrier threads Ti become the image load manager 17 so matched to each other that the renderer module 21 always fully utilized. In this way, on the one hand unnecessary latencies in the processing of the render jobs A are avoided. On the other hand, an overload of the rendering module 21 locked out.

Diese Abstimmung der parallel laufenden Träger-Threads Ti ist bei dem dargestellten System 1 dahingehend realisiert, dass der Arbeitsfluss innerhalb eines jeden Träger-Threads Ti gemäß 3 in fünf Bearbeitungsstufen, nämlich eine Eingangsstufe S1, eine Steuerstufe S2, eine Renderstufe S3, eine Komprimierungsstufe S4 und eine Ausgabestufe S5 unterteilt ist. Die einzelnen Träger-Threads Ti sind hierbei versetzt synchron zueinander geschaltet, so dass die Träger-Threads Ti die einzelnen Bearbeitungsstufen wie auf einem Fließband nacheinander durchlaufen, und sich zu jedem Zeitpunkt stets nur ein Träger-Thread Ti in jeder der fünf Bearbeitungsstufen befindet. Diese fließbandartige Staffelung der Träger-Threads Ti ist in 3 in einem schematischen Diagramm gegen die Zeit t veranschaulicht. Die Taktung der parallel laufenden Träger-Threads Ti wird hierbei durch die zeitintensivste Bearbeitungsstufe, nämlich die Renderstufe S3 vorgegeben. This tuning of the parallel carrier threads Ti is in the illustrated system 1 realized that the flow within each carrier thread Ti according to 3 is subdivided into five processing stages, namely an input stage S1, a control stage S2, a rendering stage S3, a compression stage S4 and an output stage S5. The individual carrier threads Ti are offset in this case synchronously connected to each other, so that the carrier threads Ti through the individual processing stages as on a conveyor belt, and at any time there is always only one carrier thread Ti in each of the five processing stages. This pipeline-like staggering of the carrier threads Ti is in 3 illustrated in a schematic diagram against the time t. The timing of the parallel-running carrier threads Ti is here by the most time-consuming processing stage, namely the rendering level S3 specified.

Der fünfstufige Arbeitsablauf innerhalb eines jeden Träger-Threads Ti vollzieht sich im Einzelnen wie folgt:
In der Eingabestufe S1 (Input Step) nimmt der Bildlademanager 17 die Web-Anfrage W an und führt den darin enthaltenen Render-Auftrag A unter Rückgriff auf die übrigen Komponenten des Backends 3 aus. Um einen schnellen Datenzugriff zu gewährleisten und gleichzeitig das unnötige, mehrfache Laden von Volumendaten zu vermeiden, verfügt der Bildlademanager 17 über einen Assoziativ-Speicher, der die von einem bestimmten Frontend 2 gesendeten Render-Aufträge A den zugehörigen Volumendaten zuordnet. Das Bildlademanager 17 kann somit also die Daten verschiedener Frontend-Instanzen unterscheiden und jeweils client-spezifische Daten pro Render-Auftrag A zuordnen.
The five-step workflow within each Carrier thread Ti is detailed as follows:
In input stage S1 (Input Step), the image load manager takes 17 the web request W and performs the rendering job A contained therein, using the other components of the backend 3 out. To ensure fast data access while avoiding unnecessary multi-loading of volume data, the Image Loader Manager has 17 via an associative memory, that of a certain frontend 2 sent render jobs A assigns the associated volume data. The image loading manager 17 Thus, it is possible to differentiate the data of different front-end instances and to assign client-specific data per render job A.

In der Steuerstufe S2 (Scheduling Step) untersucht der Bildlademanager 17 die Art des Render-Auftrags A und stellt entsprechende Aufträge für das Render-Modul 21 zusammen. Der Bildlademanager 17 steuert dabei insbesondere auch die zeitliche Synchronisation für das Laden der Volumendaten. In the control stage S2 (Scheduling Step), the image load manager examines 17 the type of render job A and makes appropriate jobs for the render module 21 together. The image loading manager 17 In particular, it also controls the time synchronization for loading the volume data.

Des Weiteren reserviert der Bildlademanager 17 in der Steuerstufe S2 die Bitmap-Objekte für die parallelen Fließband-Stufen. Die Bitmap-Objekte werden dabei jeweils einem Träger-Thread zugeordnet, so dass diese Objekte quasi mit dem Träger-Thread von einer Fließbandstufe zur nächsten weitergereicht werden. Hierdurch kann auf weitere, den Durchsatz verzögernde Synchronisations-Primitive weitgehend verzichtet werden. Erst wenn die Fließband-Stufen, und die sich daraus ableitenden Ressourcen wiederverwendet werden, werden sie durch Synchronisations-Primitive (z.B. Mutex) geschützt. Furthermore, the image load manager reserves 17 in the control stage S2, the bitmap objects for the parallel assembly line stages. The bitmap objects are each assigned to a carrier thread, so that these objects are virtually passed on from one assembly stage to the next with the carrier thread. As a result, further synchronization primitives delaying the throughput can largely be dispensed with. Only when the assembly line stages, and the resources derived from them, are reused they are protected by synchronization primitives (eg mutex).

Die Renderstufe S3 wird bei der Abarbeitung eines auf einen neuen Volumendatensatz V gerichteten (ersten) Render-Auftrags A jeweils mit einem ersten geladenen Subvolumen (das aus einem oder mehreren Chunks bestehen kann) geladen und kann danach weitere, auf Nutzereingaben E beruhende Render-Aufträge A ausführen. Dabei liefert sie jeweils als Ergebnis eine Bitmap des auftragsgemäß erstellten VR-Bildes B zurück. Das Rendermodul 21 kann hierbei eine massive Parallelisierung des Render-Algorithmus durchführen und somit – je nach Bedarf und den zur Verfügung stehenden Prozessorressourcen ein – oder mehrere Sub-Threads eröffnen. When executing a (first) render job A directed to a new volume data set V, the rendering stage S3 is loaded in each case with a first loaded subvolume (which can consist of one or more chunks) and can then have further render jobs based on user inputs E. A execute. As a result, it returns a bitmap of the VR image B created according to the order. The renderer module 21 can perform a massive parallelization of the rendering algorithm and thus - depending on the needs and the available processor resources one or more sub-threads open.

In der Komprimierungsstufe S4 wird das erstellte VR-Bild B nach Maßgabe des eingangs zugeführten Komprimierungsgrades komprimiert. Die Funktion der Komprimierungsstufe S4 ist im dargestellten Beispiel in dem Rendermodul 21 integriert. Sie kann alternativ aber auch in einer separaten Komponente realisiert oder ganz weggelassen sein. In the compression stage S4, the created VR image B is compressed in accordance with the degree of compression supplied at the beginning. The function of the compression stage S4 in the example shown is in the rendering module 21 integrated. Alternatively, however, it can also be realized in a separate component or omitted altogether.

Die im dargestellten Beispiel ebenfalls in das Rendermodul 21 integrierte Ausgabestufe S5 dient dazu, das erstellte und ggf. komprimierte VR-Bild B mit der zugehörigen Web-Antwort R (HTTP-Antwort) an das Frontend 2 zurückzuleiten. The example shown also in the rendering module 21 integrated output stage S5 is used to create the created and possibly compressed VR image B with the associated web response R (HTTP response) to the frontend 2 recirculate.

Die Kommunikation zwischen dem Frontend 2 und dem Backend 3 ist beiden Richtungen vollständig asynchron gestaltet. Die jeweils sendende Einheit wartet somit nicht auf eine Antwort des jeweiligen Empfängers. Das Rückruf-Event, mit dem das Backend 3 das erstellte VR-Bild B an das Frontend 2 zurückleitet, wird technisch jedoch in die Message-Queue des Frontends 2 einsynchronisiert, um den Anforderungen üblicher graphischer Benutzeroberflächen zu genügen. The communication between the frontend 2 and the backend 3 is completely asynchronous in both directions. The respective sending unit thus does not wait for a response from the respective recipient. The callback event used by the backend 3 the created VR image B to the frontend 2 is technically returned to the message queue of the frontend 2 synchronized to meet the requirements of common graphical user interfaces.

Das Laden der Volumendaten ist wiederum vollständig asynchron zu der fließbandartigen Abarbeitung der Träger-Threads Ti gestaltet. Der Bildlademanager 17 veranlasst das Laden der einzelnen Chunks („Subvolumina“) somit autonom und unabhängig von der Abarbeitung der Render-Aufträge A. The loading of the volume data is in turn designed completely asynchronously to the flow-band-like execution of the carrier threads Ti. The image loading manager 17 thus causes the loading of the individual chunks ("subvolumes") autonomously and independently of the processing of the rendering jobs A.

In der Speicherschicht 22 können die Volumendatensätze V grundsätzlich in verschiedenen Datenformaten gespeichert werden. Vorzugsweise sind die Volumendaten aber, wie in 4 angedeutet, in einer pyramidentransformierten Form (insbesondere dem „Deep Zoom Format“) abgelegt. Hierbei enthält jeder Volumendatensatz V die jeweilige 3D-Strukturinformation mehrfach in unterschiedlichen Auflösungsstufen. In the storage layer 22 In principle, the volume data sets V can be stored in different data formats. Preferably, however, the volume data is as in 4 indicated, stored in a pyramid-transformed form (in particular the "Deep Zoom Format"). In this case, each volume data set V contains the respective 3D structure information multiple times in different resolution levels.

Hiervon wird durch das Datenlademodul 16 stets diejenige Auflösungsstufe gewählt, die in Anbetracht des Formfaktors des jeweiligen Clients, auf dem das Frontend 2 implementiert ist, die beste Bildauflösung ergibt. This is done by the data loading module 16 always the resolution level chosen, given the form factor of each client on which the frontend 2 implemented, which gives the best image resolution.

Der Formfaktor ist hierbei ein Maß für die Auflösung, die der Client darstellen kann. Ist beispielsweise der Client ein Smartphone, so ist dessen Formfaktor regelmäßig vergleichsweise klein. Entsprechend werden – wie in 4 angedeutet – auch die Volumendatensätze V in einer niedrigen Auflösungsstufe geladen. Damit wird ein unnötiger Rechenaufwand und eine unnötige Datengröße, der bzw. die auf dem Client aufgrund dessen Formfaktor ohnehin nicht zu einer verbesserten Bildqualität führen würde, gespart. The form factor is a measure of the resolution that the client can represent. For example, if the client is a smartphone, its form factor is usually comparatively small. Accordingly - as in 4 indicated - also the volume data sets V loaded in a low resolution level. Thus, an unnecessary computational effort and an unnecessary data size, which would not lead to an improved image quality on the client due to its form factor anyway, saved.

Die vom Frontend 2 an das Backend 3 gerichteten Web-Anfragen W und die zurückgesandten Web-Antworten R werden insbesondere über das Internet versandt und können sich daher auch überholen. Um sicherzustellen, dass die Render-Aufträge A in der erzeugten Reihenfolge bearbeitet und beendet werden, werden die Web-Anfragen W durch den Bildlademanager 17 sortiert. Um die Sortierung zu ermöglichen, beinhaltet jede Web-Anfrage W dabei vorteilhafterweise eine laufende Nummer oder eine sonstige Ordnungskennzahl (beispielsweise einen Zeitstempel). In gleicher Weise werden durch das Bildanforderungsmodul 9 auch die von dem Backend 3 zurückgeschickten Render-Aufträge A bei Erhalt von dem Bildanforderungsmodul 9 sortiert. The frontend 2 to the backend 3 directed web requests W and the returned web responses R are sent in particular via the Internet and can therefore also overtake themselves. To ensure that the render jobs A are processed and completed in the generated order, the web requests W are processed by the image load manager 17 sorted. In order to enable the sorting, each web request W advantageously contains a serial number or another order code (for example a time stamp). Similarly, by the image request module 9 also from the backend 3 returned rendering jobs A upon receipt from the image request module 9 sorted.

Wie bereits vorstehend erwähnt, können das Frontend 2 und das Backend 3 in unterschiedlichen Deployment-Varianten, d.h. in unterschiedlicher Verteilung auf ein Rechnersystem oder eine Mehrzahl von Rechnersystemen eines Datenübertragungsnetzwerkes betrieben werden. So ist in 5 in einem ersten Beispiel eine Deployment-Variante des Systems 1 dargestellt, bei dem vier Instanzen des Frontends 2 auf jeweils einem zugeordneten Client 25a bzw. 25b implementiert sind. Bei den drei Clients 25a handelt es sich hierbei um gewöhnliche Personal Computer (PCs). Bei dem vierten Client 25b handelt es sich beispielhaft um einen Tablet-PC oder ein Smartphone. Das Backend 3 ist in dieser Deployment-Variante in einem Server 26 implementiert, der mit den Clients 25a und 25b über das Internet 27 datenübertragungstechnisch verbunden ist. Der Server 26 ist insbesondere Bestandteil eines Cloud-Datenzentrums. As mentioned above, the frontend 2 and the backend 3 in different deployment variants, ie operated in different distribution to a computer system or a plurality of computer systems of a data transmission network. So is in 5 in a first example, a deployment variant of the system 1 shown at the four instances of the front end 2 on each one assigned client 25a respectively. 25b are implemented. For the three clients 25a these are ordinary personal computers (PCs). At the fourth client 25b is an example of a tablet PC or a smartphone. The backend 3 is in this deployment variant in a server 26 implemented with the clients 25a and 25b over the internet 27 Data transmission technology is connected. The server 26 is in particular part of a cloud data center.

Anstelle eines einzelnen Servers 26 kann insbesondere in diesem Anwendungsfall auch eine Vielzahl von Servern 26 vorgesehen sein. Die einzelnen Schichten des Backends 3 können hierbei auch auf mehrere dieser Server 26 verteilt sein. Instead of a single server 26 In particular, in this application, a variety of servers 26 be provided. The individual layers of the backend 3 You can also access several of these servers 26 be distributed.

6 zeigt eine zweite Deployment-Variante des Systems 1, in der das System 1 zum Offline-Einsatz auf einem einzelnen Client 25a, insbesondere einem PC, verteilt ist. Das Frontend 2 und das Backend 3 sind hierbei als Bestandteile eines gemeinsamen Betriebssystemprozesses 28 implementiert. 6 shows a second deployment variant of the system 1 in which the system 1 for offline use on a single client 25a , in particular a PC, is distributed. The frontend 2 and the backend 3 are part of a common operating system process 28 implemented.

Eine weitere Deployment-Variante des Systems 1 gemäß 7 gleicht im Wesentlichen der vorstehend anhand von 6 beschriebenen Deploymentvariante. Im Unterschied zu dort sind im Beispiel gemäß 7 das Frontend 2 und das Backend 3 aber in unterschiedlichen Betriebssystemprozessen 28 implementiert. Another deployment variant of the system 1 according to 7 is essentially similar to the above with reference to 6 described deployment variant. In contrast to there in the example according to 7 the frontend 2 and the backend 3 but in different operating system processes 28 implemented.

Die Erfindung ist nicht auf das vorstehend beschriebene Ausführungsbeispiel beschränkt. Vielmehr können weitere Ausführungen der Erfindung von dem Fachmann anhand der vorstehenden Beschreibung gefunden werden. The invention is not limited to the embodiment described above. Rather, other embodiments of the invention can be found by those skilled in the art from the foregoing description.

Claims (12)

System (1) zur Bildsynthese eines Volumendatensatzes (V), mit einer Frontend-Einheit (2) und einer Backend-Einheit (3), – wobei die Frontend-Einheit (2) dazu eingerichtet ist, anhand von Nutzereingaben (E) Render-Aufträge (A) zu erzeugen und an die Backend-Einheit (3) zu übermitteln, – wobei die Backend-Einheit (3) dazu eingerichtet ist, nach Maßgabe der Render-Aufträge (A) aus dem Volumendatensatz (V) gerenderte VR-Bilder (B) abzuleiten und diese VR-Bilder (B) an die Frontend-Einheit (2) zurückzuleiten, – wobei die Frontend-Einheit (2) dazu eingerichtet ist, die VR-Bilder (B) anzuzeigen, und – wobei die Frontend-Einheit (2) und die Backend-Einheit (3) in verschiedenen Deployments, nämlich sowohl als Bestandteile eines gemeinsamen Betriebssystemprozesses (28), als auch in unterschiedlichen Betriebssystemprozessen (28) eines gemeinsamen Rechnersystems (25a) als auch in verschiedenen Rechnersystemen (25a, 25b, 26) eines Datenübertragungsnetzwerkes (27) betreibbar sind. System ( 1 ) for image synthesis of a volume data set (V), with a front-end unit ( 2 ) and a backend unit ( 3 ), - whereby the front-end unit ( 2 ) is adapted to generate render jobs (A) based on user input (E) and to the backend unit ( 3 ), the backend unit ( 3 ) is adapted to derive VR images (B) rendered from the volume data set (V) in accordance with the render jobs (A) and to send those VR images (B) to the front-end unit ( 2 ), the front-end unit ( 2 ) is arranged to display the VR images (B), and - wherein the front-end unit ( 2 ) and the backend unit ( 3 ) in various deployments, both as components of a common operating system process ( 28 ), as well as in different operating system processes ( 28 ) of a common computer system ( 25a ) as well as in different computer systems ( 25a . 25b . 26 ) of a data transmission network ( 27 ) are operable. System (1) nach Anspruch 1, wobei die Frontend-Einheit (2) oder die Backend-Einheit (3) dazu eingerichtet sind, die Anzahl der an die Backend-Einheit (3) übermittelten und noch nicht abgeschlossenen Render-Aufträge (A) zu ermitteln, und neue Render-Aufträge (A) nur dann abzusenden bzw. anzunehmen, wenn diese Anzahl einen vorgegebenen Grenzwert nicht überschreitet. System ( 1 ) according to claim 1, wherein the front-end unit ( 2 ) or the backend unit ( 3 ) are set up the number of the backend unit ( 3 ) and to receive new render jobs (A) only if this number does not exceed a predetermined limit. System (1) nach Anspruch 2, wobei der Grenzwert für die verschiedenen Deployments, in denen die Frontend-Einheit (2) und die Backend-Einheit (3) betreibbar sind, unterschiedlich vorgegeben ist. System ( 1 ) according to claim 2, wherein the limit value for the various deployments in which the front-end unit ( 2 ) and the backend unit ( 3 ) are operable differently. System (1) nach einem der Ansprüche 1 bis 3, wobei die Backend-Einheit (3) dazu eingerichtet ist, Volumendatensätze (V) mindestens zweier Datenformate zu laden und zu verarbeiten. System ( 1 ) according to one of claims 1 to 3, wherein the backend unit ( 3 ) is adapted to load and process volume data sets (V) of at least two data formats. System (1) nach Anspruch 4, wobei die Backend-Einheit (3) ein Datenlademodul (16) aufweist, das dazu eingerichtet ist, Volumendatensätze (V) mindestens zweier Datenformate zu laden und in ein gemeinsames Datenformat umzuwandeln. System ( 1 ) according to claim 4, wherein the backend unit ( 3 ) a data load module ( 16 ) which is adapted to load volume data sets (V) of at least two data formats and to convert them into a common data format. System (1) nach einem der Ansprüche 1 bis 5, wobei die Backend-Einheit (3) dazu eingerichtet ist, die VR-Bilder (B) in Abhängigkeit der Hardware-Konfiguration des zugrundeliegenden Rechnersystems (25a, 26) wahlweise unter Zugriff auf einen Graphikprozessor oder mindestens einen Hauptprozessor des Rechnersystems (25a, 26) zu erzeugen. System ( 1 ) according to one of claims 1 to 5, wherein the backend unit ( 3 ) is adapted to the VR images (B) depending on the hardware configuration of the underlying computer system ( 25a . 26 ) optionally with access to a graphics processor or at least one main processor of the computer system ( 25a . 26 ) to create. System (1) nach einem der Ansprüche 1 bis 6, wobei die Backend-Einheit (3) dazu eingerichtet ist, die Volumendatensätze (V) progressiv in einzelnen Chunks und asynchron zu der Abarbeitung der Render-Aufträge (A) zu laden, und jeden Render-Auftrag (A) jeweils unter Rückgriff auf den bereits geladenen Teil des Volumendatensatzes (V) abzuarbeiten. System ( 1 ) according to one of claims 1 to 6, wherein the backend unit ( 3 ) is adapted to load the volume data sets (V) progressively in individual chunks and asynchronously to the processing of the render jobs (A), and each render job (A) in each case using the already loaded part of the volume data set (V) work off. System (1) nach Anspruch 7, wobei die Backend-Einheit (3) dazu eingerichtet ist, ein Maß für die Performanz des Rechnersystems (25a, 25b, 26) und/oder Datenübertragungsnetzwerkes (27), auf dem die Frontend-Einheit (2) und die Backend-Einheit (3) ablaufen, zu bestimmen und anhand dieses Performanzmaßes die Anzahl und/oder Größe der anfänglich zu ladenden Chunks eines neuen Volumendatensatzes (V) derart zu wählen, dass der erste Render-Auftrag zu diesem Volumendatensatz (V) innerhalb einer vorgegebenen Zeitspanne abgeschlossen ist. System ( 1 ) according to claim 7, wherein the backend unit ( 3 ) is set up to provide a measure of the performance of the computer system ( 25a . 25b . 26 ) and / or data transmission network ( 27 ) on which the front-end unit ( 2 ) and the backend unit ( 3 ) and to select, based on this performance measure, the number and / or size of the initially loaded chunks of a new volume data set (V) such that the first render job for that volume data set (V) is completed within a predetermined period of time. System (1) nach einem der Ansprüche 1 bis 8, wobei die Frontend-Einheit (2) dazu eingerichtet ist, der Backend-Einheit (3) einen Komprimierungsgrad vorzugeben, und wobei die Backend-Einheit (3) dazu eingerichtet ist, die erzeugten VR-Bilder (B) nach Maßgabe des Komprimierungsgrades unterschiedlich stark zu komprimieren. System ( 1 ) according to one of claims 1 to 8, wherein the front-end unit ( 2 ) is adapted to the backend unit ( 3 ) specify a degree of compression, and wherein the backend unit ( 3 ) is set up to compress the generated VR images (B) to different extents in accordance with the degree of compression. System (1) nach einem der Ansprüche 1 bis 9, wobei die Backend-Einheit (3) dazu eingerichtet ist, jeden Render-Auftrag (A) in einem dedizierten Träger-Thread (Ti) abzuarbeiten. System ( 1 ) according to one of claims 1 to 9, wherein the backend unit ( 3 ) is adapted to process each render job (A) in a dedicated thread (Ti). System (1) nach Anspruch 10, wobei die Backend-Einheit (3) dazu eingerichtet ist, für das Rendern des Volumendatensatzes (V) einen oder mehrere Sub-Threads zu erzeugen. System ( 1 ) according to claim 10, wherein the backend unit ( 3 ) is adapted to generate one or more sub-threads for rendering the volume data set (V). System (1) nach Anspruch 10 oder 11, wobei die Backend-Einheit (3) derart eingerichtet ist, dass bei der Abarbeitung eines jeden Render-Auftrags (A) durch den jeweils zugehörigen dedizierten Träger-Thread (Ti) eine Abfolge von mehreren Bearbeitungsstufen (S1–S5) durchlaufen wird, wobei die Träger-Threads (Ti) verschiedener Render-Aufträge (A) jeweils derart aufeinander abgestimmt sind, dass sie die Bearbeitungsstufen (S1–S5) nach Art eines Fließbandes versetzt synchron durchlaufen. System ( 1 ) according to claim 10 or 11, wherein the backend unit ( 3 ) is set up such that during the execution of each render job (A) through the respective dedicated dedicated thread (Ti), a sequence of several processing stages (S1-S5) is traversed, wherein the carrier threads (Ti) of different render jobs (A) are each matched to one another in such a way that they pass through the processing stages (S1-S5) synchronously in the manner of an assembly line.
DE201210202537 2012-02-20 2012-02-20 System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network Pending DE102012202537A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201210202537 DE102012202537A1 (en) 2012-02-20 2012-02-20 System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210202537 DE102012202537A1 (en) 2012-02-20 2012-02-20 System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network

Publications (1)

Publication Number Publication Date
DE102012202537A1 true DE102012202537A1 (en) 2013-08-22

Family

ID=48915204

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210202537 Pending DE102012202537A1 (en) 2012-02-20 2012-02-20 System for image synthesis i.e. rendering, of tomogram in medical engineering, has frontend and backend-units operated in different operating system processes of common computer system or in different computer systems of network

Country Status (1)

Country Link
DE (1) DE102012202537A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040156377A1 (en) * 2003-02-08 2004-08-12 Walls Jeffrey Joel Apparatus and method for communicating with a network
US20050038890A1 (en) * 2003-08-11 2005-02-17 Hitachi., Ltd. Load distribution method and client-server system
US20080082966A1 (en) * 2006-09-29 2008-04-03 Siemens Aktiengesellschaft System for creating and running a software application for medical imaging
US20090189890A1 (en) * 2008-01-27 2009-07-30 Tim Corbett Methods and systems for improving resource utilization by delaying rendering of three dimensional graphics
US20090225076A1 (en) * 2008-03-04 2009-09-10 Agfa Healthcare Nv Method and System for Real-Time Volume Rendering on Thin Clients Via Render Server
US20100045662A1 (en) * 2006-10-02 2010-02-25 Aftercad Software Inc. Method and system for delivering and interactively displaying three-dimensional graphics
DE102010043783A1 (en) * 2010-11-11 2011-11-24 Siemens Aktiengesellschaft Method for distributing load of three dimensional-processing of e.g. medical image data, between client and server computers of network in cloud processing scenario, involves generating three dimensional volume from loaded image data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040156377A1 (en) * 2003-02-08 2004-08-12 Walls Jeffrey Joel Apparatus and method for communicating with a network
US20050038890A1 (en) * 2003-08-11 2005-02-17 Hitachi., Ltd. Load distribution method and client-server system
US20080082966A1 (en) * 2006-09-29 2008-04-03 Siemens Aktiengesellschaft System for creating and running a software application for medical imaging
US20100045662A1 (en) * 2006-10-02 2010-02-25 Aftercad Software Inc. Method and system for delivering and interactively displaying three-dimensional graphics
US20090189890A1 (en) * 2008-01-27 2009-07-30 Tim Corbett Methods and systems for improving resource utilization by delaying rendering of three dimensional graphics
US20090225076A1 (en) * 2008-03-04 2009-09-10 Agfa Healthcare Nv Method and System for Real-Time Volume Rendering on Thin Clients Via Render Server
DE102010043783A1 (en) * 2010-11-11 2011-11-24 Siemens Aktiengesellschaft Method for distributing load of three dimensional-processing of e.g. medical image data, between client and server computers of network in cloud processing scenario, involves generating three dimensional volume from loaded image data

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Forumseintrag ".net Funda" vom 13.4.2009 zum Begriff "Remoting", URL: http://www.dotnetfunda.com/interview/exam505-what-is-remoting.aspx [abgerufen am 20.11.2012]. *
Forumseintrag „.net Funda" vom 13.4.2009 zum Begriff "Remoting", URL: http://www.dotnetfunda.com/interview/exam505-what-is-remoting.aspx [abgerufen am 20.11.2012].
Online-Definition des Begriffes "remoting" auf "glosbe.com", URL: http://de.glosbe.com/en/de/remoting , [abgerufen am 20.11.2012]. *
Online-Definition des Begriffes „remoting" auf „glosbe.com", URL: http://de.glosbe.com/en/de/remoting , [abgerufen am 20.11.2012].

Similar Documents

Publication Publication Date Title
DE112012004747B4 (en) Hidden automated data mirroring for native interfaces in distributed virtual machines
DE112019004301T5 (en) IMPROVED PROGRAMMING PROGRAMMING OF FIELD PROGRAMMABLE GATE ARRAYS USING PARTIAL RECONFIGURATION
DE102018130037A1 (en) DYNAMIC JITTER AND LATENCY TOLERANT RENDERING
DE112020005323B4 (en) ELASTIC EXECUTION OF MACHINE LEARNING WORKLOADS USING APPLICATION-BASED PROFILING
DE102020124932A1 (en) Apparatus and method for real-time graphics processing using local and cloud-based graphics processing resources
DE102019103340A1 (en) SIMULTANEOUS COMPUTING AND GRAPHICS SCHEDULING
DE102017009121A1 (en) Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
DE202017105403U1 (en) Instruction set architecture for neural networks
DE102019007796A1 (en) Use of a neural network serving for the detection of critical edges and a geometric model for determining camera parameters from a single digital image
DE102019103310A1 (en) ESTIMATE FOR AN OPTIMAL OPERATING POINT FOR HARDWARE WORKING WITH A RESTRICTION ON THE SHARED PERFORMANCE / HEAT
DE69805087T2 (en) METHOD AND SYSTEM FOR SYNCHRONIZED DETECTION, PROCESSING AND ALLOCATION OF INSTRUMENTATION DATA AND FOR SYNCHRONIZED CONTROL IN A CLIENT-SERVER NETWORK
DE102020132377A1 (en) Apparatus and method for throttling a ray tracing pipeline
DE112019005288T5 (en) EFFECTIVE AND SCALABLE BUILDING AND PROBING OF HASH TABLES USING MULTIPLE GPUs
DE102020201154A1 (en) METHOD AND DEVICE FOR STORING AND ACCESSING MULTI-DIMENSIONAL DATA
DE102021121332A1 (en) ASSESSING QUALITATIVE STREAMING EXPERIENCE USING SESSION PERFORMANCE METADATA
DE102013017640A1 (en) Distributed tiled caching
DE102006038155A1 (en) Distributed image processing for medical images, involves monitoring system resources between communicating server and client to produce monitoring data, processing image data, and allocating image data to client based on monitoring data
DE102021119725A1 (en) OVERLAYING METADATA ONTO VIDEO STREAM ON-DEMAND FOR INTELLIGENT VIDEO ANALYTICS
DE102020127862A1 (en) INCREASE USER BINDING WHILE WAITING FOR COMPUTING ALLOCATION FOR CLOUD SERVICES
DE102017011422A1 (en) Baring prediction for a three-dimensional digital content
DE102020118860A1 (en) TECHNIQUES FOR PRELOADING TEXTURES WHEN RENDERING GRAPHICS
DE60015784T2 (en) METHOD AND DEVICE FOR QUICKLY VISUALIZING THREE-DIMENSIONAL SCENES
DE112016001140T5 (en) Interactive multi-user display system and method
DE102021122362A1 (en) SWITCHING BETWEEN STATES IN A HYBRID VIRTUAL REALITY DESKTOP COMPUTING ENVIRONMENT
DE112021003274T5 (en) RESOURCE ALLOCATION TO OPTIMIZE HYPERPARAMETERS IN LARGE DEEP LEARNING WORKLOADS

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHCARE GMBH, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0019000000

Ipc: G16Z0099000000

R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHINEERS AG, DE

Free format text: FORMER OWNER: SIEMENS HEALTHCARE GMBH, MUENCHEN, DE