On Fri, Nov 08, 2002 at 03:52:48PM +0000, Dominik Szczerba wrote:
[Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
Because they do NOT help compression ratio/quality!
on divx forum I read different oppinions. (_sigh_)... and be wise here...
The main benefits of B frames are that they can be skipped when decoding on slow systems, providing "temporal scalability". With only I/P frames, you can't skip decoding any frames or the picture will be corrupt until the next I frame. Also, B frames can be direct rendered to video memory for a performance boost when decoding. With DIVX (which is a different encoder implementation from lavc), B frames may help compression slightly. Presently in lavc they seem to increase the file size slightly when constant quality is used, IIRC. You can feel free to check this yourself though. In general, B frames could help if the encoder made very intelligent decisions about where to use them (e.g. for fading in to a new scene from black), but just using them all over the place seems to be a bad idea to me.
RTFM.
where, please, where exactly
Hmm, good question. s/M/LA/ perhaps? (LA=list archive). Sorry about that.
other reasons one may sometime want to use B frames, but IMHO they're best avoided.
what is side effect of Bframes?
See above. One more "side effect" is that you have to decode an extra P frame ahead before the B frames can be decoded, which can actually hurt performance when decoding. For example if your frame pattern is IBPBPBPBP...BPBI, then you have to decode: 1 frame (I) to dsplay the first (I) frame. 2 frames (P then B) to display the second (B) frame. 0 frames to display the third (P) frame. etc. If the cpu is barely fast enough to decode and display a single frame in 1/24 of a second, then video will appear choppy or B frames will have to be dropped (which will result in lower fps which also looks choppy). Rich