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?
Wie bei Frequenzen ergeben sich Aliasingeffekte, die man mit einem (vorgeschalteten) Antialiasingfilter zu begrenzen versucht, ein Weichzeichner unter halber Pixelfrequenz.
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?
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...
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"
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.
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.
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.
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.
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.
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.
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"
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.