• Ja (gestern abend), und hab auch eine Antwort gekriegt. Er schaut sichs mal an, aber nicht sofort, wegen Prüfungen.

    Ein Zitat aus der PM, das mich erschüttert hat:

    Zitat

    Unfortunately there are no active developers left, so indeed, there's no one to respond..

    Was ist mit suxen_drol und isibaar? weiß da einer genaueres?

    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.

  • Ist ja wirklich ´ne interessante Diskussion hier, mal abgesehen davon, dass ich von Blockbasierten Codecs sowieso nichts halte und deshalb seit ewigkeiten nichts mehr codiert habe.

    Zitat von incredible

    Didée, hast du eine gute Seite im www auf Lager, wo eben dies gut erklärt wird?
    http://de.wikipedia.org/wiki/Polnische_Notation
    http://de.wikipedia.org/wiki/Umgekehrte_Polnische_Notation
    ist ja schon mal ein netter Anfang, aber .... "Böhmische Dörfer"


    Ich weiß nicht ob deine Frage schon beantwortet wurde, aber am besten du schaust mal im englischen Wikipedia nach (hier).
    Ist eigentlich ganz gut beschrieben. Die Polish Notation geht denn halt genau andersrum.

  • Ich denke gerade darüber nach, das Lumimasking so zu modifizieren, dass man eine Art "Profil" erstellen kann, das aus einer Textdatei besteht, in der im wesentlichen ein Lookuptable abgelegt ist, das das Plugin einliest, und anhand dessen es das Lumimasking durchführt. Der Vorteil ist, dass man so schon mit der vorhandenen AQ sehr einfach experimentieren könnte, die Erkenntnisse dann aber einfach auf ein Lambda basiertes Plugin übertragen werden könnten.

    Das Problem ist, dass diese Tabelle im Profil recht unübersichtlich werden könnte, wenn die Stärke des LM von sehr vielen Faktoren abhängt, und wenn man diese mit hoher Genauigkeit berücksichtigt.

    Also eine Funktion LM(lum_global,lum_lokal,quant) bräuchte theoretisch ein 256*256 = 65000 Mio Einträge großes LUT.

    Es gibt zwei Alternativen:

    Entweder man betrachtet die Faktoren separat, also

    LM(lum_global,lum_lokal,quant) = F1(lum_global)*F2(lum_lokal)*F3(quant)

    Dann hätte man nicht mehr alle Freiheiten, aber käme mit 3 LUTs mit 256, 256 und 31 Einträgen aus, was ja machbar wäre. F3(quant) und F2(lum_global) sind ja wahrscheinlich eh Fensterfunktionen, die das LM für bestimmte Werte an (1) oder aus (0) schalten, bzw. kontinuierlich ausblenden.

    Oder man verringert die Genauigkeit, mit der die Faktoren berücksichtigt werden. Kann man nur 64 verschiedene Helligkeitslevel unterscheiden, so reduziert sich die Größe der Tabelle auf 64*64 = 4096, was auch noch handhabbar wäre.

    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.

  • So, ich hatte ein bisschen Zeit und habe ein (noch) sehr einfaches Plugin für XviD gebastelt, dass das bisherige Lumimasking verbessern und erweitern soll. Es macht dabei momentan nur Gebrauch von der "neuen", RD-basierten Möglichkeit verschiedene Bildteile zu gewichten, die im ersten Leben dieses Threads entstanden ist. Es ist aber geplant, auch zusätzlich die herkömmliche adaptive Quantisierung zu verwenden, da die Lambda-Gewichtung nach meinen ersten Tests nicht so stark modulieren kann wie AQ.

    Das Plugin liest ein Profil ein, in dem festgelegt werden kann, was es wie gewichten soll. So können experimentierfreudige Zeitgenossen (insbesondere Didèe) nach Herzenslust tunen und tweaken (ohne das man aneinander vorbeiredet :D).

    Die Gewichtung funktioniert über Modulation des sogenannten Lambda-Faktors. Dieser Faktor wird eingesetzt, um eines günstiges verhältnis zwischen Bitverbrauch und Bildfehlern zu erreichen.Für verschiedene Encodierungsmodi wird dazu eine Größe RDScore = Bitverbrauch + lambda*Bildfehlern verglichen, und der Modus mit der niedrigsten Score verwendet.

    Größere Lambdas begünstigen somit Modi, die wenig Bildfehler produzieren, dabei aber mehr Bits verbrauchen, kleinere Lambdas solche die weniger Bits brauchen, aber dabei mehr Bildfehler produzieren.

    Der Lambdafaktor wird bei der Trellis Quantisierung und bei VHQ eingesetzt, das Plugin funktioniert bei hohen VHQ-Leveln und eingeschaltetem Trellis am besten, ohne VHQ und Trellis ist es wirkungslos. Es arbeitet nicht auf I-Frames.


    Das Plugin ist in einer speziellen Version des Commandozeilenencoders integriert. Dieser sollte avisynth Skripte lesen können, aber bietet nicht alle Optionen, die Squid_80s mod offenlegt, da er auf der CVS Version von xvid_encraw basiert. Es wurden aber zusätzliche Parameter hinzugefügt.

    Zum einen ein -trellis Parameter, mit dem man Trellis explizit aktivieren kann. Meistens ist Trellis zwar standardmäßig aktiviert, aber so kann man seine verwendung erzwingen,da es für die Funktion des Plugins wichtig ist.

    Zum adneren der -hvs Parameter, der in der Form

    -hvs Pfad

    angegeben wird.

    Damit übergibt man den Pfad zu einem Profil. Ein Profil besteht aus einer einfachen Textdatei, in der viele Zeilen der folgenden Form stehen:

    Ganzzahl Kommazahl Kommazahl

    zwischen den Zahlen sind Tabulatoren, hinter der zweiten Kommazahl muss direkt ein Zeilenumbruch stehen, nichts dazwischen. Die Bedeutung der Spalten ist folgende:

    Helligkeitswert lokale Gewichtung globale Gewichtung


    Aus diesen Daten erstellt das Plugin zwei Tabellen (global und lokal) mit jeweils 256 Einträgen. Standardmäßig ist jeder EIntrag der Tabellen 1.0. Im Profil angegebene Werte überschreiben diese. Kommen zwei Helligkeitswerte doppelt im Profil vor, so überschreibt der spätere den früheren.

    Das Lambda eines Blockes mit der durchschnittlichen Helligkeit a in einem Frame mit der durchschnittlichen Helligkeit b ist das Produkt aus dem a-ten Eintrag der lokalen Tabelle und dem b-ten Eintrag der globalen Tabelle + 1.

    So lässt sich der Mechanismus durch Nullsetzen von Einträgen für bestimmte Situationen deaktivieren. Schreibt man z.B. für die Helligkeitswerte 0 bis 100 0 in die globale Gewichtung, so passiert in Frames mit einer Helligkeit kleiner 100 nichts.

    Ich habe die nächsten 2 Wochen nicht so viel Zeit, als dass ich intensive Tests fahren könnte, deshalb wollte ich hier um eure Mithilfe bitten, sinnvolle Profile für verschiedene Materialien und Situationen zu finden.

    Ich habe vor, das Plugin noch zu erweitern, indem ich zusätzlich zur Lambda-Modulation noch adaptive Quantisierung verwende, und zusätzliche Kriterien einführe, von denen die Gewichtung abhängt. Auf dem Plan stehen im Moment Farbe (z.B. zur Vermeidung von sichtbaren Blöcken in blauem Himmel), Kanten (zur gezielten Verminderung von Ringing), Flachheit (wie viel "passiert" in einem Block).

    Ich bitte um weitere Ideen, Vorschläge, Anregungen und Kritik.


    Diese Version ist ausschlisßlich zu Testzwecken gedacht und absolut experimentell. Keine Gewähr für korrekte Funktion.

    http://web3.gleitz.org/Kopernikus/encrawhvs001.zip

    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.

  • Es scheint ein Problem zu geben mit der angehängten Version. Auf meiner Windose beendet sich das Programm manchmal (nicht immer) nach dem Einlesen des Profils. Kann das jemand bestätigen, oder ist das nur bei mir so (mein Windows macht in letzter Zeit öfters Zicken)?

    Ich compile den CL Encoder unter Linux, und da tritt das Problem nicht auf. Und unter Windows hab ich nicht das Handwerkszeug um zu debuggen.

    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.

  • Huihuihuihuihui, beeeee-eindruckend!

    Voran, Didée, voran; ich erwarte mir innerhalb der nächsten zwei Tag ein auf die SixOfNine-Matrix abgestimmtes Profil! Auf meinen Schreibtisch! ;)

    Ernsthaft, das ist wirklich eine super-duper Leistung, Kopernikus! Vielen Dank! Mal sehen, ob auch ich damit herummurksen kann.

  • Es geht weiter:


    0.02
    ______________________________
    fixed: line counter
    changed: table entries are initialised to 0.0f
    added: adaptive quantization
    changed: column delimiters changed from tab to space


    Man kann jetzt auch die adaptive Quantisierung beeinflussen. Das bedeutet, das einzelne Macroblöcke innerhalb eines Frames unterschiedliche Quantizer verwenden. Diese Methode funktioniert nicht in B-Frames.

    Das Prinzip ist das gleiche wie bei den Lambdas. Der Basisquantizer (der Quantizer den der Frame von der Ratecontrol zugewiesen bekommen hat) wird mit dem Faktor (1 + lok Gewichtung * globale Gewichtung) multipliziert. Danach wird das Quantizerfeld normalisiert, da zwischen zwei aufeinanderfolgenden Macroblöcken höchstens 2 Quantizer unterschied sein dürfen.

    Das Format der Profil Datei hat sich geändert in
    Helligkeit Lambda-Lokal Lambda-Global AQ-Lokal AQ-Global

    Zwischen den Spalten sind jetzt Leerzeichen, um aus Tabellenkalkulationsarbeitsblättern exportierte Profile zu erleichtern. Vielleicht hat ja jemand interesse ein OpenOffice Sheet zur Einfachen Erstellung von Profilen zu erstellen?

    Das Build ist nicht unter Windows getestet, weil ich hier gerade nur mein Linux Läppi da hab.

    http://web3.gleitz.org/Kopernikus/encrawhvs002.zip

    Viel Spass beim Testen.

    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.

  • Das gleiche Problem hat DarkAvenger mit HeadAC3he: Unter Linux für Windows entwickeln und debuggen; Linux (sicherlich WINE) verzeiht Fehler, bei denen Windows mit Ausnahmefehlern um sich wirft.

    Häufig handelte es sich um vergessene Freigaben nach Speicherbelegung, wenn ich mich recht erinnere.

  • Ein weiteres Update:

    http://web3.gleitz.org/Kopernikus/encrawhvs003.zip

    (Achtung, die Datei wurde am 3.3.06 um 19:52 ausgetauscht, da sie eine fehlerhafte Version enthielt)

    0.03 06-03-03
    ______________________________
    fixed: memory bug
    fixed: profile parsing for luminance 0 and 255
    added: contrast/complexity measure
    added: profile format version system
    changed: profile format to version 3
    added: documentation
    changed column delimiters back from space to tab for clarity
    fixed: memory bug in xvidcore


    Insbesondere habe ich es geschafft die Readme mit einigen Details zur Funktionsweise zu erweitern:

    Hat schon mal jemand versucht, ob das Ding bei ihm läuft? Ich habe einige Bugs gekillt, und es würde mich interessieren, ob encraw immer noch manchmal einfach stehenbleibt.

    Ich werde mal versuchen, ein Profil zu erstellen, das das herkömmliche Lumimasking nachstellt, damit wir Anhaltspunkte haben, wie soetwas im Prinzip aussehen könnte.

    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.

  • Also, die alte Version ist mir abgeschmiert, nachdem sie 33 Zeilen aus der 'Tabelle' importierte. Morgen versuche ich's mal mit der neuen Version. Danke dir! :)

  • Für's ReadMe gibt's jedenfalls schon mal 'ne "1". :daumen:

    Bis jetzt hab' ich noch keine Instabilitäten bemerkt!
    (Bin nämlich noch nicht zum Ausprobieren gekommen, grr.)

  • Hi! Kleine Frage: Schon mal mit dem Gedanken gespielt die Readme in Englisch zu übersetzen und das ganze im doom9 Forum zu Posten? Ich mein... mehr User = mehr potentielle Tester, oder? :)

    MfG~Soulhunter

  • Vielleicht sollte ich das tun.

    Aber ich bin mir nicht so ganz sicher, ob das schon so richtig ausgereift ist. Die vielen vielen Zahlen sind glaubich sehr abschreckend. Vielleicht sollte ich das vorher noch ein bisschen umstrukturieren, und eine kleine GUI zur Erstellung und Verwaltung von Profilen basteln.

    Mal sehen vielleicht morgen.

    Hat eigentlich irgendjemand ausser mir schon damit rumgespielt?

    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.

  • Also dass mit dem GUI ist sicherlich ne gute Idee, 1-2 Beispiel-Profile (so macht man dies, und so macht man das...) würden auch nicht schaden denk ich! Wegen dem Rumspielen... Bin bis jetzt noch nicht wirklich dazu gekommen, aber sobald meine Encoding-Box wieder funzt (das Mobo hat nach 10000 Stunden Dauerbetrieb einfach den Geist aufgegeben T_T) werd ich mich der Sache mal annehmen... ^^

    MfG~Soulhunter

  • Ok, ich hab jetzt mal ein OpenOffice Sheet gebastelt, mit dem man recht bequem Profile erstellen kann.

    http://web3.gleitz.org/Kopernikus/hvs.sxc

    Beispielprofile und englische ReadMe sind in Mache.

    Merke gerade, dass man das entstandene cvs File noch mit einem Editor nachbearbeiten muss, und "," mit "." ersetzen muss.

    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.

  • Falls es jemanden interessiert:

    http://xvid.ist-dein-freund.de

    hier befindet sich ein Patch mit einem neuen Plugin, das nicht mehr diese komplizierten Profile verwendet.

    Viel Spass beim Testen!

    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.

  • Schade, leider nur für encraw-Linux bisher.

    Und ... warum muss der Text so riesig sein?

    P.S.: CSV (comma separated values) kann man in MS Office auch in einem speziellen Format öffnen lassen, da kann man in den Optionen des Programms die Tausender- und Dezimaltrennzeichen auch manuell festlegen. Sollte bei OpenOffice hoffentlich auch irgendwie möglich sein?!

  • Welcher Text?

    Edith:

    Ab jetzt sind auch windows binaries verfügbar. Ich hoffe sie funktionieren auch richtig, sind von Linux cross-compiled. Zumindest unter Wine laufen sie.

    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!