Skip to content

University assignment for the lzw compression algorithm

License

Notifications You must be signed in to change notification settings

Phundrak/lzw-assignment

Repository files navigation

CircleCI Travis Badge Codacy Badge CodeFactor SonarCloud Badge Spacemacs Badge

LZW Compressing tool

This is a university assignment for which I aim to create an LZW algorithm implementation to create a small tool similar to gzip and gunzip that can compress and uncompress files in a lossless fashion.

This project is written is C++17, compiled with clang under a UNIX environment. Other compilers and environments will not be tested.

How to use it

Currently, five different options are available to the user:

  • -h or --help will show how to use projet_lzw
  • -c or --compress tells projet_lzw to compress the input file
  • -u or --uncompress tells projet_lzw to uncompress the input file
  • -i <file> or --input <file path> specifies the input file to be compressed or uncompressed (MANDATORY)
  • -o <file> or --output <file path> specifies the name of the output file. If not used, the default output name for compression is output.lzw, and the default name for uncompressing is <filename>_uncompressed.

By default, projet_lzw will uncompress the (mandatory) input file.

It is planned to add in the future a sixth option, -p or --passes that will allow to compress multiple times the input file.