Optimal vicinity 2D median filter for fixed-point or floating-point values
Date
2024-06-19
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Pontificia Universidad Católica del Perú
Abstract
Los filtros medianos son una técnica digital no lineal normalmente usada para remover
ruido blanco, ’sal y pimienta’ de imágenes digitales. Consiste en reemplazar el valor de
cada pixel por la mediana de los valores circundantes.
Las implementaciones en punto flotante usan ordenamientos con técnicas de comparación
para encontrar la mediana. Un método trivial de ordenar n elementos tiene una
complejidad de O(n2), y los ordenamientos más rápidos tienen complejidad de O(n log n)
al calcular la mediana de n elementos. Sin embargo, éstos algoritmos suelen tener fuerte
divergencia en su ejecución.
Otras implementaciones usan algoritmos basados en histogramas, y obtienen sus mejores
desempeños cuando operan con filtros de ventanas grandes. Estos algoritmos pueden
alcanzar tiempo constante al evaluar filtros medianos, es decir, presenta una complejidad
de O(1).
El presente trabajo propone un algoritmo de filtro mediano rápido y altamente paralelizable.
Se basa en ordenamientos sin divergencia con ejecución O(n log2 n) y mezclas O(n)
con los cuales se puede calcular grupos de pixeles en paralelo. Este método se beneficia de
la redundancia de valores en pixeles próximos y encuentra la vecindad de procesamiento
óptima que minimiza el número de operaciones promedio por pixel. El presente trabajo
(i) puede procesar indiferentemente imágenes en punto fijo o flotante, (ii) aprovecha al
máximo el paralelismo de múltiples arquitecturas, (iii) ha sido implementado en CPU y
GPU, (iv) se logra una aceleración respecto al estado del arte.
Median filter is a non-linear digital technique often used to remove additive white, salt and pepper noise from images. It replaces each pixel value by the median of the surrounding pixels. Floating point implementations use sorting and comparing techniques to find median. A common method for sorting n elements has complexity O(n2), and the fastest sorting ones have complexity O(n log n) when computing the median of n elements. However, such fastest algorithms have strong divergence in their execution. Other implementations use histogram based algorithms and have their best performance for large size windows. These histogram based achieve constant time median filtering, exhibiting O(1) complexity. A fast and highly parallelizable median filter algorithm is proposed. It is based on sorting without divergence execution O(n log2 n) and merge O(n) that computes groups of pixels in parallel. The method benefits from redundancy values in neighboring pixels and finds the optimal vicinity that minimize the average operations per pixel. The present work (i) can process either fixed or floating point images, (ii) take full advantage of parallelism of multiple architectures, (iii) have been implemented on CPU and GPU, (iv) the results speed up state of the art implementations.
Median filter is a non-linear digital technique often used to remove additive white, salt and pepper noise from images. It replaces each pixel value by the median of the surrounding pixels. Floating point implementations use sorting and comparing techniques to find median. A common method for sorting n elements has complexity O(n2), and the fastest sorting ones have complexity O(n log n) when computing the median of n elements. However, such fastest algorithms have strong divergence in their execution. Other implementations use histogram based algorithms and have their best performance for large size windows. These histogram based achieve constant time median filtering, exhibiting O(1) complexity. A fast and highly parallelizable median filter algorithm is proposed. It is based on sorting without divergence execution O(n log2 n) and merge O(n) that computes groups of pixels in parallel. The method benefits from redundancy values in neighboring pixels and finds the optimal vicinity that minimize the average operations per pixel. The present work (i) can process either fixed or floating point images, (ii) take full advantage of parallelism of multiple architectures, (iii) have been implemented on CPU and GPU, (iv) the results speed up state of the art implementations.
Description
Keywords
Procesamiento paralelo (Computadoras electrónicas), Procesamiento de imágenes digitales, Algoritmos
Citation
Endorsement
Review
Supplemented By
Referenced By
Creative Commons license
Except where otherwised noted, this item's license is described as info:eu-repo/semantics/openAccess