DE102017117522A1 - Method for generating a signal - Google Patents
Method for generating a signal Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods 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
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.
-
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.
Im Schritt
In der dargestellten Ausführung wird der Qualitätsdegradierung, die durch das Codebuchtraining mit erhöhter Codewortdimensionalität verursacht wird, entgegengewirkt, indem im Schritt
Es ist ersichtlich, dass nach ausgeführter Symmetrietransformation (rechte Seite der Darstellung in
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
Als Ergebnis des im Schritt
In
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
Im Fall a), d. h. die Abtastposition
Im Fall b), d. h. die Abtastposition
In
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
In
In
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)
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) |
-
2017
- 2017-08-02 DE DE102017117522.9A patent/DE102017117522A1/en not_active Withdrawn
-
2018
- 2018-07-27 WO PCT/EP2018/070393 patent/WO2019025303A1/en active Application Filing
Non-Patent Citations (1)
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 |