<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Peter Harris wrote:
<blockquote cite="mid:492C1D6D.7060303@hummingbird.com" type="cite">
  <pre wrap="">Nicholas Vinen wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">I too would be interested to know under what circumstances the various
tables might grow. I tested up to 96kHz 24bit stereo with these buffer
sizes and it seemed to work fine. Yes, I will only support 1 or 2
channels since my player only has stereo output anyway.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Lower quality files tend to use longer blocks, and therefore use more
memory in the decoder. Try encoding a file at -q 0 (or lower). Even
then, the tables won't be as large as the spec allows. Unfortunately, I
don't think there are any pathological test files available.

Peter Harris
  </pre>
</blockquote>
<br>
OK, I tried encoding a file at every integer quality setting between -1
and 10<br>
<br>
Interestingly I found memory requirements did increase at lower quality
levels, but certain buffers grew at higher quality settings too.<br>
<br>
I think what I am going to do is change my patch so that pretty much
everything is allocated out of a single buffer, the only exception
being those few/small chunks which actually get freed before the end of
playback. This should (a) simplify it and speed it up a bit and (b)
means that you only have to care about the maximum total memory usage.
The worst case I tested is quality -1 which required 46400 bytes. This
is definitely in the upper limit of what I can spare on a 64K system
given that I calculated I need at least 12KB and possibly 16KB of audio
buffer! Those two alone exhaust practically all RAM, and I need space
for some file system buffers etc. I may end up supporting -q0 through
-q10 which, in this case at least, reduces the memory requirement to
34412 bytes - a massive difference! -q10 requires 39835 bytes, and
going above this doesn't seem to increase it.<br>
<br>
<br>
I also discovered my comment skipping patch breaks at certain quality
levels (e.g. -q4). After I fix up the static allocation I'll have a go
at improving this.<br>
<br>
<br>
Nicholas<br>
<br>
</body>
</html>