русс | укр

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

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

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

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


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

Основы фракталов. Фрактальная математика. Фрактальные методы в архивации


Дата добавления: 2013-12-23; просмотров: 1617; Нарушение авторских прав


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

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

В 5-ти битовом коде с тремя регистрами можно закодировать практи­чески любые нужные символы. В нем биты 1, 2, 3 и 5 несут информацию, а бит 4 (всегда равный 0) игнорируется. Любой 8-ми битовый символ можно представить двумя 5-ти битовыми.

Коды с символами разной длины.Обычно при кодировании на каж­дый символ отводится фиксированное число битов. Однако более плотную упаковку можно построить, применяя коды с переменной длиной символов, так называемые неравномерные коды. В них часто встречающиеся символы кодируются короткими комбинациями, а встречающиеся редко - длинны­ми. Самый короткий и наиболее употребительный символ кодируется од­ним битом. Например, предположим, что надо кодировать только четыре символа: А, В. С, Д. При способе кодирования с фиксированной длиной символов на каждый символ потребуется два бита. Пусть указанные сим­волы встречаются с частотами 60, 25, 10 и 5% соответственно. Поскольку А встречается чаще других закодируем его одним битом равным 0. Чтобы распознать начало символа, коды всех остальных символов должны начи­наться с 1. Следующий по распространенности - это символ В. Закодируем его двумя битами: В = 10. Чтобы оставшиеся символы отличались от В, их коды не должны начинаться с 10. Поэтому символам С и Д можно присвоить коды ПО и 111 соответственно. При таком кодировании взвешенная длина одного символа оказывается равной 1.55 бита, что меньше 2-х бит при представлении символов в коде с фиксированной длиной.



Рассматриваемый вид кодирования был впервые предложен Д. А. Хаффманом и называется по имени автора. Такая схема кодирования да­ет эффект только за счет неравномерности распределения частот. Если бы частоты возникновения символов были бы равны между собой, то среднее число битов на символ оказалось бы больше, чем при фиксированной дли­не символов (2,25 > 2). Чем неравномернее частоты, тем эффективнее код Хаффмана. Так в английском тексте буквы встречаются с разной частотой и в коде Хаффмана средняя длина символа составляет 4.12 бита. В коммер­ческой информации в изобилии содержатся цифры и много нулей. Были измерены относительные частоты встречаемости символов в файлах ком­мерческих БД. Для них можно достичь средней длины кода около 3-х бит на символ. В настоящее время известно достаточно большое число кодов с символами переменной длины.

Реализация кода Хаффмана в настоящее время осуществляется пре­имущественно программным методом. Хотя возможна и аппаратная реали­зация. Так фирма Codex реализовала аппаратное сжатие данных в интеллектуальных сетевых процессорах серии 6000.

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

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

При применении кода Хаффмана к обычному тексту с прописными и строчными буквами, цифрами и знаками препинания, а также управляю­щими символами удается получить 4,9 бита на символ.

Большего уменьшения объема удавалось получить, если сначала уп­лотнялись повторяющиеся символы, а затем применялся код Хаффмана. Исследования по применению кода Хаффмана к сжатию данных позволяли получать уплотнения от 35 до 75 %.

Сочетание методов позволяет получить и более впечатляющие резуль­таты.

 




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


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


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

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

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


 


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

 
 

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

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