blob: 4c5bde9bd421bea8ede9f1fcb1d88a8e378f1904 [file] [log] [blame]
This directory contains version 1.2 of a simple 16 bit PCM <-> 4 bit
ADPCM coder and decoder. See the source and the manpage for comments
on the algorithm.
If you have previously used version 1.0: there was a bug in it. This
version fixes the bug. (1.1 fixed that, but had another slight bug
that caused loss of quality on SGI machines).
The routines have been tested on an SGI Indigo running Irix 4 and
5 and on a Sun Sparc SLC running SunOS 4.1.1. There are no real
machine dependencies, though, so there should be no problems on other
architectures.
There is a timing program to test how fast the stuff runs on your
machine. Here are some sample numbers:
R4000 Indigo: compress: 1.1Msample/sec, decompress: 1.7Msample/sec
R3000 Indigo: compress: 410Ksample/sec, decompress: 850Ksample/sec
Sun SLC: compress: 250Ksample/sec, decompress: 420Ksample/sec
Mac-IIsi compress 21Ksample/sec, decompress: 35Ksample/sec
486/DX2-33 SCO: compress 550Ksample/sec, decompress: 865Ksample/sec
486/33 linux: compress 278Ksample/sec, decompress: 464Ksample/sec
386/33 gcc: compress 117Ksample/sec, decompress: 168Ksample/sec
(the Borland and MS compilers are a little slower)
Also included are some simple test programs that convert audio files
to/from 4bit ADPCM samples. Rawcaudio/rawdaudio convert to/from raw
16bit PCM files; sgicaudio/sgidaudio convert to/from SGI AIFF files
and suncaudio/sundaudio convert to/from SUN/NeXT format audio files.
The Sun program was donated by Hughes Doug, hughes@sde.mdso.vf.ge.com
(it is actually only one program and looks at the program name to
decide whether to compress or decompress). Oh yeah, the sun and sgi
compressors will probably only compile on those machines. Also, for
the sgi compressor you need the Digital Media Developers Option.
Note: I have had to make a few changes to the sun audio converter, but
unfortunately I have no way of testing the result (since it needs
Solaris 1.somethingorother which I don't have). If the program does
not work and someone fixes it I would like to get a copy.
Finally, there is a uuencoded adpcm sound file of me saying "hello
world" (with a cold) that you can use to test that everything works
correctly.
If you use this package I would like to hear from you.
I am especially interested in people who can test interoperability
with proven Intel/DVI ADPCM coders. I have tried to get the algorithm
correct, but you never know....
Answers to often-asked questions:
- No, this is *not* a G.721 coder/decoder. The algorithm used by G.721
is very complicated, requiring oodles of floating-point ops per
sample (resulting in very poor performance). I have not done any
tests myself but various people have assured my that 721 quality is
actually lower than DVI quality.
- No, it probably isn't a RIFF ADPCM decoder either. Trying to decode
RIFF ADPCM with these routines seems to result in something
recognizable but very distorted.
- No, it is not a CDROM-XA coder either, as far as I know. I haven't
come across a good description of XA yet.
- No, testc and testd are not full-blown audio-file converters, only
simple test programs. If you write a file-converter (like caudio.c,
which compresses Sun audio files) and you're willing to donate it
I'd be very happy to include it in the distribution.
- No, I know of no standard audio file format that supports idvi
adpcm. If you find one, please let me know.
- Also, I know next-to-nothing about who IMA are. Their address, though,
from their May 1992 proceedings (where I got the algorithm from):
IMA Compatability Project Headquarters
9 Randall Court
Annapolis MD 21401
USA
Phone: (410) 626-1380
Fax: (410) 263-0590
They might be able to send back issues of their proceedings, I don't
know.
Jack Jansen
Centre for Mathematics and Computer Science
Kruislaan 413
Amsterdam
the Netherlands
+31 20 592 4098
Jack.Jansen@cwi.nl