|
![](/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) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> Maybe here's something you know: If Xvid and DivX are MPEG4, why do you
> need a special codec to decode them? They're either outputting standard
> mpeg4 or they aren't, yes?
AFAIK both codecs can play most videos made by the other. However, one of
them might be implementing something of the mpeg4 standard the other isn't.
(AFAIK neither one implemens the *full* mpeg4 standard.) There might also
be some codec-specific additions as well.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New wrote:
> Maybe here's something you know: If Xvid and DivX are MPEG4, why do you
> need a special codec to decode them? They're either outputting standard
> mpeg4 or they aren't, yes?
I once changed the FourCC of an AVI file from one MPEG4-based codec to
another. It *mostly* worked.
Post a reply to this message
|
![](/i/fill.gif) |