[NUT-devel] rfc drafting

Michael Niedermayer michaelni at gmx.at
Sat Nov 17 16:55:00 CET 2007


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/nut-devel/attachments/20071117/04ca4aff/attachment.pgp>


More information about the NUT-devel mailing list