Научная статья на тему 'Сжатие текстовых данных'

Сжатие текстовых данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1592
307
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Сжатие текстовых данных»

УДК 004.627

Петрянин Д.Л., Юрков Н.К

Пензенский государственный университет

СЖАТИЕ ТЕКСТОВЫХ ДАННЫХ

Архиватор — программа, осуществляющая сжатие и/или упаковку одного и более файлов в архив или серию архивов, для удобства переноса или хранения, а также распаковку архивов.

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

Архивация все чаще используется при передаче данных через локальные сети или/и сети Интернет, для экономичности трафика и времени передачи.

В настоящее время сжатие данных является трудоемкой задачей. Дело в том, что большинство пользователей или владельцев (авторов) информации хранят различную информацию в сжатом виде (в архивах), что уменьшает размер и в некоторой степени защищает ее, например, от вирусов. Анализ подобных проблем был рассмотрен в [1] и [2].

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

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

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

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

Проведем эксперимент: произведем сжатие 4 распространенных текстовых типов данных: TXT, DOCX, DOC и RTF. В каждый из данных файлов будет находиться один и тот же текст (малого объема - 135 слов (1054 знака), без форматирования) . Количество используемых архиваторов: 11 (RAR, 7z, ZIP, ARJ, UC2, GZ, LHA (LZH), TGZ, DST, RK и CAB) . Результаты сжатия по размерам приведены в таблице 1, а по времени сжатия - в таблице 2.

Таблица 1 Результаты сжатия по размерам (в байтах)______________________

Файл TXT DOCX DOC RTF

Размер файла 1058 10951 28160 37582

RAR 612 8443 6006 7134

7z 726 8435 5601 7402

zip 841 8623 6311 8349

ARJ 688 8466 6219 8351

UC2 1555 1041 7209 9265

GZ 592 8370 5883 7534

LZH 610 8390 6115 8294

TGZ 841 8632 6359 8592

DST 616 8350 5983 7642

RK 640 9120 5956 7684

CAB 723 8464 5979 8053

Min размер 592 1041 5601 7134

Выбранный архиватор GZ UC2 7z RAR

Таблица 2 Результаты сжатия по времени сжатия (в мс)

Файл TXT DOCX DOC RTF

Размер файла 1058 10951 28160 37582

RAR 78 469 124 93

7z 61 47 63 46

zip 45 469 31 63

ARJ 46 108 78 46

UC2 297 312 295 282

GZ 31 61 78 124

LZH 31 78 46 46

TGZ 46 62 63 45

DST 79 124 92 141

RK 93 94 78 78

CAB 93 218 93 110

Min время 31 47 31 45

Выбранный архиватор GZ/LZH 7z zip TGZ

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

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

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

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

100

80

60

40

20

0

11

1111 1

ши !■--

iiiiiiiiii III.

ИИИИИІІІІІМіпммм..

ЕОИНАТРЯСМПВЛКЗДБЫУЧЖФХГИЦЬЩЪЭЮШ

Рис. 1 Распределение русских букв по их частоте использования

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

Файлы документов MS WinWord с расширением DOC представляют собой сложные объекты, организованные по правилам структурированного хранилища. Внутри составной файл состоит из следующих элементов:

"хранилища", а на самом деле это просто внутренние каталоги, описывающие состав и расположение других объектов внутри составного файла;

"потоки", а на самом деле это своего рода файлы, массивы структурированной информации, имеющие собственное имя;

"заблокированные данные", а на самом деле это довольно редко встречающиеся неструктурированные массивы двоичной информации, своего рода "посторонние" данные, которые разрешается иметь внутри составного файла, но которые не могут служить OLE-объектами. [3]

Формат DOCX предполагает сжатие, и сам по себе является ZIP-архивом, внутри которого содержатся собственно текстовый документ в виде XML, графика и файлы, определяющие свойства документа и отношения между содержимым контейнера. Сжатие определяет и одно из основных отличий между форматами DOC и DOCX — размер файла в последнем случае несколько меньше. [4]

В RTF для обмена документами используются только представимые символами коды из ASCII-, MAC- и PC-символьного набора. Документы RTF состоят преимущественно из команд управления настройки программы чтения файлов в данном формате. Эти команды можно разделить на управляющие слова и управляющие символы (рис. 2). Конец каждой команды отмечается одним из разделяющих символов (чаще всего - точкой с запятой). [5] Так как файл состоит из данных команд и отсутствует какое-либо

внутреннее сжатие, то документ будет занимать большее физическое пространство (на носителе) .

5020304 }Times Ne w Roman;}..{\flo mi no r \ f 315 0 4 \ f bi di \froman\fchar set204\fprq2{\*\ panose 020206030 50405020304}Time s New Roman;}{\f dbmino r\f31505\f bidi \froman\fch arset2 0 4\fprq2{\ *\panose 0202060 3050405020304}Ti mes New Roman;}.

0x0310 3530 3230 3330 347D 5469 6D65 7320 4Е65

0x0320 7720 526F 6D61 6ЕЗВ 7D0D 0А7В 5С66 6C6F

0x0330 6D69 6E6F 725С 6633 3135 3034 5С66 6269

0x0340 6469 2 05С 6672 6F6D 616Е 5С66 6368 6172

0x0350 7365 7432 3034 5С66 7072 7132 7В5С 2А5С

0x0360 7061 6E6F 7365 2030 3230 3230 3630 3330

0x0370 3530 3430 3530 3230 3330 3 47D 5469 6D65

0x0380 7320 4Е65 7720 526F 6D61 6ЕЗВ 7D7B 5С66

0x0390 6462 6D69 6E6F 725С 6633 3135 3035 5С66

ОхОЗАО 6269 6469 2 05С 6672 6F6D 616Е 5С66 6368

0x03В 0 6172 7365 7432 3034 5С66 7072 7132 7В5С

ОхОЗСО 2А5С 7061 6E6F 7365 2030 3230 3230 3 63 0

0x03D0 3330 3530 3430 3530 3230 3330 347D 5469

ОхОЗЕО 6D65 7320 4Е65 7720 526F 6D61 6ЕЗВ 7D0D

Рис. 2 Фрагмент документа RTF в шестнадцатеричной форме (HEX)

TXT-файл представляет собой последовательность символов в одной из пяти кодировок: ANSI, UTF-8, Unicode, Unicode Big Endian, OEM. Каждый символ из используемого набора символов кодируется в виде одного байта, а иногда в виде последовательности подряд идущих двух, трёх и т.д. байтов.

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

Текстовым файлам противопоставляются двоичные (бинарные) файлы, в которых информация

организована по иным принципам. [б] Поэтому данный документ имеет наименьший размер.

Таким образом, каждый из текстовых типов файлов (TXT, DOCX, DOC и RTF) имеет свою некоторую структуру «шифрования» файла, соответственно размер каждого файла различается, также как и архиватор с наименьшим размером. Поэтому для каждого файла необходимо определять архиватор индивидуально .

ЛИТЕРАТУРА

1. Батьков, В.О. Анализ проблем современных хранилищ данных / В.О. Батьков // Труды

международного симпозиума Надежность и качество. 2013. Т. 1. С. 259-260.

2. Петрянин, Д.Л. Анализ систем защиты информации в базах данных / Д.Л.Петрянин, Н.В.Горячев, Н.К. Юрков // Труды международного симпозиума Надежность и качество. 2013. Т. 1. С. 115-121.

3. Внутренний формат документов MS WORD - http://uinc.ru/articles/39/

[MS-DOCX]: Word Extensions to the Office Open XML (.docx) File Format -

http://msdn.microsoft.com/en-us/library/dd773189.aspx

4. Описание формата RTF - http://leeet.net/info rtf.php

5. Описание текстового формат TXT - http://leeet.net/info txt.php

i Надоели баннеры? Вы всегда можете отключить рекламу.