Filtern von interlaced Video in AviSynth grua V4.00

Ähnliche Dokumente
Deshaken von interlaced Video grua V4.01

STERNBURG BINGO STERNBURG BINGO UND SO FUNKTIONIERT S: MITMACHEN UND TOLLE PREISE GEWINNEN! RAUM FÜR EIGENE BEMERKUNGEN, GRÜSSE ETC.

Anleitung: Lange Filme auf DVD in je ein File umwandeln und schneiden

Der sichere Weg zum gut aussehenden YouTube-Video

Mencoder und MeGui, Jennifer Möwert Digitales Video. Mencoder und MeGui. Digitales Video, Jennifer Möwert

WebCam 1.3Mpix UA0067

TUTORIAL ADOBE AFTER EFFECTS. von Christoph Schreiber und Stefan Bernhardt Fulldome - Fachmodul WS 2010 / 11 Bauhaus - Universität Weimar

Anlage B zum Achtzehnten Hauptgutachten der Monopolkommission 2008/2009

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

MEDIA GROUP ONE TECHNISCHE SPEZIFIKATIONEN 2015 FÜR IN-STREAM VIDEO ADS

Klausur "C#" WS 2012/2013

Programmieren in Haskell

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

1 Verwendung bestehender Zellinhalte aus anderen Tabellen bzw. Mappen

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Programmieren in Haskell

Digital-out-of-Home. Te c h n i s c h e S p e z i f i k a t i o n e n

Seam Carving. Sebastian Arzt, Tim Rocktäschel. 19. Juni Humboldt Universität zu Berlin Seminar Computational Photography Sommersemester 2010

Das OMS Video-Netzwerk Werben im Bewegtbild-Umfeld. Stand: Februar 2011

Logik für Informatiker Logic for computer scientists

Inhalt: 1)Header-Widget, 2)Footer-Widget, 3)Buttons, 4)Übung: Wohnungskauf, 5)Controlgroups, 6)Listview, 7)Panel-Widget

Unterlagen. CPP-Uebungen-08/

Funktionale Programmierung Grundlegende Datentypen

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

1.2 Dateiformate. max. 1,5 MB / Sekunde o Bild Sequenzen für alle in Schleife abzuspielenden Videos: BMP, PNG, JPG. bis zu 1.

Automatische Fragebogenerfassung Testresultate. Zürich, November 2012

Praktischer DivX Workshop. Horst Wenske Entropia e.v.

HDMI Splitter, 2-Port

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

HDMI Video-Splitter DS DS DS BEDIENUNGSANLEITUNG

8-PORT HDMI VIDEO-SPLITTER

TYPO3-Kurzreferenz für Redakteure

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Unsere Videoboards in Krefeld am Dießemer Bruch. Mediadaten

Digital Cinema Package Creator

Programmieren in Haskell Einstieg in Haskell

57. Mathematik-Olympiade 1. Runde (Schulrunde) Lösungen

tps Verdichtete Zählliste Zusatzprogramm zur HS Auftragsbearbeitung Version 1.00 Bedienungsanleitung

Der Gaußsche Algorithmus

27-Zoll-Display von Philips

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Objektorientierte Programmierung OOP Programmieren mit Java

AUTOMATISCHES NACHFASSEN NEUER KUNDEN ODER VERSENDEN SIE EINE REIHE VON GEZIELTEN VIDEO- S

Smear in CCD-Sensoren

Erstellen von Videoclips aus MP4 Dateien (mit H.264 Codec) in Avidemux

Analoges Video-Quellensignal

1. Typen 1.1 Typsicherheit 1.2 Typprüfung

Funktionale Programmierung Mehr funktionale Muster

Vorweg konvertieren der Dateien

Südtiroler Kinowerbung (CINEPLEXX Bozen ODEON CINECENTER Bruneck)

Application Note 025

AviStack Tipps & Tricks

Semesterarbeit INFA. Social Software. Aufgabenstellung v200808

EiP Übung

2. Hilfe! Mein Computer lässt sich nicht mehr starten

Anleitung zum HD-Streaming

Broadway FAQ. Copyright 2017 Hauppauge Computer Works

CCD. Autoren: Rupert Gratz - Daniel Kadir - Stefan Reischmann. CCD steht für "charge"

Kompilieren und Linken

Programmierkurs Java

0.0 Kamera-Eigenschaften

Gleiche Vorgehensweise wie beim Einheitsvektor in der Ebene (also wie bei 2D).Beispiel:

Bildreihenfolge fixieren

Bedienung von Youtube über TV-Bildschirm

Große Dokumente gestalten

Maschinelles Lernen: Symbolische Ansätze

OCP Java SE 8. Lambda

BALANCE e.v. Mitgliederversammlung am Bericht zur Kasse und Antrag auf Entlastung 2009 und 2010

Filterlisting. Modul für xt:commerce Veyton. Plugin-Funktionen... Systemvoraussetzung... Template-Anpassung...

Die Vormerkungen der Vertretungsplanung mit Untis

Zeichen formatieren (KTV)

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes


Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren

Eigene Seiten erstellen

Digitale Medien. 9. Digital Video

Anleitung für das Sichern des Hauptfilmes einer DVD9 auf eine DVD5 mit Freeware

Getting Started AudiLogo Anwendung Version 1.0 für Mac OS X und Windows

SVCD MPEG-2, 24 Bits, 480 x 576, 25 fps, Videodatenrate: Variabel (Max Kbps) Audiodatenrate: 224 Kbps, MPEG-Audioebene 2, 44.

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Einführung in die CCD-Technologie

Inhaltsverzeichnis... 1 Bestandteile einer Formel... 1 Die Funktion Summenprodukt... 4

(1) Color Video Printer. Zusätzliche Informationen HDTV-Unterstützungsfunktionen UP-55MD Sony Corporation

Dateien von CSV-Datei Importieren

INTERSTENO 2015 Budapest World championship professional Word Processing

O SE Do SE Do l adpor adpor al Dokumentation

Typklassen. Natascha Widder

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

ILIAS Mathematik Online Fragen Erweiterung. Helmut Schottmüller

OpenOffice Writer 4 / LibreOffice Writer 4. Grundlagen. Peter Wies. 1. Ausgabe, Oktober 2014 OOW4LOW4

1 Überblick. A-Z SiteReader Benachrichtigung.doc Seite 1 von 9

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6

ANLEITUNG LUFTRINGE. Einleitung Sicherheitshinweise Produktinformationen Aufhängen der Ringe Begriffe Impressum...

Drucken in Success! V7.1

Aufgabe 13 (Markierungsalgorithmus). Gegeben ist die Formel F = (A D C) (E A) ( ( B D) E) A B (B D)

Prüfung Programming: Bildbearbeitung

Transkript:

Inhaltsverzeichnis 1 Motivation... 2 2 Der "übliche" Weg... 2 2.1 Video soll interlaced bleiben... 2 2.1.1 Ohne temporale Filter (z.b. nur spatiale Rauschfilter, Resizen u. Farbanpassungen)... 2 2.1.2 Mit temporalen Filtern (z.b. temporale Rauschfilter)... 2 2.2 Video soll deinterlaced (progressive) werden... 3 3 Filtern von interlaced Video mittels Bobber... 3 3.1 Verwendete Funktionen... 3 3.2 Video soll interlaced bleiben... 5 3.3 Video soll deinterlaced (progressive) werden... 5 4 Filtern mit Depan... 5 5 Resizing... 5 6 Danksagung... 6 Seite 1 von 6

1 Motivation Der "übliche" Weg interlaced Video in AviSynth zu filtern ist in Kapitel 2 Der "übliche" Weg dargestellt. Unter Verwendung eines Bobbers können jedoch z.t. wesentlich bessere Ergebnisse erzielt werden. V.a. können temporale Rauschfilter wesentlich effektiver und mit geringeren Thresholds eingesetzt werden. In Kapitel 3 Filtern von interlaced Video mittels Bobber werden je nach gewünschtem Endergebnis (interlaced od. progressive) und der verwendeten Filter (nur spatial od. auch temporal) die jeweiligen Wege gezeigt. In untenstehenden Beispielen wird eine Quelldatei mit Auflösung 704 x 576 gefiltert und in eine Zieldatei mit Auflösung 352 x 576 (1/2 DVD) umgewandelt. Zum Resizing siehe auch Kap. 5. 2 Der "übliche" Weg 2.1 Video soll interlaced bleiben 2.1.1 Ohne temporale Filter (z.b. nur spatiale Rauschfilter, Resizen u. Farbanpassungen) SeparateFields() UnDot() Lanczos4Resize(348,274) FadeOut(50) nur spatiale Rauschfilter Weave() 2.1.2 Mit temporalen Filtern (z.b. temporale Rauschfilter) SeparateFields() UnDot() spatiale Rauschfilter o = SelectOdd().TemporalCleaner(3,6) temporale Rauschfilter e = SelectEven().TemporalCleaner(3,6) temporale Rauschfilter Interleave(e,o) spatiale Rauschfilter auch hier möglich Lanczos4Resize(348,274) FadeOut(50) Weave() Seite 2 von 6

2.2 Video soll deinterlaced (progressive) werden AssumeTFF() ggf. AssumeBFF() TDeint() TomsMoComp(-1,5,0) Deinterlacen Alternative zu TDeint UnDot().TemporalCleaner(3,6) Lanczos4Resize(348,548) FadeOut(50) 3 Filtern von interlaced Video mittels Bobber Sollen als Rauschfilter ausschließlich spatiale Filter zum Einsatz kommen, so ist Variante 2.1.1 bzw. 2.2 ohne weiteres ausreichend. Sollen jedoch temporale Filter eingesetzt werden, so sollte man neben 2.1.2 und 2.2 auch die folgenden Varianten testen: Durch Einsatz von Bobbern erhalten die temporalen Filter die doppelte Bewegungsinformation und können dadurch effektiver und i.d.r. auch mit kleineren Thresholds als sonst eingesetzt werden. Zusätzlich lässt sich die Effektivität der Rauschfilter durch Einsatz von Depan (siehe 4) noch weiter steigern. 3.1 Verwendete Funktionen LoadPlugin("...\TDeint.dll") mind. TDeint 0.9.7 LoadPlugin("...\TomsMoComp.dll") TDeintBob(clip a, bool "tff") Erzeugt aus interlaced Video ein progressives doppelter Framerate (z.b. aus 25 fps interlaced ein 50 fps progressive) tff gibt die Field order des clip a an: true --> Top Field First (Upper Field First) false --> Botttom Field First (Lower Field First) Falls nicht angegeben, wird true (Top Field First) angenommen TMCBob(clip a, bool "tff") Erzeugt aus interlaced Video ein progressives doppelter Framerate (z.b. aus 25 fps interlaced ein 50 fps progressive) tff gibt die Field order des clip a an: true --> Top Field First (Upper Field First) false --> Botttom Field First (Lower Field First) Falls nicht angegeben, wird true (Top Field First) angenommen Seite 3 von 6

ReinterlaceBob(clip a, bool "tff") Erzeugt aus einem progressiven ein interlaced Video halber Framerate (z.b. aus 50 fps progressive ein 25 fps interlaced) tff gibt die Field order des zu erzeugenden interlaced Videos an: true --> Top Field First (Upper Field First) false --> Botttom Field First (Lower Field First) Falls nicht angegeben, wird true (Top Field First) angenommen HalfFpsBob(clip a) Erzeugt aus einem via TDeintBob auf doppelte Framerate gebobbten Video ein progressives halber Framerate (z.b. aus 50 fps progressive ein 25 fps progressive) function TDeintBob(clip a, bool "tff") { tff = Default(tff,true) a = tff? a.assumetff() : a.assumebff() a.tdeint(mode=1) function TMCBob(clip a, bool "tff") { tff = Default(tff,true) a = tff? a.assumetff() : a.assumebff() f = a.tomsmocomp(-1,5,0) e = a.doubleweave().selectodd().tomsmocomp(-1,5,0) Interleave(f,e).AssumeFrameBased() function ReinterlaceBob(clip a, bool "tff") { tff = Default(tff,true) a = tff? a.assumetff() : a.assumebff() a = a.converttoyuy2() SeparateFields(a).SelectEvery(4,0,3).Weave() 1) 1) 2) function HalfFpsBob(clip a) { SelectOdd(a) mvbob() siehe: http://forum.doom9.org/showthread.php?s=&postid=606487post606487 1) AviSource() setzt immer auf BFF, auch wenn das AVI tats. TFF ist. Daher wird ggf. wieder auf TFF korrigiert. 2) Bob() und AssumeFrameBased() setzen intern immer auf BFF, auch wenn die Quelle tats. TFF ist. Daher wird ggf. wieder auf TFF korrigiert. Seite 4 von 6

3.2 Video soll interlaced bleiben Einen der folgenden drei Bobber verwenden: AssumeTFF().mvBob() bzw. AssumeBFF().mvBob() TDeintBob() bzw. TDeintBob(tff=false) TMCBob() bzw. TMCBob(tff=false) UnDot().TemporalCleaner(3,6) Lanczos4Resize(348,548) FadeOut(100) ReinterlaceBob() bzw. ReinterlaceBob(tff=false) 3.3 Video soll deinterlaced (progressive) werden Alles ist vollständig identisch zu 3.2 durchzuführen, lediglich die letzte Zeile (ReinterlaceBob) ist durch diese zu ersetzen: HalfFpsBob() 4 Filtern mit Depan Grundsätzlich ist es zu empfehlen temporale Rauschfilter immer in Verbindung mit Depan einzusetzen, da die temporalen Filter dann wesentlich mehr Informationen zum Denoisen zur Verfügung haben. Aus temporalerrauschfilter() wird dann data=depanestimate(last,pixaspect=1.094) depaninterleave(last,data,pixaspect=1.094,prev=2,next=2) temporalerrauschfilter() SelectEvery(5,2) Dies benötigt aber ein mehrfaches der ursprünglichen Rechenzeit! Ein Kompromiss aus Qualität u. Rechenzeit wäre z.b.: data=depanestimate(last,pixaspect=1.094) depaninterleave(last,data,pixaspect=1.094) temporalerrauschfilter() SelectEvery(3,1) 5 Resizing Betreffend Resizing empfehle ich um höchstmögliche Qualität zu erreichen vertikal nicht zu resizen. Falls unsaubere Ränder gecroppt werden, so sollte man diese nach dem Filtern durch AddBorders wieder durch schwarze Ränder ersetzen. Wenn Resizing, dann nur horizontal! So wurde dies auch in obigen Beispielen durchgeführt. Seite 5 von 6

6 Danksagung Obiges Vorgehen entstammt den Vorschlägen von scharfis_brain (http://forum.gleitz.info) bei welchem ich mich dafür herzlich bedanken möchte! Seite 6 von 6