-
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 A und
der
US 2003/0095703
A1 beschrieben.
-
Aus
dem
US-Patent 6,091,862
A 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 A 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
erforderli chen Algorithmen zur Rauschreduktion und zur Bildschärfe-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 Interpolations-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-atrixspeichers 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 Interpolatien 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.