Bibliothèque de décompression compacte pour utilisation intégrée

Nous sommes actuellement à la création d'un dispositif pour un client et d'obtenir un bloc de données (comme, disons, 5-10 KB) à partir d'une application PC. C'est un peu simplifié, de sorte supposer que les données doivent être transmises et non compressé beaucoup, et pas seulement une fois par an. Le canal de communication est vraiment, vraiment lent, donc nous aimerions compresser les données à l'avance, passez à l'appareil et laissez-le décompresser les données de sa mémoire flash interne. L'appareil lui-même, cependant, fonctionne sur un micro contrôleur qui n'est pas très rapide et ne prend pas beaucoup de mémoire. Il a assez de mémoire flash pour stocker le résultat, et peut décompresser le bloc de données qu'il est reçu, mais il peut ne pas avoir assez de RAM pour stocker l'ensemble de l'compressé ou non compressé (ou même les deux!) les blocs de données. Et bien sûr, il n'a pas un système d'exploitation ou de luxe.

Cela signifie que nous avons besoin de suffisamment rapide décompression algorithme n'utilise pas beaucoup de mémoire. La compression peut être lent et laid, puisque nous le faisons sur le côté PC. C ou .NET code préféré, bien que pour la compression, pour faciliter les choses. La décompression code doit être en C, car il est peu probable que quelqu'un a l'ASM version optimisée de notre contrôleur.

Nous avons trouvé LZO, qui serait presque parfait pour nous, mais il a un soi-disant "libre" license (GPL) par défaut, ce qui le rend totalement inutilisable pour notre client. L'auteur dit que les licences commerciales sont disponibles sur demande, mais malheureusement, il est actuellement inaccessible (pour des raisons non techniques, comme les nouvelles sur son site de le dire).

J'ai trouvé quelques autres bibliothèques, y compris la bouffée.c à partir de zlib, et nous sommes toujours en train d'enquêter, mais j'ai pensé que je voudrais vous demander votre expérience:

Qui l'algorithme de compression et/ou de la bibliothèque recommandez-vous pour l'embarqué fins, étant donné que l'appareil de décompression a vraiment des ressources limitées et le code source et une licence commerciale sont nécessaires?

source d'informationauteur OregonGhost