This would have more to do with data transmission bandwidth compression and I haven't had a chance to implement anything, but 8PSK (8 Phase Shift Keying) or QPSK (Quad Phase Shift Keying) should work out nicely with a Propeller. Other methods would work as well, I just particularly like the constellation data transmission concept.
Preliminary tests that I have done, have two or more Propellers ( a single master and a single or multiple slaves) running at the same carrier frequency.· The slave Propeller constantly "tracks" the incoming signal and·phase locks to the carrier frequency·of the master Propeller.· To transmit data, the master Propeller phase shifts its carrier frequency by a constellation symbol offset.· Since the Propeller Slave(s) are phase locked and constantly tracking the incoming signal from the Master Propeller, the slave Propellers·can determine "how much" phase shift occurred from the master Propeller and reconstruct the original data.
Some decompressors are simple and fast, but compression normally is quite consuming. There are some LZW and variants available in open source programs. A good starting point, too
The compression algorithm you use will largely depend on the type of data you are trying to compress, and whether or not you can accept lossy compression. RLE works well for image data, especially monochromic. For audio data, some sort of differential encoding scheme is probably more appropriate. For text, statistical methods like Huffman encoding work well.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The more I know, the more I know I don't know.· Is this what they call Wisdom?
Data compression is highly dependent on the source data, whether loss is acceptable, and is limitted by CPU (processing time/latency), RAM (dynamic codebooks) and ROM (static codebooks).
@onclepicsou: Just curious, what type of data are you trying to compress? Some types of data may lend themselves to easy compression with minimal code. In that case if you try to use a general purpose compression scheme, you may be doing too much work.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The more I know, the more I know I don't know.· Is this what they call Wisdom?
Comments
This would have more to do with data transmission bandwidth compression and I haven't had a chance to implement anything, but 8PSK (8 Phase Shift Keying) or QPSK (Quad Phase Shift Keying) should work out nicely with a Propeller. Other methods would work as well, I just particularly like the constellation data transmission concept.
Preliminary tests that I have done, have two or more Propellers ( a single master and a single or multiple slaves) running at the same carrier frequency.· The slave Propeller constantly "tracks" the incoming signal and·phase locks to the carrier frequency·of the master Propeller.· To transmit data, the master Propeller phase shifts its carrier frequency by a constellation symbol offset.· Since the Propeller Slave(s) are phase locked and constantly tracking the incoming signal from the Master Propeller, the slave Propellers·can determine "how much" phase shift occurred from the master Propeller and reconstruct the original data.
Reference:
http://en.wikipedia.org/wiki/Constellation_diagram
http://en.wikipedia.org/wiki/Phase-shift_keying
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Post Edited (Beau Schwabe (Parallax)) : 9/19/2007 4:10:02 PM GMT
but i meant data compression schemes, something
simple like Run Lenght Encoding (RLE)...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The more I know, the more I know I don't know.· Is this what they call Wisdom?
i am quite aware of compression methods, and
it exist a million libraries 4 pc's, but usually
there is a lack in embedded's, even for simpler
schemes...
i don't pretend performance that could
only achieved by powerful PLD's !
before "re-invent the wheel" i just want to know
if someone ever attempted something about this
matter, on propeller platform of course...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The more I know, the more I know I don't know.· Is this what they call Wisdom?