Пиксельный потоковый выравниватель

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

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

Описание

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

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

Порты

Этот блок использует пиксельный интерфейс потоковой передачи с шиной для сигналов управления кадром. Этот интерфейс позволяет блоку действовать независимо от размера изображения и формата. Все блоки Vision HDL Toolbox используют тот же интерфейс потоковой передачи. Блок принимает и возвращает и скалярное пиксельное значение и шину, содержащую пять управляющих сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в кадре. Чтобы преобразовать кадр (пиксельная матрица) в последовательный пиксельный поток и управляющие сигналы, используйте блок Frame To Pixels. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод

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

Один пиксель изображения, возвращенный как вектор в три представления значений R'G'B' или Y'CbCr или интенсивность представления скалярного значения. Тип данных совпадает с типом данных потока входа pixel.

Один пиксель изображения, заданный как вектор трех представлений значений R'G'B' или Y'CbCr или интенсивность представления скалярного значения. Тип данных совпадает с типом данных потока входа refPixel. Этот поток передается через неизменный блок.

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

Параметры

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

Выберите степень двойки, которая размещает количество активных пикселей в горизонтальной строке. Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки. Блок реализует кольцевой буфер 2M пиксели, где M является MaxNumberOfLines + log2 (LineBufferSize).

Блок реализует кольцевой буфер 2M пиксели, где M является MaxNumberOfLines + log2 (LineBufferSize) и буфер адресов строки местоположений MaxNumberofLines. Круговая память хранит ранее входные строки, пока ссылочные управляющие сигналы не прибывают. Буфер адресов строки хранит адрес запуска каждой строки. Когда ссылочные управляющие сигналы прибывают, блок использует сохраненный адрес, чтобы считать и отправить задержанную строку. Этот параметр должен разместить различие в синхронизации между двумя входными потоками, включая внутреннюю задержку, прежде чем блок прочитает первую строку. Во время симуляции блок предупреждает, когда переполнение происходит. Чтобы избежать условия переполнения, увеличьте MaxNumberofLines. Задержка между потоками не может превысить целый кадр.

Алгоритмы

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

RAM Circular Buffer является памятью о 2M пиксели, где M является MaxNumberOfLines + log2 (LineBufferSize). Line Address Buffer имеет местоположения MaxNumberOfLines. Если количество утверждений ctrl.Hstart перед первым утверждением refCtrl.Hstart больше, чем размер Line Address Buffer, блок перезаписывает и буферы и повреждает ваш вывод. В этой схеме MaxNumberOfLines равняется четырем, таким образом, существует четыре места, чтобы сохранить адрес строки в буфере. Схема также показывает одно местоположение, чтобы сохранить ctrl.Vstart. Задержка между этими двумя потоками должна быть меньше, чем время между кадром запускается.

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

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

Блоки

Системные объекты

Введенный в R2017a