В этом примере показано, как уменьшать задержку и сохранить аппаратные ресурсы, не добавив дополнение пикселей в ребре каждой системы координат.
Большинство операций фильтрации изображений заполняет изображение, чтобы заполнить окружения для пикселей в ребре изображения. Дополнение может помочь избежать артефактов границы в выходном изображении. В аппаратной реализации дополнительная операция использует дополнительные ресурсы и вводит дополнительную задержку.
Блоки Vision HDL Toolbox™, которые выполняют обработку окружения с дополнением, требуют горизонтали, очищающей, который является дважды шириной ядра. Это поведение означает, что большие размеры фильтра приводят к более длительному требованию очищения. Исключая дополнение путем установки Дополнительного параметра метода на None
позволяет вам использовать меньший период горизонтального очищения. Без дополнения горизонтальное требование очищения независимо от размера ядра и разрешения изображения.
Этот пример включает две модели. Первая модель показывает, как использовать эту опцию с библиотечными блоками, и вторая модель демонстрирует использование его при построении алгоритмов, которые используют блок Line Buffer. Этот пример также объясняет некоторые конструктивные соображения, когда вы не используете дополнение.
Эта модель в качестве примера показывает, как использовать дополнение ни одного с предопределенным алгоритмом от библиотек Vision HDL Toolbox. Эта модель включает блок Image Filter, сконфигурированный для n на n фильтра размытия и с его Дополнительным набором параметра метода к None
. Можно изменить размер ядра фильтра путем изменения значения n
в рабочей области. Модель открывается n
установите на 15.
При использовании дополнения ребра большинство блоков имеет floor(KernelHeight/2)
линии задержки и требуют 2*KernelWidth
циклы горизонтального очищения. Когда вы не используете дополнение, большинство блоков требует только 12 циклов горизонтального очищения. Поскольку внутренняя буферная задержка линии больше не зависит от размера ядра, этот интервал гашения размещает любой размер ядра.
Показать уменьшаемые требования очищения использования Дополнительного набора метода к None
, блок Frame To Pixels сконфигурирован для пользовательского формата на 240 пунктов, который использует только 12 циклов объединенной передней стороны и заднего крыльца.
Когда вы запускаете модель, она показывает этим трем фигурам.
Введите видео входа Video - Original 240p.
Дополнение Ни одного Полная Система координат - Выходное видео от фильтра без дополнения, показывая артефакты границы.
Дополнение Ни одного ROI - Выходное видео от фильтра без дополнения, с краевыми элементами изображения, обрезанными от ребер системы координат. Формат кадра меньше, чем размер входного видео.
В Дополнении Ни одного Полное средство просмотра Системы координат, показанное, темная граница отображается вокруг ребра каждой системы координат. Этот эффект состоит в том, потому что, не дополняя пиксели, окружения фильтра не полностью заданы в ребрах системы координат. Выведите от фильтра, который имеет дополнительные пиксели, не показывает артефактов границы, потому что дополнительная логика гарантирует, что окружения ребра полностью заданы.
При удалении или маскировании от этих краевых элементов изображения от незаполненного выхода, прежде чем последующий анализ распространен. Граничьте артефакты могут уменьшить точность последующей обработки. Например, эти артефакты могут влиять на статистическое распределение полного изображения. Блоки Vision HDL Toolbox возвращают краевые элементы изображения для незаполненных изображений, чтобы обеспечить синхронизацию ввода и вывода. Значения этих пикселей не определены и не могут быть приняты, чтобы иметь какое-то конкретное отношение к окружающим пикселям.
Блок Селектора ROI удаляет floor(KernelHeight/2)
и floor(KernelWidth/2)
пиксели от ребер каждой системы координат. Дополнение Ни одного средство просмотра ROI, показанное, показывает видео с удаленными артефактами границы. Получившаяся система координат для 15 15 ядра является 225 305 пикселями в размере, уменьшаемом от 240 320 пикселей.
Эта модель показывает, как спроектировать алгоритмы при помощи Буфера Линии с Дополнительным набором параметра метода к None
. Эта модель содержит Дополнение Ни одного подсистема и Дополняющая Симметричная подсистема.
Блок Frame To Pixels, соединенный с Дополняющей Симметричной подсистемой, использует стандартный формат на 240 пунктов. Стандартное горизонтальное очищение (объединенная передняя сторона и заднее крыльцо) является 82 циклами. Увеличение разрешения увеличивает интервал гашения. Например, формат на 1 080 пунктов имеет 280 неактивных циклов между линиями.
Блок Frame To Pixels соединился с Дополнением Ни одного, что подсистема реализует пользовательский формат на 240 пунктов, который использует только 12 циклов объединенной передней стороны и заднего крыльца, то же самое как в модели Image Filter, показанной ранее.
Эта модель реализует 15 15 Гауссов фильтр, с большим стандартным отклонением, при помощи блока Line Buffer.
Когда вы запускаете модель, она показывает трем фигурам:
Введите видео входа Video - Original 240p.
Дополнение Ни одного ROI - Выходное видео от фильтра без дополнения, с краевыми элементами изображения, обрезанными от ребер системы координат. Формат кадра меньше, чем размер входного видео.
Дополнение Симметричного - Выходное видео от фильтра с симметричным дополнением. Это видео является полным размером, но не имеет никаких краевых эффектов, потому что дополнительные биты задают окружения вокруг краевых пикселей.
pixelcontrol
Задержите балансировкуКогда вы создаете алгоритмы, которые используют блок Line Buffer, вы должны баланс задержки pixelcontrol
соедините шиной, чтобы составлять задержку ядра. Когда вы используете дополнение, Буфер Линии возвращает набор shiftEnable в 1
для floor(KernelWidth/2)
циклы прежде hStart и после hEnd. Балансирующая задержку логика использует, это расширило сигнал shiftEnable управлять регистрами задержки для pixelcontrol
сигналы. Вы видите эту логику в Дополнении подсистема Symmetric/pixelctrldelay.
Когда вы устанавливаете Дополнительный метод на None
, Буфер Линии возвращает shiftEnable в 1
между hStart и hEnd. Балансирующая задержку логика должна использовать часы, вместо shiftEnable, чтобы управлять регистрами задержки для hEnd, продать, и допустимый. Допустимый сигнал должен также ответить на shiftEnable, устанавливаемый в 0
во время линии, которая может произойти при взаимодействии через интерфейс с внешней памятью. Допустимый сигнал должен также быть установлен в 1
на последнем пикселе линии, чтобы соответствовать с с hEnd и продать. Чтобы удовлетворить оба требования, балансирующая задержку логика задерживает допустимый сигнал при помощи регистра, включенного shiftEnable, и использует блок Unit Delay Enabled, чтобы установить допустимый сигнал на 1
с hEnd в конце линии. Дополнение подсистема None/pixelctrldelay показывает эту логику.
Исключая дополнение логики позволяет вам достигнуть более высокой пропускной способности при помощи формата видео с уменьшаемым горизонтальным очищением. Эта опция также уменьшает использование аппаратного ресурса. Однако ваш проект должен составлять артефакты границы позже в цепи обработки. Когда вы используете блок Line Buffer, необходимо задержать pixelcontrol
соедините шиной, чтобы совпадать с задержкой ядра при помощи управляющей логики, которая составляет модифицированное поведение shiftEnable выходного сигнала. Используя этот пример как начальная точка, можно спроектировать алгоритмы и системы, которые достигают более высокой пропускной способности исключением дополнительной логики.