-
Ausführungsformen betreffen eine Verbesserung der (Vor-)Verarbeitung von Bilddaten.
-
Zum Erhöhen der Straßensicherheit und Verringern von Unfällen ist von Euro-NCAP definiert worden, dass in ab 2016 hergestellten Autos bestimmte ADAS-Merkmale und Prüfungsszenarios (ADAS = Advanced Driver Assistance System – Fahrerassistenzsystem) zu benutzen sind, um eine Fünfsterne-Bewertung zu erhalten.
-
Es werden verschiedene Arten von Systemen benutzt, die z. B. kamerabasierend oder radarbasierend sind, mit denen Risikosituationen erkannt werden sollen, ein Fahrer benachrichtigt werden soll und, falls der Fahrer nicht rechtzeitig eingreift, eine Handlung autonom eingeleitet werden soll, z. B. ein Auto verlangsamt werden soll, um einen Zusammenstoß zu vermeiden.
-
Insbesondere ermöglichen kamerabasierende Systeme Frontalkollisionswarnung, Spurabweichungs- und Fernlichtunterstützung.
-
Zum Bereitstellen eines gewünschten Sicherheitsgrades selbst bei veränderlichen und unterschiedlichen Lichtbedingungen können Sensoren hoher Dynamik benutzt werden, was wiederum einen gesteigerten Bedarf an Speicher und Rechenleistung erfordert. Anders gesagt sollen kamerabasierende Systeme billiger werden, so dass mehr Autos mit einem solchen sicherheitssteigernden Merkmal ausgerüstet werden können.
-
Eine Aufgabe besteht darin, die vorstehend genannten Nachteile zu vermeiden und insbesondere eine verbesserte oder effizientere Möglichkeit zur Verarbeitung von Bilddaten zu schaffen.
-
Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
-
Mindestens eines der folgenden Beispiele, Merkmalskombinationen und/oder Ausführungsformen kann als innovativ betrachtet werden. Diese können mit anderen Aspekten oder Ausführungsformen, wie hierin beschrieben, kombiniert werden. Eine der hierin beschriebenen Ausführungsformen ist nicht notwendigerweise als anderen Ausführungsformen gegenüber bevorzugt oder vorteilhaft anzusehen.
-
Es wird eine Vorrichtung zum Verarbeiten eines Bilddatenstroms vorgeschlagen,
- – umfassend eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit zum Empfangen des Bilddatenstroms;
- – wobei die erste Verarbeitungseinheit zum Bereitstellen eines ersten Datenstroms eingerichtet ist, wobei der erste Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – wobei die zweite Verarbeitungseinheit zum Bereitstellen eines zweiten Datenstroms eingerichtet ist, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist.
-
In einer Ausführungsform ist die erste Verarbeitungseinheit zum Bereitstellen wenigstens eines der Folgenden eingerichtet:
- – Erzeugung des ersten Datenstroms aus dem Bilddatenstrom mit einer ersten Kompressionsrate;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom mit einer ersten Auflösung;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom basierend auf einem Teil der Szenerie (z. B. eine Szene oder ein Bereich) des Bilddatenstroms;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom basierend auf einer Filterungsoperation.
-
In einer Ausführungsform ergibt die erste Kompressionsrate eine verlustlose Kompression oder eine verlustbehaftete Kompression des Bilddatenstroms.
-
In einer Ausführungsform umfasst die erste Auflösung wenigstens eines der Folgenden:
- – eine verringerte Pixelmenge im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Pixelgenauigkeit im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Menge an Bildern pro Zeit im Vergleich zu den Bildern pro Zeit des Bilddatenstroms.
-
In einer Ausführungsform ist die zweite Verarbeitungseinheit zum Bereitstellen wenigstens eines der Folgenden eingerichtet:
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom mit einer zweiten Kompressionsrate;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom mit einer zweiten Auflösung;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom basierend auf einem Teil der Szenerie des Bilddatenstroms;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom basierend auf einer Filterungsoperation.
-
In einer Ausführungsform ergibt die zweite Kompressionsrate eine verlustlose Kompression oder eine verlustbehaftete Kompression des Bilddatenstroms.
-
In einer Ausführungsform umfasst die zweite Auflösung wenigstens eines der Folgenden:
- – eine verringerte Pixelmenge im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Pixelgenauigkeit im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Menge an Bildern pro Zeit im Vergleich zu den Bildern pro Zeit des Bilddatenstroms.
-
In einer Ausführungsform wird der Teil der Szenerie des Bilddatenstroms über Bildverarbeitung bestimmt, insbesondere Bereichsextraktion.
-
In einer Ausführungsform umfasst die Filterungsoperation wenigstens eines der Folgenden:
- – eine Tiefpassfilterung;
- – eine Hochpassfilterung;
- – eine Unschärfefilterung;
- – eine Faltungsfilterung.
-
In einer Ausführungsform wird der erste Datenstrom basierend auf dem Bilddatenstrom zeilenweise durch Verarbeiten von Bildern des Bilddatenstroms bestimmt.
-
In einer Ausführungsform wird der zweite Datenstrom basierend auf dem Bilddatenstrom durch zeilenweises Verarbeiten der Bilder des Bilddatenstroms bestimmt.
-
In einer Ausführungsform ist eine Erfassungsrate der ersten Verarbeitungseinheit und eine Erfassungsrate der zweiten Verarbeitungseinheit jeweils konfigurierbar.
-
In einer Ausführungsform weist der erste Datenstrom im Vergleich mit dem Bilddatenstrom eine unterschiedliche Anzahl von Bildern pro Zeitintervall auf.
-
In einer Ausführungsform weist der zweite Datenstrom im Vergleich mit dem Bilddatenstrom eine unterschiedliche Anzahl von Bildern pro Zeitintervall auf.
-
In einer Ausführungsform umfasst die Vorrichtung einen Speicher zum wenigstens teilweisen Speichern des ersten Datenstroms und des zweiten Datenstroms.
-
In einer Ausführungsform ist dieser besagte Speicher ein geteilter Speicher, wobei die erste Verarbeitungseinheit mit einem ersten Teil des geteilten Speichers verbunden ist und die zweite Verarbeitungseinheit mit einem zweiten Teil des geteilten Speichers verbunden ist.
-
In einer Ausführungsform umfasst dieser Speicher einen Direktzugriffsspeicher.
-
In einer Ausführungsform sind die erste Verarbeitungseinheit, die zweite Verarbeitungseinheit und der Direktzugriffsspeicher auf einem einzelnen Chip angeordnet.
-
In einer Ausführungsform umfasst die Vorrichtung wenigstens eine Schnittstelle, die zum Zugreifen auf den Speicher und zum Umwandeln von Daten des ersten Datenstroms und des zweiten Datenstroms in ein vordefiniertes Format eingerichtet ist.
-
In einer Ausführungsform umfasst das vordefinierte Format eine Anzahl von durch eine Steuerung benutzten Bit, die zum Verarbeiten von Bildern aus dem ersten Datenstrom und dem zweiten Datenstrom eingerichtet ist.
-
Es wird eine Vorrichtung vorgeschlagen
- – umfassend eine erste Verarbeitungseinheit gekoppelt an einen Eingangsbilddatenstrom,
- – wobei die erste Verarbeitungseinheit zum Bereitstellen eines ersten Datenstroms eingerichtet ist,
- – wobei der erste Datenstrom im Vergleich zum Eingangsdatenstrom eine verringerte Bandbreite aufweist;
- – umfassend eine zweite Verarbeitungseinheit gekoppelt an den Eingangsbilddatenstrom,
- – wobei die zweite Verarbeitungseinheit zum Bereitstellen eines zweiten Datenstroms eingerichtet ist, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – umfassend einen Speicher zum wenigstens teilweisen Speichern des ersten Datenstroms und des zweiten Datenstroms.
-
In einer Ausführungsform sind die Komponenten der Bildvorverarbeitungsstufe auf einem einzelnen Chip angeordnet und wobei der Speicher ein auf dem einzelnen Chip angeordneter Direktzugriffsspeicher ist.
-
Es wird ein Verfahren vorgeschlagen zum Verarbeiten eines Bilddatenstroms umfassend folgende Schritte:
- – Bereitstellen eines ersten Datenstroms, wobei der erste Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – Bereitstellen eines zweiten Datenstroms, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – wobei der erste Datenstrom durch eine erste Verarbeitungseinheit bereitgestellt wird und der zweite Datenstrom durch eine zweite Verarbeitungseinheit bereitgestellt wird.
-
In einer Ausführungsform, das Verfahren umfassend den Schritt:
- – wenigstens teilweise Speichern des ersten Datenstroms und des zweiten Datenstroms in einem Speicher.
-
In einer Ausführungsform umfasst der Schritt des Bereitstellens des ersten Datenstroms wenigstens eines der Folgenden:
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom mit einer ersten Kompressionsrate;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom mit einer ersten Auflösung;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom basierend auf einem Teil der Szenerie des Bilddatenstroms;
- – Erzeugen des ersten Datenstroms aus dem Bilddatenstrom basierend auf einer Filterungsoperation.
-
In einer Ausführungsform umfasst die erste Auflösung wenigstens eines der Folgenden:
- – eine verringerte Pixelmenge im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Pixelgenauigkeit im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Menge von Bildern pro Zeit im Vergleich mit den Bildern pro Zeit des Bilddatenstroms.
-
In einer Ausführungsform umfasst der Schritt des Bereitstellens des zweiten Datenstroms wenigstens eines der Folgenden:
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom mit einer zweiten Kompressionsrate;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom mit einer zweiten Auflösung;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom basierend auf einem Teil der Szenerie des Bilddatenstroms;
- – Erzeugen des zweiten Datenstroms aus dem Bilddatenstrom basierend auf einer Filterungsoperation.
-
In einer Ausführungsform umfasst die zweite Auflösung wenigstens eines der Folgenden:
- – eine verringerte Pixelmenge im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Pixelgenauigkeit im Vergleich mit den Bildern des Bilddatenstroms;
- – eine verringerte Menge von Bildern pro Zeit im Vergleich mit den Bildern pro Zeit des Bilddatenstroms.
-
Ein System wird bereitgestellt zum Verarbeiten eines Bilddatenstroms umfassend:
- – Mittel zum Bereitstellen eines ersten Datenstroms, wobei der erste Datenstrom im Vergleich mit dem Bilddatenstrom eine verringerte Bandbreite aufweist;
- – Mittel zum Bereitstellen eines zweiten Datenstroms, wobei der zweite Datenstrom im Vergleich mit dem Bilddatenstrom eine verringerte Bandbreite aufweist.
-
Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und dargestellt. Die Zeichnungen dienen zur Erläuterung des Grundprinzips, so dass nur zum Verständnis des Grundprinzips notwendige Aspekte dargestellt sind. Die Zeichnungen sind nicht maßstabgerecht. In den Zeichnungen bezeichnen die gleichen Bezugszeichen gleich Merkmale.
-
1 zeigt ein beispielhaftes Schaltbild, so wie es in einer ADAS-Anwendung benutzt werden kann.
-
2 zeigt ein beispielhaftes Schaltbild einer Bildverarbeitungsarchitektur.
-
3 zeigt eine beispielhafte Architektur mit mehreren Pixelwegen, die parallel angeordnet sind.
-
4 zeigt eine beispielhafte Architektur mit den Pixelwegen der 3, wobei die Datenströme in einem, insbesondere als ein eingebetteter RAM realisierten Speicher gespeichert sind.
-
Der dargestellte Ansatz bietet insbesondere eine Architektur eines Bildvorverarbeitungsprozessors mit geringem Bedarf an Speicher. Die Lösung kann insbesondere in einem Fahrerassistenzsystem (ADAS – Advanced Driver Assistance System) benutzt werden.
-
Bildverarbeitung für ADAS kann mehrere Verarbeitungswege benutzen, wobei wenigstens zwei der Verarbeitungswege parallel zueinander angeordnet sein können. Der Bildspeicher kann einen Direktzugriffsspeicher (RAM – Random Access Memory) umfassen, was als ein Schlüsselfaktor für die Kosten von ADAS-Vorrichtungen erachtet wird.
-
Eine erste Ausführungsform betrifft eine Vorrichtung zur Verarbeitung eines Bilddatenstroms umfassend eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit zum Empfangen des Bilddatenstroms; wobei die erste Verarbeitungseinheit zum Bereitstellen eines ersten Datenstroms eingerichtet ist, wobei der erste Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist; und wobei die zweite Verarbeitungseinheit zum Bereitstellen eines zweiten Datenstroms eingerichtet ist, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist.
-
Ein Bilddatenstrom kann durch eine Bildaufzeichnungsvorrichtung, z. B. eine Kamera, bereitgestellte beliebige Daten umfassen. Der Bilddatenstrom umfasst mit einer bestimmten Rate aufgenommene Abbildungen oder Bilder. Eine Datenrate der Bilddatenströme ist von der Größe der aufgenommenen Bilder und von deren Menge abhängig, d. h. wie häufig die Bilder pro Zeitintervall aufgezeichnet werden. Der Bilddatenstrom kann durch wenigstens eine Kamera bereitgestellt werden. Der Bilddatenstrom kann durch eine Kameraschnittstelle vorverarbeitet worden sein, wobei eine solche Vorverarbeitung insbesondere Dekomprimierung umfassen kann.
-
Die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit können physikalisch getrennte Verarbeitungsinstanzen sein, die insbesondere auf einem Einzelchip oder auf mehreren Chips eingesetzt werden können. Jede Verarbeitungseinheit baut einen auch als Pixelweg bezeichneten Verarbeitungsweg auf. Es kann zwei oder mehr Verarbeitungseinheiten geben, die den Datenstrom verarbeiten.
-
Die Komprimierungsrate der ersten Verarbeitungseinheit und die Komprimierungsrate der zweiten Verarbeitungseinheit können eingestellt werden oder der Auslegung unterliegen.
-
Eine zweite Ausführungsform betrifft eine Vorrichtung umfassend eine erste an einen Eingangsbilddatenstrom gekoppelte Verarbeitungseinheit, wobei die erste Verarbeitungseinheit zum Bereitstellen eines ersten Datenstroms eingerichtet ist, wobei der erste Datenstrom im Vergleich zum Eingangsbilddatenstrom eine verringerte Bandbreite aufweist; umfassend eine zweite an den Eingangsbilddatenstrom gekoppelte Verarbeitungseinheit, wobei die zweite Verarbeitungseinheit zum Bereitstellen eines zweiten Datenstroms eingerichtet ist, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist; und umfassend einen Speicher zum wenigstens teilweisen Speichern des ersten Datenstroms und des zweiten Datenstroms.
-
Eine dritte Ausführungsform betrifft ein Verfahren zum Verarbeiten eines Bilddatenstroms umfassend die folgenden Schritte:
- – Bereitstellen eines ersten Datenstroms, wobei der erste Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – Bereitstellen eines zweiten Datenstroms, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist;
- – wobei der erste Datenstrom durch eine erste Verarbeitungseinheit bereitgestellt wird und der zweite Datenstrom durch eine zweite Verarbeitungseinheit bereitgestellt wird.
-
Eine vierte Ausführungsform richtet sich auf ein System zum Verarbeiten eines Bilddatenstroms umfassend: Mittel zum Bereitstellen eines ersten Datenstroms, wobei der erste Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist; und Mittel zum Bereitstellen eines zweiten Datenstroms, wobei der zweite Datenstrom im Vergleich zum Bilddatenstrom eine verringerte Bandbreite aufweist.
-
1 zeigt ein beispielhaftes Schaltbild, so wie es in einer ADAS-Anwendung benutzt werden könnte. Ein (auch als Bildstrom oder (Bild-)Datenstrom bezeichneter) Videostrom 101 mit einer 120 MByte/s übertragenen Datenrate wird in eine Kameraschnittstelle 102 eingespeist, die diesen Videostrom 101 dekomprimieren kann und den dekomprimierten Strom in eine Grobbilderfassungseinheit 103 und eine Hochpräzisions-Bilderfassungseinheit 104 einspeisen kann.
-
Die Grobbilderfassungseinheit 103 verarbeitet den Eingangsstrom und stellt einen die volle Szenerie (d. h. 100% des Bildes) mit verringerter Auflösung umfassenden Strom 109 bereit. Der Strom 109 wird in einem Speicher 105 gespeichert. Eine zweite Stufe kann die Daten dieses im Speicher 105 gespeicherten Stroms 109 über einen Strom 107 mit einer z. B. bis zu 15 MByte/s betragenden Datenrate nutzen.
-
Die Hochpräzisions-Bilderfassungseinheit 104 verarbeitet den Eingangsstrom und stellt einen eine verringerte Szenerie (z. B. 30% oder 50% der Szenerie des im Strom 101 enthaltenen Bildes) mit ihrer vollen Auflösung umfassenden Strom 110 bereit. Der Strom 110 wird in einem Speicher 106 gespeichert. Eine nächste Stufe kann die Daten dieses in dem Speicher 106 gespeicherten Stroms 110 über einen Strom 108 mit einer bis zu z. B. 60 MByte/s betragenden Datenrate benutzen.
-
Daher kann das in 1 gezeigte Beispiel in einer Einzelchip-ADAS-Vorrichtung mit zwei Erfassungswegen benutzt werden: einem das gesamte Bild oder die gesamte Szenerie des Eingangsstroms 101 deckenden niedriger Auflösung und einem weiteren einen Teil des Gesamtbildes oder der gesamten Szenerie des Eingangsstroms 101 deckenden hoher Auflösung.
-
Es ist zu bemerken, dass der Einzelchip ein einzelnes Substrat, einzelner Chip, Wafer oder Silizium sein kann.
-
Der hier dargestellte Ansatz erlaubt insbesondere Verringern der Last eines Prozessors (z. B. ZE oder Signalisierungsprozessors) während einer Bildvorverarbeitung unter Verwendung einer verringerten Speichergröße (besonders RAM). Dies kann für kamerabasierende ADAS-Anwendungen nützlich sein. Die Lösung ist insbesondere nutzbringend, da zukünftige Generationen von Kameras Sensoren noch höherer Auflösung aufweisen und damit Bildströme mit noch höherer Datenrate bereitstellen.
-
Die gebotene Lösung adressiert damit insbesondere erhöhte RAM-Erfordernisse in ADAS-Anwendungen. Entsprechend dem gebotenen Ansatz kann die erforderliche Speichermenge bedeutsam verringert werden (unter in Betrachtziehung der gleichen Datenrate von Videoströmen). Bei Videoströmen mit zunehmenden Datenraten kann der zusätzliche Betrag an erforderlichem Speicher verringert werden. Es ist zu bemerken, dass Verringern des erforderlichen RAM-Betrags auch bedeutet, dass eine Fläche auf dem Silizium für eine Einzelchiplösung verringert werden kann und entweder einen kleineren Einzelchip oder einen Einzelchip der gleichen Größe mit gesteigerter Leistung ergeben kann. Beide Wirkungen sind nutzbringend und kostengünstig.
-
2 zeigt ein beispielhaftes Schaltschema einer Bildverarbeitungsarchitektur. Ein (z. B. komprimierter) Datenstrom 201 mit einer Datenrate von 120 MByte/s wird in eine Kameraschnittstelle 202 eingespeist, die den Datenstrom 201 dekomprimiert und einen (dekomprimierten) Datenstrom 206 mit einer Datenrate bis zu 200 MByte/s einer Verarbeitungseinheit 203 zuführt. Es ist zu bemerken, dass der Datenstrom 201 ein komprimierter oder ein nichtkomprimierter Datenstrom sein kann.
-
Die Verarbeitungseinheit 203 kann wenigstens eines der Folgenden bereitstellen:
- – wenigstens zwei komprimierte Datenströme mit verschiedenen Kompressionsraten,
- – wenigstens einer der komprimierten Datenströme ist hoher Auflösung;
- – wenigstens einer der komprimierten Datenströme ist verringerter (z. B. niedriger) Auflösung;
- – wenigstens einer der komprimierten Datenströme umfasst die volle Abbildung oder Szenerie des Datenstroms 206;
- – wenigstens einer der komprimierten Datenströme umfasst einen Teil der Abbildung oder Szenerie des Datenstroms 206;
- – wenigstens einen gefilterten komprimierten Datenstrom.
-
Der Teil der Abbildung oder Szenerie kann sich z. B. auf einen Teil einer Abbildung beziehen, die oberhalb oder unterhalb des Horizonts liegt. Dies kann insbesondere für von einer voranliegenden Straße aufgenommene Bilder oder Videos nützlich sein, da die Straße oft in einem Bereich unterhalb des Horizonts liegen kann. Zum Bestimmen dieses Teils der Abbildung oder Szenerie könnten Gewinnungsmechanismen und Abbildungsverarbeitungsalgorithmen benutzt werden.
-
In dieser Hinsicht kann sich Auflösung auf die Anzahl von pro Pixel benutzten Bit beziehen (auch als Pixelgenauigkeit oder Pixelpräzision bezeichnet) und/oder auf die für die Abbildung (eines Videos) benutzte Anzahl von Pixeln: Beispielsweise kann ein Videostrom mit einer Auflösung von 1280×720 Pixeln mit jedem Pixel mit 16 Bit auf z. B.
- – 1024×576 Pixel mit jedem Pixel mit 16 Bit, d. h. einer kleineren Menge Pixel und/oder
- – 1280×720 Pixel mit jedem Pixel mit 8 Bit, d. h. einer geringeren Pixelgenauigkeit, verringert werden.
-
Natürlich sind die obigen Figuren nur Beispiele; es können andere Auflösungen wie auch Bildseitenverhältnisse benutzt werden. Auch kann die Verringerung der Pixelmenge und die Verringerung der Pixelgenauigkeit in Abhängigkeit von einem bestimmten Benutzungsfallszenario kombiniert werden.
-
Im Ergebnis liefert die Verarbeitungseinheit 203 mehrere Datenströme 204, 205 zur Weiterverarbeitung. Die kombinierte Datenrate (betragend z. B. 20 MByte/s bis 30 MByte/s) der Datenströme 204, 205 kann im Vergleich zur Datenrate des Stroms 206 bedeutsam verringert werden. Jeder der Datenströme 204, 205 kann vorzugweise aus einer gegebenen Art von komprimiertem Video entsprechend den Möglichkeiten der Verarbeitungseinheit 203 gebildet werden.
-
Beispielsweise können hochgenaue Algorithmen basierend auf Hochpräzisionsvideo benutzt werden, so dass die durch die Verarbeitungseinheit 203 bereitgestellte Ausgabe im Vergleich zur Datenrate ihrer Eingabe (d. h. dem Datenstrom 206) wesentlich verringert werden kann.
-
Daher kann die Lösung insbesondere Hardware bereitstellen, die zur Bildverarbeitung in ADAS mit jeweils mehreren Datenflüssen und hoher Datenkomprimierung benutzt werden kann. Auch kann Hochpräzisionsverarbeitung für eine verbesserte Datenverringerung benutzt werden.
-
Eine solche Hardware kann als physikalisch getrennte Pixelwege angeordnet sein, wobei jeder Pixelweg Vorverarbeitung von Videodaten ermöglicht. Basierend auf einer derartigen Hardwarearchitektur können nachfolgende Verarbeitungsstufen eine verringerte Speichermenge bewältigen (z. B. eingebetteter RAM).
-
3 zeigt eine beispielhafte Architektur mit mehreren Pixelwegen, die parallel angeordnet sind. Ein komprimierter Datenstrom 301 wird in eine Kameraschnittstelle 302 eingespeist, die den Datenstrom 301 dekomprimiert und einen (dekomprimierten) Datenstrom 306 (volle Auflösung, Hochpräzisionspixel) den Verarbeitungseinheiten 303 bis 305 zuführt, wobei jede der Verarbeitungseinheiten 303 bis 305 Teil eines Pixelweges bildet.
-
Die Verarbeitungseinheiten 303 bis 305 sind zum Verarbeiten von Bildern eingerichtet, insbesondere durch Verwendung von Hardware-Beschleunigern, auf einer Weise, die Verringern von RAM-Erfordernissen in nachfolgenden Verarbeitungsstufen erlaubt.
-
Jede der Verarbeitungseinheiten 303 bis 305 kann zum Bereitstellen wenigstens eines der Folgenden eingerichtet sein:
- – Bereitstellen eines Datenstroms mit einer bestimmten Kompressionsrate, wobei die Kompressionsraten unter den Verarbeitungseinheiten 303 bis 305 wenigstens teilweise gleich sein können oder sie wenigstens teilweise unterschiedlich sein können;
- – eines komprimierten Datenstroms hoher Auflösung;
- – eines komprimierten Datenstroms verringerter (z. B. niedriger) Auflösung;
- – eines komprimierten Datenstroms mit der vollen Abbildung oder Szenerie des Datenstroms 306;
- – eines komprimierten Datenstroms mit einem Teil (z. B. einer Einzelheit) der Abbildung oder Szenerie des Datenstroms 306;
- – einer Filterungsoperation.
-
Daher wird durch jede der Verarbeitungseinheiten 303 bis 305 ein Datenstrom 307 bis 309 zur Weiterverarbeitung bereitgestellt. Aufgrund ihrer Kompression können die Datenströme 307 bis 309 zusammen eine bedeutend niedrigere Datenrate als der Datenstrom 306 aufweisen. Die Datenströme 307 bis 309 können insbesondere unterschiedlicher Auflösung (Anzahl von Pixeln und/oder Pixelauflösung) sein und/oder unterschiedliche Teile (Einzelheiten) des Eingangsdatenstroms 306 umfassen. Zusätzlich kann jeder der Datenströme 307 bis 309 wenigstens einer Filterungsoperation unterworfen sein, z. B. zum Bestimmen eines Infrarotinhalts in der Abbildung oder in dem Teil der Abbildung. Diese Möglichkeiten können kombiniert werden, um zutreffende Datenströme 307 bis 309 zuzuführen, die einen Speicher wirkungsvoll benutzen und nachfolgenden Verarbeitungsstufen die Benutzung der aus dem Datenstrom 306 erhaltenen Informationen auf zeit- und speichereffiziente Weise erlauben könnten.
-
Die gebotene Lösung kann in einem ADAS-bezogenen Bildprozessor implementiert sein oder Teil desselben sein. Dieser Bildprozessor kann in der Lage sein, die Ausgangsdatenrate und Größe bedeutsam zu verringern, so dass Berechnungserfordernisse und Speichererfordernisse ohne oder mit begrenztem Kompromiss hinsichtlich der Ausgangsgüte und Präzision von an einen Universal-Bildprozessor weitergeleiteten Informationen (z. B. die Steuerung 402 von 4, siehe unten) optimiert werden. Der Bildprozessor ist in der Lage, mehrere Darstellungen einer durch wenigstens einen Sensor erfassten Szene bereitzustellen, so dass der zum Speichern solcher Darstellungen erforderliche Speicher bedeutsam verringert werden kann.
-
Jede der Verarbeitungseinheiten 303 bis 305 kann Teil eines solchen, Daten für den Universal-Bildprozessor bereitstellenden Bildprozessors sein. Mehrere Darstellungen einer Szenerie basierend auf dem Datenstrom 306 können durch die Verarbeitungseinheiten 303 bis 305 erzeugt werden. Jede der Verarbeitungseinheiten 303 bis 305 kann durch den Universal-Bildprozessor ausgeführte ADAS-Algorithmen verwenden. Eine Erfassungsrate jeder Darstellung kann wahlweise der Konfiguration unterworfen sein.
-
Die Datenströme 307 bis 309 können in einem gemeinsam benutzten Speicher gespeichert sein. Als Wahlmöglichkeit kann jeder der Datenströme 307 bis 309 in unterschiedlichen Teilen eines (gemeinsam benutzten) Speichers gespeichert sein.
-
Eine weitere Wahlmöglichkeit ist, dass wenigstens ein Datenstrom 307, 308 oder 309 eine Ausgangsrate aufweist, die sich von wenigstens einem anderen Datenstrom unterscheidet. Zusätzlich kann ein Datenstrom 307, 308 oder 309 mehrere Ausgangsraten aufweisen, d. h. er kann eine komprimierte Abbildung in mehreren Zeitmomenten bereitstellen, z. B. jeden n-ten und jeden m-ten Taktzyklus. Anders gesagt kann die komprimierte Abbildung einmal pro Zeitintervall oder mehrere Male in einem solchen Zeitintervall bestimmt und/oder gespeichert werden.
-
Ein durch wenigstens eine der Verarbeitungseinheiten 303 bis 305 benutzter Algorithmus kann wenigstens eines der folgenden umfassen:
- – eine Komprimierung des ankommenden Datenstroms;
- – Gebietgewinnung;
- – verlustlose Heruntertaktung;
- – Filterung, insbesondere Faltungsfilterung; und
- – Pixelgrößenverringerung.
-
Diese Algorithmen sind nur Beispiele, die Algorithmen können der Auslegung unterworfen sein, z. B. durch einen Benutzer oder automatisiert. Dementsprechend können andere Algorithmen zur Bildverarbeitung und/oder Filterung benutzt werden.
-
Beispielsweise könnten bekannte Bildkompressionsalgorithmen wie MPEG oder H.26x durch wenigstens eine der Verarbeitungseinheiten 303 bis 305 benutzt werden.
-
Nach einem Beispiel kann die Verarbeitungseinheit 303 eine komprimierte Abbildung erzeugen, die die gesamte Szenerie, so wie sie durch den Datenstrom 306 zugeführt wird, darstellt, aber mit einer verringerten Anzahl von Pixeln und mit einer Pixelgenauigkeit von 16 Bit pro Pixel zum Gewinnen einer Lage eines Horizonts im Datenstrom 306 und zum Analysieren einer Bildhelligkeit. Die Verarbeitungseinheit 304 kann eine komprimierte Abbildung basierend auf Verwendung eines Trübungsfilters (basierend auf der gesamten Szenerie mit einer verringerten Pixelmenge und verringerter Pixelgenauigkeit) erzeugen. Die Verarbeitungseinheit 305 kann eine komprimierte Abbildung basierend auf der Verwendung von konfigurierbaren Faltungsfilter(n) zur Randerkennung (z. B. zur Fahrspurerkennung und/oder für Kollisionswarnungszwecke) erzeugen. Die Verarbeitungseinheiten 303 bis 305 erzeugen diese Bilder in der gleichen oder in unterschiedlichen Zeitintervallen mit dem Ergebnis von Datenströmen 307 bis 309 mit gleichen oder unterschiedlichen Datenraten (ebenfalls abhängig von der Größe jeder Abbildung des jeweiligen Datenstroms 307 bis 309).
-
Die vorgeschlagene Lösung ermöglicht leichte Software-Aufteilung zwischen generischer Bildkompression fokussiert auf Vorverarbeitung und Abbildungs-Nachverarbeitung durch den Universalprozessor (Verarbeitung der nächsten Stufe, siehe z. B. Steuerung 402 in 4).
-
Es besteht eine Wahlmöglichkeit, dass Verarbeitung, insbesondere durch Hardware-Beschleuniger, zeilenbasierend oder abbildungsbasierend durchgeführt werden kann. Beispielsweise kann zeilenbasierende Verarbeitung zum Verringern des zum Puffer erforderlichen Speichers benutzt werden.
-
Eine weitere Wahlmöglichkeit ist, dass jede der Verarbeitungseinheiten 303 bis 305 (oder wenigstens einige derselben) eine verlustlose Heruntertaktungsstufe umfasst.
-
Eine weitere Wahlmöglichkeit besteht darin, dass die wenigstens eine der Verarbeitungseinheiten 303 bis 305 eine Ausgabe mit unterschiedlichen Bildraten bereitstellen kann, die ebenfalls eine bedeutende Auswirkung auf die Datenrate jedes der Datenströme 307 bis 309 aufweisen können. Beispielsweise können die Verarbeitungseinheiten 304 und 305 die Datenströme 306 verarbeiten und eine Ausgabe mit einer gewissen Taktrate bereitstellen, d. h. nach Zeitintervallen einer Länge t. Die Verarbeitungseinheit 303 kann eine andere Operation durchführen, die z. B. komplex sein oder weniger häufig erfordert sein kann und sie kann das Ergebnis ihrer Verarbeitung mit einer unterschiedlichen Taktrate bereitstellen, z. B. mit einem 2t betragenden Zeitintervall, im vorliegenden Beispiel jedem zweiten Zeitintervall t im Vergleich mit den durch die Verarbeitungseinheiten 304 und 305 bereitgestellten Ergebnissen. Daher kann basierend auf der Verarbeitungsfähigkeit jeder Verarbeitungseinheit 303 bis 305 und/oder dem Szenario des Benutzungsfalls die Arbeitslast des Verarbeitens des Datenstroms 306 in Richtung verschiedener Ziele wirkungsvoll unter den Pixelwegen verteilt werden, d. h. den Verarbeitungseinheiten 303 bis 305.
-
Auch kann es eine Wahlmöglichkeit sein, Verarbeitung wenigstens einer der Verarbeitungseinheiten 303 bis 305 durch ein externes Signal und/oder eine externe Konfigurationsmarkierung zu ermöglichen, so dass das externe Signal und/oder die externe Konfigurationsmarkierung definieren kann, welche Verarbeitungseinheit(en) die erfasste Abbildung vorverarbeiten wird/werden, wenn eine nachfolgende Abbildung erfasst wird. Beispielsweise kann eine Änderung des durch einen Sensor bestimmten Lichtzustandes zum Starten oder Neustarten wenigstens einer der Verarbeitungseinheiten 303 bis 305 benutzt werden.
-
Nutzbringenderweise verwenden die dargestellten Beispiele Pixelwege zum Bereitstellen wirkungsvoller Vorverarbeitung entsprechend Benutzungsfallerfordernissen. Die Datenrate des Eingangsdatenstroms 306 wird durch die Kombination der durch die Verarbeitungseinheiten 303 bis 305 zugeführten Datenströme 307 bis 309 wesentlich verringert. Daher kann der Betrag an Speicherung (z. B. Fläche auf einem für RAM benutzten Chip) bedeutsam verringert werden oder – als Alternative – können höhere Datenraten (z. B. mehr Pixelwege) verarbeitet werden, was entweder kostengünstigere Produkte oder Produkte höherer Leistung unter Verwendung des gleichen Chipbereichs ergibt. Dies ist besonders nützlich für eingebetteten RAM benutzende Einzelchiplösungen.
-
Beispiele: Umwandlung über Schnittstelle
-
4 zeigt eine beispielhafte Architektur mit den Pixelwegen der 3, wobei die Datenströme 307 bis 309 in einem Speicher 401 (besonders einem eingebetteten RAM) gespeichert werden.
-
Es werden eine Schnittstelle 403 und/oder eine Schnittstelle 404 bereitgestellt, um Informationen über die Datenströme 307 bis 309 aus dem Speicher 401 zu erhalten und sie in ein Format umzuwandeln, das für eine Steuerung 402 zur Verarbeitung geeignet und/oder wirkungsvoll ist. Die Steuerung 402 und die Schnittstellen 403, 404 sind über einen Bus 405 gekoppelt. Die Steuerung 402 kann eine Zentraleinheit, ein Signalprozessor, eine Mikrosteuerung oder dergleichen sein oder diese umfassen.
-
Die im Speicher 401 gespeicherten Datenströme 307 bis 309 können z. B. eine Pixelgenauigkeit aufweisen, die 8 Bit beträgt, aber die Steuerung 402 kann wirkungsvoll mit 16 Bit anstatt von 8 Bit arbeiten. Daher können die Schnittstellen 403 und 404 (jeweils oder zusammengenommen) eine Umwandlung von 8 Bit zu 16 Bit bereitstellen, damit die Steuerung 402 die Datenströme 307 bis 309 (oder Teile derselben) wirkungsvoll verarbeiten kann.
-
Der Ansatz der Umwandlung weist den Vorteil auf, dass der Speicher 401 noch wirkungsvoll benutzt werden kann, da 8-Bit-Bilddaten durch die Schnittstellen 403, 404 in 16-Bit-Bilddaten umgeformt werden und keine solchen 16-Bit-Bilddaten im Speicher 401 gespeichert werden müssen.
-
Daher können die Schnittstellen 403 und 404 so ausgelegt sein, dass Pixelinformationen nach mindesterforderlicher Präzision gespeichert werden können und sie in ein für die Steuerung 402 geeignetes Format umgeformt werden können.
-
Es ist zu bemerken, dass wenigstens eine derartige Schnittstelle für Umwandlungszwecke bereitgestellt werden kann. Auch können mehrere Schnittstellen 403 und 404 benutzt werden. Als Wahlmöglichkeit ist die Schnittstelle 403 eingerichtet, Pixel in dem im Speicher 401 gespeicherten Format zu lesen und leitet diese Pixel ohne Umwandlung zur Steuerung 402 weiter. Auch ist es eine Wahlmöglichkeit, dass die Schnittstelle 404 eingerichtet ist, im Speicher 401 gespeicherte Pixel zu lesen und wandelt sie in dem für die Steuerung 402 geeigneten Format um und leitet die umgewandelten Pixel zur Steuerung 402 weiter.
-
Die Umwandlung kann eine Aufwärtswandlung, z. B. von 8 Bit zu 16 Bit oder von 4 Bit zu 16 Bit umfassen. Die Umwandlung kann auch eine Abwärtswandlung umfassen, z. B. von 32 zu 16 Bit oder dergleichen.
-
Weitere Vorteile und Beispiele
-
Die dargestellte Lösung ermöglicht eine nutzbringende Hardwarekonfiguration zum Abdecken von z. B. kamerabasierendem ADAS mit verringerten RAM-Erfordernissen. Beispielsweise kann ein Sensor mit 1280×720 Pixeln einen 1,8-MByte-RAM-Puffer erfordern. Durch Verringern der Datenrate des Datenstroms kann der erforderliche RAM auf 690 kByte verringert werden, was mehr als 1,1 MByte RAM spart. Dies entspricht einem Bereich von 4 Quadratmillimetern Siliziumfläche in 40 nm und ergibt eine Verringerung auf 1/3.
-
Verwendung von Hardware-Beschleunigern ermöglicht nutzbringenderweise einen hohen Energiewirkungsgrad, was auch die Lebensdauer beigefügter Bauteile wie z. B. (Signal-)Prozessoren verlängern kann.
-
Die dargestellte Lösung ermöglicht weiterhin Verwenden des gleichen Siliziums zum Abdecken von Radar- und Bildverarbeitung, da 1 MByte RAM zur Verarbeitung von Radar- und Bilddaten ausreichen kann.
-
Die dargestellte Lösung kann in dem Gebiet des Personentransports oder in Industrieanwendungen anwendbar sein. Sie ist besonders nützlich, wenn sie in beweglichen Instanzen ausgeführt wird, z. B. Fahrzeugen beliebiger Art, insbesondere dort, wo es bedeutsam ist, ihre Umgebung zu erfassen und/oder zu überwachen und/oder Einzelheiten ihrer Umgebung zu bestimmen.
-
Die vorgeschlagene Architektur könnte in Verbindung mit einem ADAS-Vorprozessor benutzt werden, was eine bedeutsame Speicherverringerung erlaubt. Dies kann besonders hinsichtlich wenigstens einer der folgenden Anwendungen nutzbringend sein: Fernlichtunterstützung, Spurabweichungswarnung, Frontalkollisionswarnung.
-
Auch kann der Ansatz aufgrund seiner geringen Speichererfordernisse zum Optimieren oder Verringern von Stromverbrauch benutzt werden.
-
Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart worden sind, wird dem Fachmann offenbar sein, dass verschiedene Änderungen und Abänderungen durchgeführt werden können, die einige der Vorteile der Erfindung erreichen, ohne aus dem Wesen und Schutzbereich der Erfindung zu weichen. Dem einigermaßen Sachkundigen wird offenbar sein, dass andere, die gleichen Funktionen durchführende Komponenten passend substituiert werden können. Es sollte erwähnt werden, dass unter Bezugnahme auf eine bestimmte Figur erläuterte Merkmale mit Merkmalen anderer Figuren kombiniert werden können, selbst in denjenigen Fällen, in denen dies nicht ausdrücklich erwähnt worden ist. Weiterhin können die Verfahren der Erfindung entweder in vollständigen Software-Ausführungen unter Verwendung der zutreffenden Prozessoranweisungen erreicht werden, oder in Hybrid-Ausführungen, die eine Kombination von Hardware-Logik und Software-Logik zum Erreichen derselben Ergebnisse nutzen. Derartige Abänderungen des erfindungsgemäßen Konzepts sollen durch die beiliegenden Ansprüche abgedeckt sein.