exponenta event banner

Буфер строк

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

  • Библиотека:
  • Панель инструментов/утилит HDL Vision

  • Line Buffer block

Описание

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

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

Порты

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

Вход

развернуть все

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

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

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

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

pixelcontrol шина содержит пять сигналов. Сигналы описывают достоверность пикселя и его местоположение в кадре. Дополнительные сведения см. в разделе Шина управления пикселами.

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

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

Продукция

развернуть все

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

Чтобы составить окрестность для дальнейшей обработки, используйте сигнал sheyEnable для сохранения выходных столбцов для каждой области ядра, включая заполнение, в сдвиговом регистре. Для многопиксельной потоковой передачи используйте регистры сдвига для построения областей 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. Сигнал sheyEnable устанавливается как для заполняющих, так и для активных столбцов.

Примечание

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

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

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

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

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

Параметры

развернуть все

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

Выберите один из этих методов заполнения границы входного изображения. Дополнительные сведения об этих методах см. в разделе Заполнение кромок.

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

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

  • Symmetric - Задайте значение пикселов заполнения для отражения края изображения.

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

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

Зависимости

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

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

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

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

Совет

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

Алгоритмы

развернуть все

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

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

.

См. также

Блоки

Объекты

Представлен в R2017b