Комплекс программ сжатия/восстановления сигналов на основе сплайн-вэйвлетов Дипломная работа студента 543 группы Ракчаева Владимира Аркадьевича Научный руководитель: проф. Демьянович Юрий Казимирович Введение • Современные потоки информации – последовательности битов огромной длины (1012 - 1016 символов) • Быстрая обработка требует больших компьютерных ресурсов • Сокращение объемов цифровой информации за счет отбрасывания несущественных ее составляющих – актуальная задача! Введение • Группа кафедры параллельных алгоритмов занимается этими задачами уже на протяжении последних десяти лет • Алгоритмы, описанные в этой работе, еще не применялись на практике, и для их последующего практического применения программно реализуются здесь впервые! Вэйвлеты • Эффективные алгоритмы обработки больших потоков информации (экономное разложение потока информации) Исходный поток Основной поток Вэйвлетный поток Вэйвлеты • Основной информационный поток менее плотный, чем исходный поток информации => его можно передать быстро • Вэйвлетный информационный поток можно передавать фрагментарно либо вообще отбросить • Вэйвлетный поток обычно состоит из малых чисел, требующих меньшее число разрядов для их представления (экономия ресурсов) Цель работы • Создание программ сжатия и восстановления числовой информации, основанного на сплайн-вэйвлетных разложениях эрмитова типа • Анализ возможностей распараллеливания указанного алгоритма Сплайн-вэйвлетное разложение эрмитова типа • Вэйвлетные (всплесковые) разложения пространств сплайнов, пригодных для решения интерполяционной задачи Эрмита (с производными первого порядка) • Такие сплайны называем сплайнами эрмитова типа (первой высоты) • Для сплайн-вэйвлетного разложения эрмитова типа верны следующие формулы декомпозиции и реконструкции Формулы декомпозиции Формулы реконструкции Описание алгоритма • • • • • Входные данные – числовой поток c Создание сетки x Этап декомпозиции Этап реконструкции Сравнение потоков Этап декомпозиции • Параллельные процессы одновременно вычисляют составляющие вэйвлетного потока, выбрасывая узел сетки, и после этого выполняется процесс пересчитывания основного потока • Задается шаг h, с которым происходит выбрасывание узлов сетки процессами • Из исходного потока c соответствующий процесс вычисляет вэйвлетные составляющие bj по формулам декомпозиции Этап декомпозиции • Основной процесс собирает с остальных процессов все данные в один массив вэйвлетного потока и вычисляет основной поток a по первой части формул декомпозиции • После процесса декомпозиции, из исходного потока выделяется основной поток a и вэйвлетный b, состоящий из компонент, выделенных каждым процессом Этап реконструкции • Этап, обратный этапу декомпозиции • Из выделенных потоков a и b восстанавливается исходный поток • Все процессы параллельно пересчитывают восстанавливаемый поток по формулам реконструкции • Собрав данные со всех процессов, основной процесс собирает данные в один поток, используя вычисленные компоненты восстанавливаемого потока с’ Сравнение потоков • Полученный восстановленный поток с’ сравнивается с исходным потоком c • Для наглядности создается разностный массив • В случае успешного выполнения алгоритма, восстановленный и исходный потоки должны совпасть, т.е. разностный массив должен получиться нулевым (при вычислениях в кольце вычетов по простому модулю). • В вещественных числах возникает погрешность округления, поэтому разностный массив должен получится близким к нулю в этом случае. Реализация • Вышеописанный алгоритм в этой работе реализован программно на языке программирования C с распараллеливанием по технологии MPI (Message Passing Interface, интерфейс передачи сообщений) • Программа в работе реализована в двух видах – Все расчеты выполняются в кольце вычетов по простому модулю, для чего применяются специально написанные в программе функции операций по модулю. – Рассчеты выполняются в вещественных числах. Результаты • Программа корректно работает для любого допустимого входного потока • Программа была протестирована на 10 выполняющих процессорах кластера • Результатом выполнения программы стала успешная реализация вышеописанного алгоритма, подтверждением чего является полученный результирующий разностный поток, состоящий из нулей (в случае вещественных чисел – близких к нулю из-за ошибок округления) Результаты Net: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Source flow: 2 15 3 18 2 20 4 18 9 20 2 25 3 24 4 19 2 24 1 18 3 17 5 15 6 14 7 16 6 19 Start decomposition... End of decomposition. Result of decomposition. Main flow: 2 15 2 20 9 20 3 24 2 24 3 17 6 14 6 19 Wave flow: 8 16 30 23 2 17 13 18 23 21 25 8 14 15 Start reconstruction... End of reconstruction. Result of reconstruction. Reconstr. flow: 2 15 3 18 2 20 4 18 9 20 2 25 3 24 4 19 2 24 1 18 3 17 5 15 6 14 7 16 6 19 Difference of source and reconstr. flows: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ok. Результаты Net: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Source flow: 2 15 3 18 2 20 4 18 9 20 2 25 3 24 4 19 2 24 1 18 3 17 5 15 6 14 7 16 6 19 Start decomposition... End of decomposition. Result of decomposition. Main flow: 2 15 2 20 9 20 3 24 2 24 3 17 6 14 6 19 Wave flow: 0.25 0.5 6.75 -0.25 2 1.5 5.25 -5.25 7.5 -2.25 9.5 0.25 6.25 -0.5 Start reconstruction... End of reconstruction. Result of reconstruction. Reconstr. flow: 2 15 3 18 2 20 4 18 9 20 2 25 3 24 4 19 2 24 1 18 3 17 5 15 6 14 7 16 6 19 Difference of source and reconstr. flows: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ok. Результаты Net: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Source flow: 3.1 20 2.2 18.8 2 29 3.1 18.8 2.8 17.7 3.33 25.5 4.1 24.4 4.44 40.3 3.3 39 2.5 41.1 5.1 30.5 2.2 40 4 20 4 16 5 18 Start decomposition... End of decomposition. Result of decomposition. Main flow: 3.1 20 2 29 2.8 17.7 4.1 24.4 3.3 39 5.1 30.5 4 20 5 18 Wave flow: -3.275 -5.975 12.775 -4.35 0.03 4.775 -4.66 8.4 10.975 6.8 12.35 14.475 7.75 -2.75 Start reconstruction... End of reconstruction. Result of reconstruction. Reconstr. flow: 3.1 20 2.2 18.8 2 29 3.1 18.8 2.8 17.7 3.33 25.5 4.1 24.4 4.44 40.3 3.3 39 2.5 41.1 5.1 30.5 2.2 40 4 20 4 16 5 18 Difference source and reconstr. flows: 0 0 0 3.55271e-015 0 0 1.33227e-015 3.55271e-015 0 0 0 0 0 0 0 0 0 0 0 -7.10543e-015 0 0 -8.88178e-016 0 0 0 0 0 0 0 Ok. Заключение • В данной работе программно реализован параллельный алгоритм сжатия/восстановления числовой информации, основанного на сплайнвэйвлетных разложениях эрмитова типа. • Разбиение на потоки оцифрованную информацию (изображения, звук и т.п.), отбрасывая несущественные части (часть или весь вэйвлетный поток) • Полученный основной поток можно снова разбивать по этому алгоритму (и так несколько раз) для нескольких уровней точности Список литературы • Демьянович Ю.К., Ходаковский В.А. Введение в теорию вэйвлетов. Учеб. пособие. СПб.: Петербургский государственный университет путей сообщения, 2008. – 51 с. • Демьянович Ю.К., Зимин А.В. О всплесковом разложении сплайнов эрмитова типа. Проблемы математического анализа, 2007. Т.35, С. 33-45.