Skip to content

a quick runline compression algorithm built in python 3.4

Notifications You must be signed in to change notification settings

Br0kensword/run_line_compression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project was completed using Python 3 to take advantage of how easy it is to manipulate text/strings in the language.

Took some time to reasearch compression, run-line seemed the easiest to impelment with decent results given the amount of time I had to work with, attempted to incorporate burrows-wheeler transforms but was too complicated/ didnt always preserve the image after decoding. With this method, if the ascii image is big enough and has enough repitition the compression works fairly well (as the case was with data.txt and akira.txt). That being said often times I found that the encoded data could be larger than the original if there wasnt enough repitition (in the case of cloud.txt and ff7.txt). If a file would lead to an inefficient use of space I would just send the original file as that way we would at least do no worse than the original file size.

This project requires Python 3 to work. All imported modules are Python builtins and should not require extra instillation.

To run the main project: python ascii_transport.py --file yourinput.txt

--file takes either the name of the txt file if its in the same directory as ascii_transport.py or the path to file if its somewhere else

To run unittests: python ascii_test.py #please place the following test files in the same directory as ascii_test.py (empty.txt, data.txt, cloud.txt) for unittests to work properly

About

a quick runline compression algorithm built in python 3.4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages