2D двусторонняя фильтрация
Vision HDL Toolbox / Фильтрация
Блок Bilateral Filter фильтрует изображения при сохранении ребер. Некоторые приложения двусторонней фильтрации являются шумоподавлением при сохранении ребер, разделении структуры от освещения и cartooning, чтобы улучшить ребра. Фильтр заменяет каждый пиксель в центре окружения средним значением, которое вычисляется с помощью пространственного и интенсивность Гауссовы фильтры. Блок определяет коэффициенты фильтра из:
Пространственное местоположение в окружении (похожий на Гауссов фильтр размытия)
Различие в интенсивности от окружения сосредотачивает значение
Блок обеспечивает два параметра стандартного отклонения для независимого управления пространственных коэффициентов и коэффициентов интенсивности.
Этот блок использует пиксельный интерфейс потоковой передачи с pixelcontrol
соедините шиной для сигналов управления кадром. Этот интерфейс позволяет блоку действовать независимо от размера изображения и формата. Все блоки Vision HDL Toolbox™ используют тот же интерфейс потоковой передачи. Блок принимает и возвращает скалярное пиксельное значение и шину, которая содержит пять управляющих сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в системе координат. Чтобы преобразовать систему координат (пиксельная матрица) в последовательный пиксельный поток и управляющие сигналы, используйте блок Frame To Pixels. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.
pixel
— Один пиксель изображенияОдин пиксель изображения пиксельного потока в виде интенсивности представления скалярного значения. Это значение интерпретировано на области значений [0,1], приняв целую область значений типа входных данных. Целое число и типы данных с фиксированной точкой, больше, чем 16 битов, не поддерживаются.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: uint8
| uint16
| int8
| int16
| fixed point
| Boolean
| double
| single
ctrl
— Управляющие сигналы сопоставлены с пиксельным потокомpixelcontrol
шинаЗадайте pixelcontrol
соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.
Типы данных: bus
pixel
— Один пиксель изображенияОдин пиксель изображения в пиксельном потоке, возвращенном как интенсивность представления скалярного значения. Целое число и типы данных с фиксированной точкой, больше, чем 16 битов, не поддерживаются.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: uint8
| uint16
| int8
| int16
| fixed point
| Boolean
| double
| single
ctrl
— Управляющие сигналы сопоставлены с пиксельным потокомpixelcontrol
шинаУправляющие сигналы сопоставлены с пиксельным потоком, возвращенным как pixelcontrol
соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.
Типы данных: bus
Neighborhood size
— Размер области изображений к среднему значению3×3
(значение по умолчанию) | 5×5
| 7×7
| 9×9
| 11×11
| 13×13
| 15×15
Размер области изображений использовался для расчета среднего значения в виде N-by-N пиксельный квадрат.
Spatial standard deviation
— Пространственная цель стандартного отклонения
(значение по умолчанию) | положительное вещественное числоПространственная цель стандартного отклонения использовалась для расчета коэффициентов в пространственном Гауссовом фильтре в виде положительного вещественного числа. Этот параметр не имеет никаких пределов, но рекомендуемые значения от 0,1 до 10. На верхнем уровне распределение становится плоским, и коэффициенты малы. На нижнем уровне распределение достигает максимума в центре и имеет маленькие коэффициенты в остальной части окружения. Эти граничные значения также зависят от размера окружения и типа данных, используемого для коэффициентов.
Intensity standard deviation
— Цель стандартного отклонения интенсивности
(значение по умолчанию) | положительное вещественное числоСтандартное отклонение интенсивности предназначается для использованных для расчета коэффициентов для интенсивности Гауссов фильтр в виде положительного вещественного числа. Этот параметр не имеет никаких пределов, но рекомендуемые значения от 0,1 до 10. На верхнем уровне распределение становится плоским, и коэффициенты малы. На нижнем уровне распределение достигает максимума в центре и имеет маленькие коэффициенты в остальной части окружения. Эти граничные значения также зависят от размера окружения и типа данных, используемого для коэффициентов.
Когда стандартное отклонение интенсивности является большим, двусторонние действия фильтра больше как Гауссов фильтр размытия, потому что Гауссова интенсивность имеет более низкий пик. С другой стороны, когда стандартное отклонение интенсивности меньше, ребра в интенсивности сохранены или улучшены.
Padding method
— Метод для дополнения контура входного изображенияConstant
(значение по умолчанию) | Replicate
| Symmetric
| None
Выберите один из этих методов для дополнения контура входного изображения. Для получения дополнительной информации об этих методах, смотрите, что Ребро Дополняет.
Constant
— Интерпретируйте пиксели вне фрейма изображения как наличие постоянного значения.
Replicate
— Повторите значение пикселей в ребре изображения.
Symmetric
— Установите значение дополнительных пикселей, чтобы зеркально отразить ребро изображения.
None
— Исключите дополнительную логику. Блок не устанавливает пиксели вне фрейма изображения ни к какому конкретному значению. Эта опция уменьшает аппаратные ресурсы, используемые блоком и очищением, требуемым между системами координат, но влияет на точность выходных пикселей в ребрах системы координат. Чтобы обеспечить пиксельную потоковую синхронизацию, выходная система координат одного размера с входным кадром. Однако избегать использования пикселей, вычисленных от неопределенных дополнительных значений, маски от KernelSize/2 пиксели вокруг ребра системы координат для нисходящих операций. Для получения дополнительной информации смотрите Пропускную способность Увеличения с Дополнением Ни одного.
Padding value
— Значение раньше заполняло контур входного изображения
(значение по умолчанию) | целое числоЗадайте целое число, чтобы заполнить контур входного изображения. Блок бросает это значение к совпадающему типу данных как входной пиксель.
Чтобы включить этот параметр, установите параметр Padding method на Constant
.
Line buffer size
— Размер буфера памяти линии
(значение по умолчанию) | положительное целое числоЗадайте степень двойки, которая вмещает количество активных пикселей в одной горизонтальной линии.
Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки.
Rounding mode
— Режим Rounding для внутренних вычислений фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Когда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм использует вычисления с фиксированной точкой для внутренних вычислений. Эта опция не применяется, когда типом входных данных является single
или double
.
Saturate on integer overflow
— Режим переполнения для внутренних вычислений фиксированной точкиКогда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм использует вычисления с фиксированной точкой для внутренних вычислений. По умолчанию значения фиксированной точки насыщают на переполнении. Эта опция не применяется, когда типом входных данных является single
или double
.
Coefficients Data Type
— Метод, чтобы определить тип данных коэффициентов фильтраInherit: Same as first input
(значение по умолчанию) | fixdt(1,16,0)
| выражение типа данныхЗадайте тип данных без знака, который может представлять значения меньше чем 1. Коэффициенты обычно требуют типа данных с большей точностью, чем тип входных данных. Блок вычисляет коэффициенты на основе размера окружения и значений Intensity standard deviation и Spatial standard deviation. Большие окружения распространяют Гауссову функцию, таким образом, что каждое содействующее значение меньше. Большее стандартное отклонение сглаживает Гауссово так, чтобы коэффициенты были более универсальными по своей природе, и меньшее стандартное отклонение производит остроконечный ответ.
Примечание
Если вы пробуете тип данных и после того, как квантование, больше чем половина коэффициентов становится нулевой, блок выдает предупреждение. Если все коэффициенты являются нулем после того, как квантование, блок выдаст ошибку. Эти сообщения означают, что блок не мог описать требуемый фильтр при помощи заданного типа данных. Чтобы избежать этой проблемы, выберите содействующий тип данных более высокой точности или скорректируйте цели стандартного отклонения.
Output Data Type
— Метод, чтобы определить тип данных выходных пикселейInherit: Same as first input
(значение по умолчанию) | fixdt(1,16,0)
| выражение типа данныхОтфильтрованные пиксельные значения брошены к этому типу данных.
Двусторонний фильтр может быть описан как Гауссов фильтр в пространственной размерности, которая изменяет коэффициенты второго Гауссова фильтра, который работает с интенсивностью.
Алгоритм хранит N-1 линия так, чтобы это могло сформировать N-by-N матрица пикселей, совпадающих с Neighborhood size. Затем это применяет два Гауссовых фильтра на каждое окружение. Коэффициенты фильтра вычисляются от пространственных стандартных отклонений и стандартных отклонений интенсивности.
Операция Subtract Center производит пиксельное значение нуля в центре окружения. Для аппаратной реализации, и для симуляции типов данных с фиксированной точкой или целочисленных типов данных, вычисление в пунктирной области реализовано с интерполяционной таблицей предварительно вычисленных значений для каждого пикселя. Поскольку центральное значение всегда является нулем, u2, и eu всегда один и не вычисляются. Для входа с плавающей точкой симуляция вычисляет u2 и eu как показано. Выход пунктирной области использует содействующий тип данных, который вы задали. Блоки Q в схеме показывают точки квантования.
Алгоритм реализует итоговый шаг нормализации со взаимной интерполяционной таблицей в аппаратной реализации. Интерполяционная таблица имеет 2 048 мест, таким образом, содействующая сумма квантуется к старшим значащим 11 битам. Обратные величины используют тип выходных данных, который вы задали плюс минимум двух целочисленных битов, если тип данных уже не включает их. Взаимное справочное значение для балансовой суммы является максимальным представимым значением в содействующем типе данных. Для нормализации с плавающей точкой симуляция обнаруживает балансовую сумму и вместо этого делится на eps
() дивиденда.
Значение выходного пикселя затем брошено к типу выходных данных, который вы задали. Фильтр использует целую область значений типа данных, поэтому если ваше цветовое пространство использует меньше, чем полный спектр, вы, возможно, должны перемасштабировать пиксельные значения.
Примечание
При фильтрации многокомпонентных (цветных) пикселей могут произойти фиктивные цвета, если операция не сделана в цветовом пространстве на основе человеческого восприятия, такого как CIELab. Двусторонняя фильтрация R'G'B' цветовое пространство не рекомендуется.
Задержка блока является буферной задержкой линии плюс задержка вычисления ядра. Буферная задержка линии включает ребро, дополняющее по умолчанию. Задержка дополнительной операции зависит от размера ядра. Если дополнение ребра не необходимо для вашего проекта, можно уменьшать задержку путем установки параметра Padding method на None
. Когда вы используете эту опцию, задержка блока не зависит от вашего размера ядра. Чтобы определить точную задержку для любой настройки блока, измерьте количество временных шагов между управляющими сигналами ввода и вывода.
Примечание
Когда вы будете использовать дополнение ребра, используйте горизонтальный интервал гашения, больше, чем дважды ширина ядра. Этот интервал позволяет блоку закончить обрабатывать одну линию, прежде чем это начнет обрабатывать следующее, включая добавление дополнительных пикселей до и после активных пикселей в линии. Стандартные форматы потокового видео используют горизонтальный интервал гашения приблизительно 25% ширины системы координат. Этот интервал намного больше, чем фильтры применились к каждой системе координат. Когда вы отключаете дополнение ребра, горизонтальный интервал гашения должен быть по крайней мере 12 циклами и независим от размера ядра. Если вы используете пользовательский формат видео, установите горизонтальный интервал гашения при помощи параметров блоков Frame To Pixels. Горизонтальный интервал гашения равен Total pixels per line – Active pixels per line или, эквивалентно, Front porch + Back porch. Для получения дополнительной информации смотрите, Конфигурируют Интервалы гашения.
Этот блок поддерживает генерацию кода C/C++ для акселератора Simulink® и быстрых режимов Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.