Индивидуальные задания по информатике
Рефераты >> Программирование и компьютеры >> Индивидуальные задания по информатике

встречающийся

заменяющий

с помощью этого способа сжатия заменится на совокупность сло­варей:

основной вспомогательный

встреча1ся 1- ющий

заменя1

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

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

1.3. Сжатие специальных текстов

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

Для данного типа информации пригодны методы, описанные в п. 1.5. В то же время специфика этих текстов позволяет осуще­ствить экономное хранение, основанное на выделении длинных часто повторяющихся фрагментов. Например, текст Фортран-прог­раммы:

ТYРЕ *,’ФОРТРАН’

ТYРЕ *,’ПРОГРАММА'

может быть представлен с использованием кодового словаря:

программа словарь

1,'ФОРТРАН' 1 - ТУРЕ *

1,'ПРОГРАММА'

1.4. Сжатие структурированных данных

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

Разнородность данных структурированного типа обуславливает различные типы информационной избыточности, поэтому необходимо использовать комбинацию методов, приспособленных к своим под­группам данных. Так, для числовых полей целесообразно применять методы п. 1.1, для текстовых - описанные в п. 1.5. По некоторым оценкам комбинация этих методов дает сокращение объема данных в 1,5-4 раза, по другим оценкам - даже до 6 раз.

В структурированных данных наряду с типами информацион­ной избыточности, характерных для текстовых или нетекстовых данных, существует особый позиционный тип избыточности. Он связан с дублированием информации для идентификации структуры данных. Например, если записи файла имеют структуру:

Ф.И.О. студента

отношение к воинской обязанности

домашний адрес

специальность

оценки за сессию,

причем поля имеют длину, соответственно, 40, 20, 50, 15, 10 байт, то при различных значениях тех или иных полей для конкретных студентов часть области памяти, отводимой под отдельные поля, не будет использоваться. Тогда, если поле «Отношение к воинской обязанности» пусто, его можно исключить из конкретной записи и вся запись будет иметь следующий вид:

(Ф.И.О. студента)1(домашний адрес)3(специальность)4(оценки за сессию)5,

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

1.5. Сжатие текстовой информации общего вида

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

Все алгоритмы сжатия можно классифицировать по используе­мому методу кодирования и характеру использования статистики и грамматики текста.

Методы кодирования можно разделить на четыре класса в за­висимости от того, какие группы символов кодируются (постоян­ной или переменной длины), и какие коды используются (постоян­ной или переменной длины).

По использованию статистики и грамматики алгоритмы сжа­тия можно разделить на семантически зависимые и семантически независимые. Первые (лингвистические) методы опираются на грамматику естественного языка для выделения в текстах эле­ментов, подлежащих кодированию (как правило, это отдельные слова – словоформы).

Семантически независимые методы сжатия в свою очередь можно разделить на те, которые не используют, и те, которые используют априорные сведения о статистике текста. В соответст­вии с этим существуют два типа алгоритмов сжатия: одно - и двух­фазные, которые будем называть соответственно адаптивными и ста­тистическими.

Семантически зависимые методы не используют для сжатия никаких априорных сведений о статистике текста. Кодирование производит­ся в процессе однократного сканирования текста. Оно сводится к замене цепочек символов текста на встроенные указатели, адре­сованные к той части текста, где такие цепочки уже встречались. В этом случае говорят о внутренней адресации, а сами методы называются адаптивными.

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

1.5.1. Адаптивные алгоритмы

Строят код постоянной длины для фрагментов переменной длины.

Сжимают текст в процессе однократного его сканирования. Кодирование заключается в нахождении повторяющихся участков текста и замене каждого участка указателем, адресованным к той части текста, где такой участок уже встречался. Для декодирования в этом случае кодовой таблицы не требуется. В качестве указателя может использоваться структура (m, n), где m – количество символов назад или вперед по тексту, переместившись на которые можно найти подобный фрагмент текста; n – длина фрагмента в символах.

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

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

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


Страница: