Ridurre la dimensione dei dati per l’archiviazione e il loro trasferimento è sempre più importante nei sistemi embedded. Ridurre le dimensioni dei dati abbassa la complessità e i costi dei sistemi che richiederanno meno memoria. Trasferire meno dati è un modo brillante per superare limitazioni della larghezza di banda disponibile.
Progettata per i sistemi embedded, la libreria emCompress può comprimere e decomprimere i dati anche sui microcontrollori più piccoli. emCompress è disponibile in quattro versioni, emCompress-PRO, emCompress-ToGo, emCompress-Embed e emCompress-LZMA, che coprono diverse applicazioni di compressione. Ogni edizione è ottimizzata per il suo utilizzo specifico per fornire il modo più adatto per comprimere e decomprimere i dati.
emCompress è una libreria scritta in ANSI C ed è ben commentata. È indipendente sia dal compilatore che dal target. A differenza della maggior parte delle librerie di compressione, non è coperta da una licenza open source o di attribuzione obbligatoria e può essere integrata in qualsiasi prodotto commerciale o proprietario, senza l’obbligo di divulgare il codice sorgente combinato.
Caratteristiche principali
- Per dispositivi embedded, app e software per PC
- Footprint ridotto del decompressore
- Ampia gamma di algoritmi di compressione
- Facile da configurare e integrare
- Disponibile in quattro versioni, per qualsiasi esigenza di compressione
Ridurre l’ingombro di memoria
Comprimendo i dati, è possibile memorizzare molte più informazioni nella memoria flash, nella flash SPI o su una schedina SD esterna. Che si tratti di aggiornamenti del firmware, di bitstream di configurazione o di immagini di un’interfaccia grafica, più piccola è la dimensione dei dati da gestire, più economica diventa la soluzione grazie all’impiego di supporti di archiviazione più piccoli e meno costosi.
Meno traffico di comunicazione
Nelle applicazioni che utilizzano un collegamento a bassa larghezza di banda con compressione, è possibile trasmettere più informazioni in un periodo di tempo più breve. Inoltre, un minor traffico di rete riduce anche il consumo energetico di mittenti e ricevitori. Per le comunicazioni a lunga distanza, una quantità di dati trasmessa inferiore comporta meno errori di trasmissione e una maggiore velocità di trasmissione.
Aggiornamenti più rapidi
Utilizzando la compressione, è possibile trasmettere nuovi firmware o dati di aggiornamento non solo con meno larghezza di banda, ma anche più velocemente. Ciò potrebbe non essere un problema quando si utilizzano canali di trasmissione con un’ampia banda come il WiFi, mentre potrebbe esserlo nel caso dei protocolli come Bluetooth e Zigbee.
Maggiore flessibilità
Quando si ricevono dati compressi da fonti esterne, è importante la flessibilità per quanto riguarda i codec e i formati di dati utilizzati. Spesso i dati vengono anche forniti in formato archiviato, che deve essere decompresso in una struttura di file specifica in combinazione con un file system.
Casi d’uso
Per coprire tutti i possibili casi d’uso, SEGGER ha sviluppato quattro diverse versioni di emCompress.
Accelerare gli aggiornamenti del firmware
Molti prodotti richiedono la possibilità di aggiornare il proprio firmware sul campo, dove molto spesso la larghezza di banda disponibile è limitata. Per accelerare il processo di aggiornamento, è possibile ridurre i dati da trasferire al dispositivo. emCompress-PRO consente aggiornamenti del firmware con immagini compresse. Può ricevere uno stream di dati e decomprimerlo al volo per il modulo di aggiornamento.
emCompress-LZMA è la soluzione economica per accelerare gli aggiornamenti del firmware, fornendo un solo codec, la compressione sull’host in una libreria e solo il decompressore nel codice sorgente.
Ridurre le dimensioni delle immagini del firmware
Le immagini del firmware in genere aumentano di dimensioni con ogni aggiornamento. Ad un certo punto, il nuovo firmware potrebbe superare le dimensioni della flash disponibile. Quando si tratta di ridurre le dimensioni dei dati statici in un’immagine del firmware, emCompress-Embed è la scelta giusta. Con decompressori piccoli e veloci, i dati memorizzati in forma compressa nella memoria possono essere decompressi al volo quando necessario.
Minimizzare l’ingombro di memoria richiesto per l’archiviazione delle risorse
La maggior parte dei sistemi include risorse digitali per la propria interfaccia utente. Per inserire più dati nella memoria disponibile o per progettare hardware con meno memoria, le risorse digitali possono essere archiviate in forma compressa.
Quando i dati compressi fanno parte dell’immagine del firmware, emCompress-Embed è la scelta perfetta. I dati compressi sono incorporati nel firmware e decompressi su richiesta. Con la modalità di gruppo di emCompress-Embed, è possibile comprimere più risorse come un’unica entità per ottenere risultati di compressione ancora migliori.
Per i dati compressi che sono archiviati in memoria esterna o aggiornati senza modificare il firmware, emCompress-PRO consente la decompressione su richiesta senza la necessità di conoscere i dati in anticipo.
Ridurre il traffico di rete IoT
Le reti di dispositivi IoT connessi possono soffrire di congestione e larghezza di banda limitata. Con emCompress-ToGo, i messaggi da inviare su una rete possono essere compressi e decompressi da mittente e ricevitore al volo, con conseguente minor traffico sulla rete.
Elaborare dati forniti da strumenti di compressione di terze parti
I dispositivi connessi possono ricevere dati compressi da fonti esterne e il sistema potrebbe dover essere progettato per accettare ed elaborare input creati da altri strumenti. emCompress-PRO è compatibile con strumenti di compressione comunemente utilizzati. Un sistema che riceve dati esterni può selezionare il decompressore su richiesta ed essere preparato per la maggior parte dei casi d’uso dei clienti, inclusa la gestione e l’elaborazione di comuni formati di archivio.
Ridurre i requisiti di archiviazione per i bitstream di configurazione
Quando un sistema embedded include un FPGA(-SoC) o un CPLD, il firmware deve caricare un bitstream di configurazione nel dispositivo. emCompress-Embed può comprimere i bitstream per ridurre i requisiti di archiviazione. Con la decompressione al volo, il dispositivo può essere configurato immediatamente utilizzando chunk decompressi.
Comprimere i dati su diversi tipi di target
La maggior parte dei casi d’uso richiede la decompressione sul sistema di destinazione. Oltre alla decompressione dei dati, emCompress-PRO fornisce anche la funzionalità di compressione. Entrambe le parti dei codec possono essere integrate nelle immagini del firmware e nelle applicazioni host.
Risparmiare risorse sull’acquisizione dati
La quantità di dati raccolti e archiviati dai data logger rende questa una delle principali applicazioni per la compressione. emCompress-ToGo è la scelta giusta per archiviare log di dati compressi, risparmiando spazio di archiviazione e risorse di memoria.
Accelerare le comunicazioni a lunga distanza
In applicazioni spaziali e/o avioniche, i canali di comunicazione sono limitati non solo dalla larghezza di banda del canale, ma anche dalla distanza tra trasmittente e ricevente. emCompress-ToGo può comprimere qualsiasi dato da trasmettere e accelerare significativamente le comunicazioni a lunga distanza.