Python/compression
Lucia Harcekova 90686e39b9
Add LZ77 compression algorithm (#8059)
* - add "lz77_compressor" class with compress and decompress methods using LZ77 compression algorithm

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - use "list" instead "List", formatting

* - fix spelling

* - add Python type hints

* - add 'Token' class to represent triplet (offset, length, indicator)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - add test, hange type rom List to list

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* - remove extra import

* - remove extra types in comments

* - better test

* - edit comments

* - add return types

* - add tests for __str__ and __repr__

* Update lz77.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2022-12-28 18:34:35 +01:00
..
image_data Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
__init__.py Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
burrows_wheeler.py Add flake8 pluin flake8 bugbear to pre-commit (#7132) 2022-10-13 18:03:06 +02:00
huffman.py Upgrade to flake8 v6 (#8007) 2022-11-29 16:56:41 +01:00
lempel_ziv_decompress.py Add pep8-naming to pre-commit hooks and fixes incorrect naming conventions (#7062) 2022-10-13 00:54:20 +02:00
lempel_ziv.py [mypy] annotate compression (#5570) 2021-10-26 12:29:27 +02:00
lz77.py Add LZ77 compression algorithm (#8059) 2022-12-28 18:34:35 +01:00
peak_signal_to_noise_ratio.py refactor: Move constants outside of variable scope (#7262) 2022-10-16 15:03:29 +05:30
README.md Add README files 2/8 (#5766) 2021-11-11 21:39:54 +08:00
run_length_encoding.py Run length encoding (#6492) 2022-10-02 16:57:11 +02:00

Compression

Data compression is everywhere, you need it to store data without taking too much space. Either the compression lose some data (then we talk about lossy compression, such as .jpg) or it does not (and then it is lossless compression, such as .png)

Lossless compression is mainly used for archive purpose as it allow storing data without losing information about the file archived. On the other hand, lossy compression is used for transfer of file where quality isn't necessarily what is required (i.e: images on Twitter).