Тройное сжатие, и я сохраняю только 1% в пространстве?

Я пытался сэкономить место на моем Linux-сервере, и у меня была папка, содержащая в подпапках 22 ГБ изображений.

Поэтому я решил сжать их.

  • tar конкретных файлов в нескольких разных подкаталогах
  • Как bzip файл с минимальным процентом процессора?
  • сжатие изображения initramfs, отличное от gzip
  • Я хочу понять Buildroot - 3 варианта конфигурации сжатия (kernel, initramfs & rootfs)
  • «Tar: непризнанная опция - предупреждение» во время «apt-get install»
  • Могут ли файлы tarening улучшить сжатие?
  • Сначала я использовал смолу:

    tar -zcf folder.tar folder 

    Тогда gzip

     gzip folder 

    И, наконец, для хорошей меры, на всякий случай, bzip2

     bzip2 folder 

    И после всего этого, общая сумма всех folder.tar.gz.bzip2 s, дошла до 22GB! С использованием более точной точности экономия места на 1%!

    Я сделал что-то не так? Я ожидал бы много раз больше, чем 1% экономии!

    Как еще я могу сжать файлы?

  • «Тар» - результат поиска, сохраняющий структуру каталогов
  • Размер полезной нагрузки в архиве gzip
  • Как сделать Regexp / pattern-search в файлах с ружьем?
  • в каких единицах измеряется таргетинг?
  • Как сжать каталог и его содержимое
  • Невозможно распаковать файл после ошибки tar
  • 8 Solutions collect form web for “Тройное сжатие, и я сохраняю только 1% в пространстве?”

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

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

    Если меня очень беспокоит пространство, я просто делаю «bzip2 -9» и называю это хорошим. Я слышал хорошие вещи о соотношении на XZ. Я сам не использовал XZ (кроме того, чтобы декомпрессировать чужие вещи), но он должен иметь лучшее соотношение, чем bzip2, но сделать немного дольше, чтобы сжать / распаковать.

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

    Вот пример повторного сжатия всех изображений JPEG с помощью imagemagick. Обратите внимание, что это перезапишет ваши файлы.

     find image_directory -type f -name "*.jpg" -exec mogrify -quality 75% {} \+ 

    Наиболее распространенные форматы изображений уже сжаты (например, jpg, png, gif), поэтому вы не получаете значительной экономии. 1% звучит правильно.

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

    Сожалею! Если вы используете png, вы можете попытаться сжать ваши файлы с помощью pngcrush .

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

    2) Как правило, сложно попытаться сжать одни и те же данные повторно; будь то сжатие уже оптимизированного типа файла (например, gziping jpeg-file) или применение разных или тех же программ сжатия к одному и тому же файлу в последовательном порядке (как вы это сделали).

    3) Когда вы сжимаете файл, вы иногда получаете больший файл, чем первоначально (используйте touch, чтобы сделать пустой файл, и попробуйте bzip2 его). Это должно быть так; потому что иначе вы могли бы взять некоторые данные, сжимать их снова и снова, пока ничего не останется, кроме пустого файла, и все равно сможете повторно распаковать исходные данные позже – но это звучит логично?

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

    4) Лучший способ сохранить данные – найти программу сжатия, которая дает лучший коэффициент усиления для любых имеющихся у вас данных (поскольку коэффициент усиления может варьироваться в зависимости от данных); и использовать только эту программу сжатия и использовать ее только один раз, но с ее лучшей (часто медленной и самой ресурсоемкой) настройкой. В настоящее время «лучшая» (дающая наибольшее) сжатие-программа, вероятно, является xzip, хотя bzip2 не отстает. Убедитесь, что вы выбрали наилучшую скорость сжатия.

    5) Для изображений (например, jpeg) вы часто используете сжатие с потерями – то есть. вы потеряете некоторые данные (в отличие от того, когда вы используете такие программы, как xzip, bzip2 и gzip, которые не являются потерями). Повторно сжимая изображение JPEG, чтобы уменьшить размер изображения каждый раз, когда он используется (в отличие от использования чего-то типа bzip2 в два раза), но вы потеряете детали на изображении. Есть и другие вещи, которые вы можете сделать для изображений – например, изменение размера (уменьшая его) или разрешение (меньше пикселей на дюйм) – это сделает его «меньшим», но снова данные будут потеряны.

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

    6) Немного OT, но вы посмотрели на такие вещи, как миниатюры-каталоги – например, ~ / .thumbnails? Если у вас много картинок в ваших каталогах и использование файловых браузеров с предварительным просмотром изображений, то эскизы могут содержать много миниатюр изображений, которые вы просматривали через некоторое время. Лично я получил много дискового пространства, регулярно удаляя файлы под разными тайниками для эскизов …

    Форматы изображений, такие как png и jpeg , уже сжаты. Усиление от сжатия их снова минимально.

    Еще один момент, заслуживающий внимания: использование нескольких инструментов сжатия / алгоритмов может фактически привести к тому, что ваш конечный результат будет раздуваться по размеру и станет больше, чем он должен быть. Значение, если вы сжимаете 100 ГБ до 10 ГБ, а затем пытаетесь сжать его снова, вы можете получить ~ 15 ГБ в зависимости от того, что вы сжимаете и с чем вы его сжимаете.

    Лично я никогда не делаю ничего, кроме tar cjvf container.tar.bz2 /target просто потому, что объем дискового пространства, сохраненного двойным сжатием, является минимальным.

    Как математик, я чувствую, что должен перезвонить и немного разобраться. Вопрос сводится к снижению сжатия и сжатию без потерь. Сжатие изображения, например, jpeg, является сжатием с потерями, а сжатие без потерь.

    Lossy – в зависимости от того, сколько информации вы хотите потерять, вы всегда можете «сжать» файл до меньшего размера, независимо от того, что, кроме компромисса, вы навсегда потеряете какую-то информацию, и когда вы «распакуете», у вас не будет исходный файл. И да с компрессией с потерями вы можете сжимать снова и снова и спускаться до 1 байта, но это будет совершенно бесполезно.

    Lossless – с этим вы не потеряете никакой информации вообще, и когда вы «распакуете», у вас будет оригинальный файл точно. Но здесь компромисс заключается в том, что уменьшение размера не гарантируется (легко проверяется с использованием принципа голубины). Таким образом, некоторые файлы будут уменьшаться по размеру. Некоторые из них останутся прежними. И да, некоторые могут фактически увеличить размер. Таким образом, алгоритмы без потерь разработаны / оптимизированы для конкретных типов данных, поэтому они работают (без потерь), сжимая один вид данных очень хорошо и абсолютно сосать другим.

    Это то, о чем я забыл о компьютерных науках. Я думаю, что файл, который вы используете, оптимизирован для текста, а не для изображений, поэтому они не помогают изображениям. Изображения уже (с потерями) сжаты, а затем сжатие их снова не поможет. Если вы хотите (потерять) сжать их снова, вы можете испортить изображения и потерять слишком много информации … что похоже на сохранение их как jpeg с большим упором на размер, чем качество.

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

    Изображения, если вы не используете raw или tiff, уже получили «встроенное сжатие». попытка сжать их снова, скорее всего, принесет больше вреда, чем пользы, добавив дополнительные заголовки.

    Linux и Unix - лучшая ОС в мире.