УДК 004.932
В. Ю. ЦВЕТКОВ
ОПРЕДЕЛЕНИЕ РАЗМЕРА FIFO-СТЕКА ДЛЯ АЛГОРИТМА ВЫРАЩИВАНИЯ ОБЛАСТЕЙ ИЗОБРАЖЕНИЯ
Белорусский государственный университет информатики и радиоэлектроники
Целью работы является вывод выражения, позволяющего определить размер FIFO-стека для хранения координат смежных пикселей в зависимости от размера изображения для алгоритма сегментации на основе выращивания областей. Рассматривается FIFO-стек, организованный по принципу кольцевого многоразрядного регистра сдвига. Сформулированы условия максимальной загрузки FIFO-стека, для которых получено выражение, позволяющее точно определить необходимый размер FIFO-стека, что обеспечивает экономию памяти.
Ключевые слова: FIFO-стек, сегментация изображений, выращивание областей изображения.
Введение
Выделение памяти - одна из основных проблем организации обработки данных в вычислительной системе. Особенно актуальна данная проблема для систем на кристалле с ограниченным объемом оперативной памяти. Недостаточное выделение памяти может привести к потере данных и сбою в работе системы. Избыточное выделение памяти ведет к неэффективному ее использованию. Несмотря на отсутствие универсального подхода к выделению памяти могут быть получены точные значения ее необходимой емкости для конкретных алгоритмов в предельных условиях. Среди алгоритмов предварительной обработки изображений наиболее требовательными к емкости оперативной памяти являются алгоритмы сегментации [1]. Сегментация приводит к разделению изображения на области с одинаковыми или схожими свойствами. Простейшие алгоритмы сегментации основаны на выращивании областей в окрестности предварительно выделенных начальных пикселей роста и используют стеки для хранения координат смежных пикселей, присоединяемых к выращиваемой области [2-4]. Стеки могут быть организованы по принципу FIFO (первым зашел - первым вышел) или LIFO (последним зашел - первым вышел) [5-7]. Они отличаются порядком выборки данных и, со-
ответственно, емкостью, необходимой для хранения координат пикселей при максимальной загрузке.
Целью работы является вывод выражения, позволяющего определить размер FIFO-стека для хранения координат смежных пикселей в зависимости от размера изображения для алгоритма сегментации на основе выращивания областей.
Постановка задачи
В результате сегментации изображения
I = \\i(y, x)||, - ->
II V-7' /||(y=0,Y-1,x=0,X-1)
размером Y x X пикселей формируется матрица
S = 1 Is (y, x)||, - ->
II V-7' /III y=0,Y-1,x=0, X-1)
сегментации такого же размера, значения элементов которой указывают на номера nS е [ 0, NS ] сегментов, которым они принадлежат, где NS -число сегментов и номер последнего сегмента. На рис. 1 приведены фрагмент полутонового изображения, соответствующие ему матрица значений пикселей и матрица сегментации, содержащая 6 сегментов.
Алгоритм выращивания областей описывает следующую последовательность операций по сегментации изображения (предполагается, что начальные пиксели роста на изображении уже выделены) [2-4]:
а б
Рис. 1. Фрагменты: а - полутоновое изображение;
1) координаты очередного начального пикселя роста помещаются в FIFO-стеки
Гр =|(Рр )||(рр) _
и
Хр = \хр
( Рр )||
р >\ 1(рр =0,Рр 1) -
координат смежных пикселей, где рр - указатель стеков; Рр - максимально возможное число координат в FIFO-стеках Yp и Хр;
2) определяется текущее значение п номера сегмента;
3) реализуется цикл обработки FIFO-сте-ков Yp и Хр, в котором из них извлекаются координаты (у, х) очередного обрабатываемого пикселя; соответствующему элементу матрицы сегментации s(y, х) присваивается значение номера сегмента; проверяется выполнение условия присоединения к текущему пикселю (у, х) смежных пикселей с координатами (у + у', х + х') при
(у = 41 )л( х= -Г )л(( у'* О И х'* 0)) ;
если для какого-либо смежного пикселя условие выполняется, то его координаты (у + у', х + х') заносятся в стеки Yp и Хр;
4) шаги 1-3 повторяются, пока все начальные пиксели роста не будут обработаны.
Загрузка FIFO-стеков Yp и Хр максимальна, когда размер сегмента совпадает с размером изображения. В этом случае N = 1,
УуУх (5 (у, х ) = ^ ) ,
размер Rs(ns) п5-го сегмента, определяемый с помощью выражения
1 Г -1 X-1
^ (п5)=—y, x),
П8 у=0 х 0 =
составляет ГХ(1) = ГХ) при исключении повторного попадания координат в стеки. Без точного определения размера стеков Гр и Хр
б - матрица пикселей; в - матрица сегментации
(значения Рр числа ячеек) гарантировать устойчивую работу алгоритма выращивания областей, исключающего их переполнение, можно, если принять
Рр = ГХ . (1)
Это выражение не учитывает то, что заполнение стеков координат сопровождается выборкой из них данных, в следствии чего всегда выполняется неравенство Рр < ГХ . Таким образом, необходимо точно определить размер Рр FIFO-стеков Гр и Хр координат смежных пикселей при размере изображения Г х X пикселей, наличии на нем одного сегмента (Л = 1), размер которого RS(1) совпадает с размером изображения ^^(1) = ГХ).
Вывод выражения для точного определения размера FIFO-стека координат смежных пикселей
Пусть квадратное изображение размером Г2 пикселей содержит единственную область такого же размера. Работу FIFO-стека в процессе сегментации такой области можно условно разделить на циклы. В пределах каждого цикла из FIFO-стека выгружаются все координаты пикселей, которые там находились в начале цикла, осуществляется их обработка и загрузка координат пикселей, смежных с обработанными.
Число координат, загруженных в FIFO-стек в каждом цикле зависит от положения начального пикселя роста (край или центр области). Если начальный пиксель роста находится в центре квадратной области, то в каждом цикле число элементов в FIFO-стеке увеличивается на 8 (рис. 2, а). Тогда число координат, загружаемых в FIFO-стек в последнем ((Г - 1)/2)-м цикле составляет 4(Г - 1) при условии, что Г -нечетное. Если начальный пиксель роста нахо-
в
а б в
Рис. 2. Распределение пикселей сегментируемой квадратной области по циклам обработки FIFO-стеков YF и Хр- при различном расположении начального пикселя роста: а - в центре области; б - в углу области; в - на краю области
а б в
Рис. 3. Распределение пикселей сегментируемой области: а - в окрестности углового пикселя; б -неуглового пикселя; в - при выборке с интервалом два пикселя
в окрестности
дится в углу квадратной области, то в каждом цикле число координат в ИБО-стеке увеличивается на 2 (рис. 2, б). Тогда число координат, загружаемых в ИБО-стек в последнем (У -1)-м цикле составляет 2У - 1. Таким образом, при сегментации области с положением начального пикселя роста в ее центре, требуется стек большей емкости (примерно в 2 раза), чем в случае, когда начальный пиксель роста расположен в углу области, а также в произвольном месте на границе области (рис. 2, в).
Для расчета емкости стека необходимо учесть также порядок выборки значений смежных пикселей. Окрестность углового пикселя (рис. 3, а) может содержать до 5-ти необработанных смежных пикселей, а окрестности других (неугловых) пикселей - до трех пикселей (рис. 3, б). Это значит, что при выборке из ИБО-стека координат углового пикселя на их место могут вернуться до 5-ти координат смежных пикселей и число координат в ИБО-стеке увеличится на 4, а при выборке из ИБО-стека координат неуглового пикселя на их место могут вернуться до трех координат смежных пикселей и число координат в ИБО-стеке увеличится на 2.
В рассматриваемом случае сегментации квадратной области с начальным пикселем роста в центре этой области наибольшее число координат в ИБО-стеке образуется, если в про-
цессе обработки окрестности области смежные пиксели выбираются не по порядку, а с интервалом два пикселя (рис. 3, в) и выборка начинается с 4-х угловых пикселей. Выгрузка из ИБО-стека координат 4-х угловых пикселей выращиваемой области приводит к возврату в ИБО-стек координат 16-ти смежных пикселей. Выгрузка из ИБО-стека координат неугловых пикселей с интервалом два пикселя в к-м цикле (всего 4(|_у/3]-1) пикселей при у = 2к 1 ,+к = 1, (У 1)/2- и нечетном значении У) приводит к возврату в ИБО-стек координат (8(|_у/3]-1)) -ти смежных пикселей, где | ] -операция округления в меньшую сторону. Выгрузка из ИБО-стека координат остальных неугловых пикселей не приводит к загрузке в стек новых координат (координаты всех смежных пикселей уже находятся в стеке) и число координат в ИБО-стеке уменьшается.
Таким образом, к концу цикла число координат в ИБО-стеке увеличится на 8 по сравнению с предыдущим циклом, однако в начале цикла разница в числе координат в ИБО-стеке между соседними циклами может достигать 16 + 8(|_ у/3] -1) при выборке смежных пикселей с интервалом два пикселя, начиная с угловых пикселей. В этом случае в последнем цикле, когда размер сегментируемой области совпадает с размером изображения, число координат в ИБО-стеке достигает максимального
5 4 3 3 3 3 3 3 3 4 5
н 4 3 2 2 2 2 2 3 4 5
н 4 3 2 1 1 1 2 3 4 5
4 3 2 1 0 1 2 3 4 5
5 4 3 2 1 1 1 2 3 4 5
5 4 3 2 2 2 2 2 3 4 5
5 4 3 3 3 3 3 3 3 4 5
Рис. 4. Распределение пикселей сегментируемой прямоугольной области по циклам обработки FIFO-стеков YF и Хр при расположении начального пикселя роста в центре области
значения, определяющего необходимый размер Рр FIFO-стека (число ячеек), вычисляемый с помощью выражения
Рр =16+8 ([-7/3]-1 ) . (2)
Для уточнения выражения, позволяющего определить необходимый размер Рр FIFO-стека в общем случае, когда размер изображения составляет 7 х X пикселей и 7 < X (7, X - нечетные), следует учесть, что максимальная загрузка стека достигается при сегментации прямоугольной области с начальным пикселем роста в центре этой области в ((7 - 1)/2)-м цикле, когда размер области составляет 7 х 7 (рис. 4).
В следующих циклах происходит выгрузка из FIFO-стека координат неугловых пикселей с интервалом два пикселя (по 2(|_7/3^ 1) пикселей в каждом цикле) и загрузка в FIFO-стек координат (4 (_7/3 ] +1)) -ти смежных пикселей. Выгрузка из FIFO-стека координат остальных неугловых пикселей не приводит к загрузке в стек новых координат (координаты всех смежных пикселей уже находятся в стеке) и число координат в FIFO-стеке уменьшается. Таким образом, выражение (2) может использоваться для определения необходимого размера Рр FIFO-стека, когда 7 < X и 7, X -нечетные.
Оценка экономии памяти при точном расчете размера FIFO-стека
На рис. 5 приведены зависимости размера Рр FIFO-стека (ячеек памяти), определяемого приблизительно (Рр (1)) с помощью выражения (1) и точно (Рр (2)) с помощью выражения (2), от размера 7Х изображения (пикселей).
Рис. 5. Зависимости размера FIFO-стека от размера изображения
Экономия Мр памяти при точном расчете необходимой емкости FIFO-стека по выражению (2) в сравнении с приблизительным расчетом по выражению (1) определяется с помощью отношения
Мр =
7Х
16 + 8 (|_7/ 3]-1)
(3)
при условии 7<Xи 7,X- нечетные.
Из рис. 5 следует, что экономия памяти при точном расчете необходимой емкости FIFO-стека растет с увеличением размера изображения и составляет 36,8 и 374,3 раза при размере изображения 100 х100 и 1000 х1000 пикселей соответственно.
Заключение
Получено выражение, позволяющее точно определить необходимый размер FIFO-стека для хранения координат смежных пикселей в зависимости от размера изображения для алгоритма сегментации на основе выращивания областей. При получении данного выражения приняты условия максимальной загрузки стека, когда: а) осуществляется сегментация квадратной области с начальным пикселем роста в центре этой области; б) в процессе обработки окрестности области смежные пиксели выбираются не по порядку, а с интервалом два пикселя; в) выборка начинается с 4-х угловых пикселей. Использование предложенного выражения для расчета необходимой емкости FIFO-стека обеспечивает уменьшение числа ячеек памяти в 36,8 и 374,3 раза при размере изображения 100 х 100 и 1000 х1000 пикселей соответственно.
REFERENCES
1. Kaur, N. Analysis and comprehensive study: image segmentation techniques / N. Kaur, J. Singh, V. Sharma // International Journal for Research in Applied Science & Engineering Technology (IJRASET). - 2015. -Vol. 3. - P. 241-246.
2. Moigne, J. L. Refining image segmentation by integration of edge and region data / J. L. Moigne, J. C. Tilton // IEEE transactions on geoscience and remote sensing. - May 1995. - Vol. 33, № 3. - P. 605-614.
3. Vasundhara, Ku. Study of Region Base Segmentation Method / Ku. Vasundhara, H. Lokhande // International Journal of Advanced Research in Computer Science and Software Engineering. - 2014. - Vol. 4. - P. 197-200.
4. Kamdi, S. Image Segmentation and Region Growing Algorithm / S. Kamdi, R. K. Krishna // International Journal of Computer Technology and Electronics Engineering (IJCTEE). - February 2012. - Vol. 2. - P. 103-107.
5. Wirth, N. Algorithms and Data Structures / N. Wirth. - Prentice Hall, 1985. - 212 pp.
6. Lipschutz, S. Schaum's Outline of 'Theory and Problems of Data Structures / S. Lipschutz. - McGraw-Hill Book Company, 1986. - 344 pp.
7. Kruse, R. L. Data Structures and Program Design in C++ / R. L. Kruse, A. J. Ryba. - New Jersey: Prentice-Hall, 2000. -717 pp.
Поступила После доработки Принята к печати
01.06.2019 11.07.2019 01.10.2019
TSVIATKOU V. YU.
DETERMINATION OF THE FIFO-STACK SIZE FOR THE ALGORITHM OF THE IMAGE REGION GROWING
The aim of the work is to derive an expression that allows determining the size of the FIFO-stack for storing the coordinates of adjacent pixels depending on the image size for the segmentation algorithm based on region growing. The FIFO stack, organized on the principle of a ring multi-bit shift register, is considered. The conditions for maximum loading of the FIFO stack are formulated, for which an expression is obtained that allows one to accurately determine the required size of the FIFO stack, which provides memory savings.
Keywords: FIFO-stack, image segmentation, region growing.
Цветков В. Ю. - Доктор технических наук, доцент, заведующий кафедрой инфокоммуникационных технологий Белорусского государственного университета информатики и радиоэлектроники. E-mail: [email protected].
V. Yu. Tsviatkou. Doctor of Engineering, associate professor, head of department of infocommunications of Belerusian state university of informatics and ra-dioelectronics.
Работа выполнена в рамках НИР «Разработка алгоритмов и программных средств обнаружения и сопровождения наземных объектов, определения их местоположения по изображениям земной поверхности» (№ госрегистрации 20182047).