mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Bayer-Bild zurecht rücken


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Bonzo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht um die richtige Ansteuerung eines Mehrfarbendisplays aus LEDs 
aus einem Sensor heraus. Der Sensor hat einen programmierbaren DSP. Das 
Display liefert einen realen Ausschnitt des Farbsensors mit Zoom von 
1:2, 1:3, 1:4 etc.

Da das Farbdisplay eine besondere Farbansteuerung der Pixel hat, möchte 
ich das Bild farbrichtig verschieben. Als Beispiel für RGB nehme ich mal 
die erste Zeilen, die so aussehen wie im Pixelelement.

Um die Leuchtkraft für die einzele LED zu ermitteln, ermittle ich über 
ihre Position ein Verhältnis zur Interpolation der RGB-Pixel. Das 
funktioniert schon mit einem Testbild. Von Weitem sieht es sehr gut aus, 
d.h. Kante liegt auf Kante, bis auf das Ausfransen. Die Offsets durch 
die Lage der Pixel werden also wegkompensiert.

Dabei ist mir aber aufgefallen, dass der Sensor (Bayer) auch solche 
Offsets hat.

Wie wird das bei der Bayerconversion gemacht?
Nehme ich einfach ein 4-Farbbayerpixel und mittle die beiden grünen, 
dann liege ich geometrisch genau zwischen den blauen und roten, die 
ihrerseits in den Ecken des Qarees liegen.

Beziehe ich mich auf die Koordinate des Grünen, dann haben rot und blau 
jeweils einen halben Endpixel Versatz nach zur Seite und in der Höhe.

Müsste man das nicht korregieren?

Wie ist das bei TFTs? Wenn man dort einfach RGB ausgibt, haben die 3 
Bilder, die entstehen, ja auch diesen Halbpixelversatz.

Autor: Bonzo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich zeichne nochmals auf, was ich meine anhand einer Linie über 3 Pixel:

Nehe ich einfach die Pixelwerte aus dem Sensor, dann rückt das rote und 
das blaue Bild virtuell zur Seite und in der Höhe und ändert die Werte 
ab. Das wirkt sich auch auf das endliche Bild aus.

Autor: Valérien Wankelmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
De-Mosaicing Algo's gibt es fast soviel wie Idioten am Kalten Buffet:
https://www.google.de/search?ei=oAFxXbKSC4mYjLsPk7e12Aw&q=De-Mosaicing

Autor: Hamburger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bonzo schrieb:
> Dabei ist mir aber aufgefallen, dass der Sensor (Bayer) auch solche
> Offsets hat.
In der Tat hat der das. Das weiss der Sensor aber zunächst nicht, weil 
er von den Farbfiltern nichts weiß und nur Helligkeit abgibt.

> Wie wird das bei der Bayerconversion gemacht?
Das wäre deine Aufgabe sage ich einfach.

Bonzo schrieb:
> Wie ist das bei TFTs? Wenn man dort einfach RGB ausgibt, haben die 3
> Bilder, die entstehen, ja auch diesen Halbpixelversatz.
Ich nehme an, dass die die Hersteller berücksichtigen und die 
Pixelprozessoren die Bilder anpassen, wenn sie skalieren. Beim 
unskalierten Bild 1:1 sehe ich aber das Problem, dass dann der Kontrast 
nicht voll auszusteuern wäre, weil ein 01 ja irgendwie interpoliert 
werden müsste.

Wer weiß es?

Autor: Jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hamburger schrieb:
> Ich nehme an, dass die die Hersteller berücksichtigen und die
> Pixelprozessoren die Bilder anpassen, wenn sie skalieren. Beim
> unskalierten Bild 1:1 sehe ich aber das Problem, dass dann der Kontrast
> nicht voll auszusteuern wäre, weil ein 01 ja irgendwie interpoliert
> werden müsste.
>
> Wer weiß es?

Die Unterteilung in Subpixel wird außer für Textdarstellung und 
besonders hochqualitative Grafikdarstellung üblicherweise überhaupt 
nicht berücksichtigt.

Autor: Bonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jemand schrieb:
> Die Unterteilung in Subpixel wird außer für Textdarstellung und
> besonders hochqualitative Grafikdarstellung üblicherweise überhaupt
> nicht berücksichtigt.

Wie sollte das auch (z.B. für Textdarstellung) berücksichtigt werden?
Das erforderte eine Behandlung in der Verarbeitung des Bildes.
Ich mache das auch nur, weil die LEDs eine Sonderanordnung haben.

Autor: Fitzebutze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich dich richtig: Du willst die Artefakte vom Bayer-Pattern auf 
die Ausgabe-LED minimieren, bzw. die Auflösung optimieren, willst aber 
nicht den Weg Bayer -> RGB-Wert -> Ausgabe gehen, sondern für deinen 
speziellen Fall direkt konvertieren?
Dazu müsste man eben schon die gesamte Pattern-Anordnung und 
Farbcharakteristik deines LED-Arrays anschauen. Und oft bringt das 
genannte Subpixel-Smoothing für ein Farbbild gar nicht so viel. 
(Subpixel-Rendering wäre das Stichwort, zu dem du eine Menge Source 
findest).

Im Prinzip kannst du per bilineare Interpolation die Eingangs-Werte 
einer Farbe auf den zugehörigen Ausgang verteilen, damit hast du den 
Versatz auch abgefrühstückt, aber der simple Filter sorgt halt für 
Übersprechen. Du hast halt immer das Problem Auflösung versus Artefakte.
Das grössere Problem hätte ich jetzt aber eher beim Farbabgleich 
gesehen, denn die LEDs haben eine ganz andere Charakteristik als dein 
Bayer-Filter.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fitzebutze schrieb:
> Dazu müsste man eben schon die gesamte Pattern-Anordnung und
> Farbcharakteristik deines LED-Arrays anschauen.

Das ist das Problem. Das Display bekommt bereits einen fertigen 
Datenstrom im 1:1 Format. Dann macht Subpixel-Interpolation keinen Sinn.

Auf der Sensor-Seite ist das was anderes. Selbstredend wird das in 
Betracht gezogen. Entweder durch ganzzahliges Overscan oder durch 
Interpolation. Bei meinem BC steckt es in den umschaltbaren 
Filterkurven. Wenn man nicht nur den Sensor, sondern auch die Anwendung 
/ Optik kennt, kann man diese auf die Bayer-Conversion anpassen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.