No panic! Soweit, dass man Farbunterschiede deutlich sieht, darf die schlechteste eine YUV nach RGB Konvertierung nicht kommen ;-)
Ansonsten hilft es, genau zu unterscheiden, wer was macht. Und 1-2 typische Beispielstandbilder (vorher/nachher) zur Fehlersuche sind auch nicht verkehrt (ggf. bei
www.imageshack.us ablegen).
Avisynth ist bei dir a) ein Vermittler zwischen den DirectShow Filtern (MOV einlesen und DV dekodieren) und VirtualDub (DV komprimieren und AVI speichern) und b) fürs Antiflicker zuständig.
Avisynth bearbeitet in diesem Sinn nur unkomprimiertes Material, d.h. Blöcke hättest du dir vorher eingeschleppt (DirectShow) oder nachher produziert (DV Codec in VD).
Den Unterschied zu sehen, ist problematisch. Du könntest eine Testserie fahren z.B. in VD mit einem anderen guten Codec speichern (Huffyuv, MJPEG) und nachsehen, ob Blöcke drin sind bzw. ohne zu speichern in VD betrachten.
Wenn dann auch Blöcke vorhanden sind, stammen die wahrscheinlicher aus dem DV Dekodieren durch DirectShow. Aber genau das ist wiederum unwahrscheinlich. Der DV Standard soll nach Hörensagen das Entpacken soweit standardisiert haben, dass alle DV
Decoder exakt gleich arbeiten.
Wenn die Blöcke weg sind, wurden die vorher wahrscheinlicher bei DV Encodieren durch den DV Codec in VD reingeschleppt. In diesem Fall kannst du probieren hier einen anderen DV Codec (Panasonic, Matrox, Mainconcept) einzusetzen, wenn du bei DV bleiben willst. Hilfreich ist dabei das Tool VCSwap zum Austauschen (Swappen) des zu verwendenden Videocodecs.
Das Austauschen des Directshow DV Codecs geht - im Prinzip - auch. Nur hast du da keine so grosse Auswahl. Mir fällt da nur der Mainconcept DV Codec als Alternative zum Micro$oft DV Codec ein. Hilfreich ist dabei das Tool GSPOT zum Anzeigen des vom DirectShow-System verwendenden Videocodecs. Dazu Anzeigen lassen wie eine DV AVI Datei abgespielt würde...
Eine Sache kann dich allerdings foppen und das ist reine Spekulation, weil ich seltenst mit DV MOV Dateien "Umgang habe":
Wenn DirectShow das Einlesen der MOV Dateien und das Entpacken an Quicktime und dessen abartigen DV Codec abgibt. Dann bist du auf den Quicktime DV Codec angewiesen. Ich weiss nicht ob man den tauschen kann. No Panic! In diesem Fall würdest beim Betrachten der MOV Quelldateien in QT schon Blöcke sehen.
Zu dem Rest des Skripts...
Du machst die ganze Antiflicker-Geschichte in Avisynth. Eigentlich brauchtst du VD nur noch zum komprimieren und zum speichern.
Nur deswegen musst du nicht in den Full Processing Modus gehen sondern kannst einen der beiden Modi wählen (Fast Recompress?), wenn der DV Codec da mitmacht. Entsprechend brauchst du das converttorgb() am Ende des Skripts nicht.
Oder du verzichtest - je nach weiterem Processing - ganz auf VD und machst von Avisynth aus direkt ein Frameserving in die nächste Anwendung hinter VD z.B. den MPEG Encoder für die DVD Produktion.
Die Parameter in den Entrausch-Funktionen habe ich mir nicht angesehen (zuviel Aufwand und abhängig vom Quellmaterial).
Viel Glück
Der dicke Stefan