-
HINTERGRUND
-
Der hier beschriebene Gegenstand betrifft im Allgemeinen das Feld der Bildverarbeitung und insbesondere Systeme und Verfahren für eine Stereobilderfassung.
-
Elektronische Vorrichtungen wie beispielsweise Mobiltelefone, persönliche digitale Assistenten, tragbare Computer und dergleichen können eine Kamera zum Erfassen von Bildern umfassen. Beispielsweise kann ein Mobiltelefon eine Kamera umfassen, welche auf dem Telefon angeordnet ist, um Bilder zu erfassen. Elektronische Vorrichtungen können mit einer Bildsignal-Verarbeitungs-Pipeline ausgestattet sein, um Bilder zu erfassen, welche von der Kamera aufgenommen werden, die Bilder zu verarbeiten und die Bilder im Speicher zu speichern und/oder die Bilder anzuzeigen.
-
Die Stereobilderfassung bezieht eine Verwendung von mindestens zwei Kameras zum Erzeugen eines Bildes ein. Die Stereobilderfassung bietet Bildgebungsmerkmale, welche bei einer herkömmlichen Bildgebung mit einer einzelnen Kamera nicht verfügbar sind. Folglich können Verfahren zum Ausrüsten elektronischer Vorrichtungen mit der Fähigkeit, eine Stereobildgebung zu implementieren, Anwendungen finden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die ausführliche Beschreibung wird unter Bezugnahme auf die begleitenden Figuren beschrieben.
-
1 ist eine Schemaansicht einer elektronischen Vorrichtung gemäß manchen Ausführungsformen.
-
2 ist eine Schemaansicht von Komponenten zur Verwendung bei einer Stereobilderfassung mit einer einzelnen Pipeline gemäß Ausführungsformen.
-
3 ist ein Ablaufdiagramm, welches ein Bildsignalprozessor-Multiplexen gemäß manchen Ausführungsformen illustriert.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Hier sind beispielhafte Systeme und Verfahren zur Stereobilderfassung in elektronischen Vorrichtungen beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Details ausgeführt, um ein gründliches Verständnis der verschiedenen Ausführungsformen bereitzustellen. Durchschnittsfachleute verstehen jedoch, dass die verschiedenen Ausführungsformen ohne die spezifischen Details in die Praxis umgesetzt werden können. In anderen Fällen können wohlbekannte Verfahren, Verfahrensweisen, Komponenten und Schaltungen nicht illustriert oder ausführlich beschrieben sein, um die bestimmten Ausführungsformen nicht zu verschleiern.
-
Bei manchen Ausführungsformen ermöglicht der hier beschriebene Gegenstand einer elektronischen Vorrichtung Bilder aus mehreren Kameramodulen aufzunehmen, ohne eine Notwendigkeit für unabhängige Bildsignal-Prozessorkanäle. Folglich ermöglichen die hier beschriebenen Systeme und Verfahren einer elektronischen Vorrichtung eine Stereobilderfassung von Bildern aus mehreren Kameramodulen durch eine einzelne Bildprozessor-Pipeline. Die Bildsignale können in einem Speicher gespeichert werden und/oder auf einer Anzeigevorrichtung angezeigt werden.
-
1 ist eine Schemaansicht einer elektronischen Vorrichtung, welche eingerichtet werden kann, um eine Stereobilderfassung gemäß manchen Ausführungsformen durchzuführen. Unter Bezugnahme auf 1 kann bei manchen Ausführungsformen eine elektronische Vorrichtung 110 als ein Mobiltelefon, ein PDA-Minicomputer (PDA) oder dergleichen ausgeführt werden. Die elektronische Vorrichtung 110 kann einen HF-Sendeempfänger 150 zum Übertragen von HF-Signalen und ein Signalverarbeitungsmodul 152 zum Verarbeiten von Signalen aufweisen, welche von dem HF-Sendeempfänger 150 empfangen werden.
-
Der HF-Sendeempfänger kann eine lokale drahtlose Verbindung über ein Protokoll implementieren, wie beispielsweise Bluetooth oder eine 802.11X. IEEE 802.11a-, b- oder g-konforme Schnittstelle (man siehe z. B. IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN-Part II: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 4: Further Higher Data Rate Extension in the 2.4 GHz Band, 802.11G-2003). Ein anderes Beispiel einer drahtlosen Schnittstelle wäre eine paketbasierte Datenübertragungsschnittstelle (GPRS, General Packet Radio Service) (man siehe z. B. Guidelines an GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, Dezember 2002).
-
Die elektronische Vorrichtung 110 kann weiterhin ein oder mehrere Prozessoren 154 und ein Speichermodul 156 aufweisen. Wie hier verwendet, bedeutet der Begriff „Prozessor” jeden Typ eines rechnerischen Elements, wie beispielsweise insbesondere einen Mikroprozessor, eine Mikrosteuerung, einen CISC-Mikroprozessor (CISC, Complex Instruction Set Computing), einen RISC-Mikroprozessor (RISC, Reduced Instruction Set), einen VLIW-Mikroprozessor (VLIW, Very Long Instruction Word) oder jeden anderen Typ eines Prozessors oder einer Verarbeitungsschaltung. Bei manchen Ausführungsformen kann der Prozessor 154 ein oder mehrere Prozessoren der Familie von Intel® PXA27x Prozessoren sein, welche von der Intel® Corporation in Santa Clara, Kalifornien, erhältlich sind. Ersatzweise können andere CPUs verwendet werden, wie beispielsweise Intels Itanium®, XEONTM, ATOMTM und Celeron® Prozessoren. Es können auch ein oder mehrere Prozessoren von anderen Herstellern eingesetzt werden. Ferner können die Prozessoren einen einzelnen Kern oder mehrere Kerne aufweisen. Bei manchen Ausführungsformen weist das Speichermodul 156 Direktzugriffsspeicher (RAM) auf; das Speicher-Modul 156 kann jedoch unter Verwendung anderer Speichertypen wie beispielsweise dynamisches RAM (DRAM), synchrones DRAM (SDRAM) und dergleichen implementiert werden. Die Elektronische Vorrichtung 110 kann weiterhin ein oder mehrere Eingangs-/Ausgangs-Schnittstellen aufweisen, wie beispielsweise ein Tastenfeld 158 und eine oder mehrere Anzeigen 160.
-
Bei manchen Ausführungsformen umfasst die elektronische Vorrichtung 110 mindestens zwei Kameramodule 162 und einen Bildsignalprozessor 164. Beispielhaft und nicht begrenzend können ein erstes Kameramodul 162 und ein zweites Kameramodul 162 einander benachbart auf der elektronischen Vorrichtung 110 derartig angeordnet sein, dass die Kameramodule 162 positioniert sind, Stereobilder zu erfassen. Gesichtspunkte der Kameramodule und des Bildsignalprozessors 164 sowie die dazugehörige Bildverarbeitungs-Pipeline werden unter Bezugnahme auf 2 bis 3 ausführlicher erklärt.
-
2 ist eine Schemaansicht von Komponenten zur Verwendung bei einer Stereobilderfassung gemäß Ausführungsformen. Unter Bezugnahme auf 2 kann bei manchen Ausführungsformen ein Bildsignalprozessor-(ISP)-Modul 164, wie in 1 illustriert, als ein integrierter Schaltkreis oder als eine Komponente davon oder als ein Chipsatz oder als ein Modul innerhalb eines Systems auf einem Chip (SOC) implementiert werden. Bei alternativen Ausführungsformen kann das ISP-Modul 164 als Logik, welche in einer programmierbaren Vorrichtung codiert ist, z. B. in einem feldprogrammierbaren Gate-Array (FPGA), oder als Logikanweisungen auf einem Universalprozessor oder als Logikanweisungen auf speziellen Prozessoren implementiert werden, wie beispielsweise einem digitalen Signalprozessor (DSP) oder SIMD-Vektorprozessoren (SIMD, Single Instruction Multiple Data).
-
Bei der in 2 dargestellten Ausführungsform umfasst das ISP-Modul 164 eine Bildverarbeitungsvorrichtung 210, welche wiederum einen ersten Kameraempfänger 222 und einen zweiten Kameraempfänger 224, eine Bildsignal-Verarbeitungsschnittstelle 226, eine Bildsignal-Verarbeitungs-Pipeline 228 und eine Speicherdirektzugriff-(DMA)-Engine 230 umfasst. Das ISP-Modul 164 ist mit dem Speichermodul 156 der Vorrichtung 110 gekoppelt oder kann es aufweisen. Das Speichermodul 156 unterhält einen ersten Frame-Puffer 242 und einen zweiten Frame-Puffer 244. Das Speichermodul 156 ist mit einem Grafikprozessor 250 und mit einem Codierer gekoppelt. Das Prozessormodul 154 der Vorrichtung 110 kann Logikanweisungen für die Kamerasteuerungseinheiten 230 und 232 ausführen, welche Betriebsparameter der ersten Kamera 162A bzw. der zweiten Kamera 162B steuern.
-
Bei manchen Ausführungsformen passt das ISP-Modul 164 die elektronische Vorrichtung 110 an, eine Stereobilderfassung mit einer einzelnen Pipeline zu implementieren. Bei derartigen Ausführungsformen können Stereobilder, welche von mehreren Kameramodulen 162A, 162B erfasst wurden, von einem Bildprozessor mit einer einzelnen Pipeline 228 verarbeitet werden. Dies ermöglicht eine Stereobilderfassung mit minimalen Veränderungen an herkömmlichen Bildprozessorarchitekturen mit einer einzelnen Pipeline.
-
Die Struktur und die Vorgänge der elektronischen Vorrichtung 110 werden unter Bezugnahme auf 2 bis 3 beschrieben. Bei manchen Ausführungsformen werden Bilder von einem ersten Kameramodul 162A in einen ersten Empfänger 222 (Operation 310) eingegeben, und Bilder von einem zweiten Kameramodul 162B werden in einen zweiten Empfänger 224 (Operation 315) eingegeben. Bei manchen Ausführungsformen können die Kameramodule 162A und 162B, auf welche hier manchmal zusammen durch das Bezugszeichen 162 verwiesen wird, eine optische Anordnung umfassen, z. B. eine oder mehrere Linsen, welche mit einer Bilderfassungsvorrichtung gekoppelt ist, z. B. an eine ladungsgekoppelte Vorrichtung (CCD) oder an eine komplementäre MOS-Vorrichtung (CMOS). Die Ausgabe der Erfassungsvorrichtung kann in dem Format eines Bayer-Frames geschehen. Die Ausgabe von Bayer-Frames aus der CCD- oder CMOS-Vorrichtung kann zeitlich abgetastet werden, um eine Reihe von Bayer-Frames zu produzieren, welche an die Empfänger 222, 224 geleitet werden. Auf diese unverarbeiteten Bild-Frames kann hier manchmal als Roh-Frames verwiesen werden. Durchschnittsfachleute erkennen, dass die Rohbild-Frames als ein Array oder eine Matrix von Datenwerten entsprechend den Ausgaben der CCD- oder CMOS-Vorrichtung in den Kameramodulen 162 ausgeführt werden können.
-
Die Roh-Bayer-Frames werden einer ISP-Schnittstelle 226 eingegeben, welche die Bilddaten in den Roh-Bayer-Frames kombiniert. Bei manchen Ausführungsformen geben die Kameraempfänger 222, 224 Bilddaten linienweise frei, und benachbarte Linien sind durch eine vertikale Austastungsperiode getrennt. Bei derartigen Ausführungsformen kombiniert die ISP-Schnittstelle 226 die Bilddaten aus Empfänger A 222 und Empfänger B 224 auf einer linienweisen Basis derartig, dass entsprechende Linien aus den Empfängerbilddaten in jedem der Empfänger A 222 und Empfänger B 224 logisch zu einer einzelnen Linie verknüpft werden. Folglich, unter Bezugnahme auf 3, wenn es bei Operation 330 weitere Linien in dem Roh-Frame gibt, welcher verarbeitet werden soll, geht die Steuerung dann zurück zu Operation 320, und die nächsten Linien in den Roh-Frame-Daten werden kombiniert.
-
Wenn es im Gegensatz dazu bei Operation 330 keine weiteren Linien in dem Roh-Frame mehr gibt, welcher verarbeitet werden soll, geht die Steuerung auf die Operation 335 über, und aus den Rohbilddaten, welche durch Empfänger A 222 und Empfänger B 224 empfangen werden, wird ein kombiniertes Bild erzeugt. Die ISP-Schnittstelle gibt die kombinierten Linien der Bilddaten an die ISP-Pipeline 228 weiter, welche die kombinierten Linien der Bilddaten verarbeitet. Bei manchen Ausführungsformen verarbeitet die ISP-Pipeline die Rohbilddaten, um einen YUV-Frame zu erzeugen.
-
Bei Operation 340 wird das kombinierte Bild in einem Speicherort gespeichert, und/oder es kann auf einem geeigneten Anzeigemodul angezeigt werden. Das DMA-Modul 230 speichert den YUV-Frame in einem Frame-Puffer 242. Unter Bezugnahme auf 2 weist die ISP-Pipeline 228 bei manchen Ausführungsformen interne Linienpuffer auf, um benachbarte Pixeldaten zu speichern. Der YUV-Frame kann in einen Grafikprozessor 250 eingegeben werden, welcher das Bild zur Präsentation auf einem Anzeigemodul verarbeiten kann. Das verarbeitete Bild kann in einem Frame-Puffer 244 gespeichert werden. Das verarbeitete Bild kann dann an ein Anzeigesteuergerät 252 ausgegeben werden, welches das Bild auf einer Anzeige 260 darstellt. Weiterhin kann das YUV-Bild in dem Frame-Puffer 244 an einen Codierer 254 weitergegeben werden, welcher den Frame für ein Multi-View-Encoding codiert. Der codierte Frame kann in einem geeigneten Speichermedium 270 gespeichert werden.
-
Bei manchen Ausführungsformen stellt die ISP-Pipeline einen Rückmeldungsmechanismus bereit, welcher den Kamerasteuerungsmodulen 230, 232 ermöglicht, Parameter der Kamerasteuerung als Reaktion auf Parameter der Echtzeit-Bildverarbeitung zu modifizieren. Bei Ausführungsformen, bei welchen die Kameramodule 162 für eine Stereobilderfassung verwendet werden, werden die Kameramodule zum gleichen Zeitpunkt auf das gleiche Objekt fokussiert. Deshalb weisen die Frames, welche von den Kameramodulen gesammelt werden, die gleichen Belichtungsbedingungen und den gleichen Inhalt auf. Wenn die gleichen Kameramodule verwendet werden, können folglich die gleichen Parameter der Bildverarbeitung auf beide Kameramodule angewandt werden. Wenn die Kameramodule jedoch unterschiedlich sind oder verschiedene Eigenschaften aufweisen, müssen die Parameter der Bildverarbeitung u. U. verschieden angewandt werden. Folglich können die Kamerasteuerungsmodule 230, 232 die Kameramodule 162A, 162B verschieden steuern.
-
Die Kamerasteuerungsmodule 230, 232 verwenden eine Fensterbasierte Bildstatistik, um verschiedene Kameraparameter, z. B. Verschlusszeit, analoger Verstärkungswert, fokale Entfernung usw., für verschiedene Belichtungsbedingungen und verschiedene Szenen einzustellen. Die Bildstatistik, welche aus eingehenden Frames gesammelt wird, weist die Fenster für Frames auf, welche von beiden Kameramodulen 162A, 162B gesammelt werden. Wenn ein kombinierter Frame durch die ISP-Pipeline 228 verarbeitet wird, wird die Statistik aus einem ersten Kameramodul 162A von einem ersten Kamerasteuerungsmodul 230 gelesen und wird die Statistik aus einem zweiten Kameramodul 162B von einem zweiten Kamerasteuerungsmodul 232 gelesen. Die Kamerasteuerungsmodule 230, 232 lesen die Daten aus den Frames, welche durch die ISP-Pipeline verarbeitet werden, und berechnen aus den Daten neue Parameter für die Kameramodule 162A, 162B. Die neuen Parameter der Kamerasteuerung können in Speicherregister geschrieben werden und verwendet werden, um nachfolgende Frames zu erfassen. Auf diese Weise implementieren die ISP- und die Kamerasteuerungsmodule eine Rückkopplungsschleife, welche die Kameraparameter ständig auf der Grundlage aktueller Betriebsbedingungen einstellt. Die Kamerasteuerungsmodule 230, 232 können als getrennte Instanzen, welche getrennte Threads ausführen, oder als ein einzelnes Steuerungsmodul implementiert werden, welches einen einzelnen Verarbeitungs-Thread einsetzt.
-
Folglich sind hier beispielhafte Systeme und Verfahren zur Stereobilderfassung in elektronischen Vorrichtungen beschrieben. Bei manchen Ausführungsformen kann eine elektronische Vorrichtung mit mehreren Kameramodulen ausgestattet werden, welche angeordnet sind, Bilder eines Objekts in einer gleichzeitigen Weise zu erfassen. Die Rohbilddaten aus dem Kameramodul werden an eine Bildsignalprozessor-Schnittstelle geleitet, welche die Bilder linienweise kombiniert und die kombinierten Linien in eine einzelne Bildsignalprozessor-Pipeline einspeist, welche die kombinierten Bilder zu YUV-Bild-Frames verarbeitet. Die YUV-Bild-Frames können in einem Speicher gespeichert werden und/oder auf einer Anzeige dargestellt werden.
-
Der Begriff „Logikanweisungen”, wie er hier verwendet wird, betrifft Ausdrücke, welche von einer oder mehreren Maschinen zum Durchführen eines oder mehrerer logischer Vorgänge verstanden werden können. Beispielsweise können Logikanweisungen Anweisungen umfassen, welche von einem Prozessor-Compiler zum Ausführen eines oder mehrerer Vorgänge auf einem oder mehreren Datenobjekten interpretierbar sind. Jedoch ist dies bloß ein Beispiel maschinenlesbarer Anweisungen, und Ausführungsformen sind in dieser Hinsicht nicht eingeschränkt.
-
Der Begriff „computerlesbares Medium”, wie er hier verwendet wird, betrifft Medien, welche in der Lage sind, Ausdrücke zu unterhalten, welche von einer oder mehreren Maschinen wahrnehmbar sind. Beispielsweise kann ein computerlesbares Medium eine oder mehrere Speichervorrichtungen zum Speichern von computerlesbaren Anweisungen oder Daten umfassen. Derartige Speichervorrichtungen können Speichermedien umfassen, wie beispielsweise optische Speichermedien, magnetische Speichermedien oder Halbleiterspeichermedien. Jedoch ist dies bloß ein Beispiel eines maschinenlesbaren Mediums, und Ausführungsformen sind in dieser Hinsicht nicht eingeschränkt.
-
Der Begriff „Logik”, wie er hier verwendet wird, betrifft eine Struktur zum Durchführen eines oder mehrerer logischer Vorgänge. Beispielsweise kann Logik einen Schaltkomplex umfassen, welcher ein oder mehrere Ausgabesignale aufgrund eines oder mehrerer Eingabesignale bereitstellt. Ein derartiger Schaltkomplex kann einen endlichen Automaten, welcher eine digitale Eingabe empfängt und eine digitale Ausgabe bereitstellt, oder einen Schaltkomplex umfassen, welcher ein oder mehrere analoge Ausgabesignale als Reaktion auf ein oder mehrere analoge Eingabesignale bereitstellt. Ein derartiger Schaltkomplex kann in einem anwendungsspezifischen integrierten Schaltkreis (ASIC) oder in einem feldprogrammierbaren Gate-Array (FPGA) bereitgestellt werden. Logik kann auch maschinenlesbare Anweisungen, welche in einem Speicher gespeichert sind, in Verbindung mit einem Verarbeitungsschaltkomplex umfassen, um derartige maschinenlesbare Anweisungen auszuführen. Dies sind jedoch bloß Beispiele von Strukturen, welche Logik bereitstellen können, und Ausführungsformen sind in dieser Hinsicht nicht eingeschränkt.
-
Einige der hier beschriebenen Verfahren können als Logikanweisungen auf einem computerlesbaren Medium ausgeführt werden. Wenn sie auf einem Prozessor ausgeführt werden, bewirken die Logikanweisungen, dass ein Prozessor als eine Sondermaschine programmiert wird, welche die beschriebenen Verfahren implementiert. Wenn er durch die Logikanweisungen konfiguriert ist, die hier beschriebenen Verfahren auszuführen, bildet der Prozessor eine Struktur zum Durchführen der beschriebenen Verfahren. Ersatzweise können die hier beschriebenen Verfahren auf Logik auf beispielsweise einem feldprogrammierbaren Gate-Array (FPGA), einem anwendungsspezifischen integrierten Schaltkreis (ASIC) oder dergleichen reduziert werden.
-
In der Beschreibung und den Ansprüchen können die Begriffe gekoppelt und verbunden zusammen mit ihren Derivaten verwendet werden. Bei bestimmten Ausführungsformen kann verbunden verwendet werden, um anzuzeigen, dass mindestens zwei Elemente in unmittelbarem physikalischen oder elektrischen Kontakt miteinander stehen. Gekoppelt kann bedeuten, dass sich mindestens zwei Elemente in unmittelbarem physikalischen oder elektrischen Kontakt befinden. Jedoch kann gekoppelt auch bedeuten, dass mindestens zwei Elemente sich nicht in unmittelbarem Kontakt miteinander befinden müssen, aber dennoch zusammenwirken oder in Wechselwirkung miteinander treten können.
-
Der Verweis in der Beschreibung auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, welche im Zusammenhang mit der Ausführungsform beschrieben wird, bei mindestens einer Implementierung eingeschlossen ist. Das Auftreten der Phrase „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung kann oder kann nicht immer auf die gleiche Ausführungsform verweisen.
-
Obwohl Ausführungsformen mit sprachspezifischen bis strukturellen Merkmalen und/oder methodologischen Handlungen beschrieben wurden, versteht es sich, dass ein beanspruchter Gegenstand nicht auf die beschriebenen spezifischen Merkmale oder Handlungen begrenzt sein kann. Stattdessen werden die spezifischen Merkmale und Handlungen als Beispielformen der Implementierung des beanspruchten Gegenstands offenbart.