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

Radek Czyz radoslaw at syskin.cjb.net
Fri Jul 13 06:49:13 CEST 2007


Hi,

An intra detection can change B-frame to P-frame so that the *last* 
frame of *old* scene is a P-frame. Otherwise it'd be a B-frame 
referencing from I-frame of new scene, ie with useless reference.

I'm not sure if this is what you mean, as the pattern you quote looks 
completely wrong.

Radek

Limin Wang wrote:
> 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
> 
> 
_______________________________________________
x264-devel mailing list
x264-devel at videolan.org
http://mailman.videolan.org/listinfo/x264-devel


More information about the x264-devel mailing list