-
HINTERGRUND
-
Der hier beschriebene Gegenstand betrifft im Allgemeinen das Feld der Bildverarbeitung und insbesondere Systeme und Methoden für das Bildsignalprozessor-Multiplexen.
-
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 der Rückseite des Telefons angeordnet ist, um Bilder zu erfassen. Elektronische Vorrichtungen können mit einer Bildsignalverarbeitungs-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.
-
Auch können Verfahren zum Ausrüsten elektronischer Vorrichtungen mit mehreren Kameras Anwendungen finden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die ausführliche Beschreibung wird unter Bezugnahme auf die begleitenden Figuren beschrieben.
-
1 ist eine Schemaansicht einer elektronischen Vorrichtung zur Verwendung beim Bildsignalprozessor-Multiplexen gemäß manchen Ausführungsformen.
-
2 ist eine Schemaansicht von Komponenten zur Verwendung beim Bildsignalprozessor-Multiplexen gemäß Ausführungsformen.
-
3 ist eine Schemaansicht von Datenflüssen beim Bildsignalprozessor-Multiplexen gemäß manchen Ausführungsformen.
-
4 ist ein Ablaufdiagramm, welches ein Bildsignalprozessor-Multiplexen gemäß manchen Ausführungsformen illustriert.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Hier sind beispielhafte Systeme und Verfahren für das Bildsignalprozessor-Multiplexen 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, dass eine elektronischen Vorrichtung mit mehreren Kameras ausgestattet wird, ohne dass eine Notwendigkeit für unabhängige Bildsignalprozessorkanäle besteht. Folglich ermöglichen die hier beschriebenen Systeme und Verfahren einer elektronischen Vorrichtung das Multiplexen von Bildsignalen mehrerer Kameras 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 zur Verwendung beim Bildsignalprozessor-Multiplexen gemäß manchen Ausführungsformen. 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 on 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 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 Kameras 162 und einen Bildsignalprozessor 164. Beispielhaft und nicht begrenzend kann eine erste Kamera 162 auf der Vorderseite der elektronischen Vorrichtung 110 und eine zweite Kamera auf der Rückseite der elektronischen Vorrichtung 110 positioniert sein. Gesichtspunkte der Kameras und des Bildsignalprozessors 164 sowie die dazugehörige Pipeline werden unter Bezugnahme auf 2 bis 4 ausführlicher erklärt.
-
2 ist eine Schemaansicht von Komponenten zur Verwendung beim Bildsignalprozessor-Multiplexen gemäß Ausführungsformen. Unter Bezugnahme auf 2 kann bei manchen Ausführungsformen ein ISP-Modul 164 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 einen Bildverarbeitungsprozessor 212, einen Aufgabenverwalter, 220, einen ersten Kameraempfänger 222 und einen zweiten Kameraempfänger 224, eine Speicherdirektzugriff-(DMA)-Engine 226 und eine Speicherverwaltungseinheit (MMU) 228. Das ISP-Modul 164 ist mit dem Speichermodul 156 gekoppelt. Das Speichermodul 156 unterhält ein erstes Register 230 und ein zweites Register 232, einen Frame-Puffer A 240 und einen Frame-Puffer A' 242, einen Frame-Puffer B 250 und Frame-Puffer B' 252. Die zwei Threads 3A (automatischer Weißabgleich, Autofokus, automatische Belichtung), 400A und 400B für jede Kamera, laufen auf einer Host-CPU, die dem bzw. den in 1 dargestellten Prozessor(en) 154 entspricht.
-
Die Vorgänge der elektronischen Vorrichtung werden unter Bezugnahme auf 2 bis 4 ausführlicher erklärt. Bei manchen Ausführungsformen werden. Bilder von einer ersten Kamera 162A in einen ersten Empfänger 222 (Vorgang 410) eingegeben, und Bilder von einer zweiten Kamera 162B werden in einen zweiten Empfänger 224 (Vorgang 415) eingegeben. Bei manchen Ausführungsformen können die Kameras 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). Die Ausgabe der ladungsgekoppelten Vorrichtung 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 ausgeführt werden können. Bei manchen Ausführungsformen ist das Steuerungsprogramm für die Anpassung von Fokus, Weißabgleich und Belichtung in den Prozess-Threads 3A, 400A und 400B implementiert.
-
Bei Vorgang 420 (4) werden die Roh-Frames in Frame-Puffern gespeichert. Unter Bezugnahme auf 2 und 3 werden Bilder von den Kameras 162 in die Empfänger 222, 224 eingegeben. In manchen Ausführungsformen ruft die Speicherdirektzugriff-(DMA)-Engine 220 den Bild-Frame vom Empfänger A 216 ab und speichert den Bild-Frame im Frame-Puffer A 240. Gleichermaßen ruft die DMA-Engine 220 den Bild-Frame vom Empfänger B 218 ab und speichert den Bild-Frame im Frame-Puffer B 250.
-
Die Vorgänge 425–440 definieren eine Schleife, nach der die Roh-Frames in den Frame-Puffern 240, 250 in ein Video-Stream-Format verarbeitet werden. In einigen Ausführungsformen wird die Frame-Verarbeitung jeweils pro Frame von jeder Kameraquelle ausgeführt, sodass die Frame-Verarbeitung verschachtelt erfolgt. Somit wird der Inhalt von Frame-Puffer A bei Vorgang 425 in den Bildsignalprozessor 212 über eine Bildsignalprozessorschnittstelle 214 eingegeben, die den Inhalt von Frame-Puffer A in eine Bildsignalprozessor-Pipeline 216 leitet. Wie in 3 dargestellt, wird der Inhalt von Frame-Puffer A in der Pipeline 216 verarbeitet, z. B. durch Umwandeln des Inhalts aus Frame-Puffer 240 von Roh-Bayer-Frames in ein geeignetes Video-Format, z. B. eine entsprechende Anzahl YUV-Video-Frames. Der Bildsignalprozessor 212 kann Parameter aus Frame-Puffer A mit Thread 3A 400A übergeben. Der Verarbeitungs-Thread 3A 400A kann diese Parameter für die Einrichtung passender Einstellungen auf den Kameras 162 verwenden. 3A Parameter und Parameter für die Verarbeitung der Frames im Frame-Puffer A können durch ein erstes Speichern in Register A übergeben werden. Bei Vorgang 430 speichert eine Speicherdirektzugriff-(DMA)-Engine 226 die YUV-Video-Frames in einem Speicherpuffer 242 im Speicher 156.
-
Wenn die Frame-Verarbeitung bei Vorgang 435 nicht abgeschlossen ist, übergibt die Steuerung wieder an Vorgang 425 zurück, und es werden mehr Roh-Frames in den Frame-Puffern verschachtelt in ein Video-Stream-Format verarbeitet. Beispielsweise wird in Ausführungsformen, in denen zwei oder mehr Kameras verwendet werden, der Inhalt von Frame-Puffer B in den Bildsignalprozessor über eine Bildsignalprozessorschnittstelle 214 eingegeben, die den Inhalt von Frame-Puffer B in eine Bildsignalprozessor-Pipeline 216 leitet. Der Inhalt von Frame-Puffer B wird in der Pipeline verarbeitet, z. B. durch Umwandeln des Inhalts des Frame-Puffers von Roh-Bayer-Frames in ein geeignetes Video-Format, z. B. in eine entsprechende Anzahl YUV-Video-Frames. Der 3A 400 Frame B wird basierend auf Parametern verarbeitet, die durch das Register B geleitet werden. Bei Vorgang 430 wird der aus den Roh-Video-Frames im Puffer generierte Video-Stream im Speicher gespeichert. In einigen Ausführungsformen speichert die DMA-Engine 226 den aus dem Frame-Puffer B 240 generierten Video-Stream in einem zweiten Frame-Puffer B' 252 im Speicher 156. In einigen Ausführungsformen können die Video-Streams in einer Bild-in-Bild-Ansicht gespeichert werden. In einigen Ausführungen können die Video-Streams codiert und als zwei Streams durch Multi-Video-Coder/Decoder (Codecs) gespeichert werden, sodass die Video-Streams auf einer Zielvorrichtung angezeigt werden können.
-
Ferner, wenn die Frame-Verarbeitung bei Vorgang 435 nicht abgeschlossen ist, übergibt die Steuerung an die Vorgänge 440 und die Verarbeitung wird vom Empfänger B wieder auf den Empfänger A umgestellt. Somit definieren die Vorgänge 425–435 eine Schleife, wodurch die Roh-Frames mehrerer Kameras in Video-Streams gemultiplext und im Speicher einer elektronischen Vorrichtung gespeichert werden.
-
Im Gegensatz dazu, wenn die Frame-Puffer in der Vorgang 435 die Verarbeitung fertiggestellt haben, übergibt die Steuerung an Vorgang 445, und die Video-Streams können angezeigt werden. In manchen Ausführungsformen werden die Video-Streams in eine Bild-in-Bild-Ansicht kombiniert. Bei Vorgang 450 können die Video-Streams 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.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- 802.11X. IEEE 802.11a-, b- oder g-konforme Schnittstelle [0012]
- 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 [0012]
- Guidelines on GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, Dezember 2002 [0012]