Pixel Stream Aligner

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

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

  • Pixel Stream Aligner block

Описание

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

Эта схема формы волны показывает входные потоки, 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

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

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

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

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

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

Вход пиксельных РазмерностейДопустимые размерности refPixel
1-by- N1 на 1, 1 на 3 или 1 на 4
4-by- 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

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

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

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

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

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

.

См. также

Блоки

Объекты

Введенный в R2017a