Method for performing a data recording, method for generating a data stream, devices for data processing, computer program product, signal sequence and storage medium
The method divides data streams into elementary units for coordinated storage across multiple media, eliminating RAID controllers and achieving cost-effective, real-time storage of high-bandwidth sensor data for ADAS and AD applications.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- DSPACE SE & CO KG
- Filing Date
- 2024-12-13
- Publication Date
- 2026-06-18
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention
[0001] Method for performing a data recording, method for generating a data stream, devices for data processing, computer program product, signal sequence and storage medium. field of technology
[0002] The present invention relates to a method for performing data recording. The present invention also relates to a method for generating a data stream from elementary data units stored distributed across at least two storage media or source files, which are generated in particular by such a data recording method. The present invention also relates to devices for data processing, a computer program product, a signal sequence, and a storage medium. State of the art
[0003] The data-driven development of applications for advanced driver assistance systems (ADAS) and autonomous driving (AD) requires the use of the most realistic vehicle and environmental data possible. To obtain this data, sensor data from, for example, lidar, radar, and camera sensors with very high bandwidth is acquired during test drives and stored for later use.
[0004] To provide the necessary bandwidth for simultaneously recording multiple data streams from different sensors, a RAID controller has historically been used to store incoming data in RAID 0 mode, distributing it across multiple hard drives without redundancy. This solution has generally proven effective. However, such a RAID controller is relatively expensive and contributes significantly to the overall cost of a data recording system. Summary of the invention
[0005] It is therefore an object of the present invention to overcome the described disadvantages of the prior art and in particular to provide means by which simultaneous recording of multiple high-bandwidth data streams from different sources is possible in a cost-effective, yet simple and reliable manner.
[0006] The problem is solved by the invention according to a first aspect by proposing a method for carrying out data recording, wherein at least one data stream is received for recording its data and there is at least one specific data stream among them, wherein each specific data stream is divided into elementary data units based on a data stream description specified for the respective specific data stream, and the elementary data units of all specific data streams are stored distributed on at least two storage media.
[0007] The invention is based on the understanding that the received specific data streams are highly predictable with respect to one or more properties. By using data stream descriptions of the specific data streams, this prior knowledge can be incorporated when dividing the specific data streams into elementary data units. Simultaneously, information about the number of elementary data units received per data stream and unit of time, and thus about the total amount of data received and stored per unit of time, is known in advance or at least partially determinable.
[0008] This allows resources for processing and storing the data of specific data streams to be coordinated in advance, at least partially based on and / or derived from the data stream descriptions. For example, storage areas (such as in main memory) for temporarily storing received data (especially data from individual elementary data units) can be planned in advance, appropriately dimensioned (e.g., with regard to storage size and / or availability), and / or reserved. Alternatively or additionally, storage areas on the individual storage media and / or bandwidth for write access to the individual storage media can be at least implicitly planned, appropriately dimensioned, and / or allocated for the expected elementary data units to be stored in a distributed manner.
[0009] Because the amount of data received and to be stored is at least partially predictable, the ability of a RAID controller to dynamically allocate incoming data to hard drives can be dispensed with. Therefore, the proposed method allows data recording to be carried out advantageously without the use of a RAID controller. This eliminates the costs traditionally associated with the RAID controller.
[0010] It can be particularly advantageous to provide that the distributed storage of the elementary data units is carried out, at least temporarily, by means of a parallel write access to the at least two storage media. Advantageously, a different elementary data unit is stored on each of the at least two storage media during this process. For example, a first elementary data unit of a first specific data stream is stored on the first of the at least two storage media, and simultaneously, a second elementary data unit (either of the first specific data stream or of a second specific data stream) is stored on the second of the at least two storage media. This parallel write access allows even high-bandwidth data streams to be stored reliably, and especially in real time.This is because the permissible total bandwidth with respect to the received specific data streams can then advantageously scale linearly with the bandwidths (for write access) of the individual storage media. For example, with S storage media, each of which allows one write access with a maximum data rate of R [bit / second] during a write operation, the received specific data streams can theoretically have a total data rate of S*R. By providing multiple storage media to which parallel write access is made, the permissible maximum total data rate of the specific data streams can therefore be increased.
[0011] For the purposes of this application, "real-time" means that the time interval between the arrival of the first elementary data unit of the data stream and the arrival of an immediately subsequent second elementary data unit of the same data stream—i.e., the period length of the elementary data units of the data stream—is longer than the time interval between the arrival of the first elementary data unit and the completion of the storage process of the first elementary data unit on a storage medium. For example, it can be verified whether this real-time condition is met or achievable based on the data stream description and / or another technical description of the data streams (e.g., regarding the arrival frequency and the size of the elementary data units) and / or the write speed of the storage media.
[0012] Due to the relatively simple implementation of the proposed method, conventional storage solutions can be easily adapted accordingly and thus benefit from the described advantages, especially the cost savings. This makes the proposed method particularly attractive from an economic perspective.
[0013] Preferably, the elementary data units of all specific data streams are stored distributed across two, three, four, five or more than five (for example, 10 or more than 10, or 20 or more than 20) storage media.
[0014] The individual storage media are advantageously individually addressable (e.g., for writing data to the individual storage media during data recording and / or for reading data from the individual storage media). The individual storage media can be provided within a storage unit. Preferably, the individual storage media are secured against loss. For example, the storage media can be interconnected in such a way that they cannot be separated from each other without damage. The storage media can, for example, be designed in the form of a sealed memory module. The storage media are preferably each implemented as a solid-state drive (SSD).
[0015] Preferably, the proposed method is executed wholly or partially on a data logger. The data logger can, for example, be part of an in-vehicle data acquisition and / or prototyping system. Advantageously, the method can also be executed on a distributed system.
[0016] The proposed method is, for example, wholly or partially computer-implemented.
[0017] Preferably, the proposed method can be used to read, process, and / or record data from sensors, such as lidar, radar, and / or camera sensors, and / or data from automotive buses and networks, particularly those with high bandwidth. Sensor data can, for example, be raw sensor data. High bandwidth for received specific data streams, as defined in this application, is present, for example, at data rates exceeding 1 Gbit / second. Therefore, preferably at least one of the at least one specific data stream has a data rate exceeding 1 Gbit / second.
[0018] In summary, the proposed method enables the storage of (specific) data streams, even those with high bandwidth, across multiple storage media. This allows the necessary bandwidth for the simultaneous recording of multiple data streams from different sensors to be provided even during a test drive. Therefore, the proposed method is particularly well-suited for the data-driven development of applications for driver assistance systems and autonomous driving. For example, the stored data can subsequently be used to train a neural network, stimulate driver assistance systems, or serve as a template for virtual traffic scenarios to test a driver assistance system in a virtual environment.
[0019] It should be noted that one or more of the received data streams may also be processed and / or stored in a manner other than that described here, but in each case this does not constitute a specific data stream.
[0020] Alternatively or additionally, it can also be provided that the specific data streams are continuously received and divided into elementary data units.
[0021] Continuous receiving and distribution eliminates the need for intermediate data storage of specific data streams, or reduces it considerably. This enables a particularly economical implementation of the process. Furthermore, latency between receiving and storing data can be reduced, thus making data recording more efficient.
[0022] Alternatively or additionally, it may also be provided that two or more than two data streams are received, and that among them are two or more than two specific data streams, which in particular are received at least partially in parallel.
[0023] This allows data streams to be received and stored simultaneously from multiple sources (especially sensors). Preferably, the number of specific data streams corresponds to the number of received data streams.
[0024] Alternatively or additionally, it may also be provided that the data stream descriptions specified for the individual specific data streams each contain one or more technical specifications of the respective specific data stream, based on which the division of the respective specific data stream into elementary data units is at least partially carried out.
[0025] This allows the division of the individual specific data streams into the elementary data units and / or the processing of the data taking into account the respective technical specifications of the respective specific data stream.
[0026] This allows each specific data stream to be treated individually and, taking into account its respective properties, divided into elementary data units, and the resulting elementary data units to be processed. Even specific data streams from different sources with at least partially differing technical specifications can be efficiently processed (in particular, divided into elementary data units) and stored in this way.
[0027] The technical specifications of the specific data streams can be known in whole or in part beforehand. For example, they can be defined manually. Alternatively or additionally, the technical specifications of the specific data streams can also be determined fully or partially automatically. For example, they can be determined through communication with the respective source (such as a sensor) of the specific data stream. Automated determination is advantageously performed before and / or at the beginning of data recording. The data stream descriptions of the individual specific data streams can be determined (especially subsequently) at least partially manually and / or at least partially automatically based on the technical specifications.
[0028] Advantageously, an identical and / or common data stream description can be used for at least two specific data streams. This is particularly possible if the respective specific data streams originate from sources of the same type.
[0029] Alternatively or additionally, it may also be provided that the data stream descriptions specified for the individual specific data streams contain information on (i) a storage size of an elementary data unit of the respective specific data stream and / or (ii) a frequency at which the data of successive elementary data units within the respective specific data stream are received, based on which the division of the respective specific data stream into elementary data units is at least partially carried out.
[0030] This information allows for particularly reliable and efficient processing of the data from elementary data units. The storage size is advantageously defined as the storage space required for the data of an elementary data unit within the respective specific data stream. This allows, for example, the storage space required for temporarily buffering the data of such an elementary data unit (at least for the duration of receiving the data and / or until the received data is stored on a storage medium) to be reliably and precisely reserved. The frequency can, for instance, be the frequency at which the first byte of data to be stored in successive elementary data elements within the respective specific data stream is received.If a (particularly at least temporarily constant) data rate of a specific data stream is known, the frequency can advantageously be determined from the storage size and / or vice versa, the storage size from the frequency, at least for a period of time.
[0031] Furthermore, the data stream descriptions specified for each data stream can contain information on control data, such as separators used to distinguish the data of successive elementary data units within that specific data stream. This control data allows for a particularly simple and reliable division of the respective data stream into its elementary data units. This will be discussed in more detail below.
[0032] Alternatively or additionally, it may also be provided that the individual data stream descriptions are read from a separate memory.
[0033] This enables easy and reliable access to the data stream descriptions. The separate storage can be remote storage, such as cloud storage.
[0034] Alternatively or additionally, it may also be provided that the division of a specific data stream into elementary data units involves grouping the data of the respective specific data stream based on the data stream description specified for the respective specific data stream, thereby obtaining the elementary data units.
[0035] For example, the respective specific data stream can be analyzed for occurrences of the control data defined in the associated data stream description, and / or the specific data stream can be divided into elementary data units based on the control data identified within it. This allows for the simple yet reliable identification of successive data sets within the specific data stream and their preservation as individual elementary data units. For instance, the specific data stream can be split at the points containing the defined control data. The control data itself does not necessarily have to be part of the resulting elementary data units.The control data can, for example, define separators (i.e., markers), which in turn can be advantageously inserted into the specific data stream by the respective source of the specific data stream (especially a sensor).
[0036] Alternatively or additionally, the division of the respective specific data stream into elementary data units can also be carried out based on the frequency and / or the storage size. Optionally, the data rate of the respective specific data stream can also be used. For example, the respective specific data stream can be monitored, and a new elementary data unit can be generated after a certain period of time has elapsed, according to the frequency, or upon reaching a further data throughput, according to the respective storage size.
[0037] Alternatively or additionally, it may also be provided that an elementary data unit of a specific data stream contains or consists of a group of data from the respective specific data stream.
[0038] The group of data within a given specific data stream is therefore a subset of data within that specific data stream. This group can be defined and / or determined by the data stream description of that specific data stream. For example, an elementary data unit of a specific data stream can be a grouping of data within that specific data stream, where the grouping is preferably chosen based on a technical configuration of the specific data stream, which is defined, for instance, in the respective data stream description.
[0039] Preferably, the received specific data stream can be completely and / or at least partially reconstructed from the data grouped into elementary data units of a specific data stream, in particular by concatenating the individual elementary data units. In embodiments, it may be necessary for the complete reconstruction of the respective specific data stream to add additional data not contained in the elementary data units, for example, the control data already described.
[0040] Alternatively or additionally, it may also be provided that the data of an elementary data unit of a specific data stream represent a representation of a sensor's environment, recorded by a sensor at a specific time and / or during a specific period of time.
[0041] The "specific time period" can be the time required to acquire the data for mapping the environment using the sensor. For example, in the case of a radar sensor, the "specific time period" could be the time required to sequentially activate multiple radar sensor elements of a radar sensor array. Similarly, in the case of a lidar sensor, the "specific time period" could be the time required to scan an area using the lidar sensor's laser and / or to rotate the laser at least once through 360° around a rotational axis.
[0042] The data of an elementary data unit can alternatively or additionally represent a temporal-spatial resolution of sensor data.
[0043] Alternatively or additionally, it may also be provided that an elementary data unit of a specific data stream contains data from a single image captured by a sensor, or a line or pixel of such a single image.
[0044] This allows an elementary data unit to be advantageously "self-contained", i.e., to contain all the information for a snapshot of the sensor's environment.
[0045] In particular, an elementary data unit of a specific data stream contains exclusively data from a single image captured by a sensor, or a line or pixel of such a single image.
[0046] Alternatively or additionally, it may also be provided that the distributed storage of the elementary data units of the specific data streams on the at least two storage media is carried out based on a distribution rule.
[0047] The distribution rule can advantageously be determined based on the data stream descriptions of the specific data streams. This allows the known properties of the specific data streams to be used, at least implicitly, for distributing the elementary data units across the individual storage media. As described above, the elementary data units obtained according to a defined scheme advantageously lead to a data set per unit of time that is known a priori, at least in principle, and / or has properties that are known a priori, at least in principle.
[0048] This allows resources for storing the data of specific data streams to be coordinated in advance, at least partially based on and / or derived from the distribution rule. For example, storage areas on the individual storage media and / or bandwidths for write access to the individual storage media can be planned, appropriately dimensioned, and / or allocated for the expected elementary data units to be stored in a distributed manner.
[0049] It is particularly advantageous if the distribution rule is determined based on the result of an algorithm for solving a "container problem." Since the elementary data units of the specific data streams accruing per unit of time are advantageously known in advance, their distribution across the storage media can be planned a priori using such an algorithm. Such algorithms are well known to those skilled in the art, so they need not be discussed in detail here. Instead, the reader is referred to the relevant literature.
[0050] The distribution rule can be determined fully or partially automatically, for example, based on the data stream descriptions and / or by incorporating an algorithm for solving a "container problem". The automated determination is advantageously performed before and / or at the beginning of data recording.
[0051] The distributed storage of the elementary data units of the specific data streams can thus be carried out, at least partially, based on information known a priori about the specific data streams, as well as information derived from them. This can advantageously eliminate the need for a conventionally used RAID controller.
[0052] Alternatively or additionally, it can also be provided that, based on the distribution rule, at least one, preferably exactly one, elementary data unit of the specific data streams is assigned to at least two storage media as a storage location, and preferably the individual elementary data units are stored on the storage medium assigned to them.
[0053] This allows the distribution of individual elementary data units within specific data streams to be carried out preferably according to a fixed and / or pre-known scheme. This makes the storage process particularly efficient, as no further (especially content-related) analysis of the data to be stored is necessary. This time advantage is particularly interesting with regard to real-time processing.
[0054] The distribution rule can also implicitly specify simultaneous write access to at least two storage media.
[0055] Alternatively or additionally, it can also be provided that the elementary data units of at least one, preferably all, of the at least one specific data streams are stored distributed across several of the at least two storage media, in particular according to the distribution rule. This allows the available input bandwidth to be maximized particularly well.
[0056] Alternatively or additionally, it may also be provided that the distribution rule specifies a, in particular cyclic, sequence of storage media for at least one, preferably for each, specific data stream, according to which the elementary data units of the respective specific data stream are stored successively on the storage media.
[0057] The order of storage media therefore refers to the elementary data units of the specific data stream in question.
[0058] The specified sequence of storage media is advantageously identical for each of the relevant specific data streams. In embodiments, the sequences can also be partially different, in particular involving at least a partially different selection of storage media and / or sequence of storage media.
[0059] This allows for a defined (optionally identical) distribution of the elementary data units across at least two storage media for each of the specific data streams in question.
[0060] For example, with three storage media (S1-S3), the elementary data units of each specific data stream could be stored sequentially on S1, S2, S3, and then the process repeated. If we consider, as an example, the case where only a single specific data stream is received, three elementary data units of that single data stream could always be stored simultaneously on the three storage media S1, S2, S3. This further illustrates the possibility of increasing the input bandwidth by providing additional storage media.
[0061] Alternatively or additionally, it may also be provided that the distribution rule specifies a sequence of storage media, in particular a cyclical one, according to which the elementary data units of the specific data streams are stored successively on the storage media.
[0062] The order of storage media here refers to the elementary data units of all relevant specific data streams.
[0063] This allows for the distribution of the elementary data units for the relevant specific data streams across at least two storage media.
[0064] For example, with three available storage media (S1-S3) and two specific data streams with the elementary data units D1.1, D1.2, D1.3, ... of the first specific data stream and the elementary data units D2.1, D2.2, D2.3, ... of the second specific data stream, the temporally successive elementary data units D1.1, D2.1, D1.2, D2.2, D1.3, D2.3, ... could be stored sequentially on S1, S3, S5 and then again from the beginning, i.e., sequentially on S1, S2, S3, etc. Although, for illustrative purposes, an elementary data unit of the first specific data stream always alternates with an elementary data unit of the second specific data stream, in embodiments the elementary data units of the individual data streams can also appear in a different order / frequency (for example D1.1, D1.2, D2.1, D1.3, D1.4, D2.2, etc...), depending on when the data of the individual elementary data units are received.
[0065] Alternatively or additionally, it may also be stipulated that the distribution rule is determined before the start of data recording.
[0066] This allows distributed storage to be implemented according to clearly defined rules a priori. The distribution rule can be determined particularly easily using the data stream descriptions of the individual specific data streams.
[0067] Alternatively or additionally, it may also be provided that the distribution rule is determined in such a way that, when distributing the elementary data units of the specific data streams onto the at least two storage media, a maximum data rate permissible for write access to each individual storage media is not exceeded.
[0068] This enables particularly efficient storage of the elementary data units.
[0069] Alternatively or additionally, it may also be provided that the distribution rule is determined in such a way that, when the elementary data units of the specific data streams are stored in a distributed manner on at least two storage media, an even filling of the individual storage media with data is achieved.
[0070] This prevents the permissible input bandwidth from decreasing as soon as one of the storage media is full. Furthermore, this method allows for particularly efficient use of the available storage space. This enables highly efficient storage of the elementary data units. A storage medium is "filled with data" by storing data on it. Such a uniform filling can be achieved particularly advantageously by using an algorithm for solving a "container problem," as described above.
[0071] Alternatively or additionally, it may also be provided that for each of the at least two storage media, a maximum data rate at which the respective storage medium can be written is / are known as bandwidth information and / or a free storage space is / are known as capacity information and / or is / are determined automatically, and wherein preferably the distribution rule is determined based on the bandwidth information and / or capacity information of the storage media.
[0072] This allows for a particularly efficient filling of the storage media with the elementary data units.
[0073] Preferably, the automated determination of bandwidth information and / or capacity information involves querying the relevant information from the individual storage media.
[0074] Alternatively or additionally, it may also be provided that the distribution rule is determined based on the data stream descriptions specified for the specific data streams and / or the information underlying these data stream descriptions, in particular (i) storage sizes of the elementary data units of the respective specific data streams and / or (ii) frequencies with which the data of successive elementary data units within the respective specific data streams are received.
[0075] This makes it particularly advantageous to include the technical characteristics of the specific data streams during distribution.
[0076] It is particularly advantageous if the distribution rule is determined based on the data stream descriptions specified for the specific data streams and / or the information underlying these data stream descriptions, and based on bandwidth information and / or capacity information. This allows the technical characteristics of both the specific data streams (sources) and the storage media (destinations) to be particularly advantageously considered during distribution.
[0077] Alternatively or additionally, it may also be provided that the identical distribution rule is applied for the entire duration of the data recording.
[0078] This allows the storage process to be carried out particularly efficiently.
[0079] Alternatively or additionally, it may also be provided that the specific data streams (i) each contain, in particular exclusively, data of an application-related layer and / or (ii) each contain no protocol and / or transport information.
[0080] The application-specific layer is, for example, one of layers 5-7 in the OSI model.
[0081] The specific data streams therefore advantageously do not contain any information necessary for the transmission of their data over a transmission channel (such as address information of the respective source or destination of the data).
[0082] Preferably, information that serves to assign data of a specific data stream to an elementary data unit (such as the control data described above) is understood as application-related layer data and / or not as protocol and / or transport information.
[0083] Alternatively or additionally, it may also be provided that the specific data streams each represent sensor signals, which originate in particular from imaging sensors and / or from different sensors.
[0084] For example, at least one sensor is selected from the group of sensors: camera sensor, radar sensor, lidar sensor and / or ultrasonic sensor.
[0085] The sensor signals can be, for example, sensor data, especially raw sensor data.
[0086] The specific data streams can therefore, for example, contain image data from imaging sensors. The sensors can each deliver, for instance, a continuous and uniform stream of image frames, each of which is received as a specific data stream.
[0087] Alternatively or additionally, it may also be provided that at least one specific data stream represents sensor signals from a camera sensor, radar sensor, lidar sensor and / or ultrasonic sensor.
[0088] The sensors can provide time-dependent signals.
[0089] Alternatively or additionally, it may also be provided that at least one sensor is operated successively in different operating modes, and that, depending on the operating mode, at least one technical specification of the specific data stream received by the sensor changes, such as (i) a data rate, (ii) a data size of an elementary data unit and / or (iii) a frequency at which new elementary data units are received.
[0090] For example, the sensor can initially be operated in a first operating mode and subsequently in a second operating mode. For instance, the resolution of the images captured by the sensor, and thus the data rate of the specific data stream received by the sensor, can differ between the two operating modes, particularly being higher in the second operating mode than in the first.
[0091] For example, an automotive camera sensor can increase the frame rate or resolution in a critical traffic situation, thereby switching between different operating modes.
[0092] In some embodiments, the time intervals during which the operating mode remains unchanged can be stored as separate recordings, each with its own start and end times and its own ID. A master recording ID can then be used to identify that the individual intervals belong together. This allows them, for example, to be combined into a single, continuous recording during reconstruction.
[0093] Alternatively or additionally, it may also be provided that the distribution rule is determined in such a way that in each operating mode of the sensor the elementary data units are stored distributed across the at least two storage media.
[0094] The distribution rule is thus advantageously determined in such a way that distributed storage of the elementary data units is ensured regardless of the time-dependent choice of operating modes.
[0095] Alternatively or additionally, it may also be provided that the data stream description of the specific data stream received by the sensor and / or the distribution rule is determined at least partially for the operating mode in which the specific data stream received by the sensor has the highest data rate.
[0096] This means that data recording is geared towards the "worst-case" scenario and remains possible even in this case. For example, the storage space reserved for temporary storage might be too large when designed for the "worst-case" scenario during a period when the data rate is lower than the maximum data rate. Similarly, the write bandwidth reserved for storing the elementary data units of the specific data stream might be too large during a period when the data rate is lower than the maximum data rate. Likewise, the storage space reserved on one of the storage media for storing the elementary data units of the specific data stream might be too large during a period when the data rate is lower than the maximum data rate.However, this is accepted in these cases in order to continue to reliably process the received data and distribute the storage of the elementary data units during a period in which the data rate corresponds to the highest data rate.
[0097] Alternatively or additionally, it may also be provided that, depending on the selected operating mode of the sensor, switching is made between different data stream descriptions of the specific data stream received by the sensor and / or distribution rules.
[0098] This allows for flexible adaptation to changing circumstances. This enables particularly efficient use of resources, especially storage media.
[0099] Alternatively or additionally, it may also be provided that for at least one specific data stream originating from a sensor, at least one of the technical specifications of the respective specific data stream is automatically determined through communication with the sensor and used in the data stream description.
[0100] This allows, for example, the aforementioned information from the data stream description to be automatically determined and used in the data stream description process. Reference can also be made to the previous explanations.
[0101] Alternatively or additionally, it may also be provided that the elementary data units of at least one specific data stream, preferably all specific data streams, are stored distributed across at least two of the at least two storage media.
[0102] This makes it particularly advantageous to maximize the permissible bandwidth of the specific data streams received.
[0103] Alternatively or additionally, it can also be provided that the elementary data units of at least one specific data stream, preferably all specific data streams, are stored without redundancy on at least two of the at least two storage media.
[0104] This makes it possible to perform the storage process particularly efficiently.
[0105] Alternatively or additionally, it may also be provided that a data rate of at least one data stream of the at least one specific data stream, in particular of all parallel received specific data streams, has a maximum value that is greater than a maximum permissible data rate with which at least one, preferably all, of the at least two storage media can be described.
[0106] By distributing the storage of the elementary data units across at least two storage media (in parallel time), the total bandwidth of the received specific data streams can be greater than the maximum permissible bandwidth for write access to a single storage medium, as described above.
[0107] For example, each storage medium can be written to at a maximum data rate of 1 Mbit / second. If a single, specific data stream is received for data recording, it can theoretically have a bandwidth of 2 Mbit / second due to the parallel distributed storage.
[0108] The method thus advantageously allows an increase in input bandwidth by distributing one or more incoming specific data streams, preferably in real time, across multiple storage media in parallel over time.
[0109] The data rate of all parallel received specific data streams is preferably understood here to be the sum of the data rates of the individual specific data streams.
[0110] Alternatively or additionally, it may also be provided that the data recording is carried out in real time and / or does not involve intermediate storage of the data of the received specific data streams in a non-volatile memory.
[0111] Without intermediate storage in non-volatile memory, data processing (such as grouping data within a specific data stream into the elementary data units of that specific data stream) can be performed particularly quickly. For example, intermediate storage can take place in main memory (RAM).
[0112] Alternatively or additionally, it may also be provided that the data recording includes the generation of metadata containing information about the elementary data units stored on the individual storage media, in particular for the recovery of the individual specific data streams from the elementary data units stored distributed across the at least two storage media.
[0113] The metadata can be advantageously used to identify the elementary data units stored on the individual storage media, to retrieve them from the respective storage medium, to assign them to a specific data stream and / or to string them together in the correct order to reconstruct the original specific data stream.
[0114] The metadata is advantageously associated with the distribution rule used. The metadata and the distribution rule can therefore complement each other and provide a common information base. Preferably, this information base should allow for at least partial (preferably complete) recovery of a specific data stream.
[0115] Alternatively or additionally, it may also be provided that the metadata contains a selection of the following information: - Information on data recording, such as a unique identifier of the data recording and / or a unique identifier of the system used for data recording; - Memory address ranges of the individual elementary data units, in particular pointers to the first and last byte of the respective elementary data units; - unique identifiers for identifying individual elementary data units; - Assignments of individual elementary data units to sources, especially sensors; - Information on the temporal sorting of the elementary data units, for example in the form of timestamps, one or more lists of unique identifiers in a chronological order; - a unique identifier of the data recording session; - unique identifiers of the storage media involved in data recording; - unique identifiers of tags arranged on the storage media; - a list of sources from which the specific data streams originate; - a list of the storage media involved in the data recording, in particular to verify that the recorded data is complete; - Name and path of a target file in which data from reconstructed data streams are to be stored; and / or - Start and end time of data recording.
[0116] The tags can be RFID tags, for example. This allows the presence of the storage media to be detected wirelessly. Each storage medium can be equipped with such a tag for this purpose. Each tag can contain a unique identifier for the respective storage medium, which can be obtained by reading the tag, particularly wirelessly.
[0117] Preferably, the metadata contains information about the operating modes of one or more sensors present during data recording. This makes it known when which data stream descriptions and / or distribution rules were applied. Alternatively or additionally, the metadata can contain information about the data stream descriptions and / or distribution rules applied during data recording, depending on the time.
[0118] Alternatively or additionally, it may also be provided that the metadata is stored completely on at least one, preferably on all, of the at least two storage media and / or in a separate storage device.
[0119] If the metadata is stored on one or more storage media along with the other elementary data units, reliable data reconstruction is possible.
[0120] The separate storage can be remote storage, for example, cloud storage.
[0121] Alternatively or additionally, it may also be provided that metadata is stored on each storage medium only for those elementary data units which are stored on the respective storage medium.
[0122] To reconstruct the data, the metadata from all involved storage media can first be retrieved and analyzed. The reconstruction can then be carried out efficiently using the collected metadata.
[0123] Alternatively or additionally, it may also be provided that metadata is stored on each storage medium for all elementary data units.
[0124] This makes it advantageous to identify which storage media are required for a reconstruction. This allows for the quick identification of any storage media that are still missing for a reconstruction.
[0125] The problem is solved by the invention according to a second aspect by a method for generating at least one data stream, in particular by a method according to the first aspect of the invention, from elementary data units stored distributed across at least two storage media or source files, wherein at least two elementary data units are retrieved from different storage media or from different source files using metadata and placed in a temporal sequence, and thereby the at least one data stream is at least partially generated.
[0126] This allows for the advantageous reconstruction of a data stream from data that is fragmentarily stored across multiple storage media or source files. Due to the interplay between the stored metadata and the stored elementary data units, no additional prior knowledge about the original data streams or other circumstances during data recording is required. This makes reconstruction particularly reliable.
[0127] The ability to generate the data stream from source files advantageously provides independence from storage media. Therefore, for example, data stored on at least two storage media in the form of files (in particular, each content of a storage medium as a separate file) during data recording using a method according to the first aspect of the invention can be transferred to a remote computer (for example, a cloud computer) and the data stream generated there from the transferred source files as described. The generated data stream can then optionally be transferred back. In embodiments, the source files can be transferred to the remote computer from different entities and / or the generation of the data stream can only begin once all necessary source files are available.The presence of all source files can be checked, for example, as can the presence of all storage media, using the information stored in the metadata, which will be discussed in more detail below.
[0128] The generated data stream can be a data stream containing data from a sensor (such as a radar, lidar, or camera sensor). For example, the data stream can be a previously received data stream (such as a specific data stream received in a method according to the first aspect of the invention).
[0129] Advantageously, all features described in relation to the method according to the first aspect of the invention can also be provided in a corresponding, in particular mirror-image, manner in the method according to the second aspect of the invention, unless otherwise indicated by the context.
[0130] Alternatively or additionally, it may also be provided that the data of the generated data stream is transmitted via a network and / or stored in a separate storage device.
[0131] The separate storage can be remote storage, for example, cloud storage.
[0132] Alternatively or additionally, it may also be provided that at least two data streams, each consisting of at least two elementary data units, are at least partially generated based on the metadata, preferably with each of the generated data streams being stored in its own target file or at least two of the generated data streams being stored in a common file.
[0133] Generated data streams can be stored particularly advantageously in the respective file by storing their data in the file.
[0134] Alternatively or additionally, it may also be provided that the metadata is retrieved from at least one storage medium or from at least one source file, from which at least one of the elementary data units is also retrieved.
[0135] Alternatively or additionally, it may also be provided that the metadata is used to check whether all of the at least two storage media or all of the at least two source files are available, in particular for retrieving the elementary data units stored on or in them.
[0136] For example, the metadata can contain information about tags assigned to the individual storage media. This allows the system to check for the presence of each tag and thus the presence of each storage medium. Similarly, each source file can contain a unique identifier, so that the metadata, which includes the identifiers of all source files, can be used to check for the presence of all source files. If at least one storage medium or at least one source file is not detected as present, an error signal can be generated, and optionally, the generation of the data stream can be aborted.
[0137] The problem is solved by the invention according to a third aspect by a device for data processing, in particular for data recording, which is data-technically coupled or connectable to one or more sensors and / or which is data-technically coupled or connectable to at least two storage media, the device comprising means which are configured to carry out a method according to the first aspect of the invention.
[0138] All the advantages described in relation to the method according to the first aspect of the invention also apply accordingly to the apparatus. Therefore, reference can be made here to the preceding explanations.
[0139] The features described in relation to the method according to the first aspect of the invention may also be provided accordingly in or in connection with the device, individually and in any combination, unless otherwise indicated by the context. In particular, the device may be configured to carry out the process steps described in relation to the method according to the first aspect of the invention, especially individually and in any combination.
[0140] Preferably, the device has one or more interfaces through which data communication with the sensor(s) can be established or made possible. Preferably, the device also has one or more interfaces through which data communication with the storage media can be established or made possible.
[0141] The device may alternatively or additionally comprise a memory, a processor, a receiving device, a transmitting device, or any combination thereof. The device may alternatively or additionally provide and / or make available all of the above, including, in particular, all necessary resources, for example, in the form of software and / or hardware resources. The device may advantageously include means for receiving, transmitting, storing, processing, evaluating, and / or analyzing the data of the respective specific data streams.
[0142] The device can be configured as a data logger. Alternatively or additionally, the device can represent a distributed system.
[0143] The problem is solved by the invention according to a fourth aspect by proposing a device for data processing, in particular for the reconstruction of a data stream, in particular recorded with a device according to the third aspect of the invention, which is data-technically coupled or can be coupled with at least two storage media, comprising means which are set up to carry out a method according to the second aspect of the invention.
[0144] All the advantages described in relation to the method according to the second aspect of the invention also apply accordingly to the device according to the fourth aspect of the invention. Therefore, reference can be made to the preceding explanations in this respect.
[0145] The features described in relation to the method according to the second aspect of the invention may also be provided in or in connection with the device, individually and in any combination, unless otherwise indicated by the context. In particular, the device may be configured to carry out the process steps described in relation to the method according to the second aspect of the invention, especially individually and in any combination.
[0146] Preferably, the device has one or more interfaces via which the data connection to the storage media can be established or made possible.
[0147] The device may alternatively or additionally comprise a memory, a processor, a receiving device, a transmitting device, or any combination thereof. The device may alternatively or additionally provide and / or make available all of the above, including, in particular, all necessary resources, for example, in the form of software and / or hardware resources. The device may advantageously include means for transmitting the respective data stream (e.g., to another entity).
[0148] The data processing device can be, for example, a cloud server. Alternatively or additionally, the data processing device can be a distributed system. For example, parts of the data processing device can be located in the cloud.
[0149] In embodiments, the data processing device according to the third aspect of the invention and the data processing device according to the fourth aspect of the invention are a single data processing device.
[0150] The problem is solved by the invention according to a fifth aspect by proposing a computer program product comprising instructions which, when the program is executed by a data processing device, in particular the data processing device according to the third aspect of the invention and / or according to the fourth aspect of the invention, cause it to execute a method according to the first aspect of the invention and / or according to the second aspect of the invention.
[0151] The computer program product can, for example, be designed as a file that is stored or can be stored on a computer-readable medium.
[0152] The problem is solved by the invention according to a sixth aspect by proposing a signal sequence which is in particular transmittable via a computer network, wherein the signal sequence represents data of a data stream received in a method according to the first aspect of the invention and / or a data stream generated in a method according to the second aspect of the invention.
[0153] The signal sequence allows for the advantageous exchange of data from the respective data stream between different participants.
[0154] For example, the signal sequence can be received from a remote computer and / or sent to a remote computer.
[0155] The problem is solved by the invention according to a seventh aspect by proposing a storage medium, in particular for use in a method according to the second aspect of the invention and / or in a device according to the fourth aspect of the invention, wherein at least some data of at least one data stream are stored on the storage medium, in particular in several storage areas of the storage medium which do not have a contiguous address space, wherein metadata is stored on the storage medium, wherein the metadata specifies in which storage areas of the storage medium data of the data stream are stored.
[0156] Therefore, using metadata as functional data, the data of a fragmented data stream can be fully or partially reconstructed into the data stream.
[0157] All the advantages described in relation to the method according to the second aspect of the invention also apply accordingly to the storage medium according to the seventh aspect of the invention. Therefore, reference can be made to the preceding statements in this respect.
[0158] The at least two storage media that are data-technically coupled to the device for data processing according to the fourth aspect of the invention and / or the at least two storage media used in a method according to the second aspect of the invention can each be a storage medium according to the seventh aspect of the invention. Brief description of the drawings
[0159] Further features and advantages of the invention will become apparent from the following description, in which preferred embodiments of the invention are explained with reference to schematic drawings.
[0160] This shows: Fig. 1 a schematic representation of a device for data processing according to the third aspect of the invention with data-technically coupled sensors and storage media; Fig. 2 a schematic representation of the sensors Fig. 1 received data streams; Fig. 3 a schematic representation of the storage media Fig. 1 with elementary data units of the data streams stored thereon, as well as parts of the data streams; Fig. 4 a schematic representation of a file with metadata; Fig. 5 a schematic representation of a device for data processing according to the fourth aspect of the invention with data-technically coupled storage media; Fig. 6 a flowchart of a process according to the first aspect of the invention; and Fig. 7 a flowchart of a process according to the second aspect of the invention. Description of the embodiments
[0161] Fig. Figure 1 shows a schematic representation of a device for data processing 1 according to the third aspect of the invention.
[0162] The data processing device 1 is connected to three sensors 5a...5c via data lines 3a...3c. The sensors 5a...5c can be sensors of a vehicle. Each sensor 5a...5c can generate sensor data that can be received by the data processing device 1 via the data lines 3a...3c.
[0163] The data processing device 1 continuously receives a specific data stream containing sensor data from sensor 5a via data line 3a. Sensor 5a is, for example, a camera sensor. The camera sensor can, for example, capture images of its surroundings at a specific frame rate. In this case, the specific data stream then contains the data from the individual images captured sequentially by the camera sensor.
[0164] The data processing device 1 continuously receives a specific data stream containing sensor data from sensor 5b via data line 3b. Sensor 5b is, for example, a radar sensor. The radar sensor can, for instance, have multiple pairs of transmitting and receiving antennas and capture images of its surroundings at a specific recording rate. The transmitted sensor data can then, for example, be images of a spatial representation of the surroundings already reconstructed by sensor 5b from the raw sensor data. Alternatively, only the raw sensor data (which may be in Fourier space) could be transmitted.
[0165] The data processing device 1 continuously receives a specific data stream containing sensor data from sensor 5c via data line 3c. Sensor 5c is, for example, a lidar sensor. The lidar sensor can, for example, capture images of its surroundings at a specific frame rate. For this purpose, a laser from the lidar sensor can scan its surroundings. In this case, the specific data stream then contains the data from the individual images captured sequentially by the lidar sensor.
[0166] The data processing device 1 could also be coupled with more or fewer sensors in its embodiments.
[0167] Fig. Figure 2 shows a schematic representation of the specific data streams received by sensors 5a...5c.
[0168] The data processing device 1 receives the specific data stream 7a from the sensor 5a. The specific data stream 7a received from the sensor 5a has certain technical properties known in advance. These properties are defined in a data stream description created in advance for the specific data stream 7a. For the camera sensor mentioned as an example, the technical properties of the specific data stream 7a defined in the data stream description could be the frame rate and the memory size of a frame. Each such group of data within a frame can be treated as an elementary data unit. The data from successive frames (i.e., elementary data units) are logically separated from one another in the data stream 7a by control data contained within the specific data stream 7a.For example, the control data can mark the beginning and / or end of a data set belonging to an elementary data unit (the respective sensor could, for example, insert corresponding markers into the data stream itself). Information about this control data is advantageously stored in the data stream description of the specific data stream 7a. Fig. Figure 2 represents the specific data stream 7a as temporally successive elementary data units D1.1 ... D1.N. The first elementary data unit D1.1 of the specific data stream 7a is received at time T0, and the subsequent elementary data units D1.2 ... D1.N are received subsequently according to the inverse of the frame rate. It is self-evident that each elementary data unit D1.1 ... D1.N is itself composed of several data elements, such as the values of the individual pixels of a captured image frame.
[0169] Similarly, the data processing device 1 receives the specific data stream 7b from sensor 5b and the specific data stream 7c from sensor 5c. The specific data streams 7b and 7c are also known in advance with respect to certain technical properties. These properties are stored in a data stream description created in advance for each specific data stream 7b and 7c. For the radar and lidar sensor mentioned as an example, the technical properties of the respective specific data stream 7b and 7c stored in the respective data stream description could be the frame rate and the storage size of a frame of a radar or lidar image. Here, too, each such group of data from a frame can be referred to as an elementary data unit. Fig. Therefore, the specific data streams 7b and 7c are each represented as temporally successive elementary data units D2.1 ... D2.N and D3.1 ... D3.N, respectively. The first elementary data unit D2.1 of specific data stream 7b and the first elementary data unit D3.1 of specific data stream 7c are each received at time T0; the subsequent elementary data units D2.2 ... D1.N and D3.2 ... D3.N are received subsequently, according to the inverse of the frame rate. It is also self-evident that each elementary data unit D2.1 ... D1.N and D3.1 ... D3.N is itself composed of several data elements, such as the values of the individual pixels of a captured image frame.
[0170] The in Fig. The two elementary data units of a specific data stream 7a...7c shown above along the positive time axis t are received at a later time than the elementary data units of the respective specific data stream 7a...7c shown below. Specifically, within, for example, specific data stream 7a, the elementary data unit D1.1 is received before the elementary data unit D1.2, and this one before the elementary data unit D1.3, and so on.
[0171] The specific data streams 7a...7c are received in parallel by the sensors 5a...5c. Therefore, the elementary data units of the different sensors 5a...5c are also received in parallel. In the Fig. In the illustrated case 2, all nth (n=1...N) elementary data units of the three specific data streams 7a...7c are received in parallel. That is, all first elementary data units D1.1, D2.1, and D3.1 are received in parallel, all second elementary data units D1.2, D2.2, and D3.2 are received in parallel, and so on. This special case is chosen here solely for the sake of clarity. In general, the nth elementary data units of different specific data streams can be received with any arbitrary offset from one another. The time offset of elementary data units of the same number n (i.e., D1.4 and D2.4) of two specific data streams depends, in particular, on the amount of data contained within each elementary data unit and the data rate at which the data is received from the respective sensors via the data lines by the data processing device 1.In the one in . Fig. In the special case shown in Figure 2, it is assumed that for each sensor 5a...5c, the data set of each elementary data unit is transmitted from the respective sensor to the data processing device within the same time. Furthermore, the number of elementary data units N of the individual specific data streams 7a...7c can differ.
[0172] For example, sensor data is generated by sensors 5a...5c during a test drive with the aforementioned vehicle, in order to subsequently use it for data-driven development of applications for driver assistance systems and autonomous driving. For this purpose, the specific data streams must be stored during the test drive.
[0173] The device for data processing 1 ( Fig. 1) is connected via four data lines 9a...9d to four storage media 11a...11d of a storage unit 13. The data received from the three sensors 5a...5c can be stored on these storage media 11a...11d.
[0174] The data processing device 1 divides each specific data stream 7a...7c into the elementary data units D1.n, D2.n and D3.n (n=1...N), as already described above in relation to Fig. 2 were described. The division of specific data stream 7a into the elementary data units D1.n is therefore carried out based on the data stream description created for specific data stream 7a (in particular by dividing specific data stream 7a at the points where a marker is detected that is stored as control data in the data stream description). The division of specific data stream 7b into the elementary data units D2.n is therefore carried out based on the data stream description created for specific data stream 7b (in particular by dividing specific data stream 7b at the points where a marker is detected that is stored as control data in the data stream description). And the division of specific data stream 7c into the elementary data units D3.The process is therefore carried out based on the data stream description created for the specific data stream 7c (in particular by splitting the specific data stream 7c at the points where a marker is detected that is stored as control data in the data stream description). The division of a data stream 7a...7c into the elementary data units D1.n, D2.n, and D3.n thus means grouping data from the respective data stream 7a...7c in order to obtain the individual elementary data units. Each elementary data unit obtained in this way can advantageously correspond precisely to the data of a frame from the respective sensor 5a...5c (e.g., the camera sensor, the radar sensor, or the lidar sensor).
[0175] To enable the division of the individual specific data streams 7a...7c into elementary data units based on the respective control data, the specific data streams 7a...7c can, for example, be continuously analyzed for a corresponding marker. In embodiments, the data of a specific data stream 7a...7c could also be grouped into individual elementary data units based on the frequency or memory size of a data frame specified in the respective data stream description.
[0176] The data of the individual elementary data units D1.n, D2.n, and D3.n of the specific data streams 7a...7c are temporarily stored in volatile RAM before being permanently saved. The amount of memory to be reserved for the elementary data units D1.n, D2.n, and D3.n of the specific data streams 7a...7c can be predetermined based on the data stream description, thus optimizing resource utilization.
[0177] The individual elementary data units D1.n, D2.n, and D3.n of the specific data streams 7a...7c are stored distributed across the four storage media 11a...11d. The data processing device 1 performs the distributed storage according to a distribution rule. This distribution rule is created before data recording begins, based on the three data stream descriptions available for the specific data streams 7a...7c (see explanations above). This allows the distribution of the elementary data units across the individual storage media 11a...1d to be determined, for example, based on the data size of the different elementary data units D1.n, D2.n, and D3.n.
[0178] Even though, in the present embodiment, the nth elementary data units of the three specific data streams 7a...7c are all received in parallel, they may still have different amounts of data (where, for example, due to different data rates on the data lines 3a...3c, the nth data unit is still received in parallel), and thus each requires a different amount of storage space on the storage media 11a...11d and a different write access time to the storage media 11a...11d.
[0179] The distribution rule specifies a cyclical sequence according to which the elementary data units D1.n, D2.n, and D3.n of the specific data streams 7a...7c are stored on the individual storage media 11a...11d. By way of example, and without loss of generality, the elementary data units are assigned successively to storage medium 11a, then storage medium 11b, then storage medium 11c, then storage medium 11d, then storage medium 11a again, and so on. Furthermore, the distribution rule specifies that if elementary data units from different specific data streams 11a...11c arrive simultaneously, the elementary data unit of specific data stream 7a is first assigned to a storage medium, then the elementary data unit of specific data stream 7b is assigned to a storage medium, and then the elementary data unit of specific data stream 7c is assigned to a storage medium.
[0180] Fig. Figure 3 shows a schematic representation of the storage media 11a...11d from Fig. 1 with elementary data units of the specific data streams 7a...7c stored on it, as well as parts of the data streams 7a...7b.
[0181] To the in Fig. At the point in time shown in Figure 3, the elementary data units D1.1 to D1.4 of the specific data stream 7a, the elementary data units D2.1 to D2.4 of the specific data stream 7b, and the elementary data units D3.1 to D3.4 of the specific data stream 7c were already distributed and stored across the four storage media 11a...11d. Therefore, in Fig. 3. The already stored elementary data units are no longer shown as part of the specific data streams 7a...7c.
[0182] Applying the distribution rule (storage location of the incoming elementary data units cyclically on storage media 11a-11b-11c-11d, whereby for elementary data units of different specific data streams arriving in parallel at time, those of specific data stream 7a are prioritized higher than those of specific data stream 7b and these higher than those of specific data stream 7c), the following results: an allocation of the storage medium 11a with the elementary data units D1.1 of the specific data stream 7a, D2.2 of the specific data stream 7b and D3.3 of the specific data stream 7c, an allocation of the storage medium 11b with the elementary data units D2.1 of the specific data stream 7b, D3.2 of the specific data stream 7c and D1.4 of the specific data stream 7a, an allocation of the storage medium 11b with the elementary data units D3.1 of the specific data stream 7c, D1.3 of the specific data stream 7a and D2.4 of the specific data stream 7b, and an allocation of the storage medium 11d with the elementary data units D1.2 of the specific data stream 7a, D2.3 of the specific data stream 7b and D3.4 of the specific data stream 7c.
[0183] The storage of the different elementary data units on the individual storage media 11a...11d is achieved through a parallel write access to the storage media 11a...11d. For example, the elementary data units D1.1, D2.1, D3.1, and D1.2 are stored in parallel, at least as long as the individual data is already available. By writing to the storage media 11a...11d in parallel, the permissible total input bandwidth (i.e., the sum of the bandwidths of the individual specific data streams 11a...11c) can be increased.
[0184] In the next step, the next elementary data units, insofar as they have already been received or will be received subsequently, would then be stored on the storage medium according to the distribution rule.
[0185] In Fig. Figure 3 below illustrates the different storage sizes (and thus data volumes) of the elementary data units of the three specific data streams 7a...7c by showing the different heights of the schematically represented elementary data units (stored on storage media 11a...11d). The storage size of an elementary data unit D2.n of specific data stream 7b is therefore larger than the storage size of an elementary data unit D3.n of specific data stream 7c, and this is larger than the storage size of an elementary data unit D1.n of specific data stream 7a. However, the storage sizes of the individual elementary data units D1.n, D2.n, and D3.n of a single specific data stream 7a...7c are identical in this case.
[0186] The distribution rule was determined in such a way as to ensure the most even possible filling of the individual storage media 11a...11d with the elementary data units. Algorithms for solving a "container problem" can also be used in creating the distribution rule. Furthermore, the distribution rule ensures that the maximum bandwidth of each storage media 11a...11d is not exceeded during write access. Since the expected amount of data (and thus the number of elementary data units) per unit of time and per specific data stream is at least partially known in advance based on the individual data stream descriptions, the distribution rule can be generated in such a way as to achieve the most efficient distributed storage of the elementary data units.The distribution rule allows the maximum permissible bandwidths (for write access) of the individual storage media 11a...11d to be taken into account, as well as the required storage quantity per elementary data unit for the different specific data streams, thus optimizing the storage process.
[0187] By dividing the specific data streams 7a...7c into elementary data units based on the data stream descriptions, and by distributing the storage of these elementary data units across the storage media 11a...11d according to the distribution rule, the data of the specific data streams 7a...7c can be stored in real time even with a high overall bandwidth. This is because the maximum permissible bandwidth of each individual storage media 11a...11d is advantageously available in aggregate due to the division into elementary data units and the parallel writing of the storage media 11a...11d. Therefore, input data can be advantageously stored with a total bandwidth that scales with the individual bandwidths of the storage media 11a...11d.
[0188] The storage size of the individual elementary data units of a single specific data stream 7a...7c is assumed to be identical, as mentioned. However, in embodiments, the storage size of the individual elementary data units of at least one specific data stream 7a...7c can also vary depending on the time. This can occur, for example, if one of the sensors 5a...5c is operated in different operating modes depending on the time, and thus the amount of data of an elementary data unit or the time interval between the elementary data units of the respective specific data stream varies depending on the time. For example, the camera sensor (sensor 5a) could be operated successively, first in a normal mode with a first resolution and then in an alarm mode with a second resolution that is larger than the first resolution.For this purpose, the data stream description and / or the distribution rule could be geared towards the operating mode with the highest data rate ("worst case"). This approach accepts that, during a particular operating mode (in this example, normal mode), the reserved resources may not be fully utilized. Alternatively, a different data stream description and / or distribution rule could be selected and applied depending on the operating mode. This would allow for optimized resource utilization for each operating mode.
[0189] After all elementary data units of all specific data streams 7a...7c have been stored on the storage media 11a...11d, a file 15 containing metadata is stored on each storage medium 11a...11d.
[0190] Fig. Figure 4 shows a schematic representation of file 15.
[0191] The first metadata section 15a of file 15 contains information about the storage media involved, 11a...11d. For example, a unique identifier for each storage medium 11a...11d can be stored in metadata section 15a.
[0192] A second metadata area, 15b, of file 15 contains information about the elementary data units stored on the respective storage medium 11a...11d on which file 15 is stored. For example, for each elementary data unit stored on the respective storage medium, the specific data stream whose data the respective elementary data unit partially contains, the number n of the elementary data unit within the specific data stream, and / or a start and / or end address of a memory area within which the data of the elementary data unit is stored on the respective storage medium can be stored.
[0193] In a third metadata area 15c of file 15, information about the data recording is stored, such as a timestamp relating to the start of the data recording and a timestamp relating to the end of the data recording.
[0194] The data processing device 1 (and the described method performed by it) therefore enables the efficient storage of even high-bandwidth data streams on multiple storage media. This allows the necessary bandwidth for the simultaneous recording of multiple data streams from different sensors to be provided even during a test drive. This is highly advantageous for the data-driven development of applications for driver assistance systems and autonomous driving.
[0195] The data of the individual specific data streams 7a...7c, distributed across storage media 11a...1d, can later be used, for example, to train a neural network. For this purpose, the individual specific data streams must be reconstructed from the distributed elementary data units.
[0196] Fig. Figure 5 shows a schematic representation of a data processing device 17 according to the fourth aspect of the invention. The data processing device 17 can be used to reconstruct the original specific data streams 7a...7c.
[0197] The data processing device 17 is connected via four data lines 19a...19d to the four storage media 11a...11d of the storage unit 13 (previously connected to the data processing device 1). For example, the storage unit 13 can be moved from one location of the data processing device 1 to another location of the data processing device 17.
[0198] In contrast to the above regarding the in Fig. In the situation shown below, all elementary data units D1.n, D2.n and D3.n of all specific data streams 7a...7c are now stored on the storage media 11a...11d (even if in Fig. 5 only those also in Fig. The three elementary data units already shown below are represented, but not the remaining elementary data units. Fig. 3 above). Furthermore, each storage medium 11a...11d contains a file M1...M4 with metadata. Each file can be modified as described in relation to Fig. The file described in section 4, number 15, is structured and contains the corresponding information. While the information in the first and third metadata areas is identical in the four files M1...M4, the information about the elementary data units stored in the respective second metadata area differs from storage medium to storage medium.
[0199] To reconstruct the original data streams (specific data streams 7a...7c), the metadata from files M1...M4 are first evaluated. Using the (identical) information in the first metadata section of each file M1...M4, the presence of all four storage media 11a...11d can be verified and confirmed. Based on the information from the second metadata section of all four files M1...M4, the storage medium 11a...11d, as well as the start and end addresses of the memory area of the respective storage medium in which its data is stored, can be determined for each elementary data unit D1.n of specific data stream 11a. By reading the data of the individual elementary data units D1.n from the respective memory area and rearranging them into the correct order n=1...N, specific data stream 7a can be reconstructed. An identical procedure is followed for each elementary data unit D2.The function n of the specific data stream 11b and for each elementary data unit D3.n of the specific data stream 11c enables a reconstruction of the specific data streams 7b and 7c. The reconstructed data streams can be stored on a data carrier or transmitted via a computer network, such as the Internet, for further use.
[0200] In embodiments, the data processing device 17 can be identical to the data processing device 1.
[0201] The data of the received and the reconstructed specific data streams 7a...7c can each be a signal sequence according to the sixth aspect of the invention.
[0202] The in relation to Fig. The storage media 11a...11d described in section 5 can each be a storage medium according to the seventh aspect of the invention.
[0203] Fig. Figure 6 shows a flowchart 100 of a method according to the first aspect of the invention.
[0204] The procedure can be used to perform data recording, such as data recording as described above in relation to Fig. has been described in sections 1-4.
[0205] In 101, at least one data stream is received for recording its data, including at least one specific data stream.
[0206] In 103, each specific data stream is divided into elementary data units based on a data stream description specified for the respective specific data stream.
[0207] In 105, the elementary data units of all specific data streams are stored distributed across at least two storage media.
[0208] For example, in 105, the distributed storage of the elementary data units of the specific data streams on the at least two storage media can be carried out based on a distribution rule. According to the distribution rule, each elementary data unit of the specific data streams can be assigned at least one and / or exactly one of the at least two storage media as its storage location, and the individual elementary data units can be stored on the storage medium assigned to them.
[0209] The procedure can, for example, be derived from the one relating to Fig. 1 described device for data processing 1 shall be implemented, which may be set up accordingly.
[0210] Fig. Figure 7 shows a flowchart 200 of a method according to the second aspect of the invention.
[0211] The method can be used to generate at least one data stream from elementary data units stored distributed across at least two storage media or source files, particularly using the method according to the first aspect of the invention. This can be a reconstruction, such as the one described above with regard to Fig. 5 has been described.
[0212] In 201, at least two elementary data units are retrieved from different storage media or from different source files using metadata.
[0213] In 203, at least two elementary data units are placed in a temporal order, thereby generating at least one data stream, at least partially.
[0214] The procedure can, for example, be derived from the one relating to Fig. The device for data processing described in section 5 is to be implemented as described in section 17, which may be set up accordingly.
[0215] The features disclosed in the preceding description, in the drawings and in the claims can be essential to the invention in its various embodiments, both individually and in any combination. Reference symbol list 1 Device for data processing 3a, 3b, 3c Data line 5a, 5b, 5c Sensor 7a, 7b, 7c Specific data stream 9a, 9b, 9c, 9d Data line 11a, 11b, 11c, 11d Storage medium 13 storage units 15 files containing metadata 15a, 15b, 15c Metadata area 17 Device for data processing 19a, 19b, 19c, 19d Data line D1.n nth elementary data unit of the specific data stream 7a D2.n nth elementary data unit of the specific data stream 7b D3.n nth elementary data unit of the specific data stream 7c M1, M2, M3, M4 file containing metadata n Number of an elementary data unit of a specific data stream N Number of elementary data units of a specific data stream t time axis TO time 100 Flowchart 101 Receiving at least one data stream for recording its data, wherein at least one specific data stream is 103 Dividing each specific data stream into elementary data units based on a data stream description specified for the respective specific data stream 105 Distributed storage of the elementary data units of all specific data streams on at least two storage media 200 Flowchart 201 Retrieving at least two elementary data units from different storage media or from different source files, using metadata. 203 Arranging the at least two elementary data units in a temporal sequence, and thereby at least partially generating the at least one data stream.
Claims
A method for performing data recording, wherein at least one data stream is received for recording, and there is at least one specific data stream among them, wherein each specific data stream is divided into elementary data units based on a data stream description specified for the respective specific data stream, and the elementary data units of all specific data streams are stored distributed across at least two storage media, wherein the distributed storage of the elementary data units of the specific data streams across the at least two storage media is carried out based on a distribution rule, wherein, according to the distribution rule, each elementary data unit of the specific data streams is assigned at least one and / or exactly one of the at least two storage media as its storage location.and the individual elementary data units are stored on the storage medium assigned to them. Method according to claim 1, wherein the specific data streams are each continuously received and divided into elementary data units and / or wherein two or more than two data streams are received and among them are two or more than two specific data streams, which in particular are received at least partially in parallel in time. A method according to any of the preceding claims, wherein (a) the data stream descriptions specified for each specific data stream each include one or more technical specifications of the respective specific data stream, based on which the division of the respective specific data stream into elementary data units is at least partially carried out, (b) the data stream descriptions specified for each specific data stream each include information on (i) a storage size of an elementary data unit of the respective specific data stream and / or (ii) a frequency at which the data of successive elementary data units within the respective specific data stream are received,based on which the division of the respective specific data stream into elementary data units is at least partially carried out and / or (c) the division of a specific data stream into elementary data units involves grouping the data of the respective specific data stream based on the data stream description specified for the respective specific data stream and thereby obtaining the elementary data units. Method according to one of the preceding claims, wherein an elementary data unit of a specific data stream comprises data of a single image captured by a sensor or a line or pixel of such a single image. Method according to one of the preceding claims, wherein the elementary data units of at least one, preferably all, of the at least one specific data streams are stored distributed across several of the at least two storage media, in particular according to the distribution rule and / or wherein the distribution rule specifies for at least one, preferably for each, specific data stream a, in particular cyclic, sequence of storage media according to which the elementary data units of the respective specific data stream are stored successively on the storage media. A method according to any of the preceding claims, wherein (i) the distribution rule is determined such that, when distributing the elementary data units of the specific data streams onto the at least two storage media, the maximum permissible data rate for write access to each individual storage media is not exceeded, (ii) the distribution rule is determined such that, when distributing the elementary data units of the specific data streams onto the at least two storage media, a uniform filling of the individual storage media with data is achieved, and / or (iii) for each of the at least two storage media, a maximum data rate at which the respective storage medium can be written is / are known as bandwidth information and / or a free storage space is / are known as capacity information and / or is / are determined automatically.and wherein the distribution rule is preferably determined based on the bandwidth information and / or capacity information of the storage media. A method according to one of the preceding claims, wherein the specific data streams each represent sensor signals, in particular from imaging sensors and / or from different sensors, wherein preferably (a) at least one specific data stream represents sensor signals from a camera sensor, radar sensor, lidar sensor and / or ultrasonic sensor and / or (b) at least one sensor is operated successively in different operating modes, and depending on the operating mode, at least one technical specification of the specific data stream received by the sensor changes, such as (i) a data rate, (ii) a data size of an elementary data unit and / or (iii) a frequency at which new elementary data units are received, wherein preferably the distribution rule is determined such that in each operating mode of the sensor the elementary data units are stored distributed across the at least two storage media. Method according to one of the preceding claims, wherein the data stream description of the specific data stream received by the sensor and / or the distribution rule is determined at least partially for the operating mode in which the specific data stream received by the sensor has the highest data rate. Method according to one of the preceding claims, wherein, depending on the selected operating mode of the sensor, different data stream descriptions of the specific data stream received by the sensor and / or distribution rules are used. Method according to one of the preceding claims, wherein the elementary data units of at least one specific data stream, preferably of all specific data streams, are each stored, in particular without redundancy, distributed across at least two of the at least two storage media. Method according to one of the preceding claims, wherein the data recording is carried out in real time and / or does not involve intermediate storage of the data of the received specific data streams in a non-volatile memory. A method according to any of the preceding claims, wherein the data recording comprises the generation of metadata containing information about the elementary data units stored on the individual storage media, for the purpose of reconstructing the individual specific data streams from the elementary data units stored distributed across the at least two storage media, wherein the metadata preferably includes a selection of the following information: - information about the data recording, such as a unique identifier of the data recording and / or a unique identifier of the system used for data recording; - memory address ranges of the individual elementary data units, in particular pointers to the first and last byte of the respective elementary data units; - unique identifiers for identifying individual elementary data units; - assignments of the individual elementary data units to sources, in particular sensors;- Information on the temporal sorting of the elementary data units, for example in the form of timestamps, one or more lists of unique identifiers in chronological order; - a unique identifier of the data recording session; - unique identifiers of the storage media involved in the data recording; - unique identifiers of tags arranged on the storage media; - a list of sources from which the specific data streams originate; - a list of the storage media involved in the data recording, in particular for verifying whether the recorded data is complete; - name and path of a target file in which data from reconstructed data streams are to be stored; and / or - start and end times of the data recording. A method for generating at least one data stream, in particular a method according to one of the preceding claims, from elementary data units stored distributed across at least two storage media or source files, wherein at least two elementary data units are retrieved from different storage media or from different source files and arranged in a chronological order based on metadata, and thereby the at least one data stream is at least partially generated, wherein preferably (i) at least two data streams are at least partially generated based on the metadata, wherein preferably each of the generated data streams is stored in its own target file or at least two of the generated data streams are stored in a common file, and / or (ii) it is checked whether all of the at least two storage media or all of the at least two source files,in particular for retrieving the elementary data units stored on or in them. Device for data processing, in particular for data recording, which is data-technically coupled or connectable to one or more sensors and / or which is data-technically coupled or connectable to at least two storage media, the device comprising means which are configured to carry out a method according to one of claims 1 to 12 and / or device for data processing, in particular for reconstructing a data stream, in particular recorded with a device according to the first alternative of this claim, which is data-technically coupled or connectable to at least two storage media, the device comprising means which are configured to carry out a method according to claim 13. Computer program product comprising instructions which, when the program is executed by a data processing device, in particular one of the data processing devices according to claim 14, cause it to execute a method according to one of claims 1 to 12 or according to claim 13.