Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба Алгоритмы сжатия без потерь - 4 сем.docx
Скачиваний:
3
Добавлен:
08.07.2025
Размер:
454.72 Кб
Скачать

Практическая часть

Тестовые файлы:

- enwik7

- текст на русском языке (чехов.txt)

- exe файл (SafeMain.exe)

- Черно-белое изображение (цвет.raw, размер 2048*2048, рис. 1 - а)

- Изображение в оттенках серого (piter.raw, 800*600, рис. 1 - б)

- Цветное изображение (bw.raw, 800*600 рис. 1 - в)

а)

б)

в)

Рисунок 1 - тестовые изображения

Задание 1. - Исследование зависимость энтропии от размера блоков, на которые разбивается текст, подаваемый на вход BWT+MTF, для enwik7.

Для выполнения данного задания файл enwik7 был разбит на блоки размером от 500 до 15000 байтов с шагом 1000. Для входных данных применялись алгоритмы преобразования BWT и MTF и обратные преобразования для проверки.

Рисунок 2

Полученные результаты показали, что с увеличением размера блока энтропия постепенно понижается. Происходит это из-за улучшения структуры данных (появились длинные последовательности одинаковых символов).

Задание 2. - Исследовать зависимость коэффициента сжатия от размера буфера для алгоритма LZ77.

Для исследования зависимости в функции было выставлено окно размером 1024 байта.

Другой грфик, где зависимость от окна, а не буфера

Как видно на графике, по мере увеличения размера буфера коэффициент сжатия перестаёт сильно меняться. Начиная с 32 байт, он остается одинаковым, равным 1,16.

Задание 3. - Исследование эффективности компрессоров для тестовых данных.

Файл

Компрессор

Размер файла

Коэфф. сжатия

До/после компрессии

После компрессии

Enwik7

HA

10000000/

10000000

6412387

1.559

RLE

10374322

0.964

BWT+RLE

9039063

1.106

BWT+MTF+HA

5227796

1.913

BWT+MTF+RLE+HA

5995126

1.668

LZ77

17994670

0.556

LZ77+HA

7729756

1.294

LZ78

6760525

1.479

LZ78+HA

5408977

1.849

Текст на русском

HA

361120/

361120

187715

1.924

RLE

364470

0.991

BWT+RLE

217222

1.662

BWT+MTF+HA

147188

2.453

BWT+MTF+RLE+HA

142928

2.527

LZ77

371850

0.971

LZ77+HA

225898

1.599

LZ78

260240

1.388

LZ78+HA

174647

2.068

.exe

HA

5201376/

5201376

4276239

1.216

RLE

4965312

1.048

BWT+RLE

4289708

1.213

BWT+MTF+HA

3217684

1.616

BWT+MTF+RLE+HA

3465474

1.501

LZ77

10423255

0.499

LZ77+HA

4259389

1.221

LZ78

4790860

1.086

LZ78+HA

3754424

1.385

Ч/б изображение

HA

4194304/ 4194304

524289

8.000

RLE

66056

63.496

BWT+RLE

66056

63.496

BWT+MTF+HA

524289

8.000

BWT+MTF+RLE+HA

12386

338.633

LZ77

1233670

3.400

LZ77+HA

293185

14.306

LZ78

20480

204.800

LZ78+HA

10309

406.858

Файл

Компрессор

Размер файла

Коэфф. сжатия

До/после компрессии

После компрессии

Серое изображение

HA

1440000/

1440000

1404264

1.025

RLE

828886

1.737

BWT+RLE

1021896

1.409

BWT+MTF+HA

648344

2.221

BWT+MTF+RLE+HA

751320

1.917

LZ77

3015125

0.478

LZ77+HA

1337311

1.077

LZ78

1247465

1.154

LZ78+HA

946644

1.521

Цветное изображение

HA

1440000/

1440000

1385807

1.039

RLE

1440000

0.988

BWT+RLE

1199855

1.200

BWT+MTF+HA

1041225

1.383

BWT+MTF+RLE+HA

1062219

1.356

LZ77

4957950

0.290

LZ77+HA

1720988

0.837

LZ78

1776635

0.811

LZ78+HA

1365688

1.054

Проанализировав данные из таблицы, можно сделать вывод, что самыми эффективными компрессорами оказались BWT+MTF+HA (enwik7, exe файл, серое изображение, цветное изображение) и BWT+MTF+RLE+HA (русский текст). Однако для черно-белого изображения лучшее сжатие получилось через компрессор LZ78+HA.

Ссылка на гитхаб: https://github.com/RoKeirin/aisd_lab1

Коды алгоритмов: