Алгоритми стиснення: опис, основні прийоми, характеристики

Демонстрація бібліотеки LZ77

Алгоритм LZ77 розглянемо на прикладі тексту«howtogeek». Якщо повторити його три рази, то він змінить його наступним чином.

Потім, коли він захоче прочитати текст назад, він замінить кожен примірник (h) на «howtogeek», повертаючись до вихідної фрази. Це демонструє алгоритм стиснення даних без втрат, оскільки дані, які вводяться, збігаються з одержуваними.

Це ідеальний приклад, коли більша частина тексту стискається за допомогою декількох символів. Наприклад, слово «це» буде стисло, навіть якщо воно зустрічається в таких словах, як «це», «їх» і «цього». З повторюваними словами можна отримати величезні коефіцієнти стиснення. Наприклад, текст зі словом «howtogeek», повтореним 100 разів має розмір три кілобайта, при компресії займе всього 158 байт, тобто з 95% “зменшенням”.

Це, звичайно, досить екстремальний приклад, але наочно демонструє властивості алгоритмів стиснення. У загальній практиці він становить 30-40% з текстовим форматом ZIP. Алгоритм LZ77, застосовується до всіх двійковим даними, а не тільки до тексту, хоча останній легше стиснути через повторюваних слів.