Главная > Моделирование, обработка сигналов > Быстрые алгоритмы в цифровой обработке изображений
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

3.2.5. Гнездовые алгоритмы

Систематическое применение методов, рассмотренных в предыдущем разделе, позволяет построить большое число алгоритмов полиномиального произведения, требующих относительно малого числа сложении и умножений, и, следовательно, вычислять большие двумерные свертки с помощью составных полиномиальных преобразований. В качестве альтернативного подхода может служить конструирование больших двумерных сверток из ограниченного ряда коротких двумерных сверток методами, подобными тому, который использовался для одномерных сверток [3.2]. В этом методе двумерная (ЛАХЛЛ-точечная свертка — взаимно-простые, превращается в четырехмерную -точечную свертку путем простого изменения индексации. Пусть задано

Поскольку и — взаимно-простые числа и индексы и определены по модулю прямым следствием китайской теоремы об остатках [3.7] является то, что можно отобразить на два ряда индексов где

Следовательно, преобразуется в четырехмерную -точечную свертку

Эту четырехмерную свертку можно рассматривать как двумерную -точечную свертку, в которой все скаляры заменены двумерными -точечными полиномами. Точнее, представляя входные и выходные последовательности в виде двумерных полиномов, получим

Каждое полиномиальное умножение модулю соответствует -точечной свертке, которая вычисляется с скалярными умножениями и скалярными сложениями. -точечной свертке все скаляры заменяются полиномами Таким образом, если число умножений и число сложений, требуемых вычисления скалярной -точечной свертки, то число умножений М в число сложений А, требуемых для вычисления двумерной -точечной свертки, сводится к

Если поменять местами, число умножений останется таким же. число сложений станет равным , В случае более двух множителей этот способ вычисления можно использовать рекурсивно, при условии, что нее множители взаимно-простые. На практике и -точечные свертки вычисляются с помощью полиномиальных преобразований, а большие двумерные свертки — посредством небольшого набора алгоритмов полиномиальных преобразований. Например, -точечную свертку можно было бы вычислить с помощью и -точечных сверток. Поскольку эти свертки вычисляются соответственно за 13 умножений, 70 сложений и 55 умножений, 369 сложений (см. табл. 3.4), вложение двух алгоритмов позволяет вычислить -точечную свертку за 715 умножений и 6547 сложений. В табл. 3.5 приведено число арифметических операций для различных двумерных сверток, вычисленных с помощью полиномиальных преобразований и вложения. Можно видеть, что этот метод дает очень малое число умножений на отсчет, но число

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

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

сложений на отсчет, в общем, выше, чем при использовании составных полиномиальных преобразований. Число сложений можно уменьшить посредством небольшого усовершенствования метода вложения Агарвала-Кули. Это осуществляется с помощью метода послойного вложения в котором первый шаг вычислений такой же, как в методе Агарвала — Кулп, причем -точечная свертка вычисляется как -точечная, которой скаляры заменяются полиномами Таким образом, А, сложении, соответствующих алгоритму дают согласно сложений. В методе Агарвала — Кули умножений, соответствующих алгоритму затем заменяют на -точечных сверток, что дает, таким образом. сложений. В послойно-гнездовом алгоритме, однако, роль и на этом шаге меняется. Если предположить, что простые, то умножении, связанных с алгоритмом соответствуют произведениям полиномов из членов плюс одно умножение. Поэтому -точечных сверток можно рассматривать как -точечную свертку, в которой скаляры заменены на полиномов из элементов плюс один скаляр. Таким образом, каждое сложение в алгоритме повторяется раз вместо , поскольку число сложений уменьшается, в то время как число умножений остается неизменным.

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

<< Предыдущий параграф Следующий параграф >>
Оглавление