More time-domain research

Jim Leonard <[email protected]>
Newsgroups gmane.comp.video.xine.codec.devel
Message-ID <[email protected]>
I'm digging for audio codec info again for my "multimedia on an 8088" 
project.  I've come up with a good way to achieve 2:1 lossy compression 
on 8-bit PCM data with extremely simple decompression (signed 3-bit 
nybbles perform table lookup to get delta applied to the predictor; uses 
adaptive tables and variable frame sizes -- simple stuff, really).  Yet 
I can't help wondering if there is a better algorithm out there that 
will produce either better quality or smaller filesizes (or both) while 
being computationally simple to decode.

So far the only thing I've come across that can do both is John 
Ratcliff's ACOMP system (I have docs and code on this if anyone is 
interested).  ACOMP achieves 6:1 for voice and 1.5:1 to 3:1 for general 
purpose/music by doing an exhaustive best-match search using multiple 
tables and bit depths.  But it's a lot of implementation work -- 
decompression is at least 150 cycles per sample -- still within the 
realm of real-time on an 8088 but more cycles than I wanted to spend. 
(My decompression routine, by comparison, is mostly based around the 
8086 opcode XLAT, which takes only 6 cycles and replaces a source value 
with one in a table.  I haven't optimized the routine yet but it's 
easily going to be less than 40 cycles per sample.)

Then I learned about audio compression on the Apple IIgs and early MACs
in the form of compression AIFF files.  The IIgs is slower than an 8088, 
so I wanted to learn more, but the only thing I could find was the 
compressed AIFF spec from around 1990.  Compressed AIFF files have the 
following chunks registered:

Sig.    Desc.
NONE    not compressed
ACE2    ACE 2-to-1 (Audio Compression/Expansion)
ACE8    ACE 8-to-3
MAC3    MACE 3-to-1 (Macintosh Audio Compression/Expansion)
MAC6    MACE 6-to-1
FAR4    MacroMind 4-to-1
FAR8    MacroMind 8-to-1

I am trying to find more information on these codecs.  ACE2 and ACE8
were on the Apple IIgs, MAC3 and MAC6 were on the mac, the others I'm
not sure... and I have no implementation info for any of them.  Anyone
got any info on these?

Any other simple time-domain audio compression CODECs I may have 
overlooked?  ADPCM is the only other obvious choice, but since my output 
is 8-bit PCM, it would only do 2:1 for me which I don't feel has any 
advantage over the system I already devised.  I also looked into Sound 
Blaster's hardware ADPCM system (the card in the 8088 is a Sound Blaster 
2.0) because that would be FREE decompression done in hardware... except 
that the sample rate is limited to 12KHz!  Piece of crap! (The 2.6:1 and 
4:1 modes sound terrible anyway.)

Any thoughts?  Schemes I may have missed?
-- 
Jim Leonard ([email protected])
World's largest electronic gaming project:    http://www.MobyGames.com/
A delicious slice of the demoscene:        http://www.MindCandyDVD.com/
Various oldskool PC rants and ramblings:       http://www.oldskool.org/





-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.