IMPLEMENTATION OF SHARPENING FILTER IN RESIDUE NUMBER SYSTEM ON FPGA


Cite item

Full Text

Abstract

This work presents an effective implementation of sharpen filter based on Laplace operator on the field programmable gate array (FPGA) by using residue number system (RNS). We demonstrated that using of approximate method for performing RNS complex operations gives much productivity gain. A special coefficient was used to implement real numbers, which provides a recovering process of positional characteristic to be correct. We researched coefficient ranging for filter implementation, and used set of modules {15,16,31}, that is sufficient for the hardware implementation of digital image processing. We applied FIFO structure with dimension 2N + 2M-3 to implement the filter for sharpening image with resolution MxN, and proved sufficiency of this number. By simulting with FPGA Xilinx Kintex 7 XC7K70T we have got a number of used slices and circuit maximum operating frequency for images with resolutions of 64×64, 128×128, 256×256, 375×375, 512×512.

Full Text

Введение Повышение резкости изображений находит свое применение в различных отраслях - от цифровой печати до технического контроля в промышленности и систем военного назначения [1]. Аппаратная реализация фильтрации видеоизображений является важной прикладной задачей для эффективного решения которой применяются различные программно-аппаратные методы и алгоритмы. Одним из способов введения параллельности вычислений является использование системы остаточных классов (СОК). Фильтры повышения резкости С математической точки зрения повышение резкости может быть достигнуто пространственным дифференцированием, которое усиливает перепады и разрывы изображений и не подчеркивает области с медленным изменением уровней яркости. Простейшим изотропным оператором, основанным на производных и применяемым для повышения резкости, является лапласиан [2] , (1) где для частной второй производной используется формула , где - значение яркости изображения в точке с координатами . Применение оператора Лапласа выделяет разрывы уровней яркости и подавляет области со слабым её изменением. В итоге получается изображение с темным фоном, содержащее сероватые линии на месте контуров и других разрывов. Для получения изображения с увеличенной резкостью необходимо из исходного изображения вычесть его лапласиан, то есть , (2) где и - исходное изображение и изображение с повышенной резкостью. Подставляя в оператор (2) лапласиан (1) и определение второй частной производной, получим Запишем полученные коэффициенты в виде матрицы, тогда , или, задавая (2) в виде маски, получим . (3) Включение диагональных направлений в формулу (2) позволяет дополнительно увеличить резкость и приводит к маске . (4) Применение маски к исходному изображению является поэлементной операцией и выполняется попиксельно. Рассмотрим в качестве примера применение маски к фрагменту изображения с размерностью, равной размерности маски. Результатом такой операции будет значение результирующего пикселя. Так как диапазон значений пикселей равен , то все значения меньше нуля округляются до нуля, а все значения больше 255 - до 255. Таким образом, результатом вычислений будет значение пикселя, равное 0. Система остаточных классов Большое количество исследований посвящено поиску эффективных средств цифровой обработки изображений, среди которых выделяется применение системы остаточных классов [3-4]. СОК определяется набором положительных взаимно простых модулей и любое число , где - динамический диапазон, однозначно представляется упорядоченным набором остатков , где . Для представления отрицательных чисел динамический диапазон разбивается на равные части и можно однозначно представить любое число , удовлетворяющее одному из выражений при нечетном и при четном [5]. Проблема выбора набора модулей особо актуальна при аппаратной реализации цифровой обработки изображений. Так в [6] в качестве набора модулей взят набор при , то есть с динамическим диапазоном - это мотивируется тем, что значения пикселей расположены в диапазоне от 0 до 255, что входит в диапазон . В качестве маски используется оператор Лапласа, заданный матрицей (4). Однако в [6] не учитываются случаи, когда на вход подаются матрицы и , тогда результаты будут -2040 и 2295 соответственно, или округляя по правилам фильтрации 0 и 255. Если рассмотреть данный пример в СОК, получим (0, 4, 0) и (0,6,7), или в позиционной системе счисления 200 и 55. Данная ошибка связана с переполнением диапазона. Чтобы избежать этого, необходимо вычислить минимальное и максимальное значения, которые для фильтра (4) и . Тогда минимальный динамический диапазон должен быть равен и очевидно, что набора модулей не хватает. Приближенный метод определения знака и восстановления числа Если при выполнении сложения и умножения преимущества системы остаточных классов очевидны, то выполнение немодульных операций, таких как определение знака, переполнения диапазона, сравнение чисел, является проблемным [7]. В [8-9] показан приближенный метод сравнения чисел в СОК, основанный на использовании относительных величин анализируемых чисел к полному диапазону, определяемому Китайской теоремой об остатках (КТО) [10], согласно которой позиционное число определяется выражением: , (5) где и - мультипликативная инверсия относительно . Если левую и правую части выражения (5) разделить на величину , то получим приближенное значение , (6) где - константы выбранной СОК. Для восстановления числа умножим (6) на . В отличие от восстановления числа с помощью КТО, в данном методе нет необходимости находить остаток по большому модулю . Чтобы определить знак числа - воспользуемся следующим правилом: если , то число положительное, если , то число отрицательное. Т.о. мы имеем весь математический аппарат, как для десятичной системы, так и для системы остаточных классов, чтобы реализовать выполнение фильтра повышения резкости. FPGA реализация фильтра повышения резкости Моделирование фильтрации изображения с помощью маски (3) было проведено на FPGA Xilinx Kintex 7 XC7K70T, на вход которой подавались 8-битные числа со значениями пикселей изображения в оттенках серого. Так как хранение всего изображения размерности в LUT’ах FPGA занимает значительную площадь, нами был использована FIFO структура размерности бит. Докажем достаточность данного числа. Для первого выполнения фильтра необходимо иметь в памяти значений пикселей (первые две строки и количество столбцов фильтра). После выполнения фильтрации первой строки изображения, при переходе на вторую, необходимо накопить дополнительно два пикселя. Всего таких накоплений будет . Перемножая и складывая следующие величины, получим бит. В качестве системы оснований была выбрана система вида при , то есть c динамическим диапазоном . Данный набор выбран в связи с относительной простотой аппаратной реализации операции нахождения остатка от деления по данным модулям. На вход FPGA также подавались 8-битный числа, которые после блока перевода в СОК заполняли две FIFO-структуры, содержащие 4-битные числа и одну, содержащую 5-битные числа. Далее процесс фильтрации проходил по трем параллельным потокам по модулям 15, 16 и 31, после чего данные поступали на блок сравнения и восстановления числа. Для определения позиционной характеристики была использована формула (6). Поскольку аппаратная реализация рациональных чисел весьма проблематична, константы были умножены на , где - наименьшее значение, при котором восстановление позиционной характеристики из представления в СОК будет корректным [9], , - динамический диапазон. Тогда после умножений и сложений в формуле (6) берется остаток по модулю . Для определения отрицательных чисел было проведено сравнение с , а для определения выхода за 255 - сравнение с 17969, что соответствует значению, полученному по формуле (6) для числа 255 и умноженному на . Результаты моделирования Для моделирования была использована FPGA Xilinx Kintex 7 XC7K70T и стандартное изображение Lena с разрешениями , , , и . В качестве критериев оценки были использованы максимальная частота работы схемы и количество использованных слайсов. Результаты моделирования показаны в таблице 1. Стоит заметить, что этап трассировки СОК реализации для изображения закончился с ошибкой из-за большого числа сигналов. Таблица 1. Результаты моделирования фильтрации Количество используемых слайсов Максимальная частота работы, МГц 1862 80 3716 76 7946 75 10054 73 10180 72 Заключение Таким образом, в работе показана применимость СОК для задач фильтрации изображений. Показаны критерии выбора динамического диапазона, введена FIFO структура определенного размера, что повышает эффективность использования FPGA. Применение приближенного метода сравнения чисел позволяет улучшить скорость работы, по сравнению другими методами. Моделирование на FPGA Xilinx Kintex 7 XC7K70T позволило определить необходимые аппаратные затраты для представленных разрешений изображений.
×

About the authors

Viktor Andreevich Kuchukov

North Caucasian Federal University

Email: viktor-kuchukov@yandex.ru

Nikolay Ivanovich Chervyakov

North Caucasian Federal University

Email: k-fmf-primath@stavsu.ru

References

  1. Гонсалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2012. - 1104 с.
  2. Rosenfeld A., Kak A. Digital Picture Processing // Academic Press, Incorporated. V.1, 1982.
  3. Червяков Н.И. Реализация высокоэффективной модулярной цифровой обработки сигналов на основе программируемых логических интегральных схем // Нейрокомпьютеры: разработка, применение. №10, 2006. - С. 24-36.
  4. Ammar A., Al Kabbany A., Youssef M., Amam A. A secure image coding scheme using residue number system // Radio Science Conference, 2001. NRSC 2001. Proceedings of the Eighteenth National, IEEE. V.2, 2001. - P. 399-405. doi: 10.1109/NRSC.2001.929397.
  5. Omondi A., Premkumar B. Residue number systems: theory and implementation // Imperial College Press, 2007. - 312 p.
  6. Taleshmekaeil D. K., Mousavi A. The use of residue number system for improving the digital image processing // Signal Processing (ICSP), 2010. - P. 775-780. doi: 10.1109/ICOSP.2010.5655920.
  7. Червяков Н.И., Сахнюк П.А., Шапошников А.В., Макоха А.Н. Нейрокомпьютеры в системе остаточных классов. М.: Радиотехника, 2003. - 272 c.
  8. Червяков Н.И., Авербух В.М., Бабенко М.Г., Ляхов П.А., Гладков А.В., Гапочкин А.В. Приближенный метод выполнения немодульных операций в системе остаточных классов // Фундаментальные исследования. №6-1, 2012. - C. 189-193.
  9. Червяков Н.И., Бабенко М.Г., Ляхов П.А., Лавриненко И.Н. Приближенный метод определения знака числа в системе остаточных классов и его техническая реализация. // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. Т. 4 (176), 2013. - С. 131-141.
  10. Акушский И.Я., Юдицкий Д.И. Машинная арифметика в остаточных классах. М.: Сов. радио, 1968. - 500 с.

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2015 Kuchukov V.A., Chervyakov N.I.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies