[FFmpeg-devel] Question: Indeo frame types

Maxim max_pole
Sun May 24 17:32:51 CEST 2009


Hello guys,

I'd like to profit from your experience about video codecs and ask to
help me with understanding the indeo5/4 frame types. The case seems to
be abit complicated because there is one more frame type than the
standard MPEG set.
Indeo5 supports the following frame types:

0 - classic key frame (I-Frame)
1 - predicted, type 1
2 - looks like B-Frame, used only in the scalability mode
3 - predicted, type 2
4 - null

The problem is that the both frame types 1 and 3 (predicted, type 1 and
3) are different from each other! There are two common frame sequences
in indeo5:

1st sequence:
0, 3, 1, 3, 1, 3, 1 and so on

2nd sequence:
0, 1, 1, 1, 1, 1, 1, 1, and so on

The buffer switching algorithm acts like this (assume that buf1 and buf2
are swapped):

1st sequence:
0 - out -> buf1, ref -> no
3 - out -> buf2, ref -> buf1
1 - out -> buf2, ref -> buf1
3 - out -> buf1, ref -> buf2
1 - out -> buf1, ref -> buf2

2nd sequence:
0 - out -> buf1, ref -> no
1 - out -> buf2, ref -> buf1
1 - out -> buf1, ref -> buf2
1 - out -> buf2, ref -> buf1

As we can see from the buffer switching above frame type 3 is always
coded relatively to either key frames (type 0) or frame type 1. It's
NEVER used as reference for any other frames.
Frame type 1 is always coded relatively to either type 0 or previous type 1.
So the frame type 1 looks for me like a standard P-Frame while type 3 is
unknown. I think it should be a kind of backward predictive one. It can
be unlikely a B-Frame because such frames are usually interpolated
(averaged) between two prediction frames.
Further frames of type 3 can be easily discarded from a sequence without
the prediction gets damaged...

Any suggestions about the frame type 3?
Do you have ever seen smth like this?

Regards
Maxim



More information about the ffmpeg-devel mailing list