Я хочу узнать, как сильно сжать файл. Я скачал файлы, чей сжатый размер был 4 ГБ, а после распаковки они стали 10 ГБ. Какое программное обеспечение мне нужно использовать для такого высокого сжатия? Потеряю ли я качество данных при сжатии? Если вы направите меня в WinRAR или 7-Zip, скажите, пожалуйста, как я могу сильно сжать файл, потому что я пытался сжать его, но размер был уменьшен всего на несколько МБ.
5 ответов
Существует в основном два типа сжатия: без потерь и с потерями. Когда вы используете такие программы, как WinRAR и 7-Zip, они используют алгоритм без потерь. Когда вы используете программное обеспечение для копирования DVD, кодирования аудио / видео и т.д.… Они обычно используют алгоритм с потерями. Так что это зависит от того, с какими данными вы имеете дело. Если это неизвестные двоичные данные, вы обязательно будете использовать алгоритм без потерь. Если это аудио / видео, вы будете использовать алгоритм с потерями (кроме случаев, когда вы не хотите терять качество).
Сжатие с потерями, безусловно, более эффективно в отношении размера данных, чем без потерь.
Тем не менее, в вашем случае вы хотите сжатие без потерь. Я думаю, что наилучшая степень сжатия будет получена с помощью алгоритма LZMA, если это неизвестные двоичные данные. Насколько мне известно, WinRAR не поддерживает его для сжатия, но 7-Zip поддерживает его благодаря использованию контейнера 7z. Когда вы создаете архив с 7-Zip, выберите формат архивации 7z, затем алгоритм сжатия LZMA (или LZMA2), и тогда вы сможете выбирать между некоторыми предустановками, с низким соотношением, но с быстрым сжатием, используя меньше ресурсов для лучшего соотношение, но медленное сжатие с использованием большего количества ресурсов.
Степень сжатия файла во многом зависит от типа файла. Вообще говоря, текстовые файлы могут быть сильно сжаты (даже на 90% и более), в то время как некоторые форматы файлов, такие как изображения, уже сильно сжаты в своей существующей форме, и добавление их в сжатый архив мало или ничего не изменит для дальнейшего уменьшения их размера.
Тем не менее, приложения, такие как 7-Zip, обычно имеют настройки, где вы можете выбрать уровень сжатия. Используя 7-Zip в качестве примера, при создании архива вы можете выбрать один из шести уровней сжатия: от Store (без сжатия) до Ultra (наименьший размер файла). Более высокое сжатие требует больше времени для обработки, поэтому, если вы спешите или сохраняете каждый последний байт, это не критично, выбор чего-то вроде Normal даст вам приемлемые результаты. Поскольку ваш вопрос касается того, как получить максимальное сжатие, вам, вероятно, будет лучше, если вы выберете Ultra. Но опять же, некоторые файлы могут быть сжаты намного больше, чем другие, и даже выбор Ultra при попытке сжать файл изображения может не сэкономить вам больше, чем несколько байтов пространства, если таковое (в зависимости от различных факторов, включая исходный размер файла).
Размер был уменьшен всего на несколько МБ.
Похоже, данные уже сжаты. Сжатие уже сжатых данных сэкономит вам очень мало места.
Пожалуйста, скажите мне, как я могу сильно сжать файл, потому что я пытался сжать его.
Использование 7-zip или winrar должно работать нормально. При сжатии с помощью Winrar или 7-zip у вас есть возможность использовать лучшее сжатие за счет того, что оно занимает больше времени.
Потеряю ли я качество данных при сжатии
При использовании сжатия без потерь (например, 7-zip/winrar), нет. Алгоритмы сжатия, такие как MP3 или JPEG, теряют качество при сжатии.
Это сильно зависит от содержимого файлов, которые вы хотите сжать. Сжатие с потерями обычно дает меньшие файлы из-за того, что оно выбрасывает информацию (lossy
).
Узнайте о хороших компрессорах, как их использовать и в каких ситуациях:
Теперь есть волшебный способ превратить 10 ГБ в 4 ГБ. Если у вас есть файл размером 10 ГБ, содержащий 10 000 000 000 повторений буквы А, его можно сжать в несколько сотен байтов. Если это 10 ГБ случайных данных, вы вообще не сможете их сжать.