Skip to content

Information Theory Course - Final work, Winter 2020, BIU

Notifications You must be signed in to change notification settings

JudahGazit/information-theory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

information-theory

Information Theory Course - Final work, Winter 2020, BIU
pdf file: https://github.com/JudahGazit/information-theory/raw/master/information.pdf

This is my project for Information Theory course 88-782.
The new compression is called Rotem Compression or rg compression (my initials).

It utilize 4 methods, described in the attached PDF file:

  1. Lempel-Ziv-Welch method (the method in active use here)
  2. Huffman method
  3. Lempel-Ziv-Welch method + Huffman for encoding the results
  4. "Words Encoding" - using Huffman method to encode words instead of singular symbols

Project Structure

├── README.md               // YOU ARE HERE
├── information.pdf         // the PDF paper explaining the project
├── setup.py                // standard python setup file
├── app.py                  // main file for the package, applying the compression on user input
├── rgcompress              // bash file initiating the pyton app.py
├── test                    
|   └── ...                 // contains demos for input file, zip compression and rg compression
├── latex                    
|   └── ...                 // contains raw lyx files used for making the pdf file
└── rotem_compressor
    ├── contract
    │   └── ...             // python interfaces for the compression methods
    ├── data_models
    │   └── ...             // data models used by the compression methods
    ├── huffman_compression
    │   └── ...
    ├── lzw.py
    ├── words_encoder.py
    ├── utils.py            // utilities used by the the compression methods 
    ├── rotem_compressor.py // the main compressor, applying multiple compressions on top of each other
    └── unittests
        └── ...             // unittests for the entire project 

Usage:

for compression: rgcompress -i <inputFile> -o <outputFile>
or python app.py -i <inputFile> -o <outputFile>

for decompression: rgcompress -d -i <inputFile> -o <outputFile>
or python app.py -d -i <inputFile> -o <outputFile>

About

Information Theory Course - Final work, Winter 2020, BIU

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages