[Flac-dev] Re: nice idea
lichvarm at phoenix.inf.upol.cz
Sat Oct 19 08:17:02 PDT 2002
On Thu, Oct 17, 2002 at 09:51:02AM -0500, Brady Patterson wrote:
> Okay, I deleted most of this thread, so I was waiting for another message to
> respond to, so unfortunately this will be out of place in the thread.
> This is in response to Miroslav's idea about variable block sizes. I may be a
> bit out of my league here as I'm just starting to look at how the actual
> encoding gets done. But it seems to me that you could make a decent guess
> about when something "new" happens based on the second derivative of the signal
> (where the first derivative is the difference between a given sample and the
> previous, and the second is you-get-the-idea).
> Here's my rationale: high-amplitude, high-frequency sections are the hard ones
> to encode, or at least will work best in their own frame. Those
> characteristics imply a high first derivative. You want to put such sections
> in their own block, and boundaries of such blocks will be where the second
> derivative is relatively high.
> Okay, that's not quite right, since the first derivative will be negative about
> half the time, and large negative has the same effect as lange positive. So I
> think what you really want is the first derivative of the absolute value of the
> first derivative.
> Then there's the question of where to put the boundaries. Some trial-and-error
> is probably the best approach here. For files on which the above formula is
> consistently high, it will probably be desirable to set the limit high to avoid
> too much frame overhead.
> Hope this was interesting and/or useful :) .
Well, i took 10 CD and test my primitive implementations of these
algos. Here are my results:
size encoding time
(0) 6401778544 1.0000
(1) 4193699407 0.6551 1.0000 1.00
(2) 4180011683 0.6529 0.9967 1.18
(3) 4186509853 0.6540 0.9983 1.15
(0) 503448568 1.0000
(1) 349525363 0.6942 1.0000
(2) 347167639 0.6896 0.9933
(3) 347864119 0.6910 0.9952
(0) 44111804 1.0000
(1) 28091683 0.6368 1.0000
(2) 27769870 0.6295 0.9885
(3) 27864205 0.6317 0.9919
(0) wav files
(1) flac files, fixed blocksize 4608
(2) flac files, variable blocksize, "lpc idea"
(3) flac files, variable blocksize, watching average of absolute
values of first and second derivative
More information about the Flac-dev