Forum: Mikrocontroller und Digitale Elektronik Datenkompression mit uC ?


von Arvid Teichtmann (Gast)


Lesenswert?

Hallo,

ich möchte eventuell einen Kompressionsalgorithmus in einem uC 
implementieren, um grössere Datenmengen in einem Datenflash zu 
komprimieren.
Ich dachte an einen RLE (run length encoded algorithm), wie er z.B. von 
PKZIP verwendet wird.
Hat jemand Erfahrung, Tipps, gute Links oder Source Code in C ?
Danke.

Gruss
Arvid

von Markus Kaufmann (Gast)


Lesenswert?

Welcher Algorithmus Sinn macht, hängt stark von Deinen Daten ab.  Bei 
Datenkompression geht es prinzipiell darum, irgendwelche Strukturen zu 
erkennen, d.h. Du solltest am besten mal beschreiben wie Deine Daten 
aufgebaut sind.

RLE ist nicht schwer zu implementieren, falls Du aber analoge Werte hast 
solltest Du auf so Dinge wie z.B. Rauschen achten, die Dir recht schnell 
die Kompression kaputtmachen können.

Zip arbeitet meines Wissens nach hauptsächlich mit LZ77 als Algorithmus. 
Sourcen (für PC) gibts z.B. als Infozip oder gzip. Ich befürchte aber, 
daß viele dieser Packer relativ viel Speicher wollen (mindestens 4KB 
RAM). Welchen Microcontroller willst Du denn einsetzen?

bye
  Markus

von Arvid Teichtmann (Gast)


Lesenswert?

MSP430F149 (intern 2Kb RAM) mit externem DataFlash, in dem Audiodaten in 
Telefonqualität als WAVE (also roh ohne Kompression) abgelegt sind.

Gruss
Arvid

von Markus Kaufmann (Gast)


Lesenswert?

Du könntest Gesprächspausen erkennen, damit Du diese nicht abspeichern 
mußt.
Prinzipiell komprimiert man hier verlustbehaftet. Übliche 
Kompressionsverfahren sind dabei der GSM-Codec, Celp und ADPCM. Ich weis 
jetzt aber nicht, wieviel Rechenpower oder RAMbedarf die haben.

bye
  Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.