WO2019025303A1 - Verfahren zur erzeugung eines signals - Google Patents

Verfahren zur erzeugung eines signals Download PDF

Info

Publication number
WO2019025303A1
WO2019025303A1 PCT/EP2018/070393 EP2018070393W WO2019025303A1 WO 2019025303 A1 WO2019025303 A1 WO 2019025303A1 EP 2018070393 W EP2018070393 W EP 2018070393W WO 2019025303 A1 WO2019025303 A1 WO 2019025303A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
codeword
values
signal
blocks
Prior art date
Application number
PCT/EP2018/070393
Other languages
English (en)
French (fr)
Inventor
Bernd FRÖHLICH
Adrian KRESKOWSKI
Carl-Feofan MATTHES
Original Assignee
Bauhaus-Universität Weimar
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 Bauhaus-Universität Weimar filed Critical Bauhaus-Universität Weimar
Publication of WO2019025303A1 publication Critical patent/WO2019025303A1/de

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3064Segmenting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput

Definitions

  • the invention generally relates to a method for
  • image-forming devices such as
  • Magnetic resonance tomographs or light-sheet microscopes are used to generate large amounts of data (3D volume data), usually in the form of scalar edged elements in a suitable 3D structure
  • Time steps are usually reduced to a fraction of the former size in an offline processing step in order to decompress them at runtime as late as possible and with little computational complexity in the data transfer pipeline, wherein it is significant that the decompressed data has only negligible deviations from the original.
  • Calculator (memory, CPU, graphics card, display unit) is limited mainly in that the amount of data to be treated mainly by the available
  • Graphics card memory are limited.
  • a previously known solution which respects the limited memory and data throughput, is to compress the data into the memory of the
  • Subset of input blocks classify the entire block set based on the codebook's established codewords.
  • a volume is divided into disjoint subvolumes of the same size. These are from then on
  • Codebook training uses selected vectors
  • each block of the decomposed volume is assigned to the codeword which has the least deviation from the block.
  • the classification step is necessary because codewords do not necessarily have to be learned with all vectors of the original data set.
  • the training time depends heavily on the number of vectors to be used for the training, this is usually the case here a representative subset of the entire blocks is used. That by a representative amount of
  • the volume rendering technique (eg, ray casting) is performed on the index volume during decompression rather than on the original volume.
  • the codebook is not in one
  • the solution for obtaining high-quality filtered data on the one hand and avoiding artifacts on the other hand is to carry out the interpolation on the software side and all surrounding signal elements without hardware-assisted
  • codewords which actually have a 3D structure (or possibly higher-dimensional structure), are stored in 2D textures.
  • the codewords are considered in this case as ID vectors, which are based solely on
  • a hardware-assisted interpolation attempt in the codeword results in interpolation beyond codeword boundaries outside the signal elements.
  • the solution for correct piecewise linear interpolation used so far is to identify, via the index volume, codewords that are adjacent to each other in the decompressed representation of the volume and to provide multiple texture requests that return non-interpolated codeword elements. Subsequently, these elements are also interpolated by means of graphics card program. All in all, the non-hardware-based queries create a considerable additional calculation effort in order to correctly interpolate intensities on the
  • codebook training strongly depends on the size of the individual blocks. Low-dimensional codewords differ less strongly from the blocks of the original volume than the number of representatives used
  • the method initially begins in a conventional manner with the acquisition of a multidimensional data set of numerous
  • Position information in the dataset and a data value includes.
  • Position information in the dataset and a data value includes.
  • Captured pixels that z. B. with position values, brightness, intensity and / or color values and possibly
  • the recording is done by a recording unit, for example, with imaging devices, such as a camera, a tomograph or
  • the recording of data values can also take place with one or more sensors.
  • the recorded data is buffered for further processing. In the following steps, the amount of data will be off
  • Vector quantization used, consisting of the substeps block decomposition, training a codebook based on a
  • Codewordblocks takes place but only on exactly one page per dimension of the block to a minimum block size can be interpolated on the hardware supported. Unlike in the prior art, in the dissection of the data according to the invention, overlapping signal elements from the neighboring blocks are supplemented only on one side per spatial axis or dimension of each block and together with the original ones
  • padded codewords as representation for the codebook. This is preferably done in a 3D texture to allow SD texture filtering.
  • the structure of 3D codewords with one-sided overlapping data values is equivalent to the 2D
  • 1 is a symbolic representation of the filling of a two-dimensional code word in the decomposition of recorded data.
  • Fig. 2 is a symbolic representation of the padding of a three-dimensional codeword in the decomposition of recorded data
  • Fig. 3 is a simplified flowchart of a
  • Fig. 4 shows a change of padded codewords
  • the method according to the invention serves to generate a signal of a decompressed signal directly in the compression space
  • a displayable image signal which when driving a display unit as a Picture element is displayed.
  • the signal to be generated is generated by interpolation, based on recorded or stored in a memory data values. It is
  • Image signals is composed, in addition to the by
  • Interpolation generated signals also other image signals are used, which can be generated directly from the recorded and stored data without prior interpolation.
  • image signals are used, which can be generated directly from the recorded and stored data without prior interpolation.
  • the inclusion of such data, for example by imaging devices is well known to those skilled in the art and therefore will not be described here. Likewise are the
  • Fig. 1 shows in Figure a) a two-dimensional
  • Data block 10 with four data values 11-14, which was cut out of a previously recorded amount of data. It is understandable that for signal generation at one
  • the data block 10 is expanded prior to its storage in a codebook at exactly one page in each dimension, in that there is
  • Data values 101 - 105 are copied from the data blocks immediately adjacent to the original to be filled in at these pages.
  • the data block 10 is thus by exactly one data series per Dimension extended.
  • the remaining edges of the block 10 ', ie in each case exactly one further edge per dimension, are not extended by data values. This results in an expanded block 10 ', as shown in Figure b). In the newly formed extended
  • Interpolation surfaces 110, 111, 112 which are now also enclosed by four data values, can now also
  • Interpolation surfaces ie at the non-extended edges of the extended block 10 ', can not be interpolated without artifacts by the graphics hardware.
  • the data values at the unfilled edges are again duplicated by other blocks, there is always at least one codeword per continuous sample position in the volume in which
  • Interpolation surfaces may be needed in the codeword
  • Fig. 2 shows in Figure a) a three-dimensional
  • Data block 20 with eight data values.
  • the data values from the recorded data set are also added here on exactly one side per dimension, so that the
  • Extended block 20 is extended by nineteen data values before it can be stored in the codebook.
  • FIG. 3 shows in highly abstracted form the sequence of vector quantization for hardware-based interpolation in FIG Compression chamber. The method uses recorded
  • Block decomposition 301, codebook training 302 and classification 303 are still present. These will be at the
  • step 304 the one-sided duplication of data occurs after block generation as above
  • FIG. 4 shows the method used in the symmetry transformation on the example of two-dimensional extended blocks 410-413, which in their structure correspond to the expanded block 10 'from FIG. 1 on account of the unilateral extension per axis already carried out. It has been found that especially for small block sizes within the decomposed volume often blocks or training vectors occur that after a simple mirroring using the Axisymmetry along one of the three cardinal axes or a rotation around the block center are either the same or at least very similar.
  • the four illustrated blocks 410-413 may be e.g. B. based on the example registered
  • Intensity values are reduced by means of these symmetry transformations to a single canonical representation.
  • block 410 remains unchanged during the transformation, block 411 is mirrored around vertical
  • Block 413 is transformed by -90 °
  • Symmetry transformation (right side of the illustration in Fig. 4) four blocks are equal, of which then only a single representative for the codebook training must be used.
  • Symmetry transformation in addition to the
  • the transformation selection criterion is that the largest possible element must be in the lower left corner.
  • additional elements are used until the best possible ordering of the data values is achieved by the given transformations.
  • the index volume does not contain only the referenced information
  • codebook training 302 is a codebook, which due to the filling of the edges and the storage in a 3D texture conceptually as a mini-volume per codeword, all code words as a set of directly interpolierbaren using hardware
  • Fig. 5 illustrates the two typical cases that may occur in the decompression of the data values when interpolation between actual data values is required.
  • the decompression of data within the filled-in and possibly generated by a symmetry transformation symmetric codebook works basically equivalent to known approaches, but with the differences explained below.
  • One of the two major differences is that the sample positions in the codeword coordinate system are transformed with respect to the symmetry operation applied to the selected codeword before the
  • a first part of the memory indexes one code word per index element and a second one
  • Scanning the codewords at the correct position requires a coordinate transformation in the form of a displacement of the texture coordinates, depending on two cases.
  • Areas can be distinguished in the memory index.
  • This starting position is illustrated in FIG. 5 by a data set 500 with the first code word 510 contained therein, in which a position 511 is marked whose data value has to be interpolated for signal generation.
  • Position 511 finds a change in the sample of the index volume
  • the scanning position 511b lies in the non-interpolatable range if there is no data value of the code word in at least one direction.
  • a texture request can be made directly at the requested position in a codeword, i. H. both the index volume and the corresponding codeword may be at position 511a
  • Interpolation at the sampling position 511b is thus changed to an adjacent code word 520 and its data values are used for interpolation.
  • FIG. 6 illustrates by way of example a coordinate transformation which, on the basis of the already mentioned above
  • a canonical codeword representation potentially represents many originally different input blocks, which were made similar by symmetry transformations.
  • the transform index for the transforms applied to the block is stored in 6 bits of each entry of the index volume. Instead of individually inversely transforming all elements of the codeword, the transformation of the codeword to the sample position
  • FIG. 6 describes the general procedure as an example, wherein also
  • Texture requests takes over, but completely in the form of a
  • Graphics hardware is implemented.
  • the illustrated techniques can be applied to both hardware-assisted interpolation for 2D image and 3D volume data in the compression space.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Erzeugung eines Signals, welches einen Signalwert zwischen zuvor aufgenommenen Datenwerten repräsentiert. Das Verfahren startet mit der Aufnahme einer mehrdimensionalen Datenmenge aus zahlreichen Daten mithilfe einer Aufnahmeeinheit. Es folgt die Zerlegung der Datenmenge in zahlreiche mehrdimensionale Datenblöcke und das Auffüllen der Datenblöcke an jeweils genau einer vorbestimmten Seite pro Dimension mit Datenwerten aus dem jeweils an dieser Seite angrenzenden Datenblock. Nachfolgend wird die Abspeicherung der aufgefüllten Datenblöcke als Codewörter in einem Codebuch vorgenommen. Schließlich folgt die Abfrage einer gewünschten Position in einem Codewort, für die kein Datenwert gespeichert ist, wobei die Bestimmung eines interpolierten Datenwerts für diese Position zwischen zu der abgefragten Position benachbarten Datenwerten vorgenommen wird, sofern benachbarte Datenwerte in jeder Dimension beidseitig der abgefragten Position vorhanden sind, oder die Abfrage der gewünschten Position in einem zu dem zunächst ausgewählten Codewort benachbarten Codewort vorgenommen wird, sofern an der Position in dem zunächst ausgewählten Codewort an mindestens einer Seite kein benachbarter Datenwert vorhanden ist. Abschließend erfolgt die Ausgabe des interpolierten Datenwerts an eine Signalerzeugungseinheit, welche ein dem Datenwert entsprechendes Signal erzeugt.

Description

Verfahren zur Erzeugung eines Signals
Die Erfindung betrifft im Allgemeinen ein Verfahren zur
Erzeugung eines Signals, welches den interpolierten Signalwert zwischen zuvor aufgezeichneten Datenwerten repräsentiert. Im Speziellen gestattet es dieses Verfahren, eine korrekte hardwaregestützte Interpolation direkt im Kompressionsraum einer großen Datenmenge anzuwenden, sodass es sich
insbesondere für die Signalerzeugung im Bereich der Anwendung von vektorquantisierungsbasierten Kompressionsverfahren eignet. Die Nutzung des Verfahrens ermöglicht letztlich den Aufbau verbesserter Hardware, insbesondere für
Grafikanwendungen .
Beispielsweise durch bilderzeugende Geräte, wie
Magnetresonanztomografen oder Lichtblattmikroskope werden große Datenmengen ( 3D-Volumendaten) generiert, die meist in Form von Skalarfeidern in einer geeigneten 3D-Struktur
dargestellt werden. Um dem Nutzer das möglichst flüssige
Navigieren durch diese Strukturen zu gestatten, d. h. um hochqualitative und interaktive 3D-Visualisierungen der aufgezeichneten Daten zu ermöglichen, müssen selbst beim
Abspeichern großer Datenmengen Zwischenwerte erzeugt werden, die nachfolgend als Anzeigesignal ausgegeben werden können.
Dies erfolgt bevorzugt durch direkte Volumenrendering- Verfahren, welche vorzugsweise parallel auf einer Grafikkarte ausgeführt werden. Obwohl kleine Datensätze komplett in den Speicher einer leistungsfähigen Grafikkarte passen und damit mittels etablierter Techniken visualisiert werden können, stellen gerade hochaufgelöste und/oder zeitvariante
Volumendatensätze eine Herausforderung auch für moderne
Grafikkarten dar. Im Stand der Technik wird deshalb zur effizienten Speicherung und zum Streaming von Volumenzeitschritten in
EchtzeitvisualisierungsSystemen auf
Volumenkompressionstechniken zurückgegriffen. Hierbei werden
Zeitschritte meist in einem Offline-Verarbeitungsschritt auf einen Bruchteil der ehemaligen Größe reduziert, um sie zur Laufzeit möglichst spät und mit wenig Rechenkomplexität in der Datentransfer-Pipeline zu dekomprimieren, wobei es bedeutsam ist, dass die dekomprimierten Daten nur vernachlässigbar geringe Abweichungen zum Original aufweisen. Neben der Wahl der konkreten Kompressionstechnik ist entscheidend, an welcher Stelle des Datentransfers von einem Speichermedium bis hin zur Visualisierung der Daten die Dekompression erfolgt. Neben dem begrenzten Datendurchsatz zwischen den Komponenten eines
Rechners (Speicher, CPU, Grafikkarte, Anzeigeeinheit) besteht eine Limitierung vor allem darin, dass die zu behandelnden Datenmengen vor allem durch den verfügbaren
Grafikkartenspeicher beschränkt sind. Eine vorbekannte Lösung, die den limitierten Speicher und Datendurchsatz beachtet, besteht darin, die Daten komprimiert in den Speicher der
Grafikkarte zu laden und nur auf Anforderung kurzzeitig einzelne Werte zu dekomprimieren. Dieser Ansatz wird in der Literatur Compression-Domain-Rendering genannt (vgl. J.
Schneider, R. Westermann: Compression Domain Volume Rendering; http : //wwwcg . in . tum. de/research/research/publications/2003/com pression-domain-volume-rendering.html). Dabei wird dafür gesorgt, dass Volumen niemals komplett entpackt werden und somit effektiv nur soviel Speicher in den einzelnen
Speicherkomponenten zur Verfügung stehen muss, wie die
komprimierten Daten beanspruchen. Nachteil der Methode ist allerdings, dass Daten, selbst wenn sie sich zwischen zwei Darstellungszyklen nicht ändern, in jedem Zyklus entpackt werden müssen. Daher wird in Kombination mit Compression- Domain-Rendering auf Methoden zurückgegriffen, die nur eine geringe Dekompressionskomplexität aufweisen. Beispielsweise wird im Stand der Technik für direktes
Rendering im Kompressionsraum die sogenannte
Vektorquantisierung genutzt (vgl. Robert Gray, „Vector
Quantization" http://ieeexplore.ieee.org/document/1162229/) . Dabei durchlaufen Volumendatensätze, welche pro Zeitschritt verarbeitet werden, drei Verarbeitungsstufen: Blockzerlegung,
Training eines Codebuchs anhand eines Training-Sets (=
Untermenge der Eingabeblöcke) , Klassifizierung der gesamten Blockmenge anhand der etablierten Codewörter des Codebuchs. In der Blockzerlegung wird ein Volumen in disjunkte Subvolumen der gleichen Größe aufgeteilt. Diese werden fortan als
Datenpunkte (Vektoren) in einem multidimensionalen Raum behandelt. Wird also ein Volumen in Blöcke der Größe 2x2x2=8 aufgeteilt, so werden die Blöcke als Vektoren in einem 8- dimensionalen Raum behandelt. Solche Datenblöcke können auch als multidimensionale Punkte angesehen werden. Während des
Codebuch-Trainings werden ausgewählte Vektoren mittels
Machine-Learning-Algorithmen auf eine vorher festgelegte
Anzahl an Repräsentanten reduziert. Diese Repräsentanten werden fortan als Codewörter bezeichnet. Zusammen bildet die Menge der Codewörter das sogenannte Codebuch, welches später zur Dekompression genutzt wird. Bei der Klassifizierung wird jeder Block des zerlegten Volumens dem Codewort zugeordnet, welches die geringste Abweichung zum Block aufweist. Der Klassifizierungsschritt ist notwendig, da Codewörter nicht zwangsläufig mit allen Vektoren des Originaldatensatzes gelernt werden müssen. Da die Training-Zeit unter anderem stark von der Anzahl der Vektoren, die für das Training benutzt werden sollen, abhängt, wird hier in der Regel auf eine repräsentative Untermenge der gesamten Blöcke zurückgegriffen. Das durch eine repräsentative Menge an
Training-Vektoren erzeugte Codebuch passt i.d.R. nur
vernachlässigbar schlechter auf die Originaldaten als ein Codebuch, welches unter Zuhilfenahme aller Blöcke gelernt wurde. Wird mit einer echten Untermenge der Daten gearbeitet, ergibt sich allerdings das Problem, dass zumindest die Blöcke die nicht am Training beteiligt waren keine Zuordnung zu einem Codewort erhalten haben. Deswegen erfolgt in der
Klassifizierung eine Zuordnung von allen Blöcken des
Originalvolumens zu den zuvor gelernten Codewörtern anhand der minimalen Abweichung der einzelnen Elemente. Somit wird sichergestellt, dass jeder Block einen validen Index im Index- Volumen enthält. Die multidimensionalen Blöcke werden nach der Klassifizierung durch einen einzelnen Index zum jeweiligen
Codebuch-Eintrag ersetzt.
Die Volumenrendering-Technik (z. B. Raycasting) wird während der Dekompression statt auf dem Originalvolumen auf dem Index- Volumen durchgeführt. Das Codebuch wird dabei nicht in einer
3D-Struktur gespeichert. Es ist festzustellen, dass die diskrete Repräsentation der ursprünglich kontinuierlichen Daten durch die Abtastung für hohe Bildschirmauflösungen zu deutlichen Rekonstruktionsartefakten führt. Im Stand der
Technik wird zur Lösung dieses Problems auf fortgeschrittene
Filterungsmethoden zurückgegriffen. Der Unterschied besteht u.a. darin, dass bei stückweise konstanter Interpolation lediglich das räumlich nächste Signalelement im Volumen als Repräsentant einer kontinuierlichen Abtastposition
zurückgegeben wird, während bei Interpolationsmethoden höheren
Grades mehrere räumlich korrelierte Signalelemente miteinander verrechnet werden. Regelmäßig besteht dabei der Wunsch,
Volumenrendering in grafikkartenbasierten Ansätzen mittels 3D- Texturen zu realisieren, aufgrund der Verfügbarkeit von hardwaregestützter, stückweise linearer Interpolation. Wird diese Möglichkeit genutzt, werden für Texturanfragen von
Signalelementen (Pixel in 2D, Voxel in 3D) benachbarte
Elemente von Hardwarekomponenten angefragt, interpoliert und zurückgeliefert. Mittels Index-Volumen können die Codewörter angefragt werden und eine Dekompression des Volumens kann zur Laufzeit erfolgen. Die Abtastposition im Codewort selbst lässt sich implizit aus der Position im Index-Volumen und Kenntnis der Codewortgrößen berechnen.
Mit letzterer Methode wird ein kontinuierlicher
Intensitätsverlauf ermöglicht. Eine solche Filterung führt für vektorquantisierte Daten in Compression-Domain-Rendering
Szenarien allerdings zu Fehlern, denn für
Volumenrepräsentationen, in denen die Daten räumlich
unkorreliert vorliegen, führt eine hardwaregestützte
Interpolation dazu, dass Signalelemente aus verschiedenen Codewörtern miteinander verrechnet werden. Die Nachbarschaft von Codewörtern im Codebuch korreliert allerdings nicht mit der Nachbarschaft der Elemente im Index-Volumen, welche die Codewörter referenzieren . Folglich treten bei der Anwendung der Interpolation in Bereichen, in denen der Abtastwert an mindestens einer Seite aus dem Codewort herausragt und demnach automatisch zwischen angrenzenden Codewörtern interpoliert werden würde, Interpolationsartefakte auf. Die bisherige
Lösung, um einerseits hochqualitativ gefilterte Daten zu erhalten und anderseits Artefakte zu vermeiden, wird darin gesehen, die Interpolation softwareseitig durchzuführen und alle umliegenden Signalelemente ohne hardwaregestützte
Interpolation anzufragen. Für stückweise lineare Interpolation auf 3D-Daten ist dafür das Abtasten von 8 einzelnen Werten erforderlich. Die angefragten Werte werden dann ebenfalls in dem Grafikkartenprogramm softwareseitig verrechnet. Diese Herangehensweise führt jedoch zu einer deutlichen Erhöhung der Rechenzeit für ein einziges Bild und ist oftmals dafür
ausschlaggebend, dass interaktive Bildwiederholungsraten nicht erreicht werden können.
Da hardwaregestützte Interpolation nicht aktiviert werden kann, werden die Codewörter, die eigentlich eine 3D-Struktur (oder ggf. höher dimensionale Struktur) aufweisen, in 2D- Texturen abgelegt. Die Codewörter werden in diesem Fall als lD-Vektoren betrachtet, welche lediglich aufgrund von
Restriktionen der Texturgrößen in 2D- anstelle von 1D-Texturen abgelegt werden müssen. Dies führt zu einer wenig
vorteilhaften Speicherausnutzung .
Ein hardwaregestützter Interpolationsversuch im Codewort führt dazu, dass außerhalb der Signalelemente über Codewortgrenzen interpoliert wird. Die bisher verwendete Lösung für eine korrekte stückweise lineare Interpolation liegt darin, über das Index-Volumen Codewörter zu identifizieren, die in der dekomprimierten Repräsentation des Volumens nebeneinander liegen und mehrere Texturanfragen zu stellen, welche nicht- interpolierte Codewortelemente zurückliefern. Anschließend werden diese Elemente ebenfalls mittels Grafikkartenprogramm interpoliert. Insgesamt entsteht vor allem durch die nicht hardwaregestützten Anfragen ein erheblicher Berechnungsmehraufwand, um korrekt interpolierte Intensitäten an den
Abtastpositionen zu erhalten. Der damit einhergehende Verlust der Rendering-Geschwindigkeit ist so gravierend, dass bei Vektorquantisierungsansätzen im Kompressionsraum in der Regel auf stückweise lineare Filterung verzichtet wird und
stattdessen mit stückweise konstanten Filtern gearbeitet wird. Wie oben bereits erwähnt, führt dies aber zu sichtbaren Aliasing-Artefakten . Der maßgebliche Unterschied zwischen beiden Zugriffen, welche vor der Interpolation stattfinden, ist, dass im unkomprimierten Volumen Datenelemente räumlich in einem Array so nebeneinander liegen, wie sie aufgenommen wurden. Hardware gestützte Interpolation ist somit in der Lage implizit benachbarte Elemente anzufragen und korrekt zu interpolieren. Im Codebuch, welches als eine Art Textur-Atlas interpretiert werden kann, liegen die Codewörter nicht mehr an räumlich implizit identifizierbaren Stellen in der Textur und müssen explizit mittels Software-Abtastung des Index-Volumens ausfindig gemacht werden. Daher kann bislang keine Hardware gestützte Interpolation direkt im Codebuch genutzt werden.
Für eine verbesserte Interpolation im Kontext der
Visualisierung von großen Volumen mittels Level-of-Detail
Techniken beschreiben M. Isenburg, P. Lindstrom, H. Childs in „Parallel and Streaming Generation of Ghost Data for
Structured Grids", April 25, 2008, IEEE Computer Graphics and Applications (https : //e-reports-ext . llnl . gov/pdf/360151.pdf) , dass dekorrelierte Blöcke auf jeder Seite mit Signalelementen aufgefüllt werden, die von angrenzenden Blöcken kopiert wurden. Hierbei ergibt sich allerdings das Problem, dass die Qualität des Ergebnisses des für eine Datenkompression
erforderlichen Codebuch-Trainings stark von der Größe der einzelnen Blöcke abhängt. Niedrigdimensionale Codewörter weichen bei gleicher Anzahl verwendeter Repräsentanten weniger stark von den Blöcken des Originalvolumens ab als
höherdimensionale . Außerdem steigt bei höherdimensionalen Codewörtern der erforderliche Speicherplatz durch das
allseitige Ergänzen von Kopien der Daten aus den benachbarten
Blöcken stark an, sodass der Vorteil der Datenkompression in Bezug auf die Verarbeitungsgeschwindigkeit schnell durch den erhöhten Speicherplatzbedarf verloren geht. In Fout, Nathaniel et al . „High-Quality Rendering of
Compressed Volume Data Formats", EUROGRAPHICS- IEEE VGTC
Symposium on Visualization (2005) , wird ein Datenverarbei- tungsverfahren mit verzögerter Filterung beschrieben, welches qualitativ hochwertiges Volumenrendern direkt aus komprimierten Daten ermöglicht.
Eine Aufgabe der vorliegenden Erfindung besteht ausgehend von den vorbekannten Lösungen darin, eine verbessertes Verfahren zur Signalerzeugung bereit zustellen, welches die zuvor beschriebenen Probleme bei der Signalerzeugung, insbesondere für die Anzeige von Bilddaten vermeidet bzw. deutlich
reduziert. Insbesondere wird ein Verfahren zur Signalerzeugung angestrebt, welches eine hardwaregestützte Interpolation direkt im Kompressionsraum ermöglicht.
Diese Aufgabe wird durch das im beigefügten Anspruch 1 angegebene Verfahren zur Erzeugung eines Signals gelöst.
Die Erfindung wird nachfolgend vorwiegend unter Bezugnahme auf Anwendungen bei der Verarbeitung von Bilddaten beschrieben. Es ist aber festzuhalten, dass die Erfindung ohne weiteres auch für die Signalerzeugung basierend auf beliebigen anderen Daten einsetzbar ist, wobei solche Daten beispielsweise durch multidimensionale Messwerte einer physikalischen Entität gebildet sein können.
Das Verfahren beginnt zunächst in herkömmlicher Weise mit der Aufnahme einer mehrdimensionalen Datenmenge aus zahlreichen
Daten, wobei jedes einzelne Datum mindestens eine
Positionsangabe in der Datenmenge sowie einen Datenwert umfasst. Insbesondere werden dazu von einem Objekt zahlreiche Bildpunkte erfasst, die z. B. mit Positionswerten, Helligkeits- , Intensitäts- und/oder Farbwerten und ggf.
weiteren Parametern gespeichert werden. Die Aufnahme erfolgt durch eine Aufnahmeeinheit , beispielsweise mit bildgebenden Vorrichtungen, wie einer Kamera, einem Tomografen oder
dergleichen. Alternativ kann die Aufnahme von Datenwerten auch mit einem oder mehreren Sensoren erfolgen. Die aufgenommenen Daten werden für die weitere Bearbeitung zwischengespeichert. In den nachfolgenden Schritten wird die Datenmenge aus
aufgenommenen Daten vollständig zerlegt und gespeichert, um auf die Datenwerte für eine spätere Nutzung, insbesondere bei der Erzeugung von Bildsignalen Zugriff nehmen zu können. Vom Grundsatz her wird für die Zerlegung der Daten die oben beschriebene, aus dem Stand der Technik bekannte Methode der
Vektorquantisierung verwendet, bestehend aus den Teilschritten Blockzerlegung, Training eines Codebuchs anhand eines
Training-Sets, und Klassifizierung der gesamten Blockmenge anhand der etablierten Codewörter des Codebuchs.
Wesentlich für die Erfindung ist zum einen die Erkenntnis, dass sich die Verarbeitungsgeschwindigkeit bei der
Interpolation zwischen zwei Datenwerten eines Codeworts drastisch erhöhen lässt, wenn an den Rändern jedes Codeworts die Datenwerte des jeweils benachbarten Codeworts aufgefüllt werden (sogenanntes Padding) . Dadurch lässt es sich vermeiden, dass innerhalb eines Blocks von Datenwerten zur Interpolation benötigte Elemente innerhalb anderer Codewörter angefragt werden müssen. Dabei ist es für die Erfindung weiterhin wesentlich, dass dieses Auffüllen nicht wie in speziellen
Fällen gemäß dem Stand der Technik auf allen Seiten des
Codewortblocks erfolgt sondern jeweils nur auf genau einer Seite je Dimension des Blocks, um eine minimale Blockgröße zu erhalten, auf der hardwaregestützt interpoliert werden kann. Anders als im Stand der Technik werden beim erfindungsgemäßen Zerlegen der Daten nur an einer Seite pro räumlicher Achse bzw. Dimension jedes Blocks überlappende Signalelemente aus den Nachbarblöcken ergänzt und gemeinsam mit den originären
Daten des Blocks als Codewort abgespeichert. In den neu entstandenen Randbereichen des Codeworts, die nun allseits von Datenwerten umschlossen sind, kann nun hardwaregestützt interpoliert werden. An den frei gebliebenen Rändern, die nicht mit Datenwerten benachbarter Codewörter aufgefüllt wurden, kann weiterhin nicht artefaktfrei durch die
Grafikhardware interpoliert werden.
Nach der Zerlegung der aufgezeichneten Datenmenge und der damit einhergehenden einseitigen Auffüllung der Blöcke zu aufgefüllten Codewörtern erfolgt die Abspeicherung der
aufgefüllten Codewörter als Repräsentation für das Codebuch. Dies geschieht bevorzugt in einer 3D-Textur, um die SD-Texturfilterung zu erlauben. Die Struktur von 3D-Codewörtern mit einseitig überlappenden Datenwerten ist äquivalent zur 2D-
Texturen. Das Auffüllen (Padding) der Datenwerte an jeweils einer Seite pro Dimension erzeugt pro Block ein kleines, direkt interpolierbares 3D-Volumen. Gemäß einer bevorzugten Ausführungsform werden nach der
Zerlegung der Datenmenge und der Auffüllung der Datenwerte an genau einem Rand pro Dimension die einzelnen Blöcke einer Symmetrietransformation unterzogen, um gemeinsame
Repräsentanten zu finden, die abgesehen von ihrer Ausrichtung identisch oder ähnlich sind und somit mehrere Codewörter repräsentieren können. Die Codewörter müssen durch die
Transformation nicht zwangsläufig identisch werden, um einen positiven Effekt bei der angestrebten Reduzierung der Repräsentanten zu erzielen. Bereits das Ähnlichmachen der Blöcke durch die Symmetrietransformation reduziert die
Datenvarianz und erzielt deutlich bessere Ergebnisse im
Codebuchtraining .
Einzelheiten, Vorteile und Weiterbildungen der Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die Zeichnung. Es zeigen :
Fig. 1 eine symbolische Darstellung der Auffüllung eines zweidimensionalen Codeworts bei der Zerlegung von aufgezeichneten Daten;
Fig. 2 eine symbolische Darstellung der Auffüllung eines dreidimensionalen Codeworts bei der Zerlegung von aufgezeichneten Daten;
Fig. 3 einen vereinfachten Ablaufplan einer
Vektorquantisierung für hardwaregestützte Interpolation;
Fig. 4 eine Veränderung von aufgefüllten Codewörtern
mithilfe einer Symmetrietransformation;
Fig. 5 eine Veranschaulichung von Verfahrensschritten bei der Auswahl eines gültigen Codeworts;
Fig. 6 eine Veranschaulichung von Verfahrensschritten bei
Anwendung einer Symmetrietransformation.
Das erfindungsgemäße Verfahren dient der Signalerzeugung eines dekomprimierten Signals direkt im Kompressionsraum,
insbesondere der Erzeugung eines darstellbaren Bildsignals, welches bei Ansteuerung einer Anzeigeeinheit als ein Bildelement dargestellt wird. Das zu erzeugende Signal wird durch Interpolation erzeugt, basierend auf aufgezeichneten bzw. in einem Speicher abgelegten Datenwerten. Es ist
ersichtlich, dass ein komplexes Bild aus zahlreichen
Bildsignalen zusammengesetzt wird, wobei neben den durch
Interpolation erzeugten Signalen auch weitere Bildsignale verwendet werden, die ohne vorherige Interpolation direkt aus den aufgenommenen und abgespeicherten Daten erzeugt werden können. Die Aufnahme solcher Daten, beispielsweise durch bildgebende Geräte ist dem Fachmann hinlänglich bekannt und wird daher hier nicht näher beschrieben. Ebenso sind dem
Fachmann geeignete Vorgehensweisen zur Zerlegung der sich ergebenden großen Datenmengen und zur Bildung sogenannter Codewörter bekannt, sodass hier nur diejenigen Aspekte
detailliert beschrieben werden müssen, die von den bekannten
Vorgehensweisen abweichen.
Fig. 1 zeigt in Abbildung a) einen zweidimensionalen
Datenblock 10 mit vier Datenwerten 11 - 14, welcher aus einer zuvor aufgenommenen Datenmenge herausgeschnitten wurde. Es ist verständlich, dass für eine Signalerzeugung an einer
beliebigen Stelle innerhalb einer Interpolationsfläche 15, die von den Datenwerten allseits eingeschlossen ist, eine
hardwaregestützte Interpolation zwischen den Datenwerten 11 - 14 möglich ist, jedoch nicht außerhalb diese
Interpolationsfläche. Erfindungsgemäß wird der Datenblock 10 vor seiner Abspeicherung in einem Codebuch an jeweils genau einer Seite pro Dimension erweitert, indem die dort
angrenzenden Datenwerte 101 - 105 aus der aufgenommenen
Datenmenge hinzugefügt werden, d. h. diese angrenzenden
Datenwerte 101 - 105 werden aus den an diesen aufzufüllenden Seiten unmittelbar originär angrenzenden Datenblöcken kopiert. Der Datenblock 10 wird somit um genau eine Datenreihe pro Dimension erweitert. Die verbleibenden Ränder des Blocks 10', also jeweils genau ein weiterer Rand pro Dimension, werden nicht um Datenwerte erweitert. Es resultiert ein erweiterter bzw. aufgefüllter Block 10', wie es in Abbildung b) gezeigt ist. In den dadurch neu gebildeten erweiterten
Interpolationsflächen 110, 111, 112, die nun auch von vier Datenwerten umschlossen sind, kann nun ebenfalls
hardwaregestützt interpoliert werden, wenn dort ein Signalwert benötigt wird, um das Signal zu erzeugen und an einer
Anzeigeeinheit darzustellen. Außerhalb der
Interpolationsflächen, also an den nicht erweiterten Rändern des erweiterten Blocks 10' kann nicht artefaktfrei durch die Grafikhardware interpoliert werden. Da die Datenwerte an den unaufgefüllten Rändern jedoch wiederum von anderen Blöcken dupliziert werden, gibt es stets mindestens ein Codewort pro kontinuierlicher Abtastposition im Volumen, in welchem
hardwaregestützt korrekt interpoliert werden kann. Wird eine Interpolation eines Signalwertes außerhalb der
Interpolationsflächen benötigt, kann in das Codewort
gewechselt werden, welches laut Index-Volumen der korrekte
Nachbar des erweiterten Codewortes 10' ist.
Fig. 2 zeigt in Abbildung a) einen dreidimensionalen
Datenblock 20 mit acht Datenwerten. Zur Überführung in einen erweiterten dreidimensionalen Block (oder Vektor) 20', wie es in Abbildung b) gezeigt ist, werden auch hier an jeweils genau einer Seite pro Dimension die dort angrenzenden Datenwerte aus der aufgenommenen Datenmenge hinzugefügt, sodass der
erweiterte Block 20' um neunzehn Datenwerte erweitert wird, bevor es im Codebuch abgespeichert werden kann.
Fig. 3 zeigt in stark abstrahierter Form den Ablauf einer Vektorquantisierung für hardwaregestützte Interpolation im Kompressionsraum. Das Verfahren verwendet aufgenommene
Datenwerte, die eine Datenmenge 300 bilden. Die aus dem Stand der Technik prinzipiell bekannten Kernkomponenten
Blockzerlegung 301, Codebuch-Training 302 und Klassifizierung 303 sind nach wie vor vorhanden. Diese werden bei der
dargestellten Ausführung ergänzt bzw. modifiziert durch zwei weitere Verarbeitungsschritte vor dem Codebuchtraining und der Klassifizierung . Im Schritt 304 findet die einseitige Duplizierung von Daten nach bzw. bei der Blockerzeugung statt, wie es oben
beschrieben wurde. Dabei wird jeweils an einer Seite pro Achse der räumlichen Datenblöcke eine Reihe von Daten als
Füllelemente angehängt. Die Daten werden hierbei von den nächstliegenden Elementen der Nachbarblöcke kopiert.
In der dargestellten Ausführung wird der
Qualitätsdegradierung, die durch das Codebuchtraining mit erhöhter Codewortdimensionalität verursacht wird,
entgegengewirkt, indem im Schritt 305 eine
Symmetrietransformation vorgenommen wird, wobei die
symmetrische Ähnlichkeit zwischen Blöcken ausgenutzt wird, um die Anzahl der bei gleicher Qualität zu speichernden
Codewörter zu reduzieren.
Fig. 4 zeigt das bei der Symmetrietransformation angewandte Verfahren am Beispiel zweidimensionaler erweiterter Blöcke 410 - 413, die aufgrund der bereits vorgenommenen einseitigen Erweiterung pro Achse in ihrer Struktur dem erweiterten Block 10' aus Fig. 1 entsprechen. Es wurde festgestellt, dass insbesondere bei kleinen Blockgrößen innerhalb des zerlegten Volumens oft Blöcke bzw. Trainings-Vektoren auftreten, die nach einer einfachen Spiegelung unter Ausnutzung der Achsensymmetrie entlang einer der drei Kardinalachsen oder einer Rotationen um den Block-Mittelpunkt entweder gleich oder zumindest sehr ähnlich sind. Die vier dargestellten Blöcke 410 - 413 können z. B. anhand der beispielhaft eingetragenen
Intensitätswerte mittels dieser Symmetrietransformationen auf eine einzige kanonische Repräsentation reduziert werden. Dazu bleibt der Block 410 während der Transformation unverändert, der Block 411 wird durch Spiegelung um die vertikale
Mittelachse zum transformierten Block 411', der Block 412 wird durch Rotation um +90° zum transformierten Block 412', und der
Block 413 wird durch Transformation um -90° zum
transformierten Block 413'. Nach der Symmetrietransformation sind mit Ausnahme der Ausrichtung alle vier in Fig. 4
dargestellten transformierten Blöcke gleich.
Es ist ersichtlich, dass nach ausgeführter
Symmetrietransformation (rechte Seite der Darstellung in Fig. 4) vier gleich Blöcke vorliegen, von denen dann nur ein einziger Repräsentant für das Codebuch-Training genutzt werden muss. Für die Symmetrietransformation können zusätzlich zu den
8 Varianten, zu denen die 3 Reflexionen miteinander kombiniert werden können, die Kombination aller 90 ° -Rotationen entlang der Kardinalachsen genutzt werden. Insgesamt ergeben sich durch die Kombination aller zuvor beschriebenen Operationen bis zu 48 unterscheidbare transformierte Repräsentationen pro
Block.
Obwohl es bei Hochpräzisionsaufnahmen von Volumendaten
unwahrscheinlich ist, viele Blöcke zu finden, die durch eine einfache Transformation genau aufeinander abzubilden sind, so wird die Varianz im Datensatz doch stark reduziert, indem Symmetrietransformationen für die Blöcke ausgeführt werden. Die Transformation, die einen Block am besten an ein vorgegebenes Sortierschema angleicht, wird schließlich
ausgewählt und später gemeinsam mit dem Codewort-Index im Index-Volumen gespeichert. Im in Fig. 4 dargestellten Beispiel ist das Transformationsauswahlkriterium, dass in der linken unteren Ecke das größtmögliche Element stehen muss. Bei gleichwertigen Transformationen werden weitere Elemente hinzugezogen, bis eine durch die vorgegebenen Transformationen bestmögliche Ordnung der Datenwerte erreicht wurde. Als Ergebnis des im Schritt 302 ausgeführten Codebuch-
Trainings (Fig. 3), basierend auf den aufgefüllten und
symmetrietransformierten Blöcken entsteht ein Codebuch, dessen Codewörter ebenfalls eine gelernte Repräsentation der
Randelemente enthalten und die außerdem die originalen
Volumendaten mit kleinerem Fehler repräsentieren als ein
Codebuch, welches ohne Ausnutzung von Symmetrieinformation erzeugt wurde. Bei dieser Ausführungsform enthält das Index- Volumen nicht nur die Information über referenzierte
Codewörter, sondern zusätzlich auch den Index der
Transformation die auf den ursprünglichen Block angewendet wurde. Diese Information wird während der Dekompression benutzt, um die gleiche Abtastposition im Koordinatensystem eines transformierten Codeworts zu finden. Nach dem Codebuch- Training 302 liegt ein Codebuch vor, welches aufgrund des Auffüllens der Ränder und des Speicherns in einer 3D-Textur konzeptionell als Mini-Volumen per Codewort, alle Codewörter als Menge von direkt hardwaregestützt interpolierbaren
Komponenten enthält. In Fig. 5 sind die beiden typischen Fälle dargestellt, die bei der Dekompression der Datenwerte auftreten können, wenn eine Interpolation zwischen tatsächlich vorliegenden Datenwerten erforderlich wird. Die Dekompression von Daten innerhalb des aufgefüllten und ggf. durch eine Symmetrietransformation erzeugten symmetrischen Codebuchs funktioniert grundsätzlich äquivalent zu bekannten Ansätzen, jedoch mit den nachfolgend erläuterten Unterschieden. Einer der beiden Hauptunterschiede ist, dass die Abtastpositionen im Codewortkoordinatensystem hinsichtlich der auf das ausgewählte Codewort angewendeten Symmetrieoperation transformiert werden, bevor die
Wertabfrage, z. B. eine Intensitätsabfrage, im Codewort erfolgt, wenn eine solche Symmetrieoperation während des Codebuch-Trainings angewandt wurde. Der zweite wichtige
Unterschied, welcher die hardwaregestützte stückweise lineare Interpolation während der Dekompression erlaubt, ist die beschränkte Abtastung des Index-Volumens. Die folgende Betrachtung vernachlässigt zugunsten der
Verständlichkeit die Symmetrietransformation der
Abtastposition. Diese kann nach der Ermittlung der
Abtastposition im Codewort ohne weitere Einschränkung
durchgeführt werden. Vorzugsweise indiziert ein erster Teil des Speichers pro Index-Element ein Codewort und ein zweiter
Teil den Index für die benutzte Transformation. Für das
Abtasten der Codewörter an der korrekten Position muss abhängig von zwei Fällen eine Koordinatentransformation in Form einer Verschiebung der Texturkoordinaten erfolgen. Durch Maskierungsoperationen kann effizient zwischen beiden
Bereichen im Speicherindex unterschieden werden.
Es ist klar, dass eine Interpolation nicht erforderlich ist, wenn zur Erzeugung des eine Anzeige generierenden Signals, ein exakter Datenwert im Codewort zur Verfügung steht. Entspricht die Position im Codewort, deren Datenwert (Intensitätswert) für die Signalerzeugung auszulesen ist, nicht einem
gespeicherten Datenwert, so ist eine Interpolation erforderlich. Diese Ausgangslage ist in Fig. 5 durch eine Datenmenge 500 mit dem darin enthaltenen ersten Codewort 510 verdeutlicht, in welchem eine Position 511 markiert ist, deren Datenwert zur Signalerzeugung interpoliert werden muss. Zur Dekompression dieser einzelnen hardwaregestützt interpolierten
Position 511 (bzw. deren zugehörigem Intensitätswert) findet eine Änderung in der Abtastung des Index-Volumens und
gegebenenfalls eine Anpassung der Abtastposition im
Codewortraum statt. Dazu wird zunächst - ohne den Index anzufragen - basierend auf der anzufragenden Abtastposition im
Index-Volumen die Position im Codewortraum ermittelt. Da die Codewörter alle gleich groß sind, kann dies implizit und unabhängig vom tatsächlichen Codewort durchgeführt werden. Abhängig davon, ob die Abtastposition 511 im interpolierbaren Bereich [Variante a) = Abtastposition 511a] oder im nicht- interpolierbaren Bereich [Variante b) = Abtastposition 511b] liegt. Die Abtastposition 511a liegt im interpolierbaren
Bereich, wenn sie allseits von Datenwerten des Codeworts umschlossen ist; die Abtastposition 511b liegt im nicht- interpolierbaren Bereich, wenn in mindestens einer Richtung kein Datenwert des Codeworts angrenzt.
Im Fall a) , d. h. die Abtastposition 511a liegt im
interpolierbaren Bereich des Codeworts, kann direkt an der angefragten Position in einem Codewort eine Texturanfrage gestellt werden, d. h. es können sowohl das Index-Volumen als auch das entsprechende Codewort an der Position 511a
abgetastet werden. Im Fall b) , d. h. die Abtastposition 511b liegt im nicht- interpolierbaren Bereich, wird festgestellt, dass die
Abtastpositionen außerhalb des interpolierbaren Bereiches liegt, wobei auch ermittelt wird, auf welchen räumlichen Achsen die Codewort-Grenzen überschritten sind. Da während des Auffüllschrittes (Padding) im Schritt des Zerlegens der aufgezeichneten Daten nebeneinanderliegende Blöcke einseitig „überlappt" wurden, ist bekannt, dass der jeweilige Block, welcher zuvor an den ursprünglichen Block angrenzte, den fehlenden Bereich mittels Padding abdeckt. Das passende benachbarten Codewort ist somit bekannt und kann im Speicher adressiert werden, indem vom Signalelement des Index-Volumens, welches ursprünglich abgetastet werden sollte, das benachbarte Index-Element in Richtung der Grenzüberschreitung angefragt wird. In der Illustration in Fig. 5 sind für die Variante b) die drei möglichen Richtungen der Grenzüberschreitungen im zweidimensionalen Raum und die entsprechenden Reaktionen in der Abtastung des Index-Volumens und der Anpassung der
Sampling-Position im Codewort angedeutet. Für die
Interpolation an der Abtastposition 511b wird also in ein benachbartes Codewort 520 gewechselt und dessen Datenwerte werden zur Interpolation herangezogen. Im dreidimensionalen Fall existieren dementsprechende Fälle und Reaktionen für 13 Richtungen der Grenzüberschreitungen (26 Ränder, 13 davon durch Padding aufgefüllt) .
In Fig. 6 wird beispielhaft eine Koordinatentransformation veranschaulicht, die aufgrund der oben bereits erwähnten
Symmetrietransformation der Blöcke notwendig ist, soweit diese in der bevorzugten Ausführungsform zur Anwendung kommt.
Nachdem wie zuvor beschrieben das passende Codewort adressiert wurde und gegebenenfalls eine Verschiebung der Abtastposition in den aufgefüllten Bereich erfolgt ist, muss die im Schritt der Zerlegung angewandte Symmetrietransformation des
Codewortes rückgängig gemacht werden. Dies liegt darin
begründet, dass eine kanonische Codewort-Repräsentation potenziell viele ursprünglich verschiedene Eingabeblöcke repräsentiert, die durch Symmetrietransformationen einander ähnlich gemacht wurden. Dazu wird der Transformationsindex für die auf den Block angewendete Transformationen in 6 Bits jedes Eintrags des Index-Volumen gespeichert. Anstatt alle Elemente des Codewortes einzeln invers zu transformieren, wird die Transformation des Codewortes auf die Abtastposition
angewendet. Das in Fig. 6 dargestellte Beispiel beschreibt dabei exemplarisch das generelle Vorgehen, wobei auch
abgewandelte Symmetrieoperation angewendet werden können.
In Fig. 6 ist zu beachten, dass alle Operationen in einem Koordinatensystem stattfinden, welches relativ zum
aufgefüllten Codewort normalisiert ist. Auf der linken Seite ist das nicht transformierte Codewort gezeigt, während auf der rechten Seite verschiedene Transformationszustände gezeichnet sind .
In Fig. 6, Abbildung a) befindet sich die untransformierte Abtastposition 611 horizontal auf der falschen Seite des aufgefüllten Codewortes. Um die Transformation auf die
Abtastposition anzuwenden, wird zuerst das lokale
Koordinatensystem der Abtastposition in die Blockmitte
verschoben - Abbildung b) . Anschließend wird die indizierte Transformation angewendet, in diesem Fall Reflexion entlang der y-Achse - Abbildung c) . Zum Schluss wird der Ursprung des Koordinatensystems (unter Berücksichtigung der vorher
angewendeten Transformation) zurückgesetzt - Abbildung d) . Nun befindet sich die Abtastposition an der korrekten Stelle im transformierten Codewort. An dieser Position kann nun final der dekomprimierte Intensitätswert mit aktivierter
hardwaregestützter linearer Interpolation angefragt werden. Zusammenfassend ist festzustellen, dass die hardwaregestützt interpolierte Abtastung der Datenwerte (Intensitäten im Falle von Bilddaten) , die mittels des erfindungsgemäß genutzten Vektorquantisierers erzeugt werden, performanter ist als die softwareseitige trilineare Interpolation auf den
unaufgefüllten Daten. Der Vergleich der Rendering-Zeiten von unaufgefüllten und aufgefüllten Daten zeigt eine deutliche Verkürzung um bis zur Hälfte der Zeit. Eine weitere
Effizienzsteigerung des Verfahrens ist zu erwarten, wenn die Dekompressionskomponente nicht nur hardwaregestützte
Texturanfragen übernimmt, sondern komplett in Form einer
Hardwareschaltung als Standarddekompressionsmodus in
Grafikhardware implementiert wird. Die dargestellten Techniken lassen sich sowohl für die hardwaregestützte Interpolation für 2D-Bild- als auch für 3D-Volumen-Daten im Kompressionsraum anwenden .

Claims

Verfahren zur Erzeugung eines Signals, welches einen
Signalwert zwischen zuvor aufgenommenen Datenwerten repräsentiert, folgende Schritte umfassend:
Aufnahme einer mehrdimensionalen Datenmenge aus zahlreichen Daten mithilfe einer Aufnahmeeinheit und
Zwischenspeichern der Daten, wobei jedes Datum
mindestens eine Positionsangabe in der Datenmenge sowie einen Datenwert umfasst;
Zerlegung der Datenmenge in zahlreiche mehrdimensionale Datenblöcke, welche jeweils mindestens zwei Datenwerte pro Dimension enthalten, und Auffüllen der Datenblöcke an jeweils genau einer vorbestimmten Seite pro Dimension mit Datenwerten aus dem jeweils an dieser Seite
angrenzenden Datenblock;
Abspeicherung der aufgefüllten Datenblöcke als Codewörter in einem Codebuch;
Abfrage einer gewünschten Position in einem ausgewählten Codewort, für die kein Datenwert gespeichert ist, sowie a) Bestimmung eines interpolierten Datenwerts für diese Position durch Interpolation zwischen zu der
abgefragten Position benachbarten Datenwerten des ausgewählten Codeworts, sofern benachbarte Datenwerte in jeder Dimension beidseitig der abgefragten Position vorhanden sind, oder
b) Abfrage der gewünschten Position in einem zu dem
zunächst ausgewählten Codewort unmittelbar benachbarten Codewort, sofern an der Position in dem zunächst ausgewählten Codewort an mindestens einer Seite kein benachbarter Datenwert vorhanden ist, sowie nachfolgende Bestimmung des interpolierten Datenwerts gemäß Teilschritt a) ; Ausgabe des interpolierten Datenwerts an eine
erzeugungseinheit , welche ein dem Datenwert
entsprechendes Signal erzeugt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass di Daten Bilddaten sind und die Datenwerte Positionswerte in einem Bild sowie Intensitätswerte an der jeweiligen
Position umfassen.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Aufnahme der Datenmenge mithilfe einer
bildgebenden Aufnahmeeinheit erfolgt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, dass das erzeugte Signal ein Bildsignal ist, welches an eine Anzeigeeinheit übergeben wird.
Verfahren nach einem der Ansprüche 2 bis 4, dadur
gekennzeichnet, dass die aufgenommene Datenmenge
dreidimensionales Objekt repräsentiert .
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch
gekennzeichnet, dass das Abspeichern der Datenblöcke im Wege eines Codebuch-Trainings erfolgt, wobei identische und/oder ähnliche Datenblöcke zu einem repräsentativen Codewort im Codebuch zusammengefasst werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass nach dem Auffüllen der Datenblöcke,
zumindest einige der Datenböcke einer Symmetrietrans¬ formation unterzogen werden, um sie in eine kanonische Form zu überführen und damit die Datenvarianz zu reduzieren, wobei die Art der angewendeten Symmetrieinformation
gemeinsam mit einem auf das transformierte Codewort
zeigenden Index abgespeichert wird.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass für die Symmetrietransformation der Datenblock durch eine der folgenden Operationen in seiner Ausrichtung verändert wird:
Spiegelung um eine Kardinalachse des Datenblocks; ein- oder mehrfache 90°-Rotation um den Block- Mittelpunkt .
9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass nach der Abfrage der gewünschten Position im
ausgewählten Codewort eine reziproke
Symmetrietransformation erfolgt, welche die während der Codeworterzeugung angewandte Symmetrietransformation umkehrt .
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die reziproke Symmetrietransformation auf das vollständige erweiterte Codewort oder nur auf die abgefragte Position angewandt wird.
PCT/EP2018/070393 2017-08-02 2018-07-27 Verfahren zur erzeugung eines signals WO2019025303A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017117522.9A DE102017117522A1 (de) 2017-08-02 2017-08-02 Verfahren zur Erzeugung eines Signals
DE102017117522.9 2017-08-02

Publications (1)

Publication Number Publication Date
WO2019025303A1 true WO2019025303A1 (de) 2019-02-07

Family

ID=63143112

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/070393 WO2019025303A1 (de) 2017-08-02 2018-07-27 Verfahren zur erzeugung eines signals

Country Status (2)

Country Link
DE (1) DE102017117522A1 (de)
WO (1) WO2019025303A1 (de)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
J. SCHNEIDER ; R. WESTERMANN: "Compression domain volume rendering", PROCEEDINGS OF THE 14TH IEEE VISUALIZATION 2003, 24 October 2003 (2003-10-24), XP002786278, ISBN: 0-7695-2030-8, Retrieved from the Internet <URL:https://dl.acm.org/citation.cfm?id=1081483> [retrieved on 20181106] *
M. ISENBURG, P. LINDSTROM, H. CHILDS: "Parallel and Streaming Generation of Ghost Data for Structured Grids", IEEE COMPUTER GRAPHICS AND APPLICATIONS, 25 April 2008 (2008-04-25), XP002786277, Retrieved from the Internet <URL:https://e-reports-ext.llnl.gov/pdf/360151.pdf> [retrieved on 20181106] *
M. ISENBURG; P. LINDSTROM; H. CHILDS: "Parallel and Streaming Generation of Ghost Data for Structured Grids", IEEE COMPUTER GRAPHICS AND APPLICATIONS, 25 April 2008 (2008-04-25), Retrieved from the Internet <URL:https://e-reports-ext.llnl.gov/pdf/360151.pdf>
NATHANIEL ET AL.: "High-Quality Rendering of Compressed Volume Data Formats", EUROGRAPHICS-IEEE VGTC SYMPOSIUM ON VISUALIZATION, 2005
NATHANIEL FOUT ET AL: "High-Quality Rendering of Compressed Volume Data Formats", INTERNET ARTICLE, 2005, XP002786279, Retrieved from the Internet <URL:https://www.researchgate.net/publication/220778453_High-Quality_Rendering_of_Compressed_Volume_Data_Formats> [retrieved on 20181106] *
NIKOLAUS NESTLE, KAY RYDYGER, RAINER KIMMICH, UNIVERSITÄT ULM SEKTION KERNRESONANZSPEKTROSKOPIE: ""Negative Edge Enhancement" in NMR Imaging with Diffusion at Permeable Susceptibility Interfaces", JOURNAL OF MAGNETIC RESONANCE, vol. 125, no. 2, April 1997 (1997-04-01), XP002786280, Retrieved from the Internet <URL:https://www.sciencedirect.com/science/article/pii/S1090780797911216> [retrieved on 20181106] *

Also Published As

Publication number Publication date
DE102017117522A1 (de) 2019-02-07

Similar Documents

Publication Publication Date Title
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69725487T2 (de) Gitternetze mit veränderbarer Auflösung
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE102006043894B3 (de) Detailtiefenstufen-Einstellung mehrdimensionaler Bilddaten mit einem Client/Server-basierten Bildrenderingsystem
DE69722040T2 (de) 2-d gittergeometrie und bewegungsvektorkompression
DE60014723T2 (de) System zur Erzeugung eines zusammengesetzten Bildes
DE2835689A1 (de) Anordnung zur veraenderung der aufloesung bei der bild-datenerfassung und -uebertragung
EP0421186B1 (de) Verfahren zur Codierung beliebig geformter Bildsegmente
DE3832222A1 (de) Vorrichtung und verfahren zum anzeigen eines 2-dimensionalen bildes eines 3-dimensionalen gegenstandes
DE60302924T2 (de) Anpassungsfähige nichtlineare Bildvergrösserung mittels Wavelet-Transformkoeffizienten
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE19819198A1 (de) Reversible DCT für verlustfreie/verlustbehaftete Kompression
DE4309105A1 (de) Verfahren und Einrichtung zum Behandeln eines Teils eines verdichteten Bildes für ein Aufbereiten
DE112015003626T5 (de) System und verfahren zum erhöhen der bittiefe von bildern
DE19806985A1 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE69820148T2 (de) Verfahren zur Kompression/Dekompression von Bilddaten
DE102008052690B4 (de) Vorrichtung und Verfahren zur Rekonstruktion und Visualisierung von Projektionsdaten
DE10056978B4 (de) Verfahren zur Erzeugung eines stereographischen Bildes
WO2019025303A1 (de) Verfahren zur erzeugung eines signals
EP0121766A1 (de) Verfahren und Vorrichtung zur Darstellung von Bildinformationen
EP0786186B1 (de) Segmentadaptive zweidimensionale orthogonale transformationskodierung für ein digitales fernsehsystem
EP1034511B1 (de) Verfahren zur umsetzung digitaler daten im raster einer ersten auflösung in digitale zieldaten einer zweiten auflösung
DE10320882B4 (de) Verfahren zur Erzeugung von Bildern in der Spiral-Computertomographie und Spiral-CT-Gerät
DE3733038A1 (de) Verfahren und schaltungsanordnung zur bilddatenreduktion fuer digitale fernsehsignale
EP2705494A1 (de) Verfahren zum skalieren von videodaten und eine anordnung zur durchführung des verfahrens

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18752105

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18752105

Country of ref document: EP

Kind code of ref document: A1