Postprocessing mit DGDecode.dll

  • Hallo,

    die DGDecode.dll (aus dem DGIndex-Paket) verfügt ja auch über einen Postprocessor, der z.B. wie folgt aufgerufen werden kann:

    nur Deblocker:
    mpeg2source("D:\Rekorder\Film.d2v", cpu=4)

    Deblocker und Deringer:
    mpeg2source("D:\Rekorder\Film.d2v", cpu=6)

    Den Deblocker in den mpeg2-Decoder zu legen, ist sinnvoll, da:
    - der Decoder die Blockgrenzen kennt und genau da "wirken" kann
    - der Decoder den Quantizer kennt und seine "Wirkungsstärke" adaptiv darauf anpassen kann (kleiner q = schwächer deblocken, großer q = stärker deblocken)

    Aber wie sieht's aus mit dem Deringer? Wird der auch adaptiv an Quantizer oder sonstwas angepasst? Falls nicht, gibt es einen grund, weshalb er in der DGDecode.dll verfügbar ist?

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Auch das Auftreten von Ringartefakten ist abhängig von der Quantisierung, deshalb wäre auch hier ein Deringing-Filter im Decoder nützlich, weil er dann Zugriff auf die quantisierten Parameter vor der inversen Transformation hat; um es genau zu erfahren, wäre es aber besser, Donald Graft (neuron2) im englischen Board direkt zu befragen.

    Und wer mit der Vorgabe der Deblocking-Stärke nicht zufrieden ist, der kann sie auch mit "moderate_h" / "moderate_v" anpassen. Aber dass die sich auch auf das Deringing auswirken würden, scheint nicht so direkt dokumentiert zu sein.

  • Also, ich sag mal so ...

    Egal ob DGDecode etwas über den Inputstream weiß oder nicht weiß, und was es weiß wenn es etwas weiß ... der Deringer ist murks implementiert, da kann man genauso gut blur(1) nehmen. Womöglich ist das Ergebnis nach blur(1) sogar noch schärfer als nach DGDecodes Deringer.
    Und der Deblocker ist auch, na, sagen wir mal, etwas in die Jahre gekommen. Um effektiv zu sein, frisst der für meinen Geschmack viel zu viel Detail. Da gefällt mir die von h.264 geliehene Variante Deblock() besser. Obwohl dieser Filter über Avisynth nur "blind" arbeiten kann (ohne Information über die Quantisierung der Blöcke in der Source), ist das Resultat betreffs Entfernung der Blöcke ähnlich gut wie bei dem besser "informierten" alten Deblocker, und es wird dabei deutlich mehr Detail erhalten.

    Allerdings, solange die Blockbildung der Quelle nicht allzu stark ist, greife ich desöfteren gerne zu einer gewissen Scriptvariante ;) von Deblock(), weil selbst dieser neuere Filter bei nur leichter/mäßiger Blockigkeit noch so einiges Detail auf dem Weg zur Bereinigung mitreisst.

  • Danke! Ich wusste, auf Dich ist Verlass :)

    Argh, muss grade mal meine Numerik-Kenntnisse hervorkramen, von wegen 2D-Diskretisierung, freien Randwerten,...

    Aber wieder mal ein geniales Ding. Mal schauen, wann ich dazu komme, das mal anzutesten.

    Grüße!
    Trekkie2

Jetzt mitmachen!

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