Pic: Filmstreifen
 

Bildstabilisierung - Deshaking

mittels VirtualDub und des
Deshaker PlugIns von Gunnar Thalin

  1. Das Ursprungsfile
2. VirtualDub und das Deshaker-PlugIn
3. Der erste Durchgang - Pass1
4. Die Bildstabilisierung - Pass2
5. Die schwarzen Ränder verbergen
6. Das Endergebnis
 

Jeder Hobbyfilmer kennt das: Die Camcorder werden immer kleiner und leichter, was für den Transport gut ist, aber dazu führt, daß die Bilder immer verwackelter werden, weil es immer schwieriger wird durch die fehlende Masse die Cam ruhig zu halten. Ein wenig Abhilfe schafft der in der Cam eingebaute Bildstabilisator. Jedoch ist dieser in der Regel nur aktivierbar, kennt also nur an und aus und bietet keinerlei Feineinstellung. Natürlich kann ein Stativ die nötige Ruhe in die Bilder bringen, aber in manchen Situationen ist ein Stativ zu unhandlich oder unflexibel oder hat schlichtweg einfach keinen Platz. In solchen Momenten kann es dann schon passieren, daß die Aufnahmen beinahe unansehnlich werden -vor allem im Zoombereich-, weil es einfach unmöglich ist die Cam einigermaßen ruhig zu halten. Taugt der eingebaute Bildstabilisator nichts, bleibt nur noch die Nachbearbeitung am Computer. Solch eine Computer basierende Lösung möchte ich hier vorstellen. Und das Beste daran: Sie ist auch noch umsonst, da das benötigte Programm samt PlugIn Freeware ist!


1. Das Ursprungsfile

Kommen wir zuerst zum Ursprungsfile: Ein kleines Schaf, das noch Probleme mit der Leiter aus der Hütte hat. In diesem Fall war ein Stativ zu unflexibel, da die Schafe ja ständig hin und her rennen und man dadurch gezwungen ist ständig seine Position zu verändern. Nah rangehen kann man auch nicht, da die Tiere ja von Natur aus scheu sind. Also muß man quasi "aus der Hüfte schießen" und das auch noch in einem starkem Zoombereich. Das stark verwackelte Ergebnis kann man hier bewundern:

  Play Ursprungsfile  



2. VirtualDub und das Deshaker-PlugIn

Die benötigte Software: VirtualDub und das Deshaker-PlugIn. VirtualDub ist ein kostenloses, simples Videobearbeitungsprogramm. Sämtliche bisher veröffentlichten Versionen gibt es hier:
http://sourceforge.net/projects/virtualdub/files/virtualdub-win/
Das Deshaker-PlugIn gibt es hier:
http://www.guthspot.se/video/deshaker.php
VirtualDub benötigt keinerlei Installation. Man muß lediglich das Zip-File das alle benötigten Files enthält in ein Verzeichnis entpacken und die Deshaker-PlugIn-Datei Deshaker.vdf in den PlugIn-Ordner von VirtualDub kopieren und schon kann man mit einem doppelklick auf die Datei VirtualDub.exe loslegen.



3. Der erste Durchgang - Pass 1

Zuerst öffnet man das entsprechende AVI-File unter "/File/Open video file.../." Sollte an dieser Stelle eine Fehlermeldung kommen in etwa der Form: "Could not locate Decompressor dvsd", dann ist kein geeigneter DV-Codec installiert und man muß einen DV-Codec nachinstallieren. Ein kostenloser Codec ist der Panasonic-DV Codec, der i-tüpfelchen gleich mit dem Microsoft Codec ist. Hat man einen DV-Codec installiert, öffnet sich das File in zwei Fenstern. Das linke Fenster ist das sogenannte INPUT-Fenster. In diesem sieht man das Original-File ohne Bearbeitung von der Festplatte. Das rechte Fenster ist folglich das OUTPUT-Fenster. In diesem sieht man das bearbeitete Endergebnis. Bei nicht allzu aufwändigen Bearbeitungen und genügend Rechenleistung sogar in Echtzeit. Im Falle vom Deshaker-PlugIn: Macht euch keine Hoffnungen. Auf einem 3,2 GHZ AMD ist man von Echtzeit noch weit entfernt, was bei der anfallenden Rechenarbeit kein Wunder ist. Wir reden hier immerhin von einem Programm, das versucht das Bildmaterial so zu analysieren, damit es erkennt, was Schwenk, was Bewegung eines Objektes und was wackeln im vorhandenen Bildmaterial ist. Und ich muß sagen, ich bin bei jedem File immer wieder aufs neue Überrascht, wie gut es das erkennt!

So, wir haben das File geöffnet und stellen fest, das unser Bildschirm mit einer Auflösung von 1024x768 Bildpunkten zu klein ist. Wir sehen vom Output-File nur die Hälfte. Solltet ihr nicht einen TFT mit einer vertikalen Auflösung von mindestens 1440 Pixeln haben, geht es euch genauso. Also passen wir unser Input- und/oder das Output-Fenster mit einem Rechtsklick auf dasselbige und auswählen von 1/2 oder 1/4 Größe an. Kleiner Tip: Ich würde nur das Input-Fenster verkleinern, denn man will ja schließlich sehen, was hinten rauskommt. Als nächstes wählen wir gleich einmal die Komprimierung in der das File später gespeichert werden soll. Im Normalfall nimmt man dazu den installierten DV-Codec. In unserem Fall den Pansonic DV-Codec. VirtualDub stellt von Haus aus keinen Codec ein sondern "uncompressed" und meldet dies auch mit einer Warnung vor dem Speichern das ohne Komprimierung ein sehr, sehr großes File gespeichert wird. Also gehen wir unter /Video/Compression.../ und wählen in dem darauf folgenden Fenster unseren DV-Codec aus.

Nun klicken wir unter "Video" auf "Filters..." und anschließend auf "Add..." und wählen das Deshaker Plug-In von Gunnar Thalin aus. Es öffnet sich das Einstellungsfenster. Die Einstellungen könnt ihr an Hand des folgenden Screenshots vornehmen. Es sind Standard-Einstellungen, die für die meisten Aufnahme-Situationen gute bis sehr gute Ergebnisse erzielen. Zu beachten ist, daß man die Einstellungen unter Pass2 erst vornehmen kann, wenn man auf den gleichnamigen Button klickt. Vergeßt aber nicht, nach eingeben der zahlenwerte wieder auf Pass 1 zu klicken. Das Deshaker Plug-In arbeitet in zwei Durchgängen. Pass 1 analysiert das Video-Material und entscheidet, was ist Bewegung, Zittern, Schwenk, ect. Die Ergebnisse speichert es in einer Log-Datei. Wohin diese Datei gespeichert wird, könnt ihr Links unter Pass 1 & 2 einstellen. Kleiner Tip: ich würde als Speicherort das gleiche Verzeichnis auswählen, wie die geöffnete AVI-Datei so bleibt immer alles schön beisammen und es sammelt sich kein Datei-Müll an. Wie gesagt, dies sind Standard-Einstellungen. Wer noch mehr ins Detail gehen will, den Verweise ich hier auf die Anleitung. Lediglich die Einstellungen unter "Ignore Image area" empfehle ich zum rumspielen, denn die beinhalten ein tolles Feature. Man kann damit Bereiche definieren, die für die Bewertung nicht herangezogen werden. Was unter Umständen sehr hilfreich sein kann. Nimmt man z.B. eine Aufnahme vom Meer mit einem Sandstrand im Vordergrund, könnte es passieren, daß sich das Deshaker Plug-In auf das Meer einstellt und somit gleichmäßig auf und ab wippt. Indem man diesen Bereich von der Bewertung ausschließt, kann man unter Umständen doch noch gute Ergebnisse erzielen.

Deshaking-Einstellungs-Fenster
(Klick zum Vergrößern)
Nachdem ihr alles eingestellt habt und Pass 1 wieder aktiviert habt, schließt ihr das Deshaker Fenster und das Plug-In Fenster von VirtualDub mit einem klick auf OK. Nun müßt ihr euch vergewissern, daß der Schieber über den Abspiel-Knöpfen mit dem man im Video-Material "scrubben" kann, sich auch ganz links am Anfang des Files befindet. Wenn nicht, ein Klick auf den Strich mit dem Pfeil nach links und VirtualDub springt an den Anfang des Files. Seit ihr ganz links startet ihr den ersten Durchgang (Pass 1) des Deshaker Plug-Ins mit Klick auf den Abspiel-Button mit dem kleinen O (O für Output), also das sogenannte "Output Playback". Jetzt heißt es je nach Größe der Datei, warten, warten, warten.



4. Die Bildstabilisierung - Pass2

Ist man mit der Bewertung des Videos durch, öffnet man wieder die Einstellungen des Deshaker Plug-Ins unter "Video\Filters...", Deshaker Plug-In selektieren und auf den Button "Configure..." klicken. Jetzt wählt man, bzw. aktiviert man Pass 2. Hier kommen wir jetzt zu den Essentiellen Einstellungen. Bei Pass 1 hat VirtualDub das Video bewertet, was ist Bewegung, was ist Schwenk, was Wackeln. Jetzt müssen wir unter Pass 2 einstellen, wie sehr diese analysierte Bewegung eingeschränkt wird. Unter "Motion smoothness" stellt man einen sogenannten "Treshold" Wert ein, ab dem die Bewegungskompensation greifen soll. Dieser Wert bewegt sich in der Regel zwischen 20000 und 60000. Höhere Werte führen zu mehr Ruhe im Bild. Und zwar einmal für die Horizontale und die Vertikale Bewegung und eventuelle Drehbewegungen (Rotation) oder Zoom-ähnliche Bewegungen (verursacht dadurch, wenn man nach 3 Bier versucht hat noch zu filmen und einen Aktions-Radius von 2 Metern hatte). Da ich nüchtern war und einen festen Standpunkt hatte, habe ich die Zoom-Korrektur mit dem Wert "0" ganz abgeschaltet. In erster Linie geht es bei dieser Aufnahme um die horizontale und vertikale Korrektur. Das Feld darunter mit dem Titel "Max. correction limits (in Percent and degrees)" gibt nun -wie der Name schon sagt- den Korrekturgrad in Prozent an, also wie stark das Deshaker Plug-In "zupacken" soll und damit das Bild festnagelt. In der Regel wird sich hier der Wert um die 10 Prozent plus minus 5 Prozent bewegen. Damit wir sehen, wie unsere Stabilisierung arbeitet, schalten wir die "Edge compensation" vorerst auf "None (large borders)". Dadurch sehen wir den tanzenden schwarzen Rahmen um unser Video. Alle Einstellungen getätigt? Dann machen wir das Einstellungsfenster und das Plug-In Fenster wieder zu und und klicken auf den Strich mit dem Pfeil nach links damit VirtualDub wieder zum Anfang springt. Es folgt dieses Bild:


Jetzt heißt es noch einmal warten, aber normalerweise nicht mehr so lange wie bei Pass 1. Das Deshaking Plug-In berechnet nun Anhand unserer Einstellungen die Bildstabilisierung. Ist die Berechnung abgeschlossen, können wir uns das Ergebnis mit Klick auf den Output-Playback Knopf ansehen, was dann in etwa so aussieht: ein ruhig stehendes Schaf mit einem tanzenden, schwarzen Rahmen drum herum. Wie gesagt, eine ruckelfreie Wiedergabe schafft ein 3,2 GHz Rechner nicht, daher ist es für eine genauere Bewertung unerläßlich unser Video einmal abzuspeichern und das Ergebnis im Media Player zu begutachten. Dazu geht man unter "File/Save as Avi...", wählt den Namen und klickt auf Speichern. Anschließend öffnet man das gespeicherte File mit einem Doppelklick im Media Player.

  Play Beispielfilm ohne Zoom  



5. Die schwarzen Ränder verbergen

Das Schaf steht jetzt wie eine Eins, was ja schon mal eine 1000 prozentige Verbesserung ist gegenüber dem Ursprungsfile. Eine Kleinigkeit, die den Filmgenuß jedoch trübt, ist dieser hektisch umhertanzende, schwarze Rahmen. Um den wegzubekommen müssen wir leider eine kleine Verschlechterung der Filmqualität hinnehmen, da wir dazu gezwungen sind, das Video soweit aufzuzoomen, bis der schwarze Rand gänzlich verschwindet. Hier sieht man schon, je mehr man gewackelt hat, desto mehr muß man im nachhinein aufzoomen und desto schlechter wird die Qualität des neuen Videos.
Dazu begeben wir uns wieder zu den Einstellungen des Deshaker-PlugIns und suchen unter den Pass2 Einstellungen den Eintrag "Edge compensation". Dort im Pulldown-Menü wählen wir "Fixed zoom (no borders)". Das Deshaker-PlugIn versucht nun selbstständig das Video-Material soweit aufzuzoomen, so das keine tanzenden, schwarzen Ränder mehr zu sehen sind. Leider hat diese Funktion bei mir in der Vergangenheit nicht immer 100% funktioniert. In dem ein oder anderen Fall kam es schon mal vor, daß trotzdem noch ein kleiner, tanzender Rand zu sehen war, also der Zoom etwas zu wenig war. Sollte das der Fall sein, kann man dem sehr einfach abhelfen. Etwas unter der Einstellung "Edge compensation" findet sich die Einstellung "Extra zoom faktor". Dieser steht normalerweise auf 1. Will man etwas mehr zoom haben, wählt man einen höheren Zoom-Faktor. Ein anderer Weg wäre die Berechnung nochmal machen zu lassen und mit den Treshold und/oder den Prozentwerten zu spielen. Sehen wir uns den Film mal an nach dem aufzoomen:

  Play Beispielfilm mit Zoom  

Es fällt auf, daß zwar links und rechts keine Balken mehr zu sehen sind, aber oben und unten sehr wohl noch welche tanzen. Die Erklärung ist einfach: Wer sich noch an das Ursprungsfile erinnert, hat gesehen, daß es schwarze Balken oben und unten hat, da ich an meinem Camcorder den Pseudo-16zu9-Modus aktiviert hatte. Da schwarze Balken für eine Bewegungserkennung natürlich vollkommen unnütz sind, habe ich diese auch aus der Berechnung ausgeschlossen (wir erinnern uns: bei Pass 1 kann man einen Bereich angeben, der für die Bewegungserkennung nicht herangezogen wird). Daher hat das Deshaker-PlugIn auch nur soweit aufgezoomt, wie ich Bildmaterial zur Berechnung zur Verfügung gestellt habe. Die Lösung ist einfach: Wir fügen die schwarzen Balken oben und unten einfach wieder ein und überdecken somit die tanzenden Balken. Der Filter dazu in VirtualDub nennt sich (wie kann es auch anders sein?) "fill". Fill ist eigentlich dazu da ein beliebig großes, farbiges Rechteck an einer beliebigen Position im Video zu erstellen. Wir wollen zwei Rechtecke erstellen, eins oben und eins unten in der Farbe schwarz. Dazu müssen wir den Filter zweimal einfügen und zwar unterhalb des Deshaker-PlugIns. Das sieht dann so aus:


Zum testen wir groß die schwarzen Balken vom Ursprungsfile eigentlich waren, habe ich VirtualDub einfach nochmal geöffnet, das Ursprungsfile mit den schwarzen Balken geladen und mich mittels des Filters "fill" an dieselbigen herangetastet bis ich die Werte hatte. Witzigerweise hat mein Camcorder zwei unterschiedlich große Balken. Oder man kann es auch so sehen, daß er den sichtbaren Bildbereich nicht genau in die Mitte setzt. Hier meine Werte:

Filter "fill"
oberer Balken
Filter "fill"
unterer Balken



6. Das Endergebnis

So, das war's auch schon und ich finde, das Ergebnis kann sich sehen lassen. Aus einem sehr verwackelten, unruhigen und damit schlecht ansehnlichem Video ist ein etwas unschärferes aber dafür sehr ruhiges Video geworden. Noch ein paar Tips zum Schluß: Ich habe beim arbeiten mit dem Deshaker-PlugIn festgestellt, daß selbst ruckelnde Schwenks irgendwie "geglättet" wurden, also sauberer und gleichmäßiger rüberkamen, als ohne Bearbeitung durch das PlugIn. Daher habe ich sogar manche Einstellungen die ich mit Stativ gedreht habe einer Bearbeitung unterzogen, nur um den darin enthaltenen Schwenk sauberer zu gestalten. Und für die Zukunft habe ich gelernt meinen Pseudo-16:9-Mode in der Camera während den Aufnahmen abzuschalten und immer das volle 4:3 Bild aufzunehmen, denn mit schwarzen Balken kann ich das Video im Nachhinein immer noch versehen. Der Vorteil: man muß nach einer Bildstabilisierung nicht ganz soweit aufzoomen um den schwarzen, tanzenden Rand wegzubekommen, da man ihn zumindest in der Vertikalen einfach mit den 16:9 Balken verdecken kann.

  Play Endergebnis  
 
Zurück zur Auswahl