Aus 'DecodeFix' wird 'DGMPGDec'

  • --> LigH

    was ich völlig verpennt habe zu fragen: iDCT 7 aka SimpleiDCT war doch mal fehlerbehaftet (was du ja herausgefunden hast) ...ist das jetzt eigentlich gänzlich ausgeräumt?
    laut Doku soll es ja ein "Very accurate" Algo sein...ich frage dies, da ich dein iDCT Vergleich nicht wirklich deuten kann :redface: ...was bedeuten die ganzen Werte da? ...was ist VQM und SSIM?

    du sagst ja, daß die Algorithmen alle annähernd gleiche Qualität liefern sollen...ich frag aber trotzdem mal: welchen würdest du bevorzugen, bei einem AthlonXP (unabhängig von der Geschwindigkeit)?

  • Den gibt's auch auf deutsch (aber so wiel Text ist da auch nicht).

    Nein, das war ein Fehler meinerseits: Fehlerhaft ist nicht SimpleiDCT (7), sondern der Reference-iDCT (4).

    Wie du aus der ersten Tabelle siehst, sind iDCT 1, 2 und 5 absolut identisch in der Ausgabe (grün: maximale Abweichung = "Deviation" von +/- 0). Alle anderen iDCTs weichen je untereinander höchstens um +/- 4 ~ 1,5% (im Vergleich zum Gesamtumfang von 256 verschiedenen möglichen Werten) voneinander ab. Nur bei iDCT 4 gibt es Abweichungen zu allen anderen iDCTs um bis zu +/- 45 ~ 17,6%, und das kann sichtbar werden.

    Eine Empfehlung ist insofern schwer, da ja nun ausgerechnet die Referenz defekt ist. Und ein Vergleich zwischen den MPEG2Dec3-iDCTs und einer ganz anderen Referenz-Implementation ist meiner Meinung nach nicht sinnvoll, hier kann es durch nachfolgende Bearbeitungsschritte Abweichugnen geben, die nicht erklärbar sind. Die Ausgabe von MPEG2Dec3 mit der Ausgabe von z.B. Xmpeg zu vergleichen, wäre zwecklos.

    Das einzige, was vielleicht Sinn machen könnte, wär ein Vegleich zwischen einem absoluten Original und den Ergebnissen der jeweiligen iDCTs. Da MPEG2 verlustbehaftet arbeitet, ist natürlich immer eine Abweichung zu erwarten, hier wäre dann wirklich deren Größenordnung eine halbwegs absolute Qualitätsangabe.

    Ansonsten diente mein Vergleich eigentlich nur dazu zu beweisen, dass die Wahl der iDCT-Funktion auf die Bildqualität wirklich praktisch keinen subjektiven Unterschied macht: Messbar ist er, liegt aber in Größenordnungen, die selbst durch intensives Betrachten kaum bemerkbar wären.

  • Zitat von LigH

    Ansonsten diente mein Vergleich eigentlich nur dazu zu beweisen, dass die Wahl der iDCT-Funktion auf die Bildqualität wirklich praktisch keinen subjektiven Unterschied macht: Messbar ist er, liegt aber in Größenordnungen, die selbst durch intensives Betrachten kaum bemerkbar wären.

    Ist es denn generell zu empfehlen eine der iDCT-Funktionen während des Encodens zu aktivieren um die Qualität zu verbessern?
    Welchen Einfluß nimmt diese Funktion denn auf den Encoding-Vorgang? (ich weis du hattest das schon mal kurz angeschnitten...aber eben nur kurz nebenher)

  • Beim Encodieren macht der Encoder eine Diskrete Cosinus-Transformation des Videomaterials. Beim Decodieren macht er eine inverse DCT.

    Wer direkt von einem komprimierten Format (DVD-Video) ins andere (VCD/SVCD/DVD/DivX/XviD) konvertiert, der muss m.o.w. gleichzeitig decodieren (aus MPEG2) und encodieren (in MPEG1/2/4?). In beiden Schritten kann man mit Optionen wählen, ob man lieber schnelle oder lieber gute Ergebnisse möchte. Die iDCT beim Decodieren von MPEG2-Video war einer von mehreren Ansatzpunkten, die Konvertierung zu beschleunigen, weil der Referenz-Algorithmus eigentlich extrem langsam ist. Viele geschwindigkeitsoptimierte iDCT-Funktionen erkaufen sich einen erheblichen Geschwindigkeitsvorteil durch leichte Rechenungenauigkeiten.

  • Zitat von LigH

    Viele geschwindigkeitsoptimierte iDCT-Funktionen erkaufen sich einen erheblichen Geschwindigkeitsvorteil durch leichte Rechenungenauigkeiten.

    Bedeutet es dann, daß mit jeder anderen iDCT-Funktion eher an Qualität verliere und man es daher lieber sein lassen die Funktion im Script auftzurufen?

  • Zitat von hippoth

    Bedeutet es dann, daß mit jeder anderen iDCT-Funktion eher an Qualität verliere und man es daher lieber sein lassen die Funktion im Script auftzurufen?

    Wenn du mit aufrufen, das definieren einer IDCT innerhalb des Befehls "MPEG2Source" meinst, dann bringt das Entfernen des Befehls nichts, weil dann wird einfach die IDCT von DVD2Avi genommen wird, weil in der Datei von DVD2Avi gibt es einen Punkt wo ebenfalls eine IDCT aufgerufen wird und wenn du in Avisynth keine andere definierst dann nimmt Avisynth die von DVD2Avi.

  • Zitat von Th3-S4int

    Wenn du mit aufrufen, das definieren einer IDCT innerhalb des Befehls "MPEG2Source" meinst, dann bringt das Entfernen des Befehls nichts, weil dann wird einfach die IDCT von DVD2Avi genommen wird, weil in der Datei von DVD2Avi gibt es einen Punkt wo ebenfalls eine IDCT aufgerufen wird und wenn du in Avisynth keine andere definierst dann nimmt Avisynth die von DVD2Avi.


    dann müßte also ein Vergleich der iDCT´s in DVD2AVI (aka DGIndex) und AVISynth klären welcher besser ist...ich vermute ja mal, das diese nicht identisch sind, da sie von unterschiedlichen Leuten programmiert wurden

  • doch sie sind identisch. Bloss das Avisynth (obwohl hier Avisynth zu nennen falsch ist, eigentlich ist es das Plugin Mpeg2Dec3 (oder eben das neue DGDecode)) eben mehr hat, als nur die 2 oder 3 (weiß jetzt gerade nicht wie viele DVD2Avi hat). Und generell wurden nicht alle IDCTs die es in MPEG2Dec3 gibt von dem Macher gemacht (ich glaube Nic war es) sondern oftmals nutzt er die von anderen Leuten. So gibt es Skals IDCT welche eben von Skals kommt.
    Ich hoffe ich konnte etwas helfen!

  • Eines musst du dir auf jeden Fall klar machen: iDCT ist ein notwendiger Teilschritt beim Decodieren von MPEG-Video (egal ob MPEG-1, MPEG-2 oder MPEG-4). Es geht nicht darum, ob iDCT durchgeführt wird (das muss es immer), sondern höchstens darum, welche Funktion verwendet wird.

    Mit dem Parameter "iDCT=#" in der AviSynth-Funktion "MPEG2Source()" kann man eine bestimmte Funktion erzwingen. Verwendet man dieses Parameter nicht, verwendet das MPEG2Dec3-Plugin die Funktion, die in DVD2AVI eingestellt war, als die d2v-Projektdatei geschrieben wurde (und wie Th3-S4int bereits erwähnt hatte, kann man in dessen Menü nicht alle Funktionen wählen, die in der Plugin-DLL angeboten werden).

Jetzt mitmachen!

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