emCompress是一个压缩系统,可以降低嵌入式应用程序中的数据存储需求。压缩后的数据存储在目标系统的flash中。 在目标系统中,一个小型的、快速的解压缩软件可以在运行时解压数据。数据可以解压到RAM或将解压输出发送到应用函数。


emCompress特性

• 高效压缩
• 小的ROM占用
• 无需静态RAM,解压缩RAM使用可配置
• 运行在嵌入式微控制器上的压缩工具
• 丰富的编解码算法支持
• 为每个文件自动选择合适的编解码算法
• 支持文件和流数据压缩
• 易于配置和集成
• 无版税


更多存储空间

通过压缩数据,可以在flash,SPI flash或外部SD卡中存储更多的数据。这使数据记录仪可以存储更多信息,或可以使用较小的储存介质,降低成本。


更多带宽

使用低带宽链路的应用程序,从本地蓝牙应用到空间应用,例如月球着陆器向地球发送数据,压缩后,可以在较短的时间内传输更多的信息。


软件单向增长
随着设备复杂度的增加,客户期望在设备的生命周期内不断更新固件。现场固件映像和FPGA配置码流的更新非常重要。 通常,在一个设备的生命周期内,固件和其他静态内容的尺寸,包括新增加的软件功能,会不断增长。

emCompress可以压缩数据,从而减少目标设备上的空间占用。 解压器本身空间占用很小,位于ROM中。emCompress的解压器可以根据实际RAM裁剪,你可以在应用中解压静态内容,不使用RAM作为解压缓冲区。压缩的好处意味着你可以为想添加的功能回收设备中更多的空间。


在嵌入式系统中实时压缩数据
emCompress-ToGo是一种面向嵌入式系统的便携式压缩软件,但并不限于嵌入式应用。 它可以在没有RAM的情况下压缩和解压数据。 
同解压缩一样,可以很容易地在嵌入式系统上实现快速、高效的无损压缩。emCompress-ToGo支持多个压缩算法,可以在主机端完成压缩,在目标端解压缩(类似于emCompress-Embed)。在嵌入式系统中,特别是RAM有限的情况下,容易的、高效的压缩实现没有太多选择。
emCompress-ToGo使用SEGGER的SMASH(Small Microcontroller Advanced Super High)压缩算法,该算法专为需要高压缩比的应用程序设计。

 


数据解压和处理
emCompress-ToGo和emCompress-Flex有两种工作模式。一种直接在内存中压缩和解压,压缩或解压缩后的数据存储在用户定义的内存缓冲区。虽然缓冲区是临时的,但也需要为完整的未压缩数据及工作区保留足够的空闲内存。解压到内存对于动态固件映像非常有用。 

 第二种模式从函数中获取数据或向函数发送数据,可以很容易地用于流数据。 流解压对于FPGA编程或者网页内容非常有效。 


emCompress的典型应用
压缩有许多应用领域。包含不常用的静态数据和/或需要极高的压缩率的应用是emCompress-Flex和emCompress-Embed的目标应用。典型的案例包括用于编程FPGA和CPLD设备的配置码流,用于嵌入式Web服务器静态内容的永久文件,固件更新和多语言的用户接口消息。 

emCompress-ToGo的典型应用是面向嵌入式系统或由其产生的动态数据扩展-文件和流。这对数据记录仪和低带宽场景特别有用,如蓝牙设备、航空电子设备、空间技术或卫星。

版本

emCompress-ToGo

emCompress-Flex

emCompress-Embed

描述

通过小的、快速算法在主机和目标端压缩文件和流,几乎无需RAM

在主机端使用标准算法压缩文件,在目标端解压。

压缩链接到应用中的静态数据,在目标端解压。

目标端解压

目标端压缩

×

×

解压静态数据

解压文件&

×

可用算法

SMASH

LZMA

DEFLATE, LZW, LZSS, LZJU90, Huffman Encoding, RLE-PAR

案例

面向或由嵌入式系统创建的文件和流。数据记录器、蓝牙设备、航空和空间技术,卫星。

在主机端压缩文件,传递给应用,如固件更新。

编译到应用中的静态数据,FPGA流。


京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司