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. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

Входной параметр

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

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

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

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

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

Задайте pixelcontrol соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.

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

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

Вывод

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

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

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

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

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

Параметры

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

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

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

  • Constant — Интерпретируйте пиксели вне фрейма изображения как наличие постоянного значения.

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

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

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

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

Зависимости

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

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

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

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

Алгоритмы

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

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

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

Смотрите также

Блоки

Объекты

Введенный в R2017b