wavelet-audio ยป Overview

Wavelet-audio is my experimental lossless audio codec based on wavelet compression. It uses biorthogonal (4,2) "B-spline" wavelet described in "Ten lectures on wavelets" book by Ingrid Daubechies. At first it decorrelates audio channels (it supports up to 2 channel by now) using following formula: r' = r-l, l'=(r+l)/2, where l and r are samples in left and right channels. Then wavelet transform of each channel is calculated and each subband is coded with adaptive Rice code (the parameter of Rice code is calculated using running average). Compress ratio is 5-7% worse compared to FLAC codec. Wavelet-audio operates on audio blocks (4096 samples by default, which seems to produce results with the best compression). Block sync code is written before each block, so seeking and random access is possible. Metadata blocks are written before any actual audio data. The only metadata block supported by now is streaminfo. It contains basic information about audio stream, e.g. sample rate and bits per sample.