PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : min-keyint-interval


akapuma
7. March 2006, 17:51
Hallo,

ich habe einen Film encodiert mit folgenden Einstellungen:
min GOP size: 25 (analog zu Selur's Empfehlungen)
Keyframe Interval: 300

Jetzt habe ich festgestellt, daß alle I-Frames, die näher als 25 Frames auf ein IDR-Frame folgen, non-IDR-I-Frames sind, während alle I-Frames, die nach mehr als 25 Frames auf ein IDR-Frame folgen, selbst IDR-Frames sind. Siehe hierzu angehängtes Bild, daß die Frameabstände bis 50 zeigt.

Selur empfiehlt in seinem Wissenswerten, den Parameter nicht zu benutzen und damit den Standard (=das empfohlene Minimum) von 25 zu verwenden. Gleichzeitig schreibt er von einem von Programmierern empfohlenen Wert von 0,4xKeyframe-Interval. Das wären bei mir 120, wenn man ein Keyframe-Interval von 250 verwendet 100.

Nun zu meiner Überlegung:
Die Angabe der min. GOP-size scheint x264 nicht daran zu hindern, doch I-Frames zu verwenden, allerdings sind's dann keine IDR-Frames. x264 könnte dann auch über diese non-IDR-I-Frames referenzieren, muß es aber nicht. Daher erscheint es mir sinnvoll, größere Werte als 25 zu verwenden.

Was haltet Ihr davon? Gibt's Erfahrungen?

Gruß

akapuma

Selur
7. March 2006, 20:29
Jetzt habe ich festgestellt, daß alle I-Frames, die näher als 25 Frames auf ein IDR-Frame folgen, non-IDR-I-Frames sind, während alle I-Frames, die nach mehr als 25 Frames auf ein IDR-Frame folgen, selbst IDR-Frames sind. Siehe hierzu angehängtes Bild, daß die Frameabstände bis 50 zeigt.
Hatten wir die Tage schonmal in einem anderen Thread nochmal angemerkt die GOP-Größe wird bei x264 nicht an I-Frames sondern an IDR-Frames fest gemacht.

Gleichzeitig schreibt er von einem von Programmierern empfohlenen Wert von 0,4xKeyframe-Interval. Das wären bei mir 120, wenn man ein Keyframe-Interval von 250 verwendet 100.
Stammt soweit ich mich entsinne aus einer Empfehlung der mplayer man-pages.

Was haltet Ihr davon? Gibt's Erfahrungen?
Hab mal in den ersten x264 Tagen ein paar kleine Test gemacht, da schnitten die Standardwerte für die GOP-Size eigentlich immer gut ab. Hier und da waren kleinere Gewinne bei anderen konstellationen zwar zu sehen, jedoch war kein Muster zu erkennen, weshalb ich bei den Standardwerten bleibe. Wenn Du sinnige Test machen willst, dann encode einige unterschiedliche Szenen (wenig Änderungen/viele Änderungen/hell/dunkel) getrennt mit unterschiedlichen Einstellungen und vergleiche die SSIM Werte.

Würde mich auch interessieren ob es einen wirklichen unterschied macht.
Interessant wären wahrscheinlich Werte:
max GOPsize: min. GOPsize - bis 20xFramerate, was setzt natürlich vorraus, dass der Encodete Part dies auch hergibt.
min GOPsize: 1-max.GOPsize

Vermute aber, dass bei den meisten Filmen&Co andere Werte als die Standardwerte (fast) keinen (positiven) Einfluß haben werden.

Cu Selur

akapuma
7. March 2006, 22:51
bis 20xFramerate, was setzt natürlich vorraus, dass der Encodete Part dies auch hergibt.Das ist sehr unterschiedlich. Das Verfahren scheint mit folgendes zu sein:

x264 arbeitet Frame für Frame ab und entscheidet, ob's ein IDR-Frame wird. Das geht so lange, bis es entweder aufgrund irgendwelcher Algorithmen (Szenenwechsel) ein IDR-Frame erzeugt wird, oder bis die max. GOP-Size erreicht wird. Das bedeutet, daß es besonders viele GOP's gibt, die genau das Maximum erreichen. Wieviele, ist aber sehr unterschiedlich: (Beispiele alle mit max. Länge von 300)

Buntfilm, 136412 Frames:
Hat 1230 IDR-Frames (0,9%), davon beenden nur 30 Stück GOP's mit der Länge 300

s/w-Film, 149214 Frames:
Hat 752 IDR-Frames (0,5%), davon beenden 275 Stück (über 1/3!) GOP's mit der Länge 300

Gruß

akapuma

Selur
7. March 2006, 23:56
Wieviele, ist aber sehr unterschiedlich
Ich weiß das macht es ja gerade so kompliziert darüber aussagen zu machen. :)
=> falls nicht mal jemand Zeit&Muße findet da wirklich viel zu testen würd ich erstmal die defaults empfehlen. ;)

Cu Selur