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

Архиваторы бывают нескольких видов:

  • объединяющие группу файлов в один большой (без сжатия)
  • сжимающие без потерь данных
  • сжимающие с потерями данных

На первый взгляд объединение файлов в один большой не даст толку. Но это не так. Например, записывать один файл на ленту намного быстрее, ведь для записи каждого следующего файла нужно перемотать ленту на начало и записать там где будет записан следующий файл. Так лента моталась очень долго и много раз. Это увеличивало износ. А устройства (назывались они стримеры) были очень медленными. Самый шустрый, который мне довелось видеть, записывал на ленту 8 МБайт в минуту. А ленты были по 2 ГБайта. Хоть ленты сейчас используются крайне редко, но этот способ сжатия может быть полезен и на современных компьютерах. Помните о кластерах? А теперь представьте, что у вас много маленьких файлов. Каждый занимает минимум один кластер (а кластеры сегодня это 2-8КБайт), а файлы большего размера всё равно в большинстве случаев не занимают последний кластер полностью. Вот эти недописанные кластера - пустая трата места на диске. А если файлы упаковать в один можно высвободить место.

Как развитие идеи было изобретено множество архиваторов, которые правда сжимают информацию. Степень сжатия зависит от типа файла. Текстовые файлы сжимаются лучше бинарных. Есть множество алгоритмов сжатия. Основные идеи: замена одинаковых последовательностей символов на уникальную последовательность меньшей длинны. Текстовые файлы используют не все возможные коды символов. Это даёт возможность сжать их лучше. Степень сжатия зависит и от алгоритма архиватора. Но сегодня архиваторы сами определяют тип сжимаемой информации и выбирают лучший способ сжатия. С помощью таких программ можно сжать файлы в десятки раз.

В некоторых случаях не обязательно получить из архива точную копию файла до упаковки. Например, музыка, фотографии, видео. Всё это сжимается с потерями. При сжатии звука просто отбрасывается лишняя информация, например вырезается диапазон частот, которые мы не слышим. Потом звук фильтруется и “сглаживается”. Поэтому когда мы слушаем музыку в MP3 мы не услышим разницы по сравнению с аудио диском (если нет абсолютного слуха конечно ;) ). То же касается и картинок. Картинка изначально состоит из точек. Чтобы её сжать, участки со схожим цветом могут быть залиты одним цветом или меньшим количеством цветов чем оригинал. Качество картинки зависит от степени сжатия. Поэтому такие форматы как jpeg, gif и другие позволяют выбрать качество сжатия и степень приближения. А при сжатии видео используются оба подхода (естественно немного другие, но смысл остаётся). Так можно сжать фильм с DVD диска до размеров подходящих для записи на CD, но качество при этом станет хуже.