LZW-кодирование
Алгоритм LZW, впервые представленный Уэлчем в 1984 году, в последние несколько лет стал широко используемым методом. Формат GIF файлов CompuServe использует сжатие LZW; это делают и ARC, compress из UNIX, Stuffit и PkZip. Сам алгоритм запатентован фирмой Sperry. Несмотря на некоторую сложность, этот метод достаточно мощный и быстрый, что, собственно, и обусловило его популярность. LZW работает путем расширения алфавита — он использует дополнительные символы для представления строк обычных символов. Чтобы использовать LZW-сжатие на 8-битовые коды ASCII, вы расширяете алфавит, используя девяти- и более битовые коды. Дополнительные 256 символов, предоставляемые 9-битовым кодом, используются для хранения строк 8-битовых кодов, которые определяются из строк во входном потоке. Компрессор поддерживает таблицу строк, состоящую из строк и соответствующих им кодов. Таблица строк соответствует расширенному алфавиту. Компрессор начинает с таблицы строк, определенной только 256 кодами букв. Если вы используете 9-битовые коды, таблица строк имеет 256 дополнительных пустых элементов; если вы используете 10-битовые коды, она имеет 768 пустых элемента и т.д. Алгоритм сжатия работает примерно так. Начните с нулевой строки. Прочитайте символ и добавьте его к строке. Если строка уже находится в таблице, продолжайте чтение, пока не получите строку, которой нет в таблице. Добавьте эту строку к таблице строк. Пишите код для последней известной строки, которая соответствует выходу. Используйте последний символ в качестве основы для новой строки и продолжайте чтение, пока не исчерпаете весь ввод. Какой же выбрать архиватор? Какой же архиватор лучше? Ответ на этот вопрос далеко не однозначен. Если посмотреть на таблицу, в которой «соревнуются» архиваторы (сделать это можно в на сайте http://arctest.narod.ru), то можно увидеть, что количество программ, принимающих участие в «соревнованиях», превышает сотню. Как же выбрать из этого многообразия необходимый архиватор? Выбирая архиватор, необходимо руководствоваться его универсальностью и надежностью, разумеется не забывая при этом о главных параметрах — качестве и скорости сжатия. Среди используемых сегодня архиваторов многие являются специфичными к определенным форматам файлов, что, несомненно, следует использовать, но по назначению. Общий анализ показывает, что не стоит выбирать архиватор, обеспечивающий максимальное сжатие данных. Выигрыш в сжатии (на 7-10%) обычно приводит к значительному увеличению времени обработки исходных данных, которое может отличаться в сотни раз даже на очень мощных персональных компьютерах. Если же вам нужен архиватор, что называется, «на все случаи жизни», то оценить, насколько хороша данная программа, можно обратившись к тесту, в котором соревнуются программы, обрабатывающие различные типы файлов. Просмотреть список архиваторов и результаты их тестирования можно в разделе «Тестирование» в этой статье. Более подробную информацию о характеристиках и результатах тестирования более 100 разных архиваторов можно получить на сайте http://arctest.narod.ru. Однако необходимо отметить, что в тестах анализируются лишь количественные параметры, такие как скорость сжатия, коэффициент сжатия и некоторые другие, в то время как существует еще целый ряд параметров, определяющих удобство пользования архиваторами. Перечислим некоторые из них.
В то время как большинство программ поддерживают один или два формата, некоторые из них, такие, например, как программа WinAce, поддерживают много форматов и, в частности, осуществляют компрессию в форматах ACE, ZIP, LHA, MS-CAB, JAVA JAR и декомпрессию в форматах ACE, ZIP, LHA, MS-CAB, RAR, ARC, ARJ, GZip, TAR, ZOO, JAR.
Создание solid-архивов — это архивирование, при котором увеличение сжатия возрастает при наличии большого числа одновременно обрабатываемых коротких файлов. Часть архиваторов, например ACB, всегда создают solid-архивы, другие, такие как RAR или 777, предоставляют возможность их создания, а некоторые, например ARJ, этого делать вообще не умеют.
Многотомные архивы необходимы, когда файлы переносятся с компьютера на компьютер с помощью дискет и когда архив не помещается на одной дискете.
Различные программы в большей или меньшей степени способны вести учет архивам на вашем диске. Некоторые архиваторы, например WinZip, позволяют быстро добраться к любому архивному файлу (и к его содержимому), где бы он ни находился на диске.
В принципе, архивирование есть разновидность кодирования, и если раскодирование доступно по паролю, то это, естественно, может использоваться как средство ограничения доступа к конфиденциальной информации.
Не последним фактором является удобство в работе – наличие продуманного меню, поддержка мыши, оптимальный набор опций, наличие командной строки и т.д. При этом необходимо отметить, что для многих (особенно непрофессионалов) важен фактор привычки. Если вы привыкли работать с определенной программой и вам сообщают, что есть альтернативная программа, которая на каком-либо тесте выигрывает у вашей десять пунктов, это вполне может означать, что программа-победитель сжимает файлы на 2% лучше, что, возможно, для вас не имеет никакого значения. При этом вероятно, что эта программа менее удобна в работе и т.д. С другой стороны, если вам не хватает 2%, чтобы сжать распространяемую вами программу до размера дискеты, то подобная программа для вас — находка.
Некоторые программы позволяют создавать архивы с расширением *.exe. В этом случае нужно просто запустить на выполнение файл, и архив автоматически откроется, даже если у вас под рукой нет нужного архиватора.
Установив эту опцию, вам не придется удалять исходный текст вручную после архивации. За вас это сделает программа.
Создавая архив, полезно бывает дописать к нему комментарии с кратким описанием содержимого. Рассмотрим наиболее интересные на сегодня стандартные программы архиваторов.
|