Thanks, it reminded me that we had this thread a long time ago. thankfully, I have a large piclist archive on my machine: Posted 11/18/2001, Richard Sloan, "[PIC]: CSVD or other on PIC (compress audio)" And it has a pretty good set of information. I've also found a few data sheets for old chips and one math-heavy tutorial (all in convenient pdf format) via google "continuously variable slope delta" (cvsd produced a lot of CVS Daemon resources). Hopefully I'll get something useful together soon. Ordered lots of parts today - I'm actually going to try to make it by the contest deadline...! My project will work fine without compression, but it will work better if I can use compression. If I do so, I'll let you know and make a web page about it with the code - free to use for your entry. Since it's not necessary though, it may end up getting done last. -Adam Robert B. wrote: >The sampling method you've chosen is actually the voice transmission >standard for telephone, and there are quite a few applicable standards. > >ADPCM is a pretty good one that doesn't require much knowledge of the data >before or after, though all compression methods will require *some* >knowledge of whats going out. ADPCM simply stores a delta-amplitude instead >of the full amplitude. If I remember right, it does use some sort of >adaptive predicting scheme to (pretty accurately) predict what's coming >next, based on the past few inputs. > >Another decent, but slightly lower quality method, is known as CVSD >(continuously variable slope delta), which I happen to be using for a >project right now. In this method, you actually increase the sample rate to >about 32kHz, then use a single bit to indicate whether the signal's >amplitude is increasing or decreasing. If you can't hack 32kHz, you can >reduce the sampling rate with a roughly proportional decrease in quality. > >I am also using an AVR for the contest, and am compressing voice with an >ATmega8515. I don't have working code yet or I'd let you look. For my >project, the CVSD looks like it will be the easiest to implement, and it >sounds like a viable option for you too. > >Good luck! > > > >----- Original Message ----- >From: "M. Adam Davis" >To: >Sent: Monday, May 03, 2004 1:44 PM >Subject: [EE:] Fast voice compression on 8bit? > > > > >>I'm looking for a fast block oriented compression routine that works >>well on an 8bit microcontroller. Just blurt out some ideas or >>compression standards you think might fit - I'm prepared to do the >>research, I'd just like a good starting point. >> >>My input is going to be voice (8ksps, 8bits per sample, 64kbps total) >>and I'd like to be able to compress consistantly sized chunks into >>smaller consistantly sized chunks without any knowledge of previous or >>following data. >> >>In other words, I'd like to compress, say, each 45 bytes of the stream >>into 30 bytes. No variable rate. It needs to be fast, with low latency >>(ideally compressing a chunk in less time than it takes to get the next >>sample, 1/8000 of a second). >> >>Of course the resources are limited. AVR Mega169 (butterfly) running at >>1MHz if possible. I'm compressing the data for transmission, if it >>matters, but the compression could be writing to the dataflash onboard >>for all it matters. >> >>Just list standards or outline a scheme. This is for the circuit cellar >>contest so I have to write my own code anyway (or I have to get the >>copyright owner's permission, and I'd rather learn the compression and >>write the code than go through the rigamarole of getting permission). >> >>Thanks for your time! >> >>-Adam >> >>-- >>http://www.piclist.com hint: The PICList is archived three different >>ways. See http://www.piclist.com/#archives for details. >> >> > >-- >http://www.piclist.com hint: The PICList is archived three different >ways. See http://www.piclist.com/#archives for details. > > > > > -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.