ОБРАБОТКА ИЗОБРАЖЕНИЙ, РАСПОЗНАВАНИЕ ОБРАЗОВ
ИССЛЕДОВАНИЕ ПРИВЕДЕННОГО КОМПЕТЕНТНОГО АЛГОРИТМА НАД МНОЖЕСТВОМ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ СВЕРТКИ
А.Ю. Баврина, В.В. Мясников Институт систем обработки изображений РАН, Самарский государственный аэрокосмический университет им. С.П. Королева
Аннотация
В работе исследуются операция приведения и операция построения приведенного компетентного алгоритма над множеством известных алгоритмов постоянной сложности. В качестве известных алгоритмов опорного множества используются алгоритм прямого вычисления свертки и наиболее известные алгоритмы на основе быстрых дискретных ортогональных преобразований (с декомпозицией Кули-Тьюки и Гуда-Томаса, алгоритм Рейдера для коротких длин). Показано, что совместное их использование, которое дает приведенный компетентный алгоритм, позволяет снизить вычислительную сложность формируемого алгоритма вычисления свертки даже по отношению к наилучшим алгоритмам опорного множества.
Введение
Рассмотрим задачу вычисления свертки:
M-1
y(n) = h(n)*x(n) = ^h(m)x(n -m) . (1)
конеч-
Здесь {х(п)} - входной сигнал, {к (т)} -
С / -м+1
ная импульсная характеристика, {у (п)} о - выходной сигнал. Обозначим задачу (1) через г = г(з0,{х(п)}}), где 30 = ({к(п}(,0)) -априорная информация о задаче.
Компетентный алгоритм
Введем функцию:
( \
par
Z (30,(x (n)}
0 =(
= (M, N).
Определение 1 Алгоритм A называется алгоритмом постоянной сложности, если для любой задачи Z выражение для его вычислительной сложности имеет вид аналитической функции, зависящей только от величины par (Z), то есть:
U (a(Z )) ЕЕ uA (par(Z)) = uA M, N).
Обозначим KA(MN) область определения алгоритма постоянной сложности.
Определение 2 Компетентным алгоритмом A® g {A} над опорным множеством {A} алгоритмов постоянной сложности называется алгоритм вида:
К
A®(M, N)
= U К
Ae{A}
A(M ,N)'
V Z e К
A* (M, N)
A (Z A' (Z) if
((M, N ) = par (Z ) a ^ uA- (M,N ) =
= Ja^A 1 UA (M,N)
AeKM ,N )К A(M ,N)(
Очевидно, компетентный алгоритм для решения конкретной задачи вычисления свертки использует тот алгоритм из опорного множества, сложность которого при решении данной задачи минимальна.
Предложение 1 [1] Компетентный алгоритм А® над множеством алгоритмов постоянной сложности {А} является алгоритмом постоянной сложности.
Приведенный алгоритм
Определение 3 Функция сложности иА (М, N )
алгоритма А постоянной сложности называется корректной, если выполняется неравенство:
V( M, N) e К (
A(M ,N)
< min
_min
m=1, M -2
(N-(M -m))eKA(M,N ) (M-m,N-m)eKA(M,N)
,(M, N )<
uA (m, N -(M - m))-uA (M - m, N - m) +
min
m=0,1,2... n=0,1,2,...
((+m,N+m+n )eKA(M ,n )
,(( + m, N + m + n ) (( - M + n +1)
min
n=l[N/2] (M ,И )eKa(M ,N) M,
(N - M +1) (uA (M, n)(n -M +1) + uA (M, N - n + M - l)(N - n) N - M +1
m=0
Определение 4 Алгоритм постоянной сложности с корректной функцией сложности называется
приведенным.
Теорема 1 [1] Для любого алгоритма постоянной сложности А, заданного на ХА(М м), существует
(может быть сконструирован) приведенный алгоритм А:
К - = К
A(M ,N) A(M ,N)'
V(M, N )еК
A(M, N)
UA(M,N) - UA(M,N)•
Теорема 2 [1] Пусть {А} - множество алгоритмов постоянной сложности, из которых построено множество {А} приведенных алгоритмов постоянной сложности. Пусть А® - приведенный компетентный алгоритм над множеством {А} с областью определения ХдЖ , а А® - приведенный компетентный алгоритм над множеством {А} с
областью определения . Тогда выполняются
А2
соотношения:
Кл®=КА?И А®) ,
еКА® и (А® (г)) = и (А® (г)).
Исследование приведенного компетентного алгоритма
Исследование проводилось для наиболее известных алгоритмов вычисления сверток, формирующих множество:
[АВС , А2, А2_ X, А3, А4 , АаТ } . (2)
Здесь:
- А1С - алгоритм прямого вычисления свертки [2] согласно формуле (1);
- А2, А3, А4 - вычисления свертки с использованием декомпозиции Кули-Тьюки по основаниям «2», «3» и «4» соответственно (используется дополнение входного сигнала нулями до степени соответствующего основания) [3];
- А2 х - с декомпозицией Кули-Тьюки по основанию «2», дополнением нулями до степени «2» и секционированием [3, 4];
- Аат -с декомпозицией Гуда-Томаса и алгоритма Рейдера для вычисления малоточечных ДПФ (с использованием дополнения входного сигнала нулями до длины, раскладывающейся на взаимно простые сомножители) [3].
Исследование проводилось в двух направлениях.
Первое направление - это определение влияния операции приведения на вычислительную слож-
ность алгоритмов быстрой свертки. В том числе на те, в которых используется секционирование входного сигнала. Результаты исследования представлены на рисунках 1 и 2 и таблице. Поскольку функция сложности и. (M, N) зависит от двух координат M
и N, на рисунках представлены только «сечения» этой функции для значения M = 60 .
По результатам этого направления исследований можно сделать следующие выводы:
- функция сложности алгоритмов вычисления свертки на основе ДОП и с секционированием, и без секционирования не является корректной;
- использование операции приведения для алгоритмов вычисления свертки, основанных на ДОП с декомпозицией Кули-Тьюки по различным основаниям с секционированием сигнала и без него, позволяет уменьшить сложность решения большинства задач (50-56%) в области определения соответствующих алгоритмов (рис.1, 2);
- значительное снижение сложности для указанных алгоритмов происходит для задач с параметрами (M,N), у которых длина сигнала N чуть больше степени основания декомпозиции Кули-Тьюки (рис.1, 2). Для таких задач возможно снижение сложности более чем на порядок (показатель (2б) в таблице).
u.(M,N) 150
100
50
1 \ 1 ---- uJM.N) uXl(M,N)
п ч
У 1 а» ^
Г.....
0 100 200 300 400 N
Рис. 1. Функция сложности после операции приведения
u.(M,N)
150 100 50
Н, к4
V i -i,___
uJM,N) u~JM,N) ил,/М,Ы) ux,s(M,N)
0 100 200 300 400 N
Рис. 2. Функция сложности после операции приведения для алгоритма с секционированием
Вторым направлением является исследование приведенного компетентного алгоритма. Для этого из указанного в (2) множества алгоритмов постоянной сложности выбиралось некоторое подмножество А, называемое опорным. Сложность каждого алгоритма опорного множества определялась на области K(MW)=[1,512]x[1,512]. Над опорным подмножеством А строился компетентный алгоритм A®. Для него выполнялась операция приведения, результатом которой являлся приведенный компетентный алгоритм A®. На рисунках 3-5 (по мере
увеличения числа алгоритмов опорного множества) приведены функции сложности для алгоритмов опорного множества и построенного над ними приведенного компетентного алгоритма.
По представленным результатам можно сделать следующие выводы:
- независимо от числа алгоритмов опорного множества, можно рассчитывать на снижение сложности в относительно большом (более 30%) числе отсчетов области определения;
- для отсчетов области определения, в которых произошли изменения функции сложности в результате операции приведения, можно рассчитывать на снижение сложности в среднем на 1030% (от сложности компетентного алгоритма).
- как число отсчетов области определения, в которых операция приведения снижает сложность компетентного алгоритма, так и собственно величина этого снижения зависит не только (а с учетом представленных результатов, не столько) от числа алгоритмов опорного множества, а в значительной степени от вида функции сложности этих алгоритмов. То есть, в общем случае нет монотонного поведения ни одного показателя от числа алгоритмов
опорного множества (таблица), кроме средней
^ ф
сложности итогового алгоритма А ;
- по мере наращивания мощности опорного множества алгоритмов, величина снижения средней сложности и компетентного, и приведенного компетентного алгоритма оказывается все меньше (см. поведение показателей (5) и (6) в таблице). В частности, при переходе от трех к пяти алгоритмам в опорном множестве показатель (6) снижается всего на 10% (с 113 до 102 операций) по сравнению с почти 30% снижения (со 165 до 117) при переходе от одного алгоритма к двум. Поэтому на практике представляется малоэффективным процесс бесконечного наращивания мощности опорного множества алгоритмов. Практически тех же результатов (по сложности решения задач свертки) можно добиться и при сравнительно малом количестве алгоритмов. По
той же причине, и процесс синтеза новых алгоритмов вычисления сверток, которые по показателю сложности не превосходят радикально существующие, с практической точки зрения является нецелесообразным.
и.(МД)
150 100 50
ивс(М,Щ иЛ/МД)
¡4
чГ ч ч ■ч. | 1
Г"*-*».]
0 100 200 300 400 N
Рис. 3. Функция сложности для приведенного компетентного алгоритма, А = {Агс, А2}
и.(МД) 200 150 100 50
-----иА/МД) - ЩС(МД) .................... ил/МД) ------иы(М,Ы)
1 1 1
\ \ \ ч
Ч' N
0 100 200 300 400 N
Рис. 4. Функция сложности для приведенного компетентного алгоритма, А = {А^, А2, А4}
и.(М,1V) 250
200
150
100
50
-------ил (МД (МД (МД *ВС(МД) 10Т(МД)
..................... "л, ----Чи . . . , ...........
1 \
Л I V V Ч У
О-
■Л*: _ Х=«
0 100 200 300 400 N
Рис. 5. Функция сложности для приведенного компетентного алгоритма, А = {Авс, А2, А3, А4, АОТ}
Таблица 1. Сводные характеристики изменения сложности алгоритмов решения задачи 2 при использовании операции приведения
Показатель Алгоритм
А2_Х А2 {Авс , А2 } Г АВС , А2 ,) 1А4 ] Г АВС , А2 , А3 ,) [ А4, АСТ )
(1) относительное число отсчетов области определения, в которых произошло снижение сложности алгоритма 0.499 0.563 0.348 0.394 0.423
(2а) максимальное абсолютное уменьшение сложности алгоритма 17863 17863 77.717 88.478 91.944
(2б) максимальное относительное уменьшение сложности алгоритма 12.102 12.603 1.929 2.132 1.323
(3 а) среднее абсолютное уменьшение сложности алгоритма, нормированное на количество отсчетов, в которых произошло изменение сложности 271.070 250.367 24.353 29.870 10.932
(3б) среднее относительное уменьшение сложности алгоритма, нормированное на количество отсчетов, в которых произошло изменение сложности 1.405 1.650 1.220 1.274 1.104
(4а) среднее абсолютное уменьшение сложности алгоритма, нормированное на мощность области определения 135.160 140.902 8.4693 11.754 4.620
(4б) среднее относительное уменьшение сложности алгоритма, нормированное на мощность области определения 0.701 0.928 0.424 0.501 0.466
(5) средняя сложность компетентного алгоритма 299.505 306.115 125.414 124.831 106.618
(6) средняя сложность приведенного алгоритма 164.346 165.213 116.944 113.0767 101.998
Ш
Рис. 6. Отсчеты области определения, в которых операция приведения снизила сложность соответствующего алгоритма решения задачи вычисления свертки: (серым - отсчеты, не входящие в область определения, белым - отсчеты области определения, в которых операция приведения снизила сложность соответствующего алгоритма, черным - отсчеты области определения, в которых операция приведения не изменила сложность соответствующего алгоритма)
а) А2; б) А2_х; в) {, А }® ; г; {, А }®; д) {{, 4, Л, А4, Аат }®
Благодарности Работа выполнена при поддержке: > РФФИ (проекты № 06-01-00616-а, № 07-07-97610-р_офи); Фонда содействия отечественной науке; российско-американской программы «Фундаментальные исследования и высшее образование» (CRDF Project RUX0-014-SA-06).
Литература
Мясников В. В. О синтезе эффективного алгоритма над множеством алгоритмов вычисления свертки // Компьютерная оптика, 2006. В. 29. С. 78-117. L.R. Rabiner, B. Gold Theory and applications of digital signal processing // New Jersey: Prentice-Hall, Inc. Englewood Cliffs, 1975.
H.J. Nussbaumer Fast Fourier Transform and Convolution Algorithms // Heidelberg, Germany: Springer, 1990. P. 276. R.E. Blahut Fast Algorithms for Digital Signal Processing // Reading, MA: Addison-Wesley Inc., 1984.