Bit Rate Reduction
From Wikipedia, the free encyclopedia
- This article is about the compression scheme used on the SPC-700. For other methods of bit-rate reduction, see data compression.
Bit Rate Reduction, or BRR, also called Bit Rate Reduced, is a name given to an audio compression method used on the SPC700 sound coprocessor used in the SNES. The method is a form of ADPCM.
BRR compresses each consecutive sequence of 32 16-bit PCM samples into a block of 9 bytes. From most to least significant, the first byte of each block consists of four bits indicating the range of the block (see below), two bits indicating the filter (see below), and two bits of control information for the SPC700. The remaining eight bytes consist of 16 signed 4-bit nibbles which correspond to the 16 samples, packed in a big-endian manner.
[edit] Decompression algorithm
A nibble n in a block with filter f and range r should be decoded into a PCM sample s in the following manner:
- If f=0, s=2r n.
- If f=1, s=2r n + (15/16) s′.
- If f=2, s=2r n + (61/32) s′ - (15/16) s″.
- If f=3, s=2r n + (115/64) s′ - (13/16) s″.
Here, s′ and s″ are the last-output and next-to-last-output PCM samples, respectively.