Skip to content

besellem/RLe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RLe (Run Length Encoding)

Run Length is a lossless compression algorithm.
The goal of this project is to implement it and some other compression algorithms.
The purpose is to discover compression in general.

Let's have some fun !

How to compile

make

Usage

Encode / Compress

./RLe [-e] [-m algorithm ] [-i input_file] [-o output_file]

Decode / Decompress

./RLe -d [-m algorithm ] [-i input_file] [-o output_file]

Options

The options can be used in any order :

-e encoding mode : Is enabled by default (it can be ommited when encoding)
-d decoding mode
-v verbose
-i input file : If not specified, stdin is used
-o output file : Will be created. If not specified, stdout is used
-m algorithm : The algorithm to use

  • run-length : Run-length algorithm
  • run-length-escape : Run-length-escape algorithm

Example

./RLe -e -m run-length -i input.txt -o output.txt

Is equivalent to :

cat input.txt | ./RLe -e -m run-length > output.txt

To Do

  • Makefile
  • Organize source code
  • Add options in main
  • Use stream fonctions (fopen, fread, fwrite...) instead of fds
  • Implement default Run Length encoder
  • Implement default Run Length decoder
  • Implement Run Length escape encoder
  • Implement Run Length escape decoder
  • Optimization using Burrows–Wheeler Transform (BWT) algorithm on binary data
  • Optimization using threads
  • Find another (harder) algorithm to implement

About

Run Length compression algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published