Почему после сжатия файла не меняется объем

Обновлено: 03.07.2024

Я написал программу java для сжатия. Я сжал какой-то текстовый файл. Размер файла после сжатия уменьшается. Но когда я попытался сжать файл PDF. Я не вижу никаких изменений в размере файла после сжатия.

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

Спасибо Сунил Кумар Саху

Используя iis, как мы можем проверить размер файла скрипта, например библиотеки jQuery, после сжатия gzip?

У меня есть файл какого-то случайного размера текста = 27 ГБ, и после сжатия он становится 40 Мб или около того. И файл 3.5 GB sql становится 45 Мб после сжатия. Но текстовый файл размером 109 Мб становится 72 Мб после сжатия, так что же с ним может быть не так. Почему так меньше сжато, это должно.

Сжатие файлов работает путем удаления избыточности. Поэтому файлы, которые содержат мало избыточности, сжимаются плохо или вообще не сжимаются.

Файлы без избыточности, с которыми вы, скорее всего, столкнетесь, - это файлы, которые уже были сжаты. В случае PDF это, в частности, будет PDFs, состоящее в основном из изображений, которые сами находятся в сжатом формате изображения, таком как JPEG.

jpeg/gif/avi/mpeg/mp3 и уже сжатые файлы не сильно изменятся после сжатия. Вы можете увидеть небольшое уменьшение размера файла.

Сжатые файлы не уменьшат свой размер после сжатия.

Пять лет спустя у меня есть, по крайней мере, некоторые реальные статистические данные, подтверждающие это.

Я сгенерировал 17439 многостраничных pdf-файлов с PrinceXML общим объемом 4858 Мб. A zip -r archive pdf_folder дает мне archive.zip размером 4542 Мб. Это 93.5% исходного размера, поэтому не стоит экономить место.

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

Однако для любого алгоритма в целом существует много файлов, которые не могут быть сжаты им, но могут быть хорошо сжаты другим алгоритмом.

PDF файлы уже сжаты. Они используют следующие алгоритмы сжатия:

  • LZW (Lempel-Ziv-Welch)
  • FLATE (ZIP, в PDF 1.2)
  • JPEG и JPEG2000 (PDF версия 1.5 CCITT (стандарт факсимильной связи, группа 3 или 4)
  • Сжатие JBIG2 (PDF версия 1.4) RLE (Кодирование длины выполнения)

В зависимости от того, какой инструмент создал PDF и версию, используются различные типы шифрования. Вы можете сжать его дальше, используя более эффективный алгоритм, потеряв некоторое качество, преобразовав изображения в файлы jpeg низкого качества.

Здесь есть отличная ссылка на это

Файлы, зашифрованные с помощью хорошего алгоритма, такого как IDEA или DES в режиме CBC, больше не сжимаются, независимо от их исходного содержимого. Вот почему программы шифрования сначала сжимают и только затем запускают шифрование.

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

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

Media файлы, как правило, плохо сжимаются. JPEG и MPEG не сжимаются, в то время как вы можете сжимать файлы .jpg

Файл, который уже сжат, обычно не может быть сжат дальше. Например mp3, jpg, flac и так далее. Вы даже можете получить файлы большего размера из-за повторно сжатого заголовка файла.

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

Каков разумный минимальный размер блока сжатия для коэффициента сжатия при использовании алгоритма LZO -like? Я ожидаю, что сжатие 32B будет бесполезным, но сжатие 512B может быть хорошим. Я слишком далеко? Пожалуйста, нет check yourself answers :)

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

В общем, PDFs содержит изображения и такие, которые уже сжаты, поэтому он не будет сжиматься намного дальше. Ваш алгоритм, вероятно, способен обеспечить лишь скудную экономию, если таковая имеется, основываясь на текстовых строках, содержащихся в PDF?

Простой ответ: сжатые файлы (или мы могли бы уменьшить размеры файлов до 0, сжав несколько раз :). Многие форматы файлов уже применяют сжатие, и вы можете обнаружить, что размер файла уменьшается менее чем на 1% при сжатии фильмов, mp3, jpeg и т. Д.

Вы можете добавить в список все форматы файлов Office 2007 (из @waqasahmed):

Поскольку Office 2007 .docx и .xlsx (и т. Д.) На самом деле являются архивированными файлами .xml, вы также можете не заметить значительного уменьшения их размера.

Их аппроксимация, выполненная криптографически сильной функцией hash или шифром, например:

"".join(map(b2a_hex, [md5(str(i)) для i в диапазоне(. )]))

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

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

Таким образом, существуют бесконечные файлы, которые не уменьшают свой размер после сжатия, и, кроме того, не требуется, чтобы файл был файлом с высокой энтропией :)

Похожие вопросы:

Используя 7zip, я сжал

15GB изображений, разделенных по папкам на 15 файлов размером 1024 МБ. Метод сжатия: LZMA2; уровень: Ultra; размер словаря: 64M; В конце сжатия некоторые файлы изменили свое.

Я использую раскадровку и TabbarViewController. Tabbaritems уменьшают свой размер после нажатия. Изображения задаются в NavigationController, имя в NavigationController - это имя набора изображений.

Я хочу вычислить / оценить, каким будет размер файла изображения (. jpg) после сжатия со значением Encoder.Quality. Здесь я не должен выполнять какое-либо сжатие перед оценкой, есть ли какая-либо.

Используя iis, как мы можем проверить размер файла скрипта, например библиотеки jQuery, после сжатия gzip?

У меня есть файл какого-то случайного размера текста = 27 ГБ, и после сжатия он становится 40 Мб или около того. И файл 3.5 GB sql становится 45 Мб после сжатия. Но текстовый файл размером 109 Мб.

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

Каков разумный минимальный размер блока сжатия для коэффициента сжатия при использовании алгоритма LZO -like? Я ожидаю, что сжатие 32B будет бесполезным, но сжатие 512B может быть хорошим. Я слишком.

После завершения приложения у вас возникают ситуации, когда вам нужно что-то изменить в своем коде. Если вы редактируете его непосредственно из файла zip и просто обновляете его; насколько важно.

Я пытаюсь сравнить размер группы изображений до и после сжатия, используя аргумент quality=90 из OpenCV. Но перед сжатием я хочу обрезать их все до фиксированного размера. Однако я не понимаю.

Времена архиваторов постепенно заканчиваются и с каждым годом, пользователи всё реже сжимают информацию.

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

По привычке или из-за своих переживаний о лишнем занимаемом месте на диске, некоторые всё же продолжают сжимать данные, но это не всегда работает. Почему не сжимаются файлы архиватором? Дело в том, что некоторые данные вообще не имеет смысла пытаться сжимать, так как это невозможно.

Почему не сжимаются файлы архиватором?

Какие файлы не сжимаются архиваторами?


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

Сработать такой метод может только в том случае, если второе сжатие производится с более свежего софта.

Что касается музыки и видео файлов, то их вообще можно не сжимать. Видеозаписи по умолчанию сжимаются кодеками-архиваторами, поэтому их добавление в архив не поможет сократить объем занимаемой памяти.

Аудиофайлы можно добавить в архив для сжатия, но максимум, что вам удастся «выкроить» это 5-7% памяти, согласитесь, из-за этого можно вообще не терять время на архивацию.

Графические элементы (картинки), также лучше не архивировать, а сжимать, путем редактирования. К примеру, вы можете изменить количество цветов, ведь не всегда требуется передача нескольких тысяч цветовых схем, иногда вполне достаточно 256 цветовой палитры.

Также, отлично экономит место уменьшение размера изображений и изменение формата. Всем известно, что PNG файлы занимают намного больше места, чем привычный формат Jpg.

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

Но если архиваторы не так нужны сегодня, почему их разработчики продолжают выпускать обновления и даже продают программные продукты? Объяснить это не сложно, за счет архиваторов, можно удобно группировать данные, например, чтобы не передавать их через интернет по одному.

Также, путем архивации информации, можно увеличить её защиту, ведь даже в стандартном наборе WinRar есть функция для установки пароля.

Как сжать файлы в архиве WinRAR максимально? Выбирайте новейший формат RAR5, метод сжатия «Максимальный» и превышающий вес архивируемых файлов размер словаря. Архивирование не вызовет сложностей даже у начинающих пользователей, если четко следовать приведенным в пошаговой инструкции рекомендациям.

Формата архива

WinRAR архивирует файлы в трех форматах: RAR5, RAR4 и ZIP. ZIP устарел: обеспечивает низкую компрессию и сжимает дольше. Выбирайте ZIP, только если у получателя архива нет доступа к WinRAR. RAR4 — это формат файлов предыдущей версии утилиты Винрар 4. Чтобы обеспечить архиватору WinRAR максимальное сжатие, не меняйте предложенный утилитой формат RAR.

выбор формата сжатия

Метод сжатия

По умолчанию устанавливается «Обычный» метод. Раскройте выкидной список и выберите значение «Максимальный».

выбор метода сжатия

Размер словаря

Программа автоматически регулирует размер словаря и уменьшает значение в соответствии с весом сжимаемых файлов. Увеличение размера словаря повышает требования к объему свободной оперативной памяти, которая используется при архивировании. Чтобы уменьшить вес архива, задайте значение 1024 Мб.

выбор размера словаря

Для упаковки однотипных файлов в формате RAR используйте параметр «Создать непрерывный архив». Данные будут сжиматься как непрерывный поток. Поставьте галочку в параметрах архивации справа, как показано на скриншоте.

параметры максимального сжатия

Практические эксперименты

Проведем два теста и разберемся, как максимально сжать файлы в WinRAR. Исследуем степень сжатия и время выполнения операции в зависимости от параметров архивации. Результат эксперимента представим в таблице.

1. Вес папки — 67,9 Мб, расширения файлов: .docx, .xls и .vsd.

Параметры сжатия Время архивирования Размер архива к весу исходного файла Установленный программой размер словаря
Формат — RAR, метод сжатия — максимальный, размер словаря — 1024 Мб, непрерывный архив 15 с 66 % 128 Мб
RAR, максимальный метод сжатия, размер словаря — 1024 Мб 7 с 73 % 4 Мб
RAR, обычный метод, словарь — 32 Мб (значения по умолчанию) 7 с 73 % 4 Мб
ZIP, максимальный метод, словарь — 32 Кб 5 с 76 % 32 Кб

Непрерывный архив RAR обеспечил наиболее сильное сжатие при продолжительной работе утилиты. Максимальный режим сжатия и наибольший размер словаря в формате RAR без включения параметра «Непрерывный архив» не дали выигрыш во времени и весе файла.

2. Размер каталога — 10,4 Мб, расширение всех файлов — .jpg.

Параметры сжатия Время архивирования Размер архива к весу исходного файла Установленный программой размер словаря
Формат — RAR, метод сжатия — максимальный, размер словаря — 1024 Мб, непрерывный архив 3 с 61 % 16 Мб
RAR, максимальный метод сжатия, размер словаря — 1024 Мб 2 с 87 % 256 Кб
RAR, обычный метод, словарь — 32 Мб (значения по умолчанию) 2 с 87 % 256 Кб
ZIP, максимальный метод, словарь — 32 Кб 2 с 87 % 32 Кб

Снова формат RAR в режиме непрерывного архивирования обеспечил максимальную компрессию.

Зависит от типа файла. Если он уже сжат у себя внутри, то физика и математика - вещи неумолимые .)
Видео, как правило, уже сжато донемогу. Лучшие математики планируют алгоритмы видеопотоков.

kvit 6 (6284) 2 18 40 12 лет

смотря что архивишь. Далеко не все файлы сжимаются хорошо

Видео хреново архивится, ибо на тех же торрентах все бы выкладывали видео в архивах )


Chrome_Shelled (2021) 7 (32796) 6 42 148 12 лет

не все файлы можно сжать.
К примеру архивируя текстовый файл, где нет ничего кроме текста, можно сжать до 20% от исходного размера.
А вот, обратный пример, картинки йпг не сжимаются. Нельзя сжать уже сжатое до предела


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


Spectrum (32) 7 (38499) 3 9 30 12 лет

Видео практически не сжимается.


SpaM_Forever (27) 6 (6468) 3 12 39 12 лет

Видео музыку и картинки не имеет смысла архивировать!

Женя (32) 7 (39345) 5 36 129 12 лет

Зависит от кодека. кодек теоретически это уже компрессия видео. если хороший кодек, то и сжиматься будет не особо :)


Анонимус 7 (40492) 2 9 18 12 лет

Он уже сжат, можешь не пытаться.

Be_Positive 7 (32028) 6 45 126 12 лет

да, что ты расстраиваешься ? Уже 8% . К утру докидается

Vizzari (33) 5 (4481) 2 17 44 12 лет

Один большой файл практически не сжимается , былоб много и маленьких то сжались бы существенно !


TviTi 4 (1498) 5 17 12 лет

Томомучто он просто смесьтил фаилы в один!
А зиповать надо через другую прогу! винзип!

Похожие вопросы

да, но только при условии Encrypted File System. (пароль для файла = твой пароль учётной записи)

"спец проги" в большинстве своём фуфло полное

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

По тому что это формат богатого текста. Пересохрани как *.док и будет всё хорошо. IM-Worm.Win32.Agent.lx
Вирус. Если не хочешь переустанавливать виндовс, напиши в личку, помогу с антивирусоми Ворд хранит картинки внутри файлов несжатыми. 1.5 мегабайта в jpeg, весит 40 мегабайт без сжатия.

через мобилу можно, но дорого

берёшь проводок, от мобилы в Line-In мафона в машине (если такой там есть), с мобилы выходишь в инет, врубаешь то радио и наслаждайся.

Format Factory чтобы уменьшить этот гигантский размер.
VirtualDub - чтобы порезать

Читайте также: