TGMC-Beta2 und AviSynth-MT 2.58 – Finetuning

  • In welchem Plugin der Fehler auftaucht, das scheint keinem Muster zu folgen. Bei hoher Speicherauslastung kommt das Speichermanagment von Avisynth-MT irgendwann durcheinander, und der Filter, der dann gerade zufällig an der Reihe ist, der hat halt den schwarzen Peter. :)
    Und da sowohl MVTools als auch die MaskTools die meiste Arbeit in dem Script verrichten, liegt die rein statistische Wahrscheinlichkeit sehr hoch, dass der Fehler in einem dieser beiden Plugins auftritt. Oder eben auch in kernel32, wenn das Betriebssystem gerade seiner Aufgabe nachkommt, das Speicherschlachtfeld zu verwalten.

  • Derartige Probleme mit TGMC(QTGMC) kann man zumeist so umgehen: Das Skript im MeGUI laden und 'Ad pre-rendering job' aktivieren. Kodiert wird zunächst nach huffyuv (Speicherbedarf beachten) und anschließend mit den x264-Einstellungen. Geht in einem Rutsch über die Jobliste ohne die berüchtigte Fehlermeldung.

  • Okay fangen wir mal an.
    Ja @Didee die Sache mit den Threads war das Ausschlaggebene. Sogar "nthreads" wirklich nicht höher als 2. Mit 3 lief es zum Anfang recht stabil aber dann so nach 5min aprupt Feierabend. Danke für den Hinweis !!!
    Das komische ist nur,das bei den VHS-AVI-Captures,also AVISource,nie dieses Problem aufgetreten ist und das bei SetMTMode(5,8) und nthreads=8. Naja probieren über studieren.

    hdst
    Richtig ich möchte dieses Mpeg2,über den Umweg AVI,in 1920x1080i encoden.
    Meinst Du wirklich das MeGui das stabil packt? Und das mit vollen 8 Threads über AVIsynth-MT? Ich bin da noch ein bißchen skeptisch.
    Ansonsten ist ja der Weg nicht anders,als das,was ich jetzt mache.Nur das ich den PicVideo nehme und nicht Huffyuv.
    Auf jeden Fall nehm ich auch immer MeGui für die x264 Videos.

    @All
    Wißt Ihr was das Schlimmste ist? Man Testet,Testet,Testet und zum eigentlichen Ergebniss kommt man nie so richtig. Frau meckert schon....Wat ist nun mit den Videos.


  • Meinst Du wirklich das MeGui das stabil packt? Und das mit vollen 8 Threads über AVIsynth-MT?


    Zumindest funktioniert es mit 1280x720. Mit der hohen Auflösung habe ich es noch nicht ausprobiert. Da Du bereits MeGUI-Experte bist, solltest Du bald Deine Frau mit einem fertigen Video überraschen.

  • Es funktioniert doch mit vollen 8 Threads.
    Und zwar mit QTGMC aber mit der älteren 3.11 Version. Weil die Neue funktioniert mit diesen Einstellungen nicht mehr.

    Diese Einstellungen reichen:
    QTGMC(2,1,3,0,0,0,Edimode="NNEDI3",edithreads=8,precise=true,truemotion=true)
    um das Gleiche an Qualität raus zubekommen wie:
    TempGaussMC_beta3(2,1,3,0,0,0,Edimode="NNEDI3",nthreads=8,truemotion=true,sharpness=1.75,Sbb=2,SLrad=1,SVthin=0.75,Sovs=2)

    Wichtig war auch die Angabe von "SetMemoryMax". Bei 720x576 Ausgabe reichten 800 aus aber als ich dann noch Lancos4Resize mit 1920x1080 hinter QTGMC angegeben habe,mußte ich den Wert auf 1024 erhöhen. Und es lief super stabil durch.

    @Didee
    Kann man eigentlich in TGMC/QTGMC die Ausgangsbildgröße im Script angeben? Dann brauchte man nicht zusätzlich noch einen Resize-Filter dazwischen hauen.

  • Nö, kann man nicht. Warum denn auch - TGMC führt zu keinem Zeitpunkt ein internes Resizing durch, also gibt's auch nichts, was man "übernehmen" könnte. Und hinterher manuell ein XYZResize() hinzuschreiben ist ja nun wirklich nicht kompliziert.

    Allerdings, wenn ich so nachdenke ... für den Fall 1080i -> 720p wäre ein internes Resizing *vor* dem ganzen MVTools-Zeug durchaus eine sinnvolle Option.

  • also versuche mich schon seit ner halben stunde durch dieses forum und durch google durchzulesen und verstehe trotzdem noch nicht, was denn jetzt eigentlich wo geändert werden muss?!?

    muss man in der "TempGaussMC_beta2.avsi" bei "# Create spatially interpolated bob-clips" in der zeile "edi = (EdiMode=="nnedi2") ? clp.nnedi2(field=-2,qual=qual)" was ändern?

    versuche schon seit stunden TGMC mit Staxrip zum Laufen zu bringen, aber mehr als 1,4 fps sind nicht drin (Quelle MPEG-TS HD1080i DVB-S Aufnahme!) Kommt das hin oder muss ich nur ein paar dinge drehen und dann wird (wenigstens ein bisschen) schneller? Mit Yadif komme ich so auf ca. 18 fps!

  • Es könnte schon schneller laufen. Es könnte aber auch langsamer laufen.

    "Man weiß es nicht ...."

    habe diesen parameter benutzt: (1,1,1,EdiMode="NNEDI2",Smode=1,SVthin=0.0,Sbb=0,SLmode=1) = ~1,4 fps

    vorher diesen: (mt = false, 2,2,3,0,0,0,"EEDI2",eedi2maxd=16,truemotion=true,sharpness=1.75,Sbb=2,SLrad=2,SVthin=0.75,Sovs=2) = 0,7 fps

    ist das wirklich schon das ende der fahnenstange bei nem i7 mit 3gb graka und cuda? yadif ist zwar schlechter bei genauem hinsehen, wobei ich so hohe bitraten nehme, dass das kaum auffällt, aber die geschwindigkeit würde ja dann in keiner relation stehen!

    mal ne andere frage: ist das deinterlacete material immer 50fps (bei 25fps source versteht sich) oder gibts auch ne einstellung, bei der die bitrate unverändert bleibt?

  • Wenn es "echt"-Interlactes Material ist (Video-type Interlacing - Sport, Nachrichten, Liveshows, etc.) dann enthält das Interlacing pro Sekunde 50 unterschiedliche Bewegungszustände, die dazu gedacht sind, pro Sekunde 50 unterschiedliche Bilder darzustellen. Hohe Bewegungsauflösung. Bob-Deinterlacing zu 50fps ist hier das "eigentlich richtige". Natürlich kann man auf althergebrachte Art zu 25fps deinterlacen, aber das ist (und war schon immer) ein eigentlich unschöner Kompromiss, weil die Hälfte des Bewegungsflusses verloren geht.
    Bei anderen Arten von Interlacing (Pulldown, Phase-Shift, [Blend-]Normkonvertierungen) ist die Basisrate i.d.R. 24 oder 25fps - aber da ist TGMC sowieso nicht besonders gut geeignet. Kann gehen, aber ausgelegt ist er ausschließlich für Video-Type Interlacing.

    Wenn nur das normale Avisynth - nicht AvisynthMT - verwendet wird, dann wirste bei 1080i kaum jemals über 3~4 fps hinauskommen, selbst bei allerprimitivsten Einstellungen. NNEDI3 alleine braucht schon seine Zeit, und vor allem ist die ganze Bewegungskompensations-Geschichte bei Full-HD nun mal sehr sehr aufwändig. "You can't make a pancake without breaking an egg."

    Mit AvisynthMT @8Threads kriegt mein i7-860, mit sehr schnellen TGMC-Settings, bei 1080i einen reinen Render-Pass (ohne! x264-Encoding) mit ca. 12~14fps hin. Kommt x264 noch dazu, dann natürlich deutlich weniger, je nach x264-Settings.

    Mehr krieg ich dieses Jahr nimmer geschrieben ...


    ... Wünsche allen einen guten Rutsch nach 2012!

  • aha! wieder was gelernt! ich finde allerdings bei der yadif bob variante (mode=1,order=1) ist die bewegung nicht wirklich natürlich. man sieht schon einen grossen unterschied in der bewegung zum "normalen" yadif, aber sieht für mich irgendwie komisch aus!

    aber zurück zu tempgaussmc: habe mal meine tv-aufnahme mit tempgaussmc und zum vergleich mit yadif (als bob / s.o.) konvertiert und verglichen! tempgaussmc gestochen scharf yadif nicht so ganz (wenn man vorher das andere bild gesehen hat! dem gegenüber steht tempgaussmc 4 stunden für 7 minuten video! yadif (bob) 18 minuten für 7 minuten video!

    würde gerne tempgaussmc zum umwandeln nehmen, aber bei 2:15 film wären das ca. 77 Stunden also mehr als 3 tage!! habe schon die abgespeckte variante benutzt wie also kann man mit x264 noch ein bisschen mehr rauskitzeln?

    ach ja: GUTEN RUTSCH AN ALLE!!

  • ich finde allerdings bei der yadif bob variante (mode=1,order=1) ist die bewegung nicht wirklich natürlich. man sieht schon einen grossen unterschied in der bewegung zum "normalen" yadif, aber sieht für mich irgendwie komisch aus!

    Dann solltest du noch mal nachlesen, welche Bedeutung die Parameter "mode" und "order" haben:

    mode ist verantwortlich für das Bobbing (50 fps).

    order gibt an, ob der Deinterlacer mit TFF oder BFF rechnen soll; wählt man hier nicht die korrekte Variante, gibt es Vor-Zurück-Ruckel-Bewegungen.

  • LigH, was ist passiert, dass Du an Silvester um 0:00 hier 'ne Post absetzt. :eek: - Gutes Neues!


    aber bei 2:15 film wären das ca. 77 Stunden also mehr als 3 tage!!


    Hoffen wir mal dass "Film" ganz alllgemein für "Videoquelle" steht. Sollte "Film" ganz speziell für "Spielfilm" stehen, dann sollte man sich erst mal genau ansehen, um welche Art von Interlacing es sich handelt ... weil dann vermutlich sowohl Yadif als auch TGMC die verkehrten Filter wären. (Wenn Fieldmatching/IVTC nötig ist, dann ist es nötig, und Deinterlacer sind dann gar keine gute Wahl)

    Letztlich kommt man nicht an den simplen Fakten vorbei: (Q)TGMC ist qualitativ so ziemlich das beste, was Avisynth im Bereich Deinterlacing zu bieten hat. Aber um dort hin zu kommen, muss eben auch ein vergleichsweise großer Aufwand betrieben werden. Und bei 1080-er Quellen tut der Aufwand eben weh.

    Bei der Entwicklung hab ich ausschließlich mit SD-Quellen gearbeitet. Die brauchen's auch am nötigsten - wenn SD sehr "einfach" deinterlaced wird, und dann auf einem HD-Display abgespielt wird (zwangsweise Hochskaliert), dann sieht man die Defizite mitunter durchaus deutlich. Deswegen macht solches HighQuality-Deinterlacing bei SD auch am meisten Sinn. Bei HD-Quellen fällt es leichter, sich mit einfacherem Deinterlacing zufrieden zu geben, weil die Defizite dort längst nicht so deutlich ins Auge fallen.


    Trotzdem nochmal zum Überdenken:

    - z.B. dieses hier (Bildvergleich Yadif-TGMC) (es ist Inhaltsabhängig: manchmal sieht Yadif normal aus, manchmal sieht es furchtbar aus)

    - oder auch dieses hier (Bildvergleich, und Erwägungen über "Komprimierbarkeit")

    Die "Komprimierbarkeit" ist auch noch ein Punkt, den man in Erwägung ziehen kann. Durch die starke temporale Filterung lässt sich (Q)TGMC-deinterlactes Material i.d.R. viel besser Komprimieren als bei anderen Deinterlacern. Daumenwerte: Bei Single-Rate Deinterlacing brauchen andere Deinterlacer 20~25% mehr Bitrate, bei Full-Rate Deinterlacing locker 40~60% mehr Bitrate. Und man investiert die höhere Bitrate eben in ein schlechteres Bild ... bzw. man muss auf das schlechtere Bild zusätzlich noch mit stärkerer Video-Komprimierung 'draufschlagen, um auf eine vergleichbare Bitrate 'runterzukommen.

    Oder man nimmt einen einfachen Deinterlacer (es muss ja schnell sein!!), und fährt mit dann z.B. MVTools/MDegrainX hinterher. Dann ist's aber auch gleich wieder langsam. Weil man hiermit nämlich eine ganz ähnliche Filterkette gebaut hat wie sie TGMC intern sowieso benutzt. (Nur eben dass die nachgebaute weniger problemorientiert, und deswegen weniger optimal, aber trotzdem langsam ist ...)

    Die so ziemlich schnellst-mögliche Variante:

    Code
    tempgaussmc_beta3(1,1,0,0*4,0*4,0,edimode="yadif",svthin=0.0,Sbb=0,SLmode=0)  #  ,pel=1  #  mit pel=1 nochmal deutlich schneller, aber auch schlechter

    Viel schneller geht's nicht, und die Vorteile beim Ergebnis werden bei solchen Speed-Settings dann auch schon wieder kleiner.

  • Letztlich kommt man nicht an den simplen Fakten vorbei: (Q)TGMC ist qualitativ so ziemlich das beste, was Avisynth im Bereich Deinterlacing zu bieten hat. Aber um dort hin zu kommen, muss eben auch ein vergleichsweise großer Aufwand betrieben werden. Und bei 1080-er Quellen tut der Aufwand eben weh.

    Bei der Entwicklung hab ich ausschließlich mit SD-Quellen gearbeitet. Die brauchen's auch am nötigsten - wenn SD sehr "einfach" deinterlaced wird, und dann auf einem HD-Display abgespielt wird (zwangsweise Hochskaliert), dann sieht man die Defizite mitunter durchaus deutlich. Deswegen macht solches HighQuality-Deinterlacing bei SD auch am meisten Sinn. Bei HD-Quellen fällt es leichter, sich mit einfacherem Deinterlacing zufrieden zu geben, weil die Defizite dort längst nicht so deutlich ins Auge fallen.

    Oder man nimmt einen einfachen Deinterlacer (es muss ja schnell sein!!), und fährt mit dann z.B. MVTools/MDegrainX hinterher. Dann ist's aber auch gleich wieder langsam. Weil man hiermit nämlich eine ganz ähnliche Filterkette gebaut hat wie sie TGMC intern sowieso benutzt. (Nur eben dass die nachgebaute weniger problemorientiert, und deswegen weniger optimal, aber trotzdem langsam ist ...)

    also 1. ja den qualitätsunterschied habe ich bei meiner Aufnahme gesehen! auch bei der vermeintlich schnellsten variante "TempGaussMC_beta2(1,1,1,EdiMode="NNEDI2",Smode=1,SVthin=0.0,Sbb=0,SLmode=1)"

    nutze übrigens staxrip mit eingebundenem DGIndexNV und crf 18 bei x264 mit Preset=Very Fast, Tune=Film und Device=DivX Plus

    2. Quellmaterial ist ein Spielfilm und von dem rest hab ich keine ahnung! mit mediainfo wird man das nicht rauskriegen oder? mediainfo sagt nur dass es interlaced ist (wusste ich aber vorher schon) ansonsten noch dies hier:

    Video
    ID : 767 (0x2FF)
    Menu ID : 107 (0x6B)
    Format : AVC
    Format/Info : Advanced Video Codec
    Format profile : High@L4.0
    Format settings, CABAC : Ja
    Format settings, ReFrames : 3 frames
    Codec ID : 27
    Duration : 2h 30min
    Bit rate : 6 312 Kbps
    Width : 1 920 Pixel
    Height : 1 080 Pixel
    Display aspect ratio : 16:9
    Frame rate : 25,000 FPS
    Standard : PAL
    Color space : YUV
    Chroma subsampling : 4:2:0
    Bit depth : 8 bits
    Scan type : Interlaced
    Scan order : oberes Feld zuerst
    Bits/(Pixel*Frame) : 0.122
    Stream size : 6,64 GiB (85%)
    colour_primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
    transfer_characteristics : BT.709-5, BT.1361
    matrix_coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

    ist übrigens bereits geschnitten mit DVR Studio HD 2, aber das sollte meines wissens nach irrelevant sein!

    3. muss es nicht das schnellste auf erden sein! würde auch 12 stunden encodingzeit akzeptieren, aber 3 tage ist dann doch ne spur zu happig!!

    4. SD nehme ich selten auf, aber werde es beim nächsten mal auch mit SD testen!

    5. Danke für alle Hinweise und Ratschläge!!

    6. FROHES NEUES!!!

  • Wenn's ein Spielfilm ist, dann ist's zu 99.9% NICHT das Video-Type Interlacing. Entweder Progressiv/Phaseshifted (HD-1080 wird ja ausschließlich als 1080i ausgestrahlt), oder es ist eine Normkonvertierung.

    (Echt-Interlacte Spielfilme sind ganz ausgesprochen selten. "Blair Witch Project" war interlaced, glaub' ich. Einen anderen Echt-Interlacten Spielfilm kenne ich nicht.)

    Mal mit einem ganz einfachen Bob() und Einzelbildschaltung testen (z.B. in Virtualdub). Wenn das Muster "Stillstand-Bewegung-Stillstand-Bewegung-..." ist, dann ist's progressiv. Wenn "Bewegung-Bewegung-Bewegung-Bewegung-...", dann ist's interlaced. Wenn sowas wie "Doppel-" oder "Geister-Bilder" auftauchen, dann ist's eine Normkonvertierung.

    Wenn unsicher, Screenshots oder besser noch ein kurzes Sample posten.

  • weiss nicht, was du mit Doppel- oder Geisterbilern meinst, aber Stillstand-Bewegung ist schonmal richtig!

    du meinst, wenns progressiv ist wirds zwar als 1080i ausgestrahlt ist aber eigentlich 1080p also brauch ich im Endeffekt gar keinen deinterlacer drüber laufen lassen oder wie?!?

    hab ich natürlich gleich mal per script getestet! also kamm-effekte scheints schonmal keine zu geben!

    kann man trotzdem noch irgendwas drüber laufen lassen womit man das bild etwas schärfen kann? kenn mich mit diesen ganzen filtern nicht aus! ein link würde auch schon reichen! bin nicht lesefaul!!

  • "Doppel- oder Geisterbilder" bedeutet, dass man zwei überblendete, vermischte Bilder in einem sieht. Besonders auffällig in schnelleren Bewegungen. Bei überblendenden Normwandlungen fällt dann vor allem auf, dass der Grad der Mischung langsam zu- und wieder abnimmt.

    Standardreferenz für Fortgeschrittene und Interessierte — "exotisches Interlacing" von scharfis_brain:

    2.3.3 Normgewandeltes Filmmaterial - mit Blending

    evtl. auch

    2.2.2 Telecine ohne PAL-Speedup - mit blending - interlaced
    __

    "Schärfen" schärft nicht wirklich, verschlechtert aber im Allgemeinen die Komprimierbarkeit deutlich.

    Ein empfehlenswertes Stichwort für die Suche wäre "LimitedSharpenFaster".

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!