Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Теоретические основы сжатия данных

Поиск

Характерной особенностью большинства «классических» типов данных, с которыми традиционно работают люди, является определенная избыточность. Степень избыточности зависит от типа данных. Например, у видеоданных степень избыточности обычно в несколько раз больше, чем у графических данных, а степень избыточности графических данных в несколько раз больше, чем у текстовых. Кроме того, степень избыточности данных зависит от принятой системы кодирования. Так кодирование текстовой информации средствами русского языка, дает в среднем избыточность на 20-30 % больше, чем кодирование адекватной информации средствами английского языка.

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

 

· Объекты сжатия

В зависимости от того, в каком объекте размещены данные, подвергаемые сжатию, различают:

ü уплотнение (архивацию) файлов – для уменьшения размера файла при

передаче по сети или транспортировке, например, на дискете;

ü уплотнение (архивацию) папок – при резервном копировании

ü уплотнение дисков – для повышения использования дискового пространства.

 

· Обратимость сжатия

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

Если при сжатии данных происходит изменение их содержания, метод сжатия необратим и при восстановлении данных из сжатого файла не происходит полного восстановления исходной последовательности. Такие методы применимы только для тех типов данных, для которых формальная утрата части содержания не приводит к значительному снижению потребительских свойств. Это относится к мультимедийным данным: видеоряды, музыкальные записи, звукозаписи, рисунки. Методы сжатия с потерей информации обычно обеспечивают гораздо более высокую степень сжатия, чем обратимые методы, но их нельзя применять к текстовым документам, базам данных и, тем более, к программному коду.

Характерными форматами сжатия с потерей информации являются:

ü.JPG – для графических данных;

ü.MPG – для видеоданных;

ü.MP3 – для звуковых данных.

 

Если при сжатии данных происходит только изменение их структуры, то метод сжатия обратим. Обратимые методы применяют для сжатия любых типов данных. Характерными форматами сжатия без потери информации являются:

ü.GIF,.TIF,.PCX и многие другие – для графических данных;

ü.AVI – для видеоданных;

ü.ZIP,.ARJ,.RAR,.LZH,.LH,.CAB и многие другие – для любых типов данных.

 

· Алгоритмы обратимых методов

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

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

Таблица 1. Свойства алгоритмов сжатия

Алгоритм Выходная структура Сфера применения Примечание
RLE (Run –Length Encoding Список (вектор данных) Графические данные Эффективность алгоритма не зависит от объема данных
KWE (Keyword Encoding) Таблица данных (словарь) Текстовые данные Эффективен для массивов большого объема
Алгоритм Хаффмана Иерархическая структура (дерево кодировки) Любые данные Эффективен для массивов большого объема

 

Алгоритм RLE

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

Например, для последовательности: 0; 0; 0; 127; 127; 0; 255; 255; 255; 255 (всего 10 байт) образуется следующий вектор:

 

Значение Коэффициент повтора
   
   
   
   

 

При записи в строку он имеет вид: 0; 3; 127;2; 0; 1; 255;4 (всего 8 байт).

В данном примере коэффициент сжатия равен 8/10, т.е. экономия объема составляет 20 %.

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

 

Алгоритм KWE

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

Эффективность данного метода существенно зависит от длины документа, поскольку из-за необходимости прикладывать к архиву словарь длина кратких документов не только не уменьшается, но даже возрастает.

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

 

Алгоритм Хаффмана

В основе этого алгоритма лежит кодирование не байтами, а битовыми группами:

ü перед началом кодирования производится частотный анализ кода документа и выявляется частота повтора каждого из встречающихся символов;

ü чем чаще встречается тот или иной символ, тем меньшим количеством битов он кодируется;

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

 

Пример кодирования символов русского алфавита представлен на рис.1.

 
 


1 бит

 
 


2 бит

       
 
   
 


4 бит

               
       


6 бит

 

8 значений
8 бит ……………………… ……………………….

 

16 значений
10 бит ……………………… ………………………

 

…………………………………………………………………………………….

 
 
128 значений


16 бит ………………………. ……………………..

 

Рис..1. Пример побуквенного кодирования русского алфавита по алгоритму Хаффмана

 

Как видно из схемы, представленной на рис.1, используя 16 бит, можно закодировать до 256 различных символов. Однако ничто не мешает использовать и последовательности длиной до 20 бит – тогда можно закодировать до 1024 лексических единиц (это могут быть не символы, а группы символов, слоги и даже слова).

В связи с тем, что к сжатому архиву необходимо прикладывать таблицу соответствия, на файлах малых размеров алгоритм Хаффмана малоэффективен. В среднем, наиболее эффективными оказываются архивы с размером словаря от 512 до 1024 единиц (длина кода до 18-20 бит).

 

Синтетические алгоритмы

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

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-13; просмотров: 466; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.52.94 (0.007 с.)