PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (old) Wissenswertes rund um Xvid (am 21.05 geschlossen)


Selur
25. April 2003, 15:34
Was ist Xvid?
Xvid ist ein Open Source Mpeg4-Codec der nur für "educational purposes" gedacht ist.
Ein offizielle Homeage von Xvid gibt es auch: www.xvid.org .
Dort findet man jedoch nur den SourceCode, keine kompilierten Versionen (=.exe Dateien oder Installer&Co).
Würde Xvid.org kompilierten Code veröffentlichen müssten sie Mpeg4-Lizensgebühren zahlen, was für ein OpenSource-Project nichtmachbar ist.

Glücklicherweise haben sich jedoch einige Leute gefunden die sich in die Grauzone des Copyrights begeben und kompilierte Versionen auf ihren Homepages zum Download anbieten.
Und zwar: Koepi (http://roeder.goe.net/~koepi/), Nic (http://nic.dnsalias.com/), uManiac (http://xvid.hopto.org/) und Kilg0r (http://kilg0r3.cjb.net/).

Koepi (http://roeder.goe.net/~koepi/) und Nic (http://nic.dnsalias.com/).
Koepi bietet sowohl Downloads des sich aktuell in der Entwicklung stehenden Entwicklerteils des Codes (= unstable Version), als auch einen Download etwaiger 'stable' Versionen an. Nic bietet nur die Entwicklerversionen an. Anzumerken sei auch das Koepi und Nics Versionen sich auch insoweit unterscheiden als das sie andere Compiler verwenden was dazu führt das auf manchen Systemen die eine oder andere Version marginal schneller ist.

uManiac (http://xvid.hopto.org/), bietet immer top aktuelle Versionen des Entwicklerteils des Codecs an. Zwar sind diese nicht besonders durch den Compiler optimiert, jedoch wird bei jeder Änderung am Code eine neue Version erzeugt, was den Vorteil hat das man dauernd die neusten bugFixes und Features antesten kann.

Kilg0r (http://kilg0r3.cjb.net/) bietet einen Mirror der oben angegeben Versionen von Nic, Koepi und uManiac, zwar hingt er meist ein bischen mit dem Releasen hinterher, jedoch schreibt er meist noch ein, zwei Kommentare zu den builds und der Download von seiner Seite ist vorallem in Deutschland meist sehr flott.


Hab hier mal versucht einige der Erfahrungen die mit einigen der Xvid Features gemacht wurden sind zusammen zu fassen:

B-Frames:
Diese Art von Frames betrachtet bei der Berechnung nicht nur vorangegangene, sondern auch nachfolgende Frames. Was meist zu beachtlichen Einsparungen an Datenrate führt, jedoch bei hohen Datenraten eher die Bildqualität senkt, da B-Frames mit höheren Quantizern als ihre Umgebung codiert werden.
=> B-Frames nur bei niedrigen Datenraten(so <900KBit/s würd ich sagen)

Global Motion Compensation:
Wenn die Kamera schwenkt, bewegt sich der gesamte Bildinhalt im Durchschnitt in die selbe Richtung. MPEG speichert Bewegungsrichtungen abhängig von der Weite verschieden genau: Kurze Bewegungen werden genauer gespeichert als weite. Deshalb wird bei GMC die Gesamtbewegung des Bildinhaltes als Maßstab genommen, und pro Makroblock werden nur noch die Abweichungen vom Durchschnitt gespeichert. Meiner Erfahrung nach ist jedoch der Overhead den man braucht um GMC zu benutzen öfter größer als das was man einspart. Da GMC und VHQ sich entgegenwirken sollte man sie nicht gleichzeitig aktiviert haben.
=> GMC nicht benutzen

Quarter Pixel Motion:
MPEG1 / MPEG2 speichern Bewegungen bis auf ein halbes Pixel genau. Bei MPEG4 ist sogar eine Genauigkeit von einem viertel Pixel erlaubt - dann natürlich nur bei sehr langsamen, kurzen Bewegungen. Sieht vielleicht ein klein wenig besser (weicher) aus, braucht aber mehr Bitrate. Meiner Erfahrung nach scheint Qpel wirklich was zu bringen wenn man ne relativ niedrige Auflösung hat. (<= 572*xy Pixel würd ich sagen) Leider scheint es so als ob qpel nicht ordentlich mit VHQ(>1) zusammen arbeitet.
=> Qpel nur bei niedrigen Auflösungen und wenn VHQ nicht >1 benutzt wird

Chroma Motion:
Normalerweise verwendet XviD nur die Luminanz-Infos, um Bewegungsrichtungen festzustellen. In seltenen Fällen (die selbe Helligkeit, aber wechselnde Farbigkeit) mag das vielleicht nicht genau genug sein. Dann kann man auch die Farb-Komponenten zum Feststellen der Bewegungsrichtung mit hinzuziehen. Das dauert aber wesentlich länger.
=> sollte für genaure MotionEstimation aktiviert werden

Chroma optimizer:
Farbinformationen in besonders hellen bzw. dunklen Bereichen werden interpoliert, was u.a. die "Treppchenbildung" an Kanten (zB grell roter Pulli vor blauem Himmel) reduziert. Fluppt erst seit der neusten Version bei mir, hab ich noch nicht viel getestet. Scheint aber wunderbar zu funktionieren.
=>vorallem bei Filmen mit vielen Helligkeitsübergängen benutzen

VHQ:
VHQ errechnet die Anzahl von Bits die ein Macroblock in verschiedenen Szenen erreichen kann. Gewählt wird dann das Szenario, welches die kleinste Anzahl an Bits aufweist. Ebenso kann VHQ [eingeschränkt] Bewegungsvektoren suchen. Da GMC und VHQ sich entgegenwirken sollte man sie nicht gleichzeitig aktiviert haben. Je höher die VHQ Stufe ist die man nimmt desto extremer wird der Encodingvorgang ausgebremst.
=>sollte von Qualitätsfanatikern aktiviert werden

Luma Masking:
Lumamasking, ist so ne art psychovisuelles Modell was darauf aufbaut, dass das Menschliche Auge bei sehr hellen und sehr dunklen Szenen nicht soviele Details erkennen kann. In solchen Szenen wird dann hier und da was Datenrate gespart, was teilweise zu recht beachtlichen Einsparungen führen kann. Zu beachten sei allerdings das nach meiner Beobachtung der Kontrast der Farben auch etwas erhöht wird, was meiner Ansicht nach nicht immer so gut ist.
=> luma masking wenn man mehr Bits braucht und einen die geringen Farbänderungen nicht stören

Hoffe das hilft ein bischen mit dem Umgang mit Xivd.

Cu Selur

Selur
27. April 2003, 18:55
"payback bias" oder "payback proportionally" ?
Proportionaler Payback gibt 'gesammelte' Bitrate der größe der Frames entsprechend ab. Ein großes Frame würde prozentual die gleiche Menge an Bits bekommen wie ien kleines Frame, absolut jedoch mehr. bias (voreingenommen) Payback bevorzugt hingegen eher kleinere Frames und gibt diesen eher mehr Bits als Frames die bereits groß sind.

iago (http://forum.doom9.org/showthread.php?s=&threadid=38493) hat das auf Englisch mal wie folgt formuliert:
"Payback with bias" symphatizes and favours small frames , whereas "Payback proportionally" behaves justly towards all frames and without any prejudice pays back what each frame deserves according to their sizes, thus gives more to big frames and less to small frames!