VHS filtern mit Avisynth
Avisynth installieren
Deutsche Hilfedateien für Avisynth
Avisynth Skripte zur Nachbearbeitung von VHS
Duplicate Frames im VHS grabbing ersetzen durch interpolierte Zwischenbilder
Skriptbaukasten
Gradationskurven übernehmen aus Virtualdubfilterkette
Links
Avisynth installieren
Du benötigst
- die aktuelle Avisynth Installationsdatei
- den Spezialeditor AvsP oder AvsPmod
- das Werkzeug AVS2AVI,
Installiere alle drei Programme. Bei Avisynth solltest du das angebotene Standardverzeichnis beibehalten.
Avisynth ist ein FrameServer,
also eine Software, die andere Programme mit vorverarbeiteten Frames
(Bildern und Ton eines Videos) versorgen kann. Daher kannst du Avisynth
Scripte mit einigen Videoplayern und mit Virtualdub öffnen, die sich
dann im Hintergrund die Filmbilder aus Avisynth abholen.
Der Editor AvsP kennt
Syntaxhighlighting für die Avisynth Scriptbefehle. Er kann beliebig
wählbare Bereiche deines Scripts aktivieren und deaktivieren. Das ist
praktisch, um die Wirkung bestimmter Bearbeitungsschritte
auszuprobieren. Er kann auch Schieberegler bereitstellen, mit denen du
bequem Werte für Filter verändern kannst.
Sehr praktisch ist die bildweise Vorschau des fertigen Films. Kombiniert mit den
Tabs kann man so verschiedene Varianten des eigenen Skripts gleichzeitig öffnen,
und durch Umschalten direkt die Auswirkungen der Veränderungen auf das Bild begutachten.
Dem Programm AvsP musst du den Pfad zum Kommandozeilenwerkzeig AVS2AVI
mitteilen. Dieses kannst du verwenden, wenn du nicht vorhast, einen
Film in Echtzeit zu betrachten (das geht bei aufwändiger Bearbeitung
sowieso oft nicht, da Avisynth schleichend langsam ist), sondern
wenn der Film so schnell wie möglich vor sich hin gerendert werden
soll.
Praktischer ist es jedoch, das fertige Avisynth-Skript mit Virtualdup zu öffnen, und dann mit Virtualdup zu rendern, da du hier die Prozessorlast des Renderprozesses stufenlos einschränken kannst. Dein Prozessor dankt es dir, und du bekommst bei Bedarf genug Prozessorzeit für andere Anwendungen freigeschaltet.

Abbildung: AvsP mit einem geöffneten Avisynth Script, Vorschau des bearbeiteten Videoclips und Schiebereglern
Wenn alles installiert ist, öffne die mitgelieferte Hilfe und arbeite dich am Besten anhand der Beispiele schrittweise ein.
Avisynth erfordert einiges an Einarbeitungszeit und du wirst am Anfang sehr viele Beiträge im Internet lesen müssen, bevor du mit der Sache vertrauter wirst. Als Anfänger solltest du nicht gleich in Foren um Rat fragen. Die anderen mussten sich zunächst auch in Avisynth allein einarbeiten, und sie erwarten so viel Disziplin auch von dir.
Deutsche Hilfedateien für Avisynth
Die von Avisynth mitgelieferten deutschen Hilfedateien sind sehr mager.
Erweiterte deutsche Hilfe für Avisynth runterladen
(Changelog, Hinweise zur Mithilfe)
Entpacke das Archiv in einen freien Ordner und kopiere dann die Hilfedateien nach
Avisynt\Docs\German.
Avisynth Skripte zur Nachbearbeitung von VHS aus verschiedenen Foren
In den einschlägigen Foren wurden schon einige einfache Skripte gepostet, die speziell für VHS Grabbings gedacht sind.
Bevor du beginnst, eigene Skripte zu schreiben, solltest du diese erst einmal ansehen, verstehen und ausprobieren.
- Avisynth Skripte zur VHS Bearbeitung runterladen - Skripte zur Bearbeitung von VHS Grabbings, gefunden in verschiedenen Foren
- Script von Didée mit zugehörigen Plugins 2011 - siehe auch die Beispielscreenshots im verlinkten Thread
- VHS Restauration Neuanfang mit Avisynth - mit Beispielscreenshots
Duplicate Frames im VHS grabbing ersetzen durch interpolierte Zwischenbilder
USB Video Grabber ersetzen schlecht synchronisierte Bilder automatisch durch Kopien des letzten noch korrekt gelesenen Frames. Im Ergebnis sind Teile des resultierenden Videos mit einzelnen oder mehreren doppelten Frames aufgefüllt.
Bei längeren Lücken scheint das Bild kurzzeitig einzufrieren.
Vor allem bei VHS-Aufnahmen tritt dieses Problem auf.
Pro Stunde Aufzeichung von VHS habe ich schon bis zu 1500 doppelte Frames gefunden.
Hier gibt es eine Lösung: MorphDups ist ein Avisynth Skript, das solche doppelten Frames findet. Es erzeugt bei der Suche ein zweites Skript (morphmydups.avs) mit einer Funktion, die diese Duplikate ersetzt. Dazu wird die Funktion Morph von Mud Funky genutzt, die künstliche Zwischenbilder errechnet, und mit ihnen die Duplikate ersetzt. Man erhält eine fließende Bewegung zwischen dem ersten Frame der Lücke und dem ersten Frame nach der Lücke.

Die Duplikate in der Lücke werden durch interpolierte Zwischenbilder ersetzt
Das generierte Script sieht so aus:
function morphmydups (clip c) {
c
# morph(56,67) # YDiffNext=10.803629, length = 10==========
morph(103,105) # YDiffNext=4.838520, length = 1=
morph(106,108) # YDiffNext=4.491889, length = 1=
morph(109,111) # YDiffNext=4.452096, length = 1=
} # End of function
Im deinem eigenen Script kannst du morphmydups.avs dann so verwenden:
#0. Imports, Loadplugin .....................................................
#import ("J:\plugins\Morph1b.avs") # überlagert einen Infotext auf interpolierten Frames
import ("J:\plugins\Morph.avs")
loadplugin ("J:\plugins\mvtools2.dll") #Pfad zu deinen Plugins hier anpassen
import ("morphmydups.avs") # evtl. Pfad zum Skript hier angeben
stack=true #true= Debug-Ansicht: Quelle und interpolierte Version gleichzeitg ansehen
#1. Datei öffnen .......................................................................
AVIFileSource("J:\test\test79400.avi")
source=last
#morph function.........................................................................
morphmydups(source)
#Debug view ...........................................................................
stack ? stackvertical(last, source.subtitle("Input (unprocessed)")).\
+BilinearResize(width(source)/2,height(source)):last
Eigene Skripte schreiben
Im Prinzip sind Avisynth-Skripte nach genau dem selben Schema aufgebaut, wie die typische Filterreihenfolge in Virtualdub. Der Unterschied liegt eher in der Qualität der Filter. Für Avisynth gibt es Interlacer, die mehr Details des Bildes erhalten und ausgeklügelte adaptive Rauschfilter, adaptive Schärfefilter und Filter für einige spezielle Bildstörungen.
Bevor wir uns an die Reparatur wagen, wollen wir uns vergegenwärtigen, mit welchen Störungen wir bei VHS rechnen müssen.
Typische Störungen in VHS Aufnahmen
Öffne ein VHS Grabbing in Virtualdub und bewege dich langsam frameweise durch das Video. Du wirst wahrscheinlich folgende Störungen sehen:
- Die Zeilen wackeln und stehen nicht hart an einer Position (besonders zu erkennen am dunklen Zeilenrand). Dies liegt an mechanischen Verzögerungen. Abhilfe: Signal durch einen Hardware TBC (Time base corrector) vor dem Grabben leiten. Hinterher so gut wie nicht zu reparieren.
- Das überlagerte Rauschen unterscheidet sich von Frame zu Frame. Das kann das Deinterlacing bei intelligenten (Bob)Interlacern stören, wenn Rauschen fälschlich als Bewegung interpretiert wird und Zeilen dann falsch interpoliert werden.
- Chroma-Shift, Farbe ist gegenüber dem Bild nach unten und rechts versetzt.
- Chroma-Unschärfe, Chroma-Bleeding, Farbe wird über die Ränder der Objekte verschmiert.
- Zeilenweise Bildstörungen, die im VHS Recorder durch ein Duplicat der Vorgängerzeile überdeckt wurden.
- Fehlende Frames durch Bandknitter (vom Grabber durch Duplicate des letzten erfassten Frames ersetzt).
- Audio-Versatz, da die Bildrate nie genau 25 fps beträgt.
Zusätzliche Probleme durch Mehrfachüberspielungen (Kaufkassetten):
Zeilenstörungen, VHS Überschärfung (Halos), Weichzeichung und Chroma-Versatz vervielfachen sich.
Zusätzliche Probleme bei Aufnahme von Analog-TV:
stärkeres Rauschen, Geisterbilder, Chroma-Störungen (Moiree, Regenbögen), Interferenz durch Nachbarsender (Diagonale Streifen)
Zusätzliche Probleme bei alten Filmen:
Helligkeitsschwankungen (Flicker), Wackeln des Bildes, senkrechte Kratzer, Flecken (Spots), ausgeblichene Farben, Farbstich
Avisynth Scriptbaukasten
Dies sind die wichtigsten Skripte und Filter für typische Aufgaben der Videonachbearbeitung.
exotische Formate öffen:
siehe avisynth.org/mediawiki/FAQ_loading_clips
Deinterlace:
das oben erwähnte Script von Didée interpoliert die verwackelten Zeilen von VHS besser,
als alles andere, und erledigt dabei auch noch Chromashift, Chroma nachschärfen,
schärfen und temporal filtern
TDeint (schnell und scharf, reicht für VHS)
scharfe Deinterlacer für gute Digitalquellen: QTGMC, MCBob, MvBob, TDeint
Chroma Delay:
ChromaShiftSP.avsi (erlaubt Verschiebung mit Subpixel-Genauigkeit)
Flatterzeilen gerade richten (schlechte Zeilensync): bisher keine Softwarelösung
Das TBC Script von 2008 und Dejitter leisten dies nicht! (siehe Diskussion)
Der Versatz entsteht nicht, wenn das Signal vor dem Capturen einen Hardware-TBC durchläuft.
Bild stabilisieren:
Depan (nur bei wackligen Kameraufnahmen und altem Film)
Flackern entfernen:
ReduceFlicker (nur bei altem Film nötig)
Levels anpassen:
SmoothAdjust (SmoothLevels)
Farbe an Kanten versteilern:
mt_edge
Blockartefakte aus Videos mit schlechter Bitrate entfernen
Deblock QED (Didée), DeBlock (Manao & Fizick)
VHS-Störungen entfernen:
weiße oder schwarze horizontale Störzeilen: deVCR (Ricardo Garcia), Depulse, DepulseC
Temporal Entrauschen:
mdegrain2 - temporal Smoother mit Bewegungskompensation, entspricht etwa temporal 5 in Vdub
mdegrain - temporal Smoother mit Bewegungskompensation, entspricht etwa temporal 3 in Vdub
die verschiedenen Varianten fast das super-Script SMDegrain zusammen (SMDegrainMod, 2)
Halos bzw VHSÜberschärfung entfernen: (nur wenn nötig)
BlindDeHalo, BlindDeHalo3 (mit Strength < 70)
FixVHSOversharp
Schärfen:
SeeSaw, LSFmod, limitedsharpen faster (schärfen 3x3 Area, bei VHS erst nach verkleinern sinnvoll)
für sehr scharfe Quellen von DVD (nicht für VHS): iiP
FQFocusDeFocus, FQRestore (schwer einzustellen)
Für Cartoons/Animee: SuperToon, aWarpSharp2, Toon1.1
Echtzeitschärfen von HQ Quellen während Wiedergabe: FineSharp
Finales Beschneiden:
Crop
Resize auf Endgröße:
LanczosResize oder das schärfere Lanczos4Resize(512,384 oder 480,352)
bei starken Vergößerungen (Faktor 2) Interpolation mit NNEDI3
Broadcast Störungen beseitigen (bei Aufzeichnung von Analogempfang)
Geisterbilder entfernen: Ghostbuster oder Virtualdub Exorcist
Chroma-Rauschen entfernen: CNR2 (Nur bei Aufnahme von verrauschen TV Broadcasts)
Farben anpassen: (nur bei altem Film oder eigenen Videos nötig)
dies erfolgt am besten mit dem Virtualdub Plugins Gradition und ColorMill
vorübergehend in Graustufen anzeigen: Greyscale
Gamma, Levels anpassen: Levels, SmoothLevels (zeigt auch Histogramm)
Farbsättigung ändern (auch für einzelne Farben): Tweak
Farbsättigung und Farbbalance ändern (Ge-Bl, R-G): SmoothTweak
Gradationskurve (auch für R,G,B separat): SmoothGradationRGB.avs (von dieser Seite)
Helligkeit, Kontrast ändern: Nicht angeraten, besser mit Levels und Gradationskurven arbeiten
Filmrauschen simulieren (macht Videos mit wenig Details lebendiger)
Grainfactory3
Geometrische Verzerrung:
perspektische Trapezverzerrung: Reform (V. C. Mohan)
schräger Zeilenversatz: SkewRows
Drehen: rotate (Fizick)
Duplicate Frames durch Interpolationen ersetzen:
MorphDups
Framerate conversion (Bildrate/s umwandeln)
Sammlung (PAL->NTSC, TNSC-> Pal und andere), Verdopplung in Echtzeit, interframe
Verwende eine Suchmaschine, um die Plugins zu finden. Die meisten sind auf der Avisynth-Webseite verlinkt. Viele Plugins und Skripte benötigen ihrerseits andere Skripte und Plugins. Es ist nicht ratsam, Plugins direkt in das Plugin-Verzeichnis von Avisynth zu speichern, so dass diese automatisch geladen werden. Manche Skripte benötigen ältere Versionen eines Plugins, und man kann nicht verschiedene Versionen gleichzeitig in das Verzeichnis legen, da das seltsame Fehler hervorrufen kann. Besser ist es, alle Plugins in einem bequem erreichbaren Sammelverzeichnis abzulegen. In den Skripten musst du dann explizit die nötigen Plugins laden (mittels loadplugin ("Pfad zum Plugin") ).
Damit du die wichtigsten Avisynth-Filter und ihre Wirkung leicht ausprobieren kannst, habe ich die folgende Scriptsammlung geschrieben. Pro Scriptdatei sind immer die wichtigsten Plugins für ein bestimmtes Thema vereinigt – beispielsweise alle Denoiser. Wenn du diese Dateien mit AvsP lädst, bekommst du Slider für die Einstellung der wichtigsten Parameter, und du kannst jedes Plugin im Script mit einem Klick an- und abschalten. In dein eigenes Skript kannst du dann die für dich sinnvollsten Abschnitte kopieren.
Donwload-Link folgt ...
Gradationskurven übernehmen aus Virtualdub-Filterkette
Mit dem hier präsentierten Werkzeug kannst du in Avisynth die Farbveränderungen deine Lieblingsprozesses aus Virtualdub nachbilden. Es besteht aus zwei Teilen:
- Gradationstest ist ein Werkzeug, mit dem du Mithilfe eines Photoverarbeitungsprogramms eine Über-alles Gradationskurve aus einer Virtualdub-Filterkette erzeugen kannst.
Es verwendet dabei eine Vorlage von www.simplefilter.de
(Farbveränderungen, die in einem anderen Farbraum als RGB vorgenommen wurden, können davon nicht erfasst werden) - SmoothGradationRGB ist ein Avisynth-Script für AvsP, das Schieberegler für eine 5-Punkt Gradationskurve im RGB Farbraum bereitstellt:
Lichter, Mitten und Schatten aufhellen oder abdunkeln (Einsatzpunkte und Stärke),
Alle Arten von S-Kurven, Korrektur für jeden der 5 Punkte für R,G,B separat einstellbar
auf Wunsch wird die resultierende Gradationskurve angezeigt
Damit lässt sich die aus Virtualdub extrahierte Gradationskurve nachbauen.


Abbildung: Alter Film und bearbeitete Variante in Virtualdub,
die Wirkung der selben Filter auf einen Graukeil und die daraus resultierende Gradationskurve
Links
- Avisynth.org Wiki mit englischen Erklärungen, Übersichten über eingebaute und als Plugin erhältliche Filter:
shared functions, Externe Filter,
Hinweis: Nutze die Suchfunktion, wenn du etwas nicht findest. Die eingebaute Verlinkung ist etwas unübersichtlich.
Generell sind die Beispiele hier oft längst überholt, weil jemand in der Zwischenzeit was Besseres programmiert hat.
- Doom9.org - die wichtigste Anlaufstelle zu allen Fragen von Videograbbing, Videonachbearbeitung und Avisynth Scripten, umfangreiches Forum ,
- Gleitz.info - ein deutsches Doom9 Forum. Hier diskutieren eher die Insider und Anfängerfragen werden oft nur ungern beantwortet. Antworten auf manches lassen sich über die Suchfunktion finden. Beiträge von Einsteigern werden oft wochenlang nicht freigeschaltet (Stand 2012)
- www.movie2digital.at - deutsches Forum zur Videobearbeitung.
- avslib - Paket mit zusätzlichen vorgefertigten Funktionen
- Didée AviSynth Filter Collection - eine Reihe ausgeklügelter adaptiver Filter von Didée
- www.super-8.be - eine geradezu unglaubliche Verbesserung holt das dort vorgestellte Script aus gegrabbten 8 mm Filmen heraus (Beispiel), deutsche Hilfe zu diesem Skript
- Reasons to hate Avisynth - viel wahres dran