DE102022120401A1 - Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory - Google Patents
Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory Download PDFInfo
- Publication number
- DE102022120401A1 DE102022120401A1 DE102022120401.4A DE102022120401A DE102022120401A1 DE 102022120401 A1 DE102022120401 A1 DE 102022120401A1 DE 102022120401 A DE102022120401 A DE 102022120401A DE 102022120401 A1 DE102022120401 A1 DE 102022120401A1
- Authority
- DE
- Germany
- Prior art keywords
- bits
- data stream
- code
- coding
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013500 data storage Methods 0.000 title claims description 8
- 239000000945 filler Substances 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
-
- 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/6047—Power optimization with respect to the encoder, decoder, storage or transmission
Abstract
Die Anmeldung betrifft ein Verfahren zur Codierung eines Datenstroms (DS), wobei der Datenstrom (DS) Bits in kontinuierlicher Abfolge aufweist, aufweisend:• Empfangen einer ersten Anzahl von Bits des Datenstromes (DS),• Segmentieren der ersten Anzahl von Bits, wobei es Segmente gibt, die Paketen (P) entsprechen, die eine Länge aufweisen, die einer zweiten Anzahl Bits entspricht, und wobei es zumindest ein Kurz-Segment gibt, das weniger als die zweite Anzahl Bits aufweist,• Auffüllen des zumindest einen Kurz-Segmentes zu einem Paket (P) durch Hinzufügen von Füllbits (X), so dass die kombinierte Länge von Kurz-Segment und Füllbits (X) die zweite Anzahl Bits ergibt,• Codieren der Pakete (P), wobei jeweils ein Paket (P) der zweiten Anzahl von Bits durch die Codierung auf einen jeweiligen Code (C) abgebildet wird, wobei die zweite Anzahl von Bits so gewählt ist, dass sich der jeweilige Code (C) effizient berechnen und/oder speichern lässt.Die Anmeldung betrifft weiter eine Einrichtung (10) zur Codierung eines Datenstromes (DS) und ein Verfahren zur Decodierung von Codes (C).The application relates to a method for coding a data stream (DS), the data stream (DS) having bits in a continuous sequence, comprising: • receiving a first number of bits of the data stream (DS), • segmenting the first number of bits, wherein There are segments which correspond to packets (P) which have a length which corresponds to a second number of bits, and where there is at least one short segment which has less than the second number of bits, • padding the at least one short segment a packet (P) by adding padding bits (X), so that the combined length of short segment and padding bits (X) results in the second number of bits, • Encoding the packets (P), each packet (P) being one of the second Number of bits is mapped to a respective code (C) by the coding, the second number of bits being chosen so that the respective code (C) can be efficiently calculated and / or stored. The application further relates to a device (10 ) for encoding a data stream (DS) and a method for decoding codes (C).
Description
Technisches GebietTechnical area
Die Anmeldung betrifft ein Verfahren zur Codierung eines Datenstroms bzw. einer Einrichtung zur Codierung eines solchen Datenstroms bzw. eine Datenspeichereinrichtung mit einer solchen Einrichtung bzw. ein Verfahren zur Decodierung von Codes sowie einen computerlesbaren Speicher.The application relates to a method for encoding a data stream or a device for encoding such a data stream or a data storage device with such a device or a method for decoding codes and a computer-readable memory.
Hintergrundbackground
Bei einer Codierung von Daten stellt eine bestimmte Folge von Bits ein Symbol eines Alphabetes dar, welches durch die Codierung auf einen Code abgebildet wird.When encoding data, a specific sequence of bits represents a symbol of an alphabet, which is mapped to a code through the encoding.
Aufgabe der vorliegenden Anmeldung ist es, aus einem Datenstrom effizienter, die in dem Datenstrom übertragenen Daten zu speichern.The object of the present application is to more efficiently store the data transmitted in the data stream from a data stream.
Diese Aufgabe wird durch die Merkmalskombinationen der unabhängigen Patentansprüche gemäß dieser Anmeldung gelöst.This task is solved by the combinations of features of the independent patent claims according to this application.
ÜbersichtOverview
Gemäß dieser Anmeldung ist ein Verfahren zur Codierung eines Datenstroms vorgesehen, wobei der Datenstrom Bits in kontinuierlicher Abfolge aufweist. Dieses Verfahren hat folgende Verfahrensschritte:
- • Empfangen einer ersten Anzahl von Bits des Datenstromes,
- • Segmentieren der ersten Anzahl der Bits, wobei es danach Segmente gibt, die Paketen entsprechen, die eine Länge aufweisen, die einer zweiten Anzahl von Bits entspricht, und wobei es zumindest ein Kurz-Segment gibt, das weniger als die zweite Anzahl Bits aufweist,
- • Auffüllen des zumindest einen Kurz-Segments zu einem Paket durch Hinzufügen von Füllbits, sodass die kombinierte Länge des Kurz-Segments und der Füllbits die zweite Anzahl Bits ergibt,
- • Codieren der Pakete,
- • Receiving a first number of bits of the data stream,
- • Segmenting the first number of bits, thereafter having segments corresponding to packets having a length corresponding to a second number of bits, and wherein there being at least one short segment having less than the second number of bits,
- • Padding the at least one short segment into a packet by adding padding bits so that the combined length of the short segment and the padding bits results in the second number of bits,
- • Encoding the packets,
Weiterhin ist gemäß dieser Anmeldung eine Einrichtung zur Codierung eines Datenstroms vorgesehen, wobei der Datenstrom Bits in kontinuierlicher Abfolge aufweist, aufweisend:
- eine Empfangseinrichtung zum Empfang einer ersten Anzahl von Bits des Datenstromes,
- einen Codierer, welcher eingerichtet ist,
- eine erste Anzahl von Bits zu Segmentieren, wobei es danach Segmente gibt, die Paketen entsprechen, die eine Länge aufweisen, die einer zweiten Anzahl von Bits entspricht, und wobei es zumindest ein Kurz-Segment gibt, das weniger als die zweite Anzahl Bits aufweist,
- das zumindest eine Kurz-Segment durch Hinzufügen von Füllbits zu einem Paket aufzufüllen, sodass die kombinierte Länge des zumindest einen Kurz-Segments und der Füllbits die zweite Anzahl von Bits ergibt, und
- die Pakete zu codieren, wobei jeweils ein Paket mit der zweiten Anzahl von Bits durch die Codierung auf einen jeweiligen Code abgebildet wird, wobei die zweite Anzahl von Bits so gewählt ist, dass sich der jeweilige Code effizient berechnen und/oder speichern lässt.
- a receiving device for receiving a first number of bits of the data stream,
- an encoder which is set up
- to segment a first number of bits, thereafter being segments corresponding to packets having a length corresponding to a second number of bits, and wherein there being at least one short segment having less than the second number of bits,
- padding the at least one short segment by adding padding bits to a packet such that the combined length of the at least one short segment and the padding bits results in the second number of bits, and
- to encode the packets, whereby one packet with the second number of bits is mapped to a respective code through the coding, the second number of bits being chosen so that the respective code can be efficiently calculated and/or stored.
Weiterhin ist gemäß dieser Anmeldung eine Datenspeichereinrichtung vorgesehen. Die Datenspeichereinrichtung weist die Einrichtung zur Codierung sowie einen Speicher zum Speichern der erzeugten Codes auf.Furthermore, according to this application, a data storage device is provided. The data storage device has the device for coding and a memory for storing the generated codes.
Weiterhin ist ein Verfahren zur Decodierung von Codes gemäß dieser Anmeldung vorgesehen, wobei die Codes durch das Verfahren zur Codierung des Datenstroms erzeugt wurden.Furthermore, a method for decoding codes according to this application is provided, the codes being generated by the method for encoding the data stream.
Weiterhin ist ein computerlesbarer Speicher vorgesehen, der Programmanweisungen enthält, welche, wenn auf einer Datenverarbeitungsanlage ausgeführt, die Ausführung des Verfahrens zur Codierung des Datenstroms bewirken.Furthermore, a computer-readable memory is provided which contains program instructions which, when executed on a data processing system, cause the method for encoding the data stream to be carried out.
Gemäß dieser Anmeldung wird demnach ein Verfahren zur Codierung eines Datenstroms bzw. eine Einrichtung zur Codierung des Datenstroms vorgeschlagen, wobei der Datenstrom segmentiert, also stückweise aufgeteilt wird. Dann werden diese Segmente auf eine vorbestimmte Anzahl von Bits aufgefüllt, wenn sie nicht bereits vorher diese vorbestimmte Anzahl der Bits aufweisen. Das trifft beispielsweise vor allem auf das letzte Segment in einem Datenstrom üblicherweise zu. Es ist jedoch möglich, dass auch andere Segmente als das letzte Segment aufgefüllt werden. Weiterhin ist es möglich, dass Segmente durch eine Analyse ihrer Bits entsprechend aufgefüllt werden, um optimal codiert zu werden.According to this application, a method for encoding a data stream or a device for encoding the data stream is proposed, wherein the data stream is segmented, i.e. divided piecewise. These segments are then filled to a predetermined number of bits if they do not already have this predetermined number of bits. This usually applies, for example, to the last segment in a data stream. However, it is possible for segments other than the last segment to be populated. Furthermore, it is possible for segments to be filled up accordingly by analyzing their bits in order to be optimally coded.
Als die vorbestimmte, mithin zweite Anzahl der Bits für die Segmente kann so eine Zahl gewählt werden, zu der sich der durch die Codierung erzeugte Code gut berechnen lässt und/oder zu der sich der durch die Codierung erzeugt Code gut speichern lässt, z.B. als Integer-Wert. Gut berechnen und/oder speichern kann z. B. eine effiziente Berechnung und/oder Speicherung bedeuten, bei der zur Berechnung weniger Rechenleistung benötigt wird bzw. zur Speicherung weniger Speicher benötigt wird.As the predetermined, therefore second number of bits for the segments, a number can be selected to which the code generated by the coding can be easily calculated and/or to which the code generated by the coding can be easily saved, for example as an integer value. Can calculate and/or store well e.g. B. mean efficient calculation and/or storage, in which less computing power is required for calculation or less memory is required for storage.
Nun kann jedes Segment codiert werden und damit auf einen Code abgebildet werden, sodass sich der Code effizient berechnen und oder speichern lässt. Beispielsweise kann für diese Codierung eine sogenannte arithmetische Codierung verwendet werden. Diese arithmetische Codierung hat den Vorteil, dass durch ihre Verwendung eine Annäherung an die sogenannte Entropie einer (vorliegend durch ein Segment definierten) Nachricht erreicht werden kann. Dies kann durch andere Codes beispielsweise der Huffmancodierung nicht erreicht werden.Now each segment can be coded and thus mapped to a code so that the code can be calculated and/or saved efficiently. For example, a so-called arithmetic coding can be used for this coding. This arithmetic coding has the advantage that its use can be used to approximate the so-called entropy of a message (here defined by a segment). This cannot be achieved by other codes, for example Huffman coding.
Die Entropie ist ein Begriff in der Informationstheorie und beschreibt die minimale Anzahl von Bits, die pro Symbol oder Segment notwendig sind, um eine Information zu übertragen. Diese Entropie stellt demnach eine untere Grenze für die Anzahl von Bits für eine Nachricht dar. Ziel ist es beispielsweise, mit dem arithmetischen Code dieser Entropie möglichst nahe zu kommen und damit letztlich eine Nachricht möglichst platzsparend abspeichern zu können.Entropy is a term in information theory and describes the minimum number of bits that are necessary per symbol or segment to transmit information. This entropy therefore represents a lower limit for the number of bits for a message. The goal, for example, is to get as close as possible to this entropy with the arithmetic code and thus ultimately be able to save a message in as space-saving a manner as possible.
Beispielsweise bei der Simulation von technischen Geräten in einer sogenannten Hardware-in-the-Loop-Anordnung (HIL), bei der beispielsweise ein Steuergerät durch simulierte angeschlossene Komponenten getestet wird, wird eine große Anzahl von Daten, die in einem kontinuierlichen Datenstrom vorliegen, erzeugt. Ein weiterer Anwendungsfall ist die anlassbezogene oder kontinuierliche Speicherung von Daten im Fahrzeug zur späteren Analyse oder Wiedergabe der Daten zum Test von Steuergeräten.For example, when simulating technical devices in a so-called hardware-in-the-loop arrangement (HIL), in which, for example, a control device is tested using simulated connected components, a large number of data, which are available in a continuous data stream, are generated . Another use case is the event-related or continuous storage of data in the vehicle for later analysis or playback of the data to test control devices.
Aufgrund zunehmender Komplexität beispielsweise bei automatisierten oder autonomen Fahrfunktionen oder aber auch bei Batteriemanagementsystemen steigt die Zahl der Daten, die während so einer Simulation erzeugt werden oder im Fahrzeug aufgenommen bzw. gespeichert werden müssen, immer weiter an. Zur nachfolgenden Analyse dieser Daten ist eine Abspeicherung notwendig. Es ist möglich, diese Daten durch eine Codierung mithin durch eine Komprimierung platzsparend und zugleich verlustarm oder sogar verlustfrei abzuspeichern. Reicht der vorgesehene Speicher nicht aus, kann zusätzlicher Speicher vorgesehen werden.Due to increasing complexity, for example in automated or autonomous driving functions or also in battery management systems, the number of data that is generated during such a simulation or that has to be recorded or stored in the vehicle continues to increase. Storage is necessary for subsequent analysis of this data. It is possible to store this data in a space-saving and at the same time low-loss or even loss-free manner through coding and compression. If the provided memory is not sufficient, additional memory can be provided.
Ein Ziel dieser Anmeldung ist es, solchen zusätzlichen Speicher möglichst zu vermeiden, indem eine optimale Codierung verwendet wird. Dies wird durch das Verfahren zur Codierung eines Datenstroms bzw. der entsprechenden Einrichtung erreicht.A goal of this application is to avoid such additional storage as much as possible by using optimal coding. This is achieved by the method for encoding a data stream or the corresponding device.
Es handelt sich bei der Codierung des Datenstroms um eine Abbildung des jeweiligen vorhandenen Segments auf einen jeweiligen Code. Dieser Code sollte möglichst weniger Bits aufweisen als das Segment. Damit kann dann der Datenstrom durch das anmeldungsgemäße Verfahren bzw. die anmeldungsgemäße Einrichtung platzsparend abgespeichert werden.The coding of the data stream is a mapping of the respective existing segment to a respective code. If possible, this code should have fewer bits than the segment. This means that the data stream can then be stored in a space-saving manner using the method according to the application or the device according to the application.
Bei dem Datenstrom handelt es sich um eine kontinuierliche Abfolge von Bits. Es stehen also ursprünglich keine Segmente bzw. Pakete in dem Datenstrom zur Verfügung. Daher wird das Verfahren bzw. die Einrichtung gemäß dieser Anmeldung nach dem Empfang der ersten Anzahl von Bits des Datenstromes diese erste Anzahl der Bits segmentieren, um damit die Pakete für die Codierung bereitzustellen. Bei der ersten Anzahl der Bits kann es sich um einige hundert oder tausend Bits handeln.The data stream is a continuous sequence of bits. So there are originally no segments or packets available in the data stream. Therefore, the method or device according to this application will, after receiving the first number of bits of the data stream, segment this first number of bits in order to thereby provide the packets for coding. The first number of bits can be a few hundred or thousand bits.
Es ist eine zweite Anzahl von Bits jeweils für die Segmente vorgegeben, üblicherweise ist die Anzahl für jedes Segment gleich. Die Segmente weisen dann dieselbe zweite Anzahl auf. Es kann jedoch insbesondere am Ende der ersten Anzahl der Bits ein sogenanntes Kurz-Segment geben, das nicht diese zweite Anzahl der Bits aufweist. Dieses Segment weist eine geringere Anzahl als diese zweite Anzahl auf. A second number of bits is specified for each segment; the number is usually the same for each segment. The segments then have the same second number. However, there may be a so-called short segment, particularly at the end of the first number of bits, which does not have this second number of bits. This segment has a smaller number than this second number.
Daher wird nun gemäß dieser Anmeldung dieses oder auch mehrere dieser Kurz-Segmente innerhalb der ersten Anzahl von Bits durch das Hinzufügen von sogenannten Füllbits auf die zweite Anzahl der Bits aufgefüllt. D. h. die kombinierte Länge des oder der Kurzsegmente und der hinzugefügten Füllbits entspricht der zweiten Anzahl der Bits. Durch die Füllbits wird voraussichtlich keine sinnvolle Information hinzugefügt, aber dieser Fehler, der durch die Füllbits entsteht, kann in der Auswertung entsprechend berücksichtigt bzw. plausibilisiert werden. Auch eine Fehlerkorrektur kann dafür eingesetzt werden.Therefore, according to this application, this or several of these short segments within the first number of bits are now filled up to the second number of bits by adding so-called filling bits. I.e. the combined length of the short segment(s) and the added padding bits equals the second number of bits. The filler bits are unlikely to add any meaningful information, but this error caused by the filler bits can be taken into account or checked for plausibility in the evaluation. Error correction can also be used for this.
Sind die Kurz-Segmente, bevorzugt alle Kurz-Segmente, auf die zweite Anzahl der Bits durch die Füllbits aufgefüllt, erfolgt das Codieren der Pakete, beispielsweise durch die arithmetische Codierung. Segmente mit einer Länge, die der zweiten Anzahl von Bits entspricht, sind nun als Pakete bezeichnet. Durch die Codierung wird die zweite Anzahl der Bits auf einen Code abgebildet, der beispielsweise abgespeichert wird. Diese zweite Anzahl der Bits ist so bestimmt, dass die Codierung mit dieser zweiten Anzahl optimal abläuft. Dies geht dann aus den abhängigen Ansprüchen hervor.If the short segments, preferably all short segments, are filled to the second number of bits by the filler bits, the packets are encoded, for example by arithmetic coding. Segments with a length equal to the second number of bits are now referred to as packets. Through the coding, the second number of bits is mapped to a code that is saved, for example. This second number of bits is determined so that coding runs optimally with this second number. This then emerges from the dependent claims.
Die Einrichtung gemäß dieser Anmeldung ist beispielsweise als Software und/oder Hardware ausgebildet. Ist zumindest ein Teil der Einrichtung beispielsweise als Hardware ausgebildet, dann kann es sich bei dieser Hardware beispielsweise um eine FPGA, also ein Field Programmable Gate Array handeln. Es kommen auch beispielsweise Prozessoren oder Controller verschiedenster Art infrage.The device according to this application is designed, for example, as software and/or hardware. If at least part of the device is designed as hardware, for example, then this hardware can be, for example, an FPGA, i.e. a field programmable gate array. Processors or controllers of various types are also possible.
Bei der Empfangseinrichtung kann es sich beispielsweise um einen Speicher oder Register handeln, der den Datenstrom aufnimmt, und zwar bis zu der ersten Anzahl und dann wird über den Codierer die Segmentierung wie oben besprochen vorgenommen. Die Empfangseinrichtung nimmt dauernd erneut die erste Anzahl von Bits aus dem Datenstrom auf und gibt diese dann für die weiteren Schritte weiter.The receiving device can be, for example, a memory or register that receives the data stream up to the first number and then the segmentation is carried out via the encoder as discussed above. The receiving device continually records the first number of bits from the data stream and then passes them on for further steps.
Auch das Auffüllen der Kurzsegmente durch Hinzufügen von Füllbits zu einem solchen Paket mit der zweiten Anzahl von Bits wird durch den Codierer vorgenommen. Letztlich codiert der Codierer die Pakete. Und dabei werden die jeweiligen Pakete mit ihrer zweiten Anzahl von Bits auf einen jeweiligen Code abgebildet. The encoder also performs the padding of the short segments by adding padding bits to such a packet with the second number of bits. Ultimately, the encoder encodes the packets. And the respective packets are mapped to a respective code with their second number of bits.
Dieser Code kann wie oben beschrieben effizient berechnet und/oder abgespeichert werden.This code can be efficiently calculated and/or saved as described above.
Bei der oben genannte Datenspeichereinrichtung handelt es sich beispielsweise um einen Rechner, der die oben beschriebene Einrichtung zur Codierung aufweist, sowie einem Speicher zum Speichern der erzeugten Codes. Mit diesem Speicher kann es sich üblicherweise um einen elektronischen und/oder optischen und/oder magnetischen Speicher handeln.The data storage device mentioned above is, for example, a computer which has the coding device described above and a memory for storing the generated codes. This memory can usually be an electronic and/or optical and/or magnetic memory.
Weiterhin ist auch ein Verfahren zur Decodierung dieser Codes vorgesehen, um die decodierten Codes, also die Pakete, für die weitere Auswertung bearbeiten zu können. Hier kann dann ein möglicher Fehler, der durch das Auffüllen entsteht, entsprechend berücksichtigt werden. Eventuell sind jedoch keine weiteren Maßnahmen notwendig, wenn dieser Fehler sich nur sehr gering in der Analyse des Datenstroms auswirkt.Furthermore, a method for decoding these codes is also provided in order to be able to process the decoded codes, i.e. the packets, for further evaluation. A possible error that arises from filling can then be taken into account accordingly. However, no further action may be necessary if this error only has a very minor impact on the analysis of the data stream.
Weiterhin ist ein computerlesbarer Speicher vorgesehen, der Programmanweisungen enthält, die auf der Datenverarbeitungsanlage ausgeführt werden und die das oben beschriebene Verfahren zur Codierung des Datenstroms darstellen.Furthermore, a computer-readable memory is provided which contains program instructions which are executed on the data processing system and which represent the method for encoding the data stream described above.
Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen und Weiterbildungen sind vorteilhafte Ausgestaltungen des Verfahrens zur Codierung des Datenstroms möglich.The measures and developments listed in the dependent claims make advantageous configurations of the method for coding the data stream possible.
In einer Ausführungsform befindet sich das Kurzsegment am Ende des Datenstroms. Damit kann das Verfahren entsprechend sich auf das letzte Segment nach dem Segmentieren zum Auffüllen zu einem Paket durch Hinzufügen von Füllbits konzentrieren. Es sind also keine weiteren Schritte mehr notwendig, um die einzelnen Segmente dann auszuwerten, hinsichtlich ihrer Länge. Andererseits kann es möglich sein, auch Bits in den Segmenten auszutauschen, um eine optimale Codierung zu ermöglichen.In one embodiment, the short segment is at the end of the data stream. This allows the method to accordingly focus on the last segment after segmentation for padding into a packet by adding padding bits. So no further steps are necessary to evaluate the individual segments in terms of their length. On the other hand, it may be possible to also exchange bits in the segments to enable optimal coding.
Darüber hinaus wird vorgeschlagen, dass das zumindest eine Kurzsegment so innerhalb der ersten Anzahl der empfangenen Bits angeordnet wird, dass sich zu dem resultierenden (mit entsprechenden Füllbits aufgefüllten) Paket und/oder zumindest einem weiteren Paket der Code effizient berechnen oder speichern lässt. Eine entsprechende optimierte Segmentierung wird bevorzugt durch den Codierer ermittelt und durchgeführt.In addition, it is proposed that the at least one short segment be arranged within the first number of received bits in such a way that the code for the resulting packet (filled with corresponding filler bits) and/or at least one further packet can be efficiently calculated or stored. A corresponding optimized segmentation is preferably determined and carried out by the encoder.
In einer Ausführungsform ist die zweite Anzahl von Bits so gewählt, dass sich der Code für die Pakete effizient im Binärformat speichern lässt, wobei insbesondere durch die Codierung eine ganzzahlige Zahl als Code für die jeweiligen Pakete erzeugt wird. Dies ist besonders vorteilhaft bei der Verwendung der sogenannten arithmetischen Codierung.In one embodiment, the second number of bits is selected so that the code for the packets can be stored efficiently in binary format, with the coding in particular generating an integer number as the code for the respective packets. This is particularly advantageous when using so-called arithmetic coding.
Die Codierung kann insbesondere eine arithmetische Codierung sein und die zweite Anzahl von Bits kann 2n -1 entsprechen, wobei n eine natürliche Zahl ist. Durch diese Festlegung der zweiten Anzahl der Bits ist die arithmetische Codierung dann besonders vorteilhaft.The coding can in particular be an arithmetic coding and the second number of bits can correspond to 2 n -1, where n is a natural number. This determination of the second number of bits makes arithmetic coding particularly advantageous.
Darüber hinaus wird vorgeschlagen, dass die Füllbits so gewählt sind, dass sich der Code für das zugehörige Paket effizient berechnen oder speichern lässt. Das kann dann eine verlustfreie Komprimierung bedeuten, weil dann eine möglichst verlustfreie Speicherung ermöglicht wird.In addition, it is suggested that the padding bits be chosen so that the code for the associated packet can be efficiently calculated or stored. This can then mean lossless compression because it then enables storage to be as lossless as possible.
In einer Ausführungsform sind die Füllbits so gewählt, dass sich der Code für das zugehörige Paket effizient im Binärformat speichern lässt, wobei insbesondere durch die Codierung des zugehörigen Pakets ein ganzzahliger Code erzeugt wird.In one embodiment, the filler bits are selected so that the code for the associated packet can be efficiently stored in binary format, with an integer code being generated in particular by encoding the associated packet.
Darüber hinaus wird vorgeschlagen, dass der durch die Codierung erzeugte Code ausgegeben und/oder gespeichert wird.In addition, it is suggested that the code generated by the coding is output and/or stored.
In einer Ausführungsform werden Schritte des Verfahrens parallel ausgeführt, wobei insbesondere während des Empfangs der Bits das Segmentieren von bereits empfangenen Bits und das Codieren von bereits gebildeten Paketen erfolgt. Durch solch eine Parallelisierung von Aufgaben des Verfahrens gemäß dieser Anmeldung kann das Verfahren schneller ausgeführt werden.In one embodiment, steps of the method are carried out in parallel, with the segmentation of already received bits and the encoding of already formed packets taking place in particular during the reception of the bits. Through such a parallelization of procedural tasks According to this application, the method can be carried out more quickly.
FiaurenlisteFiaurenlist
Ausführungsbeispiele sind in der Zeichnung dargestellt und werden in der nachfolgenden Beschreibung näher erläutert.Exemplary embodiments are shown in the drawing and are explained in more detail in the following description.
Es zeigen
-
1 ein Flussdiagramm des Verfahrens, -
2 einen kontinuierlichen Datenstrom, der gemäß dieser Anmeldung segmentiert wird und -
3 ein Blockschaltbild der Einrichtung.
-
1 a flowchart of the procedure, -
2 a continuous data stream that is segmented in accordance with this application and -
3 a block diagram of the device.
Es werden in den Figuren die gleichen Bezugszeichen für gleiche oder ähnliche Elemente verwendet.The same reference numbers are used in the figures for the same or similar elements.
FiaurenbeschreibungFiauren description
Diese erste Anzahl der Bits des Datenstromes DS wird im zweiten nachfolgenden Verfahrensschritte S2 segmentiert. Dabei gibt es Segmente, die bereits den vorgegebenen Paketen P entsprechen, die eine Länge aufweisen, die einer zweiten Anzahl von Bits entspricht. Dabei kann es jedoch vorkommen, dass zumindest ein Kurzsegment gebildet wird, das weniger als die zweite Anzahl von Bits, die einem Paket P zugeordnet sind, aufweist. Es ist möglich, dass das oder diese Kurzsegmente durch das Verfahren bzw. die Einrichtung identifiziert und entsprechend markiert werden, oder es ist von vornherein klar, dass es sich in der Regel bei dem Kurz-Segment um das letzte Segment in der ersten Anzahl der Bits handelt.This first number of bits of the data stream DS is segmented in the second subsequent method step S2. There are segments that already correspond to the predetermined packets P, which have a length that corresponds to a second number of bits. However, it can happen that at least one short segment is formed that has fewer than the second number of bits assigned to a packet P. It is possible that the short segment or segments are identified by the method or device and marked accordingly, or it is clear from the outset that the short segment is usually the last segment in the first number of bits acts.
Die Pakete P, mithin der segmentierte Datenstrom DS, wird dann an den Verfahrensschritt S3 übergeben. Hier erfolgt nun das Auffüllen des zumindest einen Kurz- Segmentes zu einem Paket P durch das Hinzufügen von Füllbits X, sodass die kombinierte Länge von dem Kurz-Segment und den jeweiligen Füllbits X jeweils die zweite Anzahl der Bits ergibt. Damit liegt nun am Ende des Verfahrensschritts S3 die empfangene erste Anzahl Bits des Datenstroms DS in Form von Paketen P vor. D. h. alle Segmente sind nun Pakete P. Pakete P sind durch eine Länge definiert, die der zweiten Anzahl der Bits entspricht. In dem nachfolgenden Verfahrensschritt S4 kann das Codieren dieser Pakete P erfolgen. Dabei wird jeweils ein Paket P der zweiten Anzahl von Bits durch diese Codierung auf einen jeweiligen Code C abgebildet.The packets P, i.e. the segmented data stream DS, is then transferred to method step S3. Here, the at least one short segment is filled up to form a packet P by adding filler bits X, so that the combined length of the short segment and the respective filler bits X results in the second number of bits. At the end of method step S3, the received first number of bits of the data stream DS is now available in the form of packets P. I.e. all segments are now packets P. Packets P are defined by a length corresponding to the second number of bits. In the subsequent method step S4, these packets P can be encoded. A packet P of the second number of bits is mapped to a respective code C through this coding.
In Verfahrensschritt S5 erfolgt dann das Abspeichern des Codes C auf einem Speicher M. Dieser Code C würde demnach in S5 ausgegeben.In method step S5, the code C is then stored in a memory M. This code C would therefore be output in S5.
Die Einrichtung zum Codieren 10 speichern die Codes C in dem Speicher M ab, während die Einrichtung zum Decodieren 20 diese Codes C aus dem Speicher M ausliest. Die Einrichtung zum Codieren 10 weist eine Empfangseinrichtung 12 zum Empfang des Datenstromes DS auf. Damit wird also die erste Anzahl von Bits des Datenstromes DS empfangen. Dabei kann es sich um Speicher bzw. Register o. ä. handeln.The coding device 10 stores the codes C in the memory M, while the
Der Codierer 14 segmentiert nun diese erste Anzahl der Bits zu Segmenten. Die Segmente entsprechen den Paketen P, wenn sie die durch die zweite Anzahl der Bits vorgegebene Länge, beispielsweise die 31 Bits, aufweisen. In diesem Fall können die Pakete P dann codiert werden. Daneben gibt es aber zumindest ein Kurzsegment, das eben nicht diese zweite Anzahl von Bits aufweist, sondern weniger. Dieses zumindest eine Kurz-Segment füllt der Codierer 14 durch Hinzufügen von Füllbits X zu einem Paket P auf, sodass die kombinierte Länge von dem Kurz-Segment und den Füllbits X die zweite Anzahl der Bits ergibt. Dann erfolgt die Codierung der Segmente, da es sich jetzt nur noch um Pakete P handelt. Diese Codierung kann beispielsweise die arithmetische Codierung sein. D. h. die zweite Anzahl der Bits wird durch die Codierung auf einen Code C abgebildet. Dieser Code C wird durch die Schreibeinrichtung 16 in dem Speicher M effizient abgespeichert.The
Die Einrichtung zum Decodieren 20 kann dann durch die Leseeinrichtung 22 den Code C aus dem Speicher M wieder auslesen und dem Decodierer 24 zuweisen. Der Decodierer 24 decodiert die Codes C wieder zu den Paketen P und sequenziert die Pakete P zu einem Datenstrom DS, der durch die Ausgabeeinrichtung 26 wieder ausgegeben wird. Der Datenstrom DS kann dann analysiert werden. Die decodierten Daten können aber wahlweise auch statisch untersucht werden.The
Beispielsweise kann bei den oben genannten Simulationen untersucht werden, wie sich das Gerät, das sich im Test befand, verhalten hat.For example, the simulations mentioned above can be used to examine how the device that was being tested behaved.
BezugszeichenlisteReference symbol list
- DSD.S
- Datenstromdata stream
- CC
- Codecode
- PP
- Paketpackage
- XX
- FüllbitFill bit
- 1010
- Einrichtung zum CodierenCoding facility
- 1212
- EmpfangseinrichtungReception facility
- 1414
- CodiererCoder
- 1616
- SchreibeinrichtungWriting facility
- 2020
- Einrichtung zum DecodierenDecoding facility
- 2222
- LeseeinrichtungReading facility
- 2424
- Decodiererdecoder
- 2626
- AusgabeeinrichtungOutput facility
- 5050
- DatenspeichereinrichtungData storage device
- MM
- SpeicherStorage
- S1-S5S1-S5
- VerfahrensschritteProcedural steps
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022120401.4A DE102022120401A1 (en) | 2022-08-12 | 2022-08-12 | Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022120401.4A DE102022120401A1 (en) | 2022-08-12 | 2022-08-12 | Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022120401A1 true DE102022120401A1 (en) | 2024-02-15 |
Family
ID=89809448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022120401.4A Pending DE102022120401A1 (en) | 2022-08-12 | 2022-08-12 | Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102022120401A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110206289A1 (en) | 2010-02-22 | 2011-08-25 | Salih Dikbas | Guaranteed-Rate Tiled Image Data Compression |
-
2022
- 2022-08-12 DE DE102022120401.4A patent/DE102022120401A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110206289A1 (en) | 2010-02-22 | 2011-08-25 | Salih Dikbas | Guaranteed-Rate Tiled Image Data Compression |
Non-Patent Citations (1)
Title |
---|
SRINIVASAMURTHY, Naveen [et al.]: Sub-picture based rate control algorithm for achieving real time encoding and improved video quality for H.264 HD encoder on embedded video SOCs. In: 2010 IEEE 4th International Conference on Internet Multimedia Services Architecture and Application, Bangalore, India, 15-17 December, 2010. Piscataway : IEEE, 2010, 6 S. – ISBN 978-1-4244-7932-0. DOI: 10.1109/IMSAA.2010.5729404 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0230437B1 (en) | Process for compressing and expanding structurally associated multiple-data sequences, and arrangements for implementing the process | |
DE2264090C3 (en) | Data compression | |
DE2515297A1 (en) | TESTING SYSTEM FOR LOGICAL NETWORKS WITH SIMULATOR ORIENTED FAULT CHECK GENERATOR | |
DE2423719A1 (en) | CIRCUIT ARRANGEMENT FOR MONITORING THE PERFORMANCE OF A MULTIPROCESSOR COMPUTER | |
EP0276753A2 (en) | Method and apparatus for transmitting digital information and/or for recording and reproducing | |
DE102013016681B4 (en) | Encoding and decoding data to make adjustments for memory cells with stuck faults | |
EP3624456A1 (en) | Method for compression and decompression of image data | |
DE19821727A1 (en) | Apparatus for variable length coding | |
DE2518588A1 (en) | METHOD FOR MONITORING THE ACCURACY OF CODE SIGNAL GROUPS IN EQUIPMENT OF MESSAGE TECHNOLOGY | |
EP1514375B1 (en) | Method and arrangement for encoding and decoding a sequence of digital data | |
EP1347599A1 (en) | Protocol analyzer and method for decoding data based on a protocol description | |
DE10255142A1 (en) | Diagnostics of packet transmission errors using restrictions | |
DE102008052955A1 (en) | Method for transmitting program codes to a memory of a control device, in particular for motor vehicles | |
DE102022120401A1 (en) | Method and device for encoding a data stream, data storage device with such a device, method for decoding codes and computer-readable memory | |
DE2654389B2 (en) | ||
DE4005393A1 (en) | DEVICE FOR SIGNAL-RELIABLE REPRESENTATION OF A REPORTING IMAGE | |
EP1833258A2 (en) | Hybrid image compression method | |
DE2538802A1 (en) | TEST CIRCUIT FOR THE DECODER OF AN ERROR CORRECTION CODE | |
DE102013020713A1 (en) | Coding and decoding techniques using a combinatorial numbering system | |
DE3113189C2 (en) | Device for converting digital character codes that are received or supplied by a data processing system | |
DE102018105847A1 (en) | Data recovery and data regeneration using parity code | |
DE3908086C1 (en) | Method for compressing and decompressing digital data and device for carrying out the method | |
DE2425776A1 (en) | SEQUENTIALLY LEARNING PREDICTOR FOR AN IMAGE COMPRESSION SYSTEM | |
DE102017213764A1 (en) | Device for the reliability analysis of a mechatronic system | |
EP4002217A1 (en) | Method for reducing training data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified |