Skip to content

Implementation of Bwt, Lzw, Bwt+Lzw and Huffman algorithms

Notifications You must be signed in to change notification settings

antomys/Compression-Algorithms

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Compression Algorithms

This repository houses a collection of implemented compression algorithms along with demo projects that showcase their functionality. It serves as a resource for developers interested in data compression techniques and their practical applications.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project Roadmap
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

This project is part of my bachelor diploma work. See Diploma papers. This project is a library of compression algorithms implemented in code. It serves two main purposes:

  • To provide a collection of ready-to-use compression algorithms for developers and researchers.
  • To demonstrate the practical application of these algorithms through demo projects.

The repository includes:

  • A variety of compression algorithms, each implemented and optimized for practical use
  • Demo projects that showcase how these algorithms work in real-world scenarios
  • Documentation to help users understand and utilize the implemented algorithms

Whether you're a developer looking to integrate compression into your project, a student learning about data compression, or a researcher exploring different compression techniques, this repository aims to be a valuable resource.

(back to top)

Roadmap

  • Implement standard Lempel–Ziv–Welch (LZW) algorithm;
  • Implement standard Huffman algorithm;
  • Implement standard Burrows-Wheeler transformation:
    • Implement custom query;
    • Implement Suffix Array;
  • Implement Move-To-Front (MTF) algorithm;
  • Implement Run-Length-Encoding (RLE) algorithm;
  • Modify Lzw with Bwt without anything else;
  • Modify Huffman with Bwt without anything else;
  • Develop and implement custom Bwt + Mtf + Lzw algorithm;
  • Develop and implement custom Bwt + Mtf + Huffman algorithm;
  • Add demo projects;
  • Add statistics;

Built With

  • NET

(back to top)

Getting Started

Welcome to the Curious Benchmarks! This repository is designed to help you explore and understand performance characteristics of various .NET approaches. Follow these steps to get started:

Prerequisites

Installation

  1. Clone the Repository

    git clone https://github.com/antomys/Compression-Algorithms.git
    cd .\src\main
  2. Build the Solution

    dotnet build
  3. Run Benchmarks. Navigate to a specific benchmark project and run:

    dotnet run -c Release

(back to top)

If you have any questions or suggestions, please open an issue in the repository.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Ihor Volokhovych - @incomingwebhook - igorvolokhovych@gmail.com

Project Link: https://github.com/antomys/Compression-Algorithms

(back to top)

Acknowledgments

(back to top)

About

Implementation of Bwt, Lzw, Bwt+Lzw and Huffman algorithms

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published