Упаковщик данных

SVI f4e5c92ff9 SVI Корректировка расчёта степени сжатия 10 months ago
cmd 35ac7fdb07 SVI Реализация пакера 10 months ago
internal f4e5c92ff9 SVI Корректировка расчёта степени сжатия 10 months ago
pkg 35ac7fdb07 SVI Реализация пакера 10 months ago
util 365f466c7f SVI Добавление текста для сжатия 10 months ago
.gitignore 35ac7fdb07 SVI Реализация пакера 10 months ago
LICENSE 9d2fb13666 Initial commit 10 months ago
Makefile 35ac7fdb07 SVI Реализация пакера 10 months ago
README.md 3653483e80 SVI Добавление кода, типов, документации 10 months ago
go.mod 3653483e80 SVI Добавление кода, типов, документации 10 months ago

README.md

packer

Упаковщик данных.

Игрушечный упаковщик для проверки идеи.

Схема

flowchart TD
    TapeIn-->Compressor
    Compressor-->Sequencer
    Sequencer --> Compressor
    Compressor-->TapeOut

Входная лента передаёт данные частотному анализатору с размером слова 8 бит.

Частотный анализатор говорит компрессору какую наиболее частотную комбинацию символов заменить на подстановочный символ и так по кругу, пока не окажется, что заменять больше нечего (меньше 4х замён -- это минимальное значение для выйгрыша по месту).

Далее, полученная комбинация отправляется на выходную ленту с новым архивным размером слова (с высокой вероятностью заметно больше 8 бит).

Образец для сжатия

В папке util лежит HTML-файл "Война и мир" размером 5.7 МБ.