I developed something that I currently call ANS. It's basically a tool for developers in form of a little library that helps designing noise shaping filters and contains the filter implementation itself as a noise shaper. I had the idea for ages but never got motivated enough to actually try. Since lossyWAV seems to draw enough attention and could also benefit from ANS I started coding this library.
The primary purpose of this thread is to draw other developers' attentions to this and discuss its possible uses. This could turn out as another motivator to further the project. The uses I can think of are
- high rate steganography
- improved lossyWAV
- improved lossy-only mode of WavPack
- any other "transform-less" codec
To be honest I do think transform-less lossy codecs have their purpose and fill a small gap between something like MP3 and FLAC. It's the "I think lossless coding is a waste of space but I'd like to have enough headroom"-gap. Being "transform-less" of course has its advantages and disadvantages like lower algorithmic delay, lower decoding complexity, worse diagonalization. The lossyWAV application also has its advantages and disadvantages compared to a dedicated codec like WavPack's lossy mode. But they all could share the same psychoacoustic model and noise shaping code.
Joining forces is probably the best thing to do as many people's sparetime is limited.
Opinions?
Edit: Technical details are following:
I decided to try a frequency-warped all-pole filter in its lattice structure which is what Edler & Schuller used for their "new paradigm codec". The rationale behind this is that all pole filters are easily designed without major spectral distortions in areas where the response is higher. Frequency-warping is used to exploit the fact that at lower frequencies the masking curve usually changes more quickly with respect to frequency than at higher frequencies (wider critical bands). The lattice structure is especially suited for interpolating filter parameters. The difference to what Edler & Schuller described is that this library implements the filter as a noise shaper instead of a pre/post filter pair.
Cheers,
SG
