Известия Тульского государственного университета Естественные науки. 2014. Вып. 1. Ч.1. С. 232-248
Прикладная математика и информатика
УДК 519.6
Реконструкция параметрических поверхностей, заданных таблично, посредством сдвигов и сжатий одной функции *
Н. Ю. Додонов, А. В. Масальских
Аннотация. В работе для решения задачи реконструкции параметрических поверхностей применяются агрегаты приближения сумматорного типа, которые имеют вид:
V(/, Х,У) = 53 а(/,*> (х,у)>
Ъ,3
где Е С М2, X — вещественное банахово пространство, / : Е ^ X, г, ] € Ъ. Функции ^ ^ : М2 ^ М не зависят от / и получаются посредством сдвигов и сжатий функции, построенной на базе некоторого положительного ядра. Вычисление коэффициентов а(/,г,з) сводится к прямым арифметическим операциям с табличными значениями / и не требует учета каких-либо граничных условий. На базе ядер Стеклова второго порядка построен алгоритм для реконструкции поверхностей.
Ключевые слова: реконструкция параметрических поверхностей, интегральный оператор, финитное ядро, модуль непрерывности, параллельный алгоритм реконструкции.
1. Введение
Пусть для некоторой поверхности известна таблица значений прямоугольных координат ее точек. Под ее реконструкцией по этим данным понимается метод построения поверхности, близкой к исходной в смысле выбранных критериев (подробнее о современных методах реконструкции поверхностей см. [2]). Широкое распространение получили методы сплайн-аппроксимации (см. [1,6]). Их практическая реализация (см.
* Работа выполнена при финансовой поддержке федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики» (грант № 411540).
[1,6]) особенно в многомерном случае нередко сопряжена с серьезными вычислительными трудностями, что связано с построением собственно самих сплайнов.
С математической точки зрения, поверхность — это отображение f двумерной области в трехмерное пространство, поэтому реконструкция поверхности может осуществляться с помощью некоторого метода приближения отображения f. В работах Н.Ю. Додонова и В.В. Жука (см. [7-11]) рассмотрен подход к построению соответствующих агрегатов приближения, допускающий широкие модификации. В настоящей статье применим одну из них, которая состоит в следующем.
Сначала область определения E аппроксимируемого отображения f разбивается на подобласти Ek (естественным для множества известных значений способом). На каждой подобласти строится некоторая простая аппроксимирующая функция $£. В результате мы получаем функцию g на области определения E такую, что сужением функции g на Ek будет gk. На втором этапе к функции g применяется сглаживающий оператор интегрального типа. Этот оператор выбирается таким образом, чтобы результирующая функция имела необходимую гладкость и ее отклонение от заданной функции лежало в границах заданной точности. На третьем этапе результат применения интегрального оператора к простой аппроксимирующей функции переписывается в виде агрегата приближения сумматорного типа. Этот агрегат строится на базе сдвигов и сжатий одной функции, получаемой из ядра интегрального оператора. Он имеет вид
V(f,x,y) = ^2 a(f,i,j)Fij(x,y).
i,j
Отметим, что для вычисления коэффициентов a(f,i,j) не требуется учитывать какие-либо граничные условия на Ek и все сводится к прямым арифметическим операциям с исходными табличными значениями f. Такое отличие от сплайн-аппроксимации позволяет значительно упростить программную реализацию описанного подхода.
2. Агрегаты приближения сумматорного типа на базе
финитных ядер
В дальнейшем X — вещественное банахово пространство (B-пространство) с нормой ||.||, XC (R2) — пространство непрерывных
ограниченных банаховозначных функций f : R2 ^ X с нормой
||f ||R2 = sup ||f(x)||,
XH — пространство функций f : R2 ^ X, имеющих ограниченную вариацию в смысле Харди (см. [3 с.436-440]), XCH = XC(R2) П XH.
Пусть f Є XC(R2), hl,h2 ^ 0. Модуль непрерывности второго порядка такой функции определим равенством
W2(f,hl,h2)= sup Ilf (xl + tl,x2 + t2) + f(xl — tl,x2 — t2) — 2f(xl,x2)^^
xeR2
|tl|^hi,|t2|^h2
Ясно, что если f равномерно непрерывна на R2, то выполняется равенство
lim U2(f, hl, h2) = 0^ hi,h2^+0
Обозначим через W множество функций g : R ^ R абсолютно непрерывных на любом конечном отрезке и таких, что
J |g'(t)|dt < +ж^
R
Для gl,g2 Є W, al,a2 > 0 полагаем
l
g(ul,u2 )^У g^ OhL t + u^ g2 ^ t + u^j dt•
0
Пусть a0 = —ж, al = +ж, f Є XH. Тогда (см. [В]) определены величины f (ai,aj), f (xl,Vj), f (^,x2), (i,j = 0,1,xl,x2 Є R). Обозначим ak = khl, bm = = mh2, Bk,m = (ak ,bm) и положим
Ceuvj(f) = (—1)i+j f (°h°j),
Ck,aj (f ) = ( —1)j (f (ak+l ,^j) — f (ak,^j^
Cai,m(f) = ( —1)i(f (&i,bm+l) — f (&i,bm)), l
ck,m = (—1)i+jf (ak + ihl,bm + jh2)^
i,j=0
Пусть f Є XH, gl,g2 Є W, a,h Є R+2, полагаем
Va,h(f,gl,g2 ,x)= ck,m(f)gk,m(x,a,h), (1)
k,m^Z
где x Є R2, gk,m(x,a,h) = g (khl0-xi, mh02-X2) • В работе [В] установлен следующий результат.
Теорема А. Пусть a,/3,h Є R+2, f Є XCH, gl,g2 Є W, gi неотрицательны, gi (t) = gi (—t) для почти всех t Є R,
J gi = 1, Ai = J t2gi(t)dt < +ж, (i = 1, 2)
R0
Тогда
— Va,h{f, g1jg2)||R2 ^ ( 1 + ( el ) Л1 ) ^(/,@1, 0) +
hi
у’-’ 2
1 + (Ж) Л0 W2(f’ 0,в2) + f, Y , 0) + U2^f, hf)
Ранее для случая X = R теорема А была установлена в работе [7].
Как видно из (1), при построении оператора Va,h используется таблица значений отображения f в точках Bk,m. В теореме А приводится оценка погрешности приближенного равенства
f(x) ~ Va>h(f,gi,g2,x)
в терминах структурной характеристики отображения f — его модуля непрерывности второго порядка. Все это может служить основанием для того, чтобы применять в прикладных задачах оператор Va,h как эффективный агрегат приближения отображения f.
С вычислительной точки зрения важное значение имеют финитные ядра, т.е. функции р : R ^ R+ такие, что
1
У p(t)dt = 1.
-1
Пусть pi, р2 — два таких ядра и Ф1, Ф2 — их соответствующие первообразные функции. В работе [9] установлено, что в этом случае для индивидуального значения (x1,x2) форма записи оператора (1) существенно упрощается.
Полагаем
1
Ф(«, v) = J Ф1 ^ — t + Ф2 ^ — t + v^ dt.
0
Положим П(х,а) = [x1 — a1,x1 + а1] х [x2 — a2,x2 + а2], П(х,а) — наименьший прямоугольник с вершинами Bk,m, в котором содержится П(х, а) : П(х, а) С П(х,а). Определим f : {Bkym}k,m&z ^ R следующим образом: _
f ( в ) ___ / 0, Bk,m € П(х, а),
f (Bkm) = \ f (Bkm), Bk,m € П(х, a).
Можно показать, что
Va,h(f, Ф1, Ф2, x) =
£ fk+1 ,m+1 f k+1,m f k,m+1 + f k,m^ X
(k,m):nfc,mnn(x,a)=A
kh1 — x1 mh2 — x2
(У.1 (12
где f ij = f (Bi,j). Далее, если это не искажает смысла, полагаем
V(f; Х1,Х2) = Va,h(f, Ф1, Ф2,x).
В формуле (2) для приближенного вычисления f (x) используется конечное число табличных значений f и их количество не зависит от x = (x1,x2), что важно для построения вычислительных алгоритмов. В этом заключается одно из преимуществ применения финитных ядер.
3. Алгоритм сглаживания векторнозначного отображения,
заданного таблично
Пусть A = {fk,m} — матрица известных значений отображения
f : R2 ^ Rp в узлах Bkm = («k = kh1,vm = mh2) прямоугольной сетки в R2. Ставится задача построить отображение g(u,v) требуемой гладкости, близкое к f. Для этого предлагается следующий алгоритм. Отображение g(u,v) вычисляется по формуле (2):
g(u, v) = V(f; u, v),
в которой полагаем = а2 = а и, не уменьшая общности, h1 = h2 = 1. В качестве ядер р1 и р2 принимаем ядро Стеклова второго порядка, которое равно
, ,,4 Г 0, если |t| > 1,
Ф2W = ( 1 — |(|, если |t| < 1.
По поводу ядер и функций Стеклова (см. [5, с.99-102]). Как ранее, положим
П(«, v; а) = [« — а, и + а] х [v — a,v + а],
n(u,v; а) — наименьший прямоугольник с вершинами Bk,m, для которого выполняется включение П(«, v; а) С П(«, x; а).
С точки зрения сглаживания отображений практически важным является случай, когда прямоугольник П(«, v; а) содержит хотя бы одну клетку соответствующей целочисленной прямоугольной сетки на
R2. Легко понять, что для реализации этого требования, необходимо и достаточно, чтобы параметр а был не меньше единицы. Поэтому далее а ^ 1. Отображение f : {Bk,m} ^ Rp определено формулой
f _____f ( B ) __ / 0, Bk,m € П(u, v; a),
f km = f ( k,m) = | f (Bk m), Bk,m € П(«, v; a).
Запишем оператор V в форме, удобной для вычислений. Из определения прямоугольника П легко понять, что при заданных « и v координаты ki и mj (i,j = 1, 2) его вершин Bkimj равны
k1 = max{k : k ^ u — a}, k2 = min{k : u + a ^ k},
ті = шах{т : т ^ V — а}, т2 = шіп{т : V + а ^ т}.
Так как индексы (к, т) в сумме для оператора V должны удовлетворять соотношению Щ,т П П(и, V; а) = 0, где Щ,т — прямоугольник с вершинами Вк,т, Вк+1,т, Бк>т+1, Бк+1>т+1, то возможны следующие случаи:
(1) Пк,т не налегает на П = П(и, V; а) и пересекается с ним ровно по одной из его вершин;
(2) Пк,т не налегает на П и пересекается с ним по одной из его сторон;
(3) Пк,т содержится в П.
В силу этого запишем оператор V в форме:
V (/; и^) = ^ + £з,
где суммы £!, ^2 и ^з соответствуют вышеперечисленным случаям. Так как вне прямоугольника П значения /кт = 0, то, очевидно, указанные суммы равны
У]1 = /(кі, ті)Ф(кі — 1, ті — 1) — /(кі, т2)Ф(кі — 1, т2) —
—/(к2, ті)Ф(к2, ті — 1) + /(к2, т2)Ф(к2, т2)],
т2 — і
532 = ІЗ /(кі,т + 1) — /(кі,т)Ф(кі — 1,т) +
т=ті т2 —і
+ 53 /(к2,т) — /(к2,т + 1)]Ф(к2,т) +
т=ті к2 —і
+ /(к + 1,ті) — /(к,ті)Ф(к,ті — 1) +
к=кі к2 —і
+ /(к, т2) — /(к + 1, т2) Ф(к, т2),
к=кі
533 = 53 и(к + 1,т + 1)—7(к,т + 1)—
к=кі,к2 — і,і т=ті,т2 —і,і
—/(к + 1, т) + /(к, т)] Ф(к, т),
где Ф(к,т) = Ф (]к—и, ■ Поэтому окончательная формула оператора V
имеет вид:
V(/; и, V) = [/(кі,ті)Ф(кі — 1,ті — 1) — /(кі,т2)Ф(кі — 1,т2) —
—/(к2, ті)Ф(к2, ті — 1) + /(к2, т2)Ф(к2, т2)] +
т2 —і
+ 53 /(кі,т + 1) — /(кі,т)]Ф(кі — 1,т) +
т=ті т2 —і
+ 53 /(к2,т) — /(к2,т + 1)]Ф(к2,т) +
т=ті к2 —і
+ /(к + 1,ті) — /(к,ті)Ф(к,ті — 1) +
к=кі к2 —і
+ /(к, т2) — /(к + 1, т2) Ф(к, т2) +
к=кі
^53 [/(к + 1,т + 1) — / (к,т + 1)-/(к + 1,т) + / (к,т)]Ф(к,т).
(3)
к=кі ,к2 — і, і т=ті,т2 —і,і
Запишем базисную функцию
1
Ф(и, у) = J Ф1 ^ Ф2 ^ М
0
через комбинацию первообразных ядра Стеклова второго порядка ф2. Полагаем Ф(0) = Ф, Ф(г+1) = (Ф(г))/, г € Z. Ясно, что
' 0, Ь< -1,
1 (Ь + 1)2, -1 < Ь < 0,
2(-ь2 + 2Ь + 1), 0 <ь< 1,
1, 1 < ь.
(4)
Интегрируя по частям, имеем
і
Ф(и, V) = а J Ф(0) ^ — + и^ ^Ф( і^ — + v^ =
°
і
= аФ(0) (- + и) Ф(—^ (- + V) — / Ф(—і} (- + V) Ф(і) (- + и) ЛЬ =
\а / \а / ° J \а / \а /
°
0
где
0(п, у) =
Ф( 1^у + 1) Ф(0) ^и + 1) - Ф( 1)(у)Ф(0)(п)
Ф(-2) ^у + Ф(1) ^и + -1^ - Ф(-2)(у)Ф(1)(и) .
Для вычисления последнего интеграла в (3) воспользуемся аналитическим выражением ядра Стеклова ф2(Ь) = Ф(1)(Ь). Имеем
1 и+1/а
У Ф(-2) ^ А + у^ ^Ф(1) ^— + и^ = J Ф(-2)(у + у - и)^Ф(1)(у). 0
Принимая во внимание, что а ^ 1, рассмотрим следующие взаимоисключающие случаи расположения промежутка интегрирования [и, и + 1/а] относительно носителя [-1,1] соответствующего ядра Стеклова:
(1) и ^ и + 1/а ^ -1 ^ 1 ^ и ^ -1 - 1/а,
(2) и ^ -1 ^ и + 1/а ^ 0 ^ -1 - 1/а ^ и ^ -1,
(3) -1 ^ и ^ и + 1/а ^ 0 ^ -1 ^ и ^ -1/а,
(4) -1 ^ и ^ 0 ^ и + 1/а ^ 1 ^ -1/а ^ и ^ 0,
(5) 0 ^ и ^ и + 1/а ^ 1 ^ 0 ^ и ^ 1 - 1/а,
(6) 0 ^ и ^ 1 ^ и + 1/а ^ 1 - 1/а ^ и ^ 1,
(7) -1 ^ 1 ^ и ^ и + 1/а ^ 1 ^ и.
Продолжим вычисление интересующего интеграла для каждого из них в отдельности.
Случай 1. Ясно, что
и+1/а
У Ф(-2)(у + у - и)^Ф(1)(у) = 0.
и
Случай 2. Имеем,
и+1/а
т (—2) /
у - и
! Ф( 2)(у + у - и)^Ф(1)(у) =
и
У Ф(-2) (у + у - и)Лу = Ф(-3) (у + у - и)
и
и+1/а
и+1/а
-1
Случай 3. Имеем
и+1/а
У Ф( 2) (у + у - иМФ(1)(у) =
и
У Ф(-2) (у + у - и)йу = Ф(-3) (у + у - и)
и
и+1/а
и+1/а
Случай 4. По аддитивности интеграла будет
и+1/а
(-2)
(-2) у - и
У Ф( 2) (у + у - и)^Ф(1)(у) = У Ф( 2)(у + у - и)йу-
ии
+ 1/а
/0
Ф(-2)(у + у - и)йу = Ф(-3)(у + у - и) - Ф(-3)(у + у - и)
и
и+1/а
0
Случай 5. Имеем
и+1/а
У Ф( 2) (у + у - и)^Ф(1)(у) =
и
и+1/а
У Ф(-2) (у + у - и)йу = - Ф(-3) (у + у - и)
и
Случай 6. По аддитивности интеграла будет
и+1/а
т_(—2) /
у - и
У Ф( 2) (у + у - иМФ(1)(у) =
и
1
- У Ф(-2) (у + у - и)йу = - Ф(-3) (у + у - и)
Случай 7. Ясно, что
и+1/а
У Ф( 2)(у + у - иМФ(1)(у) = 0
и
и
0
и
1
и
и
и
Полагаем
Л(и, у) = У Ф( 2) ^ — + у^ ^Ф(1) ^— + и^ .
Собирая все вычисления вместе, приходим к следующему окончательному выражению для базисной функции Ф(и, у):
Ф(и, у) = а(&(и, у) + Л(и, у)),
(6)
0(и, у) =
ф (_1)
—
Ф(“2) ( у + —Л ф(1) Ги + — ) — ф(-2)(у)Ф(1)(и)
Л(и, у) =
( 0, и ^ —1 — 1,
ф(-3) (у + 1) — ф (-3)(у — и — 1), —1 — 1 < и ^ —1,
ф(-3) (у + 1) — ф (-3)(у), —1 <и ^ 1,
2ф(-3) (у — и) — ф(-3) (у + 1) — ф(-3) (у), — 1 < и ^ 0,
ф(-3) (у) — ф(-3) (у + 1), 0 <и ^ 1 — 1,
ф(-3) (у) — ф(-3) (у — и + 1), 1 — 1 <и ^ 1,
0, 1 < и.
Мы рассматривали случай, когда восстанавливаемое векторнозначное отображение f задано на всей плоскости М2. Вместе с тем, довольно часто встречается случай ограниченной области определения f. Тогда необходимо модифицировать построение, поскольку для точки (и, у), близкой к границе соответствующей области, не хватает точек таблицы, составляющих ее окружение.
Одной из возможных модификаций может быть продолжение известной конечной таблицы значений f на всю целочисленную прямоугольную сетку плоскости М2. С нашей точки зрения практическими значимыми являются два способа такого продолжения. Пусть соответствующая таблица записана в форме матрицы {f (к, т) : к = —к1,... ,к1,ш = —т1,..., т1}.
1. Полагаем
f (—к1 — з,т) = f (—kl,m),f (к1 + 3,т) = f (кьт), т = —т1, ...,т1,] = 1,2,... f (к, —т1 — з) = f (к, —т1), f (к, т1 + j) = f (к, т^), к = —к1,.. .,к1з = 1,2,... f (±(к1 + з), ±(т1 + з)) = f (±кь ±т1), з = 1,2,...
1
0
Таким образом, таблица продолжается на всю сетку плоскости своими граничными значениями.
2. Пусть f (к, —т1) = f (к, т1), f (—к, т) = f (к1, т), где к = —к1,... ,к1, т = —т1,..., т1. Полагаем для таких (к, т) и гз = ±1, ±2,...
f (к + 23к1, т + 2гт1) = f (к, т).
Таким образом, таблица продолжается на прямоугольную сетку с периодом 2к1,2т1. После соответствующего продолжения заданной конечной таблицы значений f отображение восстанавливается посредством оператора V.
Отметим важные с практической точки зрения свойства построенного алгоритма сглаживания отображений.
(1) Базисные функции Ф за счет выбора сглаживающего ядра можно записать в замкнутой форме, имеющей простой аналитический вид.
(2) Требуемой гладкости можно добиться с помощью выбора ядра просто аналитической формы (например, ядра Стеклова).
(3) Формула сглаживания имеет локальный характер, то есть для вычисления значения приближения отображения f в точке (и, у) учитывается конечное число табличных значений и их число не зависит от (и, у).
(4) Все вычисления сводятся к арифметическим действиям.
4. Реконструкция параметрических поверхностей
Пусть Е С М2, поверхность Б задана параметрическим уравнением (х,у,х) = f (и,у), (и,у) € Е. Известно некоторое конечное множество точек Р^ € Б. Требуется по этим точкам построить поверхность Б, близкую в некотором смысле к Б. Для этого будем применять алгоритм, построенный в предыдущем параграфе.
Пусть Р^ являются пересечениями координатных линий Ьи и Ьу поверхности Б. При этом множество точек упорядочено таким образом, что в плоскости параметров (и, у) им отвечает некоторая прямоугольная сетка. Так как построению подлежит собственно сама поверхность Б, то есть нас не интересует ее конкретная параметризация, то можно считать, что прямоугольная сетка является целочисленной. Для того чтобы применить оператор V, заданную матрицу точек {Р.^} надо продолжить на всю прямоугольную сетку. Способ продолжения определяется геометрическими свойствами восстанавливаемой поверхности Б.
В качестве модельного случая рассмотрим тор с расстоянием от центра образующей окружности до оси вращения равным 4 и радиусом образующей окружности, равным 1 в М3, т.е. Б : (х2 + у2 + х2 + 15)2 — 64(х2 + у2) = 0. Пусть множество известных точек {Р^} получено в результате дискретного сканирования послойных сечений исходного тора Б. Продолжим матрицу
{Рі,і} на всю прямоугольную сетку первым способом (см. §3). Результаты реконструкции тора оператором V представлены на рис. 1.
Рис. 1. Визуализация исходной таблицы, соответствующей тору (слева). Визуализация восстановленного тора с меньшим шагом и использованием экстраполяции таблицы константами (справа)
Дефект реконструкции, имеющийся на данном рисунке, объясняется тем, что при продолжении матрицы {Р^} не учитывалось то геометрическое свойство тора, что он является замкнутой поверхностью.
Теперь продолжим матрицу {Р^} вторым способом (см. §3). Результаты приведены на рис. 2.
Рис. 2. Визуализация исходной таблицы, соответствующей тору (слева). Визуализация восстановленного тора с меньшим шагом и использованием периодической экстраполяции таблицы (справа)
Отсутствие дефекта на этом рисунке объясняется тем, что периодическое продолжение непосредственно учитывает замкнутость тора.
Изложенный подход применим для решения задачи о сглаживании карты высот, представимой в виде Б : х = f (х, у). На рис. 3 представлены результаты сглаживания сгенерированной случайным образом карты высот.
Рис. 3. Визуализация восстановления случайно сгенерированной карты высот (слева). Визуализация триангулированной исходной таблицы (случайной сгенерированной карты высот) (посередине). Визуализация триангулированной восстановленной таблицы с меньшим шагом (справа). Визуализация восстановленной поверхности, наложенной на исходную
Задача восстановления непрерывных векторнозначых отображений по дискретной информации актуальна в различных областях компьютерных вычислений. Акцентируем внимание на применении рассматриваемого алгоритма к задачам компьютерной графики. Формулировка общей задачи построения отображения д(и, у) требуемой гладкости, близкого к /, где / : К2 ^ по матрице известных значений А = {/к,т} в узлах координатной сетки в К2, позволяет применять алгоритм для различных целей, выбирая нужное р.
Как было показано в предыдущем параграфе, случаю р = 1 соответствует задача восстановления гладкой карты высот. Аналогичная задача часто возникает при цифровой обработке изображений, когда необходимо восстанавливать поверхность интенсивности (подробнее об алгоритмах восстановления карты высот в задачах обработки цифровых изображений
известных алгоритмов восстановления параметрических поверхностей приводится в [4]). Этому же случаю будет соответствовать применение алгоритма для сглаживания И,ОБ текстур, заданных на ИУ развертке
5. Программная реализация
и для размытия или передискретизации цифровых изображений с трехкомпонентной цветностью. Увеличивая значение р можно обрабатывать цветность с большим количеством компонентов, учитывать канал прозрачности и любые другие необходимые параметры.
Остановимся подробнее на особенностях программной реализации и свойствах алгоритма.
(1) Расчетная формула. Вычисления по формулам (3) и (6) сводятся к выполнению простых арифметических операций и условных ветвлений. Обратим внимание, что формула (3) не требует предварительных вычислений, таких как вычисление матриц коэффициентов и т.д. Отметим, что отдельным пунктом стоит задача продолжения исходной матрицы значений для вычислений. Возможные подходы были предложены ранее и выбираются исходя из конкретной задачи.
(2) Формат входных данных. Как и описано в постановке задачи, входными данными для алгоритма является двумерная прямоугольная матрица известных значений, каждый из элементов которой представляет собой р-мерный вектор или скалярное значение в случае р = 1. Координаты вектора принимаются действительными числами. Вариант с целочисленными координатами не требует пересмотра алгоритма, но необходимо учитывать потери точности. Алгоритм не накладывает ограничений на размеры матрицы и значение р. В качестве параметров передаются также значения Н и —.В практическом плане параметр шага Н не представляет интереса для рассматриваемых случаев и может быть принят равным 1. Параметр — регулирует локальность алгоритма, то есть чем больше
—, тем больше область, из которой будут учитываться известные значения отображения. Как говорилось ранее, в прикладном плане интересны значения — больше единицы. Отметим, что чем больше больше параметр —, тем медленнее оператор будет реагировать на резкие изменения значений в исходных данных, что создает эффект фильтрации высокочастотной составляющей. Алгоритм позволяет покоординатно рассчитывать значение р-мерного вектора в произвольной точке (и, у) плоскости параметров, таким образом на вход последовательно подаются координаты, в которых требуется произвести восстановление.
(3) Формат выходных данных. Результатом вычисления могут являться как один р-мерный вектор, так и новая матрица р-мерных векторов необходимого размера и с заданным входными данными шагом расчета.
(4) Требования к вычислительной памяти. Алгоритм обладает свойством локальности, поэтому для расчета значения результирующего р-мерного вектора в точке (и, у) пространства параметров, требуется
только небольшое число известных значений из входящей матрицы исходных значений. Поэтому, зная выбранный параметр а и руководствуясь определением прямоугольника n(u,v; а), который определяет область, из которой берутся исходные значения, можно заранее определить требуемый для загрузки объем исходной матрицы.
(5) Трудоемкость алгоритма. Алгоритм расчета в одной точке пространства параметров работает за константное время, зависящее от количества учитываемых исходных точек (т.е. от параметра а) и от размерности p. Восстановление значений в N точках растет линейно вместе с N. Константность времени работы алгоритма позволяет эффективно оценивать время работы на известных входных параметрах и успешно распараллеливать алгоритм.
(6) Свойство локальности вычислений. Как было сказано ранее, использование финитного ядра определяет локальность вычислений. Это влечет за собой ряд прикладных особенностей. Так, в случае необходимости обработки входящих данных в реальном времени, для локальных изменений входных данных, достаточно пересчитать новые значения лишь в ограниченной, легко определяемой из входных параметров, области. Локальность также является важным свойством для распараллеливания алгоритма. Так, для обработки массива данных на многих вычислителях, достаточно разбить матрицу исходных данных на частично налегающие друг на друга участки в соответствии с параметрами, определяющими локальность.
Отметим, что свойства построенного алгоритма легко позволяют достичь высокой эффективности его применения при использовании в качестве платформы для вычислений современные GPU с поддержкой шейдеров. Архитектура современных GPU с большим количеством вычислителей, позволяет эффективно распараллеливать задачу. Численные эксперименты, представленные на рисунках в предыдущем параграфе были поставлены на программной реализации под GPU с использованием геометрических шейдеров.
Выражаем благодарность профессору Санкт-Петербургского государственного университета В.В. Жуку за конструктивные советы и обсуждение результатов работы.
Список литературы
1. De Boor C. A practical guide to splines. New York: Springer, 1978. 392 p.
2. Velho L., Frery A., Gomes J. Image Processing for Computer Graphics and Vision.
Texts in Computer Science (V. 3191). London: Springer, 2009. 478 p.
3. Hardy G. Collected papers. V. 4. Oxford: Oxford at the Clarendon press, 1969. 722 p.
4. Implicit Curves and Surfaces: Mathematics, Data Structures and Algorithms: Mathematics, Data Structures and Algorithms / A. Gomes [et. al] London: Springer, 2009.
366 p.
5. Жук В.В., Кузютин В.Ф. Аппроксимация функций и численное интегрирование. СПб.: Изд-во СПбГУ, 1995. 352 с.
6. Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. М.: Наука, 1980. 352 c.
7. Dodonov N.Yu., Zhuk V.V. On uniform approximation in R2 of continuous functions of two variables with bounded variation in the sense of Hardy // J. of Mathematical Sciences. 2004. V. 123. № 3. P. 3184-3211.
8. Додонов Н.Ю. О равномерном приближении на R2 непрерывных банаховозначных функций // Вестник СПбГУ. Сер. 1. 2005. Вып. 2. С. 11-24.
9. Dodonov N.Yu. On analogs of Steklov averages for functions defined on convex compact sets in Rm // J. of Mathematical Sciences. 2006. V. 132. № 4. P. 379-399.
10. Dodonov N.Yu. On uniform approximation of abstract functions by aggregates of summatory type on a rectangle // J. of Mathematical Sciences. 2007. V. 142. № 1. P. 1788-1805.
11. Dodonov N.Yu. On uniform approximation of abstract functions on convex polygons // J. of Mathematical Sciences. 2007. V. 144. № 6. P. 4592-4611.
Додонов Николай Юрьевич ([email protected]), к.ф.-м.н., доцент, кафедра математического анализа, математико-механический факультет, Санкт-Петербургский государственный университет.
Масальских Александр Владимирович ([email protected]), аспирант, тьютор, кафедра компьютерных технологий, факультет информационных технологий и программирования, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики.
Reconstruction of parametric surfaces specified with tabular data by means of shifts and dilations of one function
N.Yu. Dodonov, A.V. Masalskikh
Abstract. In this paper we propose to use the approximation aggregates of summatory type for parametric surfaces reconstruction. Proposed aggregates have the following form:
v = Y1a(f,i,j )Fi,j(x,y)>
where E C R2, X is real Banach space, f : E ^ X, i,j € Z. The functions Fij : R2 ^ R are independent from f. These functions are obtained by means of shifts and dilations of one function which produced by using some positive kernel. Calculation of coefficients a(f,i,j) reduced to direct arithmetics operations with
tabulated values of f and do not require the boundary conditions. Surface reconstruction algorithm is built by using second order Steklov’s kernels.
Keywords: parametric surfaces reconstruction, integral operator, finite kernel, modulus of continuity, parallel reconstruction algorithm.
Dodonov Nikolay ([email protected]), candidate of physical and mathematical sciences, associate professor, department of mathematical analysis, mathematics and mechanics faculty, St. Petersburg State University.
Masalskikh Alexander ([email protected]), postgraduate student, tutor, department of computer technologies, faculty of information technologies and software engineering, National Research University of Information Technologies, Mechanics and Optics, St. Petersburg.
Поступила 12.01.2014