Объясните, почему с какого-то момента при повторном сжатии файла его размер увеличивается
Обновлено: 21.11.2024
Как работает сжатие файлов? Изучите основы сжатия файлов и разницу между сжатием с потерями и без потерь.
Сжатие файлов — основная часть работы в Интернете. Это позволяет нам передавать файлы, которые в противном случае потребовали бы слишком много трафика и времени. Всякий раз, когда вы открываете ZIP-файлы или просматриваете изображения JPEG, вы получаете преимущества сжатия файлов.
Итак, в какой-то момент вы, вероятно, задавались вопросом: как работает сжатие файлов? Вот общий взгляд на то, как работает сжатие.
Что означает сжатие?
Проще говоря, сжатие файла (или сжатие данных) — это действие по уменьшению размера файла при сохранении исходных данных. Это позволяет файлу занимать меньше места на устройстве хранения, а также упрощает его передачу через Интернет или иным образом.
Важно отметить, что сжатие не бесконечно. Хотя сжатие файла в ZIP-файл уменьшает его размер, вы не можете продолжать сжимать файл, чтобы уменьшить его размер до нуля.
Как правило, сжатие файлов делится на два основных типа: с потерями и без потерь. Давайте посмотрим, как они работают по очереди.
Как работает сжатие файлов: сжатие с потерями
Сжатие с потерями уменьшает размер файла за счет удаления ненужных битов информации. Это чаще всего встречается в форматах изображений, видео и аудио, где нет необходимости в идеальном представлении исходного мультимедиа. Многие распространенные форматы для этих типов носителей используют сжатие с потерями; Двумя популярными примерами являются MP3 и JPEG.
MP3 не содержит всю аудиоинформацию из оригинальной записи --- вместо этого он выбрасывает некоторые звуки, которые люди не могут слышать. Вы все равно не заметите их отсутствие, поэтому удаление этой информации приводит к уменьшению размера файла практически без каких-либо недостатков.
Аналогичным образом файлы JPEG удаляют второстепенные части изображений. Например, на изображении с голубым небом сжатие JPEG может изменить все пиксели неба на один или два оттенка синего вместо использования десятков различных оттенков.
Однако чем сильнее вы сжимаете файл, тем заметнее становится падение качества. Вы, вероятно, сталкивались с этим при загрузке мутных файлов MP3 на YouTube. Например, сравните этот высококачественный музыкальный трек:
С этой сильно сжатой версией той же песни:
Сжатие с потерями подходит, когда файл содержит больше информации, чем вам нужно для ваших целей. Например, допустим, у вас есть огромный файл изображения RAW. Хотя вы, вероятно, хотите сохранить это качество при печати изображения на большом баннере, загружать файл RAW на Facebook бессмысленно.
Изображение содержит так много данных, что они не заметны при просмотре на сайтах социальных сетей. Сжатие изображения в высококачественный JPEG выбрасывает некоторую информацию, но невооруженным глазом изображение выглядит почти так же. Подробнее об этом читайте в нашем сравнении популярных форматов изображений.
Сжатие с потерями в общем использовании
Как мы уже упоминали, сжатие с потерями отлично подходит для большинства видов мультимедиа. Из-за этого это жизненно важно для таких компаний, как Spotify и Netflix, которые постоянно передают огромные объемы информации. Максимальное уменьшение размера файлов при сохранении качества делает их работу более эффективной. Вы можете себе представить, если бы каждое видео с YouTube сохранялось и передавалось в исходном несжатом формате?
Но сжатие с потерями не так хорошо работает для файлов, в которых важна вся информация. Например, использование сжатия с потерями в текстовом файле или электронной таблице приведет к искажению вывода. Вы действительно не можете ничего выбросить, не нанеся серьезного вреда конечному продукту.
При сохранении в формате с потерями часто можно установить уровень качества. Например, во многих графических редакторах есть ползунок для выбора качества JPEG от 0 до 100.
При сохранении примерно на 90 или 80 процентов размер файла немного уменьшается, но визуально разница незначительна. Но сохранение в низком качестве или многократное сохранение одного и того же файла в формате с потерями приведет к его ухудшению.
Ниже вы можете увидеть пример этого (нажмите, чтобы увидеть увеличенное изображение). Слева исходное изображение, загруженное с Pixabay в формате JPEG. Среднее изображение — результат сохранения в формате JPEG с качеством 50 процентов. А на крайнем правом изображении показано исходное изображение, сохраненное в формате JPEG с 10-процентным качеством.
На первый взгляд среднее изображение выглядит не так уж плохо. Артефакты по краям прямоугольников можно заметить только при увеличении масштаба. Конечно, самое правое изображение сразу выглядит ужасно.
До кадрирования для загрузки размер файла составлял 874 КБ, 310 КБ и 100 КБ соответственно.
Как работает сжатие файлов: сжатие без потерь
Сжатие без потерь — это способ уменьшить размер файла, чтобы можно было полностью восстановить исходный файл.В отличие от сжатия с потерями, он не выбрасывает никакой информации. Вместо этого сжатие без потерь, по сути, работает за счет устранения избыточности.
Давайте рассмотрим простой пример, чтобы показать, что это значит. Ниже стопка из 10 кирпичей: два синих, пять желтых и три красных. Этот стек — простой способ проиллюстрировать эти блоки, но есть и другой способ сделать это.
Вместо того, чтобы показывать все 10 блоков, мы можем удалить все блоки каждого цвета, кроме одного. Затем, если мы используем числа, чтобы показать, сколько кирпичиков каждого цвета было, мы представили тот же самый бит информации, используя гораздо меньше кирпичей. Вместо 10 кирпичей нам теперь нужно всего три.
Это простая иллюстрация того, как возможно сжатие без потерь. Он сохраняет ту же информацию более эффективным способом, удаляя избыточность. Рассмотрим реальный файл, в котором следующая строка:
Может "сжиматься" до следующей, гораздо более короткой формы:
Это позволяет нам использовать семь символов вместо 24 для представления тех же данных, что обеспечивает значительную экономию.
Сжатие без потерь в повседневном использовании
Как мы упоминали выше, сжатие без потерь важно в тех случаях, когда вы не можете удалить исходный файл. Если вам интересно, как работают ZIP-файлы, вот ответ.
При создании ZIP-файла из исполняемой программы в Windows используется сжатие без потерь. Сжатие ZIP-файла является более эффективным способом хранения программы, но при распаковке (распаковке) архива сохраняется вся исходная информация. Если вы использовали сжатие с потерями для сжатия исполняемых файлов, разархивированная версия будет повреждена и непригодна для использования.
Распространенные форматы без потерь включают PNG для изображений, FLAC для аудио и ZIP. Форматы видео без потерь используются редко, поскольку они занимают много места.
Когда использовать сжатие с потерями и без потерь
Теперь, когда мы рассмотрели обе формы сжатия файлов, вы можете задаться вопросом, когда следует использовать одну или другую. Как оказалось, «лучшей» формы сжатия не существует — все зависит от того, для чего вы используете файлы.
Как правило, вам следует использовать сжатие без потерь, если вам нужна идеальная копия исходного материала, и сжатие с потерями, когда достаточно несовершенной копии. Давайте посмотрим на другой пример, чтобы увидеть, как они могут работать в гармонии.
Скажем, вы только что откопали свою старую коллекцию компакт-дисков и хотите оцифровать ее, чтобы вся ваша музыка была на вашем компьютере. Когда вы копируете свои компакт-диски, имеет смысл использовать такой формат, как FLAC, который не допускает потерь. Это позволяет иметь на компьютере мастер-копию, не уступающую по качеству оригинальному компакт-диску.
Позже вы, возможно, захотите записать музыку на свой телефон или старый MP3-плеер, чтобы слушать ее на ходу. Вы, вероятно, не заботитесь о том, чтобы ваша музыка была в идеальном качестве для этого, поэтому вы можете конвертировать файлы FLAC в MP3. Это дает вам аудиофайл, который по-прежнему отлично слушается, но не занимает много места на вашем мобильном устройстве. Качество MP3, преобразованного из FLAC, будет таким же хорошим, как если бы вы создали сжатый MP3 прямо с оригинального компакт-диска. Вы даже можете сжимать видео прямо на iPhone.
Тип данных, представленных в файле, также может определять, какой тип сжатия лучше. Поскольку изображения PNG используют сжатие без потерь, они предлагают файлы небольшого размера для изображений с большим количеством однородного пространства, например скриншоты компьютера. Однако вы заметите, что PNG занимают гораздо больше места, когда они представляют собой смесь цветов на реальных фотографиях.
Проблемы во время сжатия файлов
Как мы видели, преобразование форматов без потерь в форматы с потерями — это нормально, как и преобразование одного формата без потерь в другой. Однако никогда не следует преобразовывать формат с потерями в формат без потерь, а также следует остерегаться преобразования одного формата с потерями в другой.
Преобразование форматов с потерями в форматы без потерь — пустая трата места. Помните, что форматы с потерями выбрасывают данные; восстановить эти данные невозможно.
Скажем, у вас есть файл MP3 размером 3 МБ. Преобразование этого во FLAC может привести к файлу размером 30 МБ, но эти 30 МБ содержат те же звуки, что и MP3 гораздо меньшего размера. Обратное преобразование в формат без потерь не «восстанавливает» информацию, потерянную при сжатии MP3.
Наконец, как упоминалось ранее, преобразование одного формата с потерями в другой (или повторное сохранение в одном и том же формате) приведет к дальнейшему ухудшению качества. Каждый раз, когда вы применяете сжатие с потерями, вы теряете больше деталей. Это становится все более и более заметным, пока файл не будет по существу испорчен.
Как работает сжатие? Теперь ты знаешь
Мы рассмотрели методы сжатия с потерями и без потерь, чтобы понять, как они работают. Теперь вы знаете, как можно сохранить файл меньшего размера, чем его первоначальный вид, и как выбрать наилучший метод для ваших нужд.
Конечно, алгоритмы, определяющие, какие данные выбрасываются при использовании методов сжатия с потерями и как лучше хранить избыточные данные при сжатии без потерь, намного сложнее, чем мы здесь объяснили.Если вам интересно, по этой теме можно узнать гораздо больше.
Пробовали сжатие без потерь и хотите что-то отправить другу? Попробуйте эти быстрые способы передачи больших файлов онлайн. А если вам нужна помощь в сжатии больших аудиофайлов, вот несколько простых и эффективных способов.
Если вы когда-либо загружали что-либо из Интернета (что весьма вероятно, учитывая тот факт, что сейчас 2017 год), велика вероятность того, что вы сталкивались с ZIP-файлами (или каким-либо другим типом сжатия файлов, например RAR или 7Z). ).
Возможно, вы не совсем понимаете, как работает сжатие файлов, что может объяснить, почему вы читаете этот пост.
Из сотен различных типов расширений файлов сжатые файлы, такие как ZIP, уникальны. Они не предназначены для изображений, видео, аудио или любого другого типа данных.
Вместо этого они являются результатом сжатия больших файлов во что-то более управляемое. Благодаря сжатию файла данные занимают меньше места, а файлы можно отправлять и получать намного быстрее.
Но подождите, как можно уменьшить размер файла, не испортив данные? Это может показаться невероятным, но если вы знаете, что происходит за кулисами, все становится понятным.
Итак, если вы когда-нибудь задавались вопросом, что делает сжатие файла? тогда вы находитесь в правильном месте. Итак, давайте начнем с некоторых основ.
Нужно скачать WinZip?
Загрузите бесплатную 30-дневную пробную версию прямо сейчас!
Содержание
Что такое сжатие файлов?
Это правда, что ZIP — не единственный тип сжатого файла, но определенно один из самых распространенных. Мы могли бы продолжать и продолжать о ZIP, ARC, ARJ, RAR, CAB и десятках других, но все они по сути работают одинаково. Итак, чтобы этот пост был понятным и легким для понимания, мы сосредоточимся только на расширении ZIP.
По сути, сжатый файл — это своего рода архив, содержащий один или несколько файлов, размер которых был уменьшен. Поскольку эти файлы меньше, их можно хранить, не занимая много места, или передавать через Интернет на более высоких скоростях. С помощью такой программы, как WinZip, вы можете распаковать файл или файлы обратно в исходное состояние без какого-либо ухудшения качества.
Нужно скачать WinZip?
Загрузите бесплатную 30-дневную пробную версию прямо сейчас!
Все еще не знаете, как на самом деле работает это волшебство? Потерпите, пока я немного углублюсь в технические детали.
Как работает сжатие файлов?
Здесь все может немного усложниться. По сути, существует два основных типа сжатия файлов? без потерь и с потерями. Сжатие без потерь берет ваши файлы и уменьшает их размер без потери информации. Сжатие с потерями уменьшает размер файла, отсекая фрагменты, которые не являются на 100 % необходимыми для работы. Я знаю, что это довольно сильное упрощение, поэтому давайте разберем их по одному.
Сжатие файлов без потерь
Это может показаться безумием, но так оно и есть. Чтобы сжатие без потерь работало, файл необходимо уменьшить, ничего не потеряв. Это делается путем удаления избыточности.
Что такое избыточность, спросите вы?
Избыточность данных – это условие, создаваемое в базе данных или среде хранения данных, когда один и тот же фрагмент данных хранится в нескольких местах.
За счет устранения избыточности у вас остается только один экземпляр каждого бита данных.
Сжатие файлов без потерь похоже на это:
AAABBBBBCC
и сжимая его до этого:
A3B5C2
Там та же информация, но она упрощена, чтобы занимать меньше места (обратите внимание, что числа соответствуют количеству повторений предыдущей буквы). Таким образом, когда вы распаковываете (распаковываете/открываете/распаковываете) файл, он знает, как вернуться к исходной форме. Это в основном используется для текста и электронных таблиц, потому что потеря слов или данных из документа — это не то, чего вы хотите.
Сжатие файлов с потерями
Сжатие с потерями работает в основном таким же образом, но, как вы, вероятно, догадались по названию, оно приводит к безвозвратной потере некоторых данных (не так плохо, как кажется).
Это чаще встречается с мультимедийными файлами, такими как видео, аудио и изображения, потому что они не слишком сильно страдают от потери данных. На самом деле, музыка и видео, которые сейчас находятся на вашем компьютере, вероятно, были сжаты, и вы даже не замечаете недостающих битов. Это связано с тем, что удаленные данные находятся за пределами диапазона, слышимого или видимого людьми.
Однако есть и обратная сторона: если вы сжимаете один и тот же файл снова и снова, используя метод с потерями, вы начнете замечать снижение качества, поскольку данные каждый раз удаляются.
Нужно скачать WinZip?
Загрузите бесплатную 30-дневную пробную версию прямо сейчас!
Зачем сжимать файлы?
Если вы часто редактируете мультимедийные файлы, вы знаете, насколько важно сжатие файлов при передаче фотографий, музыки и видео. Вы действительно не хотите убить всю свою пропускную способность и тратить тонны ценного дискового пространства. Если вы не из таких людей, то вот почему это так необходимо.
Занимает меньше места
Допустим, у вас есть огромное количество файлов на вашем компьютере, но вы пока не планируете ничего с ними делать (может быть, вы виртуальный накопитель, кто знает). Оставлять их на жестком диске, чтобы они занимали место, — не самый практичный выход.
Вместо этого вы можете заархивировать большое количество файлов в одну архивную папку, что освободит место и упростит организацию.
Храните свою коллекцию старых фильмов о кунг-фу на жестком диске? Сожмите их все в один ZIP-файл и удивитесь, сколько места вы сэкономите.
Более эффективные переводы
Если вы когда-нибудь пытались отправить по электронной почте действительно большой файл, вы знаете, что это может занять много времени. Еще хуже — пытаться отправить по электронной почте сразу несколько документов. В большинстве случаев ваше сообщение не будет выполнено из-за того, что некоторые почтовые клиенты не позволяют передавать файлы, превышающие определенный размер.
Конечно, вы можете отправить серию из нескольких писем с небольшими вложениями в каждом, но это отнимает много времени и трудно отслеживать (и вы, вероятно, будете раздражать получателя).
Если вы сожмете документы в один ZIP-файл, он займет меньше места и будет передаваться намного быстрее. Получателю просто нужно использовать программу, такую как WinZip, для извлечения файлов, и все, что вы им отправили, будет в одной организованной папке.
Может сэкономить деньги
Жесткие диски стоят дорого — мне не нужно вам об этом говорить. Хранение огромного количества данных, очевидно, занимает много места, так почему бы не получить максимальную отдачу от затраченных средств?
Скажем, у вас есть 200 ГБ данных, которые нужно спрятать на компьютере, но на жестком диске всего 250 ГБ. Конечно, он подойдет, но тогда у вас останется всего 50 ГБ, что в наши дни не так уж и много.
Вы можете пойти и купить более крупный и дорогой жесткий диск, перенести все данные со старого на новый и все готово.
Вы можете сжать 200 ГБ данных в ZIP-файл, который займет всего 100 ГБ. У вас все еще есть все ваши файлы, готовые к использованию, когда они вам понадобятся, но вам не нужно тратить деньги на дополнительное место для хранения.
Как сжимать/распаковывать файлы
К этому моменту у вас должно быть достаточно четкое представление о сжатии файлов: как оно работает и чем оно полезно. Это здорово и все такое, но вы, наверное, хотите знать, как архивировать и распаковывать файлы самостоятельно, верно?
Ниже приведен краткий курс по процессу сжатия и распаковки файлов. К счастью, если файлы, которые вы пытаетесь сжать, относительно малы, ваша операционная система должна иметь возможность архивировать их без необходимости использования стороннего программного обеспечения. Простой щелчок правой кнопкой мыши позаботится об этом за вас.
Но что, если вы имеете дело с несколькими гигабайтами данных? Вам понадобится что-то более «умное», чтобы позаботиться о вещах. К счастью для вас, WinZip является ведущим архиватором файлов.
Нужно скачать WinZip?
Загрузите бесплатную 30-дневную пробную версию прямо сейчас!
Сжатие больших файлов в WinZip
- Эта часть довольно сложная. Во-первых, вам нужно открыть WinZip (сложно, верно?).
- Затем вам нужно найти и выбрать все файлы, которые вы хотите сжать, на панели "Файлы".
- После того, как все они будут выбраны, нажмите «Добавить в Zip».
- Нажмите "Сохранить как".
- Выберите целевое расположение, дайте ему имя и нажмите «Сохранить». Вот и все.
Сжатие больших файлов вне WinZip (для этого необходимо установить WinZip)
- Откройте папку, содержащую все файлы, которые вы хотите сжать.
- Выделите каждый файл, который вы собираетесь заархивировать.
- Щелкните правой кнопкой мыши в выделенной области, и появится подменю WinZip. У вас есть несколько вариантов на выбор здесь. * Добавить в Zip-файл: щелкнув эту опцию, вы сможете назвать свой Zip-файл, определить, как он должен быть сжат, и добавить шифрование.
* Добавить в [имя_файла].zip: этот вариант намного быстрее, но у вас не так много свободы.По сути, будет создан Zip-файл с именем содержащей его папки, но вы не сможете изменить настройки. - Теперь ваш Zip-файл создан для хранения или передачи.
Распаковка (распаковка) ваших файлов
Разархивировать файл очень просто:
- Перетаскивание файла или папки из заархивированной папки в новое место.
- Щелкните правой кнопкой мыши внутри заархивированной папки, выберите «Извлечь все» и следуйте инструкциям.
Вот и все
Итак, это подводит итог основам сжатия файлов. Кажется невозможным уменьшить размер файла, а затем собрать его обратно в другом месте, но, по сути, это то, что происходит.
Если вы хотите узнать больше, посетите веб-сайт WinZip для получения дополнительной документации.
У меня есть текстовый файл размером 19 байт, и после сжатия файла с помощью zip и 7zip он кажется больше. Я прочитал вопрос о том, почему 7zip-файл больше, чем необработанный файл? а также Почему ZIP Compression ничего не сжимает? но, учитывая, что файл еще не сжат, я ожидал дальнейшего сжатия. Прикреплен скриншот.
ИЗМЕНИТЬ0
Я продолжил этот пример, создав файл, содержащий случайные данные следующим образом: dd if=/dev/urandom of=sample.log bs=1G count=1 и попытался сжать файл с помощью zip и 7zip, однако были нет прироста сжатия. Почему так?
Случайные данные из /dev/urandom не создают настоящий текстовый файл; он вообще плохо сжимается. Текстовые байты ограничены по диапазону, содержат множество пробелов и повторяющихся шаблонов (например, «th» и «sp») и слов. Фактически вы сгенерировали случайный двоичный файл.
Откройте свой любимый текстовый редактор. Теперь возьмите свою кошку или маленького ребенка и попросите их поиграть с клавиатурой в течение 5 минут или около того. Теперь у вас есть большой случайный текстовый файл! ;)
@CyberSkull: Нет, у вас есть случайный поток символов ASCII. Это немного более сжимаемо, чем случайное двоичное, но все же далеко не так структурировано, как текст.
2 ответа 2
Как сказал @kinokijuf, есть заголовок файла. Но в дополнение к этому есть еще несколько вещей, которые нужно понять о сжатии файлов.
Заголовок zip содержит всю необходимую информацию для определения типа файла (магическое число), версии zip и, наконец, список всех файлов, включенных в архив.
Возможно, ваш файл все равно не был сжат. Если вы запустите unzip -l example.zip, вы, вероятно, увидите, что размер файла не изменился. 19 байт, вероятно, создадут больше накладных расходов, чем можно было бы сэкономить, если бы их вообще можно было сжать с помощью DEFLATE (основной метод сжатия, используемый zip).
В других случаях, например, изображения PNG, они уже сжаты, поэтому zip просто сохранит их. DEFLATE не будет сжимать уже сжатые файлы.
С другой стороны, если бы у вас было много текстовых файлов и их размер превышал бы несколько килобайт каждый, вы бы значительно сэкономили, поместив их все в один zip-архив.
Вы получите максимальную экономию при сжатии очень обычных форматированных данных, таких как текстовый файл, содержащий дамп SQL. Например, однажды у меня был дамп небольшой базы данных SQL размером около 13 МБ. Я запустил на нем zip -9 dump.sql dump.zip, и в итоге получил около 1 МБ.
Еще один фактор – уровень сжатия. Многие архиваторы по умолчанию сжимают только на среднем уровне, предпочитая скорость сжатию. При сжатии с помощью zip попробуйте установить флаг -9 для максимального сжатия (думаю, в руководстве по версии 3.x сказано, что в настоящее время уровни сжатия поддерживаются только DEFLATE).
Накладные расходы на архив превысили любые выгоды, которые вы могли получить от сжатия файла. Попробуйте поместить туда большие текстовые файлы и посмотрите, что получится. Используйте флаг -v при архивировании, чтобы видеть свои сбережения по мере использования.
Если вы загружаете много программ и файлов из Интернета, вы, вероятно, уже сталкивались с ZIP-файлами. Эта система сжатия является очень удобным изобретением, особенно для веб-пользователей, потому что она позволяет уменьшить общее количество битов и байтов в файле, чтобы его можно было передавать быстрее по более медленным интернет-соединениям или занимать меньше места на диске. Как только вы загрузите файл, ваш компьютер использует программу, такую как WinZip или Stuffit, чтобы увеличить файл до исходного размера. Если все работает правильно, расширенный файл идентичен исходному файлу до сжатия.
На первый взгляд это кажется очень загадочным. Как вы можете уменьшить количество битов и байтов, а затем добавить эти точные биты и байты позже? Как оказалось, основная идея этого процесса довольно проста.В этой статье мы рассмотрим этот простой метод, поскольку мы проходим через базовый процесс сжатия очень маленького файла.
Большинство типов компьютерных файлов достаточно избыточны — в них снова и снова содержится одна и та же информация. Программы сжатия файлов просто избавляются от избыточности. Вместо того, чтобы перечислять часть информации снова и снова, программа сжатия файлов перечисляет эту информацию один раз, а затем обращается к ней всякий раз, когда она появляется в исходной программе.
В качестве примера давайте рассмотрим тип информации, с которым мы все знакомы: слова.
В инаугурационной речи Джона Ф. Кеннеди в 1961 году он произнес эту знаменитую фразу:
Цитата состоит из 17 слов, состоящих из 61 буквы, 16 пробелов, одного тире и одной точки. Если каждая буква, пробел или знак препинания занимают одну единицу памяти, мы получаем общий размер файла 79 единиц. Чтобы уменьшить размер файла, нам нужно искать избыточность.
Сразу же мы замечаем, что:
- "спросить" появляется два раза
- "что" встречается два раза
- "ваш" встречается два раза
- "страна" встречается два раза
- "can" встречается два раза
- слово "делать" встречается два раза
- "for" встречается два раза
- "вы" встречается два раза
Игнорируя разницу между заглавными и строчными буквами, примерно половина фразы является избыточной. Девять слов — спросить, а не, что, ваша, страна, может, сделать, для вас — дают нам почти все, что нам нужно для всей цитаты. Чтобы построить вторую половину фразы, мы просто указываем на слова в первой половине и расставляем пробелы и знаки препинания.
В следующем разделе мы более подробно рассмотрим, как системы сжатия файлов справляются с избыточностью.
Избыточность и алгоритмы
Большинство программ сжатия используют разновидность адаптивного алгоритма LZ на основе словаря для сжатия файлов. «LZ» относится к Лемпелю и Зиву, создателям алгоритма, а «словарь» относится к методу каталогизации фрагментов данных.
Система упорядочивания словарей может быть разной, но она может быть такой же простой, как нумерованный список. Когда мы просматриваем знаменитые слова Кеннеди, мы выбираем повторяющиеся слова и помещаем их в пронумерованный указатель. Затем мы просто пишем число, а не все слово.
Итак, если это наш словарь:
Наше предложение теперь звучит так: "1 не 2 3 4 5 6 7 8 -- 1 2 8 5 6 7 3 4"
Если бы вы знали систему, вы могли бы легко восстановить исходную фразу, используя только этот словарь и числовой шаблон. Это то, что делает программа расширения на вашем компьютере, когда она расширяет загруженный файл. Вы также могли столкнуться с сжатыми файлами, которые открываются сами по себе. Чтобы создать такой файл, программист включает простую программу расширения со сжатым файлом. Он автоматически восстанавливает исходный файл после его загрузки.
Но сколько места мы на самом деле сэкономили с помощью этой системы? «1 не 2 3 4 5 6 7 8 -- 1 2 8 5 6 7 3 4» определенно короче, чем «Не спрашивай, что твоя страна может сделать для тебя, спроси, что ты можешь сделать для своей страны»; но имейте в виду, что нам нужно сохранить сам словарь вместе с файлом.
В реальной схеме сжатия выяснить различные требования к файлам было бы довольно сложно; но для наших целей давайте вернемся к идее, что каждый символ и каждый пробел занимают одну единицу памяти. Мы уже видели, что полная фраза занимает 79 единиц. Наше сжатое предложение (включая пробелы) занимает 37 единиц, и словарь (слова и числа) также занимает 37 единиц. Это дает нам размер файла 74, поэтому мы не сильно уменьшили размер файла.
Но это только одно предложение! Вы можете себе представить, что если программа сжатия проработает остальную часть речи Кеннеди, она обнаружит, что эти и другие слова повторяются еще много раз. И, как мы увидим в следующем разделе, он также будет переписывать словарь, чтобы получить максимально эффективную организацию.
Поиск закономерностей
В нашем предыдущем примере мы выбрали все повторяющиеся слова и поместили их в словарь. Для нас это самый очевидный способ написать словарь. Но программа сжатия видит это совсем по-другому: у нее нет концепции отдельных слов — она только ищет шаблоны. А чтобы максимально уменьшить размер файла, он тщательно отбирает шаблоны для включения в словарь.
Если мы подойдем к фразе с этой точки зрения, мы получим совершенно другой словарь.
Если программа сжатия просканирует фразу Кеннеди, первая избыточность, которую она обнаружит, будет состоять всего из пары букв. В «не спрашивай, что у тебя» повторяется буква «т», за которой следует пробел — в «не» и «что». Если бы программа сжатия записывала это в словарь, она могла бы записывать «1» каждый раз, когда за «t» следует пробел.Но в этой короткой фразе этого паттерна недостаточно, чтобы сделать его стоящей записью, поэтому программа в конечном итоге перезапишет его.
Следующее, что программа может заметить, это "ou", которое появляется как в "your", так и в "country". Если бы это был более длинный документ, запись этого шаблона в словарь могла бы сэкономить много места — «ou» — довольно распространенная комбинация в английском языке. Но по мере того, как программа сжатия работала над этим предложением, она быстро находила лучший выбор для словарной статьи: повторяется не только «оу», но и все слова «ваш» и «страна» повторяются, и они действительно повторяются. вместе, как фраза "ваша страна". В этом случае программа перезапишет словарную запись для «ou» записью для «вашей страны».
Независимо от того, какой именно метод вы используете, эта система углубленного поиска позволяет сжимать файл намного эффективнее, чем если бы вы просто выбирали слова. Используя шаблоны, которые мы выбрали выше, и добавив «__» вместо пробелов, мы получаем этот большой словарь:
И это предложение меньшего размера: "1not__2345__--__12354"
Предложение теперь занимает 18 единиц памяти, а наш словарь занимает 41 единицу. Таким образом, мы сжали общий размер файла с 79 единиц до 59 единиц! Это всего лишь один из способов сжатия фразы, и не обязательно самый эффективный. (Посмотрите, сможете ли вы найти лучший способ!)
Насколько хороша эта система? Коэффициент сжатия файла зависит от ряда факторов, включая тип файла, размер файла и схему сжатия.
В большинстве языков мира определенные буквы и слова часто встречаются вместе в одном и том же образце. Из-за такого высокого уровня избыточности текстовые файлы очень хорошо сжимаются. Сокращение на 50 процентов и более типично для текстового файла хорошего размера. Большинство языков программирования также очень избыточны, потому что они используют относительно небольшой набор команд, которые часто идут вместе в заданном шаблоне. Файлы, содержащие много уникальной информации, такие как графические файлы или файлы MP3, не могут быть сильно сжаты с помощью этой системы, поскольку они не повторяют множество шаблонов (подробнее об этом в следующем разделе).
Если в файле много повторяющихся шаблонов, скорость уменьшения обычно увеличивается с увеличением размера файла. Вы можете убедиться в этом, просто взглянув на наш пример — если бы у нас было больше речи Кеннеди, мы могли бы чаще обращаться к шаблонам в нашем словаре и, таким образом, получить больше от файлового пространства каждой записи. Кроме того, в более длительной работе могут появиться более всеобъемлющие шаблоны, что позволит нам создать более эффективный словарь.
Эта эффективность также зависит от конкретного алгоритма, используемого программой сжатия. Некоторые программы особенно подходят для обнаружения шаблонов в определенных типах файлов и поэтому могут сжимать их более кратко. У других есть словари внутри словарей, которые могут эффективно сжиматься для больших файлов, но не для меньших. Хотя все программы сжатия такого типа работают с одной и той же основной идеей, на самом деле существует много различий в способах выполнения. Программисты всегда пытаются создать лучшую систему.
Сжатие с потерями и без потерь
Тип сжатия, который мы здесь обсуждаем, называется сжатием без потерь, поскольку он позволяет точно воссоздать исходный файл. Все сжатие без потерь основано на идее разбиения файла на «меньшую» форму для передачи или хранения, а затем на другом конце, чтобы его можно было использовать снова.
Сжатие с потерями работает совсем по-другому. Эти программы просто удаляют «ненужные» биты информации, подгоняя файл под размер. Этот тип сжатия часто используется для уменьшения размера файла растровых изображений, которые имеют тенденцию быть довольно громоздкими. Чтобы понять, как это работает, давайте рассмотрим, как ваш компьютер может сжать отсканированную фотографию.
Программа сжатия без потерь мало что может сделать с этим типом файлов. В то время как большие части изображения могут выглядеть одинаково — например, все небо голубое — большинство отдельных пикселей немного отличаются. Чтобы уменьшить это изображение без ущерба для разрешения, вы должны изменить значение цвета для определенных пикселей. Если бы на картинке было много синего неба, программа выбирала бы один цвет синего, который можно было бы использовать для каждого пикселя. Затем программа перезаписывает файл так, чтобы значение для каждого пикселя неба ссылалось на эту информацию. Если схема сжатия работает хорошо, вы не заметите изменения, но размер файла значительно уменьшится.
Конечно, при сжатии с потерями вы не сможете восстановить исходный файл после его сжатия. Вы застряли с переинтерпретацией оригинала программой сжатия. По этой причине вы не можете использовать этот тип сжатия для всего, что необходимо точно воспроизвести, включая программные приложения, базы данных и речи на инаугурации президента.
Дополнительную информацию о сжатии файлов и связанных темах см. по ссылкам на следующей странице.
Сжатие данных имеет широкий спектр вычислительных приложений. Кроме того, сжатие данных играет неотъемлемую роль в рационализации организационных функций и своевременной передаче данных.
Место для хранения компьютера
Файлов со временем становится не только больше, но и их размер. Например, если в какой-то момент отправка 30 страниц текста за несколько минут могла быть невероятным технологическим достижением, то сегодня пользователь компьютера ожидает HD-видео и звука по запросу. Большинство компьютеров имеют достаточно места для хранения, поэтому хранение больших файлов не является большой проблемой, а использование дополнительного хранилища с помощью внешнего жесткого диска или USB-накопителя — это просто и недорого. Тем не менее, при работе с файлами большого размера экономия дискового пространства является разумной практикой. Не говоря уже о том, что многие распространенные программы различными способами ограничивают размер данных.
Ограничения данных Gmail
Как многие из вас знают, Gmail не позволяет отправлять вложения электронной почты, размер которых превышает 25 МБ. В качестве альтернативы Google позволяет пользователям отправлять файлы через Интернет с помощью популярного облачного сервиса Google Диска. . Отсутствие сжатия файлов делает процесс отправки массовой информации более трудоемким. Если ваши файлы не будут сжаты, это может вызвать проблемы у ваших получателей при отправке данных через Интернет или по сети.
Преимущества и недостатки сжатия
Помня об этом, рассмотрим некоторые преимущества и недостатки сжатия и обсудим некоторые распространенные типы сжатия, такие как ZIP-файлы и сжатие без потерь. Таким образом, вы можете не тратить время на загрузку и передачу огромных файлов и правильно работать с программами, требующими большого объема памяти.
Что такое сжатие данных?
Сжатие данных — это способ изменения или кодирования структурированных данных, чтобы они занимали меньше места на диске при хранении в компьютерной системе. Другими словами, любой случай, когда данные или фрагменты данных подвергаются уменьшению исходного размера хранилища или скорости передачи данных, является сжатием данных.
Сжатие данных или сжатие файлов?
Сравнивая сжатие данных со сжатием файлов, вы должны понимать, что это не всегда синонимы. Часто сжатие файлов можно рассматривать как часть сжатия данных, в то время как сжатие данных относится к уменьшению размера любого типа объекта данных — будь то кластер ячеек или отдельные биты данных. Сжатие файлов — это метод сжатия данных, который уменьшает размер файла для повышения эффективности использования дискового пространства. Кроме того, сжатие файлов уменьшает размер файлов при резервном копировании важной информации и обеспечивает более быструю передачу в Интернете или по сетям.
В конце концов, как данные, так и сжатие файлов оптимизируют ресурсы физического хранилища, используемые вашей технологией.
Как работает сжатие данных?
Сжатие данных связано с техническими подробностями. Проще говоря, сжатие — это программное решение или вычислительная техника, использующая алгоритмы плотности для сжатия данных. Типичный метод сжатия заменяет повторяющиеся компоненты данных и символы, полагаясь на удаление, чтобы добиться уменьшения размера. При этом графические данные могут быть сжаты с помощью сжатия без потерь, при котором повторяющиеся данные не удаляются.
Независимо от используемого алгоритма сжатия результатом сжатия является файл или файлы меньше их исходного размера.
Отличается ли архивирование файлов от сжатия файлов?
Архивирование — это форма сжатия файлов. В частности, ZIP-файлы, хотя и .zip или .zipx, часто содержат несколько сжатых файлов, известных как «архивы». Файлы Zip являются наиболее известным форматом сжатия среди пользователей Windows. Поэтому неудивительно, что WinZip является наиболее широко используемым программным обеспечением для сжатия файлов среди пользователей ПК.
Примечание. К сожалению, в macOS нет встроенной утилиты для работы с архивами, предназначенной для работы с zip-файлами. Таким образом, сторонники Apple должны полагаться на сторонние приложения для обработки такого типа сжатых данных.
Знакомство с Zip-файлами
Как бы то ни было, подумайте о том, как работают папки в Windows. Вы можете сгруппировать несколько файлов в папке и перемещать папку. При этом файлы остаются вместе в исходном расположении. Zip-файлы работают аналогичным образом, но содержимое папки сокращается для увеличения производительности хранилища. ZIP-файлы не только упрощают организацию связанных файлов, но и значительно упрощают передачу, загрузку, отправку по электронной почте и хранение данных.
Это определение zip-файла удовлетворяет большинство людей.Тем не менее, знаете ли вы, что у zip-файлов есть много других функций, помимо простого сжатия файлов и создания сжатых архивов? Точно так же WinZip — не единственная программа для управления сжатыми файлами и не самая передовая.
Стороннее программное обеспечение
Шифрование zip-файлов
Шифрование ZIP-файлов — бесценный ресурс, если вы хотите сжать файлы и защитить их от посторонних глаз. Только не забудьте использовать надежный пароль, чтобы атаки по словарю и перебор не помешали вашим усилиям по шифрованию.
Самораспаковывающиеся архивы
Самораспаковывающийся архив представляет собой обычный ZIP-файл со встроенным исполняемым файлом (.exe). Выполнение архива позволит начать процесс извлечения самостоятельно. Для открытия архива не обязательно использовать какие-либо специализированные программы.
Разбить на тома
Во многих случаях у вас есть сжатый файл, слишком большой для любого внешнего устройства хранения, будь то компакт-диск или флэш-накопитель USB. Итак, хорошо, когда ваша программа позволяет вам разделить архив на несколько томов.
Высококачественное сжатие
Наконец, встроенная утилита сжатия 7-Zip позволяет сжимать файлы более компактно. Хотя это преимущество не является существенным, при определенных обстоятельствах может потребоваться освободить место для нескольких дополнительных МБ.
В конце концов, 7-Zip — это одна из многих вспомогательных программ, облегчающих сжатие данных. Поэтому рекомендуется выбирать программу с функциями, подходящими для ваших нужд.
Преимущества сжатия файлов
Как вы видели, сжатие файлов дает множество преимуществ. Вот краткий обзор:
Повышение эффективности вычислений
Сжатые данные позволяют пользователям быстрее выполнять резервное копирование и хранение данных, особенно при работе с большими файлами. Примечание. Преимущества сжатия цифрового видео становятся все более полезными по мере того, как рекламные письма (VSL) и персонализированные видео становятся все более распространенными.
Более быстрые переводы
Сжатие файлов не только позволяет более эффективно перемещать файлы на локальном устройстве, но и позволяет быстрее отправлять большие документы и данные через Интернет.
Улучшенная целостность файлов
Несжатые файлы часто могут быть повреждены при отправке через Интернет. Заархивированные файлы служат для сохранения целостности ваших файлов и обеспечения сохранности ваших данных.
Доступность электронной почты/веб-страницы
Большие файлы легче сжимать при их загрузке на веб-страницу или отправке по электронной почте. Кроме того, как упоминалось ранее, наиболее распространенные системы электронной почты ограничивают размер вложений. Таким образом, сжатие позволяет отправлять несколько файлов вместе, а не по одному.
Недостатки сжатия данных
Хотя это обсуждение в основном было сосредоточено на преимуществах сжатия файлов, было бы упущением не упомянуть некоторые из недостатков, обычно связанных со сжатием. Вот некоторые недостатки сжатия данных:
Сжатые файлы должны быть распакованы
Несмотря на то, что это может показаться здравым смыслом, не все знакомы со сжатыми файлами. Таким образом, распаковка ваших zip-файлов на стороне получателя иногда может оказаться проблематичной.
Исполняемые файлы имеют плохую репутацию
Избегайте файлов, оканчивающихся на .exe", — это одна из первых вещей, которую вы узнаете, когда начинаете работать в сети. Поэтому, если вы используете стороннюю программу для создания самораспаковывающихся архивов, не удивляйтесь, если ваш получатель будет сдержанно открывать сжатое вложение.
Может произойти расшифровка
Если вы поместите зашифрованные файлы в уже отформатированную ZIP-папку, велика вероятность, что они станут незашифрованными при распаковке. Этот недостаток кода может привести к непреднамеренному раскрытию личной информации и конфиденциальных данных.
Преимущества и недостатки сжатия
Учитывая все обстоятельства, вы можете увидеть несколько преимуществ и недостатков сжатия в отношении управления данными. Однако преимущества сжатия файлов, несомненно, перевешивают его недостатки.
Помимо увеличения доступного дискового пространства для хранения, сжатие данных также повышает производительность других физических ресурсов хранения. Сжатые файлы также упрощают отправку больших документов по электронной почте и работу с ними в Интернете.
Недостатки в большей или меньшей степени связаны с техническими проблемами, а не с фактическими недостатками сжатия файлов в целом. Теперь, когда вы знаете о сжатии файлов, недостатки, описанные в этой статье, следует рассматривать как предупреждение об отказе от ответственности, а не фактические факторы, вызывающие проблемы.
Ники — деловой писатель с почти двадцатилетним практическим и издательским опытом. Она была опубликована в нескольких деловых изданиях, включая The Employment Times, Web Hosting Sun и WOW! Женщины о писательстве. Она также изучала бизнес в колледже.
Читайте также: