Skip to main content

Что такое алгоритм сжатия?

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

Один из способов классификации алгоритмов сжатия заключается в том, используют ли они словарные или статистические методы для сжатия данных. Метод словаря ориентирован на повторяющиеся фразы и используется в изображениях GIF, а также в архивах JAR и ZIP. Статистический метод основан на частоте использования, чтобы сделать преобразование, которое делается в два прохода. Примером является Модифицированный Хаффман (MH), используемый в некоторых факсимильных аппаратах.

Второй способ классификации алгоритмов сжатия, с которым чаще всего сталкиваются непрофессиональные программисты, заключается в том, являются ли они без потерь или с потерями. Алгоритм сжатия данных без потерь - это алгоритм сжатия данных таким образом, что при распаковке он полностью идентичен исходному файлу. Одним из примеров алгоритма сжатия данных без потерь является lzw (алгоритм Лемпеля-Зива-Уэлча). Разработанный в 1977 году Лемпелем и Зивом и улучшенный в 1984 году Уэлчем, он используется в таких файлах, как GIF, TIF и PDF, а также в некоторых модемах.

Алгоритм сжатия данных с потерями обладает возможностью уменьшения данных до меньшего размера, чем сжатие без потерь, но за счет некоторых исходных данных. Другими словами, восстановление после сжатия данных с потерями не дает идентичной копии исходного файла. Однако алгоритм сжатия предназначен для ограничения потерь, чтобы они не были видны уху или глазу. Сжатие с потерями используется в таких форматах, как AAC, JPEG, MPEG и MP3.