
- •Ассемблер
- •Фортран
- •Пролог и Пролог
- •Теория искусственного интеллекта
- •Тест Тьюринга
- •2. Классификация эвм по этапам создания.
- •3. Классификация эвм по назначению
- •4 . Классификация эвм по размерам и функциональным возможностям
- •СуперЭвм
- •4.2.Большие эвм
- •.МикроЭвм
- •4.4.1.Универсальные
- •4.4.2.Специализированные
- •4.4.2.1.Серверы
- •1 Принцип модульности
- •2 Принцип функциональной избирательности
- •3 Принцип генерируемости ос
- •4 Принцип функциональной избыточности
- •5 Принцип виртуализации
- •6 Принцип независимости программ от внешних устройств
- •7 Принцип совместимости
- •8 Принцип открытой и наращиваемой ос
- •9 Принцип мобильности (переносимости)
- •10 Принцип обеспечения безопасности вычислений
- •Тема 5. Память в реальном режиме
- •Тема 6. Память в защищенном режиме
- •Тема 7. Аппаратные irq
- •Тема 8 Видеопамять, видеокарты, мониторы
- •4)Основные характеристики мониторов
- •5)Виды мониторов
- •8)Перспективные конструкции и технологии мониторов Технология e-Ink
- •Технология Electro Wetting
- •Технология микродисплеев
- •Электромеханические панели
- •Тема 9 Модемы
- •1. Типовая система передачи данных
- •2) Каналы связи
- •1. 2. 1. Аналоговые и цифровые каналы
- •1. 2. 2. Коммутируемые и выделенные каналы
- •1. 2. 3. Двух- и четырехпроводные каналы
- •3) 3. Семиуровневая модель osi
- •1. 3. 1. Физический уровень
- •1. 3. 2. Канальный уровень
- •4) Факсимильная связь
- •1. 4. 1. Передача факсимильного изображения
- •1. 4. 2. Стандарты факсимильной связи
- •5) Классификация модемов
- •1. 6. 1. По области применения
- •1. 6. 2. По методу передачи
- •1. 6. 3. По интеллектуальным возможностям
- •1. 6. 4. По конструкции
- •1. 6. 5. По поддержке международных и фирменных протоколов
- •6)Устройство современных модемов
- •2. 1. Общие сведения
- •2. 2. Состав модема для ктсоп
- •2. 3. Скремблирование
- •2. 5. Устройство цифрового модема
- •2. 6. Линейное кодирование
- •1) Аналоговая модуляция
- •2) Дискретная модуляция аналоговых сигналов
- •8.2. Методы Шеннона-фано и Хаффмена
- •8.3. Алгоритм lzw
- •8.4. Сжатие данных в протоколах mnp
- •8.4.1. Протокол mnp5
- •8.4.2. Протокол mnp7
- •8.5. Сжатие данных по стандарту V.42bis
- •9.1 Протокол xModem
- •9.2. Протокол xModem-crc
- •9.3. Протокол xModem-ik
- •9.4. Протокол yModem
- •9.5. Протокол yModem-g
- •9.6. Протокол zModem
- •9.6.1. Требования протокола zModem
- •9.6.2. Формат кадров протокола zModem
- •9.6.3. Типы кадров zModem
- •9.6.4. Информация о файле в кадре zfile
- •9.6.5. Работа протокола zModem
- •Тема 10. Назначение чипсетов
- •Тема 11. Современные процессоры. Их архитектура
- •Характерные особенности risc-процессоров
- •3) Классы процессоров
- •4) Структура базового микропроцессора
- •Характеристики микропроцессоров фирмы Intel
- •Тема 12. Современные виды памяти. Их характеристики
- •1) Классификация ram(Random Access Memory):
- •2) Разновидности ram:
- •3)Виды ram и их характеристики:
- •Fpm ram (Быстрая страничная память)
- •Edo ram (память с усовершенствованным выходом)
- •Bedo dram (Пакетная edo ram)
- •Sdr sdram — синхронная dram
- •4)Новые перспективные виды памяти будущих компьютеров
- •Тема 13. Объединение компьютеров между собой
- •Естественные среды
- •Искусственные среды
- •Тема 14. Интернет
- •[Править]Каталоги
- •Тема 15. Жесткие диски и типы файловых систем
- •Название «Винчестер»
- •[Править]Характеристики
- •[Править]Уровень шума
- •[Править]Производители
- •[Править]Устройство
- •[Править]Гермозона
- •[Править]Устройство позиционирования
- •[Править]Блок электроники
- •[Править]Низкоуровневое форматирование
- •[Править]Геометрия магнитного диска
- •[Править]Особенности геометрии жёстких дисков со встроенными контроллерами [править]Зонирование
- •[Править]Резервные секторы
- •[Править]Логическая геометрия
- •[Править]Адресация данных
- •[Править]chs
- •[Править]lba
- •[Править]Технологии записи данных
- •[Править]Метод продольной записи
- •[Править]Метод перпендикулярной записи
- •[Править]Метод тепловой магнитной записи
- •[Править]Структурированные носители данных
- •[Править]Сравнение интерфейсов
- •[Править]raid 1
- •[Править]raid 2
- •[Править]raid 3
- •[Править]raid 4
- •[Править]raid 5
- •[Править]raid 5ee
- •[Править]raid 6
- •[Править]raid 7
- •[Править]raid 10
- •[Править]Комбинированные уровни
- •[Править]Сравнение стандартных уровней
- •[Править]Matrix raid
- •[Править]Программный (англ. Software) raid
- •[Править]Дальнейшее развитие идеи raid
- •Иерархия каталогов в Microsoft Windows
- •Классификация файловых систем
- •[Править]Задачи файловой системы
8.2. Методы Шеннона-фано и Хаффмена
В качестве примера, поясняющего принципы сжатия, рассмотрим простой метод Шеннона-Фано. В чистом виде в современных СПД он не применяется, однако позволяет проиллюстрировать принципы, заложенные в более сложных и эффективных методах. Согласно методу Шеннона-Фано для каждого символа формируется битовый код, причем символы с различными частотами появления имеют коды разной длины. Чем меньше частота появления символов в файле, тем больше размер его битового кода. Соответственно, чаще появляющийся символ имеет меньший размер кода.
Код строится следующим образом: все символы, встречающиеся в файле выписывают в таблицу в порядке убывания частот их появления. Затем их разделяют на две группы так, чтобы в каждой из них были примерно равные суммы частот символов. Первые биты кодов всех символов одной половины устанавливаются в "О", а второй — в "I". После этого каждую группу делят еще раз пополам и так до тех пор, пока в каждой группе не останется по одному символу. Допустим, файл состоит из некоторой символьной строки aaaaaaaaaabbbbbbbbccccccdddddeeeefff, тогда каждый символ этой строки можно закодировать как показано в табл. 8.1.
Таблица 8.1. Пример построения кода Шеннона-Фано
Символ |
Частота появления |
Код |
а |
10 |
11 |
b |
8 |
10 |
с |
6 |
011 |
d |
5 |
010 |
е |
4 |
001 |
f |
3 |
000 |
Итак, если обычно каждый символ кодировался 7—8 битами, то теперь требуется максимум 3 бита.
Однако, показанный способ Шеннона-Фано не всегда приводит к построению однозначного кода. Хотя в верхней подгруппе средняя вероятность символа больше (и, следовательно, коды должны быть короче), возможны ситуации, при которых программа сделает длиннее коды некоторых символов из верхних подгрупп, а не коды символов из -нижних подгрупп. Действительно, разделяя множество символов на подгруппы, можно сделать большей по вероятности как верхнюю, так и нижнюю подгруппы. В качестве примера такой ситуации служат приведенные ниже две таблицы, где одни и те же символы с одинаковыми вероятностями появления в файле имеют различную кодировку.
Более удачен в данном отношении метод Хаффмена. Он позволяет однозначно построить код с наименьшей средней длиной, приходящейся на символ.
Таблица 8.2. Пример кодировки одних и тех же символов различными кодами
Символ |
Частота появления |
Код |
с |
22 |
11 |
е |
20 |
101 |
h |
16 |
100 |
1 |
16 |
01 |
а |
10 |
001 |
k |
10 |
0001 |
m |
4 |
00001 |
b |
2 |
00000 |
Таблица 8.3. Пример кодировки одних И тех же символов различными кодами
Символ |
Частота появления |
Код |
с |
22 |
11 |
е |
20 |
101 |
h |
16 |
011 |
• ¦ |
16 |
010 |
а |
10 |
001 |
k |
10 |
0001 |
m |
4 |
00001 |
Ь |
2 |
00000 |
Суть метода Хаффмена сводится к следующему. Символы, встречающиеся в файле, выписываются в столбец в порядке убывания вероятностей (частоты) их появления. Два последних символа объединяются в один с суммарной вероятностью. Из полученной новой вероятности и вероятностей новых символов, не использованных в объединении, формируется новый столбец в порядке убывания вероятностей, а две последние вновь объединяются. Это продолжается до тех пор, пока не останется одна вероятность, равная сумме вероятностей всех символов, встречающихся в файле.
Таблица 8.4. Кодирование методом Хаффмена
Символ |
Частота появления |
Вспомогательные столбцы |
с |
22 |
22 22 26 32 42 58 100 |
в |
20 |
20 20 22 26 32 42 |
h |
16 |
16 16 20 22 26 |
I |
16 |
16 16 16 20 |
а |
10 |
10 16 16 |
k |
10 |
10 16 |
m |
4 |
6 |
b |
2 |
|
Таблица 8.5. Коды символов для кодового дерева на рис. 8.1
Символ |
Код |
с |
01 |
е |
00 |
h |
111 |
1 |
110 |
а |
100 |
k |
1011 |
m |
10101 |
b |
10100 |
Процесс кодирования с использованием метода Хаффмена поясняется табл. 8.4. Для составления кода, соответствующего данному символу, необходимо проследить путь перехода знака по строкам и столбцам таблицы кода.
Более наглядно принцип действия метода Хаффмена можно представить В виде кодового дерева (рис. 8.1) на основе табл. 8.4. Из точки, соответствующей сумме всех вероятностей (в данном случае она равна 100), направляются две ветви. Ветви с большей вероятностью присваивается единица, с меньшей — нуль. Продолжая последовательно разветвлять дерево, доходим до вероятности каждого символа.
100
Рис. 8.1. Кодовое дерево для кода Хаффмена
Теперь, двигаясь по кодовому дереву сверху вниз, можем записать для каждого символа соответствующий код (табл. 8.5).