restore24 + BlindDeHalo + LimitedSharpen

  • Hallo,
    auch auf die Gefahr hin, daß Didée und scharfis_brain Schreikrämpfe kriegen :D
    wollte ich an meinem StarTrek-TNG-Skript mal etwas rumfeilen:

    Dank Scharfis Hilfe (http://forum.gleitz.info/showthread.php?t=18946) verwende ich restore24 zum DeInterlacen. Nun wollte ich auch noch die Heiligenscheine entfernen und das Bild ein bischen nachschärfen, die Frage ist allerdings: Wie baue ich in r24 BlindDeHalo(2) und LimitedSharpen ein?
    Mein bisheriges Skript (PlugIn-Laden mal weggelassen):

    Code
    mpegSource("V:\StarTrekTNG\Disk8\StarTrekTNG_4x17.mpv")AssumeTFF()blindpp(cpu=4,iPP=true)crop( 16,4,688,568 )x=640y=480a=horizontalreduceby2().ibob()b=bilinearresize(x,last.height).r24kernelbob(7).bilinearresize(x,y)restore24(a,b)

    Meine erste Idee war nun (nur die Änderungen, außerdem hab ich grade festgestellt, daß ich BlindDeHalo ohne 2 verwendet hab - wird auch noch korrigiert):

    Code
    b=r24kernelbob(7)restore24(a,b).BlindDeHalo().LimitedSharpen(dest_x=640,dest_y=480,strength=160)


    Ruckt fürchterlich! OK, wurde ja auch schon öfter erwähnt, daß restore24 die Anwendung von Filtern hinterher nicht mag, also hab mal nur den b-Clip modifiziert:

    Code
    b=r24kernelbob(7).BlindDeHalo().LimitedSharpen(dest_x=640,dest_y=480,strength=1600)


    Das ruckt nun nicht mehr (zumindest bei einem 1:21-Testclip) - ist diese Lösung generell brauchbar, oder mache ich da einen fatalen Fehler?

    Außerdem dürfte die Verwendung von strength=1600 auffallen: War erstmal nur ein Tipfehler, aber dann hab ichs dringelassen - Standbilder in der Vorschau sehen da garnicht schlecht aus, erst bei einem Testencode sieht man, wies flackert. Werde da noch ein bischen experimentieren.
    Wie testet Ihr verschiedene Einstellungen? Ich vergleiche normalerweise mit Stack... in einem Probe-Clip in 4 verschieden Einstellungen auf einmal, aber da kommen natürlich wegen der extremen Rechnerei nur Standbilder im 10-20 Sekunden-Takt bei raus...

    Und zuletzt (Hallo Didée, nu isses mir doch zu langsam): Gibts ne Möglichkeit, das schneller/effektiver zu machen? Da ich im Schnitt eine Folge pro Tag rendern muß, wäre mir das schon etwas Arbeit wert, aber ich hab keine Ahnung, wo was einzusparen wäre...

    So, wäre nett, wenn sich das einer der Experten ansehen könnte ;D

    Vielen Dank schonmal im Voraus!

    Grüße!
    Trekkie2

  • Warum ruckt das denn im ersten Fall?

    ich bevorzug:
    .Sharpen(0.25).DBlindDeHalo2(3,3,150).LimitedSharpen()

    würde also

    machen

    Cu Selur

    Ps.: mal zu den advanced scripten verschoben

  • smartdecimate kann komplexes filtering nicht ab.
    das ruckelt dann wie otto.

    das einzige, was helfen *koennte*, waere, das script mit dem restore24

    mittels avisource in einem neuen script zu oeffen, in dem dann das limitedsharpen nebst blinddehalo seinen dienst verrichtet.

  • Zitat von Selur

    Warum ruckt das denn im ersten Fall?


    Gute Frage :ratlos:

    Zitat von Selur


    ich bevorzug:
    .Sharpen(0.25).DBlindDeHalo2(3,3,150).LimitedSharpen()


    OK, hast Du nen Tip wegen dem D in DBlindDeHalo2?
    Für welche Quelle bevorzugst Du das?

    Zitat von Selur


    c = restore24(a,b)
    c.Sharpen(0.25).DBlindDeHalo2(3,3,150).LimitedSharpen()
    return c


    Hatte ich auch probiert - wollte ich schreiben, aber ich hab return r (in meinem Fall) vergessen - Hand vor die Stirn schlag!
    Jetzt wo ichs nochmal lese, stelle ich auch fest, daß die Reduktion der vertikalen Auflösung schon im Eingabeclip wahrscheinlich ziemlich Blödsinn ist - naja, wenn man Fragen formuliert, findet man oft schon selber einige Fehler :ichdoof:

    Zitat von Selur


    Ps.: mal zu den advanced scripten verschoben


    Ups, hab ich gepennt - Danke!

    [edit:]
    Danke Scharfi für die Erklärung!
    Heißt das nun, daß Selurs Tip (den ich mit Fehler auch noch probiert hatte) in der Kombination doch nicht geht?

    Was ist mit meiner Lösung? Ist die vielleicht doch nicht so falsch, die Reduktion der Auflösung hab ich ja vorher auch schon im Eingabeclip gemacht...

    [edit2:]
    ...sieht aus, als müßte man da schon sehr genau über die interne Arbeitsweise von Avisynth Bescheid wissen: Wird beim Öffnen eines avs versucht, Frame für Frame abzuarbeiten, oder wird der Clip tatsächlich (wie es die Sprache suggeriert) als Ganzes verarbeitet? Irgendwie kriege ich da immer nen Drehwurm im Hirn, ist mir ähnlich unverständlich, wie die Zeitreisefolgen in StarTrek :rolleyes:

    Grüße!
    Trekkie2

  • Ein paar Kommentare aus dem Krankenlager:


    1. BlindDeHalo2 und TNG

    Bei TNG wird feld-basiertes EE angewendet (das ist geraten - sollte/müsste aber so sein.) Daher sollte entweder mit größerem y-Radius gearbeitet werden, wie etwa BDH2(rx=2.5,ry=3.5), oder der interlaced-Modus von BDH2 aktiviert werden - also: BDH2(rx=2.5,ry=2.5,interlaced=true). Der interlaced-Modus von BDH2 wurde nämlich für genau diesen Fall, also "re-progressivierte" fieldblended Streams, eingebaut. Richtig perfekt ist aber keine von beiden Methoden. Probieren, und sehen welche besser aussieht.
    Machst Du dies im gegeben Fall nicht, wirst Du fesstellen, dass Halos um horizontal orientiertes Bild-Detail weniger effektiv entfernt werden.


    2. Ruckeln bei Filterung nach R24

    Also ich weiss auch nicht. Berichte darüber gibt's ja reichlich, also wird schon etwas dran sein. Andererseits hab ich schon solch Scherze wie

    DeLogo()
    R24()
    iiP()

    gemacht, und das ist mit der Nachbehandlung genauso flüssig 'rausgekommen wie ohne. Und der iiP ist wohl mithin eines der problematischsten Scripts, Ressourcen-technisch, das man an R24 überhaupt anhängen kann. Dabei ist meine Kiste bestimmt kein Speicher-Monster: 512MB RAM, nicht mehr.

    Wird es vielleicht besser, wenn Du das nicht als Ein-Zeiler schreibst [ R24().BDH2().LS() ], sondern erstmal in einem Clip zwischenspeicherst:

    blubb=R24()
    blubb.BDH2().LS()

    Und: was für ein SetMemoryMax() verwendest Du?

    Ansonsten - Schulterzucken, sorry ...


    3. Geschwindigkeit

    Erstmal, hast Du Deine Tests nun mit BlindDeHalo oder BlindDeHalo2 gemacht? Die 2er-Variante sollte schon mal ein wenig schneller sein. (Wäre sogar noch etwas Luft zum Optimieren drin, von wegen Overlay("hardlight"). Macht aber den Kohl auch nicht fett).
    Deine zweite (ruckelfreie) Lösung ist natürlich deutlich langsamer: da werden von BDH2 und LS doppelt so viele Frames wie eigentlich nötig bearbeitet ...
    Der rein technisch beste Rat ist und bleibt: den Output von R24 mit verlustloser Komprimierung auf Platte speichern, und den dann weiterbearbeiten. Braucht Platz, macht aber am wenigsten Probleme. Und spätestens wenn man am Ende mit 2-pass oder X-pass Enkodierung arbeitet, sollte man es sowieso so machen.


    4. LimitedSharpen

    Juhuu, bei strength=1600 kriegst Du ganz bestimmt Zeilenflimmern bzw. flimmerndes Detail zurück. Grobe Faustformel für den *maximal*-Wert von "strength": 200 * Oversampling-Faktor ... also 300, wenn der Rest auf Default steht. Und das ist schon mächtig stark, meistens bereits zuviel.
    LimitedSharpen ist nicht so sonderlich geeignet, um aus traurigen Quellen mehr Detail herauszukitzeln - dafür gibts andere Scripts ;) - LS taugt am besten für die "Veredelung" von Quellmaterial hinreichender Qualität. Und TNG ist in der Hinsicht nicht so ganz hinreichend. Klar, nehmen kann man LS auch für TNG, kein Problem mit normaler Stärke. Aber viel mehr *Ausdruck* in die verwaschenen Gesichter wird man damit kaum hineinbekommen.
    Bin nicht mal sicher, ob LS so eine tolle Idee ist, wenn ein "Speed-R24" verwendet wird. Zusätzliche Aufbereitung nach R24 hab ich bisher nur dann gemacht, wenn R24 mit dem zur jeweiligen Zeit höchstgezüchtetem Scharfi-Deinterlacer für den Output beauftragt wurde ... Einfach gesagt: je simpler der Output-Deinterlacer, umso mehr Restartefakte bleiben zurück. Die sind meistens eher schwach, so dass sie bei normaler Benutzung kaum auffallen ... das ist ja der Trick bei einfachem Deinterlacing. Aber wenn dann hinterher noch irgendeine Art von Aufbereitungs/Verbesserungs-Script zum Einsatz kommt, dann sind auch die Artefakte einfach nur "Detail", und werden munter mit verstärkt ...

  • So ich trau mich jetzt mal was:
    Mein persoenlicher lieblingsdeinterlacer wennnns gaaaaaanz schnell gehen soll und die source voll crappy ist habe ich schon einigen Leuten - wenn auch nicht oeffentlich (man will sich janicht blamieren, wor?) - empfohlen:

    blur(0,1)

    LOL

  • Zitat von Didée

    Ein paar Kommentare aus dem Krankenlager:


    Oh, wie Ernst isses denn?
    Dann nochmal einen Extra-Dank für Deinen Einsatz!

    Zitat von Didée


    1. BlindDeHalo2 und TNG
    ...
    Probieren, und sehen welche besser aussieht.


    Jo, werd ich testen - war sowieso klar, daß der Radius noch angepasst werden muß.

    Zitat von Didée


    2. Ruckeln bei Filterung nach R24
    ...
    blubb=R24()
    blubb.BDH2().LS()

    Und: was für ein SetMemoryMax() verwendest Du?


    Ja, die Zweizeiler-Methode hatte ich kurz probiert, kann aber sein, daß ich da einen Fehler eingebaut habe.
    Meine Kiste hat 512MB, also hab SetMemoryMax(341).

    Zitat von Didée


    3. Geschwindigkeit

    Erstmal, hast Du Deine Tests nun mit BlindDeHalo oder BlindDeHalo2 gemacht?


    Noch mit BlindDeHalo - da hab ich gestern gepennt, sonst hätte ich (wie Du ja geschrieben hattest) auch die 2er-Version genommen. OK, wenn die schneller ist, kann ich ja noch hoffen!

    Zitat von Didée


    Deine zweite (ruckelfreie) Lösung ist natürlich deutlich langsamer: da werden von BDH2 und LS doppelt so viele Frames wie eigentlich nötig bearbeitet ...


    Jetzt wo Dus sagst: Klar, soweit hatte ich die Arbeitsweise von r24 schon verstanden...

    Zitat von Didée


    Der rein technisch beste Rat ist und bleibt: den Output von R24 mit verlustloser Komprimierung auf Platte speichern, und den dann weiterbearbeiten. Braucht Platz, macht aber am wenigsten Probleme. Und spätestens wenn man am Ende mit 2-pass oder X-pass Enkodierung arbeitet, sollte man es sowieso so machen.


    Ja, von der Rechenzeit her würde ich das auch gerne, aber mein Arbeitsablauf sieht in Kurzform etwa so aus:
    1. ich schneide immer erstmal 10-14 Folgen, mache nach und nach den ersten Pass (meist so 4 Folgen = 1 Nacht),
    2. stats-Files auswerten - sind so viele Folgen zusammen, daß sie bei 75-80% Qualität eine DVD füllen, starte ich für alle den 2. Pass - dabei wird die Zielgröße automatisch aus dem ersten Pass*Faktor (0.75-0.8) berechnet.
    Dazu brauche ich aber genug Platz, um alle 10-14 Folgen (OK, nach LS werdens weniger :D ) aufzuheben. In verlustfrei komprimiert, wären das ein paar Festplatten, fürchte ich. :(

    Zitat von Didée


    4. LimitedSharpen

    Juhuu, bei strength=1600 kriegst Du ganz bestimmt Zeilenflimmern bzw. flimmerndes Detail zurück.


    Ja, sah lustig aus - schon klar, ich hab das eigentlich erstmal nur so hoch drin gelassen, um den Effekt vorzuführen :D

    Zitat von Didée


    schon mächtig stark, meistens bereits zuviel.
    LimitedSharpen ist nicht so sonderlich geeignet, um aus traurigen Quellen mehr Detail herauszukitzeln - dafür gibts andere Scripts ;) -


    Ahja??? *Neugierig-schau*

    Nee, daß die Folgen damit nicht auf DVD-Niveau kommen, ist klar - ich wollte sie halt noch bischen aufpolieren - wenns nicht zu viel Rechenzeit kostet...

    @Scharfi:
    Ja, die schnellste Methode ist das sicherlich!
    Aber ich glaube schon, daß man den Unterschied zur jetzt schon recht rechenintensiven restore24-Anwendung sieht! Außerdem hast Du mir damals so ein schönes Skript gebastelt :cool:

    Grüße!
    Trekkie2

  • Zitat von Selur

    Kannst ja mal am Ende Dein Script posten :)


    Selbstverständlich werde ich das posten! Mit kurzem Clip:
    1. Im Zweifelsfall kanns immer noch als (abschreckendes) Beispiel dienen.
    2. Wenn Ihr das dann auseinanderpflückt kanns nur besser werden :D

    Kann ich davon ausgehen, daß das D von DBlindDeHalo2 in Deinem Skript ein Tippfehler ist, oder verwendest Du eine geheime Optimierung? *AkteX-Sound-vorstell*

    So, dann mal Schönen Feierabend!

    Grüße!
    Trekkie2

  • Zitat von Selur

    Ich hab mit dem DeHalo2&Co rumgespielt um zu sehen, wie 'gut' man eine DVD auf HDTV 'hochsamplen' kann


    Ich hab auch schon mal mit den Gedanken gespielt...kommt dabei was brauchbares raus?

  • ja, sieht definitiv besser aus als sonstiges hochsamplen :)
    (hab leider meine Testfiles vor ner Weile gelöscht,..)

    Dauert halt alles recht lange,...
    (Wenn endlich mal die Athlon64 Halterung für meine Wasserkühlung kommen würde, könne ich meinen neuen Rechner zusammenbauen,...)

    CuSelur

  • Im Anhang mal ein 480i29.97 auf 720p50 upsize.
    Also:
    - motion compensated deinterlacing des 640x480 @29.97fps interlaced ex-analogvideos
    - motion compensated framerate conversion von 59.94 auf 50 fps
    - limitedsharpen mit dest_x&y fuers upsize
    - das pillarboxing hab ich mir mal gespart.

    Das war nen gehversuch, den ich vor einiger Zeit verbrochen habe.
    Da waere mit SICHERHEIT mehr drin.

  • Hmmm...lohnt der Aufwand an sich die Dinger hochzusampeln bzw. ist der visuelle Unterschied zu einem Original HD-Video groß? Ich vermute ja mal du hast 720p-Auflösung genommen.


    edit: sieht nicht schlecht aus scharfi

  • "Ich vermute ja mal du hast 720p-Auflösung genommen."
    sein input war 480i(720*480 interlaced) sein Output 720p ([size=-1]1280x720 progerssive)
    (hab ich übrigends auch gemacht bei meinen Test ;) )

    "[/size] Da waere mit SICHERHEIT mehr drin."
    Denke ich auch :)

    Cu Selur

    Ps.: ich hab DVD-Sourcen als Quelle genommen
    Pss.: Das 'D' weiter oben war ein Tippfehler, wollte erst Dehalo schreiben ;)

    wenn man nicht resized hierhttp://flypicture.com/file.cfm?id=14423

  • Zitat von scharfis_brain

    So ich trau mich jetzt mal was:
    Mein persoenlicher lieblingsdeinterlacer wennnns gaaaaaanz schnell gehen soll:

    blur(0,1)


    Nicht schlecht. Hier ist mein Liebling für ganzschnell-Deinterlacing:

    blur(0,1).unfilter(0,80)

    Auch keine Deinterlacing-Artefakte, aber viel schärfer als Deiner :P

    ... Wo sind wir hier? Ach ja, Abteilung "Fortgeschrittenes AviSynth Scripting" ... :D

  • Moin auch,
    schade! Ich kann Scharfis Clip leider nicht anschauen, weil SuSE bei der 9.2 wohl nur die Hose-Voll-Version von Xine draufgepackt hat - ohne interessante Codecs :wall:

    Zum R24 Testen komm ich wohl leider erst morgen, Bericht gibts dann wohl erst Donnerstag - allerdings überlege ich mir so langsam, ob sich das Aufheben der Folgen zum präzisen Aufteilen der Bytes auf der Scheibe lohnt. Ansonsten könnte ich jede Folge aufbereiten (r24+BDH2+LS), verlustfrei speichern und 2-Passes hintereinander weg encoden. Evtl ändere ich das Verfahren und komprimiere halt jede Folge auf 75%. Oder weniger/mehr? Mist, da muß ich ja wieder testen - aber die gesparte Zeit könnte ich sicherlich gewinnbringend ins XViD-Encoding investieren um z.B. VHQ noch hochzuschrauben (ich glaube von 2 auf 3)... :grübeln:

    Zitat

    ... Wo sind wir hier? Ach ja, Abteilung "Fortgeschrittenes AviSynth Scripting" ...


    Naja, wirklich anfängerkompatibel ist der "Trick" nicht :ani_lol:

    Grüße!
    Trekkie2

  • Frei aus dem Ärmel würd' ich mal sagen, die TNG-Folgen sind sich alle sehr ähnlich, was den "Bitraten-Hunger" angeht.

    Bestenfalls würde ich da 4er-Päckchen am Stück enkodieren (passt gut wenn's 12 Folgen pro Scheibe werden sollen ;) )
    Mach doch mal ein oder 2 solche 4er-Päckchen, und sieh dann, wie groß der Unterschied in den Dateigrößen am Ende wirklich ist. Ich hatte damals jede Folge einzeln abgearbeitet, alle auf gleiche Größe, und dabei keine besonderen Überraschungen erlebt (wenn ich mich recht erinnere).

    Dann denke ich, dass Du mit VHQ=2 gut genug wegkommen solltest. So viel Detail ist ja in den Streams gar nicht vorhanden, als dass sich großer Suchaufwand rechtfertigen ließe ;) - Und wenn, je nach verwendeter Rauschfilterung, noch Rest-Rauschen drin ist, dann liefert VHQ=2 m.E. ein "stabileres" Bild als 3 oder gar 4.
    Falls Du schon Beta(s) von XviD 1.1 verwendest, dann würde ich VHQ für BVOPs auch mitnehmen.

  • Zitat von Didée


    Mach doch mal ein oder 2 solche 4er-Päckchen, und sieh dann, wie groß der Unterschied in den Dateigrößen am Ende wirklich ist.


    Ja, ich schau einfach mal meine log-Files von den bisherigen Scheiben an. Die Schwankungen waren echt ziemlich gering. Bis auf die 2 Folgen, wo die PC-Aufnahme nicht geklappt hat und ich die Folge von VHS nochmal reinsaugen mußte. Da ich mir dafür nicht so viel Arbeit gemacht habe, brauchen die etwa das 1.5-fache.

    Zitat von Didée


    Dann denke ich, dass Du mit VHQ=2 gut genug wegkommen solltest.


    OK, das verwende ich im Moment /glaub ich) eh schon.
    Wieviel der Größe vom 1.Pass würdet Ihr dem Ding so geben? Wie gesagt, nehme ich normal 75%-80%, je nachdem, wies grade passt.

    Zitat von Didée


    Falls Du schon Beta(s) von XviD 1.1 verwendest, dann würde ich VHQ für BVOPs auch mitnehmen.


    Da ich das VirtualDub-Job-File "von Hand" baue (ich hänge Stückchen aneinander und ergänze in dem Mime-encodeten Teil die paar Zeichen für die Bitrate - sicher nicht elegant, aber ich wußte nicht, wie ichs sonst machen sollte), habe ich noch nicht zu 1.1 gewechselt, das würde ich dann aber natürlich gleich miterledigen.

    BTW: Ist das hier die aktuelle Version von iiP?
    http://forum.doom9.org/showthread.php…20&pagenumber=6

    [edit:]
    Ja, das ist die aktuelle Version - Sorry, habs grade erst im anderen Thread gelesen :D

    Grüße!
    Trekkie2

Jetzt mitmachen!

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