QTGMC MT Deinterlacing PAL DVD

  • Hallo, bin gerade dabei eine alte Serie ('87-'97), die ich mir als DVD-Box Set gekauft habe nach mkv(x264/ac3) zu encoden. Das Quellmaterial der originalen DVDs ist qualitativ nicht besonders gut wird aber im laufe der Seasons etwas besser. Megui's Interlacing Analyse schlägt meist partially interlaced oder interlaced mit yadif vor, bei manchen Episoden aber auch hybrid mostly interlaced mit TIVTC. Das TIVTC Deinterlacing funktioniert bei dieser Quelle leider nur unzureichend, da im Endergebis bei Bewegungen immer noch kleine horizontale Linien zu sehen sind. Yadif funktionierte einwandfrei, wesshalb ich es auch für die bisherigen Seasons verwendet habe. Wenn ich aber am Ende die DVD-Originalqualität(interlaced) mit der von mir x264-yadif(deinterlaced) vergleiche, muss ich feststellen, dass das ganze noch verschwommener (blur) geworden ist bzw. auch einige Details verloren gegangen sind (subjektiver Eindruck).

    Also hab ichs mit QTGMC versucht und finde das Ergebnis erheblich besser als mit yadif. Installation wie hier beschrieben hat funktioniert, Multithreading geht bei mir auch gut und stabil. Habe in meinem Fall vom Present Slow auf Fast gewechselt, da das bei meiner Quelle wirklich keinen visuellen Unterschied macht. Damit erreiche ich mit meinem avs-skript (avisynth 2.6 x86) unter megui beim 1st pass 55 fps und beim 2nd pass 22 fps, cpu-auslastung 94-98% (Core i7 2600K HT, 4 Cores 8 Threads). Da ich absichtlich nicht croppen oder resizen will, um die Original-Auflösung beibehalten zu können (720x576 DAR 4:3 mit dem anamorphen Seitenverhältnis) und auch die 25 fps beibehalten will sieht meine avs-Datei so aus:

    Avisynth-Script

    Code
    # Set DAR in encoder to 4 : 3. The following line is for automatic signallingglobal MeGUI_darx = 4global MeGUI_dary = 3LoadPlugin("C:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")#SetMemoryMax(M)  # Optional line. See below for value MSetMTMode(3, 8)  # See below for value X, could try 5 instead of 3 for non-standard source-filter/avisynth combinationsDGDecode_mpeg2source("E:\VTS_01_1.d2v", info=3)SetMTMode(2)QTGMC( Preset="Fast", EdiThreads=1 ) # Choose preset based on overall speed/quality you want. See below for value YSelectEven()Distributor() # This line may or may not be necessary, try removing it and see if you get more speed#LoadPlugin("C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")#ColorMatrix(hints=true, interlaced=true, threads=0)#crop#resize#denoise

    x264-Encoding Settings

    Code
    cabac=1 / ref=5 / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=4 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=1520 / ratetol=1.0 / qcomp=0.80 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.10 / aq=1:0.50


    Jetzt zu meinen Fragen:

    - Anhand von meiner CPU dürften die MT-Einstellungen von QTGMC passen, oder? (Max-Memory ist bei SD-Material ja nicht notwendig)
    - Egal wo oder wie ich ColorMatrix im Skript aktiviere, bekomme ich unterschiedliche fehlermeldungen, bzw. crashes in megui. brauche ich das unbedingt - merke von den Farben her keinen Unterschied?
    - Da ich immer 2-pass x264 encodiere (um aufs MB genau die Dateigrösse zu erreichen) - kann man da noch was optimieren, dass der 1st pass schneller geht? QTGMC muss auch beim analyse pass aktiv sein, richtig?
    - Was genau mach eigentlich Distributor() im Skript?

  • Der Encoder x264 braucht sicher (je nach Preset) die meiste Rechenleistung, es wird also nicht viel nützen, wenn das Skript sehr schnell ... wartet. Übertreibe es also nicht im Skript mit den Threads. Den Unterschied zwischen 4 oder 8 wirst du wohl kaum deutlich spüren.

    SD-MPEG2 wird sicherlich Rec601-Farben haben, also glaube ich nicht, dass ColorMatrix unbedingt notwendig ist. Aber besser man schaut da noch mal genauer nach (in DGIndex oder MediaInfo -f).

    Was sich im ersten Durchlauf in x264 optimieren lässt, sollten deren Entwickler bereits berücksichtigt haben. Das Skript sollte unbedingt in beiden Durchläufen das selbe sein. Bei sehr schneller Festplatte und sehr langsamer Skriptberechnung kann man erst mal eine verlustlose AVI-Datei erzeugen lassen, aber ich glaube, dass in deinem Fall die Plattenzugriffe langsamer sein werden.

    Die Funktion Distributor() sollte man nur verwenden, wenn man sie wirklich braucht, um Multi-Threading in bestimmten Umgebungen korrekt zu verwalten. Ich kenne nicht viele Fälle, in denen das nötig ist; beispielsweise, wenn man ein Skript innerhalb von ffdshow als Post-Processing-Filter verwenden will. Im normalen Betrieb mit 32-bit-AviSynth eigentlich meist nicht.

  • Danke für die Antworten. ColorMatrix kann ich sicher weglassen (dgindex.log BT.470-2) und Distributor() im Skript auch. Habs gerade nochmal mit 4 statt 8 Threads probiert - beim 2nd pass macht das keinen Unterschied, aber beim 1st pass ist die CPU nur 60 statt 98% ausgelastet - Zeit/fps mäßig macht das aber auch nicht viel Unterschied - ein paar fps weniger halt. Lossless wäre zwar auch eine Möglichkeit (hätte Sogar Platz auf meiner SSD) ist mir dann aber doch zu viel Aufwand für solch eine Quelle ... danke somit wäre alles geklärt.

    Es wäre fein wenn QTGMC irgendwann einmal unter megui in den Avisynth-Script-Creator aufgenommen werden würde ... für uns tippfaule Gui-Leute ;)

  • Quote

    Das Quellmaterial der originalen DVDs ist qualitativ nicht besonders gut wird aber im laufe der Seasons etwas besser.


    Wäre es da nicht besser mit crf zu encodieren?
    Spart einen Durchgang und bügelt durch die intelligente Bitratenverteilung die Unterschiede in den Quellen aus.
    Ich verstehe bis heute nicht warum Menschen im Zeitalter von Terrabyte Festplatten
    und/oder großen USB Sticks noch 2 Pass encodieren.
    Warum musst du denn genau eine Zielgröße treffen?
    Du brennst doch wohl nicht auf CD/DVD?
    Sehe gerade, deine Bitrate ist 1520.
    Wenn es die Seasons sind die ich annehme, kann da eigentlich nur Matschepampe rauskommen.
    QTGMC schärft ja auch schön nach in den Default Einstellungen.
    Und entfernt beim Weglassen einer Halbwelle (SelectEven() ) auch noch einige Störungen.
    Aber die Komprimierbarkeit wird dadurch auch nicht viel besser.

    Aber jedem das seine...wie wir in Norddeutschland sagen.

  • LigH
    danke werde ich probieren.

    Taurus
    Also crf kommt für mich nicht in frage, denn ja, ich bin noch so einer der wirklich auf DVD brennt. In diesem Fall je 1 Season auf 1 DVD-9 (8150 MB) - sind dann pro Episode nur 313-370 MB deswegen 2-pass. Ich habe zwar selber auch mehrere Terabyte-Festplatten ... eine mit 4, eine mit 2 usw. aber wenn die mal kaputt gehen verliere ich auf einen Schlag alles, deswegen sichere ich immer noch zusätzlich auf DVD. Davon abgesehen, mit mehreren Serien/Filmen die dann vl auch noch in HD sind, werden selbst Terabyte-Festplatten sehr schnell voll ;)

    Zur Qualität: normalerweise, wenn die DVD-Qualität besser wäre (vor allem schärfer) würde ich die Episodengröße mind. verdoppeln, aber habs gerade nochmal verglichen (side by side orignal + rip), selbst mit diesen niedrigen Einstellungen sehe ich fast keinen Unterschied, da das Original wirklich verschwommen/unscharf ist und zusätzlich nachschärfen will ich auch nicht. Mit yadif war das Ergebnis noch mehr verschwommen als das Original, mit QTGMC sehe ich wie gesagt fast keinen Unterschied.

    Edited once, last by truthy: Rechtschreibfehler (March 6, 2014 at 1:03 PM).

  • Ist doch immer schön, wenn die Rechschreuibpolilei aufpasst...
    Vielleicht hatte ich gerade das Wohl unseres Planeten im Kopf, als ich die Zeilen in die Tastatur hackte.
    Nein, ich werde meine Post nicht editieren.

    truthy:
    Ich verstehe deine Beweggründe, aber gerade die "Seasons" sind meiner Meinung nach schwierig zu komprimieren.
    Deshalb mein Einwand.

  • Sry, dass ich den Thread wieder aus der Versenkung hole, hab aber ein kleines Update:

    Ich habe gerade wieder mal QTGMC gebraucht und bin nicht nur vom Deinterlacing, sondern auch von den NoiseRemoval & Sharpen-Effekten absolut begeistert. Der Vergleich ist von einer ORIGINAL Kauf-DVD. Das Quellmaterial ist von 1988 und wurde leider nie digital remastered (wie mittlerweile bereits sehr viele andere). Ich finde mein Reencode mit QTGMC + EZ-Denoise sieht 10x besser aus als das Original. Da zu viel 'blur' ja auch nicht gut ist, ist das ein guter Kompromiss und sieht auf einem 50'' LED-TV wirklich gut aus. (über BR-Player skaliert, da die meisten neuen TV-Scaler für SD-Material grauenhaft sind)

    Resize von 720x576 auf 720x544 ohne croppen und NACH QTGMC Deinterlacing/Denoising:

    Code
    global MeGUI_darx = 4global MeGUI_dary = 3LoadPlugin("C:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")SetMTMode(3, 8)DGDecode_mpeg2source("E:\...\VTS_01_1.d2v", info=3)SetMemoryMax(768)SetMTMode(2)QTGMC( Preset="Slower", EZDenoise=6, EdiThreads=1 ) SelectEven()LanczosResize(720,544) # Lanczos (Sharp)


    Encoding Settings:

    Code
    program --level 4.1 --preset veryslow --tune animation --pass 2 --bitrate 4000 --stats ".stats" --keyint 25 --min-keyint 1 --bframes 3 --ref 6 --vbv-bufsize 30000 --vbv-maxrate 40000 --output "output" "input"

    Edited 3 times, last by truthy (June 27, 2015 at 2:00 PM).

  • Mhm, also die DVD-Quelle war schon interlaced - top field first - man hat auch noch ursprünglich horizontale Linien im Bild gesehen. Die Vergleichsbilder waren aber vor allem auf den Denoiser bezogen (nicht aufs Deinterlacing) - sind von der Preview unter MeGui bei genau demselben Frame.

  • Wenn bei Trickfilmen Interlace sichtbar ist, dann handelt es sich meist um eine Normwandlung von einem NTSC Master. Falls es sich hier um eine Normwandlung handelt, versaust du dir jedenfalls mit SelectEven nach QTGMC alle Kamerafahrten, weil die ursprüngliche Bildrate von (max) 23,976 fps zunächst durch das Telecine auf 29,97 fps und dann durch die anschließende Normwandlung mit Fieldblending auf alle 50 Fields mehr oder weniger ungleichmäßig verteilt wird. Wenn du dann die Hälfte davon wegschmeißt, dann fehlt halt was.


    Neben einer Normwandlung kann das Interlacing auch daher rühren, dass die Fields nicht mit dem jeweils passenden Partner im selben Frame abgelegt wurden, sondern dass sich dieser im nächsten/vorherigen Frame befindet. In dem Fall müsste man lediglich die Fields neu paaren und gar nicht deinterlacen. SeparateFields().Trim(1,0).Weave() würde dann schon reichen.

  • kA wie ich darauf gekommen bin, dass die Quelle interlaced war ... lt. mediainfo & in megui hatt er mir yadif vorgeschlagen, habs gerade nochmal probiert und ist eigentlich doch progressiv ... :grübeln:
    Da hab ich doch einen ordentlichen Bödsinn gemacht, weil ich mir auch noch gedacht habe ohne SelectEven wird 25fps zu 50fps und dann ist es nicht mehr standalone kompatibel ... aber die Framerate wird ja nur beim Deinterlacing verdoppelt. Im progressiven modus kann ich mir das sparen. Aber es ging mir ja in erster Linie um EZDenoise und man kann ja QTGMC damit auch im progressiven Modus laufen lassen. link
    Man lernt nie aus - danke ... also gleich nochmal und dieses mal richtig:

    Code
    global MeGUI_darx = 4
    global MeGUI_dary = 3
    LoadPlugin("C:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")
    SetMTMode(3, 8)
    DGDecode_mpeg2source("E:\VTS_01_1.d2v", info=3)
    SetMemoryMax(768)
    SetMTMode(2)
    QTGMC( InputType=1, Preset="Slower", EZDenoise=6, EdiThreads=1 ) 
    LanczosResize(720,544) # Lanczos (Sharp)

    Edit: Ok es war wirklich nur der erste progressiv. Die anderen sind wirklich zumindest teilweise interlaced ... deswegen bin ich darauf gekommen.

    Edited 3 times, last by truthy (June 26, 2015 at 2:53 AM).

  • QTGMC ist und bleibt in erster Linie ein Deinterlacer, der von überwiegend gleichmäßigen Änderungen von Field zu Field zu Field ausgeht. Gerade das ist bei Zeichentrick aber gar nicht der Fall, hier gibt es normalerweise mehrfach "identische" Fields (abgesehen von der vertikalen Lage, sondern eher in Hinblick auf den "Zeitpunkt", der dargestellt wird), und dann relativ große Sprünge. Das bringt die Bewegungsschätzung in QTGMC durcheinander. Es ist daher deutlich sinnvoller, für diesen Fall nach Methoden zu suchen, die speziell für Zeichentrick geeignet sind, Artefakte schlechter Normwandlungen zu eliminieren.

    Nebenbei verwendet QTGMC auch Rauschfilter, unterschiedliche je nach Preset oder Parameter. Bei welchem Preset welcher Rauschfilter wie verwendet wird, kann man im Quellcode nachlesen (auch wenn die mehrstufige Zuweisung von Variablen recht komplex ist). Wenn man diesen Teil separat verstanden hat, kann man auch auf QTGMC verzichten und alleine diesen Rauschfilter mit den gleichen Parametern verwenden, und wird wohl zu ähnlich guten Ergebnissen kommen können. Sicher gibt es noch Unterschiede, wie das Video sonst noch im Verlauf der QTGMC-Verarbeitung gefiltert wird, das hat sicherlich noch weitere Auswirkungen auf das Rauschen; aber letztendlich ist die Rauschfilterung nur ein Teil von vielen, für die QTGMC Rechenzeit und Arbeitsspeicher braucht.

    Bei den langsameren Presets verwendet QTGMC den Rauschfilter "dfttest" mit angepassten Werten, bei den schnelleren "FFT3DFilter". Ebenfalls interessant sind heutzutage "RemoveGrainHD" und "MSmooth" (der soll speziell für Zeichentrick nützlich sein).

  • Danke für die Erklärungen/Tipps. Ich habe QTGMC bisher nur für alte 'normalfilm' Quellen verwendet und auch wirklich zum deinterlacen - nie für Zeichentrick/Comic/Animation. Auf dem link von videohelp wird von jemandem zwar behauptet, dass, wenn man QTGMC im progresiven modus und nur wegen dem Schärfe/Rauschfilter verwendet, das Bild 'stabiler' wird also vorher ... aber davon merke ich eher nichts. Mit dfttest (wird bei Slower verwendet: noise-presets) & QTGMC ist es jetzt fertig. Jetzt mach ich noch einen Vergleich nur mit FFT3DFilter/dfttest/MSmooth/RemoveGrainHD. Habe hier noch ein paar sehr gute Erklärungen zu 'Spatial Smoothers' gefunden: link

    Was ich auch intererresant finde, ist, dass ab und zu nach einem x264 (re)encode von mir der Ton leicht asynchron wird ... beim jetzigen file zb um +300ms. Original ac3 delay der dvd war 6ms. Trotzdem fällt es mir schwer zu erkennen, welchen Deinterlacer ich verwenden soll, wenn die Quelle nur teilweise interlaced ist. Eigentlich kommen für meine Quellen aus bisheriger Erfahrung nur 3 in Frage: FieldDeinterlace, TIVTC und QTGMC (statt früher yadif). Aber prinzipiell alles mit QTGMC deinterlacen ist ja anscheinend auch nicht das Gelbe vom Ei. 99% von allem meinen Encodings sind mittlerweile progressiv. Wäre es Ok wenn ich von den jetzigen 3 Quellen jeweils ein 30s Sample ohne Ton wo hochlade, damit Ihr mir sagen könnt, wie Ihr das deinterlacen würdet? Oder besser nur einen Link per PM?

    EDIT:
    Also MSmooth finde ich absolut schrecklich - egal wie ich theshold/strength einstelle mit/ohne Maskenvorschau. Entweder es wird alles zur komplett verschwommen und alle Details gehen verloren oder mehr als die hälfte an Bildrauschen bleibt bestehen.
    RemoveGrainHD ist zwar besser aber die Details gehen auch verloren - ist ja auch für sehr feines Bildrauschen gedacht, Mode 17 hat noch am besten ausgesehen.

    Edited 5 times, last by truthy (June 26, 2015 at 2:41 PM).

  • Wenn nur sporadisch einige Frames mal ein Combing aufweisen, ist es nicht leicht, dafür ein sinnvolles Vorgehen zu finden, denn dann möchtest du ja sicherlich, dass möglichst alle anderen progressiven Frames unangetastet bleiben, und nur wenn mal ein Frame mit Combing auftaucht, soll das ersetzt werden. Hier ist aber ein "Deinterlacing" auch nicht grundsätzlich richtig. Eher wird man da versuchen, den Phasenwechsel im Frame zu vermeiden. Bei echtem Zeichentrick mit geringer Original-Bitrate wird es möglich sein, das Combed-Frame mit einem vorherigen oder nachfolgenden Frame zu ersetzen. Hat man aber computerunterstützten Trickfilm, wird es wieder komplizierter, weil dann Teile des Videos vielleicht doch wieder eine regelmäßige Bewegung haben... Hier fehlt mir leider die praktische Erfahrung. Also warte mal bitte ab, ob da noch andere gute Ideen übers Wochenende kommen.

    So dumme Deinterlacingmethoden, die blind jedes Frame verarbeiten, wären auf jeden Fall schlechter. TIVTC traue ich da noch ein wenig Intelligenz zu.

    Ein kurzer Schnipsel mit Schwenk oder Zoom wäre sicher interessant.

  • Okay, hab euch DL-Links/PW von drei 1min Samples von der Quelle per PM geschickt. (als mpg statt vob - ist aber nur gemuxt, gesplittet und demuxt worden)
    Für mich ist das 1. eigentlich progressiv, die anderen 2 auch nur teilweise interlaced ...

    Also bisher finde ich die Zweckentfremdung von QTGMC als Rauschfilter noch am Schönsten ... könnt ihr mir sagen, wie das zb aussehen müsste, wenn ich nur dfttest verweden will?
    Anhand von diesen Einstellungen QTGMC( InputType=1, Preset="Slower", EZDenoise=6, NoisePreset="Slower", EdiThreads=1 )

    Ich werde auch noch was komplett anderes probieren: Das 1. Video mit vdub nach Canopus Lossless speichern und mir mal das Ergebnis vom NewBlue Noise Reducer/Selective Touch Up o.ä. unter Edius ansehen. Dann könnte ich auch eine manuelle Szenentrennung durchführen und die Filter nur bei den Teilen verwenden, die sehr starkes Bildrauschen aufweisen. Nach der Bearbeitung wieder Lossless exportieren und mit x264 umwandeln.

    Edited 5 times, last by truthy (June 26, 2015 at 4:38 PM).

  • Sample 2 und 3 sind Normwandlungen eines NTSC-Masters, erkennbar am Fieldblending.

    Das heißt, dass man das NTSC-Master (mit 29,97 fps und Telecine) so zu PAL gewandelt hat, als ob es sich um eine normale Videoaufnahme mit 60 jeweils unterschiedlichen Fields pro Sekunde handelt. Das Ergebnis ist zwar anschaubar (und vor allem billiger, als ein reinrassiges PAL-Master zu erstellen), aber eine qualitativ schlechtere Lösung.

    Interessant, dass Sample 1 dagegen offenbar per Speedup gewandelt wurde. Stammen die Samples alle aus demselben Film oder derselben Episode?

    Edited once, last by Skiller (June 26, 2015 at 5:18 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!