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