Почему файл размером 7zip больше, чем необработанный?

Возможный дубликат:
Почему ZIP Compression ничего не сжимает?

Я попробовал 7zipping .exe-файл, но на самом деле он стал больше.

  • Есть ли бесплатный способ сжать PDF?
  • Почему ZIP Compression ничего не сжимает?
  • Как сжать файл изображения JPG
  • Как сжать .pdfs в Word 2007?
  • Сжимает ли файлы в XP замедляет работу?
  • Более эффективная программа сжатия файлов для многих идентичных файлов?
  • Введите описание изображения здесь

    Это ожидаемый результат?

  • Как архивировать с помощью подкаталогов с помощью командной строки 7-Zip? Или, как я могу сохранить структуру папок во время архивации?
  • Почему zipping zip-файл не уменьшает его размер?
  • Как распаковать zip-архивы, которые имеют более 260 символов в их имени?
  • Как извлечь неполный 7-Zip-файл?
  • Как разбить большой файл на Windows?
  • Насколько легко восстановить несжатые данные, если один сектор поврежден в архиве 7zip?
  • 5 Solutions collect form web for “Почему файл размером 7zip больше, чем необработанный?”

    Это сводится к концепции, называемой энтропией . См. Википедию .

    Основная идея заключается в том, что если бы существовала операция сжатия, которая всегда могла сделать файл меньше, тогда логика диктует, что упомянутая операция сжатия сможет уменьшить любой файл до 0 байтов и все еще сохранить все данные. Но это абсурдно , потому что мы знаем, что 0 байтов вообще не могут передавать какую-либо информацию. Таким образом, мы только что доказали, что не существует алгоритма сжатия, который всегда делает его вход меньше, потому что, если бы это было так, любая информация могла быть сохранена в 0 байтах, но 0 байтов подразумевает отсутствие информации, T одновременно не имеют никакой информации и всей информации. Следовательно, это абсурдно.

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

    Уже сжатые данные, как правило, являются ужасным кандидатом на дальнейшее сжатие, поскольку большинство алгоритмов сжатия без потерь основаны на тех же теоретических принципах. Сжатие данных с сжатым сжатием возможно еще больше; Но это менее эффективно, чем просто сжать его с помощью наилучшего доступного алгоритма из исходных данных для начала.

    Например, если у вас есть текстовый файл на 100 МБ и сжимать его с помощью обычного алгоритма Zip, он может быть сжат до 50 МБ. Если вы затем сжимаете Zip-файл с помощью LZMA2, вы можете получить его до 40 или 45 МБ, поскольку LZMA имеет более высокую степень сжатия для большинства сжимаемых данных, чем Zip. Поэтому разумно, что он также может сжимать данные Zip, потому что Zip полностью не высасывает из него всю энтропию. Но если вы полностью исключите контейнер Zip, вы можете получить его еще меньше, сжав исходный текст с помощью LZMA2, потенциально уступая что-то порядка 30-35 МБ (это просто «номера воздуха», чтобы проиллюстрировать концепцию) ,

    В случае двоичного файла, который вы пытаетесь сжать, он больше, потому что формат файла 7-Zip должен создать собственную внутреннюю структуру и упаковать данные уже сжатого исполняемого файла в формат 7-Zip. Это содержит такие слова, как словарь, заголовок файла и т. Д. Эти дополнительные данные обычно более чем компенсируются экономией сжатия самих данных, но, похоже, исполняемый файл, который вы пытаетесь сжать, уже сжат с помощью какой-либо формы LZMA; В противном случае это, скорее всего, уменьшит размер исполняемого файла или немного его увеличит, а не увеличит его на 2 МБ (что очень много).

    Основные алгоритмы сжатия, используемые в 7z, без потерь . Это означает, что вы можете итеративно сжимать-распаковывать файл много раз. Кроме того, после каждой итерации файл останется неизменным.

    К сожалению, вы не можете ожидать, что алгоритм сжатия без потерь будет применяться много раз с всегда положительным результатом. Существует строгая граница, которую он не может перепрыгнуть. Грубо говоря, эта граница зависит от того, насколько тесно входная последовательность объединяет случайные данные. Прежде всего, алгоритмы без потерь используются для сжатия файлов, передачи данных в Интернете HTML, резервных копий и других операций, которые ожидают, что выходной файл будет распакован в точно такой же исходный входной файл.

    В отличие от сжатия без потерь, вы всегда можете ожидать уменьшения размера файла после сжатия с помощью алгоритмов сжатия с потерями (или с потерями) . Нижняя сторона заключается в том, что вы не можете точно восстановить исходный файл после одной итерации сжимать-распаковать. Эти алгоритмы наиболее известны для передачи аудио / видео / изображений и хранения.

    Bzip2 , LZMA , LZMA2 и другие алгоритмы, используемые в формате 7z , без потерь . Поэтому будет предел, после которого он больше не может сжиматься. Кроме того, исполняемые изображения (.exe) обычно являются сильно сжатыми файлами. 7zip, как и многие другие инструменты сжатия, внедряют некоторые метаданные, которые на самом деле могут сделать выходной файл более крупным.

    Мозговой тизер: что, если бы у нас был алгоритм без потерь, который всегда мог бы уменьшить размер файла?

    В этом случае вы всегда увидите, что сжатый файл меньше входного файла. См. Комментарий ниже, почему это невозможно.

    Если исходный исполняемый файл уже был сжат (или содержит сильно сжатые данные или несжимаемые данные), то сжатие его увеличит размер.

    Большинство алгоритмов сжатия используют то, что называется таблицей символов, в основном просто peices файла, который он использует в качестве элементов, которые он может сжимать. Это, конечно, создает некоторые накладные расходы в файле, но обычно приводит к значительно меньшему файлу.

    В уже сжатых файлах он по-прежнему создает набор символов, но очень мало можно уменьшить размер. В вашем случае таблица символов уже сжатого файла, вероятно, находится в районе 2 МБ или, возможно, больше, если ему удалось сделать некоторое сжатие.

    Сжимающая идеа:

    Программное обеспечение для сжатия создает список файлов и исключает дублирование содержимого.

    При сжатии уже сжатых файлов вы можете получить сжатые файлы больше, чем оригинал.

    Давайте будем гением компьютера.