Forum: Digitale Signalverarbeitung / DSP / Machine Learning Abtasttheorem angewendet auf Bildformate


von Michael W. (Gast)


Lesenswert?

Das Abtasttheorem streng angewendet, bedeutet, dass man keine Frequenzen 
unterhalb der halben Abtsatfrequenz auflösen kenn. Auf Bildformate 
bezogen, bedeutet das aus meiner Sicht, dass man nur jeweils die halbe 
DPI-Zahl hat, die von der Auflösung vorgegeben wurde. Wie berücksichtigt 
man  das nun bei der Bildfilterung?

Beim Verschieben unterhalb der Pixelgrenze und Drehungen, kommen 
Ergebnisse interpolierter Pixel hervor, die nicht mehr den Kontrast des 
Ursprungsbildes bestzen. Wie geht man damit um?

von MaWin (Gast)


Lesenswert?

Wie bei Frequenzen ergeben sich Aliasingeffekte, die man mit einem 
(vorgeschalteten) Antialiasingfilter zu begrenzen versucht, ein 
Weichzeichner unter halber Pixelfrequenz.

von Michael W. (Gast)


Lesenswert?

So habe ich mir das auch gedacht. Faktisch bedeutet das aber doch, dass 
man auf Bildschirmen oft höhere Kontraste darstellt, asl im Bild 
drinstecken. Was ist z.B. mit einem Extrembild von 0101010 in den 
Pixelspalten? Wenn man das um 1/2 rücken will, kommt doch 0,5 0,5 0,5 
0,5 raus?

von Georg A. (georga)


Lesenswert?

Eben. Das ist ja genau der Irrsinn, den die Videoverrückten nicht 
glauben wollen und was leider zu abstrusen Default-Überschärfungen bei 
Consumerprodukten führt. Die sitzen mit der Lupe vor dem Schirm erwarten 
zB. bei HDTV-Material scharf abgegrenzte Pixel, und verstehen nicht, 
dass das bei natürlichem Material so gar nicht existieren kann.

Vor den Sensoren sitzen die schon erwähnten Antialiasingfilter: OLPF = 
Optical Low Pass Filter.

Und wenn man DSLRs fürs Filmen missbraucht, merkt man am entstehenden 
deutlichen Moire auch, dass sie die nötige Filterung von ihren >10MPx 
auf die 2MPx aus Performancegründen eben auch nicht sauber schaffen. 
"Echte" HDTV-Kameras, die auf derselben Sensorfläche nur 4MPx (wg. 
Bayer&Co) haben, zeigen den Effekt nicht...

von Michael W. (Gast)


Lesenswert?

Ok, das bedeutet aber auch, dass (wenn hoch oder runtergesampelt wird) 
ein anti-aliasing Filter benutzt werden muss / müsste.

Dazu aber die Frage: Über welche Punkte legt man so eine Filterkurve?

Reichen da jeweils 3 wie bei dem thema Medianfilter:
Beitrag "Median-Filter in VHDL"

von Georg A. (georga)


Lesenswert?

Das ist wie bei normalen Filtern eine Frage der vorhandenen 
Rechenperformance und der Anforderungen an die Qualität.

3*3 Pixel sind auf jeden Fall zuwenig, Median ist an sich untauglich.

Bei 1:2 bis 2:1-Skalierungen macht man (zB. in Videodekodern) 
normalerweise FIR mit mindestens 5*5 bis 7*7er Stencil. Wenn die 
Performance nicht ausreicht, um tatsächlich für alle 25/49 Pixel den 
2D-FIR eines Pixels zu berechnen, kann man auch nur horizontal und dann 
vertikal filtern (also zB. nur 5+5 Pixel). Das macht aber Artefakte bei 
schrägen Kanten.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Georg A. schrieb:
> Wenn die
> Performance nicht ausreicht, um tatsächlich für alle 25/49 Pixel

Da die Filter meist an 2 Achsen symmetrisch sind und Nullstellen haben, 
reduziert sich die Rechnerei oft erheblich - zudem kann man 
Zwischenergebnisse mehrfach nutzen, wenn man sie geschickt speichert, 
vor allem in FPGAs.

Ich habe mir mal einen effektven 15x15 Filter geschrieben, der auf 
Nyqust/2 limitiert und als Rausch und Interpolationsfilter arbeitet. Per 
DDC kann man von dort aus leicht runterskalieren und/oder drehen. Die 
Auflösung wird logischerweise auf 0,5 DPI limitiert.

Mit etwas Vereinfachung wird daraus ein 13x13 Filter, der in den Ecken 
mit Null rechnet und daher das Betrachtungsfeld kreisförmig abtastet. In 
einem Virtex 5 lief der mit einigen Anpassungen seinerzeit mit 30MHz 
Sensorpixelfrequenz in einem einzigen Takt und brauchte wegen der 
partiellen Termoptimierungen / Mehrfachnutzen auch nur knapp 40% der 
reinen formellen Grösse, die sich aus dem 4-fachen (6x6)-Fenster ergeben 
würde. In jedem Qudranten sind ja zudem noch einige Koeffizienten an der 
45°-Achse symmetrisch.

Unten dargestellt ist die Filterkurve auf der X-Achse, die man sich 
rotiert denken muss. Ihre Nullstellen tauchen im Bild schwarz auf.

Die beiden kleinen Bilder sind die applizierten Koeffizienten als 
Impulsantwort.

von J. S. (engineer) Benutzerseite


Lesenswert?

Kleine Korrektur zu oben: Die Auflösung wird auf 0,5 dots per Pixel 
(0,25 bei Nyqusit/2) limitiert, und nicht per "Inch".

Markus Wagner schrieb:
> Reichen da jeweils 3 wie bei dem thema Medianfilter:
Ich habe mir den Medianfilter mal angesehen: Über nur 3 Pixel hinweg ist 
der nicht sehr effektiv. Der liefert da mehr Artefakte und Zusatzkanten, 
als er glättet. Wenn schon müsste man einen 5x5 Alias vorschalten. Aber 
wie bereits beschrieben ist, der für die Vorfilterung ungeeignet. 
Großflächig angewendet kann man damit in Verbindung mit einer 
Kantenanalyse-/Betonung aber so eine Art 
Zeichentrickanimationsdarstellung aus Videos erzeugen. Sieht lustig aus.

von bko (Gast)


Lesenswert?

Markus Wagner schrieb:
> Was ist z.B. mit einem Extrembild von 0101010 in den
> Pixelspalten? Wenn man das um 1/2 rücken will, kommt doch 0,5 0,5 0,5
> 0,5 raus?

Ich würde sagen, dass das ein schönes Beispiel für Aliasing ist. Dieses 
Problem ist aber bei Monitoren nicht wirklich zu umgehen, das sie keinen 
antialiasing Filter inkludiert haben. Oder, man müsste eine 
Milchglasscheibe vorschrauben.

von Thorsten Radke (Gast)


Lesenswert?

bko schrieb:
> Problem ist aber bei Monitoren nicht wirklich zu umgehen,
Die Abstrahlung des Lichts bei Pixel ist ja nicht präzise in der 180 
Grad Richtung, schon deshalb überlappen die Pixel in einiger Distanz. 
Das wirkt wie ein verschmierendes Filter. Bei älteren Monitoren war das 
immer gut zu erreichen, wenn man sie leicht unscharf stellte.

von Michael W. (Gast)


Lesenswert?

Thorsten Radke schrieb:
> Die Abstrahlung des Lichts bei Pixel ist ja nicht präzise in der 180
> Grad Richtung, schon deshalb überlappen die Pixel in einiger Distanz.
Wie ist das gemeint? Weil es sich optisch überlagert oder was?
Auf meinen TFTs kann ich jeden Punkt einzeln wahrnehmen.

von Thorsten Radke (Gast)


Lesenswert?

Markus Wagner schrieb:
> Wie ist das gemeint? Weil es sich optisch überlagert oder was?
Ja natürlich, die Pixel sind ja nicht vollstädnig optisch isoliert.

> Auf meinen TFTs kann ich jeden Punkt einzeln wahrnehmen.
Daher schrieb ich ja auch "alter Fernseher"

von Michael W. (Gast)


Lesenswert?

Thorsten Radke schrieb:
>> Auf meinen TFTs kann ich jeden Punkt einzeln wahrnehmen.
> Daher schrieb ich ja auch "alter Fernseher"
ok gebonnt!

Ich würde aber nochmal auf das Kernthema zurückkommen:

Gibt es aus MATLAB oder einem anderen Tool eine Art "Bildfilterdesigner" 
für solche und ähnlich gelagerte Fälle?

von Michael W. (Gast)


Lesenswert?

keine Info?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.