Pixel Stream Aligner

Выровняйте два потока пиксельных данных

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

  • Pixel Stream Aligner block

Описание

Блок Pixel Stream Aligner синхронизирует потоки на два пикселя путем задержки одного потока, чтобы совпадать с синхронизацией ссылочного потока. Много алгоритмов Vision HDL Toolbox™ задерживают пиксельный поток, и сумма задержки может измениться, когда вы настраиваете параметры алгоритма. Можно использовать этот блок, чтобы выровнять потоки для того, чтобы наложить, сравнить или объединить два потока такой как в Гауссовой операции размытости. Соедините задержанный поток с refPixel и входными портами refCtrl, и более ранний поток к входным портам ctrl и pixel.

Эта схема формы волны показывает входные потоки, pixelIn и refPixelIn, и их связанные управляющие сигналы. Ссылочный входной кадр запускается позже, чем pixelIn система координат. Выходные сигналы показывают, что блок задерживает pixelIn совпадать со ссылочным потоком, и что оба потока вывода совместно используют управляющие сигналы. Форма волны показывает короткую задержку между входом refCtrl и выход refCtrl. В этой симуляции, чтобы вместить задержку четырех линий между входными потоками, параметр Maximum number of lines должен быть установлен на по крайней мере 4.

Порты

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

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

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

Этот блок также поддерживает многокомпонентные мультипикселем потоки, где пиксельный вход является матрицей значений M на n, где M является количеством пикселей, и N является количеством компонентов. Эти значения соответствуют Number of pixels и параметрам Number of components блока Frame To Pixels.

Для скалярных пиксельных потоков задайте pixel как скаляр или вектор из 1 Number of components значениями. Для мультипиксельных потоков задайте pixel как матрицу Number of pixels-by-Number of components значения интенсивности пикселей.

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

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

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

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

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

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

Задайте refPixel как скаляр, вектор из 1 Number of components значениями или матрицей Number of pixels-by-Number of components значения интенсивности пикселей.

Позволенные размерности для refPixel зависят от размерностей потока входа pixel. Number of pixels должен быть тем же самым.

Размерности входного пикселяПозволенные refPixel Размерности
1 N1 на 1, 1 3, или 1 на 4
4 N4 1, 4 3, или 4 на 4
8 N8 1, 8 3, или 8 4

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

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

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

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

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

Блок использует эти управляющие сигналы для выровненного потока вывода.

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

Вывод

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

Синхронизация потока выхода pixel совпадает с синхронизацией потока выхода refPixel. Размерности и тип данных потока выхода pixel совпадают с теми из потока входа pixel.

Размерности и тип данных потока выхода refPixel совпадают с теми из потока входа refPixel. Блок передает этот поток через неизменный блок.

Блок передает сигналы входа refCtrl через блок с маленькой задержкой.

Параметры

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

Выберите степень двойки, которая вмещает количество активных пикселей в горизонтальной линии. Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки. Блок реализует кольцевой буфер 2m пиксели, где m является Maximum number of lines + log2 (Line buffer size).

Блок реализует кольцевой буфер 2m пиксели, где m является Maximum number of lines + log2 (Line buffer size) и буфер адресов линии местоположений Maximum number of lines. Круговая память хранит ранее входные линии, пока ссылочные управляющие сигналы не прибывают. Буфер адресов линии хранит адрес запуска каждой линии. Когда ссылочные управляющие сигналы прибывают, блок использует сохраненный адрес, чтобы считать и отправить задержанную линию. Этот параметр должен вместить различие в синхронизации между двумя входными потоками, включая внутреннюю задержку, прежде чем блок прочитает первую строку. В процессе моделирования блок предупреждает, когда переполнение происходит. Чтобы избежать условия переполнения, увеличьте Maximum number of lines. Задержка между потоками не может превысить целую систему координат.

Когда вход pixel является вектором или матрицей, блок реплицирует кольцевой буфер для каждого элемента. Для мультипиксельной потоковой передачи блок настраивает buffer size линии, чтобы сохранить 1/Number of pixels пиксели. Например, с 4 3 входным потоком, каждый буферная память ¼ из пикселей для линии и буфер 12×2m-2 местоположения. Буфер адресов линии остается тот же размер.

Алгоритмы

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

Схема показывает архитектуру блока. Кольцевой буфер RAM является памятью о 2m пиксели, где m является Maximum number of lines + log2 (Line buffer size). Буфер адресов Линии имеет местоположения Maximum number of lines. Если количество ctrl.Hstart утверждения перед первым refCtrl.Hstart утверждение больше размера Буфера адресов Линии, блок перезаписывает и буферы и повреждает выход. В этой схеме Maximum number of lines равняется четырем, таким образом, четыре места существуют, чтобы сохранить адрес линии в буфере. Система координат Запускается, Буфер является одним местоположением, чтобы сохранить ctrl.Vstart. Задержка между этими двумя потоками должна быть меньше, время между системой координат запускается.

Когда вход pixel является вектором или матрицей, блок реплицирует Кольцевой буфер RAM для каждого элемента. Схема показывает три Кольцевых буфера RAM, чтобы представлять трехкомпонентный пиксельный поток. Каждый Кольцевой буфер RAM 2m ячейки памяти. Для мультипиксельной потоковой передачи блок настраивает buffer size линии, чтобы сохранить 1/Number of pixels пиксели. Например, с 4 3 входным потоком, каждый буферная память ¼ из пикселей для линии, и существует 12 Кольцевых буферов RAM, каждый с 2m-2 местоположения. Буфер адресов линии остается тот же размер.

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

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

Блоки

Объекты

Введенный в R2017a