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

Идея архиваторов

Архиватор — это программа, которая сжимает данные. Так, что они становятся меньшего размера. Зачем это нужно? Раньше это было нужно очень часто, особенно, когда данные передавались на дискетах размера 1.44MB. Сейчас, конечно, места на диске становится все больше и больше, но слишком много его не бывает никогда. А если вы посылаете документы по электронной почте. то и сейчас часто можете сталкиваться с ограничениями, накладываемыми на размер пересылаемых файлов. Так что, прежде чем посылать документ, возможно, стоит его сжать.

У вас не возникает странного ощущения? Все файлы под действием сжимаются. А потом их можно снова распаковать. Такого же не может быть! Ведь более длинных файлов больше, и если все файлы уменьшаются в размере, то найдутся отличающиеся друг от друга файлы, совпадающие после сжатия! И как тогда их распаковывать? Получается, что операция неоднозначна, сжали один файл, а при распаковке можем получить совсем другой.

На самом деле, никаких противоречий нет. Идея арзиваторов очень проста. Просто архиватор сжимает не все файлы, он сжимает все «нормальные» файлы. А большинство файлов при применении к ним архиватора, наоборот, немного увеличиваются в размере. Но просто, скорей всего, вам никогда не будут попадаться такие файлы.

Логика архиваторов

Почему так происходит? А потому что все, создаваемое человеком, имеет какую-то логику. И именно эту логику и ищут архиваторы. Могут быть варианты:

  • В этом тексте часто встречается слово «архиватор». Если текст хочется сжать, можно где-нибудь определить сокращения, и дальше обозначать архиватор черех «арх». Или вообще через какой-нибудь специальный символ. Текст от этого сократится.
  • Вообще текст для компьютера слабо насыщен информацией. Мы используем порядка 60 символов (маленькие, большие буквы). Давайте сейчас для упрощения скажем, что используется не больше 64 различных символов. 64 — это 2 в шестой степени. А для хранения символа используется байт, принимающий различные 256 значений — 2 в восьмой степени. Тем самым, в случае текста 2 бита из 8 «простаивают». Если учесть это в алгоритмах сжатия данных, то сразу можно начать использовать 6 байтов на 8 символов, сокращая размер файла на четверть.
  • Аналогично, на рисунках могут быть однотонные зоны. Тогда эффективней не хранить цвета «попиксельно», а как-то описать границы зон, имеющих одинаковый цвет.

Это были лишь простые идеи, естественно, что современные архиваторы используют намного более сложные алгоритмы.

Типы архиваторов

Сначала их было очень много. Ведь программистам хотелось придумывать свои архиваторы, а стандартов не было. ZIP, ARJ, LZH, RAR, UC2, CAB, ACE, это лишь малая часть из встречавшихся архиваторов. И пользователи часто имели на своих компьютерах кучу программ для архивации — ведь никогда не было известно, в каком еще формате можно получить файл.

Потом более продвинутые разработчики стали вставлять в свои архиваторы возможность открывать архивы других типов. Тем самым необходимость иметь кучу программ пропала. А заодно некоторые типы архиваторов стали более популярными. На сегодняшний день активно используется лишь малое количество типов:

Комментарии запрещены.

Навигация по записям