Bildverarbeitungsvorrichtung für Farb-Bilddaten und Verfahren zur Bildverarbeitung von Farb-BilddatenImage color image data processing apparatus and color image data image processing apparatus
Beschreibungdescription
Die Erfindung betrifft allgemein die Verarbeitung von Farbbildern, insbesondere die Verarbeitung von Rohdaten in darstellbare Formate.The invention relates generally to the processing of color images, in particular the processing of raw data into displayable formats.
Die derzeit üblichen Farb-Bildsensoren arbeiten fast alle mit einer sogenannten Bayer-Matrix, beziehungsweise mit Bayer-Sensoren. Bei derartigen Sensoren ist eine Farbfilteranordnung auf der Sensorfläche angeordnet, wobei jedem Pixel ein Farbfilter für eine bestimmte Farbe vorgeschaltet ist und die Farben unterschiedlich gewichtet sind. Am gebräuchlichsten sind RGB-Farbfilter, wobei grüne Pixel doppelt so häufig vorliegen wie blaue und rote.Almost all currently used color image sensors work with a so-called Bayer matrix or with Bayer sensors. In such sensors, a color filter array is arranged on the sensor surface, wherein each pixel is preceded by a color filter for a particular color and the colors are weighted differently. The most common are RGB color filters, where green pixels are twice as common as blue and red.
Die Rohdaten eines solchen Bildes sind auf Standard- Anzeigen jedoch nicht darstellbar. Es erfolgt dazu im allgemeinen daher eine Umrechnung, wobei die Signale mehrerer Pixel des Sensors interpoliert werden. Hierbei besteht allgemein das Problem, daß solche Umrechnungen Artefakte, wie etwa Farbsäume erzeugen können oder rechenintensiv sind, so daß sie unter anderem für eineHowever, the raw data of such an image can not be displayed on standard displays. For this reason, a conversion is generally carried out in which case the signals of several pixels of the sensor are interpolated. There is the general problem that such conversions artifacts, such as color fringes can produce or are computationally intensive, so that they inter alia for a
Echtzeit-Darstellung nicht geeignet sind. Zudem ist eine Umrechnung, etwa in RGB-Werte wie sie gebräuchliche Bildformate verwenden, verlustbehaftet. Der Erfindung liegt daher die Aufgabe zugrunde, eine effektivere Umrechnung von Farb-Bilddaten bereitzustellen, die so vereinfacht ist, daß sie sich ohne weiteres auch als Hardware implementieren
läßt und farbechte, artefaktärmere Darstellungen in Echtzeit erlaubt.Real-time representation are not suitable. In addition, a conversion, such as in RGB values as they use common image formats, lossy. The invention is therefore based on the object to provide a more effective conversion of color image data, which is so simplified that they readily implement as hardware allows and color-fast, artifact-poor representations in real time allowed.
Zur Erzielung einer hohen Bildqualität von Single-Chip- Farbkameras ist eine präzise Verarbeitung der Sensorsignale grundlegende Voraussetzung. Hierzu werden zunehmend digitale Verfahren eingesetzt. In der Regel werden besonders hohe Anforderungen an die Qualität der Signalverarbeitung dann gestellt, wenn die Kameras z.B. für Bildverarbeitungsaufgaben oder zur Druckbildkontrolle eingesetzt werden, gleichzeitig wird die Verarbeitung in Echtzeit vorausgesetzt. Oftmals wird das Bild in Echtzeit gleichzeitig in mehreren Auflösungen benötigt, z.B. für die Bildverarbeitung in voller Auflösung und für die Darstellung in verminderter Auflösung.To achieve a high image quality of single-chip color cameras, precise processing of the sensor signals is essential. For this purpose, digital methods are increasingly being used. In general, particularly high demands are placed on the quality of the signal processing when the cameras are used e.g. be used for image processing tasks or for image control, while the processing in real time is required. Often, the image is needed in real time simultaneously in multiple resolutions, e.g. for full-resolution image processing and for reduced-resolution imaging.
Die Anforderungen bedingen ein Signalverarbeitungskonzept, das auf einer möglichst großen Nachbarschaft basiert, in der Regel sind dies bei hohen Qualitätsforderungen minimal 7x7 Bildpunkte (Pixel). Um eine solche Nachbarschaft zu verarbeiten ist es bekannt, z.B. n>= 7 Zeilenspeicher mit Bilddaten zu beschreiben und pro Pixeltakt in Spaltenrichtung 7 Pixel auszulesen. Dieses Konzept steht jedoch im Widerspruch zu einer effizienten Speicherorganisation moderner Bildspeicher, die DDRAM' s (double data rate random access memory) als Speicherbausteine enthalten, die mit hoher Effizienz nur zeilenorientierte Blockzugriffe realisieren können. Große integrierte SRAM- Bereiche erfordern Chipfläche und sind deshalb nachteilig.The requirements require a signal processing concept that is based on the largest possible neighborhood, as a rule this is a minimum of 7x7 pixels for high quality requirements. In order to process such a neighborhood it is known, e.g. n> = 7 to describe line memory with image data and read per pixel clock in the column direction 7 pixels. However, this concept conflicts with an efficient memory organization of modern image memories containing DDRAMs (double data rate random access memory) as memory devices which can only realize line-oriented block accesses with high efficiency. Large integrated SRAM areas require chip area and are therefore disadvantageous.
Deshalb besteht die Aufgabe der Erfindung darin, zunächst ein optimiertes Speicherinterface zu schaffen, das in der Lage ist, sowohl den Betrieb mit DDRAM' s als Bildspeicher,
als auch die Bildung von großen Nachbarschaften der Größe ab 7x7 Pixel in Echtzeit zu unterstützen.Therefore, the object of the invention is first of all to provide an optimized memory interface which is capable of operating both with DDRAM's as image memory, as well as the formation of large neighborhoods of size from 7x7 pixels in real time support.
Die Erfindung sieht demgemäß eine digitale Bildverarbeitungsvorrichtung mit einem Bayer-Sensor und einem Bildspeicher vor, wobei die Bilddaten des Sensors in einem Bildspeicher geschrieben werden und aus diesem Bildspeicher Bilddaten im Bayerformat fortlaufend in einen Datenpuffer geschrieben werden und dass die Abtastwerte mittels einer Recheneinrichtung mithilfe von Addierwerken jeweils symmetrisch zu einem Zentralpunkt von einer oder mehreren (2n+l ) x (2n+l) Nachbarschaften zusammengefasst werden, und mittels der Recheneinrichtung daraus eine oder mehrere (n+l)x(n+l) Matrizen abgeleitet werden, und daraus oder mit zumindest einer daraus abgeleiteten Matrix jeweils mittels eines Addiernetzwerks eine erste Farbkomponente berechnet wird. Diese Farbkomponente kann insbesondere eine hochauflösende Komponente YH sein, welche die Grauwert-, beziehungsweise Helligkeitsverteilung im Bild wiedergibt. Es ist auch möglich, aus der oder den (n+l)x(n+l)The invention accordingly provides a digital image processing apparatus having a Bayer sensor and an image memory, the image data of the sensor being written in an image memory and image data in Bayer format being continuously written from this image memory into a data buffer and the samples being scanned by means of adder means are symmetrically combined to a central point of one or more (2n + l) x (2n + l) neighborhoods, and by means of the computing device one or more (n + l) x (n + l) matrices are derived therefrom With at least one matrix derived therefrom, a first color component is calculated in each case by means of an adder network. In particular, this color component can be a high-resolution component YH, which reproduces the gray scale or brightness distribution in the image. It is also possible to derive from the (n + 1) x (n + 1)
Matrix (en) mithilfe weiterer Addierwerke mindestens eine n x n Matrix zu bilden, wenn die (n+l)x(n+l) Matrix (en) symmetrisch sind. Die Berechnung der Matrixoperation erfolgt vorzugsweise durch Faltung mit einem geeigneten Convolver, insbesondere einem Convolver der GrößeMatrix (s) to form at least one n x n matrix by means of further adders, if the (n + l) x (n + l) matrix (s) are symmetric. The matrix operation is preferably calculated by convolution with a suitable convolver, in particular a convolver of size
(n+l)x(n+l), oder besonders bevorzugt, wenn die Matrix weiter in ihrer Größe reduzierbar ist, mit einem Convolver der Größe n x n.(n + l) x (n + l), or more preferably, if the matrix is further reducible in size, with a convolver of size n x n.
Eine besonders effektive Berechnung gelingt dabei, wenn die Abtastwerte mittels einer Recheneinrichtung mithilfe von Addierwerken jeweils symmetrisch zu einem Zentralpunkt von einer oder mehreren (2n+l) x (2n+l) Nachbarschaften mit n=3, entsprechend also mittels eines 7x7-Convolvers zusammengefasst werden.
Mehrere, typisch 4, phasenabhängig gemultiplexte Addernetzwerke sind weiterhin zur Berechnung der R, G, B Anteile einer zweiten und dritten Farbkomponente (der Signale X und Z des XYZ-Farbraumes) vorhanden. Die R, G, B Anteile der zweiten und dritten Farbkomponente, vorzugsweise der Signale X und Z des XYZ-Farbraumes oder U, V des YUV-Farbraumes können dann mit programmierbaren Gewichtsfaktoren multipliziert und anschließend zur zweiten und dritten Farbkomponente akkumuliert werden.A particularly effective calculation succeeds when the sampled values are combined by means of a computing device using adders symmetrically to a central point of one or more (2n + l) x (2n + l) neighborhoods with n = 3, corresponding to a 7x7 convolver become. Several, typically 4, phase-dependent multiplexed adder networks are furthermore available for calculating the R, G, B components of a second and third color component (the signals X and Z of the XYZ color space). The R, G, B components of the second and third color component, preferably the X and Z signals of the XYZ color space or U, V of the YUV color space can then be multiplied by programmable weighting factors and then accumulated to the second and third color components.
Eine besonders effektive, schnelle Speichernutzung ergibt sich weiterhin, wenn die Bilddaten im Bayerformat mit einer Länge L von zumindest 32 Pixel, vorzugsweise genau 32 Pixel und einer Breite B von zumindest 8 Pixel, vorzugsweise genau 8 Pixel fortlaufend in den Datenpuffer geschrieben werden.A particularly effective, fast memory usage results further when the image data in Bayer format with a length L of at least 32 pixels, preferably exactly 32 pixels and a width B of at least 8 pixels, preferably exactly 8 pixels are continuously written into the data buffer.
Es ist außerdem vorteilhaft, mittels der Recheneinrichtung aus der n x n Matrix zusätzlich zur ersten Farbkomponente ein vierte Farbkomponente mit gegenüber der ersten Farbkomponente geringerer Ortauflösung (YL) über ein weiteres Addernetzwerk zu berechnen. Diese vierte Farbkomponente kann anstelle der ersten Farbkomponente (YH) zur Berechnung einer Farbkorrektur verwendet werden, wobei ein aus der Differenz der ersten und -vorzugsweise gewichteten- vierten Farbkomponente (YH-YL) abgeleitetes Signal auf das korrigierte Ausgangssignal addiert wird. Die beiden Farbkomponenten YH und YL können dabei mit unterschiedlichen Multiplikatoren gewichtet sein, um die Größe der beiden Komponenten bei der Differenzbildung aufeinander abzustimmen. So ist in Weiterbildung vorgesehen, die Differenz YH-118*YL zu verwenden. Auf diese Weise kann ein einfacher, effektiver Schärfefilter realisiert werden.
Die Erfindung ist unter anderem hervorragend dazu geeignet, aus Bildserien tiefenscharfe Bilder zu erzeugen. Dazu ist in Weiterbildung der Erfindung eine digitale Bildverarbeitungsvorrichtung vorgesehen, die ein vorzugsweise im Multifokusbetrieb rechnergesteuert einstellbares Objektiv aufweist oder an eine Kamera mit einem solchen Objektiv angeschlossen ist. Dann kann die Bildverarbeitungsvorrichtung eingerichtet sein, zusätzlich zur ersten Farbkomponente ein vierte Farbkomponente mit gegenüber der ersten Farbkomponente geringerer Ortauflösung (YL) zu errechnen und das Differenzsignal zwischen der ersten Farbkomponent.e und der vierten Farbkomponente auf eine nichtlineare Funktion f (Contrast{x, y))= f (YH [x, y)- YL{x, y)) abzubilden, wobei YH(x,y) die erste Farbkomponente mit höherer Ortsauflösung und YL(x,y) die vierte Farbkomponente mit niedrigerer Ortsauflösung bezeichnen. Dabei wird die nichtlineare Funktion vorzugsweise so gewählt, daß sämtliche Werte der Funktion nicht negativ sind, wobei das sowohl das mit der nichtlinearen Funktion gewichtete digitale Farbbild als auch die Gewichte während eines Fokussierzyklus in einem Speicher akkumuliert werden, und wobei vorzugsweise nach Abschluß des Fokussierzyklus das akkumulierte Farbbild mit dem inversen Wert der akkumulierten Gewichte multipliziert wird.It is also advantageous, by means of the computing device from the nxn matrix in addition to the first color component to calculate a fourth color component with respect to the first color component of lower local resolution (YL) via a further adder network. This fourth color component can be used instead of the first color component (YH) for calculating a color correction, wherein a signal derived from the difference of the first and preferably weighted fourth color component (YH-YL) is added to the corrected output signal. The two color components YH and YL can be weighted with different multipliers in order to match the size of the two components in subtraction. Thus, it is provided in development, to use the difference YH-118 * YL. In this way, a simple, effective sharpness filter can be realized. Among other things, the invention is eminently suitable for producing deep-focus images from image series. For this purpose, a digital image processing device is provided in development of the invention, which has a preferably in the multi-focus operation computer-controlled adjustable lens or connected to a camera with such a lens. Then, the image processing apparatus may be configured to calculate a fourth color component with lower local resolution (YL) than the first color component, and calculate the difference signal between the first color component and the fourth color component to a nonlinear function f (contrast {x, y ) = f (YH [x, y) -YL {x, y)), where YH (x, y) denotes the first color component of higher spatial resolution and YL (x, y) the fourth color component of lower spatial resolution. The nonlinear function is preferably chosen so that all values of the function are not negative, whereby both the non-linear function weighted digital color image and the weights are accumulated in a memory during a focusing cycle, and preferably at the end of the focusing cycle accumulated color image is multiplied by the inverse of the accumulated weights.
Für das aufakummulierte Digitalbild I(x,y) gilt damit:For the accumulated digital image I (x, y), the following applies:
Dabei bezeichnet i den Bildindex der aufgenommenen Bilderserie und I(x,y) den Intensitätswert eines Pixels am Ort mit den Koordinaten x,y. In this case, i denotes the image index of the recorded image series and I (x, y) the intensity value of a pixel at the location with the coordinates x, y.
Diese Ausführungsform der Erfindung eignet sich insbesondere in Verbindung mit einem telezentrischen Objektiv als Optik für die Bildaufnahme. Eine bevorzugte Anwendung dieser Ausführungsform ist ein Mikroskop. Dieses kann dann mittels der Erfindung automatisiert tiefenscharfe Bilder liefern.This embodiment of the invention is particularly suitable in connection with a telecentric lens as optics for image acquisition. A preferred application of this embodiment is a microscope. This can then automatically deliver deep-focused images by means of the invention.
In Weiterbildung der Erfindung kann dieIn development of the invention, the
Bildverarbeitungsvorrichtung vorteilhaft eingerichtet sein, die Farbkomponenten über programmierbare Gain-Einstellungen auf einen Weißwert zu normieren und aus der ersten (YH) oder alternativ vierten Farbkomonente (YL) sowie der zweiten und der dritten Farbkomponente eine erste Datensequenz zu formatieren. Dies ist günstig, um eine möglichst authentische Darstellung der Farben der Bilddaten zu erreichen.Image processing apparatus advantageously be set up to normalize the color components to a white value via programmable gain settings and to format a first data sequence from the first (YH) or alternatively fourth color component (YL) as well as the second and third color components. This is beneficial to achieve the most authentic representation of the colors of the image data.
Insbesondere kann dazu vorteilhaft auch diese erste Datensequenz mithilfe einer eingangsseitig angeordneten Conversion Table (LUT) , die die Empfindlichkeitskurve des menschlichen Auges enthält, auf eine zweite Datensequenz transformiert werden. In Weiterbildung der Erfindung wird dann aus der zweiten Datensequenz dann eine dritte Datensequenz mit Signalen Y~, X~-Y~ und Z~-Y~ gebildet und diese dritte Datensequenz mit programmierbaren Koeffizienten L_gain, a_gain und b_gain multipliziert.In particular, this first data sequence can advantageously also be transformed to a second data sequence by means of an input conversion table (LUT) which contains the sensitivity curve of the human eye. In a further development of the invention ~ is then removed from the second data sequence then a third data sequence with signals Y ~ X ~ -Y ~ -Y ~ Z and formed, and this third data sequence with programmable coefficients L_gain, a_gain and b_Gain multiplied.
Zu diesen Produkten werden programmierbare Offsets addiert, so dass eine vierte Datensequenz entsteht. Für die X~-Y~ und Z~-Y~ zugeordneten Werte der vierten Datensequenz wird ein Produkt aus der ersten Farbkomponente und L gain
addiert, so dass eine fünfte Datensequenz entsteht. Diese fünfte Datensequenz wird mit der inversen Conversion Table oder einer adäquaten Näherung durch Potenzieren -geeignet ist insbesondere eine Potenzierung mit der dritten Potenz- in den linearen Farbraum zurücktransformiert wird, so dass eine sechste Sequenz mit den Signalen, beziehungsweise Farbwerten X, Y, Z entsteht.Programmable offsets are added to these products, resulting in a fourth data sequence. For the X ~ -Y ~ and Z ~ -Y ~ associated values of the fourth data sequence, a product of the first color component and L gain so that a fifth data sequence is created. This fifth data sequence is transformed back into the linear color space with the inverse conversion table or an approximation by exponentiation-in particular a exponentiation with the third power-so that a sixth sequence with the signals or color values X, Y, Z arises ,
Oftmals wird eine Darstellung in einer bestimmten Bildgröße vorgegeben. Um das gewünschte Format schnell ohne großen Rechenaufwand bereitzustellen, ist in Weiterbildung der Erfindung vorgesehen, zu den Abtastwerten des Sensors zwischen zwei aufeinanderfolgenden Zeilen und Spalten den Mittelwert zu berechnen und abzupeichern, so dass in einem Speicher ein Bild mit doppelter interpolierter Auflösung entsteht, wobei eine Adressrecheneinheit eine zur Abtastung synchrone Folge von rationalen Abtastpunkten eines Zielrasters vorgibt.Often a representation in a certain image size is given. In order to quickly provide the desired format without great computational effort, the invention provides for calculating and saving the mean value between the samples of the sensor between two successive rows and columns so that an image with twice the interpolated resolution is produced in a memory Address calculation unit specifies a sample synchronous sequence of rational sampling points of a target grid.
Von den vier für jedes Pixel zur Verfügung stehenden Farbkomponenten kann dann mittels einer geeigneten Einrichtung der Bildverarbeitungsvorrichtung der Farbvektor ausgewählt werden, dessen Adresse dem Zielwert am nächsten kommt. Die so ausgewählten Farbwerte können dann einer anschließenden Farbkorrektur unterzogen werden.Of the four color components available for each pixel, the color vector whose address comes closest to the target value can then be selected by means of a suitable device of the image processing device. The color values selected in this way can then be subjected to a subsequent color correction.
Insbesondere kann allgemein der Bilddatenstrom mit höherer Auflösung abgetastet, auf die doppelte Auflösung interpoliert und anschließend mit geringerer als die sensorseitige Auflösung an ein Endgerät ausgegeben werden.In particular, the image data stream may generally be scanned at a higher resolution, interpolated to twice the resolution, and then output to a terminal at less than the sensor-side resolution.
Der Bilddatenstrom, der an ein Endgerät ausgegeben wird, kann vorteilhaft noch DCT (DCT=„DiskreteThe image data stream that is output to a terminal can advantageously still DCT (DCT = Discrete
Cosinustransformation") codiert werden, um eine effektive Reduktion zu erhalten. Eine DCT-Kodierung kann sehr einfach ebenfalls durch Hardwarekomponenten, wie digitale
Signalprozessoren (DSPs) oder Multiplikationsakkumulatoren (MAKs) realisiert werden.Cosine Transform ") can be encoded to provide effective reduction DCT coding can also be easily achieved by hardware components such as digital Signal processors (DSPs) or Multiplikationsakkumulatoren (MAKs) can be realized.
Der Datenpuffer kann durch die erfindungsgemäße Verarbeitungsweise der Signale besonders bevorzugt einen Dual-Port-Ram umfassen. Derartige Speicher sind zwar nur klein, da aber die Daten in einem Pipeline-Prozess verarbeitet werden, können die Bildddaten fortlaufend vom Bildspeicher in den Dual-Port-Ram eingeschrieben und gleichzeitig andere Bilddaten dort wieder zurThe data buffer can particularly preferably comprise a dual-port RAM by the processing method according to the invention for the signals. Although such memories are only small, but since the data are processed in a pipeline process, the image data can be continuously written from the image memory in the dual-port RAM and at the same time other image data there again
Weiterverarbeitung ausgelesen werden. Dies ist ein wesentliches Element, um mittels einer Pipeline- Verarbeitung auch eine Echtzeit-Umrechnung der Bilddaten artefaktarm bereitzustellen.Further processing can be read out. This is an essential element in order to provide a real-time conversion of the image data by means of pipeline processing in a way that saves artefacts.
Die Erfindung wird nachfolgend genauer unter Bezugnahme auf die beigeschlossenen Zeichnungen erläutert. Es zeigen:The invention will be explained in more detail below with reference to the accompanying drawings. Show it:
Fig. 1 schematisch das Einlesen der Bilddaten in den Dual-Port-RAM,1 schematically shows the reading of the image data in the dual-port RAM,
Fig. 2 eine Convolver-Struktur derFig. 2 is a convolver structure of
BildverarbeitungsVorrichtung,Image processing device,
Fig. 3 einen auf doppelte Größe interpoliertenFig. 3 is a double size interpolated
Datensatz,Record,
Fig. 4 eine vereinfachte Prinzipschaltung eines YH-4 shows a simplified basic circuit of a YH
Convolvers der Bildverarbeitungsvorrichtung, undConvolvers the image processing apparatus, and
Fig. 5 ein Blockschaltbild eines optimiertenFig. 5 is a block diagram of an optimized
Pipelineprozessors zur Berechnung der Farbdaten,Pipeline processor for calculating color data,
Fig. 6 ein 7x7 Pixel großer Ausschnitt eines Bayer- Patterns mit Gewichtungsfaktoren für die
Berechnung eines RGB-Vektors des zentralen Pixels,Fig. 6 is a 7x7 pixel section of a Bayer pattern with weighting factors for the Calculation of a RGB vector of the central pixel,
Zur Lösung der Aufgabe, ein optimiertes Speicherinterface zu schaffen, das in der Lage ist, sowohl den Betrieb mitTo solve the task of creating an optimized memory interface that is capable of both operation
DDRAM' s als Bildspeicher, als auch die Bildung von großen Nachbarschaften der Größe ab 7x7 Pixel in Echtzeit zu unterstützen, werden die vom Sensor gelieferten Bildrohdaten von einem Analog-Digital-Unsetzer (ADU) in digitale Signale gewandelt und anschließend zeilenweise in einen aus einem oder mehreren DDRAM' s bestehenden Bildspeicher abgelegt. Nachdem ca. 32 Zeilen so gespeichert wurden, werden Bilddaten aus dem Speicher ausgelesen. Dieser Prozeß liest aus dem Bildspeicher kurze Zeilen mit 16 Pixel Länge und schreibt diese in einen schnellen Dual Port RAM, der seinerseits wiederum eine Registerstruktur füllt. Durch diese Maßnahme gelingt es, den Bildspeicher zu entlasten. Die resultierende Datenrate beim Lesen ist nur geringfügig größer als die Datenrate des Sensors, zudem wird am Ausgang eine um den Faktor 4 bis 8 höhere Datenrate bei Nutzung eines schnellen, relativ kleinen und damit gut integrierbaren Dual Port RAM' s erreicht. Um Zeitverluste beim Spaltensprung zu vermeiden, ist die Signalverarbeitung vorzugsweise schneller als die Pixelrate auselegt.DDRAM 's as image memory, as well as the formation of large neighborhoods of size from 7x7 pixels to support in real time, the raw image data supplied by the sensor of an analog-digital-Unsetzer (ADC) converted into digital signals and then line by line in one from a or more DDRAM's existing image memory. After about 32 lines have been stored, image data is read from the memory. This process reads from the image memory short lines of 16 pixels in length and writes them into a fast dual port RAM, which in turn fills a register structure. By this measure, it is possible to relieve the image memory. The resulting data rate during reading is only slightly larger than the data rate of the sensor. In addition, the output achieves a factor of 4 to 8 higher data rate when using a fast, relatively small and thus easily integrable dual port RAM. In order to avoid time losses in the column jump, the signal processing is preferably faster than the pixel rate auselegt.
Ein Beispiel für ein in Single Chip Farbkameras verwendetes Bayer-Pattern zeigt Fig. 1, andere bekannte Kombinationen verwenden z.B. C, M, Y. Aus Gründen der Übersichtlichkeit wird jedoch nur Bezug auf ein RGB-Pattern genommen. Es entsteht für jeden Farbkanal ein diskontinuierlichesAn example of a Bayer pattern used in single-chip color cameras is shown in FIG. 1, other known combinations use e.g. C, M, Y. For clarity, however, reference will only be made to an RGB pattern. It creates a discontinuous for each color channel
Signal, das in den Zwischenräumen interpoliert wird. Aus dem DDRAM werden, wie in Fig. 1 gezeigt, zeilenweise Daten an einen internen DualPort RAM übertragen, andererseits wird der DualPort RAM kontinuierlich mit einer Breite B (z.B. B=8 Pixel) gelesen, so dass ein Datenstrom der Größe
BxL, L- Länge des DualPort RAM (z.B.L=32 Pixel) entsteht. Dieser Datenstrom wird in die Convolver Structure nach Fig. 2 eingelesen und dort verarbeitet. Als besonders günstig hat sich eine Verarbeitungsbreite B=8 Pixel erwiesen, so dass zwei Pixel zeitgleich verarbeitet werden können.Signal interpolated in the interstices. From the DDRAM, as shown in Fig. 1, line by line data is transferred to an internal DualPort RAM, on the other hand, the DualPort RAM is continuously read with a width B (eg, B = 8 pixels), so that a data stream of size BxL, L- Length of the DualPort RAM (zBL = 32 Pixel) arises. This data stream is read into the convolver structure of FIG. 2 and processed there. A processing width B = 8 pixels has proven to be particularly favorable so that two pixels can be processed simultaneously.
Aus den Spalten werden jeweils zwei XYZ Farbwerte berechnet auf einer Länge von ca. 26 Pixel berechnet (siehe auch weiter unten) . Mithilfe einer Registerstruktur werden die Abtastwerte für eine Spalte so verzögert, dass zeitgleich 3 Abtastwerte einer Zeile bereitstehen. Dadurch können zwei vollständige 2x2 Nachbarschaften erzeugt werden, in denen dann das Farbbild auf die doppelte Auflösung linear interpoliert werden kann. Der so erhaltene Datensatz ist in Fig. 3 gezeigt, wobei interpolierte Daten schraffiert dargestellt sind.Two XYZ color values are calculated from the columns calculated over a length of about 26 pixels (see also below). A register structure is used to delay the samples for a column to provide 3 samples of a row at a time. As a result, two complete 2x2 neighborhoods can be created in which the color image can then be linearly interpolated to twice the resolution. The data set thus obtained is shown in FIG. 3, with interpolated data being shown hatched.
Das so interpolierte Bild kann dann durch Pixeldropping gebrochen rational auf die geforderte Auflösung skaliert werden, ohne dass störende Farbkanten im Bild sichtbar werden. Hierzu werden in einer nicht gezeigten Adresseinheit der Pitch des Zielrasters für die Abtastrichtungen x und y aufakkumuliert und der dem Ergebnis nächstliegende Interpolationswert ausgewählt. Mit dieser Betriebsart kann besonders bei vorherrschenden Farbkontrasten im Rot- bzw. Blaubereich eine relevante Qualitätsverbesserung erreicht werden.The thus interpolated image can then be scaled by pixel dropping rationally scaled to the required resolution without disturbing color edges in the image are visible. For this purpose, the pitch of the target grid for the scanning directions x and y are accumulated in an address unit (not shown), and the interpolation value closest to the result is selected. With this mode of operation, a relevant quality improvement can be achieved, especially in the case of predominant color contrasts in the red or blue area.
Im folgenden wird die allgemeine Farbverarbeitung beschrieben.The following describes general color processing.
Ziel der Verarbeitung ist es, aus den Primärfarben zunächst die Farbkomponenten im standardisierten XYZ - Farbraum zu berechnen und diese anschließend optimal zu korrigieren.
Wenn die Verstärkungen cyRt, CVG , CYB der Kanäle R, G, B geeignet angepasst sind, ergibt sich eine besonderes einfache Hardwarerealisierung für den Fall, dass die Summe der spektralen EmpfindlichkeitenThe aim of the processing is to first calculate the color components in the standardized XYZ color space from the primary colors and then to correct them optimally. If the gains c y Rt , C VG, C YB of the channels R, G, B are suitably matched, the result is a particularly simple hardware realization in the event that the sum of the spectral sensitivities
Y(X) = CynR(X) + 2CyGG(λ) + Cy8B(X) X(X) = cXRR(X) + cXGG(X)+ cXBB(X) Z(X) = C2nR(X) + cZGG(X)+ C28B(X)Y (X) = C yn R (X) + 2 CyG G (λ) + C y8 B (X) X (X) = c XR R (X) + c XG G (X) + c XB B (X) Z (X) = C 2n R (X) + c ZG G (X) + C 28 B (X)
annähernd der Heilempfindlichkeitskurve V(λ), bzw. der spektralen Empfindlichkeit des Y- Signals im XYZ- Farbraum entspricht, die übrigen Koeffizienten werden für X, beziehungsweise Z optimiert Unter dieser Voraussetzung kann die Interpolation mit einem einfach zu realisierenden, verschiebungsinvarianten (2n+l) x (2n+l) - Convolver realisiert werden. Ein optimales Verhältnis zwischen Aufwand und Performance ergibt sich für n=3, d.h. einen 7x7 Convolver, Werte der Matrix gerundet:approximately corresponds to the sensitivity curve V (λ), or the spectral sensitivity of the Y signal in the XYZ color space, the other coefficients are optimized for X, or Z. Under this condition, the interpolation with an easy to implement, shift-invariant (2n + l ) x (2n + l) - Convolver can be realized. An optimal relationship between effort and performance is obtained for n = 3, i. a 7x7 convolver, rounded values of the matrix:
Hierzu wurde das interpolierende Filter, das per Definition eine Tieppaßcharakteristik beinhaltet, mit einem phasenoptimierten 5x5 Schärfefilter kombiniert. Es wird nicht ausgeschlossen, daß sich gute Ergebnisse auch mit einer abweichenden Matrix erhalten lassen. Beispielsweise können die Werte der obigen Matrix auch jeweils um bis zu einem Faktor 1,5, jeweils gerundet auf ganze Zahlen abweichen. Die 7x7-Umgebung wird dabei unabhängig von der Pixelfarbe gebildet. So kann für jeden Pixel unabhängig von
der Farbe die damit errechnete Farbkomponente erhalten werden.For this purpose, the interpolating filter, which by definition includes a Tieppaßcharakteristik, combined with a phase-optimized 5x5 sharpness filter. It is not excluded that good results can be obtained even with a different matrix. By way of example, the values of the above matrix can also differ in each case by up to a factor of 1.5, in each case rounded to whole numbers. The 7x7 environment is formed independently of the pixel color. So can for each pixel regardless of the color thus obtained color component are obtained.
Wenn das Bayer-Signal mit einem derartigen Convolver gefaltet wird, entsteht ein scharfes Grauwertbild YH(x,y). Um den Aufwand der Faltungsoperation zu minimieren werden folgende Operationen durchgeführt:When the Bayer signal is convolved with such a convolver, a sharp gray-scale image YH (x, y) is produced. To minimize the effort of the convolution operation, the following operations are performed:
Zunächst wurden die Koeffizienten der Matrix so optimiert, dass eine kostengünstige Realisierung mit einer minimalenFirst, the coefficients of the matrix were optimized so that a cost-effective implementation with a minimum
Anzahl von schnellen Addern ohne Multiplizierer genügt. Im einzelnen wird die Berechnung ferner durch die Zentralsymmetrie der Matrix YH_Conv_7x7 unterstützt. Deshalb kann die Faltung wesentlich einfacher mit den Matrizen YH Conv 4x4 und Acc 4x4 realisiert werden:Number of fast adders without multiplier is sufficient. In detail, the calculation is further supported by the central symmetry of the matrix YH_Conv_7x7. Therefore folding can be realized much easier with the matrices YH Conv 4x4 and Acc 4x4:
Die Matrix Acc 4x4 ist im Anhang zur Beschreibung dargestellt . The Matrix Acc 4x4 is shown in the appendix to the description.
Die Matrix Acc_4x4, bildet zentralsymmetrisch die 4 Quadranten der 7x7 Nachbarschaft auf einen Quadranten ab und ist auf die akkumulierten Pixel normiert. Die WerteThe matrix Acc_4x4, center-symmetrically maps the 4 quadrants of the 7x7 neighborhood to a quadrant and is normalized to the accumulated pixels. The values
Pixa,b bezeichnen dementsprechend die Bilddaten der Pixel in relativer Positxon a,b zum Zentralpunkt, für den der Farbwert berechnet werden soll.Pix a , b accordingly denote the image data of the pixels in relative positon a, b to the central point for which the color value is to be calculated.
Die Matrix Acc_4x4 wird mittels der in Fig. 2 gezeigtenThe matrix Acc_4x4 is shown by means of that shown in FIG
Struktur zweckmäßig durch Addition der Grauwerte der Pixel
PixelO+Pixelβ, Pixell+Pixel5, Pixel2+Pixel4 sowie Pixell+Pixelδ, Pixel2+Pixel7, Pixel3+Pixel6Structure expedient by adding the gray values of the pixels PixelO + Pixelβ, Pixel + Pixel5, Pixel2 + Pixel4, and Pixel + Pixelδ, Pixel2 + Pixel7, Pixel3 + Pixel6
gebildet, Pixel3 für den linken und Pixel 4 für den rechten Streifen werden direkt in die 4x7 Register 100, 101 weiter gereicht. Anschließend erfolgt eine Akkumulation in vertikaler Richtung, gestrichelt eingezeichnet, Fig. 2.formed, Pixel3 for the left and pixel 4 for the right strip are passed directly into the 4x7 registers 100, 101 on. Subsequently, an accumulation in the vertical direction, shown in dashed lines, Fig. 2.
Eine weitere Vereinfachung der Berechnung ist durchAnother simplification of the calculation is through
Zusammenfassung in 3x3 Matrizen YH_Conv_3x3 sowie Acc_3x3 möglich:Summary in 3x3 matrices YH_Conv_3x3 and Acc_3x3 possible:
Aufgrund der Symmetrieeigenschaften kann die Faltungsoperation mit der Matrix YH_Conv_4x4 auf eine 3x3 Matrix YH_Conv_3x3 zurückgeführt werden, die dazugehörige Nachbarschaft wird durch Addition von Matrixelementen mit gleichen Koeffizienten aus Acc 4x4 berechnet.Due to the symmetry properties, the convolution operation with the matrix YH_Conv_4x4 can be reduced to a 3x3 matrix YH_Conv_3x3, the corresponding neighborhood is calculated by adding matrix elements with equal coefficients from Acc 4x4.
Selbstverständlich können die Einträge in den Matrizen Acc_4x4 und YH_Conv_4x4 jeweils gleichartig permutiert werden, ohne, daß sich das Faltungsergebnis ändert. Gleiches gilt auch für die entsprechenden vereinfachten Matrizen Acc 3x3 und YH Conv 3x3.
Die Matrix YH_Conv_3x3 kann weiter vereinfacht werden, indem eine Zerlegung in drei Matrizen ml, m2 und m3 erfolgt, so dass die physikalische Realisierung mit Addern optimierter Wortbreite und damit minimalem Aufwand erfolgen kann:Of course, the entries in the matrices Acc_4x4 and YH_Conv_4x4 can each be permuted in the same way, without the convolution result changing. The same applies to the corresponding simplified matrices Acc 3x3 and YH Conv 3x3. The matrix YH_Conv_3x3 can be further simplified by decomposing into three matrices ml, m2 and m3, so that the physical realization can take place with adders of optimized word width and thus minimal effort:
Es gilt:The following applies:
YH Conv 3x3=4096*ml+128*m2+4*m3;YH Conv 3x3 = 4096 * ml + 128 * m2 + 4 * m3;
Die Koeffizienten der Matrix YH_Conv_7x7 wurden so optimiert, dass das Faltungsergebnis mit der Matrix m3 für die meisten Fälle vernachlässigbar wird, da in realen Bildern auftretende Texturen mit dem Muster der Matrix nicht korrelieren und das Faltungsergebnis demzufolge gegen null konvergiert. Im Bedarfsfall kann die Matrix m3 oder auch in guter Näherung die Matrix m3a ergänzt werden.The coefficients of the matrix YH_Conv_7x7 have been optimized so that the convolution result with the matrix m3 becomes negligible for most cases, since textures occurring in real images do not correlate with the pattern of the matrix and the convolution result consequently converges to zero. If necessary, the matrix m3 or, to a good approximation, the matrix m3a can be supplemented.
Deshalb kann der YH-Convolver mit der vereinfachtenTherefore, the YH-Convolver with the simplified
Prinzipschaltung nach Fig. 4 realisiert werden. Man erhält für eine homogene Fläche als Beispiel das Ergebnis (gerundet) :Principle circuit of FIG. 4 can be realized. For a homogeneous surface, the result (rounded) is given as an example:
VW = 4251 cR R+ 8502cG G + 4251 cB B
Für die Farbberechnung wird ein zweites YL Signal verwendet, das im Gegensatz zu YH nicht hochpassgefiltert ist.VW = 4251 c R R + 8502 c G G + 4251 c B B The color calculation uses a second YL signal which, unlike YH, is not high-pass filtered.
YL kann durch Faltung von Acc_3x3 mit YL_Conv_3x3 berechnet werden:YL can be calculated by convolving Acc_3x3 with YL_Conv_3x3:
Diese Berechnung kann vorteilhaft mit einer Struktur nach Fig.3 realisiert werden, man erhält für eine homogen gefärbte Fläche daraus: This calculation can advantageously be realized with a structure according to FIG. 3, resulting in a homogeneously colored surface:
VL = 36 cR R+ 72 cG G + 36 cß ßVL = 36 c R R + 72 c G G + 36 c ß ß
Das Differenzsignal ΔYThe difference signal ΔY
ΔY=a [YH- 118YL)ΔY = a [YH-118YL]
wird zweckmäßig am Ausgang des Outputconverters gewichtet addiert, so kann ein mit dem Koeffizienten α in Echtzeit einstellbares und effizient wirkendes 7x7 Schärfefilter realisiert werden. Hiermit ist die Verarbeitung der Y- Signale abgeschlossen.If it is expediently added at the output of the output converter, then a 7 × 7 sharpness filter which can be set in real time using the coefficient α and works efficiently can be realized. This completes the processing of the Y signals.
Die Farbrechnung erfolgt im XYZ- Farbraum. Hierzu sind 4 unabhängige wirkende Farbinterpolatoren UVl, UV2, UV3, UV4 vorgesehen, die den 4 realisierbaren Verschiebungen des Zentralpunktes der 7x7 Nachbarschaft bezüglich des Bayer Pattern zugeordnet sind. Es erfolgt eine Faltung mit der Matrix Acc_4x4, wobei die Farbkomponenten RGB getrennt ausgegeben werden.
Für den Fall, dass der Zentralpunkt der 7x7 Nachbarschaft auf einen roten oder blauen Pixel fällt, kann die Faltung mithilfe der Umgebung Acc_3x3 erfolgen, die bereits bei der Berechnung von YH verwendet wurde. Die insgesamt 4 möglichen Faltungen mit den Matrizen Color Ml, Color M2, Color M3, Color M4 können parallel ausgeführt und damit 4 vollständige Farbvektoren, bei einem Bayer-Pattern mit roten, grünen und blauen Pixeln also Vektoren <R,G,B> erzeugt werden, von denen der jeweils gültige über einen Multiplexer ausgewählt wird.The color calculation takes place in the XYZ color space. For this purpose, 4 independent-acting color interpolators UV1, UV2, UV3, UV4 are provided which are assigned to the 4 realizable shifts of the central point of the 7x7 neighborhood with respect to the Bayer pattern. A convolution occurs with the matrix Acc_4x4, whereby the color components RGB are output separately. In the event that the central point of the 7x7 neighborhood falls on a red or blue pixel, the convolution can be done using the Acc_3x3 environment already used in the calculation of YH. The total of 4 possible convolutions with the matrices Color Ml, Color M2, Color M3, Color M4 can be performed in parallel and thus 4 full color vectors, in a Bayer pattern with red, green and blue pixels so vectors <R, G, B> generated of which the valid one is selected via a multiplexer.
Die Matrizen ColorMl bis ColorM4 sind in nachstehender Tabelle 1 zusammen mit Matrizen Ml bis M4 aufgelistet. Die Matrizen Ml bis M4 entsprechen jeweils der weiter oben angegebenen Matrix Acc_4x4 und bilden die Umgebung um den Zentralpixel der 7x7-Umgebung im Bayer Pattern ab. Wie anhand mit einem Vergleich mit der Matrix Acc_4x4 leicht zu sehen ist, ist der Eintrag links oben in diesen Matrizen Ml bis M4 jeweils der Zentralpixel. Im Bayer Pattern mit zwei grünen Pixeln und jeweils einem roten und blauen gibt es insgesamt 4 mögliche Pixelmuster, beziehungsweise 4 realisierbare Verschiebungen des Zentralpunktes der 7x7 Nachbarschaft bezüglich des Bayer Pattern. Für jeden dieser Fälle ist eine der Matrizen ColorMl,..., ColorM4 zugeordnet und die Faltung der Pixelwerte erfolgt mit dieser jeweiligen Matrix. Selbstverständlich können diese Matrizen auch auf andere Bayer-Pattern als RGB-Bayer-Pattern übertragen werden, wobei in diesem Fall dann der Eintrag „G" in den Matrizen Ml,..., M4 dem Pixel mit der häufigsten Farbe entspricht.
The matrices ColorMl to ColorM4 are listed in Table 1 below along with matrices Ml to M4. The matrices Ml to M4 respectively correspond to the matrix Acc_4x4 given above and map the surroundings around the central pixel of the 7x7 environment in the Bayer pattern. As can easily be seen from a comparison with the matrix Acc_4x4, the entry at the top left in these matrices Ml to M4 is the central pixel. In the Bayer pattern with two green pixels and one red and one blue there are a total of 4 possible pixel patterns, or 4 realizable shifts of the central point of the 7x7 neighborhood with respect to the Bayer pattern. For each of these cases one of the matrices ColorMl, ..., ColorM4 is assigned and the convolution of the pixel values is done with this respective matrix. Of course, these matrices can also be transferred to other Bayer patterns than RGB Bayer patterns, in which case the entry "G" in the matrices Ml, ..., M4 corresponds to the pixel with the most common color.
Die Matrizen ColorM2 und ColorM3 sind jeweils 3x3-Matrizen. Bei diesen Matrizen fällt der Zentralpunkt der 7x7 Nachbarschaft auf einen roten oder blauen Pixel, so daß eine weitere Reduktion auf die 3x3-Matrizen möglich ist.The matrices ColorM2 and ColorM3 are each 3x3 matrices. With these matrices, the central point of the 7x7 neighborhood falls on a red or blue pixel, so that a further reduction to the 3x3 matrices is possible.
Die Faktoren vor den Symbolen „R", „G", „B" in den Matrizen Ml,..., M4 geben an, wieviele verschiedene Pixel addiert werden. Anhand der Matrizen Ml bis M4 ist auch zu erkennen, welcher der Farbvektoren der jeweils gültige ist, denn die Matrixeinträge dieser Matrizen folgen demselben Muster wie
das Bayer Pattern. Ist beispielsweise der Zentralpunkt ein grüner Pixel in einer Reihe des Bayer Pattern mit einer Abfolge Grün-Rot-Grün-Rot..., so entspricht diese Position dem Farbmuster der Matrix Ml. Dementsprechend wird ein gültiger <R, G, B>-Vektor für den grünen Pixel durch Faltung der Matrix ColorMl mit der Umgebung Acc_4x4 erzeugt.The factors in front of the symbols "R", "G", "B" in the matrices Ml, ..., M4 indicate how many different pixels are added together is valid, because the matrix entries of these matrices follow the same pattern as the Bayer pattern. For example, if the central point is a green pixel in a row of the Bayer pattern with a sequence of green-red-green-red ..., then this position corresponds to the color pattern of the matrix Ml. Accordingly, a valid <R, G, B> vector for the green pixel is generated by convolution of the matrix ColorMl with the environment Acc_4x4.
Ist bei einem grünen Farbpixel hingegen die Reihe des Bayer-Pattern mit diesem Pixel mit abwechselnden grünen und blauen Pixeln belegt, wird entsprechend die Matrix ColorM4 mit der Umgebung Acc_4x4 gefaltet. Für rote und blaue Pixel werden die Matrizen ColorM2 und ColorM3 verwendet, wobei diese Matrizen mit der Umgebung Acc_3x3 gefaltet werden, um die gültigen Farbvektoren zu berechnen.If, on the other hand, the green pattern of the Bayer pattern is covered with alternating green and blue pixels, then the ColorM4 matrix will be convolved with the Acc_4x4 environment. For red and blue pixels, the matrices ColorM2 and ColorM3 are used, these matrices are convolved with the environment Acc_3x3 to calculate the valid color vectors.
Die Berechnung eines interpolierten Farbvektors wird anhand des in Fig. 6 gezeigten Beispiels nochmals anschaulich erläutert. Fig. 6 zeigt dazu eine 7x7-Umgebung eines grünen Farbpixels 60. In der Mitte der Felder ist mit den Buchstaben „R" „G" „B" jeweils die Farbe des Pixels symbolisiert. Der Pixel 60 ist in einer Reihe mit roten und grünen Pixeln angeordnet. Ein Vergleich mit den Matrizen Ml,..., M4 zeigt, daß die Matrix M4 mit dem Zentralpixel links oben das gleiche Farbmuster aufweist. Dementsprechend wird ein gültiger <R, G, B>-Vektor für den Pixel 60 durch Faltung der Pixelwerte der 7x7 Umgebung mit der Matrix ColorMl erzeugt. Die Faktoren der Matrix ColorMl sind jeweils links oben in die einzelnen Felder eingetragen. Die Indizes i,j der Pixel der Umgebung sind in den Feldern jeweils links unten eingetragen.The calculation of an interpolated color vector will be explained again with reference to the example shown in FIG. 6 shows a 7 × 7 environment of a green color pixel 60. In the middle of the fields, the color of the pixel is symbolized by the letters "R" "G" "B." The pixel 60 is in a row with red and green A comparison with the matrices Ml, ..., M4 shows that the matrix M4 with the central pixel at the top left has the same color pattern Accordingly, a valid <R, G, B> vector for the pixel 60 by convolution The pixel values of the 7x7 environment are generated with the matrix ColorMl.The factors of the matrix ColorMl are each entered in the upper left corner of the individual fields.The indices i, j of the pixels of the environment are entered in the fields on the bottom left.
Die Zuordnung der Faktoren erfolgt anhand der Matrix Acc_4x4, wobei die jeweiligen Pixel, wie in der Matrix Acc_4x4 angegeben, mit den Faktoren aus der Matrix ColorMl multipliziert werden. So steht der Zentralpixel PixO,O in
der Matrix Acc_4x4 an der Stelle (1,1). Die Matrix ColorMl gibt für diese Position einen Faktor 24 an, mit dem der Wert dieses Pixels multipliziert wird. Der Multiplikator an der Stelle (3,2) in ColorMl ist 48. Nach der Matrix Acc_4x4 werden dementsprechend die Pixelwerte der Pixel, die eine Reihe und zwei Spalten vom Zentralpixel entfernt sind, also die Pixel mit den Indizes (-1,-2), (-1,2), (1,-2) und (1,2) mit diesem Faktor 48 multipliziert.The assignment of the factors takes place on the basis of the matrix Acc_4x4, wherein the respective pixels, as indicated in the matrix Acc_4x4, are multiplied by the factors from the matrix ColorMl. So stands the central pixel PixO, O in of the matrix Acc_4x4 at the position (1,1). The ColorMl matrix specifies a factor of 24 for this position, which multiplies the value of that pixel. The multiplier at location (3,2) in ColorMl is 48. According to the matrix Acc_4x4, accordingly, the pixel values of the pixels which are one row and two columns away from the central pixel, ie the pixels with the indices (-1, -2) , (-1,2), (1, -2) and (1,2) multiplied by this factor 48.
Anders als bei Berechnung der Farbkomponente YH werden bei der Berechung des Farbvektors die Werte der einzelnen Farben durch den hardwareimplementierten Convolver getrennt addiert und ausgegeben.Unlike the calculation of the color component YH, when calculating the color vector, the values of the individual colors are added and output separately by the hardware-implemented convolver.
Zur weiteren Vereinfachung können Koeffizienten z.B. die Zahl 12 für ColorMl, 4 für ColorM4 und 36 für ColorM2, ColorM3 ausgeklammert und mit nachfolgenden Multiplizierern ausgeglichen werden.For further simplification, coefficients may e.g. the number 12 for ColorMl, 4 for ColorM4 and 36 for ColorM2, ColorM3 be excluded and compensated with subsequent multipliers.
Auf diese Art und Weise erhält man für jede Phasenlage des Bayerpatterns bezüglich der lokalen Umgebung interpolierte [R, G, B]- Werte, von denen der jeweils gültige Wert über einen Multiplexer weiter gereicht wird.In this way, for each phase position of the Bayer pattern with respect to the local environment, interpolated [R, G, B] values are obtained, from which the respective valid value is passed on via a multiplexer.
Die ortsinterpolierten Farbwerte <R,G,B> werden dann mit jeweils 3 Koeffizienten so gewichtet, dass eine bestmögliche Übereinstimmung mit dem Spektrum der Normfarbwerte X bzw. Z erreicht wird.The locally interpolated color values <R, G, B> are then weighted with 3 coefficients in each case in such a way that the best possible agreement with the spectrum of the standard color values X and Z is achieved.
Für eine homogen gefärbte Fläche ergeben die gewählten Koeffizienten für jede der Phasenlagen ein identisches Ausgangssignal in der Form
X = 144 cXR R+ 144 cXG G + 144 cxs BFor a homogeneously colored area, the chosen coefficients for each of the phase layers give an identical output in the form X = 144c XR R + 144c XG G + 144c xs B
YL = 36 cR R+ 72 cG G + 36 cB BYL = 36c R R + 72c G G + 36c B B
Z = 144 cm R+ 144 cZG G + 144 C28 ßZ = 144 c m R + 144 c ZG G + 144 C 28 ß
Mit diesen Gleichungen, beziehungsweise einer zur Berechnung der Gleichungen eingerichteten Recheneinrichtung können dann zu den den Pixeln zugeordneten interpolierten <R,G, B>-Farbvektoren die X, YL, Z-Farbwerte errechnet werden.The X, YL, Z color values can then be calculated with the aid of these equations, or a computing device set up for calculating the equations, to the interpolated <R, G, B> color vectors assigned to the pixels.
Am Ausgang der Recheneinrichtung entsteht damit ein mit dem CIE Lab-Farbmodell konformes X, YL, Z- Signal, ferner wird das Kontrastsignal YH-118YL bereitgestellt. Mit denThus, an X, YL, Z signal conforming to the CIE Lab color model is produced at the output of the computing device, and the contrast signal YH-118YL is also provided. With the
Koeffizienten kann ferner der Weißabgleich (<XN,YN,ZN>) erfolgen.Coefficients may also be white balance (<XN, YN, ZN>).
Um eine optimale Anpassung der Bildwiedergabe über einen Monitor zu erreichen, ist zu berücksichtigen, dass das menschliche Auge bei der Betrachtung des Originalbildes und eines Monitors unterschiedlich adaptiert ist. Bei der Darstellung von Mikroskopbildern ist dies besonders offensichtlich, da gut im Mikroskop sichtbare (dunkle) Strukturen mit hoher Dichte in Farbe und Kontrast auf dem Monitor nur schlecht dargestellt werden können. Deshalb wird eine Transformation benötigt, die die subjektive Farbwahrnehmung aus einem ersten Arbeitspunkt (z.B. Mikroskop) möglichst ohne subjektiv wahrnehmbare Farbveränderungen in einen zweiten Arbeitspunkt (z.B. Monitor in heller Umgebung) transformiert. Nach dem bekannten Stand der Technik wird dies durch eine sogenannte Gamma- Kennlinie erreicht, bei der jedoch Farbverfälschungen auftreten können. Besser geeignet ist das CIE_Lab- Modell 1976. Für die Koeffizienten L, a, b dieses Farbmodells gilt:
Z = 116 r - 16 a = 500 JT - 500 r b = 200 r - 200Z~ mitIn order to achieve optimum adaptation of the image reproduction via a monitor, it must be taken into consideration that the human eye is adapted differently when viewing the original image and a monitor. This is particularly evident in the representation of microscope images, as well visible in the microscope (dark) structures with high density in color and contrast can be displayed only poorly on the monitor. Therefore, a transformation is needed that transforms the subjective perception of color from a first operating point (eg microscope) as possible without subjective perceptible color changes in a second operating point (eg monitor in bright surroundings). According to the known state of the art, this is achieved by a so-called gamma characteristic, in which, however, color distortions can occur. More suitable is the CIE_Lab model 1976. For the coefficients L, a, b of this color model: Z = 116 r - 16 a = 500 JT - 500 rb = 200 r - 200Z ~
Der Vektor <XN,YN,ZN> ist der Weißpunkt des Gerätes. In der Bildverarbeitungsvorrichtung kann nach den oben beschriebenen Prinzipien in Echtzeit den Lab- Wert jedes Pixels berechnet und anschließend die Kennlinie durch geeignete Offsets im L-, a-, und b- Kanal verschoben und der verfügbare Farbraum mit Gain-Einstellungen für die L-, a- und b- Kanäle abgeglichen werden. Hiermit wird eine optimale empfindungsgerechte Anpassung der Farbqualität und einfache Bedienbarkeit des Farbabgleichs der Kamera erreicht.The vector <XN, YN, ZN> is the white point of the device. In the image processing apparatus, in accordance with the principles described above, the lab value of each pixel can be calculated in real time, and then the characteristic is shifted by suitable offsets in the L, a, and b channels, and the available color space with gain settings for the L, A and B channels are matched. This achieves optimum sensory adjustment of the color quality and ease of use of the color balance of the camera.
Bei der Aufnahme von technischen oder biologischen Objekten kann es vorkommen, dass Bilder entgegen der natürlichen Farbverteilung mit vorherrschendem Grün- bzw. Y- Anteil ein Histogramm aufweisen, in dem feine rote und blaue Bildpunkte häufig auftreten und wesentliche Informationen enthalten. In diesem Fall genügt die Auflösung des Bayer Patterns nicht. Deshalb ist es sinnvoll, das Bild mit
höherer Auflösung abzutasten und dann das interpolierte Digitalbild in Echtzeit für die Monitordarstellung herunterzuskalieren, so dass ein scharfer Bildeindruck entsteht. Es hat sich gezeigt, dass aus einem Bayer- Pattern erzeugte CIE-Lab korrigierte Bilddaten ohne subjektiv wahrnehmbare Kantenfehler durch ein lineares Upscaling auf die doppelte Auflösung in beiden Abtastrichtungen und anschließendes Pixeldropping besonders einfach in guter Qualität dargestellt werden können. Dadurch erscheinen dann auch blau/rot kontrastierte Objekte wie z.B. rote Schrift oder ein mikroskopische Blutbild auf dem Monitor mit scharfem Kontrast.When recording technical or biological objects, it may happen that images have a histogram, contrary to the natural color distribution with predominant green or Y content, in which fine red and blue pixels occur frequently and contain essential information. In this case, the resolution of the Bayer pattern is not enough. That's why it makes sense to use the picture To scan higher resolution and then downscale the interpolated digital image in real time for the monitor display, so that creates a sharp image impression. It has been shown that CIE-Lab corrected image data without subjectively perceptible edge errors can be represented particularly simply in good quality by a linear upscaling to twice the resolution in both scanning directions and subsequent pixel dropping. As a result, blue / red contrasting objects such as red text or a microscopic blood count on the monitor appear with sharp contrast.
Die Rückkonvertierung der Signale erfolgt in den XYZ - Farbraum des Monitors unter Berücksichtigung eines störenden Lichtoffsets mit einer gegenüber der ursprünglichen Quelle verschobenen spektralen Charakteristik, die durch einen Offset <L_off, a_off, b_off> dargestellt werden kann. Ferner entspricht der Dynamikbereich des Monitors zumeist nicht demThe backconversion of the signals takes place in the XYZ color space of the monitor, taking into account a disturbing light offset with a spectral characteristic shifted from the original source, which can be represented by an offset <L_off, a_off, b_off>. Furthermore, the dynamic range of the monitor usually does not correspond to the
Dynamikbereich des Quellbildes, so daß auch die Verstärkung der Kanäle L_gain (s/w Kontrast), a_gain (Rot/Grün Kontrast) und b_gain (Gelb/Blau Kontrast) entsprechend dem CIELab 1976 Modell abgeglichen werden können. Für eine kostengünstige Hardwareumsetzung in Echtzeit ist eine Umformung der Gleichungen sinnvoll, Xin,Yin, Zin beschreiben den XYZ Input, XYZ den korrigierten Output. Die Offsets werden mit einem externen Controller aus den Standardwerten <L_off, a_off,b_off> berechnet. Die Signale X~, T, T beschreiben die nichtlineare Transformation an der Augenkennlinie.Dynamic range of the source image, so that the gain of the channels L_gain (b / w contrast), a_gain (red / green contrast) and b_gain (yellow / blue contrast) can be adjusted according to the CIELab 1976 model. For a cost-effective hardware implementation in real time, a transformation of the equations makes sense, Xin, Yin, Zin describe the XYZ input, XYZ the corrected output. The offsets are calculated with an external controller from the default values <L_off, a_off, b_off>. The signals X ~, T, T describe the non-linear transformation on the eye characteristic.
X~ = -a_gain Yin~ + L_gain Yin~ + a_gain Xin~ + X_off r = L_gain Yin~ + Y_off
X ~ = -a_gain Yin ~ + L_gain Yin ~ + a_gain Xin ~ + X_off r = L_gain Yin ~ + Y_off
Somit werden die darstellbaren Farbwerte am Monitor optimal und leicht bedienbar an das Ausgabemedium angepasst, es entsteht ein naturgetreues Bild. Durch den einstellbaren Hochpass α (YH-YL) kann die Darstellung feiner Bilddetails angepasst werden. Die Differenz α (YH-YL) kann nichtlinear mit einer tangensförmigen Kennlinie verstärkt werden, dadurch reduziert sich das Farbrauschen in homogenen Flächen ohne dass die Konturschärfe beeinträchtigt wird.Thus, the displayable color values on the monitor are adjusted optimally and easily to the output medium, resulting in a lifelike image. The adjustable high-pass α (YH-YL) can be used to adjust the display of fine image details. The difference α (YH-YL) can be amplified non-linearly with a tangent-shaped characteristic, thereby reducing the color noise in homogeneous surfaces without affecting the contour sharpness.
Um Hardware im Pipelineprozessor für die Farbkorrektur zu optimieren ist es sinnvoll, die Offsets für die einzelnen Farbkanäle über die Parameter X_off, Y_off und Z_off zusammenzufassen und vor Ausführung der Berechnung in Echtzeit über einen Rechner bereitzustellen.In order to optimize hardware in the pipeline processor for color correction, it makes sense to summarize the offsets for the individual color channels via the parameters X_off, Y_off and Z_off and to provide them in real time via a computer before performing the calculation.
In Fig. 5 ist ein Blockschaltbild eines optimierten Pipelineprozessors 50 zur Berechnung der Farbdaten dargestellt. Die Konversionstabelle 51 am Eingang enthält die Tabelle zur Umwandlung von XYZ auf X~Y~Z~. Der Pipelineprozessor 50 läuft mit einem internen Takt mit der vierfachen Pixelfrequenz. Hierzu werden zunächst die XYZ Farbwerte in der Reihenfolge Y, Y, X, Z zu einem Datenstrom gemultiplext . Nach der Konvertierung wird der Wert Y~ mit negativem Vorzeichen versehen in einem Register gespeichert. Der Multiplexer steht während derFIG. 5 shows a block diagram of an optimized pipeline processor 50 for calculating the color data. The conversion table 51 at the input contains the table for converting XYZ to X ~ Y ~ Z ~. The pipeline processor 50 runs with an internal clock at four times the pixel frequency. For this purpose, first the XYZ color values are multiplexed in the order Y, Y, X, Z into a data stream. After the conversion, the value Y ~ is stored in a register with a negative sign. The multiplexer stands during the
Datengültigkeit von Y~ auf null, so dass am Ausgang eine Folge
-YirT , -Yirf , Xin~ -Yin~ , Zin~ -Yin~Data validity of Y ~ to zero, so that at the output a sequence -YirT, -Yirf, Xin ~ -Yin ~, Zin ~ -Yin ~
entsteht. Der nachfolgende Multiplexer 52 und der Multiplizierer 53 erzeugen zusammen eine Sequenz aus den Produkten:arises. The following multiplexer 52 and the multiplier 53 together generate a sequence of the products:
L_gain • Yin~ , L_gain • Yin~ , a_gain • ( Xin~ - Yin~) , b_gain- ( Zin~ - Yin~ ) ,L_gain • Yin ~, L_gain • Yin ~, a_gain • (Xin ~ - Yin ~), b_gain- (Zin ~ - Yin ~),
zu der im nächsten Schritt mittels des Multiplexers 54 und des Addierers 55 Offsets addiert werden, so dass eine Folgeto which in the next step by means of the multiplexer 54 and the adder 55 offsets are added, so that a sequence
L_gain • Yin~ , L_gain • Yin~ + Y_of f , a_gain • (Xin~ -Yin~ ) + X_of f , b_gain* ( Zin~ - Yin~) + Z_of fL_gain • Yin ~, L_gain • Yin ~ + Y_off, a_gain • (Xin ~ -Yin ~) + X_off, b_gain * (Zin ~ - Yin ~) + Z_of f
entsteht .arises.
Abschließend wird der Term L_gain*Y~ in einem Register 56 gespeichert und zu den TermenFinally, the term L_gain * Y ~ is stored in a register 56 and sent to the terms
L_gain • Yin~ + Y_off, a_gain ■ (Xin~ - Yin~) + X_off, b_gain -(Zin~ - Yin~) + Z_offL_gain • Yin ~ + Y_off, a_gain ■ (Xin ~ - Yin ~) + X_off, b_gain - (Zin ~ - Yin ~ ) + Z_off
addiert, damit erhält man die gewünschte Sequenzadded, so you get the desired sequence
„Undefiniert", Y~ , X~, Z~ , die direkt in die lineare Ausgangssequenz Y, X, Z durch Potenzieren transformiert werden kann. Hierbei kann auf den unteren Teil der Kennlinie für viele Applikationen verzichtet werden, falls nicht, kann dieser Teil über Multiplexer auch mit der im unteren Bereich definierten linearen Kennlinie ausgestattet werden.
"Undefined", Y ~, X ~, Z ~, which can be transformed directly into the linear output sequence Y, X, Z by exponentiation, whereby the lower part of the characteristic can be omitted for many applications, if not, this part can be omitted Multiplexer can also be equipped with the linear characteristic defined in the lower area.