Line Buffer

Храните видео линии и возвращайте пиксели соседства

  • Библиотека:
  • Vision HDL Toolbox/Утилиты

  • Line Buffer block

Описание

Блок Line Buffer выбирает пиксели окрестностей из потоковых данных изображения. Он обрабатывает сигналы управления видео и заполнения ребер, и конвейеризован для высокоскоростных видео проектов. Блок выводит по одному столбцу окрестности за раз. Чтобы составить район для дальнейшей обработки, используйте сигнал shiftEnable для хранения столбцов выхода, включая заполнение, в регистре сдвига. Этот блок позволяет вам совместно использовать ресурсы буфера линий, когда ваш проект выполняет несколько операций в одном районе.

Следующая форма волны показывает блок Line Buffer, возвращающий столбцы 5 на 1 пикселя, которые составляют окрестность 5 на 5. Показанная временная система координат находится в начале (левом верхнем углу) входного кадра. Выход начинается после того, как блок хранит два (floor(M/2)) линии и получает начало третьей линии. Сигнал shiftEnable утверждается на два цикла раньше, чем выход ctrl valid. сигнал, который указывает, что первые два (floor(M/2)) столбцы являются исключительно пикселями заполнения. Точно так же shiftEnable остается высоким в течение двух дополнительных циклов в конце линии.

Порты

Этот блок использует интерфейс потокового пикселя с шиной для сигналов управления системой координат. Этот интерфейс позволяет блоку работать независимо от размера и формата изображения. Порты pixel на этом блоке поддерживают потоковую передачу с одним пикселем или многопиксельную потоковую передачу. Потоковая передача с одним пикселем принимает и возвращает одно значение пикселя каждый такт. Мультипиксельная потоковая передача принимает и возвращает 4 или 8 пикселей за тактовый цикл для поддержки форматов с высокой частотой кадров или с высоким разрешением. Вместе с пикселем блок принимает и возвращает pixelcontrol шина, которая содержит пять управляющих сигналов. Сигналы управления указывают валидность каждого пикселя и их местоположение в системе координат. Для многопиксельной потоковой передачи один набор управляющих сигналов применяется ко всем четырем или восьми пикселям в векторе. Чтобы преобразовать систему координат (пиксельную матрицу) в последовательный поток пикселей и сигналы управления, используйте блок Frame To Pixels. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Вход

расширить все

Этот блок поддерживает потоковую передачу с одним пикселем или многопиксельную потоковую передачу. Для потоковой передачи с одним пикселем задайте один входной пиксель в качестве значения скалярной интенсивности. Для многопиксельной потоковой передачи задайте вектор с четырьмя или восемью значениями интенсивности пикселя. Для получения дополнительной информации о том, как настроить модель для мультипиксельной потоковой передачи, смотрите Filter Multipixel Video Streams.

Этот блок не поддерживает многокомпонентную потоковую передачу. Чтобы обработать многокомпонентные потоки, реплицируйте блок для каждого компонента. The pixelcontrol шина для всех компонентов идентична, поэтому можно подключить одну шину к нескольким реплицированным блокам.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

Типы данных: uint8 | uint16 | uint32 | int8 | int16 | int32 | fixed point | Boolean | double | single

The pixelcontrol шина содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Bus.

Для многопиксельной потоковой передачи каждый вектор значений пикселей имеет один набор сигналов управления. Потому что вектор имеет только один valid сигнал, пиксели в векторе должны быть либо все допустимые, либо все недопустимые. The hStart и vStart сигналы применяются к пикселю с самым низким индексом в векторе. The hEnd и vEnd сигналы применяются к пикселю с самым высоким индексом в векторе.

Типы данных: bus

Выход

расширить все

Столбец значений пикселей окрестностей, возвращенный как a 1-бай- M вектора, где M - измерение вертикального соседства. При использовании многопиксельной потоковой передачи блок возвращает NumberOfPixels -by - M матрицу, где NumberOfPixels является размером входного вектора pixel. Тип выходов пикселя совпадает с типом данных входных пикселей.

Чтобы составить район для дальнейшей обработки, используйте сигнал shiftEnable для хранения столбцов выхода для каждой области ядра, включая заполнение, в регистре сдвига. Для мультипиксельной потоковой передачи используйте регистры сдвиг, чтобы создать NumberOfPixels области, каждый из N -by M пикселей, и затем выполните операцию ядра NumberOfPixels раза параллельно.

Примечание

Генерация HDL-кода поддерживается для малых матриц, но матричные операции могут повлиять на эффективность оборудования и использование ресурсов. Поэтому минимизируйте, насколько ваш проект работает в N -by M районе непосредственно. Вы можете:

  • Разделите фильтр на вертикальные и горизонтальные компоненты.

  • Конкатенация пиксели окрестности в вектор (N * M) -by 1.

  • Используйте подсистему For Each для хранения и работы с каждой строкой пикселей.

Эти предложения по проекту предоставляют возможности добавить конвейеризацию вокруг каждого сумматора или умножителя, чтобы увеличить синтезированную тактовую частоту и подогнать проект к блокам DSP на FPGA.

Типы данных: int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | double | single

Управляющие сигналы, сопровождающие выходной столбец, возвращаются как pixelcontrol шина, содержащая пять сигналов. Сигналы описывают валидность центрального пикселя столбца и местоположение этого пикселя в системе координат. См. Раздел «Шины управления пикселями»

Столбцы, которые содержат только пиксели заполнения, не утверждают ctrl valid.. Сигнал shiftEnable утверждается как для заполнения, так и для активных столбцов.

Примечание

Для большей части системы координат блок возвращает входные управляющие сигналы, которые поступили с нижним пикселем столбца. Однако на финальную floor(M/2) линиями каждой системы координат, нижний пиксель столбца является пикселем заполнения, поэтому блок генерирует выходные сигналы управления. Блок генерирует непрерывно заданную ctrl valid. сигнал для допустимых пикселей в каждой линии.

Для многопиксельной потоковой передачи существует один набор управляющих сигналов для каждого вектора значений пикселей. Поскольку существует только один valid сигнал для вектора, пиксели в векторе все действительны или все недопустимы. The hStart и vStart сигналы применяются к пикселю с самым низким индексом в векторе. The hEnd и vEnd сигналы применяются к пикселю с самым высоким индексом в векторе.

Типы данных: bus

Допустимый сигнал для соседних столбцов, возвращаемый как Boolean скаляр. Используйте этот сигнал для управления регистром сдвига, который составляет окрестность из выхода столбцов. Этот сигнал true (1) для любого соседнего столбца, указывающего, что столбец содержит допустимые пиксели изображения или что столбец был добавлен для заполнения ребра.

Типы данных: Boolean

Параметры

расширить все

Размер выхода окрестности, заданный как 2-элементный вектор-строка целочисленных размерностей [vertical horizontal]. Блок возвращает вектор-столбец с vertical элементами. Размерность horizontal используется для определения заполнения.

Выберите один из следующих методов для заполнения контура входного изображения. Для получения дополнительной информации об этих методах см. Раздел «Заполнение ребер».

  • Constant - Интерпретируйте пиксели вне системы координат изображения как имеющие постоянное значение.

  • Replicate - Повторите значение пикселей на краю изображения.

  • Symmetric - Установите значение пикселей заполнения, чтобы зеркально отобразить ребро изображения.

  • None - Исключить логику заполнения. Блок не устанавливает пиксели вне системы координат изображения на какое-либо конкретное значение. Эта опция уменьшает аппаратные ресурсы, используемые блоком, и гашение, необходимое между системами координат, но влияет на точность выходных пикселей на ребрах системы координат. Для поддержания синхронизации потока пикселей выхода системы координат совпадает с размером входного кадра. Однако, чтобы избежать использования пикселей, вычисленных из неопределенных значений заполнения, замаскируйте KernelSize/2 пикселя вокруг ребра системы координат для нижестоящих операций. Для получения дополнительной информации смотрите Увеличение пропускной способности при отсутствии заполнения.

Задайте целое число, чтобы дополнить контур входного изображения. Блок переводит это значение в тот совпадающий тип данных, что и входной пиксель.

Зависимости

Чтобы включить этот параметр, установите параметр Padding method равным Constant.

Задайте степень двойки, которая будет включать количество активных пикселей в одной горизонтальной линии.

Если вы задаете значение, которое не является степенью двойки, блок использует следующую наибольшую степень двойки.

Примеры моделей

Совет

  • Когда вы используете этот блок в Enabled Subsystem (Simulink), шаблон сигнала включения должен поддерживать синхронизацию потока пикселей, включая минимальные интервалы гашения. Если шаблон enable повреждает синхронизацию потока пикселей, вы можете увидеть частичные выходные системы координат, поврежденные сигналы управления потоком пикселей или несоответствия между Simulink® и результаты симуляции HDL. Вам может потребоваться увеличить интервалы гашения, чтобы соответствовать циклам, когда активация низкая. Дополнительные сведения см. в разделе Настройка интервалов гашения.

Алгоритмы

расширить все

Блок хранит M - 1 линию допустимых пикселей, что определяется размером окрестности. Он добавляет биты заполнения на краю системы координат. Блок возвращает первый столбец выхода, как только он может сформировать полный столбец соседства, который происходит в начале входа линии floor(M/2).

Расширенные возможности

.

См. также

Блоки

Объекты

Введенный в R2017b