Guten Tag, derzeit bin ich auf der Suche nach Kompressionsverfahren, die man auf einem ARM Cortex M3 anwenden kann. Auf diesem Themengebiet habe ich bisher wenig Erfahrung und hoffe, dass ich auf diesem Weg ein paar nützliche Hinweise finden kann. Es geht um folgendes : Eine Parametrisierungsdatei im XML Format (stark komprimierbar) soll auf einem PC komprimiert werden, anschlieneßd zum Cortex übertragen und dort wieder dekomprimiert werden. Habt ihr damit Erfahrung bzw. sogar schon selbst Daten auf Mikrocontroller komprimiert bzw. dekomprimiert ? Kennt ihr Verfahren bzw. bestenfalls frei verfügbaren C Code, die man in meinem Fall anwenden kann ? Es geht mir erstmal darum einen Überblick über die Möglichkeiten zu erhalten. Geschwindigkeit, Kompressionsfaktor und Rechenleistung spielen erstmal eine kleinere Rolle. Rechenleistung und Speicher sind genügend vorhanden. Die XML Datei ist meines Wissens nach erstmal um die 300 kByte groß. Kennt ihr Verfahren, die ich dafür anwenden könnte ? Frei verfügbaren C Code ? Code, den ich kaufen kann ? Über eine Empfehlung würde ich mich sehr freuen.
etk55 schrieb: > Es geht mir erstmal darum einen Überblick über die Möglichkeiten zu > erhalten. Alles klar. Was hast du bisher ALLEINE herausgefunden? Sag nich, dass g**gle wieder kaputt ist.
Lass den Quatsch mit diesem XML Firlefanz und schick die Daten so wie sie gespeichert werden sollen. Von hinten durch die Brust ins Auge...
> Geschwindigkeit, Kompressionsfaktor und Rechenleistung spielen erstmal > eine kleinere Rolle. > Rechenleistung und Speicher sind genügend vorhanden. Die XML Datei ist > meines Wissens nach erstmal um die 300 kByte groß. Wenn es nur um die Beschleunigung der Datenübtertragung geht spielt die Rechenleistung sogar ein große Rolle. Wie kommen die Daten den rein? Wenn alles per UART mit 1200 Baud geladen werden muss kann sich das packen schon lohnen, wenn man aber eher mit 1 MBit z.B. vom FTDI Daten bekommt könnte es fixer gehen wenn man unkomprimiert überträgt. A propos 300 kByte XML File. Wohin soll die weggespeichert werden? SD-Karte? Und was passiert mit den Daten danach, wie wird weiter verarbeitet? 300k hält man nicht mal eben im RAM des kleinen STM32 ;) Selbst die dicksten Teile haben soweit ich weiß maximal 256kByte RAM. Und die meisten Kompressions-Libraries wollen davon auch noch etwas für sich haben...
Vielen Dank, für die Hinweise. Das Format sollte beibehalten werden. Daran kann ich nichts ändern. Die Daten sollen mit 9600 Baud über ISDN übertragen werden. Da lohnt sich die Kompression auf jeden Fall. Gespeichert werden die Daten auf einem Speicherbaustein. Der ist aber ausreichend groß. Bisher dachte ich an einen Huffmancode. Da dieser gut dokumentiert ist und es auch viele C ode Beispiele gibt. AUf LZO bin ich auch schon gestoßen aber da bin ich mir noch nicht ganz sicher, ob man den kostenlos verwenden darf.
etk55 schrieb: > Die Daten sollen mit 9600 Baud über ISDN übertragen werden. ? Baud oder Bit/s? Jeder der beiden D-Kanäle hat 8000Baud mit 8Bit/Symbol -> 64kBit/s Selbst der B Kanal kommt noch auf 16kBit/s Ansonsten LZ0 und co. Hey selbst ein einfacher Huffmann ohne vorgeschaltetes Wörterbuch bringt dir beim XML schon ne ganze Menge.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.