|
![](/i/fill.gif) |
Invisible wrote:
>>> I'm not really comprehending the significance of the distinction
>>> between P frames and B frames...
>>
>> P frames are differences from the previous I frame.
>>
>> B frames are differences from the preceding and following frames,
>> whether they be I or P or B.
>>
>> In other words, you can't play a B frame at all without all the data
>> between one I frame and the next.
>
> I get that there are full frames and difference frames. I'm just not
> really understanding why there are two different kinds of difference
> frames...
One difference frame (P) is a difference from the past. They're
"progressive" changes since the last full frame.
The other difference frame (B) is a difference from the past *and* the
future. In other words, if you have B-frames, the decoder has to buffer
several uncompressed frames, reading ahead in the stream past where it's
actually playing. B frames have forward references to the content of
frames that come later in the stream. You can't play a B-frame as soon
as you read it. You have to keep reading to the next I-frame [1], then
decompress the B-frames you've buffered up.
[1] Maybe it's P frames you read ahead to. It's been years since I
looked at the details.
> Yeah, I figured that out a long time ago. ;-) Presumably otherwise you'd
> only have one I frame, right at the very start.
Well, it also lets you tune in to the middle of a program. Remember, it
was for "video on demand" all this got invented. Otherwise you'd just
mail an analog tape.
--
Darren New / San Diego, CA, USA (PST)
Post a reply to this message
|
![](/i/fill.gif) |