ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНОЕ УСТРОЙСТВО ДЛЯ ВЕКТОРИЗАЦИИ АЭРОКОСМИЧЕСКИХ ИЗОБРАЖЕНИЙ ЗЕМНОЙ ПОВЕРХНОСТИ
PARALLEL-CONVEYOR DEVICE FOR VECTORISATION OF AEROSPACE IMAGES OF EARTH SURFACE

Изобретение относится к вычислительной технике и может быть использовано для построения векторного описания элементов городской застройки по аэрокосмическим изображениям земной поверхности при создании электронных карт для геоинформационных систем.
Известно устройство для выделения контуров изображения (SU 1253337 А1), содержащее последовательно расположенные матрицу светочувствительных элементов, матрицу пороговых дискриминаторов, блок обработки сигналов и блок отображения информации.
Недостатком устройства является низкая точность выделения контуров, обусловленная независимой обработкой при выделении контуров каждого пикселя в отдельности без учета расположения соседних пикселей анализируемого контура, а также отсутствие возможности формирования векторного описания контуров элементов (объектов) на изображении.
Наиболее близким устройством является многопроцессорная векторная ЭВМ (RU 2113010 С1), содержащая векторную главную внутреннюю память, связанную с помощью многосвязного широкоформатного информационного интерфейса с центральным управляющим процессором, подсистемой ввода вывода и по крайней мере с одной центральной процессорной частью, включающей векторное арифметическое устройство, содержащее 2m (m=0,1…) многоформатных конвейерных арифметических процессоров, каждый из которых содержит узел управления, регистровую память и конвейерное арифметическое устройство.
Недостатком данного устройства является низкая скорость обработки изображения в случае использования устройства для векторизации изображения, что вызвано неэффективным использованием вычислительных ресурсов одинаковых по структуре арифметических процессоров при выполнении данной задачи.
Технической задачей устройства является снижение временных затрат на построение векторного описания элементов городской застройки по аэрокосмическим изображениям земной поверхности.
Задача решается тем, что в многопроцессорную векторную ЭВМ, содержащую управляющий процессор и информационный интерфейс, дополнительно введены блок векторизации, контроллер ОЗУ, ОЗУ, первый графический модуль, состоящий из первого графического процессора и первой буферной памяти, второй графический модуль, состоящий из второго графического процессора и второй буферной памяти, третий графический модуль, состоящий из третьего графического процессора и третьей буферной памяти, контроллер ввода-вывода изображения, внешнее ЗУ, причем первый вход-выход CI управляющего процессора подключен к входу-выходу управления CI блока векторизации, выход адреса А и вход-выход данных D которого соединены с первым входом адреса АР и первым входом-выходом данных DP контроллера ОЗУ соответственно; выход адреса AM и второй вход-выход данных DM контроллера ОЗУ соединены со входом адреса А и входом-выходом данных D ОЗУ соответственно; второй вход адреса А контроллера ОЗУ через информационный интерфейс подключен к первому выходу адреса А первого графического процессора, к первому выходу адреса А второго графического процессора, к первому выходу адреса А третьего графического процессора и к первому выходу адреса А контроллера ввода-вывода изображения; третий вход-выход данных D контроллера ОЗУ через информационный интерфейс подключен к первому входу-выходу данных D первого графического процессора, к первому входу-выходу данных D второго графического процессора, к первому входу-выходу данных D третьего графического процессора и к первому входу-выходу данных D контроллера ввода-вывода изображения; второй выход адреса AM и второй вход-выход данных DM первого графического процессора соединены со входом адреса А и входом-выходом данных D первой буферной памяти соответственно; второй выход адреса AM и второй вход-выход данных DM второго графического процессора соединены со входом адреса А и входом-выходом данных D второй буферной памяти соответственно; второй выход адреса AM и второй вход-выход данных DM третьего графического процессора соединены со входом адреса А и входом-выходом данных D третьей буферной памяти соответственно; второй выход адреса АЕ и второй вход-выход данных DE контроллера ввода-вывода изображения подключены ко входу адреса А и входу-выходу данных D внешнего ЗУ соответственно; второй вход-выход С управляющего процессора с помощью информационного интерфейса соединен с входом-выходом управления С первого графического процессора, с входом-выходом управления С второго графического процессора, с входом-выходом управления С третьего графического процессора и с входом-выходом управления С контроллера ввода-вывода изображения.
Сущность изобретения поясняется чертежами, где на фиг.1 представлена структурная схема устройства для векторизации аэрокосмических изображений земной поверхности, на фиг.2 - алгоритм функционирования устройства в последовательном режиме, на фиг.3 - алгоритм работы устройства в конвейерном режиме.
Устройство для векторизации аэрокосмических изображений земной поверхности содержит процессорный модуль 1, состоящий из управляющего процессора 1.1 и блока векторизации 1.2, контроллер ОЗУ 2, ОЗУ 3, первый графический модуль 4, состоящий из первого графического процессора 4.1 и первой буферной памяти 4.2, второй графический модуль 5, состоящий из второго графического процессора 5.1 и второй буферной памяти 5.2, третий графический модуль 6, состоящий из третьего графического процессора 6.1 и третьей буферной памяти 6.2, контроллер ввода-вывода изображения 7, внешнее ЗУ 8, информационный интерфейс 9, причем первый вход-выход CI управляющего процессора 1.1 подключен к входу-выходу управления CI блока векторизации 1.2, выход адреса А и вход-выход данных D которого соединены с первым входом адреса АР и первым входом-выходом данных DP контроллера ОЗУ 2 соответственно; выход адреса AM и второй вход-выход данных DM контроллера ОЗУ 2 соединены со входом адреса А и входом-выходом данных D ОЗУ 3 соответственно; второй вход адреса А контроллера ОЗУ 2 через информационный интерфейс 9 подключен к первому выходу адреса А первого графического процессора 4.1, к первому выходу адреса А второго графического процессора 5.1, к первому выходу адреса А третьего графического процессора 6.1 и к первому выходу адреса А контроллера ввода-вывода изображения 7; третий вход-выход данных D контроллера ОЗУ 2 через информационный интерфейс 9 подключен к первому входу-выходу данных D первого графического процессора 4.1, к первому входу-выходу данных D второго графического процессора 5.1, к первому входу-выходу данных D третьего графического процессора 6.1 и к первому входу-выходу данных D контроллера ввода-вывода изображения 7; второй выход адреса AM и второй вход-выход данных DM первого графического процессора 4.1 соединены со входом адреса А и входом-выходом данных D первой буферной памяти 4.2 соответственно; второй выход адреса AM и второй вход-выход данных DM второго графического процессора 5.1 соединены со входом адреса А и входом-выходом данных D второй буферной памяти 5.2 соответственно; второй выход адреса AM и второй вход-выход данных DM третьего графического процессора 6.1 соединены со входом адреса А и входом-выходом данных D третьей буферной памяти 6.2 соответственно; второй выход адреса АЕ и второй вход-выход данных DE контроллера ввода-вывода изображения 7 подключены ко входу адреса А и входу-выходу данных D внешнего ЗУ 8 соответственно; второй вход-выход С управляющего процессора 1.1 с помощью информационного интерфейса 9 соединен с входом-выходом управления С первого графического процессора 4.1, с входом-выходом управления С второго графического процессора 5.1, с входом-выходом управления С третьего графического процессора 6.1 и с входом-выходом управления С контроллера ввода-вывода изображения 7.
Устройство работает следующим образом.
При запуске устройства обработка первого изображения выполняется в последовательном режиме. Для этого управляющий процессор 1.1 выставляет на втором входе-выходе С код команды ввода изображения, поступающий информационный интерфейс 9 на вход-выход управления С контроллера ввода-вывода изображения 7. По получении кода команды ввода изображения контроллер ввода-вывода изображения 7 выполняет построчное считывание изображения из внешнего ЗУ 8 (блок 1 алгоритма на фиг.2), выставляя адрес строки изображения на втором выходе адреса АЕ, который поступает на вход адреса А внешнего ЗУ 8. При получении адреса внешнее ЗУ 8 поэлементно выдает соответствующую строку изображения через вход-выход данных D на второй вход-выход данных DE контроллера ввода-вывода изображения 7. Контроллер ввода-вывода 7 поэлементно передает полученную строку изображения через контроллер ОЗУ 2 в ОЗУ 3, для чего на первом выходе адреса А формирует адрес строки изображения, поступающий через информационный интерфейс 9 на второй вход адреса А контроллера ОЗУ 2, а на первый вход-выход данных D поэлементно подает строку изображения, которая через информационный интерфейс 9 поступает на третий вход-выход данных D контроллера ОЗУ 2. Контроллер ОЗУ 2 передает полученный адрес на вход адреса А ОЗУ 3 и элементы строки изображения на вход-выход данных D ОЗУ 3, записывающего полученную строку изображения по указанному адресу. По завершении операции считывания изображения контроллер ввода-вывода изображения 7 через вход-выход управления С выдает код подтверждения получения данных на второй вход-выход С управляющего процессора 1.1, по которому управляющий процессор 1.1 выставляет на второй вход-выход С код команды копирования изображения первым графическим процессором, поступающий через информационный интерфейс 9 на вход-выход управления С первого графического процессора 4.1.
Первый графический процессор 4.1 с использованием контроллера ОЗУ 2 в режиме прямого доступа к памяти (ПДП) осуществляет построчное чтение изображения из ОЗУ 3 и его запись в первую буферную память 4.2 (блок 2 алгоритма на фиг.2), для чего первый графический процессор 4.1 на первом выходе адреса А формирует адрес строки изображения, поступающий через информационный интерфейс 9 и контроллер ОЗУ 2 на вход адреса А ОЗУ 3. После получения адреса ОЗУ 3 поэлементно выдает указанную строку изображения на вход-выход данных D, откуда строка поступает на второй вход-выход данных DM контроллера ОЗУ 2, подающего получаемые данные через третий вход-выход данных D на первый вход-выход данных D первого графического процессора 4.1. Первый графический процессор 4.1 поэлементно передает строку изображения на вход-выход данных D первой буферной памяти 4.2, формируя на входе адреса А первой буферной памяти 4.2 адрес копируемой строки, после чего первая буферная память 4.2 записывает строку изображения по указанному адресу. По окончании операции копирования изображения первый графический процессор 4.1 подает через информационный интерфейс 9 на второй вход-выход С управляющего процессора 1.1 код подтверждения копирования данных. Аналогично выполняется копирование изображения из ОЗУ 3 во вторую буферную память 5.2 (блок 3 алгоритма на фиг.2) и третью буферную память 6.2 (блок 4 алгоритма на фиг.2). По завершении копирования изображения всеми графическими процессорами управляющий процессор 1.1 выдает на втором входе-входе С код команды обработки, который через информационный интерфейс 9 поступает на вход-выход управления С первого графического процессора 4.1, вход-выход управления С второго графического процессора 5.1, вход-выход управления С третьего графического процессора 6.1. При получении кода команды обработки каждый из графических процессоров выполняет обработку копии изображения, хранимой в буферной памяти соответствующего графического модуля.
Первый графический процессор 4.1 производит дифференцирование аэрокосмического изображения (блок 5 алгоритма на фиг.2) путем его свертки с масками, представляющими дискретные аппроксимации частных производных функции Гаусса [Elder J.H. Local Scale Control for Edge Detection and Blur Estimation [Text] / James. H. Elder, Steven W. Zuckler // IEEE Transactions on Pattern Analysis and Machine Intelligence. - Vol.20, No7. - 1998. - pp.699-716]. Второй графический процессор 5.1 выполняет создание кластерного представления аэрокосмического изображения (блок 6 алгоритма на фиг.2) в пространстве, содержащем яркостные и геометрические признаки [Гонсалес Р. Цифровая обработка изображений [Текст] / Р.Гонсалес, Р.Вудз // М.: Техносфера, 2006, 1072 с.]. Третий графический процессор 6.1 производит вычисление коэффициентов дискретного преобразования Фурье аэрокосмического изображения (блок 7 алгоритма на фиг.2) [Сойфер В.А. Методы компьютерной обработки изображений / Под ред. В.А.Сойфера - 2-е изд., испр. - М.: ФИЗМАТЛИТ, 2003. - 784 с.]. По окончании обработки каждый графический процессор через информационный интерфейс 9 подает на второй вход-выход С управляющего процессора 1.1 код завершения обработки.
Получив коды завершения обработки от всех графических процессоров, управляющий процессор 1.1 на втором входе-выходе С выставляет код команды копирования результатов обработки первого графического процессора, который через с помощью информационного интерфейса 9 поступает на вход-выход управления С первого графического процессора 4.1. При получении данного кода первый графический процессор 4.1 с использованием контроллера ОЗУ 2 в режиме ПДЛ осуществляет построчную запись полученного в результате дифференцирования контурного изображения в ОЗУ 3 из буферной памяти 4.2 (блок 8 алгоритма на фиг.2). Для этого первый графический процессор 4.1 выставляет на втором выходе адреса AM адрес строки контурного изображения, который поступает на вход адреса А первой буферной памяти 4.2. По получении адреса строки буферная память 4.2 поэлементно выдает на вход-выход данных D соответствующую строку изображения, поступающую на второй вход-выход DM первого графического процессора 4.1, который поэлементно передает строку изображения через информационный интерфейс 9 на третий вход-выход данных D контроллера ОЗУ 2 и выставляет соответствующий адрес на втором входе адреса А контроллера ОЗУ 2. Контроллер ОЗУ 2 передает полученный адрес на вход адреса А и элементы строки изображения на вход-выход данных D ОЗУ 3, которое записывает полученную строку контурного изображения по указанному адресу. По окончании копирования контурного изображения в ОЗУ 3 первый графический процессор 4.1 через информационный интерфейс 9 подает на второй вход-выход С управляющего процессора 1.1 код подтверждения копирования результатов. Аналогично производится запись кластерного изображения из второй буферной памяти 5.2 в ОЗУ 3 (блок 9 алгоритма на фиг.2) и частотного представления изображения из третьей буферной памяти 6.2 в ОЗУ 3 (блок 10 алгоритма на фиг.2).
После получения кодов подтверждения копирования результатов от всех графических процессоров управляющий процессор 1.1 через первый вход-выход CI подает на вход-выход управления CI блока векторизации 1.2 код команды обработки результатов, по получении которого блок векторизации 1.2 производит создание векторного представления объектов на основании контурного, кластерного и частотного описаний аэрокосмического изображения, хранимых в ОЗУ 3 (блок 11 алгоритма на фиг.2). Векторное представление объектов [Мирошниченко С.Ю. Распознающий аппаратно-программный диагностирующий комплекс [Текст] / С.Ю.Мирошниченко, В.Н.Мишустин, С.В.Дегтярев // Изв. ВУЗов. Приборостроение. - Т.48, №2. - 2005. - С.22-27] строится как множество замкнутых векторных последовательностей, каждая из которых представляет контур объекта, границу кластера или область изображения с близкими значениями коэффициентов преобразования Фурье. Сформированное таким образом векторное представление объектов на аэрокосмическом изображении с помощью контроллера ОЗУ 2 записывается в ОЗУ 3. По завершении построения векторного описания блок векторизации 1.2 подает на первый вход-выход CI управляющего процессора 1.1 код завершения векторизации, при получении которого управляющий процессор 1.1 выставляет на втором входе-выходе С код команды выдачи результатов, поступающий через информационный интерфейс на вход-выход управления С контроллера ввода-вывода изображения 7. Контроллер ввода-вывода изображения 7 при помощи контроллера ОЗУ 2 считывает векторное представление изображения из ОЗУ 3 в режиме ПДП и записывает его во внешнее ЗУ 8 (блок 12 алгоритма на фиг.2) аналогично тому, как производится считывание изображения из внешнего ЗУ 8.
Обработку второго и последующих изображений устройство выполняет в конвейерном режиме, что позволяет повысить загрузку вычислительных блоков. После копирования изображения из ОЗУ 3 в буферную память каждого из трех графических модулей (блоки 1, 2, 3 алгоритма на фиг.3) помимо дифференцирования текущего изображения первым графическим процессором 4.1 (блок 4 алгоритма на фиг.3), кластеризации текущего изображения вторым графическим процессором 5.1 (блок 5 алгоритма на фиг.3), преобразования Фурье текущего изображения третьим графическим процессором 6.1 (блок 6 алгоритма на фиг.3) также производятся чтение следующего изображения из внешнего ЗУ 8 в ОЗУ 3 (блок 8 алгоритма на фиг.3) и создание блоком векторизации 1.2 векторного представления предыдущего изображения (блок 7 алгоритма на фиг.3), результаты дифференцирования, кластеризации и преобразования Фурье которого хранятся в ОЗУ 3. По окончании всех указанных операций контурное, кластерное и частотное представления текущего изображения последовательно копируются из буферной памяти каждого графического модуля в ОЗУ 3 с помощью контроллера ОЗУ 2 (блоки 9, 10, 11 алгоритма на фиг.3), после чего векторное представление предыдущего изображения записывается из ОЗУ 3 во внешнее ЗУ 8 (блок 12 алгоритма на фиг.3).
Процессорный модуль 1 может быть реализован на двуядерных процессорах Intel Core 2 Duo или AMD Athlon x2, причем первое ядро процессора выполняет функции управляющего процессора 1.1, второе ядро - функции блока векторизации 1.2. Для реализации процессорного модуля также могут быть использованы трехядерные процессоры AMD Phenom х3 и четырехядерные процессоры Intel Core 2 Quad или AMD Phenom, где первое ядро выполняет функции управляющего процессора 1.1, а другие два или три ядра-функции блока векторизации 1.2.
Графические модули 4, 5, 6 реализуются на трех графических ускорителях nVidia GeForce 8800/9600/9800, объединенных с использованием технологии nVidia SLI, или на трех графических ускорителях AMD ATI HD 3850/3870, объединенных при помощи технологии ATI CrossFire.
Таким образом, предложенное решение позволяет снизить временные затраты на построение векторного описания элементов городской застройки по аэрокосмическим изображениям земной поверхности счет введения в устройство первого графического процессора 4.1, второго графического процессора 5.1, третьего графического процессора 6.1 и блока векторизации 1.2, которые в конвейерном режиме параллельно выполняют дифференцирование, кластеризацию, преобразование Фурье текущего изображения и векторное кодирование объектов на предыдущем изображении.