请看下面一段话(摘取自
http://edu.bnhof.de/pipermail/xvid-devel/2003-January/001942.html, xvid.org mailing list):
> > d) Set B-frames only when helpful
> >
> > A clip can benefit very much from Bframes, or the results can be horrible.
> > In one of the VQEG test clips, I had a PSNR drop from 46.05 to 41.40
> > (-4.95db) just because of activating 1 bframe! Average(!) quantizers
> > jumped from 2.26 to 5.22. But there is also a clip where PSNR was
> > increased from 34.3 to 35.5 (+1.2dB). XVID already has a dynamic test for
> > this, but it's a very simple check...
> >
> > Proposal #4: Implement a better criterion for dynamic bframes.
> > (first we have to find one, but if necessary, just use brute force)
>
> I'm not sure if the benefits of b-frames can be measured by simple PSNR
> comparisons: Of course the PSNR of bframes is generally lower than if we had
> coded a pframe instead (simply because bframe quant is higher), however
> bframes' lower quality don't influence the remaining picture sequence
> (because bframes are not used as reference). If we now assume normal viewing
> conditions (a video played back at ~25 fps), the quality decrease when a
> bframe is presented for only a short time (1/25s) might not be noticed at
> all.
In a typical IBPBPB GOP half of all frames are B-frames. So with the same
argument as yours I'd say, quality of all other frames doesn't matter,
because they are presented only for a short while.
I'd say the "weight" of B-frames quality for _viewing_ is the same as of
the others. For encoding of error it is not, but that's taken care of by
higher quant for Bframes and ratecontrol. Average quant might not be a
good measurement in bframes sequences, but average PSNR I'd say is.
Btw. in later tests I noticed, that ffmpeg's overall quality with Bframes
get much better when vhq is enabled in ffmpeg, so their mode decision in
bframes might simply be very bad. Still, its a fact that sometimes
bframes are beneficial and sometimes they are not, and I really have to
adapt the test-script to XVID.
> So for a fixed quant encoding with maybe 5 - 10 bframes/sec, the
> perceived video quality might stay the same while we have a noticable
> decrease in file size at the same time.
5-10 bframes per second is rarely the case, unless you already have a
dynamic mode where bframes are supressed. Typical should be 12.5-15
bframes per second (maxbframes=1), or even 18-20 (maxbframes=2).
> Of course there might be video clips, where b-frames are really doing harm
> (and not only PSNR-wise). So for example if a PBP sequence (viewing order)
> is not significantly smaller than a corresponding PPP sequence, bframes
> should of course not be used (well, I guess I don't tell you anything new
> here ;-))
I would say: Let's take ratecontrol take care of that (fix quant encoding
is difficult for bframes, espcially because their quant isn't the one you
choose as fixed) and watch the result.
所以,能不能请POPGO的制作人员们把这些因素都考虑到呢?