Quote:
One question: what do the "I," "B," and "P" stand for?
|
I-frame = Intraframe
P-frame = Predicted frame
B-frame = Bi-directional frame
assuming you meant more then just the words,
I frame = whole frame (i.e. like the pictures that make up the film
a P frame and B frame are almost the same thing, a P frame uses the previous frame and only tells the video processor what to change, to get the new one, and B frame will also have info on the next one.
for example let's say we have the three frames of a film of a guy walking F1=upright, F2 = leg bends to take step and F3 is the guy after the step
F1
|
|
F2
|
|>
F3
|
/\
if F2 is an I frame it would have the whole image

|
|>
or
1.1=
2.1 = |
3.1 = |
3.2 = >
if F2 is a P-frame it will only have
add > to third row of F1
i.e.
3.2 = >
if F2 is a B frame then
add > to third row of F1; replace |> by /\ for row 3 for F3
i.e.
3.2 = >
3.1=/
3.2=\
so your decoder = gets F1
|
|
then it uses the info in the P or B frame to make F2
but it can make a mistake and get
|
| >
or
|
>
which will cause drift and jitter
that is why you need i frames every so often (to correct the decompressing artefacts caused by miscalculations)
but (to make it simple and go back to the initial discussion
F2 as a P frame would only need info on that one element (right leg) while if it is an I frame it would need 4. So a lot more info would be needed to have an I frame then a P (or B) frame, and the encoder will decide to use I, P or B depending on what is allowed and what is most compressible. That is why I frames end up being extremely compressed and why videos use P and B frames to get reasonable BW.
now why P and B? P are good for play but B is needed for stuff like reverse (ergo the name bi-directional)