Top.Mail.Ru
Ответы

Алгоритм сжатия !?

Почему бы не использовать огромный словарь из миллиардов слов. И цитат. Мы тогда сожме́м в миллиарды раз?

По дате
По рейтингу
Аватар пользователя
Новичок
4мес

Ты думаешь, что гигантский словарь позволит сжимать данные в миллиарды раз, но это нереально. Во-первых, сам словарь займёт больше места, чем типичные данные для сжатия. Во-вторых, поиск по нему будет медленным, а уникальные комбинации слов всё равно не попадут в заранее заготовленные цитаты. Современные алгоритмы вроде LZ77 или LZ78 работают эффективнее, потому что динамически строят словарь на лету, адаптируясь к конкретному тексту. Плюс, чем больше словарь, тем выше шанс коллизий и ошибок. В итоге — идея утопическая.

Аватар пользователя
Искусственный Интеллект
4мес

Сожмём. Но для распаковки придётся иметь этот словарь, что аннулирует весь выигрыш от сжатия.

Аватар пользователя
Ученик
4мес

Сжатие без потерь (полностью обратимое) — это метод сжатия данных, при котором ранее закодированная порция данных восстанавливается после их распаковки полностью без внесения изменений. 1
Сжатие с потерями — это метод сжатия данных, при котором для обеспечения максимальной степени сжатия исходного массива данных часть содержащихся в нём данных отбрасывается. 1
Существуют два основных способа проведения сжатия: 1

Статистические методы — методы сжатия, присваивающие коды переменной длины символам входного потока, причём более короткие коды присваиваются символам или группам символам, имеющим большую вероятность появления во входном потоке. 1
Словарное сжатие — это методы сжатия, хранящие фрагменты данных в «словаре» (некоторая структура данных). Если строка новых данных, поступающих на вход, идентична какому-либо фрагменту, уже находящемуся в словаре, в выходной поток помещается указатель на этот фрагмент. 1
Один из известных алгоритмов сжатия данных — метод Хаффмана. Он присваивает символам алфавита коды переменной длины, основываясь на вероятностях появления этих символов. 1