Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR DETERMINING A TOTAL LIGHT DISTRIBUTION OF A PIXEL SPOTLIGHT
Document Type and Number:
WIPO Patent Application WO/2021/214115
Kind Code:
A1
Abstract:
The invention relates to a method for determining a total light distribution (10) of a pixel spotlight by means of a computing unit (20), wherein the pixel spotlight comprises a plurality of individual light sources and wherein a 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 having coordinates (14); b) providing a maximum energization individual light distribution (18) for each individual light source on the computing unit (20), wherein the maximum energization individual light distribution (18) represents at least the luminous intensity of the individual light source per coordinate (14) at maximum energization of the individual light source; c) determining a maximum energization data structure (22), taking into consideration all maximum energization individual light distributions (18) and the texture (16), wherein the maximum energization data structure (22) comprises a target coordinates list (24) having target coordinates entries (ZK), a luminous intensity list (26) per target coordinates entry (ZK) having at least one luminous intensity entry, and one individual light source identification list (28) per target coordinates entry (ZK) having at least one identification entry, and wherein the maximum energization data structure (22) at least represents how strongly which individual light sources at maximum energization influence the luminous intensity per coordinate (14) of the texture (16); d) providing a relative energization value (42) for each individual light source on the computing unit, wherein the relative energization value (42) represents the energization of the individual light source; and e) determining the total light distribution (10), taking into consideration the maximum energization data structure (22) and the relative energization values (42) of the individual light sources.

Inventors:
RÜDDENKLAU NICO (DE)
WEISE MARCEL (DE)
Application Number:
PCT/EP2021/060336
Publication Date:
October 28, 2021
Filing Date:
April 21, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DSPACE GMBH (DE)
International Classes:
G06F30/15; B60Q1/08; B60Q1/14; F21V14/00; G06F30/20
Other References:
RÜDDENKLAU NICO ET AL: "Real-Time Lighting of High-Definition Headlamps for Night Driving Simulation", INTERNATIONAL JOURNAL ON ADVANCES IN SYSTEMS AND MEASUREMENTS, vol. 12, 1 January 2019 (2019-01-01), pages 2019, XP055823658, Retrieved from the Internet
RÜDDENKLAU NICO ET AL: "Shader-Based Realtime Simulation of High-Definition Automotive Headlamps", PROCEEDINGS OF THE 10TH INTERNATIONAL CONFERENCE ON ADVANCES IN SYSTEM SIMULATION, 18 October 2018 (2018-10-18), XP055823662, Retrieved from the Internet
WALDNER MIRKO ET AL: "Advances in Visual Computing", 15TH INTERNATIONAL SYMPOSIUM PROCEEDINGS ISVC, PART I, vol. 12510, 7 October 2020 (2020-10-07), pages 1 - 763, XP055823667, ISBN: 978-3-030-64558-8
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Ermitteln einer Gesamtlichtverteilung (10) eines Pixel-Scheinwerfers mittels einer Recheneinheit (20), wobei der Pixel-Scheinwerfer eine Vielzahl an Einzellicht quellen umfasst und wobei eine Lichtstärke der Einzellichtquelle über eine Bestromung der Einzellichtquelle beeinflussbar ist, umfassend die Schritte: a) Bereitstellen einer Textur (16) auf der Recheneinheit (20) umfassend ein zweidimensi onales Array mit Koordinaten (14), b) Bereitstellen einer Maximalbestromungs-Einzellichtverteilung (18) für jede Einzellicht quelle auf der Recheneinheit (20), wobei die Maximalbestromungs-Einzellichtverteilung (18) wenigstens die Lichtstärke der Einzellichtquelle pro Koordinate (14) bei maximaler Bestro mung der Einzellichtquelle darstellt, c) Ermitteln einer Maximalbestromungs-Datenstruktur (22) unter Berücksichtigung aller Maximalbestromungs-Einzellichtverteilungen (18) und der Textur (16), wobei die Maximal - bestromungs-Datenstruktur (22) eine Zielkoordinaten-Liste (24) mit Zielkoordinaten-Einträgen (ZK), eine Lichtstärke-Liste (26) pro Zielkoordinaten-Eintrag (ZK) mit wenigstens einem Lichtstärke-Eintrag und eine Einzellichtquellen-Identifizierungs-Liste (28) pro Zielkoordina ten-Eintrag (ZK) mit wenigstens einem Identifizierungs-Eintrag umfasst, und wobei die Maxi- malbestromungs-Datenstruktur (22) wenigstens darstellt, welche Einzellichtquellen bei maxi maler Bestromung wie stark die Lichtstärke pro Koordinate (14) der Textur (16) beeinflussen, d) Bereitstellen eines relativen Bestromungswertes (42) für jede Einzellichtquelle auf der Recheneinheit, wobei der relative Bestromungswert (42) die Bestromung der Einzellichtquelle darstellt, und e) Ermitteln der Gesamtlichtverteilung (10) unter Berücksichtigung der Maximalbestro- mungs-Datenstruktur (22) und der relativen Bestromungswerte (42) der Einzellichtquellen.

2. Verfahren nach Anspruch 1, wobei der Schritt c) die folgenden Schritte umfasst: cl) Erstellen der Zielkoordinaten-Liste (42) ohne Zielkoordinaten-Einträgen (ZK), c2) Sukzessives Abarbeiten aller Maximalbestromungs-Einzellichtverteilungen (18) unter Berücksichtigung aller Koordinaten (14) der Textur (16) umfassend folgende Schritte: c2.1) Ermitteln der Lichtstärke der Maximalbestromungs-Einzellichtverteilung (18) auf einer Koordinate (14) der Textur (16), c2.2) Überprüfen, ob die Zielkoordinaten-Liste (24) einen Zielkoordinaten-Eintrag (ZK) bei der Koordinate (14) der Textur (16) aufweist, c2.3) Im Falle, dass die Zielkoordinaten-Liste (24) keinen Zielkoordinaten-Eintrag (ZK) bei der Koordinate (14) aufweist, Erstellen des Zielkoordinaten-Eintrags (ZK) durch Hinzufügen der Koordinate (14) als Zielkoordinate zur Zielkoordinaten-Liste (24) und Anlegen der Licht stärke-Liste (26) und der Einzellichtquellen-Identifizierungs-Liste (28) für den entsprechenden Zielkoordinaten-Eintrag (ZK), wobei die Lichtstärke-Liste (26) den Lichtstärke-Eintrag um fasst, der die Lichtstärke der Einzellichtquelle auf der Koordinate (14) der Textur (16) darstellt und die Einzellichtquellen-Identifizierungs-Liste (28) den Identifizierungs-Eintrag umfasst, der die Einzellichtquelle identifiziert, c2.4) Im Falle, dass die Zielkoordinaten-Liste (24) einen Zielkoordinaten-Eintrag (ZK) bei der Koordinate (14) aufweist, Hinzufügen eines weiteren Lichtstärke-Eintrags zur Lichtstärke- Liste (26) und eines weiteren Identifizierungs-Eintrags zur Einzellichtquellen-Identifizierungs- Liste (28).

3. Verfahren nach Anspruch 1 oder 2, wobei in Schritt c) eine Maximalbestromungs-Da- tenstruktur (22) bereitgestellt wird, die in der Lichtstärke-Liste (26) ausschließlich Lichtstärke- Einträge umfasst, die eine vorgewählte Schwellwertlichtstärke überschreiten und die entspre chenden Einzellichtquellen-Identifizierungs-Listen (28) ausschließlich Identifizierung-Ein träge von Einzellichtquellen umfassen, deren Lichtstärke-Einträge die vorgewählte Schwell wertlichtstärke überschreiten.

4. Verfahren nach Anspruch 2, wobei das Verfahren nach Schritt c2.1) zusätzlich den fol genden Schritt umfasst: c2.1) Ermitteln, ob die Lichtstärke der Maximalbestromungs-Einzellichtverteilung (18) auf der Koordinate (14) die vorgewählte Schwellwertlichtstärke überschreitet, und wobei das Ver fahren nur bei Überschreiten der Schwellwertlichtstärke die Schritte c2.2) bis c2.4) für diese Koordinate (14) durchführt.

5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren zusätzlich den Schritt b2) Ermitteln einer komprimierten Maximalbestromungs-Einzellichtverteilung aus der Maximalbestromungs-Einzellichtverteilung (18) umfasst, wobei die komprimierte Maximalbestromungs-Einzellichtverteilung wenigstens die Licht stärke der Einzellichtquelle injenem Koordiantenbereich darstellt, der von der Einzellichtquelle bei maximaler Bestromung derart bestrahlt wird, dass die Lichtstärke eine weitere vorgewähl ten Schwellwertlichtstärke oder eine Schwellwertlichtstärke basierend auf einem vorgewählten prozentualen Schwellwert überschreitet, und wobei in Schritt c) die Maximalbestromungs-Da- tenstruktur (22) unter Berücksichtigung aller komprimierten Maximalbestromungs-Einzellicht- verteilungen ermittelt wird.

6. Verfahren nach Anspruch 5, wobei die komprimierte Maximalbestromungs-Einzellicht- verteilung mittels eines Kantenerkennungsalgorithmus ermittelt wird oder das Ermitteln der komprimierten Maximalbestromungs-Einzellichtverteilung ein Ermitteln eines effektiv ausgeleuchteten rechtwinkligen Koordinatenbereichs durch folgende Schritte umfasst:

- Bereitstellen einer Streulichtreduzierten-Maximalbestromungs-Einzellichtverteilung durch reduzieren eines Streulichtanteils in der Maximalbestromungs-Einzellichtverteilung (18),

- Ermitteln einer Maximallichtstärke und eine Koordinate aufweisend die Maximallicht stärke in der Streulichtreduzierten-Maximalbestromungs-Einzellichtverteilung,

- Ermitteln der Schwellwertlichtstärke unter Berücksichtigung der Maximallichtstärke und des vorgewählten prozentualen Schwellwertes,

- Ermitteln des effektiv ausgeleuchteten rechtwinkligen Koordinatenbereichs unter Berück sichtigung der Streulichtreduzierten-Maximalbestromungs-Einzellichtverteilung, der Koor dinate aufweisend die Maximallichtstärke und der Schwellwertlichtstärke.

7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren nach Schritt d) zusätzlich folgende Schritte umfasst: dl) Erzeugen eines Zielkoordinaten-Puffers (30) aus der Zielkoordinaten-Liste (24), eines Lichtstärke-Puffers (32) aus allen Lichtstärke-Listen (26) und eines Einzellichtquellen-Identi- fizierungs-Puffers (34) aus allen Einzellichtquellen-Identifizierungs-Listen (28) der Maximal- bestromungs-Datenstruktur (22), wobei der Zielkoordinaten-Puffer (30) eine Anzahl an ZK- Elementen (36) enthält, die der Anzahl an Zielkoordinaten-Einträgen (ZK) der Zielkoordinaten- Liste (24) entspricht und der Zielkoordinaten-Puffer (30) für jedes ZK-Element (36) einen Startpunkt (38) und eine Längenangabe (39) umfasst. d2) Abspeichern des Zielkoordinaten-Puffers (30), des Lichtstärke-Puffers (32) und des Einzellichtquellen-Identifizierungs-Puffers (34) auf der Recheneinheit.

8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt e) die folgen den Schritte umfasst: el) Erzeugen eines Zielkoordinaten-Puffers (30) aus der Zielkoordinaten-Liste (24), eines Lichtstärke-Puffers (32) aus allen Lichtstärke-Listen (26) und eines Einzellichtquellen-Identi- fizierungs-Puffers (34) aus allen Einzellichtquellen-Identifizierungs-Listen (28) der Maximal- bestromungs-Datenstruktur (22), wobei der Zielkoordinaten-Puffer (30) eine Anzahl an ZK- Elementen (36) enthält, die der Anzahl an Zielkoordinaten-Einträgen (ZK) der Zielkoordinaten- Liste (24) entspricht und der Zielkoordinaten-Puffer (30) für jedes ZK-Element (36) einen Startpunkt (38) und eine Längenangabe (39) umfasst, oder el‘) Laden des abgespeicherten Zielkoordinaten-Puffers (30), des abgespeicherten Licht stärke-Puffers (32) und des abgespeicherten Einzellichtquellen-Identifizierungs-Puffers (34) auf der Recheneinheit (20), und e2) Übermitteln des Zielkoordinaten-Puffers (30), des Lichtstärke-Puffers (32) und des Ein- zellichtquellen-Identifizierungs-Puffers (34) an eine Grafikkarte (40) der Recheneinheit (20), e3) Erzeugen eines Bestromungswert-Puffers (44) aus den bereitgestellten relativen Bestro- mungswerten (42), e4) Übermitteln des Bestromungswert-Puffers (44) an die Grafikkarte (40) der Rechenein heit (20), und e5) Ermitteln der Gesamtlichtverteilung (10) mittels der Grafikkarte (40) der Recheneinheit (20) unter Berücksichtigung des Zielkoordinaten-Puffers (30), des Lichtstärke-Puffers (32), des Einzellichtquellen-Identifizierungs-Puffers (34) und des Bestromunswert-Puffers (44).

9. Verfahren nach Anspruch 8, wobei in Schritt e5) ein Compute-Shader mit Shaderein- heiten verwendet wird, wobei jede Shadereinheit ein ZK-Element (36) isoliert bearbeitet und/o der wobei Ausführungsstränge des Compute-Shaders parallel auf mehreren Shadereinheiten der Grafikkarte (40) ablaufen.

10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die in Schritt b) bereitge stellte Maximalbestromungs-Einzellichtverteilung (18) zusätzlich zur Lichtstärke der Einzel lichtquelle pro Koordinate (14) eine Farbinformation der Einzellichtquelle pro Koordinate (14) darstellt und die Lichtstärke-Liste (26) der Maximalbestromungs-Datenstruktur (22) einen kombinierten Lichtstärke-Farbinformations-Eintrag umfasst.

11. Verfahren zum Simulieren einer Gesamtlichtverteilung eines Pixel-Scheinwerfers in ei ner Nachtfahrt eines virtuellen Kraftfahrzeugs umfassend die Schritte,

Einmaliges Durchführen der Schritte a) bis c) des Verfahrens nach Anspruch 1 und Wiederholtes aufeinanderfolgendes Durchführen der Schritte d) und e) des Verfahrens nach Anspruch 1 oder

Einmaliges Durchführen der Schritte a) bis c) des Verfahrens nach Anspruch 1, Einmaliges Durchführen der Schritte el) oder el‘) und e2) des Verfahrens nach An spruch 8 und

Wiederholtes aufeinanderfolgendes Durchführen der Schritte e3) bis e5) des Verfahrens nach Anspruch 8.

12. Verfahren nach Anspruch 11, wobei der Pixel-Scheinwerfer mehr als 200 Einzellicht quellen umfasst.

Description:
Verfahren zum Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers

Die Erfindung betrifft ein Verfahren zum Ermitteln einer Gesamtlichtverteilung eines Pixel- Scheinwerfers mittels einer Recheneinheit.

Weiterhin betrifft die Erfindung ein Verfahren zum Simulieren einer Gesamtlichtverteilung ei nes Pixel-Scheinwerfers in einer Nachtfahrt eines virtuellen Kraftfahrzeugs.

Als Pixel-Scheinwerfer werden vorliegend derartige Scheinwerfer für den automobilen Sektor bezeichnet, die eine Vielzahl von einzeln ansteuerbaren Einzellichtquellen aufweisen. Die Ge samtlichtverteilung des Pixel-Scheinwerfers ist durch das Zusammenwirken aller Einzellicht quellen über weite Bereiche frei konfigurierbar und innerhalb weniger Millisekunden adaptier bar. Als Lichtquelle werden in der Regel LED-Arrays verwendet, die eine Vielzahl an einzeln ansteuerbaren Einzellichtquellen, den sogenannten Pixeln, aufweisen. Eine weitere Realisie rungsmöglichkeit sind DLP-Systeme, die über nur eine physikalische Lichtquelle verfügen und die Einzellichtquellen über die Ansteuerung von Mikro- Spiegeln, an denen das Licht der Licht quelle reflektiert wird, erzeugen. Die Lichtstärke der Einzellichtquelle im Pixel-Scheinwerfer lässt sich über die Bestromung der Einzellichtquelle verändern. Bei maximaler Bestromung ist die Lichtstärke am größten. Zukünftige Generationen an Pixel-Scheinwerfern weisen mehrere Tausend Einzellichtquellen, sprich Pixel, auf.

Derartige Pixel-Scheinwerfer ermöglichen eine Erweiterung des herkömmlichen Anwendungs gebietes von Kfz-Scheinwerfern. Sie schaffen die technische Voraussetzung für neue Licht funktionen, wie blendfreies Fernlicht, Markierungslicht und/oder Symbolprojektionen. Blend freies Fernlicht ermöglicht die kontinuierliche Benutzung des Fernlichtes, ohne dass ein voll ständiges Abblenden bei entgegenkommendem Verkehr notwendig ist. Aufgrund der einzeln ansteuerbaren Einzellichtquellen ist es möglich, die Lichtintensität in einzelnen Bereichen, wie der Fahrerkabine des entgegenkommenden Fahrzeugs, anzupassen. Damit kann beim Anwen dungsbeispiel des blendfreien Fernlichtes lediglich die Fahrerkabine des entgegenkommenden Fahrzeugs ausgeblendet werden. Der beleuchtbare Bereich außerhalb der Fahrerkabine kann weiter beleuchtet werden. Dadurch wird die Sicherheit bei Nachtfahrten deutlich erhöht, und ein manuelles Ab- und Aufblenden ist nicht mehr zwingend notwendig. Um solche Lichtfunktionen kontrolliert umsetzen zu können, ist eine präzise Steuerung jeder Einzellichtquelle z.B. abhängig von der Fahr Situation, dem Zustand des eignen Fahrzeugs, den Einflüssen aus der Umwelt, sowie in Abhängigkeit der zuvor genutzten Bestromungswerte der Einzellichtquelle von Vorteil. Um derartige Lichtfunktionen der Pixel-Scheinwerfer in den Straßenverkehr zu integrieren, bedarf es einer Vielzahl an komplexen Vorabberechnungen und eine sorgfältige Programmierung einer Steuersoftware für die Pixel-Scheinwerfer, um eine zu verlässige Funktion des Systems zu gewährleisten. Insbesondere bei der Funktion des blend freien Fernlichtes muss das reale Geschehen kontinuierlich erfasst sowie richtig eingeschätzt werden, um daraufhin die einzelnen Pixel zuverlässig steuern zu können. Eine fehlerhafte Steu erung der Pixel stellt insbesondere bei blendfreiem Fernlicht ein großes Risiko für Verkehrsun fälle dar. Aufgrund des Risikos werden daher im Vorfeld reale Nachtfahrten durchgeführt, um sie anschließend als Grundlage für die Berechnung der Gesamtlichtverteilung zu verwenden. Reale Nachtfahrten sind jedoch nicht nur gefährlich, sie sind weiterhin auch zeitaufwendig so wie kostspielig. Mit Nachtfahrtsimulationen können diese Nachteile j edoch umgangen werden.

In einer Nachtfahrtsimulation wird die Gesamtlichtverteilung des Pixel-Scheinwerfers mehr fach hintereinander gemäß den Simulationsvorgaben der Nachtfahrt berechnet. Die Berechnung der Gesamtlichtverteilung des Pixel-Scheinwerfers soll daher sehr schnell erfolgen, so dass hohe Taktraten der Berechnung möglich sind, um die Echtzeitanforderung der Simulation zu ermöglichen.

Konkret ermöglicht beispielsweise die Simulationsumgebung „LucidDrive“ aus dem Software Paket „LucidShape“ der Firma Synopsys die Simulation von Pixel-Scheinwerfer, bei der eine Lichtverteilung des Pixel-Scheinwerfers simuliert wird. Allerdings ist die Anzahl an Einzel lichtquellen in der Simulation bei einer physikalisch motivierten Simulation auf 126 begrenzt. Sollen Pixel-Scheinwerfer mit mehr Einzellichtquellen simuliert werden, kann mit der Simula tionsumgebung mit Hilfe des „AFS Masking PixelLight Feature“ lediglich die konstante Ge samtlichtverteilung aller voll bestromten Einzellichtquellen gerendert werden, aus welcher Be reiche ausgeblendet werden konnten. Es wird allerdings nicht berücksichtigt, ob die Ausblen dung durch den Pixel-Scheinwerfer überhaupt realisiert werden kann. Nachteil dieser Simula tionsumgebung bei einer ist somit, dass die Simulation bei einer hohen Anzahl Einzellichtquel len nicht physikalisch motiviert, sprich unabhängig von den Gegebenheiten des Pixel-Schein werfers und somit ohne Berücksichtigung einer realisierbaren scheinwerf erspezifi sehen Um setzung erfolgt. Andere aus dem Stand der Technik bekannte Simulationsumgebungen wie beispielsweise der von der Firma „HELLA KGaA“ verwendete „LightDriver“ aus dem Software-Paket „HE LIOS“, unterstützen lediglich Pixel-Scheinwerfer mit bis zu 100 Einzellichtquellen.

Bei den bisher verfügbaren Verfahren zum Ermitteln von Gesamtlichtverteilungen von Pixel- Scheinwerfer steigt die Rechenzeit mit der Anzahl an Einzellichtquellen stark an, so dass sich diese Verfahren nicht zum Durchführen von Simulationen eignen, da die Echtzeitanforderun gen schon bei wenigen hundert Einzellichtquellen nicht mehr eingehalten werden können.

Es ist daher Aufgabe der Erfindung ein Verfahren zum Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers mittels einer Recheneinheit bereitzustellen, das auch bei einer Viel zahl von Einzellichtquellen besonders schnell ist. Weiterhin ist es Aufgabe der Erfindung ein Verfahren zum Simulieren einer Gesamtlichtverteilung eines Pixel-Scheinwerfers in einer Nachtfahrt eines virtuellen Kraftfahrzeugs bereitzustellen, das die Echtzeitanforderung erfüllt.

Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst. Bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen beschrieben.

Erfmdungsgemäß wird somit ein Verfahren zum Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers mittels einer Recheneinheit bereitgestellt, wobei der Pixel-Scheinwerfer eine Vielzahl an Einzellichtquellen umfasst und wobei eine Lichtstärke der Einzellichtquelle über eine Bestromung der Einzellichtquelle beeinflussbar ist, umfassend die Schritte: a) Bereitstellen einer Textur auf der Recheneinheit umfassend ein zweidimensionales Ar- ray mit Koordinaten, b) Bereitstellen einer Maximalbestromungs-Einzellichtverteilung für jede Einzellicht quelle auf der Recheneinheit, wobei die Maximalbestromungs-Einzellichtverteilung wenigs tens die Lichtstärke der Einzellichtquelle pro Koordinate bei maximaler Bestromung der Ein zellichtquelle darstellt, c) Ermitteln einer Maximalbestromungs-Datenstruktur unter Berücksichtigung aller Ma- ximalbestromungs-Einzellichtverteilungen und der Textur, wobei die Maximalbestromungs- Datenstruktur eine Zielkoordinaten-Liste mit Zielkoordinaten-Einträgen, eine Lichtstärke-Liste pro Zielkoordinaten-Eintrag mit wenigstens einem Lichtstärke-Eintrag und eine Einzellicht- quellen-Identifizierungs-Liste pro Zielkoordinaten-Eintrag mit wenigstens einem Identifizie rungs-Eintrag umfasst, und wobei die Maximalbestromungs-Datenstruktur wenigstens dar stellt, welche Einzellichtquellen bei maximaler Bestromung wie stark die Lichtstärke pro Ko ordinate der Textur beeinflussen, d) Bereitstellen eines relativen Bestromungswertes für jede Einzellichtquelle auf der Re cheneinheit, wobei der relative Bestromungswert die Bestromung der Einzellichtquelle dar stellt, und e) Ermitteln der Gesamtlichtverteilung unter Berücksichtigung der Maximalbestromungs- Datenstruktur und der relativen Bestromungswerte der Einzellichtquellen.

Kern der Erfindung ist, dass das Verfahren die bereitgestellten Maximalbestromungs-Einzel- lichtverteilung in die Maximalbestromungs-Datenstruktur überführt, die eine besonders effek tive Ermittlung der Gesamtlichtverteilung erlaubt. In anderen Worten werden die Maximal- bestromungs-Einzellichtverteilungen zunächst vorverarbeitet. Erst nachdem diese Vorverarbei tung durchgeführt ist und die Maximalbestromungs-Datenstruktur vorliegt, wird unter Berück sichtigung der relativen Bestromungswerte der Einzellichtquellen die Gesamtlichtverteilung er mittelt.

Grundsätzlich lässt sich die Gesamtlichtverteilung des Pixel-Scheinwerfers als Linearkombina tion aller Einzellichtverteilungen der Einzellichtquellen beschreiben, wobei im Folgenden die Matrizen Mi die Maximalbestromungs-Einzellichtverteilungen bezeichnen und Ci jeweils der relative Bestromungswert der jeweiligen Einzellichtquelle ist. Die Gesamtlichtverteilung MG ergibt sich, wenn vereinfachend annimmen wird, dass alle Einzellichtverteilungen und die Ge samtlichtverteilung über den gleichen Raumwinkelbereich vorliegen, zu:

Bei Pixel-Scheinwerfern ist die Anzahl an Einzellichtquellen sehr hoch, so dass die Berechnung der Summe wie im Stand der Technik praktiziert viel Rechenzeit in Anspruch nimmt. Außer dem strahlen die Einzellichtquellen eines Pixel Scheinwerfers in der Regel nur lokal begrenzte Bereiche an, so dass die Matrizen Mi dünnbesetzte Matrizen sind, sprich viele ihrer Einträge Nullen sind. Somit wird beim Lösen der obigen Summe nach üblichen Verfahren viel Rechen zeit verwendet Nullen zu addieren, was wenig effizient ist. Das erfmdungsgemäße Verfahren stellt in einem ersten Schritt auf der Recheneinheit die Textur bereit, in welche die zu bestimmende Gesamtlichtverteilung geschrieben wird. Die Textur um fasst das zweidimensionale Array, wobei die Zeilen- und Spaltennummem des zweidimensio nalen Arrays die Koordinaten definieren. Die Textur sowie die Anzahl an Koordinaten, sprich eine Anzahl an Diskretisierungspunkten in beiden Dimensionen, beeinflussen in welchem Raumbereich und mit welcher Auflösung die Gesamtlichtverteilung bestimmt wird. Bei vielen Koordinaten in einem Raumbereich wird die Gesamtlichtverteilung sehr feinkörnig, sprich mit hoher Auflösung bestimmt. Bevorzugt ist vorgesehen, dass die Textur in einem Kugelkoordi natensystem mit Azimut- und Polarwinkel bereitgestellt wird. Bevorzugt handelt es sich bei den Koordinaten also um Raumwinkel.

In einem weiteren Schritt des Verfahrens wird auf der Recheneinheit die Maximalbestromungs- Einzellichtverteilung für jede Einzellichtquelle bereitgestellt. Die Maximalbestromungs-Ein- zellichtverteilung stellt wenigstens die Lichtstärke der Einzellichtquelle pro Koordinate bei ma ximaler Bestromung der Einzellichtquelle dar. Bevorzugt stellt also die Maximalbestromungs- Einzellichtverteilung die Lichtstärke der Einzellichtquelle in einem definierten Raumwinkelbe reich bei maximaler Bestromung der Einzellichtquelle dar.

Grundsätzlich ist es möglich, dass die Textur und die Maximalbestromungs-Einzellichtvertei- lung unabhängig voneinander der Recheneinheit bereitgestellt werden. Alternativ kann vorge sehen sein, dass die Textur und die Koordinaten aus den bereitgestellten Maximalbestromungs- Einzellichtverteilungen erstellt werden. Weiter bevorzugt ist vorgesehen, dass die Gesamtlicht verteilung mit der gleichen Auflösung bestimmt wird, wie die Auflösung der bereitgestellten Maximalbestromungs-Einzellichtverteilungen.

In einem weiteren Schritt wird die Maximalbestromungs-Datenstruktur unter Berücksichtigung aller Maximalbestromungs-Einzellichtverteilungen und der Koordinaten-Liste ermittelt. Die Maximalbestromungs-Datenstruktur, im Folgenden auch als Datenstruktur bezeichnet, umfasst die Zielkoordinaten-Liste mit den Zielkoordinaten-Einträgen, j eweils eine Lichtstärke-Liste pro Zielkoordinaten-Eintrag und jeweils eine Einzellichtquellen-Identifizierungs-Liste pro Zielko- ordinaten-Eintrag. Es handelt sich also um eine mehrdimensionale Datenstruktur mit ineinander verschachtelten Listen. Die Datenstruktur umfasst die Information, welche Einzellichtquellen bei maximaler Bestromung wie stark die Lichtstärke pro Koordinate der Textur beeinflussen. In anderen Worten, stellt die Datenstruktur dar, welche und wie viele Einzellichtquellen wie stark auf eine Koordinate der Textur strahlen.

In einem weiteren Schritt des Verfahrens werden die relativen Bestromungswerte für jede Ein zellichtquelle auf der Recheneinheit bereitgestellt. Bevorzugt ist der relative Bestromungswert normiert auf den Wertebereich 0 bis 1. Der relative Bestromungswert stellt die Bestromung der Einzellichtquelle dar. In anderen Worten gibt der relative Bestormungswert eine globale Licht stärke der Einzellichtquelle wieder. Ist beispielsweise der relative Bestromungswert 1 bzw. 100%, so weist die Einzellichtquelle eine Einzellichtverteilung auf, die der Maximalbestro- mungs-Einzellichtverteilung entspricht. Ist der Bestromungswert beispielsweise 0,5 bzw. 50%, so weist die Einzellichtquelle eine Einzellichtverteilung auf, die in jede Richtung der Hälfte der Maximalbestroumgs-Einzellichtverteilung entspricht. In anderen Worten wird durch den Bestromungswert die Einzellichtverteilung global skaliert.

Die Maximalbestromungs-Datenstruktur weist mit der Zielkoordinaten-Liste, den Lichtstärke- Listen und den Einzellichtquellen-Identifizierungs-Listen eine Struktur auf, die auf die Archi tektur der Recheneinheit zugeschnitten ist, die in einem weiteren Schritt des Verfahrens unter Berücksichtigung der relativen Bestromungswerte die Gesamtlichtverteilung ermittelt. Somit ist das Ermitteln der Gesamtlichtverteilung sehr schnell. Statt wie bisher üblich die Gesamt lichtverteilung über ein iteratives Verfahren zu ermitteln, bei dem ein Rechendurchlauf so oft wiederholt werden muss wie Maximalbestromungs-Einzellichtverteilungen vorhanden sind, er laubt die Datenstruktur die Gesamtlichtverteilung mit einem Durchlauf zu ermitteln. In anderen Worten ermöglicht das Verfahren durch die Vorverarbeitung der Maximalbestromungs-Einzel- lichtverteilung, dass der Verfahrensschritt, bei dem die Gesamtlichtverteilung ermittelt wird, besonders schnell ist. Da bei einer Simulation bei der die Gesamtlichtverteilung eines Pixel- Scheinwerfers mehrfach hintereinander mit unterschiedlichen Bestromungswerten ermittelt wird, die Vorverarbeitung der Maximalbestromungs-Einzellichtverteilung nur zu Beginn ein mal durchgeführt werden muss, und danach lediglich die relativen Bestormungswerte entspre chend den Simulationsvorgaben aktualisiert werden, eignet sich das Verfahren somit besonders für echtzeitfähige Simulationen, bei denen in einer hohen Taktfrequenz die Gesamtlichtvertei lung des Pixel-Scheinwerfers ermittelt wird. Ebenfalls weist die Maximalbestromungs-Datenstruktur den Vorteil auf, dass ihre Größe nicht zwangsläufig mit der Anzahl an Einzellichtquellen des Pixel-Scheinwerfers bzw. mit der An zahl an Maximalbestromungs-Einzellichtverteilungen wächst. Stattdessen wird die Größe der Datenstruktur unter anderem durch eine Anzahl an Überlappungsbereichen der Maximalbestro- mungs-Einzellichtverteilungen bestimmt. Unter Überlappungsbereichen wird bevorzugt der Koordinatenbereich der Textur verstanden, der von mehr als einer Einzellichtquelle bestrahlt wird. Die Größe der Überlappungsbereiche wächst im Allgemeinen nicht mit der wachsenden Anzahl von Einzellichtquellen. Somit ist das erfindungsgemäße Verfahren bei der Ermittlung der Gesamtlichtverteilung von Pixel-Scheinwerfer, die eine sehr hohe Anzahl an Einzellicht quellen, deren Maximalbestromungs-Einzellichtverteilungen jeweils scharf voneinander abge grenzt sind und jeweils nur einen segmentierten Koordinatenbereich der Textur bestrahlen, sehr schnell.

Gemäß einer bevorzugten Weiterbildung der Erfindung ist vorgesehen, dass der Schritt c) die folgenden Schritte umfasst: cl) Erstellen der Zielkoordinaten-Liste ohne Zielkoordinaten-Einträgen, c2) Sukzessives Abarbeiten aller Maximalbestromungs-Einzellichtverteilung unter Berück sichtigung aller Koordinaten der Textur umfassend folgende Schritte: c2.1) Ermitteln der Lichtstärke der Maximalbestromungs-Einzellichtverteilung auf einer Ko ordinate der Textur, c2.2) Überprüfen, ob die Zielkoordinaten-Liste einen Zielkoordinaten-Eintrag bei der Koor dinate der Textur aufweist, c2.3) Im Falle, dass die Zielkoordinaten-Liste keinen Zielkoordinaten-Eintrag bei der Koor dinate aufweist, Erstellen des Zielkoordinaten-Eintrags durch Hinzufügen der Koordinate als Zielkoordinate zur Zielkoordinaten-Liste und Anlegen der Lichtstärke-Liste und der Einzel- lichtquellen-Identifizierungs-Liste für den entsprechenden Zielkoordinaten-Eintrag, wobei die Lichtstärke-Liste den Lichtstärke-Eintrag umfasst, der die Lichtstärke der Einzellichtquelle auf der Koordinate der Textur darstellt und die Einzellichtquellen-Identifizierungs-Liste den Iden tifizierungs-Eintrag umfasst, der die Einzellichtquelle identifiziert, c2.4) Im Falle, dass die Zielkoordinaten-Liste einen Zielkoordinaten-Eintrag bei der Koordi nate aufweist, Hinzufügen eines weiteren Lichtstärke-Eintrags zur Lichtstärke-Liste und eines weiteren Identifizierungs-Eintrags zur Einzellichtquellen-Identifizierungs-Liste. Das Verfahren sieht also bevorzugt vor, dass die Maximalbestromungs-Datenstruktur über ei nen iterativen Prozess erstellt wird. Insbesondere ist vorgesehen, dass es sich um zwei ineinan der verschachtelte Iterationsprozesse handelt, wobei in dem übergeordneten Iterationsprozess über alle Maximalbestromungs-Einzellichtverteilung iteriert wird und in dem untergeordneten Iterationsprozess über alle Koordinaten der Textur iteriert wird. In anderen Worten findet ein umsortieren statt, von der Art und Weise wie die Information der Lichtstärke in der Maximal- bestromungs-Einzellichtverteilung sortiert ist, hin zu der Sortierung der Information in der Ma- ximalbestromungs-Datenstruktur mit den ineinander verschachtelten Listen.

Um die Rechenzeit, für das Ermitteln der Gesamtlichtverteilung weiter zu verringern, sieht eine bevorzugte Weiterbildung der Erfindung vor, dass in Schritt c) eine Maximalbestromungs-Da- tenstruktur bereitgestellt wird, die in der Lichtstärke-Liste ausschließlich Lichtstärke-Einträge umfasst, die eine vorgewählte Schwellwertlichtstärke überschreiten und die entsprechenden Einzellichtquellen-Identifizierungs-Listen ausschließlich Identifizierung-Einträge von Einzel lichtquellen umfassen, deren Lichtstärke-Einträge die vorgewählte Schwellwertlichtstärke überschreiten. In anderen Worten, werden Lichtstärken der Maximalbestromungs-Einzellicht- verteilung auf Koordinaten der Koordinaten-Liste, die die vorgewählte Schwellwertlichtstärke unterschreitet, verworfen. Somit werden geringe Lichtstärken der Maximalbestromungs-Ein- zellichtverteilung, welche zu dunkel sind, um einen Einfluss auf die Gesamtlichtverteilung zu haben, gar nicht erst berücksichtigt. Die Größe der Maximalbestromungs-Datenstruktur wird somit reduziert und die Rechenzeit beschleunigt.

Der zuvor beschriebene iterativen Prozess, wie die Maximalbestromungs-Datenstruktur erstellt wird, erlaubt es auf einfache Weise die bevorzugt vorgesehene Maximalbestromungs-Daten- struktur bereitzustellen, bei der die Lichtstärke-Liste der Maximalbestromungs-Datenstruktur ausschließlich Lichtstärke-Einträge umfasst, die die vorgewählte Schwellwertlichtstärke über schreiten und die entsprechenden Einzellichtquellen-Identifizierungs-Listen ausschließlich Identifizierung-Einträge von Einzellichtquellen umfassen, deren Lichtstärke-Einträge die vor gewählte Schwellwertlichtstärke überschreiten. Dafür ist gemäß einer bevorzugten Weiterbil dung der Erfindung vorgesehen, dass nach Schritt c2.1) des Verfahrens zusätzlich den folgen den Schritt umfasst: c2.1) Ermitteln, ob die Lichtstärke der Maximalbestromungs-Einzellichtverteilung auf der Koordinate die vorgewählte Schwellwertlichtstärke überschreitet, und wobei das Verfahren nur bei Überschreiten der Schwellwertlichtstärke die Schritte c2.2) bis c2.4) für diese Koordinate durchführt.

Im Zusammenhang mit dem Beschleunigen der Rechenzeit ist gemäß einer weiteren bevorzug ten Weiterbildung der Erfindung vorgesehen, dass das Verfahren zusätzlich den Schritt b2) Er mitteln einer komprimierten Maximalbestromungs-Einzellichtverteilung aus der Maximal- bestromungs-Einzellichtverteilung umfasst, wobei die komprimierte Maximalbestromungs- Einzellichtverteilung wenigstens die Lichtstärke der Einzellichtquelle in jenem Koordinatenbe reich darstellt, der von der Einzellichtquelle bei maximaler Bestromung derart bestrahlt wird, dass die Lichtstärke eine weitere vorgewählten Schwellwertlichtstärke oder eine Schwellwert lichtstärke basierend auf einem vorgewählten prozentualen Schwellwert überschreitet, und wo bei in Schritt c) die Maximalbestromungs-Datenstruktur unter Berücksichtigung aller kompri mierten Maximalbestromungs-Einzellichtverteilungen ermittelt wird. Bevorzugt sieht das Ver fahren also vor, dass Rechenzeit gespart wird, indem besondere Eigenschaften der Maximal- bestromungs-Einzellichtverteilungen genutzt werden. Wie bereits erwähnt stellen die Maximal - bestromungs-Einzellichtverteilung die Lichtstärke einer Einzellichtquelle pro Koordinate dar. Aufgrund der lokal begrenzten Abstrahlung einer Einzellichtquelle strahlt jede Einzellicht quelle nur in einen kleinen Koordinatenbereich, so dass viele Koordinaten der Textur keine oder nur eine sehr geringe Lichtstärke aufgrund der Einzellichtquelle aufweisen.

Bevorzugt sieht das Verfahren vor, dass dieser effektiv ausgeleuchtete Koordinatenbereich, sprich der Bereich der Textur der von der Einzellichtquelle bei maximaler Bestromung derart bestrahlt wird, dass die Lichtstärke die weitere vorgewählten Schwellwertlichtstärke über schreitet, mittels des Kantenerkennungsalgorithmus ermittelt und nur dieser effektiv ausge leuchtete Koordinatenbereich der Maximalbestromungs-Einzellichtverteilungen, sprich die komprimierten Maximalbestromungs-Einzellichtverteilungen weiter verwendet wird. Bevor zugt umfasst der Kantenerkennungsalgorithmus ein Durchführen einer Tiefpassfilterung, wei ter bevorzugt ein Durchführen einer Tiefpassfilterung mittels eines Gaußfilters. Somit wird die Datenmenge reduziert, sodass der nachgelagerte Schritt c) weniger Zeit in Anspruch nimmt.

Alternativ zum Kantenerkennungsalgorithmus sieht eine bevorzugte Weiterbildung der Erfin dung vor, dass das Ermitteln der komprimierten Maximalbestromungs-Einzellichtverteilung ein Ermitteln eines effektiv ausgeleuchteten rechtwinkligen Koordinatenbereichs umfasst. Wei- ter bevorzugt wird der effektiv ausgeleuchtete rechtwinklige Koordinatenbereich ermittelt, in dem in einem ersten Schritt durch Reduzieren eines Streulichtanteils in der Maximalbestro- mungs-Einzellichtverteilung eine Streulichtreduzierte-Maximalbestromungs-Einzellichtvertei- lung bereitgestellt wird. Dies erfolgt bevorzugt durch eine Tiefpassfilterung. In einem zweiten Schritt wird eine Maximallichtstärke und eine Koordinate aufweisend die Maximallichtstärke in der Streulichtreduzierten-Maximalbestromungs-Einzellichtverteilu ng ermittelt, in einem dritten Schritt unter Berücksichtigung der Maximallichtstärke und des vorgewählten prozentu alen Schwellwertes die Schwellwertlichtstärke ermittelt, und in einem vierten Schritt wird unter Berücksichtigung der Streulichtreduzierten-Maximalbestromungs-Einzellichtverteilu ng, der Koordinate aufweisend die Maximallichtstärke und der Schwellwertlichtstärke der effektiv aus geleuchtete rechtwinklige Koordinatenbereich ermittelt. Bevorzugt ist vorgesehen, dass im vierten Schritt der effektiv ausgeleuchtete rechtwinklige Koordinatenbereich ermittelt wird, in dem ein Rechteck, das zunächst ausschließlich die Koordinate aufweisend die Maximallicht stärke umfasst, derart vergrößert wird, bis das Rechteck alle Koordinaten mit Lichtstärke wer ten, die über der Schwellwertlichtstärke liegen, umfasst. Weiter bevorzugt ist vorgesehen, dass der effektiv ausgeleuchtete rechtwinklige Koordinatenbereich der komprimierten Maximal- bestromungs-Einzellichtverteilung entspricht. In anderen Worten, werden Datenpunkte der Ma- ximalbestromungs-Einzellichtverteilung, die sich außerhalb des effektiv ausgeleuchteten recht winkligen Koordinatenbereichs befinden für die komprimierten Maximalbestromungs-Einzel- lichtverteilung nicht weiter berücksichtigt.

Wie bereits erwähnt weist die Datenstruktur mit der Zielkoordinaten-Liste, den Lichtstärke- Listen und den Einzellichtquellen-Identifizierungs-Listen eine Struktur auf, die auf die Archi tektur der Recheneinheit zugeschnitten ist. In diesem Zusammenhang ist gemäß einer bevor zugten Weiterbildung der Erfindung vorgesehen, dass das Verfahren nach Schritt d) zusätzlich folgende Schritte umfasst: dl) Erzeugen eines Zielkoordinaten-Puffers aus der Zielkoordinaten-Liste, eines Licht stärke-Puffers aus allen Lichtstärke-Listen und eines Einzellichtquellen-Identifizierungs-Puf- fers aus allen Einzellichtquellen-Identifizierungs-Listen der Datenstruktur, wobei derZielkoor- dinaten-Puffer eine Anzahl an ZK -Elementen enthält, die der Anzahl an Zielkoordinaten-Ein- trägen der Zielkoordinaten-Liste entspricht und der Zielkoordinaten-Puffer für jedes ZK-Ele- ment einen Startpunkt und eine Längenangabe umfasst. d2) Abspeichern des Zielkoordinaten-Puffers, des Lichtstärke-Puffers und des Einzellicht- quellen-Identifizierungs-Puffers auf der Recheneinheit. Das Verfahren sieht also bevorzugt in einem weiteren Schritt vor, dass aus der Datenstruktur drei Puffer erstellt werden, die auf der Recheneinheit abgespeichert werden. Unter Puffer (eng lisch buffer ) wird bevorzugt ein Speicher für die Zwischenlagerung der Daten verstanden, der eine für die Recheneinheit schnell lesbare Form aufweist. Besonders bevorzugt ist unter Puffer ein zusammenhängender Speicherbereich oder Speicherblock eines vorgegebenen Datentyps zu verstehen, wobei der Puffer eine konfigurierbare Anzahl an Elementen enthält und per Index auf ein beliebiges Element zurückgegriffen werden kann. Weiter bevorzugt wird der Zielkoor- dinaten-Puffer, der Lichtstärke-Puffer und der Einzellichtquellen-Identifizierungs-Puffer auf einer Grafikkarte der Recheneinheit angelegt und/oder abgespeichert.

Der Zielkoordinaten-Puffer, der Lichtstärke-Puffer und der Einzellichtquellen-Identifizierungs- Puffer weisen die gleichen Daten auf, wie die Listen der Datenstruktur, allerdings sind die Puf fer derart strukturiert, dass die Daten in zusammenhängender Form im Speicher vorliegen. Be vorzugt ist vorgesehen, dass die ZK-Elemente des Zielkoordinaten-Puffers den Zielkoordina- ten-Einträgen der Zielkoordinaten-Liste entsprechen, wobei der Zielkoordinaten-Puffer für je des ZK-Element einen Startpunkt (englisch buffer offset ) und eine Längenangabe (englisch buf fer count ) umfasst. Der Startpunkt und die Längenangabe verweisen jeweils auf einen Ort im Lichtstärke-Puffer und im Einzellichtquellen-Identifizierungs-Puffer hin, wo die für diese Ziel koordinate gespeicherten Lichtstärke-Einträge und Einzellichtquelle-Identifizierungs-Einträge hinterlegt sind. Bevorzugt gibt der Startpunkt einen Index im jeweiligen Puffer an und die Län genangabe gibt die Länge des Bereichs an.

Gemäß einer weiteren bevorzugten Weiterbildung der Erfindung ist vorgesehen, dass der Schritt e), sprich das Ermitteln der Gesamtlichtverteilung unter Berücksichtigung der Maximal- bestromungs-Datenstruktur und der relativen Bestromungswerte der Einzellichtquellen mittels einer Grafikkarte der Recheneinheit durchgeführt wird. Dies hat den Vorteil, dass das Ermitteln durch die hohe Parallelisierbarkeit besonders schnell ist. Bevorzugt sind der Zielkoordinaten- Puffer, der Lichtstärke-Puffer und der Einzellichtquellen-Identifizierungs-Puffers in ihrer Struktur an die Berechnung mittels der Grafikkarte angepasst.

In diesem Zusammenhang ist gemäß einer bevorzugten Weiterbildung der Erfindung vorgese hen, dass der Schritt e) die folgenden Schritte umfasst: el) Erzeugen des Zielkoordinaten-Puffers aus der Zielkoordinaten-Liste, des Lichtstärke- Puffers aus allen Lichtstärke-Listen und des Einzellichtquellen-Identifizierungs-Puffers aus al len Einzellichtquellen-Identifizierungs-Listen der Maximalbestromungs-Datenstruktur, wobei der Zielkoordinaten-Puffer die Anzahl an ZK-Elementen enthält, die der Anzahl an Zielkoor- dinaten-Einträgen der Zielkoordinaten-Liste entspricht und der Zielkoordinaten-Puffer für je des ZK-Element einen Startpunkt und eine Längenangabe umfasst, oder el‘) Laden des abgespeicherten Zielkoordinaten-Puffers, des abgespeicherten Lichtstärke- Puffers und des abgespeicherten Einzellichtquellen-Identifizierungs-Puffers auf der Rechenein heit, und e2) Übermitteln des Zielkoordinaten-Puffers, des Lichtstärke-Puffers und des Einzellicht- quellen-Identifizierungs-Puffers an eine Grafikkarte der Recheneinheit, e3) Erzeugen eines Bestromungswert-Puffers aus den bereitgestellten relativen Bestro- mungswerten für jede Einzellichtquelle, e4) Übermitteln des Bestromungswert-Puffers an die Grafikkarte der Recheneinheit, und e5) Ermitteln der Gesamtlichtverteilung mittels der Grafikkarte der Recheneinheit unter Be rücksichtigung des Zielkoordinaten-Puffers, des Lichtstärke-Puffers, des Einzellichtquellen- Identifizierungs-Puffers und des Bestromunswert-Puffers.

Gemäß einer bevorzugten Weiterbildung der Erfindung wird in Schritt e5) ein Compute-Shader mit Shadereinheiten verwendet, wobei jede Shadereinheit ein ZK-Element isoliert bearbeitet und/oder wobei Ausführungsstränge des Compute-Shaders parallel auf mehreren Shadereinhei ten der Grafikkarte ablaufen. Unter einem Compute-Shader wird hier eine programmierbare Recheneinheit der Grafikkarte verstanden. Bevorzugt werden genauso viele Ausführungs stränge des Compute-Shaders ausgeführt, wie es ZK-Element im Zielkoordinaten-Puffer gibt. Aufgrund der hohen Anzahl an Shadereinheiten, welche auf modernen Grafikprozessoren der Grafikkarten verfügbar sind, ist bevorzugt vorgesehen, dass viele der Ausführungsstränge (eng lisch Threads ) parallel ablaufen. Die Ausführungsstränge werden bevorzugt durch eine ID von einander unterschieden. Bevorzugt stellt die ID sicher, dass jeder Ausführungsstrang exklusiv eine der Zielkoordinaten bearbeitet. Auf diese Weise entsteht ein hohes Maß an Parallelisie- rung. Insbesondere wird die ID des Ausführungsstrangs als Index zum Auslesen des Zielkoordinaten- Puffers verwendet. Darüber wird die Koordinate der Zieltextur erhalten, an welcher der Aus führungsstrang die Lichtstärke ermittelt. Zusätzlich zeigen der Startpunkt und die Längenan gabe im Zielkoordinaten-Puffer an, bei welchen Indizes der Lichtstärke-Puffer und der Einzel- lichtquellen-Identifizierungs-Puffer ausgelesen werden.

Gemäß einer bevorzugten Weiterbildung umfasst das Verfahren für jedes ZK-Element im Ziel koordinaten-Puffer den Schritt skalieren des Lichtstärke-Eintrags im Lichtstärke Puffer mit dem Bestromungs-Eintrag im Bestromungs-Puffer, wobei der Startpunkt und die Längenan gabe im Zielkoordinaten-Puffer anzeigen, bei welchen Indizes im Lichtstärke-Puffer und Bestromungs-Puffer sich der Lichtstärke-Eintrag und der Bestromungs-Eintrag befinden, und anschließendes Aufsummieren. Nachdem alle Ausführungsstränge ihre Ausführung abge schlossen haben, ist die Lichtstärke für alle Zielkoordinaten und somit die Gesamtlichtvertei lung bestimmt.

Anders als bei im Stand der Technik bekannten Verfahren, bei denen die Einzellichtverteilun gen durch mehrere Iterationen in die Textur addiert werden, um derart die Gesamtlichtvertei lung zu bestimmen, hat das Verfahren den Vorteil dass die Bestimmung der Gesamtlichtvertei lung durch einen einzigen Compute-Shader Durchlauf möglich ist. Die Organisation der Aus führungsstränge nach Zielkoordinaten schafft implizite Ausführungssicherheit der Ausfüh rungsstränge. Schreibkonflikte zwischen den Ausführungssträngen sind ausgeschlossen, da je der Ausführungsstrang alleinigen Schreibzugriff auf eine eindeutige Zielkoordinate ausübt. Auf alle anderen Daten wird ausschließlich lesend zugegriffen. Das Verfahren weist den Vorteil auf, dass der Grafikprozessor sehr effizient genutzt wird, denn für jeden Ausführungsstrang liegen die Daten zusammenhängend im Puffer vor, was das Lesen der Daten aus dem Puffer beschleunigt. Zudem erübrigt die implizite Ausführungssicherheit das explizite Vorsehen von konfliktlösenden Strukturen wie beispielsweise Atomic Operations oder Synchronisierungen innerhalb von Ausführungsstrangsgruppen. Aufgrund des Verzichts auf konfliktlösenden Strukturen kann die Gesamtlichtverteilung besonders schnell ermittelt werden.

Gemäß einer bevorzugten Weiterbildung des Verfahrens ist vorgesehen, dass die in Schritt b) bereitgestellte Maximalbestromungs-Einzellichtverteilung zusätzlich zur Lichtstärke der Ein zellichtquelle pro Koordinate eine Farbinformation der Einzellichtquelle pro Koordinate dar stellt und die Lichtstärke-Liste der Maximalbestromungs-Datenstruktur einen kombinierten Lichtstärke-Farbinformations-Eintrag umfasst. Bevorzugt umfasst der Lichtstärke-Farbinfor- mations-Eintrag XYZ-Koordinaten im CIE Farbraum. Dabei entspricht Y der Lichtstärke und X und Z spezifizieren die Farbinformation. Bevorzugt umfasst das Verfahren den Schritt Um wandeln der XYZ-Koordinaten des Lichtstärke-Farbinformations-Eintrags im CIE Farbraum in RGB-Koordinaten des RGB-Farbraums. Die Darstellung des Lichtstärke-Farbinformations- Eintrags im RGB Farbraum hat den Vorteil, dass eine einfache Wiedergabe durch gängige tech nische Ausgabegeräte möglich ist.

Weiterhin betrifft die Erfindung ein Verfahren zum Simulieren einer Gesamtlichtverteilung ei nes Pixel-Scheinwerfers in einer Nachtfahrt eines virtuellen Kraftfahrzeugs umfassend die Schritte,

Einmaliges Durchführen der Schritte a) bis c) des Verfahrens zum Ermitteln einer Ge samtlichtverteilung eines Pixel-Scheinwerfers mittels einer Recheneinheit und

Wiederholtes aufeinanderfolgendes Durchführen der Schritte d) und e) des Verfahrens Verfahren zum Ermitteln der Gesamtlichtverteilung eines Pixel-Scheinwerfers mittels einer Re cheneinheit oder

Einmaliges Durchführen der Schritte a) bis c) des Verfahrens zum Ermitteln einer Ge samtlichtverteilung eines Pixel-Scheinwerfers mittels einer Recheneinheit,

Einmaliges Durchführen der folgenden Schritte el) oder el‘) und e2) des Verfahrens zum Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers und

Wiederholtes aufeinanderfolgendes Durchführen der Schritte e3) bis e5) des Verfahrens zum Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers.

Das Simulieren der Gesamtlichtverteilung des Pixel-Scheinwerfers in der Nachtfahrt des virtu ellen Kraftfahrzeugs umfasst bevorzugt das ermitteln aufeinanderfolgender Gesamtlichtvertei lungen des Pixel-Scheinwerfers mit einer Frequenz, die einer Steuerfrequenz eines realen Steu ergerätes eines Pixel-Scheinwerfers entspricht. In der Regel liegen die Steuerfrequenzen der realen Steuergeräte von Pixel-Scheinwerfer im Bereich von 50 Hz. Bevorzugt entspricht die Frequenz mit der die aufeinanderfolgenden Gesamtlichtverteilungen des Pixel-Scheinwerfers ermittelt werden 30 bis 60 Hz, besonders bevorzugt 50 Hz. Bevorzugt ist vorgesehen, dass das virtuelle Kraftfahrzeug wenigstens den Pixel-Scheinwerfer umfasst, für den die Gesamtlicht verteilung ermittelt wird. Gemäß einer weiteren bevorzugten Weiterbildung des Verfahrens ist vorgesehen, dass der Pi xel-Scheinwerfer mehr als 200 Einzellichtquellen umfasst. Aufgrund des schnellen Ermittelns der Gesamtlichtverteilung können mit dem Verfahren auch Echtzeit-Simulationen von Pixel- Scheinwerfer mit einer hohen Anzahl an Einzellichtquellen durchgeführt werden.

Nachfolgend wird die Erfindung anhand eines bevorzugten Ausführungsbeispiels der Erfin dung unter Bezugnahme auf die Zeichnungen weiter im Detail beschreiben.

In den Zeichnungen zeigen

Fig. 1 ein Flussdiagramm mit dem Ablauf eines Verfahrens zum Ermitteln einer Ge samtlichtverteilung eines Pixel-Scheinwerfers mittels einer Recheneinheit, ge mäß einem bevorzugten Ausführungsbeispiels der Erfindung,

Fig. 2 schematisch eine Maximalbestromungs-Datenstruktur, die im Verfahren zum

Ermitteln einer Gesamtlichtverteilung eines Pixel-Scheinwerfers verwendet wird, gemäß einem bevorzugten Ausführungsbeispiels der Erfindung,

Fig. 3 eine weitere schematische Darstellung der Maximalbestromungs-Datenstruktur aus Figur 2, und

Fig. 4 schematisch einen Zielkoordinaten-Puffer, einen Lichtstärke-Puffer und einen

Einzellichtquellen-Identifizierungs-Puffers, die im Verfahren zum Ermitteln ei ner Gesamtlichtverteilung eines Pixel-Scheinwerfers verwendet werden, gemäß einem bevorzugten Ausführungsbeispiels der Erfindung.

Aus Figur 1 ist schematisch ein Flussdiagramm mit dem Ablauf eines Verfahrens zum Ermitteln einer Gesamtlichtverteilung 10 eines Pixel-Scheinwerfers mittels einer Recheneinheit 20 ge mäß einem bevorzugten Ausführungsbeispiels der Erfindung, ersichtlich.

Im Folgenden werden unter Verweis auf die Figuren 1 bis 4 die Schritte des Verfahrens erklärt. Das Verfahren umfasst mehrere Schritte, wobei vorliegen in einem ersten Schritt S100 Mess daten 12 eines Pixel-Scheinwerfers umfassend mehrere Einzellichtquellen bereitgestellt wer den. Eine Lichtstärke der Einzellichtquelle des Pixel-Scheinwerfers ist über eine Bestromung der Einzellichtquelle veränderbar. Die Messdaten 12 umfassen eine zweidimensionale Koordi- naten-Liste mit Koordinaten 14, im Folgenden als Textur 16 bezeichnet und in Figur 3 darge stellt, sowie eine Maximalbestromungs-Einzellichtverteilung 18 für jede Einzellichtquelle des Pixel-Scheinwerfers, die ebenfalls schematisch in Figur 3 abgebildet ist, wobei die Maximal- bestromungs-Einzellichtverteilung 18 wenigstens die Lichtstärke der Einzellichtquelle pro Ko ordinate 14 bei maximaler Bestromung der Einzellichtquelle darstellt. Vorliegend wird die Ma- ximalbestromungs-Einzellichtverteilung 18 in Polar-Koordinaten bereitgestellt, die die Licht stärke der Einzellichtquelle pro Raumwinkel angibt.

In einem weiteren Schritt S200 des Verfahrens werden die Messdaten 12 in die Recheneinheit 20 eingelesen und somit der Recheneinheit 20 die zunächst leere Textur 16 und die Maximal - bestromungs-Einzellichtverteilungen 18 bereitgestellt.

In einem weiteren Schritt S300 werden die Maximalbestromungs-Einzellichtverteilungen 18 zunächst vorverarbeitet und in komprimierte Maximalbestromungs-Einzellichtverteilungen überführt. Dazu wird ermittelt, wie groß ein Raumwinkelbereich ist, den die Einzellichtquelle bestrahlt. Dieser Raumwinkelbereich wird in Form von Winkelintervallen der Polar- und Azi- muthwinkel pro Maximalbestromungs-Einzellichtverteilung gespeichert. Somit wird die Da tenmenge reduzieren, sodass die nachfolgenden Schritte weniger Zeit in Anspruch nehmen. Das Ermitteln des Raumwinkelbereiches erfolgt entweder durch einen Kantenerkennungsalgorith mus oder indem ein effektiv ausgeleuchteter rechtwinkliger Koordinatenbereich ermittelt wird.

Ziel der nachfolgenden Schritte S400 bis S600 ist eine Maximalbestromungs-Datenstruktur 22 bereitzustellen. Die Maximalbestromungs-Datenstruktur 22 ist schematisch in Figur 2 und 3 dargestellt und umfasst eine Zielkoordinaten-Liste 24 mit Zielkoordinaten-Einträgen ZK, eine Lichtstärke-Liste 26 pro Zielkoordinaten-Eintrag ZK mit wenigstens einem Lichtstärke-Eintrag und eine Einzellichtquellen-Identifizierungs-Liste 28 pro Zielkoordinaten-Eintrag ZK mit we nigstens einem Identifizierungs-Eintrag. Die Maximalbestromungs-Datenstruktur 22 stellt vor liegend dar, welche Einzellichtquellen bei maximaler Bestromung, wie stark die Lichtstärke pro Koordinate 14 der Textur 16 beeinflussen. In Figur 2 sind für drei Zielkoordinaten-Einträge ZK der Zielkoordinaten-Liste 24 die Lichtstärke Liste 26 und die Einzellichtquellen-Identifi- zierungs-Liste 28 dargestellt. Figur 3 stellt die Textur 16 dar, wobei für eine Koordinate 14, sprich die Zielkoordinate, die dem Ziekllordinaten-Eitnrag ZK1 in Figur 2 entspricht, schema tisch die Maximalbestromungs-Einzellichtverteilung 18 dargestellt sind und die Zusammenset zung dieser Zielkoordinate gezeigt ist. Um die Maximalbestromungs-Datenstruktur 22 zu erstellen werden vom Verfahren die Schritte S400 bis S600 durchgeführt. In Schritt S400 wird eine leere Zielkoordinaten-Liste 24 bereitge stellt, die dann sukzessive mit Zielkoordinaten Einträgen ZK gefüllt wird und die entsprechen den Lichtstärke-Listen 26 und Einzellichtquellen-Identifizierungs-Listen 28 erstellt werden. Dabei findet ein ineinander verschachtelter Iterationsprozess statt, wobei in einem übergeord neten Iterationsprozess über alle Maximalbestromungs-Einzellichtverteilungen 18 iteriert wird und in einem untergeordneten Iterationsprozess über alle Koordinaten 14 der Textur 16 iteriert wird.

Für eine Maximalbestromungs-Einzellichtverteilung 18 werden zuerst die Raumwinkel in die entsprechenden Koordinaten 14 der Textur 16 umgerechnet. Vorliegend liegen sowohl die Ko ordinaten 16 der Textur 14, wie auch die Maximalbestromungs-Einzellichtverteilung 18 in Ku gelkoordinaten vor. In einem weiteren Schritt S500 wird ermitteln, ob die Lichtstärke der Ma- ximalbestromungs-Einzellichtverteilung 18 auf der Koordinate 14 eine vorgewählte Schwell wertlichtstärke überschreitet.

Ist die Lichtstärke kleiner als die vorgewählte Schwellwertlichtstärke wird diese Koordinate 14 wie in Schritt S550 schematisch dargestellt, verworfen und in der Maximalbestromungs-Ein- zellichtverteilung 22 nicht berücksichtigt.

Ist die Lichtstärke größer als die vorgewählte Schwellwertlichtstärke, wird überprüft, ob die Zielkoordinaten-Liste 24 einen Zielkoordinaten-Eintrag ZK bei der Koordinate 14 der Textur 16 aufweist.

Im Falle, dass die Zielkoordinaten-Liste 24 keinen Zielkoordinaten-Eintrag ZK bei der Koor dinate 16 aufweist, wird der Zielkoordinaten-Eintrag ZK durch Hinzufügen der Koordinate 14 als Zielkoordinate zur Zielkoordinaten-Liste 24 erstellt und die Lichtstärke-Liste 26 und die Einzellichtquellen-Identifizierungs-Liste 28 für den entsprechenden Zielkoordinaten-Eintrag ZK erstellt.

Im Falle, dass die Zielkoordinaten-Liste 24 einen Zielkoordinaten-Eintrag ZK bei der Koordi nate 14 aufweist, wird ein weiterer Lichtstärke Eintrag zur Lichtstärke-Liste 26 und ein weiterer Identifizierungs-Eintrag zur Einzellichtquellen-Identifizierungs-Liste 28 hinzugefügt. Nachdem der verschachtelte Iterationsprozess abgeschlossen ist, ist die Maximalbestromungs- Datenstruktur 22 ermittelt. In einem weiteren Schritt des Verfahrens werden aus der Maximal- bestromungs-Datenstruktur 22 drei Compute-Puffer 30, 32, 34 erzeugt.

Konkret werden ein Zielkoordinaten-Puffer 30 aus der Zielkoordinaten-Liste 24, ein Licht stärke-Puffer 32 aus allen Lichtstärke-Listen 26 und ein Einzellichtquellen-Identifizierungs- Puffer 34 aus allen Einzellichtquellen-Identifizierungs-Listen 28 erzeugt. Die Compute-Puffer 30, 32, 34 sind schematisch in Figur 4 dargestellt. Der Zielkoordinaten-Puffer 30 enthält eine Anzahl an ZK-Elementen 36, die der Anzahl an Zielkoordinaten-Einträgen ZK der Zielkoordi naten-Liste 24 entspricht und umfasst für jedes ZK -Element einen Startpunkt 38, genannt Buf fer-Offset und eine Längenangabe 39 der sogenannte Buffer-Count. Figur 4 zeigt anhand von drei ZK-Elementen, nämlich ZK1, ZK2, und ZK3, wie die Daten in den jeweiligen Compute- Puffem 30, 32, 34 angelegt sind. Dabei entspricht das ZK-Element ZK2 der Zielkoordinate in Figur 3, da es durch drei Maximalbestromungs-Einzellichtverteilung 18 beeinflusst wird. ZK1 setzt sich aus zwei Maximalbestromungs-Einzellichtverteilung 18 zusammen, ZK2 aus drei und ZK3 aus einer Maximalbestromungs-Einzellichtverteilung 18.

Im hier vorliegend bevorzugten Ausführungsbeispiel sieht das Verfahren vor, dass die erstellten Compute-Puffer 30, 32, 34 auf der Recheneinheit 20 gespeichert werden.

In einem weiteren Schritt S700 des Verfahrens werden relativen Bestromungswerte 42 für jede Einzellichtquelle auf der Recheneinheit 20 bereitgestellt, wobei der relative Bestromungswert 42 die Bestromung der Einzellichtquelle darstellt.

Zum Ermitteln der Gesamtlichtverteilung 10 werden in einem weiteren Schritt des Verfahrens die Compute-Puffer 30, 32, 34 in einen schnellen Speicher eines Grafikprozessors, GPU, einer Grafikkarte 40 übertragen. Weiterhin werden aus den auf der Recheneinheit 20 bereitgestellten relativen Bestromungswerte 42 ein Bestromungswert-Puffer 44 erzeugt, der ebenfalls an die Grafikkarte 40 übermittelt wird. Zum Ermitteln der Gesamtlichtverteilung mittels der Grafik karte 40 unter Berücksichtigung des Zielkoordinaten-Puffers 30, des Lichtstärke-Puffers 32, des Einzellichtquellen-Identifizierungs-Puffers 34 und des Bestromunswert-Puffers 44 wir im vorliegenden Ausführungsbeispiel ein Compute-Shader verwendet. Im Folgenden wird der logische Ablauf des Compute-Shaders beschrieben, welcher beim Er mitteln der Gesamtlichtverteilung vollzogen werden muss. Bei einer Simulation bei der hinter einander in einer Abfolge von Frames die Gesamtlichtverteilung ermittelt wird, wird der logi sche Ablauf also in jedem Frame vollzogen. Der Programm-Code des Compute-Shaders wird genauso oft ausgeführt, wie es ZK-Elemente 36 im Zielkoordinaten-Puffer 30 gibt. Aufgrund der mehreren tausend Kerne, welche auf modernen GPUs verfügbar sind, laufen viele der Aus führungsstränge ( Threads ) parallel ab. Unterschieden werden die Threads durch eine Thread - ID, womit sie fortlaufend durchnummeriert werden. Die Thread-ID wird verwendet, damit je der Thread ein einziges ZK-Element bearbeitet und somit jeweils die Lichtstärke für eine Ziel koordinate ermittelt. Auf diese Weise entsteht ein hohes Maß an Parallelisierung.

Im Detail wird die Thread-ID des Threads als Index zum Auslesen des Zielkoordianten-Puffers 30, im Folgenden als ZK-Buffer bezeichnet, verwendet. Diese kodiert welche Koordinate 14 der Textur 16, an welcher der aktuell betrachtete Thread die Lichtstärke ermitteln muss. Zu sätzlich zeigen der Startpunkt 38 ( Buffer-Offset ) und die Längenangabe 39 ( Buffer-Count ) an, bei welchen Indizes der Lichtstärke-Puffer 32, im Folgenden als Lichtstärke-Buffer bezeichnet, und der Einzellichtquellen-Identifizierungs-Puffer 34, im Folgenden als ID-Buffer bezeichnet, ausgelesen werden. Zum Ermitteln der Gesamtlichtverteilung werden die jeweiligen Werte des Lichtstärke-Puffers 32 mit den entsprechenden Werten, im Folgenden als Bestromung bezeich net, des Bestromungswert-Puffers 44, im Folgenden als Bestromungswerte-Buffer bezeichnet, skaliert und anschließend aufsummiert. Die Einträge des Einzellichtquellen-Identifizierungs- Puffer 34 stellen dabei die Indizes dar, an denen Bestromungswert-Puffer 44 ausgelesen werden muss. Für die jeweilige an dem Kernel bzw. Thread übergebene Thread-ID werden folgende Operationen durchgeführt:

Initial:

ID = Thread-ID (Fortlaufende Ganzzahl beginnend bei 0 zur Identifikation jedes Threads)

Lichtstärke-Summe = 0 (Hilfsvariable)

Lichtstärke-Wert = 0 (Hilfsvariable)

Bestromung = 0 (Hilfsvariable)

ELV ID = 0 (Hilfsvariable)

ZK = ZK-Buffer[ID].xy (Datentyp uint4 enthält vier Komponenten: x, y, z, w) StartOffset = ZK-Buffer[ID].z NumELV = ZK-Buffer[ID] . w EndOffset = StartOffset + NumELV

Schleife:

Schleifenbedingung: Für i = StartOffset bis EndOffset Schleifenoperationen:

• ELVJD = ID-Buffer[i]

• Lichtstärke -Wert = Lichtstärke-Buffer[i]

• Bestromung = Bestromungswerte-Buffer[ELV_ID]

• Lichtstärke-Summe = Lichtstärke- Summe + Bestromung * Lichtstärke- Wert Schleifenende

Rückgabe:

Textur[ZK] = Lichtstärke-Summe

Nachdem alle Threads ihre Ausführung abgeschlossen haben, sind die Lichtstärke der Gesamt- lichtverteilung bestimmt. Die so gewonnene Textur 16 kann nun verwendet werden, um das Scheinwerferlicht des Pixel-Scheinwerfers in einer Szene zu rendern.

Bezugszeichenliste

10 Gesamtlichtverteilung

12 Messdaten

14 Koordiante

16 Textur

18 Maximalbestromungs-Einzellichtverteilung

20 Recheneinheit

22 Maximalbestromungs-Datenstruktur

24 Zielkoordinaten-Liste

ZK Zielkoordinaten Eintrag

26 Lichtstärke-Liste

28 Einzellichtquellen-Identifizierungs-Liste

30 Zielkoordinaten-Puffer

32 Lichtstärke-Puffer

34 Einzellichtquellen-Identifizierungs-Puffer

36 ZK-Element

38 Startpunkt

39 Längenangabe

40 Grafikkarte

42 relativer Bestromungswert

44 Bestromungswert-Puffer