Method for determining the overall light distribution of a pixel headlight
The method preprocesses maximum current distributions of individual light sources into a data structure for efficient calculation of overall light distribution, addressing inefficiencies in existing simulation environments and achieving real-time capability for pixel headlights with many light sources.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-04-21
- Publication Date
- 2026-03-12
AI Technical Summary
Existing simulation environments for pixel headlights with a large number of individual light sources are inefficient and unable to meet real-time requirements due to high computation times, lacking physical motivation and considering feasible headlight-specific implementation.
A method using a computing unit to preprocess maximum current distributions of individual light sources into a data structure, allowing for a fast determination of overall light distribution by converting individual light distributions into a maximum current data structure, which is then used to calculate the overall light distribution efficiently, utilizing sparse matrices and parallel processing on a graphics card.
Enables rapid determination of overall light distribution for pixel headlights with thousands of individual light sources, meeting real-time simulation requirements and reducing computation time significantly.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[0001] The invention relates to a method for determining the overall light distribution of a pixel headlight using a computing unit.
[0002] Furthermore, the invention relates to a method for simulating an overall light distribution of a pixel headlight in a night drive of a virtual motor vehicle.
[0003] Pixel headlights, as used here, are automotive headlights that feature a multitude of individually controllable light sources. The overall light distribution of the pixel headlight is freely configurable across a wide range through the interaction of all individual light sources and can be adapted within milliseconds. LED arrays, which contain a large number of individually controllable light sources known as pixels, are typically used as the light source. Another implementation option is DLP systems, which have only one physical light source and generate the individual light sources by controlling micromirrors that reflect the light from the source. The luminous intensity of each individual light source in the pixel headlight can be changed by adjusting the current applied to that light source. Maximum current results in the highest luminous intensity.Future generations of pixel headlights will feature several thousand individual light sources, i.e., pixels.
[0004] These pixel headlights expand the conventional range of applications for automotive headlights. They create the technical prerequisites for new lighting functions, such as glare-free high beams, marker lights, and / or symbol projections. Glare-free high beams allow for continuous use of the high beams without the need to completely dim them when oncoming traffic is present. Thanks to individually controllable light sources, it is possible to adjust the light intensity in specific areas, such as the driver's cabin of an oncoming vehicle. In the example of glare-free high beams, only the driver's cabin of the oncoming vehicle can be dimmed. The area outside the driver's cabin remains illuminated. This significantly increases safety during night driving, and manual switching between high and low beams is no longer necessary.
[0005] To implement such lighting functions in a controlled manner, precise control of each individual light source is advantageous, taking into account factors such as the driving situation, the vehicle's condition, environmental influences, and the previously used current values of the individual light source. Integrating such lighting functions of pixel headlights into road traffic requires numerous complex pre-calculations and meticulous programming of control software for the pixel headlights to ensure reliable system operation. Particularly with the glare-free high beam function, the actual driving situation must be continuously monitored and accurately assessed to reliably control the individual pixels. Incorrect pixel control, especially with glare-free high beams, poses a significant risk of traffic accidents.Due to the risks involved, real-world night driving tests are conducted beforehand to serve as the basis for calculating the overall light distribution. However, real-world night driving tests are not only dangerous, but also time-consuming and expensive. Night driving simulations can circumvent these disadvantages.
[0006] In a night driving simulation, the overall light distribution of the pixel headlight is calculated multiple times in succession according to the simulation parameters. The calculation of the pixel headlight's overall light distribution must therefore be performed very quickly, enabling high calculation rates to meet the real-time requirements of the simulation.
[0007] Specifically, the "LucidDrive" simulation environment from Synopsys' "LucidShape" software package allows for the simulation of pixel headlights, simulating the light distribution of the pixel headlight. However, the number of individual light sources in the simulation is limited to 126 for a physically motivated simulation. If pixel headlights with more individual light sources are to be simulated, the simulation environment, using the "AFS Masking PixelLight Feature," can only render the constant overall light distribution of all fully powered individual light sources, from which areas could be masked. It does not, however, take into account whether the pixel headlight can actually achieve this masking.The disadvantage of this simulation environment is that, with a high number of individual light sources, the simulation is not physically motivated, i.e., independent of the characteristics of the pixel headlight and therefore without consideration of a feasible headlight-specific implementation.
[0008] Other state-of-the-art simulation environments, such as the "LightDriver" used by the company "HELLA KGaA" from the software package "HE-LIOS", only support pixel headlights with up to 100 individual light sources.
[0009] The article "Real-Time Lighting of High-Definition Headlamps for Night Driving Simulation" by N. Rüddenklau et al. describes the simulation of the overall light distribution of all fully energized pixels of a headlight system with 84 pixels and several additional light sources per headlight. The individual light distributions of an LED are transformed into a two-dimensional coordinate system. The overall light distribution is then calculated as the sum of all individual light distributions and external light influences, such as those caused by traffic.
[0010] With the methods currently available for determining the overall light distribution of pixel headlights, the computation time increases sharply with the number of individual light sources, making these methods unsuitable for performing simulations, as the real-time requirements can no longer be met with just a few hundred individual light sources.
[0011] It is therefore an object of the invention to provide a method for determining the overall light distribution of a pixel headlight using a computing unit, which is particularly fast even with a large number of individual light sources. Furthermore, it is an object of the invention to provide a method for simulating the overall light distribution of a pixel headlight during a night drive of a virtual motor vehicle, which meets the real-time requirement.
[0012] This problem is solved by the subject matter of the independent claims. Preferred embodiments of the invention are described in the dependent claims.
[0013] According to the invention, a method for determining the overall light distribution of a pixel headlight is provided by means of a computing unit, wherein the pixel headlight comprises a plurality of individual light sources and wherein the luminous intensity of the individual light source can be influenced by a current applied to the individual light source, comprising the steps: a) Providing a texture on the computing unit comprising a two-dimensional array of coordinates, b) Providing a maximum current single light distribution for each individual light source on the computing unit, wherein the maximum current single light distribution represents at least the luminous intensity of the individual light source per coordinate at maximum current of the individual light source, c) Determining a maximum current data structure taking into account all maximum current individual light distributions and the texture, wherein the maximum current data structure comprises a target coordinate list with target coordinate entries, a luminous intensity list per target coordinate entry with at least one luminous intensity entry, and a single light source identification list per target coordinate entry with at least one identification entry, and wherein the maximum current data structure at least represents which single light sources influence the luminous intensity per coordinate of the texture at maximum current and to what extent. d) Providing a relative current value for each individual light source on the computing unit, wherein the relative current value represents the current of the individual light source, and e) Determining the overall light distribution taking into account the maximum current data structure and the relative current values of the individual light sources.
[0014] The core of the invention is that the method converts the provided maximum current distribution of individual light sources into a maximum current data structure, which allows for a particularly effective determination of the overall light distribution. In other words, the maximum current distributions of individual light sources are first preprocessed. Only after this preprocessing has been carried out and the maximum current data structure is available, is the overall light distribution determined taking into account the relative current values of the individual light sources.
[0015] In principle, the overall light distribution of the pixel headlight can be described as a linear combination of all individual light distributions of the individual light sources, where the matrices M are defined below. ithe maximum current individual light distributions are designated and c i The relative current value of each individual light source is given by M. The overall light distribution M G This results, if it is assumed for simplification that all individual light distributions and the total light distribution are over the same solid angle range, as follows: MG=∑ici⋅Mi
[0016] Pixel headlights have a very high number of individual light sources, so calculating the sum, as practiced in the prior art, requires a significant amount of computing time. Furthermore, the individual light sources of a pixel headlight typically illuminate only locally limited areas, so the matrices M i These are sparse matrices, meaning many of their entries are zeros. Therefore, solving the above sum using standard methods consumes a lot of computational time adding zeros, which is inefficient.
[0017] The inventive method, in a first step, provides the texture on the processing unit into which the overall light distribution to be determined is written. The texture comprises the two-dimensional array, with the row and column numbers of the two-dimensional array defining the coordinates. The texture, as well as the number of coordinates—that is, the number of discretization points in both dimensions—influences the spatial region and resolution in which the overall light distribution is determined. With many coordinates in a spatial region, the overall light distribution is determined with very fine detail, i.e., with high resolution. Preferably, the texture is provided in a spherical coordinate system with azimuth and polar angles. Preferably, the coordinates are solid angles.
[0018] In a further step of the process, the maximum current distribution for each individual light source is provided on the processing unit. This maximum current distribution represents at least the luminous intensity of the individual light source per coordinate at maximum current. Preferably, the maximum current distribution represents the luminous intensity of the individual light source within a defined solid angle range at maximum current.
[0019] In principle, it is possible for the texture and the maximum current distribution of individual light sources to be provided to the processing unit independently of each other. Alternatively, it is possible for the texture and the coordinates to be generated from the provided maximum current distributions of individual light sources. A further preferred approach is for the overall light distribution to be determined with the same resolution as the resolution of the provided maximum current distributions of individual light sources.
[0020] In a further step, the maximum current data structure is determined, taking into account all maximum current individual light distributions and the coordinate list. The maximum current data structure, hereinafter also referred to as the data structure, comprises the target coordinate list with its target coordinate entries, a luminous intensity list for each target coordinate entry, and a single light source identification list for each target coordinate entry. It is therefore a multidimensional data structure with nested lists. The data structure contains information about which individual light sources, at maximum current, influence the luminous intensity per coordinate of the texture and to what extent. In other words, the data structure represents which and how many individual light sources shine onto a given coordinate of the texture and with what intensity.
[0021] In a further step of the process, the relative current values for each individual light source are provided on the processing unit. Preferably, the relative current value is normalized to the range 0 to 1. The relative current value represents the current applied to the individual light source. In other words, the relative current value represents the global luminous intensity of the individual light source. For example, if the relative current value is 1 or 100%, the individual light source has a light distribution that corresponds to the maximum current light distribution. If the current value is, for example, 0.5 or 50%, the individual light source has a light distribution that corresponds to half of the maximum current light distribution in each direction. In other words, the current value globally scales the individual light distribution.
[0022] The maximum current data structure, with its target coordinate list, luminous intensity lists, and individual light source identification lists, is tailored to the architecture of the processing unit, which, in a further step of the process, determines the overall light distribution taking into account the relative current values. This makes determining the overall light distribution very fast. Instead of using the previously common iterative method of determining the overall light distribution, where a calculation run must be repeated as many times as there are individual maximum current light distributions, the data structure allows the overall light distribution to be determined in a single run. In other words, the preprocessing of the individual maximum current light distributions enables the process step in which the overall light distribution is determined to be particularly fast.Since, in a simulation where the overall light distribution of a pixel headlight is determined several times in succession with different current values, the preprocessing of the maximum current individual light distribution only needs to be carried out once at the beginning, and afterwards only the relative current values are updated according to the simulation specifications, the method is therefore particularly suitable for real-time capable simulations in which the overall light distribution of the pixel headlight is determined at a high clock frequency.
[0023] The maximum current data structure also has the advantage that its size does not necessarily increase with the number of individual light sources of the pixel spotlight or with the number of maximum current individual light distributions. Instead, the size of the data structure is determined, among other things, by the number of overlapping regions of the maximum current individual light distributions. Overlapping regions are preferably understood to be the coordinate range of the texture that is illuminated by more than one individual light source. The size of the overlapping regions generally does not increase with the increasing number of individual light sources. Thus, the method according to the invention is very fast when determining the overall light distribution of pixel spotlights that have a very high number of individual light sources, whose maximum current individual light distributions are each sharply delineated from one another and each illuminate only a segmented coordinate range of the texture.
[0024] According to a preferred embodiment of the invention, step c) comprises the following steps: c1) Creating the target coordinates list without target coordinate entries, c2) Successively processing all maximum current individual light distributions, taking into account all coordinates of the texture, comprising the following steps: c2.1) Determining the luminous intensity of the maximum current distribution of individual lights on a coordinate of the texture, c2.2) Check if the target coordinates list has a target coordinates entry for the texture coordinate, c2.3) In the event that the target coordinate list does not contain a target coordinate entry for the coordinate, create the target coordinate entry by adding the coordinate as a target coordinate to the target coordinate list and create the luminance list and the individual light source identification list for the corresponding target coordinate entry, wherein the luminance list includes the luminance entry that represents the luminance of the individual light source at the texture coordinate and the individual light source identification list includes the identification entry that identifies the individual light source. c2.4) In the event that the target coordinates list has a target coordinates entry at the coordinate, add another luminous intensity entry to the luminous intensity list and another identification entry to the single light source identification list.
[0025] The method therefore preferably provides for the creation of the maximum current data structure via an iterative process. Specifically, it envisages two nested iteration processes: the higher-level iteration process iterates over all maximum current individual light distributions, while the lower-level iteration process iterates over all texture coordinates. In other words, a reordering takes place, shifting the order of the luminous intensity information in the maximum current individual light distribution to the order of the information in the maximum current data structure with its nested lists.
[0026] To further reduce the computation time for determining the overall light distribution, a preferred embodiment of the invention provides that in step c) a maximum current data structure is provided which, in the luminous intensity list, includes only luminous intensity entries that exceed a preselected threshold luminous intensity, and the corresponding individual light source identification lists include only identification entries of individual light sources whose luminous intensity entries exceed the preselected threshold luminous intensity. In other words, luminous intensities of the maximum current individual light distribution at coordinates in the coordinate list that fall below the preselected threshold luminous intensity are discarded. Thus, low luminous intensities of the maximum current individual light distribution, which are too dim to have any influence on the overall light distribution, are not even considered.This reduces the size of the maximum current data structure and speeds up the computing time.
[0027] The previously described iterative process for creating the maximum current data structure allows for the simple provision of the preferred maximum current data structure, in which the luminous intensity list of the maximum current data structure comprises only luminous intensity entries that exceed the preselected threshold luminous intensity, and the corresponding individual light source identification lists comprise only identification entries of individual light sources whose luminous intensity entries exceed the preselected threshold luminous intensity. According to a preferred embodiment of the invention, the following additional step is provided after step c2.1) of the method: c2.1) Determine whether the luminous intensity of the maximum current single light distribution on the coordinate exceeds the preselected threshold luminous intensity, and the procedure only performs steps c2.2) to c2.4) for this coordinate if the threshold luminous intensity is exceeded.
[0028] In connection with accelerating the computation time, a further preferred embodiment of the invention provides that the method additionally includes step b2) determining a compressed maximum current single light distribution from the maximum current single light distribution, wherein the compressed maximum current single light distribution represents at least the luminous intensity of the single light source in that coordinate range which is irradiated by the single light source at maximum current such that the luminous intensity exceeds a further preselected threshold luminous intensity or a threshold luminous intensity based on a preselected percentage threshold, and wherein in step c) the maximum current data structure is determined taking into account all compressed maximum current single light distributions.The preferred method therefore aims to save computation time by utilizing special properties of the maximum current distribution of individual light sources. As already mentioned, the maximum current distribution of individual light sources represents the luminous intensity of a single light source per coordinate. Due to the locally limited emission of a single light source, each individual light source only radiates into a small coordinate range, so that many coordinates of the texture exhibit no or only very low luminous intensity due to the individual light source.
[0029] Preferably, the method provides that this effectively illuminated coordinate range, i.e., the area of the texture illuminated by the single light source at maximum current such that the luminous intensity exceeds the further preselected threshold luminous intensity, is determined by means of the edge detection algorithm, and only this effectively illuminated coordinate range of the maximum current individual light distributions, i.e., the compressed maximum current individual light distributions, is used further. Preferably, the edge detection algorithm includes performing a low-pass filter, and more preferably, a low-pass filter using a Gaussian filter. This reduces the amount of data, so that the subsequent step c) takes less time.
[0030] As an alternative to the edge detection algorithm, a preferred embodiment of the invention provides that determining the compressed maximum current single light distribution includes determining an effectively illuminated rectangular coordinate area. More preferably, the effectively illuminated rectangular coordinate area is determined by first reducing the stray light component in the maximum current single light distribution to produce a stray light-reduced maximum current single light distribution. This is preferably achieved by low-pass filtering.In a second step, the maximum illuminance in the stray-light-reduced maximum current distribution is determined, taking into account a maximum illuminance and a coordinate. In a third step, the threshold illuminance is determined, considering the maximum illuminance and the preselected percentage threshold. In a fourth step, the effectively illuminated rectangular coordinate range is determined, taking into account the stray-light-reduced maximum current distribution, the maximum illuminance, and the threshold illuminance. Preferably, in the fourth step, the effectively illuminated rectangular coordinate range is determined by enlarging a rectangle, which initially comprises only the maximum illuminance and has a coordinate, until the rectangle includes all coordinates with illuminance values exceeding the threshold illuminance.It is further preferred that the effectively illuminated rectangular coordinate area corresponds to the compressed maximum current single light distribution. In other words, data points of the maximum current single light distribution that lie outside the effectively illuminated rectangular coordinate area are not further considered for the compressed maximum current single light distribution.
[0031] As already mentioned, the data structure, comprising the target coordinate list, the luminous intensity lists, and the individual light source identification lists, has a structure tailored to the architecture of the computing unit. In this context, according to a preferred embodiment of the invention, the method according to step d) additionally comprises the following steps: d1) Generating a target coordinate buffer from the target coordinate list, a luminance buffer from all luminance lists, and a single light source identification buffer from all single light source identification lists of the data structure, wherein the target coordinate buffer contains a number of TK elements corresponding to the number of target coordinate entries in the target coordinate list, and the target coordinate buffer includes a start point and a length specification for each TK element. d2) Storing the target coordinate buffer, the luminance buffer and the individual light source identification buffer on the processing unit.
[0032] The method preferably provides, in a further step, that three buffers are created from the data structure and stored on the processing unit. A buffer is preferably understood to be a memory for the temporary storage of data, which has a form that is quickly readable by the processing unit. Particularly preferably, a buffer is understood to be a contiguous memory area or block of a predefined data type, wherein the buffer contains a configurable number of elements and any element can be accessed via an index. Furthermore preferably, the target coordinate buffer, the luminance buffer, and the individual light source identification buffer are created and / or stored on a graphics card of the processing unit.
[0033] The target coordinate buffer, the luminance buffer, and the individual light source identification buffer contain the same data as the lists of the data structure; however, the buffers are structured such that the data is stored in memory in a contiguous form. Preferably, the target coordinate elements of the target coordinate buffer correspond to the target coordinate entries of the target coordinate list, with the target coordinate buffer including a buffer offset and a buffer count for each target coordinate element. The buffer offset and buffer count each point to a location in the luminance buffer and the individual light source identification buffer, respectively, where the luminance and individual light source identification entries stored for that target coordinate are located. Preferably, the buffer offset specifies an index in the respective buffer, and the buffer count specifies the length of the range.
[0034] According to a further preferred embodiment of the invention, step e), namely the determination of the overall light distribution taking into account the maximum current data structure and the relative current values of the individual light sources, is performed using a graphics card of the computing unit. This has the advantage that the determination is particularly fast due to the high degree of parallelizability. Preferably, the target coordinate buffer, the luminous intensity buffer, and the individual light source identification buffer are adapted in their structure to the calculation using the graphics card.
[0035] In this context, according to a preferred embodiment of the invention, step e) comprises the following steps: e1) Generating the target coordinate buffer from the target coordinate list, the luminous intensity buffer from all luminous intensity lists, and the single light source identification buffer from all single light source identification lists of the maximum current data structure, wherein the target coordinate buffer contains the number of target coordinate elements corresponding to the number of target coordinate entries in the target coordinate list, and the target coordinate buffer includes a start point and a length specification for each target coordinate element, or e1') Loading the stored target coordinate buffer, the stored luminous intensity buffer, and the stored single light source identification buffer onto the processing unit, and e2) Transmitting the target coordinate buffer, the luminance buffer and the individual light source identification buffer to a graphics card of the computing unit, e3) Generating a current value buffer from the provided relative current values for each individual light source, e4) Transmitting the current value buffer to the graphics card of the computing unit, and e5) Determining the overall light distribution using the graphics card of the computing unit, taking into account the target coordinate buffer, the luminous intensity buffer, the individual light source identification buffer and the current value buffer.
[0036] According to a preferred embodiment of the invention, in step e5) a compute shader with shader units is used, wherein each shader unit processes a target coordinate element in isolation and / or wherein execution threads of the compute shader run in parallel on several shader units of the graphics card. A compute shader is understood here to be a programmable processing unit of the graphics card. Preferably, as many execution threads of the compute shader are executed as there are target coordinate elements in the target coordinate buffer. Due to the large number of shader units available on modern graphics processing units of graphics cards, it is preferably provided that many of the execution threads run in parallel. The execution threads are preferably distinguished from one another by an ID. Preferably, the ID ensures that each execution thread exclusively processes one of the target coordinates. In this way, a high degree of parallelization is achieved.
[0037] In particular, the ID of the execution string is used as an index for reading the target coordinate buffer. This provides the coordinate of the target texture at which the execution string determines the luminance. Additionally, the starting point and length specified in the target coordinate buffer indicate at which indices the luminance buffer and the individual light source identification buffer are read.
[0038] According to a preferred further development, the procedure for each ZK element in the target coordinate buffer comprises the step of scaling the luminous intensity entry in the luminous intensity buffer with the current entry in the current buffer, where the starting point and the length specification in the target coordinate buffer indicate at which indices in the luminous intensity buffer and the current buffer the luminous intensity entry and the current entry are located, and subsequent summation. After all execution strands have completed their execution, the luminous intensity for all target coordinates and thus the overall light distribution is determined.
[0039] Unlike prior art methods, where individual light distributions are added to the texture through multiple iterations to determine the overall light distribution, this method has the advantage that the overall light distribution can be determined in a single compute shader pass. Organizing the execution strands according to target coordinates creates implicit execution safety. Write conflicts between execution strands are eliminated because each strand has exclusive write access to a unique target coordinate. All other data is accessed only for reading. This method also offers the advantage of highly efficient GPU utilization, as the data for each execution strand is stored contiguously in the buffer, thus accelerating data read operations.Furthermore, the implicit execution safety eliminates the need for explicitly implementing conflict-resolving structures such as atomic operations or synchronization within execution string groups. Because conflict-resolving structures are not required, the overall light distribution can be determined particularly quickly.
[0040] According to a preferred embodiment of the method, the maximum current distribution of individual light sources provided in step b) represents, in addition to the luminous intensity of the individual light source per coordinate, color information for each individual light source per coordinate, and the luminous intensity list of the maximum current data structure includes a combined luminous intensity-color information entry. Preferably, the luminous intensity-color information entry comprises XYZ coordinates in the CIE color space. Here, Y corresponds to the luminous intensity, and X and Z specify the color information. The method preferably includes the step of converting the XYZ coordinates of the luminous intensity-color information entry in the CIE color space into RGB coordinates of the RGB color space. Representing the luminous intensity-color information entry in the RGB color space has the advantage that it allows for simple reproduction by common technical output devices.
[0041] Furthermore, the invention relates to a method for simulating an overall light distribution of a pixel headlight in a night drive of a virtual motor vehicle, comprising the steps of Performing steps a) to c) of the procedure for determining the overall light distribution of a pixel headlight using a computing unit only once and Repeated successive execution of steps d) and e) of the method for determining the overall light distribution of a pixel headlight using a computing unit or Performing steps a) to c) of the procedure for determining the overall light distribution of a pixel headlight using a computing unit once, Performing the following steps e1) or e1') and e2) of the procedure for determining an overall light distribution of a pixel headlight once and Repeated successive execution of steps e3) to e5) of the procedure for determining an overall light distribution of a pixel headlight.
[0042] Simulating the overall light distribution of the pixel headlight during night driving in the virtual vehicle preferably comprises determining successive overall light distributions of the pixel headlight at a frequency corresponding to the control frequency of a real control unit of a pixel headlight. Typically, the control frequencies of real control units of pixel headlights are in the range of 50 Hz. Preferably, the frequency at which the successive overall light distributions of the pixel headlight are determined is between 30 and 60 Hz, and particularly preferably 50 Hz. It is preferably provided that the virtual vehicle includes at least the pixel headlight for which the overall light distribution is determined.
[0043] According to a further preferred embodiment of the method, the pixel headlight comprises more than 200 individual light sources. Due to the rapid determination of the overall light distribution, the method can also be used to perform real-time simulations of pixel headlights with a large number of individual light sources.
[0044] The invention will now be described in more detail with reference to the drawings and a preferred embodiment of the invention.
[0045] The drawings show Fig. 1 a flowchart illustrating the sequence of a method for determining the overall light distribution of a pixel headlight using a computing unit, according to a preferred embodiment of the invention, Fig. 2 schematically a maximum current data structure used in the method for determining an overall light distribution of a pixel headlight, according to a preferred embodiment of the invention, Fig. 3 another schematic representation of the maximum current data structure from Fig. 2, and Fig. 4 schematically a target coordinate buffer, a luminous intensity buffer and a single light source identification buffer used in the method for determining an overall light distribution of a pixel spotlight, according to a preferred embodiment of the invention.
[0046] Out of Fig. Figure 1 schematically shows a flowchart illustrating the process of a method for determining the overall light distribution 10 of a pixel headlight using a computing unit 20 according to a preferred embodiment of the invention.
[0047] The following refers to the Fig. Sections 1 to 4 explain the steps of the procedure. The procedure comprises several steps, the first of which involves providing S100 measurement data 12 of a pixel spotlight comprising several individual light sources. The luminous intensity of an individual light source of the pixel spotlight can be changed by applying current to that individual light source. The measurement data 12 comprise a two-dimensional coordinate list with coordinates 14, hereinafter referred to as texture 16, and in Fig. 3 shown, as well as a maximum current individual light distribution 18 for each individual light source of the pixel spotlight, which is also shown schematically in Fig. Figure 3 shows the maximum current distribution of individual light sources 18, which represents at least the luminous intensity of the individual light source per coordinate 14 at maximum current of the individual light source. Here, the maximum current distribution of individual light sources 18 is provided in polar coordinates, which indicate the luminous intensity of the individual light source per solid angle.
[0048] In a further step S200 of the procedure, the measurement data 12 are read into the computing unit 20 and thus the initially empty texture 16 and the maximum current individual light distributions 18 are provided to the computing unit 20.
[0049] In a further step, S300, the maximum current individual light distributions 18 are first preprocessed and converted into compressed maximum current individual light distributions. For this purpose, the size of the solid angle area illuminated by the individual light source is determined. This solid angle area is stored as angular intervals of the polar and azimuth angles for each maximum current individual light distribution. This reduces the amount of data, thus shortening the subsequent steps. The solid angle area is determined either by an edge detection algorithm or by determining an effectively illuminated rectangular coordinate area.
[0050] The goal of the following steps S400 to S600 is to provide a maximum current data structure 22. The maximum current data structure 22 is schematically represented in Fig. 2 and Fig. Figure 3 shows and comprises a target coordinate list 24 with target coordinate entries ZK, a luminous intensity list 26 per target coordinate entry ZK with at least one luminous intensity entry, and an individual light source identification list 28 per target coordinate entry ZK with at least one identification entry. The maximum current data structure 22 represents which individual light sources, at maximum current, influence the luminous intensity per coordinate 14 of the texture 16, and to what extent. Fig. 2 are shown for three target coordinate entries ZK of the target coordinate list 24, the luminous intensity list 26 and the individual light source identification list 28. Fig. 3 represents texture 16, where for a coordinate 14, i.e. the target coordinate, which corresponds to the target coordinate entry ZK1 in Fig. 2 corresponds to the schematic representation of the maximum current distribution of individual light sources 18 and the composition of this target coordinate is shown.
[0051] To create the maximum current data structure 22, the procedure performs steps S400 to S600. In step S400, an empty target coordinate list 24 is provided, which is then successively filled with target coordinate entries ZK, and the corresponding luminous intensity lists 26 and individual light source identification lists 28 are created. This involves a nested iteration process, whereby a higher-level iteration process iterates over all maximum current individual light distributions 18, and a lower-level iteration process iterates over all coordinates 14 of the texture 16.
[0052] For a maximum current single light distribution 18, the solid angles are first converted into the corresponding coordinates 14 of the texture 16. In this case, both the coordinates 16 of the texture 14 and the maximum current single light distribution 18 are given in spherical coordinates. In a further step S500, it is determined whether the luminous intensity of the maximum current single light distribution 18 at coordinate 14 exceeds a preselected threshold luminous intensity.
[0053] If the luminous intensity is less than the preselected threshold luminous intensity, this coordinate 14 is discarded as shown schematically in step S550 and is not taken into account in the maximum current single light distribution 22.
[0054] If the luminous intensity is greater than the preselected threshold luminous intensity, it is checked whether the target coordinate list 24 has a target coordinate entry ZK at coordinate 14 of texture 16.
[0055] In the event that the target coordinate list 24 does not have a target coordinate entry ZK at coordinate 16, the target coordinate entry ZK is created by adding coordinate 14 as a target coordinate to the target coordinate list 24, and the luminous intensity list 26 and the individual light source identification list 28 are created for the corresponding target coordinate entry ZK.
[0056] In the event that the target coordinate list 24 has a target coordinate entry ZK at coordinate 14, another luminous intensity entry is added to the luminous intensity list 26 and another identification entry is added to the single light source identification list 28.
[0057] After the nested iteration process is complete, the maximum current data structure 22 is determined. In a further step of the procedure, three compute buffers 30, 32, 34 are created from the maximum current data structure 22.
[0058] Specifically, a target coordinate buffer 30 is generated from the target coordinate list 24, a luminance buffer 32 from all luminance lists 26, and a single light source identification buffer 34 from all single light source identification lists 28. The compute buffers 30, 32, and 34 are schematically represented in Fig. Figure 4 shows the target coordinate buffer 30 containing a number of ZK elements 36 corresponding to the number of target coordinate entries ZK in the target coordinate list 24, and including for each ZK element a starting point 38, called buffer offset, and a length specification 39, the so-called buffer count. Fig. Figure 4 shows, using three ZK elements, namely ZK1, ZK2, and ZK3, how the data is stored in the respective compute buffers 30, 32, and 34. ZK element ZK2 corresponds to the target coordinate in Fig.3, since it is influenced by three maximum current individual light distributions 18. ZK1 consists of two maximum current individual light distributions 18, ZK2 of three, and ZK3 of one maximum current individual light distribution 18.
[0059] In the preferred embodiment presented here, the method provides that the created compute buffers 30, 32, 34 are stored on the computing unit 20.
[0060] In a further step S700 of the procedure, relative current values 42 are provided for each individual light source on the computing unit 20, where the relative current value 42 represents the current of the individual light source.
[0061] To determine the overall light distribution 10, the compute buffers 30, 32, and 34 are transferred to a fast memory of a graphics processing unit (GPU) or graphics card 40 in a further step of the process. Furthermore, a current value buffer 44 is generated from the relative current values 42 provided on the processing unit 20 and is also transmitted to the graphics card 40. In this embodiment, a compute shader is used to determine the overall light distribution using the graphics card 40, taking into account the target coordinate buffer 30, the luminance buffer 32, the individual light source identification buffer 34, and the current value buffer 44.
[0062] The following describes the logical sequence of the compute shader, which is necessary to determine the overall light distribution. In a simulation where the overall light distribution is determined sequentially in a series of frames, this logical sequence is executed in each frame. The compute shader's program code is executed as many times as there are ZK elements (36) in the target coordinate buffer (30). Due to the several thousand cores available on modern GPUs, many of the execution threads run in parallel. The threads are distinguished by a thread ID, which allows them to be numbered sequentially. The thread ID ensures that each thread processes a single ZK element and thus determines the light intensity for a specific target coordinate. This results in a high degree of parallelization.
[0063] In detail, the thread ID is used as an index for reading the target coordinate buffer 30, hereinafter referred to as the TK buffer. This encodes which coordinate 14 of texture 16 the currently considered thread must use to determine the luminance. Additionally, the start point 38 (buffer offset) and the length value 39 (buffer count) indicate at which indices the luminance buffer 32, hereinafter referred to as the luminance buffer, and the individual light source identification buffer 34, hereinafter referred to as the ID buffer, are read. To determine the overall light distribution, the respective values of the luminance buffer 32 are scaled by the corresponding values, hereinafter referred to as current, of the current value buffer 44, hereinafter referred to as the current value buffer, and then summed.The entries in the single-light-source identification buffer 34 represent the indices at which the current value buffer 44 must be read. The following operations are performed for the respective thread ID passed to the kernel or thread: Initial: ID = Thread ID (Consecutive integer starting at 0 to identify each thread) Luminous intensity sum = 0 (auxiliary variable) Luminous intensity value = 0 (auxiliary variable) Current supply = 0 (auxiliary variable) ELV_ID = 0 (auxiliary variable) ZK = ZK-Buffer[ID].xy (Data type uint4 contains four components: x, y, z, w) StartOffset = ZK-Buffer[ID].z NumELV = ZK-Buffer[ID].w EndOffset = StartOffset + NumELV Ribbon: Loop condition: For i = StartOffset to EndOffset, loop operations: • ELV_ID = ID-Buffer[i] • Luminous intensity value = Luminous intensity buffer[i] • Current supply = current value buffer[ELV_ID] • Total luminous intensity = Total luminous intensity + Current * Luminous intensity value at loop end Return: Texture[ZK] = Light intensity sum
[0064] Once all threads have completed their execution, the luminous intensity of the overall light distribution is determined. The resulting texture 16 can now be used to render the headlight beam of the pixel headlight in a scene. Reference symbol list 10 Overall light distribution 12 measurement data 14 Coordinates 16 textures 18 Maximum current individual light distribution 20 computing units 22 Maximum current data structure 24 Target Coordinates List ZK target coordinates entry 26 Light intensity list 28 Individual Light Source Identification List 30 target coordinate buffers 32 light intensity buffers 34 individual light source identification buffers 36 ZK element 38 Starting point 39 Length specification 40 graphics card 42 relative current value 44 Current value buffer
Claims
[1] Method for determining an overall light distribution (10) of a pixel spotlight using a computing unit (20), wherein the pixel spotlight comprises a plurality of individual light sources and wherein the luminous intensity of the individual light source can be influenced by an energizing of the individual light source, comprising the steps: a) Providing a texture (16) on the computing unit (20) comprising a two-dimensional array with coordinates (14), b) Providing a maximum current single light distribution (18) for each individual light source on the computing unit (20), wherein the maximum current single light distribution (18) represents at least the luminous intensity of the individual light source per coordinate (14) at maximum current of the individual light source, c) Determining a maximum current data structure (22) taking into account all maximum current individual light distributions (18) and the texture (16), wherein the maximum current data structure (22) comprises a target coordinate list (24) with target coordinate entries (DC), a luminous intensity list (26) per target coordinate entry (DC) with at least one luminous intensity entry, and a single light source identification list (28) per target coordinate entry (DC) with at least one identification entry, and wherein the maximum current data structure (22) at least represents which single light sources influence the luminous intensity per coordinate (14) of the texture (16) at maximum current and to what extent. d) Providing a relative current value (42) for each individual light source on the computing unit, wherein the relative current value (42) represents the current of the individual light source, and e) Determining the overall light distribution (10) taking into account the maximum current data structure (22) and the relative current values (42) of the individual light sources. [2] The method of claim 1, wherein step c) comprises the following steps: c1) Creating the target coordinate list (24) without target coordinate entries (ZK), c2) Successive processing of all maximum current individual light distributions (18) taking into account all coordinates (14) of the texture (16) comprising the following steps: c2.1) Determining the luminous intensity of the maximum current single light distribution (18) on a coordinate (14) of the texture (16), c2.2) Check if the target coordinate list (24) has a target coordinate entry (ZK) at the coordinate (14) of the texture (16), c2.3) In the event that the target coordinate list (24) does not contain a target coordinate entry (TC) at coordinate (14), create the target coordinate entry (TC) by adding coordinate (14) as a target coordinate to the target coordinate list (24) and create the luminance list (26) and the individual light source identification list (28) for the corresponding target coordinate entry (TC), wherein the luminance list (26) includes the luminance entry representing the luminance of the individual light source at coordinate (14) of the texture (16) and the individual light source identification list (28) includes the identification entry identifying the individual light source. c2.4) In the case that the target coordinate list (24) has a target coordinate entry (TC) at coordinate (14), add another luminous intensity entry to the luminous intensity list (26) and another identification entry to the single light source identification list (28). [3] Method according to claim 1 or 2, wherein in step c) a maximum current data structure (22) is provided which in the luminous intensity list (26) includes only luminous intensity entries which exceed a preselected threshold luminous intensity and the corresponding individual light source identification lists (28) include only identification entries of individual light sources whose luminous intensity entries exceed the preselected threshold luminous intensity. [4] Method according to claim 2, wherein the method according to step c2.1) additionally comprises the following step: c2.1') Determine whether the luminous intensity of the maximum current single light distribution (18) on the coordinate (14) exceeds the preselected threshold luminous intensity, and wherein the procedure only performs steps c2.2) to c2.4) for this coordinate (14) if the threshold luminous intensity is exceeded. [5] Method according to one of the preceding claims, wherein the method additionally comprises step b2) determining a compressed maximum current single light distribution from the maximum current single light distribution (18), wherein the compressed maximum current single light distribution represents at least the luminous intensity of the single light source in that coordinate range which is irradiated by the single light source at maximum current such that the luminous intensity exceeds a further preselected threshold luminous intensity or a threshold luminous intensity based on a preselected percentage threshold, and wherein in step c) the maximum current data structure (22) is determined taking into account all compressed maximum current single light distributions. [6] Method according to claim 5, wherein the compressed maximum current single light distribution is determined by means of an edge detection algorithm or the determination of the compressed maximum current single light distribution comprises determining an effectively illuminated rectangular coordinate area by the following steps: - Providing a stray light-reduced maximum current single light distribution by reducing a stray light component in the maximum current single light distribution (18), - Determining a maximum illuminance and having a coordinate representing the maximum illuminance in the scattered light-reduced maximum current single light distribution, - Determining the threshold illuminance taking into account the maximum illuminance and the preselected percentage threshold, - Determining the effectively illuminated rectangular coordinate area taking into account the scattered light-reduced maximum current distribution of individual light, the coordinate having the maximum illuminance and the threshold illuminance. [7] Method according to any of the preceding claims, wherein the method according to step d) additionally comprises the following steps: d1) Generating a target coordinate buffer (30) from the target coordinate list (24), a luminous intensity buffer (32) from all luminous intensity lists (26) and a single light source identification buffer (34) from all single light source identification lists (28) of the maximum current data structure (22), wherein the target coordinate buffer (30) contains a number of target coordinate elements (36) corresponding to the number of target coordinate entries (TC) of the target coordinate list (24) and the target coordinate buffer (30) includes a start point (38) and a length specification (39) for each TC element (36). d2) Storing the target coordinate buffer (30), the luminance buffer (32) and the single light source identification buffer (34) on the computing unit. [8] Method according to any of the preceding claims, wherein step e) comprises the following steps: e1) Generating a target coordinate buffer (30) from the target coordinate list (24), a luminous intensity buffer (32) from all luminous intensity lists (26), and a single light source identification buffer (34) from all single light source identification lists (28) of the maximum current data structure (22), wherein the target coordinate buffer (30) contains a number of target coordinate elements (36) corresponding to the number of target coordinate entries (TC) of the target coordinate list (24), and the target coordinate buffer (30) includes a start point (38) and a length specification (39) for each TC element (36). or e1') Loading the stored target coordinate buffer (30), the stored luminous intensity buffer (32) and the stored single light source identification buffer (34) onto the processing unit (20), and e2) Transmitting the target coordinate buffer (30), the luminous intensity buffer (32) and the individual light source identification buffer (34) to a graphics card (40) of the computing unit (20), e3) Generating a current value buffer (44) from the provided relative current values (42), e4) Transmitting the current value buffer (44) to the graphics card (40) of the computing unit (20), and e5) Determining the overall light distribution (10) using the graphics card (40) of the computing unit (20) taking into account the target coordinate buffer (30), the luminous intensity buffer (32), the individual light source identification buffer (34) and the current value buffer (44). [9] Method according to claim 8, wherein in step e5) a compute shader with shader units is used, wherein each shader unit processes a ZK element (36) in isolation and / or wherein execution strands of the compute shader run in parallel on several shader units of the graphics card (40). [10] Method according to one of the preceding claims, wherein the maximum current single light distribution (18) provided in step b) represents, in addition to the luminous intensity of the single light source per coordinate (14), a color information of the single light source per coordinate (14) and the luminous intensity list (26) of the maximum current data structure (22) comprises a combined luminous intensity-color information entry. [11] Method for simulating an overall light distribution of a pixel headlight in a night drive of a virtual motor vehicle comprising the steps, Performing steps a) to c) of the method according to claim 1 once and repeatedly performing steps d) and e) of the method according to claim 1 or Performing steps a) to c) of the method according to claim 1 once, performing steps e1) or e1') and e2) of the method according to claim 8 once and Repeated successive execution of steps e3) to e5) of the method according to claim 8. [12] Method according to claim 11, wherein the pixel headlight comprises more than 200 individual light sources.