[Flac-dev] floating point
Didier Dambrin
didid at skynet.be
Fri Aug 7 21:48:28 PDT 2009
Yes, WavPack is second in my list.
FLAC doesn't preserve every chunk? I thought it did. I only gave a quick try
but it seemed to have preserved even the most obscure chunks.
Let me check: it even seems to preserve "MIDI note associated to marker",
which is a very unknown metadata used by SoundForge (& even defined in a
buggy way), so I assumed it was saving them transparently.
Btw, what do you think of this?
http://www.hydrogenaudio.org/forums/index.php?s=95a0210a0ba3304eca44ac3bd57990cb&showtopic=73895
(didn't know where to post this, that forum seemed related)
Brian wrote in a previous answer: "Another consideration is that flac
compresses quiet audio files more
than loud audio files."
So I thought: imagine a pre-processing coupled with FLAC. It would take
frames out of the whole song, and try to cross-correlate them with the song
itself. When it finds strong matches (under a certain threshold, and
starting with a couple of matches), the frame is saved to a pool, and it's
subtracted from the song.
Then you FLAC the (small) pool, and the song, full of near-silent spots (&
silence where pure repetitions occured).
At decode time, you unFLAC the pool and the song, and you add back the
frames from the pool to the song.
I haven't experimented yet, but let's say I try to correlate frames with the
song, and I get something like 20 near-repeats, I may end up with a very
silent "song leftover", still as long as the song, but maybe in 4bits worth
or something? But it would also have bumps of original audio (that didn't
find any matching frame).
The thing is, I don't really know how FLAC compresses so I don't know if it
would compress the "leftover" so much better.
And I don't really know how much matching frames you'd find out in music out
there, it would be very genre-dependent. But I'm surprised that no one
really investigated this (there were old discussions in that forum). Sure,
streaming is important, but it's common to fully download a song.
As I wrote, I tried various compressors on a drumloop repeated 4 times, and
none could benefit from this. It's only a matter of statistics to know how
much often repetitions happens in music out there, but it could work more
intelligently, like by normalizing matching frames maybe, to even detect
repetitions at different levels. Or work in the freq domain. Afterall, music
is based on repetition. And repetition is compression's best friend.
At the same time this wouldn't be very interesting for my need, which is to
compress short samples. Now here too there could be a similar algo, if it's
tonal, cross-correlation would detect matching frames, only at a smaller
level. Imagine if you convert a violin sound into a pitch period somewhere
in its middle, and the residual from that the subtraction of that pitch
period in repeated frames. I think the residual would be rather quiet.
> "Didier Dambrin" <didid at skynet.be> wrote:
> ...
>> I like FLAC on the paper because of its metadata preservation, in that
>> riff
>> tag, which is critical for my needs.
>
> Try using WavPack, http://www.wavpack.com/
>
> This can losslessly compress 32-bit floating
> point WAVE-EX files, and faithfully preserves
> every chunk (which FLAC does not do). It is
> also free.
>
> Regards,
> Martin
> --
> Martin J Leese
> E-mail: martin.leese stanfordalumni.org
> Web: http://members.tripod.com/martin_leese/
> _______________________________________________
> Flac-dev mailing list
> Flac-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/flac-dev
--------------------------------------------------------------------------------
More information about the Flac-dev
mailing list