View Full Version : Flat surface of CPB graph
titlis
11th October 2011, 07:15
http://img850.imageshack.us/img850/1520/123esq.jpg
I encoded some short video clip,
settings like --vbv-bufsize 200 --vbv-maxrate 400 --nal-hrd vbr
and analyze it using Elecard Buffe Analyzer,
and then I got this kinda graph...
Shouldn't buffer be filled at their maxrate specified always?
or is there any other restrictions in vbv model?
kieranrk
11th October 2011, 10:28
No, because you are using --nal-hrd vbr. If you want a constant input bitrate use --nal-hrd cbr.
titlis
11th October 2011, 10:40
http://img4.imageshack.us/img4/5205/cbrzz.jpg
Thanks for the reply,
but even if i use --nal-hrd cbr, i got same kinda flat area....
or is there somemore option needed to force constant inflow rate?
shon3i
11th October 2011, 11:42
If you think that graph need to look like MPEG2 or VC-1 then you wrong about, because H264 have different buffering model, and here is showed HRD model
titlis
11th October 2011, 12:03
Then, where could I find the full explanation of H.264/AVC buffering model?
Spec is too disastrously complicated for me..:eek:
titlis
11th October 2011, 15:46
Ah.... I see.... mp4 output format doesn't imply --nal-hrd cbr....
maybe mp4 doesn't support it?
now I get sharp graph like sawtooth...
But I don't think it's efficient...(padding bits seems meaningless to me, right?)
then, why vbr vbv model looks rather irregular?
AFAIK, Coded Picture Buffer should be filled constantly at their maxrate specified for max efficiency,
and actually it doesn't... why?
Juce
11th October 2011, 21:45
Do you use --crf or --bitrate?
titlis
12th October 2011, 03:56
I used Automated 2-pass mode in MeGUI
Dark Shikari
12th October 2011, 05:44
The graph shows the fullness of the buffer, not the rate at which it's being filled. "--nal-hrd cbr" means that it will never cap out at the top, because that would imply a VBV overflow (fill rate less than --vbv-maxrate) which is not allowed with CBR.
titlis
12th October 2011, 06:31
The graph shows the fullness of the buffer
If this graph show the buffer fullness, why buffer has flat surface still then?
I mean, flat surface means "stop buffering" then why it does?
If it's for overflow protection, why it stops buffering even if the buffer isn't completely full?
or overflow doesn't mean only the buffer blow out?
( If I say something wrong, please correct me... )
Dark Shikari
12th October 2011, 09:21
If this graph show the buffer fullness, why buffer has flat surface still then?What do you mean, "the buffer has flat surface"? The line at the top is the maximum buffer fullness, not any real buffer state. The state of the buffer is the black line.
If it's for overflow protection, why it stops buffering even if the buffer isn't completely full?
or overflow doesn't mean only the buffer blow out?You clearly have no idea how a leaky bucket buffering model works in general, let alone the standard MPEG VBV model. Please read up on the subject before trying to interpret graphs of it. There's quite a bit of information around; the forum search might help you.
titlis
12th October 2011, 09:29
Thanks :)
I should try searching forum and google...
Manao
12th October 2011, 21:32
Don't be too harsh on titlis. I'm pretty sure he's got the correct idea of how a VBV/CPB works. It's just that the way Elecard's Analyser represent the CPB state precludes any sane understanding of how it works. One would expect to see a graph that looks like a saw. It's what happens in CBR with this analyser. But in VBR, instead of showing a saw-like graph that saturates when the CPB (encoder side) is empty, Elecard show a CPB occupancy that doesn't get emptied permanently, but by small bursts. I'm pretty sure it's NOT the occupancy x264 is using internally.
As for not understanding Annex C of the specs, I wouldn't worry, that just means you still have your sanity.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.