In-place алгоритмы эффективно используют память, уже выделенную для входных данных, ограничиваясь лишь незначительным дополнительным объемом памяти для промежуточных вычислений. Для изображений ширины, равной степени двойки, известен in-place алгоритм, являющийся вариацией стандартного алгоритма Брейди – Ёна для вычисления преобразования Хафа. Однако этот алгоритм неприменим к изображениям с произвольной шириной, наиболее часто встречающимся на практике. Напротив, out-of-place алгоритм FHT 2DS может обрабатывать изображения различных размеров. В настоящей статье представлен in-place вариант алгоритма FHT 2DS, названный FHT 2IDS. Мы показываем, что алгоритм FHT 2IDS дает такие же результаты, как и алгоритм FHT 2DS, но использует значительно меньше памяти на каждом шаге рекурсии. В частности, на каждом шаге рекурсии алгоритм FHT 2IDS требует массива размера не более w+h (где w и h – ширина и высота изображения), в то время как алгоритм FHT 2DS требует массива размера wh. Экспериментальные результаты показывают, что алгоритм FHT 2IDS, реализованный на C/C++, работает на 26% быстрее своего out-of-place аналога, алгоритма FHT 2DS. Алгоритм FHT 2IDS также доступен на Python через открытый исходный код библиотеки adrt.
Индексирование
Scopus
Crossref
Высшая аттестационная комиссия
При Министерстве образования и науки Российской Федерации