Keyframes bei Xvid

  • Hallo,

    hab mal ne Frage zu Key-Frames (I-Frames) bei XviD:

    mit Maximum I-Frame-Intervall kann ich den maximalen Abstand zweier I-Frames wählen. Nehme ich hier 300 und habe 25fps, so beträgt der Abstand 12 Sekunden.

    Jetzt habe ich beispielsweise einen Film, bei dem eine neue Szene beginnt. XviD nimmt daher einen I-Frame. Diese Szene dauert 13 Sekunden, in denen sich das Bild kaum ändert. Nach 13 Sekunden kommt eine neue Szene mit einem neuen Bild, auch hier wird ein I-Frame gesetzt. Den Höchstabstand hatte ich aber auf 12 Sekunden gesetzt.

    Frage: Wann setzt Xvid einen zusätzlichen I-Frame?

    Nach 12s, weil ich dies nach Maximum gesetzt hatte?

    Oder nach 6,5s, also in der Mitte, da dies nach meinem Verständnis eine bessere Bildqualität sowie ein leichteres Filmspulen ermöglichen würde.

    MfG

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Der Keyframe wird nach 12 Sekunden gesetzt,da Smart Keyframe decision halt nicht smart genug ist :)...
    Mit jedem durch den SKD Algo gesetzten Keyframe wird automatisch der max keyframe interval wieder auf 12 Sekunden zurueckgesetzt...
    ...nicht das SKD einen I-Frame setzt und sofort danach der max keyfr.. interval den naechsten hinterher haut :))

  • Okay, wie es gesetzt wird ist jetzt klar, aber:

    "Oder nach 6,5s, also in der Mitte, da dies nach meinem Verständnis eine bessere Bildqualität sowie ein leichteres Filmspulen ermöglichen würde."

    Wieso bessere Bildqualität? Ist mir unklar?
    Solange sich die nachfolgenden Bilder nicht stark (genug) vom Keyframe unterscheiden ist es immer sinnige dieses zu behalten und nicht nochmal ein neues zu schreiben. Oder verstehe ich etwas an Keyframes nicht ?

    Cu Selur

  • Hallo Selur,

    natürlich ist es sinnig, ein Keyframe zu behalten, wenn sich die nachfolgenden Bilder nicht stark (genug) vom Keyframe unterscheiden.

    Aber warum soll ein Film 12 Sekunden lang nur von B- und P-Frames leben, wenn es ohne höheren I-Frame-Verbrauch möglich wäre, nach 6,5 Sekunden einen neuen Keyframe zu setzen. Kann es, wenn Bilder längere Zeit nur aus B- und P-Frames generiert werden, nicht zu einem Qualitäts- oder Schärfeverlust kommen? Würden die B-Frames nicht sogar innerhalb der ersten 6,5s auf diesen I-Frame zurückreifen können?

    Im Beispiel wäre es an sich unsinnig, den I-Frame nach 12s zu setzen, 13s wäre besser. Aber irgendwo muß ja eine Grenze sein. 12s ist ja auch schon relativ viel, viele nehmen nur 10s entsprechend 250Frames bei 25fps.

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • "Kann es, wenn Bilder längere Zeit nur aus B- und P-Frames generiert werden, nicht zu einem Qualitäts- oder Schärfeverlust kommen?"
    Natürlich kann dies geschehen, nur braucht ein zusätzliches I-Frame halt zusätzlichen Speicher, der einem je nachdem an einer anderen Stelle fehlen kann,... ;)

    Für maximal Qualität hilft nur lossless encoding, da dies jedoch momentan noch zu sehr großen Dateien führt macht man halt Kompromisse wie:

    Weniger I-Frames => Mehr Daten die verteilt werden könne, jedoch auch weniger Sprungstellen und eventuell ein etwas unschärferes Bild :)

    Wenn man natürlich weiß, das man einen Clip encoded, in dem sich 12 Sekunden nix tut, kann man das Intervall ja auch runterschrauben.

    Cu Selur

    Ps.:
    Nebenbei: Viele Leute stellen das maximale Intervall auf Framrate*10 (daher kommen auch die 300 :) etwa 29.976*10).

  • sicher, stell mal maximal b-frame nicht auf -1 sondern 0 ;)

    Zitat

    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 auch nicht gleichzeitig aktiviert haben. Je höher die VHQ Stufe ist die man wählt, desto extremer wird der Encodingvorgang ausgebremst. Für die meisten User ist es deshalb wohl am sinnigsten VHQ(1) zu nehmen, da hier der meiste Qualitätsgewinn erzeugt wird und die Geschwindigkeitseinbußen noch nicht so hoch sind. Für absolute Qualitätsfanatiker, wie mich, ist VHQ(4) jedoch ein Muss. Bei höhren VHQ Stufen kann es je nach verwendeter Quantizermatrix auch dazu kommen, dass Keyframes nur noch beim angegebenen Maximum erstellt werden. Um dem entgegen zu wirken sollte man die Maximalen B-Frames mindestens auf 0 stellen, da dann ein teilweise anderer Algorithmus verwendet wird. (Wenn man eine Dualrechner hat, sollte man VHQ nicht >1 benutzen, da sonst die Auslastung der CPUs sinkt.)


    Quelle: Wissenswertes rund um Xvid

    Cu Selur

Jetzt mitmachen!

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