blob: 544ad7bfc8d1b7429c851df55b360c599c4f4b59 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
<html>
<head>
<title>tooLAME changes</title>
<style>
<!-- BODY { BACKGROUND: #FFFFFF; COLOR: #000000; FONT-SIZE: 10pt; FONT-FAMILY: verdana, sans-serif }
A { COLOR: #111177; TEXT-DECORATION: none }
TD { font-size: medium; font-weight:normal }
--!>
</STYLE>
</head>
<body>
<table border = 0 width="75%" align="center"><tr><td>
<h1>TooLAME 02l - 2 March 2003</h1>
<UL>
<LI> <b>Major psychoacoustic model overhauls</b>
<UL>
<LI> For more detail, see <a href="psycho.html">psycho models</a>
<LI> <b>Psychoacoustic Model 3</b>
<UL>
<LI> Psycho3 is a reimplementation of the psychoacoustic model 1 from the
ISO standard. Pretty much totally rewritten from the ground up, following the nomenclature of the ISO standard.
<LI> Uses arrays for keeping tone/noise labels rather than the really
hard to grok pointer-stuff from the dist10 code.
<LI> Uses Painter + Spanias' Formula for the ATH rather than the tables from the standard.
<LI> Uses LAME's freq-to-bark conversion to construct the critical bands.
<LI> Future: Needs a proper geometric mean for weighting the noise. Needs one more function added to the decimation routines which would eliminate maskers within 0.5 dB of each other.
<LI> Eliminated all the ISO/dist10 tables. Everything is from equations or built from scratch.
</ul>
<LI> <b>Psychoacoustic Model 4</b>
<UL>
<LI> A reimplementation of psychoacoustic model 2.
<LI> Eliminated all the ISO/dist10 tables. Everything (ath, bark, critical bands) is from equations or built from scratch
<LI> FUTURE: For psycho model 2 and 4 there's some really bad "warbling" and "Davros" type noise. Depending on the loudness of your sound sample, this can get really annoying. I don't know where it's coming from.
</ul>
<LI> <b>Psychoacoustic Model 0</b>
<UL>
<LI> This model uses the ATH and the scalefactors for each subband to build an approximate SMR for each subband at nearly zero cost.
<LI> Based upon an idea mentioned in "Low power mpeg/audio encoders using simplified psychoacoustic model and fast bit allocation" by Hyen-O Oh et al.
<LI> For the amount of effort that this psycho model puts in, the results are pretty good.
<LI> Future: Add some parameters to the equation to allow it to be tweaked on the fly.
</UL>
<LI> <b>Psychoacoustic Model -1</b>
<UL>
<LI> This is the old "fast" psychoacoustic model ("-f").
<LI> All it does is copy over a static set of pre-calculated SMR values
<LI> Sounds OK for most stuff.
</UL>
</UL>
<LI> <b>New bitstream encoding routines (encode_new.c)</b>
<UL>
<LI> All the old tables.c/alloc_table stuff is now superfluous.
<LI> All tables are now at the top of encode_new.c
<LI> The tables have quite a bit of indirection to get to the value that you need (but really not any more indirection than the old alloc_table stuff). Probably need to add some more docs to say what's going on.
<LI> These new routines are the default, but you can remove the "NEWENCODE" definition and use the old ones (just in case).
<LI> The new routines will become the default in the next release.
</UL>
<LI> <b>More speed</b>
<UL>
<LI> All the trig stuff for psychomodel 4 is now done with tables instead of calculating exact values.
<LI> The <i>exact</i> trig values aren't really used directly in the encoder. They're sort of averaged over a couple of iterations and used as a predictor of uncertainty. So being off a few thousandths won't really affect anything.
</UL>
</UL>
<HL>
<h1>TooLAME 02k - 16 February 2003</h1>
<UL>
<LI> Some great speedups with a combined filtersubband and windowsubband (Ricardo Schelp ricardoschelp at arnet.com.ar)
<LI> Cleaned up the psycho model calling (should be easier to add your own psycho
model if you felt like having a hack)
<LI> DAB Extensions are now of variable length controlled by an argument to the -D switch
(Nicolas Croiset - ncroiset at vdl.fr)
<LI> Fixed raw PCM reading to no longer miss the first 40 bytes. (MFC)
<LI> No longer a 4GB limit when reading from stdin (or if your filesys supports) (Nicolas)
<LI> Tweaks to the end of the bitstream to allow concatentation of mp2 files (Nicolas)
<LI> Finally (?) fixed the segfaults using psy model 1 (Nicolas et al)
</ul>
<HL>
<h1>TooLAME 02j - 12 Feb 2003</h1>
<UL>
<LI>Definitely LGPL now.
<LI>encode.c - VBR mode has been stabilised to work correctly for all sampling frequencies (<a href="vbr.html">README.VBR</a> has more details)
<LI>get_audio.c has become audio_read.c - cleaned up that really dodgy wave header parsing.
(thanks to Philippe Jouguet - philippe.jouguet at vdl.fr and Henrik Herranen - leopold at vlsi.fi)
<LI>spelling fix for 'extension' - Philippe again
<LI>psycho_I.c - Speedup for "% 1408" calcs "-DSAMI_P1" sami.sallinen at g-cluster.com
(about 4% overall speedup for me)
<LI>subband.c - Pointer arithmetic for filter subband "-DSAMI_SB" (sami again)
(doesn't give any advantage over gcc3.2 on my system)
<LI>psycho_II.c
<UL>
<LI> enabled the use of gcc's _sincos(). "-DSINCOS -D_GNU_SOURCE"
about a 5% overall speed-up in encoding (Philippe again)
<LI> added the LSF frequencies so that you can use psy model 2 with LSF (good old Philippe)
</UL>
<LI>verbosity - added a '-t' flag to set the 'talkativity' level needed for transcode plugin (Andreas neukoetter - anti at webhome.de)
<LI>toolame.c - LSF files should now select a valid default bitrate by default. (96kbps)
</li>
</tr></td>
</body>
</html>
|