Giter Club home page Giter Club logo

bsm-b / stm32-fatfs-gzip Goto Github PK

View Code? Open in Web Editor NEW
21.0 1.0 1.0 783 KB

This project offers a simplified compressor that produces Gzip-compatible output with small resources for microcontrollers and edge computers. He uses the very basic LZ77 compression algorithm and static Deflate Huffman tree encoding to compress / decompress data into Gzip files.

License: Creative Commons Zero v1.0 Universal

C 99.56% Assembly 0.43% Makefile 0.01%
compression cubemx decompression deflate deflate-algorithm edge gzip stm32 zlib arm

stm32-fatfs-gzip's Introduction

Stm32-FatFs-Gzip

This project offers a simplified compressor that produces Gzip-compatible output with small resources for microcontrollers and edge computers. He uses the very basic LZ77 compression algorithm and static Deflate Huffman tree encoding to compress / decompress data into Gzip files.

He is based on a modified uzlib library to create a minimalist GNU GZIP Software clone to compress data into Gzip files under the FatFs File System and microcontrollers.

Compressor features

  • Save energy and time when sending data.
  • Data takes up less space, as a compression ratio can reach 50:1, but a ratio between 2:1 and 5:1 is common.
  • Encapsulate data.
  • Gzip file compatible with Multi-OS.

In our case

This example is written for an Arm Cortex-M0 processor of the Stm32 family with the FatFs file system (to simplify playing with files on SDcard or eMMC, for more information , you can see STM32-FatFs-FreeRtos ).

We compressed the data from 159 bytes to 84 bytes, and by adding additional information to build the structure of a GZIP file, we got 102 bytes.

Reference

https://github.com/pfalcon/uzlib

https://www.rfc-editor.org/rfc/rfc1952

https://docs.fileformat.com/compression/gz

https://www.gnu.org/software/gzip

License

Creative Commons Zero v1.0 Universal

stm32-fatfs-gzip's People

Contributors

bsm-b avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

walidhammami

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.