Clear Sky Science · ru

Проекты неточных знаковых умножителей на FPGA для высокопроизводительных приложений обработки изображений

· Назад к списку

Умная математика для более чётких изображений

Каждая цифровая фотография, которую вы делаете, зависит от миллиардов мелких вычислений за кулисами. Многие из этих вычислений — умножения, и их выполнение быстро и эффективно критично для камер, телефонов и встроенных устройств. В этой статье исследуют, как можно сознательно допускать крошечные, контролируемые погрешности в этих умножениях, чтобы экономить энергию и аппаратные ресурсы, сохранив при этом визуально неотличимое для человеческого глаза качество изображения.

Figure 1
Figure 1.

Почему несовершенно может быть достаточно

Не каждое вычисление должно быть совершенно точным, чтобы быть полезным. В обработке изображений и сигналов конечный результат просматривают люди, которые обычно не видят эффекта очень небольших численных ошибок. Эта идея, называемая приближёнными вычислениями, меняет часть математической точности на большие выигрыши в скорости, экономии энергии и сокращении площади на кристалле. Умножение — одна из самых затратных операций в таких системах, и традиционные решения ориентированы на точные результаты с высокими аппаратными затратами. Авторы сосредотачиваются на создании умножителей, работающих как с положительными, так и с отрицательными числами (знаковые умножители), и адаптированных к популярной перепрограммируемой платформе — FPGA. Существующие приближённые умножители в основном проектировались для заказных микросхем и для беззнаковых чисел, поэтому они плохо переносятся в реальные системы обработки изображений, где широко используется знаковая арифметика.

Строительные блоки внутри перепрограммируемого чипа

Современные FPGA состоят из повторяющихся блоков, называемых таблицами поиска (LUT) и быстрыми цепочками переноса, которые особенно хороши для выполнения сложения. Авторы сначала анализируют, как точный 8-битный знаковый умножитель можно собрать из этих блоков. Они внимательно изучают внутреннюю структуру операций, чтобы выявить повторяющиеся или ненужные структуры, такие как дублирующая логика и чрезмерные расширения битов знака. Перестраивая дизайн, объединяя похожие части и отбрасывая биты произведения, которые никогда не нужны из-за ограниченного диапазона входов, они создают компактный «точный» эталонный умножитель, который уже использует меньше логических элементов и имеет более короткие пути сигналов через кристалл. Этот оптимизированный эталон затем служит основой для их приближённых разработок.

Два варианта приближённых умножителей

Исходя из этого оптимизированного эталона, авторы предлагают два приближённых 8-битных знаковых умножителя. Оба опираются на простую идею: наименее значимые биты выхода вносят наименьший вклад в качество изображения, поэтому их можно упростить или зафиксировать без заметного визуального эффекта. В Приближенном дизайне 1 семь наименее значимых битов выходного слова не вычисляются точно, но их внутренние сигналы переноса всё ещё генерируются и управляются осторожно. Перебор множества вариантов позволяет подобрать постоянные значения для этих низких битов, которые сохраняют низкую среднюю ошибку. Приближённый дизайн 2 идёт дальше: он удаляет как низкие выходные биты, так и их локальные переносы, существенно сокращая объём аппаратных средств. В обоих случаях структура затем перестраивается так, чтобы упаковать несколько небольших операций в каждую таблицу поиска и выровнять их с быстрыми цепочками переноса, что приводит к компактным «сетевым спискам» схем, эффективно отображающимся на ткани FPGA.

Figure 2
Figure 2.

Производительность, энергопотребление и качество изображений

Оба дизайна тщательно протестированы на FPGA Xilinx Virtex-7 и сопоставлены с многочисленными существующими приближёнными умножителями. Авторы измеряют, сколько таблиц поиска используется, какова длина самого медленного пути сигнала и сколько динамической энергии потребляют схемы. Они также исчерпывающе симулируют все комбинации входов, чтобы количественно оценить среднюю и худшую случаи ошибки умножения. Оба новых умножителя достигают лучшего баланса этих факторов по сравнению с конкурентными подходами: они используют меньше ресурсов, имеют меньшие задержки и потребляют меньше энергии при похожей или даже меньшей средней ошибке. Более грубый дизайн, Приближённый дизайн 2, использует наименьшее количество аппаратуры и энергии, ценой большей худшей ошибки, тогда как Приближённый дизайн 1 даёт более строгие пределы ошибки при слегка большем использовании ресурсов. Чтобы показать влияние в реальных задачах, авторы встроили эти умножители в две распространённые операции обработки изображений — смешивание изображений и сглаживание — и оценили результаты стандартными метриками визуального качества. В обоих задачах полученные изображения остаются очень близки к тем, что даёт точный умножитель, с высокими отношениями сигнал/шум по пику и показателями структурного сходства, без очевидной деградации для человеческого наблюдателя.

Что это значит для повседневных устройств

Работа показывает, что тщательно спроектированная «достаточно хорошая» арифметика может значительно уменьшить размер и энергопотребление перепрограммируемого аппаратного обеспечения, одновременно сохранив качество изображений. Используя природную устойчивость изображений к небольшим численным ошибкам и адаптируя дизайн к конкретным строительным блокам FPGA, авторы создают знаковые умножители, которые одновременно быстры и экономны. Для будущих камер, систем встроенного зрения или ускорителей ИИ, которым нужно работать в жёстких бюджетах по энергии и стоимости, такие приближённые умножители предлагают практический способ выжать больше производительности, не жертвуя тем, что в конечном счёте важнее всего: тем, как итоговое изображение выглядит для человеческого глаза.

Цитирование: Hassan, J., Khurshid, B., Banday, S.A. et al. FPGA-based imprecise signed multiplier designs for high-performance image processing applications. Sci Rep 16, 10084 (2026). https://doi.org/10.1038/s41598-026-40524-4

Ключевые слова: приближённые вычисления, умножители для FPGA, аппаратное обеспечение для обработки изображений, энергоэффективный дизайн, знаковая арифметика