Hey Monty, gang.

> Hm, I should know better than to be vague.
> 
I'm a mech.eng., so I've done some applied math, but not a lot in the way of
filters yet, unfortunately. I do know a bit about lossless compression
techniques, though, as well as a bit of digital audio stuff and fourier and
laplace transformations. For instance, I know pretty well how JPEG works.

> *Specifically* I'd be looking for someone intimately familiar with direct
> form
> II IIR filters, the Levinson-Durbin and Schur algorithms for producing
> coefficient sets and the underlying linear and discrete math.
> 
Sorry, I don't know these filter types. Would you have any literature on
them? What do they do and what does IIR stand for?

> The fundamental difficulty with lossless compression techniques that make
> use
> of LPC is that nearly all the energy is concentrated into very narrow
> features
> in the the low frequency spectrum.
> 
LPC = Linear Predicting Codec? (LP very probably means linear predict*, but
what's the C?)

I'm not sure I understand the reason for the situation you describe, would
you care to elaborate?

> LPC filters of a given order generally are
> able to reproduce roughly equal-width features (this is a generalization)
> on
> the order of the size of the spectrum evenly split into bands by the order
> of
> the filter.
> 
This is a bit difficult to understand. Assuming you have an LPC filter of an
order O, what does the filter function look like (algebraically)? And
further assuming a spectrum ranging from A to B (in the frequency domain,
i.e. A, B = 20Hz, 20kHz e.g. -- though you could convert to another domain
too, I guess), into how many bands would the filter above split this
spectrum and of what size would the individual bands be?

And can you claim losslessness if you convert from the time domain to a
different one or perform filter operations at all? You'd have to determine
the error and somehow carry that along, wouldn't you? Of course, the use of
a good model would give you only small errors, which would be suitable for
conventional encoding techniques (a'la huffman, RLE or, even better,
arithmetic coding (but alas, the IBM patent..)).

> Representing the LPC filter in LSP form makes this very plain
> (look at the frequency peaks and where the LSP coefficients appear by
> mapping
> the first half of the unit cirlce to the spectrum). A classic LPC filter
> approximates all of the narrow low frequency features with a single very
> roughly fit formant-like curve.
> 
What's LSP, please? Apart from that, I have a very rough idea of what you're
trying to say..

> LPC filter generators will try to match wide features first, and so blow
> all
> their resolution of the high frequencies which are mostly noise, and
> ignore
> real peaks in the first few octaves (due to the log nature of octaves,
> these
> features are very narrow).
> 
I believe I understand: Since our perception of audio is log2-based and
therefore higher octaves are wider than low octaves to some power of two,
high-frequency signals appear wider than corresponding signals in lower
octaves, so they will be given a higher priority by 'LPC filter generators'.
Therefore, lower-octave signals are not modelled well at all.

> If we could come up with an LPC filter mechanism
> that makes use of spectral features with widths naturally based on the
> octave
> they appear in, 4:1 lossless should not be too difficult to acheive.
> 
> I'm not aware of any LPC filer mechanism that can do this.  The closest
> I've
> come is in Vorbis: I map the linear frequency scale to a log scale and do
> my
> LPC-based frequency spectrum encoding there.  Vorbis's LPC thus sees peaks
> nicely, but it's an approximation acceptible for a lossy compression, not
> acceptible for lossless.
> 
Ah, OK, I understand your approach and it's what I'd have recommended you
do, too. I do not think there is a way to avoid losses in time-frequency
domain transformations in the first place, nor when converting between
linear and logarithmic representations. With computers, everything is
discrete, just about every calculation introduces loss (unless you're
dealing with integers only).

> Thus, to use the log-frequency-scale LPC filters, we need to invent some
> math
> (and undoubtedly come up with a slightly different set of constraints as a
> classic direct IIR filter with log-scale-width frequency features is
> likely not
> possible).
> 
Now an idea I have is to use a different set of FFT coefficients, or rather,
to space them in a logarithmic way. If I understand correctly, you are
transforming from the time domain to the frequency domain (which introduces
an information loss, BTW). Normally, this results in a set of coefficients
with arguments spaced evenly apart, e.g. you'd have coefficients for the
energy of a signal at 1, 2, 3, 4, 5, ... Hz. What you want is a set of
coefficients at logarithmic (base 2) intervals, e.g. at 1, 2, 4, 8, 16, ...
Hz. You could achieve this by modifying the FFT code you use. Note that, to
achieve losslessness, you need to keep track of the errors in all of your
transformations and apply them when recreating the original.

cheers
Tobias

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to