Beiträge von Kopernikus

    Das Multithreading von x264 ist ziemlich gut, es skaliert auch fast linear bis zu deutlich höheren CPU Zahlen (8 oder 16, es gab iirc auch Test auf einem Großrechner mit 128 CPUs).

    Sollte also klappen. Such mal im englischen Forum nach deiner Prozessorbezeichnung, vielleicht finden sich da Hinweise auf die Performance.

    Möglicherweise sind 2000 Frames auch noch ein bisschen kurz sind, die Ratecontrol hat sich da ja kaum an das Material gewöhnt, je nach Einstellungen und Material ist sie da ein bisschen träge.

    Falls ich deine Zahlen mit kB und kb und recht vielen . richtig interpretiert habe, ergeben sich folgende Bitraten:

    CBR 1928 kbps:
    ----------------------
    Xvid 2879 kbps
    DivX 1672 kbps
    x264 1879 kbps

    Xvid haut da wohl ein bisschen drüber, DivX drunter und x264 recht genau drauf. Aber ich vermute auch, dass du irgendwas verkonfiguriert hast.

    Erstmal ist es nicht optimal, von Original auf MPEG2 und von dort nach AVC zu konvertieren, weil zwei verlustbehaftete Schritte nacheinander.

    Auch irgendwas über eine Bitrate zu sagen ist schwierig, weil das sehr stark vom Material und deinem Anspruch ans Ergebnis abhängt.

    Aber wenn du eine Faustformel willst, würde ich mal mit 1000-1500 kbps fürs Video anfangen, und schauen, ob das Ergebnis für dich ok ist. 128kbit mit mp könnte schon gehen.

    Ich fass es noch mal zusammen, kam nämlich jetzt zum gleichen Schluss wie Manao.

    H.264 verwendet eine weitere Transformation für die Gleichanteile eines Macroblocks. Die Idee ist, dass sich die durchschnittliche Helligkeit von benachbarten Blöcken meistens nicht so sehr unterscheidet, und man durch die zweite (DCT-ähnliche) Transformation noch mal ein bisschen dekorrelieren kann, und dem Entropiecoder eine Freude macht. Die Trafo ist eine sog. Hadamard Trafo, weil die ein bisschen schneller und einfacher ist, und es in dem Fall keinen großen Unterschied macht.

    Die 2x2 Hadamardtrafo kommt bei 4x4 Partitionen von 8x8 Chroma Blöcken vor, und die quant 2x2 funktion ist dafür da, die Quantisierung der transformierten Gleichanteile durchzuführen.

    DC Anteil nennt man (allgemein bei Transformationen wo "frequenzen" mit reinspielen), den Koeffizienten für die Frequenz 0. Das kommt wahrscheinlich aus der Elektrotechnik mit Gleich- und Wechselstrom.

    Möglicherweise war ich etwas vorschnell und habe nicht ganz richtige Dinge behauptet. Ich werde das nochmal sorgfältig recherchieren und dann ausführlich und korrekt berichten.

    Aber der Patch hat nur insofern was mit den verschiedenen Partitionen zu tun, wie dass die optimierte Funktion nur bei bestimmten Partitionen aufgerufen wird.

    quant_2x2_dc ist eine Funktion, die in einem 4x4 Block (in dem die Farbkanäle also nur 2x2 groß sind) den DC Anteil der Frabkanäle quantisiert. Und mit AltiVexc geht das jetzt halt auf Altivec-fähigen CPUs etwas schneller. Für Intel CPUs ändert sich nichts, die Funktion ist schon seit einiger Zeit als MMX Assemblerfunktion vorhanden.

    Für den ANwender ändert sich nix, x264 schaltet automatisch auf die schnellste Implementierung um. Dieser Patch macht nicht mehr als früher, sondern nur schneller. Also keine so große Sache für die meisten ANwender.

    Wenn du Xvid über Mencoder verwendest, dann solltest du Selurs "Wissenswertes über Xvid" lesen, die Optionen heißen vielleicht ein bisschen anders, aber man sollte sie einfach zuordnen können.

    Wenn du x264 über Mencoder oder als eigenes Programm nutzt, gilt analoger Hinweis mit "Wissenswertes über x264".

    Auch die Mencoder Manpage ist recht umfangreich, da sind alle Optionen und ihre Wirkungen beschrieben.

    Am besten sollte es über VfW gehen. Die interessanten Funktion ist AviFileInfo

    http://msdn2.microsoft.com/en-us/library/ms706309.aspx
    http://msdn2.microsoft.com/en-us/library/ms706413.aspx

    Damit kann man im Zweifel nicht nur avs einlesen sondern alle avis, für deren Inhalt ein VfW Codec zur Verfügung steht. Andere avi Parser funktionieren unter Umständen nicht, weil sich Avisynth in VfW einhängt iirc.

    Man kann auch über avisynth gehen, das macht z.B. avs2yuv (http://www.akuvian.org/src/avisynth/avs2yuv/), das scheinen nur einige hundert Zeilen Code zu sein.

    Es gab mal Überlegungen auf der Mailingliste, aber es scheint schwierig zu sein, die GPU effizient einzubinden. Das hin und herkopieren von Frames ist langsam, und die GPU bei Integeroperationen nicht soo schnell.

    Auf der anderen Seite gibt es Gerüchte über eine Dirac (Schrödinger) GPU Version, die 12x schneller war. Aber Schroedinger ist nicht annähernd so SIMD optimiert wie x264

    Für Folding@Home gibt es einen GPU Client.

    Thema: Container, ja das ist das Original erzeugte Video von encraw mit dem Parameter -type 2 und -avi. Bei den anderen Versionen funktioniert es ja. Ohne Remuxen oder dran fummeln.

    Ich compiliere das Ding unter Linux für Windows, und da wird mit den MinGW Bibliotheken statisch gelinkt. Ich vermute, dass es an denen liegt. Aber ich hab keine anderen Werkzeuge. Ich muss mal überlegen, ob es da evtl. eine Lösung für gibt.


    Zitat


    Thema: Besseres encraw.
    * Ich wünsche mir ja schon immer mehr als andere, weil ich mehr teste und einfach vieles nicht einfach so hinnehme. Mehr Logausgaben wären schon Cool, besonders würde ich mir wünschen, wenn man encraw Parameter übergibt und er dann anfängt, sollte er einfach mal ausgeben, mit welchen echten Paramtern er nun rechnet.

    Was mir vorschwebte, war, dass man das external Plugin in einen log Modus schalten kann, in dem er die Werte von Type,Quant,VOL und VOP und Motion Flags, die er verwendet, im richtigen Format rausschreibt. Es gibt ja noch einen Haufen mehr Parameter, aber an die komm ich über die Plugin Schnittstelle nicht hin.

    Zitat

    * 0 oder -1. Ich würde zb bei 0 Xvid entscheiden lassen.

    Thema: Steuerdatei
    könnte man am Anfang den Frame nummerrieren und evt. nur die Änderungen direct machen. Also:

    Dann sollte Frame 2 bis 499 genauso encodet werden wie Frame 1. Verstehste? Denn bei x0000000 Frames wirds ein bissl Sehr Komplex :)

    Kann man machen, aber ist es nicht vielleicht sinnvoller, nur die Frames anzugeben, die man ändern (erzwingen) will, und sonst Xvid machen zu lassen?

    Zitat


    Frage: -altpass2 hast Du wohl rausgenaommen, weil die -vbvsize/-vbvmax/-vbvpeak so oder so nicht funktionieren? Denn das sieht man sofort beim Bittest

    Ja, ich hab keine anderen Patches drin.