Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Методические указания к заданию 3.1




 

Несмотря на то, что объемы внешней памяти ЭВМ постоянно растут, по-требность в сжатии информации не уменьшается. Это объясняется тем, что сжатие необходимо не только для экономии места в памяти ЭВМ, но и для бы-строй передачи информации по Сети.

 

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

 

Сжатие информации (архивация)—это такое преобразование информа-ции, при котором объем файла уменьшается, а количество информации, содер-жащейся в архиве, остается прежним.

 

Степень сжатия информации зависит от содержимого файла и формата файла, а также от выбранного метода сжатия информации. Степень (качество) сжатия файлов характеризуется коэффициентом сжатияKc, определяемым как отношение объема исходного файла Vo к объему сжатого файла Vc:

Kc Vo.

Vc

Чем больше величина Kc, тем выше степень сжатия информации.

 

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

 

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

 

Первая идея, основанная на учете частот появления символов в тексте, бы-ла разработана Клодом Шенноном и независимо от него Робертом Фано, а за-тем в 1952 г. развита Дэвидом Хаффманом - аспирантом Массачусетского технологического института при написании им курсовой работы. Идея базиру-ется на том факте, что в обычном тексте частоты появления различных симво-лов неодинаковые.

 

Вторая основная идея сжатия состоит в учете того факта, что в файлах час-то встречаются несколько подряд идущих одинаковых байтов, а некоторые по-следовательности байтов повторяются многократно. При архивации такие мес-та файла можно заменить командами вида «повторить данный байт n раз» или «взять часть данных длиной k байтов, которая встречалась m байтов назад». Та-кой алгоритм архивации носит имя RLE (Run Length Encoding — кодирование путем учета повторений или кодирование длин серий).

 

Рассмотрим детально метод сжатия RLE.

Упакованная методом RLE последовательность состоит из управляющих

 

8


_______________________________________________________________________________

 

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

 

Например, управляющий байт 10001001 говорит, что следующий за ним байт нужно повторить 9 раз, так как 10012 = 910.

 

Если старший бит управляющего байта равен 0, то при декодировании нужно взять несколько следующих байтов без изменений. Число байтов, кото-рые берутся без изменений, указывается в оставшихся 7 битах. Например, управляющий байт 00000011 говорит, что следующие за ним 3 байта нужно взять без изменений.

 

Рассмотрим пример сжатия методом RLE.

Пусть дана некоторая последовательность из 12 байтов:

 

11111111 11111111 11111111 11111111 11111111 11110000

00001111 11000011 10101010 10101010 10101010 10101010.

 

В начале исходной двоичной последовательности 5 раз повторяется байт 11111111. Чтобы упаковать эти 5 байтов, нужно записать сначала управляющий байт 10000101, а затем повторяемый байт 11111111. В результате сжатия этого фрагмента данных выигрыш составит 3 байта. Далее идут 3 разных (неповто-ряющихся) байта: 11110000 00001111 и 11000011. Чтобы их «упаковать», нуж-но записать управляющий байт 00000011, а затем указать эти 3 неповторяю-щихся байта. В результате архивации этого фрагмента двоичной последова-тельности получается увеличение объема архива на 1 байт. Далее в последова-тельности 4 раза повторяется байт 10101010. Для архивации этого фрагмента двоичных данных нужно сформировать управляющий байт 10000100 и записать повторяемый байт 10101010. Сжатие последнего фрагмента даст выигрыш 2 байта.

 

В результате такой архивации получена новая последовательность данных (архив), состоящая из 8 байтов:

 

10000101 11111111 00000011 11110000

00001111 11000011 10000100 10101010.

 

Таким образом, 12 байт исходной двоичной последовательности удалось сжать до 8 байт.

12

Kc 8 1, 5 .

 

 

9


_______________________________________________________________________________

 

Пример.

 

Выполним сжатие сообщения методом RLE. Текст сообщения:

ИНН 222221333.

 

Фраза   Десятичный Двоичный Архив
    код, код  
    таблица CP-    
    1251    
И   200 11001000 00000001
Н   205 11001101 11001000
Н   205 11001101 10000010
    32 00100000 11001101
2   50 00110010 00000001
2   50 00110010 00100000
2   50 00110010 10000101
2   50 00110010 00110010
2   50 00110010 00000001
1   49 00110001 00110001
3   51 00110011 10000011
3   51 00110011 00110011
3   51 00110011  

КС двоичная

    10010000B
КС шестнадцате-     90H

ричная

     

 

Таким образом, тринадцать байт исходного текста сжаты до двенадцати байт.

 

Для упрощения проверки результата сжатия были вычислены контрольные суммы (КС) в двоичной и шестнадцатеричной системах счисления.

 

Коэффициент сжатия в данном случае составил:

 

13

Kc 12 1, 08 .

 

10


_______________________________________________________________________________

 

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 197.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...