Степень сжатия файла не зависит от. Принципы сжатия информации. Определение общих характеристик основных архивных форматов

Часть первая – историческая .

Введение

Существующие алгоритмы сжатия данных можно разделить на два больших класса – с потерями, и без. Алгоритмы с потерями обычно применяются для сжатия изображений и аудио. Эти алгоритмы позволяют достичь больших степеней сжатия благодаря избирательной потере качества. Однако, по определению, восстановить первоначальные данные из сжатого результата невозможно.
Алгоритмы сжатия без потерь применяются для уменьшения размера данных, и работают таким образом, что возможно восстановить данные в точности такими, какие они были до сжатия. Они применяются в коммуникациях, архиваторах и некоторых алгоритмах сжатии аудио и графической информации. Далее мы рассмотрим только алгоритмы сжатия без потерь.
Основной принцип алгоритмов сжатия базируется на том, что в любом файле, содержащем неслучайные данные, информация частично повторяется. Используя статистические математические модели можно определить вероятность повторения определённой комбинации символов. После этого можно создать коды, обозначающие выбранные фразы, и назначить самым часто повторяющимся фразам самые короткие коды. Для этого используются разные техники, например: энтропийное кодирование, кодирование повторов, и сжатие при помощи словаря. С их помощью 8-битный символ, или целая строка, могут быть заменены всего лишь несколькими битами, устраняя таким образом излишнюю информацию.

История

Иерархия алгоритмов:

Хотя сжатие данных получило широкое распространение вместе с интернетом и после изобретения алгоритмов Лемпелем и Зивом (алгоритмы LZ), можно привести несколько более ранних примеров сжатия. Морзе, изобретая свой код в 1838 году, разумно назначил самым часто используемым буквам в английском языке, “e” и “t”, самые короткие последовательности (точка и тире соотв.). Вскоре после появления мейнфреймов в 1949 году был придуман алгоритм Шеннона - Фано, который назначал символам в блоке данных коды, основываясь на вероятности их появления в блоке. Вероятность появления символа в блоке была обратно пропорциональна длине кода, что позволяло сжать представление данных.
Дэвид Хаффман был студентом в классе у Роберта Фано и в качестве учебной работы выбрал поиск улучшенного метода бинарного кодирования данных. В результате ему удалось улучшить алгоритм Шеннона-Фано.
Ранние версии алгоритмов Шеннона-Фано и Хаффмана использовали заранее определённые коды. Позже для этого стали использовать коды, созданные динамически на основе данных, предназначаемых для сжатия. В 1977 году Лемпель и Зив опубликовали свой алгоритм LZ77, основанный на использования динамически создаваемого словаря (его ещё называют «скользящим окном»). В 78 году они опубликовали алгоритм LZ78, который сначала парсит данные и создаёт словарь, вместо того, чтобы создавать его динамически.

Проблемы с правами

Алгоритмы LZ77 и LZ78 получили большую популярность и вызвали волну улучшателей, из которых до наших дней дожили DEFLATE, LZMA и LZX. Большинство популярных алгоритмов основаны на LZ77, потому что производный от LZ78 алгоритм LZW был запатентован компанией Unisys в 1984 году, после чего они начали троллить всех и каждого, включая даже случаи использования изображений в формате GIF. В это время на UNIX использовали вариацию алгоритма LZW под названием LZC, и из-за проблем с правами их использование пришлось сворачивать. Предпочтение отдали алгоритму DEFLATE (gzip) и преобразованию Барроуза - Уилера, BWT (bzip2). Что было и к лучшему, так как эти алгоритмы почти всегда превосходят по сжатию LZW.
К 2003 году срок патента истёк, но поезд уже ушёл и алгоритм LZW сохранился, пожалуй, только в файлах GIF. Доминирующими являются алгоритмы на основе LZ77.
В 1993 году была ещё одна битва патентов – когда компания Stac Electronics обнаружила, что разработанный ею алгоритм LZS используется компанией Microsoft в программе для сжатия дисков, поставлявшейся с MS-DOS 6.0. Stac Electronics подала в суд и им удалось выиграть дело, в результате чего они получили более $100 миллионов.

Рост популярности Deflate

Большие корпорации использовали алгоритмы сжатия для хранения всё увеличивавшихся массивов данных, но истинное распространение алгоритмов произошло с рождением интернета в конце 80-х. Пропускная способность каналов была чрезвычайно узкой. Для сжатия данных, передаваемых по сети, были придуманы форматы ZIP, GIF и PNG.
Том Хендерсон придумал и выпустил первый коммерчески успешный архиватор ARC в 1985 году (компания System Enhancement Associates). ARC была популярной среди пользователей BBS, т.к. она одна из первых могла сжимать несколько файлов в архив, к тому же исходники её были открыты. ARC использовала модифицированный алгоритм LZW.
Фил Катц, вдохновлённый популярностью ARC, выпустил программу PKARC в формате shareware, в которой улучшил алгоритмы сжатия, переписав их на Ассемблере. Однако, был засужен Хендерсоном и был признан виновным. PKARC настолько открыто копировала ARC, что иногда даже повторялись опечатки в комментариях к исходному коду.
Но Фил Катц не растерялся, и в 1989 году сильно изменил архиватор и выпустил PKZIP. После того, как его атаковали уже в связи с патентом на алгоритм LZW, он изменил и базовый алгоритм на новый, под названием IMPLODE. Вновь формат был заменён в 1993 году с выходом PKZIP 2.0, и заменой стал DEFLATE. Среди новых возможностей была функция разбиения архива на тома. Эта версия до сих пор повсеместно используется, несмотря на почтенный возраст.
Формат изображений GIF (Graphics Interchange Format) был создан компанией CompuServe в 1987. Как известно, формат поддерживает сжатие изображения без потерь, и ограничен палитрой в 256 цветов. Несмотря на все потуги Unisys, ей не удалось остановить распространение этого формата. Он до сих пор популярен, особенно в связи с поддержкой анимации.
Слегка взволнованная патентными проблемами, компания CompuServe в 1994 году выпустила формат Portable Network Graphics (PNG). Как и ZIP, она использовала новый модный алгоритм DEFLATE. Хотя DEFLATE был запатентован Катцем, он не стал предъявлять никаких претензий.
Сейчас это самый популярный алгоритм сжатия. Кроме PNG и ZIP он используется в gzip, HTTP, SSL и других технологиях передачи данных.

К сожалению Фил Катц не дожил до триумфа DEFLATE, он умер от алкоголизма в 2000 году в возрасте 37 лет. Граждане – чрезмерное употребление алкоголя опасно для вашего здоровья! Вы можете не дожить до своего триумфа!

Современные архиваторы

ZIP царствовал безраздельно до середины 90-х, однако в 1993 году простой русский гений Евгений Рошал придумал свой формат и алгоритм RAR. Последние его версии основаны на алгоритмах PPM и LZSS. Сейчас ZIP, пожалуй, самый распространённый из форматов, RAR – до недавнего времени был стандартом для распространения различного малолегального контента через интернет (благодаря увеличению пропускной способности всё чаще файлы распространяются без архивации), а 7zip используется как формат с наилучшим сжатием при приемлемом времени работы. В мире UNIX используется связка tar + gzip (gzip - архиватор, а tar объединяет несколько файлов в один, т.к. gzip этого не умеет).

Прим. перев. Лично я, кроме перечисленных, сталкивался ещё с архиватором ARJ (Archived by Robert Jung), который был популярен в 90-х в эру BBS. Он поддерживал многотомные архивы, и так же, как после него RAR, использовался для распространения игр и прочего вареза. Ещё был архиватор HA от Harri Hirvola, который использовал сжатие HSC (не нашёл внятных объяснений - только «модель ограниченного контекста и арифметическое кодирование»), который хорошо справлялся со сжатием длинных текстовых файлов.

В 1996 году появился вариант алгоритма BWT с открытыми исходниками bzip2, и быстро приобрёл популярность. В 1999 году появилась программа 7-zip с форматом 7z. По сжатию она соперничает с RAR, её преимуществом является открытость, а также возможность выбора между алгоритмами bzip2, LZMA, LZMA2 и PPMd.
В 2002 году появился ещё один архиватор, PAQ. Автор Мэтт Махоуни использовал улучшенную версию алгоритма PPM с использованием техники под названием «контекстное смешивание». Она позволяет использовать больше одной статистической модели, чтобы улучшить предсказание по частоте появления символов.

Будущее алгоритмов сжатия

Конечно, бог его знает, но судя по всему, алгоритм PAQ набирает популярность благодаря очень хорошей степени сжатия (хотя и работает он очень медленно). Но благодаря увеличению быстродействия компьютеров скорость работы становится менее критичной.
С другой стороны, алгоритм Лемпеля-Зива –Маркова LZMA представляет собой компромисс между скоростью и степенью сжатия и может породить много интересных ответвлений.
Ещё одна интересная технология «substring enumeration» или CSE, которая пока мало используется в программах.

В следующей части мы рассмотрим техническую сторону упомянутых алгоритмов и принципы их работы.

Методы сжатия данных имеют достаточно длинную историю развития, которая началась задолго до появления первого компьютера. В этой статье будет произведена попытка дать краткий обзор основных теорий, концепций идей и их реализаций, не претендующий, однако, на абсолютную полноту. Более подробные сведения можно найти, например, в Кричевский Р.Е. , Рябко Б.Я. , Witten I.H. , Rissanen J. , Huffman D.A., Gallager R.G. , Knuth D.E. , Vitter J.S. и др.

Сжатие информации - проблема, имеющая достаточно давнюю историю, гораздо более давнюю, нежели история развития вычислительной техники, которая (история) обычно шла параллельно с историей развития проблемы кодирования и шифровки информации. Все алгоритмы сжатия оперируют входным потоком информации, минимальной единицей которой является бит, а максимальной - несколько бит, байт или несколько байт. Целью процесса сжатия, как правило, есть получение более компактного выходного потока информационных единиц из некоторого изначально некомпактного входного потока при помощи некоторого их преобразования. Основными техническими характеристиками процессов сжатия и результатов их работы являются:

Степень сжатия (compress rating) или отношение (ratio) объемов исходного и результирующего потоков;

Скорость сжатия - время, затрачиваемое на сжатие некоторого объема информации входного потока, до получения из него эквивалентного выходного потока;

Качество сжатия - величина, показывающая на сколько сильно упакован выходной поток, при помощи применения к нему повторного сжатия по этому же или иному алгоритму.

Существует несколько различных подходов к проблеме сжатия информации. Одни имеют весьма сложную теоретическую математическую базу, другие основаны на свойствах информационного потока и алгоритмически достаточно просты. Любой способ подход и алгоритм, реализующий сжатие или компрессию данных, предназначен для снижения объема выходного потока информации в битах при помощи ее обратимого или необратимого преобразования. Поэтому, прежде всего, по критерию, связанному с характером или форматом данных, все способы сжатия можно разделить на две категории: обратимое и необратимое сжатие.

Под необратимым сжатием подразумевают такое преобразование входного потока данных, при котором выходной поток, основанный на определенном формате информации, представляет, с некоторой точки зрения, достаточно похожий по внешним характеристикам на входной поток объект, однако отличается от него объемом. Степень сходства входного и выходного потоков определяется степенью соответствия некоторых свойств объекта (т.е. сжатой и несжатой информации, в соответствии с некоторым определенным форматом данных), представляемого данным потоком информации. Такие подходы и алгоритмы используются для сжатия, например, данных растровых графических файлов с низкой степенью повторяемости байтов в потоке. При таком подходе используется свойство структуры формата графического файла и возможность представить графическую картинку приблизительно схожую по качеству отображения (для восприятия человеческим глазом) несколькими (а точнее n) способами. Поэтому, кроме степени или величины сжатия, в таких алгоритмах возникает понятие качества, т.к. исходное изображение в процессе сжатия изменяется, то под качеством можно понимать степень соответствия исходного и результирующего изображения, оцениваемая субъективно, исходя из формата информации. Для графических файлов такое соответствие определяется визуально, хотя имеются и соответствующие интеллектуальные алгоритмы и программы. Необратимое сжатие невозможно применять в областях, в которых необходимо иметь точное соответствие информационной структуры входного и выходного потоков. Данный подход реализован в популярных форматах представления видео и фото информации, известных как JPEG и JFIF алгоритмы и JPG и JIF форматы файлов.

Обратимое сжатие всегда приводит к снижению объема выходного потока информации без изменения его информативности, т.е. - без потери информационной структуры. Более того, из выходного потока, при помощи восстанавливающего или декомпрессирующего алгоритма, можно получить входной, а процесс восстановления называется декомпрессией или распаковкой, и только после процесса распаковки данные пригодны для обработки в соответствии с их внутренним форматом.

В обратимых алгоритмах кодирование как процесс можно рассматривать со статистической точки зрения, что еще более полезно, не только для построения алгоритмов сжатия, но и для оценки их эффективности. Для всех обратимых алгоритмов существует понятие стоимости кодирования. Под стоимостью кодирования понимается средняя длина кодового слова в битах. Избыточность кодирования равна разности между стоимостью и энтропией кодирования, а хороший алгоритм сжатия всегда должен минимизировать избыточность (напомним, что под энтропией информации понимают меру ее неупорядоченности.). Фундаментальная теорема Шеннона о кодировании информации говорит о том, что "стоимость кодирования всегда не меньше энтропии источника, хотя может быть сколь угодно близка к ней". Поэтому, для любого алгоритма, всегда имеется некоторый предел степени сжатия, определяемый энтропией входного потока.

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

Сжатие способом кодирования серий

Наиболее известный простой подход и алгоритм сжатия информации обратимым путем - это кодирование серий последовательностей (Run Length Encoding - RLE). Суть методов данного подхода состоит в замене цепочек или серий повторяющихся байтов или их последовательностей на один кодирующий байт и счетчик числа их повторений. Проблема всех аналогичных методов заключается лишь в определении способа, при помощи которого распаковывающий алгоритм мог бы отличить в результирующем потоке байтов кодированную серию от других - некодированных последовательностей байтов. Решение проблемы достигается обычно простановкой меток в начале кодированных цепочек. Такими метками могут быть, например, характерные значения битов в первом байте кодированной серии, значения первого байта кодированной серии и т.п. Данные методы, как правило, достаточно эффективны для сжатия растровых графических изображений (BMP, PCX, TIF, GIF), т.к. последние содержат достаточно много длинных серий повторяющихся последовательностей байтов. Недостатком метода RLE является достаточно низкая степень сжатия или стоимость кодирования файлов с малым числом серий и, что еще хуже - с малым числом повторяющихся байтов в сериях.

Сжатие без применения метода RLE

Процесс сжатия данных без применения метода RLE можно разбить на два этапа: моделирование (modelling) и, собственно, кодирование (encoding). Эти процессы и их реализующие алгоритмы достаточно независимы и разноплановы.

Процесс кодирования и его методы

Под кодированием обычно понимают обработку потока символов (в нашем случае байтов или полубайтов) в некотором алфавите, причем частоты появления символов в потоке различны. Целью кодирования является преобразование этого потока в поток бит минимальной длины, что достигается уменьшением энтропии входного потока путем учета частот символов. Длина кода, представляющего символы из алфавита потока должна быть пропорциональна объему информации входного потока, а длина символов потока в битах может быть не кратна 8 и даже переменной. Если распределение вероятностей частот появления символов из алфавита входного потока известно, то можно построить модель оптимального кодирования. Однако, ввиду существования огромного числа различных форматов файлов задача значительно усложняется т.к. распределение частот символов данных заранее неизвестно. В таком случае, в общем виде, используются два подхода.

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

В сети сегодня популярны десятки архиваторов, причем, в описание у каждой программы можно встретить что ее алгоритм самый-самый… Решил взять несколько популярных в сети архиваторов, а именно: WinRar, WinUha, WinZip, KGB archiver, 7Z и проверить их в «боевых» условиях.

Небольшое предисловие… Сравнение, возможно будет не слишком объективное. Сравнение ахиваторов проводилось на самом обычном домашнем компьютере, среднем по показателям на сегодняшний день. К тому же не брались различные типы данных: сравнение сжатия проводилось на обычном «вордовском» документе, коих у многих кто учиться или работает с ними - сможет скопиться огромное количество. Ну и логично, что информацию, которую редко используешь - целесообразно запаковать в архив и иногда извлекать. Да и передавать такой файл намного легче: и на флешку быстрее скопируется, нежели куча мелких файлов, да и по интернету быстрее скачается…

Таблица сравнения сжатия

Для небольшого эксперимента был взят сравнительно большой файл RTF - около 3,5 мб и сжат разными архиваторами. Время работы пока не берем, об особенностях работы программ будет рассказано далее, сейчас же только посмотрим степень сжатия.

Программа Формат Степень сжатия Размер, к.байт Во сколько раз уменьшился размер файла ?
KGB Archiver 2 .kgb максимум 141411 22,99
WinRar .rar максимум 190546 17,07
WinUha .uha максимум 214294 15,17
7Z .7z максимум 218511 14,88
WinZip .zip максимум 299108 10,87
Исходный файл .rtf Без сжатия 3252107 1

Как видно из небольшой таблички, что самая высокая степень сжатия достигается у программы KGB Archiver 2 - в 23 раза уменьшился исходный размер файла! Т.е. если у вас на жестком диске несколько гигабайт различной документации, которой вы не пользуетесь и хотите удалить (но не покидает чувство, а вдруг пригодится) - не проще ли сжать такой программой и записать на диск…

Но обо всех «подводных камнях» по порядку…

KGB Archiver 2

В общем то не плохой архиватор, по заявлениям разработчиков их алгоритм сжатия один из самых «сильных». Сложно не согласиться…

Только вот скорость сжатия оставляет желать лучшего. Например, файл в примере (около 3 мб) программа сжимала около 3 мин! Нетрудно прикинуть, что один CD диск она будет сжимать пол дня, если не больше.

Но особое удивление вызывает не это. Распаковка файла длиться по времени столько же, сколько компрессия! Т.е. если вы потратили пол дня на то, чтобы сжать часть своих документов, то столько же времени вы потратите, чтобы достать их из архива.

Итог: программу можно использовать для небольших объемов информации, особенно, когда важен минимальный размер исходного файла (например, файл нужно разместить на дискете, или на небольшой по вместимости флешке). Но опять таки, угадать заранее размер сжатого файла нельзя, и возможно, время на сжатие вы потратите впустую…

WinRar

Знаменитая программа на постсоветском пространстве, установлена на большинстве компьютеров. Наверное, если бы она не показывала такие хорошие результаты, у нее бы и не было столько поклонников. Ниже скриншот на котором показаны настройки сжатия, ничего особенного, разве только степень сжатия была поставлена на максимум.

На удивление WinRar сжал файл за несколько секунд, причем размер файла уменьшился в 17 раз. очень достойный результат, если еще учесть что время затраченное на обработку ничтожно мало. А время на распаковку файла - еще меньше!

Итог: отличная программа, показывающая одни из самых лучших результатов. В процессе настроек сжатия можно так же указать максимальный размер архива и программа его разобьет на несколько частей. Это очень удобно, чтобы перенести файл с одного компьютера на другой на флешке или CD/DVD диске, когда целиком файл на не запишешь…

WinUha

Сравнительно молодой архиватор. Назвать его сверх-популярным нельзя, но интерес у многих пользователей к нему кто часто работает с архивами - есть. И не случайно, ведь по заявлениям разработчиков архиватора, его алгоритм сжатия сильнее чем у RAR и 7Z.

В нашем небольшом эксперименте я бы не сказал что это так. Возможно, что на некоторых других данных он и покажет куда лучшие результаты…

Кстати, при установке выбирайте английский язык, на русском - программа выдает «крякозабры».

Итог: неплохая программа с интересным алгоритмом сжатия. Время на обработку и создания архива, конечно, больше чем у WinRar, но на некоторых типах данных можно получить чуть большую степень сжатия. Хотя, лично я бы не стал делать на этом большой акцент…

7Z

Очень популярный бесплатный архиватор. Многие утверждают что степень сжатия в 7z реализована даже лучше чем в WinRar. Вполне возможно, но при сжатии с уровнем «Ультра» на большинстве файлов он проигрывает WinRar’у.

Итог: неплохая альтернатива WinRar’у. Вполне сопоставимая степень сжатия, хорошая поддержка русского языка, удобное встраивание в контекстное меню проводника.

WinZip

Легендарный, один из самых популярных некогда архиваторов. В сети, наверное, самые часто-встречающиеся архивы - это «ZIP». И не случайно - ведь несмотря на не самую высокую степень сжатия, скорость работы - просто поражает. Например, Windows открывает такие архивы как обычные папки!

К тому же не следует забывать, что этот архиватор и формат сжатия намного старше новомодных конкурентов. Да и далеко не у всех сейчас стоят мощные компьютеры, которые позволят быстро работать с новыми форматами. А формат Zip поддерживают все современные архиваторы!

Общие сведения об архивации файлов

Понятие процесса архивации файлов Одним из наиболее широко распространенных видов сервисных программ являются программы-архиваторы , предназначенные для архивации, упаковки файлов путем сжатия хранимой в них информации. Сжатие информации - это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.Сжатие информации в файлах производится за счет устранения избыточности различными способами, например за счет упрощения кодов, исключения из них постоянных битов или представления повторяющихся символов или повторяющейся последовательности символов в виде коэффициента повторения и соответствующих символов. Применяются различные алгоритмы подобного сжатия информации.Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в так называемый архивный файл или архив. Архивный файл - это специальным образом организованный файл, содержащий в себе один или несколько файлов в сжатом или несжатом виде и служебную информацию об именах файлов, дате и времени их создания или модификации, размерах и т.п.Целью упаковки файлов обычно являются обеспечение более компактного размещения информации на диске, сокращение времени и соответственно стоимости передачи информации по каналам связи в компьютерных сетях. Кроме того, упаковка в один архивный файл группы файлов существенно упрощает их перенос с одного компьютера на другой, сокращает время копирования файлов на диски, позволяет защитить информацию от несанкционированного доступа, способствует защите от заражения компьютерными вирусами.Степень сжатия файлов характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vc к объему исходного файла Vо, выраженное в процентах: Кс= (Vc/Vo)*100% Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла. Наиболее хорошо сжимаются файлы графических образов, текстовые файлы и файлы данных, для которых степень сжатия может достигать 5 - 40%, меньше сжимаются файлы исполняемых программ и загрузочных модулей - 60 - 90%. Почти не сжимаются архивные файлы. Программы для архивации отличаются используемыми методами сжатия, что соответственно влияет на степень сжатия. Архивация(упаковка) - помещение (загрузка) исходных файлов в архивный файл в сжатом или несжатом виде. Разархивация (распаковка) - процесс восстановления файлов из архива точно в таком виде, какой они имели до загрузки в архив. При распаковке файлы извлекаются из архива и помещаются на диск или в оперативную память; Программы, осуществляющие упаковку и распаковку файлов, называются программами - архиваторамии Большие по объему архивные файлы могут быть размещены на нескольких дисках (томах). Такие архивы называются многотомными. Том - это составная часть многотомного архива. Создавая архив из нескольких частей, можно записать его части на несколько дискет. Основные виды программ-архиваторов В настоящее время применяется несколько десятков программ - архиваторов, которые отличаются перечнем функций и параметрами работы, однако лучшие из них имеют примерно одинаковые характеристики. Из числа наиболее популярных программ можно выделить:ARJ , PKPAK, LHA, ICE, HYPER, ZIP, РАК, ZOO, EXPAND, разработанные за рубежом, а также AIN и RAR , разработанные в России. Обычно упаковка и распаковка файлов выполняются одной и той же программой, но в некоторых случаях это осуществляется разными программами, например, программа РКZIР производит упаковку файлов, a PKUNZIP - распаковку файлов.Программы - архиваторы позволяют создавать и такие архивы, для извлечения из которых содержащихся в них файлов не требуются какие - либо программы, так как сами архивные файлы могут содержать программу распаковки. Такие архивные файлы называются самораспаковывающимися. Самораспаковывающийся архивный файл - это загрузочный, исполняемый модуль, который способен к самостоятельной разархивации находящихся в нем файлов без использования программы - архиватора.Самораспаковывающийся архив получил название SFX - архив (SelF - eXtracting). Архивы такого типа в MS DOS обычно создаются в форме.ЕХЕ - файла.Многие программы - архиваторы производят распаковку файлов, выгружая их на диск, но имеются и такие, которые предназначены для создания упакованного исполняемого модуля (программы). В результате такой упаковки создается программный файл с теми же именем и расширением, который при загрузке в оперативную память самораспаковывается и сразу запускается. Вместе с тем возможно и обратное преобразование программного файла в распакованный формат. К числу таких архиваторов относятся программы PKLITE, LZEXE, UNP.Программа EXPAND, входящая в состав утилит операционной системы MS DOS и оболочки Windows, применяется для распаковки файлов программных продуктов, поставляемых фирмой Microsoft.Программы - архиваторы RAR и AIN, кроме обычного режима сжатия, имеют режим solid, в котором создаются архивы с повышенной степенью сжатия и особой структурой организации. В таких архивах все файлы сжимаются как один поток данных, т.е. областью поиска повторяющихся последовательностей символов является вся совокупность файлов, загруженных в архив, и поэтому распаковка каждого файла, если он не первый, связана с обработкой других. Архивы такого типа предпочтительнее использовать для архивирования большого числа однотипных файлов.Способы управления программой - архиватором Управление программой - архиватором осуществляется одним из двух способов:
  • с помощью командной строки MS DOS, в которой формируется команда запуска, содержащая имя программы - архиватора, команду управления и ключи ее настройки, а также имена архивного и исходного файлов; подобное управление характерно для архиваторов ARJ, AIN, ZIP, РАК, LHA и др.;
  • с помощью встроенной оболочки и диалоговых панелей, появляющихся после запуска программы и позволяющих вести управление с использованием меню и функциональных клавиш, что создает для пользователя более комфортные условия работы. Такое управление имеет программа - архиватор RAR.
Выполняя предписанные ей действия, программа - архиватор, как правило, выводит на экран протокол своей работы. Все современные программы - архиваторы оснащены экранами помощи, которые вызываются при вводе в командной строке только одного имени программы или имени с ключом /?. Помощь может быть краткой - на одном экране или развернутой - на нескольких. Многие архиваторы имеют экраны помощи с примерами составления команд для выполнения различных операций. Информация помощи обычно выводится на английском или другом международном языке.Учитывая схожесть принципов управления большинством программ - архиваторов, рассмотрим главные особенности программы ARJ (версия 2.42), которая известна как одна из лучших по набору функций, предоставляемых пользователю, степени сжатия и скорости работы. Особенно эффективна программа ARJ при работе с файлами баз данных и текстовыми файлами.ПРОГРАММА-АРХИВАТОР ARJ Назначение архиватора ARJ Программа ARJ позволяет:
  • создавать архивные файлы из отдельных или всех файлов текущего каталога и его подкаталогов, загружая в один архив до 32000 файлов;
  • добавлять и заменять файлы в архиве;
  • извлекать и удалять файлы из архива;
  • защищать каждый из помещенных в архив файлов 32-битовым циклическим кодом, тестировать архив , проверяя сохранность в нем информации;
  • получать помощь по работе на 3 международных языках;
  • вводить в архив комментарии к файлам;
  • запоминать в архиве пути к файлам;
  • сохранять в архиве несколько поколений (версий) одного и того же файла;
  • переупорядочивать архивный файл по размерам файлов, именам, расширениям, дате и времени модификации, коэффициенту сжатия и др.;
  • осуществлять поиск строк в архивированных файлах;
  • восстанавливать файлы из разрушенных архивов;
  • создавать самораспаковывающиеся архивы как на одном томе, так и на нескольких томах;
  • просматривать содержимое текстовых файлов, содержащихся в архиве;
  • обеспечивать защиту информации в архиве и доступ к файлам, помещенным в архив, по паролю.
СТРУКТУРА КОМАНДНОЙ СТРОКИ ДЛЯ РАБОТЫ С ПРОГРАММОЙ ARJ Для получения на экране краткой помощи по работе достаточно в командной строке ввести имя программы: ARJ.Для получения развернутой помощи и примеров задания команд следует ввести:ARJ - ? или ARJ /?Для загрузки программы и выполнения ею необходимых функций используется формат командной строки, где имя программы и параметры разделяются пробелами:ARJ <команда> [-<кл1> [-<кл2>,..]] <имя_архива> [<список_имен_файлов>] Обязательные параметры командной строки - это два параметра: <команда> и <имя_архива>.Параметр <команда> записывается в виде одного символа вслед за именем программы и задает функцию архивации в соответствии с табл. 11.1. Таблица11.1- Основные команды программы-архиватора ARJ

Номер группы

Группа команд

Команда

Функция архивации

Помещение в архив

добавить файлы в архив

заменить файлы в архиве на новые версии

добавить в архив только новые файлы

переместить файлы в архив

Извлечение из архива

извлечь файлы из архива в текущий каталог

извлечь файлы из архива и поместить в каталоги в соответсвии с указанными к ним путями доступа

Удаление из архива

удалить файлы из архива

Сервисные функции

полное тестирование архива

вывод содержимого архива без указания пути к файлам

вывод содержимого архива с указанием пути к файлам

копировать архив с новыми параметрами

найти текстовую строку в архиве

Параметр <имя_архива> задает имя архивного файла и записывается по общим правилам MS DOS, но без указания расширения, которое при создании нового файла присваивается автоматически. Имя архива может быть записано с указанием пути к файлу. Архиватор по умолчанию обрабатывает архивные файлы, имеющие расширение.ARJ.Самораспаковывающийся архивный файл создается с расширением.ЕХЕ. Такой файл содержит в себе программный модуль распаковки, и дляизвлечения из него файлов не требуется программа ARJ. Необязательные параметры командной строки - это ключи <клN> и <список_имен_файлов>. Принято необязательные параметры обозначать с помощью квадратных скобок.Ключи уточняют действие команды архивации, и их может быть несколько. Каждый ключ начинается с символа "-" и может быть помещен в любом месте командной строки после команды. Признаком ключа кроме символа "-" может быть символ "/". В табл. 11.2 приведены наиболее важные ключи настройки.Примечание. Команды и ключи программы-архиватора ARJ можно вводить командную строку в любом регистре. Список имен файлов приводится тогда, когда обработке подлежат не все файлы архива или текущего каталога. При необходимости добавить, извлечь или удалить несколько файлов в командной строке следует записать их полные имена. В списке файлов можно указать до 64 имен файлов. Для сокращения записи имен файлов можно использовать шаблоны в соответствии с правилами MS DOS, например: *.* - все файлы; *..bat"- все файлы с расширением.ВАТ; А?.* - все файлы, начинающиеся на А.Таблица 11.2. Наиболее важные ключи настройки программы-архиватора ARJ

Назначение

Добавление файлов из текущего каталога и всех вложенных в него подкаталогов с указанием пути к файлам
Создание многотомного архивного файла

Защита создаваемого архива паролем:

g<пароль> - пароль вводится в командной строке

g? - ввод невидимого пароля при выполнении

Добавление/замена файлов, за исключением файлов, имена которых указаны вслед за ключом

Запрос на выполнение операции для каждого файла:

для подтверждения необходимо ввести символ "Y"

для отказа - символ "N"

Создание самораспаковывающегося архива

Указание метода архивации:

m0 - без сжатия;

m1 - нормальное сжатие (по умолчанию);

m2 - наибольшая компрессия;

m3 - быстрое сжатие и меньшая компрессия;

m4 - самое быстрое сжатие и наименьшая компрессия;

Предпологается ответ "Yes" на все вопросы архиватора
Пауза при просмотре содеожимого архива после заполнения экрана
Помещение файлов в архив Одной из основных операций при работе с архивными файлами является помещение файлов в архив, которая может выполняться с помощью команд: a, u, m, f . Наиболее часто эти команды применяются совместно с ключами: -r, -g, -q, -je .Приведем характерные примеры команд создания и корректировки архивных файлов. Пример 11.1 . В архивный файл arhtxt добавить два файла из текущего каталога n1.txt и n2.txt:ARJ а arhtxt n1.txt n2.txtПример 11.2 . В текущем каталоге создать архивный файл arhobj.arj , содержащий все файлы каталога OBJ:ARJ a arhobj obj\*.* Примечание . При добавлении каких-либо файлов, уже имеющихся в архиве, производится замена файлов независимо от даты и времени их модификации или создания. Пример 11.3 . На диске В: создать архив arhmat.arj, в который необходимо поместить все файлы текущего каталога, кроме файлов с расширением prg . Файлы добавляются в архив с указанием путей к ним: ARJ a b:\arhmat - x*.prg -rПример 11.4 . Заменить новыми версиями файлы в архиве arcmat.arj на диске b : и добавить в него из текущего каталога файлы, отсутствующие в архиве:ARJ u b:\arcmat Примечание. Если в исходном каталоге нет новых и отсутствующих файлов, то на экран выводится сообщение: "no change - изменений нет. Пример 11.5 . Переместить в архивный файл bas.arj все файлы с расширением bas из текущего каталога:ARJ m bas*.bas Примечание . Команда m аналогична команде а , за исключением того, что после успешного завершения перемещенные файлы удаляются из исходного каталога. По умолчанию команда не просит разрешения на удаление. Пример 11.6 . Заменить в архиве только новые файлы с расширением bas из текущего каталога с подтверждением для каждого файла:ARJ f bas*.bas -qПример 11.7. Переместить в архивный файл arch.arj все файлы текущего каталога, защитив их паролем DINO :ARJ m arch -gDINOПример 11.8 . Добавить в архив arch.arj из текущего каталога все файлы с расширением bas , защитив их паролем, который будет введен по запросу в процессе архивации:ARJ a arch -g? *.foxПример 11.9 . Создать сам о распаковывающийся архивный файл arxbank.exe , содержащий все файлы текущего каталога:ARJ a arxbank -je Внимание! При вводе парольного слова имеет значение регистр ввода символов, например, пароли DINO и Dino существенно различны. Очень важно не забыть парольное слово, без которого невозможно будет извлечь файлы из архива.Извлечение файлов из архива Извлечение файлов из архива осуществляется с помощью команд е или х . Команда е извлекает файлы и помещает их либо в текущий каталог, либо в соответствии с путем, указанным в самой командной строке. Команда х извлекает файлы в каталог, из которого они были ранее помещены в архив, причем если такого каталога на диске нет, то он будет создан. В том случае, когда в каталоге, в который должен быть помещен извлекаемый файл, уже есть файл с тем же именем, программа будет просить у пользователя разрешения на замену файла. Пользователь должен ввести символ "Y" для разрешения замены или "N" - для отказа. Чтобы исключить подобный диалог с программой, в командную строку можно ввести ключ -у , который соответствует ответу "Y" на все запросы о замене файлов.Файлы, помещенные в архив с паролем, можно извлечь только при правильном указании пароля. Пример 11.10 .Извлечь из архивного файла arhtxt.arj два файла n1.txt и n2.txt в текущий каталог:ARJ e arhtxt n1.txt n2.txtПример 11.11. Извлечь из архивного файла arhobj.arj все файлы в текущий каталог:ARJ e arhobjПример 11.12 . Извлечь из архивного файла arhobj.arj все файлы в каталог d:\obj :ARJ e d:\obj\arhobjПример 11.13 .Извлечь из архивного файла arch.arj все файлы в текущий каталог с указанием пароля DINO и без подтверждения запросов на замену существующих файлов: ARJ e arch - gDINO -yПример 11.14 .Извлечь из архивного файла arhmat.arj на диске В : все файлы и записать их в каталоги в соответствии с путями к ним:ARJ x b:\arhmatУдаление файлов из архива Программа - архиватор ARJ позволяет физически удалить из архивного файла один файл или группу файлов, заданных списком. Используя ключ -q, можно предусмотреть вывод предупреждения перед удалением каждого файла из указанного списка. При удалении всех файлов из архива он сохраняется на диске как пустой файл, т.е. файл с нулевым размером. Пример 11.15 . Удаление из архивного файла arhmat.arj двух файлов с подтверждением для каждого файла:ARJ d -q arhmat m_012.fox m_12.prgСервесные функции Сервисные функции, которыми обладает программа - архиватор ARJ, весьма разнообразны. Пользователь может выполнить тестирование архива, просмотреть на экране или вывести на принтер содержимое архива, заменить имена файлов в архиве, скопировать архив с новыми параметрами, найти текстовую строку в текстовых файлах, содержащихся в архиве, и многое другое. Тестирование архива . Тестирование архива основано на принципе проверки кода циклического контроля (CRC - Cyclic Redundancy Check) каждого входящего в него файла. Циклический код контроля вычисляется как сумма всех кодов, представляющих информацию файла, и поэтому его часто называют контрольной суммой файла. При вычислении контрольной суммы ее максимальное значение ограничивают обычно 16 или 32 разрядами, при этом, чтобы не происходило переполнение, значение переноса из старшего разряда добавляется к значению младшего разряда.При тестировании вновь вычисленный код циклического контроля сравнивается с кодом хранящимся в архиве. Когда целостность какого-либо файла нарушена, изменяется его CRC и возникает несовпадение. Проверке может подлежать либо весь архив, либо его часть в соответствии со списком файлов. Проверка осуществляется достаточно быстро и сопровождается выводом на экран протокола, в котором для каждого верного файла выводится значение "ОК". Проверка защищенных паролем файлов невозможна без указания пароля. Тестирование архива - это проверка сохранности информации каждого файла, содержащегося в архиве.Пример 11.16 . Проверить целостность всех файлов в архиве arcmat.arj на диске а :ARJ t a:arcmat Просмотр содержимого архива . Для просмотра содержимого архива используются две команды: I и v . Содержимое архива может быть выведено на экран или на стандартное устройство вывода. Команда I выводит сведения о каждом файле в одну строку, команда v - в две строки, в одной из которых указывается путь к файлу. При выводе на дисплей может быть предусмотрена приостановка после заполнения экрана, если используется ключ -jp . Содержимое архива выводится в виде таблицы, в которой сведения о файлах располагаются в порядке помещения файлов в архив. Сортировка таблицы не предусмотрена. Таблица может включать либо сведения о всех файлах, либо о части из них в соответствии с заданным списком файлов. Просматривать содержимое можно как обычных архивных файлов, так и самораспаковывающихся с расширением ЕХЕ. Для вывода сведений о файлах на принтер можно использовать перенаправление сообщений программы ARJ. На рис. 11.1 приведено содержимое архивного файла QPR4.ARJ. Для просмотра использовалась команда: ARJ I qpr4 .Колонки на рис 11.1 содержат следующие сведения о файлах: Filename - имя файла; Original - размер исходного файла; Compressed - размер сжатого файла; Ratio - коэффициент сжатия; DateTime modified - дата и время создания (модификации) файла; CRC-32 - 32-битовый код циклического контроля; Attr - атрибуты файла; BTPMGVX - дополнительные сведения о файле.Рис. 11.1 Вид экрана с отображением содержимого архивного файла qpr4.arjProcessing archive: QPR4.ARJArchive created: 1996-02-23 18:41:34, modified: 1996-02-23 18:43:46Filename Original Compressed Ratio Date Time modified CRC-32 BTPMGVXANALYZE.WQ1 13844 2898 0.209 92-10-13 17:34:26 311D59E9 A-W B 1GMASTER.WQ1 69500 20816 0.300 92-09-12 04:00:00 85B7D6F6 A-W B 1GOPTIMIZR.WQ1 6491 2556 0.394 92-10-13 17:54:56 F1B958DE A-W B 1GREGISTER.WQ1 5537 2001 0.361 92-09-12 04:00:00 3B9A3005 A-W B 1GSAMPLE.WQ1 5017 1912 0.381 92-12-02 20:51:28 31508CCA A-W B 1GZVUKEFKT.WQ1 205 968 0.439 94-11-01 00:39:54 118CBFC3 A-W B 1GGRAGRED.WQ1 3437 1306 0.380 94-11-02 22:50:28 55C06C4F A-W B 1GCOUP.SPO 19862 15243 0.767 92-02-12 04:00:00 3D1734C3 A-W B 1ASCII>SOR 1637 975 0.596 92-09-12 04:00:00 010C0344 A-W B 1DUTB.SFO 33228 33176 0.998 92-02-12 04:00:00 1D76197A A-W B 1 10 files 160758 81851 0.509В последнюю колонку таблицы выводятся признаки файлов: B - для файлов, имеющих расширение.ВАК; Т - тип файла (В - двоичный, Т - текстовый, D - каталог); Р - в архиве имеется информация о пути к файлу, которую можно просмотреть командой v ; М - метод сжатия;G - признак защиты файла паролем; V - файл имеет продолжение на следующем томе; Х - файл имеет начало на предыдущих томах. Пример 11.17. Вывести на экран сведения о файлах с расширением bas хранящихся в архиниом файле bas.arj с приостановкой после заполнения экрана:arj I bas *.bas -jpПример 11.18 . Вывести на экран сведения о всех файлах, содержащихся в архиве arh-mat.arj на диске а :, с указанием путей к файлам:ARJ v a:\arhmat -jpПример 11.19 . Вывести на экран сведения о файлах, содержащихся в самораспаковывающемся архиве arxbank.exe :ARJ I arxbank.exeПример 11.20 . Вывести сведения о всех файлах архива arhmat.arj на принтер:ARJ v a:\arhmat > prnКопирование архива с новыми параметра ми.Для изменения параметров архива используется команда у , с помощью которой можно, например, преобразовать обычный архивный файл в самораспаковывающийся. Пример 11.21 . Создать самораспаковывающийся архивный файл arhmat.exe из архивного файла arhmat.arj ARJ у -je arhmatРабота с многотомными архивами Одним из важных достоинств программы - архиватора ARJ является возможность создания многотомных архивов, т.е. архивов, для размещения которых используется несколько дисков. На каждом из дисков размещается один файл архива, занимая все свободное его пространство. При этом необязательно, чтобы диск предварительно был очищен, так как на нем вместе с архивным файлом могут находиться и другие файлы. При создании архива файлу, размещаемому на первом диске, по умолчанию присваевается расширение.ARJ, а на последующих дисках - .А01, .А02 и т.д. Правило обозначения расширений можно изменить с помощью ключей настройки, что практически снимает ограничения по количеству томов архива.Просмотр оглавлений каждого из архивных файлов многотомного архива осуществляется так же, как и однотомного архива. Программа ARJ позволяет корректировать содержимое многотомного архива - удалять, заменять и добавлять файлы. При этом перераспределение файлов между томами не производится.Для работы с многотомным архивом необходимо указывать ключ -v . Уточнение настройки команды достигается использованием модификаторов команды. Модификатор команды - это латинский символ в любом регистре, записываемый вслед за ключом. В команде может быть несколько молификаюров, порядок их записи безразличен. Кроме того, в качестве модификаторов может использоваться число, которое указывает размер тома архива в байтах. Назначение некоторых модификаторов приведено в табл.11.3.Таблица 11.3. Назначение модификаторов команды ARJ для работы с многотомным архивом

Модификатор

Назначение модификатора

Указывает что архивные файлы многотомного архива займут все свободное местона дисках (томах)
Позвляет выпонить перед созданием нового тома любое количество команд DOS, например просмотр, очистку или форматирование дискеты, на которую предстоит запись следующего архивного файла; после выплнения команд необходимо ввести команду EXIT для продолжения архивации
Запрещает делить архивируемые файлы между томами
Предусматривает подачу звукового сигнала перед установкой следующего тома
Позволяет зарезервировать свободное пространство на первом томе; число, записанное вслед за символом r, указывает на размер этого пространства

360, 720, 1200

Варианты модификаторов для указания размеров тома архива
Пример 11.22 . Создать много томный архив armat.arj в дисководе А : с использованием всего свободного пространства на дискетах:ARJ a A:armat -va Пример 11.23 . Создать многотомный архив armat.arj в дисководе А : с использованием всего свободного пространства на дискетах, подачей звукового сигнала и вводом команд MS DOS перед установкой очередного диска:ARJ a A:amat -vvasПример 11.24. Создать многотомный архив armat.arj в дисководе А : с использованием всего свободного пространства на дискетах и запрещением делить архивируемые файлы между томами:ARJ a A:armat -vawПример 11.25 . Создать многотомный архив armat.arj в дисководе А : каждый том которого будет занимагь 360 Кбайт:ARJ a A:armat -v360Извлечение файлов из многотомного архива осуществляется так же, как и из однотомного, но при этом необходимо в командной строке указать ключ -v .Пример 11.26 Извлечение всех файлов многотомного архива armat.arj с дискет, установленных в дисководе А :ARJ e A:armat -v МНОГОФУНКЦИОНАЛЬНЫЙ ИНТЕГРИРОВАННЫЙ АРХИВАТОР RAR Основные особенности программы Архиватор RAR служит мощным средством для создания и ведения архивов. Его отличительными особенностями являются:
  • возможность работы в двух режимах - полноэкранного интерактивного интерфейса и обычного интерфейса командной строки;
  • поддержка других типов архивов; в полноэкранном режиме RAR предоставляет возможность работы с архивами других типов (.ZIP, .ARJ,LZH), просмотра их содержимого, изменения и преобразования;
  • использование высокоэффективного метода сжатия solid для получения высокой степени сжатия (на 10 - 50% выше, чем обычно);
  • возможность создания самораспаковывающихся и многотомных архивов;
  • защита архивов паролем.
Многообразны сервисные функции RAR:
  • шифрование с паролем;
  • добавление файловых и архивных комментариев;
  • возможность частичного или полного восстановленияповрежденных архивов;
  • защита архива от изменений;
  • возможность добавления в архив информации о создателе архива, времени и дате последних изменений, внесенных в архив.
Преимущества RAR особенно заметны при архивировании исполняемых модулей (.ЕХЕ), объектных файлов (.OBJ), больших текстовых файлов и т.д.Управление архиватором RAR возможно в двух режимах:
  • в режиме командной строки;
  • в режиме полноэкранного интерфейса.
Поскольку технология управления, перечень команд и ключей в режиме командной строки аналогичны рассмотренному выше архиватору ARJ, далее будут рассмотрены только особенности управления архиватором RAR в режиме полноэкранного интерфейса.Полноэкранный режим работы Для работы с архиватором RAR в режиме полноэкранного интерфейса необходимо из командной строки DOS загрузить программу RAR, например:С:\ RARПосле загрузки программы на экране появится окно с двумя панелями (рис. 11.2).Рис.11.2 Вид окна архиватора RARПравая панель имеет два раздела Memory (Память) и Settings (Установки), которые содержат информацию об использовании памяти, текущем методе сжатия по умолчанию, наличии пароля, режиме создания резервных копий архива и т.д.Левая панель содержит список файлов и подкаталогов текущего каталога, по которому с помощью клавиш управления курсором можно перемещать селектор.Нажатие клавиши в момент, когда селектор находится на строке с именем каталога, ссылкой на верхний каталог (".."), или на строке с именем архивного файла, позволяетсоответственно войти в подкаталог, выйти в надкаталог или войти в архив.Программа RAR позволяет работать с архивами следующих типов: RAR, ARJ, ZIP и LZH.После входа в архив выводится список его файлов аналогично обычному каталогу. Таким образом, можно перемещаться по каталогам и архивам, работать с файлами как в архивах, так и в каталогах.Когда вы находитесь в каталоге, в нижнюю строку экрана выводится подсказка о назначении функциональных клавиш:1-Help 2-Add 3-View 4-Fresh 5-Volume 6-Move 7-Update 8-Repair 9-Option 0-QuitСтрока функциональных клавиш соответствует тем функциям, которые RAR позволяет выполнить в данный момент.При нажатии клавиши подсказка изменяется и содержит список дополнительных функций, вызываемых совместным нажатием клавиши и функциональных клавиш:2-Solid 3-View.. 4- 5-SFXVol 6-SolVol 7-SolSVI 8- 0- 9-Перечень управляющих клавиш и соответствующих им функций архиватора при работе с каталогом приведен в табл. 11.4.Таблица 11.4. Назначение управляющих клавиш архиватора RAR при работе с каталогом

Наименование функции

Назначение

Добавить файл в архив, если архив не существует он будет создан
Просмотреть файл
Обновить файлы в архиве - добавляются только измененные файлы,старые копии которых имеются в архиве
Создать архивные тома
Перенести файлы в архив
Добавить файлы, которых нет в архиве, и обновить те, старые копии которых уже имеются в архиве
Восстановить испорченный архив
Выход из RAR. Клавиша
Создать непрерывный (solid) архив
Просмотреть файл
Создать архив, разбитый на SFX-тома
Создать solid - архив, разбитый на тома
Создать solid - архив, разбитый на SFX-тома
При нажатии клавиши одновременно с изменением строки подсказки появляется окно со списком дополнительных функций архиватора, выполняемых при вводе комбинаций клавиши с буквами: Alt-C - переключение в цветной или черно-белый режим; Alt-D - выбор текущею диска; Alt-J - временный выход в DOS (DOS-shell); Alt-M - выбор метода сжатия; Alt-P - задание пароля; Alt-S - запись текущих опций; Alt-W - назначение рабочего директория для временных файлов. Если вы нажмете клавишу , когда курсор стоит на строке с именем архива, вы попадете в сам архив, как в каталог. То же самое произойдет, если запустите программу RAR с параметром - именем архива, вкоторый вы хотите попасть.Когда вы находитесь в архиве, строка функциональных клавиш выглядит так:1-Help 2-Test 3-View 4-Extr 5-Comment 6-ExCurD 7-SFX 8-Delete 9-Oplion 0-QuitСтрока дополнительных функций появляется, когда вы держите нажатой клавишу < Alt>: 1- 2- 3-View.. 4-ExtrTo 5-FilCmt 6- 7-Lock 8- 9- 0Перечень управляющих клавиш и соответствующих им функций архиватора при работе с архивом приведен в табл. 11.5 Таблица 11.5. Назначение управляющих клавиш архиватора RAR при работе с архивом

Наименование функции

Назначение

Вывод на экран справочной информации
Тестировать архив
Просмотреть файл
Извлеч файл из архива с полными путями
Добавить коментарий к архиву
Извлечь файлы в текущий каталог
Преобразовать в SFX - архив
Удалить файлы из архива
Конфигурация/Сохранение конфигурации
Выход из архива
Просмотреть файл встроенной программой при наличии внешней
Извлечь файлы в указанный каталог
Добавить комментарии к файлам
Заблокировать архив от изменений
Файлы можно помечать (выделять) или снимать пометку, используя клавиши или . Для выделения группы файлов или отмены выделения используются клавиши <Серый +> и <Серый ->.При наличии отмеченных файлов в низу экрана появляется служебная строка, в которой указаны количество отмеченных файлов и их суммарный размер, при этом размер файлов в подкаталогах не учитывается.Когда вы вошли в архив, его содержимое расположено на левой половине экрана. Файлы из этого списка можно точно так же просматривать, отмечать и т.д., как и файлы в обычном директории. В списке рядом с именами файлов, закодированных паролем, ставится символ звездочка (*).На правой половине экрана расположено информационное окно, в которое выводятся сведения об архиве: имя архива и его статус, наличие комментария, наличие файлов, закодированных паролем, а также статистическая информация о количестве файлов в архиве, их суммарном объеме, степени сжатия, номере минимальной версии RAR для распаковки данного архива и название операционной системы, в которой был создан архив. При работе с многотомными архивами в полноэкранном режиме необходимо начинать распаковку такого архива с самой первой его части (с самого первого тома). Длины файлов, части которых оказались в разных томах, относятся только к текущему тому. Символ <= обозначает файл, продолжающийся с предыдущего тома, а символ => файл, который продолжается в следующем томе. Настройка параметров архиватора Для изменения параметров архиватора необходимо после его запуска нажать клавишу и вызвать меню установок. На экране появится окно со следующим меню: Configuration...Set password

Work directory Default comment fileExternal viewerChange disk RegistrationSave options Первый пункт меню Configuration позволяет вызвать диалоговое окно конфигурации для настройки основных параметров RAR (рис. 11.3). Окно содержит пять групп параметров: Interface options -настройка интерфейса; Sort names - настройка варианта сортировки файлов; Include file mask- настройка маски включения файлов; Compression - насгройка метода сжатия; Other options - настройка других параметров.Рис. 11.3. Вид окна настройки параметров конфигурации архиватора RARПараметр, помеченный крестиком, означает разрешение соответствующей функции. Переход от одного параметра к другому осуществляется нажатием клавиш со стрелками. Для смены значения параметра в текущем поле нужно нажать . Когда все парметры установлены, следует перейти к полю "ОК" и нажать для подтверждениявыбранных значений. Если же вы решили отказаться от изменений параметров, перейдите к полю "Cancel" и нажмите для их отмены.Новые значения параметров можно сохранить для использования по умолчанию при следующих запусках.Настройка интерфейса:Color - цветной/черно-белый полноэкранный режим;Sound - звуковые эффекты;Stdout mode - консольный режим при выполнении действий из командной строки;Mouse - поддержка мыши в полноэкранном режиме. Настройка сортировки по именам файлов:Unsorted - отключить сортировку;Name - сортировка по именам;Extension - сортировка по расширениям;Size - сортировать по размеру.Настройка маски включения файлов позволяет добавлять файлы в архив в соответствии с их атрибутами:Read only files - файлы только для чтения;System files - системные файлы;Archive files - файлы для чтения и записи;Hidden files - скрытые файлы.Настройка метода сжатия для использования по умолчанию:Store - добавлять файлы в архив без сжатия;Fastest - очень быстрое сжатие (наименее эффективное);Fast - быстрое сжатие;Normal - нормальное сжатие (по умолчанию);Good - хорошее сжатие (более эффективное);Best - лучшее сжатие (наиболее эффективное).Настройка других параметров:Keep backup archive - сохранять старый архив в файле с расширением.ВАК перед изменением;Add empty directories - добавлять в архив пустые директории;Always make solid - по умолчанию создавать solid-архивы;{+} Put Authenticity - добавлять авторскую контрольную информацию всякий раз при создании архива;{+} Log errors to file - вести записи о критических ситуациях при работе RAR в файле RAR.LOG.Пункт меню Set password служит для назначения пароля при упаковке файлов в архив и распаковке из архива. Назначить пароль можно также, нажав комбинацию клавиш и <Р>. Пароль не сохраняется для использования при следующих запусках. Пункт меню Work directory позволяет указать каталог, в котором архиватор RAR будет размещать временные файлы. Его можно указать также, нажав комбинацию клавиш и . Имя файла с общим комментарием к архивам можно задать с помощью пункта меню Default comment file .Пункт меню External viewer позволяет определить внешнюю программу, которую RAR будет вызывать для просмотра содержимого файлов из архива. Во время просмотра файла в полноэкранном режиме RAR использует встроенную программу просмотра, если не определена внешняя. Пункт меню Change disk предназначен для смены текущего диска, каталог которого отображается в рабочем окне. Для сохранения параметров настройки архиватора используется пункт меню Save setup . После нажатия в этом поле вам будет предложено выбрать: Save - записатъ установленные значения параметров для использования по умолчанию; Cancel - отказаться от записи параметров.RAR хранит конфигурацию (совокупность параметров настройки) по умолчанию в файле RAR-CFG, который располагается в том же каталоге, что и сама программа RAR.EXE. Параметры можно сохранить также, нажав комбинацию клавиш <Аlt> и .Технология работы с архиватором Рассмотрим последовательность действий при выполнении наиболее часто выполняемых процедур архивации после загрузки программы RAR для работы в полноэкранном режиме.Создание нового архива из нескольких файлов 1.Выбрать диск, нажав комбинацию клавиш и 2.Для изменения порядка файлов в списке нажать клавишу , и в появившемся окне конфигурации в группе Sort names установить флажок требуемого варианта сортировки.3.Нажатием клавиши или <СерыЙ +> выделить файлы, подлежащие помещению в архив.4.Для защиты помещаемых в архив файлов паролем следует нажать комбинацию клавиш и <Р> и ввести пароль с повторным подтверждением. 5.Если необходимо изменить метод сжатия, нажать <Аlt> и <М> и в появившемся диалоговом окне выбрать требуемый.6.Для создания архива нажать клавиши: - для обычного архива; и - для архива типа solid; <Аlt> и - для самораспаковывающегося архива (SFX) и ввести предельный размер архива в килобайтах.7.В появившееся окно ввести имя архивного файла и путь к нему. Для перемещения файлов в архив включить в окне флажок Move.8. После занесения информации в окно нажать клавишу . На экране появляются две диаграммы (горизонтальные полосы), отображающие ход архивации каждого файла в отдельности"и формирование архива в целом. В конце процесса, выводятся краткие сведения об объемах файлов до и после помещения в архив.Извлечение файлов из архива 1. Выбрать диск, нажав комбинацию клавиш и .2.Установить на левой панели информационного окна каталог, содержащий архивный файл.3.В появившемся на экране информационном окне установить селектор на строку с именем архивною файла и нажать клавишу . На левой панели появится список файлов архива.4.Используя клавиши или <Серый +>, выделить файлы, подлежащие извлечению.5.Нажать клавиши: - для извлечения помеченных файлов в соответствии с путями и воссозданием структуры каталогов; - для извлечения помеченных файлов в текущий каталог; и - для извлечения помеченных файлов в заданный каталог.Если файлы были помещены в архив с паролем, появится окно для ввода пароля.Создание на дискетах многотомного архива, содержащего все файлы заданного каталога винчестера 1.Установить на левой панели информационного окна каталог с исходными файлами.2.Используя клавишу или <Серый +>, выделить имена файлов, подлежащих архивации.3.Нажать клавишу и в появившемся на экране окне задать или выбрать из предлагаемого списка размер одного архивного тома. Для автоматического определения размера, т.e. использования всего свободного места на диске, выбрать пункт Autodetect. Нажать клавишу .4.Установить в дисковод дискету для записи первого тома архива и на запрос "Enter archive name" ввести полное имя первого архивного тома: имя дисковода, путь, имя файла. Первый файл автоматически получит расширение.RAR. Завершить ввод и нажатием клавиши запустить процесс архивации.5.На экран выводится протокол архивации (рис. 11.4), в котором для каждого архивируемого файла указываются объемы в исходном и в упакованном состоянии и степень сжатия.6.После записи на дискету первого тома программа предложит установить дискеты для записи следующих томов архива, которые автоматически получат расширения.ROO", .R01, .R02 и т.д. После установки каждой дискеты следует нажимать кнопку в диалоговом окне запроса.Рис. 11.4 . Вид информационного окна, отображающего процесс создания многотомного архиваИзвлечение файлов из многотомного архива на дискетах в заданный каталог1.Установить в дисковод дискету с первым архивным файлом (томом), имеющим расширение.RAR.2.Указать имя диска с архивом, нажав комбинацию клавиш <А1t> и .3.В появившемся на экране информационном окне установить селектор на строку с именем первого архивного файла и нажать клавишу . На левой панели окна появится список файлов архива.4.Дпя извлечения всех файлов архива в заданный каталог винчестера нажать комбинацию клавиш и и в появившееся диалоговое окно ввести путь к заданному каталогу. Нажать клавишу .5.На экране появится диалоговое окно выбора варианта извлечения: Proceed with all volumes from current - извлечь из всех файлов; Proceed with selected files only - извлечь только выделенные файлы.6.Выбрать первый вариант, соответствующий извлечению всех файлов из архива, и нажать клавишу . На экран будет выводиться список файлов, извлекаемых из архива. Успешно извлеченный файл снабжается пометкой Ok. 7.После извлечения всех файлов первого тома программа предложит установить следующий диск (том) с расширением.ROO, а после извлечения файлов из него - соответственно тома с расширениями.R01, R02 и т.д., если таковые есть.Примечание. Для работы с многотомными архивами необходимо, чтобы был указан рабочий каталог для, размещения временных файлов архиватора. Такой каталог создают на винчестере и указывают путь к нему, нажав комбинацию клавиш <А1t> и . Путь к рабочему каталогу следует сохранить в файле конфигурации архиватора, нажав <А1t> и .

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

Что подразумевается под степенью сжатия файла?

Начнем с теоретических вопросов. Что же такое степень сжатия файла? Исходя из самых простых трактовок этого термина, под ним подразумевается соотношение размера конечного (сжатого) объекта к начальному объему. Однако такое пояснение в большей степени может относиться исключительно к архивным данным, поскольку совершенно не затрагивает некоторые вопросы, связанные с изменением формата мультимедиа, где сжатие также очень распространено. В общем же, говорить о том, что степень сжатия файла зависит только от какого-то одного признака, нельзя. В данном случае роль играет и тип объекта, и используемые для сжатия данных программы, и скорость проведения процесса сжатия. Далее кратко остановимся на некоторых важных аспектах, которые могут повлиять на конечный результат уменьшения размера исходных данных.

Степень сжатия файла зависит только от типа файла: так ли это на самом деле?

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

При попытке упаковки таких данных в архив существенного уменьшения размера добиться практически невозможно. То же самое касается формата WAV. Однако, если произвести не сжатие, а перекодирование из WAV в MP3, размер можно уменьшить раз в десять и более. Многие пользователи тут же и отталкиваются от того, что степень сжатия файла зависит именно от начального и конечного формата. Это не совсем так, поскольку важную роль играет и применяемый алгоритм перекодирования, о чем будет сказано отдельно. А пока остановимся на использовании архиваторов.

От чего зависит степень сжатия файла при упаковке в архив?

Чтобы изначально понять суть сжатия такого типа, для простоты объяснения в пример приведем самый обычный архиватор WinRAR. Типы упаковываемых данных не трогаем, а основное внимание сосредоточим на инструментах самого приложения.

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

Если же применительно к архиваторам рассматривать файловые форматы, из самых сжимаемых можно выделить текстовые документы любых форматов.

Относительно неплохо сжимаются некоторые исполняемые файлы EXE-формата (при стандартном методе сжатия можно добиться уменьшения размера больше, чем вполовину). Самыми, как уже говорилось, несжимаемыми являются объекты мультимедиа. И, если картинки уменьшить по размеру хоть как-то можно, с аудио и видео без изменения начального формата такие действия не проходят, и архиваторы тут совершенно ни причем.

Типы сжатия графики, видео и аудио

Применительно к мультимедиа различают два основных типа сжатия: с потерей качества (lossy) и без потерь (lossless). И в данном случае степень сжатия файла зависит как раз от используемой технологии компрессии.

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

А вообще, если говорить именно о мультимедиа, тут нужно четко понимать, что добиться максимального уменьшения размера исходного файла любого формата без существенной потери качества практически нереально, несмотря даже на технологии удаления избыточного контента (например, для графики или видео это срабатывает только в случае с неизменяемыми сценами). В случае с аудио производится уменьшение битрейта и вырезание определенных частот. Рядовой пользователь разницы, может быть, и не ощутит, а вот профессионал с тонким слухом сразу скажет, чего не хватает.

Самые распространенные программы на все случаи жизни

От чего зависит степень сжатия файла, немного разобрались. Теперь следует сказать несколько слов о применяемых программных продуктах. Среди архиваторов самыми распространенными можно назвать WinRAR, WinZIP и 7-Zip.

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

Краткие итоги

Подводя своеобразный итог, можно отметить, что степень сжатия файла архиватором зависит от нескольких факторов, а чаще всего от типа данных, подвергаемых компрессии, используемого программного обеспечения и (обычно применяются алгоритмы Хаффмана и Лемпеля-Зива, работающие в паре). В случае с мультимедиа-контентом ситуация практически та же, однако главенствующее положение занимает преобразование формата из одного в другой.