Как работает сжатие файлов?
Обзоры технологий

Как работает сжатие файлов?

Как работает сжатие файлов? Узнайте об основах сжатия файлов и разнице между сжатием с потерями и без потерь

Сжатие файлов является основной частью работы интернета. Оно позволяет нам передавать файлы, которые в противном случае потребовали бы слишком большой пропускной способности и времени. Каждый раз, когда вы обращаетесь к файлам 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 КБ соответственно

Похожие: Как уменьшить размер JPEG

Как работает сжатие файлов: Сжатие без потерь

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

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

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

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

mmmmmuuuuuuuoooooooooooo

Можно ‘сжать’ до следующей, гораздо более короткой формы:

m5u7o12

Это позволяет нам использовать семь символов вместо 24 для представления тех же данных, что является значительной экономией

Сжатие без потерь в повседневном использовании

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

Когда вы создаете ZIP-файл из исполняемого файла программы в Windows, он использует сжатие без потерь. Сжатие файла ZIP является более эффективным способом хранения программы, но при разархивировании (распаковке) вся исходная информация сохраняется. Если бы вы использовали сжатие с потерями для сжатия исполняемых файлов, распакованная версия была бы повреждена и непригодна для использования

К распространенным форматам без потерь относятся PNG для изображений, FLAC для аудио и ZIP. Форматы без потерь для видео встречаются редко, поскольку они занимают огромное количество места

Когда использовать сжатие с потерями и без потерь. Сжатие без потерь

Теперь, когда мы рассмотрели обе формы сжатия файлов, вы можете задаться вопросом, когда вам следует использовать ту или иную форму. Оказывается, не существует ‘лучшей’ формы сжатия – все зависит от того, для чего вы используете файлы

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

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

Позже, возможно, вы захотите записать музыку на свой телефон или старый MP3-плеер, чтобы слушать ее в дороге. Вероятно, для этого вам не важно, чтобы музыка была в идеальном качестве, поэтому вы можете конвертировать файлы FLAC в MP3. В результате вы получите аудиофайл, который по-прежнему можно слушать, но он не займет много места на вашем мобильном устройстве. Качество MP3, преобразованного из FLAC, будет таким же хорошим, как если бы вы создали сжатый MP3 прямо с оригинального CD. Вы даже можете сжимать видео прямо на iPhone

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

Проблемы, возникающие при сжатии файлов

Как мы видели, преобразование форматов без потерь в форматы с потерями – это нормально, как и преобразование одного формата с потерями в другой. Однако никогда не следует преобразовывать формат с потерями в формат без потерь, а также следует остерегаться преобразования одного формата с потерями в другой

Преобразование форматов с потерями в без потерь – это просто пустая трата места. Помните, что форматы с потерями выбрасывают данные; восстановить их невозможно

Допустим, у вас есть файл MP3 размером 3 МБ. При преобразовании его в FLAC может получиться файл размером 30 МБ, но эти 30 МБ содержат именно те звуки, которые были в MP3 гораздо меньшего размера. Преобразование обратно в формат без потерь не ‘восстанавливает’ информацию, выброшенную при сжатии MP3

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

Как работает сжатие? Теперь вы знаете

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

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

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

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий

ВАМ БУДЕТ ИНТЕРЕСНО