Log in

View Full Version : What is 'local bitrate'?


yaous
7th January 2010, 07:06
You have to distinguish average bitrate from local bitrate. vbv_maxrate
+ buffer size are how you control local bitrate.

what 'local' means?

Blue_MiSfit
7th January 2010, 07:59
Local means average bitrate / a period of time.

For example, 9000kb / one second.

If you are using x264, and want to cap local bitrate to 9000kb each second, then set --vbv-maxrate to 9000 and --vbv-bufsize to 9000. Therefore, the buffer allows for a max bitrate per second of 9000kb.

Note, in all these cases, kb == 1 kilibit, not kilobytes (8 fold difference!!)

Applications like these (VBV) are useful for managing huge bitrate spikes, or for doing CBR.

For example, you could have a total average bitrate of 4.5mbps, but allow for a max bitrate of 9mbps. VBV is the magic that makes this happen :)

~MiSfit

Poutnik
7th January 2010, 08:24
Note, in all these cases, kb == 1 kilibit, not kilobytes (8 fold difference!!)
~MiSfit

In context of video encoding bitrates,
is used kib (1024) or kb(1000) ? ( I mean value, not abbr.)

In some past XviD topics I have read the latter.

yaous
7th January 2010, 19:00
thanks for reply :)

and one more question..
Local means average bitrate / a period of time.

For example, 9000kb / one second.

If you are using x264, and want to cap local bitrate to 9000kb each second, then set --vbv-maxrate to 9000 and --vbv-bufsize to 9000. Therefore, the buffer allows for a max bitrate per second of 9000kb.

Note, in all these cases, kb == 1 kilibit, not kilobytes (8 fold difference!!)

Applications like these (VBV) are useful for managing huge bitrate spikes, or for doing CBR.

For example, you could have a total average bitrate of 4.5mbps, but allow for a max bitrate of 9mbps. VBV is the magic that makes this happen :)

~MiSfit

then, 'a period of time' means the period of time between the same buffer fullness?

sorry for my poor english..



++ how to edit Title?

LoRd_MuldeR
7th January 2010, 19:29
'a period of time' is whatever you define!

The 'average bitrate' of a video is defined as 'total_size / duration'. If you calculate the average bitrate only for a short part (period) of the video, then you get a 'local (average) bitrate'.

This may be one frame, one second, one GOP or whatever ;)

VBV assumes that the data arrives at the buffer with a constant rate (the network bandwidth, the disc read speed, etc) and that the decoder takes the data from the buffer at a variable rate.

So the actual 'local' video bitrate (the buffer outflow) is allowed to fluctuate, as long as the buffer never runs empty ("buffer underflow"). That's exactly what VBV assures...


++ how to edit Title?

Hit the "Edit" button of your first post in this thread. Then go "Advanced" and you'll see...

yaous
7th January 2010, 21:14
as far as I understand..

1) bitrate=2000, maxrate=2000, buffer size=4000
2) bitrate=2000, maxrate=3000, buffer size=4000

these two cases are both VBV-compliant and

local bitrate can exceed maxrate within the VBV constraints.

right?

then, according to this post
http://forum.doom9.org/showthread.php?p=1356952#post1356952

what is the difference between CBR and capped VBR?

can I say that capped VBR is a kind of CBR?



Hit the "Edit" button of your first post in this thread. Then go "Advanced" and you'll see...
thanks:)

LoRd_MuldeR
7th January 2010, 22:20
as far as I understand..

1) bitrate=2000, maxrate=2000, buffer size=4000
2) bitrate=2000, maxrate=3000, buffer size=4000

these two cases are both VBV-compliant and

If you specify both, VBV MaxRate and VBV BuffSize, then VBV will be used. Hence the output will be VBV-compliant regarding those VBV parameters.

local bitrate can exceed maxrate within the VBV constraints.

right?

Sure. If the 'local' bitrate exceeds the VBV MaxRate, then the buffer outflow is bigger than the buffer inflow at this point of time.

It only means that the buffer filling level will decrease for a short moment. This is perfectly valid, as long as the buffer doesn't run empty.

For example the buffer filling level can decrease in a "complex" scene and it can increase again in the subsequent "static" scene.

then, according to this post
http://forum.doom9.org/showthread.php?p=1356952#post1356952

what is the difference between CBR and capped VBR?

can I say that capped VBR is a kind of CBR?

CBR means that "--bitrate" and "--vbv-maxrate" have the same value.

Blue_MiSfit
8th January 2010, 05:26
Exactly! Well, put Lord_Mulder!

This is CBR.

I had thought for a looooong time that CBR literally meant each frame got the same number of bits. This is not always the case, and this was a major revelation for me - see my sig :)

~MiSfit

yaous
8th January 2010, 09:54
In a word..

CBR : VBV used, bitrate = maxrate
Capped VBR : VBV used, bitrate < maxrate

and in my example above, the only difference between CBR and Capped VBR is that

capped VBR will(may) be more constant 'quality' than CBR because of higher maxrate.



is that correct?

LoRd_MuldeR
8th January 2010, 16:31
In a word..

CBR : VBV used, bitrate = maxrate
Capped VBR : VBV used, bitrate < maxrate

Yes.

and in my example above, the only difference between CBR and Capped VBR is that

capped VBR will(may) be more constant 'quality' than CBR because of higher maxrate.

Well, the higher VBV MaxRate potentially allows better quality, but in reality you cannot choose VBV MaxRate and BuffSize freely.

It's usually pre-defined by what your hardware player requires or what your network can handle.

I would probably go with VBV + CRF, which will give a VBV-capped quality-based encode. VBV now works fine with 1-Pass CRF mode!