Ваш персональный компьютер: настраиваем в домашних условиях. Андрей Кашкаров
Чтение книги онлайн.
Читать онлайн книгу Ваш персональный компьютер: настраиваем в домашних условиях - Андрей Кашкаров страница 14
Существует 2 основных метода архивации без потерь: алгоритм Хаффмана, ориентированный на сжатие последовательностей байт, не связанных между собой и алгоритм Лемпеля – Зива, ориентированный на сжатие любых текстов, использующий повторения последовательностей байт.
Алгоритм Хаффмана основан на том, что некоторые символы из стандартного 256–символьного набора в произвольном тексте могут встречаться чаще среднего, а другие, соответственно, реже. Если при записи распространенных символов использовать короткие последовательности бит, длиной меньше 8, а для записи редких символов – длинные, то суммарный объем файла уменьшится.
Алгоритм Лемпеля – Зива формулируется так: «если в прошедшем ранее выходном потоке уже встречалась подобная последовательность байт, причем запись о ее длине и смещении от текущей позиции короче, чем сама эта последовательность, то в выходной файл записывается ссылка (смещение, длина), а не сама последовательность».
Например, фраза «КОЛОКОЛ ОКОЛО КОЛОКОЛЬНИ закодируется как «КОЛО(-4,3)_(-5,4)О_(-14,7)ЬНИ».
Основным показателем эффективности архиватора является степень сжатия файлов. Она характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vс к объему исходного файла Vо, выраженное в процентах (в некоторых источниках используется обратное соотношение):
Кс=(Vс/Vо)*100%
Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла.
Наиболее хорошо сжимаются файлы графических образов, текстовые файлы и файлы данных, для которых коэффициент сжатия может достигать 5…40 %, меньше сжимаются файлы исполняемых программ и загрузочных модулей Кс=60…90 %, почти не сжимаются архивные файлы.
Практически все популярные программы архивации (ARJ, RAR, ZIP) используют объединение двух методов – алгоритм LZH. Частота встречаемости повторов наиболее высока в текстах и точечной графике и практически сведена к нулю в архивах.
Реализацией алгоритмов сжатия соответственно влияет на степень сжатия. Для уменьшения коэффициента сжатия Кс включаются дополнительные средства, например, в программе WinRAR реализован механизм непрерывного (solid) архивирования, который позволяет достигнуть на 10…50 % более высокой степени сжатия, чем дают обычные методы, особенно если упаковывается значительное количество небольших файлов однотипного содержания. Архиватор RAR имеет удобный графический интерфейс и позволяет читать текстовые файлы, находящиеся как в rar – архиве, так и в arj и zip – архивах. Об архиваторах ZIP и RAR написаны горы статей, но наряду с ними разработаны и другие программные продукты аналогичного назначения. Как эффективный вариант из многих аналогичных рассмотрим работу программы ARJ.
Архиватор ARJ
Программа ARJ (разработчик – Robert K. Jung) относится к известным продуктам своего класса. Она выполняет все функции по обслуживанию архивов, может помещать файлы в архив, извлекать файлы из архива, делать «самоизвлекающиеся» файлы и многое другое.
ARJ работает из командной строки, выполняет все функции по обслуживанию архивов.