ОБРАБОТКА ИЗОБРАЖЕНИЙ, РАСПОЗНАВАНИЕ ОБРАЗОВ
МОДЕЛИРОВАНИЕ ИНФОРМАЦИОННОЙ СТРУКТУРЫ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
Попов С. Б.
Учреждение Российской академии наук Институт систем обработки изображений РАН
Аннотация
Предложен подход к формированию моделей, описывающих информационную структуру параллельных программ обработки изображений. В качестве основы формальной модели параллельной обработки изображений выбрана теория взаимодействующих последовательных процессов, которая позволяет формировать иерархическое описание информационной структуры алгоритма, необходимое при построении эффективного отображения технологий обработки изображений на архитектуру распределенных систем.
Ключевые слова: информационная структура алгоритма, алгебра С8Р, параллельная обработка изображений, модель изображения, декомпозиция изображений.
Введение
Одной из важнейших проблем использования вычислительной техники является «отображение задач вычислительной математики на архитектуру вычислительных систем». Эта проблема была обозначена академиком Г.И. Марчуком как фундаментальное научное направление, кратко называемое «проблемой отображения» [1].
В настоящее время наиболее актуальным представляется решение проблемы отображения вычислительных задач на параллельную архитектуру вычислительных систем, поскольку основным направлением повышения эффективности использования вычислительных средств является использование параллельных методов организации вычислений.
Ключевым моментом в решении проблемы отображения является анализ информационной структуры алгоритмов. Причем в работах В.В. Воеводина [2] была выдвинута гипотеза о том, что в конкретных вычислительных областях типовых информационных структур немного. Разработка таких информационных моделей алгоритмов в конкретных прикладных областях является актуальной задачей, поскольку открывает новые подходы к разработке специализированных программных средств, эффективно решающих задачи определенного класса на распределенных вычислительных системах, и спецпроцессоров, реализующих быстрое выполнение целевых алгоритмов.
Основной способ решения задачи отображения - математически эквивалентные преобразования модели (описания) информационной структуры алгоритма, в процессе которых формируются возможные варианты параллельной организации вычислений [2]. В процессе преобразования информационной модели алгоритма изменяется не только порядок вычислений, преобразованию подвергаются и структуры данных: выполняется декомпозиция данных на распределяемые, дублируемые и локальные, выявляются способы распределения, которые минимизируют коммуникационные издержки в про-
цессе вычислений. Сформированные таким образом варианты параллельного решения задачи анализируются с точки зрения эффективности их реализации на некотором множестве возможных архитектур вычислительных систем.
Указанный подход к решению проблемы отображения предъявляет следующие основные требования к моделям, описывающим информационную структуру алгоритма.
Модель должна отражать все аспекты параллелизма, которые могут использоваться при отображении алгоритма на параллельную архитектуру вычислительной системы - параллелизм по данным и параллелизм по вычислениям. Параллелизм по вычислениям чаще всего описывает возможности одновременного выполнения основных внутренних операций, составляющих макроструктуру алгоритма. Параллелизм по данным формирует, как правило, наборы более низкоуровневых операций над элементами данных, которые могут выполняться независимо. Данные аспекты параллелизма достаточно тесно связаны и образуют своего рода иерархию: на верхнем уровне - независимые макрооперации (параллелизм по вычислениям), часть из которых состоит из параллельно выполняемых преобразований данных (параллелизм по данным).
Модель должна описывать распределение и перемещение данных, формируемое при параллельной организации вычислений.
Модель должна иметь средства оценки времени и других характеристик эффективности реализации каждого из вариантов размещения данных и организации вычислений, что влечет за собой необходимость адекватного и конструктивного расширения моделей информационной структуры алгоритма в направлении учета времени решения описываемой ими задачи на некотором множестве программно-аппаратных средств с параллельной архитектурой. Данное расширение информационной модели, как правило, связано с разработкой или выбором аналитической предиктивной модели, описывающей ха-
рактеристики производительности используемых программно-аппаратных средств целевой вычислительной системы, и методами достоверного оценивания параметров этой модели в различных режимах функционирования.
Основные подходы к построению моделей обработки изображений
Рассмотрим проблему отображения задач в области обработки изображений на архитектуру вычислительных систем, использующих различные типы параллелизма.
Рассмотрение объекта исследования - вычислительных задач обработки изображений, показало, что эти задачи имеют следующую присущую им особенность - большинство задач может быть решено путем последовательного применения к обрабатываемым изображениям некоторого набора типовых операций обработки [3]. Именно эту особенность эксплуатирует большинство систем обработки изображений (СОИз) общего назначения, т.е. подобные системы создаются не под конкретную технологию обработки, а для решения широкого спектра задач обработки изображений. В процессе формирования некоторой технологии обработки изображений пользователь оперирует вполне определенным набором реализованных в системе типовых операций обработки. Анализ задач обработки изображений показывет, что основных информационных структур, используемых при реализации этих операций, немного. Пример типологии операций низкоуровневой обработки изображений, которая совпадает с укрупненным разделением по способу организации информационной структуры, приведен, например, в [4] и включает в себя:
• поэлементную обработку (PO - point operators),
• обработку в локальной окрестности (LNO -local neighborhood operators) или локальную обработку скользящим окном,
• глобальные операции обработки (GO - global operators), как правило, основанные на двумерном преобразовании Фурье или другом подобном преобразовании,
• глобальные операции редукции (RO) или операции вычисления параметров изображения, в т. ч. статистических,
• геометрические преобразования.
Выбор методологии формального описания информационной структуры алгоритмов и программ при разработке информационных моделей технологий обработки изображений и решения с их помощью проблемы отображения должен учитывать иерархичность представления элементов модели. На различных уровнях абстракции модель должна отображать только те характеристики, которые являются существенными, характерными для данного уровня. Должны существовать различные уровни детальности описания модели для каждого уровня абстракции.
Для обработки изображений таковыми могут являться уровень описания технологии в целом; уровень модулей (блоков) в программе, реализующих отдельные алгоритмы или этапы технологии; информационная структура алгоритма, реализованная в отдельном модуле. На каждом уровне необходим свой алфавит модели информационной структуры системы на данном конкретном уровне абстракции.
Процесс формирования информационной модели задачи обработки изображений начнем с описания верхнего уровня представления решаемой пользователем задачи.
В общем виде процесс решения задачи обработки изображений предполагает либо изначальное указание последовательности некоторого числа шагов решения, либо возможность декомпозиции метода решения на составляющие части, реализуемые в виде низкоуровневых операций. На каждом шаге решения обрабатываются и/или вырабатываются элементы решения.
Формально этот процесс можно представить следующим образом.
На I-ом шаге формируются с помощью преобразования Ф' необходимые элементы решения, представляемые, в общем случае, некоторым множеством
параметров {r}' и множеством изображений {a}'
{{a}' ,{r}'} = Ф ({a}, {r}, q),
{a}e (J {a}', {r} e (J {r}'
i=0 i=0
где {a}, {r}, q - множества входных изображений, входных параметров и вектор собственных параметров преобразования Ф ' соответственно. Любое из этих множеств на некотором конкретном
шаге может быть пустым. {a}0, {r}° - исходные
множества изображений и параметров для рассматриваемой задачи.
Как правило, преобразование формирует только одно изображение или только один вектор параметров (или даже скаляр). В качестве входных параметров так же используются одно (реже два) изображение и некоторый набор параметров операции, часть из которых может формироваться на одном из предыдущих шагов решения.
Простейший язык описания задачи обработки изображений может просто использовать имена операций, реализующих соответствующий шаг решения, и идентификаторы элементов решения.
Например, задача выделения контуров на изображении может быть записана следующим образом
b = Op _ Sobel(a), g = Op _ Thresholding(b, 128),
где a -исходное изображение, b - промежуточное изображение, являющееся результатом применения фильтра Собела (операции Op _ Sobel) к исходному изображению, g - результирующее изображение, ре-
зультат применения пороговой обработки (операции Op _ Thresholding) к промежуточному изображению.
При переходе к формальному описанию данной задачи нет необходимости в детальной конкретизации отдельных шагов технологии обработки, это задача разработчика прикладной программы, реализующей определенный шаг решения. В данном случае существенен только информационный тип программы обработки изображения.
Формальная запись алгоритма задачи выделения контуров на изображении может иметь следующий вид
b = LNO(a), g = PO(b),
откуда можно видеть, что исходное изображение a подвергается преобразованию с помощью операции локальной обработки скользящим окном, а затем полученное изображение b обрабатывается с применением операции поэлементного преобразования. Тот факт, что при пороговой обработке использовался порог со значением 128, совершенно несущественен при формальном описании данной задачи.
При формальном описании алгоритмов обработки изображений в терминах типовых операций обработки широко используют различные варианты графовых моделей [5], например Image Application Task Graph (IATG) [6].
Шаги решения с соответствующими элементами решения представляются в виде графа решения данной задачи. Множеству шагов решения (операциям Ф7 алгоритма) ставится во взаимно-однозначное соответствие некоторое множество точек - вершин. Если элемент решения одной операции используется при выполнении другой операции, то соответствующие вершины соединяются дугой, направленной из той точки, где формируется данный элемент решения. Из каждой вершины выходит столько дуг, сколько формируется на данном шаге изображений и параметров. В случае, когда элемент решения является аргументом для нескольких операций, выходящих дуг может быть больше.
Расширения графовых моделей, связанные с учетом временных характеристик, формируются путем придания некоторых весовых функций как вершинам, так и дугам графа решения.
Примером графовой модели описания информационной структуры задачи обработки изображений является IATG-модель [6], которая представляет собой взвешенный направленный ациклический граф G (V, E, w, c), где:
• V - конечное множество вершин, представляющих шаги решения (типовые операции обработки изображений или реализованные пользователем алгоритмы);
• E - множество дуг (направленных ребер) графа, которые соответствуют условиям предшествования между операциями: e = (u, v) е E, если u < v;
• w - весовая функция w : V ® N *, которая задает вес (время обработки) каждой вершины (операции обработки), веса операций - целые положительные числа;
• с - функция коммуникационных затрат с : V ® N *, которая задает вес (коммуникационные затраты по времени) каждой дуги, коммуникационные веса -целые положительные числа.
Вычислительные затраты операции обработки, выполняемой на одном процессоре, оцениваются по результатам тестовых экспериментов с использованием специальных средств профильного анализа. Вычислительные затраты при параллельной организации вычислений внутри некоторой операции обработки оцениваются с помощью закона Амдала
Тхес (^Р(г )) = [а(г) + 1 т(/) ,
V р\Ч У
где г - номер операции (шага решения), р (г) - число процессоров, на которых операция г выполняется, т(/) - время выполнения операции на одном
процессоре, а (г) - доля операций данного шага
решения, которые не могут быть распараллелены.
Коммуникационные затраты появляются в том случае, когда задачи, реализующие отдельные шаги решения, размещаются на разных компьютерах. Для оценки коммуникационных затрат используют модель Хокни [7], в соответствии с которой
Т (г, /) = /+ П.,
сош^^ ^ } я Ь >
где ^, 1Ь - затраты на подготовку сообщения к передаче (латентность) и передачу от вершины г к вершине ] одного байта сообщения соответственно, Ь - размер передаваемого сообщения.
Графовые модели хорошо отражают макроструктуру алгоритма и, соответственно, используются для выявления возможного параллелизма по вычислениям. Для анализа параллелизма по данным необходимо перейти на более детальный уровень абстракции модели и описать информационную структуру операций, реализующих соответствующие шаги решения. Выразительные возможности для выполнения преобразований моделей на этом уровне существенно менее наглядны.
Более адекватными с точки зрения иерархичности информационной модели представляются модели, основанные на методологии теории алгебры процессов, которые, с одной стороны, более точно отражают последовательный характер организации вычислений в программе, а с другой стороны, позволяют задать способ организации параллелизма путем явного описания взаимодействия процессов при параллельной обработке через механизмы, которые хорошо соответствуют реальным реализациям в программных системах.
Основные понятия теории взаимодействующих последовательных процессов
За основу формальной модели процессов параллельной обработки изображений возьмем математическую теорию взаимодействующих последовательных процессов Ч. Хоара - алгебру CSP [8]. Основными позитивными чертами этой теории являются:
• развитое понятие процесса, учитывающее особенности синхронизации и параллельного выполнения процессов, включая модель обмена данными между различными процессами;
• удобная техника работы с протоколами (последовательностью событий) процессов, позволяющая легко выделять и анализировать результаты работы модели;
• возможность эквивалентного отображения теории на языки высокого уровня.
В основе метода формального описания взаимодействующих последовательных процессов лежит математическая теория, описанная в виде систематического набора алгебраических законов.
Область применения теории CSP - спецификация, разработка и реализация вычислительных систем, которые непрерывно действуют и взаимодействуют со своим окружением. Основная идея заключается в том, что эти системы можно разложить на параллельно работающие подсистемы, взаимодействующие как друг с другом, так и со своим системным окружением. Основным объектом рассмотрения является процесс, описываемый как последовательность ограниченного набора событий, выбранных для его описания. Данное множество событий называется алфавитом процесса. Алфавит считается постоянным, заранее определенным свойством объекта. При выборе алфавита проводят некоторое упрощение: не рассматриваются многие действия и свойства, которые не влияют на исследуемые моделью характеристики.
На уровне макроопераций описание задачи обработки изображений может строиться как композиция процессов, реализующих шаги решения данной задачи. Например, описание задачи выделения контуров на изображении может быть задано в виде последовательной композиции двух процессов CONTOUR(a, g) = LNO(a,b);PO (b, g),
где LNO (a, b) - процесс, выполняющий преобразование исходного изображения a в изображение b с использованием операции локальной обработки скользящим окном, PO (b, g) - процесс, выполняющий поэлементное преобразование изображения b и формирующий при этом изображение g , операция « ; » обозначает последовательную композицию этих процессов. Данная модель соответствует обычной последовательной программе, выполняющейся на одном процессоре. Для описания систем с параллельным выполнением процессов используется операция параллельной композиции. Например,
модель параллельной программы, реализующей задачу выделения контуров на изображении, на уровне макроопераций записывается в следующем виде
CONTOUR (a, g) = LNO (a,b) || PO (b, g).
Как именно осуществляется распараллеливание вычислений в такой параллельной программе определяется при описании процессов, из которых составлена данная модель.
Для описания поведения объектов (процессов) в [8] определяется следующая система обозначений. Пусть x - событие, а P - процесс. Тогда
(x ® P)
описывает процесс, который вначале участвует в событии x, а затем ведет себя в точности как P . Алфавит процесса P обозначается aP. Процесс (x ® P) имеет по определению тот же алфавит, что
и P , поэтому это обозначение можно использовать только при условии, что x принадлежит тому же алфавиту. Более формально:
a(x ® P) = aP, if xe aP.
Процесс с алфавитом A , в котором не происходит ни одно событие из A , называется STOPA. Этот процесс чаще всего возникает в результате ошибок проектирования или использования (дедлок). Однако процесс может прекратить работу, если он выполнил все, что ему полагалось. О таком процессе говорят, что он успешно завершился. Завершение рассматривают как специальное событие, обозначаемое символом V («успех»), чтобы отличать его от процесса
STOP. Процесс, имеющий в алфавите символ V , называется последовательным. Определяют специальный процесс SKIPA , который ничего не делает,
но благополучно завершается: aSKIPA = A U {V}.
Используемую выше префиксную запись можно использовать для полного описания поведения последовательного процесса, который получает два операнда, выполняет операцию сложения, выводит результат и останавливается. Например:
SUM = (opi ® (op2 ® (add ® (out ® SKIP)))) .
Скобки в записи можно отбросить, считая операцию ® ассоциативной справа. В записи с операцией ® справа всегда стоит процесс, а слева - отдельное событие. Описание процесса, начинающееся с префикса, называется предваренным. Если F (X) - предваренное выражение, содержащее имя процесса X, а множество событий A - алфавит X, то утверждается, что уравнение X = F (X) имеет единственное решение в алфавите A , которое обозначается выражением ||X : A.F (X). Здесь X является локальным именем (связанной переменной) и может произвольно изме-
няться, поскольку ||X : A.F(X) = ||Y : A.F(Y). В записи с помощью | -оператора обычно опускается явное упоминание алфавита A , если это понятно из контекста или содержания процесса.
Такое рекурсивное задание процесса легко обобщается на случай решения систем уравнений более чем с одним неизвестным. Для достижения результата необходимо, чтобы правые части всех уравнений были предваренными, а каждый неизвестный процесс входил ровно один раз в правую часть одного из уравнений. Использование переменных с индексами позволяет описывать бесконечные системные уравнения.
Определим более формально упоминаемое ранее понятие последовательной композиции: если P и Q
- последовательные процессы с одним и тем же алфавитом, то их последовательная композиция (P; Q) представляет собой процесс, ведущий себя сначала как P, а после успешного завершения P продолжающий вести себя как Q. Если успешного завершения P не происходит, то не завершается и (P; Q). Используя последовательную композицию, можно определить бесконечный цикл как особый случай рекурсии:
*P = |X.(P; X) = P; P; P;....
Операция параллельной композиции: если P и Q
- процессы, для которых, вообще говоря, aP Ф aQ , то их параллельная композиция обозначается через ( P | Q ) и является процессом, алфавит которого
a( P || Q) = aP U aQ , который ведет себя как система, составленная из процессов P и Q, причем события из алфавита aP П aQ пошагово синхронизированы и требуют одновременного участия P и Q, события из алфавита aP \ aQ не имеют никакого отношения к Q, который не способен ни контролировать, ни даже замечать их, аналогично Q самостоятельно участвует в событиях из алфавита aQ \ aP .
Определим также важные аспекты последовательного программирования: присваивания, условные операторы и циклы.
Если x - программная переменная, e - выражение, а P - процесс, то (x := e; P) - это процесс, ведущий
себя как P, но только начальное значение x задается равным значению выражения e. Более формально:
(x := e) = (x := e;SKIP).
Далее приведем некоторые законы присваивания необходимые в дальнейшем.
В законах для присваивания x и y обозначают списки различных переменных; e, f ( x ), f( e ) обозначают списки выражений, возможно, содержащих вхождения переменных из x или y; и если f ( x ) содержит xi , то f ( e ) содержит ei для всех индексов i. Для простоты считается, что все выражения в зако-
нах имеют результат для любых значений содержащихся в них переменных.
(x := x ) = SKIP,
(x := e; x: = f (x)) = (x := f (e)).
Для эффективного использования присваивания в параллельных процессах необходимо наложить ограничение: ни одна переменная из тех, которым было присвоено значение внутри одного процесса, не может использоваться в другом. Чтобы соблюсти это ограничение, в алфавит последовательного процесса вводятся две категории символов: var (P) -множество переменных, которым можно присваивать значения внутри P, acc (P) - множество переменных, доступных в выражениях внутри P.
Все переменные, которые можно изменять, являются также и доступными:
var (P) с acc (P) с aP.
Определим по аналогии acc(e) как множество
переменных, встечающихся в e. Если P и Q объединяются оператором параллельной композиции, то
var (P) П acc(Q) = var (Q) П acc(P) = { } .
Пусть выражение b вычисляет истинность логической функции (значение его либо истина, либо ложь). Если P и Q - процессы, то
P < b > Q (P if b else Q) -
это процесс, ведущий себя как P, если начальное значение b истинно, или как Q, если начальное значение b ложно.
Традиционный цикл
while b do Q записывается как
b * Q.
Рекурсивно его можно определить как
b *Q = |X.((Q;X) < b > SKIP).
Для упрощения формирования моделей технологий обработки изображений путем композиции типовых операций обработки введем следующее соглашение. Так как один и тот же процесс может встречаться в сети, описывающей методику обработки, многократно, но при этом работать с различными изображениями, то, чтобы не переопределять процесс, меняя обозначения событий, введем возможность переименования событий, т. е. своего рода формальные параметры в описании процесса. Если процесс определен следующим образом:
P (x, y ) = a ® x ® y ® SKIP,
то параллельная композиция P2 = P (b, c)|| P (c, d) фактически означает, что
P2 = ( a ® b ® С ® SKIP) || (a ® c ® d ® SKIP).
В перечень формальных параметров целесообразно вносить имена каналов, по которым процесс осуществляет взаимодействие, чтобы определять связи процессов не при их описании, а при записи их композиции. В формальные параметры можно вынести и событие (или функцию), определяющее собственно обработку, производимую процессом, тем самым мы получаем описание некоторого класса процессов, выполняющих различную обработку сходным образом.
Модель представления цифровых изображений
Перед тем как перейти к описанию моделей основных типовых операций обработки изображений, которые будут выступать как алфавит на уровне ме-таописания задачи, определим основные понятия, связанные с моделью объекта обработки - изображения.
Хорошей основой для описания изображений как структур данных служит алгебра изображений Риттера [9]. Достоинством данной модели описания изображений является явное разделение структур данных на структуру пространственной организации (взаимозависимости) пикселов изображения - области определения и структуру области значений изображения, т. е. структуру, определяющую типологию изображения, начиная от бинарного и кончая многоканальными, с использованием различных цветовых моделей. Таким образом, можно выделить аспекты реализации операций обработки изображений, связанные с пространственной организацией данных изображений.
Цифровое изображение представляется в вычислительных системах в виде множества пикселов. С каждым пикселом сопоставляются его координаты (точка с координатами) и значение. Значение пиксела изображения a с координатами x обозначается через a(x) .
Множество всех координат изображения является его областью определения и обозначается прописными буквами жирного написания, например, X, Y или Z . В общем случае область определения изображения является топологией точечного множества из дискретного n-мерного пространства Zn. Но, как правило, и в данной работе, в частности, рассматриваются двумерные изображения, т. е. X с Z2. Множество точек ограничено по каждой координате, образуя прямоугольник.
Таким образом, для двумерного изображения
X = {(x1, x2) е Z2 : o1 < x1 < o1 + n1 -1, o2 < x2 < o2 + n2 -1},
где o = (o1, o2) - начало координат изображения, n. - размер области определения по i-ой координате.
Фиксируя начало координат в нуле и учитывая обозначения Zn = {0,1,...,п -1} или Z+ = {1,2,...,п}, получаем
X =
{(X!,Х2)е Z2 :X! е Х2 е Zn2} .
Множество всех значений пикселов изображения а(х) является областью значений изображения и обозначается как ¥. В качестве значения пиксела может выступать вектор скалярных значений. Скалярное значение может иметь любой из типов данных начиная с бинарного и кончая действительным. Множество всех изображений, имеющих область значений ¥ и область определения X, обозначается как Iх .
Суммируя введенные обозначения, изображение а е Iх (т.е. а: X ® I) является сокращенной записью следующей нотации
{(х,а(х)): хе X с Z2,а(х)е Е c{Zш,Мт,С}}.
Множество I определяет тип изображения, например, при I е {0,1} изображение является бинарным, черно-белое полутоновое изображение имеет область значений в виде множества рациональных чисел I е М , у цветного полутонового изображения значения яркости представляются вектором в пространстве рациональных чисел I е М3.
Полезно выделить следующие элементы пространственного описания изображений:
• множество точек, принадлежащих одной строке,
• множество точек, принадлежащих одному столбцу,
• множество точек, принадлежащих локальной окрестности некоторой точки.
Множество точек, принадлежащих одной строке, формируется путем фиксации значения координаты х1 точек х е X и обозначается
Xr.= X X =i ={( X'
Z } .
n2 J
(1)
Аналогично множество точек, принадлежащих одному столбцу, формируется путем фиксации значения координаты х2 точек х е X и обозначается
Xc= X
= {( X1, X2 ) : X1 е ^ X2 = j} .
Произвольная прямоугольная окрестность вокруг точки х , симметрично расположенная относительно её, используется при локальной обработке изображений.
&, (х) = {у : у = (х, ±г,Х2 ± ]),г е Z+i,] е Z+;} .
Размер данного прямоугольного окна равен
(2к + 1)х(21 +1).
При параллельной обработке данные изображений распределяются по отдельным узлам распределенной вычислительной системы. Структуры дан-
X2 = J
ных одного изображения, размещенные по разным узлам, образуют единую логическую сущность, называемую распределенным изображением.
Часть данных распределенного изображения, хранящаяся на отдельном узле, называется частичным изображением. Дополнительно с каждым частичным изображением хранится информация, описывающая параметры разбиения и размещения. Эта информация содержит (но не ограничивается) описание и параметры топологии распределенной вычислительной системы, начало координат и размеры области определения исходного и частичного изображения, тип используемой декомпозиции. Частичное изображение, являющееся частью изображения а и размещенное на вычислительном узле /, обозначим через ар , его область определения - Хр .
Для любого изображения а е Ех , распределенного по п узлам, справедливо соотношение
и-1
и X * = X .
1=0
Таблица 1. Обозначения спо
Совокупность всех п частичных изображений, соответствующих изображению а, образует единую логическую структуру данных - распределенное изображение, обозначаемое как а,. Область определения распределенного изображения X, задается через дизъюнктивное объединение областей определения всех его частичных изображений. Области определения частичных изображений, которые формируют распределенное изображение, могут быть образованы с использованием различных способов декомпозиции.
Типология декомпозиции области определения распределенного изображения включает выбор размерности разбиения и способа взаимного пересечения (сопряжения) отдельных частей изображения. Возможные варианты декомпозиции изображения сведены в таблицу 1.
декомпозиции изображений
Вид декомпозиции Способ сопряжения фрагментов
Без пересечения С частичным перекрытием фрагментов на к строк (и 1 столбцов)
Одномерная а, = Цай или а,=Ц ад 1=1, р р к к а, = Ц ад или а, = Ц а±кя /=1,р р
Двумерная а, = Ц или а, = Ц 1=1, Р; ]=1,Р Р2 к,1 к,1 а, = Ц а±*'' или а, = Ц а^ 1=1,р; ;=1,р р2
Отдельно можно указать вариант репликации данных, т.е. при формировании распределенного изображения частичные изображения полностью дублируют исходное изображение, что обозначается как
а. =
Ц а*я
Рассмотренная выше растровая модель представления цифрового изображения описывает логический, или абстрактный, уровень представления.
Логической уровень представления изображений в виде двумерной матрицы отсчетов используется при описании алгоритмов обработки.
Существует еще и физический, или конкретный, уровень представления данных изображений, который описывает то, как физически хранятся данные в компьютерах.
Физической структурой данных в вычислительных системах обычно является одномерный массив, поскольку подавляющее число современных компьютеров имеет запоминающие устройства с линейным адресным доступом. Таким образом, физическое представление данных не совпадает с логическим, и идентификатором пиксела (элемента изображения) после перенесения его в память служит уже не его положение (координаты) в п-мерном массиве, а адрес ячейки памяти, где хранится значе-
ние этого элемента изображения. Чтобы не хранить дополнительно к каждому элементу его координаты в п-мерном изображении, должен быть известен способ сканирования (развертки) массива при размещении его в памяти, в этом случае по адресу хранения (индексу в одномерном массиве) можно однозначно восстановить его координаты и наоборот. Это является неявной схемой привязки хранимых элементов данных к их координатам на изображении. Таким способом представляются в компьютере все растровые изображения.
Пусть г е Т с 11 - адрес хранения, или индекс, в одномерном массиве, где располагается пиксел а(х). Соответствующее множество индексов пикселов, описывающее физический уровень представления, задается соотношением
Т = {г е 11 : 0 < г < п1п2-1} .
Преобразование развертки г = х(х), где
х : X ® Т определяет способ размещения (сканирования) элементов многомерного массива в линейно-упорядоченной памяти (в виде одномерного массива).
Например, широко известная телевизионная развертка для двумерного изображения определяется с помощью следующего соотношения г = х1п2 + х2.
р
Большинство алгоритмов использует логический уровень представления изображений. В процессе реализации алгоритмов программа осуществляет согласование логического и физического представлений, происходит уточнение информационной структуры алгоритма путем явного указания последовательности обработки.
Модели основных операций обработки изображений
Основываясь на обозначениях теории взаимодействующих последовательных процессов, определим модели основных операций обработки изображений.
Формальная модель операции редукции изображения
Пусть есть изображение a е FX и определена некоторая операция g, коммутативная и ассоциативная, которая формирует некоторую первичную характеристику изображения
г a = a (x1 )ga (x2 )g—ga (хи), где n = n1 • n2, например, сумму всех значений пикселов изображения
Z a = Z a ( X) = a ( X1 ) + a ( X2 ) + •" + a ( xn ) .
"xeX
Выражение "x е X определяет только то, что нужно перебирать все элементы множества X, но не указывает, в каком порядке это выполнять. Между тем, для формирования информационной модели алгоритма необходимо определить порядок выборки данных, порядок выполнения операций.
Для программ обработки изображений порядок перебора элементов изображения традиционно определяется с помощью так называемой «телевизионной» развертки, слева направо по строке и сверху вниз по строкам. Т.е. если изображение в программе определено в соответствии с логическим уровнем представления в виде двумерного массива, то выполнение операции редукции (в частности, суммирования) можно реализовать в виде следующего примерного кода на языке программирования С.
int a [k] [l] ; int s=0;
for(int i=0; i < k; i++)
for(int j=0; j < l; j++) s += a[i] [j] ;
В более общем виде выражение в теле цикла может быть следующим
for(int i=0; i < k; i++)
for(int j=0; j < l; j++)
s += f(i, j, a[i] [j] , p1,..,pN) ;
где f(i, j, a[i] [j], p1,..,pN) - некоторая функция, в общем случае зависящая от координат обрабатываемого пиксела и набора параметров p1,..,pN.
При использовании физического уровня представления изображения в программе при выполнении итераций используется естественный порядок
размещения элементов (пикселов) изображения в памяти компьютера в виде одномерного массива и код реализации операции рекурсии общего вида может иметь следующий вид
int a [n] ; int s=0;
for(int i=0; i < n; i++)
s += f(x1(i), x2(i), a[i], p1,_,pN);
Здесь дополнительно используются x1(i), x2(i) - функции вычисления двумерных координат пиксела по его индексу в массиве хранения данных изображения.
Формальная модель этого процесса в терминах алгебры CSP в простейшем виде может быть записана в виде определения следующего процесса
RO = (5 := 0; i := 0; (i < n) *(5: = 5 + a; i := i +1)),
здесь ai - значения яркости пиксела изображения a (х( )е FX с координатами х(.
Более общее описание имеет следующий вид
RO (a, 5, f, g) =
= (5 := 0; i := 0; (i < n) *(5: = sgf (ai); i := i +1))
и означает применение ко всем скорректированным с помощью преобразования f пикселам изображения a е FX некоторой операции редукции g, результат которой формируется в переменной 5.
Если исходное изображение a е FX преобразовано посредством некоторой произвольной декомпозиции в распределенное изображение
=Ua д
P
то операция редукции может быть выполнена параллельно над частичными изображениями ар е Fх
с последующим объединением частичных результатов я .
КО (а,, я, /, у) =
= (КО (а ^ VI, у)!!-!!К0 (а р,, ^, I, у));
(я: = ^У•••Уяр,) или в эквивалентной записи
КО (а,, я, I, у) = (\К0 (а д, /, у) 1; (я: = рЛ .
V р у V р у
Из последней записи легко видеть, что операция редукции является глобальной, и, несмотря на возможность распараллеливания большей части вычислений, на заключительной стадии все равно необходимо выполнить коллективную операцию редукции частичных результатов, полученных в параллельных ветках.
Формальная модель операции поэлементного преобразования
Рассмотрим некоторую произвольную унарную операцию поэлементного преобразования. В процессе обработки значение каждой точки исходного изображения a е FX преобразуется в значение соответствующей ей точки выходного изображения c е FX :
c(x) = F(a(x)), Vx е X.
Здесь также выражение Vx е X определяет, что нужно перебирать все элементы множества X , причем порядок выборки данных, порядок выполнения операций не существенен.
Неявно предполагается, что тип развертки (т.е. порядок перебора пикселов) исходного изображения уже определен тем, как формировались данные на предыдущих этапах обработки. Если операция выполняется в отдельной программе, то тип развертки исходного изображения определяется тем форматом, который используется при хранении данных на ВЗУ.
Тип развертки результирующего изображения целесообразно выбрать так, чтобы он совпадал с разверткой исходного ихображения.
При использовании физического уровня представления изображений в программе при выполнении итераций используется естественный порядок размещения элементов (пикселов) изображения в памяти компьютера в виде одномерного массива и код реализации унарной операции поэлементного преобразования общего вида может иметь следующий вид
int a [n] , c [n] ;
for(int i=0; i < n; i++)
c[i] = f(x1(i), x2(i) , a[i], p1,..,pN);
где x1(i), x2(i) - функции вычисления двумерных координат пиксела по его индексу в массиве хранения данных изображения; p1,m,pN - набор параметров поэлементного преобразования f.
Здесь предполагается, что области определения изображений a и c заданы одинаковым образом. В результате выполнения операции в оперативной памяти будет сформирован массив, который будет содержать данные результирующего изображения, тип развертки которого будет совпадать с разверткой массива, хранящего данные исходного изображения.
Фактически в данном коде имеются две структуры данных, которые итерируются синхронно, т. е. с использованием одного указателя.
Формальная модель этой операции в терминах алгебры CSP записывается в виде следующего процесса
PO(a,c, f) = (/ := 0; (i < n) *(С,. := f (at); i := i +1)),
где предполагается, что ранее в системе уже определены значения пикселов изображения a е FX , они обозначаются как {a..}, в процессе обработки фор-
мируются значения пикселов изображения с е , которые обозначаются как {с,} . Более формально:
асс (рО (а, с, /)) = {а,.} = а,
уаг (рО (а, с, /)) = {с,} = с .
Произвольная бинарная операция поэлементной обработки формирует значение каждой точки выходного изображения с е Ех как результат некой операции над соответствующими точками двух исходных изображений а е Ех и Ь е Ех :
с(х) = F(а(х),Ь (х)), "х е X.
Формальная модель этой операции в терминах алгебры С8Р описывает процесс синхронной итерации с использованием одного указателя уже трех структур данных {а,} , {Ь,} и {с,}
рО2 (а, Ь, с, / ) =
= (,: = 0; (, < п) * (с,: = /(а1,Ь1); I := I +1)), причем
асс (рО2 (а, Ь, с, /)) = {а,} и {Ь, } = а и Ь,
уаг (рО2 (а, Ь, с, / )) = {с, } = с.
При распараллеливании поэлементных операций параметры и тип декомпозиции всех итерируемых структур данных должны совпадать. Какая из структур является при этом определяющей?
Учитывая необходимость обеспечения сбалансированности вычислительной нагрузки процессоров при параллельной обработке, а это проще выполнять перераспределяя вычисления, связанные с формированием значения пиксела результирующего изображения, в качестве основной структуры, которая определяет параметры и тип декомпозиции всех итерируемых структур данных, целесообразно выбрать результирующее изображение. При этом, учитывая ограничения на множество присваиваемых переменных параллельных процессов, можно показать, что декомпозиция результирующего изображения должна выполняться на непересекающиеся части.
Таким образом, при распараллеливании операций поэлементной обработки необходимо выполнить декомпозицию результирующего изображения на непересекающиеся фрагменты. Размер частичных изображений определяется исходя из априорной информации о соотношении производительности используемых при обработке вычислительных систем. В случае гомогенных параллельных вычислительных систем используется простейшая декомпозиция на одинаковые частичные изображения
=Ц сд, р
формирующая соответствующий набор частичных множеств определения
X,=и х р,
на основании которого, в свою очередь, будет определена декомпозиция исходных изображений
а,=и ад, ь,=иь р р р
Процессы, описывающие параллельную поэлементную операцию над изображениями, имеют следующий вид
РО (а,, с,, I ) =
= (Р0 (а ^ с ^ I )||-|| Р0 (а р,, с р,, I)),
Р02 (а,, Ь,, с,, I ) =
= (Р02 (а ^ Ь ^ с ^ I) || —1|р02 (а рр, Ь рр, с рр, I)),
или в эквивалентной записи
Р0(а,,с,,I) = \\ Р0(ад,сд,I),
р
Р02(а,,Ь,,с,,I) = \\ Р02(ад,Ьд,сд,I).
р
Операция поэлементного преобразования изображений допускает полное распараллеливание на основе непересекающейся декомпозиции.
Формальная модель операции локальной обработки скользящим окном
Рассмотрим типовую операцию локальной обработки скользящим окном, которая формирует изображение с е Fх , значение в каждой точке х е X которого является результатом некоторого преобразования над прямоугольной, симметрично расположенной относительно текущей точки х е X окрестностью Qkl (х) точек исходного изображения а е Iх
с(х) = ^ ({а(у): у е Qk,l (х)}), "х е X.
При выполнении данной операции явно задается только итерация по точкам результирующего изображения. Итерация по точкам исходного множества осуществляется путем косвенной итерации по точкам окрестности текущей точки, соответствующей каждому положению вычисляемой точки результирующего изображения. В процессе косвенной итерации происходит перебор значений смещений индексов, которые необходимо добавить к текущему индексу первичной итерации. При вычислениях, производимых в процессе выполнения косвенной итерации, часто используется массив коэффициентов шаблона преобразования, на соответствующие значения которого умножается значение точки исходного изображения.
Формальную модель операции локальной обработки скользящим окном удобно записать в виде
построчной итерации, т. е. процесс обработки заключается в последовательном формировании строк результирующего изображения
ЬN0 (а, с, I )=
Для строки результирующего изображения с, с
областью определения (1) соответствующая область определения фрагмента исходного изображения, значения отсчетов которого используются при формировании этой строки, определяется следующим образом
к
X, = и X, .
1 =-к
Аналогично поэлементной обработке при распараллеливании операций локальной обработки скользящим окном первичным является выбор декомпозиции результирующего изображения на непересекающиеся фрагменты. Соответствующая декомпозиция исходного изображения определяется в виде одномерной декомпозиции с перекрытием на к строк к
а, = Ц а±к .
¡=1,р
Процесс, описывающий параллельный вариант локальной обработки скользящим окном над изображением, имеет следующий вид
ЬN0(а,,с,,I) = \\ ЬN0(ар*,сд,I) . р
Операция локальной обработки изображений скользящим окном допускает полное распараллеливание на основе декомпозиции с перекрытием, размер которого определяется параметрами окна обработки.
Пример формирования параллельной модели типовой задачи обработки изображений
Рассмотрим технологию повышения контрастности изображения. Пусть реализующая ее программа включает следующие этапы: сбор статистики, в частности, математического ожидания и дисперсии значений яркости, с последующим выполнением поэлементного преобразования.
В достаточно общем виде данную технологию можно записать в виде последовательной композиции четырех процессов
К0 (а, ят,1, +); К0 (а, яё ,Л2,+);
(т : = ят /п;, := я, /п);
Р0 (а, с, I (ш,,)),
где, в свою очередь, можно выделить процессы вычисления суммы значений яркости отсчетов изображения К0 (а, яш,1, +) и вычисления суммы квадратов значений яркости отсчетов изображения К0(а,я,,Л2,+), процесс вычисления значений мате-
матического ожидания и дисперсии (ш : = яш / п; ё := яё / ш), процесс поэлементного преобразования рО(а,с,/(ш, ё)).
Три из составляющих эту последовательную композицию процессов могут быть преобразованы в процессы, выполняемые параллельно, т. е. представлены в следующем виде КО (аё, яш,1, +) =
(2)
= КО (а й, яшй,1, +) ||...|| КО (а Л, яшрр ,1, +), КО (аё, яё ,Л2, +) =
! \ ! ^ (3)
= КО (а ^ Ч^2,+) ||...||КО (а рр, ,Л2,+), рО (а,, с,, /(ш, ё)) =
= рО (а Й, с Й, / (ш, ё)) ||...|| рО (а рр, с рр, / (ш, ё)).
Учитывая то, что процессы (2) и (3) формируют частичные суммы значений яркости и их квадратов, процесс вычисления значений математического ожидания и дисперсии необходимо переписать в
следующем виде
р р
(яш : = ^ яшр ; яё : = ^ яёр ;
,=1 ,=1
ш := яш /п; ё := яё / п).
Используя данные представления составляющих описание задачи процессов, можно переписать общую модель в следующем виде
(КО (а ^ Щ^Д+) ||...||КО (а рр, яшрр Д+));
(КО (а ^ Ч1,Л2,+) И-ИКО (а рр, яёрр ,Л2,+));
с р р
I яш : = ^ яшр ; яё : = ^ яёр ;
V ,=1 ' ,=1 ' ш := яш /п; ё := яё /п);
(рО (ар, сд, /(ш, ё)) ||... || рО (арр, срр, /(ш, ё))), или в эквивалентном
((КО(а^яшдД+);КО(а^я^2, +)) ||...
... Н (КО(арр,*шрр ,1,+);КО(арр,яёРр ,Л2,+)));
с р р
I яш : = ^яшр ; яё := ^яёр ;
V ,=1 ' ,=1 ' ш := яш / п; ё : = яё / п);
( рО (а д, с д, / (ш, ё)) ||...|| рО (а рр, с рр, / (ш, ё))).
Данная модель показывает, что программа повышения контрастности изображения не может быть реализована в полностью распараллеленном виде, т. к. на этапе формирования глобальных статистических параметров (математического ожидания и дисперсии)
необходимо выполнение коллективной операции с неявным использованием синхронизации всех процессов. С помощью данной модели легко выделить два этапа, которые можно распараллелить с использованием произвольного типа декомпозиции.
Заключение Расширение модели информационной структуры параллельной обработки изображений, необходимое для оценки времени и других характеристик эффективности реализации сформированных вариантов организации вычислений, основано на работах [10] и [11]. Каждому процессу сопоставляется функция, определяющая время выполнения процесса в зависимости от размера обрабатываемых данных. Выбор вида функции и оценка ее параметров в различных режимах функционирования процессов на программно-аппаратных средствах целевой вычислительной системы осуществляется экспериментально с использованием программных прототипов, реализующих исследуемые операции обработки.
Предложенная модель распределенного изображения в виде дизъюнктивного объединения частичных изображений, сформированных в результате применения декомпозиции заданного типа к исходному изображению, позволяет существенно упростить алфавит моделей, описывающих параллельные алгоритмы обработки изображений, основанные на декомпозиции по данным.
Выбор алгебры С8Р в качестве основы формальной модели процессов параллельной обработки изображений позволяет формировать детальные описания на различных уровнях абстракции информационной модели и задать точную информационную структуру операций, реализующих соответствующие шаги решения.
Формальная модель процессов параллельной обработки изображений на основе алгебры С8Р формирует иерархическое описание информационной структуры алгоритма, которое необходимо при решении задач построения эффективного отображения технологий обработки изображений на архитектуру распределенных систем.
Благодарности Работа выполнена при поддержке гранта Президента РФ для ведущих научных школ № НШ-7414.2010.9 и грантов Российского фонда фундаментальных исследований №№ 09-07-12147-офи_м, 09-07-92421-КЭ_а, 10-07-00553-а.
Литература
1. Воеводин, В. Отображение проблем вычислительной математики на архитектуру вычислительных систем // Вычислительные методы и программирование. - 2000. Т. 1. - С. 37-44.
2. Воеводин, В. Вычислительная математика и структура алгоритмов - М.: Изд-во МГУ, 2006.
3. Методы компьютерной обработки изображений / под ред. В. А. Сойфера. изд. 2-ое, испр. - М.: Физматлит, 2003. - 784 с.
4. Попов, С.Б. Концепция распределенного хранения и параллельной обработки крупноформатных изображений // Компьютерная оптика. - 2007. - Т. 31, № 4. - С. 77-85.
5. Merigot, A. Parallel processing for image and video processing: Issues and challenges / A. Merigot and A. Petro-sino // Parallel Computing. - 2008. - Vol. 34. - P. 694-699.
6. Nicolescu, C. A data and task parallel image processing environment / C. Nicolescu and P. Jonker // Parallel Com-putting. - 2002. - Vol. 28. - P. 945-965.
7. Lastovetsky, A. High performance heterogeneous computing / A. Lastovetsky and J. Dongarra - Hoboken, New Jersey: John Wiley & Sons, Inc., 2009.
8. Hoare, C. Communicating Sequential Processes - London: Prentice-Hall International, 1985.
9. Ritter, G. Handbook of Computer Vision Algorithms in Image Algebra / G. Ritter and J. Wilson - BocaRaton: CRC Press Inc, 1996.
10. Roscoe, A.W. The Theory and Practice of Concurrency.-Prentice Hall, 1997.
11. Schneider, S. Concurrent and Real-Time Systems: The CSP approach - Wiley, 2000.
References
1. V. Voevodin, «Mapping of computational mathematics problems to computer architecture,» Computational Methods and Programming, vol. 1, 2000, pp. 37-44. (In Russian)
2. V. Voevodin, Computational Mathematics and algorithm structure, Moskow University Publishing House, 2006. (In Russian)
3. Computer Image Processing, Part I: Basic concepts and theory, VDM Verlag Dr. Muller, 2010.
4. Popov S.B. The concept of distributed storage and parallel processing of large-size images // Computer Optics, vol. 31, № 4, 2007. (In Russian)
5. A. Merigot and A. Petrosino, «Parallel processing for image and video processing: Issues and challenges,» Parallel Computing, vol. 34, 2008, pp. 694-699.
6. C. Nicolescu and P. Jonker, «A data and task parallel image processing environment,» Parallel Computing, vol. 28, 2002, pp. 945-965.
7. A. Lastovetsky and J. Dongarra, High performance heterogeneous computing, Hoboken, New Jersey: John Wiley & Sons, Inc., 2009.
8. C. Hoare, Communicating Sequential Processes, London: Prentice-Hall International, 1985.
9. G. Ritter and J. Wilson, Handbook of Computer Vision Algorithms in Image Algebra, BocaRaton: CRC Press Inc, 1996.
10. Roscoe, A.W., The Theory and Practice of Concurrency.-Prentice Hall, 1997.
11. Schneider, S., Concurrent and Real-Time Systems: The CSP approach. Wiley, 2000.
MODELING THE TASK INFORMATION STRUCTURE IN PARALLEL IMAGE PROCESSING
S.B. Popov
Image Processing Systems Institute of the RAS Abstract
An approach to building models, that describe the information structure of parallel programs for image processing, is presented. The CSP theory is chosen as the basis of a formal model of parallel processing of images. This model generates a hierarchical description of information structure of the algorithm necessary to solve problems of constructing an effective mapping of image processing tasks on the architecture of distributed systems.
Key words: information structure of the algorithm, CSP theory, parallel image processing, digital image model, image partitioning.
Сведения об авторе
Попов Сергей Борисович, кандидат технических наук, доцент Самарского государственного аэрокосмического университета имени академика С.П. Королева; старший научный сотрудник Учреждения Российской академии наук Институт систем обработки изображений РАН. E-mail: [email protected]. Области научных интересов: моделирование, разработка и исследование программных средств распределенной и параллельной обработки крупноформатных изображений; разработка алгоритмов и программного обеспечения систем технического зрения; разработка алгоритмов повышения качества цветных слабоконтрастных изображений.
Sergey Borisovich Popov, Candidate of Technical Sciense; Associate Professor of the Samara State Aerospace University; Senior researcher at the Image Processing Systems Institute of the RAS. E-mail: [email protected]. His areas of research are parallel and distributed image processing, computer vision, color image processing.
Поступила в редакцию 9 июня 2010 г