DE102018115991B4 - DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE - Google Patents

DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE Download PDF

Info

Publication number
DE102018115991B4
DE102018115991B4 DE102018115991.9A DE102018115991A DE102018115991B4 DE 102018115991 B4 DE102018115991 B4 DE 102018115991B4 DE 102018115991 A DE102018115991 A DE 102018115991A DE 102018115991 B4 DE102018115991 B4 DE 102018115991B4
Authority
DE
Germany
Prior art keywords
correction
value
image
pixel
values
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.)
Active
Application number
DE102018115991.9A
Other languages
German (de)
Other versions
DE102018115991A1 (en
Inventor
Jörg Kunze
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.)
Basler AG
Original Assignee
Basler AG
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 Basler AG filed Critical Basler AG
Priority to DE102018115991.9A priority Critical patent/DE102018115991B4/en
Priority to CN201910589742.5A priority patent/CN110677555A/en
Publication of DE102018115991A1 publication Critical patent/DE102018115991A1/en
Application granted granted Critical
Publication of DE102018115991B4 publication Critical patent/DE102018115991B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06T5/80
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3877Image rotation
    • H04N1/3878Skew detection or correction
    • 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/84Camera processing pipelines; Components thereof for processing colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/10Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
    • H04N25/11Arrangement of colour filter arrays [CFA]; Filter mosaics
    • H04N25/13Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/61Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"

Abstract

Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes (I1) einer elektronischen Kamera (10), umfassend:- Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und- Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von einer Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit einem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.Correction method for correcting a vignetting effect in values of pixels of an image (I1) of an electronic camera (10), comprising: - determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel, the correction function being a Exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, where the value of the correction function at the position of the pixel based on a cascading of feedback multiplications, which are carried out by a circuit of at least two cascaded feedback multipliers, are determined such that the values of the correction function at the positions of the pixels are continuously calculated, multiplying the value of the pixel by the value of the correction function at the position of the Pixel is carried out with a multiplier connected downstream of the at least two cascaded feedback multipliers.

Description

Die Erfindung betrifft ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera. Die Erfindung betrifft ferner eine entsprechende Korrektureinrichtung sowie eine elektronische Kamera, die einen Bildsensor und die Korrektureinrichtung umfasst. Die Erfindung betrifft ferner eine Computervorrichtung und ein Computerprogram-Produkt.The invention relates to a correction method for correcting a vignetting effect in pixel values of an image from an electronic camera. The invention further relates to a corresponding correction device and an electronic camera which includes an image sensor and the correction device. The invention further relates to a computer device and a computer program product.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Elektronische Kameras werden unter anderem in industriellen Anwendungen eingesetzt, wie sie z.B. in dem EP-Patent EP 2 929 503 B1 ausführlich beschrieben sind.Electronic cameras are used, among other things, in industrial applications, such as those in the EP patent EP 2 929 503 B1 are described in detail.

1 zeigt eine elektronische Kamera in einer vereinfacht dargestellten Anwendung. Dort beleuchtet meist eine Lampe 16 eine Szene 17 mit Objekten 18. Diese Szene wird von einer Kamera 10 aufgenommen. Dabei wird die Szene durch ein Objektiv 11 auf einen Bildsensor 12 abgebildet. Aus dessen Rohbild erzeugt eine Bildverarbeitungseinheit 13 ein Ergebnisbild, das über eine Schnittstelle 14 mit einem Ausgang 15 zur weiteren Verwendung übertragen wird. 1 shows an electronic camera in a simplified application. There, a lamp 16 usually illuminates a scene 17 with objects 18. This scene is recorded by a camera 10. The scene is imaged onto an image sensor 12 through a lens 11. From its raw image, an image processing unit 13 generates a result image, which is transmitted via an interface 14 with an output 15 for further use.

In einer industriellen Anwendung ist die Kamera oftmals Teil einer Maschine. Aus Gründen der Rentabilität ist es oftmals gewünscht, dass die Maschine schnell läuft. Dies erfordert auch von der Kamera, dass Bilder in hoher Geschwindigkeit vom Bildsensor 12 aufgenommen, in der Bildverarbeitungseinheit 13 schnell verarbeitet und dann schnell übertragen werden. Wie in EP 2 929 503 B1 erläutert, ist es überdies für die hohe Geschwindigkeit der Maschine grundsätzlich wichtig, die Latenz zwischen der Aufnahme des Rohbildes und der Übertragung so gering wie möglich zu halten.In an industrial application, the camera is often part of a machine. For reasons of profitability, it is often desired that the machine runs quickly. This also requires the camera to record images at high speed from the image sensor 12, process them quickly in the image processing unit 13 and then transmit them quickly. As in EP 2 929 503 B1 explained, for the high speed of the machine it is fundamentally important to keep the latency between the recording of the raw image and the transmission as low as possible.

Bildsensoren bestehen im Allgemeinen aus einer großen Zahl von Pixeln. Diese können beispielsweise in Form einer eindimensionalen Matrix angeordnet sein, wie in 2 (a) gezeigt. Dann spricht man von einem Zeilensensor oder englisch „line scan sensor“. Besonders häufig sind die Pixel in Form einer zweidimensionalen Matrix, wie in 2 (b) angeordnet. Dann spricht man auch von einem Matrixsensor. Matrixsensoren verfügen über eine sehr große Zahl von Bildpunkten, die üblicherweise in der Größenordnung von Millionen liegt.Image sensors generally consist of a large number of pixels. These can be arranged, for example, in the form of a one-dimensional matrix, as in 2 (a) shown. Then we speak of a line sensor or “line scan sensor”. The pixels are particularly common in the form of a two-dimensional matrix, as in 2 B) arranged. Then one also speaks of a matrix sensor. Matrix sensors have a very large number of pixels, usually in the order of millions.

Der Bildsensor kann monochrom ausgeführt sein, so wie es in 2 (a) und (b) angedeutet ist. Dann besitzen die Pixel alle eine identische oder zumindest sehr ähnliche spektrale Empfindlichkeit. Farbsensoren wiederum besitzen häufig eine Anordnung von Farbfiltern verschiedener Farbe, die als Mosaikfilter bezeichnet wird. 2 (c) zeigt einen Mosaikfilter gemäß dem US-Patent US 3, 971,065 B1 , der nach seinem Erfinder „Bayer Pattern“ genannt wird und aus Filtern der Farben Rot R, Grün G und Blau B aufgebaut ist.The image sensor can be monochrome, as in 2 (a) and (b) is indicated. Then the pixels all have identical or at least very similar spectral sensitivity. Color sensors, in turn, often have an arrangement of color filters of different colors, which is referred to as a mosaic filter. 2(c) shows a mosaic filter according to the US patent US 3,971,065 B1 , which is called the “Bayer Pattern” after its inventor and is made up of filters in the colors red R, green G and blue B.

Das Auslesen des Rohbildes aus dem Bildsensor 12 erfolgt typischerweise progressiv. 3 zeigt eine Prinzipdarstellung eines progressiven Auslesevorgangs, der hier zeilenweise vorgenommen wird. Dabei werden zunächst in Zeilenrichtung 32 das Signal des ersten Pixels 30, anschließend das Signal des ihm rechts benachbarten Pixels 31 und so weiter in Leserichtung ausgegeben. Ist der letzte Pixel 33 einer Zeile erreicht, führt das zeilenweise Auslesen einen Sprung 34 zur nächsten Zeile 35 durch und beginnt dort wiederum mit dem ersten Pixel.The raw image is typically read out from the image sensor 12 progressively. 3 shows a schematic representation of a progressive readout process, which is carried out here line by line. The signal of the first pixel 30 is first output in the line direction 32, then the signal of the pixel 31 adjacent to it to the right and so on in the reading direction. When the last pixel 33 of a line is reached, the line-by-line reading carries out a jump 34 to the next line 35 and begins there again with the first pixel.

In 4 (a) ist beispielhaft ein Bildsensor dargestellt, dessen Pixelmatrix in zwei Blöcke 40 und 41 aufgeteilt ist und bei dem das Auslesen in diesen beiden Blöcken spiegelbildlich zueinander erfolgt. Ein solcher Bildsensor ist beispielsweise aus dem US-Patent US 7,362,358 B2 bekannt. Es gibt zahlreiche weitere Arten, die Pixelmatrix eines Bildsensors in Blöcke aufzuteilen, z.B. in Streifen oder in Quadranten. Gemäß dem üblichen Sprachgebrauch wird dieser Vorgang hier englisch als „split readout“ bezeichnet.In 4 (a) An image sensor is shown as an example, the pixel matrix of which is divided into two blocks 40 and 41 and in which the reading in these two blocks takes place in mirror image of one another. Such an image sensor is, for example, from the US patent US 7,362,358 B2 known. There are numerous other ways to divide the pixel matrix of an image sensor into blocks, for example into strips or quadrants. According to common usage, this process is referred to here in English as “split readout”.

Weiterhin sind Bildsensoren bekannt, die in jedem Taktzyklus eines Auslesevorgangs mehr als einen Pixelwert übermitteln, z.B. der Bildsensor PB-MV13 der Photobit Corporation. Dies ist anhand der 4 (b) erläutert. Hier werden die Pixel der ersten Zeile in den Taktzyklen t00, t01 und t02 übermittelt. Dabei werden in jedem dieser Taktzyklen als Beispiel zwei Pixelwerte nebeneinanderliegender Pixel übermittelt. Das gilt entsprechend auch beim Auslesen der zweiten Zeile in den Taktzyklen t10, t11 und t12 und so weiter. Die jeweils gleichzeitig übertragenen Pixelwerte werden hier als ein Vektor aufgefasst und daher wird hier dieses Ausleseschema auch als „vektorisiert“ bezeichnet. Es können auch mehr als zwei Pixel beim Auslesen zu einem Vektor zusammengefasst werden, z.B. 4, 8, 10, 16, usw.Furthermore, image sensors are known which transmit more than one pixel value in each cycle of a readout process, for example the PB-MV13 image sensor from Photobit Corporation. This is based on the 4(b) explained. Here the pixels of the first line are transmitted in the clock cycles t 00 , t 01 and t 02 . In each of these clock cycles, two pixel values of adjacent pixels are transmitted as an example. This also applies when reading out the second line in the clock cycles t 10 , t 11 and t 12 and so on. The pixel values transmitted at the same time are viewed here as a vector and this readout scheme is therefore also referred to as “vectorized”. More than two pixels can also be combined into a vector when reading out, e.g. 4, 8, 10, 16, etc.

Eine bestimmte Art des Auslesens führt zu einem Datenformat, in dem die Bilddaten des Rohbildes vorliegen. Es ist üblich, Datenformate in andere Datenformate umzuwandeln. Beispielsweise können Bilddaten, die mit „split readout“ ausgelesen wurden, in progressive Daten umgewandelt werden, indem die Bilddaten einer Zeile zwischengespeichert und nachfolgend mit doppelter Frequenz progressiv ausgelesen werden. Auch ist es möglich, Vektorbreiten zu vergrößern oder zu verkleinern, z.B. indem die Taktfrequenz um den entsprechenden Faktor herunter- oder heraufgesetzt wird.A certain type of reading leads to a data format in which the image data of the raw image is available. It is common to convert data formats into other data formats. For example, image data that was read out with “split readout” can be converted into progressive data by buffering the image data of a line and then progressively reading it out at double the frequency. It is also possible to increase or decrease vector widths, for example by Clock frequency is reduced or increased by the corresponding factor.

Wie in EP 2 929 503 B1 dargelegt, ist es üblich, Bildkorrekturen in Bildverarbeitungsmitteln durchzuführen. Diese Bildkorrekturen müssen zumeist in Echtzeit berechnet werden. Hierfür kann grundsätzlich ein Rechner, z.B. ein Computer mit Prozessor (CPU), Microcontroller (MCU) oder Grafikprozessor (GPU), eingesetzt werden. Die für den Betrieb der Maschine geforderte hohe Geschwindigkeit der Bildverarbeitungseinheit 13 bei gleichzeitigem Kostendruck erfordert allerdings häufig den Einsatz spezieller elektronischer Schaltkreise, z.B. Field-Programmable Gate Array (FPGA), System-on-Chip (SOC) oder Image Signal Processor (ISP). Je nach Architektur ist es dabei wünschenswert, sparsam mit digitalen Ressourcen umzugehen, da diese beispielsweise Rechenzeit, Rechenleistung, Logikressourcen, Chipfläche oder Energie verbrauchen und deren Verwendung somit jeweils grundsätzlich mit Kosten verbunden ist. Auch die mit einer hohen Leistungsaufnahme verbundene Wärmeentwicklung stellt in der Praxis häufig ein Problem dar.As in EP 2 929 503 B1 explained, it is common practice to carry out image corrections in image processing means. These image corrections usually have to be calculated in real time. In principle, a computer can be used for this, e.g. a computer with a processor (CPU), microcontroller (MCU) or graphics processor (GPU). However, the high speed of the image processing unit 13 required for the operation of the machine and the simultaneous cost pressure often require the use of special electronic circuits, for example field-programmable gate array (FPGA), system-on-chip (SOC) or image signal processor (ISP). Depending on the architecture, it is desirable to use digital resources sparingly, as these consume, for example, computing time, computing power, logic resources, chip area or energy and their use is therefore fundamentally associated with costs. The heat development associated with high power consumption is also often a problem in practice.

In den genannten Schaltkreisen FPGA, SOC und ISP erfolgt die Berechnung in einer durch Konfiguration oder Chipdesign bereitgestellten speziellen digitalen Hardware. Grundsätzlich ist es auch immer noch möglich, solche Berechnungen in analogen Schaltkreisen vorzunehmen, wenngleich auch diese in den letzten Jahrzehnten kontinuierlich an Bedeutung für die Bildverarbeitung verloren haben.In the FPGA, SOC and ISP circuits mentioned, the calculation takes place in special digital hardware provided by configuration or chip design. In principle, it is still possible to carry out such calculations in analog circuits, although these have steadily become less important for image processing in recent decades.

In digitalen Schaltkreisen ist es vergleichsweise einfach, ressourcensparend und kostengünstig, Additionen, Subtraktionen und Multiplikationen durchzuführen. Beispielsweise können im FPGA Additionen und Subtraktionen mit Hilfe von Logikelementen durchgeführt werden. Für Multiplikationen stehen alternativ auch dedizierte Multiplizierer zur Verfügung. Daher werden diese Operationen hier als hardwarefreundliche Operationen bezeichnet und ihre Verwendung in Hardware wird als vorteilhaft angesehen. Andere Operationen, wie die Division, das Wurzelziehen oder die Berechnung transzendenter Funktionen, wie z.B. Cosinus, Cosinus Hyperbolicus, Exponentialfunktion und Logarithmus, sind dort hingegen in Hardware mit erheblichem Aufwand beziehungsweise Kosten verbunden. Diese Operationen werden hier als hardwareunfreundliche Operationen bezeichnet und ihre Verwendung in Hardware wird als nachteilig angesehen.In digital circuits, it is comparatively easy, resource-saving and cost-effective to carry out additions, subtractions and multiplications. For example, additions and subtractions can be carried out in the FPGA using logic elements. Alternatively, dedicated multipliers are also available for multiplications. Therefore, these operations are referred to here as hardware-friendly operations and their use in hardware is considered beneficial. Other operations, such as division, taking roots or calculating transcendental functions such as cosine, hyperbolic cosine, exponential function and logarithm, require considerable effort or costs in hardware. These operations are referred to herein as hardware-unfriendly operations and their use in hardware is considered disadvantageous.

Wie in EP 2 929 503 B1 erläutert, befinden sich in industriellen Anwendungen häufig noch ein Computer, der die übermittelten Daten 15 übernimmt und in der Lage ist, die Kamera 10 zu parametrisieren. Je nach Anwendung kann es daher möglich sein, umfangreiche oder komplizierte Berechnungen auf den Computer zu verlagern. Dies gilt insbesondere dann, wenn diese Berechnungen nicht zeitkritisch sind und beispielsweise nur zur Konfiguration der Kamera 10 verwendet werden, die dann ihrerseits im nachfolgenden Betrieb eigenständig arbeitet. Grundsätzlich können hardwareunfreundliche Operationen auf Computern besser ausgeführt werden als in Hardware. Es ist daher hinsichtlich des Ressourcenbedarfs und der Kosten oft vorteilhaft, solche Operationen auf den Computer zu verlagern, jedoch wird dafür mehr Rechenzeit benötigt.As in EP 2 929 503 B1 explained, in industrial applications there is often a computer that takes over the transmitted data 15 and is able to parameterize the camera 10. Depending on the application, it may be possible to offload extensive or complicated calculations to the computer. This is particularly true if these calculations are not time-critical and are, for example, only used to configure the camera 10, which then works independently in subsequent operation. In principle, hardware-unfriendly operations can be performed better on computers than in hardware. It is therefore often advantageous in terms of resource requirements and costs to move such operations to the computer, but this requires more computing time.

Elektronische Kameras werden in industriellen Anwendungen häufig für Messaufgaben verwendet. Hierbei werden beispielsweise zu prüfende Werkstücke mit einer Kamera aufgenommen und die Helligkeit wird vom Computer pixelweise mit einem Sollwert verglichen. Dabei werden häufig untere und/oder obere Schwellwerte herangezogen, um eine Entscheidung über eine Fehlerhaftigkeit des Werkstückes zu treffen. Daher ist es grundsätzlich wünschenswert, dass gleich helle Teile der Szene 17 im Ergebnisbild gleichermaßen hell erscheinen, denn eine inhomogene Helligkeitsverteilung könnte diese Entscheidungsbildung stören.Electronic cameras are often used for measurement tasks in industrial applications. For example, workpieces to be tested are recorded with a camera and the brightness is compared pixel by pixel by the computer with a target value. Lower and/or upper threshold values are often used to make a decision about whether the workpiece is defective. Therefore, it is fundamentally desirable that equally bright parts of the scene 17 appear equally bright in the resulting image, because an inhomogeneous brightness distribution could disrupt this decision-making process.

Es ist bekannt, dass Objektive grundsätzlich keine gleichermaßen helle Abbildung vornehmen. Sie erzeugen zumeist einen sogenannten Randlichtabfall, der oft auch Randabschattung genannt wird. Manchmal wird dieser Effekt auch verallgemeinert als Vignettierung bezeichnet. Auf Englisch spricht man von „vignetting“ oder „lens roll-off“. Der Randlichtabfall bewirkt, dass vor allem äußere Teile des Bildes gegenüber anderen, vor allem zentralen Teilen zu dunkel erscheinen. Es handelt sich also grundsätzlich um einen Intensitätsfehler. Eine gute Beschreibung und Darstellung dieses Effektes findet sich im in B. Jähne et al. (Hrsg.), „Handbook of Computer Vision and Applications“, Academic Press, 1999.It is known that lenses generally do not produce equally bright images. They usually create a so-called edge light fall-off, which is often also called edge shading. Sometimes this effect is also generally referred to as vignetting. In English we speak of “vignetting” or “lens roll-off”. The edge light falloff causes outer parts of the image in particular to appear too dark compared to other, especially central, parts. So it is basically an intensity error. A good description and presentation of this effect can be found in B. Jähne et al. (Ed.), “Handbook of Computer Vision and Applications”, Academic Press, 1999.

Es ist wünschenswert, diese Intensitätsfehler zu korrigieren, um eine gleichmäßig helle Abbildung zu erzielen. Dabei soll das Ergebnisbild die Intensitätsverteilung auf dem Objekt 18 korrekt wiedergeben, also so, wie sie sich ohne durch das Objektiv 11 erzeugten Intensitätsfehler ergeben würden.It is desirable to correct these intensity errors to achieve a uniformly bright image. The resulting image should correctly reproduce the intensity distribution on the object 18, i.e. as it would result without the intensity error generated by the lens 11.

STAND DER TECHNIKSTATE OF THE ART

Zur Korrektur des Randlichtabfalls gibt es eine beachtliche Menge an Publikationen, z.B. die US- bzw. EP-Patente US 9,414,052 B2 , US 7,453,502 B2 , EP 1 700 268 B1 , US 7,391,450 B2 , EP 1 711 880 B1 , EP 2 278 788 B1 , US 7,692,700 B2 , US 7,834,921 B1 , US 7,634,152 B2 , US 7,548,262 B2 , US 7,920,171 B2 , US 7, 907,195 B2 , US 7,388,610 B2 , US 7,408,576 B2 , US 8,130,292 B2 , US 8,218 , 037 B2 , US 7,961,973 B2 , US 8,472,712 B2 , US 8,712,183 B2 , US 8,577,140 B2 und US 7,817,196 B1 .There are a considerable number of publications on correcting the edge light fall-off, for example the US and EP patents US 9,414,052 B2 , US 7,453,502 B2 , EP 1 700 268 B1 , US 7,391,450 B2 , EP 1 711 880 B1 , EP 2 278 788 B1 , US 7,692,700 B2 , US 7,834,921 B1 , US 7,634,152 B2 , US 7,548,262 B2 , US 7,920,171 B2 , US 7,907,195 B2 , US 7,388,610 B2 , US 7,408,576 B2 , US 8,130,292 B2 , US 8,218 , 037 B2 , US 7,961,973 B2 , US 8,472,712 B2 , US 8,712,183 B2 , US 8,577,140 B2 and US 7,817,196 B1 .

5 erklärt eine weit verbreitete, grundsätzliche Methode zur Korrektur der Randabschattung. Diese Methode, wird von den meisten Verfahren verwendet, z.B. in J.C. Russ, „The Image Processing Handbook“, 2nd Edition, CRC Press, 1994. Zur Einrichtungszeit 50, im industriellen Kontext z.B. während der Produktion einer Kamera oder während der Inbetriebnahme einer Maschine, in der die Kamera zum Einsatz kommt, wird ein Referenzbild I0 aufgenommen. Dieses Referenzbild I0 wird häufig so gestaltet, dass es leicht auszuwerten ist, z.B. indem die aufgenommene Szene 17 nur aus einer homogenen Fläche besteht. Beispielsweise kann die Szene 17 eine weiße Referenzkarte zeigen oder sie kann komplett leer sein, indem sich keine Objekte 18 darin befinden. Dann wird ein mathematisches Modell M angewandt und mit seiner Hilfe werden Parameter P bestimmt. Zur Laufzeit 51 wird mit Hilfe dieser Parameter P für ein Rohbild I1 eine Korrektur K vorgenommen. Dadurch wird ein korrigiertes Ergebnisbild I2 erhalten. 5 explains a widely used, basic method for correcting edge shading. This method is used by most procedures, e.g. in JC Russ, “The Image Processing Handbook”, 2nd Edition, CRC Press, 1994. At setup time 50, in an industrial context e.g. during the production of a camera or during the commissioning of a machine , in which the camera is used, a reference image I 0 is recorded. This reference image I 0 is often designed in such a way that it is easy to evaluate, for example in that the recorded scene 17 consists only of a homogeneous surface. For example, the scene 17 can show a white reference map or it can be completely empty with no objects 18 in it. Then a mathematical model M is applied and with its help parameters P are determined. At runtime 51, a correction K is made for a raw image I 1 using these parameters P. This results in a corrected result image I 2 .

6 erläutert eine Möglichkeit, wie eine solche Korrektur K nach J.C. Russ durchgeführt werden kann. Dies erfolgt dadurch, dass zur Laufzeit 51 dasselbe Modell 53 angewandt wird, das auch als Modell 52 zur Bestimmung der Parameter P während der Einrichtungszeit 50 genutzt wurde. Da davon ausgegangen werden kann, dass die Randabschattung ein multiplikativer Vorgang ist, besteht die Korrektur dann darin, dass eine Division 54 durch den Modellwert M der Randabschattung erfolgt, denn die Division ist die inverse Operation zur Multiplikation. Dadurch wird der Effekt der Randabschattung aufgehoben. Nachteilig ist dabei, dass die Division hardwareunfreundlich ist und zur Laufzeit 51 für jeden Pixel und somit sehr häufig ausgeführt werden muss, wodurch sie nicht gut in z.B. einen Computer verlagert werden kann. 6 explains one way in which such a correction K according to JC Russ can be carried out. This is done by applying the same model 53 at runtime 51 that was also used as model 52 to determine the parameters P during setup time 50. Since it can be assumed that edge shading is a multiplicative process, the correction then consists of dividing 54 by the model value M of the edge shading, because division is the inverse operation of multiplication. This eliminates the effect of edge shading. The disadvantage here is that the division is hardware-unfriendly and has to be carried out 51 times for each pixel at runtime and therefore very frequently, which means that it cannot be easily relocated to a computer, for example.

Ein anderes grundsätzliches Vorgehen wird beispielsweise in dem US-Patent US 9,414,052 B2 beschrieben und ist in 7 gezeigt. Hier wird die erforderliche Division 60 auf den Bilddaten des Referenzbildes I0 durchgeführt, z.B. indem pixelweise deren Reziprokwert errechnet wird. Anschließend wird ein für die reziproken Werte geeignetes Modell 61 auf die reziproken Bildwerte angewandt und es werden dafür Parameter 62 erhalten. In diesem Fall kann die Korrektur K dadurch erfolgen, dass die Ausgangswerte des zum Modell 61 identischen Modells 63 zur Laufzeit 51 ermittelt und auf die Pixelwerte des Rohbildes I1 multipliziert werden. Im Vergleich zur der zuvor beschriebenen Division ist die zur Laufzeit 51 durchgeführte Multiplikation 64 hardwarefreundlicher.A different basic procedure is used, for example, in the US patent US 9,414,052 B2 described and is in 7 shown. Here the required division 60 is carried out on the image data of the reference image I 0 , for example by calculating its reciprocal value pixel by pixel. A model 61 suitable for the reciprocal values is then applied to the reciprocal image values and parameters 62 are obtained for this. In this case, the correction K can be carried out by determining the output values of the model 63, which is identical to the model 61, at runtime 51 and multiplying them to the pixel values of the raw image I 1 . Compared to the previously described division, the multiplication 64 carried out at runtime 51 is more hardware-friendly.

Zahlreiche Verfahren zur Korrektur des Randlichtabfalls arbeiten radial und beziehen sich dabei auf einen Mittelpunkt, z.B. die US- bzw. EP-Patente US 7,453,502 B2 , EP 1 700 268 B1 , EP 2 278 788 B1 , US 7,692,700 B2 , US 7,834,921 B1 , US 7,634,152 B2 , US 7,548 262 B2 , US 7,920,171 B2 , US 7,907,195 B2 , US 7,408 , 576 B2 , US 8,130,292 B2 , US 7,961,973 B2 , US 8,472,712 B2 und US 8,577,140 B2 . 8 (a) erläutert den Unterschied zwischen dem geometrischen Mittelpunkt 71 und dem optischen Mittelpunkt 72 eines Bildes. Dieser Unterschied wird auch z.B. in US 7,548,262 B2 und US 7,453,502 B2 beschrieben. Der geometrische Mittelpunkt 71 befindet sich in der Mitte des Pixelarrays 70 des Bildsensors und kann, wie z.B. in US 7,920,171 B2 beschrieben wird, grundsätzlich zur Vignettierungskorrektur verwendet werden. Er ergibt sich unmittelbar aus den mechanischen Eigenschaften des Bildsensors und ist daher leicht zu bestimmen.Numerous methods for correcting edge light falloff work radially and refer to a center point, for example the US and EP patents US 7,453,502 B2 , EP 1 700 268 B1 , EP 2 278 788 B1 , US 7,692,700 B2 , US 7,834,921 B1 , US 7,634,152 B2 , US 7,548 262 B2 , US 7,920,171 B2 , US 7,907,195 B2 , US 7,408 , 576 B2 , US 8,130,292 B2 , US 7,961,973 B2 , US 8,472,712 B2 and US 8,577,140 B2 . 8 (a) explains the difference between the geometric center 71 and the optical center 72 of an image. This difference is also, for example, in US 7,548,262 B2 and US 7,453,502 B2 described. The geometric center 71 is located in the middle of the pixel array 70 of the image sensor and can, for example, in US 7,920,171 B2 can generally be used for vignetting correction. It results directly from the mechanical properties of the image sensor and is therefore easy to determine.

Der optische Mittelpunkt 72 hingegen beschreibt das Zentrum der vom Objektiv ausgehenden Effekte. Er hat typischerweise einen Versatz zum geometrischen Mittelpunkt 71 und fällt häufig mit der Lage der optischen Achse des Objektives auf dem Bildsensor zusammen. Da der Effekt der Randabschattung oder Vignettierung meist in guter Näherung radialsymmetrisch um den optischen Mittelpunkt 72 auftritt, liefert eine Korrektur, die auf dem optischen Mittelpunkt 72 statt auf dem geometrischen Mittelpunkt 71 beruht, meist bessere Ergebnisse. Dem steht gegenüber, dass die korrekte Bestimmung des optischen Mittelpunktes 72 grundsätzlich mit technischen Schwierigkeiten verbunden ist und teilweise umfangreiche Berechnungen erfordert, wie dies z.B. aus EP 1 700 268 B1 , EP 2 278 788 B1 und US 7,634,152 B2 hervorgeht. In US 7,692,700 B2 findet sich ein Hinweis, dass es vorteilhaft ist, eine Korrektur so vorzunehmen, dass die Bildhelligkeit im optischen Mittelpunkt 72 durch die Korrektur nicht verändert wird.The optical center 72, on the other hand, describes the center of the effects emanating from the lens. It typically has an offset from the geometric center 71 and often coincides with the position of the optical axis of the lens on the image sensor. Since the effect of edge shading or vignetting usually occurs in a good approximation with radial symmetry around the optical center 72, a correction based on the optical center 72 instead of the geometric center 71 usually provides better results. On the other hand, the correct determination of the optical center 72 is fundamentally associated with technical difficulties and sometimes requires extensive calculations, as shown, for example EP 1 700 268 B1 , EP 2 278 788 B1 and US 7,634,152 B2 emerges. In US 7,692,700 B2 There is an indication that it is advantageous to carry out a correction in such a way that the image brightness in the optical center 72 is not changed by the correction.

Es besteht grundsätzlich die Möglichkeit, das gesamte Bild als eine einheitliche Zone 73 zu behandeln, in der die Korrektur in einheitlicher Weise, d.h. insbesondere mit identischen Parametern P, durchgeführt wird. Dies wird in 8 (a) angedeutet und ist so z.B. in US 7,45,3502 B2 , US 7,634,152 B2 , US 7,548,262 B2 und US 7,920,171 B2 beschrieben.In principle, it is possible to treat the entire image as a uniform zone 73 in which the correction is carried out in a uniform manner, ie in particular with identical parameters P. This will be in 8 (a) indicated and is, for example, in US 7,45,3502 B2 , US 7,634,152 B2 , US 7,548,262 B2 and US 7,920,171 B2 described.

Alternativ kann das Bild auch wie in 8 (b) dargestellt, in konzentrische Zonen 82, 83 und 84 rund um einen Mittelpunkt 81 aufgeteilt werden, wobei je nach Zone aus den gesamten Parametern P spezielle Parameter für die jeweilige Zone ausgewählt werden. Auch die Verwendung einer radialen Korrekturfunktion, die ausgehend von einem Mittelpunkt 81 als eine Funktion des Radius definiert und in Bereiche unterteilt ist, führt zu einer solchen Situation. Eine solche Unterteilung kann beispielsweise durch Stützstellen vorgenommen werden, zwischen denen eine Interpolation erfolgt. Methoden, die durch solche radialen Zonen beschrieben werden können, werden unter anderem in EP 1 700 268 B1 , US 7,834,921 B1 , US 7,907,195 B2 , US 7,408,576 B2 und US 7,961,973 B2 genannt.Alternatively, the image can also be as in 8(b) shown, are divided into concentric zones 82, 83 and 84 around a center point 81, with special parameters for the respective zone being selected from the entire parameters P depending on the zone be chosen. The use of a radial correction function, which is defined as a function of the radius starting from a center 81 and divided into areas, also leads to such a situation. Such a subdivision can be carried out, for example, using support points between which interpolation takes place. Methods that can be described by such radial zones are described, among others, in EP 1 700 268 B1 , US 7,834,921 B1 , US 7,907,195 B2 , US 7,408,576 B2 and US 7,961,973 B2 called.

8 (c) zeigt eine weitere vielfach verwendete Möglichkeit, das Bild 90 entlang der Zeilen- oder Spaltenrichtungen in Zonen aufzuteilen, die häufig als Blöcke bezeichnet werden. Dabei besteht eine grundsätzliche Idee darin, aus den gesamten Parametern P spezielle Parameter für den jeweiligen Block auszuwählen. Eine solche Aufteilung kann beispielsweise mit Fallunterscheidungen vorgenommen werden. Auch die Verwendung gitterförmig verteilter Stützstellen, zwischen denen eine Interpolation erfolgt, und die Verwendung zweidimensionaler Spline-Elemente, führen letztendlich zu einer solchen Aufteilung in Blöcke, wobei sich die speziellen Parameter dann aus den Werten der zu einem zu korrigierenden Pixel benachbarten Stützstellen ergeben. Ein solches Vorgehen wird beispielsweise in US 9,414,052 B2 , EP 1 711 880 B1 , US 7,388,610 B2 , US 8,218,037 B2 , US 8, 472,712 B2 , US 8,712,183 B2 und US 7,817,196 B1 beschrieben. 8(c) shows another widely used way to divide the image 90 into zones, often referred to as blocks, along row or column directions. A basic idea is to select specific parameters for the respective block from the entire parameters P. Such a division can be made using case distinctions, for example. The use of grid-shaped distributed support points, between which interpolation takes place, and the use of two-dimensional spline elements ultimately lead to such a division into blocks, with the special parameters then resulting from the values of the support points adjacent to a pixel to be corrected. Such an approach is used, for example, in US 9,414,052 B2 , EP 1 711 880 B1 , US 7,388,610 B2 , US 8,218,037 B2 , US 8,472,712 B2 , US 8,712,183 B2 and US 7,817,196 B1 described.

Das mathematische Modell M beruht grundsätzlich auf einer mathematischen Funktion, die vom Radius oder einer Potenz des Radius oder von Koordinaten oder Differenzen von Koordinaten oder einer anderen Funktion von Koordinaten abhängen. Dabei kommen im Stand der Technik verschiedenste Funktionen zum Einsatz:

  • In US 8,472,712 B2 , US 8,218,037 B2 und US 7,961,973 B2 werden z.B. lineare Funktionen genannt, zu denen auch die lineare Interpolation gehört. Da eine lineare Funktion die Form einer Randabschattung oder Vignettierung nur sehr schlecht beschreibt, werden gegebenenfalls lineare Korrekturen mit jeweils einem festen Parametersatz nur kleinräumig im Bereich einer Zone angewandt, an die sich üblicherweise jeweils weitere Zonen mit linearen Korrekturen mit anderen Parametersätzen anschließen. Somit werden für eine lineare Korrektur der Randabschattung oder Vignettierung eine große Anzahl an linearen Funktionen benötigt, die in zahlreichen Zonen angewandt werden. Dies führt zu einem hohen Speicherbedarf für die Parameter, wie z.B. Koeffizienten oder Stützstellen.
The mathematical model M is fundamentally based on a mathematical function that depends on the radius or a power of the radius or on coordinates or differences of coordinates or another function of coordinates. A wide variety of functions are used in the state of the art:
  • In US 8,472,712 B2 , US 8,218,037 B2 and US 7,961,973 B2 For example, linear functions are called, which also include linear interpolation. Since a linear function only describes the shape of edge shading or vignetting very poorly, linear corrections with a fixed set of parameters are only applied on a small scale in the area of a zone, which is usually followed by further zones with linear corrections with different sets of parameters. Therefore, for a linear correction of edge shading or vignetting, a large number of linear functions are required, which are applied in numerous zones. This leads to a high memory requirement for the parameters, such as coefficients or support points.

Lineare Funktionen bilden Polynome ersten Grades. Daraus lässt sich der Gedanke ableiten, die Korrektur zu verbessern, indem stattdessen Polynomfunktionen höheren Grades verwendet werden, die in der Lage sind, die tatsächlich benötigte Funktion besser zu approximieren. Solche Polynomfunktionen werden häufig als Funktion des Radius verwendet, wie z.B. in US 7,453,502 B2 , EP 1 700 268 B1 , US 7,548,262 B2 , US 7,907,195 B2 und US 7,408,576 B2 . Es können auch zweidimensionale Polynome verwendet werden, die auf Flächen definiert sind und üblicherweise zwei Koordinatenwerte, z.B. x und y, als Eingangswerte verwenden. Entsprechende Anregungen oder Lösungen sind z.B. bei Russ und in US 7,692 , 700 B2 und US 8,712,183 B2 beschrieben.Linear functions form first degree polynomials. This leads to the idea of improving the correction by using higher degree polynomial functions instead, which are able to better approximate the function actually required. Such polynomial functions are often used as a function of radius, such as in US 7,453,502 B2 , EP 1 700 268 B1 , US 7,548,262 B2 , US 7,907,195 B2 and US 7,408,576 B2 . Two-dimensional polynomials can also be used, which are defined on surfaces and usually take two coordinate values, e.g. x and y, as input values. Corresponding suggestions or solutions can be found, for example, in Russ and in US 7,692 , 700 B2 and US 8,712,183 B2 described.

Ein weiterer Ansatz verwendet Oberflächenkurven, die auf zweidimensionalen Spline- oder Bezier-Funktionen beruhen, und wird beispielsweise in US 9,414,052 B2 verwendet. An dieser Stelle sei darauf hingewiesen, dass sich auch Bezier- oder Spline-Kurven in äquivalente Polynome umrechnen oder durch solche ausdrücken lassen. Auf eine Unterscheidung zwischen Spline-, Bezier- und Polynomfunktionen und -kurven wird hier daher verzichtet und sie werden im Kontext der Erfindung unter dem Oberbegriff „Polynomfunktionen“ zusammengefasst.Another approach uses surface curves based on two-dimensional spline or Bezier functions and is described, for example, in US 9,414,052 B2 used. It should be noted at this point that Bezier or spline curves can also be converted into equivalent polynomials or expressed using them. A distinction between spline, Bezier and polynomial functions and curves is therefore omitted here and in the context of the invention they are summarized under the generic term “polynomial functions”.

Eine weitere Möglichkeit bietet schließlich die Verwendung trigonometrischer Funktionen und daraus abgeleiteter Funktionen, wie z.B. cos4. Dies wird ebenfalls in US 9,414,052 B2 beschrieben. Auch die Cosinus Hyperbolicus-Funktion cosh wird als Basis für eine Lösung des Vignettierungsproblems verwendet, wie z.B. in US 7,920,171 B2 dargelegt. An einer solchen Lösung ist grundsätzlich nachteilig, dass es sich bei der Berechnung der Werte einer trigonometrischen Funktion stets um eine hardwareunfreundliche Operation handelt.Finally, another possibility is to use trigonometric functions and functions derived from them, such as cos 4 . This will also be in US 9,414,052 B2 described. The cosine hyperbolicus function cosh is also used as a basis for a solution to the vignetting problem, such as in US 7,920,171 B2 explained. The fundamental disadvantage of such a solution is that calculating the values of a trigonometric function is always a hardware-unfriendly operation.

A. Kordecki et al., „Fast Vignetting Reduction Method for Digital Still Camera“, IEEE, International Conference on Methods and Models in Automation and Robotics (MMAR), 2015, S. 1145-1150 , offenbart ein neues Verfahren zum Reduzieren von Vignettierungseffekten basierend auf zwei Bildern, die mit unterschiedlichen Kamera-/Linseneinstellungen aufgezeichnet wurden. Die Änderung der Linsenöffnung ändert auch den Vignettierungseffekt in den Bildern. Diese Differenzen werden verwendet, um eine Vignettierungsfunktion zu schätzen, die zur Vignettierungsreduktion verwendet wird. A. Kordecki et al., “Fast Vignetting Reduction Method for Digital Still Camera,” IEEE, International Conference on Methods and Models in Automation and Robotics (MMAR), 2015, pp. 1145-1150 , discloses a new method for reducing vignetting effects based on two images captured with different camera/lens settings. Changing the lens opening also changes the vignetting effect in the images. These differences are used to estimate a vignetting function used for vignetting reduction.

A. A. Sawchuk, „Real-Time Correction of Intensity Nonlinearities in Imaging Systems“, IEEE, Transactions on Computers, 1977, S. 34-39 , präsentiert eine Analyse von zwei-dimensionalen Bildgebungssystemen mit allgemeinen Helligkeitsnichtlinearitäten und diskutiert verschiedene Methoden zur Korrektur in Echtzeit. Es werden exakte Korrekturen für Messzwecke und näherungsweise Korrekturen für den menschlichen Betrachter beschrieben und Implementierungen in Hardware, insbesondere unter Verwendung programmierbarer Speicherbausteine (PROMs) dargestellt. Zudem werden Kalibrierungsverfahren für solche Systeme sowie eine Abschätzung der Systemkomplexität vorgestellt. AA Sawchuk, “Real-Time Correction of Intensity Nonlinearities in Imaging Systems,” IEEE, Transactions on Computers, 1977, pp. 34-39 , presents an analysis of two-dimensional imaging systems with general brightness nonli nearities and discusses various methods for real-time correction. Exact corrections for measurement purposes and approximate corrections for the human observer are described and implementations in hardware, in particular using programmable memory components (PROMs), are presented. In addition, calibration procedures for such systems as well as an assessment of the system complexity are presented.

US 6,175,613 B1 offenbart, dass die Unschärfe von radiologischen Bildern durch vier unabhängige Durchläufe, die rekursiv dieselbe Exponentialfunktion implementieren, geschätzt wird, und die Unschärfe des vorherigen Bildes von dem aktuellen Bild subtrahiert wird. US 6,175,613 B1 discloses that the blur of radiological images is estimated by four independent runs that recursively implement the same exponential function, and the blur of the previous image is subtracted from the current image.

Es ist wünschenswert, die Korrektur in einer Bildverarbeitungseinheit, vorzugsweise in einer Kamera, in hoher Geschwindigkeit durchführen zu können. Dabei ist es wünschenswert, für die digitalen Operationen, die in hoher Geschwindigkeit durchgeführt werden, digitale Ressourcen einzusparen, hardwarefreundliche Operationen zu verwenden, deren Anzahl möglichst auf ein Minimum zu reduzieren und auf hardwareunfreundliche Operationen weitest möglich zu verzichten.It is desirable to be able to carry out the correction in an image processing unit, preferably in a camera, at high speed. It is desirable to save digital resources for the digital operations that are carried out at high speed, to use hardware-friendly operations, to reduce their number to a minimum if possible and to avoid hardware-unfriendly operations as much as possible.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Der Erfindung liegt die Aufgabe zugrunde, ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitzustellen, das geeignet ist, ein oder mehrere, bevorzugt möglichst viele, der vorstehend genannten Anforderungen zu erfüllen. Des Weiteren liegt der Erfindung die Aufgabe zugrunde, eine entsprechende Korrektureinrichtung sowie eine Computervorrichtung und ein Computerprogram-Produkt bereitzustellen. Schließlich liegt der Erfindung die Aufgabe zugrunde, eine elektronische Kamera, die die erfindungsgemäße Korrektureinrichtung umfasst, bereitzustellen. The invention is based on the object of providing a correction method for correcting a vignetting effect in values of pixels of an image from an electronic camera, which is suitable for meeting one or more, preferably as many as possible, of the requirements mentioned above. Furthermore, the invention is based on the object of providing a corresponding correction device as well as a computer device and a computer program product. Finally, the invention is based on the object of providing an electronic camera which includes the correction device according to the invention.

Gemäß einem ersten Aspekt der Erfindung wird ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, umfassend:

  • - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und
  • - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,
    • wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,
    • wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von einer Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,
    • wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit einem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.
According to a first aspect of the invention, there is provided a correction method for correcting a vignetting effect in values of pixels of an electronic camera image, comprising:
  • - Determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and
  • - correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel,
    • wherein the correction function comprises an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2,
    • wherein the value of the correction function at the position of the pixel is determined based on a cascading of feedback multiplications carried out by a circuit of at least two cascaded feedback multipliers, such that the values of the correction function at the positions of the pixels are continuously calculated,
    • wherein the multiplication of the value of the pixel by the value of the correction function at the position of the pixel is carried out with a multiplier connected downstream of the at least two cascaded feedback multipliers.

Hier wird davon ausgegangen, dass sich typische Vignettierungseffekte gut oder hinreichend gut durch das sogenannte cos4-Gesetz beschreiben lassen. Wie vorstehend erwähnt, handelt es sich bei der Berechnung der Werte der cos4-Funktion jedoch um eine hardwareunfreundliche Operation. Der Erfinder hat nun erkannt, dass sich die cos4-Funktion sehr gut durch eine Exponentialfunktion zu einer Basis, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, z.B. eine Gaußsche Normalverteilung, beschreiben lässt. Eine solche Funktion hat nach der Erkenntnis des Erfinders viele Eigenschaften, die sie für die Verwendung als Korrekturfunktion zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera prädestinieren. Beispielsweise liefert eine Negation ihres Arguments den Reziprokwert, so dass die Funktion mit einer sehr einfachen Operation zur Korrektur der Werte der Pixel entweder mittels eines Dividierens oder aber eines Multiplizierens der Werte der Pixel mit den Werten der Funktion an den Positionen der Pixel umgerechnet werden kann. Damit erlaubt es die Verwendung der beanspruchten Exponentialfunktion als Korrekturfunktion, ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitzustellen, das die vorstehend genannten Anforderungen in hohem Maße erfüllt.It is assumed here that typical vignetting effects can be described well or sufficiently well by the so-called cos 4 law. However, as mentioned above, calculating the values of the cos 4 function is a hardware-unfriendly operation. The inventor has now recognized that the cos 4 function can be described very well by an exponential function to a basis, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, for example a Gaussian normal distribution. According to the inventor's knowledge, such a function has many properties that predestine it for use as a correction function to correct a vignetting effect in pixel values of an image from an electronic camera. For example, a negation of its argument gives the reciprocal value, so that the function can be converted with a very simple operation to correct the values of the pixels either by dividing or multiplying the values of the pixels by the values of the function at the positions of the pixels. The use of the claimed exponential function as a correction function thus makes it possible to provide a correction method for correcting a vignetting effect in values of pixels of an image from an electronic camera that largely meets the above-mentioned requirements.

Der Erfinder hat erkannt, dass sich für eine Korrekturfunktion, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, der Wert der Korrekturfunktion an der Position eines Pixels sehr einfach und auf Basis von hardwarefreundlichen Operationen iterativ oder rekursiv durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels bestimmen lässt. Dies ermöglicht es, die Korrektur auch bei einer großen Anzahl von Pixeln mit hoher Geschwindigkeit, vorzugsweise in einer Kamera, entweder in Hardware oder aber auch in Software durchzuführen.The inventor has recognized that for a correction function that includes an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, the value the correction function The position of a pixel can be determined very easily and based on hardware-friendly operations iteratively or recursively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel. This makes it possible to carry out the correction even with a large number of pixels at high speed, preferably in a camera, either in hardware or in software.

Zudem lässt sich eine Struktur basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen sehr einfach und effizient sowohl in Hardware als aber auch in Software realisieren.In addition, a structure based on a cascading of feedback multiplications can be implemented very easily and efficiently in both hardware and software.

Gemäß einer weiteren vorteilhaften Weiterbildung der Erfindung werden Faktoren der rückgekoppelten Multiplikationen jeweils als Wert der Exponentialfunktion zu der Basis bestimmt, deren Argument eine gewichtete Summe eines oder mehrerer der Koeffizienten des Polynoms, ist.According to a further advantageous development of the invention, factors of the feedback multiplications are each determined as the value of the exponential function to the base, the argument of which is a weighted sum of one or more of the coefficients of the polynomial.

Gemäß einer weiteren vorteilhaften Weiterbildung der Erfindung ist das Bild ein zweidimensionales Bild und die Kaskadierung der rückgekoppelten Multiplikationen umfasst erste rückgekoppelte Multiplikationen in eine erste Richtung, z.B., in Zeilenrichtung, des Bildes und zweite rückgekoppelte Multiplikationen in eine zweite Richtung, z.B., in Spaltenrichtung, des Bildes, wobei ein Ausgabewert der zweiten rückgekoppelten Multiplikationen einen Eingangswert der ersten rückgekoppelten Multiplikationen liefert.According to a further advantageous development of the invention, the image is a two-dimensional image and the cascading of the feedback multiplications includes first feedback multiplications in a first direction, for example in the row direction, of the image and second feedback multiplications in a second direction, for example in the column direction Image, wherein an output value of the second feedback multiplications provides an input value of the first feedback multiplications.

Gemäß einer vorteilhaften Weiterbildung der Erfindung ist das Bestimmen der Werte der Korrekturfunktion an den Positionen der Pixel parallelisiert, dergestalt, dass die Pixel in eine Anzahl von Kanälen eingeteilt sind, die:

  • - jeweils separat voneinander verarbeitet werden, oder
  • - so verarbeitet werden, dass in einem Zeitschritt das Bestimmen der Werte der Korrekturfunktion an den Positionen von Pixeln mindestens zweier verschie dener Kanäle auf Grundlage eines gemeinsamen bereits bestimmten Wertes der Korrekturfunktion an der Position eines anderen Pixels erfolgt.
According to an advantageous development of the invention, the determination of the values of the correction function at the positions of the pixels is parallelized in such a way that the pixels are divided into a number of channels which:
  • - each processed separately from each other, or
  • - be processed in such a way that the values of the correction function at the positions of pixels of at least two different channels are determined in one time step on the basis of a common already determined value of the correction function at the position of another pixel.

Indem man das Bestimmen der Werte der Korrekturfunktion an den Positionen der Pixel parallelisiert kann die Geschwindigkeit der Korrektur weiter erhöht werden. Dabei bietet die Einteilung der Pixel in eine Anzahl von Kanälen, die jeweils separat voneinander verarbeitet werden, den Vorteil einer sehr einfachen Struktur. Allerdings kann dies den Nachteil haben, dass sich dabei Berechnungsfehler, z.B. Rundungsfehler, in verschiedenen Kanälen auf unterschiedliche Weise akkumulieren können, was zu sichtbaren Unterschieden in Pixeln verschiedener Kanäle und so zu unerwünschten sichtbaren Streifen im Ergebnisbild führen kann. Dies kann vermieden werden, indem die in die Anzahl von Kanälen eingeteilten Pixel so verarbeitet werden, dass in einem Zeitschritt das Bestimmen der Werte der Korrekturfunktion an den Positionen von Pixeln mindestens zweier verschiedener Kanäle auf Grundlage eines gemeinsamen bereits bestimmten Wertes der Korrekturfunktion an der Position eines anderen Pixels erfolgt.By parallelizing the determination of the values of the correction function at the positions of the pixels, the speed of the correction can be further increased. The division of the pixels into a number of channels, each of which is processed separately from one another, offers the advantage of a very simple structure. However, this can have the disadvantage that calculation errors, e.g. rounding errors, can accumulate in different ways in different channels, which can lead to visible differences in pixels of different channels and thus to undesirable visible stripes in the resulting image. This can be avoided by processing the pixels divided into the number of channels in such a way that in one time step the values of the correction function at the positions of pixels of at least two different channels are determined based on a common already determined value of the correction function at the position of one another pixel.

Gemäß einer vorteilhaften Weiterbildung der Erfindung ist das Bild ein Farbbild, welches als Bild eines Mosaikfilters vorliegt, wobei der Wert jedes Pixels jeweils einem Farbkanal zugeordnet ist.According to an advantageous development of the invention, the image is a color image which is present as an image of a mosaic filter, with the value of each pixel being assigned to a color channel.

Gemäß einer vorteilhaften Weiterbildung der Erfindung sind die Werte der Pixel des Bildes Farbwerte von zwei oder mehr Farbkanälen und das Korrigieren der Werte der Pixel umfasst:

  • - Korrigieren der Werte der Pixel mit einer eigenen Korrekturfunktion für jeden Farbkanal, vorzugsweise dergestalt, dass sich die Korrekturfunktionen für jeweils zwei unterschiedliche Kanäle nur in einem konstanten Offset der Werte der Korrekturfunktion unterscheiden, oder
  • - Korrigieren der Werte der Pixel mit einer für alle Farbkanäle gemeinsamen Korrekturfunktion.
According to an advantageous development of the invention, the values of the pixels of the image are color values of two or more color channels and correcting the values of the pixels includes:
  • - Correcting the values of the pixels with a separate correction function for each color channel, preferably in such a way that the correction functions for two different channels only differ in a constant offset of the values of the correction function, or
  • - Correcting the values of the pixels with a correction function common to all color channels.

Auf diese Weise können auch Farbbilder mit der erfindungsgemäßen Korrektur in geeigneter Weise verarbeitet werden.In this way, color images can also be processed in a suitable manner with the correction according to the invention.

Gemäß einer vorteilhaften Weiterbildung der Erfindung werden nur Werte von Pixeln eines Ausschnitts des Bildes korrigiert und eine Verschiebung des Ursprungs des Ausschnitts relativ zu dem Ursprung des Bildes durch eine entsprechende Verschiebung der Korrekturfunktion wird dergestalt berücksichtigt, dass zumindest ein Teil der Parameter der Korrekturfunktion durch verschobene Parameter der Korrekturfunktion ersetzt werden. Auf diese Weise kann die Korrektur sehr effizient auf einen Ausschnitt des Bildes, z.B. eine „area of interest“ oder „region of interest“, angewandt werden.According to an advantageous development of the invention, only values of pixels of a section of the image are corrected and a shift in the origin of the section relative to the origin of the image by a corresponding shift in the correction function is taken into account in such a way that at least some of the parameters of the correction function are represented by shifted parameters the correction function can be replaced. In this way, the correction can be applied very efficiently to a section of the image, e.g. an “area of interest” or “region of interest”.

Gemäß einer vorteilhaften Weiterbildung der Erfindung sind mehrere Zonen in dem Bild definiert und das Korrigieren der Werte der Pixel für jede Zone jeweils mit für diese Zone eigenen Parametern der Korrekturfunktion. Mit Hilfe einer solchen Zonierung ist es ggf. möglich, eine noch höhere Genauigkeit der Korrektur zu erzielen. Dies ist insbesondere der Fall, wenn der Vignettierungseffekt sich nicht für das gesamte Bild ausreichend genau mit einem einzigen Satz von Parametern der Korrekturfunktion beschreiben lässt.According to an advantageous development of the invention, several zones are defined in the image and the values of the pixels for each zone are corrected with parameters of the correction function specific to this zone. With the help of such zoning it may be possible to achieve even greater accuracy of the correction. This is particularly the case if the vignetting effect does not apply to the entire image with sufficient precision with a single Set of parameters of the correction function can be described.

Gemäß einer vorteilhaften Weiterbildung der Erfindung sind die jeweils eigenen Parameter der Korrekturfunktion für zwei angrenzende Zonen dergestalt, dass der Übergang der Korrekturfunktion zwischen den beiden Zonen stetig, und vorzugsweise stetig differenzierbar, erfolgt. Auf diese Weise können sichtbare Artefakte beim Übergang von einer Zone zur nächsten vermieden werden.According to an advantageous development of the invention, the respective parameters of the correction function for two adjacent zones are such that the transition of the correction function between the two zones is continuous, and preferably continuously differentiable. In this way, visible artifacts can be avoided when transitioning from one zone to the next.

Gemäß noch einer vorteilhaften Weiterbildung der Erfindung beziehen die Zonen sich auf einen Mittelpunkt, vorzugsweise den optischen Mittelpunkt, des Bildes. Dies ist vorteilhaft, da der Mittelpunkt, insbesondere der optische Mittelpunkt, des Bildes in der Regel auch das Zentrum des Vignettierungseffekts darstellt und dieser in vielen Fällen zudem radialsymmetrisch ausgeprägt ist.According to another advantageous development of the invention, the zones relate to a center, preferably the optical center, of the image. This is advantageous because the center, in particular the optical center, of the image usually also represents the center of the vignetting effect and in many cases this is also radially symmetrical.

Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst das Korrekturverfahren ein Schätzen des optischen Mittelpunkts eines Bildes, das vorzugsweise eine homogene Szene zeigt, dergestalt, dass für den Fall, dass das Bild mit einem eindimensionalen Bildsensor erzeugt wurde, das Schätzen der Koordinate des optischen Mittelpunkts in der einen Dimension umfasst:

  • - Erzeugen eines eindimensionalen Datenvektors in der einen Dimension aus den Werten der Pixel des Bildes,
  • - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor,

und dass für den Fall, dass das Bild mit einem zweidimensionalen Bildsensor erzeugt wurde, das Schätzen einer Koordinate des optischen Mittelpunkts in einer ersten Dimension umfasst:
  • - Mitteln der Werte der Pixel des Bilder in der zweiten Dimension zum Erzeugen eines eindimensionalen Datenvektors von gemittelten Werten in der ersten Dimension, und
  • - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor.
According to an advantageous development of the invention, the correction method includes estimating the optical center of an image, which preferably shows a homogeneous scene, such that in the event that the image was generated with a one-dimensional image sensor, estimating the coordinate of the optical center in the one dimension includes:
  • - Generating a one-dimensional data vector in one dimension from the values of the pixels of the image,
  • - iterative fitting of a one-dimensional balancing parabola to the one-dimensional data vector,

and in the event that the image was generated with a two-dimensional image sensor, estimating a coordinate of the optical center in a first dimension comprises:
  • - averaging the values of the pixels of the images in the second dimension to produce a one-dimensional data vector of averaged values in the first dimension, and
  • - iterative fitting of a one-dimensional balancing parabola to the one-dimensional data vector.

Dieses Verfahren bietet eine recht einfache aber robuste Möglichkeit den optischen Mittelpunkt des Bildes zu schätzen, wenn dies beispielsweise zur Durchführung einer Zonierung des Bildes erforderlich ist. Sowohl in dem Fall, dass das Bild mit einem eindimensionalen Bildsensor aufgenommen wurde, als auch in dem Fall, dass das Bild mit einem zweidimensionalen Bildsensor aufgenommen wurde, kann das Erzeugen des eindimensionalen Datenvektor auch noch ein Mitteln der Werte der Pixel zeitlich nacheinander aufgenommener Bilder umfassen.This method offers a fairly simple but robust way to estimate the optical center of the image if this is required, for example, to perform zoning of the image. Both in the case that the image was recorded with a one-dimensional image sensor and in the case that the image was recorded with a two-dimensional image sensor, generating the one-dimensional data vector can also include averaging the values of the pixels of images recorded one after the other in time .

Gemäß noch einer vorteilhaften Weiterbildung der Erfindung erfolgt das iterative Fitten in jeder Iteration in einem Datenbereich des eindimensionalen Datenvektors um eine aktuell geschätzte Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension herum erfolgt, wobei der Datenbereich vorzugsweise symmetrisch zu der aktuell geschätzten Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension ist und/oder das iterative Fitten mit der Koordinate des geometrischen Mittelpunkts des Bildes in der einen bzw. ersten Dimension als die aktuell geschätzte Koordinate des optischen Mittelpunkts in der einen bzw. ersten Dimension initialisiert wird. Hierbei konvergiert die jeweils aktualisierte geschätzte Koordinate in der Regel sehr schnell gegen den tatsächlichen optischen Mittelpunkt, so dass eine gute Schätzung zumeist schon mit wenigen Iterationen erhalten werden kann.According to another advantageous development of the invention, the iterative fitting takes place in each iteration in a data area of the one-dimensional data vector around a currently estimated coordinate of the optical center in the one or first dimension, the data area preferably being symmetrical to the currently estimated coordinate of the optical Center point in the one or first dimension and / or the iterative fitting is initialized with the coordinate of the geometric center of the image in the one or first dimension as the currently estimated coordinate of the optical center in the one or first dimension. The updated estimated coordinate usually converges very quickly towards the actual optical center, so that a good estimate can usually be obtained with just a few iterations.

Gemäß einer weiteren vorteilhaften Weiterbildung umfasst das Korrekturverfahren ein Bestimmen von Parametern der Korrekturfunktion basierend auf einem Referenzbild, das vorzugsweise eine homogene Szene zeigt, wobei das Bestimmen der Parameter der Korrekturfunktion ein Normieren der Korrekturfunktion dergestalt umfasst, dass die Korrekturfunktion in ihrem Scheitelpunkt einen vorbestimmten Wert, vorzugsweise den Wert 1, aufweist. Zum einen braucht die Bestimmung der Parameter der Korrekturfunktion damit im Idealfall nur einmal zur Einrichtungszeit, z.B. während der Produktion einer Kamera oder während der Inbetriebnahme einer Maschine, in der eine Kamera zum Einsatz kommt, durchgeführt werden. Zudem kann durch eine geeignete Wahl des Referenzbildes, beispielsweise so, dass das Bild eine homogene Szene zeigt, die Auswertung des Bildes und damit die Bestimmung der Parameter der Korrekturfunktion auf eine vergleichsweise einfache Weise erfolgen. Darüber hinaus kann durch die Normierung gewährleistet werden, dass durch die Korrektur die Helligkeit im Zentrum des Vignettierungseffekts nicht verändert wird.According to a further advantageous development, the correction method includes determining parameters of the correction function based on a reference image, which preferably shows a homogeneous scene, wherein determining the parameters of the correction function includes normalizing the correction function such that the correction function has a predetermined value at its apex, preferably has the value 1. On the one hand, the determination of the parameters of the correction function ideally only needs to be carried out once at the setup time, e.g. during the production of a camera or during the commissioning of a machine in which a camera is used. In addition, through a suitable choice of the reference image, for example so that the image shows a homogeneous scene, the evaluation of the image and thus the determination of the parameters of the correction function can be carried out in a comparatively simple manner. In addition, normalization can ensure that the correction does not change the brightness at the center of the vignetting effect.

Gemäß noch einer weiteren vorteilhaften Weiterbildung der Erfindung erfolgt das Normieren so, dass der Koeffizient nullter Ordnung des Polynoms durch einen normierenden Koeffizienten nullter Ordnung ersetzt wird, der sich aus den Koeffizienten höherer Ordnung des Polynoms berechnet. Damit kann die Normierung auf einfache Weise erfolgen, ohne dass hierfür die Bestimmung des optischen Mittelpunkts erforderlich wäre.According to yet another advantageous development of the invention, the normalization is carried out in such a way that the zero-order coefficient of the polynomial is replaced by a zero-order normalizing coefficient, which is calculated from the higher-order coefficients of the polynomial. This means that normalization can be carried out in a simple manner without the need to determine the optical center.

Gemäß einem weiteren Aspekt der Erfindung wird eine Korrektureinrichtung zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, wobei die Korrektureinrichtung eine Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken und einen den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator umfasst und ausgebildet ist zum:

  • - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und
  • - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert,
    • wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist,
    • wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von der Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden,
    • wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.
According to a further aspect of the invention, a correction device for correcting a Vignetting effect provided in values of pixels of an image of an electronic camera, the correction device comprising a circuit of at least two cascaded feedback multipliers and a multiplier connected downstream of the at least two cascaded feedback multipliers and is designed to:
  • - Determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and
  • - correcting the value of the pixel, the correcting comprising multiplying the value of the pixel by the value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel,
    • wherein the correction function comprises an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2,
    • wherein the value of the correction function at the position of the pixel is determined based on a cascading of feedback multiplications carried out by the circuit of at least two cascaded feedback multipliers, such that the values of the correction function at the positions of the pixels are continuously calculated,
    • wherein the multiplication of the value of the pixel by the value of the correction function at the position of the pixel is carried out with the multiplier connected downstream of at least two cascaded feedback multipliers.

Gemäß einem weiteren Aspekt der Erfindung wird eine elektronische Kamera (10) bereitgestellt, wobei die elektronische Kamera umfasst:

  • - einen Bildsensor mit Pixeln zur Erzeugung eines Bildes; und
  • - die Korrektureinrichtung nach Anspruch 15 zur Korrektur eines Vignettierungseffekts in Werten von Pixeln des Bildes.
According to a further aspect of the invention, an electronic camera (10) is provided, the electronic camera comprising:
  • - an image sensor with pixels to generate an image; and
  • - The correction device according to claim 15 for correcting a vignetting effect in values of pixels of the image.

Gemäß einem weiteren Aspekt der Erfindung wird eine Computervorrichtung bereitgestellt, wobei die Computervorrichtung eine Recheneinheit umfasst, die zur Durchführung des Korrekturverfahrens nach einem der Ansprüche 1 bis 14 ausgestaltet ist.According to a further aspect of the invention, a computer device is provided, wherein the computer device comprises a computing unit which is designed to carry out the correction method according to one of claims 1 to 14.

Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogramm-Produkt bereitgestellt, wobei das Computerprogramm-Produkt Codemitteln umfasst zum Veranlassen einer Computervorrichtung zum Ausführen des Korrekturverfahrens nach einem der Ansprüche 1 bis 14, wenn das Computerprogramm-Produkt auf der Computervorrichtung ausgeführt wird.According to a further aspect of the invention, a computer program product is provided, wherein the computer program product comprises code means for causing a computing device to execute the correction method according to any one of claims 1 to 14 when the computer program product is executed on the computing device.

Es versteht sich, dass das Korrekturverfahren nach Anspruch 1, die Korrektureinrichtung nach Anspruch 15, die elektronische Kamera nach Anspruch 16, die Computervorrichtung nach Anspruch 17 und das Computerprogramm-Produkt nach Anspruch 18 ähnliche und/oder identische bevorzugte Ausführungsformen, insbesondere wie in den abhängigen Ansprüchen definiert, haben.It is understood that the correction method according to claim 1, the correction device according to claim 15, the electronic camera according to claim 16, the computer device according to claim 17 and the computer program product according to claim 18 are similar and / or identical preferred embodiments, in particular as in the dependent ones defined requirements.

Es versteht sich, dass eine bevorzugte Ausführungsform der Erfindung auch jede Kombination der abhängigen Ansprüche mit dem entsprechenden unabhängigen Anspruch sein kann.It is understood that a preferred embodiment of the invention can also be any combination of the dependent claims with the corresponding independent claim.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Bevorzugte Ausführungsformen der Erfindung werden im Folgenden unter Bezugnahme auf die beigefügten Figuren näher beschrieben, wobei

  • 1 schematisch und exemplarisch die Anwendung und den Aufbau einer elektronischen Kamera zeigt, und
  • 2 schematisch und exemplarisch einen Bildsensor zeigt, der z.B. als (a) eindimensionale Matrix, (b) zweidimensionale Matrix oder (c) zweidimensionale Matrix mit einer Anordnung aus Farbfiltern ausgebildet sein kann,
  • 3 schematisch und exemplarisch ein progressives Auslesen zeigt,
  • 4 schematisch und exemplarisch ein (a) blockweise geteiltes und (b) vektorisiertes Auslesen eines Bildsensors zeigt,
  • 5 schematisch und exemplarisch den grundsätzlichen Ablauf der Korrektur zeigt,
  • 6 schematisch und exemplarisch die Durchführung einer Korrektur mit Division zeigt,
  • 7 schematisch und exemplarisch die Durchführung der Korrektur durch Multiplikation eines Models, das mit dem reziproken Referenzbild ermittelt wurde, zeigt,
  • 8 schematisch und exemplarisch (a) den geometrischen und optischen Mittelpunkt eines Bildes, (b) eine Aufteilung eines Bildes in radial Zonen und (c) eine Aufteilung des Bildes in kartesische Zonen zeigt,
  • 9 schematisch und exemplarisch den Fit einer (a-c) cos4-Funktion und (d-f) cos-4-Funktion durch (a,d) eine Parabel, (b,e) eine cash-Funktion und (c,f) eine gaußverteilungsförmige bzw. eine reziproke gaußverteilungsförmige Funktion zeigt,
  • 10 schematisch und exemplarisch den Ersatz der hardwareunfreundlichen Division durch eine Transformation zeigt,
  • 11 schematisch und exemplarisch Polynomexponentialfunktionen in (a) x-Richtung, (b) in y-Richtung und (c) eine zweidimensionale Polynomexponentialfunktion zeigt,
  • 12 schematisch und exemplarisch Beispiele der Auswahl von Pixeln für die Bestimmung der Parameter zeigt,
  • 13 schematisch und exemplarisch ein rückgekoppeltes Multiplizierwerk in zwei alternativen Ausführungsformen zeigt,
  • 14 schematisch und exemplarisch eine Kaskadierung zweier rückgekoppelter Multiplizierwerke mit nachfolgender Korrektur eines Pixelwertes zeigt,
  • 15 schematisch und exemplarisch eine Kaskadierung von n rückgekoppelten Multiplizierwerken mit nachgeschaltetem Multiplikator zur Korrektur von Pixelwerten zeigt,
  • 16 schematisch und exemplarisch zeigt, wie zwei kaskadierte rückgekoppelte Multiplizierwerke zu einem zweidimensional kaskadierten rückgekoppelten Multiplizierwerk verbunden werden,
  • 17 schematisch und exemplarisch zeigt, wie eine Mehrzahl kaskadierter rückgekoppelter Multiplizierwerke zu einem zweidimensional kaskadierten rückgekoppelten Multiplizierwerk zur Korrektur mit einer zweidimensionalen Polynomexponentialfunktion des Grades n × m verbunden werden,
  • 18 schematisch und exemplarisch zeigt, dass verschiedene Farbkanäle unterschiedliche Helligkeiten aufweisen können,
  • 19 schematisch und exemplarisch zeigt, dass logarithmierte Farbwerte verschiedener Farbkanäle einen unterschiedlichen Offset aufweisen und (a) getrennt oder (b) gemeinsam beschrieben werden können.
  • 20 schematisch und exemplarisch einen Bildausschnitt zeigt,
  • 21 schematisch und exemplarisch eine serielle Korrektur von Pixeln durch ein kaskadiertes rückgekoppeltes Multiplizierwerk zeigt,
  • 22 schematisch und exemplarisch eine Teilparallelisierung der Berechnung durch mehrere kaskadierte rückgekoppelte Multiplizierwerke zeigt,
  • 23 schematisch und exemplarisch eine Stabilisierung der teilparallelisierten Berechnung durch einen gemeinsamen Rückbezug von Korrekturwerten zeigt,
  • 24 schematisch und exemplarisch verschiedene Formen der Zonierung zeigt,
  • 25 schematisch und exemplarisch einen Überblick über einen Algorithmus zum Finden des optischen Mittelpunkts zeigt,
  • 26 schematisch und exemplarisch die Wirkung einer zeilen- oder spaltenweisen Mittelung zeigt,
  • 27 schematisch und exemplarisch die erste Iteration der Bestimmung der Koordinate des optischen Mittelpunkts zeigt, und
  • 28 schematisch und exemplarisch die zweite Iteration der Bestimmung der Koordinate des optischen Mittelpunkts zeigt.
Preferred embodiments of the invention are described in more detail below with reference to the attached figures, where:
  • 1 shows schematically and as an example the application and structure of an electronic camera, and
  • 2 shows schematically and by way of example an image sensor which can be designed, for example, as a (a) one-dimensional matrix, (b) two-dimensional matrix or (c) two-dimensional matrix with an arrangement of color filters,
  • 3 shows schematically and exemplarily a progressive readout,
  • 4 shows schematically and as an example a (a) block-by-block and (b) vectorized readout of an image sensor,
  • 5 shows schematically and as an example the basic process of correction,
  • 6 shows schematically and as an example how to carry out a correction with division,
  • 7 shows schematically and as an example how the correction is carried out by multiplying a model that was determined with the reciprocal reference image,
  • 8th shows schematically and as an example (a) the geometric and optical center of an image, (b) a division of an image into radial zones and (c) a division of the image into Cartesian zones,
  • 9 schematically and exemplarily the fit of an (ac) cos 4 function and (df) cos -4 function tion by (a,d) a parabola, (b,e) a cash function and (c,f) a Gaussian distribution or a reciprocal Gaussian distribution function,
  • 10 shows schematically and as an example the replacement of the hardware-unfriendly division by a transformation,
  • 11 shows schematically and exemplarily polynomial exponential functions in (a) x-direction, (b) in y-direction and (c) a two-dimensional polynomial exponential function,
  • 12 shows schematically and exemplary examples of the selection of pixels for determining the parameters,
  • 13 shows schematically and as an example a feedback multiplier in two alternative embodiments,
  • 14 shows schematically and as an example a cascading of two feedback multipliers with subsequent correction of a pixel value,
  • 15 shows schematically and as an example a cascading of n feedback multipliers with a downstream multiplier for correcting pixel values,
  • 16 shows schematically and as an example how two cascaded feedback multipliers are connected to form a two-dimensional cascaded feedback multiplier,
  • 17 shows schematically and as an example how a plurality of cascaded feedback multipliers are connected to a two-dimensional cascaded feedback multiplier for correction with a two-dimensional polynomial exponential function of degree n × m,
  • 18 shows schematically and as an example that different color channels can have different brightnesses,
  • 19 shows schematically and as an example that logarithmic color values of different color channels have a different offset and can be described (a) separately or (b) together.
  • 20 shows a section of the image schematically and as an example,
  • 21 shows schematically and as an example a serial correction of pixels by a cascaded feedback multiplier,
  • 22 shows schematically and as an example a partial parallelization of the calculation by several cascaded feedback multipliers,
  • 23 shows schematically and as an example a stabilization of the partially parallelized calculation by a common reference of correction values,
  • 24 shows schematically and exemplary different forms of zoning,
  • 25 shows schematically and as an example an overview of an algorithm for finding the optical center,
  • 26 shows schematically and as an example the effect of row or column averaging,
  • 27 shows schematically and as an example the first iteration of determining the coordinate of the optical center, and
  • 28 shows schematically and as an example the second iteration of determining the coordinate of the optical center.

DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELEDETAILED DESCRIPTION OF THE EMBODIMENTS

In den Figuren sind gleiche bzw. sich entsprechende Elemente oder Einheiten jeweils mit gleichen bzw. sich entsprechenden Bezugszeichen versehen. Wenn ein Element oder eine Einheit bereits im Zusammenhang mit einer Figur beschrieben worden ist, wird ggf. im Zusammenhang mit einer anderen Figur auf eine ausführliche Darstellung verzichtet. Die innerhalb der Beschreibung der Figuren ggf. verwendeten Begriffe „links“, „rechts“, „oben“, „unten“ usw. beziehen sich auf die entsprechende Figur in einer Ausrichtung mit normal lesbarer Figurenbezeichnung und Bezugszeichen.In the figures, identical or corresponding elements or units are each provided with identical or corresponding reference numerals. If an element or unit has already been described in connection with a figure, a detailed description may be omitted in connection with another figure. The terms “left”, “right”, “top”, “bottom”, etc., which may be used within the description of the figures, refer to the corresponding figure in an orientation with normally readable figure names and reference symbols.

Wie beschrieben kann gemäß der Erfindung ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt werden, das geeignet ist, ein oder mehrere, bevorzugt möglichst viele, Anforderungen hinsichtlich hoher Geschwindigkeit, Einsparung von Ressourcen, Verwendung hardwarefreundlicher Operationen usw. zu erfüllen. Dies geschieht, indem das Korrigieren der Werte der Pixel basierend auf einer Korrekturfunktion erfolgt, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, oder die mathematisch in eine solche Funktion umformbar ist, wobei das Korrigieren des Wertes eines Pixels ein Dividieren oder vorzugsweise ein Multiplizieren des Wertes des Pixels durch den bzw. mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst.As described, according to the invention, a correction method for correcting a vignetting effect in values of pixels of an image of an electronic camera can be provided, which is suitable for meeting one or more, preferably as many, requirements as to high speed, saving resources, using hardware-friendly operations, etc. to fulfill. This is done by correcting the values of the pixels based on a correction function comprising an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, or which is mathematically convertible into such a function, wherein correcting the value of a pixel comprises dividing or preferably multiplying the value of the pixel by or with the value of the correction function at the position of the pixel.

Wie dies in verschiedenen Ausführungsformen der Erfindung erfolgen kann, wird im Folgenden in den Ziffern 1 bis 11 beispielhaft erläutert. In diesem Zusammenhang sei angemerkt, dass die in diesen Ziffern beschriebenen Erfindungsgedanken vom Fachmann in geeigneter Weise kombiniert werden können und diese Kombinationen jeweils Ausführungsformen der Erfindung darstellen:How this can be done in various embodiments of the invention is explained below by way of example in numbers 1 to 11. In this context, it should be noted that the inventive ideas described in these numbers can be combined in a suitable manner by the person skilled in the art and these combinations each represent embodiments of the invention:

1. Korrekturfunktion1. Correction function

Es wird davon ausgegangen, dass der durch das Objektiv erzeugte Randlichtabfall durch das sogenannte cos4-Gesetz gut oder hinreichend gut beschrieben wird. Auf dieses Gesetz wird auch in US 7,453,502 B2 , US 7,692,700 B2 , US 7,634,152 B2 , US 7,920,171 B2 , US 8,472,712 B2 und US 8,577,140 B2 verwiesen.It is assumed that the edge light falloff generated by the lens is described well or sufficiently well by the so-called cos 4 law. This law is also referred to in US 7,453,502 B2 , US 7,692,700 B2 , US 7,634,152 B2 , US 7,920,171 B2 , US 8,472,712 B2 and US 8,577,140 B2 referred.

Eine cos4-Funktion lässt sich durch eine lineare Funktion oder durch eine Polynomfunktion nur schwer beschreiben. Dies wird anhand von 9 erläutert. Dort sind jeweils die Funktionswerte f für verschiedene Funktionen einer freien Variable z dargestellt. Die 9 (a) bis (c) zeigen dabei jeweils eine cos4-förmige Funktion 100 in einem Bereich von z als gestrichelte Linie. Der Bereich ist so gewählt, dass die Funktion am Rand auf etwa 25% des Maximalwertes abfällt. Dies entspricht der Beobachtung, dass der praktische auftretende Randlichtabfall schlimmstenfalls zu einer Abdunkelung von etwa 75% führt, so dass jeweils noch mindestens 25% der Lichtstärke ohne Randlichtabfall vorhanden sind. In der Darstellung sind f und alle gezeigten Funktionen linear auf einen Wertebereich von 0 bis 255 skaliert, da es der üblichen Praxis entspricht, Helligkeiten in digitalen Bildern in diesem Bereich anzugeben.A cos 4 function is difficult to describe using a linear function or a polynomial function. This is done using 9 explained. The function values f for different functions of a free variable z are shown there. The 9 (a) to (c) each show a cos 4 -shaped function 100 in a range of z as a dashed line. The range is chosen so that the function drops to around 25% of the maximum value at the edge. This corresponds to the observation that the drop in peripheral light that occurs in practice leads to a darkening of around 75% in the worst case, so that at least 25% of the light intensity is still available without any drop in edge light. In the illustration, f and all functions shown are scaled linearly to a value range of 0 to 255, as it is common practice to specify brightnesses in digital images in this range.

In 9 (a) wird die cos4-Funktion 100 mit einer Parabelfunktion 101 unter Minimierung der integralen quadratischen Abweichung angenähert. Es ist zu erkennen, dass eine Parabelfunktion nicht in der Lage ist, die cos4-Funktion hinreichend genau anzunähern. Darin wird ein Grund vermutet, warum in zahlreichen Dokumenten des Standes der Technik die Parabelfunktion als Polynomfunktion zweiten Grades um weitere Grade erweitert wird, wie z.B. in US 7,453,502 B2 und US 7,548 , 262 B2 . Polynomfunktionen höheren Grades erfordern einen höheren Rechenaufwand. Des Weiteren benötigen sie bei der Berechnung eine höhere Genauigkeit, die in Hardware wiederum einen höheren Aufwand erfordert.In 9 (a) the cos 4 function 100 is approximated with a parabolic function 101 while minimizing the integral squared deviation. It can be seen that a parabolic function is not able to approximate the cos 4 function with sufficient accuracy. This is believed to be a reason why in numerous prior art documents the parabolic function is expanded as a second degree polynomial function by further degrees, such as in US 7,453,502 B2 and US 7,548 , 262 B2 . Higher degree polynomial functions require more computational effort. Furthermore, they require greater precision in the calculation, which in turn requires more effort in hardware.

In 9 (b) wird dieselbe cos4-förmige Funktion 100 auf gleiche Weise mit einer cash-Funktion 102 plus einem konstanten Offset approximiert, wie dies z.B. in US 7,920,171 B2 vorgeschlagen wird. Auch bei dieser Approximation zeigt sich ein deutlich suboptimales Ergebnis. Außerdem handelt es sich bei einem Cosinus Hyperbolicus um eine hardwareunfreundliche Funktion.In 9(b) the same cos 4 -shaped function 100 is approximated in the same way with a cash function 102 plus a constant offset, as in, for example US 7,920,171 B2 is proposed. This approximation also shows a clearly suboptimal result. In addition, a hyperbolic cosine is a hardware-unfriendly function.

Der Erfindung liegt die Erkenntnis des Erfinders zugrunde, dass die cos4-förmige Funktion in ihrer Form sehr einer Gaußverteilung ähnelt, die auch als Gaußsche Normalverteilung bezeichnet wird: f ( x ) = 1 σ 2 π e   ( x μ ) 2 2 σ 2

Figure DE102018115991B4_0001
The invention is based on the inventor's knowledge that the form of the cos 4 -shaped function is very similar to a Gaussian distribution, which is also referred to as a Gaussian normal distribution: f ( x ) = 1 σ 2 π e ( x μ ) 2 2 σ 2
Figure DE102018115991B4_0001

Diese Gleichung der Gaußverteilung besteht aus einem Normalisierungsfaktor 1 / ( σ 2 π )

Figure DE102018115991B4_0002
und einer Exponentialfunktion, die auf das Argument -(x - µ)2/(2σ2) angewandt ist. Um für die Vignettierung eine geeignete Beschreibung oder Korrektur zu erhalten, kann auf den Normalisierungsfaktor verzichtet werden, da hier keine entsprechende integrale Normierungsbedingung vorliegt. Weiterhin kann das Argument unter Verwendung der binomischen Formel ausmultipliziert werden. Dabei wird ein quadratisches Polynom erhalten. Der Mittelwert der Gaußverteilung µ kann dann ebenso in die Koeffizienten hinein gezogen werden, wie das führende Minus und die Division durch 2σ2. Dadurch wird beispielhaft eine Exponentialfunktion eines Polynoms erhalten, die hier als Polynomexponentialfunktion zweiten Grades g mit Koeffizienten c0, c1 und c2 bezeichnet wird. Dabei folgt aus den Rechenregeln für die Exponentialfunktion die Tatsache, dass ein eventuell benötigter Faktor ebenfalls mit in den Koeffizient c0 hineingezogen werden kann. Ersetzt man schließlich die freie Variable x durch eine freie Variable z, so stellt sich die Polynomexponentialfunktion zweiten Grades folgendermaßen dar: g ( z ) = e c 0 + c 1 z + c 2 z 2
Figure DE102018115991B4_0003
This equation of the Gaussian distribution consists of a normalization factor 1 / ( σ 2 π )
Figure DE102018115991B4_0002
and an exponential function applied to the argument -(x - µ) 2 /(2σ 2 ). In order to obtain a suitable description or correction for the vignetting, the normalization factor can be omitted since there is no corresponding integral normalization condition here. Furthermore, the argument can be multiplied out using the binomial formula. A quadratic polynomial is obtained. The mean value of the Gaussian distribution µ can then be included in the coefficients, as can the leading minus and division by 2σ 2 . This gives an example of an exponential function of a polynomial, which is referred to here as a polynomial exponential function of the second degree g with coefficients c 0 , c 1 and c 2 . The calculation rules for the exponential function result in the fact that any factor that may be required can also be included in the coefficient c 0 . If you finally replace the free variable x with a free variable z, the polynomial exponential function of the second degree is represented as follows: G ( e.g ) = e c 0 + c 1 e.g + c 2 e.g 2
Figure DE102018115991B4_0003

So entsteht die Idee, die cos4-Funktion der Vignettierung durch eine Polynomexponentialfunktion zu beschreiben. In 9 (c) wird dieselbe cos4-förmige Funktion wie in 9 (a) und (b) auf wiederum die gleiche Weise mit einer Polynomexponentialfunktion approximiert. Es ist deutlich sichtbar, dass diese Funktion in der Lage ist, die cos4-förmige Funktion deutlich besser zu beschreiben, als die vorgenannten Funktionen in 9 (a) und (b). Daher wird vorgeschlagen, der Korrektur des Randlichtabfalls bzw. Vignettierung eine solche Funktion zugrunde zu legen.This gives rise to the idea of describing the cos 4 function of vignetting using a polynomial exponential function. In 9 (c) becomes the same cos 4 -shaped function as in 9 (a) and (b) approximated again in the same way with a polynomial exponential function. It is clearly visible that this function is able to describe the cos 4 -shaped function much better than the aforementioned functions in 9 (a) and (b). It is therefore proposed that the correction of edge light fall-off or vignetting be based on such a function.

Da, wie vorstehend erläutert, grundsätzlich auch die Möglichkeit besteht, zur Korrektur eine reziproke Funktion zu verwenden, die eine reziproke Helligkeitsverteilung beschreibt, werden im folgenden Approximationen einer reziproken cos4-förmigen Funktion dargestellt, also einer 1/cos4- bzw. cos-4-förmigen Funktion 104. Diese Funktion ist ebenfalls proportional auf den in der Bildverarbeitung üblichen Wertebereich von 0 bis 255 skaliert. Sie ist wiederum über einer freien Variable z dargestellt, deren Darstellungsbereich genau so gewählt ist wie in 9 (a) bis (c).Since, as explained above, it is fundamentally possible to use a reciprocal function for correction, which describes a reciprocal brightness distribution, approximations of a reciprocal cos 4 -shaped function are presented below, i.e. a 1/cos 4 - or cos - 4 - shaped function 104. This function is also scaled proportionally to the value range of 0 to 255 that is common in image processing. It is in turn shown over a free variable z, the display area of which is chosen exactly as in 9 (a) to (c).

9 (d) zeigt eine Approximation einer cos-4-förmigen Funktion 104 durch eine Parabelfunktion 105. Es ist zu erkennen, dass auch in diesem Fall die Parabel nicht in der Lage ist, die Funktion 104 gut zu beschreiben. Dasselbe gilt für die Approximation mit einer cosh-förmigen Funktion 106, die in 9 (e) dargestellt ist. 9 (f) zeigt schließlich die Approximation der cos-4-förmigen Funktion 104 durch eine Polynomexponentialfunktion zweiten Grades 107, die auch diese Funktion sehr gut beschreiben kann. 9 (d) shows an approximation of a cos -4 -shaped function 104 by a parabolic function 105. It can be seen that in this case too the parabola is not able to describe the function 104 well. The same applies to the approximation with a cosh-shaped function 106, which is in 9 (e) is shown. 9 (f) finally shows the approximation of the cos -4 -shaped function 104 by a polynomial exponential function of the second degree 107, which can also describe this function very well.

Dies zeigt eine gute Eignung der Polynomexponentialfunktion einerseits dafür, als mathematisches Modell M eine Vignettierung zu beschreiben, wobei die Koeffizienten c Parameter P im Sinne der vorstehenden Beschreibung darstellen. Eine Korrektur K kann dann mithilfe einer Division erfolgen. Andererseits ist die Polynomexponentialfunktion auch geeignet, als reziprokes Modell M die reziproke Vignettierung zu beschreiben, so dass die Korrektur K als Multiplikation erfolgen kann.This shows, on the one hand, that the polynomial exponential function is well suited to describing vignetting as a mathematical model M, where the coefficients c represent parameters P in the sense of the above description. A correction K can then be made using division. On the other hand, the polynomial exponential function is also suitable for describing the reciprocal vignetting as a reciprocal model M, so that the correction K can take place as a multiplication.

Weiterhin besitzt die Exponentialfunktion die günstige Eigenschaft, dass eine Negation des Arguments den Reziprokwert liefert: e z = 1 e z

Figure DE102018115991B4_0004
Furthermore, the exponential function has the favorable property that a negation of the argument provides the reciprocal value: e e.g = 1 e e.g
Figure DE102018115991B4_0004

Hierauf beruht die Idee des Erfinders, die beschriebenen hardwareunfreundlichen Divisionen durch hardwarefreundliche Multiplikationen zu ersetzen. Das darauf beruhende Verfahren ist dargestellt in 10. Hierbei wird zur Einrichtungszeit das Referenzbild I0 mittels einer ersten Polynomexponentialfunktion als mathematisches Modell M beschrieben. Dabei werden Parameter P ermittelt, die mittels einer Transformation N in transformierte Parameter P2 umgewandelt werden. Diese Transformation kann bevorzugt aus einer Negation bestehen. Die transformierten Parameter P2 können nun dafür verwendet werden, mit Hilfe einer Polynomexponentialfunktion 111 die Bilddaten des Bildes I0 durch eine Multiplikation 112 zu korrigieren. Durch die Transformation N kann die hardwarunfreundliche Division durch eine hardwarefreundliche Multiplikation ersetzt werden. Der Zusatzaufwand für die Transformation fällt gering aus, weil diese im genannten Beispiel lediglich aus einer hardwarefreundlichen Negation der Parameter besteht und weil die Anzahl der Parameter bevorzugt in der Größenordnung von z.B. 1 bis 10 liegt, während die Anzahl der Pixel zumeist in der Größenordnung von Millionen liegt, und somit der Berechnungsaufwand für die Transformation weniger Parametern sehr klein ist, insbesondere im Vergleich zur Division der Werte von Pixeln.This is the basis of the inventor's idea of replacing the described hardware-unfriendly divisions with hardware-friendly multiplications. The method based on this is shown in 10 . Here, at setup time, the reference image I 0 is described as a mathematical model M using a first polynomial exponential function. Parameters P are determined, which are converted into transformed parameters P 2 using a transformation N. This transformation can preferably consist of a negation. The transformed parameters P 2 can now be used to correct the image data of the image I 0 by a multiplication 112 with the aid of a polynomial exponential function 111. The transformation N can be used to replace hardware-unfriendly division with hardware-friendly multiplication. The additional effort for the transformation is low because in the example mentioned this only consists of a hardware-friendly negation of the parameters and because the number of parameters is preferably in the order of magnitude of, for example, 1 to 10, while the number of pixels is usually in the order of millions and therefore the computational effort for transforming a few parameters is very small, especially compared to dividing the values of pixels.

Die Negation kann auch durch Anwendung eines Negationsoperators N auf die in einem Spaltenvektor zusammengefassten Koeffizienten der Polynomexponentialfunktion durchgeführt werden. Der Negationsoperator lässt sich in Matrixschreibweise formulieren und besteht jeweils aus einer mit -1 multiplizierten Einheitsmatrix. Für den in Gleichung (1.2) genannten Fall lautet diese Matrix folgendermaßen: N = [ 1 0 0 0 1 0 0 0 1 ] .

Figure DE102018115991B4_0005
The negation can also be performed by applying a negation operator N to the coefficients of the polynomial exponential function summarized in a column vector. The negation operator can be formulated in matrix notation and consists of a unity matrix multiplied by -1. For the case mentioned in equation (1.2), this matrix is as follows: N = [ 1 0 0 0 1 0 0 0 1 ] .
Figure DE102018115991B4_0005

Die genannte eindimensionale Polynomexponentialfunktion zweiten Grades gemäß Gleichung (1.2) kann nun unmittelbar dazu eingesetzt werden, auf die genannte Weise Bilder von Zeilensensoren zu korrigieren.The one-dimensional second degree polynomial exponential function mentioned according to equation (1.2) can now be used directly to correct images from line sensors in the manner mentioned.

Der Großteil der elektronischen Kameras weist jedoch zweidimensionale Matrixsensoren auf, bei denen die Vignettierung zweidimensional auftritt. Daher wird der Gedanke dahingehend weiterentwickelt, die Vignettierung vorzugsweise durch eine zweidimensionale Polynomexponentialfunktion zu beschreiben, die sich als Funktion der beiden Koordinaten x und y darstellen lässt. Dabei wird davon ausgegangen, dass es sich bei der Vignettierung um einen rein multiplikativen Ansatz handelt, so dass sich daraus die Idee ergibt, die zweidimensionale Polynomexponentialfunktion gemäß 11 (c) durch eine Multiplikation einer horizontalen Polynomexponentialfunktion gemäß 11 (a) mit einer vertikalen Polynomexponentialfunktion gemäß 11 (b) zu erzeugen. Die horizontale Polynomexponentialfunktion wird erhalten, indem die freie Variable z durch eine horizontale Koordinate x ersetzt wird und die vertikale Polynomexponentialfunktion, indem z durch die vertikale Koordinate y ersetzt wird. Dies ist hier beispielhaft für eine Polynomexponentialfunktion zweiter Ordnung dargestellt und kann von einem Fachmann für höhere Ordnungen erweitert werden: g ( x ,  y ) = e c x .0 + c x .1 x + c x .2 x 2 e c y .0 + c y .1 + c y .2 x 2

Figure DE102018115991B4_0006
However, the majority of electronic cameras have two-dimensional matrix sensors in which vignetting occurs in two dimensions. The idea is therefore further developed to describe the vignetting preferably by a two-dimensional polynomial exponential function, which can be represented as a function of the two coordinates x and y. It is assumed that vignetting is a purely multiplicative approach, so that the idea arises from this, according to the two-dimensional polynomial exponential function 11(c) by multiplying a horizontal polynomial exponential function 11 (a) with a vertical polynomial exponential function according to 11(b) to create. The horizontal polynomial exponential function is obtained by replacing the free variable z with a horizontal coordinate x and the vertical polynomial exponential function by replacing z with the vertical coordinate y. This is shown here as an example of a second-order polynomial exponential function and can be extended to higher orders by a person skilled in the art: G ( x , y ) = e c x .0 + c x .1 x + c x .2 x 2 e c y .0 + c y .1 + c y .2 x 2
Figure DE102018115991B4_0006

Hierbei sind cx.0, cx.1 und cx.2 die Koeffizienten für die horizontale Polynomexponentialfunktion und cy.0, cy.1 und cy.2 die Koeffizienten für die vertikale Polynomexponentialfunktion. Durch Anwendung der Rechenregeln für die Exponentialfunktion können beide Exponentialfunktionen in eine Exponentialfunktion vereint werden, indem die Argumente addiert werden: g ( x ,  y ) = e c x .0 + c x .1 x + c x .2 x 2 + c y .0 + c y .1 y + c y .2 y 2

Figure DE102018115991B4_0007
Here c x.0 , c x.1 and c x.2 are the coefficients for the horizontal polynomial exponential function and c y.0 , c y.1 and c y.2 are the coefficients for the vertical polynomial exponential function. By applying the calculation rules for the exponential function, both exponential functions can be converted into an exponential function can be combined by adding the arguments: G ( x , y ) = e c x .0 + c x .1 x + c x .2 x 2 + c y .0 + c y .1 y + c y .2 y 2
Figure DE102018115991B4_0007

Hierbei tritt im Argument die Summe von cx.0 und cy.0 auf. Beide Koeffizienten können durch Summierung zu einem einzigen Koeffizienten c0.0 = cx.0 + cy.0 zusammengefasst werden. Dies zeigt beispielhaft, wie sich durch mathematische Umformungen zahlreiche äquivalente Darstellungen der Polynomexponentialfunktion erzeugen lassen.The sum of c x.0 and c y.0 appears in the argument. Both coefficients can be summed to form a single coefficient c 0.0 = c x.0 + c y.0 . This exemplifies how mathematical transformations can be used to generate numerous equivalent representations of the polynomial exponential function.

Die sich ergebende zweidimensionale Polynomexponentialfunktion gemäß 11 (c) besitzt den Vorteil, dass sie eine radialsymmetrische Form annehmen kann und somit sehr gut geeignet ist, eine radialsymmetrische Vignettierung zu korrigieren. Dies ist insbesondere der Fall, wenn die Koeffizienten cx.2 und cy.2 gleiche Werte c2 annehmen.The resulting two-dimensional polynomial exponential function according to 11(c) has the advantage that it can assume a radially symmetrical shape and is therefore very well suited to correcting radially symmetrical vignetting. This is particularly the case when the coefficients c x.2 and c y.2 assume the same values c 2 .

Durch mathematischen Beweis lässt sich überdies zeigen, dass die Polynomexponentialfunktion die einzige Funktionenklasse ist, bei der sich durch Multiplikation einer horizontalen und einer gleichen vertikalen Funktion vorteilhafterweise eine radialsymmetrische Funktion erzeugen lässt.It can also be shown by mathematical proof that the polynomial exponential function is the only class of functions in which a radially symmetric function can advantageously be generated by multiplying a horizontal and an equal vertical function.

Die Korrektur des Randlichtabfalls oder der Vignettierung mit einer Polynomexponentialfunktion kann grundsätzlich erfolgen, indem unkorrigierte Pixelwerte p mit dem Funktionswert der Polynomexponentialfunktion g multipliziert oder durch den Funktionswert der Polynomexponentialfunktion g dividiert werden. Wie bereits erläutert, unterscheiden sich beide Fälle lediglich in der Wahl des Vorzeichens der Koeffizienten und sind mathematisch betrachtet stets beide möglich. Wegen der höheren Hardwarefreundlichkeit ist die Multiplikation jedoch in der Regel zu bevorzugen.The correction of edge light fall-off or vignetting with a polynomial exponential function can in principle be done by multiplying uncorrected pixel values p by the function value of the polynomial exponential function g or dividing by the function value of the polynomial exponential function g. As already explained, both cases only differ in the choice of sign of the coefficients and, from a mathematical point of view, both are always possible. However, due to its greater hardware friendliness, multiplication is usually preferable.

Allgemein kann eine eindimensionale Polynomexponentialfunktion n-ten Grades g durch eine Exponentialfunktion beschrieben werden, die auf ein eindimensionales Polynom n-ten Grades angewandt wird: g ( z ) = e i = 0 n c i z i .

Figure DE102018115991B4_0008
In general, a one-dimensional polynomial exponential function of nth degree g can be described by an exponential function applied to a one-dimensional polynomial of nth degree: G ( e.g ) = e i = 0 n c i e.g i .
Figure DE102018115991B4_0008

Die Verwendung von Termen und Koeffizienten höherer Ordnung hat den Vorteil, dass sich die Genauigkeit weiter erhöhen lässt. Allerdings erhöht sich dadurch ggf. auch der Berechnungsaufwand. Daraus lässt sich weiterhin auch der Gedanke entwickeln, dass sich im zweidimensionalen Fall die Genauigkeit weiter erhöhen lässt, indem eine Polynomexponentialfunktion g mit dem Grad m × n verwendet wird. Hierbei bezeichnet n den horizontalen Grad der zweidimensionalen Polynomexponentialfunktion und m den vertikalen Grad. Dann kann g beispielsweise folgendermaßen berechnet werden: g ( x , y ) = e j = 0 m i = 0 n c j .i x i y j .

Figure DE102018115991B4_0009
The advantage of using higher order terms and coefficients is that the accuracy can be further increased. However, this may also increase the calculation effort. This also leads to the idea that in the two-dimensional case the accuracy can be further increased by using a polynomial exponential function g with the degree m × n. Here, n denotes the horizontal degree of the two-dimensional polynomial exponential function and m denotes the vertical degree. Then g can be calculated, for example, as follows: G ( x , y ) = e j = 0 m i = 0 n c j .i x i y j .
Figure DE102018115991B4_0009

Da das zugrundeliegende Vignettierungsproblem zumeist radialsymmetrisch ist und somit keine Vorzugsrichtung aufweist, bietet es sich an, den horizontalen Grad n und den vertikalen Grad m gleich zu wählen. Dadurch wird keiner dieser beiden Richtungen bei der Korrektur bevorzugt behandelt.Since the underlying vignetting problem is usually radially symmetrical and therefore has no preferred direction, it makes sense to choose the same horizontal degree n and vertical degree m. As a result, neither of these two directions is given preferential treatment in the correction.

Selbstverständlich lassen sich auch hier zahlreiche äquivalente Darstellungsformen finden, z.B. durch eine Veränderung der Summierungsreihenfolge. Weiterhin ist die Lösung hier als Exponentialfunktion angegeben, also als eine Potenzfunktion mit der Eulerschen Zahl e als Basis. Es lässt sich auch nahezu jede beliebige andere Zahl als Basis verwenden, z.B. die besonders oft für solche Zwecke verwendeten Zahlen 2 oder 10. Die entsprechende Umrechnung folgt der folgenden, bekannten Formel. Dadurch erfordert ein entsprechender Wechsel der Basis lediglich eine entsprechende Anpassung der Koeffizienten: a x = b xlog b ( a ) .

Figure DE102018115991B4_0010
Of course, numerous equivalent forms of representation can also be found here, for example by changing the order of summation. Furthermore, the solution is given here as an exponential function, i.e. as a power function with Euler's number e as the base. Almost any other number can also be used as a base, for example the numbers 2 or 10, which are particularly often used for such purposes. The corresponding conversion follows the following well-known formula. This means that a corresponding change in the basis only requires a corresponding adjustment of the coefficients: a x = b xlog b ( a ) .
Figure DE102018115991B4_0010

In dieser Gleichung bezeichnen abweichend vom Rest der Beschreibung a und b zwei unterschiedliche Basen einer jeweiligen Exponentialfunktion und x ist eine beliebige freie Variable.In this equation, unlike the rest of the description, a and b denote two different bases of a respective exponential function and x is any free variable.

2. Bestimmung der Parameter2. Determination of parameters

Nachfolgend werden erfindungsgemäße Arten der Bestimmung der Koeffizienten der Polynomexponentialfunktion g als Parameter P für die Korrektur beispielhaft beschrieben.Types of determining the coefficients of the polynomial exponential function g as parameters P for the correction according to the invention are described below by way of example.

Zunächst werden Pixelwerte pi ausgewählt. Eine solche Auswahl kann auf verschiedenerlei Weise und unter Würdigung der Gegebenheiten hinsichtlich der Ausprägung der Vignettierung und der zur Verfügung stehenden Speicher- und Rechenressourcen getroffen werden. Einige Beispiele sind in 12 gezeigt. So ist es beispielsweise möglich, alle Pixel auszuwählen, wie in 12 (a) dargestellt. Alternativ ist es auch möglich, eine regelmäßige angeordnete Untermenge an Pixeln zu verwenden, wie in 12 (b). Ebenfalls ist es möglich, Pixel entlang von Vorzugslinien oder -richtungen auszuwählen, wie in 12 (c). Schließlich ist es auch möglich, Pixel zusammenzufassen, z.B. durch Addition oder Mittelung ihrer Werte, wie in 12 (d) angedeutet. Ein solcher Vorgang wird auch als „Binning“ bezeichnet.First, pixel values p i are selected. Such a selection can be made in various ways and taking into account the circumstances with regard to the severity of the vignetting and the available storage and computing resources. Some examples are in 12 shown. For example, it is possible to select all pixels, as in 12 (a) shown. Alternatively, it is also possible to use a regularly arranged subset of pixels, as in 12(b) . It is also possible to select pixels along preferred lines or directions, as in 12(c) . Finally, it is also possible to summarize pixels, for example by adding or averaging their values, as in 12 (d) indicated. Such a process is also known as “binning”.

Anschließend können die Parameter auf Basis der Pixelwerte pi ermittelt werden. Dies kann erfindungsgemäß z.B. als Fit durch eine Anwendung eines Fitting-Algorithmus auf die Eingangsdaten vorgenommen werden. Als Eingangsdaten können die Pixelwerte des Referenzbildes I0 dienen oder aber auch die reziproken Pixelwerte des Referenzbildes I0. Dabei wird ein Fehlermaß zwischen den Eingangsdaten und der anzufittenden Funktion minimiert. Ein Beispiel für solch einen Fitting-Algorithmus ist die sogenannte „Levenberg-Marquardt ordinary least-squares method“.The parameters can then be determined based on the pixel values p i . According to the invention, this can be done, for example, as a fit by applying a fitting algorithm to the input data. The pixel values of the reference image I 0 or the reciprocal pixel values of the reference image I 0 can serve as input data. This minimizes the amount of error between the input data and the function to be fitted. An example of such a fitting algorithm is the so-called “Levenberg-Marquardt ordinary least-squares method”.

Eine bevorzugte Alternative bei der Bestimmung der Parameter besteht darin, auf eine Division 60 (vgl. 7) zu verzichten und stattdessen den Logarithmus der Eingangsdaten zu einer Basis zu berechnen. Als Basis können hierbei beispielsweise die Eulersche Zahl e, 2 oder 10 oder auch eine andere Zahl verwendet werden. Durch die Logarithmierung der Eingangsdaten kann die Bestimmung der Parameter in ein lineares Problem überführt werden, welches sich mit einfacheren Methoden, geringerem Rechenaufwand und auch in geringerer Rechenzeit lösen lässt.A preferred alternative when determining the parameters is to use a division 60 (cf. 7 ) and instead calculate the logarithm of the input data to a base. For example, Euler's number e, 2 or 10 or another number can be used as a basis. By taking the logarithm of the input data, the determination of the parameters can be converted into a linear problem, which can be solved using simpler methods, less computing effort and also in less computing time.

Dies lässt sich beispielsweise dadurch bewerkstelligen, dass die Eingangsdaten, welche aus logarithmierten Werten von Pixeln pi mit Koordinaten xi und yi bestehen, zu einem Zielvektor d zusammengefasst werden. In der nachstehenden Formel wird beispielhaft der natürliche Logarithmus zur Basis e verwendet: d = [ ln ( p 0 ) ln ( p 1 ) ln ( p 2 ) ] ,  x = [ x 0 x 1 x 2 ]  und y = [ y 0 y 1 y 2 ] .

Figure DE102018115991B4_0011
This can be accomplished, for example, by combining the input data, which consists of logarithmic values of pixels p i with coordinates x i and y i , into a target vector d. The following formula uses the natural logarithm with base e as an example: d = [ ln ( p 0 ) ln ( p 1 ) ln ( p 2 ) ] , x = [ x 0 x 1 x 2 ] and y = [ y 0 y 1 y 2 ] .
Figure DE102018115991B4_0011

Weiterhin können die Parameter in einer beispielhaften Reihenfolge zu einem Parametervektor c zusammengefasst werden. Dabei umfasst c0.0 wie beschrieben sowohl den x-Offset cx.0 als auch den y-Offset cy.0: c = [ c 0.0 c x .1 c x .2 c y .1 c y .2 ] .

Figure DE102018115991B4_0012
Furthermore, the parameters can be combined in an exemplary order to form a parameter vector c. As described, c 0.0 includes both the x-offset c x.0 and the y-offset c y.0 : c = [ c 0.0 c x .1 c x .2 c y .1 c y .2 ] .
Figure DE102018115991B4_0012

Schließlich kann eine Matrix gebildet werden, die spaltenweise die verschiedenen, jeweils zu den Koeffizienten gehörenden Potenzen der Koordinaten xi und yi enthält: M = [ 1 x 0 x 0 2 y 0 y 0 2 1 x 1 x 1 2 y 1 y 1 2 1 x 2 x 2 2 y 2 y 2 2 ] .

Figure DE102018115991B4_0013
Finally, a matrix can be formed that contains the different powers of the coordinates x i and y i corresponding to the coefficients in columns: M = [ 1 x 0 x 0 2 y 0 y 0 2 1 x 1 x 1 2 y 1 y 1 2 1 x 2 x 2 2 y 2 y 2 2 ] .
Figure DE102018115991B4_0013

Dann lässt sich unter Verwendung eines zu minimierenden quadratischen Fehlers das überbestimmte Optimierungsproblem folgendermaßen schreiben: ( d Mc ) 2 min .

Figure DE102018115991B4_0014
Then, using a squared error to be minimized, the overdetermined optimization problem can be written as follows: ( d Mc ) 2 min .
Figure DE102018115991B4_0014

Eine einfache, bekannte Möglichkeit, dieses Problem zu lösen, besteht in der Anwendung der Pseudoinversen nach Moore-Penrose, die auch Moore-Penrose Inverse genannt wird: c = ( M T M ) 1 M T d .

Figure DE102018115991B4_0015
A simple, well-known way to solve this problem is to use the Moore-Penrose pseudoinverse, also called the Moore-Penrose inverse: c = ( M T M ) 1 M T d .
Figure DE102018115991B4_0015

So können die Koeffizienten der Polynomexponentialfunktion auf einfache Weise und mit geringem Aufwand berechnet werden. Für den Fall, dass gezielt nach Koeffizienten für eine radialsymmetrische Korrektur gesucht wird, kann eine zusätzliche Nebenbedingung eingeführt werden, dass z.B. cx.2 = cy.2 ist. Die Bestimmung der Parameter kann dann unter Verwendung der Methode des kleinsten quadratischen Fehlers mit Nebenbedingung gesucht werden.In this way, the coefficients of the polynomial exponential function can be calculated easily and with little effort. In the event that a specific search is being made for coefficients for a radially symmetric correction, an additional secondary condition can be introduced, for example c x.2 = c y.2 . The determination of the parameters can then be sought using the least square error method with constraints.

Eine weitere Alternative besteht darin, die beiden gleichzusetzenden Parameter zunächst unabhängig voneinander zu ermitteln und sie anschließend beide ihrem gemeinsamen Mittelwert gleichzusetzen.Another alternative is to first determine the two parameters to be equated independently of each other and then equate them both to their common mean.

Schließlich ist es auch möglich, beide Parameter cx.2 und cy.2 durch einen Parameter c2 zu ersetzen und die zweidimensionale Polynomexponentialfunktion zweiter Ordnung zu schreiben als: g ( x ,  y ) = e c 0 + c x .1 x + c y .1 y + c 2 ( x 2 + y 2 ) .

Figure DE102018115991B4_0016
Finally, it is also possible to replace both parameters c x.2 and c y.2 with a parameter c 2 and write the two-dimensional second-order polynomial exponential function as: G ( x , y ) = e c 0 + c x .1 x + c y .1 y + c 2 ( x 2 + y 2 ) .
Figure DE102018115991B4_0016

Dementsprechend kann dann der Parametervektor c aus den Parametern c0, cx.1, cy.1 und c2 aufgebaut werden, wobei dann die c2 zugeordnete Spalte von M jeweils die Werte x i 2 + y i 2

Figure DE102018115991B4_0017
enthält. Daneben gibt es noch weitere äquivalente Möglichkeiten, die sich hieraus durch Anwendung bekannter Rechenregeln ableiten lassen, z.B. durch Linearkombination.Accordingly, the parameter vector c can then be constructed from the parameters c 0 , c x.1 , c y.1 and c 2 , in which case the column of M assigned to c 2 contains the values x i 2 + y i 2
Figure DE102018115991B4_0017
contains. There are also other equivalent possibilities that can be derived from this by applying known calculation rules, for example through linear combination.

Diese Methode der Bestimmung der Parameter bietet den Vorteil, dass es möglich ist, auf einfache Weise die Parameter P zu ermitteln, ohne dass dafür eine schwierige Bestimmung eines optischen Mittelpunktes erforderlich wäre.This method of determining the parameters offers the advantage that it is possible to easily determine the parameters P without this would require a difficult determination of an optical center.

Weiterhin lässt sich diese Methode auch auf leichte Weise auf die Bestimmung der Parameter von Polynomexponentialfunktionen höherer Ordnung erweitern, indem die entsprechenden Koeffizienten in den Parametervektor c aufgenommen und die Matrix M um die entsprechenden Spalten der den Parametern zugehörigen Potenzen bzw. Potenzprodukten der Koordinatenwerte erweitert wird.Furthermore, this method can also be easily extended to the determination of the parameters of higher-order polynomial exponential functions by including the corresponding coefficients in the parameter vector c and expanding the matrix M to include the corresponding columns of the powers or power products of the coordinate values associated with the parameters.

3. Normierung3. Normalization

Es ist vorteilhaft, wenn durch eine Korrektur die Helligkeit im optischen Mittelpunkt konstant bleibt. Da bisher auf eine Bestimmung eines optischen Mittelpunktes im Zuge einer Vereinfachung bewusst verzichtet wurde, stellt sich nun die Frage, wie eine solche Normierung ohne eine Bestimmung eines optischen Mittelpunktes vorgenommen werden kann.It is advantageous if the brightness at the optical center remains constant through a correction. Since previously the determination of an optical center point was deliberately avoided in the course of simplification, the question now arises as to how such a standardization can be carried out without determining an optical center point.

Eine erfindungsgemäße Möglichkeit einer solchen Normierung besteht darin, für alle Bildpunkte den Wert der Funktion des mathematischen Modells zu bestimmen. Anhand eines geeigneten Extremwerts, also des Maximums oder des Minimums, kann nachfolgend die Funktion durch diesen Wert geteilt oder mit seiner Inversen oder mit einer durch diesen Wert geteilten Zahl multipliziert werden. Nachteilig an diesem Vorgehen ist, dass es einen relativ hohen Rechenaufwand benötigt.One possibility of such normalization according to the invention is to determine the value of the function of the mathematical model for all pixels. Using a suitable extreme value, i.e. the maximum or the minimum, the function can subsequently be divided by this value or multiplied by its inverse or by a number divided by this value. The disadvantage of this approach is that it requires a relatively high amount of computing effort.

Um einen einfacheren Weg der Normierung zu beschreiten, wird zunächst die Anwendung der Polynomexponentialfunktion betrachtet. Da mit dieser Funktion multipliziert oder durch sie dividiert wird, sollte sie an der gewünschten Stelle konstanter Helligkeit bevorzugt den diesbezüglich neutralen Wert 1 annehmen. Dazu wird weiterhin ihre Definition gemäß Gleichung (1.2) betrachtet. Die Exponentialfunktion nimmt genau dann den Wert 1 an, wenn ihr Argument bestehend aus einem Polynom zweiten Grades den Wert 0 annimmt. Die Idee besteht nun darin, die Wahl des Parameters c0 so zu treffen, dass das Argument der Exponentialfunktion genau im Extremwert der Funktion g gleich 0 wird. Dazu wird in der Herleitung g differenziert, gleich 0 gesetzt, nach einem Ort x aufgelöst, dessen Wert wiederum für x in das Argument der Funktion g eingesetzt, dieses ebenfalls gleich 0 gesetzt und nach c0 aufgelöst. Damit ergibt sich der folgende normierende Wert ĉ0 für c0: c ^ 0 = 1 4 c 1 2 c 2 .

Figure DE102018115991B4_0018
In order to take a simpler approach to normalization, the application of the polynomial exponential function is first considered. Since this function is used to multiply or divide by it, it should preferably assume the neutral value 1 at the desired point of constant brightness. For this purpose, its definition according to equation (1.2) is also considered. The exponential function takes the value 1 if and only if its argument, consisting of a second degree polynomial, takes the value 0. The idea is to choose the parameter c 0 so that the argument of the exponential function becomes 0 exactly at the extreme value of the function g. For this purpose, g is differentiated in the derivation, set equal to 0, solved for a location x, its value for x is inserted into the argument of the function g, this is also set equal to 0 and solved for c 0 . This results in the following normalizing value ĉ 0 for c 0 : c ^ 0 = 1 4 c 1 2 c 2 .
Figure DE102018115991B4_0018

Die erläuterten Rechenschritte der Herleitung dienen lediglich der Nachvollziehbarkeit des Zustandekommens der Gleichung (3.1). Zur Laufzeit müssen sie nicht jeweils nachvollzogen werden. In der Polynomexponentialfunktion ersetzt dann der normierende Wert ĉ0 den vorherigen Wert c0. Damit ist die Polynomexponentialfunktion normiert.The calculation steps explained in the derivation only serve to make it easier to understand how equation (3.1) came about. They do not have to be reproduced at runtime. In the polynomial exponential function, the normalizing value ĉ 0 then replaces the previous value c 0 . This means that the polynomial exponential function is normalized.

Für den zweidimensionalen Fall kann man grundsätzlich genauso vorgehen. Dort erfolgt statt der Differenzierung eine Gradientenbildung nach einem Vektor aus den Werten x und y, die nach Nullsetzung für diesen Vektor einen zweidimensionalen Koordinatenwert liefert. Genau wie zuvor werden die x bzw. y entsprechenden Elemente dieses Wertes für x bzw. y in das Argument der Funktion g eingesetzt, dieses wird wiederum gleich 0 gesetzt und nach c0.0 aufgelöst. Alternativ können auch die Zeilen der hier genannten Vektorgleichung einzeln berechnet und anschließend eingesetzt werden. Es ergibt sich der folgende normierende Wert ĉ0.0 für c0.0: c ^ 0.0 = 1 4 c x .1 2 c x .2 + 1 1 c y .1 2 c y .2 .

Figure DE102018115991B4_0019
In principle, you can proceed in the same way for the two-dimensional case. Instead of differentiation, a gradient is formed according to a vector from the values x and y, which, after being set to zero, provides a two-dimensional coordinate value for this vector. Just as before, the elements corresponding to x and y of this value for x and y are inserted into the argument of the function g, which in turn is set equal to 0 and solved for c 0.0 . Alternatively, the lines of the vector equation mentioned here can be calculated individually and then used. This results in the following normalizing value ĉ 0.0 for c 0.0 : c ^ 0.0 = 1 4 c x .1 2 c x .2 + 1 1 c y .1 2 c y .2 .
Figure DE102018115991B4_0019

Dieser beispielhafte Ausdruck lässt sich leicht in verschiedene äquivalente Darstellungsformen umwandeln. Beispielhaft sei hier die folgende Darstellung für den Fall der Anwendbarkeit von cx.2 = c2 = cy.2 genannt: c 0.0 = c x .1 2 + c y .1 2 4 c 2 .

Figure DE102018115991B4_0020
This exemplary expression can be easily converted into various equivalent forms of representation. As an example, the following representation is given for the case where c x.2 = c 2 = c y.2 is applicable: c 0.0 = c x .1 2 + c y .1 2 4 c 2 .
Figure DE102018115991B4_0020

Die Gleichungen (3.1) bis (3.3) stellen jeweils eine einfache normierende Transformation N der Parameter P gemäß 10 dar. Diese Transformation ist elegant und lässt sich mit äußerst geringem Aufwand berechnen. Insbesondere ist zu ihrer Durchführung keine Kenntnis eines optischen Mittelpunktes erforderlich, so dass auf den Aufwand der Berechnung dieses optischen Mittelpunktes weiterhin verzichtet werden kann.Equations (3.1) to (3.3) each represent a simple normalizing transformation N of the parameters P 10 This transformation is elegant and can be calculated with very little effort. In particular, no knowledge of an optical center is required to carry it out, so that the effort involved in calculating this optical center can be dispensed with.

Vorausgreifend sei an dieser Stelle noch eine vereinfachende Notation eingeführt. Und zwar handelt es sich bei den Gleichungen (3.1) bis (3.3) um nichtlineare Berechnungen. Diese Berechnungen lassen sich etwas vereinfacht schreiben, indem zunächst der Vektor der Polynomexponentialfunktionskoeffizienten c sowie der Vektor der normierten Polynomexponentialfunktionskoeffizienten ĉ eingeführt wird. Für den eindimensionalen Fall lauten diese folgendermaßen: c = [ c 0 c 1 c 2 ] ,  und  c ^ = [ c ^ 0 c ^ 1 c ^ 2 ] .

Figure DE102018115991B4_0021
In advance, a simplifying notation should be introduced at this point. Equations (3.1) to (3.3) are non-linear calculations. These calculations can be written somewhat simplified by first introducing the vector of polynomial exponential function coefficients c and the vector of normalized polynomial exponential function coefficients ĉ. For the one-dimensional case these are as follows: c = [ c 0 c 1 c 2 ] , and c ^ = [ c ^ 0 c ^ 1 c ^ 2 ] .
Figure DE102018115991B4_0021

Mit diesen Vektoren kann man einen nichtlinearen Normierungsoperator im Parameterraum F definieren: c ^ = Fc .

Figure DE102018115991B4_0022
With these vectors one can define a nonlinear normalization operator in the parameter space F: c ^ = FC .
Figure DE102018115991B4_0022

Auch für den zweidimensionalen Fall lassen sich entsprechend Vektoren und ein Normierungsoperator F definieren.Vectors and a normalization operator F can also be defined for the two-dimensional case.

4. Iteration4th iteration

Bisher bestand bei der Anwendung einer Polynomexponentialfunktion das grundsätzliche technische Problem, dass die Exponentialfunktion eine hardwareunfreundliche Funktion ist, deren pixelweise Berechnung einen hohen Rechenaufwand bzw. umfangreiche Hardwareressourcen erfordert. Daher wurde eine detaillierte Analyse durchgeführt, wie die Berechnung der Polynomexponentialfunktion auf hardwarefreundliche Operationen zurückgeführt werden kann.Until now, the fundamental technical problem when using a polynomial exponential function was that the exponential function is a hardware-unfriendly function, the pixel-by-pixel calculation of which requires a lot of computing effort or extensive hardware resources. Therefore, a detailed analysis was carried out on how the calculation of the polynomial exponential function can be reduced to hardware-friendly operations.

Die zugrundeliegende Erkenntnis folgt dem mathematischen Gedanken der Definition des Hyper-Operators. Beim Hyper-Operator ergibt sich eine Operation einer bestimmten Stufe jeweils durch eine Mehrfachausführung von Operationen einer um eins niedrigeren Stufe. Bei der Exponentialfunktion handelt es sich um eine Potenzfunktion und somit um eine Operation der dritten Stufe des Hyper-Operators. Diese kann gemäß der Definition des Hyper-Operators durch mehrfaches Ausführen von Operationen der zweiten Stufe des Hyper-Operators berechnet werden, zu welchen auch die Multiplikation zählt.The underlying insight follows the mathematical idea of the definition of the hyper operator. With the hyper operator, an operation of a certain level results from multiple execution of operations of a level one lower. The exponential function is a power function and therefore an operation of the third level of the hyper operator. According to the definition of the hyper-operator, this can be calculated by repeatedly executing operations of the second stage of the hyper-operator, which also includes multiplication.

Diesem Gedanken folgend wurde die Wirkungsweise eines rückgekoppelten Multiplizierwerkes analysiert, welches in zwei alternativen Ausführungsformen in 13 dargestellt ist. Ein rückgekoppeltes Multiplizierwerk beinhaltet dabei eine Variable oder ein Register, z.B. h0. Über ein Initialisierungssignal r kann zu einem Startzeitpunkt mit Hilfe einer Selektion 200 über den Eingang d0 ein Startwert eingelesen und somit eine Initialisierung durchgeführt werden. Im dargestellten Fall ist dieser Eingang d0 mit einem Wert a0 belegt. Die Selektion kann beispielsweise mit einem Multiplexer vorgenommen werden. Nach dem Startzeitpunkt kann das Initialisierungssignal r einen anderen Wert annehmen, der indiziert, dass nun kein Startzeitpunkt mehr vorliegt. Dann kann die Selektion einen anderen Wert auswählen, beispielsweise das Ergebnis einer Multiplikation, die z.B. mit Hilfe eines Multiplikators 202 vorgenommen werden kann. Ein solcher Multiplikator kann beispielsweise durch logische Operationen oder durch Logikelemente eines FPGAs aufgebaut werden. Alternativ können beispielsweise in einem FPGA spezielle Multiplikatorelemente verwendet werden, die beispielsweise Teil eines DSP-Blocks sein können. In einem Prozessor kann beispielsweise ein Multiplikator verwendet werden, der in dessen ALU enthalten ist. Dabei multipliziert der Multiplikator 202 jeweils die Variable h0 mit dem Wert, der am Dateneingang d anliegt. In den beiden gezeigten Beispielen ist dies jeweils der Wert a1. Der Wert der Variable h0 wird jeweils über einen Ausgang q ausgegeben. Ein Verzögerungselement 201 stellt jeweils sicher, dass dieser Operation einmal innerhalb eines Zeitschrittes ausgeführt wird. Eine solche Verzögerung lässt sich beispielsweise durch ein Register realisieren, welches aus Flip-Flops mit jeweils einem Takteingang und optional mit einem sogenannten Freigabe-Eingang aufgebaut ist. Letzterer wird auf Englisch auch als „enable“-Input bezeichnet. Als Takt lässt sich beispielsweise die Frequenz verwenden, mit der die Pixel, Zeilen oder Spalten des Bildes berechnet werden, oder ein Vielfaches davon. Auch ist es möglich, dass in einer digitalen Schaltung als Zeitschritte einzelne Takte mithilfe von Freigabesignalen ausgewählt werden. Dadurch ist es beispielsweise möglich, diese Multiplikation genau einmal pro Pixel, pro Zeile oder pro Spalte auszuführen.Following this idea, the operation of a feedback multiplier was analyzed, which is available in two alternative embodiments 13 is shown. A feedback multiplier contains a variable or a register, for example h 0 . Using an initialization signal r, a start value can be read in at a starting time using a selection 200 via input d 0 and an initialization can thus be carried out. In the case shown, this input d 0 is assigned a value a 0 . The selection can be carried out, for example, with a multiplexer. After the start time, the initialization signal r can assume a different value, which indicates that there is no longer a start time. The selection can then select a different value, for example the result of a multiplication, which can be carried out using a multiplier 202, for example. Such a multiplier can be built, for example, through logical operations or through logic elements of an FPGA. Alternatively, for example, special multiplier elements can be used in an FPGA, which can be part of a DSP block, for example. For example, a processor can use a multiplier contained in its ALU. The multiplier 202 multiplies the variable h 0 by the value present at the data input d. In the two examples shown, this is the value a 1 . The value of the variable h 0 is output via an output q. A delay element 201 ensures that this operation is carried out once within a time step. Such a delay can be implemented, for example, by a register that is made up of flip-flops, each with a clock input and optionally with a so-called enable input. The latter is also known as “enable” input in English. For example, the frequency at which the pixels, rows or columns of the image are calculated, or a multiple thereof, can be used as the clock. It is also possible for individual clocks to be selected as time steps in a digital circuit using release signals. This makes it possible, for example, to carry out this multiplication exactly once per pixel, per row or per column.

Es gibt grundsätzlich verschiedene Möglichkeiten, die Reihenfolge von Multiplikation 202, Selektion 200, Verzögerung 201 und Speicherung in der Variable h0 vorzunehmen. So ist es beispielsweise wie in 13 (a) dargestellt möglich, die Verzögerung 201 vor der Speicherung in der Variable h0 vorzunehmen. Es ist allerdings auch möglich, wie in 13 (b) dargestellt, die Speicherung in der Variable h0 vor der Verzögerung 201 vorzunehmen. Ein wesentlicher Unterschied dieser beiden Ausführungsformen besteht darin, wie schnell das Signal des Eingangs d0 am Ausgang q vorliegt. So liegt nach einem ersten Zeitschritt in 13 (a) am Ausgang der Wert a0 an, während in 13 (b) nach einem ersten Zeitschritt bereits der Wert a0a1 anliegt. Dieser Unterschied lässt sich durch die Wahl der Werte kompensieren. Wählt man beispielsweise in 13 (b) den Wert für a0 mit um einen Faktor 1/a1 beaufschlagt gegenüber 13 (a), so ergeben sich nach dem ersten Zeitschritt gleiche Ausgangswerte. Es ist also grundsätzlich möglich, verschiedene Ausführungsformen zu realisieren und durch geeignete Wahl der Werte an den Eingängen in bestimmten Fällen ein jeweils gleichwertiges Verhalten zu erzielen. Nachfolgend wird beispielhaft nur die Ausführungsform nach 13 (a) diskutiert. Bei Bedarf kann die technische Lehre dieser Ausführungsform auch auf andere Ausführungsformen übertragen werden.There are basically different ways to carry out the order of multiplication 202, selection 200, delay 201 and storage in the variable h 0 . For example, it is as in 13 (a) shown possible to carry out the delay 201 before storage in the variable h 0 . However, it is also possible, as in 13 (b) shown to make the storage in the variable h 0 before the delay 201. A key difference between these two embodiments is how quickly the signal from the input d 0 is present at the output q. So after a first time step in 13 (a) at the output the value a 0 , while in 13 (b) After a first time step the value a 0 a 1 is already present. This difference can be compensated for by choosing the values. For example, if you choose 13 (b) compared to the value for a 0 by a factor of 1/a 1 13 (a) , the same initial values result after the first time step. It is therefore fundamentally possible to implement different embodiments and to achieve equivalent behavior in certain cases by appropriately selecting the values at the inputs. Only the embodiment is shown below as an example 13 (a) discussed. If necessary, the technical teachings of this embodiment can also be transferred to other embodiments.

Das mathematische Verhalten rückgekoppelter Multiplizierwerke wird nachfolgend diskutiert. Dabei werden ein Zeitschritt z und ein Zählwert für Zeitschritte i verwendet. Ohne Beschränkung der Allgemeinheit wird angenommen, dass zu einem Zeitschritt z = 0 ein Initialisierungssignal r gesetzt wird. Dabei bedeutet ein gesetztes Signal, dass es einen Wert annimmt, der dazu führt, dass die Selektion 200 den Startwert d0 auswählt uneingedenk dessen, ob dabei für das Initialisierungssignal r ein logischer Wert von 0 oder von 1 erforderlich ist. Weiterhin wird angenommen, dass für alle Zeitschritte z > 0 bzw. i > 0 das Initialisierungssignal r nicht gesetzt wird, wobei ein nicht gesetztes Initialisierungssignal r dazu führt, dass die Selektion 200 das Ergebnis des Multiplikators 202 auswählt. Unter diesen Annahmen liegt nach einem Zeitschritt z = 0 am Ausgang q der Wert a0 an. Dabei wird ohne Beschränkung der Allgemeinheit davon ausgegangen, dass während des Zeitschritts z = 0 das durch die Selektion 200 ausgewählte Signal d0 mit dem Wert a0 an der Verzögerung 201 anliegt, so dass nach dem Zeitschritt z = 0 dieser Wert von der Verzögerung 201 an die Variable h0 und an den Ausgang q weiter gegeben wird. Es ist möglich, dass nach dem Zeitschritt z = 0 bereits der Zeitschritt z = 1 vorliegt, jedoch ist dies nicht zwingend erforderlich. Nach jedem weiteren Zeitschritt liegt dann am Ausgang q ein Wert an, der jeweils mit dem am Eingang d anliegenden Wert a1 multipliziert wurde. Daraus ergibt sich für den Wert am Ausgang q nach dem Zeitschritt z die folgende rekursive Gleichung: h 0 ( z ) = { a 0 falls z = 0 a 1 h 0 ( z 1 ) sonst .

Figure DE102018115991B4_0023
The mathematical behavior of feedback multipliers is discussed below. A time step z and a count value for time steps i are used. Without restrictions on space It is generally assumed that an initialization signal r is set at a time step z = 0. A set signal means that it assumes a value that causes the selection 200 to select the starting value d 0 regardless of whether a logical value of 0 or 1 is required for the initialization signal r. Furthermore, it is assumed that the initialization signal r is not set for all time steps z > 0 or i > 0, with an unset initialization signal r causing the selection 200 to select the result of the multiplier 202. Under these assumptions, after a time step z = 0, the value a 0 is present at the output q. Without limiting the generality, it is assumed that during the time step z = 0, the signal d 0 selected by the selection 200 with the value a 0 is present at the delay 201, so that after the time step z = 0 this value is from the delay 201 is passed on to the variable h 0 and to the output q. It is possible that after the time step z = 0 the time step z = 1 already exists, but this is not absolutely necessary. After each additional time step, a value is present at the output q, which has been multiplied by the value a 1 present at the input d. This results in the following recursive equation for the value at output q after time step z: H 0 ( e.g ) = { a 0 if e.g = 0 a 1 H 0 ( e.g 1 ) otherwise .
Figure DE102018115991B4_0023

Diese Rekursion kann in die folgende Iterationsformel überführt und, unter der Annahme, dass a0 und a1 positiv sind, folgendermaßen weiter umgeformt werden: h 0 ( z ) = a 0 i = 1 z a 1 = a 0 a 1 z = e ln a 0 a 1 z = e ln a 0 + ln a 1 z = e ln a 0 c 0 + ln a 1 c 1 = e c 0 + c 1 z

Figure DE102018115991B4_0024
This recursion can be converted into the following iteration formula and, assuming that a 0 and a 1 are positive, can be further transformed as follows: H 0 ( e.g ) = a 0 i = 1 e.g a 1 = a 0 a 1 e.g = e ln a 0 a 1 e.g = e ln a 0 + ln a 1 e.g = e ln a 0 c 0 + e.g ln a 1 c 1 = e c 0 + c 1 e.g
Figure DE102018115991B4_0024

Hierbei werden Koeffizienten c0 und c1 verwendet, aus denen sich im genannten Fall die Werte a0 und a1 gemäß folgender Formel ergeben: a 0 = e c 0  und a 1 = e c 1 .

Figure DE102018115991B4_0025
Coefficients c 0 and c 1 are used here, which in the case mentioned result in the values a 0 and a 1 according to the following formula: a 0 = e c 0 and a 1 = e c 1 .
Figure DE102018115991B4_0025

Durch diese Umformung und in dieser Schreibweise ist erkennbar, dass ein rückgekoppeltes Multiplizierwerk in der Lage ist, die Werte einer Polynomexponentialfunktion ersten Grades mit Koeffizienten b0 und b1 für eine ganzzahlige freie Variable z fortlaufend zu berechnen.Through this transformation and in this notation it can be seen that a feedback multiplier is able to continuously calculate the values of a polynomial exponential function of the first degree with coefficients b 0 and b 1 for an integer free variable z.

Aus der Erkenntnis heraus, dass ein rückgekoppeltes Multiplizierwerk eine Polynomexponentialfunktion ersten Grades fortlaufend berechnen kann, stellt sich die Frage, wie durch rückgekoppelte Multiplizierwerke eine Polynomexponentialfunktion zweiten Grades fortlaufend berechnet und wie damit ein Pixel bezüglich einer Vignettierung korrigiert werden kann.Based on the knowledge that a feedback multiplier can continuously calculate a polynomial exponential function of the first degree, the question arises as to how a polynomial exponential function of the second degree can be continuously calculated by feedback multipliers and how a pixel can thus be corrected for vignetting.

Hierzu wird eine Verschaltung zweier rückgekoppelter Multiplizierwerke gemäß 14 betrachtet. Die gleichen Bezugszeichen entsprechen jeweils denen aus 13 (a). Dabei wird vor ein erstes rückgekoppeltes Multiplizierwerk 222 ein zweites rückgekoppeltes Multiplizierwerk 221 geschaltet. Dadurch findet eine Kaskadierung der beiden rückgekoppelten Multiplizierwerke statt. Die dadurch entstehende Schaltung aus den zwei rückgekoppelten Multiplizierwerken 221 und 222 wird hier als kaskadiertes rückgekoppeltes Multiplizierwerk zweiten Grades bezeichnet. Da der Eingang des linken rückgekoppelten Multiplizierwerkes nicht offen gelassen werden kann, wird als Startelement der Kaskadierungskette vor dieses zweite rückgekoppelte Multiplizierwerk ein Konstantwert 220 geschaltet. Hinter den Ausgang des ersten rückgekoppelten Multiplizierwerkes 222 kann ein Multiplikator 224 zur Korrektur des Pixelwertes geschaltet werden.For this purpose, two feedback multipliers are connected according to 14 considered. The same reference numbers correspond to those from 13 (a) . A second feedback multiplier 221 is connected in front of a first feedback multiplier 222. This causes the two feedback multipliers to be cascaded. The resulting circuit consisting of the two feedback multipliers 221 and 222 is referred to here as a cascaded feedback multiplier of the second degree. Since the input of the left feedback multiplier cannot be left open, a constant value 220 is switched as the starting element of the cascading chain in front of this second feedback multiplier. A multiplier 224 for correcting the pixel value can be connected behind the output of the first feedback multiplier 222.

Die Kaskadierung wird im Detail so vorgenommen, dass jeweils der Ausgang q eines rückgekoppelten Multiplizierwerkes, z.B. W1, mit dem Eingang d des nachfolgenden rückgekoppelten Multiplizierwerkes, z.B. W0 verbunden wird. Genau wie in 10 wird an den Eingang d des in der Kaskadierung an vorderster Stelle liegenden rückgekoppelten Multiplizierwerkes W1 ein konstanter Wert angelegt, z.B. a2. Der Ausgang des an letzter Stelle liegenden rückgekoppelten Multiplizierwerkes des kaskadierten rückgekoppelten Multiplizierwerkes kann nachfolgend zur Korrektur des Pixelwertes pz verwendet werden, indem dessen Wert jeweils mit einem Multiplikator 224 mit dem Pixelwert pi multipliziert wird. Diese Multiplikation entspricht unter anderem der Multiplikation 112 aus 10. Dabei wird jeweils ein korrigierter Pixelwert p̂i erhalten.The cascading is carried out in detail in such a way that the output q of a feedback multiplier, for example W 1 , is connected to the input d of the subsequent feedback multiplier, for example W 0 . Just like in 10 A constant value is applied to the input d of the feedback multiplier W 1 , which is at the forefront in the cascading, for example a 2 . The output of the last-positioned feedback multiplier of the cascaded feedback multiplier can subsequently be used to correct the pixel value p z by multiplying its value with the pixel value p i using a multiplier 224. This multiplication corresponds, among other things, to the multiplication 112 10 . A corrected pixel value p̂ i is obtained in each case.

Die im Laufe der Kaskadierung abnehmende Nummerierung der rückgekoppelten Multiplizierwerke, z.B. W1, danach W0 ist an dieser Stelle motiviert durch die übliche mathematische Schreibweise der durch die Kaskadierung erzielten mathematischen Wirkung. Zu deren Erläuterung werden die zuvor gewählten Zeitschritte und ihre Nummerierung auf jeweils gleiche Weise beibehalten.The decreasing numbering of the feedback multipliers in the course of cascading, eg W 1 , then W 0 is motivated at this point by the usual mathematical notation of the mathematical effect achieved by cascading. To explain this, the previously selected time steps and their numbering are retained in the same way.

Die mathematische Wirkung des rückgekoppelten Multiplizierwerkes kann wiederum zunächst rekursiv beschrieben werden. Dabei wird in runden Klammern jeweils die Nummer des Zeitschrittes z angegeben, nach dem dieser Wert angenommen wird: h 0 ( z ) = { a 0 falls z = 0 h 0 ( z 1 ) h 1 ( z 1 ) sonst

Figure DE102018115991B4_0026
h 1 ( z ) = { a 1 falls z = 0 a 2 h 1 ( z 1 ) sonst
Figure DE102018115991B4_0027
The mathematical effect of the feedback multiplier can first be described recursively. The number of the time step is shown in round brackets specified according to which this value is taken: H 0 ( e.g ) = { a 0 if e.g = 0 H 0 ( e.g 1 ) H 1 ( e.g 1 ) otherwise
Figure DE102018115991B4_0026
H 1 ( e.g ) = { a 1 if e.g = 0 a 2 H 1 ( e.g 1 ) otherwise
Figure DE102018115991B4_0027

Der Ausgangswert q des ersten rückgekoppelten Multiplizierwerkes 222 nimmt nach dem Zeitpunkt z den Wert h0(z) an. Zum besseren Verständnis werden die sich nach den Zeitpunkten z = 0 bis z = 4 ergebenden Werte hier explizit angegeben: h 0 ( 0 ) = a 0 h 1 ( 0 ) = a 1

Figure DE102018115991B4_0028
h 0 ( 1 ) = h 0 ( 0 ) h 1 ( 0 ) = a 0 a 1 h 1 ( 1 ) = h 1 ( 0 ) a 2 = a 1 a 2
Figure DE102018115991B4_0029
h 0 ( 2 ) = h 0 ( 1 ) h 1 ( 1 ) = a 0 a 1 2 a 2 3 h 1 ( 2 ) = h 1 ( 1 ) a 2 = a 1 a 2 2
Figure DE102018115991B4_0030
h 0 ( 3 ) = h 0 ( 2 ) h 1 ( 2 ) = a 0 a 1 3 a 2 3 h 1 ( 3 ) = h 1 ( 2 ) a 2 = a 1 a 2 3
Figure DE102018115991B4_0031
h 0 ( 4 ) = h 0 ( 3 ) h 1 ( 3 ) = a 0 a 1 4 a 2 6 h 1 ( 4 ) = h 1 ( 3 ) a 2 = a 1 a 2 4
Figure DE102018115991B4_0032
The output value q of the first feedback multiplier 222 assumes the value h 0 (z) after time z. For better understanding, the values resulting from times z = 0 to z = 4 are explicitly stated here: H 0 ( 0 ) = a 0 H 1 ( 0 ) = a 1
Figure DE102018115991B4_0028
H 0 ( 1 ) = H 0 ( 0 ) H 1 ( 0 ) = a 0 a 1 H 1 ( 1 ) = H 1 ( 0 ) a 2 = a 1 a 2
Figure DE102018115991B4_0029
H 0 ( 2 ) = H 0 ( 1 ) H 1 ( 1 ) = a 0 a 1 2 a 2 3 H 1 ( 2 ) = H 1 ( 1 ) a 2 = a 1 a 2 2
Figure DE102018115991B4_0030
H 0 ( 3 ) = H 0 ( 2 ) H 1 ( 2 ) = a 0 a 1 3 a 2 3 H 1 ( 3 ) = H 1 ( 2 ) a 2 = a 1 a 2 3
Figure DE102018115991B4_0031
H 0 ( 4 ) = H 0 ( 3 ) H 1 ( 3 ) = a 0 a 1 4 a 2 6 H 1 ( 4 ) = H 1 ( 3 ) a 2 = a 1 a 2 4
Figure DE102018115991B4_0032

Allgemein gesprochen lässt sich der Wert von h0(z) ausdrücken, indem im ersten Schritt der Gleichung (4.2) für das einfache rückgekoppelte Multiplizierwerk der Wert a1, der das dort am Eingang d anliegende Signal repräsentiert, für alle vorangegangenen Zeitschritte i ersetzt wird durch den jeweiligen Ausgangswert q des vorgeschalteten rückgekoppelten Multiplizierwerkes 221. Dadurch ergibt sich die folgende Iterationsformel, die nachfolgend weiter zu einer Polynomexponentialfunktion umgeformt werden kann: h 0 ( z ) = a 0 i = 1 z ( a 1 j = 1 i 1 a 2 ) = e ln ( a 0 i = 1 z ( a 1 j = 1 i 1 a 2 ) ) = e ln  a 0 b 0 + ln a 1 b 1 i = 1 z 1 + ln a 2 b 2 i = 1 z j = 1 i = 1 1 = e b 0 c 0 + ( b 1 1 2 b 2 ) c 1 z + 1 2 b 2 c 2 z 2 = e c 0 + c 1 z + c 2 z 2 .

Figure DE102018115991B4_0033
Generally speaking, the value of h 0 (z) can be expressed by replacing the value a 1 , which represents the signal present at input d, for all previous time steps i in the first step of equation (4.2) for the simple feedback multiplier by the respective output value q of the upstream feedback multiplier 221. This results in the following iteration formula, which can subsequently be further transformed into a polynomial exponential function: H 0 ( e.g ) = a 0 i = 1 e.g ( a 1 j = 1 i 1 a 2 ) = e ln ( a 0 i = 1 e.g ( a 1 j = 1 i 1 a 2 ) ) = e ln a 0 b 0 + ln a 1 b 1 i = 1 e.g 1 + ln a 2 b 2 i = 1 e.g j = 1 i = 1 1 = e b 0 c 0 + ( b 1 1 2 b 2 ) c 1 e.g + 1 2 b 2 c 2 e.g 2 = e c 0 + c 1 e.g + c 2 e.g 2 .
Figure DE102018115991B4_0033

Zum besseren Verständnis und zur vereinfachten Notation wurden hier eine Substitution mit Werten b0, b1 und b2 und c0, c1 und c2 vorgenommen. Es zeigt sich, dass durch das Kaskadieren zweier rückgekoppelter Multiplizierwerke grundsätzlich eine Polynomexponentialfunktion zweiten Grades berechnet werden kann.For better understanding and simplified notation, a substitution with values b 0 , b 1 and b 2 and c 0 , c 1 and c 2 was made here. It turns out that by cascading two feedback multipliers, a polynomial exponential function of the second degree can basically be calculated.

Zur Berechnung der Werte a0, a1 und a2, b0, b1 und b2 aus den Koeffizienten c0, c1 und c2 aus der Polynomexponentialfunktion, werden drei Vektoren a, b und c definiert: : a = [ a 0 a 1 a 2 ] ,  b = [ b 0 b 1 b 2 ]  und c = [ c 0 c 1 c 2 ] .

Figure DE102018115991B4_0034
To calculate the values a 0 , a 1 and a 2 , b 0 , b 1 and b 2 from the coefficients c 0 , c 1 and c 2 from the polynomial exponential function, three vectors a, b and c are defined: a = [ a 0 a 1 a 2 ] , b = [ b 0 b 1 b 2 ] and c = [ c 0 c 1 c 2 ] .
Figure DE102018115991B4_0034

Die Vektoren a und b sind miteinander durch die Exponentialfunktion verbunden, wobei die Anwendung der Exponentialfunktion auf einen Vektor hier als jeweilige Anwendung der Exponentialfunktion auf die jeweiligen Elemente des Vektors verstanden wird: a = e b .

Figure DE102018115991B4_0035
The vectors a and b are connected to each other by the exponential function, whereby the application of the exponential function to a vector is understood here as the respective application of the exponential function to the respective elements of the vector: a = e b .
Figure DE102018115991B4_0035

Der Zusammenhang zwischen b und c kann aus dem zweitletzten Schritt der Gleichung (4.11) entnommen und durch eine lineare Transformation beschrieben werden, die durch eine inverse Transformationsmatrix T-1 dargestellt werden kann: c = T 1 b .

Figure DE102018115991B4_0036
The relationship between b and c can be taken from the second to last step of equation (4.11) and described by a linear transformation, which can be represented by an inverse transformation matrix T -1 : c = T 1 b .
Figure DE102018115991B4_0036

Dabei lassen sich die Werte für T-1 direkt der Gleichung (4.11) entnehmen: T 1 = [ 1 0 0 0 1 1 2 0 0 1 2 ] .

Figure DE102018115991B4_0037
The values for T -1 can be taken directly from equation (4.11): T 1 = [ 1 0 0 0 1 1 2 0 0 1 2 ] .
Figure DE102018115991B4_0037

Diese lineare Transformation wird hier deshalb als eine inverse Matrix definiert, weil in der Anwendung die Berechnung meist in umgekehrter Reihenfolge erfolgt, also b aus c berechnet wird: b = Tc .

Figure DE102018115991B4_0038
This linear transformation is defined here as an inverse matrix because in the application the calculation is usually done in the reverse order, i.e. b is calculated from c: b = Tc .
Figure DE102018115991B4_0038

Dann ergibt sich T als Inverse der inversen Transformationsmatrix: T = [ 1 0 0 0 1 1 0 0 2 ] .

Figure DE102018115991B4_0039
Then T is the inverse of the inverse transformation matrix: T = [ 1 0 0 0 1 1 0 0 2 ] .
Figure DE102018115991B4_0039

Zusammenfassend können der Vektor der Werte a für das rückgekoppelte Multiplizierwerk gemäß 14 aus dem Vektor c der Koeffizienten der Polynomexponentialfunktion mit der folgenden Formel berechnet werden: a = e Tc .

Figure DE102018115991B4_0040
In summary, the vector of values a for the feedback multiplier can be as follows 14 can be calculated from the vector c of the coefficients of the polynomial exponential function using the following formula: a = e Tc .
Figure DE102018115991B4_0040

Es lässt sich also mit einer Kaskadierung zweier rückgekoppelter Multiplizierwerke 221 und 222 und einem nachgeschalteten Multiplikator 224 gemäß 14 eine Vignettierungskorrektur mit einer fortlaufend berechneten Polynomexponentialfunktion zweiten Grades durchführen.It can therefore be done with a cascading of two feedback multipliers 221 and 222 and a downstream multiplier 224 according to 14 perform a vignetting correction with a continuously calculated polynomial exponential function of the second degree.

In der Weiterführung dieses Gedankens können auch mehr als zwei rückgekoppelte Multiplizierwerke kaskadiert werden. Das ist in 15 für n rückgekoppelte Multiplizierwerke W0, W1, W2, ..., Wn-1 mit einem nachgeschalteten Multiplikator 224 zur Korrektur von Pixelwerten 224 dargestellt. Dadurch kann jeweils eine fortlaufende Berechnung einer Polynomexponentialfunktion n-ten Grades vorgenommen werden. Die zur Berechnung erforderlichen mathematischen Schritte folgen grundsätzlich den bisher genannten Gedanken, mathematischen Gesetzen und Prinzipien, die dann entsprechend auf n rückgekoppelte Multiplizierwerke erweiterter Form angewandt werden können.Continuing this idea, more than two feedback multipliers can also be cascaded. Is in 15 for n feedback multipliers W 0 , W 1 , W 2 , ..., W n-1 with a downstream multiplier 224 for correcting pixel values 224. This allows a continuous calculation of a polynomial exponential function of the nth degree to be carried out. The mathematical steps required for the calculation basically follow the ideas, mathematical laws and principles mentioned so far, which can then be applied accordingly to n feedback multipliers of an expanded form.

Bisher erfolgte die Berechnung einer Polynomexponentialfunktion zur Korrektur einer Vignettierung mittels kaskadierten rückgekoppelten Multiplizierwerken eindimensional und eignete sich daher vor allem für die Vignettierungskorrektur von mit eindimensionalen Bildsensoren, z.B. Zeilensensoren, aufgenommenen Bildern. Zur Korrektur zweidimensionaler Bildsensoren ist es grundsätzlich vorteilhaft, auch eine zweidimensionale Polynomexponentialfunktion mittels kaskadierter rückgekoppelter Multiplizierwerke vornehmen zu können.Until now, the calculation of a polynomial exponential function to correct vignetting was carried out one-dimensionally using cascaded feedback multipliers and was therefore particularly suitable for vignetting correction of images recorded with one-dimensional image sensors, e.g. line sensors. To correct two-dimensional image sensors, it is fundamentally advantageous to also be able to carry out a two-dimensional polynomial exponential function using cascaded feedback multipliers.

16 zeigt eine zweidimensionale Verkettung eines kaskadierten rückgekoppelten Multiplizierwerkes zweiten Grades 231 mit einem vorgeschalteten kaskadierten rückgekoppelten Multiplizierwerk zweiten Grades 230. Dabei erfolgt die zweidimensionale Verkettung über eine Verbindung 225. Diese wird im Gegensatz zu der in 14 gezeigten Verkettung nicht über eine Verbindung eines Ausgangs q mit einem Eingang d vorgenommen, sondern über die Verbindung eines Ausgangs q mit einem Eingang d0 gemäß 13. Dadurch wird nicht ein kaskadiertes rückgekoppeltes Multiplizierwerk vierter Ordnung, sondern eben ein zweidimensional kaskadiertes rückgekoppeltes Multiplizierwerk zweiter Ordnung erhalten. 16 shows a two-dimensional chaining of a cascaded feedback multiplier of the second degree 231 with an upstream cascaded feedback multiplier of the second degree 230. The two-dimensional chaining takes place via a connection 225. This is in contrast to that in 14 The chaining shown is not carried out via a connection of an output q with an input d, but rather via the connection of an output q with an input d 0 according to 13 . This does not result in a fourth-order cascaded feedback multiplier, but rather a second-order two-dimensional cascaded feedback multiplier.

Diese Architektur ist grundsätzlich dafür ausgelegt, die Berechnung einer Polynomexponentialfunktion in progressiver Reihenfolge gemäß 3 an den Stellen der Pixel durchzuführen, die in einer zweidimensionalen Matrix gemäß 2 (b) angeordnet sind. In dieser progressiven Reihenfolge gemäß 3 wird iterativ eine Zeile nach der anderen und in jeder dieser Zeilen deren Pixel eine Spalte nach der anderen verarbeitet. Daher ist die Reihenfolge beispielhaft so gewählt, dass ein vertikales kaskadiertes rückgekoppeltes Multiplizierwerk 230 iterativ in vertikaler Richtung arbeitet, also in einer Zeile nach der anderen, und dass diesem ein horizontales kaskadiertes rückgekoppeltes Multiplizierwerk 231 nachgeschaltet ist, das horizontal arbeitet und dabei innerhalb der jeweiligen Zeile für deren Pixel in einer Spalte nach der anderen die Werte der zweidimensionalen Polynomexponentialfunktion berechnet, wobei diese Werte dann als Korrektur K multiplikativ 112 gemäß 10 angewandt werden.This architecture is basically designed to calculate a polynomial exponential function in progressive order 3 to perform at the locations of the pixels in a two-dimensional matrix according to 2 B) are arranged. In this progressive order according to 3 is iteratively processed one row after the other and in each of these rows the pixels one column after the other. Therefore, the order is selected, for example, such that a vertical cascaded feedback multiplier 230 works iteratively in the vertical direction, i.e. in one line after the other, and that this is followed by a horizontal cascaded feedback multiplier 231, which works horizontally and within the respective line The values of the two-dimensional polynomial exponential function are calculated for their pixels in one column after the other, these values then being used as a correction K multiplicatively 112 according to 10 be applied.

Dabei führen die beiden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 grundsätzlich verschiedene Zeitschritte aus, denn innerhalb einer Zeile werden jeweils alle Spalten durchlaufen. Daher wird zwischen vertikalen Zeitschritten für das vertikale kaskadierte rückgekoppelte Multiplizierwerk 230 und horizontalen Zeitschritten für das horizontale kaskadierte rückgekoppelte Multiplizierwerk 231 unterschieden. Es erfolgen beispielhaft so viele vertikale Zeitschritte, wie das Bild I1 Zeilen besitzt. Für jede Zeile erfolgt beispielhaft ein vertikaler Zeitschritt und innerhalb dieser Zeile erfolgen dann beispielhaft jeweils nachfolgend so viele horizontale Zeitschritte, wie das Bild I1 Spalten besitzt. So kann für jeden Pixel des Bildes I1 ein Wert der Polynomexponentialfunktion errechnet werden.The two cascaded feedback multipliers 230 and 231 basically carry out different time steps, because all columns are run through within a row. A distinction is therefore made between vertical time steps for the vertical cascaded feedback multiplier 230 and horizontal time steps for the horizontal cascaded feedback multiplier 231. For example, there are as many vertical time steps as the image I has 1 lines. For each line, for example, there is a vertical time step and within this line, for example, there are as many horizontal time steps as the image I has 1 columns. A value of the polynomial exponential function can thus be calculated for each pixel of the image I 1 .

Eine Trennung der vertikalen und horizontalen Zeitschritte kann z.B. dadurch erreicht werden, dass die entsprechenden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 jeweils an verschiedene Taktsignale angeschlossen sind, die in 16 nicht gesondert dargestellt sind. Es kann andererseits auch dadurch erreicht werden, dass zwar beide kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 an das selbe Taktsignal angeschlossen sind, aber für das jeweilige kaskadierte rückgekoppelte Multiplizierwerk zu verschiedenen Zeitschritten eine Ausführung des jeweiligen Zeitschritts durch ein Freigabesignal ermöglicht wird.A separation of the vertical and horizontal time steps can be achieved, for example, by connecting the corresponding cascaded feedback multipliers 230 and 231 to different clock signals, which are in 16 are not shown separately. On the other hand, it can also be achieved in that although both cascaded feedback multipliers 230 and 231 are connected to the same clock signal, execution of the respective time step is made possible for the respective cascaded feedback multiplier at different time steps by an enable signal.

Die beiden kaskadierten rückgekoppelten Multiplizierwerke 230 und 231 arbeiten im genannten Beispiel nicht nur zu verschiedenen Zeitschritten, sondern sie werden auch zu verschiedenen Startzeitpunkten und verschieden häufig initialisiert. Daher benötigen sie auch getrennte Initialisierungssignale, die in 16 als vertikales Zeitschrittsignal rv und als horizontales Zeitschrittsignal rh bezeichnet werden. Während beispielhaft für progressives Auslesen das vertikale Zeitschrittsignal rv zu Beginn jedes Bildes I1 im Sinne einer Initialisierung gesetzt wird, wird das horizontale Zeitschrittsignal rh zu Beginn jeder Zeile im Sinne einer Initialisierung gesetzt.In the example mentioned, the two cascaded feedback multipliers 230 and 231 not only work at different time steps, but they are also initialized at different starting times and with different frequencies. Therefore they also need separate initialization signals, which are in 16 be referred to as the vertical time step signal r v and as the horizontal time step signal r h . While, for example, for progressive readout, the vertical time step signal r v is set at the beginning of each image I 1 in the sense of an initialization, the horizontal time step signal r h is set at the beginning of each line in the sense of an initialization.

Durch einen solchen Betrieb des zweidimensional kaskadierten rückgekoppelten Multiplizierwerkes gemäß 16 wird am Ausgang q des Multiplizierwerkes Wh.o folgender Wert f für eine Wahl der Koordinaten x und y des Bildpunktes beispielhaft beginnend mit den Werten x = 0 und y = 0 für die linke obere Bildecke erhalten: f ( x , y ) = a 0.0 i = 0 y a 1.0 ( j = 0 i 1 a 2.0 ) k = 0 x a 0.1 ( i = 0 k 1 a 0.2 ) .

Figure DE102018115991B4_0041
Through such an operation of the two-dimensionally cascaded feedback multiplier according to 16 The following value f is obtained at the output q of the multiplier W ho for a choice of the coordinates x and y of the image point, for example starting with the values x = 0 and y = 0 for the upper left corner of the image: f ( x , y ) = a 0.0 i = 0 y a 1.0 ( j = 0 i 1 a 2.0 ) k = 0 x a 0.1 ( i = 0 k 1 a 0.2 ) .
Figure DE102018115991B4_0041

Entsprechend den Rechenschritten von Gleichung (4.11) und Gleichung (1.5) nach Gleichung (1.6) lässt sich Gleichung (4.19) umwandeln in folgende Berechnungsformel: f ( x , y ) = e c 0.0 + c 0.1 x + c 0.2 x 2 + c 1.0 y + c 2.0 y 2 .

Figure DE102018115991B4_0042
According to the calculation steps of equation (4.11) and equation (1.5) according to equation (1.6), equation (4.19) can be converted into the following calculation formula: f ( x , y ) = e c 0.0 + c 0.1 x + c 0.2 x 2 + c 1.0 y + c 2.0 y 2 .
Figure DE102018115991B4_0042

Dabei ergibt sich analog zu Gleichung (4.18) wiederum ein Vektor der Werte a aus den Koeffizienten c durch elementweise Anwendung der Exponentialfunktion auf die Elemente eines Vektors b, welcher ich durch Anwendung einer geeigneten Transformation T auf einen Vektor aus Koeffizienten c ergibt: a = e Tc .

Figure DE102018115991B4_0043
Analogous to equation (4.18), a vector of the values a is obtained from the coefficients c by applying the exponential function element by element to the elements of a vector b, which I obtain by applying a suitable transformation T to a vector of coefficients c: a = e Tc .
Figure DE102018115991B4_0043

Beispielhaft können die Vektoren a und c folgendermaßen gewählt werden: a = [ a 0.0 a 0.1 a 0.2 a 1.0 a 2.0 ] ,  und c = [ c 0.0 c 0.1 c 0.2 c 1.0 c 2.0 ]

Figure DE102018115991B4_0044
As an example, the vectors a and c can be chosen as follows: a = [ a 0.0 a 0.1 a 0.2 a 1.0 a 2.0 ] , and c = [ c 0.0 c 0.1 c 0.2 c 1.0 c 2.0 ]
Figure DE102018115991B4_0044

Dann nimmt die Transformation beispielhaft und in Anlehnung an Gleichung (4.17) folgende Form an: T = [ 1 0 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 0 1 1 0 0 0 0 2 ] .

Figure DE102018115991B4_0045
Then the transformation takes the following form as an example and based on equation (4.17): T = [ 1 0 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 0 1 1 0 0 0 0 2 ] .
Figure DE102018115991B4_0045

5. Farbe5. Color

Das zu korrigierende Bild kann einfarbig, also monochrom sein oder es kann sich um ein Farbbild handeln, welches z.B. als Bild eines Mosaikfilters (wie beschrieben) oder z.B. als interpoliertes Farbbild gemäß EP 2 929 503 B1 mit einem Farbvektor pro Bildpunkt vorliegen kann. Im Falle des Mosaikfilters ist der Wert jedes Pixels jeweils einem Farbkanal zugeordnet. Im Falle eines Farbvektors kann der Pixel auch mehrere Werte besitzen, die dann z.B. als Elemente des Farbvektors die Farbe des Pixels angeben.The image to be corrected can be monochrome, i.e. monochrome, or it can be a color image, for example as an image of a mosaic filter (as described) or, for example, as an interpolated color image according to EP 2 929 503 B1 with one color vector per pixel. In the case of the mosaic filter, the value of each pixel is assigned to a color channel. In the case of a color vector, the pixel can also have several values, which then, for example, indicate the color of the pixel as elements of the color vector.

Bei der Beschreibung der Vignettierung von Farbbildern stellt sich das grundsätzliche Problem, dass möglicherweise durch Effekte wie z.B. die Farbigkeit der Lichtquelle oder die ungleiche Lichtempfindlichkeit der verschiedenen Farbkanäle dazu führen, dass die Farbkanäle im Vergleich zueinander verschiedene Helligkeiten aufweisen. Diese Helligkeitsabweichung führt grundsätzlich zu Schwierigkeiten bei der Beschreibung mit einem mathematischen Modell.When describing the vignetting of color images, the fundamental problem arises that effects such as the color of the light source or the unequal light sensitivity of the different color channels may lead to the color channels having different brightnesses compared to each other. This deviation in brightness generally leads to difficulties when describing it with a mathematical model.

Dies ist in 18 für das Beispiel des Bildes eines Mosaikfilters dargestellt, bei dem die Anordnung der Farben dem sogenannten Bayer-Pattern gemäß US 3, 971,065 B1 folgt. Dort findet sich in jeder Zeile eine Abfolge zweier verschiedener Farben, z.B. Rot und Grün. Weisen nun diese Farben im Bild verschiedene Werte auf, dann ergibt sich unter Annahme einer cos4-förmigen Helligkeitsverteilung die beispielhaft dargestellte Situation. Dabei folgen die Werte 130 und 131 der beiden verschiedenen Farben alternierend aufeinander und weichen merklich voneinander ab.This is in 18 shown for the example of the image of a mosaic filter, in which the arrangement of the colors follows the so-called Bayer pattern US 3,971,065 B1 follows. Each line contains a sequence of two different colors, for example red and green. If these colors in the image have different values, then assuming a cos 4 -shaped brightness distribution, the situation shown as an example results. The values 130 and 131 of the two different colors follow each other alternately and differ noticeably from each other.

An dieser Stelle wird davon ausgegangen, dass es sich bei der Helligkeitsabweichung der verschiedenen Farbkanäle grundsätzlich um einen multiplikativen Effekt handelt. Dieser multiplikative Effekt lässt sich durch das erfindungsgemäße Logarithmieren der Werte gemäß Gleichung (2.1) in einen additiven Effekt überführen, d.h. die Farbverläufe weisen danach einen grundsätzlich gleichen Verlauf auf und sind nur durch unterschiedliche Offsets im Wertebereich gegeneinander verschoben. Dies ist in 19 (a) und (b) gut zu erkennen. Hier sind jeweils alternierende logarithmierte Farbwerte 132 und 133 dargestellt, die den Farbwerten 130 und 131 aus 18 entsprechen. In 19 (a) ist zu sehen, dass die logarithmierten Farbwerte jeweils einer Farbe 130 bzw. 131 sich gut durch zwei in ihrer Form identische Kurven 134 und 135 beschreiben lassen, die in vertikaler Richtung durch einen Offset gegeneinander verschoben sind.At this point it is assumed that the brightness deviation of the different color channels is basically a multiplicative effect. This multiplicative effect can be converted into an additive effect by logarithmizing the values according to equation (2.1) according to the invention, ie the color gradients then have a fundamentally the same progression and are only shifted relative to one another by different offsets in the value range. This is in 19 (a) and (b) easy to see. Alternating logarithmic color values 132 and 133 are shown here, which correspond to color values 130 and 131 18 are equivalent to. In 19 (a) It can be seen that the logarithmic color values of a color 130 or 131 can be well described by two curves 134 and 135, which are identical in shape and which are shifted relative to one another in the vertical direction by an offset.

Eine Vignettierungskorrektur kann grundsätzlich einerseits vorgenommen werden, indem die Farbkanäle jeweils getrennt voneinander betrachtet, für jeden der Farbkanäle und die ihm zugeordneten Werte von Bildpunkten jeweils separate Korrekturparameter P ermittelt und mit jeweils einer separaten Korrektur K korrigiert werden. Dies ist in 19 (a) dargestellt. Hier werden die logarithmierten Werte einer ersten Farbe 132 durch eine erste Polynomfunktion zweiten Grades 134 beschrieben und die logarithmierten Werte einer zweiten Farbe 133 durch eine zweite Polynomfunktion zweiten Grades 135. Diese Funktionen bzw. ihre Parameter können nachfolgend für eine getrennte Korrektur der verschiedenen Farbkanäle verwendet werden. Ein solches Vorgehen ist grundsätzlich möglich, führt jedoch zu einem relativ hohen Rechenaufwand sowohl bei der Bestimmung der Parameter als auch bei der Korrektur. Nichtsdestotrotz kann es sich z.B. bei abweichenden Formen der Vignettierung verschiedener Farben als vorteilhaft erweisen, so vorzugehen.In principle, a vignetting correction can be carried out on the one hand by considering the color channels separately from one another, determining separate correction parameters P for each of the color channels and the values of pixels assigned to them and correcting them with a separate correction K. This is in 19 (a) shown. Here, the logarithmic values of a first color 132 are described by a first second-degree polynomial function 134 and the logarithmic values of a second color 133 are described by a second second-degree polynomial function 135. These functions or their parameters can subsequently be used for separate correction of the different color channels. Such a procedure is possible in principle, but leads to a relatively high computational effort both in determining the parameters and in the correction. Nevertheless, it can prove to be advantageous to proceed in this way, for example with different forms of vignetting of different colors.

Eine weitere Möglichkeit besteht darin, die logarithmierten Farbwerte kanalweise durch jeweils eine Polynomfunktion zu beschreiben, wobei sich die Polynomfunktionen für die verschiedenen Farbkanäle jeweils lediglich in ihren Offsetwerten voneinander unterscheiden und in allen anderen Koeffizienten übereinstimmen. Dann kann für die Beschreibung und für die Korrektur eines bestimmten Farbkanals jeweils der diesem Farbkanal zugehörige Offset verwendet werden. Beispielsweise lassen sich die Helligkeitsverteilungen zweier Farbkanäle mit Werten r und g, wobei die Symbole hier beispielhaft für Rot und Grün stehen, im eindimensionalen Fall auf die folgende Weise in Analogie zu Gleichung (1.2) beschreiben: g ( z ) = { e c 0. r + c 1 z + c 2 z 2 falls r e c 0. g + c 1 z + c 2 z 2 falls g .

Figure DE102018115991B4_0046
Another possibility is to describe the logarithmic color values channel by channel using a polynomial function, whereby the polynomial functions for the different color channels only differ from each other in their offset values and agree in all other coefficients. The offset associated with this color channel can then be used to describe and correct a specific color channel. For example, the brightness distributions of two color channels with values r and g, where the symbols here represent red and green, can be described in the one-dimensional case in the following way, analogous to equation (1.2): G ( e.g ) = { e c 0. r + c 1 e.g + c 2 e.g 2 if r e c 0. G + c 1 e.g + c 2 e.g 2 if g .
Figure DE102018115991B4_0046

Dabei bezeichnen r und g jeweils auch die Zugehörigkeit eines Bildpunktes bzw. eines Farbwertes zur entsprechenden Farbe. Bei der Bestimmung der Koeffizienten c ist es möglich, die verschiedenen Koeffizienten analog zu Gleichung (2.2) zu einem Vektor c zusammenzufassen und analog zu Gleichung (2.3) eine dementsprechende Matrix zu formulieren, bei der dann in jeder Zeile nur bei dem der entsprechenden Farbe zugehörenden Wert c0.r oder c0.g eine 1 steht und bei den der entsprechenden Farbe nicht zugehörenden Werten jeweils eine 0. Dann können damit auf die in Gleichung (2.5) genannte Weise die Werte des Koeffizientenvektors c bestimmt werden. Dabei wird zumeist im Rahmen einer nachfolgend durchgeführten Normierung die Situation entstehen, dass die aus den Koeffizienten c0.r und c0.g erzeugten normierten Koeffizienten ĉi.r und ĉi.g gleiche Werte annehmen. Dies führt dazu, dass die zunächst verschiedenen Polynomfunktionen für verschiedene Farbkanäle nach der Normierung identisch werden und somit durch eine einzige Polynomfunktion beschrieben werden können.r and g also denote the affiliation of an image point or a color value to the corresponding color. When determining the coefficients c, it is possible to combine the various coefficients into a vector c analogous to equation (2.2) and to formulate a corresponding matrix analogous to equation (2.3), in which then in each row only the one belonging to the corresponding color The value c 0.r or c 0.g is a 1 and the values that do not belong to the corresponding color are each a 0. Then the values of the coefficient vector c can be determined in the manner mentioned in equation (2.5). In the context of a subsequent normalization, the situation will usually arise that the standardized coefficients ĉ ir and ĉ ig generated from the coefficients c 0.r and c 0.g assume the same values. This means that the initially different polynomial functions for different color channels become identical after normalization and can therefore be described by a single polynomial function.

Auf dieser Erkenntnis beruht eine erfindungsgemäße dritte Möglichkeit, alle Farbkanäle gemeinsam zu betrachten und alle Farbwerte uneingedenk ihrer Zugehörigkeit zu einem Farbkanal zu behandeln. Dann können für die Farbkanäle gemeinsame Korrekturparameter P ermittelt und mit einer gemeinsamen Korrektur K korrigiert werden. Dies wird durch 19 (b) illustriert und bietet den Vorteil des geringsten Rechenaufwandes. Weiterhin bietet es den Vorteil, dass auf solche Weise monochrome Bilder und Farbbilder identisch behandelt werden können und auf eine kostspielige Variantenbildung zwischen monochromen und Farbkameras verzichtet werden kann. So können die in vorstehend unter Ziffer 1 und 2 genannten Vorgehensweisen ohne Änderung auf den Farbfall angewandt werden.Based on this knowledge, a third possibility according to the invention is to consider all color channels together and to treat all color values without considering their membership in a color channel. Common correction parameters P can then be determined for the color channels and corrected with a common correction K. This will be through 19 (b) illustrated and offers the advantage of the lowest computational effort. Furthermore, it offers the advantage that monochrome images and color images can be treated identically in this way and there is no need to create expensive variants between monochrome and color cameras. The procedures mentioned in points 1 and 2 above can be applied to the color case without any changes.

Dass eine solche gemeinsame Betrachtung der Farbkanäle möglich ist, wird durch ein Zusammenspiel zwischen der Logarithmierung der Eingangswerte, der im Mosaikfilter und auch im interpolierten Farbbild meist konstanten Häufigkeitsverteilung der Farben im selben räumlichen Bereich und der Methode der kleinsten Fehlerquadrate erreicht.The fact that such a joint observation of the color channels is possible is achieved through an interaction between the logarithm of the input values, the frequency distribution of the colors in the same spatial area, which is usually constant in the mosaic filter and also in the interpolated color image, and the least squares method.

Bei einer gemeinsamen Betrachtung der Fehlerquadrate werden Parameter für eine Polynomexponentialfunktion gefunden, die geeignet sind, die Form der Intensitätsverteilung und ihre räumliche Lage genau zu beschreiben, nicht jedoch deren Offset im Raum der logarithmierten Werte, der einem Faktor im linearen Raum der Werte entspricht. Bezogen auf Gleichung (1.2) bedeutet das, dass auf diesem Wege die Parameter c1 und c2 exakt ermittelt werden können, nicht jedoch der Parameter c0. Bei nachfolgender Anwendung einer Normierung gemäß Ziffer 3 stellt dies jedoch keinen Nachteil dar, weil durch die Normierung der nicht korrekt oder ungenau bestimmte Parameter c0 durch einen normierten Parameter c0 ersetzt wird. Zur Berechnung dieses normierten Parameters c0 ist keine Kenntnis des Parameters c0 erforderlich, weil z.B. gemäß Gleichung (3.1) c0 nicht in die Berechnung von ĉ0 eingeht.When the error squares are considered together, parameters for a polynomial exponential function are found that are suitable for precisely describing the shape of the intensity distribution and its spatial position, but not its offset in the space of logarithmic values, which corresponds to a factor in the linear space of values. In relation to equation (1.2), this means that the parameters c 1 and c 2 can be determined exactly in this way, but not the parameter c 0 . However, if standardization is subsequently applied in accordance with point 3, this does not represent a disadvantage because the standardization replaces the incorrectly or inaccurately determined parameter c 0 with a standardized parameter c 0 . No knowledge of the parameter c 0 is required to calculate this standardized parameter c 0 because, for example, according to equation (3.1), c 0 is not included in the calculation of ĉ 0 .

Die genannten Formeln und Zusammenhänge lassen sich unter Anwendung der genannten mathematischen Prinzipien, Zusammenhänge und Vorgehensweisen auf eine dem Fachmann verständliche Weise auf weitere Farben, z.B. Blau, um weitere Grade und/oder um eine zweite Dimension erweitern. Ebenso ist eine Erweiterung auf interpolierte Farbbilder, bei denen für jeden Pixel mehrere Farbwerte, z.B. RGB, vorliegen, möglich.The formulas and relationships mentioned can be extended to further colors, e.g. blue, by further degrees and/or by a second dimension, using the mathematical principles, relationships and procedures mentioned in a way that is understandable to those skilled in the art. An extension to interpolated color images, where there are several color values, e.g. RGB, for each pixel, is also possible.

6. Verschiebung und AOI6. Displacement and AOI

Manchmal wird im Betrieb einer elektronischen Kamera kein gesamtes Bild 120, sondern nur ein Bildausschnitt 121 benötigt, der auch englisch als „area of interest“ (AOI) oder als „region of interest“ (ROI) bezeichnet wird. Diese Situation ist in 20 dargestellt. In einem solchen Fall ist es wünschenswert, Parameter nicht für jeden wählbaren Bildausschnitt gesondert neu bestimmen zu müssen, sondern einmal für das gesamte Bild 120 bestimmte Parameter auch für die Korrektur des Bildausschnittes 121 verwenden zu können.Sometimes when operating an electronic camera, not an entire image 120 is required, but only an image section 121, which is also referred to in English as an “area of interest” (AOI) or as a “region of interest” (ROI). This situation is in 20 shown. In such a case, it is desirable not to redetermine parameters separately for each selectable image section not only to be able to use certain parameters for the entire image 120 but also to correct the image section 121.

Ohne Beschränkung der Allgemeinheit wird hier angenommen, dass ein progressives Auslesen vorliegt. Somit beginnt das Auslesen des gesamten Bildes 120 in einem Startpunkt 122, der zumeist in dessen oberer linker Ecke liegt, und das Auslesen des Bildausschnittes 121 in einem verschobenen Startpunkt 123, der zumeist wiederum in dessen oberer linker Ecke liegt. Der horizontale Verschiebungswert wird hierbei als Δx und der vertikale als Δy bezeichnet.Without loss of generality, it is assumed here that there is a progressive readout. The reading of the entire image 120 thus begins at a starting point 122, which is usually in its upper left corner, and the reading of the image section 121 begins at a shifted starting point 123, which is usually in its upper left corner. The horizontal displacement value is referred to as Δx and the vertical as Δy.

Dann kann bei Verwendung einer Polynomexponentialfunktion gemäß beispielsweise Gleichung (1.2) oder Gleichung (1.6) eine Umrechnung der Koordinaten des Bildausschnittes xa und ya in die Koordinaten des gesamten Bildes x und y erfolgen, indem die entsprechenden Verschiebungswerte zu den Koordinaten addiert werden: x = x a + Δ x ,  und y = y a + Δ y .

Figure DE102018115991B4_0047
Then, when using a polynomial exponential function according to, for example, equation (1.2) or equation (1.6), the coordinates of the image section x a and y a can be converted into the coordinates of the entire image x and y by adding the corresponding shift values to the coordinates: x = x a + Δ x , and y = y a + Δ y .
Figure DE102018115991B4_0047

Beide Gleichungen können auch auf einfache Weise nach xa und ya aufgelöst werden. Nach einer solchen Umrechnung kann die Korrektur des Bildausschnittes mit den für das gesamte Bild ermittelten Parametern unter Verwendung der errechneten Koordinaten x und y erfolgen.Both equations can also be easily solved for x a and y a . After such a conversion, the image section can be corrected with the parameters determined for the entire image using the calculated coordinates x and y.

Wird jedoch für eine Korrektur ein kaskadiertes rückgekoppeltes Multiplizierwerk gemäß Ziffer 4 verwendet, gestaltet sich die Situation etwas schwieriger. Läuft nämlich eine solches kaskadiertes rückgekoppeltes Multiplizierwerk auf dem gesamten Bild 120, so stellen sich bis zum Erreichen beispielsweise der linken oberen Ecke des Bildausschnitts 123, welche um Δx und Δy verschobene Koordinaten aufweist, in jedem der rückgekoppelten Multiplizierwerke bestimmte Werte ein. Soll hingegen in dem Startpunkt 123 begonnen werden, so müssen alle beteiligten rückgekoppelten Multiplizierwerke mit den entsprechenden Werten initialisiert werden. Dafür wird eine jeweilige Neuberechnung des Wertevektors gemäß Gleichung (4.12) benötigt.However, if a cascaded feedback multiplier according to point 4 is used for a correction, the situation becomes somewhat more difficult. If such a cascaded feedback multiplier runs on the entire image 120, certain values are set in each of the feedback multipliers until, for example, the upper left corner of the image section 123 is reached, which has coordinates shifted by Δx and Δy. However, if you want to start at starting point 123, all of the feedback multipliers involved must be initialized with the corresponding values. This requires a respective recalculation of the value vector according to equation (4.12).

Eine einfache Art, diese Neuberechnung aus einem bereits bestimmten Koeffizientenvektor c gemäß Gleichung (4.12) vorzunehmen, besteht darin, das Polynom im Argument der Polynomexponentialfunktion zu verschieben. Das zugrunde liegende mathematische Vorgehen wird aus Gründen der Einfachheit für ein eindimensionales Polynom zweiten Grades in Abhängigkeit einer allgemeinen freien Variable z erläutert. Für eine Verschiebung im Koordinatenraum um einen Verschiebungswert Δz wird im Argument aus Gleichung (1.2) z durch die Differenz z - Δz ersetzt. Es ergibt sich die folgende Gleichung, die nachfolgend weiter umgeformt werden kann: g ( z Δ z ) = e c 0 + c 1 ( z Δ z ) + c 2 ( z Δ z ) 2 = e c 0 c 1 Δ z + c 2 Δ z 2 c ˜ 0 + ( c 1 2 c 2 Δ z ) c ˜ 1 z + c 2 c ˜ 2 z 2 = e c ˜ 0 + c ˜ 1 + z + c ˜ 2 z 2 .

Figure DE102018115991B4_0048
A simple way to make this recalculation from an already determined coefficient vector c according to equation (4.12) is to shift the polynomial in the argument of the polynomial exponential function. For reasons of simplicity, the underlying mathematical procedure is explained for a one-dimensional polynomial of the second degree depending on a general free variable z. For a shift in coordinate space by a shift value Δz, z is replaced in the argument from equation (1.2) by the difference z - Δz. This results in the following equation, which can be further transformed below: G ( e.g Δ e.g ) = e c 0 + c 1 ( e.g Δ e.g ) + c 2 ( e.g Δ e.g ) 2 = e c 0 c 1 Δ e.g + c 2 Δ e.g 2 c ˜ 0 + ( c 1 2 c 2 Δ e.g ) c ˜ 1 e.g + c 2 c ˜ 2 e.g 2 = e c ˜ 0 + c ˜ 1 + e.g + c ˜ 2 e.g 2 .
Figure DE102018115991B4_0048

Es zeigt sich, dass durch Verschiebung der Polynomexponentialfunktion mit Koeffizienten c0, c1 und c2 um Δz wiederum eine Polynomexponentialfunktion mit zumeist anderen Koeffizienten c̃0, c̃1 und c̃2 entsteht. Die Koeffizienten c̃0, c̃1 und c2 werden wiederum einem Vektor c̃ zusammengefasst: c ˜ = [ c ˜ 0 c ˜ 1 c ˜ 2 ] .

Figure DE102018115991B4_0049
It turns out that by shifting the polynomial exponential function with coefficients c 0 , c 1 and c 2 by Δz, a polynomial exponential function with mostly different coefficients c̃ 0 , c̃ 1 and c̃ 2 is created. The coefficients c̃ 0 , c̃ 1 and c 2 are in turn combined into a vector c̃: c ˜ = [ c ˜ 0 c ˜ 1 c ˜ 2 ] .
Figure DE102018115991B4_0049

Dann lässt sich die Berechnung von c̃ aus c mittels eines linearen Verschiebeoperators S durchführen, der sich gemäß dem zweiten Schritt von Gleichung (6.2) in Matrixform aufschreiben lässt: S ( Δ z ) = [ 1 Δ z Δ z 2 0 1 2 Δ z 0 0 1 ] .

Figure DE102018115991B4_0050
Then the calculation of c̃ from c can be carried out using a linear shift operator S, which can be written down in matrix form according to the second step of equation (6.2): S ( Δ e.g ) = [ 1 Δ e.g Δ e.g 2 0 1 2 Δ e.g 0 0 1 ] .
Figure DE102018115991B4_0050

Folglich ergibt sich c̃ aus c durch Anwendung des Verschiebeoperators S: c ˜ = S ( Δ z ) c .

Figure DE102018115991B4_0051
Consequently, c̃ is obtained from c by applying the shift operator S: c ˜ = S ( Δ e.g ) c .
Figure DE102018115991B4_0051

Wird nun der verschobene Wertevektor c mit seiner Berechnungsformel gemäß Gleichung (6.5) in Gleichung (4.15) eingesetzt, ergibt sich die Berechnung des Wertevektors a für die um Δz verschobenen Koordinaten im eindimensionalen Fall als: a = e TSc .

Figure DE102018115991B4_0052
If the shifted value vector c with its calculation formula according to equation (6.5) is now inserted into equation (4.15), the calculation of the value vector a for the coordinates shifted by Δz in the one-dimensional case results in: a = e TSc .
Figure DE102018115991B4_0052

Unter Anwendung gleicher oder ähnlicher mathematischer Konzepte, Gesetze und Überlegungen kann der Fachmann auch Verschiebungsoperatoren für Polynomexponentialfunktionen höheren Grades oder mehrerer Dimensionen bestimmen. Als Beispiel sei die zweidimensionale Verschiebungsmatrix für einen Wertevektor c gemäß Gleichung (4.19) um einen horizontalen Verschiebungswert Δx und einen vertikalen Verschiebungswert Δy für eine zweidimensionale Polynomexponentialfunktion explizit angegeben: S ( Δ x , Δ y ) = [ 1 Δ x Δ x 2 Δ y Δ y 2 0 1 2 Δ x 0 0 0 0 1 0 0 0 0 0 1 2 Δ y 0 0 0 0 1 ]

Figure DE102018115991B4_0053
Using the same or similar mathematical concepts, laws and considerations, one skilled in the art can also determine shift operators for polynomial exponential functions of higher degree or multiple dimensions. As an example, the two-dimensional displacement matrix for a value vector c according to equation (4.19) by a horizontal displacement value Δx and a vertical displacement value Δy for a two-dimensional polynomial exponential function is given explicitly: S ( Δ x , Δ y ) = [ 1 Δ x Δ x 2 Δ y Δ y 2 0 1 2 Δ x 0 0 0 0 1 0 0 0 0 0 1 2 Δ y 0 0 0 0 1 ]
Figure DE102018115991B4_0053

Durch Anwendung einer solchen Verschiebung können auf einfache Weise und mit geringen Rechenaufwand Startwerte als Elemente des Wertevektors a ermittelt werden, mit denen ein kaskadiertes rückgekoppeltes Multiplizierwerk initialisiert werden kann, um ohne vorangehende Rechenschritte direkt mit der Berechnung von Korrekturwerten für den Bildausschnitt 121 in dessen Startpunkt 123 zu starten.By applying such a shift, starting values can be determined in a simple manner and with little computational effort as elements of the value vector a, with which a cascaded feedback multiplier can be initialized in order to directly start calculating correction values for the image section 121 in its starting point 123 without any previous calculation steps to start.

7. Spiegelung und Umkehr der Ausleserichtung7. Mirroring and reversing the reading direction

Um die erfindungsgemäße Korrektur auf einem Sensor mit einem „split readout“ (wie vorstehend beschrieben) unter Verwendung kaskadierter rückgekoppelter Multiplizierwerke anzuwenden, kann es vorteilhaft sein, mehrere kaskadierte rückgekoppelte Multiplizierwerke zu verwenden, z.B. eines für den linken Block und eines für den rechten Block. Dabei wird der rechte Block in einer gegenüber dem progressiven Auslesen des linken Blocks horizontal gespiegelten Richtung ausgelesen.In order to apply the correction according to the invention to a sensor with a "split readout" (as described above) using cascaded feedback multipliers, it may be advantageous to use several cascaded feedback multipliers, e.g. one for the left block and one for the right block. The right block is read out in a horizontally mirrored direction compared to the progressive reading of the left block.

Dies kann bei der Verwendung eines kaskadierten rückgekoppelten Multiplizierwerkes, z.B. gemäß 16 zu Schwierigkeiten führen, da dieses zunächst auf die Verwendung mit einem Block und mit progressivem Auslesen ausgelegt ist. Diesen Schwierigkeiten kann z.B. dadurch begegnet werden, dass für jeden Block, also z.B. für den linken Block und für den rechten Block, mehrere, z.B. zwei, getrennte kaskadierte rückgekoppelte Multiplizierwerke verwendet werden. Dabei kann z.B. eines in progressiv von links nach rechts auslesender Richtung arbeiten und ein weiteres z.B. in dazu horizontal gespiegelter, progressiv von rechts nach links auslesender Richtung.This can happen when using a cascaded feedback multiplier, for example according to 16 lead to difficulties as this is initially designed for use with a block and with progressive readout. These difficulties can be overcome, for example, by using several, for example two, separate cascaded feedback multipliers for each block, for example for the left block and for the right block. For example, one can work in a progressive direction from left to right and another, for example, in a horizontally mirrored direction that reads progressively from right to left.

Dabei besteht das grundsätzliche Problem, den Vektor a für das horizontal gespiegelt arbeitende, kaskadierte rückgekoppelte Multiplizierwerk zu ermitteln. Grundsätzlich lässt sich das Polynom im Argument der Polynomexponentialfunktion dadurch an der Linie mit der Koordinate x = 0 spiegeln, dass dort überall x durch -x ersetzt wird. Ein äquivalenter mathematischer Effekt kann allerdings auch durch eine Anpassung des Koeffizientenvektors c mit einem Spiegeloperator M vorgenommen werden. Dabei wird ein gespiegelter Koeffizientenvektor č erhalten: c = Mc .

Figure DE102018115991B4_0054
The fundamental problem here is to determine the vector a for the horizontally mirrored, cascaded feedback multiplier. Basically, the polynomial in the argument of the polynomial exponential function can be reflected on the line with the coordinate x = 0 by replacing x with -x everywhere. However, an equivalent mathematical effect can also be achieved by adjusting the coefficient vector c with a mirror operator M. A mirrored coefficient vector č is obtained: c = Mc .
Figure DE102018115991B4_0054

Der Spiegeloperator nimmt z.B. für eine eindimensionale Polynomexponentialfunktion zweiten Grades folgende Form an: M = [ 1 0 0 0 1 0 0 0 1 ] .

Figure DE102018115991B4_0055
For example, for a one-dimensional polynomial exponential function of the second degree, the mirror operator takes the following form: M = [ 1 0 0 0 1 0 0 0 1 ] .
Figure DE102018115991B4_0055

Nun wird in den seltensten Fällen eine Spiegelung an der Linie x = 0 benötigt, sondern zumeist an einer anderen Linie, z.B. an der Trennlinie zwischen dem linken Block und dem rechten. Dazu kann zunächst eine erste Verschiebung des Polynoms zur entsprechenden Trennlinie mit einem Verschiebungsoperator S erfolgen, dort kann die Spiegelung vorgenommen werden und nachfolgend kann eine Rückverschiebung stattfinden, die z.B. mit dem zur ersten Verschiebung S inversen Verschiebungsoperator S-1 vorgenommen werden kann oder mit einem zweiten Verschiebungsoperator mit einem gegenüber dem ersten Verschiebungsoperator negierten Argument. Die für diese Operationen verwendeten Matrizen können durch Matrizenmultiplikationen vereint werden.Now, in the rarest of cases, a reflection is required at the line x = 0, but usually at another line, for example at the dividing line between the left block and the right one. For this purpose, a first shift of the polynomial to the corresponding dividing line can take place with a shift operator S, the mirroring can be carried out there and subsequently a backward shift can take place, which can be carried out, for example, with the shift operator S -1, which is inverse to the first shift S, or with a second one Shift operator with an argument negated from the first shift operator. The matrices used for these operations can be unified using matrix multiplications.

8. Vektorisierung und Parallelisierung8. Vectorization and parallelization

Die vorstehend unter Ziffer 4 vorgeschlagene Art, eine Polynomexponentialfunktion iterativ zu berechnen, arbeitet grundsätzlich seriell. Dabei wird für die Korrektur jedes Pixels jeweils ein Zeitschritt benötigt.The way of iteratively calculating a polynomial exponential function suggested under point 4 basically works serially. One time step is required to correct each pixel.

Diese Situation wird in 21 versinnbildlicht. Dabei werden aufeinanderfolgende Pixel 300, 301, 302 und 303 in aufeinanderfolgenden Zeitschritten korrigiert, indem in einem ersten Zeitschritt 304 aus dem Korrekturwert für Pixel 300 ein Korrekturwert für Pixel 301 errechnet wird, in einem zweiten Zeitschritt 305 aus dem Korrekturwert für Pixel 301 ein Korrekturwert für Pixel 302 und in einem dritten Zeitschritt 306 aus dem Korrekturwert für Pixel 302 ein Korrekturwert für Pixel 303.This situation will be in 21 symbolized. Successive pixels 300, 301, 302 and 303 are corrected in successive time steps by calculating a correction value for pixel 301 from the correction value for pixel 300 in a first time step 304, and a correction value for pixel 301 from the correction value for pixel 301 in a second time step 305 Pixel 302 and in a third time step 306 from the correction value for pixel 302 a correction value for pixel 303.

Manchmal kann es erforderlich sein, an Stelle der seriellen Berechnung eine teilweise parallelisierte Berechnung vorzunehmen. Dadurch kann beispielsweise eine höhere Bandbreite für die Korrektur erreicht werden, indem mehr Pixel pro Zeiteinheit korrigiert werden.Sometimes it may be necessary to perform a partially parallel calculation instead of the serial calculation. This makes it possible, for example, to achieve a higher correction bandwidth by correcting more pixels per unit of time.

Das kann z.B. dadurch erfolgen, dass mehrere kaskadierte rückgekoppelte Multiplizierwerke gleichzeitig arbeiten. Diese Arbeitsweise wird als parallel bezeichnet und ist in 22 dargestellt. Hierbei werden die Pixel 310 bis 321 alternierend in vier Kanäle gruppiert. Im gezeigten Beispiel bilden die Pixel 310, 314 und 318 einen ersten Kanal, die Pixel 311, 315 und 319 einen zweiten, die Pixel 312, 316 und 320 einen dritten, und die Pixel 313, 317 und 321 einen vierten. Während eines ersten Zeitschrittes erfolgen die Berechnung 322 des Korrekturwertes des Pixels 314 aus dem Korrekturwert des Pixels 310, die Berechnung 323 des Korrekturwertes des Pixels 315 aus dem Korrekturwert des Pixels 311, die Berechnung 324 des Korrekturwertes des Pixels 316 aus dem Korrekturwert des Pixels 312 und die Berechnung 325 des Korrekturwertes des Pixels 317 aus dem Korrekturwert des Pixels 313 gleichzeitig. Während eines zweiten Zeitschrittes erfolgen darauf aufbauend die Berechnung 326 des Korrekturwertes des Pixels 318 aus dem Korrekturwert des Pixels 314, die Berechnung 327 des Korrekturwertes des Pixels 319 aus dem Korrekturwert des Pixels 315, die Berechnung 328 des Korrekturwertes des Pixels 320 aus dem Korrekturwert des Pixels 316 und die Berechnung 329 des Korrekturwertes des Pixels 321 aus dem Korrekturwert des Pixels 317 gleichzeitig. Das wird erreicht, indem vier parallele kaskadierte rückgekoppelte Multiplizierwerke Berechnungen in Zeitschritten jeweils gleichzeitig ausführen, wobei jedes kaskadierte rückgekoppelte Multiplizierwerk auf jeweils einem Kanal arbeitet und die Pixel in alternierender Reihenfolge den Kanälen zugewiesen sind. Grundsätzlich arbeiten hierbei die parallelen kaskadierten rückgekoppelten Multiplizierwerke unabhängig voneinander. Dies kann den Nachteil haben, dass sich dabei Berechnungsfehler, z.B. Rundungsfehler, in verschiedenen Kanälen auf unterschiedliche Weise akkumulieren können, was zu sichtbaren Unterschieden in Pixeln verschiedener Kanäle und so zu unerwünschten sichtbaren Streifen im Ergebnisbild führen kann.This can be done, for example, by having several cascaded feedback multipliers working at the same time. This way of working is called parallel and is in 22 shown. Here, pixels 310 to 321 are alternately grouped into four channels. In the example shown, pixels 310, 314 and 318 form a first channel, pixels 311, 315 and 319 form a second channel, pixels 312, 316 and 320 form a third, and pixels 313, 317 and 321 a fourth. During a first time step, the calculation 322 of the correction value of the pixel 314 from the correction value of the pixel 310, the calculation 323 of the correction value of the pixel 315 from the correction value of the pixel 311, the calculation 324 of the correction value of the pixel 316 from the correction value of the pixel 312 and the calculation 325 of the correction value of the pixel 317 from the correction value of the pixel 313 simultaneously. During a second time step, based on this, the calculation 326 of the correction value of the pixel 318 takes place from the correction value of the pixel 314, the calculation 327 of the correction value of the pixel 319 from the correction value of the pixel 315, the calculation 328 of the correction value of the pixel 320 from the correction value of the pixel 316 and the calculation 329 of the correction value of the pixel 321 from the correction value of the pixel 317 simultaneously. This is achieved by four parallel cascaded feedback multipliers executing calculations in time steps simultaneously, with each cascaded feedback multiplier operating on one channel each and the pixels being assigned to the channels in alternating order. Basically, the parallel cascaded feedback multipliers work independently of each other. This can have the disadvantage that calculation errors, for example rounding errors, can accumulate in different ways in different channels, which can lead to visible differences in pixels of different channels and thus to undesirable visible stripes in the resulting image.

Eine erfindungsgemäße Möglichkeit, dies zu vermeiden, besteht bei Verwendung mehrerer paralleler kaskadierter rückgekoppelter Multiplizierwerke darin, diese Berechnungsschritte so ausführen zu lassen, dass in einem von mehreren parallelen kaskadierten rückgekoppelten Multiplizierwerken durchgeführten Berechnungsschritt den Berechnungen der einzelnen rückgekoppelten Multiplizierwerke jeweils gemeinsam derselbe Wert eines vorbestimmten Kanals zugrunde gelegt wird.One way according to the invention to avoid this is, when using several parallel cascaded feedback multipliers, to have these calculation steps carried out in such a way that in a calculation step carried out by several parallel cascaded feedback multipliers, the calculations of the individual feedback multipliers are based on the same value of a predetermined channel is placed.

Dies ist in 23 dargestellt, in der für die Pixel dieselben Bezugszeichen verwendet werden wir in 22 und in der sie denselben Kanälen zugeordnet sind. Hier erfolgen die Berechnungen für Korrekturwerte der Pixel 314, 315, 316 und 317 gleichzeitig parallel in Berechnungsschritten 330, 331, 332 und 333 auf Grundlage des Korrekturwertes des jeweils selben Pixels 310 und es erfolgen die Berechnungen für Korrekturwerte der Pixel 318, 319, 320 und 321 gleichzeitig parallel in Berechnungsschritten 334, 335, 336 und 337 auf Grundlage des Korrekturwertes des jeweils selben Pixels 314.This is in 23 shown in which the same reference numbers are used for the pixels 22 and in which they are assigned to the same channels. Here, the calculations for correction values of pixels 314, 315, 316 and 317 are carried out simultaneously in parallel in calculation steps 330, 331, 332 and 333 based on the correction value of the same pixel 310 and the calculations for correction values of pixels 318, 319, 320 and 321 simultaneously in parallel in calculation steps 334, 335, 336 and 337 based on the correction value of the same pixel 314.

9. Zonierung9. Zoning

Es ist grundsätzlich möglich, die vorgeschlagene Korrektur auf dem gesamten Bild in gleicher Weise anzuwenden. Zur Erzielung einer höheren Genauigkeit für die Korrektur kann es aber auch vorteilhaft sein, mehrere Zonen im Bild zu definieren. Dies kann z.B. durch die Definition von radialen Zonen oder eine Einteilung des Bildes in rechteckige Bereiche vorgenommen werden, wie in 8 (b) oder (c) vorgeschlagen. Zur Erzielung noch höherer Genauigkeiten ist es erfindungsgemäß möglich, die Zahl der Zonen weiter zu erhöhen. Dabei ist es grundsätzlich möglich, die Zonen auf einen Mittelpunkt zu beziehen, z.B. auf einen geometrischen Mittelpunkt 71 oder einen optischen Mittelpunkt 72 gemäß 8 (a).In principle, it is possible to apply the proposed correction to the entire image in the same way. To achieve greater accuracy for the correction, it can also be advantageous to define several zones in the image. This can be done, for example, by defining radial zones or dividing the image into rectangular areas, as in 8(b) or (c) proposed. In order to achieve even higher precision, it is possible according to the invention to further increase the number of zones. In principle, it is possible to relate the zones to a center, for example to a geometric center 71 or an optical center 72 according to 8 (a) .

Praktische Beobachtungen zeigen, dass die Randabschattung realer Objektive die Annahme der Radialsymmetrie manchmal nicht vollständig erfüllt. In solchen Fällen können bessere Ergebnisse erzielt werden, wenn Zonen nicht nur in radialer Richtung, sondern auch in Umfangsrichtung unterteilt werden, wie z.B. in 24 (a) dargestellt. Hier besteht in Umfangsrichtung eine Unterteilung in 8 Zonen pro radialer Unterteilung. Dabei können Zonen auch zusammengefasst werden, wie z.B. in 24 (b) dargestellt. Da Randabschattungseffekte vor allem in Randbereichen auftreten können, kann der Berechnungsaufwand gesenkt werden, indem z.B. im Zentralbereich mehrere Zonen zusammengefasst werden. Im gezeigten Beispiel entsteht dadurch im Zentralbereich eine runde Zone.Practical observations show that the edge shading of real lenses sometimes does not fully satisfy the assumption of radial symmetry. In such cases, better results can be achieved if zones are divided not only in the radial direction but also in the circumferential direction, such as in 24 (a) shown. Here there is a subdivision in the circumferential direction into 8 zones per radial subdivision. Zones can also be combined, such as in 24 (b) shown. Since edge shading effects can occur primarily in peripheral areas, the calculation effort can be reduced by, for example, combining several zones in the central area. In the example shown, this creates a round zone in the central area.

Weiterhin lässt sich der Berechnungsaufwand für die Einteilung in Zonen verringern, oder hardwarefreundlicher gestalten, wenn die Trennlinien zwischen den Zonen gradlinig ausgeführt werden. Dann ergeben sich Zonen in Form von Polygonen, wie sie z.B. in 24 (c) bis (e) dargestellt sind.Furthermore, the calculation effort for the division into zones can be reduced or made more hardware-friendly if the dividing lines between the zones are made straight. This then results in zones in the form of polygons, such as those shown in Figures 24 (c) to (e).

Schließlich ist es auch möglich, Zonen so zu definieren, dass kein Bezug zu einem Mittelpunkt vorliegt. Dies erleichtert die Berechnung, weil dann die Notwendigkeit der Bestimmung eines Mittelpunkts entfällt. Eine solche Einteilung kann beispielsweise vorgenommen werden wie in 8 (c) dargestellt. 24 (f) zeigt eine Alternative, bei der jedes Polygon mit weniger Nachbarpolygonen verbunden ist, wodurch weniger Freiheitsgrade bei der Festlegung der Koeffizienten für die Polynomexponentialfunktionen verbraucht werden. Grundsätzlich sind noch zahlreiche andere Möglichkeiten denkbar, eine Fläche in gleichmäßige oder ungleichmäßige Polygone aufzuteilen.Finally, it is also possible to define zones in such a way that there is no reference to a center point. This makes the calculation easier because it eliminates the need to determine a center point. Such a classification can be made, for example, as in 8(c) shown. 24 (f) shows an alternative in which each polygon is connected to fewer neighboring polygons, thereby consuming fewer degrees of freedom in determining the coefficients for the polynomial exponential functions. In principle, there are numerous other possible ways to divide an area into uniform or uneven polygons.

Dabei wird innerhalb jeder Zone die Korrektur mit einer Polynomexponentialfunktion vorgenommen, wobei sich die Parameter der Polynomexponentialfunktionen in verschiedenen Zonen voneinander unterscheiden können. Die verschiedenen, auf unterschiedlichen Zonen definierten Polynomexponentialfunktionen, bilden gemeinsam dann eine Korrekturfunktion.Within each zone, the correction is made with a polynomial exponential function, whereby the parameters of the polynomial expo nential functions in different zones can be distinguished from one another. The various polynomial exponential functions defined on different zones then together form a correction function.

Um sichtbare Artefakte beim Übergang von einer Zone zur nächsten zu vermeiden, ist es wichtig, dass bei aneinander angrenzenden Zonen die auf diesen Zonen definierten Polynomexponentialfunktionen bei der Bildung der Korrekturfunktion stetig ineinander übergehen. Dies kann dadurch gewährleistet werden, dass die Polynomexponentialfunktionen zweier angrenzender Zonen jeweils an derselben Stelle den selben Wert annehmen. Da auch Änderungen in Helligkeitsgradienten gut sichtbar sein können, werden sichtbare Artefakte weiterhin dadurch vermieden, dass bei aneinander angrenzenden Zonen die auf diesen Zonen definierten Polynomexponentialfunktionen bei der Bildung der Korrekturfunktion stetig differenzierbar ineinander übergehen. Dies kann dadurch erreicht werden, dass die Polynomexponentialfunktionen zweier angrenzender Zonen jeweils an derselben Stelle dieselbe Ableitung annehmen, indem sie z.B. denselben Gradientenvektor aufweisen.In order to avoid visible artifacts when moving from one zone to the next, it is important that in adjacent zones the polynomial exponential functions defined on these zones continuously merge into one another when forming the correction function. This can be ensured by ensuring that the polynomial exponential functions of two adjacent zones each assume the same value at the same point. Since changes in brightness gradients can also be clearly visible, visible artifacts are further avoided by the fact that, in adjacent zones, the polynomial exponential functions defined on these zones merge into one another in a continuously differentiable manner when forming the correction function. This can be achieved by the polynomial exponential functions of two adjacent zones each assuming the same derivative at the same point, for example by having the same gradient vector.

Diese Bedingungen können bei einer gemeinsamen Bestimmung von Koeffizienten, z.B. nach der Methode der kleinsten Quadrate und auf logarithmierten Bildwerten, erfüllt werden, indem sie mathematisch als Nebenbedingungen formuliert werden. Die anschließende Berechnung einer Lösung mit kleinstem quadratischen Fehler kann unter Anwendung einer sogenannten „constrained least squares“-Methode bestimmt werden.These conditions can be met when determining coefficients together, e.g. using the least squares method and on logarithmic image values, by formulating them mathematically as secondary conditions. The subsequent calculation of a solution with least square error can be determined using a so-called “constrained least squares” method.

10. Alternative Ausführungsformen10. Alternative Embodiments

In der vorliegenden Beschreibung wurden mehrere beispielhafte Berechnungsmöglichkeiten für den Wertevektor a und für die Werte, die seine Elemente bilden, genannt, z.B. in Ziffer 1 die Negation mit dem Negationsoperator N, in Ziffer 3 die Normierung mit dem Normierungsoperator F, in Ziffer 4 die Transformation mit dem Transformationsoperator T, in Ziffer 6 die Verschiebung mit dem Verschiebungsoperator S und in Ziffer 8 die Spiegelung mit dem Spiegelungsoperator M. Diese Operatoren können zur Berechnung des Wertevektors a je nach Bedarf miteinander kombiniert werden, z.B. in folgender Form: a = e TSNFc .

Figure DE102018115991B4_0056
In the present description, several exemplary calculation options for the value vector a and for the values that form its elements were mentioned, e.g. in number 1 the negation with the negation operator N, in number 3 the normalization with the normalization operator F, in number 4 the transformation with the transformation operator T, in number 6 the shift with the shift operator S and in number 8 the reflection with the reflection operator M. These operators can be combined with one another as required to calculate the value vector a, for example in the following form: a = e TSNFc .
Figure DE102018115991B4_0056

Darüber hinaus ist es auch möglich, die Reihenfolgen der Operatoren zu tauschen, sofern sie im Einzelfall kommutieren. So gilt z.B.: a = e TSNFc = e TSFNc .

Figure DE102018115991B4_0057
In addition, it is also possible to swap the orders of the operators if they commute in individual cases. For example: a = e TSNFc = e TSFNC .
Figure DE102018115991B4_0057

Weiterhin können mehrere Operatoren auch zu gemeinsamen Operatoren zusammengefasst werden. Sofern es sich bei den Operatoren um lineare Operatoren in Matrixschreibweise handelt, kann dies durch Anwendung der Matrizenmultiplikation auf die mehreren Operatoren durchgeführt werden. So kann man z.B. eine Matrix A definieren mit: A = TSN .

Figure DE102018115991B4_0058
Furthermore, several operators can also be combined to form common operators. If the operators are linear operators in matrix notation, this can be done by applying matrix multiplication to the multiple operators. For example, you can define a matrix A with: A = TSN .
Figure DE102018115991B4_0058

Dann lässt sich Gleichung (10.1) umschreiben zu: a = e AFc .

Figure DE102018115991B4_0059
Then equation (10.1) can be rewritten as: a = e AFc .
Figure DE102018115991B4_0059

Unter Anwendung ähnlicher mathematischer Ideen und Vorgehensweisen können auch zahlreiche weitere äquivalente Darstellungsformen der Berechnung von Parametern erzielt werden.Using similar mathematical ideas and procedures, numerous other equivalent representations of the calculation of parameters can also be achieved.

In Ziffer 4 wurde eine Berechnung in digitaler Hardware geschildert. Es ist ebenso auch möglich, die angegebenen Operationen auch teilweise oder vollständig in Analogelektronik auszuführen und z.B. digitale Multiplizierer durch Analogmultiplizierer zu ersetzen. In der Analogelektronik sind auch weitere Vereinfachungen möglich. Z.B. lässt sich die Wirkungsweise eines rückgekoppelten Multiplizierwerkes 221, dessen Eingänge jeweils mit konstanten Werten beschaltet sind und dessen mathematische Wirkungsweise in Gleichung (4.2) beschrieben ist, auch unter Verwendung eines sogenannten RC-Gliedes erzielen, dessen Spannung ebenfalls im Laufe von linear aufeinanderfolgenden Zeitschritten exponentiell abfällt.A calculation in digital hardware was described in point 4. It is also possible to carry out the specified operations partially or completely in analog electronics and, for example, to replace digital multipliers with analog multipliers. Further simplifications are also possible in analog electronics. For example, the operation of a feedback multiplier 221, whose inputs are each connected to constant values and whose mathematical operation is described in equation (4.2), can also be achieved using a so-called RC element, the voltage of which also increases exponentially over the course of linearly successive time steps falls off.

Weiterhin lassen sich alle für die Berechnung in digitaler Hardware dargelegten Berechnungsschritte grundsätzlich auch in Software durchführen. Die Rückkopplung kann dabei programmiertechnisch z.B. in Form einer Schleife programmiert werden, die dann bei jedem Schleifendurchlauf die Berechnung für einen Zeitschritt durchführt.Furthermore, all calculation steps outlined for the calculation in digital hardware can in principle also be carried out in software. The feedback can be programmed, for example in the form of a loop, which then carries out the calculation for a time step with each loop run.

Weiterhin kann die Berechnung von Korrekturwerten oder die Korrektur von Pixeln auch in anderer Reihenfolge vorgenommen werden. Beispielsweise ist es auch möglich, die Korrektur Spalte für Spalte und innerhalb jeder Spalte dann für die Pixel dieser Spalte zeilenweise vorzunehmen. Dazu können jeweils die Koeffizienten bzw. Initialisierungswerte entsprechend ausgetauscht oder angepasst werden.Furthermore, the calculation of correction values or the correction of pixels can also be carried out in a different order. For example, it is also possible to carry out the correction column by column and then within each column for the pixels of this column line by line. For this purpose, the coefficients or initialization values can be exchanged or adjusted accordingly.

Außerdem ist es auch möglich, für Korrekturwerte eine Vorberechnung vorzunehmen und die Korrekturwerte bis zur Anwendung der Korrektur zu speichern. Die Vorberechnung kann beispielsweise zur Einrichtungszeit oder auch zu einem anderen, der Laufzeit vorgelagerten Zeitpunkt vorgenommen werden. Dabei können Korrekturwerte für jeden einzelnen Pixel oder für Gruppen von Pixeln einer Speicherung unterzogen werden. Das ermöglicht, sie während der Laufzeit abzurufen und ohne die Notwendigkeit ihrer Berechnung zur Laufzeit anzuwenden. Dadurch können in Hardware Logikressourcen eingespart werden.It is also possible to carry out a preliminary calculation for correction values and to save the correction values until the correction is applied. The pre-calculation can be carried out, for example, at the setup time or at another time before the runtime become. Correction values can be saved for each individual pixel or for groups of pixels. This allows them to be retrieved at runtime and applied without the need to calculate them at runtime. This allows logic resources to be saved in hardware.

Es kann auch eine Speicherung von horizontalen Korrekturwerten g(x) und von vertikalen Korrekturwerten g(y) vorgenommen werden. Zur Laufzeit kann dann eine Multiplikation von horizontalen und vertikalen Korrekturwerten gemäß Gleichung (1.5) vorgenommen werden. Auch hierdurch wird eine zweidimensionale Polynomexponentialfunktion g(x, y) erhalten, die zur Vignettierungskorrektur verwendet werden kann. Der hierbei zur Laufzeit auftretende Berechnungsaufwand von g(x,y) besteht aus nur einer Multiplikation, die z.B. durch einen Multiplizierer vorgenommen werden kann, und ist gering. Gleichzeitig wird für ein solches Vorgehen sehr viel weniger Speicherplatz zur Speicherung von Korrekturwerten benötigt, als bei einer pixelweisen Speicherung. Dies ist insofern von Bedeutung, als dass in zahlreichen Schaltkreisen, die als Bildverarbeitungsmittel 13 verwendet werden können, z.B. in einem FPGA, in einem MCU oder in einem DSP, nur relativ wenig Speicher zur Verfügung steht und dass auch generell statischer Speicher, der einen schnellen Zugriff ermöglicht, viel teure Chipfläche benötigt.Horizontal correction values g(x) and vertical correction values g(y) can also be stored. A multiplication of horizontal and vertical correction values can then be carried out at runtime according to equation (1.5). This also results in a two-dimensional polynomial exponential function g(x, y), which can be used for vignetting correction. The calculation effort of g(x,y) that occurs at runtime consists of just one multiplication, which can be carried out by a multiplier, for example, and is low. At the same time, such a procedure requires much less storage space to store correction values than with pixel-by-pixel storage. This is important because in numerous circuits that can be used as image processing means 13, for example in an FPGA, in an MCU or in a DSP, only relatively little memory is available and that generally static memory, which has a fast Access allows, requires a lot of expensive chip space.

Schließlich ist es natürlich auch möglich, Teile der Korrekturwerte vor der Laufzeit zu speichern und Teile der Korrekturwerte zur Laufzeit zu berechnen. So können z.B. vertikale Korrekturwerte gespeichert und als Initialisierungswerte für ein horizontales kaskadiertes rückgekoppeltes Multiplizierwerk verwendet werden. Hierdurch können die zuvor genannten Vorteile entsprechend kombiniert werden.Finally, it is of course also possible to save parts of the correction values before runtime and to calculate parts of the correction values during runtime. For example, vertical correction values can be saved and used as initialization values for a horizontal cascaded feedback multiplier. This allows the aforementioned advantages to be combined accordingly.

11. Bestimmung des Mittelpunktes11. Determination of the center point

Einige der vorgenannten Verfahren benötigen eine Bestimmung eines optischen Mittelpunktes. Dieser kann aufgrund der meist hinreichend gut zutreffenden Annahme ermittelt werden, dass eine Vignettierung radialsymmetrisch auftritt.Some of the aforementioned methods require the determination of an optical center. This can be determined based on the usually sufficiently accurate assumption that vignetting occurs radially symmetrically.

Gemäß 25 kann zur Bestimmung des optischen Mittelpunktes erfindungsgemäß von Bilddaten 500 eines Ausgangsbildes ausgegangen werden, das bei homogener Beleuchtung aufgenommen wurde, z.B. indem eine weiße oder graue Referenztafel oder eine weiße Fläche aufgenommen wurde. Die Bilddaten können je nach Bedarf unbearbeitet sein, sie können korrigiert sein, z.B. hinsichtlich Helligkeit oder Farbe oder anderer Effekte, die in einer elektronischen Kamera auftreten, sie können aber auch logarithmiert sein im Sinne von Ziffer 2 oder reziprok im Sinne von 6.According to 25 According to the invention, to determine the optical center, one can start from image data 500 of an initial image that was recorded under homogeneous illumination, for example by recording a white or gray reference board or a white surface. The image data can be unprocessed as required, they can be corrected, for example with regard to brightness or color or other effects that occur in an electronic camera, but they can also be logarithmized in the sense of number 2 or reciprocal in the sense of 6 .

Dieses Bild wird nun entweder zur Bestimmung der vertikalen Koordinate yc des optischen Mittelpunktes einer horizontalen Mittelung 501 oder zur Bestimmung der horizontalen Koordinate xc des optischen Mittelpunktes einer vertikalen Mittelung 502 unterzogen. Dabei wird bei einer horizontalen Mittelung ein Mittelwert oder ein Vielfaches des Mittelwertes der Pixelwerte jeder Zeile berechnet und bei einer vertikalen Mittelung ein Mittelwert oder ein Vielfaches der Pixelwerte jeder Zeile. Diese Mittelung liefert einen Datenvektor 503. Wie z.B. in 26 zu sehen ist, hat diese Mittelung den Vorteil, dass sie auch bei einer Helligkeitsverteilung 520, die stark von einer Parabelform abweichen, aufgrund der Radialsymmetrie dieser Verteilungen zumeist ein Ergebnis der Mittelung 521 liefert, dessen Form einer Parabel bereits sehr viel näherkommt, was die nachfolgende Bestimmung einer Koordinate des optischen Mittelpunktes deutlich erleichtert.This image is now subjected either to horizontal averaging 501 to determine the vertical coordinate y c of the optical center or to vertical averaging 502 to determine the horizontal coordinate x c of the optical center. With horizontal averaging, an average or a multiple of the average of the pixel values of each line is calculated and with vertical averaging, an average or a multiple of the pixel values of each line is calculated. This averaging provides a data vector 503. As in, for example 26 As can be seen, this averaging has the advantage that even with a brightness distribution 520 that deviates greatly from a parabolic shape, due to the radial symmetry of these distributions, it usually delivers a result of the averaging 521 whose shape is already much closer to a parabola, which is the following Determination of a coordinate of the optical center is made much easier.

Nun kann eine Schätzung der entsprechenden x- oder y-Koordinate des Mittelpunktes 504 erfolgen. Diese Schätzung kann z.B. eine Koordinate des geometrischen Mittelpunktes zugrunde legen. Dieser Schätzwert wird als ein aktueller Mittelpunkt 505 im ersten Schritt 510 übernommen. Ausgehend von diesem aktuellen Mittelpunkt wird ein Datenbereich ausgewählt. Eine solche Auswahl erfolgt bevorzugt symmetrisch, sodass auf beiden Seiten des aktuellen Mittelpunktes gleich viele Daten des Datenvektors 503 zu dem Datenbereich gehören. Nachfolgend erfolgt die Ermittlung einer Ausgleichsparabel 507 mit minimalem quadratischen Fehler auf dem Datenbereich. Die Wahl des Datenbereichs symmetrisch um den aktuellen Mittelpunkt besitzt dabei den Vorteil, dass auch bei deutlicher Abweichung des Datenvektors von einer Parabel die höheren Momente symmetrisch auftreten, sodass sie nicht zu einer Abweichung der Koordinate des Scheitelpunktes führen. Daher kann diese Koordinate des Scheitelpunktes 508 mit höherer Genauigkeit bestimmt werden und führt zu einem aktualisierten Mittelpunkt 509, der in den nachfolgenden Schritten 511 den bisherigen aktuellen Mittelpunkt ersetzt.An estimate of the corresponding x or y coordinate of the center point 504 can now be made. This estimate can, for example, be based on a coordinate of the geometric center. This estimated value is adopted as a current midpoint 505 in the first step 510. A data range is selected based on this current center point. Such a selection is preferably carried out symmetrically, so that the same amount of data from the data vector 503 belongs to the data area on both sides of the current center point. A compensation parabola 507 with a minimum squared error is then determined on the data area. Choosing the data area symmetrically around the current center has the advantage that even if the data vector deviates significantly from a parabola, the higher moments occur symmetrically, so that they do not lead to a deviation in the coordinates of the vertex. Therefore, this coordinate of the vertex 508 can be determined with higher accuracy and results in an updated center 509, which replaces the previous current center in the subsequent steps 511.

In 27 wird dieses Vorgehen veranschaulicht. Hier wird als Ergebnis der Schätzung 504 die Koordinate xc.0 erhalten. Sie liegt auf der Mitte des x-Bereiches, sodass die Distanz zum Rand rx.0 nach links und nach rechts gleich groß ausfällt. Auf diesem Datenbereich wird der Datenvektor 530 durch eine Parabel 531 mit kleinstem quadratischen Fehler beschrieben. Mit der folgenden Formel kann nun der Scheitelpunkt der Parabel bestimmt und als aktualisierter Mittelpunkt xc.1 übernommen werden: X c .1 = c 1 2 c 2 .

Figure DE102018115991B4_0060
In 27 this procedure is illustrated. Here, as a result of the estimate 504, the coordinate x c.0 is obtained. It lies in the middle of the x area, so that the distance to the edge r x.0 is the same to the left and to the right. In this data area, the data vector 530 is described by a parabola 531 with the least square error. The vertex of the parabola can now be determined using the following formula and adopted as the updated center x c.1 : X c .1 = c 1 2 c 2 .
Figure DE102018115991B4_0060

Dabei beschreiben c1 und c2 die entsprechenden Koeffzienten der Parabel als Polynom zweiten Grades.c 1 and c 2 describe the corresponding coefficients of the parabola as a second degree polynomial.

Das weitere Vorgehen wird anhand von 28 erläutert. Die hier gezeigte Parabel 533 ist dabei mit der Parabel 531 aus 27 identisch. Von ihrem Scheitelpunkt xc.1 ausgehend wird nun wieder ein Datenbereich ausgewählt. Da sich xc.1 näher an einem Bildrand befindet, als xc.0, kann der Datenbereich diesmal nur etwas kleiner gewählt werden und erstreckt sich zwischen den beiden Pfeilspitzen. Im zweiten Schritt erfolgt nun die Bestimmung einer Parabel 534 mit kleinstem quadratischen Fehler nur auf dem ausgewählten Datenbereich des Datenvektors 532. Nun wird wiederum der Scheitelpunkt dieser Parabel bestimmt und so ein weiterer aktualisierter Mittelpunkt xc.2 erhalten. Dieser Vorgang kann nun für weitere Schritte wiederholt werden. Dabei konvergiert der jeweils aktualisierte Mittelpunkt sehr schnell gegen das tatsächliche optische Zentrum und zumeist kann die Iteration nach dem zweiten oder dem dritten Schritt bereits erfolgreich beendet werden.The further procedure is based on 28 explained. The parabola 533 shown here is identical to the parabola 531 27 identical. Starting from its vertex x c.1, a data area is now selected again. Since x c.1 is closer to an image edge than x c.0 , the data area can only be chosen slightly smaller this time and extends between the two arrowheads. In the second step, a parabola 534 with the least square error is now determined only on the selected data area of the data vector 532. Now the vertex of this parabola is determined again and a further updated center point x c.2 is obtained. This process can now be repeated for further steps. The updated center point converges very quickly towards the actual optical center and the iteration can usually be successfully completed after the second or third step.

Weitere Variationen der offenbarten Ausführungsformen können von einem die beanspruchte Erfindung praktizierenden Fachmann aus einer Betrachtung der Zeichnungen, der Beschreibung und der beigefügten Ansprüche verstanden und ausgeführt werden.Further variations of the disclosed embodiments may be understood and carried out by one skilled in the art practicing the claimed invention from a review of the drawings, description and appended claims.

In den Ansprüchen schließen die Wörter „aufweisen“ und „umfassen“ nicht andere Elemente oder Schritte aus und der unbestimmte Artikel „ein“ schließt eine Mehrzahl nicht aus.In the claims, the words "comprising" and "comprising" do not exclude other elements or steps and the indefinite article "a" does not exclude a plurality.

Eine einzelne Einheit oder Vorrichtung kann die Funktionen mehrerer Elemente durchführen, die in den Ansprüchen aufgeführt sind. Die Tatsache, dass einzelne Funktionen und/oder Elemente in unterschiedlichen abhängigen Ansprüchen aufgeführt sind, bedeutet nicht, dass nicht auch eine Kombination dieser Funktionen und/oder Elemente vorteilhaft verwendet werden könnte.A single unit or device can perform the functions of several elements listed in the claims. The fact that individual functions and/or elements are listed in different dependent claims does not mean that a combination of these functions and/or elements could not also be used advantageously.

Die Bezugszeichen in den Ansprüchen sind nicht derart zu verstehen, dass der Gegenstand und der Schutzbereich der Ansprüche durch diese Bezugszeichen eingeschränkt wären.The reference numerals in the claims should not be understood as limiting the subject matter and scope of the claims by these reference numerals.

Zusammengefasst wurde ein Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes einer elektronischen Kamera bereitgestellt, wobei das Korrekturverfahren umfasst:

  • - Korrigieren der Werte der Pixel basierend auf einer Korrekturfunktion, die eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, oder die mathematisch in eine solche Funktion umformbar ist,
    • wobei das Korrigieren des Wertes eines Pixels ein Dividieren oder vorzugsweise ein Multiplizieren des Wertes des Pixels durch den bzw. mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst.
In summary, a correction method for correcting a vignetting effect in values of pixels of an electronic camera image has been provided, the correction method comprising:
  • - Correcting the values of the pixels based on a correction function comprising an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, or the can be mathematically transformed into such a function,
    • wherein correcting the value of a pixel includes dividing or preferably multiplying the value of the pixel by the value of the correction function at the position of the pixel.

Claims (18)

Korrekturverfahren zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes (I1) einer elektronischen Kamera (10), umfassend: - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert, wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von einer Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden, wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit einem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.Correction method for correcting a vignetting effect in values of pixels of an image (I 1 ) of an electronic camera (10), comprising: - determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function the position of another pixel, and correcting the value of the pixel, wherein correcting comprises multiplying the value of the pixel by the value of the correction function at the position of the pixel, wherein correcting corrects the vignetting effect in the value of the pixel, wherein the correction function an exponential function to a base, preferably either Euler's number e or the number 2 or 10, the argument of which is a one- or multi-dimensional polynomial of degree n ≥ 2, the value of the correction function at the position of the pixel based on cascading of feedback multiplications carried out by a circuit of at least two cascaded feedback multipliers is determined such that the values of the correction function at the positions of the pixels are continuously calculated, multiplying the value of the pixel by the value of the correction function at the position of the pixel is carried out with a multiplier connected downstream of the at least two cascaded feedback multipliers. Korrekturverfahren nach Anspruch 1, wobei Faktoren der rückgekoppelten Multiplikationen jeweils als Wert der Exponentialfunktion zu der Basis bestimmt werden, deren Argument eine gewichtete Summe eines oder mehrerer der Koeffizienten des Polynoms, ist.correction procedure Claim 1 , where factors of the feedback multiplications are each determined as the value of the exponential function to the base, the argument of which is a weighted sum of one or more of the coefficients of the polynomial. Korrekturverfahren nach einem der Ansprüche 1 oder 2, wobei das Bild (I1) ein zweidimensionales Bild ist und die Kaskadierung der rückgekoppelten Multiplikationen erste rückgekoppelte Multiplikationen in eine erste Richtung, z.B., in Zeilenrichtung, des Bildes (I1) und zweite rückgekoppelte Multiplikationen in eine zweite Richtung, z.B., in Spaltenrichtung, des Bildes (I1) umfasst, wobei ein Ausgabewert der zweiten rückgekoppelten Multiplikationen einen Eingangswert der ersten rückgekoppelten Multiplikationen liefert.Correction procedure according to one of the Claims 1 or 2 , where the image (I 1 ) is a two-dimensional image and the cascading of the feedback multiplications first feedback multiplications in a first direction, for example, in time direction, of the image (I 1 ) and second feedback multiplications in a second direction, for example, in the column direction, of the image (I 1 ), wherein an output value of the second feedback multiplications provides an input value of the first feedback multiplications. Korrekturverfahren nach einem der Ansprüche 1 bis 3, wobei das Bestimmen der Werte der Korrekturfunktion an den Positionen der Pixel parallelisiert ist, dergestalt, dass die Pixel in eine Anzahl von Kanälen eingeteilt sind, die: - jeweils separat voneinander verarbeitet werden, oder - so verarbeitet werden, dass in einem Zeitschritt das Bestimmen der Werte der Korrekturfunktion an den Positionen von Pixeln mindestens zweier verschiedener Kanäle auf Grundlage eines gemeinsamen bereits bestimmten Wertes der Korrekturfunktion an der Position eines anderen Pixels erfolgt.Correction procedure according to one of the Claims 1 until 3 , wherein the determination of the values of the correction function at the positions of the pixels is parallelized in such a way that the pixels are divided into a number of channels, which: - are each processed separately from one another, or - are processed in such a way that the determination is made in one time step the values of the correction function at the positions of pixels of at least two different channels are based on a common already determined value of the correction function at the position of another pixel. Korrekturverfahren nach einem der Ansprüche 1 bis 4, wobei das Bild ein Farbbild ist, welches als Bild eines Mosaikfilters vorliegt, wobei der Wert jedes Pixels jeweils einem Farbkanal zugeordnet ist.Correction procedure according to one of the Claims 1 until 4 , where the image is a color image which is present as an image of a mosaic filter, with the value of each pixel being assigned to a color channel. Korrekturverfahren nach einem der Ansprüche 1 bis 5, wobei die Werte der Pixel des Bildes (I1) Farbwerte von zwei oder mehr Farbkanälen sind und das Korrigieren der Werte der Pixel umfasst: - Korrigieren der Werte der Pixel mit einer eigenen Korrekturfunktion für jeden Farbkanal, vorzugsweise dergestalt, dass sich die Korrekturfunktionen für jeweils zwei unterschiedliche Kanäle nur in einem konstanten Offset der Werte der Korrekturfunktion unterscheiden, oder - Korrigieren der Werte der Pixel mit einer für alle Farbkanäle gemeinsamen Korrekturfunktion.Correction procedure according to one of the Claims 1 until 5 , where the values of the pixels of the image (I 1 ) are color values of two or more color channels and correcting the values of the pixels comprises: - Correcting the values of the pixels with a separate correction function for each color channel, preferably in such a way that the correction functions for two different channels only differ in a constant offset of the values of the correction function, or - correcting the values of the pixels with a correction function common to all color channels. Korrekturverfahren nach einem der Ansprüche 1 bis 6, wobei nur Werte von Pixeln eines Ausschnitts (121) des Bildes (I1) korrigiert werden und eine Verschiebung des Ursprungs (123) des Ausschnitts relativ zu dem Ursprung (122) des Bildes durch eine entsprechende Verschiebung der Korrekturfunktion dergestalt berücksichtigt wird, dass zumindest ein Teil der Parameter der Korrekturfunktion durch verschobene Parameter der Korrekturfunktion ersetzt werden.Correction procedure according to one of the Claims 1 until 6 , whereby only values of pixels of a section (121) of the image (I 1 ) are corrected and a shift of the origin (123) of the section relative to the origin (122) of the image is taken into account by a corresponding shift of the correction function in such a way that at least some of the parameters of the correction function are replaced by shifted parameters of the correction function. Korrekturverfahren nach einem der Ansprüche 1 bis 7, wobei mehrere Zonen in dem Bild (I1) definiert sind und das Korrigieren der Werte der Pixel für jede Zone jeweils mit für diese Zone eigenen Parametern der Korrekturfunktion erfolgt.Correction procedure according to one of the Claims 1 until 7 , whereby several zones are defined in the image (I 1 ) and the values of the pixels for each zone are corrected using the correction function parameters specific to this zone. Korrekturverfahren nach Anspruch 8, wobei die jeweils eigenen Parameter der Korrekturfunktion für zwei angrenzende Zonen dergestalt sind, dass der Übergang der Korrekturfunktion zwischen den beiden Zonen stetig, und vorzugsweise stetig differenzierbar, erfolgt.correction procedure Claim 8 , whereby the respective parameters of the correction function for two adjacent zones are such that the transition of the correction function between the two zones is continuous, and preferably continuously differentiable. Korrekturverfahren nach Anspruch 8 oder 9, wobei die Zonen sich auf einen Mittelpunkt (71, 72), vorzugsweise den optischen Mittelpunkt (72), des Bildes beziehen.correction procedure Claim 8 or 9 , wherein the zones relate to a center (71, 72), preferably the optical center (72), of the image. Korrekturverfahren nach Anspruch 10, wobei das Korrekturverfahren ein Schätzen des optischen Mittelpunkts (72) eines Bildes, das vorzugsweise eine homogene Szene zeigt, umfasst, dergestalt, dass für den Fall, dass das Bild mit einem eindimensionalen Bildsensor erzeugt wurde, das Schätzen der Koordinate des optischen Mittelpunkts (72) in der einen Dimension umfasst: - Erzeugen eines eindimensionalen Datenvektors in der einen Dimension aus den Werten der Pixel des Bildes, - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor, und dass für den Fall, dass das Bild mit einem zweidimensionalen Bildsensor erzeugt wurde, das Schätzen einer Koordinate des optischen Mittelpunkts (72) in einer ersten Dimension umfasst: - Mitteln der Werte der Pixel des Bildes in einer zweiten Dimension zum Erzeugen eines eindimensionalen Datenvektors von gemittelten Werten in der ersten Dimension, und - iteratives Fitten einer eindimensionalen Ausgleichsparabel an den eindimensionalen Datenvektor.correction procedure Claim 10 , wherein the correction method comprises estimating the optical center (72) of an image, which preferably shows a homogeneous scene, such that, in the event that the image was generated with a one-dimensional image sensor, estimating the coordinate of the optical center (72 ) in one dimension includes: - generating a one-dimensional data vector in one dimension from the values of the pixels of the image, - iteratively fitting a one-dimensional compensation parabola to the one-dimensional data vector, and that in the case that the image was generated with a two-dimensional image sensor , estimating a coordinate of the optical center (72) in a first dimension: - averaging the values of the pixels of the image in a second dimension to generate a one-dimensional data vector of averaged values in the first dimension, and - iteratively fitting a one-dimensional balancing parabola the one-dimensional data vector. Korrekturverfahren nach Anspruch 11, wobei das iterative Fitten in jeder Iteration in einem Datenbereich des eindimensionalen Datenvektors um eine aktuell geschätzte Koordinate des optischen Mittelpunkts (72) in der einen bzw. ersten Dimension herum erfolgt, wobei der Datenbereich vorzugsweise symmetrisch zu der aktuell geschätzten Koordinate des optischen Mittelpunkts (72) in der einen bzw. ersten Dimension ist und/oder das iterative Fitten mit der Koordinate des geometrischen Mittelpunkts (71) des Bildes in der einen bzw. ersten Dimension als die aktuell geschätzte Koordinate des optischen Mittelpunkts (72) in der einen bzw. ersten Dimension initialisiert wird.correction procedure Claim 11 , wherein the iterative fitting takes place in each iteration in a data area of the one-dimensional data vector around a currently estimated coordinate of the optical center (72) in the one or first dimension, the data area preferably being symmetrical to the currently estimated coordinate of the optical center (72 ) is in the one or first dimension and/or the iterative fitting with the coordinate of the geometric center (71) of the image in the one or first dimension as the currently estimated coordinate of the optical center (72) in the one or first Dimension is initialized. Korrekturverfahren nach einem der Ansprüche 1 bis 12, umfassend ein Bestimmen von Parametern der Korrekturfunktion basierend auf einem Referenzbild (I0), das vorzugsweise eine homogene Szene zeigt, wobei das Bestimmen der Parameter der Korrekturfunktion ein Normieren der Korrekturfunktion dergestalt umfasst, dass die Korrekturfunktion in ihrem Scheitelpunkt einen vorbestimmten Wert, vorzugsweise den Wert 1, aufweist.Correction procedure according to one of the Claims 1 until 12 , comprising determining parameters of the correction function based on a reference image (I 0 ), which preferably shows a homogeneous scene, wherein determining the parameters of the correction function includes normalizing the correction function such that the correction function has a predetermined value at its apex, preferably the Value 1. Korrekturverfahren nach Anspruch 13, wobei das Normieren so erfolgt, dass der Koeffizient nullter Ordnung des Polynoms durch einen normierenden Koeffizienten nullter Ordnung ersetzt wird, der sich aus den Koeffizienten höherer Ordnung des Polynoms berechnet.correction procedure Claim 13 , where the normalization is carried out such that the zero-order coefficient of the polynomial is replaced by a zero-order normalizing coefficient which is calculated from the higher-order coefficients of the polynomial. Korrektureinrichtung zur Korrektur eines Vignettierungseffekts in Werten von Pixeln eines Bildes (I1) einer elektronischen Kamera (10), wobei die Korrektureinrichtung eine Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken und einen den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator umfasst und ausgebildet ist zum: - Bestimmen des Wertes einer Korrekturfunktion an der Position eines Pixels iterativ durch Multiplikation eines oder mehrerer Faktoren mit einem bereits bestimmten Wert der Korrekturfunktion an der Position eines anderen Pixels, und - Korrigieren des Wertes des Pixels, wobei das Korrigieren ein Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels umfasst, wobei das Korrigieren den Vignettierungseffekt in dem Wert des Pixels korrigiert, wobei die Korrekturfunktion eine Exponentialfunktion zu einer Basis, vorzugsweise entweder der Eulerschen Zahl e oder der Zahl 2 oder 10, umfasst, deren Argument ein ein- oder mehrdimensionales Polynom des Grades n ≥ 2 ist, wobei der Wert der Korrekturfunktion an der Position des Pixels basierend auf einer Kaskadierung von rückgekoppelten Multiplikationen, die von der Schaltung von mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken durchgeführt werden, so bestimmt wird, dass die Werte der Korrekturfunktion an den Positionen der Pixel fortlaufend berechnet werden, wobei das Multiplizieren des Wertes des Pixels mit dem Wert der Korrekturfunktion an der Position des Pixels mit dem den mindestens zwei kaskadierten rückgekoppelten Multiplizierwerken nachgeschalteten Multiplikator durchgeführt wird.Correction device for correcting a vignetting effect in values of pixels of an image (I 1 ) of an electronic camera (10), the correction device comprising a circuit of at least two cascaded feedback multipliers and a multiplier connected downstream of the at least two cascaded feedback multipliers and is designed to: - Determining the value of a correction function at the position of a pixel iteratively by multiplying one or more factors with an already determined value of the correction function at the position of another pixel, and - correcting the value of the pixel, wherein correcting involves multiplying the value of the pixel by the Value of the correction function at the position of the pixel, the correcting correcting the vignetting effect in the value of the pixel, the correction function comprising an exponential function to a base, preferably either the Euler number e or the number 2 or 10, the argument of which is a - or multidimensional polynomial of degree n ≥ 2, where the value of the correction function at the position of the pixel is determined based on a cascading of feedback multiplications carried out by the circuit of at least two cascaded feedback multipliers, such that the values of the Correction function at the positions of the pixels are continuously calculated, the multiplication of the value of the pixel by the value of the correction function at the position of the pixel being carried out with the multiplier connected downstream of the at least two cascaded feedback multipliers. Elektronische Kamera (10), wobei die elektronische Kamera (10) umfasst: - einen Bildsensor (12) mit Pixeln zur Erzeugung eines Bildes (I1); und - die Korrektureinrichtung nach Anspruch 15 zur Korrektur eines Vignettierungseffekts in Werten von Pixeln des Bildes (I1).Electronic camera (10), the electronic camera (10) comprising: - an image sensor (12) with pixels for generating an image (I 1 ); and - the correction device Claim 15 to correct a vignetting effect in values of pixels of the image (I 1 ). Computervorrichtung, umfassend eine Recheneinheit, die zur Durchführung des Korrekturverfahrens nach einem der Ansprüche 1 bis 14 ausgestaltet ist.Computer device, comprising a computing unit which is used to carry out the correction method according to one of Claims 1 until 14 is designed. Computerprogramm-Produkt, umfassend Codemitteln zum Veranlassen einer Computervorrichtung zum Ausführen des Korrekturverfahrens nach einem der Ansprüche 1 bis 14, wenn das Computerprogramm-Produkt auf der Computervorrichtung ausgeführt wird.Computer program product comprising code means for causing a computer device to carry out the correction method according to one of the Claims 1 until 14 when the computer program product is running on the computing device.
DE102018115991.9A 2018-07-02 2018-07-02 DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE Active DE102018115991B4 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018115991.9A DE102018115991B4 (en) 2018-07-02 2018-07-02 DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE
CN201910589742.5A CN110677555A (en) 2018-07-02 2019-07-02 Digital circuit for correcting vignetting effect in pixel values of an image of an electronic camera

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018115991.9A DE102018115991B4 (en) 2018-07-02 2018-07-02 DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE

Publications (2)

Publication Number Publication Date
DE102018115991A1 DE102018115991A1 (en) 2020-01-02
DE102018115991B4 true DE102018115991B4 (en) 2023-12-07

Family

ID=68885847

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018115991.9A Active DE102018115991B4 (en) 2018-07-02 2018-07-02 DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE

Country Status (2)

Country Link
CN (1) CN110677555A (en)
DE (1) DE102018115991B4 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113393389B (en) * 2021-06-02 2022-05-31 武汉博宇光电系统有限责任公司 Image enhancement method without artificial halation
DE102021133867A1 (en) 2021-12-20 2023-06-22 Carl Zeiss Microscopy Gmbh Microscopy system and method for reducing image vignetting

Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US37A (en) 1836-09-28 Crane-stove
US262A (en) 1837-07-11 Combined
US576A (en) 1838-01-20 Ftjbnace of stoves fob bubning anthracite
US700A (en) 1838-04-21 Photo-litho
US7408A (en) 1850-06-04 Improvement in suspending venetian blinds
US7548A (en) 1850-08-06 Hanging and operating gates
US7692A (en) 1850-10-01 Door-spring
US8218A (en) 1851-07-15 Improvement in machines for dressing sisal hemp
US3971065A (en) 1975-03-05 1976-07-20 Eastman Kodak Company Color imaging array
US6175613B1 (en) 1997-07-11 2001-01-16 Ge Medical Systems S.A. Method for processing a sequence of radiological images of an object
US7362358B2 (en) 2003-08-07 2008-04-22 Canon Kabushiki Kaisha Correction of level difference between signals output from split read-out type image sensing apparatus
US7388610B2 (en) 2002-08-16 2008-06-17 Zoran Corporation Techniques of modifying image field data by extrapolation
US7391450B2 (en) 2002-08-16 2008-06-24 Zoran Corporation Techniques for modifying image field data
US7408576B2 (en) 2002-08-16 2008-08-05 Zoran Corporation Techniques for modifying image field data as a function of radius across the image field
US7453502B2 (en) 2004-02-13 2008-11-18 Digital Imaging Systems Gmbh Lens shading algorithm
US7548262B2 (en) 2004-06-07 2009-06-16 Nokia Corporation Method, apparatus, imaging module and program for improving image quality in a digital imaging device
US7634152B2 (en) 2005-03-07 2009-12-15 Hewlett-Packard Development Company, L.P. System and method for correcting image vignetting
US7692700B2 (en) 2003-02-12 2010-04-06 Digital Imaging Systems Gmbh Vignetting compensation
US7920171B2 (en) 2007-05-18 2011-04-05 Aptina Imaging Corporation Methods and apparatuses for vignetting correction in image signals
US7961973B2 (en) 2004-09-02 2011-06-14 Qualcomm Incorporated Lens roll-off correction method and apparatus
US8130292B2 (en) 2008-12-31 2012-03-06 Aptina Imaging Corporation Scene illumination adaptive lens shading correction for imaging devices
US8472712B2 (en) 2009-10-20 2013-06-25 Apple Inc. System and method for applying lens shading correction during image processing
EP2278788B1 (en) 2009-07-08 2013-09-11 Samsung Electronics Co., Ltd. Method and apparatus for correcting lens shading
US8577140B2 (en) 2011-11-29 2013-11-05 Microsoft Corporation Automatic estimation and correction of vignetting
US8712183B2 (en) 2009-04-16 2014-04-29 Nvidia Corporation System and method for performing image correction
EP2929503B1 (en) 2013-01-10 2016-10-26 Basler AG Method and device for creating an improved colour image with a sensor with a colour filter

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548661B2 (en) * 2005-12-23 2009-06-16 Microsoft Corporation Single-image vignetting correction
JP5489392B2 (en) * 2007-05-09 2014-05-14 オリンパス株式会社 Optical system evaluation apparatus, optical system evaluation method, and optical system evaluation program
CN101609211B (en) * 2008-06-18 2011-05-11 中国科学院自动化研究所 Method for modeling free-space light propagation model in noncontact type optical imaging
EP2734976B1 (en) * 2011-07-21 2019-02-20 Imax Corporation Generalized normalization for image display
US8823841B2 (en) * 2012-06-20 2014-09-02 Omnivision Technologies, Inc. Method and apparatus for correcting for vignetting in an imaging system
KR101662407B1 (en) * 2014-12-23 2016-10-05 포항공과대학교 산학협력단 Method for vignetting correction of image and apparatus therefor
WO2016168307A1 (en) * 2015-04-13 2016-10-20 Universidade De Coimbra Methods and systems for camera characterization in terms of response function, color, and vignetting under non-uniform illumination

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US37A (en) 1836-09-28 Crane-stove
US262A (en) 1837-07-11 Combined
US576A (en) 1838-01-20 Ftjbnace of stoves fob bubning anthracite
US700A (en) 1838-04-21 Photo-litho
US7408A (en) 1850-06-04 Improvement in suspending venetian blinds
US7548A (en) 1850-08-06 Hanging and operating gates
US7692A (en) 1850-10-01 Door-spring
US8218A (en) 1851-07-15 Improvement in machines for dressing sisal hemp
US3971065A (en) 1975-03-05 1976-07-20 Eastman Kodak Company Color imaging array
US6175613B1 (en) 1997-07-11 2001-01-16 Ge Medical Systems S.A. Method for processing a sequence of radiological images of an object
US8218037B2 (en) 2002-08-16 2012-07-10 Csr Technology Inc. Techniques of modifying image field data by extrapolation
US7817196B1 (en) 2002-08-16 2010-10-19 Zoran Corporation Techniques of modifying image field data by extrapolation
US7391450B2 (en) 2002-08-16 2008-06-24 Zoran Corporation Techniques for modifying image field data
US7408576B2 (en) 2002-08-16 2008-08-05 Zoran Corporation Techniques for modifying image field data as a function of radius across the image field
US7388610B2 (en) 2002-08-16 2008-06-17 Zoran Corporation Techniques of modifying image field data by extrapolation
US7907195B2 (en) 2002-08-16 2011-03-15 Zoran Corporation Techniques for modifying image field data as a function of radius across the image field
US7834921B1 (en) 2002-08-16 2010-11-16 Zoran Corporation Compensation techniques for variations in image field data
US7692700B2 (en) 2003-02-12 2010-04-06 Digital Imaging Systems Gmbh Vignetting compensation
US7362358B2 (en) 2003-08-07 2008-04-22 Canon Kabushiki Kaisha Correction of level difference between signals output from split read-out type image sensing apparatus
EP1700268B1 (en) 2003-12-30 2015-01-14 Qualcomm Technologies, Inc. Techniques for modifying image field data
EP1711880B1 (en) 2004-02-02 2014-04-23 Zoran Corporation Techniques of modifying image field data by extrapolation
US7453502B2 (en) 2004-02-13 2008-11-18 Digital Imaging Systems Gmbh Lens shading algorithm
US7548262B2 (en) 2004-06-07 2009-06-16 Nokia Corporation Method, apparatus, imaging module and program for improving image quality in a digital imaging device
US7961973B2 (en) 2004-09-02 2011-06-14 Qualcomm Incorporated Lens roll-off correction method and apparatus
US7634152B2 (en) 2005-03-07 2009-12-15 Hewlett-Packard Development Company, L.P. System and method for correcting image vignetting
US7920171B2 (en) 2007-05-18 2011-04-05 Aptina Imaging Corporation Methods and apparatuses for vignetting correction in image signals
US8130292B2 (en) 2008-12-31 2012-03-06 Aptina Imaging Corporation Scene illumination adaptive lens shading correction for imaging devices
US8712183B2 (en) 2009-04-16 2014-04-29 Nvidia Corporation System and method for performing image correction
US9414052B2 (en) 2009-04-16 2016-08-09 Nvidia Corporation Method of calibrating an image signal processor to overcome lens effects
EP2278788B1 (en) 2009-07-08 2013-09-11 Samsung Electronics Co., Ltd. Method and apparatus for correcting lens shading
US8472712B2 (en) 2009-10-20 2013-06-25 Apple Inc. System and method for applying lens shading correction during image processing
US8577140B2 (en) 2011-11-29 2013-11-05 Microsoft Corporation Automatic estimation and correction of vignetting
EP2929503B1 (en) 2013-01-10 2016-10-26 Basler AG Method and device for creating an improved colour image with a sensor with a colour filter

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. A. Sawchuk, „Real-Time Correction of Intensity Nonlinearities in Imaging Systems", IEEE, Transactions on Computers, 1977, S. 34-39
A. Kordecki et al., „Fast Vignetting Reduction Method for Digital Still Camera", IEEE, International Conference on Methods and Models in Automation and Robotics (MMAR), 2015, S. 1145-1150
KORDECKI, A. et al.: Fast vignetting reduction method for digital still camera. IEEE, Int. Conf. on Methods and Models in Automation and Robotics (MMAR), 2015, S. 1145-1150.
SAWCHUCK A.: Real-Time Correction of Intensity Nonlinearities in Imaging Systems. IEEE, Trans. On Computers, 1977, Seiten 34-39.

Also Published As

Publication number Publication date
CN110677555A (en) 2020-01-10
DE102018115991A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
DE102014015353B4 (en) DYNAMIC COMPRESSION
EP1231564B1 (en) Digital local control of image properties by means of masks
DE602005004694T2 (en) Method and apparatus for locally adaptive image processing filters
DE60026925T2 (en) Adjust the contrast of a digital image with an adaptive, recursive filter
DE60317472T2 (en) OPTIMIZED IMAGE PROCESSING FOR WAVE FRONT CODED PICTURE SYSTEMS
EP2929503B1 (en) Method and device for creating an improved colour image with a sensor with a colour filter
DE60103535T2 (en) GRAPHICAL SYSTEM
DE102015116599A1 (en) Electronic device and method for controlling its cameras
DE102016121734A1 (en) IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD AND COMPUTER READABLE STORAGE MEDIUM
DE4444583B4 (en) Approximation device and approximation method for determining a technical system
EP2052550A2 (en) Image processing device for colour image data and method for processing colour image data
DE102018115991B4 (en) DIGITAL CIRCUIT FOR CORRECTING A VIGNETTING EFFECT IN PIXEL VALUES OF AN ELECTRONIC CAMERA IMAGE
DE112017001458T5 (en) Image processing apparatus, imaging apparatus and control method thereof
DE602004012125T2 (en) ROBUST RECYCLED COVER OPERATORS FOR QUICKLY PROCESSING RETINEX-TYPE IMAGES
DE102015114162A1 (en) Efficient interpolation
DE102021102233B4 (en) Device and method for correspondence analysis in images
DE112011101632T5 (en) Two-dimensional superresolution scale
DE112014006672T5 (en) An image processing apparatus, an image forming apparatus, a microscope system, an image processing method and an image processing program
DE602004005879T2 (en) METHOD AND SYSTEM FOR DIFFERENTIALLY AND REGULARLY MODIFYING A DIGITAL IMAGE TO PIXELS
DE112017006779T5 (en) CAMERA SYSTEM INCLUDING OBJECTIVE WITH MAGNIFICATION GRADIENT
DE69827540T2 (en) Signal processing system
DE102018008064A1 (en) Downscaling images with pixel sets selected by a blue noise scan
EP3384461A1 (en) Method and device for image correction
WO2018224444A1 (en) Method and device for image correction
DE102015109878B3 (en) Correction of a patterned image defect

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division