русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Теоретический материал по теме «Архивация данных»


Дата добавления: 2015-08-31; просмотров: 1453; Нарушение авторских прав


Одной из проблем, с которой приходится сталкиваться пользователю компьютера, является нехватка памяти для долговременного хранения информации. Каким бы большим ни был объем памяти жесткого диска, он может оказаться недостаточным для установки новой игры или хранения фильмов. Еще одна проблема — передача большого объема данных по компьютерной сети. Уменьшить объем сохраняемых на диске или передаваемых по сети данных можно путем их архивации. Архивацией (сжатием, компрессией) называют преобразование данных в сжатую (архивную) форму.

Каким же образом осуществляется сжатие данных? Рассмотрим простейший алгоритм на примере сжатия текста. Пусть строка содержит 60 повторяющихся букв (20 a, 20 b, 20 c):

Aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc

Для кодирования каждой буквы нужен 1 байт, поэтому строка без сжатия занимает 1 байт · 60 = 60 байт. Если для описания количества повторяющихся букв использовать 1 байт, то объем сжатой строки составит 2 + 2 + 2 = 6 байт. Получили уменьшение объема в 10 раз. Если же в строке мало или нет повторяющихся групп символов, то может получиться не уменьшение, а увеличение объема.

Для сжатия данных и размещения их в архивах используют программы-архиваторы. Архивный файл (или просто архив) хранит в сжатом виде файлы и папки, которые при необходимости могут быть извлечены из архива в первоначальном виде. Наиболее распространенными архиваторами для операционной системы Windows являются WinRAR и WinZip. Их архивные файлы имеют расширения .rar или .zip соответственно.

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




Интерфейсы программ-архиваторов достаточно просты, чтобы пользователь смог быстро освоить основные приемы работы. Рассмотрим подробнее интерфейс архиватора WinRAR. После его запуска открывается окно, основные элементы которого представлены на рис. 1. С помощью меню Файл или адресной строки выбирается требуемый диск и папка. Содержащиеся в ней файлы и вложенные папки отображаются в рабочей области. Подлежащие архивации файлы и папки выделяются с помощью левой кнопки мыши или клавиши Ins. Основные операции выполняются с помощью меню или кнопок на панели инструментов.

Рис. 1: Интерфейс программы WinRAR.

При создании архивов может возникнуть ситуация, когда размер архива больше размера носителя информации, на который планируется сохранить архив. Так, например, на обычный CD-диск можно поместить информацию до 700 Мбайт. Если размер архива составляет 1,3 Гбайт, то для записи потребуется 2 CD-диска и архив необходимо разбить на 2 тома. Многотомные архивы нередко используют при передаче по сети больших файлов частями. Не обойтись без многотомных архивов и при переносе большого объема данных на дискетах. Том — это фрагмент архива, состоящего из нескольких частей. Архиватор WinRAR позволяет создавать многотомные архивы с указанием размера тома. По умолчанию тома получают имена вида имя_архива.partNN.rar, где NN — номер тома.


Для создания многотомных архивов нужно лишь задать размеры тома в окне Имя и параметры архива (рис. 2). При разархивации многотомного архива все тома следует поместить в одну папку.

Рис. 2:Окно создания архива.

В тех случаях, когда нужно передать кому-то архив, но нет уверенности, что у адресата есть соответствующий архиватор для его распаковки, используют самораспаковывающийся, или SFX-архив (от англ. SelF-eXtracting). Такие архивы, как и любые исполняемые файлы, обычно имеют расширение .exe. Действия при создании самораспаковывающегося архива аналогичны как и для многотомных архивов. Нужно лишь в окне Имя и параметры архива установить флажок Создать SFX-архив (рис. 2). Для извлечения содержимого SFX-архива не требуется программ-архиваторов. Они разархивируются простым запуском архива как обычной программы. Вместе с тем для просмотра или извлечения содержимого SFX-архива можно использовать WinRAR, который позволяет работать с самораспаковывающимся архивом так же, как и с любым другим.

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

Различают алгоритмы сжатия без утраты информации (неразрушающие) и с контролируемой степенью утраты (разрушающие). Неразрушающие алгоритмы позволяют впоследствии выполнить преобразование, обратное сжатию, и в точности восстановить всю исходную информацию. Такие алгоритмы используют все архиваторы, создающие файловые архивы, в том числе рассмотренный нами WinRAR. Пусть изображение отрезка содержит 30 пикселей желтого, 50 — синего и 20 — зеленого цвета (рис. 3). В исходном изображении выявляются непрерывные последовательности одного цвета (цепочки одинаковых байт). Затем каждая такая последовательность описывается цветом и количеством повторений пикселя.


Рис. 3

Если цвет каждой из 100 точек описывать тремя байтами, то получим исходный объем 3 байта 100 = 300 байт. Пусть количество повторений каждого цвета < 256 и его можно описать одним байтом. Получим (3 байта + 1 байт) 3 = 12 байт, т. е. коэффициент сжатия:

300 / 12 = 25!

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

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


 



<== предыдущая лекция | следующая лекция ==>
Научно-методический анализ темы | Основные понятия и определения темы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.386 сек.