УДК 621.397, 621.383
УЛУЧШЕНИЕ КАЧЕСТВА ПОТОКОВЫХ ИЗОБРАЖЕНИЙ В РЕАЛЬНОМ ВРЕМЕНИ МЕТОДОМ CLAHE
И.Ю.Грицкевич, А.С.Виноградов, Д.С.Григорьев, М.Н.Петров* PROCESSING OF STREAM IMAGES IN REAL TIME BY CLAHE METHOD
I.Iu.Gritskevich, A.S.Vinogradov, D.S.Grigor'ev, M.N.Petrov*
АО «ОКТБ «ОМЕГА», Великий Новгород, [email protected] *Институт электронных и информационных систем НовГУ
Технология контрастно-ограниченной адаптивной эквализации гистограммы позволяет повысить видимость деталей изображения путем увеличения контраста локальных областей. Этот метод основан на расчете гистограмм отдельных блоков изображения (плиток). Однако реализация CLAHE требует значительных вычислительных затрат, что ограничивает его применение для областей, требующих предоставления информации в реальном масштабе времени. В данной работе предложен алгоритм, позволяющий повысить быстродействие метода за счет реализации параллельной обработки информации на ПЛИС.
Ключевые слова: выравнивание гистограммы, улучшение изображения, потоковое видео, ПЛИС
Contrast limited adaptive histogram equalization (CLAHE) is a technique to enhance the visibility of local details of an image by increasing the contrast in local regions. CLAHE computes several histograms of intensity values, each corresponding to a distinct region of the image. However, complexity of the interpolation process increases the computation demand dramatically. In this paper, we propose an approach for real-time computation of CLAHE using an FPGA. Keywords: histogram equalization, image enhancement, stream video, FPGA
Введение
Отснятая камерой последовательность кадров может иметь недостаточно высокое качество вследствие воздействия ряда дестабилизирующих факторов: низкой освещенности, плохих погодных условий, а также наличия собственных или тепловых шумов элементов светочувствительной матрицы. Это наблюдается и для других типов изображений. Например, для получения качественных снимков рентгеновских изображений требуются большие выдержки, что не всегда приемлемо на практике. В результате теряется информативность изображения и, как следствие, появление ошибок при интерпретации его содержания.
Для устранения указанных недостатков к настоящему времени разработан обширный спектр методов улучшения качества снимков, основанных на преобразовании гистограммы изображения. К наиболее эффективным среди них следует отнести метод под названием «контрастно-ограниченная эквализа-ция гистограммы» (СЬАНБ), получивший в последнее время широкое распространение. Однако его реализация требует достаточно большого времени, что ограничивает применение для областей, требующих предоставления информации в реальном масштабе времени.
Данная работа посвящена разработке методики повышения скорости выполнения указанного метода путем комбинированного применения аппаратных и программных средств, реализованных на базе ПЛИС.
1. Разработка алгоритма
В случае обработки цветных изображений, поступающих с камеры в RGB-формате, содержащем
три цветовых канала, их необходимо преобразовать в один из форматов, где выполнено разделение цветовой и яркостной информации. Для черно-белого изображения такой проблемы не возникает ввиду наличия в нем только одного яркостного канала.
В данной работе за условную единицу принят квадратный фрагмент изображения (плитка), состоящий из H пикселей по высоте и ширине. Структурная схема разработанного алгоритма представлена на рис.1.
Ниже приведены основные этапы выполнения данного алгоритма:
1. Загрузка видеоданных из внешней памяти либо непосредственно с матрицы изображения в реальном времени в RGB формате (Пиксели изображения).
2. Для разделения яркостной и цифровой составляющих изображения выполняется преобразование RGB формата в пространство HSV (RGB to HSV преобразователь), которое содержит три канала: один яркостной V(Value) и два цветовых S(Saturation) и H(Hue).
3. Данные, размещенные в цветовых каналах S(Saturation) и H(Hue), сохраняются в соответствующих буферах памяти ПЛИС.
4. Данные яркостной компоненты V(Value) сохраняются во внутреннем буфере размером в длину строки кадра, помноженную на количество строк (Н) в двух плитках (принятых за минимальные).
5. При первом чтении из входного буфера (Память в ПЛИС) выполняется загрузка каждой плитки в конвейер обработки и расчета гистограмм. Одновременно производится их усечение путем расчета общего превышения над порогом, заданным в процентах от общего количества пикселей в каждой плитке.
Рис.1. Структурная схема реализации алгоритма CLAHE
6. После расчета гистограмм для двух плиток вычисляются их кумулятивные функции распределения и функция трансформации [1]. Полученные результаты записываются в тот же самый буфер, где хранились гистограммы плиток. Затем осуществляется последовательное выполнение перечисленных операций над остальными плитками кадра. Полученные в результате расчета коэффициенты записываются в буферы, которые использовались ранее для расчета гистограмм. Такой процесс носит название пространственной конвейеризации.
7. После расчета коэффициентов трансформации производится считывание значений пикселей плиток (третье чтение из входного буфера) с присваиванием им новых значений с учетом функции трансформации, а также с учетом положения данного пикселя относительно других (всего считываются 4 коэффициента). В зависимости от места взаимного расположения плиток выполняется один из трех вариантов интерполяции: билинейная, линейная или без интерполяции [2]. С учетом того, что выходной буфер имеет размерность в Н строк, в начале выдаются Н/2 строк, и только после расчета коэффициентов для следующих плиток выдаются остальные. После прохождения первых Н строк, данные выдаются сразу,
как только рассчитываются коэффициенты четырех плиток (пиксели, для которых необходимо выполнить билинейную интерполяцию, могут быть рассчитаны только в случае, если известны коэффициенты окружающих пикселей).
8. После выполнения необходимых преобразований производится запись полученных новых ярко-стных значений пикселей в канал V(Value).
9. Выполняется чтение всех соответствующих компонент HSV изображения с последующим преобразование в формат RGB (HSVto RGB преобразователь).
Для увеличения скорости обработки изображения был предложен вариант преобразования, при котором показанные выше блоки в устройстве делят принятые строки плиток на их количество (временная конвейеризация). Далее обработанные фрагменты необходимо сшить с перекрытием (одной плитки в ходе экспериментов оказалось достаточно). Ниже показана схема (рис.2) работы этого фрагмента алгоритма.
Здесь без штриховки обозначены области, для которых интерполяция не выполняется, штриховкой слева-направо показаны области линейной интерполяции, штриховкой крест-накрест — области билинейной интерполяции. Области, заштрихованные точками (крайние области двух потоков, пересекаю-
2 Поток пикселей ((р1к гсилг/2)*Н)
Поток пикселей((р'х +
Рис.2. Обработка изображения в два потока с перекрытием в одну плитку
щие друг друга) не используются, области с билинейной интерполяцией от разных потоков обозначены штриховкой в виде шахматного поля.
Два потока перекрывают строки кадра таким образом, что в местах их соприкосновения нет областей без билинейной интерполяции, обработанных одним из потоков.
Разработанный алгоритм позволяет производить гибкую настройку реализуемой системы, а
так же дает возможность параллельного использования нескольких блоков для обработки разных частей изображения и возможность обрабатывать широкий поток, не увеличивая частоту работы блока.
2. Апробация предложенного алгоритма
Пример функционирования предложенного алгоритма приведен на рис.3.
Рис.3. Иллюстрация работы предложенного алгоритма: слева оригинальное изображение, в центре пример эквализации отдельных областей (плиток) без интерполяции, справа — результат применения контрастно ограниченной локальной эквализа-ции после интерполяции при обработке в два потока
Метод обработки
Сравниваемый параметр Метод_1 [3] Метод_2 [4] Наш метод один поток Наш метод два потока
Обрабатываемый поток Мpix/с, при максимальной частоте 61 (209,6 Mhz) 62 (69 Mhz) 60,6 (200 Mhz) 118,19(200 Mhz)
Частота кадров для разрешения 1920*1080 33 fps 33,3 fps 29,224 fps 57 fps
Количество используемой памяти ПЛИС (256+64)*10 Kb 16*18 KB 96*10kb 104*10kb
Количество логики (унифицировано LEs) 64246 Les(32123 Luts) (640*480) 10723Les(4766) (640*480) 3500Les (1412 ALM) (1920*1080) 7000Les (2824 ALM) (1920*1080)
3. Сравнение с аналогичными работами
В представленной выше таблице приведено сравнение предложенного алгоритма с аналогами.
Следует отметить, что для реализации СЬЛНБ критичен выбор двух параметров: лимита среза и размера плитки, которые обычно определяются пользователем вручную [5]. В разработанном алгоритме эти параметры могут регулироваться в любых пределах (причем данные параметры возможно изменять в ходе обработки, то есть, существует возможность для авторегулирования и подстройки под окружающие условия), ограниченных лишь памятью ПЛИС. Это позволяет адаптировать данные параметры под конкретное изображение и получить максимально детализированную картину [6]. В аналогичных работах размер плитки задается фиксированным (например 64^64 в [7]), что дает преимущество в виде уменьшения количества операций над кадром, но за счет потери качества [8].
Помимо этого, в разработанном алгоритме коэффициенты рассчитываются и применяются к одному и тому же кадру, каждый кадр загружается в блок однократно, построчно и выдаётся там же. Поэтому для работы алгоритма не требуется наличия внешней памяти.
Заключение
Предложенный в работе алгоритм обработки видео кадров позволяет варьировать скорость обработки кадров в широких пределах без изменения количества потребляемой памяти, увеличив лишь количество занятой логики.
Использование пространственной и временной конвейеризации позволило увеличить скорость обработки по сравнению с имеющимися решениями [3,4].
Новизна работы заключается в оптимизации и модернизации алгоритма локального контрастирования (локальной контрастно-ограниченной эквализа-ции) путем реализации параллельных вычислений на аппаратном уровне.
1. Ali M. Reza. Realization of the contrast limited adaptive histogram equalization (CLAHE) for real-time image enhancement. Journal of VLSI Signal Processing, 2004, vol. 38, pp. 35-44.
2. Agalya P., Hanumantharaju M.C., Gopalakrishna M.T. A detailer review of color image contrast enhancement techniques for real time applications. Proc. 3d Int. Conf. on Information Systems Design and Intelligent Applications (INDIA - 2016). Visakhapatnam, 2016, pp. 487-497.
3. Pizer S.M., Amburn E.P., Austin J.D. et al. Adaptive histogram equalization and its variations. Computer Vision, Graphics, and Image Processing, 1987, vol. 39, no. 3, pp. 355-368.
4. Klupsch S., Ernst M., Huss S.A., Rumpf M., Strzodka R. Real time image processing based on reconfigurable hardware acceleration. Proc. of the IEEE Workshop "Heterogeneous Reconfigurable Systems on Chip (SoC)". Hamburg, 2002, pp. 1-7.
5. Kokofuta K., Maruyama T. Real-time processing of contrast-limited adaptive histogram equalization on FPGA. Proc. 20th Int. Conf. on Field Programmable Logic and Applications (FPL). Milano, 2010, pp. 155-158.
6. Sajeev S., Bajger M., Lee G. Segmentation of breast masses in local dense background using adaptive clip limit-CLAHE. Proc. Int. Conf. on Digital Image Computing: Techniques and Applications (DICTA-2015). Adelaide, 2015, pp. 669676.
7. Sund T., Moystad A. Sliding window adaptive histogram equalization of intra-oral radiographs: effect on diagnostic quality. Dentomaxillofacial Radiology, 2006, vol. 35(3), pp. 133-138.
8. Unal B., Akoglu A. Resource efficient real-time processing of contrast limited adaptive histogram equalization. Proc. 20th Int. Conf. on Field Programmable Logic and Applications (FPL). Lausanne, 2016, p. 7577362.