Реализация алгоритма анализа эффективности сжатия данных

Реализация алгоритма анализа эффективности сжатия данных

Д. Л. Петрянин, Н.В. Горячев, И.И. Кочегаров, В.А. Трусов, Н.К. Юрков Пензенский государственный университет, Пенза

Аннотация: в работе приводится теоретическое представление об алгоритмах сжатия информации и архиваторах, созданных на их основе. Детально описываются расчеты избыточности информации, коэффициента сжатия, количества информации, энтропии текста в выбранном пользователе файле. На основе алгоритма Хаффмана и расчетных формул разработана программа в среде разработки DELPHI «Анализ эффективности сжатия данных и архивирование», которая позволяет сжимать выбранные пользователем файлы выбранными архиваторами с выводом таблиц исходных и сжатых размеров файлов, а также проводить анализ эффективности сжатия не проводя само сжатие файлов, что позволяет сэкономить время пользователя.

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

Ключевые слова: файл, тип, сжатие, архиватор, данные, избыточность, энтропия, алгоритм, анализ, архив, Хаффман.

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

Разумеется, определение избыточности информации [2-4] необходимо проводить программным способом, для этого нужно разработать алгоритм, по которому будет разрабатываться программное средство.

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

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

появления равна (2) . Соответственно для выбора символа, который

( 1 ^

встречается с вероятностью р, нужно к. = — выборов.

I Рг )

Количество информации, содержащееся в символе, которое определяется частотой его появления, равно:

( 1 ^

I = — , бит.

I Рг )

Отсюда среднее количество информации на один произвольный символ равно:

( 1 ^

Е = -2 Рг — , бит .

г I Рг )

Е называют средним количеством информации на символ или энтропией источника информации. Результатом отдельного альтернативного выбора может быть «0» или «1». Тогда всякому символу соответствует некоторая последовательность «0» и «1». Такая последовательность является кодировкой символа. Энтропия одной буквы русского языка равна примерно Е1 « 4,35 бит.

Если при некотором кодировании символов г-ый символ имеет длину М, то средняя длина слов равна:

Ь = 2РМ , бит.

i

Если предположить, что набор символов можно поделить на равновероятные подмножества, то Ь = Е. Следует иметь в виду, что на самом деле всегда Ь < Е (следствие теоремы кодирования Шеннона)[5].

Абсолютная избыточность кода определяется как разность двух величин: Ь и Е (4), а относительная избыточность кода - по формуле (5).

А = Ь - Е, бит.

А, = 1 .

Избыточность связана с мерой неопределённости информации, т.е. информационной энтропией [6]. Чем больше энтропия, тем большее количество информации содержит в среднем каждый элемент сообщения. Энтропия рассчитывается по формуле (6):

Н = -, бит,

п

где п - длина сообщения (текста).

На основе формул (2), (3) и (4) получаем общую формулу расчета избыточности информации (7):

( ( 1 ^

а = 2 Рг N + ^2 — , бит.

г V V рг))

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

^ = J0gi/^,

ЬС • к

где IC - количество кодируемых символов алфавита; LC - средняя длина кода; к - количество символов алфавита, подлежащих кодированию.

Для проведения анализа была разработана программа «Анализ эффективности сжатия данных и архивирование» по алгоритму Хаффмана [5, 7] и по основным формулам (1)-(8). Данная программа позволяет сжимать выбранные пользователем файлы выбранными архиваторами с выводом таблиц исходных и сжатых размеров файлов, а также выводит результаты расчета абсолютных погрешностей коэффициентов сжатия [8, 9].

Программа работает по следующему алгоритму, который представлен на рис. 1: пользователь вводит следующие параметры (входные данные): {F1...Fn;Av..An;AX0;Mode}, где F1...Fn - выбираемые файлы для архивации или

анализа; Ax...An - выбираемые архиваторы для сжатия; AX0 - допустимая

погрешность расчетов, для получения требуемого результата; Mode - режим 1 - анализ эффективности сжатия, 2 - сжатие файлов с последующими расчетами и анализами. Далее для каждого выбранного файла рассчитываются все параметры, такие как коэффициент сжатия по алгоритму Хаффмана, избыточность информации, длина текста, и др. Если был выбран 1 режим, то на экран выводятся результаты всех расчетов и анализируется, будет ли эффективным сжатие того или иного файла. Если выбран - 2, то происходит сжатие всех файлов (Fv..Fn) всеми выбранными архиваторами (Aj...An). Затем рассчитываются: коэффициент сжатия как отношение сжатого размера файла к исходному; погрешности коэффициента сжатия относительно экспериментальных и расчетных данных, проверяется условие допустимой погрешности: AXF F < AX0. После этого на экран выводятся все

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

Рис. 1. - Алгоритм работы программы «Анализ эффективности сжатия

данных и архивирование»

Главное окно программы представлено на рис. 2. Пользователь выбирает файлы, которые необходимо проанализировать/заархивировать. Для примера выбираем 20 случайных файлов текстового типа [10] (показаны на рис. 2).

Рис. 2. - Главное окно программы «Анализ эффективности сжатия данных и архивирование»

Производим сжатие (кнопка «Начать сжатие») всеми архиваторами. Результаты сжатия (кнопка «Результаты сжатия») представлены на рис. 3. В последних двух столбцах представлена выборка из всех архиваторов по файлу: минимальный размер архива и наименование архиватора соответственно.

Ч Результаты работы Е0 X

Результаты сжатия ; Детальный анализ сжатия

Файл Размер РАН ъ ар АРЛ иоз Щ Щ шг РЦ САВ

1Ш 756631 130823 234343 284280 230364 286305 272608 284583 288863 254748 238331 180323 РАР

I 1002422 240714 286712' 348801 355064 351068 335574 348752 353582 311820 284031 240714 РАР

з М 252885 52640 58226 71433 72533 71453 68340 71223 72620 61856 61308 52640 РАР

ш 25563844 7654555 8212883 11366640 11551330 11351673 10344474 11376886 11511234 8835768 8862377 7654555 РАР

5.М 3804728 1033247 1181574 1608103 1635538 1608831 1543028 1608234 1628108 1410088 1301123 1038247 РАР

6.ТХТ 7184845 1660426 1332040 2683718 2742270 2688717 2583776 2681370 .2725273 2345116 2032453 1660426 РАР

7:М 1077055 279831 32.5638-. 391.362 397900. 394245 377535 392529 396776 339756 335569' 279631 РАР

8.м 2781203.' 658234 731823 1034612 1061603 1036207 388276 1036768 I054405 320364 803045 658234 РАР

8.М 1666784 488315 561236 713443 723076 711375 688127 714528 721537 610420 571775 488815 РАР

10.М 868410 242328 234710 350422 358527 354153 33825Т 351522 358307 312836 287302 242328 РАР

1Ш 5232330 1436304 1632836 2304063 2356730 2280601 2224018 2303421 2334220 1333848 1701076 1436804 РАР

12.txt 87?273 193166 248171 302573 303672 304235 280785 302855 308666 270812 251278 183166 РАР

13.ТХ1 850723 240001 283563 343015 355357 352037 335434 348627 355687 314312 283462 240001 РАР

14.М 18876180; 5343055 5623318 8638288 8817541 8520047 8338010 8631741 8745533 7113884 6184886 5343055 РАР

15Лв(- 737846 221653 262845 313483 313256 314575 302787 314011 317883 276032 268356 221653 РАР

16.ТХТ 4064873 1108873 1.322132 1713574 1754851 1716743 1650831 1718367 1746824 1517288 1344626 1103878 РАР

17.ТХТ 285261В 718176 863814 1144388 1172528 1143301 1102420 1147364 1168074 1013120 880608 713176 РАР

1Е!.Ы1 2551863 700241 842363' 1063883 1088130 1072187 1024558 1067408 1086487 344500 850124 700241 РАР

18.Ы1 8388374 2185533 2537881 3400553 3484888 3401121 3275067 3411577 3470832 3022304 2626374 2135538 РАР

20.doc 10314304 2564260 2458861 3630443 3706158 3743358 3438238 3705206 3752486 2788348 2581886 2458861 1г

1 Скопировать асе с буфер обмене

Рис. 3. - Результаты сжатия файлов

Далее производится расчет данных по основным формулам (1)-(8) (кнопка «Анализ»). Результаты показаны на рис. 4.

Рис. 4. - Результаты расчета

Из рис. 4 видно, что абсолютная избыточность в выбранных файлах велика - более миллиона, кроме последнего (файл «20.doc») всего - 6,78. Это означает, что оригинальный метод Хаффмана здесь не эффективен (здесь его необходимо доработать в плане обработки разных типов данных (рис. 5)). Архиватор RAR показал наилучший результат сжатия (рис. 3).

Рис. 5. - Код Хаффмана для файла «20.doc»

Сжатие всех файлов, в том числе и «20.doc», является эффективным, что доказывает необходимость использования избыточности информации при сжатии информации (рис. 6).

Рис. 6. - Результаты расчета коэффициентов сжатия

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

Рис. 7. - Результаты расчета абсолютных погрешностей коэффициентов

сжатия

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

Рис. 8. - Диаграмма коэффициентов сжатия для файла «5.txt»

На примере файла «5.txt» построена диаграмма коэффициентов сжатия по всем архиваторам (рис. 8) для визуального представления. Красной линией показано расчетное значение коэффициента сжатия (из рис. 4).

Вывод

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

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

Литература

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

2. Diniz P. Adaptive filtering: algorithms and practical implementation / P. Diniz - 3rd ed. - USA, New York City: Springer Publishing, 2008. - 656 p.

3. Crochiere R.E., Rabiner L.R. Multirate digital signal processing / R.E. Crochiere, L.R. Rabiner. - USA, New Jersey, Upper Saddle River: Prentice-Hall, 1983. - 411 p.

4. Haykin S. Adaptive filter theory / S. Haykin. - USA, New Jersey, Upper Saddle River: Prentice-Hall, 2001. - 936 p.

5. Метод Хаффмана и родственные методы // Сайт по методам сжатия данных, изображений и видео URL: www.compression.ru/arctest/descript/huffmans.htm (дата обращения 20.12.2014).

6. Линович А.Ю. Применение метода максимума энтропии к спектральному оцениванию в системах с многоскоростной обработкой сигналов // 15-я международная конференция «Цифровая обработка сигналов и её применение»: труды, Т.1. М.: РНТОРЭС им. А.С. Попова, 2013. С. 96 -100.

7. Левитин А.В. Алгоритмы: введение в разработку и анализ — М.: Вильямс, 2006. С. 392-398.

8. Линович А.Ю. Динамический выбор порядка в многоскоростном адаптивном фильтре // «Инженерный вестник Дона», 2013, №4 URL: www.ivdon.ru/magazine/archive/n4y2013/2002 (дата обращения 20.12.2014).

9. Линович А.Ю. Методы многоскоростной обработки сигналов в сетях распределённых датчиков сбора информации // «Инженерный вестник Дона»,

2014, №2 URL: www.ivdon.ru/ru/magazine/archive/n2y2014/2370 (дата обращения 20.12.2014).

10. Описание текстового формат TXT // Электронные книги для чтения URL: leeet.net/info_txt.php (дата обращения 20.12.2014).

11. Внутренний формат документов MS WORD // Underground InformatioN Center - Компьютерная безопасность URL: uinc.ru/articles/39/ (дата обращения 20.12.2014).

References

1. Petrjanin D.L. Analiz sistem zashhity informacii v bazah dannyh. Petrjanin D.L., Gorjachev N.V., Jurkov N.K. Trudy mezhdunarodnogo simpoziuma Nadezhnost' i kachestvo. 2013. T. 1. S. 115-121.

2. Diniz P. Adaptive filtering: algorithms and practical implementation. P. Diniz - 3rd ed. USA, New York City: Springer Publishing, 2008. 656 p.

3. Crochiere R.E., Rabiner L.R. Multirate digital signal processing. R.E. Crochiere, L.R. Rabiner. USA, New Jersey, Upper Saddle River: Prentice-Hall, 1983. 411 p.

4. Haykin S. Adaptive filter theory. S. Haykin. USA, New Jersey, Upper Saddle River: Prentice-Hall, 2001. 936 p.

5. Metod Haffmana i rodstvennye metody. Sajt po metodam szhatija dannyh, izobrazhenij i video URL: www.compression.ru/arctest/descript/huffmans.htm (data obrashhenija 20.12.2014).

6. Linovich A.Ju. Primenenie metoda maksimuma jentropii k spektral'nomu ocenivaniju v sistemah s mnogoskorostnoj obrabotkoj signalov. 15-ja mezhdunarodnaja konferencija «Cifrovaja obrabotka signalov i ejo primenenie»: trudy, T.1. M.: RNTORJeS im. A.S. Popova, 2013. S. 96 - 100.

7. Levitin A.V. Algoritmy: vvedenie v razrabotku i analiz. M.: Vil'jams, 2006. S. 392-398.

8. Linovich A.Ju. Inzhenernyj vestnik Dona (Rus), 2013, №4 URL: www.ivdon.ru/magazine/archive/n4y2013/2002 (data obrashhenija 20.12.2014).

9. Linovich A.Ju. Inzhenernyj vestnik Dona (Rus), 2014, №2 URL: www.ivdon.ru/ru/magazine/archive/n2y2014/2370 (data obrashhenija 20.12.2014).

10. Opisanie tekstovogo format TXT. Jelektronnye knigi dlja chtenija URL: leeet.net/info_txt.php (data obrashhenija 20.12.2014).

11. Vnutrennij format dokumentov MS WORD. Underground InformatioN Center - Komp'juternaja bezopasnost' URL: uinc.ru/articles/39/ (data obrashhenija 20.12.2014).