BitratePeeling is a technique used in Ogg Vorbisaudio encodedstreams, wherein a stream can be encoded at one bitrate but can be served at that or any lower bitrate. Bitrate Peeling is similar in overall effect to RealNetworks' technology called "SureStream", which basically creates a single media clip that contains multiple bitrates. The purpose is to provide access to the clip for people with slowerInternet connections, and yet still allow people with faster connections to enjoy the higher quality content. The serverautomatically chooses which stream to deliver to the user, depending on user's connection speed. , OggVorbis bitrate peeling existed only as a concept as there was not yet an encoder capable of producing peelable datastreams . An experimental implementation of bitrate peeling can be found . However, re-encoding files at a lower bitrate will preserve more quality than this experimental bitrate peeler.
Difference from other technologies
The difference between SureStream and Bitrate Peeling is that SureStream is limited to only a handful of pre-defined bitrates, with significant difference between them, and SureStream encoded files are big because they contain all of the bitrates used, while Bitrate Peeling uses much smaller steps to change the available bitrate and quality, and only the highest bitrate is used to encode the file/stream, which results in smaller files on servers. A related technique to the SureStream approach is hierarchical modulation, used in broadcast, where severally different streams at different qualities are all broadcast, with the higher quality stream used if possible, with the lower quality streams fallen back on if not.
A SureStream encoded file is encoded at bitrates of 16 kbit/s, 32 kbit/s and 96 kbit/s. The file will be about the same in size as three separate files encoded at those bitrates and put together, or one file encoded at the sum of those bitrates, which is about 144 kbit/s. When a dial-up user has only about 28 kbit/s of bandwidth available, the Real server will serve the 16 kbit/s stream. If the dial-up connection is of higher quality, and maybe about 42 kbit/s is available, the server will automatically switch to the 32 kbit/s stream. A DSL or cable Internet user will be served the 96 kbit/s stream. This looks good, but even though the user with 28 kbit/s can use a higher bitrate / higher quality stream, such thing can't be done with SureStream, unless the encoded file contains such a bitrate. This is where Bitrate Peeling comes into play.
Bitrate Peeling example
Contrary to SureStream, Bitrate Peeling requires only the highest bitrate to be used when encoding a file/stream, which is 96 kbit/s in this case. The obvious benefit is much smaller space on a server required by such a file. An additional feature of Bitrate Peeling is a much finer tuning of available bitrate/quality. If a dial-up user with 28 kbit/s available bandwidth connects to an Ogg Vorbis file/stream, the server will "peel" the original 96 kbit/s file/stream down to just below available bandwidth. This "peeling" process is different from transcoding because transcoding uncompresses the file and recompresses it, whereas the peeling process "cuts the fat" by removing excess bits from the stream without using much processor time. Aside from the obvious space-saving advantage Bitrate Peeling allows for smaller steps in the delivery bitrate. These benefits are only theoretical, as the only Vorbis peeler available is still in experimental state and produces file qualities inferior to what transcoding the higher bitrate file to a lower bitrate would.
Comparison with other progressive encodings
Bitrate peeling is theoretically possible, and is implemented in some other formats, notably JPEG 2000, JPEG progressive encoding, and Scalable Video Coding. The reason that it is not available in Ogg Vorbis is that current encoders do not organize the code-stream to have progressive accuracy, thus peelers cannot tell which data is more or less important. See also the Adam7 algorithm used in PNG interlacing.