# Bitrate peeling

Bitrate peeling is a technique used in Ogg Vorbis audio encoded streams, wherein a stream can be encoded at one bitrate but can be served at that or any lower bitrate.
The purpose is to provide access to the clip for people with slower Internet connections, and yet still allow people with faster connections to enjoy the higher quality content. The server automatically chooses which stream to deliver to the user, depending on user's connection speed.
As of 2005, Ogg Vorbis bitrate peeling existed only as a concept as there was not yet an encoder capable of producing peelable datastreams Bounties - XiphWiki.

## 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 (and bitrates) are all broadcast, with the higher quality stream used if possible, with the lower quality streams fallen back on if not.

### Lossy and correction

A similar technology is to feature a combination of a lossy format and a lossless correction; this allows stripping the correction to easily obtain a lossy file. Such formats include MPEG-4 SLS (scalable to lossless), WavPack, DTS-HD Master Audio and OptimFROG DualStream.

### SureStream example

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 (16 + 32 + 96). 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 (maybe 22–24 kbit/s), 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 (in this case it would be around 20–24 kbit/s). This so-called peeling process is different from transcoding because transcoding uncompresses the file and recompresses it (a computing-intensive process), whereas the peeling process removes excess bits from the stream without more processing.
Aside from the obvious space-saving advantage bitrate peeling allows for smaller steps in the delivery bitrate (the end user will see the file in the highest quality possible for their bandwidth).
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.