Die Erfindung betrifft eine Einrichtung zur Interpolation und Filterung
von digitalen Bilddaten im Bayer-Mosaik mit einem Zeilenpuffer zur zeilenweisen
Abspeicherung von Bayer-Bilddaten aus einem seriellen, zeilenorientierten Datenstrom,
einem an den Zeilenpuffer angeschlossenen Matrixspeicher zur Zwischenspeicherung
einer Bilddatenmatrix in Bayer-Mosaik-Verteilung, einer Interpolations-Recheneinheit
am Ausgang des Matrixspeichers zur Interpolation von Bilddaten und zur Generierung
fehlender Farbwertpixel und Farbdifferenzpixel, und mit einer Filtereinheit zur
Filterung der durch die am Ausgang der Interpolations-Recheneinheit anliegenden
Bilddaten um einen RGB-Bilddatenstrom mit Rot-, Grün- und Blau-Informationen
im RGB-Format zu erzeugen.
Die Erfindung betrifft weiterhin eine digitale Kamera mit einem Bildsensor
mit einer Sensor-Matrix zur Erfassung von Bildblöcken mit entsprechend eines
Bayer-Mosaik angeordneten Farb-Informationen, wobei der Bildsensor mit der oben
beschriebenen Einrichtung verbunden ist. Bei der digitalen Bildbearbeitung ist die
Interpolation von Farb- und Helligkeitswerten von Bildpixeln aus Bildblöcken
ein an sich hinreichend bekanntes und gelöstes Problem. Insbesondere für
ladungsgekoppelte Bildsensoren (Charge-Device CCD), die in Bildkameras genutzt werden,
ist eine solche Interpolation erforderlich. Schaltungen und Verfahren zur Interpolation
sind z. B: in der EP 1 289 310 A2,
dem US-Patent 4,630,307 und der US 2003/0095703 A1 beschrieben.
Aus dem US-Patent 6,091,862 ist eine Schaltungsanordnung und ein Verfahren
zur Pixel-Interpolation von in einem so genannten Bayer-Mosaik angeordneten Bildblöcken
bekannt. Das Interpolationsergebnis wird durch Richtungsfaktoren für einzelne
Pixel verbessert, die in Abhängigkeit von der Texturrichtung der Bildpixel
bestimmt werden.
Aus dem US-Patent 6,549,233 B1 ist eine Farbinterpolationstechnik
für Bilder im Bayer-Mosaik bekannt, bei der im Bezug auf einen Bildpixel eines
Bildblocks die maximalen Gradienten der Bildpixelwerte bestimmt werden. Hierzu werden
die minimalen und maximalen Intensitätswerte der Bildpixel eines Bildblocks
bestimmt und gemittelt.
EP 0 632 633 A2 offenbart ein Interpolationsverfahren,
bei dem die Texturrichtung (Gradienten) aus der Differenz von Luminanzwerten in
vertikaler und horizontaler Bildrichtung bestimmt und mit einem Schwellwert verglichen
wird. Die Interpolation zusätzlicher Luminanzwerte erfolgt dann in Richtung
des erkannten Gradienten.
Ebenso ist in dem US-Patent 5,373,322 ein Interpolationsverfahren
beschrieben, bei dem die Gradienten (Texturrichtung von Bildpixeln) bestimmt und
die Interpolation in Abhängigkeit von der Texturrichtung durchgeführt
wird. Die Interpolation erfolgt hierbei linear.
Diesen beschriebenen Interpolationsverfahren liegt grundsätzlich
das Problem zugrunde, dass bei Digitalkameras Bilddaten über Sensor-Areas aufgenommen
werden, die an jeder Bildposition eine der möglichen drei Farbkomponenten (Rot,
Grün und Blau) aufnehmen. Die fehlenden Farbkomponenten der Farbpunkte müssen
nachträglich über den so genannten Demosaik-Vorgang rekonstruiert werden,
um ein komplettes Farbbild mit Rot-, Grün- und Blau-Informationen zu erhalten.
Die Sensoren in einem Digitalkamera-Sensor und die damit vorhandenen
Farbinformationen im Ausgangsbild des Digitalkamera-Sensors sind oftmals im so genannten
Bayer-Mosaik-Muster angeordnet, was eine bestimmte Anordnung von Rot-, Grün-
und Blau-Information beschreibt. Die fehlenden Farbkomponenten eines Bildpunktes
müssen nachträglich über dem Demosaik-Vorgang rekonstruiert werden,
um ein komplettes Farbbild mit Rot-, Grün- und Blau-Informationen (RGB) zu
erhalten.
Beim Demosaik-Vorgang werden die fehlenden Farbinformationen des Bildes
interpoliert, wobei auffällige und störende Fehler (Artefakte) auftreten
können, die vom angewendeten Algorithmus und vom Bildinhalt abhängig sind.
Besonders störend für den Betrachter sind so genannte Feder- oder Fransen-Artefakte,
die beim Interpolieren von Kanten auftreten.
Das übliche Demosaik-Verfahren ist, zu einem Bildpunkt die fehlenden
Komponenten durch lineare bzw. bilineare Interpolation aus den vorhandenen Farbwerten
der umliegenden acht Punkte zu berechnen. Es werden auch komplexere Interpolationstechniken
mit nicht linearen Filtern, wie Median-Filtern angewendet. Darüber hinaus gibt
es auch Anwendungen, die aus den vorhandenen Grün-Farbinformationen die Helligkeit
abschätzen und bei der Interpolation von Rot und Blau einbeziehen. Außerdem
gibt es Anwendungen, die versuchen, Kanten im Bildinhalt durch Analyse der Farb-Information
der umliegenden Punkte zu detektieren und diese bei der Interpolation möglichst
fehlerfrei zu rekonstruieren. Dabei handelt es sich meist um Software-Verfahren,
die die Möglichkeit ausnutzen, mehrere aufeinander folgende Berechnungsschritte
auf das gesamte Bild durchzuführen.
In Schaltungsimplementierungen kommen einfachere bilineare Verfahren
zum Einsatz, die üblicherweise die 3×3-Umgebung berücksichtigen und
damit zwei Zeilenspeicher benötigen, teilweise aber recht
starke Artefakte im Ausgangsbild zur Folge haben. Komplexere Verfahren erfordern
fast immer zumindest zusätzliche Zeilenspeicher.
Da die Bildsensoren immer höhere Auflösungen erzielen, wird
die Fläche für einen Sensor-Bildpunkt immer kleiner. Das hat zur Folge,
dass der Rauschabstand sich deutlich verschlechtert. Das erhöhte Rauschen wirkt
sich neben einem verschlechterten Bildeindruck auch nachteilig auf den Kompressionsfaktor
nachfolgender Datenreduktionsverfahren, beispielsweise nach dem JPEG oder MPEG-Standard
aus.
Um störende Artefakte und das Bildrauschen zu reduzieren, sowie
um die subjektive Bildschärfe zu optimieren, ist eine Bildnachbearbeitung durch
entsprechende Filter erstrebenswert. In diesem weiteren Filterverfahren wird somit
das Rauschen reduziert und die Bildschärfe optimiert, indem hochfrequente Bildanteile
adaptiv verstärkt oder gedämpft werden. Bildsignalverarbeitungseinheiten
benutzen eine Reihe von Zeilenspeichern, die in den fortlaufend ankommenden Bilddatenstromspeichern
speichern, um eine ausreichend große Nachbarschaft für die Interpolation
eines Pixels bereitzustellen zu können. Für eine Verarbeitungskette, bei
der die Filterung nach der Interpolation ausgeführt wird, werden zusätzliche
Zeilenspeicher für den interpolierten Rot-Grün-/Blaukanal benötigt.
Der Grund für diese mögliche Aufstellung der Verarbeitungskette ist, dass
viele Rauschreduktionsfilter entworfen sind, um auf RGB-Bilddaten zu arbeiten. Der
erhöhte Zeilenspeicherbedarf wirkt sich auf die Chipfläche und damit auf
die Produktionskosten aus.
Problematisch ist dabei die Entwicklung einer digitalen Schaltung
mit der Vorgabe, einen Bildpunkt je Takt berechnen zu können, dafür jedoch
ein Minimum an Chipfläche zu verbrauchen. Die horizontale Filterung ist dabei
relativ unproblematisch, da der serielle Datenstrom nur in wenigen Registern gespeichert
werden muss. Für die vertikale Filterung ist jedoch ein Pufferspeicher notwendig.
So sind für ein Fünf-Zeilen-Filter je Farbkomponente vier Zeilenspeicher
notwendig. Für einen Filter im RGB-Farbraum werden somit zwölf Zeilenspeicher
erforderlich. Durch eine Farbraumkonvertierung und ein Subsampling der Farbdifferenzsignale
könnte der erforderlichen Zeilenspeicher gegebenenfalls auf acht Zeilenspeicher
reduziert werden. Hinzu kommen dann noch mindestens zwei Zeilenspeicher mit Bayer-Daten
für das Demosaiking, um das Eingangsbild ausreichend genau interpolieren zu
können.
Für den Fall, dass mehrere Filteroperationen nacheinander ausgeführt
werden müssen, sind zudem für jeden weiteren Filterprozess erneut separate
Zeilenspeicher erforderlich. Es ist daher erstrebenswert, einen Filter zu verwenden,
der alle erforderlichen Algorithmen zur Rauschreduktion und zur Bildschärte-Optimierung
zu einem Prozess vereint.
Aufgabe der vorliegenden Erfindung ist es daher, eine verbesserte
Einrichtung zur Interpolation und Filterung von digitalen Bilddaten im Bayer-Mosaik
zu schaffen, die eine möglichst geringe Anzahl von Taktzyklen sowie möglichst
wenig Speicher benötigt, um auf geringster Fläche implementiert werden
zu können.
Die Aufgabe wird mit der Einrichtung der eingangs genannten Art dadurch
gelöst, dass die Interpolations-Recheneinheit eingerichtet ist, um am Ausgang
parallel alle für die Filtereinheit erforderlichen mehreren Bilddatenzeilen
bereitzustellen, und der Matrixspeicher in seiner Größe derart auf die
Interpolations-Recheneinheit abgestimmt ist, dass in von dem Matrixspeicher abgelegte
Bilddatenmatrix mindestens so groß ist, dass die Interpolations-Rechnereinheit
eine für die Filtereinheit ausreichende Anzahl an Bilddatenzeilen parallel
generieren kann. Dadurch, dass im Interpolations-Prozess (Demosaiking) alle für
den Filterprozess erforderlichen Ausgangsdaten parallel generiert werden, und nicht
wie herkömmlich nur eine Ausgangszeile berechnet wird, kann der Zeilenspeicher
für den Filter entfallen. Um eine ausreichende Anzahl Ausgangszeilen zu erhalten,
muss der Zeilenspeicher für den Interpolationsprozess erhöht werden. Da
jedoch die Bayer-Daten nur eine Farbkomponente je Bildpunkt enthalten, wird deutlich
weniger Zeilenspeicher benötigt, als im Stand der Technik. So reichen bereits
vier Zeilenspeicher aus, um fünf Zeilen mit Gründaten sowie jeweils drei
Zeilen mit relevanten Farbdifferenzsignalen R-G (Rot-Grün) und B-G (Blau-Grün)
parallel zu rekonstruieren. Die Anzahl der Zeilen mit Farbdifferenzsignalen ist
geringer, weil die äußeren beiden Zeilen aus den gleichen Bayer-Daten
interpoliert werden müssten, wie die benachbarten Zeilen, und so keine zusätzliche
Information enthalten, die zum Beispiel zur Rauschreduktion beiträgt.
Bei separaten Demosaiking- und Filter-Modulen wären zwei Zeilenspeicher
für das Demosaiking, vier Zeilenspeicher für Grün und jeweils drei
Zeilenspeicher für die Farbdifferenzsignale erforderlich. Insgesamt wären
somit zwölf Zeilenspeicher notwendig. Selbst bei Halbierung des Speicherbedarfs
durch Subsampling der Farbdifferenzsignale wären immer noch neun Zeilenspeicher
erforderlich.
Ein weiterer Vorteil des im Vergleich zum Stand der Technik vergrößerten
Demosaiking-Zeilenspeichers ist eine verbesserte symmetrische Kantenerkennung und
damit verbunden eine verbesserte Interpolation mit reduzierten Kanten- und Farbartefakten.
Der im Vergleich zum Stand der Technik größere Matrixspeicher für
die Bayer-Matrix kann parallel zur Texturerkennung des Filters genutzt werden.
Nachteilig ist der erhöhte Aufwand für das Demosaiking insbesondere
für die Kantenerkennung für die zusätzlichen Zeilen. Da jedoch ein
Teil der Berechnungen redundant ist und die erste und die letzte Zeile keine eigene
Kantenerkennung benötigen, wächst der Aufwand nicht linear, sondern deutlich
weniger. Der Aufwand für die Interpolation ist vernachlässigbar. Da jedoch
der Aufwand für das Demosaiking konstant bleibt, während die Größe
der Zeilenspeicher proportional zur horizontalen Auflösung des Bildsensors
wächst, vergrößert sich die Einsparung an Chipfläche mit steigender
Auflösung.
Vorzugsweise ist eine Texturerkennungseinheit mit dem Matrixspeicher
verbunden und so eingerichtet, um durch Zugriff auf die im Matrixspeicher abgelegte
Bilddatenmatrix Kanten und/oder Texturen in der Bilddatenmatrix zu detektieren.
Der Ausgang dieser Texturerkennungseinheit ist vorzugsweise mit der Interpolations-Recheneinheit
gekoppelt, um die Interpolations-Recheneinheit in Abhängigkeit von den detektierten
Kanten und/oder Texturen zu steuern.
Der Ausgang der Texturerkennungseinheit kann zudem mit einer Filtersteuereinheit
verbunden sein, die zur dynamischen Steuerung der Filtereinheit in Abhängigkeit
von den detektierten Kanten und/oder Texturen und/oder Texturklassifikationen eingerichtet
ist.
Um für die der Interpolation nachfolgende Filterprozesse keinen
weiteren Zeilenspeicher zu verwenden, sollten alle Algorithmen in einem Prozess
vereint werden. Dabei kann ausgenutzt werden, dass nicht alle Bildbereiche gleich
bearbeitet werden müssen. Das Rauschen wird beispielsweise besonders in dunklen
sowie in detailarmen Bildbereichen sichtbar. Die Ursache dafür ist das dynamische
Auflösungsvermögen des Auges. Es ist daher sinnvoll, eine Klassifizierung
der Umgebung eines Bildpunktes vorzunehmen, um die Filtercharakteristik anzupassen.
Dadurch ist zum Beispiel eine optimale Filterung von Kanten möglich. Um die
Steilheit einer Kante zu verbessern, ist nur eine Hochpassfilterung in einer Richtung
senkrecht zur Kante erforderlich. Parallel zur Kante kann dann zusätzlich eine
Tiefpassfilterung vorgenommen werden, um das Rauschen zu reduzieren. Um dies zu
ermöglichen, ist es sinnvoll, den Filter in einen Vertikal-Filter und einen
nachgeschalteten Horizontal-Filter aufzuteilen. Dadurch wird die Generierung der
Filter-Koeffizienten vereinfacht. Außerdem werden die Anzahl der Koeffizienten
und die Anzahl der erforderlichen Multiplizierer reduziert. Durch eine Modifizierung
des Vertikal-Filters sind auch diagonale Filterfunktionen möglich.
Eine Filterung der Grün-Komponente sowie der Farbdifferenzsignale
ist deshalb sinnvoll, da die Auflösung vorwiegend von der Grün-Komponente
bestimmt wird. Durch das Übersprechen aus den Farbkanälen enthält
die Grün-Komponente bereits einen vom jeweiligen Sensor abhängigen Rot-
und Blau-Anteil. Sie entspricht somit weitgehend dem Luminanz-Signal und kann dementsprechend
verarbeitet werden.
Vorzugsweise ist die Filtersteuerungseinheit somit zur Auswahl von
Filter-Koeffizienten in Abhängigkeit der aus den detektierten Kanten und/oder
Texturen generierten Steuerungssignalen eingerichtet. Damit sollte die Texturerkennungseinheit
zur Ermittlung der mittleren Helligkeit, des Kontrastes, von Bilddetails und/oder
dominierenden Kantenrichtungen als Steuersignale eingerichtet sein.
Die Erfindung wird nachfolgend anhand der beigefügten Zeichnungen
anhand eines Ausführungsbeispiels näher erläutert. Es zeigen:
1 – Blockdiagramm einer Ausführungsform
der Einrichtung zur Interpolation und Filterung von digitalen Bilddaten im Bayer-Mosaik;
2 – Blockdiagramm der Einrichtung aus
1 mit Detailansicht des Filters für den Grün-Kanal;
3 – Blockdiagramm einer Filtersteuereinheit
zur dynamischen Steuerung der Filtereinheit;
4a – 3×5 Bayer-Matrix für eine Fünf-Zeilen-Interpolation
mit Grün im Zentrum;
4b – 3×5 Bayer-Matrix für eine Fünf-Zeilen-Interpolation
mit Blau im Zentrum;
5 – Blockdiagramm einer Interpolations-Recheneinheit
zum Demosaiking von fünf Zeilen.
Die 1 lässt eine Einrichtung
1 zur Interpolation und Filterung von digitalen Bilddaten 2 im
Bayer-Mosaik erkennen. Die Bilddaten 2 werden in einen Zeilenpuffer
3 für vier Bildzeilen abgelegt, um einschließlich der aktuellen,
nicht zwischenzuspeichernden Bilddatenzeile in einem 5×5-Matrixspeicher
4 zur Zwischenspeicherung einer 5×5-Bilddatenmatrix in Bayer-Mosaik-Verteilung
abgelegt zu werden.
An den Ausgang des Matrixspeichers 4 ist eine Interpolation-Recheneinheit
5 angeschlossen, um in an sich bekannter Weise fünf Zeilen mit Grün-Daten
sowie jeweils drei Zeilen mit relevanten Farbdifferenzsignalen Rot-Grün (R-G)
und Blau-Grün (B-G) parallel zu rekonstruieren. Da die äußeren beiden
Zeilen der Bayer-Matrix aus den gleichen Bilddaten interpoliert werden müssen,
wie die benachbarten Zeilen, und so keine zusätzliche Information enthalten,
ist die Anzahl der Zeilen mit Farbdifferenzsignalen geringer als
die Anzahl der Grün-Daten.
Am Ausgang der Interpolations-Recheneinheit stehen fünf Zeilen
mit Grün-Informationen und sechs Zeilen mit Farbdifferenzinformationen an,
die an eine Filtereinheit 6 geleitet werden. Die parallele Bereitstellung
der Zeilen bietet den Vorteil, dass der Demosaik-Prozess und die nachfolgende Filterung
miteinander kombiniert werden können und damit Zeilenspeicher eingespart werden
kann. Dies wird durch den im Vergleich zum Stand der Technik größeren
Zeilenpuffer 3 und Matrixspeicher 4 sowie die parallele Interpolation
mehrerer Bildzeilen möglich.
Am Ausgang der Filtereinheit 6 steht dann ein RGB-Bilddatenstrom
7 an.
Die Nutzung des 5×5-Matrixspeichers 4 hat den Vorteil,
dass eine verbesserte symmetrische Kantenerkennung und damit verbunden eine verbesserte
Interpolation mit reduzierten Kanten- und Farbartefakten möglich ist. Hierzu
ist eine Texturerkennungseinheit 8 an den Matrixspeicher 4 angeschlossen,
um aus der zwischengespeicherten Bayer-Matrix Kanten und Texturen zu detektieren
und diese zu klassifizieren. Der Ausgang der Texturerkennungseinheit 8
ist an eine Interpolations-Steuerungseinheit 9 angeschlossen, um die Interpolations-Recheneinheit
in Abhängigkeit von den erkannten Kanten und Texturen anzusteuern.
Der Ausgang der Texturerkennungseinheit 8 ist weiterhin an
eine Filtersteuerungseinheit 10 angeschlossen, um die Filtereinheit
6 in Abhängigkeit von den detektierten Kanten und/oder Texturen und
insbesondere den Texturklassifikationen dynamisch zu steuern.
Die Einrichtung 1 zur Interpretation und Filterung von digitalen
Bilddaten 2 im Bayer-Mosaik ist in der 2 nochmals
im Detail erkennbar. Die digitalen Bilddaten 2 eines Bildsensors stehen
an einer zwölf-Bit-Leitung zur Verfügung, die an den Zeilenpuffer
3 angeschlossen ist. Die weitere Beschaltung des Matrixspeichers
4 und der Interpolations-Recheneinheit 5 entspricht der in
1 bereits dargestellten Form.
Erkennbar ist, dass die Texturerkennungseinheit 8 die Interpolations-Recheneinheit
5 über die Interpolationssteuerungseinheit 9 mit einer sechs-Bit-Leitung
ansteuert.
Weiterhin ist erkennbar, dass die Filtersteuereinheit 10
mit einem drei-Bit-Texturklassifikationssignal 11 und einem zwei-Bit-Kantenrichtungssignal
12 angesteuert wird. Das Texturklassifikationssignal 11 und das
Kantenrichtungssignal 12 werden in eine dynamische Filtermodus-Steuerungseinheit
13 geleitet, um in Abhängigkeit von den Texturklassifikationssignalen
11 und Kantenrichtungssignalen 12 eine geeignete Filtermaske zu
selektieren. Dies erfolgt mit Hilfe eines ersten Multiplexers 14 für
die vertikalen Filter-Koeffizienten und eines zweiten Multiplexers 15 für
die horizontalen Filter-Koeffizienten. Mit Hilfe dieser vertikalen und horizontalen
Filter-Koeffizienten wird ein 5×5-Vertikal- oder Diagonal-Filter
16 angesteuert, um im grünen Kanal aus fünf Zeilen mit Grün-Information
eine Zeile mit Grüninformation zu extrahieren. Diese Zeile wird in einen 5×1-Horizontal-Filter
17 geführt, der mit den horizontalen Koeffizienten beaufschlagt ist
und ein Grün-Bildsignal 18 am zwölf-Bit-Ausgang abgibt.
Die 3 lässt ein Blockdiagramm der
Filtersteuereinheit 10 erkennen. In Konfigurationsregistern 19
sind Filtermaskensätze abgelegt, die über einen Multiplexer
20 ausgewählt und als vertikale Grün-Filtermasken 21
und horizontale Grün-Filtermasken 22 zur Ansteuerung der Filtereinheit
6 an diese weitergeleitet werden können.
Die Ansteuerung des Multiplexers 20 erfolgt über eine
Textur-Klassifikation durch die Texturerkennungseinheit 8 mit Hilfe des
Textur-Klassifikationssignals 11 und des Kantenrichtungssignals
12.
Über einen Filtermodus 23 für die horizontale Filterung
der Chrominanz-Bilddaten und über einen Filtermodus 24 für die
vertikale Filterung der Chrominanz-Bilddaten wird in Verbindung mit dem Textur-Klassifikationssignal
11 und dem Kantenrichtungssignal 12, das die Richtung der Kanten
angibt, in einer horizontalen Chrominanz-Filter-Selektionseinheit 25 eine
Filtermaske 26 zur horizontalen Chrominanz-Filterung und mit Hilfe einer
vertikalen Chrominanz-Filterselektionseinheit 27 eine Filtermaske
28 für die vertikale Chrominanz-Filterung selektiert.
Die Struktur der Fünf-Zeilen-Interpolations-Recheneinheit
5 wird in Verbindung mit den 4 und 5
näher erläutert.
Die 4a zeigt eine 3×5-Bayer-Matrix für
die Fünf-Zeilen-Interpolation mit fünf Zeilen und drei Spalten und einer
Grün-Information G22 im Zentrum. Neben den Grün-Informationen
in den Zeilen sind Blau-Informationen BXY und Rot-Informationen RXY
jeweils in den Zeilen enthalten, wobei sich die Blau- und Rot-Informationen von
Zeile zu Zeile abwechseln.
Die 4b zeigt eine 3×5-Bayer-Matrix für
die Fünf-Zeilen-Interpolation mit Blau-Information B22 im Zentrum.
Die 5 lässt die Struktur des Fünf-Zeilen-Demosaiking
als Blockdiagramm erkennen.
Drei Pixel von Bilddaten aus der ersten Zeile der Bayer-Matrix werden
in eine 3×2 Kernel-Interpolationseinheit 29 geleitet, um eine Interpolation
mit drei Pixeln der zweiten Zeile der Bayer-Matrix durchzuführen und die erste
Zeile von Grün-Informationen zu erhalten. Diese wird als oberste Zeile der
Filtereinheit 6 zugeführt.
Die drei Pixel der ersten und zweiten Zeile der Bayer-Matrix werden
zusammen mit drei Pixeln der dritten Zeile in eine zweite 3×3 Kernel-Interpolationseinheit
30 geleitet, um die zweite Zeile mit Grün-Information sowie eine zweite
Zeile mit den Farbdifferenzwerten Blau-Grün (B-G) und Rot-Grün (R-G) zu
gewinnen.
Drei Pixel der zweiten Zeile, dritten Zeile und vierten Zeile der
Bayer-Matrix werden in eine dritte 3×3 Kernel-Interpolationseinheit
31 geleitet, um die dritte Zeile mit Grün-Information sowie die dritte
Zeile mit Farbdifferenzwerten Blau-Grün und Rot-Grün zu gewinnen. Die
dritte Zeile ist die Zeile im Zentrum des Filters.
Eine vierte 3×3 Kernel-Interpolationseinheit 32 wird
mit jeweils drei Pixeln der dritten, vierten und fünften Zeile der Bayer-Matrix
versorgt, um eine vierte Zeile mit Grün-Information sowie eine vierte Zeile
mit Farbdifferenzwerten Blau-Grün und Rot-Grün zu erzeugen.
Drei Pixel der vierten Zeile und fünften Zeile der Bayer-Matrix
werden in eine fünfte 3×2 Kernel-Interpolationseinheit 33 geleitet,
um die fünfte Zeile mit Grün-Information als unterste Zeile für das
Filter zu generieren.
Mit diesen Interpolationseinheiten 29 bis 33 können
somit parallel alle fünf Zeilen mit Grün-Information sowie die drei Zeilen
mit Farbdifferenzinformationen parallel erzeugt und der nachfolgenden Filtereinheit
6 zugeführt werden.
Es ist deutlich, dass die aus einem seriellen, zeilenorientierten
Datenstrom mit linearen RGB-Bayer-Daten 2 bestehenden Eingangs-Bilddaten
2 mit Hilfe des vier-Zeilenpuffers 3 in einen Datenstrom von fünf
Zeilen mit RGB-Bayer-Daten umgewandelt werden, der dann mit Hilfe von vier weiteren
Registerstufen auf eine 5×5-Matrix erweitert wird. Diese wird in der 5×5-Matrix
4 abgelegt. Der in der 5 dargestellte mehrzeilige
Demosaik-Prozess generiert hieraus einen Datenstrom von fünf Zeilen für
Grün sowie drei Zeilen mit den Farbdifferenzsignalen R-G und B-G. Die Ausgangsdaten
sind dann Basis für den anschließenden oben erläuterten Filterprozess.
Da die Grün-Komponente die höchste Auflösung besitzt
und den höchsten Anteil an der Helligkeit liefert, wird vorteilhafterweise
für die Grün-Komponente ein „Rausch-Reduktions- und Schärfe"-Algorithmus
(„Noise-Reduction and Sharpen-Filter") angewendet. Dabei werden für
jedes Pixel je nach Textur der umgebenden 5×5-Bayer-Matrix die Filter-Koeffizienten
neu bestimmt. In einer Registerbank befinden sich mehrere Sätze von Filter-Koeffizienten,
deren Charakteristik frei programmierbar ist. Es können zum Beispiel Tiefpass-Verhalten
zur Rauschreduktion oder Hochpass-Verhalten zur Erhöhung der Bildschärfe
programmiert werden. Ebenso sind Filterfunktionen mit Nullstellen möglich,
um bestimmte Frequenzanteile zu eliminieren.
Die Farbdifferenz-Komponenten werden separat gefiltert, um das Farbrauschen
und Farbartefakte durch Aliasing, welche durch geringere Verteilung der roten und
blauen Pixel im Bayer-Raster verursacht werden, effektiv unterdrücken zu können.
Die Bildschärfe wird dabei kaum beeinflusst. Das Farbdifferenz-Filter besteht
aus einem vierstufigen dynamischen Tiefpass, der in drei-Zeilen-Vertikal-Filter
und ein nachfolgendes sieben-Pixel-Horizontal-Filter aufgeteilt ist (2).
Gesteuert werden die Filter durch eine Textur-Klassifizierung, die
auf der 5×5-Bayer-Matrix basiert, sowie durch programmierte Schwellwerte und
Filter-Koeffizienten. Die Textur-Klassifizierung ermittelt die mittlere Helligkeit,
den Kontrast der Details sowie die dominierende Kantenrichtung (horizontal, vertikal,
diagonal, steigend oder fallend). Daraus werden Steuersignale für den Multiplexer
20 der Filter-Koeffizienten generiert. Damit kann eine optimale Anpassung
an den Bildinhalt, den verwendeten Bildsensor und dessen Optik erzielt werden.
Am Ausgang werden aus den Farbdifferenzsignalen durch Addition der
Grün-Komponente die Rot- und Blau-Komponenten generiert.