Какие виды алгоритмов сжатия способны сжимать даже плохо сжимаемые данные, но при этом не увеличивая конечный размер?

Интересует для целей архивации данных: какие алгоритмы способны сжимать разнородные данные, но при этом не увеличивая размер относительно исходного (0% < x <= 100%).
Скажем, в формате ZIP можно указывать какой алгоритм сжатия был использован: store (100% исходного), Deflate, ...
Допустим, сжимать, если данные хоть немного сжимаемы. А если данные вообще не сжимаемы (полностью случайные данные), то сохранить всё как есть.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
1) Вы смешиваете алгоритмы сжатия, форматы данных и программы сжатия (архиваторы). Определитесь, что именно из этих 3 Вас интересует.

2) Теоретически почти любая программа сжатия, определив, что данные после сжатия занимают место больше, чем в оригинале, заменит алгоритм на STORING.
НО у Вас все равно появятся накладные расходы в виде заголовка этого формата. Более того, в теории этот заголовок не может быть меньше 1 бита, т.к. информацию о том, применялся ли алгоритм сжатия или нет, необходимо как-то донести до приемной (распаковывающей) стороны, если только Вы не будете использовать для этого out-of-band-data, например, изменять/сохранять исходное расширение файла в зависимости от использованного метода/формата.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Foolleren
@Foolleren
Компас есть, копать не люблю...
попробуйте freearc, умеет искать повторы в диапазоне ажно 2 гб, можно "бустануть" внешними архиваторами, для улучшения сжатия отдельных типов файлов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы