DE102017117522A1 - Method for generating a signal - Google Patents

Method for generating a signal Download PDF

Info

Publication number
DE102017117522A1
DE102017117522A1 DE102017117522.9A DE102017117522A DE102017117522A1 DE 102017117522 A1 DE102017117522 A1 DE 102017117522A1 DE 102017117522 A DE102017117522 A DE 102017117522A DE 102017117522 A1 DE102017117522 A1 DE 102017117522A1
Authority
DE
Germany
Prior art keywords
data
codeword
signal
adjacent
blocks
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.)
Withdrawn
Application number
DE102017117522.9A
Other languages
German (de)
Inventor
Bernd Fröhlich
Adrian Kreskowski
Carl-Feofan Matthes
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.)
Bauhaus Universitaet Weimar
Original Assignee
Bauhaus Universitaet 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 Universitaet Weimar filed Critical Bauhaus Universitaet Weimar
Priority to DE102017117522.9A priority Critical patent/DE102017117522A1/en
Priority to PCT/EP2018/070393 priority patent/WO2019025303A1/en
Publication of DE102017117522A1 publication Critical patent/DE102017117522A1/en
Withdrawn legal-status Critical Current

Links

Images

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

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.The invention relates to a method for generating a signal which represents a signal value between previously recorded data values. The process starts by taking a multidimensional set of data from a large amount of data using a capture unit. This is followed by the decomposition of the data set into numerous multidimensional data blocks and the filling of the data blocks at exactly one predetermined page per dimension with data values from the respective data block adjacent to this page. Subsequently, the storage of the padded data blocks is performed as codewords in a codebook. Finally, the interrogation of a desired position in a code word for which no data value is stored follows, the determination of an interpolated data value for this position being made between data values adjacent to the queried position, if adjacent data values in each dimension are present on both sides of the interrogated position, or the query of the desired position is made in a codeword adjacent to the initially selected codeword, if there is no adjacent data value at the position in the codeword initially selected on at least one side. Finally, the interpolated data value is output to a signal generation unit which generates a signal corresponding to the data value.

Description

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.The invention generally relates to a method of generating a signal representing the interpolated signal value between previously recorded data values. In particular, this method allows correct hardware-based interpolation to be applied directly in the compression space of a large amount of data, making it particularly suitable for signal generation in the application of vector quantization-based compression techniques. The use of the method ultimately allows the construction of improved hardware, especially for graphics applications.

Beispielsweise durch bilderzeugende Geräte, wie Magnetresonanztomografen oder Lichtblattmikroskope werden große Datenmengen (3D-Volumendaten) generiert, die meist in Form von Skalarfeldern 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.For example, image-generating devices such as magnetic resonance tomographs or light-sheet microscopes generate large amounts of data (3D volume data), which are usually displayed in the form of scalar fields in a suitable 3D structure. In order to allow the user to navigate as smoothly as possible through these structures, d. H. In order to enable high-quality and interactive 3D visualizations of the recorded data, even when storing large amounts of data intermediate values must be generated, which can subsequently be output as an indication signal. This is preferably done by direct volume rendering methods, which are preferably executed in parallel on a graphics card. Although small datasets fit completely into the memory of a high-performance graphics card and can therefore be visualized using established techniques, high-resolution and / or time-variant volume datasets are also a challenge for modern graphics cards.

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.The prior art therefore relies on volume compression techniques for efficient storage and streaming of volume time steps in real-time visualization systems. In this case, 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 only negligible deviations from the original exhibit. In addition to the choice of concrete compression technology, it is decisive at which point of the data transfer from a storage medium to the visualization of the data decompression takes place. In addition to the limited data throughput between the components of a computer (memory, CPU, graphics card, display unit) is a limitation mainly in that the amount of data to be treated are limited mainly by the available graphics card memory. A previously known solution, which respects the limited memory and data throughput, is to compress the data into the memory of the graphics card and to decompress individual values only on request for a short time. This approach is referred to in the literature as compression domain rendering (see J. Schneider, R. Westermann: Compression Domain Volume Rendering, http://wwwcg.in.tum.de/research/research/publications/2003/compression -domain-volume-rendering.html). It is ensured that volumes are never completely unpacked and thus effectively only as much memory must be available in the individual memory components as the compressed data require. Disadvantage of the method, however, is that data, even if they do not change between two presentation cycles, must be unpacked in each cycle. Therefore, in combination with compression domain rendering, methods with low decompression complexity are used.

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.For example, in the prior art, for direct rendering in the compression space, so-called vector quantization is used (see Robert Gray, "Vector Quantization" http://ieeexplore.ieee.org/document/1162229/). Volume data sets which are processed per time step pass through three processing stages: block decomposition, training of a codebook by means of a training set (= subset of the input blocks), classification of the entire block set based on the established codewords of the codebook. In the block decomposition, a volume is divided into disjoint subvolumes of the same size. These are henceforth treated as data points (vectors) in a multidimensional space. So if a volume is divided into blocks of size 2x2x2 = 8, the blocks are treated as vectors in an 8-dimensional space. Such data blocks can also be regarded as multi-dimensional points. During codebook training, selected vectors are reduced to a predetermined number of representatives using machine learning algorithms. These representatives will henceforth be referred to as codewords. Together, the set of codewords forms the so-called codebook, which is later used for decompression. In the classification, 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. Among other things, since the training time depends heavily on the number of vectors to be used for the training, a representative subset of the blocks is generally used here. The codebook generated by a representative set of training vectors usually fits only negligibly worse Original data as a codebook, which was learned with the help of all blocks. However, working with a real subset of data results in the problem that at least the blocks that were not involved in the training did not get assigned to a codeword. Therefore, in the classification, an assignment of all the blocks of the original volume to the previously learned code words takes place on the basis of the minimum deviation of the individual elements. This ensures that each block contains a valid index in the index volume. The multidimensional blocks are replaced after classification by a single index to the respective codebook entry.

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.The volume rendering technique (eg, ray casting) is performed during decompression rather than on the original volume on the index volume. The codebook is not stored in a 3D structure. It should be noted that the discrete representation of the original continuous data by high screen resolution scanning results in significant reconstruction artifacts. The prior art relies on advanced filtering techniques to solve this problem. The difference is u.a. in that, with piecewise constant interpolation, only the spatially closest signal element in the volume is returned as a representative of a continuous sampling position, while in interpolation methods of higher degree several spatially correlated signal elements are compared with one another. On a regular basis, there is a desire to realize volume rendering in graphics-based approaches using 3D textures due to the availability of hardware-based, piecewise linear interpolation. If this option is used, texture element queries (pixels in 2D, voxels in 3D) will request, interpolate, and return adjacent elements of hardware components. By means of index volume, the codewords can be requested and a decompression of the volume can take place at runtime. The sampling position in the code word itself can be calculated implicitly from the position in the index volume and knowledge of the code word sizes.

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.The latter method enables a continuous intensity profile. However, such filtering leads to errors for vector-quantized data in compression domain rendering scenarios, because for volume representations in which the data is spatially uncorrelated, a hardware-based interpolation leads to signal elements from different codewords being offset against one another. However, the proximity of codewords in the codebook does not correlate with the neighborhood of the elements in the index volume that reference the codewords. Consequently, in the application of interpolation in areas where the sample protrudes from the codeword on at least one side and thus would be interpolated automatically between adjacent codewords, interpolation artifacts occur. The previous solution, on the one hand to obtain high-quality filtered data and on the other hand to avoid artifacts, is seen in the software to perform the interpolation and to query all surrounding signal elements without hardware-based interpolation. For piecewise linear interpolation on 3D data, it is necessary to sample 8 individual values. The requested values are then also calculated by the software in the graphics card program. However, this approach significantly increases the computation time for a single image and often helps to ensure that interactive refresh rates can not be achieved.

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 1D-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.Since hardware-based interpolation can not be activated, the 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 1D vectors, which only have to be dropped due to restrictions of the texture sizes in 2D instead of 1D textures. This leads to a less advantageous memory utilization.

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 nichtinterpolierte 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.A hardware-assisted interpolation attempt in the codeword results in interpolation beyond codeword boundaries outside the signal elements. The previously used solution for correct piecewise linear interpolation 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. Overall, due to the non-hardware-based queries, a considerable additional computation effort is incurred in order to obtain correctly interpolated intensities at the sampling positions. The associated loss of the rendering speed is so serious that in the case of vector quantization approaches in the compression space, piecewise linear filtering is generally dispensed with and piece-wise constant filters are used instead. As mentioned above, however, this leads to visible aliasing artifacts. The key difference between the two interpolations that take place before interpolation is that in the uncompressed volume, data elements are spatially adjacent to each other in an array as they were taken. Hardware-based interpolation is thus able to implicitly query neighboring elements and to interpolate them correctly. In the codebook, which can be interpreted as a kind of texture atlas, the codewords are no longer present spatially implicitly identifiable locations in the texture and must be explicitly located by software scanning of the index volume. Therefore, so far no hardware-based interpolation can be used directly in the codebook.

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.For improved interpolation in the context of large volume visualization using level-of-detail techniques, M. Isenburg, P. Lindstrom, H. Childs in "Parallel and Streaming Generation of Ghost Data for Structured Grids", April 25, 2008, describes IEEE Computer Graphics and Applications (https://e-reports-ext.llnl.gov/pdf/360151.pdf) that decorrelated blocks on each page are populated with signal elements copied from adjacent blocks. Here, however, there is the problem that the quality of the result of the codebook training required for data compression depends strongly on the size of the individual blocks. Low-dimensional codewords differ less strongly from the blocks of the original volume than higher-dimensional ones with the same number of representatives used. In addition, with higher dimensional codewords, the required memory space increases greatly by the omnipresent addition of copies of the data from the adjacent blocks, so that the advantage of data compression in terms of processing speed is quickly lost due to the increased memory requirements.

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.It is an object of the present invention, based on the previously known solutions, to provide an improved method for signal generation which avoids or significantly reduces the previously described problems in signal generation, in particular for the display of image data. In particular, a method for signal generation is sought, which enables a hardware-based interpolation directly in the compression space.

Diese Aufgabe wird durch das im beigefügten Anspruch 1 angegebene Verfahren zur Erzeugung eines Signals gelöst.This object is solved by the method given in the appended claim 1 for generating a signal.

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.The invention will be described below mainly with reference to applications in the processing of image data. It should be noted, however, that the invention can readily be used for signal generation based on any other data, such data may be formed for example by multi-dimensional measurements of a physical entity.

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.The method initially begins in a conventional manner with the acquisition of a multidimensional data set from numerous data, wherein each individual datum comprises at least one position indication in the dataset and one datum. In particular, numerous pixels are detected by an object to z. B. with position values, brightness, intensity and / or color values and possibly other parameters are stored. The recording is carried out by a recording unit, for example with imaging devices, such as a camera, a tomograph or the like. Alternatively, the recording of data values can also take place with one or more sensors. The recorded data is buffered for further processing.

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.In the subsequent steps, the data volume from recorded data is completely decomposed and stored in order to be able to access the data values for later use, in particular in the generation of image signals. In principle, the method of vector quantization known from the prior art described above is used for the decomposition of the data, consisting of the sub-steps block decomposition, training a codebook on the basis of a training set, and classification of the total block amount based on the codebook's established codewords ,

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.Essential for the invention, on the one hand, is the recognition that the processing speed in the interpolation between two data values of a codeword can be drastically increased if the data values of the respectively adjacent codeword are padded at the edges of each codeword (so-called padding). This avoids the need to request elements within a block of data values for interpolation within other codewords. It is also essential for the invention that this filling is not done on all sides of the codeword block, as in special cases according to the prior art, but only on exactly one side per dimension of the block in order to obtain a minimum block size on which hardware is supported can be interpolated. Unlike in the prior art, in the disassembly of the data according to the invention, overlapping signal elements from the neighboring blocks are only supplemented on one side per spatial axis or dimension of each block and stored together with the original data of the block as code word. In the newly created border areas of the codeword, which are now enclosed on all sides by data values, hardware-assisted interpolation is now possible. At the left-over edges, which were not filled with data values of adjacent codewords, further artifact-free interpolation can not be performed by the graphics hardware.

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 3D-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.After the decomposition of the recorded amount of data and the associated one-sided filling of the blocks to filled-in codewords the storage of the filled codewords takes place as a representation for the codebook. This is preferably done in a 3D texture to allow 3D texture filtering. The structure of 3D codewords with one-sided overlapping data values is equivalent to 2D textures. The padding of the data values on one side per dimension generates a small, directly interpolatable 3D volume per block.

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.According to a preferred embodiment, after decomposing the data set and filling the data values at exactly one edge per dimension, the individual blocks undergo a symmetry transformation to find common representatives that are identical or similar except for their orientation and thus can represent multiple codewords. The codewords do not necessarily have to become identical through the transformation in order to achieve a positive effect in the desired reduction of the representatives. Even the similarization of the blocks by the symmetry transformation reduces the data variance and achieves significantly better results in codebook training.

Einzelheiten, Vorteile und Weiterbildungen der Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die Zeichnung. Es zeigen:

  • 1 eine symbolische Darstellung der Auffüllung eines zweidimensionalen Codeworts bei der Zerlegung von aufgezeichneten Daten;
  • 2 eine symbolische Darstellung der Auffüllung eines dreidimensionalen Codeworts bei der Zerlegung von aufgezeichneten Daten;
  • 3 einen vereinfachten Ablaufplan einer Vektorquantisierung für hardwaregestützte Interpolation;
  • 4 eine Veränderung von aufgefüllten Codewörtern mithilfe einer Symmetrietransformation;
  • 5 eine Veranschaulichung von Verfahrensschritten bei der Auswahl eines gültigen Codeworts;
  • 6 eine Veranschaulichung von Verfahrensschritten bei Anwendung einer Symmetrietransformation.
Details, advantages and developments of the invention will become apparent from the following description of preferred embodiments with reference to the drawings. Show it:
  • 1 a symbolic representation of the filling of a two-dimensional code word in the decomposition of recorded data;
  • 2 a symbolic representation of the filling of a three-dimensional code word in the decomposition of recorded data;
  • 3 a simplified flowchart of vector quantization for hardware based interpolation;
  • 4 a change of padded codewords using a symmetry transformation;
  • 5 an illustration of method steps in the selection of a valid codeword;
  • 6 an illustration of process steps when applying a symmetry transformation.

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.The method according to the invention is used for signal generation of a decompressed signal directly in the compression space, in particular the generation of a displayable image signal, which is displayed as a picture element when a display unit is driven. The signal to be generated is generated by interpolation, based on recorded or stored in a memory data values. It can be seen that a complex image is composed of numerous image signals, wherein in addition to the signals generated by interpolation and other image signals are used, which can be generated without prior interpolation directly from the recorded and stored data. 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, those skilled in the art suitable procedures for the decomposition of the resulting large amounts of data and the formation of so-called codewords are known, so that only those aspects must be described in detail, which differ from the known procedures.

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. 1 shows in Figure a) a two-dimensional data block 10 with four data values 11 - 14 , which has been cut out of a previously recorded amount of data. It is understood that for signal generation anywhere within an interpolation area 15 , which is widely included by the data values, is a hardware-based interpolation between the data values 11 - 14 is possible, but not outside of this interpolation area. According to the invention, the data block 10 before being stored in a codebook, extended to exactly one page per dimension, by the data values adjacent thereto 101 - 105 be added from the recorded data set, ie these adjacent data values 101 - 105 are copied from the directly to original data blocks to be filled in these pages. The data block 10 is thus extended by exactly one data series per dimension. The remaining edges of the block 10 ' , ie exactly one additional margin per dimension, are not extended by data values. The result is an expanded or padded block 10 ' as shown in Figure b). In the newly formed extended interpolation areas 110 . 111 . 112 , which are now also enclosed by four data values, can now also be interpolated in a hardware-supported manner if a signal value is needed there in order to generate the signal and display it on a display unit. Outside the interpolation areas, ie at the non-extended edges of the extended block 10 ' can not be interpolated artifact-free by the graphics hardware. However, since 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 hardware-assisted interpolation can be done correctly. If an interpolation of a signal value outside of the interpolation areas is required, it is possible to change to the code word which, according to the index volume, is the correct neighbor of the extended code word 10 ' is.

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. 2 shows in Figure a) a three-dimensional data block 20 with eight data values. To transfer to an extended three-dimensional block (or vector) 20 ' As shown in figure b), the data values from the recorded dataset are added to exactly one page per dimension, so that the extended block 20 ' expanded by nineteen data values before it can be stored in the codebook.

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. 3 shows in highly abstracted form the procedure of a vector quantization for hardware based interpolation in the compression space. The method uses recorded data values that contain a dataset 300 form. The principle known from the prior art core components block decomposition 301 , Codebook training 302 and classification 303 are still there. These are supplemented or modified in the illustrated embodiment by two further processing steps before codebook training and classification.

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 step 304 the one-sided duplication of data occurs after or during block generation, as described above. In this case, a series of data is appended as fill elements on one side per axis of the spatial data blocks. The data is copied from the nearest elements of the neighboring blocks.

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.In the illustrated embodiment, the quality degradation caused by the codebook training with increased codeword dimensionality is counteracted by performing in step 305 a symmetry transformation is made using the symmetric similarity between blocks to reduce the number of codewords to be stored at the same quality.

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 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 4 dargestellten transformierten Blöcke gleich. 4 shows the method used in the symmetry transformation on the example of two-dimensional extended blocks 410 - 413 which, due to the unilateral extension already made per axis in its structure, is the extended block 10 ' out 1 correspond. It has been found that, especially for small block sizes within the decomposed volume, blocks or training vectors often appear that are either the same or at least very similar after simple mirroring, utilizing axis symmetry along one of the three cardinal axes or rotations about the block center are. The four blocks shown 410 - 413 can z. B. based on the exemplary registered intensity values by means of these symmetry transformations are reduced to a single canonical representation. For this the block remains 410 unchanged during the transformation, the block 411 becomes the transformed block by mirroring around the vertical center axis 411 ' , the block 412 is rotated by + 90 ° to the transformed block 412 ' , and the block 413 is transformed by -90 ° to the transformed block 413 ' , After symmetry transformation, with the exception of alignment, all four are in 4 represented transformed blocks equal.

Es ist ersichtlich, dass nach ausgeführter Symmetrietransformation (rechte Seite der Darstellung in 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.It can be seen that after symmetry transformation has been carried out (right side of the illustration in FIG 4 ) four equal blocks are present, of which then only a single representative for the codebook training must be used. For the symmetry transformation, in addition to the 8 variants to which the 3 reflections can be combined, the combination of all 90 ° rotations along the cardinal axes can be used. Overall, the combination of all the operations described above yields up to 48 distinguishable transformed representations per 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 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.Although it is unlikely to find many blocks in high-precision recordings of volume data that are to be accurately mapped by a simple transformation, the variance in the data set is greatly reduced by performing symmetry transformations on the blocks. The transformation that best matches a block to a given sorting scheme is finally selected and later stored together with the codeword index in the index volume. Im in 4 The example shown is the transformation selection criterion that must have the largest possible element in the lower left corner. For equivalent transformations, additional elements are used until the best possible ordering of the data values is achieved by the given transformations.

Als Ergebnis des im Schritt 302 ausgeführten Codebuch-Trainings (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.As a result of the step 302 executed codebook training ( 3 ), based on the padded and symmetry transformed blocks, a codebook is created whose codewords also contain a learned representation of the boundary elements and which also represent the original volume data with a smaller error than a codebook created without exploiting symmetry information. In this embodiment, the index volume contains not only the information about referenced codewords but also the index of the transform applied to the original block. This information is used during decompression to find the same sample position in the coordinate codeword coordinate system. After the codebook training 302 is a codebook, which due to the filling of the edges and storing in a 3D texture conceptually as a mini-volume per codeword, all codewords as a set contains directly hardware-supported interpolatable components.

In 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.In 5 The two typical cases that occur when decompressing the data values when interpolation between actual data values are required are shown. The decompression of data within the padded and possibly symmetric codebook generated by a symmetry transformation works basically equivalent to known approaches, but with the differences explained below. One of the two main 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 value query, e.g. As an intensity query, takes place in the codeword, if such a symmetry operation was applied during the codebook training. The second important difference allowing hardware-assisted piecewise linear interpolation during decompression is the limited sampling of the index volume.

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.The following consideration neglects the symmetry transformation of the sampling position in favor of intelligibility. This can be carried out after determination of the sampling position in the codeword without further restriction. Preferably, a first part of the memory indexes one code word per index element and a second part indexes the index used for the transformation. For the scanning of the codewords at the correct position, a coordinate transformation in the form of a displacement of the texture coordinates must take place depending on two cases. Masking operations can efficiently distinguish between both areas in the storage index.

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 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 nichtinterpolierbaren 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 nichtinterpolierbaren Bereich, wenn in mindestens einer Richtung kein Datenwert des Codeworts angrenzt.It is clear that interpolation is not required if an accurate data value is available in the codeword to generate the signal generating a display. If the position in the code word whose data value (intensity value) for the signal generation is to be read out does not correspond to a stored data value, an interpolation is necessary. This starting position is in 5 through a dataset 500 with the first codeword contained therein 510 clarifies in which one position 511 is marked whose data value has to be interpolated for signal generation. To decompress this single hardware-supported interpolated position 511 (or their corresponding intensity value), there is a change in the scanning of the index volume and, if appropriate, an adaptation of the scanning position in the codeword space. For this purpose, the position in the code word space is first determined-without requesting the index-based on the sampling position to be requested in the index volume. Since the codewords are all the same size, this can be done implicitly and independently of the actual codeword. Depending on whether the sampling position 511 in the interpolatable range [variant a) = scanning position 511a ] or in the non-interpolatable area [variant b) = sampling position 511b ] lies. The scanning position 511a lies in the interpolatable area if it is surrounded on all sides by data values of the code word; the scanning position 511b lies in the non-interpolatable area if no data value of the code word adjoins in at least one direction.

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.In case a), ie the sampling position 511a is located in the interpolatable portion of the code word, a texture request can be made directly at the requested position in a codeword, ie, both the index volume and the corresponding codeword at the position 511a be scanned.

Im Fall b), d. h. die Abtastposition 511b liegt im nichtinterpolierbaren 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 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 case b), ie the sampling position 511b is in the non-interpolatable range, it is determined that the sampling positions is outside the interpolatable range, which also determines on which spatial axes the codeword limits are exceeded. Since adjacent blocks are "overlapped" on one side during the padding step in the step of decomposing the recorded data, it is known that the respective block previously adjacent to the original block covers the missing area by padding. The matching adjacent codeword is thus known and can be addressed in memory by requesting from the signal element of the index volume, which should originally be scanned, the adjacent index element in the direction of the boundary crossing. In the illustration in 5 For the variant b) the three possible directions of the border crossings in the two-dimensional space and the corresponding reactions in the scanning of the index volume and the adaptation of the sampling position in the codeword are indicated. For interpolation at the sampling position 511b So it will be in a neighboring codeword 520 and its data values are used for interpolation. In the three-dimensional case, there are corresponding cases and reactions for 13 Directions of border crossings ( 26 margins, 13 padded by padding).

In 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.In 6 By way of example, a coordinate transformation is necessary, which is necessary because of the above-mentioned symmetry transformation of the blocks, insofar as this is used in the preferred embodiment.

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 6 dargestellte Beispiel beschreibt dabei exemplarisch das generelle Vorgehen, wobei auch abgewandelte Symmetrieoperation angewendet werden können.After the appropriate codeword has been addressed as described above and, if appropriate, a shift of the scan position into the padded area has taken place, the symmetry transformation of the codeword used in the step of the decomposition must be reversed. This is because a canonical codeword representation potentially represents many originally distinct input blocks that have been made similar by symmetry transformations. To do this, 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 is applied to the sample position. This in 6 Example shown here describes the example of the general procedure, whereby modified symmetry operation can be applied.

In 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 6 It should be noted that all operations take place in a coordinate system that is normalized relative to the padded codeword. On the left side the untransformed codeword is shown, while on the right side different transformation states are drawn.

In 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.In 6 , Figure a) is the untransformed sampling position 611 horizontally on the wrong side of the padded codeword. To apply the transformation to the sample position, first the local coordinate system of the sample position is moved to the middle of the block - Figure b). Then the indexed transformation is applied, in this case reflection along the y-axis - Figure c). Finally, the origin of the coordinate system (taking into account the previously applied transformation) is reset - Figure d). Now the sample position is at the correct location in the transformed codeword. Finally, the decompressed intensity value with activated, hardware-supported linear interpolation can be requested at this position.

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.In summary, it can be stated that the hardware-assisted interpolated sampling of the data values (intensities in the case of image data) which are generated by means of the vector quantizer used in accordance with the invention is more efficient than the software-based trilinear interpolation on the non-filled-in data. Comparing the rendering times of unfilled and padded data shows a significant reduction of up to half the time. A further increase in the efficiency of the method is to be expected if the decompression component not only takes over hardware-based texture requests, but is implemented completely in the form of a hardware circuit as standard decompression mode in graphics hardware. The illustrated techniques can be applied to both hardware-assisted interpolation for 2D image and 3D volume data in the compression space.

Claims (10)

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 Signalerzeugungseinheit, welche ein dem Datenwert entsprechendes Signal erzeugt.A method of generating a signal representing a signal value between previously acquired data values comprising the steps of: - Recording a multidimensional data set of numerous data using a recording unit and buffering of the data, each datum comprising at least one position indication in the dataset and a data value; Decomposing the data set into numerous multi-dimensional data blocks each containing at least two data values per dimension, and filling the data blocks at exactly one predetermined page per dimension with data values from the respective data block adjacent to this page; - storing the padded data blocks as codewords in a codebook; - Query a desired position in a selected codeword for which no data value is stored, as well a) determining an interpolated data value for that position by interpolating between data items of the selected codeword adjacent to the queried position, if adjacent data values in each dimension are present on either side of the queried position, or b) querying the desired position in a codeword immediately adjacent to the initially selected codeword if there is no adjacent data value at the position in the initially selected codeword on at least one page, as well as subsequent determination of the interpolated data value according to substep a); - Output of the interpolated data value to a signal generating unit which generates a signal corresponding to the data signal. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Daten Bilddaten sind und die Datenwerte Positionswerte in einem Bild sowie Intensitätswerte an der jeweiligen Position umfassen.Method according to Claim 1 , characterized in that the data are image data and the data values comprise position values in an image as well as intensity values at the respective position. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Aufnahme der Datenmenge mithilfe einer bildgebenden Aufnahmeeinheit erfolgt.Method according to Claim 1 or 2 , characterized in that the recording of the amount of data takes place by means of an imaging unit. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass das erzeugte Signal ein Bildsignal ist, welches an eine Anzeigeeinheit übergeben wird.Method according to one of Claims 1 to 3 , characterized in that the generated signal is an image signal which is transmitted to a display unit. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass die aufgenommene Datenmenge ein dreidimensionales Objekt repräsentiert.Method according to one of Claims 2 to 4 , characterized in that the recorded data amount represents a three-dimensional object. 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. Method according to one of Claims 1 to 5 , characterized in that the storage of the data blocks takes place by means of a codebook training, wherein identical and / or similar data blocks are combined to form a representative code word in the codebook. 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 Symmetrietransformation 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.Method according to one of Claims 1 to 6 , characterized in that after filling the data blocks, at least some of the data blocks are subjected to a symmetry transformation in order to convert them into a canonical form and thus to reduce the data variance, wherein the type of the applied symmetry information together with an index pointing to the transformed codeword is stored. 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.Method according to Claim 7 , characterized in that, for the symmetry transformation, the data block is changed in orientation by one of the following operations: - mirroring about a cardinal axis of the data block; - single or multiple 90 ° rotation around the block center. 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.Method according to Claim 7 or 8th , characterized in that after the query of the desired position in the selected codeword a reciprocal symmetry transformation takes place, which reverses the applied during codeword generation symmetry transformation. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die reziproke Symmetrietransformation auf das vollständige erweiterte Codewort oder nur auf die abgefragte Position angewandt wird.Method according to Claim 9 , characterized in that the reciprocal symmetry transformation is applied to the complete extended codeword or only to the queried position.
DE102017117522.9A 2017-08-02 2017-08-02 Method for generating a signal Withdrawn DE102017117522A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017117522.9A DE102017117522A1 (en) 2017-08-02 2017-08-02 Method for generating a signal
PCT/EP2018/070393 WO2019025303A1 (en) 2017-08-02 2018-07-27 Method for generating a signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017117522.9A DE102017117522A1 (en) 2017-08-02 2017-08-02 Method for generating a signal

Publications (1)

Publication Number Publication Date
DE102017117522A1 true DE102017117522A1 (en) 2019-02-07

Family

ID=63143112

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017117522.9A Withdrawn DE102017117522A1 (en) 2017-08-02 2017-08-02 Method for generating a signal

Country Status (2)

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FOUT, N.; AKIBA, H.; MA, K.-L.; LEFOHN, A. E.; KNISS, J.: High-Quality Rendering of Compressed Volume Data Formats. In: Proc. EUROGRAPHICS-IEEE VGTC Symposium on Visualization, 2005. Genf: Eurographics Association, 2005. – ISSN 1727-5296. *

Also Published As

Publication number Publication date
WO2019025303A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE69634962T2 (en) Extrapolation of pixel values of a video object contained in a block
DE69723550T2 (en) CODING AND DECODING OF GRAPHIC SYMBOLS
DE69725487T2 (en) Grid with variable resolution
DE69722040T2 (en) 2-D GRID GEOMETRY AND MOTION VECTOR COMPRESSION
DE69816824T2 (en) TEXTURE IMAGE IN 3-D COMPUTER GRAPHICS
EP0421186B1 (en) Method for the coding of picture segments with an arbitrary shape
DE69736329T2 (en) NESTED DISTRIBUTED CODING OF PACKED DATA PACKAGES
DE3832222A1 (en) DEVICE AND METHOD FOR DISPLAYING A 2-DIMENSIONAL IMAGE OF A 3-DIMENSIONAL OBJECT
DE19917092A1 (en) Accelerated method for grid forming of graphic basic element in order beginning with graphic base element instruction data to produce pixel data for graphic base element
DE4309105A1 (en) Method and apparatus for treating part of a condensed image for rendering
DE102014006734A1 (en) ECKPUNKTPARAMETER DATA COMPRESSION
DE102007040585A1 (en) Providing representative image information
DE202017007520U1 (en) Motion compensation through machine learning
DE202017007512U1 (en) Motion estimation through machine learning
DE102004004641A1 (en) Image processing method, involves determining contribution of each voxel to bin of detector array or vice versa in accordance with projections of voxel edges and detector bin edges on predetermined plane
DE112015003626T5 (en) SYSTEM AND METHOD FOR INCREASING THE BITTERY OF IMAGES
DE69820148T2 (en) Process for compression / decompression of image data
DE60031014T2 (en) METHOD FOR ASSESSING THE MOTION BETWEEN TWO PICTURES MANAGING THE APPLICATION OF A MACHINE AND CORRESPONDING CODING METHOD
DE112016002247T5 (en) SYSTEMS AND METHOD FOR ADDRESSING A INTERMEDIATE MEMORY WITH STAGED INDICES
DE102017117522A1 (en) Method for generating a signal
EP0121766B1 (en) Method and device for displaying image data
DE19509418A1 (en) Method and circuit arrangement for subsampling in motion estimation
EP0786186B1 (en) Segment-adaptive two-dimensional orthogonal transform coding for a digital television system
EP1034511B1 (en) Method for converting digital raster data of a first resolution into digital target data of a second resolution
DE10320882B4 (en) Method for generating images in spiral computed tomography and spiral CT apparatus

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: PATENTSCHUTZENGEL, DE

R120 Application withdrawn or ip right abandoned