Harm Weidmann schrieb:

As you seem to be originating from germany, I will answer in german, 
this time...

> What tools do I need? Can this be done by image magic?
>   
Eigentlich ist in den mjpeg-tools alles drin, was man braucht 
(y4mspatialfilter). Alternativ kann man auch Gimp nehmen (wenn es nur um 
Text-Titel oder DVD-Menüs geht, ist das u.U. eh besser...)...

> Can someone explain me the meaning of lowpass-filtering
> with a factor of 0.6667 relative to the my vert frequency?
>   
Ja, ich werde es versuchen...

Ein Videobild ist ein zweidimensional diskret-abgetastetes Signal. Es 
gibt damit eine horizontale und eine vertikale Abtastfrequenz. Laut 
Nyquist-Theorem enthält ein diskret abgetastetes Signal maximal die 
Frequenz 0,5*Abtastfrequenz. Bezogen auf Computerbilder bedeutet dies 
Folgendes:

Ist die vertikale Abtastung mit 576 Zeilen (PAL) vorgenommen worden, so 
kann als maximale Frequenz 1 Pixel weiss auf einen Pixel schwarz folgen 
(das Bild enthält dann also 288 schwarze und 288 weisse Pixel vertikal 
untereinander). Mehr Auflösung ist nicht drin. Für progressive Displays 
ist das völlig OK, wenn das Bild jedoch auf einem interlaced-Display 
dargestellt werden soll, führt dies zu massiven Problemen. Ein solches 
Signal ist zwar mit digitalen Videoformaten machbar, aber nicht 
sendetauglich (zumindest für PAL, bei NTSC gibt es aber meineswissens 
ähnliche Beschränkungen), da das Signal dann mit der höchstmöglichen 
Amplitude und 1/25 Hz flimmert (und zudem die Farbfilter im TV 
durcheinanderbringen kann...).

Ein idealer Tiefpass-Filter ( sin(x)/(x) ) mit 5 Taps für diese maximale 
Frequenz hat die Koeffizientenfolge

{0; 0; 1; 0; 0}

Skaliert man die sin(x)/(x)-Funktion um den Faktor 0,5 ( 
sin(x*0,5)/(x*0,5) ), so ergibt sich die
folgende Koeffizientenfolge:

{0,00; 0,64; 1,00; 0,64; 0,00 }

Der Faktor gibt an, bei wieviel Prozent der maximalen Frequenz die 
CutOff-Frequenz des Filters liegt. Für den Faktor 0,6667 ergibt sich:

{-0,21; 0,41; 1,00; 0,41; -0,21}

Das Dumme ist nur, dass der sin(x)/(x)-Tiefpass "klingelt". Daher wird 
in der Praxis eine Window-Funktion mit den Filterkoeffizienten 
multipliziert. Diese hat den Effekt, dass der Filter nicht mehr so 
steilflankig ist, aber dafür weniger Klingeln (=Überschwingen) zeigt. 
Häufig wird der sin(x)/(x) mit sich selbst "gewindowed". Das ergibt dann 
einen sogenannten Lanzcos-Filter. In der Praxis nimmt man für 
Video-Signale übrigens nicht 5 Taps, sondern mindestens 7.

Das Flimmern lässt sich nicht völlig eliminieren, man kann es nur 
*reduzieren*. In der Praxis bedeutet dies, das man

1. relativ große Strukturen nutzt (= große und dicke Buchstaben!)

2. zusätzlich vertikal tiefpassfiltert. Übrigens ein "motionblurr" hilft 
hier nicht wirklich weiter. Dieser Tiefpass sollte so berechnet sein, 
dass er nicht oder nur vernachlässigbar klingelt, da ansonsten die 
"Überschwinger" das Problem wieder deutlicher sichtbar machen können... 
In der Praxis bestehen Anti-Flicker-Filter daher meist aus einem 
einfachen lediglich vertikal angewendeten Gauss-Filter (Gimp!) mit 
Radius 1. Koeffizienten: { 1; 2; 1 }.

3. mit einem gewissen "Restflimmern" leben muss...

Übrigens: alle hier vorgestellten Filter müssen noch normiert werden, da 
sich ansonsten der Mittelwert verschiebt. D.h. der eben angesprochene 
Gauss-Filter muss noch mit dem Vorfaktor 1/4tel beaufschlagt werden, 
damit die Summe der Koeffizienten 1 ergibt.

> Thank you in advance and grettings
>   

Keine Ursache. Ich hoffe, das es hilfreich war. (ich habe allerdings 
auch eine Weile gebraucht, um die Zusammenhänge zu verstehen...)

cu
Stefan


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to