Ein paar Fragen zum VagueDenoiser

  • Aktuelle Version samt beschreibung hier: http://bag.hotmail.ru/vague/vaguedenoiser.dhtml

    [list=1.][*]In welche Kathegorie gehört der Filter (temporal, spatial oder beides)?
    [*]Wenn man den Parameter interlaced auf true setzt, bedeutet das, der Denoiser eine framebased Quelle selbstständig in Fields zerlegt und wieder zusammensetzt z. B. 'MPEG2Source("INTERLACED_SOURCE.d2v").VagueDenoiser(interlaced=true)' oder bedeutet das, das er als Input eine fieldbased Quelle erwartet also z. B. 'MPEG2Source("INTERLACED_SOURCE.d2v").SeparateFields().VagueDenoiser(interlaced=true).Weave()'?[/list]

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • 1) Ziemlich sicher - nur spatial. Wavelet-Transformation, Quantisierung, iWLT.

    2) Relativ sicher - ersteres: Vergleichbar mit "ConvertTo{YUY2|RGB}" von YV12 ausgehend
    __

    Ist zwar unheimlich langsam, aber (gut konfiguriert) ein genialer Filter. Kann Blockartefakte und Quantisierungsflächen korrigieren, die ich mit anderen Filtern nicht in den Griff gekriegt hatte; lohnende Testobjekte: Village-Roadshow-Logo und Warner-Bros-Logo in den Ultra-Trailern von Matrix Reloaded/Revolutions.

  • Danke für die Auskunft :)


    >Relativ sicher - ersteres
    Sehr gut, das erspart gefummel - leider habe ich grade kein richtiges interlaced Material greifbar, daher stellte ich hier sicherheitshalber die Frage.

    Bei dem pseudo interlaced Clip aus dem anderen Thread trat mit 'InterlacedSource.SeparateFields().VagueDenoiser(interlaced=true).Weave()' ein Grünstich auf. 'InterlacedSource.SeparateFields().VagueDenoiser(interlaced=false).Weave()' und 'InterlacedSource.VagueDenoiser(interlaced=true)' lieferten ein sauberes, jedoch nicht bitidentisches Ergebnis. Deshalb wollte ich noch mal von jemandem bestätigt haben, das ich mir mit dem einfachen Weg, bei richtigem interlaced Material, das interlaced nicht kaputt mache.


    >Ist zwar unheimlich langsam, aber (gut konfiguriert) ein genialer Filter.
    Dem kann ich mich anschließen - ich habe für meinen jetzigen Testclip bestimmt 10 Denoiser ausprobiert. Der VagueDenoiser lieferte mit meiner Quelle, für mich, das mit Abstand beste Ergebnis.

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Und gleich nen Bug gefunden.
    Kann das bitte mal jemand hier posten: http://forum.doom9.org/showthread.php?s=&threadid=56871?
    Dauert nämlich 5 Tage bis man im englischen Doom9 schreiben kann :mad: :motz: :motz: :motz: :mad:


    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Werde den Vaguedenoiser nochmal testen. Hatte damit vor einem Jahr zwar weniger Erfolg, kommt aber wohl drauf an, wie man ihn kombiniert, so wie sich das oben anhört.

    Von der Separatefields().filter().weave() Methode bin ich vollkommen abgekommen wenns um interlaced filtering geht.
    Dann lieber die Methode bob().Filter().Separatefields().Selectevery(4,0,3).Weave() .. oder 4,1,2 jenachdem, was oben rein kam.
    Mit dieser Methode habe ich -egal welche Filter- immer ein gutes Ergebnis.

  • >bob().Filter().Separatefields().Selectevery(4,0,3) .Weave() ....
    Davon bin ich nun wieder abgekommen, sieht IMHO sch.... aus. Bob() nutzt BicubicResize() zum vergrößern und das Ergebnis ist etwa so scharf wie ein Teller Wassersuppe.
    Was spricht gegen SeparateFields().Denoiser().Weave(), wenn ich danach sowieso deinterlacen und keine temporalen Filter verwenden will?

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Zitat

    Davon bin ich nun wieder abgekommen, sieht IMHO sch.... aus. Bob() nutzt BicubicResize() zum vergrößern und das Ergebnis ist etwa so scharf wie ein Teller Wassersuppe.


    Lese dir den Avisynth "HQdeinterlacing" Thread durch dort stehts wie's gemacht wird und wenns net klappt, dann liegts an was anderem. Komisch, dass es bei mir nicht "sch.." aussieht und alles anderes als Suppe raus kommt.

  • Zitat von incredible

    Lese dir den Avisynth "HQdeinterlacing" Thread durch dort stehts wie's gemacht wird und wenns net klappt, dann liegts an was anderem. Komisch, dass es bei mir nicht "sch.." aussieht und alles anderes als Suppe raus kommt.


    Ähm...denn schreib doch hin, das Du einen der intelligenten Bob'er meinst. Bob() läßt nämlich irgendwie vermuten, das Du auch den AviSynth Bob() Filter meinst :)
    BTW, wenn ich nen Filter wie VagueDenoiser benutze, ist die Quelle so derbe verrauscht, das die intelligenten Bob'er auch nicht so dolle sein sollen.
    Meinst Du doch den AviSynth Bob(), müßtest Du relativ große Werte für c angeben, damit das Ergebnis nicht weichgekocht wird, was wiederum Ring-Artefakte gibt.
    Und nochmal die Frage: "Was spricht gegen SeparateFields().Denoiser().Weave(), wenn ich danach sowieso deinterlacen und keine temporalen Filter verwenden will?"

    EDIT
    Das wir nicht durcheinander kommen:
    Meine Aussagen beziehen sich darauf, eine stark verrauschte Quelle für nen Deinterlacer vorzubereiten und AviSynth_Bob.SpatialDenoiser.Reinterlacing.Deinterlacer sieht einfach schlechter aus als SeparateFields.SpatialDenoiser.Weave.Deinterlacer.

    EDIT2
    Man könnte den AviSynth Entwicklern ja mal vorschlagen, für die Bob Funktion lieber Lanczos4Resize zu verwenden...oder man müßte sich mit AviSynth Bordmitteln nen einfachen Bob'er selbst zusammenschustern.


    Zitat von LigH

    Bittesehr.


    Danke :)

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Fürs denoisen meinte ich auch den "stupid" bob.
    http://forum.gleitz.info/showthread.php?t=15979

    Aber wir schweifen jetzt a bisserl vom "Vaguedenoiser" ab .... Asche auf mein Haupt ;)

  • Wie gesagt, ich finde es ist weichgekocht. BicubicResize von AviSynth eignet sich IMHO nicht, um die vertikale Auflösung zu verdoppeln. Oder man nimmt Ring-Artefakte in kauf.


    Nun, weichgekocht war wohl "etwas" übertrieben. Ich dachte bis vor zwei Minuten noch, das die Standardwerte für b/c bei BicubicResize() und bei Bob() 0.0 und 0.5 sind, was wohl nicht stimmt :rolleyes:

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • es ist (fast) vollkommen egal, ob cubic, point, oder linear oder edge-directed bob().
    da,

    bob().separatefields().selectevery(4,0,3).weave() eine nichtstuaktion ist (bildinhalt aendert sich NICHT)

    bob() wird hier nur genutzt, um die fields in die spatial KORREKTE position zu bringen.
    die art der interpolation spielt hierbei nur eine sehr untergeordnete rolle.

    aber das hab ich in dem zietiertem Thread ja bereits ausfuehrlichst beschrieben.

    EDIT: ich hatte separatefields() vergessen.

  • @ Viperzahn
    Zumal, wenns (nur mal fiktiv gedacht) keine "nichtstuaktion" Aktion wäre, dann hättest du mit einem "scharfen" Resizer neben den Kanten auch das Rauschen mitgeschärft (wie eben auch in einem normalen avs script OHNE interlaced input). Das würde bedeuten man muss den Denoiser noch stärker arbeiten lassen, was die Nebenwirkungen ebenso verstärkt. Beim temporalen Denoiser also mehr "static dots" Artefakte und beim spatialen Denoiser noch mehr ausradieren der Details.

  • Zitat

    es ist (fast) vollkommen egal, ob cubic, point, oder linear oder edge-directed bob().
    da,

    bob().separatefields().selectevery(4,0,3).weave() eine nichtstuaktion ist (bildinhalt aendert sich NICHT)

    bob() wird hier nur genutzt, um die fields in die spatial KORREKTE position zu bringen.
    die art der interpolation spielt hierbei nur eine sehr untergeordnete rolle.


    Verstehe ich nicht, weil ich nicht weiß was der Terminus "nichtstuaktion" bedeutet, und ich keine Ahnung habe, warum sich der Bildinhalt nicht ändert, wenn der Filter die Fields nebeneinander legt, positionstechnisch anpasst und um Faktor 2 vergrößert, aber gut.


    Zitat

    Zumal, wenns (nur mal fiktiv gedacht) keine "nichtstuaktion" Aktion wäre, dann hättest du mit einem "scharfen" Resizer neben den Kanten auch das Rauschen mitgeschärft (wie eben auch in einem normalen avs script OHNE interlaced input). Das würde bedeuten man muss den Denoiser noch stärker arbeiten lassen, was die Nebenwirkungen ebenso verstärkt. Beim temporalen Denoiser also mehr "static dots" Artefakte und beim spatialen Denoiser noch mehr ausradieren der Details.


    Das beschreibt doch eigentlich ganz schön, warum man das mit dem Vergrößern lassen sollte, wenn es nicht notwendig ist.
    In Relation zu Bicubic mit hohen c werten, ist das Überschärfen von LanczosResize verschwindent gering, zumindest bei natürlichen Bildern.


    Es gibt eine neue Version vom VagueDenoiser, welche den oben beschriebenen Bug fixt: http://bag.hotmail.ru/vague/vaguedenoiser.dhtml

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • bob() = um dem faktor zwei vergoressern, jede 2te zeile ist mit dem input IDENTISCH -> ist beim deinterlacer immer so, EGAL bei welchem (ausser blend)
    separatefields().selectevery(...) = genau jene zeilen selektieren, die mit dem input IDENTISCH sind.
    weave() zurueck ins vollbild bringen.

    jetzt gerafft, warum das ding ohne denoiser dazwischen eine nichtstuaktion ist?

    wie gesagt, der bobber dient nur dem korrekten spatialen ausrichten der fields.

  • Sofern keine weiteren Filter verwendet werden, macht's wirklich keinen Unterschied. Allerdings ändert sich das v.a. beim Einsatz zeitlich arbeitenden Filter.

    Setzt man solche ein, so meine Beobachtung, ist es besser statt Bob() DGBob() einzusetzen. mit Bob() gibt's sonst an manchen schrägen Kanten Treppchenartefakte.

  • Zitat von incredible


    Von der Separatefields().filter().weave() Methode bin ich vollkommen abgekommen wenns um interlaced filtering geht.
    Dann lieber die Methode bob().Filter().Separatefields().Selectevery(4,0,3).Weave() .. oder 4,1,2 jenachdem, was oben rein kam.
    Mit dieser Methode habe ich -egal welche Filter- immer ein gutes Ergebnis.

    Hab ich immer noch nicht getestet ... werd ich aber mal in nächster Zeit machen. Nur anstelle des "bob()" will ich "dgbob v1.60" einsetzen. Da ich mich mit englisch immer noch schwer tue wäre es sehr hilfreich wenn du mir freundlicherweise ein Beispielscript posten könntest. Vom "HQdeinterlacing" Thread bekomme ich nur Kopfschmerzen. ;)

    EDIT: Hab mal auf die Schnelle das hier gescriptet:

    LoadPlugin("C:\User\AviSynth\plugins\DGBob.dll")
    LoadPlugin("C:\User\AviSynth\plugins\UnDot.dll")
    AVISource("H:\TV-cap\test.avi")
    DGBob(order=1, mode=1, thresh=24)
    UnDot().TemporalSoften(6,6,8,8,2)
    separatefields()LanczosResize(512,272,8,4,688,280).selectevery(4,0,3).weave
    AddBorders(16,16,16,16)

    Auf welchen Wert der "thresh" ist mir ein Rätsel.

  • Zitat von scharfis_brain

    bob() = um dem faktor zwei vergoressern, jede 2te zeile ist mit dem input IDENTISCH -> ist beim deinterlacer immer so, EGAL bei welchem (ausser blend)
    separatefields().selectevery(...) = genau jene zeilen selektieren, die mit dem input IDENTISCH sind.
    weave() zurueck ins vollbild bringen.


    Ok, das ist einläuchtend, ist aber viel aufwendiger als SeparateFields().SpatialDenoiser().Wave() und, beim denoisen dazwischen werden doch errechnete mit quellidentischen Zeilen zusammengemanscht?


    Zitat von scharfis_brain

    jetzt gerafft, warum das ding ohne denoiser dazwischen eine nichtstuaktion ist?


    Nein, weil ich nicht raffe was stuaktion bzw. nichtstuaktion bedeutet.

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Zitat von Viperzahn

    Nein, weil ich nicht raffe was stuaktion bzw. nichtstuaktion bedeutet.

    Meinst du das ernst? Gemeint ist sicherlich "Nichts Tu Aktion" entsprechend "nichts tun". ;)

  • das video nach einem separatefields() bobbt immer auf und ab.
    das ist bei einem TEMPORALEN Denoiser kontraproduktiv
    deswegen die BOB()-berei. damit zittert das bild nichtmehr auf und ab.

    bei einem ausschlieszlich Spatialen denoiser, wie vaguedenoiser(), oder spatialsoften() oder smoothHIQ() kann man aber durchaus separatefis().spatialsmoother().weave() nehmen.

Jetzt mitmachen!

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