-
Die Erfindung betrifft allgemein die Verarbeitung von Farbbildern, insbesondere die Verarbeitung von Rohdaten in darstellbare Formate.
-
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.
-
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 eine 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ässt und farbechte, artefaktärmere Darstellungen in Echtzeit erlaubt.
-
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.
-
Die Anforderungen bedingen ein Signalverarbeitungskonzept, das auf einer möglichst großen Nachbarschaft basiert, in der Regel sind dies bei hohen Qualitätsforderungen minimal 7×7 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 DDR-SDRAM's (double data rate synchronous dynamic random access memory) als Speicherbausteine enthalten, die mit hoher Effizienz nur zeilenorientierte Blockzugriffe realisieren können. Große integrierte SDRAM-Bereiche erfordern Chipfläche und sind deshalb nachteilig.
-
Der Fachartikel ”Programmable 2D Linear Filter for Video Applications”, W. Kamp et al., IEEE Journal of Solid-State Circuits, Vol. 25, No. 3, Juni 1990, beschreibt einen schnellen zweidimensionalen Filter zur Rauschunterdrückung und Konturerkennung. Die Filteroperation basiert auf einer 7×7-Umgebung.
-
Aus dem Artikel ”Image Processing Chain for Digital Still Cameras”, A. Gentile et al., IEEE Parallel Processing Workshop (ICPPW 2005), Seiten 215 bis 222 ist es bekannt, eine Kette von Bildverarbeitungsschritten in einem sogenannten portablen Multimedia-Supercomputer (PMMS) durchzuführen. Im Speziellen wird gezeigt, daß die Bildverarbeitungskette vom Auslesen der Daten des Bayer-Pattern bis zur JPEG-Kompression implementiert werden kann.
-
Um die RGB-Farbwerte aus dem Bayer-Pattern zu ermitteln, wird eine einfache Interpolation durchgeführt. So werden für den Grauwert der blauen Farbkomponente die Grauwerte der nächsten vier blauen Nachbarn interpoliert. Für die Grün-Werte wird eine Interpolation der nächsten zwei Grün-Pixel eingesetzt.
-
Der Übersichtsartikel ”Color Image Processing Pipeline”, R. Ramanath et al., IEEE Signal Processing Magazine, January 2005, S. 34–43, gibt einen generellen Überblick über den Bildverarbeitungskette. Dieser wird zuerst aus Sicht der Signalverarbeitung, anschließend aus der Ausführungssicht jeweils zusammen mit den Vor-/Nachteilen, beschrieben.
-
Der Artikel ”Demosaicking: Color Filter Array Interpolation”, B. K. Guntruk et al., IEEE Signal Processing Magazine, January 2005 S. 44–54, gibt einen generellen Überblick über den Bildverarbeitungsprozess und die Korrelation zwischen den einzelnen Farbbildern einer Ein-Chip-Digitalkamera. Dabei wird auch intensiv auf die Vor-/Nachteil der unterschiedlichen Interpolationsmethoden eingegangen.
-
In der Patentschrift
DE 199 83 600 T1 wird ein Verfahren beschrieben, das einen Skalierbereich definiert, indem es in einem Farbfilterarray (CFA) einen Standort anzeigt, und das eine Superpixel erzeugt, welches eine maßstäblich verkleinerte Version des Skalierbereiches ist, wobei das Superpixel vollständig farbinterpoliert ist, wobei das maßstäbliche Verkleinern und die Farbinterpolation auf eine integrierte Weise erreicht werden.
-
In der Patentschrift
US 2006/0133697 A1 wird ein Verfahren und eine Vorrichtung zur Verarbeitung von Bilddaten beschrieben, die gemäß einem Farbfilterfeld (CFA) erzeugt werden, wie z. B. einem Bayer-CFA. Die Bilddatenverarbeitung beinhaltet das Erzeugen von Klassifizieren aus den Bilddaten, das gerichtete Interpolieren einer vorgegebenen Farbkomponente aus den Bilddaten in Abhängigkeit von den Klassifizieren und das Erzeugen von Chrominanzkomponenten aus der gerichtet interpolierten, vorgegebenen Farbkomponente und Bilddaten für wenigstens eine andere Farbkomponente außer der vorgegebenen Farbkomponente.
-
Der Fachartikel ”A new CFA interpolation framework”, R. Lukac et al., Signal Processing, Vol. 86, Issue 7, July 2006, S. 1559–1579, beschreibt eine neue CFA-Interpolationstechnik für Digitalkameras. Das Verfahren verwendet einen adaptiven kantensensitiven Mechanismus, welcher horizontal, vertikal und diagonal operiert, um die nicht verfügbaren Farbkomponenten zu interpolieren.
-
Der Fachartikel ”Primary-Consistent Soft-Decision Color Demosaicking for Digital Cameras”, W. Xiaolin et al., IEEE Transactions an Image Processing, Vol. 13, Issue 9, S. 1263–1274, beschreibt ein Verfahren, in dem verschiedene Annahmen bezüglich der fehlenden Farbkomponente in Abhängigkeit der Kanten- oder Texturrichtungen getroffen werden und der am besten passende in einem statistischen oder Interferenzprozess ausgewählt wird.
-
Der Fachartikel ”Color Filter Array Demosaicking: New Method and Performance Measures”, L. Wenmiao et al., IEEE Transactions an Image Processing, Vol. 12, Issue 10, S. 1194–1210, beschreibt eine neue CFA-Interpolationsmethode sowie ein Gütekriterium um die Effizienz von CFA-Interpolationsmethoden zu beurteilen. Die Interpolationsmethode besteht dabei aus zwei Schritten. Der erste Schritt berechnet die fehlenden Farbkomponenten anhand räumlicher und spektraler Korrelation zwischen den einzelnen Pixeln. Der zweite Schritt unterdrückt erkennbarer Interpolationsartefakte anhand einer adaptiven Medianfilterung.
-
Die Erfindung sieht eine digitale Bildverarbeitungsvorrichtung mit einem Bayer-Sensor und einem Bildspeicher vor, wobei die Bilddaten des Sensors in einen 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 + 1)×(2n + 1) Nachbarschaften zusammengefasst werden, und mittels der Recheneinrichtung daraus eine oder mehrere (n + 1)×(n + 1) Matrizen abgeleitet werden, und aus dieser oder diesen (n + 1)×(n + 1) Matrix(en) mithilfe weiterer Addierwerke mindestens eine n×n Matrix gebildet wird, und daraus 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 wiedegibt. Die Berechnung erfolgt vorzugsweise durch Faltung mit einem geeigneten Convolver, insbesondere einem Convolver der Größe n×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 + 1)×(2n + 1) Nachbarschaften mit n = 3, entsprechend also mittels eines 7×7-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.
-
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.
-
Es ist außerdem vorteilhaft, mittels der Recheneinrichtung aus der n×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 und diese vierte Farbkomponente anstelle der ersten Farbkomponente (YH) zur Berechnung einer Farbkorrektur verwendet wird, wobei ein aus der Differenz der ersten und vierten Farbkomponente (YH–YL) abgeleitetes Signal auf das korrigierte Ausgangssignal addiert wird. Auf diese Weise kann ein einfacher, effektiver Schärfefilter realisiert werden.
-
In Weiterbildung der Erfindung kann die Bildverarbeitungsvorrichtung vorteilhaft eingerichtet sein, die Farbkomponenten über programmierbare Gaineinstellungen auf eine 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. 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. 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 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.
-
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. 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. 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.
-
Der Bilddatenstrom, der an ein Endgerät ausgegeben wird, kann vorteilhaft noch DCT (DCT = ”Diskrete Kosinustransformation”) codiert werden, um eine effektive Reduktion zu erhalten. Eine DCT-Kodierung kann sehr einfach ebenfalls durch Hardwarekomponenten, wie digiale Signalprozessoren (DSPs) oder Multiplikationsakkumulatoren (MAKs) realisiert werden.
-
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 zur Weiterverarbeitung ausgelesen werden. Dies ist ein wesentliches Element, um mittels einer Pipeline-Verarbeitung auch eine Echtzeit-Umrechnung der Bilddaten artefaktarm bereitzustellen.
-
Die Erfindung wird nachfolgend genauer unter Bezugnahme auf die beigeschlossenen Zeichnungen erläutert. Es zeigen:
-
1 schematisch das Einlesen der Bilddaten in den Dual-Port-RAM,
-
2 eine Convolver-Struktur der Bildverarbeitungsvorrichtung,
-
3 einen auf doppelte Größe interpolierten Datensatz,
-
4 eine vereinfachte Prinzipschaltung eines YH-Convolvers der Bildverarbeitungsvorrichtung, und
-
In 5 ein Blockschaltbild eines optimierten Pipelineprozessors zur Berechnung der Farbdaten,
-
Um zunächst ein optimiertes Speicherinterface zu schaffen, das in der Lage ist, sowohl den Betrieb mit DDR-SDRAM's als Bildspeicher, als auch die Bildung von großen Nachbarschaften der Größe ab 7×7 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 DDR-SDRAM'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.
-
Ein Beispiel für ein in Single Chip Farbkameras verwendetes Bayer-Pattern zeigt 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 diskontinuierliches Signal, das in den Zwischenräumen interpoliert wird. Aus dem DDR-SDRAM werden, wie in 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 B×L, L-Länge des DualPort RAM (z. B. L = 32 Pixel) entsteht. Dieser Datenstrom wird in die Convolver Structure nach 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.
-
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 2×2 Nachbarschaften erzeugt werden, in denen dann das Farbbild auf die doppelte Auflösung linear interpoliert werden kann. Der so erhaltene Datensatz ist in 3 gezeigt, wobei interpolierte Daten schraffiert dargestellt sind.
-
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.
-
Im folgenden wird die allgemeine Farbverarbeitung beschrieben.
-
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 c
YR, c
YG, c
YB der Kanäle R, G, B geeignet angepasst sind, ergibt sich eine besonderes einfache Hardwarerealisierung für den Fall, dass die Summe der spektralen Empfindlichkeiten
Y(λ) = cYRR(λ) + 2cYGG(λ)+ cYBB(λ) X(λ) = cXRR(λ) + cXGG(λ) + cXBB(λ) Z(λ) = cZRR(λ) + cZGG(λ) + cZBB(λ) annähernd der Hellempfindlichkeitskurve V(λ), bzw. der spektralen Empfindlichekit des Y-Signals im XYZ-Farbraum entspricht, die übrigen Koeffizienten werden für X bzw. Z optimiert Unter dieser Voraussetzung kann die Interpolation mit einem einfach zu realisierenden, verschiebungsinvarianten (2n + 1)×(2n + 1) Convolver realisiert werden. Ein optimales Verhältnis zwischen Aufwand und Performance ergibt sich für n = 3, d. h. einen 7×7 Convolver, Werte der Matrix gerundet:
-
Hierzu wurde das interpolierende Filter, das per Definition eine Tieppaßcharakteristik beinhaltet, mit einem phasenoptimierten 5×5 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.
-
Wenn das Bayer-Signal mit einem derartigen Convolver gefaltet wird, entsteht ein scharfes Grauwertbild Y
H(x, y). Um den Aufwand der Faltungsoperation zu minimieren werden folgende Operationen durchgeführt:
Zunächst wurden die Koeffizienten der Matrix so optimiert, dass eine kostengünstige Realisierung mit einer minimalen Anzahl von schnellen Addern ohne Multiplizierer genügt. Im einzelnen wird die Berechnung ferner durch die Zentralsymmetrie der Matrix YH_Conv_7×7 unterstützt. Deshalb kann die Faltung wesentlich einfacher mit den Matrizen YH_Conv_4×4 und Acc_4×4 realisiert werden:
-
Die Matrix Acc_4×4, bildet zentralsymmetrisch die 4 Quadranten der 7×7 Nachbarschaft auf einen Quadranten ab und ist auf die akkumulierten Pixel normiert. Die Werte Pixa,b bezeichnen dementsprechend die Bilddaten der Pixel in relativer Position a, b zum Zentralpunkt, für den der Farbwert berechnet werden soll.
-
Die Matrix Acc_4×4 wird mittels der in 2 gezeigten Struktur zweckmäßig durch Addition der Grauwerte der Pixel Pixe10 + Pixe16, Pixe11 + Pixe15, Pixe12 + Pixe14 sowie Pixe11 + Pixe18, Pixe12 + Pixe17, Pixe13 + Pixe10 gebildet, Pixe13 für den linken und Pixel 4 für den rechten Streifen werden direkt in die 4×7 Register 100, 101 weiter gereicht. Anschließend erfolgt eine Akkumulation in vertikaler Richtung, gestrichelt eingezeichnet, 2.
-
Eine weitere Vereinfachung der Berechnung ist durch Zusammenfassung in 3×3 Matrizen YH_Conv_3×3 sowie Acc_3×3 möglich:
-
Aufgrund der Symmetrieeigenschaften kann die Faltungsoperation mit der Matrix YH_Conv_4×4 auf eine 3×3 Matrix YH_Conv_3×3 zurückgeführt werden, die dazugehörige Nachbarschaft wird durch Addition von Matrixelementen mit gleichen Koeffizienten aus Acc_4×4 berechnet.
-
Die Matrix YH_Conv_3×3 kann weiter vereinfacht werden, indem eine Zerlegung in drei Matrizen m1, m2 und m3 erfolgt, so dass die physikalische Realisierung mit Addern optimierter Wortbreite und damit minimalem Aufwand erfolgen kann:
-
Es gilt: YH_Conv_3×3 = 4096·m1 + 128·m2 + 4·m3;
-
Die Koeffizienten der Matrix YH_Conv_7×7 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.
-
Deshalb kann der YH-Convolver mit der vereinfachten Prinzipschaltung nach 4 realisiert werden. Man erhält für eine homogene Fläche als Beispiel das Ergebnis (gerundet): YH = 4251cRR + 8502cGG + 4251cBB
-
Für die Farbberechnung wird ein zweites YL Signal verwendet, das im Gegensatz zu YH nicht hochpassgefiltert ist.
-
Y
L kann durch Faltung von Acc_3×3 mit YL_Conv_3×3 berechnet werden:
-
Diese Berechnung kann vorteilhaft mit einer Struktur nach 3 realisiert werden, man erhält: YL = 36cRR + 72cGG + 36cBB
-
Das Differenzsignal ΔY ΔY = α(YH – 118YL) wird zweckmäßig am Ausgang des Outputconverters gewichtet addiert, so kann ein mit dem Koeffizienten α in Echtzeit einstellbares und effizient wirkendes 7×7 Schärfefilter realisiert werden. Hiermit ist die Verarbeitung der Y-Signale abgeschlossen.
-
Die Farbrechnung erfolgt im XYZ-Farbraum. Hierzu sind 4 unabhängige wirkende Farbinterpolatoren UV1, UV2, UV3, UV4 vorgesehen, die den 4 realisierbaren Verschiebungen des Zentralpunktes der 7×7 Nachbarschaft bezüglich des Bayer Pattern zugeordnet sind. Es erfolgt eine Faltung mit der Matrix Acc_4×4, wobei die Farbkomponenten RGB getrennt ausgegeben werden.
-
Für den Fall, dass der Zentralpunkt der 7×7 Nachbarschaft auf einen roten oder blauen Pixel fällt, kann die Faltung mithilfe der Umgebung Acc_3×3 erfolgen, die bereits bei der Berechnung von YH verwendet wurde. Es werden insgesamt 4 Faltungen mit den Matrizen Color M1, Color M2, Color M3, Color M4 parallel ausgeführt und damit 4 Vektoren <R, G, B> erzeugt, von denen der jeweils gültige über einen Multiplexer ausgewählt wird.
-
-
Zur weiteren Vereinfachung können Koeffizienten z. B. die Zahl 12 für ColorM1, 4 für ColorM4 und 36 für ColorM2, ColorM3 ausgeklammert und mit nachfolgenden Multiplizierern ausgeglichen werden.
-
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.
-
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.
-
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 = 144cXRR + 144cXGG + 144cXBB YL = 36cRR + 72cGG + 36cBB Z = 144cZRR + 144cZGG + 144cZBB
-
Am Ausgang entsteht ein mit dem CIE Lab-Farbmodell konformes X, YL, Z-Signal, ferner wird das Kontrastsignal YH-118YL bereitgestellt. Mit den Koeffizienten erfolgt ferner der Weißabgleich (<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 sogenante Gamma-Kennlinie erreicht, bei der jedoch Farbverfälschungen auftreten können. Besser geeignet ist das CIE_Lab-Modell 1976.
L = 116Y~ – 16 a = 500X~ – 500Y~ b = 200Y~ – 200Z~ mit
-
Der Vektor <XN, YN, ZN> ist der Weißpunkt des Gerätes. In der Digitalkamera berechnet man nach den oben beschriebenen Prinzipien in Echtzeit den Lab-Wert jedes Pixels und verschiebt anschließend die Kennlinie durch geeignete Offsets im L, a und b-Kanal und gleicht den verfügbaren Farbraum mit Gain-Einstellungen für die L, a und b-Kanäle ab. Hiermit wird eine optimale empfindungsgerechte Anpassung der Farbqualität und einfache Bedienbarkeit des Farbabgleichs der Kamera erreicht.
-
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 down zu scalen, 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.
-
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 dem 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. 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~, Y~, Z~ beschreiben die nichtlineare Transformation an der Augenkennlinie. X~ = –a_ gain Yin~ + L_gain Yin~ + a_gain Xin~ + X_off Y' = L_gain Yin~ + Y_off Z~ = –b_gain Yin~ + L_gain Yin~ + b_gain Zin~ + Z_off X_off = 1 / 500 a_off – 1 / 29L_gain + 1 / 116L_off + 1 / 29 Y_off = – 4 / 29L_gain + 1 / 116L_off + 4 / 29 Z_off = – 1 / 200b_off – 1 / 29L_gain + 1 / 116L_off + 1 / 29
-
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.
-
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 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 der Datengültigkeit von Y~ auf null, so dass am Ausgang eine Folge –Yin~, –Yin~, Xin~ – Yin~, Zin~ – Yin~ entsteht. Der nachfolgende Multiplexer 52 und der Multiplizierer 53 erzeugen zusammen eine Sequenz aus den Produkten: 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 Folge L_gain·Yin~, L_gain·Yin~ + Y_off, a_gain·(Xin~ – Yin~) + X_off, b_gain·(Zin~ – Yin~) + Z_off. entsteht.
-
Abschließend wird der Term L_gain·Y~ in einem Register 56 gespeichert und zu den Termen L_gain·Yin~ + Y_off, a_gain·(Xin~ – Yin~) + X_off, b_gain·(Zin~ – Yin~) + Z_off addiert, damit erhält man die gewünschte Sequenz „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.