Reduced data size for storage and transfer is highly valuable in embedded systems. Reduced storage size minimizes the complexity and costs of systems by keeping memory requirements small. Reduced transfer size overcomes limitations of the bandwidth available to send and receive data.
Designed for embedded systems, emCompress can compress and decompress data even on smallest microcontrollers. emCompress is available in four editions, emCompress-PRO, emCompress-ToGo, emCompress-Embed, and emCompress-Flex that cover different compression applications. Each edition is optimized for its specific use to provide the most convenient way to compress and decompress data.
emCompress is written in well-commented ANSI C. It is independent of both compiler and target. In contrast to most compression libraries, it is not covered by an open source or required attribution license and can be integrated into any commercial or proprietary product, without the obligation to disclose the combined source.
- For embedded devices, apps, and PC software
- Small decompressor ROM footprint
- Wide range of compression algorithms
- Easy to configure and integrate
- Four editions to fit any need for compression
By compressing the data, a lot more can be stored in flash memory, SPI flash or on an external SD card. Whether it's firmware updates, configuration bitstreams, or interface assets, the smaller the storage footprint, the more cost-effective the solution becomes due to the smaller, less expensive storage medium.
In applications using a low bandwidth link with compression, more information can be transmitted in a shorter period of time. In addition, less traffic on a network also reduces the power consumption of senders and receivers. For long distance communication less transmitted data leads to fewer transmission errors and higher transmission speed.
By using compression new firmware or update data over the air can not only be transmitted with less bandwidth, but also faster. This may be not an issue when using high bandwidth channels like WiFi, but other channels such as Bluetooth, Zigbee or mobile communication in areas with poor network coverage might have bandwidth limitations resulting in long transmission times.
To cover all conceivable use cases, SEGGER has developed four different editions of emCompress. Simply select your use case and see at a glance which emCompress edition fits it perfectly. In addition, you find a summary of all properties and use cases in the table below.
Many products require the ability to update their firmware in the field where very often the available bandwidth is limited. To speed up the update process, the data to be transferred to the device can be reduced. emCompress-PRO enables firmware updates with compressed images. It can receive a data stream and decompress it on the fly for the update module.
emCompress-Flex is the cost-effective solution for accelerating firmware updates, providing only one codec, compression on the host in a library, and only the decompressor in source code.
Firmware images typically grow with each update. At some point the new firmware might exceed the available flash size. If size reduction of static data in a firmware image is essential, emCompress-Embed is the right choice. With the small and fast decompressors, data stored in the memory in a compressed form can be decompressed on the fly, whenever needed
Most systems include digital assets for their user interface. To fit more data into available memory, or to design hardware with smaller memory, digital assets can be stored in compressed form.
When compressed data is part of the firmware image, emCompress-Embed is the perfect choice. The compressed data is embedded in the firmware and decompressed on demand. With emCompress-Embed’s group mode multiple assets can be compressed as a whole to achieve even better compression results.
For compressed data that is stored in external memory or updated without changing the firmware, emCompress-PRO enables on-demand decompression without having to know the data in advance.
Connected devices might receive compressed data from external sources and the system might need to be designed to accept and handle input created by other toolsemCompress-PRO is compatible with commonly used compression tools. A system receiving external data can select the decompressor on demand and be prepared for most customer use cases including handling and processing common archive formats.
When an embedded system includes an FPGA(-SoC) or CPLD, the firmware needs to load a configuration bitstream into the device. emCompress-Embed can compress bitstreams to reduce storage requirements. With decompression on the fly, the device can be immediately configured using decompressed chunks.
The amount of data collected and stored by data loggers makes this a prime application for compression. emCompress-ToGo is the right choice for storing compressed data logs, saving storage requirements and memory resources.
|Decompress static data|
|Decompress files & streams|
|Available algorithms||DEFLATE, LZMA, LZJU90, LZPJ||SMASH-2||DEFLATE, Huffman Encoding, LZW, LZSS, LZJU90, RLE-PAR||LZMA|
|Applications||Firmware updates, asset storage, external data transfer||Data loggers, Bluetooth devices, avionics and space technology, satellites||Reducing firmware size, storing configuration bitstreams, minimizing interface assets||Firmware updates|
|Compressor source code|
|Decompressor source code|
|Compressor object code library|
|Compressor and decompressor Java class|
Supported/included Not supported/not included Optionally available
 This feature is only supported in combination with the compressor source code add-on that is optionally available.