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