
Hi On Fri, Nov 16, 2007 at 04:53:49PM +0100, Michael Niedermayer wrote: [...]
keyframe: rewording for clarity and formal english:
A keyframe is a frame in a stream at which decoding of that stream can successfully begin independent of prior frames. Keyframe status of frames within one stream is independent of any other streams.
ok
Assign to each frame in a stream an integer position n. The nth frame of a stream is a keyframe if and only if the mth frame, for each m≥n+k, can be decoded successfully without reference to data contained in the lth frame for any l<n, where k is the smallest nonnegative integer such that keyframes other than the initial frame can exist in the stream's coding scheme. This definition coincides with the ordinary notion of a keyframe for common video coding schemes where k=0, and also allows for overlapped-window audio coding schemes where k≥1 accounts for the missing overlap from the previous frame.
what about normal b frames? IPBBIBBBBBPPP
here if we start decoding from the 2nd I frame none of the B frames can be decoded as they need the pevious frames but they are after the I frame position wise
heres a different definition for keyframes, note this is not identical to what is in nut.txt A frame in a stream is a keyframe if and only if all of the following are true * Decoding can successfully begin using any standard compliant decoder without requireing access to prior frames. * Begining decoding instead at a subsequent frame would cause fewer frames to be decoded successfully. successfull decoding here means that the specific frame is virtually identical to what one would get if decoding would have begun from the very first frame Note, "virtually identical" here is used instead of "identical" to allow codecs which converge toward the same output when started from different points but dont neccessarily ever reach exactly identical output. (copied from nut.txt Every frame which is marked as a keyframe MUST be a keyframe according to the definition above, a muxer MUST mark every frame it knows is a keyframe as such, a muxer SHOULD NOT analyze future frames to determine the keyframe status of the current frame but instead just set the frame as non-keyframe. ) [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB it is not once nor twice but times without number that the same ideas make their appearance in the world. -- Aristotle