
History and characteristics of the MPEG standards. Part 4

What are the differences between CBR, VBR and ABR modes? (applied to the Lame encoder)

Before starting the conversation, let’s clarify two details:
1. MP3 encoding occurs block by block: the encoded file is divided into frames (frames) with the same interval, each frame is encoded and written to the output stream; therefore, the output stream also has a frame structure.
2. Frames cannot be encoded at any bit rate, but only at one of the standard MPEG1 Layer III bit rates listed in the table: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320. The standard does not provide encoding at any intermediate bit rate (“free format”).
Introduction
People using VBR in Lame generally argue this with the phrase, “I want to get constant quality, not constant bitrate. In fact, in music there are simple passages, for which 128 Kbps is enough (for example, pauses between songs), and there are also complex passages, in which a person with good hearing, a good audio card and other audio equipment. audio will hear compression. defects even at 320 Kbps / sec. In fact, such an argument is not entirely valid.
CBR
Even in CBR mode, the mp3 encoder can reallocate bits over time, emphasizing more or fewer bits during complex or simple passages, thus improving the overall sound quality. This bit reassignment is done through the so-called bit deposit: during the encoding of simple passages, the encoder spends not the entire user-specified bit rate on them, but only about 90%, about 10% is Store in bin to code difficult spots (bin is empty initially). When encoding complex passages, the encoder will use all 100% of the specified bit rate and add extra bits from the bucket (if any, that is, if the bucket is not empty). Unfortunately, according to the standard, the size of the tank is limited. This means that if a single signal lasts long enough, the tank builds its volume up to certain maximum allowed limits, and then the encoding continues using all 100% bit rate. And the opposite situation: if a complex signal lasts long enough, all the saved bits are taken from the repository (gradually) and then encoding is done using now all 100% of the bit rate.
ABR: Explanation
One could say that the reservoir does a good job with its main function – accumulating “extra” bits during simple passages and issuing them as additional bits when encoding complex passages, if not for one “but”: it has a finite and, moreover, Very limited in size, which means that it can only be stored up to certain limits and consequently can also be removed until the tank is empty. It is to eliminate this major drawback of the tank that the ABR was developed.
The main difference between ABR and CBR is that in CBR all frames must be the same size (that is, the bit rate for all frames must be the same), but in ABR this limitation is removed, respectively, there is an opportunity to use an almost infinite tank instead of the standard, very limited in size. “virtual” reservoir. Does it look like this.



