exponenta event banner

Выравниватель пиксельного потока

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

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

  • Pixel Stream Aligner block

Описание

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

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

Порты

Вход

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

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

Этот блок также поддерживает многокомпонентные потоки, где входной пиксель является матрицей значений M-на-N, где M - число пикселей, а N - число компонентов. Эти значения соответствуют параметрам «Количество пикселей» и «Количество компонентов» блока «От кадра до пикселей».

Для потоков скалярных пикселей укажите пиксель как скаляр или вектор 1-by-Number значений компонентов. Для многопиксельных потоков укажите пиксель как матрицу значений интенсивности пикселя «Число пикселей за числом компонентов».

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

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

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

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

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

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

Укажите refPixel в качестве скаляра, вектора 1-by-Number значений компонентов или матрицы значений интенсивности пикселей количества пикселей за числом компонентов.

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

Размеры входных пикселейДопустимые размеры refPixel
1-by-N1 на 1, 1 на 3 или 1 на 4
4-by-N4 на 1, 4 на 3 или 4 на 4
8-by-N8 на 1, 8 на 3 или 8 на 4

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

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

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

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

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

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

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

Продукция

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

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

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

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

Параметры

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

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

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

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

Алгоритмы

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

На схеме показана архитектура блока. Циклический буфер ОЗУ - это память размером 2 m пикселей, где m - максимальное количество строк + log2 (размер буфера строки). Буфер адресов строк имеет максимальное количество расположений строк. Если количество ctrl.Hstart утверждения перед первым refCtrl.Hstart утверждение больше, чем размер буфера адреса строки, блок перезаписывает оба буфера и повреждает выходные данные. На этой схеме максимальное количество строк равно четырем, поэтому существует четыре местоположения для хранения адреса строки в буфере. Буфер начала кадра является единственным местом для хранения ctrl.Vstart. Задержка между двумя потоками должна быть меньше времени между запусками кадра.

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

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

.
Представлен в R2017a