DE112007000464T5 - Techniken für die Korrektur der radialen Abschattung - Google Patents

Techniken für die Korrektur der radialen Abschattung Download PDF

Info

Publication number
DE112007000464T5
DE112007000464T5 DE112007000464T DE112007000464T DE112007000464T5 DE 112007000464 T5 DE112007000464 T5 DE 112007000464T5 DE 112007000464 T DE112007000464 T DE 112007000464T DE 112007000464 T DE112007000464 T DE 112007000464T DE 112007000464 T5 DE112007000464 T5 DE 112007000464T5
Authority
DE
Germany
Prior art keywords
coefficient
pixel
image sensor
shading correction
correction coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112007000464T
Other languages
English (en)
Inventor
Zafar Portland Hasan
Khan Austin Moinul
Tung Jacksonville Nguyen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112007000464T5 publication Critical patent/DE112007000464T5/de
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

Vorrichtung, die aufweist:
– ein Koeffizientenbestimmungsmodul, um einen Abschattungskorrekturkoeffizienten für einen Pixel eines Bildsensors zu bestimmen, wobei der Abschattungskorrekturkoeffizient auf einem oder mehreren aus einer Vielzahl gespeicherter Koeffizientenwerte basiert, wobei der eine oder die mehreren gespeicherten Koeffizientenwerte einem quadratischen Abstand zwischen dem Pixel und einer Mittenposition des Bildsensors entsprechen; und
ein Abschattungskorrekturmodul, um den Pixel basierend auf einem Intensitätswert des Pixels und dem Abschattungskorrekturkoeffizienten zu korrigieren.

Description

  • HINTERGRUND
  • Die meisten Linsen sind in der Mitte heller als an den Kanten. Dieses Phänomen ist als Licht-Abschattung oder Vignettierung bekannt. Licht Abschattung tritt insbesondere bei Weitwinkellinsen, bestimmten langen Telefotolinsen und vielen Linsen niedrigerer Qualität auf. Diese Linsen niedrigerer Qualität werden oft in Geräten, wie Mobiltelefone, benutzt, da der Einsatz von Linsen höherer Qualität die Kosten solcher Geräte auf Werte erhöhten würden, die kommerziell nicht machbar sind.
  • Die Licht Abschattung kann durch Kompensationstechniken gemildert werden. Demgemäß sind effektive Techniken für die Kompensation der Abschattung erforderlich. Darüber hinaus sind solche Techniken erforderlich, die die Gerätekosten, den Energieverbrauch des Gerätes oder die Komplexität des Geräts nicht wesentlich erhöhen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Schaubild, das eine Ausführungsform einer Vorrichtung zeigt.
  • 2 ist ein Schaubild, das eine beispielhafte geometrische Beziehung veranschaulicht.
  • 3 ist eine grafische Darstellung einer beispielhaften Kurve für einen Korrekturkoeffizienten.
  • 4, 5A und 5B sind grafische Darstellungen, die beispielhafte interpolierende Ansätze zeigen.
  • 6 ist ein Schaubild, das eine Ausführungsform einer Implementierung zeigt, welche in ein Codiermodul eingeschlossen werden kann.
  • 7A und 7B sind Schaubilder, die Ausführungsformen der Implementierungen für die Koeffizientenbestimmung veranschaulichen.
  • 8 veranschaulicht eine Ausführungsform eines logischen Schaubilds.
  • 9 veranschaulicht eine Ausführungsform eines Systems.
  • GENAUE BESCHREIBUNG
  • Verschiedene Ausführungsformen können allgemein auf Techniken zum Kompensieren der Abschattung gerichtet sein. Zum Beispiel bestimmt bei einer Ausführungsform ein Koeffizientenbestimmungsmodul einen Abschattungskorrekturkoeffizienten für einen Pixel eines Bildsensors, und ein Abschattungskorrekturmodul korrigiert den Pixel basierend auf einem Intensitätswert des Pixels und dem Abschattungskorrekturkoeffizienten. Der Abschattungskorrekturkoeffizient kann auf einem oder mehreren gespeicherten Koeffizientenwerten basieren, wobei der eine oder die mehreren Koeffizientenwerte einem quadratischen Abstand zwischen dem Pixel und einer Mittenposition des Bildsensors entsprechen. Auf diese Weise können Verbesserungen bei der Rechenleistung erhalten werden. Auch können Verringerungen im Energieverbrauch, in der Komplexität der Implementation und für die Fläche erhalten werden. Weitere Ausführungsformen können beschrieben und beansprucht werden.
  • Verschiedene Ausführungsformen können ein oder mehrere Elemente aufweisen. Ein Element kann irgendeine Struktur aufweisen, die so eingerichtet ist, dass sie bestimmte Arbeitsgänge ausführt. Jedes Element kann als Hardware, Software oder irgendeine Kombination aus diesen implementiert werden, wie es für einen gewünschten Satz an Gestaltungsparametern oder Leistungsgrenzen gewünscht ist. Obwohl eine Ausführungsform beispielhaft mit einer beschränkten Anzahl von Elementen in einer bestimmten Topologie beschrieben werden kann, kann die Ausführungsform in alternativen Topologien mehr oder weniger Elemente umfassen, wenn es für eine gegebene Implementierung gewünscht wird. Es ist erwähnenswert, dass jedweder Bezug auf "eine Ausführungsform" bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in wenigsten einer Ausführungsform enthalten ist. Das Auftreten des Ausdrucks "bei einer Aus führungsform" an verschiedenen Stellen der Beschreibung bezieht sich nicht notwendig immer auf dieselbe Ausführungsform.
  • 1 veranschaulicht eine Ausführungsform einer Vorrichtung. Insbesondere zeigt 1 eine Vorrichtung 100, die verschiedene Elemente umfasst. Jedoch sind die Ausführungsformen nicht auf diese Elemente beschränkt. Zum Beispiel können Ausführungsformen mehr oder weniger Elemente umfassen, ebenso wie andere Koppelungen zwischen Elementen.
  • Insbesondere zeigt die 1, dass die Vorrichtung 100 eine optische Anordnung 102, eine Bildsensor 104 und ein bildverarbeitendes Modul 106 umfassen kann. Diese Elemente können in Hardware, Software, oder in irgendeiner Kombination aus diesen implementiert werden. Zum Beispiel kann ein oder können mehrere Elemente (so wie der Bildsensor 104 und das bildverarbeitende Modul 106) auf derselben integrierten Schaltung oder demselben Chip implementiert werden. Jedoch sind die Ausführungsformen in diesem Zusammenhang nicht beschränkt.
  • Die optische Anordnung 102 kann ein oder mehrere optische Bauelemente (z. B. Linsen, Spiegel usw.) umfassen, um ein Bild innerhalb eines Sichtfeldes auf mehrere Sensorelemente innerhalb des Bildsensors 104 zu projizieren. Zum Beispiel zeigt die 1 eine optische Anordnung mit einer Linse 103. Zusätzlich kann die optische Anordnung 102 einen Mechanismus oder Mechanismen umfassen, um das Einrichten dieses optischen Bauelements oder dieser optischen Bauelemente zu steuern. Zum Beispiel können solche Mechanismen Fokussierarbeitsgänge, Apertureinstellungen, Zoom-Arbeitsgänge, die Blendengeschwindigkeit, die effektive Brennweite usw. steuern. Die Ausführungsformen jedoch sind nicht auf diese Beispiele beschränkt.
  • Der Bildsensor 104 kann eine Anordnung aus Sensorelementen (nicht gezeigt) umfassen. Diese Elemente können komplementäre Metall-Oxid-Halbleiter(CMOS – Complementary Metal Oxide Semiconductor)-Sensoren, ladungsgekoppelte Bauelemente (CCDs – Charge Coupled Devices) oder andere geeignete Arten von Sensorelementen sein. Diese Elemente können analoge Intensitätssignale (z. B. Spannungen) erzeugen, die Licht entsprechen, das auf den Sensor auftritt. Zusätzlich kann der Bildsensor 104 auch einen oder mehrere Analog/Digitalwandler (ADC – Analog-to-Digital Converter) umfassen, die die analogen Intensitätssignale in digital codierte Intensitätswerte umwandeln. Die Ausführungsformen jedoch sind auf dieses Beispiel nicht beschränkt.
  • Somit wandelt der Bildsensor 104 Licht, das durch die optische Anordnung 102 empfangen worden ist, in Pixelwerte um. Jeder dieser Pixelwerte stellt eine bestimmte Lichtintensität am entsprechenden Sensorelement dar. Obwohl diese Pixelwerte als digital beschrieben worden sind, können sie als Alternative analog sein.
  • Der Bildsensor 104 kann verschiedene anpassbare Einstellungen haben. Zum Beispiel können seine Sensorelemente eine oder mehrere Verstärkungseinstellungen haben, die quantitativ die Umwandlung von Licht in elektrische Signale steuern. Zusätzlich können die ADCs des Bildsensors 104 eine oder mehrere Integrationszeiten haben, welche die Dauer steuern, über die die Ausgangssignale der Sensorelemente gesammelt werden. Solche Einstellungen können basierend auf Umweltfaktoren, so wie dem Umgebungslicht usw., angepasst werden. Zusammen können die optische Anordnung 102 und der Bildsensor 104 weiter eine oder mehrere Einstellungen haben. Eine solche Einstellung ist eine Entfernung zwischen einer oder mehreren Linsen der optischen Ebene 102 und einer Sensorebene des Bildsensors 104. Die effektive Brennweite ist ein Beispiel für eine solche Entfernung.
  • 1 zeigt, dass die Pixelwerte, die von dem Bildsensor 104 erzeugt werden, in einen Signalstrom 122 eingeordnet werden, welcher ein oder mehrere Bilder darstellt. Somit kann der Signalstrom 122 eine Abfolge von Rahmen oder Feldern mit mehreren Pixelwerten haben. Jeder Rahmen/jedes Feld (auch als ein Bildsignal bezeichnet) kann einer bestimmten Zeit oder einem Zeitintervall entsprechen. Bei Ausführungsformen ist der Signalstrom 122 digital. Als Alternative kann der Signalstrom 122 analog sein.
  • Zusätzlich zeigt die 1, dass der Bildsensor 104 ein bildverarbeitendes Modul 106 mit Sensorinformation 124 versorgen kann. Diese Information kann Information über den Betriebszustand umfassen, die mit dem Bildsensor 104 verknüpft ist, ebenso wie eine oder mehrere seiner Einstellungen. Beispiele für Sensoreinstellungen umfassen die effektive Brennweite, Verstärkung(en) von Sensorelementen und Integrationszeit(en) der ADCs. Der Signalstrom 122 und die Sensorinformation 124 kann über verschiedene Schnittstellen zu dem bildverarbeitenden Modul 106 übertragen werden. Eine solche Schnittstelle ist ein Bus.
  • 1 zeigt, dass das bildverarbeitende Modul ein Modul 108 zum Bestimmen von Koeffizienten basierend auf dem quadratischen Abstand (auch als ein Koeffizientenbestimmungsmodul 108 bezeichnet) und ein Abschattungskorrekturmodul 110 umfassen kann.
  • Das Koeffizientenbestimmungsmodul 108 bestimmt Abschattungskoeffizienten für Pixel innerhalb des Bildsensors 104. Insbesondere kann das Koeffizientenbestimmungsmodul 108 Abschattungskoeffizienten basierend auf quadratischen Abständen und einem oder mehreren gespeicherten Koeffizientenwerte bestimmen. Diese gespeicherten Werte können in verschiedener Weise angeordnet werden, zum Beispiel in einer oder mehreren Nachschlagetabellen (LUT – Look-Up-Table). Solche LUT(s) können mehrere Koeffizientenwerte speichern, die jeder eine Adresse haben, die auf einem quadratischen Abstand von einer Mittenposition des Bildsensors 104 basiert. Darüber hinaus können diese quadratischen Abstände durch im Wesentlichen gleiche Intervalle getrennt sein.
  • Um Speicheranforderungen und/oder Hardwarekomplexität zu verringern, können solche LUT(s) weniger als die Anzahl von Einträgen haben, die jeden möglichen quadratische Abstand abdeckt, der mit dem Bildsensor 104 verknüpft ist. Demgemäß kann für einen bestimm ten Pixel das Koeffizientenbestimmungsmodul 108 auf zwei LUT-Einträge zugreifen, die einem nächsten höheren quadratischen Abstand und einem nächsten niedrigeren quadratischen Abstand entsprechen. Ausgehend von diesen beiden Einträgen kann das Koeffizientenbestimmungsmodul 108 verschiedene Interpolationstechniken benutzen, um einen Korrekturkoeffizienten für den bestimmten Pixel zu erzeugen.
  • Zusätzlich kann das Koeffizientenbestimmungsmodul 108 Korrekturkoeffizienten basierend auf verschiedenen Einstellungen skalieren. Eine solche Einstellung ist der Abstand (z. B. die effektive Brennweite), die mit der optischen Anordnung 102 und dem Bildsensor 104 verknüpft ist.
  • Wie in 1 gezeigt, kann das Abschattungskorrekturmodul 110 Korrekturkoeffizienten 126 vom Koeffizientenbestimmungsmodul 108 empfangen, wobei jeder Koeffizient einem bestimmten Pixel entspricht. Ausgehend von diesen Koeffizienten korrigiert das Korrekturmodul 110 Pixel basierend auf ihren entsprechenden Pixelintensitätswerten 127 und ihren Abschattungskorrekturkoeffizienten. Zum Beispiel kann dieses das Multiplizieren eines Pixelintensitätswertes, der von dem Bildsensor 104 empfangen worden ist (z. B. im Signalstrom 122) mit seinem entsprechenden Korrekturkoeffizienten umfassen.
  • Demgemäß können die Module 108 und 110 für eine effektive Korrektur der Abschattung sorgen. Zum Beispiel, indem die Koeffizientenbestimmung auf quadratischen Abständen und gespeicherten Koeffizientenwerten, wie hierin beschrieben, basiert, können Rechenleistungen erhöht werden, während die Komplexität bei der Implementierung verringert werden kann.
  • Die Vorrichtung 100 kann in verschiedenen Geräten implementiert werden, so wie einem tragbaren Gerät oder einem eingebetteten System. Beispiele solcher Geräte umfassen mobile drahtlose Telefone, Internet(VoIP – Voice over IP)-Telefone, Personal Computer (PCs), persönliche digitale Assistenten (PDAs) und digitale Kameras. Zusätzlich kann diese Vorrich tung auch in im Festnetz arbeitenden Videotelefonen implementiert werden, welche Telefonleitungen des öffentlichen leitungsvermittelten Telefonnetzes (PSTN – Public Switched Telephone Network), Telefonleitungen des dienstintegrierten digitalen Netzes (ISDN – Integrated Digital Services Network) und/oder Paketnetzwerke (z. B. Nahbereichsnetzwerke LANs – Local Area Networks), das Internet usw.) verwenden.
  • Die Beschreibung wendet sich nun einer quantitativen Diskussion der Merkmale der Abschattungskorrektur zu. Wie oben beschrieben ist die Licht Abschattung eine Erscheinung, bei der Linsen in ihrer Mitte heller sind als an ihren Kanten. Die Licht Abschattung kann mit einem Verstärkungsfaktor mit einer inversen Beziehung zum Betrag der Abschattung kompensiert werden. Verwendet werden die Abschattungsverhältnisse (relativ zu dem maximal gemessen Wert von jeder jeweiligen Farb- oder Bildebene) der gemessenen mittleren Pixelwerte in jeder Farbebene. Gleichung (1) hiernach drückt das Abschattungsverhältnis jedes Abtastpunktes (i, j) in einer Farbebene c als xc(i, j) aus. xc(i, j) = Qc(i, j)/Qc max (1)
  • In Gleichung (1) ist Qc(i, j) der mittlere Pixelwert, der am Abtastpunkt (i, j) der Farbebene c gemessen wird, und Qc max ist der maximale mittlere Pixelwert, der in derselben Farb- oder Bildebene gemessen wird.
  • Der Kompensationsfaktor für jeden Pixel kann berechnet werden, indem das entsprechende oben erhaltene Abschattungsverhältnis verwendet wird. Gleichung (2) hiernach drückt einen Abschattungskompensationsfaktor Sc(i, j) an einem Abtastpunkt (i, j) aus.
  • Figure 00080001
  • In Gleichung (2) ist w ein Formfaktor, der das Ausmaß der Abschattungskompensation steuert und das Überschießen des Bildrauschens vermeidet, wenn man sich an die Bildgrenzen annähert.
  • Zusätzlich dazu, dass sie in Bezug auf Abtastpunkte ausgedrückt werden, können Abschattungsverhältnisse mit Bezug auf eine Farb- oder Bildebene ausgedrückt werden. Genauer kann das Abschattungsverhältnis als eine Funktion des radialen Abstandes von der Mitte einer Linse ausgedrückt werden. Der radiale Abstand von der Mitte der Linse zu einem Abtastpunkt am Pixel (i, j) kann ausgehend von einem Ort (ic, jc) berechnet werden, der der Ort des Pixels in der Mitte der Sensoranordnung ist. Diese Berechnung ist hiernach in Gleichung (3) ausgedrückt.
  • Figure 00090001
  • Die Kurven der Korrekturkoeffizienten folgen oftmals der Form cos4θ, wobei θ ein Winkel ist, der durch eine Linie, welche einen Punkt auf der Sensoranordnung und den Mittenort der Linse verbindet, im Schnitt mit der optischen Achse der Linse gebildet wird. Es gibt eine Beziehung zwischen r und θ. Diese Beziehung kann für einen Bereich von r von Null bis D/2 ausgedrückt werden, wobei D die diagonale Länge des Sensors ist. Gleichung (4) hiernach liefert die Beziehung von θ zu r.
  • Figure 00090002
  • In Gleichung (4) stellt θv den Sichtwinkel für den Bildsensor und die Linsenanordnung dar. Ein beispielhafter Wert für θv ist 60 Grad. Jedoch können andere Werte benutzt werden. Für einen Bereich von θ von ungefähr –45 Grad bis ungefähr 45 Grad gibt es eine ungefähr lineare Abbildung zwischen θ und r.
  • Die 2 und 3 veranschaulichen die obigen Beziehungen. Insbesondere ist 2 ein Schaubild 200, das eine beispielhafte Beziehung zwischen θ und r veranschaulicht. 3 ist eine grafische Darstellung 300, welche eine beispielhafte Kurve 302 für den Korrekturkoeffizienten veranschaulicht, die eine Funktion von θ ist. Wie in 3 gezeigt, hat diese Kurve einen Wert cos4θ.
  • Wie oben in Gleichung (3) ausgedrückt, umfasst das Bestimmen von r das Berechnen einer Quadratwurzel. Unglücklicherweise ist diese Berechnung sowohl in Hardware als auch in Software rechenmäßig teuer. Daher kann das Koeffizientenbestimmungsmodul 108 vorteilhaft Techniken zur Verfügung stellen, mit denen die Bestimmung von Kompensationskoeffizienten auf quadratischen Abstände (d. h. auf r2) basiert. Basierend auf der Gleichung (3) oben wird der quadratische Abstand hiernach in Gleichung (5) ausgedrückt. r2(i, j) = (i – ic)2 + (j – jc)2 (5)
  • Implementierungen für die Abschattungskorrektur können Nachschlagetabellen (LUTs) benutzen, um auf Korrekturkoeffizienten für einen bestimmten Pixel zuzugreifen. Zum Beispiel ist 4 eine grafische Darstellung, welche die Kurve der 3 veranschaulicht. In dieser Zeichnung jedoch ist diese Kurve in eine Funktion von r anstelle von θ umgewandelt.
  • Ein Ansatz für die Abschattungskorrektur speichert jeden diskreten Punkt dieser Kurve (d. h. einen Punkt für jeden auftretenden radialen Abstand) in einer LUT. Dies würde erfordern, dass die LUT eine Anzahl von Einträgen, N, hat, die auch den maximalen radialen Abstand bezeichnen.
  • Dies kann eine große Menge an Speicherplatz erfordern. Zum Beispiel hat ein Quad Super Extended Graphics Array(QSCGA)-Bild 2568 mal 2048 Pixel (was ungefähr 5.2 Megapixel bildet) und ein Aspektverhältnis von 5:4. Somit würde für QSXGA-Bilder erforderlich sein, dass bei einer LUT N 1649 ist. Diese Größenordnung von Einträgen in der LUT kann problematisch sein. In einer Hardware(z. B. mit einer integrierten Schaltung)-Implementierung zum Beispiel kann es sein, dass übermäßige Ressourcen auf dem Chip benutzt werden müssen. In ähnlicher Weise kann bei Softwareimplementierungen eine solche LUT übermäßige Anforderungen an Speicherzuweisung auferlegen.
  • Um die Nutzung von Ressourcen auf dem Chip und/oder Speicheranforderungen zu verringern, kann eine geringere Anzahl von LUT-Einträgen in Kombination mit einem Interpolationsschema verwendet werden. Genauer kann eine Kurve für Korrekturkoeffizienten mit einer konstanten Geschwindigkeit teilabgetastet werden und eine lineare Interpolation kann zwischen zwei aufeinander folgenden teilabgetasteten Punkten ausgeführt werden. Ein Nachteil dieses Ansatzes ist, dass die wesentlichen Ungenauigkeiten der Interpolation in Bereichen der Kurve auftreten können, die einen hohen Gradienten zeigen. Zum Beispiel zeigt 4 den Gradienten der Koeffizientenkurve, der mit r anwächst. Somit werden die Ungenauigkeiten der Interpolation in gleicher Weise mit r anwachsen.
  • Das Koeffizientenbestimmungsmodul 108 kann einen derartigen Interpolationsfehler verringern, indem die Abtastfrequenz erhöht wird, wenn der Gradient zunimmt. Dies kann das Umwandeln der Koeffizientenkurve derart, dass sie eine Funktion von r2 ist, umfassen.
  • 5A ist eine grafische Darstellung, welche die Koeffizientenkurve der 4 als eine Funktion von r2 veranschaulicht. Auch zeigt die 5A, dass diese Kurve mit einer konstanten Rate teilabgetastet worden ist (d. h. in konstanten Intervallen von r2). Zusätzlich kann lineare Interpolation zwischen zwei aufeinander folgenden teilabgetasteten Punkten durchgeführt werden.
  • Obwohl das lineare Abtasten bei der Kurve der 5A verwendet worden ist, nimmt der Gradient der Kurve nicht so schnell zu wie die Kurve in 4. Dies ist deswegen der Fall, weil das lineare Abtasten im r2-Raum die Wirkung hat, dass es ein nicht lineares Abtasten im r-Raum ist. Genauer hat das lineare Abtasten im r2-Raum die Wirkung einer Abtastrate im r-Raum, die zunimmt, wenn r wächst.
  • Dieses Merkmal wird durch einen Vergleich der 5A und 5B veranschaulicht. Wie oben beschrieben ist 5A eine grafische Darstellung, die die Koeffizientenkurve als eine Funktion von r2 veranschaulicht. Zusätzlich zeigt die 5A das Abtasten mit gleichen Inkrementen von r2. Diese Kurven- und Abtastschema ist in 5B als eine Funktion von r übersetzt. Diese grafische Darstellungen zeigen, dass die lineare Interpolation im r2-Raum zwischen aufeinanderfolgenden Abtastwerten für eine bessere Approximation (kleinerer Interpolationsfehler) der Koeffizientenkurve sorgt.
  • 6 zeigt eine Ausführungsform 600 einer beispielhaften Implementierung, die in dem Koeffizientenbestimmungsmodul 108 enthalten sein kann. Wie es in der 6 gezeigt ist, kann diese Implementation verschiedene Elemente umfassen. Jedoch sind die Ausführungsformen auf diese Elemente nicht beschränkt. Zum Beispiel können Ausführungsformen mehr oder weniger Elemente umfassen, ebenso wie andere Kopplungen zwischen Elementen. Insbesondere zeigt 6, dass die Implementierung 600 eine Pixelpuffereinheit 602, ein Modul 604 zur Bestimmung des quadratischen Abstandes, ein Koeffizientenerzeugungsmodul 606 und ein Skaliermodul 608 umfassen kann. Diese Elemente können in Hardware, Software oder in irgendeiner Kombination aus diesen implementiert werden.
  • Die Pixelpuffereinheit 602 empfängt eine Vielzahl von Pixelwerten 630, die einem Bild, einem Feld oder eine Rahmen entsprechen kann. Diese Pixelwerte können von einer Pixelquelle, so wie dem Bildsensor 104, empfangen werden. Dementsprechend können die Pixelwerte 630 in einem Signalstrom, so wie dem Signalsstrom 122 empfangen werden. Beim Empfang speichert die Pixelpuffereinheit 602 diese Werte für die Abschattungskorrekturverarbeitung. Demgemäß kann die Pixelpuffereinheit 602 ein Speichermedium, so wie einen Speicher umfassen. Beispiele für Speichermedien werden hiernach angegeben.
  • Die Pixelpuffereinheit 602 kann die Pixelwerte zusammen mit ihren entsprechenden Positionen ausgeben. Zum Beispiel zeigt 6 die Pixelpuffereinheit 602, die einen Pixelwert 634 und seine entsprechenden Koordinaten 632a und 632b ausgibt. Diese Koordinaten werden an das Modul 604 zum Bestimmen des quadratischen Abstandes geschickt, welches einen quadratischen Abstand des entsprechenden Pixels von einer Mittenposition seines ursprünglichen Bildsensors (z. B. des Bildsensors 104) bestimmt.
  • Wie oben beschrieben bestimmt das Modul 604 für die Bestimmung des quadratischen Abstandes die quadratischen Abstände zwischen Pixeln und einer Mittenposition des Bildsensors. 6 zeigt, dass diese Bestimmung aus den Pixelkoordinaten 632a und 632b ebenso wie aus Mittenpositionskoordinaten 624a und 624b vorgenommen wird.
  • Die Pixelkoordinaten 632a und 632b werden aus der Pixelpuffereinheit 602 empfangen. Die Mittenkoordinaten 624a und 624b können durch die Implementierung 600 beispielsweise in einem Speicher gespeichert werden. Eine solche Koordinateninformation kann vorab bestimmt werden. Als Alternative kann eine derartige Koordinateninformation von einem Bildsensor erhalten werden. Zum Beispiel können die Pixel- und Mittenkoordinaten von dem Bildsensor 104 in der Sensorinformation 124 empfangen werden. Die Ausführungsformen jedoch sind in diesem Zusammenhang nicht beschränkt.
  • 6 zeigt, dass das Modul 604 zum Bestimmen des quadratischen Abstands kombinierende Knoten 614, 616 und 622 umfassen kann. Zusätzlich kann das Modul 604 zum Bestimmen des quadratischen Abstands mischende Knoten 618 und 620 umfassen. Die kombinierenden Knoten 614 und 616 berechnen Differenzen zwischen Pixelkoordinaten und Mittenkoordina ten. Genauer berechnet der kombinierende Knoten 614 eine Differenz zwischen der Pixelkoordinate 632a und der Mittenkoordinate 624a. In ähnlicher Weise berechnet der kombinierende Knoten 616 eine Differenz zwischen der Pixelkoordinate 632b und der Mittenkoordinate 624b. 6 zeigt, dass diese Differenzen dann in den mischenden Knoten 618 und 620 quadriert werden. Die quadrierten Differenzen werden dann in dem kombinierenden Knoten 622 summiert. Dies erzeugt einen quadratischen Abstandwert 636, der an das Koeffizientenerzeugungsmodul 606 gesendet wird.
  • Beim Empfang des quadratischen Abstandswertes 636 erzeugt oder bestimmt das Koeffizientenerzeugungsmodul 606 einen Abschattungskorrekturkoeffizienten für den Pixelwert 634. Wie oben beschrieben, kann dies einen oder mehre gespeicherte Koeffizientenwerte ebenso wie Interpolationstechniken umfassen. Demgemäß zeigt die 6 das Modul 606, das einen Korrekturkoeffizienten 638 an ein skalierendes Modul 608 sendet.
  • Das skalierende Modul 608 empfängt den Korrekturkoeffizienten 688 und kann ihn basierend auf Sensorkonfigurationsinformation 626 skalieren. Diese Information kann zum Beispiel eine Entfernung, so wie eine effektive Brennweite, zwischen einer optischen Anordnung und einer Sensorebene eines Bildsensors umfassen. Die Konfigurationsinformation 626 kann auf verschiedenen Wegen erhalten werden. Zum Beispiel kann, mit Bezug auf 1, diese Information vom Bildsensor 104 in der Sensorinformation 124 erhalten werden. Jedoch sind die Ausführungsformen in diesem Zusammenhang nicht beschränkt.
  • Wenn gemäß der effektiven Brennweite skaliert wird, kann das skalierende Modul 608 den Abschattungskoeffizienten 638 vergrößern, wenn die effektive Brennweite zunimmt. Als Alternative kann das skalierende Modul 608 den Abschattungskoeffizienten 638 verkleinern, wenn die effektive Brennweite abnimmt. Eine solche Skalierung kann durch die Verwendung eines multiplizierenden skalierenden Koeffizienten durchgeführt werden. Solche Koeffizienten können aus einer Abbildung der Brennweite auf skalierende Koeffizienten ausgewählt werden. Jedoch sind die Ausführungsformen in diesem Zusammenhang nicht beschränkt. Tatsächlich braucht das Skalieren nicht ausgeführt zu werden.
  • Wie es in 6 gezeigt ist, sendet die Implementierung 600 einen möglicherweise skalierten Korrekturkoeffizienten 640 und einen Pixelwert 634 an ein Korrekturmodul für die Abschattungskorrektur. Im Korrekturmodul können der Pixelwert 634 und der Koeffizient 640 multipliziert werden, um einen korrigierten Pixelwert zu erzeugen. Mit Bezug auf 1 kann dieses Korrekturmodul das Abschattungskorrekturmodul 110 sein. Die Ausführungsformen sind in diesem Zusammenhang jedoch nicht beschränkt.
  • Das Koeffizientenerzeugungsmodul 606 kann in verschiedener Weise erzeugt werden. Somit sind Implementierungen in den 7A und 7B beispielhaft gezeigt. Die Ausführungsformen jedoch sind nicht auf die Implementierungen beschränkt, die in diesen Zeichnungen gezeigt sind. Zum Bespiel können Ausführungsformen mehr oder weniger Elemente umfassen, ebenso wie andere Koppelungen zwischen Elementen.
  • 7A zeigt eine Implementierung 700, die in das Koeffizientenerzeugungsmodul 606 einschlossen werden kann. Diese Implementierung kann ein aufteilendes Modul 702, eine Koeffizientennachschlagetabelle 704, einen kombinierenden Knoten 706, einen mischenden Knoten 708, einen Divisionsknoten 710 und einen kombinierenden Knoten 712 umfassen.
  • Wie in 7A gezeigt, kann das aufteilende Modul 702 einen quadratischen Abstand 720 empfangen. Der quadratische Abstand 720 kann aus verschiedenen Quellen erhalten werden, so wie dem Modul 604 für die Bestimmung des quadratischen Abstandes. Nach dem Empfang teilt das Teilermodul 702 diesen quadratischen Abstand in einen groben Wert 721 (auch als Co gezeigt) und eine Restwert 722 (auch als Re gezeigt) auf. Mit Bezug auf binäre Implementierungen kann der grobe Wert 721 eine bestimmte Anzahl, co, der höchstwertigen Bits des quadratischen Abstands 720 sein, während der Restwert 722 die verbleibende Nummer der niederwertigsten Bits), re, sein kann.
  • Der grobe Wert 721 wird für das Nachschlagen in der Tabelle verwendet, während der Restwert 722 für die Interpolation verwendet wird. Demgemäß zeigt die 7A den groben Wert 721, der verwendet wird, um die Koeffizienten-Nachschlagetabelle (LUT) 704 zu adressieren. Als ein Ergebnis dieses Adressierens gibt die Koeffizienten-LUT 704 einen ersten Koeffzienten 724 und einen zweiten Koeffizienten 726 aus. Der erste Koeffizient 724 (auch als Coef[Co] gezeigt) entspricht direkt dem groben Wert 721. Der zweite Koeffizient 726 jedoch (auch als Coef[Co + 1] gezeigt) entspricht dem nächst höheren groben Wert.
  • 7A zeigt, dass eine Differenz zwischen den Koeffizienten 724 und 726 am kombinierenden Knoten 706 berechnet wird. Wiederum wird diese Differenz dann am mischenden Knoten 708 mit dem Restwert 722 multipliziert. Dies erzeugt ein Zwischenergebnis 728, das durch den möglichen Bereich des Restwertes 722 am Divisionsmodul 710 geteilt wird. Bei binären Implementierungen ist dieser mögliche Bereich 2re. Diese Division erzeugt eine Interpolationskomponente 730, die am kombinierenden Knoten 712 zu dem ersten Koeffizienten addiert wird.
  • Somit erzeugt der kombinierende Knoten 712 einen Korrekturkoeffizienten 732, der hiernach in Gleichung (6) ausgedrückt wird.
  • Figure 00160001
  • 7B zeigt einen Implementierung 700', die der Implementierung 300 der 3A ähnlich ist. In 7B jedoch ist der Divisionsknoten 710 durch eine Interpolations-LUT 714 ersetzt. Diese LUT liefert Interpolationskomponenten für jeden möglichen Restwert 722. Wie hierin beschrieben verringern die Techniken, so wie die der 7A und 7B, vorteilhaft Fehler, vereinfachen das Nachschlagen und erhöhen die Rechenleistung.
  • Zusätzlich verringern solche Techniken den Energieverbrauch. Dies verlängert in vorteilhafter Weise die Batterielebensdauer bei Geräten, so wie Kameras, tragbaren Telefonen und persönlichen digitalen Assistenten (PDAs). Auch werden für Hardware-Implementierungen die Komplexität und die erforderliche Fläche verringert.
  • Genauer können die hierin beschriebenen Techniken Vorteile gegenüber gitterbasierten Implementierungen liefern, in denen Kompensationskoeffizienten für Gitterpunkte in einer LUT gespeichert werden. Bei derartigen Ansätzen können Korrekturfaktoren für einzelne Punkte berechnet werden, indem bi-kubische oder bi-lineare Interpolationsalgorithmen verwendet werden. Solche Algorithmen erfordern einen weiteren Satz/weitere Sätze an LUTs und vielmehr Hardware und/oder Steuerlogik. Daher umfassen solche gitterbasierten Implementierungen mehrere LUTs und mehr Hardware und/oder Steuerlogik, um endgültige Korrekturkoeffizienten zu erlangen.
  • Im Gegensatz dazu erfordern die hierin beschriebenen Techniken kleinere LUT(s) und weniger Interpolationshardware/Steuerlogik. Dies ist der Fall, da eine lineare Interpolation, im Vergleich zu einer bi-kubischen oder bi-linearen Interpolation, verwendet wird. Darüber hinaus können die hierin beschriebenen Techniken die Verwendung teurer Hardware und/oder Steuerlogik, um Quadratwurzeln zum Erhalten des tatsächlichen radialen Abstandes vom Mittenort zu berechnen, beseitigen. Weiter kann die Größe von LUTs verringert werden, indem grobe Werte verwendet werden. Die Genauigkeit wird jedoch durch Interpolation beibehalten, die die Restwerte verwendet.
  • Arbeitsgänge für die obigen Ausführungsformen können weiter mit Bezug auf die folgenden Figuren und beigefügten Beispiele beschrieben werden. Einige der Figuren können einen lo gischen Fluss umfassen. Obwohl solche Figuren, die hierin dargestellt sind, einen bestimmten logischen Fluss umfassen können, kann verstanden werden, dass der logische Fluss lediglich ein Beispiel dafür bildet, wie die allgemeine Funktionalität, wie sie hierin beschrieben ist, implementiert werden kann. Weiter muss der gegebene logische Fluss nicht notwendigerweise in der Reihenfolge, die dargestellt ist, ausgeführt werden, wenn es nicht anders angegeben ist. Auch können die Flüsse zusätzliche Arbeitsgänge umfassen, ebenso wie bestimmte beschrienen Arbeitsgänge weglassen. Zusätzlich kann der gegebene logische Fluss durch ein Hardwareelement, ein Softwareelement, das durch einen Prozessor ausgeführt wird, oder irgendeine Kombination aus diesen implementiert werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • 8 veranschaulicht eine Ausführungsform eines logischen Flusses. Dieser Fluss kann repräsentativ für die Arbeitsgänge sein, die durch eine oder mehrere der hierin beschriebenen Ausführungsformen ausgeführt werden Wie es in der 8 gezeigt ist, umfasst dieser Fluss einen Block 802. Bei diesem Block kann eine Vielzahl von Werten für den Abschattungskorrekturkoeffizienten gespeichert werden. Jeder dieser Koeffizienten entspricht einem quadratischen Abstand von einer Mittenposition eines Bildsensors. Somit können Koeffizienten für mehrere quadratische Abstände gespeichert werden. Diese mehreren quadratischen Abstände können in im Wesentlichen gleichen Intervallen getrennt sein. Wie oben beschrieben kann dieses Merkmal vorteilhaft Abschattungskorrekturfehler verringern.
  • An einem Block 804 wird ein quadratischer Abstand zwischen einem Pixel des Bildsensors und der Mittenposition des Bildsensors bestimmt. Basierend auf dem bestimmten quadratischen Abstand wird in einem Block 806 auf einen oder mehrere der gespeicherten Koeffizientenwerte zugegriffen. Dies kann das Zugreifen auf zwei gespeicherte Koeffizientenwerte umfassen. Diese beiden Werte können benachbarten quadratischen Abständen entsprechen.
  • Diese(r) zugegriffene(n) Koeffizientenwert(e) kann/können an einem Block 808 verwendet werden, um einen Abschattungskorrekturkoeffizienten für den Pixel zu bestimmen. Wenn im Block 806 auf zwei gespeicherte Koeffizientenwerte zugriffen wird, die benachbarten quadratischen Abständen entsprechen, kann diese Bestimmung das Interpolieren zwischen den beiden Koeffizientenwerten aufweisen.
  • In einem Block 810 kann der bestimmte Abschattungskorrekturkoeffizient angepasst oder skaliert werden. Dies kann auf verschiedenen Einstellungen basieren, so wie der optischen Brennweite, die mit dem Bildsensor verknüpft ist.
  • In einem Block 812 wird ein Intensitätswert, der dem Pixel entspricht, empfangen. Dieser Intensitätswert wird in einem Block 814 korrigiert, indem er mit dem bestimmten Abschattungskorrekturkoeffizienten multipliziert wird.
  • 9 veranschaulicht eine Ausführungsform eines Systems 900. Dieses System kann repräsentativ für ein System oder eine Architektur sein, das/die zur Verwendung mit einer oder mehrere Ausführungsformen, die hierin beschrieben sind, geeignet sind, so wie der Vorrichtung 100, den Implementierungen 600, 700 und 700', ebenso wie der logische Fluss 800 und so weiter. Demgemäß kann das System 900 Bilder einfangen und Abschattungskompression entsprechend Techniken, so wie den hierin beschriebenen, durchführen. Zusätzlich kann das System 900 Bilder anzeigen und entsprechende Daten speichern. Darüber hinaus kann das System 900 Bilddaten mit entfernt befindlichen Geräten austauschen.
  • Wie es in der 9 gezeigt ist, kann das System 900 eine Vorrichtung 902, ein Kommunikationsnetzwerk 904 und ein oder mehrere entfernt befindliche Geräte 906 umfassen. 9 zeigt, dass die Vorrichtung 902 die Elemente der 1 umfassen kann. Zusätzlich kann die Vorrichtung 902 einen Speicher 908, eine Benutzerschnittstelle 910, eine Kommunikationsschnittstelle 912 und eine Energieversorgung 914 umfassen. Diese Elemente können gemäß verschiedenen Techniken gekoppelt werden. Eine solche Technik umfasst den Einsatz einer oder mehrerer Busschnittstellen.
  • Der Speicher 908 kann Information in der Form von Daten speichern. Zum Beispiel kann der Speicher 908 LUTs enthalten, so wie die LUT 704 und/oder die LUT 714. Auch kann der Speicher 908 Bilddaten speichern, so wie Pixel, und Positionsinformation, die von der Pixelpuffereinheit 602 verwaltet wird, und betriebliche Daten. Beispiele betrieblicher Daten umfassen die Koordinaten der Mittenposition und Information über die Sensorkonfiguration (z. B. die effektive Brennweite). Der Speicher 908 kann auch ein oder mehrere Bilder (mit oder ohne Abschattungskorrektur) speichern. Die Ausführungsformen jedoch sind in diesem Zusammenhang nicht beschränkt.
  • Als Alternative oder zusätzlich kann der Speicher 908 Steuerlogik, Befehle und/oder Softwarekomponenten speichern. Diese Softwarekomponenten umfassen Befehle, die von einem Prozessor ausgeführt werden können. Solche Befehle können die Funktionalität eines oder mehrerer Elemente im System 900 zur Verfügung stellen.
  • Der Speicher 900 kann implementiert werden, indem irgendein maschinenlesbares oder computerlesbares Medium verwendet wird, das in der Lage ist, Daten zu speichern, einschließlich sowohl flüchtiger als auch nicht flüchtiger Speicher. Zum Beispiel kann der Speicher 908 einen Nur-Lese-Speicher (ROM – Read Only Memor), einen Speicher mit wahlfreiem Zugriff (RAM – Random Access Memory), einen dynamischen RAM (DRAM), einen DRAM mit doppelter Datenrate (DDRAM), einen synchronen DRAM (SDRAM), einen statischen RAM (SRAM), einen programmierbaren ROM (PROM), einen löschbaren programmierbaren ROM (EPROM – Erasable Programmable ROM), einen elektrisch löschbaren programmierbaren ROM (EEPROM – Electrically Erasable Programmable ROM), einen Flash-Speicher, einen Polymerspeicher, so wie einen ferroelektrischen Polymerspeicher, einen ovonischen Speicher, einen Phasen-Change- oder ferroelektrischen Speicher, einen Silicium-Oxid-Nitrid-Oxid- Silicium(SONOS)-Speicher, magnetische oder optische Karten oder irgendeinen anderen Typ Medium, der zum Speicher von Information geeignet ist, umfassen. Es ist wert anzumerken, dass ein Teil oder der gesamte Speicher 908 in anderen Elementen des Systems 900 enthalten sein kann. Zum Beispiel kann ein Teil oder der gesamte Speicher auf derselben integrierten Schaltung oder dem Chip enthalten sein, wie das bildverarbeitende Modul 106. Als Alternative kann ein Teil oder der gesamte Speicher 908 auf einer integrierten Schaltung oder einem Medium, zum Beispiel einem Festplattenlaufwerk, das außerhalb liegt, angeordnet sein. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Eine Benutzerschnittstelle 910 vereinfacht die Wechselwirkung eines Benutzers mit der Vorrichtung 902. Diese Wechselwirkung kann die Eingabe von Information von einem Benutzer und/oder die Ausgabe von Information an einen Benutzer umfassen. Demgemäß kann die Benutzerschnittstelle 910 ein oder mehrere Geräte umfassen, so wie ein Tastenfeld, einen Berührungsbildschirm, ein Mikrofon und/oder einen Lautsprecher. Zusätzlich kann die Benutzerschnittstelle 910 eine Anzeige umfassen, um Information auszugeben und/oder um Bilder/Video zu liefern, die/das von der Vorrichtung 902 verarbeitet worden sind/ist. Beispielhafte Anzeigen umfassen Flüssigkristallanzeigen (LCDs – Liquid Crystal Displays), Plasmaanzeigen und Videoanzeigen.
  • Eine Kommunikationsschnittstelle 912 sorgt für den Austausch von Information mit anderen Vorrichtungen über Kommunikationsmedien, so wie einem Netzwerk. Diese Information kann Bild- und/oder Videosignale umfassen, die von der Vorrichtung 902 gesendet worden sind. Auch kann diese Information Sendevorgänge umfassen, die von entfernt befindlichen Vorrichtungen empfangen worden sind, so wie Anfragen nach Bild/Video-Sendungen und Befehlen, die den Betrieb der Vorrichtung 902 leiten.
  • Die Kommunikationsschnittstelle 912 kann für die drahtlose oder verdrahtete Kommunikation sorgen. Bei drahtloser Kommunikation kann die Kommunikationsschnittstelle 912 Kompo nenten umfassen, so wie einen Transceiver, eine Antenne und Steuerlogik, um Arbeitsgänge entsprechend einem oder mehreren Kommunikationsprotokollen auszuführen. Somit kann die Kommunikationsschnittstelle 912 über drahtlose Netzwerke entsprechend verschiedenen Protokollen kommunizieren. Zum Beispiel können die Vorrichtung 902 und ein Gerät bzw. Geräte 906 entsprechend verschiedenen Protokollen für drahtlose Nahbereichsnetzwerke (WLAN – Wireless Local Area Network) arbeiten, einschließlich der Serie der Protokolle IEEE 802.11, die das IEEE 802.11a, 802.11b, 802.11e, 802.11g, 802.11n und so weiter. Bei einem weiteren Beispiel können diese Vorrichtungen/Geräte gemäß verschiedenen Protokollen für ein drahtloses Mittelbereichsnetzwerk (WMAN – Wireless Metropolitan Area Network) mit mobilem, drahtlosen Breitbandzugang (MBWA – Mobile Boreadband Wireless Access), so wie einem Protokoll aus der Serie der Protokolle IEEE 802.16 oder 802.20, arbeiten. Bei einem weiteren Beispiel können diese Vorrichtungen/Geräte entsprechend verschiedenen drahtlosen persönlichen Netzwerken (WPAN – Wireless Personal Area Networks) arbeiten. Solche Netzwerke umfassen zum Beispiel IEEE 802.16e, Bluetooth und dergleichen. Auch können diese Vorrichtungen/Geräte entsprechend den Protokollen der Worldwide Interoperability for Microwave Access (WiMax) arbeiten, so wie denen, die durch das IEEE 802.16 festgelegt sind.
  • Auch können diese Geräte drahtlose zellulare Protokolle gemäß einem oder mehreren Standards benutzen. Diese zellularen Standards können zum Beispiel den Codemultiplexierzugriff (CDMA – Code Division Multiple Access), CDMA 2000, Breitband-Codemultiplexierzugriff (W-CDMA – Wideband Code-Division Multiple Access), den verbesserten allgemeinen Paketfunkdienst (GPRS – Enhanced General Packet Radio Service) unter anderen Standards aufweisen. Die Ausführungsformen jedoch sind in diesem Zusammenhang nicht beschränkt.
  • Für verdrahtete Kommunikation kann die Kommunikationsschnittstelle 912 Komponenten umfassen, so wie einen Transceiver und Steuerlogik, um Arbeitsgänge gemäß einem oder mehreren Kommunikationsprotokollen auszuführen. Beispiele solcher Kommunikationsprotokolle umfassen das Protokoll des Ethernet (z. B. IEEE 802.3), die Protokolle des dienstein tegrierten digitalen Netzes (ISDN – Integrated Services Digital Network), Protokolle des öffentlichen leitungsvermittelten Telefonnetzes (PSTN – Public Switched Telephone Network) und verschiedene Protokolle für Kabel.
  • Zusätzlich kann die Kommunikationsschnittstelle 912 Eingabe/Ausgabe (I/O)-Adapter, physikalische Anschlüsse, um den I/O-Adapter mit einem entsprechenden verdrahteten Kommunikationsmedium zu verbinden, eine Netzwerkschnittstellenkarte (NIC), einen Disk-Controller, einen Video-Controller, einen Audio-Controller und so weiter umfassen. Beispiele verdrahteter Kommunikationsmedien können einen Draht, ein Kabel, metallische Leitungen, gedruckte Leiterkarten (PCB – Printed Circuit Board), eine Leiterplatinenrückwand, ein Switching Fabric, Halbleitermaterial, doppeladrige Kabel, Koaxialkabel, Faseroptik und so weiter umfassen.
  • Die Energieversorgung 914 liefert Betriebsspannung an die Elemente der Vorrichtung 902. Demgemäß kann die Energieversorgung 914 eine Schnittstelle zu einer externen Energiequelle umfassen, so wie einer Quelle für Wechselstrom (AC – Alternating Current). Zusätzlich oder als Alternative kann die Energieversorgung 914 eine Batterie umfassen. Eine solche Batterie kann entfernbar und/oder wieder aufladbar sein. Jedoch sind die Ausführungsformen nicht auf dieses Beispiel beschränkt.
  • Zahlreiche bestimmte Einzelheiten sind hierin aufgeführt worden, um für ein gründliches Verständnis der Ausführungsformen zu sorgen. Es wird von den Fachleuten jedoch verstanden werden, dass die Ausführungsformen ohne diese bestimmten Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen sind wohlbekannte Arbeitsgänge, Komponenten und Schaltungen nicht in Einzelheiten beschrieben worden, um die Ausführungsformen dadurch nicht zu verschleiern. Es kann verstanden werden, dass die bestimmten strukturellen und funktionalen Einzelheiten, die hierin offenbart sind, repräsentativ sein können und nicht notwendigerweise den Umfang der Ausführungsformen beschränken.
  • Verschiedene Ausführungsformen können implementiert werden, indem Hardwareelemente, Softwareelemente oder eine Kombination aus beiden verwendet wird. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC – Application Specific Integrated Circuits), programmierbare logische Bauelemente (PLD – Programmable Logic Devices), Digitalsignalprozessoren (DSP – Digital Signal Processors), einen vor Ort modifizierbaren Logikbaustein (FPGA – Field Programmable Gate Array), logische Gatter, Register, Halbleiterbauelemente, Chips, Mikrochips, Chipsätze und so weiter umfassen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API – Application Program Interfaces), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination aus diesen umfassen. Das Festlegen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann sich entsprechend irgendeiner Anzahl von Faktoren ändern, so wie der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Prozesszyklusplanung, Geschwindigkeiten bei der Dateneingabe, Geschwindigkeiten bei der Datenausgabe, Speicherressourcen, Geschwindigkeiten von Datenbussen und anderen Einschränkungen bezüglich der Gestaltung oder Leistung.
  • Manche Ausführungsformen können beschrieben werden, indem der Ausdruck "gekoppelt" und "verbunden" zusammen mit ihren Ableitungen verwendet wird. Diese Ausdrücke sind nicht als Synonyme füreinander gedacht. Zum Beispiel können manche Ausführungsformen beschrieben werden, indem die Ausdrücke "verbunden" und/oder "gekoppelt" verwendet werden, um anzugeben, dass zwei oder mehr Elemente miteinander in direktem physikalischen oder elektrischen Kontakt sind. Der Ausdruck "gekoppelt" jedoch kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch zusammen arbeiten oder miteinander Wechselwirken.
  • Einige Ausführungsformen können implementiert werden, indem zum Beispiel ein maschinenlesbares Medium oder ein Gegenstand verwendet wird, der einen Befehl oder einen Satz Befehle speichern kann, die, wenn sie von einer Maschine ausgeführt werden, bewirken können, dass die Maschine ein Verfahren und/oder Arbeitsgänge gemäß den Ausführungsformen durchführt. Eine solche Maschine kann zum Beispiel irgendeine geeignete Prozessorplattform, Rechenplattform, Rechenvorrichtung, Prozessorvorrichtung, ein Rechensystem, Prozessorsystem, einen Rechner, Prozessor oder dergleichen umfassen und kann implementiert werden, indem irgendeine geeignete Kombination aus Hardeware und/oder Software verwendet wird. Das maschinenlesbare Medium oder der Gegenstand kann zum Beispiel irgendeinen geeigneten Typ einer Speichereinheit, eines Speicherelementes, eines Speichergegenstandes, eines Speichermediums, einer Speichervorrichtung, eines Speicherobjektes, eines Speichermediums und/oder einer Speichereinheit umfassen, zum Beispiel Speicher, entfernbare oder nicht entfernbare Medien, löschbare oder nicht löschbare Medien, beschreibbare oder wieder beschreibbare Medien, digitale oder analoge Medien, eine Festplatte, eine Floppy Disk, einen Compact-Disk-Nur-Lese-Speicher (CD-ROM – Compact Disk Read Only Memory), eine beschreibbare Compact Disk (CD-R – Compact Disk Recordable), eine wieder beschreibbare Compact Disk (CD-RW – Compact Disk Rewriteable), eine optische Platte, magnetische Medien, magnetooptische Medien, entfernbare Speicherkarten oder Platten, verschiedene Arten digitaler Mehrzweckplatten (DVD – Digital Versatile Disk), ein Band, eine Kassette oder dergleichen. Die Befehle können irgendeinen geeigneten Typ eines Codes umfassen, so wie ein Quellencode, einen kompilierten Code, einen interpretierten Code, einen ausführbaren Code, einen statischen Code, einen dynamischen Code, einen verschlüsselten Code und dergleichen, der implementiert wird, indem irgendeine geeignete Programmiersprache auf hoher Ebene, auf niedriger Ebene, objektorientiert, visuell, kompiliert und/oder interpretiert verwendet wird.
  • Wenn es nicht genau anders angegeben ist, kann verstanden werden, dass Ausdrücke so wie "verarbeiten", "rechnen", "berechnen", "bestimmen" oder dergleichen sich auf die Tätigkeit und/oder Prozesse eines Computers oder eines Rechensystems oder eines ähnlichen elektronischen Rechengerätes beziehen, das Daten ändert und/oder umwandelt, die in den Registern und/oder Speichern innerhalb des Rechensystems als physikalische Größen (z. B. elektronisch) dargestellt, in andere Daten, die in gleicher Weise als physikalische Größen innerhalb der Speicher, Register und anderer solcher Informationsspeicher-, Sende- oder Anzeigebauelemente des Rechensystems dargestellt sind. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Tätigkeiten spezifisch ist, soll verstanden werden, dass der Gegenstand, der in den angefügten Ansprüchen definiert ist, nicht notwendigerweise auf die speziellen Merkmale oder Tätigkeiten, die oben beschrieben sind, beschränkt ist. Stattdessen sind die oben beschriebenen bestimmten Merkmale und Tätigkeiten als beispielhafte Formen zum Implementieren der Ansprüche offenbart.
  • ZUSAMMENFASSUNG
  • Ein System, eine Vorrichtung, ein Verfahren und ein Gegenstand zum Durchführen einer Korrektur der radialen Abschattung werden beschrieben. Die Vorrichtung kann ein Koeffizientenbestimmungsmodul und ein Abschattungskorrekturmodul umfassen. Das Koeffizientenbestimmungsmodul bestimmt einen Abschattungskorrekturkoeffizienten für einen Pixel eines Bildsensors, und das Abschattungskorrekturmodul korrigiert den Pixel basierend auf einem Intensitätswert des Pixels und dem Abschattungskorrekturkoeffizienten. Der Abschattungskorrekturkoeffizient kann auf einem oder mehreren gespeicherten Koeffizientenwerten basieren, wobei der eine oder die mehreren Koeffizientenwerte einem quadratischen Abstand zwischen dem Pixel und einer Mittenposition des Bildsensors entsprechen. Auf diese Weise werden Verbesserungen in der Recheneffizienz und Verringerungen bei der Komplexität der Implementierung erhalten. Weitere Ausführungsformen können beschrieben und beansprucht sein.

Claims (20)

  1. Vorrichtung, die aufweist: – ein Koeffizientenbestimmungsmodul, um einen Abschattungskorrekturkoeffizienten für einen Pixel eines Bildsensors zu bestimmen, wobei der Abschattungskorrekturkoeffizient auf einem oder mehreren aus einer Vielzahl gespeicherter Koeffizientenwerte basiert, wobei der eine oder die mehreren gespeicherten Koeffizientenwerte einem quadratischen Abstand zwischen dem Pixel und einer Mittenposition des Bildsensors entsprechen; und ein Abschattungskorrekturmodul, um den Pixel basierend auf einem Intensitätswert des Pixels und dem Abschattungskorrekturkoeffizienten zu korrigieren.
  2. Vorrichtung nach Anspruch 1, bei der das Koeffizientenbestimmungsmodul ein Modul zum Bestimmen des quadratischen Abstandes aufweist, um den quadratischen Abstand zwischen dem Pixel und der Mittenposition des Bildsensors zu bestimmen.
  3. Vorrichtung nach Anspruch 1, die weiter aufweist: einen Speicher, um die Vielzahl der gespeicherten Koeffizientenwerte in einer Koeffizienten-Nachschlagetabelle (LUT – Look-Up Table) zu speichern, wobei die LUT Adressen für die Vielzahl der Koeffizientenwerte hat, wobei die Adressen auf entsprechenden quadratischen Abständen von der Mittenposition des Bildsensors basieren.
  4. Vorrichtung nach Anspruch 3, bei der die quadratischen Abstände, die den Adressen entsprechen, durch im Wesentlichen gleiche Intervalle getrennt sind.
  5. Vorrichtung nach Anspruch 3, bei der der Speicher weiter eine Interpolations-LUT aufweist, um Interpolationsfaktoren zwischen aufeinander folgenden Einträgen in der Koeffizienten-LUT zu speichern.
  6. Vorrichtung nach Anspruch 1, bei dem das Koeffizientenbestimmungsmodul ein Skaliermodul aufweist, um den Abschattungskorrekturkoeffizienten basierend auf einer optischen Brennweite, die mit dem Bildsensor verknüpft ist, anzupassen.
  7. Vorrichtung nach Anspruch 1, die weiter den Bildsensor aufweist.
  8. Vorrichtung nach Anspruch 1, die weiter ein Display aufweist, um Bilder anzuzeigen, die Pixelwerten entsprechen, welche von dem Bildsensor geliefert werden.
  9. Vorrichtung nach Anspruch 1, die weiter eine Kommunikationsschnittstelle aufweist, um Bildsignale an ein entfernt befindliches Gerät zu senden, wobei die Bildsignale Pixelwerten entsprechen, die von dem Bildsensor geliefert werden.
  10. Vorrichtung nach Anspruch 1, weiter mit einem Speicher, um die Vielzahl der gespeicherten Koeffizientenwerte zu speichern.
  11. Vorrichtung, die aufweist: ein Koeffizientenbestimmungsmodul, um einen Abschattungskorrekturkoeffizienten für einen Pixel eines Bildsensors zu bestimmen, wobei der Abschattungskorrekturkoeffizient auf einem oder mehreren aus einer Vielzahl gespeicherter Koeffizientenwerte basiert, wobei der eine oder die mehreren gespeicherten Koeffizientenwerte einem quadratischen Abstand zwischen dem Pixel und einer Mittenposition des Bildsensors entsprechen; und ein Abschattungskorrekturmodul, um den Pixel basierend auf einem Intensitätswert des Pixels und dem Abschattungskorrekturkoeffizienten zu korrigieren; und ein Skaliermodul, um den Abschattungskorrekturkoeffizienten basierend auf einer optischen Brennweite, die mit dem Sensor verknüpft ist, anzupassen; wobei die Vielzahl der gespeicherten Koeffizientenwerte einer Vielzahl quadratischer Abstände entspricht, die durch im Wesentlichen gleiche Intervalle getrennt sind.
  12. Verfahren, das aufweist: Speichern einer Vielzahl von Abschattungskorrekturkoeffizientenwerten, wobei jeder Koeffizientenwert einem aus einer Vielzahl quadratischer Abstände von einer Mittenposition eines Bildsensors entspricht; Bestimmen eines quadratischen Abstandes zwischen einem Pixel des Bildsensors und der Mittenposition des Bildsensors; Zugreifen auf einen oder mehrere der gespeicherten Koeffizientenwerte basierend auf dem bestimmten quadratischen Abstand; und Bestimmen eines Abschattungskorrekturkoeffizienten für den Pixel basierend auf dem einen oder den mehreren zugegriffenen Abschattungskorrekturkoeffizientenwerten.
  13. Verfahren nach Anspruch 12, das weiter aufweist: Empfangen eines Intensitätswerts, der dem Pixel entspricht; und Multiplizieren des Intensitätswerts mit dem bestimmen Abschattungskorrekturkoeffizienten.
  14. Verfahren nach Anspruch 12, bei dem die Vielzahl der quadratischen Abstände durch im Wesentlichen gleiche Intervalle getrennt sind.
  15. Verfahren nach Anspruch 12, bei dem das Zugreifen auf den einen oder die mehreren Korrekturkoeffizientenwerte das Zugreifen auf einen ersten und einen zweiten gespeicherten Koeffizientenwert umfasst; und bei dem das Bestimmen des Abschattungskorrekturkoeffizienten das Interpolieren zwischen dem ersten und dem zweiten gespeicherten Koeffizientenwert umfasst.
  16. Verfahren nach Anspruch 12, das weiter aufweist: Anpassen des bestimmten Abschattungskorrekturkoeffizienten basierend auf einer optischen Brennweite, die mit dem Bildsensor verknüpft ist.
  17. Gegenstand, der ein maschinenlesbares Speichermedium aufweist, welches Befehle enthält, die, wenn sie ausgeführt werden, es einem System ermöglichen: eine Vielzahl von Abschattungskorrekturkoeffizientenwerten zu speichern, wobei jeder Koeffizientenwert einem aus einer Vielzahl quadratischer Abstände von einer Mittenposition eines Bildsensors entspricht; Bestimmen eines quadratischen Abstandes zwischen einem Pixel des Bildsensors und der Mittenposition des Bildsensors; Zugreifen auf einen oder mehrere der gespeicherten Koeffizientenwerte basierend auf dem bestimmten quadratischen Abstand; und Bestimmen eines Abschattungskorrekturkoeffizienten für den Pixel, basierend auf dem einen oder den mehreren zugegriffenen Abschattungskorrekturkoeffizientenwerten.
  18. Gegenstand nach Anspruch 17, der weiter Befehle aufweist, die, wenn sie ausgeführt werden, es dem System ermöglichen, die Vielzahl der Koeffizientenwerte in einer Koeffizienten-Nachschlagetabelle (LUT) zu speichern, wobei die LUT Adressen für die Vielzahl der Koeffizienten hat, wobei die Adressen auf entsprechenden quadratischen Abständen von der Mittenposition des Bildsensors basieren, die durch im Wesentlichen gleiche Intervalle getrennt sind.
  19. Gegenstand nach Anspruch 17, der weiter Befehle aufweist, die, wenn sie ausgeführt werden, es dem System ermöglichen, den bestimmten Abschattungskorrekturkoeffizienten basierend auf einer optischen Brennweite, die mit dem Bildsensor verknüpft ist, anzupassen.
  20. Gegenstand nach Anspruch 17, der weiter Befehle aufweist, die, wenn sie ausgeführt werden, es dem System ermöglichen, den Abschattungskorrekturkoeffizienten für den Pixel basierend auf einer Interpolation zwischen einem ersten und einem zweiten gespeicherten Koeffizientenwert zu bestimmen.
DE112007000464T 2006-03-31 2007-03-22 Techniken für die Korrektur der radialen Abschattung Ceased DE112007000464T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/394,405 2006-03-31
US11/394,405 US20070236594A1 (en) 2006-03-31 2006-03-31 Techniques for radial fall-off correction
PCT/US2007/064607 WO2007117921A1 (en) 2006-03-31 2007-03-22 Techniques for radial fall-off correction

Publications (1)

Publication Number Publication Date
DE112007000464T5 true DE112007000464T5 (de) 2009-02-05

Family

ID=38574807

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007000464T Ceased DE112007000464T5 (de) 2006-03-31 2007-03-22 Techniken für die Korrektur der radialen Abschattung

Country Status (4)

Country Link
US (1) US20070236594A1 (de)
CN (1) CN101416092B (de)
DE (1) DE112007000464T5 (de)
WO (1) WO2007117921A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472712B2 (en) * 2009-10-20 2013-06-25 Apple Inc. System and method for applying lens shading correction during image processing
JP5693134B2 (ja) * 2009-11-04 2015-04-01 キヤノン株式会社 情報処理装置及びその制御方法
HUP1000039A2 (en) * 2010-01-22 2011-08-29 Digital Recognition Systems Ltd Surrey Technology Ct Shape recognizing camera and power supply for it
US8571343B2 (en) 2011-03-01 2013-10-29 Sharp Laboratories Of America, Inc. Methods and systems for document-image correction
US9332239B2 (en) 2012-05-31 2016-05-03 Apple Inc. Systems and methods for RGB image processing
US9105078B2 (en) 2012-05-31 2015-08-11 Apple Inc. Systems and methods for local tone mapping
US8817120B2 (en) 2012-05-31 2014-08-26 Apple Inc. Systems and methods for collecting fixed pattern noise statistics of image data
US9025867B2 (en) 2012-05-31 2015-05-05 Apple Inc. Systems and methods for YCC image processing
US9031319B2 (en) 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US9743057B2 (en) 2012-05-31 2017-08-22 Apple Inc. Systems and methods for lens shading correction
US8917336B2 (en) 2012-05-31 2014-12-23 Apple Inc. Image signal processing involving geometric distortion correction
US11089247B2 (en) 2012-05-31 2021-08-10 Apple Inc. Systems and method for reducing fixed pattern noise in image data
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
US8872946B2 (en) 2012-05-31 2014-10-28 Apple Inc. Systems and methods for raw image processing
US9142012B2 (en) 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US9014504B2 (en) 2012-05-31 2015-04-21 Apple Inc. Systems and methods for highlight recovery in an image signal processor
US9077943B2 (en) 2012-05-31 2015-07-07 Apple Inc. Local image statistics collection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11260144A (ja) * 1998-03-12 1999-09-24 Matsushita Electric Ind Co Ltd レンズ素子とこれを用いた照明光学装置及び投写型表示装置
JP2002216136A (ja) * 2001-01-23 2002-08-02 Sony Corp 距離算出方法及び撮像装置
KR20030087471A (ko) * 2002-05-10 2003-11-14 주식회사 하이닉스반도체 씨모스이미지센서 및 이를 사용한 카메라 장치
US7391450B2 (en) * 2002-08-16 2008-06-24 Zoran Corporation Techniques for modifying image field data
EP1564681A1 (de) * 2004-02-13 2005-08-17 Dialog Semiconductor GmbH Verfahren zur Kompensation von Vignettierung

Also Published As

Publication number Publication date
WO2007117921A1 (en) 2007-10-18
US20070236594A1 (en) 2007-10-11
CN101416092A (zh) 2009-04-22
CN101416092B (zh) 2011-11-16

Similar Documents

Publication Publication Date Title
DE112007000464T5 (de) Techniken für die Korrektur der radialen Abschattung
FI104521B (fi) Menetelmä kuvasekvenssien kontrastin parantamiseksi
DE112013005334B4 (de) Superauflösung auf der Basis von optischer Bildstabilisierung
DE102014204905B4 (de) Bildaufnahmevorrichtung und zugehöriges Steuerverfahren
DE112006002124B4 (de) Verfahren zum Verbessern der Kontrastverstärkung
DE102018120304A1 (de) Verfahren und System zur Bildverzerrungkorrektur für Bilder, die durch Verwenden einer Weitwinkellinse aufgenommen werden
DE69930986T2 (de) Hochauflösende Kamera
DE112021000208T5 (de) Multi-Kamera Videostabilisierung
US20170289512A1 (en) Lens Shading Modulation
DE60024898T2 (de) Recheneinheit für Bildveränderung
JP4872862B2 (ja) 画像データ演算装置および方法、プログラム、並びに記録媒体
US20130308012A1 (en) Image processing apparatus, image processing method, photographic imaging apparatus, and recording device recording image processing program
DE102012201696A1 (de) Bildverarbeitungsvorrichtung, zugehöriges Steuerverfahren, Programm und Aufzeichnungsmedium
DE102011056970A1 (de) Rasterausgabe von rotierten, interpolierten Pixeln, die für digitale Bildstabilisierung optimiert ist
DE102008059372A1 (de) Bildverzeichnungskorrektur
DE102007011222A1 (de) Autofokusverfahren und Autofokusvorrichtung zu dessen Durchführung
DE102011103423A1 (de) System und Verfahren für 3D-Videostabilisierung durch Verschmelzen von Ausrichtungssensormesswerten und Bildanordnungsabschätzungen
WO2008019867A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
CN110365894A (zh) 摄像机装置中图像融合的方法及相关装置
DE102018107950A1 (de) Bildverarbeitungsvorrichtung, bildverarbeitungsverfahren und bildaufnahmevorrichtung
EP2567539B1 (de) Bildsensor und verfahren zum aufnehmen eines bildes
US8013911B2 (en) Method for mixing high-gain and low-gain signal for wide dynamic range image sensor
DE202016107458U1 (de) Transparentes Linsenelement in konvertierbarer Basis für Kameradurchgang
WO2021026822A1 (zh) 图像处理方法、装置、图像拍摄设备及移动终端
DE112021006769T5 (de) Schaltung zur kombinierten heruntertaktung und korrektur von bilddaten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: H04N 5/217 AFI20070322BHDE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20141121