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

SVI f9a778ce4a SVI Переход на kern v3 7 ماه پیش
cmd f9a778ce4a SVI Переход на kern v3 7 ماه پیش
lev0 f9a778ce4a SVI Переход на kern v3 7 ماه پیش
lev1 f9a778ce4a SVI Переход на kern v3 7 ماه پیش
lev2 f9a778ce4a SVI Переход на kern v3 7 ماه پیش
lev3 f9a778ce4a SVI Переход на kern v3 7 ماه پیش
util 365f466c7f SVI Добавление текста для сжатия 3 سال پیش
vendor f9a778ce4a SVI Переход на kern v3 7 ماه پیش
.env e0dcb06acc SVI Проверка гипотезы 7 ماه پیش
.gitignore 35ac7fdb07 SVI Реализация пакера 3 سال پیش
LICENSE 9d2fb13666 Initial commit 3 سال پیش
README.md 3653483e80 SVI Добавление кода, типов, документации 3 سال پیش
Taskfile.yml f77c1698c4 SVI Исправление пуска 7 ماه پیش
go.mod f9a778ce4a SVI Переход на kern v3 7 ماه پیش
go.sum f9a778ce4a SVI Переход на kern v3 7 ماه پیش

README.md

packer

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

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

Схема

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

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

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

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

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

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