- Лекция 14. Архивирование и методы сжатия информации
- 14.1. Что такое архивирование
- 14.2. Какие существуют методы архивирования
- 14.3. Какими возможностями обладают архиваторы
- 14.4. Как сжать звуковые файлы
- 14.5. Как сжать графические файлы
- Способы сжатия файлов
- Просмотр содержимого документа «Способы сжатия файлов»
Лекция 14. Архивирование и методы сжатия информации
14.1. Что такое архивирование
Несмотря на то, что объемы внешней памяти ЭВМ постоянно растут, потребность в архивации не уменьшается. Архивация необходима не только для экономии памяти, но и для надежного хранения копий ценной информации, для быстрой передачи информации по сети.
Архивирование (упаковка, сжатие) это процесс записи файла в архивный файл, разархивирование (распаковка) — процесс извлечения файла из архива. Архив — упакованный (сжатый) файл. |
Архивация информации это такое преобразование информации, при котором объем информации уменьшается, а количество информации остается прежним. |
Степень сжатия информации зависит от типа файла и от выбранного метода упаковки. Степень (качество) сжатия файлов характеризуется коэффициентом сжатия:
Vc — объем сжатого файла, Vи — объем исходного файла.
Проблемы архивации тесно связаны с проблемами кодирования (замена символов текста двоичными кодами с помощью кодовой таблицы), шифрования (криптография), компрессией звуковых и видео-сигналов.
14.2. Какие существуют методы архивирования
Все используемые методы сжатия информации можно разделить на два класса:
- упаковка без потерь — исходную информацию можно точно восстановить по имеющейся упакованной информации;
- упаковка с потерей информации — распакованное сообщение будет отличаться от исходного сообщения.
В настоящее время разработано много алгоритмов архивации без потерь. Однако все они используют, в основном, две простые идеи.
Первая идея основана на учете частот символов , она разработана Д. А. Хаффманом а 1952 году. Эта идея базируется на том факте, что в обычном тексте частоты появления различных символов неодинаковы. Часто встречающиеся символы кодируются короткими последовательностями битов, а более редкие — длинными. К каждому сжатому архиву прикладывается таблица соответствия символов и кодов.
Вторая идея упаковки состоит в использовании того факта, что в сообщениях часто встречаются несколько подряд идущих одинаковых байтов , а некоторые последовательности байтов повторяются многократно. При упаковке такие места можно заменить командами вида «повторить данный байт n раз» (при упаковке графической информации) или «взять часть текста длиной k байтов, которая встречалась m байтов назад» (при упаковке текстовой информации). Такой алгоритм архивации называется RLE (кодирование путем учета повторений) .
14.3. Какими возможностями обладают архиваторы
Средства архивации-разархивации, как правило, обеспечивают:
- создание архива;
- обслуживание архива (добавление файлов, удаление файлов из архива, замену файлов в архиве и т.п.);
- извлечение файлов из архива;
- автоматическую архивацию и разархивацию поддерева файловой структуры;
- тестирование целостности архивов;
- создание многотомных архивов с возможностью задания произвольного размера тома;
- создание самораспаковывающихся архивов;
- создание пароля для доступа к архиву;
- работу с частично разрушенными архивами.
Каждый архиватор обычно реализует свой собственный уникальный алгоритм сжатия.
14.4. Как сжать звуковые файлы
Для уменьшения размеров мультимедийных файлов используют процедуру сжатия .
Cжатие (уплотнение, компрессия) это такое преобразование информации, в результате которого исходный файл уменьшается в объеме, а количество информации в сжатом файле уменьшается на такую небольшую величину, которой практически можно пренебречь. |
Компрессия без потерь используется, например, архиваторами ZIP, RAR, ARJ. Применение подобных алгоритмов для сжатия файлов, содержащих оцифрованный звук, не позволяет получить сжатие более чем в 2 раза.
Звуковой сигнал, преобразованный с помощью АЦП, обычно не повторяет сам себя и по этой причине плохо сжимается с помощью алгоритмов сжатия без потерь. Многие приемы сжатия аудиоинформации основываются на обмане органов чувств человека путем исключения избыточной и нформации, которую человек не способен воспринять (в силу своих физиологических особенностей).
Такие методы относятся к классу компрессии с потерями . Они не ставят цель абсолютно точного восстановления формы исходных колебаний. Их главная задача — достижение максимального сжатия звукового сигнала при минимальных слышимых искажениях восстановленного после с жатия сигнала.
Звуковой файл можно сжать с помощью компадирования , которое заключается в сжатии по амплитуде исходного звукового сигнала и последующем его восстановлении с помощью расширителя. Значение амплитуды звука заменяется логарифмом этого значения. Полученные числа округляются, и для их записи требуется меньшее число разрядов. Для воспроизведения сжатого сигнала, его подвергают потенцированию (преобразование, обратное логарифмированию).
Еще один способ сжатия звукового сигнала заключается в том, что исходный звуковой сигнал очищается с помощью фильтров от неслышимых компонент (например, низкие басовые шумы). Затем производится более сложный анализ сигнала: вычисляются и удаляются замаскированные частоты, заглушенные другими мощными сигналами. Таким образом можно исключить до 70% информации из сигнала, практически не изменив качество его звучания.
Есть и другие способы, так же основанные на свойствах человеческого слуха.
Если звуковой сигнал представляет собой однотонные звуки с постоянным уровнем громкости, то биоакустические свойства слуха не позволяют его сжать. В этом случае дают эффект традиционные методы архивации информации, например, алгоритм Хаффмана.
14.5. Как сжать графические файлы
Методы сжатия видеоинформации разделяются на две группы, в зависимости от скорости упаковки изображения:
- сжатие неподвижных изображений может выполняться с любой скоростью, т.к. этот процесс не регламентирован во времени, в силу статичности изображения.
- сжатие движущихся изображений должно выполняться, как правило, в режиме реального времени по мере ввода данных.
Стандарт JPEG позволяет сократить размеры графического файла с неподвижным изображением в 10-20 раз. Этим методом удается при специальных действиях сжимать и движущиеся изображения.
Источник
Способы сжатия файлов
Просмотр содержимого документа
«Способы сжатия файлов»
Министерство образования и науки Российской Федерации
федеральное государственное бюджетное образовательное учреждение
Реферат по дисциплине
Способы сжатия файлов
студентка № курса группы №
название факультета полностью
Глава I. Основные понятия и методы сжатия данных. 4
1.1. Основные способы сжатия. 4
1.2. Характеристики алгоритмов сжатия и их применимость. 6
1.2.1. Коэффициент сжатия. 6
1.2.2. Системные требования алгоритмов 7
Глава II. Программы-архиваторы. 9
2.1. Программа-архиватор WinRAR. 10
2.1.1. Работа с программой-архиватором WinRAR 11
2.1.2. Архивация файлов. 12
2.2. Программа-архиватор WinZip. 14
Методы сжатия данных имеют достаточно длинную историю развития, которая началась задолго до появления первого компьютера.
Сжатие информации — проблема, имеющая достаточно давнюю историю, гораздо более давнюю, нежели история развития вычислительной техники, которая (история) обычно шла параллельно с историей развития проблемы кодирования и шифровки информации. Все алгоритмы сжатия оперируют входным потоком информации, минимальной единицей которой является бит, а максимальной — несколько бит, байт или несколько байт. Целью процесса сжатия, как правило, есть получение более компактного выходного потока информационных единиц из некоторого изначально некомпактного входного потока при помощи некоторого их преобразования. Основными техническими характеристиками процессов сжатия и результатов их работы являются:
— степень сжатия (compress rating) или отношение (ratio) объемов исходного и результирующего потоков;
— скорость сжатия — время, затрачиваемое на сжатие некоторого объема информации входного потока, до получения из него эквивалентного выходного потока;
— качество сжатия — величина, показывающая на сколько сильно упакован выходной поток, при помощи применения к нему повторного сжатия по этому же или иному алгоритму.
Существует несколько различных подходов к проблеме сжатия информации. Одни имеют весьма сложную теоретическую математическую базу, другие основаны на свойствах информационного потока и алгоритмически достаточно просты. Любой способ, подход и алгоритм, реализующий сжатие или компрессию данных, предназначен для снижения объема выходного потока информации в битах при помощи ее обратимого или необратимого преобразования.
Глава I. Основные понятия и методы сжатия данных. 1.1. Основные способы сжатия.
Во многих стадиях информация, содержащаяся в файлах, избыточна. Для устранения избыточности используются специальные методы сжатия данных, основанные на поиске в файле избыточной информации и последующем ее кодировании с целью получения минимального объема.
Сжатие информации – это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения; процесс сокращения количества битов, необходимых для хранения и передачи некоторого объема информации.
Существует сжатие без потерь, когда информация, восстановленная из сжатого сообщения, в точности соответствует исходной (применяется при обработке текстов, записанных на естественном или искусственном языках), и сжатие с потерями (необратимое), когда восстановленная информация только частично соответствует исходной (применяется при обработке изображений и звука, для цифровой записи аналоговых сигналов).
Основные способы сжатия: статистический и словарный.
При первом каждому символу присваивается код, основанный на вероятности его появления в тексте. Высоко вероятные символы получают короткие коды и наоборот. Одним из самых ранних и широко известных статистических методов является алгоритм Хаффмана , при котором символы заменяются кодом, состоящим из целого количества битов. Позднее он был вытеснен арифметическим кодированием, имеющим схожую с кодом Хаффмана функцию и основанным на идее кодирования символов дробным числом битов. Арифметическое сжатие может быть использовано в тех случаях, когда степень сжатия важнее, чем временные затраты на сжатие информации.
Рис. 1. Классификация алгоритмов сжатия файлов без потерь.
При словарном способе группы последовательных символов или «фраз» заменяются кодом. Замененная фраза может быть найдена в некотором словаре. В 1977 году Лемпель и Зив предложили свою модификацию словарного метода, отличающуюся от Хаффмановского и арифметического методов в которой сжатие основано на свойстве «потока символов» иметь повторяющиеся участки. Поток символов — это исходные данные для сжатия (например текстовый файл, массив). Основная идея алгоритма Лемпеля и Зива состоит в том, что второе и последующие вхождения некоторой строки символов в сообщении заменяются ссылкой на ее первое появление в сообщении.
В последнее время было показано, что любая практическая схема словарного сжатия может быть сведена к соответствующей статистической схеме сжатия, и найден общий алгоритм преобразования словарного метода в статистический. По этому при поиске лучшего сжатия статистическое кодирование обещает быть наиболее плодотворным, хотя словарные методы отличаются быстротой.
Одним из наиболее простых и наглядных является метод сжатия последовательностей одинаковых символов , не относящийся к названным основным методам.
Метод основан на представлении последовательности одинаковых символов в виде двух величин K и S, где K — количество повторяющихся символов, S — код этого символа. Основным недостатком данного метода является то, что он обеспечивает сжатие лишь в случае, когда в исходном файле основную часть составляют повторяющиеся символы. В противном случае сжатый файл может занимать больше места, чем исходный неуплотненный файл. Наиболее эффективно метод сжатия последовательностей одинаковых символов работает в случае двоичных файлов.
Рассмотренные выше алгоритмы в «чистом виде» на практике не применяются из-за того, что эффективность каждого из них сильно зависит от начальных условий. В связи с этим, современные средства архивации, используют более сложные алгоритмы, основанные на комбинации нескольких теоретических методов. Общим принципом в работе таких «синтетических» алгоритмов является предварительный просмотр и анализ исходных данных для индивидуальной настройки алгоритма на особенности обрабатываемого материала.
1.2. Характеристики алгоритмов сжатия и их применимость. 1.2.1. Коэффициент сжатия.
Коэффициент сжатия — основная характеристика алгоритма сжатия. Она определяется как отношение объёма исходных несжатых данных к объёму сжатых, то есть:
где k — коэффициент сжатия, So — объём исходных данных, а Sc — объём сжатых. Таким образом, чем выше коэффициент сжатия, тем алгоритм эффективнее. Следует отметить:
если k = 1, то алгоритм не производит сжатия, то есть выходное сообщение оказывается по объёму равным входному;
Коэффициент сжатия может быть как постоянным (некоторые алгоритмы сжатия звука, изображения и т. п., например А-закон, μ-закон, ADPCM, усечённое блочное кодирование), так и переменным. Во втором случае он может быть определён либо для каждого конкретного сообщения, либо оценён по некоторым критериям:
средний (обычно по некоторому тестовому набору данных);
максимальный (случай наилучшего сжатия);
минимальный (случай наихудшего сжатия);
или каким-либо другим.
Коэффициент сжатия с потерями при этом сильно зависит от допустимой погрешности сжатия или качества, которое обычно выступает как параметр алгоритма. В общем случае постоянный коэффициент сжатия способны обеспечить только методы сжатия данных с потерями.
1.2.2. Системные требования алгоритмов
Различные алгоритмы могут требовать различного количества ресурсов вычислительной системы, на которых они реализованы:
оперативной памяти (под промежуточные данные);
постоянной памяти (под код программы и константы);
В целом, эти требования зависят от сложности и «интеллектуальности» алгоритма. Общая тенденция такова: чем эффективнее и универсальнее алгоритм, тем большие требования к вычислительным ресурсам он предъявляет. Тем не менее, в специфических случаях простые и компактные алгоритмы могут работать не хуже сложных и универсальных. Системные требования определяют их потребительские качества: чем менее требователен алгоритм, тем на более простой, а следовательно, компактной, надёжной и дешёвой системе он может быть реализован.
Так как алгоритмы сжатия и восстановления работают в паре, имеет значение соотношение системных требований к ним. Нередко можно усложнив один алгоритм значительно упростить другой. Таким образом, возможны три варианта:
Алгоритм сжатия требует больших вычислительных ресурсов, нежели алгоритм восстановления.
Это наиболее распространённое соотношение, характерное для случаев, когда однократно сжатые данные будут использоваться многократно. В качестве примера можно привести цифровые аудио- и видеопроигрыватели.
Алгоритмы сжатия и восстановления требуют приблизительно равных вычислительных ресурсов.
Наиболее приемлемый вариант для линий связи, когда сжатие и восстановление происходит однократно на двух её концах (например, в цифровой телефонии).
Алгоритм сжатия существенно менее требователен, чем алгоритм восстановления.
Такая ситуация характерна для случаев, когда процедура сжатия реализуется простым, часто портативным устройством, для которого объём доступных ресурсов весьма критичен, например, космический аппарат или большая распределённая сеть датчиков. Это могут быть также данные, распаковка которых требуется в очень малом проценте случаев, например запись камер видеонаблюдения.
Глава II. Программы-архиваторы.
На основе методов сжатия данных созданы различные программы, называемые архиваторами или упаковщиками . Существует много программ-архиваторов, имеющих различные показатели по степени и времени сжатия. Среди самых известных и часто используемых программ выделяются следующие: ARJ, PKZIP, RAR, НА и т. д. для DOS, WinARJ, WinZip, WinRAR, ZipMagic для Windows. Обычно упаковщики осуществляют сжатие сразу несколькими способами.
Как правило, программы для архивации файлов позволяют помещать копии файлов на диске в сжатом виде в архивный файл, извлекать файлы из архива, просматривать оглавление архива и др. В настоящее время архиваторы, работающие под Windows, вытесняют конкурентов в основном за счет использования 32-х битной шины данных, более удобного и интеллектуального интерфейса, расширенных возможностей и более совершенных алгоритмов сжатия. А также эти программы поддерживают не один, как раньше, а сразу несколько различных форматов архивных файлов.
Программы-архиваторы позволяют создавать и такие архивы, для извлечения из которых содержащихся в них файлов не требуются какие-либо программы, так как сами архивные файлы
Могут содержать программу распаковки. Такие архивные файлы называются самораспаковывающимися.
Самораспаковывающийся архивный файл – это загрузочный, исполняемый модуль, который способен к самостоятельной разархивации находящихся в нем файлов без использования программы-архиватора.
Рис. 2. Пример самораспаковывающегося архивного файла.
К базовым функциям , которые выполняют большинство современных архиваторов, относятся:
— извлечение файлов из архивов;
— создание новых архивов;
— добавление файлов в имеющийся архив;
— создание самораспаковывающихся архивов;
— создание распределенных архивов на носителях малой емкости;
— тестирование целостности структуры архивов;
— полное или частичное восстановление поврежденных архивов;
— защита архивов от просмотра или несанкционированной модификации.
Далее будут рассмотрены две программы-архиваторы WinRAR и WinZip.
2.1. Программа-архиватор WinRAR.
WinRAR — 32-битовая версия Windows архиватора RAR — мощное средство, которое позволяет создавать и управлять архивными файлами.
— интеллектуальный алгоритм сжатия (глубокий анализ данных, подлежащих сжатию, и др.);
— специальный алгоритм сжатия для мультимедиа-файлов;
— не архивное управление RAR;
— плотная архивация, которая может поднять коэффициент сжатия на 10 % -50 % по сравнению с общими методами, особенно при упаковке большого количества небольших аналогичных файлов (при этом файлы представляются как непрерывный поток данных).
— создание архивов с различной степенью уплотнения;
— просмотр как архивных, так и обычных файлов;
— создание многотомных архивов;
-создание самораспаковывающихся архивов (в том числе и многотомных);
— восстановление физически поврежденных архивов;
— возможность работы в двух режимах: полноэкранного интерактивного интерфейса и интерфейса командной строки;
— поддержка других типов архивов, просмотра их содержимого, изменения и преобразования;
— защита архивов паролем.
Кроме того, WinRAR обладает рядом других возможностей, таких, например, как шифрование, архивные комментарии, регистрация ошибок и т. п.
2.1.1. Работа с программой-архиватором WinRAR
Для запуска программы WinRAR необходимо выполнить одно из следующих действий:
— открыть меню Пуск;
— выбрать Программы / WinRAR.
Рис. 3. Вид запущенной программы WinRAR.
Рис. 4. Метод сжатия файлов в WinRAR.
2.1.2. Архивация файлов.
Для создания архива необходимо сначала выбрать необходимые файлы и/или директории из списка файлов в основном окне WinRAR, что можно сделать, используя клавишу Пробел, Shift + клавиши позиционирования или щелкнув левой кнопкой мыши. Затем, выбрав один или более файлов, нажать Alt — A . После этого появится диалоговое окно, в верхнем поле Archive которого надо ввести имя и расположение архивного файла или просто принять предложенное имя. В поле Compression можно выбрать степень уплотнения, что будет влиять на скорость архивации и размер архивного файла. Следующая строка Dictionary size дает возможность изменить размер внутреннего словаря архиватора. Этот параметр также будет влиять на размер конечного файла. С помощью диалогового поля Volume size можно разбить архивный файл на тома разного размера. Диалоговый блок Archiving options также предоставляет возможность изменять некоторые опции архивации, такие как:
— Solid archive / Плотный архив — при этом все файлы в архиве будут представляться как непрерывный поток данных что позволит увеличить степень сжатия, но замедлит обращение к файлам внутри архива;
— SFX archive / Самораспаковывающийся архив — создается ЕХЕ модуль архива;
— Multimedia compression / Мультимедиа-уплотнение — в этом режиме RAR выполняет интеллектуальный анализ данных, направленный на улучшение архивации звука, видео и т. п.;
— Put recovery record / Добавление записи восстановления данных – облегчение восстановления данных при их порче или потере;
— Pat authenticity verification / Добавлять проверку достоверности -WinRAR будет помещать в каждом новом и скорректированном архиве информацию относительно создателя, последнего времени коррекции и архивного имени;
— Delete files after archiving / Удалять файлы после их архивации — после перемещения в архив файлы будут удалены.
Можно также добавлять файлы к уже существующему архиву. Для этого надо выделить архив и нажать Enter (или дважды щелкнуть мышью), после чего Win-RAR прочитает архив и отобразит его содержание. Далее можно просто перетаскивать мышью необходимые файлы из другого окна.
2.2. Программа-архиватор WinZip.
Программа-архиватор WinZip — один из старейших (представлен на рынке с 1991 года) архиваторов для Windows, имеющих собственный графический интерфейс. Столь солидный возраст, по всей видимости, и обеспечивает данному архиватору столь внушительную аудиторию пользователей.
Рис. 6. Интерфейс программы-архиватора WinZip.
Архиватор WinZip сжимает файлы, преобразуя их в такие форматы, как: .zip, LHA (.lzh и .lha). Кроме того, WinZip имеет и собственный формат сжатия .zipx, использование которого позволяет добиться максимальной компрессии данных.
WinZip имеет поддержку практически всех известных на сегодня форматов, используемых для сжатия файлов, это: .rar, .7z, .bz2, .cab, .gzip, .tar, .cab и многие другие, кроме того WinZip располагает функционалом, позволяющим преобразовывать сжатые файлы этих форматов в Zip.
С помощью WinZip очень удобно сжимать цифровые фото без потери качества изображения, что может понадобиться, к примеру, для отправки большого количества файлов по электронной почте или FTP, а также и для хранения на всевозможных съемных носителях. В WinZip имеется возможность просмотра и редактирования файлов содержащихся в архивах других типовых форматов, например таких как: 7z или RAR.
Сжатие файлов основано на устранении избыточности, содержащейся в исходных данных. Простейшим примером избыточности является повторение в тексте фрагментов (например, слов естественного или машинного языка). Подобная избыточность обычно устраняется заменой повторяющейся последовательности ссылкой на уже закодированный фрагмент с указанием его длины. Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других. Сокращение объёма данных достигается за счёт замены часто встречающихся данных короткими кодовыми словами, а редких — длинными (энтропийное кодирование). Сжатие данных, не обладающих свойством избыточности (например, случайный сигнал или шум, зашифрованные сообщения), принципиально невозможно без потерь.
Таким образом, было рассмотрено понятие сжатия данных, способы и методы их архивации. Существует множество алгоритмов архивации данных, основанных на различных подходах, с разными вариантами полученных сжатых файлов. Также , на основе этих способов, были разработаны многообразные программы-архиваторы, представляющие собой более простой метод сжатия данных. В данной работе были подробно рассмотрены два архиватора WinRAR и WinZip.
Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юкин. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. — Диалог-МИФИ, 2002.
Информатика, ч. I: Методические указания к лабораторным работам / Сост. Н. И. Иопа – Рязань: РГРТА 2002.
Информатика. Базовый курс / С. В. Симонович и др. СПб.: Питер 2001
Информатика: Учебник/ Под ред. проф. Макаровой. 3-е изд. М.: Финансы и статистика, 2001
Д. Сэломон. Сжатие данных, изображения и звука. — М.: Техносфера, 2004.
Источник