[x264-devel] [PATCH] disable bframe adaptive can't work

Limin Wang lance.lmwang at gmail.com
Fri Jul 13 06:38:00 CEST 2007


Hi Loren,

> > After disable adaptive B-frame decision, I can't get conservitive B-frames
> > between I and P by --bframes. Attached is a patch to fix it, please
> > review it.
> 
> Before you go any further into trying to fix it, can you specify 
> what's wrong and some conditions to reproduce the problem? Because I 
> don't see anything wrong with the behaviour as it is now.

My problem is I want to encode frame by below mode by disable adaptive 
B-frame mode:
IBBBPBBBPBBBPBBBP...IBBBP

But without the previous fix, it'll get below result, too few B-frame:
IBBBPBBBPPPPPPPBPPPPPPB...

> 
> Yes, scenecut detection can modify the number of consecutive B-frames. 
> This is intentional. There's no point in using bidirectional prediction 
> across a scenecut, since any one frame will be on one side or the other of 
> the scenecut, and can only benefit from prediction from frames on that 
> side.
> You might complain that the scenecut detection algorithm depends on the 
> number of B-frames (in that it depends on the amount of change between 
> frames, and a pair of frames that are temporally farther apart will have 
> more change), which can (in certain high-motion scenes without real 
> scenecuts) lead to scenecut triggering when given N consecutive B-frames 
> but then renouncing its decision and allowing N-1 B-frames to not be a 
> scnenecut. But while this may not be the intuitive meaning of 
> "non-adaptive B-frames", afaict it is the optimal behaviour: you don't 
> want to use so many B-frames that it forces the non-B-Frames to be intra.

I can't understand why scenecut will force non-B-frames to P-frame instead of
intra frame? At least by observing the encode result, I have such feel.

Thanks,
Limin
_______________________________________________
x264-devel mailing list
x264-devel at videolan.org
http://mailman.videolan.org/listinfo/x264-devel


More information about the x264-devel mailing list