• Juhuuuh, Teegedeck ist da! Herzlich willkommen, Du ... Grünschnabel :D


    Kopernikus - ich hab diesen Thread keineswegs vergessen, aber so ist's dieser Tage. Hier, und auf Doom9 und Videoforumer hab ich wohl noch ein Dutzend anderer Baustellen offen, wo die Leutchen sich wundern, warum man nix hört und nix weitergeht (bleistiftsweise ist das neue Restore24 seit 6 Monaten "praktisch fertig"...) - Kann leider nicht so, wie ich gern wollte, und das geht schon fast das ganze Jahr so. Der Gedanke an Notschlachtung rückt näher ... (Burnout ist echt ScheiBe, wenn man nicht gerade Hannawald heisst.)


    Übrigens, ich glaube dass in dem Build mit dem "inversen" Lumimasking etwas mit dem "normalen" Lumimasking nicht stimmt. Wie schon gesagt: Die Vorgabe "wenn avgFrame>60 dann erhöhe Quants für Blöcke mit avgBlock<90 kann nicht richtig sein. Das bedeutet ja, dass auch alle Blöcke stärker quantisiert werden, die mitten im sichtbaren Bereich liegen. Das lag keinesfalls im Sinne des Erfinders, bzw. des Tweakers (Syskin).
    Und wenn ich den Output dieses Test-Builds mit einem Standard-Build vergleiche, dann wendet der Testbuild tatsächlich AQ in [zu hellen] Bereichen an, in denen der Standardbuild AQ *nicht* anwendet. Also, unabhängig davon was wo in welchen Sourcen ;) drinsteht: der Standard-Build arbeitet *anders*.


    Teegedeck: Also, bei mir waren's nur ca 15% mehr. So oder so, der Mehrverbrauch an Bitrate sollte auf 40%~60% des derzeiten Wertes schrumpfen, wenn der Bereich sinnvoller eingegrenzt werden würde, anstatt einfach "alles-was-dunkel-ist" schwächer zu quantisieren.
    Trotzdem, Du hast recht: sehr viel Unterschied sieht man z.Zt. nicht. Es ist durchaus einer da, aber ... ein guter Teil der optischen Verbesserung wird durch die B-Frames verschleiert. Die laufen ja mit "normalem" Quantizer weiter (kein AQ für B's), und können nur durch die "bessere" Referenzierung nicht in dem Maße bessere Ergebnisse liefern, wie die P-Frames mehr Bitrate ziehen. Zumal in dunklen Szenen B-Frames typischerweise sehr zahlreich anzutreffen sind ...

    An diesem Punkt gebe ich mich, glaube ich, erstmal geschlagen ... und neige mein Haupt gen Prunedtree. Nur über einfaches AQ ist der Wunsch "helfe den Schwachen" wohl nicht zufriedenstellend hinzukriegen. Man müsste tatsächlich in die RDO einsteigen, und ziemlich komplexe Modelle ausarbeiten, damit alle vorhandenen Features sinnvoll zusammenarbeiten.


    Bekräftigen möchte ich allerdings mein Veto gegen AQ-für-detailreiche-Blöcke, und auch gegen Texture Masking. Ersteres schon allein vom theoretischen Ansatz her - Detail ist das, was der Codec so verzweifelt zu transportieren versucht. Wollen wir das wirklich stärker quantisieren? Ich nicht. Und wenn man's nur auf extrem hochfrequentes Detail beschränkt (d.h. auf mögliches "Salt-and-Pepper"-Pixelrauschen), dann ... kann man gleich eine Q.matrix verwenden, die die höheren Frequenzen stärker 'rannimmt ;)
    Und, Texture Masking: in dem zuvor geposteten Screenshot sieht das ja wunderbar aus: man sieht es nicht. Man sieht es in dem Screenshot nicht. Sobald aber eine Folge von Bildern abläuft, würde man sehr wahrscheinlich ein höchst lästiges Flimmern wahrnehmen, wo eigentlich eine "stabile" Textur sein sollte. Eine Textur mit gleich aussehendem "Schrott" zu ersetzen funktioniert nicht, weil der "Schrott" nicht über die temporale Achse stabil bleibt, sondern zufällig ist.

  • Heyyyyy, Didée; nice talking to you in Tschörmän... ;D

    Zitat von Didée

    Teegedeck: Also, bei mir waren's nur ca 15% mehr.

    Joup, wenn ich nun eine Größenvoraussage über einen kompletten Film mit Enc mache, statt Testclips zu kodieren, sehe ich das auch. Und viel hängt wohl auch vom Grad der Quantisierung ab; hier einige Werte:
    SixOfNine@2: 100%
    SixOfNine@2 + AQ: 154,5%

    SixOfNine@4: 100%
    SixOfNine@4 + AQ: 115,6%

    H263@6: 100%
    H263@6 + AQ: 107,5%

    Daraus könnte man erstmal den Schluss ziehen, dass man das neue AQ für quant=2 verbieten sollte. Quantizer 2 sieht ohnehin gleichmäßig gut aus und quant=1 ist einfach schierer Wahnsinn.

    Zum andern sieht man klar, dass neue, 'positive' AQ um so weniger kostet, je stärker komprimiert wird. Ist der logische Schluss, dass man alte, 'negative' AQ bei niedriger Kompression forcieren sollte (etwa: maximaler Unterschied zum Base Quantizer darf = 3 oder 2 sein), um die positive auszugleichen, und sie dann mit steigendem Quantizer nach und nach zurücknehmen sollte? Oder dass man umgekehrt positive AQ bei quant= 3 kaum und dann immer stärker einsetzen sollte, je höher quantisiert wird?
    [edit]Da muss man wohl einfach austesten, was besser ist.[/edit] Der XviD-typische Ausweg wäre wohl ein benutzerdefinierbarer Wert 'AQ-Stärke'... Hurk!

    Zitat von Didée


    Trotzdem, Du hast recht: sehr viel Unterschied sieht man z.Zt. nicht. Es ist durchaus einer da, aber ... ein guter Teil der optischen Verbesserung wird durch die B-Frames verschleiert. Die laufen ja mit "normalem" Quantizer weiter (kein AQ für B's), und können nur durch die "bessere" Referenzierung nicht in dem Maße bessere Ergebnisse liefern, wie die P-Frames mehr Bitrate ziehen. Zumal in dunklen Szenen B-Frames typischerweise sehr zahlreich anzutreffen sind ...

    A-haaa!

    Zitat von Didée

    Bekräftigen möchte ich allerdings mein Veto gegen AQ-für-detailreiche-Blöcke, und auch gegen Texture Masking. Ersteres schon allein vom theoretischen Ansatz her - Detail ist das, was der Codec so verzweifelt zu transportieren versucht. Wollen wir das wirklich stärker quantisieren? Ich nicht. Und wenn man's nur auf extrem hochfrequentes Detail beschränkt (d.h. auf mögliches "Salt-and-Pepper"-Pixelrauschen), dann ... kann man gleich eine Q.matrix verwenden, die die höheren Frequenzen stärker 'rannimmt ;)
    Und, Texture Masking: in dem zuvor geposteten Screenshot sieht das ja wunderbar aus: man sieht es nicht. Man sieht es in dem Screenshot nicht. Sobald aber eine Folge von Bildern abläuft, würde man sehr wahrscheinlich ein höchst lästiges Flimmern wahrnehmen, wo eigentlich eine "stabile" Textur sein sollte. Eine Textur mit gleich aussehendem "Schrott" zu ersetzen funktioniert nicht, weil der "Schrott" nicht über die temporale Achse stabil bleibt, sondern zufällig ist.

    Agreed. ;) Gäbe es einen Weg, 'künstlichen Schrott' zu stabilisieren; skip-blocks o.ä.? Oder wären 'Lambdaleien' ('Herumfummeln am Lambda':)) der richtige Weg?

  • Zitat

    Agreed. Gäbe es einen Weg, 'künstlichen Schrott' zu stabilisieren; skip-blocks o.ä.? Oder wären 'Lambdaleien' ('Herumfummeln am Lambda') der richtige Weg?

    Vermutlich ist Lambdaleiern die richtigere Art um für HVS zu optimieren. In den Sourcen ist auch schon an der richtigen Stelle ein Kommentar eingefügt, der sagt: "HVS models, anyone?"

    Weiß einer genaueres, was Syskin geplant hat? Kurze Recherche brachten nur einige Anspielungen, aber nichts so richtig deutliches. Wollte er die AQ tweaken, oder das Plugin System verändern, so dass externe Plugins auf die Lambdas zugreifen können, und so die RD Decisions zu beeinflussen?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Soweit ich mich entsinne hatte syskin mal in der dev-mailing-liste geschrieben, er woll ein Plugin System schreiben, so dass andere Leute HVS-Plugins schreiben können, da er wohl nicht die Zeit dazu hat. Ist aber schon ne gaaaanze Weile her, dass ich das mal gelesen hab eventuell siehts schon wieder ganz anders aus. Syskin hat das damals auch nicht groß ausgeführt,.. ;)

    Cu Selur

  • Hab einfach mal nachgefragt... ^^

    MfG~Soulhunter

  • Vielen Dank. So was in der Art hab ich mir gedacht.

    Was noch fehlt, ist, dass die Lambdas in der Pluginschnittstelle zur Verfügung gestellt werden.

    Und dann muss man noch ein (oder viele) Plugin(s) schreiben, die ein HVS Modell drauf anwenden.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Wenn man mit Lambdas arbeitet, dann hat man kein Problem mit B-Frames, da sysKin auch eine RDO für B-Frames gebaut hat. I-Frames werden nicht optimiert, deshalb hätte ein Lambda HVS Plugin dort keine Wirkung.

    AQ funktioniert momentan nur auf I und P Frames.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Zitat

    " AQ funktioniert momentan nur auf I und P Frames."
    Weiß einer ob da noch was geplant ist?

    Nein, aber was ich so aufgeschnappt habe, soll es nicht so ohne weiteres zu machen sein. In Anbetracht des schleppenden Fortschritts, den XviD gerade macht, kann ich es mir aber nicht vorstellen.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • ffdshow's eigener ASP-Codec soll der einzige sein, der AQ auch in B-Frames anwendet.

    Ob aber reguläres AQ bei B-Frames viel bringen würde? Die Dinger sind ja eh' schon stark komprimiert und ziemlich klein ... schätze mal, mit AQ wird kein wirklich nennenswerter Komprimierungsvorteil herauszuholen sein, ohne dass die Qualität leidet.
    Inverses AQ dagegen könnte ich mir schon vorstellen ... ;)

  • B-frames sind an und für sich so winzig, dass AQ hier nicht viel bringen kann, da stimme ich voll zu! Und inverse/positive AQ wäre vielleicht tasächlich überlegenswert, hm-hm. :ja:

  • Nur irgendwie scheint es auf der Mailingliste keinen zu interessieren.

    Diese Woche hab ich keine Zeit, aber vielleicht schaff ichs danach, ein HVS PLugin zu basteln.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Kann irgendeiner mit mehr Zeit und besserer Internetverbindung mal im IRC versuchen, die Aufmerksamkeit eines Experten auf meinem Patch zu lenken? Die Mailingliste setzt Staub an, und ich bin nie zur richtigen Zeit und nie so lange im IRC, als dass ich einen von den Devs erwischen würde.

    Ich denke zwar dass er soweit funktioniert, aber aufgrund eines etwas chaotischen Zustands meiner Computer kann ich nicht wirklich testen (MinGW auf Windows versteht automake und autoconf nicht, d.h. entwickeln und compilen auf Linux Notebook, aber da hab ich irgendwie den MPlayer geschreddert, und momentan kein schnelles Internet, also keine Abhilfe durch update komplette Neuinstallation. Um zu testen muss ich also auf Linux encoden und dann per Netzwerk auf die Windose um dort zu decodieren, und so viel Zeit hab ich leider nich um auf diese Art und weise ausführliche Tests zu fahren.)

    Ich fände es schade, wenn das Thema untergehen würde. Und sobald ich Kommentare zum Patch und Antworten auf die Fragen hätte, könnte ich evtl. mich einem HVS Plugin zuwenden, das evtl. AQ und RD Optimierungen kombiniert (dann könnte man alle Frametypen tunen). Oder ich hatte überlegt, ob man evtl. ein Plugin schreibt, dass HVS Profile (in Form einer Textdatei, so wie CQMs) einliest, die jeder Interessierte nach Belieben und sehr einfach (im Vergleich zum rumgewurschtle im Quelltext) tweaken kann.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

Jetzt mitmachen!

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