VideoHelp Forum
+ Reply to Thread
Results 1 to 8 of 8

Thread: VBV buffer size

Thread
  1. Member
    Join Date: Nov 2002
    Location: Toronto
    Search Comp PM
    Hi,

    I am not sure I completely understand the compatibility issues related to the VBV buffer size.

    A MPEG video stream encoded using a VBV buffer of 112 kB (e.g. SVCD or CVD), is compatible to a decoder that demands a VBV buffer of 224 kB (e.g. DVD), but not the other way around ... right?

    Also, is there a significant impact of the VBV buffer size on image quality?

    Best regards,
    Cosmin
    Quote Quote  
  2. Member DJRumpy's Avatar
    Join Date: Sep 2002
    Location: Dallas, Texas
    Search Comp PM
    Changing the VBV buffer setting will have no impact on quality. Leave it on the default setting for the media your encoding to, and save yourself the grief.
    Impossible to see the future is. The Dark Side clouds everything...
    Quote Quote  
  3. Member
    Join Date: Nov 2002
    Location: Toronto
    Search Comp PM
    Originally Posted by DJRumpy
    Leave it on the default setting for the media your encoding to, and save yourself the grief.
    Ok, but if I want, for example, to make a half-D1 MPEG both for CVD (that requires 112 kb) and DVD (that requires 224 kb), should I use 112 (which is accepted by a decoder that requires 224), or should I use 224 (which is accepted by a decoder that requires 112)?

    In other words, in what direction is the compatibility going?

    Also, if I am about to merge two MPEGs coming from different sources, having different VBV buffer size, which decoder is supposed to accept the result? The decoder that requires the smaller buffer size, or the decoder that requires the bigger buffer size? [Assuming that this is possible...]

    Another question is about displaying this buffer size (assuming that the MPEG comes from an unknown source), and changing it without reencoding the MPEG. Can this be done (at least in theory) with a specialized tool, only by hacking the MPEG stream?
    Cosmin
    Quote Quote  
  4. Member DJRumpy's Avatar
    Join Date: Sep 2002
    Location: Dallas, Texas
    Search Comp PM
    Assuming you are taking an MPEG-2 that was encoded for CVD, and just moving over to DVD (with resampled audio of course), then stick with the CVD VBV setting.

    If you were to change the encoded VBV setting, without actaully re-encoding the MPEG, you would run a serious risk of hosing the decode process. The VBV buffer size tries to maintain a constant output to the decoder engine (visualize pooring water through a funnel). Changing it can result in buffer over/under runs, which in turn can stall, or completely kill the decode process.
    Impossible to see the future is. The Dark Side clouds everything...
    Quote Quote  
  5. Member
    Join Date: Dec 2001
    Location: San Jose, CA
    Search Comp PM
    A larger VBV buffer size will usually improve quality in high action sequences, but will cause higher bitrate spikes.

    Also, in most encoders, the vbv buffer size is specified in multiple of 16Kbits (2KB), so vbv_buffer_size=112 is actually 224KB (the maximum for DVD).
    For SVCD, vbv_buffer_size should in theory be set to 56 (112KB), though most players will work just fine with a VBV=112, since they play DVDs as well.
    Quote Quote  
  6. Member
    Join Date: Nov 2002
    Location: Toronto
    Search Comp PM
    Ok, Sulik, thanks!
    Cosmin
    Quote Quote  
  7. Member
    Join Date: Nov 2002
    Location: Toronto
    Search Comp PM
    Originally Posted by DJRumpy
    Assuming you are taking an MPEG-2 that was encoded for CVD, and just moving over to DVD (with resampled audio of course), then stick with the CVD VBV setting.
    Thank you, too, DJRumpy. I searched the net and found almost nothing about the VBV buffer size. I'll take your word for granted, that I can just take a CVD with half of the VBV size, and put it on a DVD (with the resampled audio).

    Originally Posted by DJRumpy
    If you were to change the encoded VBV setting, without actaully re-encoding the MPEG, you would run a serious risk of hosing the decode process. The VBV buffer size tries to maintain a constant output to the decoder engine (visualize pooring water through a funnel). Changing it can result in buffer over/under runs, which in turn can stall, or completely kill the decode process.
    I thought that a change in one direction might be ok; I did not realize that a change in either direction can be harmful.
    Cosmin
    Quote Quote  
  8. Member DJRumpy's Avatar
    Join Date: Sep 2002
    Location: Dallas, Texas
    Search Comp PM
    Sulik, changing the VBV buffer size will not affect quality in any way. The amount of bitate used by your video is set in stone during the encoding process by your AVG, MIN, and MAX values (or just AVG for CBR). It can not be changed on the fly by some magical setting to make your video better. The VBV curcuit controls the encoded stream to the encoder, ensuring it always outputs a constant stream for decoding to the encoder. It does this by throttling back on the mpeg input, if the decoder falls behind (say during a complex scene), or when it gets ahead (think 'On Golden Pond'). I used the funnel visual, because it works the best. Think of the VBV circuit as the person pooring the water. It maintains a constant amount of 'water' in the upper part of the funnel. No matter how big you make the funnel, you still get the same water out. It's not purified in the process

    Increasing the VBV buffer size would in essense give you a bigger 'funnel'. The problem here is that a larger funnel will increase the amount of data your dvd chipset must decode. If it is expecting a maximum amount of data for the medium its working on (CVD in this case), and you start feeding it DVD bitrates, it can choke up. Pushing more data doesn't make it look better. It just makes the chipset work harder to decode the info it's given.

    If you make the VBV buffer too small, it can decode everything in the 'funnel' so quickly, that it runs out of 'water'. When this happens, your video goes bye bye.

    Just leave the VBV buffer on the default setting. Increasing, or decreasing it will only open the possiblity for buffer under, or over runs. You would be better served spending your time learning to improve your encodes, with settings that will actaully yield results
    Impossible to see the future is. The Dark Side clouds everything...
    Quote Quote  



Similar Threads