Современные информационные технологии/
2. Вычислительная техника и программирование
Д.т.н. Ромм Я.Е., к.т.н. Забеглов В.В.
Таганрогский
государственный педагогический институт
им. А.П.
Чехова, Россия
ТАНТК им.
Г.М. Бериева, Россия
Алгоритм пилообразного преобразования В
параллельной форме
с переменым числом отсчётов
Введение.
Ортогональные преобразования (ОП) используются
для обработки сигналов, представляющих различную информацию, такую, как
сейсмические и акустические данные, данные биологических и биомедицинских
исследований, информацию в области обработки изображений и речевых сигналов, в
области отбора признаков при распознании образов, анализа и проектирования
систем связи. Среди ОП активно применяется пилообразное преобразование, которое
эффективно используется для обработки изображений, например, для представления
постепенного изменения яркости вдоль строки изображения, обеспечивает высокую степень
концентрации энергии изображения [4]. При использовании ОП возникают задачи
повышения скорости и сокращения объёма вычислений. В работе предлагается
решение задачи быстродействия посредством видоизменения алгоритма пилообразного
преобразования, включающего построение матрицы ОП, к параллельной форме. Параллельное
построение матрицы для переменного числа отсчетов дает возможность производить
преобразование с наперёд заданной точностью. Параллельные алгоритмы
рассматриваются на модели неветвящихся параллельных программ [1,2] без учета
обмена.
ОП записываются с помощью матричных
обозначений
, (1)
– вектор-столбец
входных данных длиною
,
– матрица ОП размером
,
– вектор-столбец
коэффициентов преобразования длиною
,
– степень двойки.
Матрица пилообразного преобразования
задаётся рекуррентной формулой [3]
,
,
, (2)
где
– единичная матрица
-го порядка. Постоянные
и
, вычисляются по формулам [4]:
,
,
(3)
Алгоритм строится
следующим образом. Выберем и зафиксируем
. Формулы (3) позволяют по заданному номеру вычислять
соответствующие коэффициенты в (2). Предполагается, что степени
,
, в формулах (3) априори вычислены и занесены в память
компьютера для всех реально требуемых границ
. При этом показатель степени соответствует математическому
адресу ячейки памяти.
Коэффициентам
и
с номером
,
, ставятся в
соответствие процессоры с номерами
и
соответственно.
Процессор с номером
, обращается к ячейкам с номерами
и
, в которых хранятся значения степени двойки необходимые для
вычисления коэффициента
, а процессор с номером
к ячейкам с номерами
и
для вычисления
коэффициента
. Процессоры, работая синхронно и взаимно независимо,
параллельно считают из памяти все степени двойки за время
, затем вычислят искомые коэффициенты, причем одновременно
для всех матриц рассматриваемого преобразования в формуле (2) с временной
сложностью
,
здесь и ниже
в скобках
означает число
процессоров.
Рекуррентная формула (2)
представляется в виде
произведений матриц.
Для удобства
представления обозначим в формуле (2) первую матрицу, стоящую в произведении,
через ![]()
. (4)
Индекс
соответствует размеру
квадратной матрицы. Выразим в соотношении (4)
через
и ![]()
. (5)
Представим вторую
матрицу в выражении (5) в виде произведения
. (6)
Далее, продолжая этот
процесс, последовательно выражаем с помощью (4)
,
,…,
. Получаем (6) в виде произведения
матриц
. (7)
Если не учитывать диагональную структуру
матриц, стоящих в (7), то можно воспользоваться естественным параллелизмом
матриц. Все матрицы в (7) имеют размерность
. Произведение матриц вычисляется с использованием схемы
сдваивания.
Матрицы в произведении
разбиваются по парам, затем внутри каждой пары они одновременно умножаются. На
следующем шаге, как и на первом, матрицы также разбиваются по парам и
одновременно умножаются в паре и т.д. Если число матриц нечётно, то матрица без
пары не умножается, а остаётся в полученном произведении, пока на каком-то шаге
их число не станет чётным. По указанной схеме произведение, состоящее из
матриц, вычисляется
за
шагов. Умножение двух
матриц, стоящих в паре, выполняется также c использованием схемы сдваивания. Искомая матрица
состоит из
элементов, каждому
элементу вычисляемой матрицы
,
, ставится в соответствие
процессоров. На
первом шаге параллельно умножаются элементы
-й строки на элементы
-го столбца одновременно для всех значений
. Все полученные парные произведения за
шагов складываются по
схеме сдваивания с тем же числом процессоров одновременно для всех
.
Формула (7) разбивается
на
пар произведений
матриц, каждой паре для умножения требуется
процессоров, отсюда
общее число процессоров
.
Таким образом, на основе
естественного параллелизма матриц, временная сложность алгоритма
.
(8)
Число процессоров в (8)
может быть существенно сокращено, это достигается следующим образом. Матрицы,
входящие в (7), имеют одинаковую клеточную структуру. Клетки отличаются
номерами коэффициентов и размером. Умножение матриц производится не по
элементам матриц, а по их клеткам. В произведении выбираются клетки, которые
имеют наименьший размер. Каждая клетка, в свою очередь, состоит из четырёх
вложенных клеток, которые представляют собой матрицы. Матрицы отличаются от
единичной четырьмя элементами, стоящими в левом верхнем углу.
Для вычисления
произведения клетки на клетку требуется выполнить восемь алгебраических
умножений и четыре алгебраических сложения. Произведения клетки на единичную
клетку не требуют никаких алгебраических операций, так как единичная клетка с
точностью до знака совпадает с единичной матрицей.
Эта особенность
позволяет сократить число процессоров и число шагов при умножении матриц. На
первом шаге в каждой паре вычисляется восемь произведений клеток, т.е. четыре
клетки первой матрицы умножаются на две клетки второй матрицы
. На втором шаге число произведений клеток –
, на третьем –
и т.д. При каждом
шаге увеличивается в два раза показатель степени восьми, но и уменьшается в два
раза количество пар произведений. Суммарное число произведений клеток во всех
парах, с каждым шагом, изменяется следующим образом:
,
,
, …,
. На последнем шаге умножается наибольшее число клеток
.
Для получения каждой клетки требуются выполнить
восемь алгебраических умножений и четыре алгебраических сложений:
.
Каждому произведению клеток ставится в
соответствие восемь процессоров, которые параллельно умножают элементы, затем
параллельно четыре процессора выполняют сложение.
Временная сложность схемы
. (9)
После построения матрицы
вычисляется, непосредственно, само пилообразное преобразование на основе
естественного параллелизма матриц с использованием схемы сдваивания. Временная
сложность алгоритма с учётом построения матрицы преобразования составляет
. (10)
Заключение. Изложена
схема вычисления пилообразного преобразования на основе естественного параллелизма.
Получены логарифмические оценки временной сложности вычисления матрицы
пилообразного преобразования (9) и вычисления преобразования в целом (10).
Аналогичные алгоритмы ортогональных преобразований изложены в [5, 6].
литературА:
1.
Миклошко Й. Связь между алгоритмами, программами и
структурой параллельных ЭВМ. – В кн.: Алгоритмы математическое обеспечение и
архитектура многопроцессорных вычислительных систем / Под ред. А.П. Ершова. –
М.: Наука, 1982. – С. 6–36.
2.
Солодовников В.И. Верхние оценки сложности решения систем
линейных уравнений // Теория сложности вычислений. 1: Записки научных семинаров
ЛОМИ АН СССР. Л., 1982. Т. 118. С. 159–187.
3.
Ахмед Н., Рао К.Р..
Ортогональные преобразования при обработке цифровых сигналов: Пер. с англ. Т.Э.
Кренкеля / Под ред. И.Б. Фоменко. – М.: Связь, 1980. – 248 с.
4.
Прэт У.. Цифровая обработка изображений, в двух
книгах. Книга 1: Пер. с англ. / Под ред. Д.С. Лебедева. – М.: Мир, 1982. – 311
с.
5.
Ромм Я.Е., Забеглов В.В.
Параллельные схемы некоторых
дискретных ортогональных преобразований // Автометрия. – 2010. – Т. 46. – № 6.
– С. 54 – 70.
6.
Забеглов В.В. Компьютерно-ориентированные схемы минимизации временной сложности цифровой
обработки сигналов при динамическом изменении отсчетов / Автореферат
диссертации на соискание ученой степени кандидата технических наук. – Таганрог:
ЮФУ. – 2010. – 20 с.