Преобразование видео на основе кадров в поток пикселей для FPGA-in-the-loop
Панель инструментов Vision HDL/интерфейсы ввода-вывода
Блок FIL Frame To Pixels выполняет то же преобразование кадра в пиксель, что и блок Frame To Pixels. Кроме того, можно настроить ширину выходного вектора на один пиксель, линию или весь кадр. Блок возвращает управляющие сигналы в векторах той же ширины, что и пиксельные данные. Эта оптимизация позволяет более эффективно использовать канал связи между платой FPGA и имитацией Simulink ® при использовании FPGA-in-the-loop (FIL). Для запуска FPGA-in-the-loop необходимо иметь лицензию HDL Verifier™.
При создании файла программирования для цели FIL в Simulink инструмент создает модель для сравнения моделирования FIL с конструкцией Simulink. Для проектов Vision HDL Toolbox™ блок FIL в этой модели воспроизводит интерфейс потоковой передачи пикселей для отправки по одному пикселю за раз в FPGA. Можно изменить автоматически созданную модель для использования блоков FIL Frame To Pixels и FIL Pixels To Frame для улучшения пропускной способности связи с платой FPGA путем отправки одного кадра за раз. Сведения об изменении автоматически созданной модели см. в разделе FPGA-in-the-Loop.
Укажите один и тот же формат видео и размер вектора для блока FIL Frames To Pixels и блока FIL Pixels To Frame.
frame - Полный кадр изображенияПолное изображение, указанное как матрица (Активные пикселы на строку) -by- (Активные видеолинии) -by-N. Высота и ширина - это размеры активного изображения, заданные в формате видео. N - количество компонентов, используемых для выражения одного пикселя.
Типы данных: single | double | int | uint | Boolean | fixed point
data1,...,dataN - Пикселы изображенияПикселы изображения, возвращаемые в виде матрицы значений M-by-Number пикселов, где M - ширина формата вектора вывода. Существует N портов передачи данных, где N - количество компонентов. Тип данных совпадает с типом данных кадра.
При использовании многопиксельной потоковой передачи FIL DUT имеет количество портов данных пикселей. Необходимо разделить выходную матрицу на векторы строк числа пикселей длиной M для входных портов FIL DUT. Дополнительные сведения см. в разделе Моделирование FPGA-in-the-Loop с многопиксельной потоковой передачей.
Аналогично, при использовании многокомпонентной многопиксельной потоковой передачи FIL DUT имеет Число пикселей × Число портов данных компонентов. Разбейте выходную матрицу для каждого компонента на число векторов строк пикселей длиной M для входных портов FIL DUT.
Типы данных: single | double | int | uint | Boolean | fixed point
hStartOut - Первый пиксель в горизонтальной линии кадраПервый пиксель в горизонтальной линии кадра, возвращаемый как Boolean вектор значений М.
Для многопиксельной потоковой передачи значение hStartOut применяется к пикселю с самым низким индексом в соответствующем столбце.
Типы данных: Boolean
hEndOut - Последний пиксель в горизонтальной линии кадраПоследний пиксель в горизонтальной линии кадра, возвращаемый как Boolean вектор значений М.
Для многопиксельной потоковой передачи значение hEndOut применяется к пикселю с самым высоким индексом в соответствующем столбце.
Типы данных: Boolean
vStartOut - Первый пиксель в первой (верхней) строке кадраПервый пиксель в первой (верхней) строке кадра, возвращаемый как Boolean вектор значений М.
Для многопиксельной потоковой передачи значение vStartOut применяется к пикселю с самым низким индексом в соответствующем столбце.
Типы данных: Boolean
vEndOut - Последний пиксель в последней (нижней) строке кадраПоследний пиксель в последней (нижней) строке кадра, возвращаемый как Boolean вектор значений М.
Для многопиксельной потоковой передачи vEndOut применяется к пикселю с самым высоким индексом в соответствующем столбце.
Типы данных: Boolean
validOut - Индикатор действительного пикселяИндикатор допустимого пикселя, возвращенный как Boolean вектор значений М.
Для многопиксельной потоковой передачи пикселы в соответствующем столбце являются либо допустимыми, либо недопустимыми.
Типы данных: Boolean
Number of components - количество значений, используемых для представления каждого пикселя;1 (по умолчанию) | 3 | 4Количество значений, используемых для представления каждого пикселя. Каждый пиксель может иметь 1, 3 или 4 компонента. Задайте для этого параметра значение 1 для видео в градациях серого. Задайте для этого параметра значение 3 для цветного видео, например, {R, G, B} или {Y, Cb, Cr}. Задайте для этого параметра значение4 использовать цвет с альфа-каналом для прозрачности.
Для обработки многокомпонентных потоков для блоков, не поддерживающих многокомпонентный ввод, реплицируйте блок для каждого компонента. pixelcontrol шина для всех компонентов идентична, поэтому можно подключить выход ctrl блока Frame To Pixels к каждому реплицированному блоку.
Number of pixels - Количество пикселей в каждом столбце выходной матрицы1 (по умолчанию) | 4 | 8Количество пикселей в каждом столбце выходной матрицы, указанное как 1, 4, или 8.
Каждый порт данных возвращает матрицу M на число пикселей. Для ввода в FIL DUT необходимо разделить эту матрицу на векторы строк числа пикселей длиной М. Дополнительные сведения см. в разделе Моделирование FPGA-in-the-Loop с многопиксельной потоковой передачей.
Output vector format - размер вектора, используемого для связи с подсистемой FPGA;Frame (по умолчанию) | Line | PixelРазмер вектора, используемого для связи с подсистемой FPGA. Блок возвращает входные пиксели и управляющие сигналы в векторах одинаковой длины. Блок вычисляет длину векторов на основе параметра Формат видео.
Pixel - возвращает скалярные значения для пиксельных и управляющих сигналов.
Line - Возврат (всего пикселов на строку) - по 1 векторам .
Frame - Возврат (Всего пикселей на строку × Всего строк видео) - по 1 векторам.
Большее значение приводит к более быстрой связи между платой FPGA и Simulink. Выберите самый большой вариант, который могут поддерживать ресурсы ввода-вывода и памяти на системной плате.
Для многопиксельной потоковой передачи укажите один из следующих параметров размера вывода.
Pixel - возвращает 1-по- (число пикселей) вектор значений пикселей и скалярные управляющие сигналы, которые применяются ко всем пикселям в каждом векторе.
Line - Возвращает a (всего пикселей на строку/число пикселей) - по числу пикселей матрицы значений пикселей и вектор управляющих сигналов длины (всего пикселей на строку )/( количество пикселей ).
Frame - Возвращает a (Всего пикселей на строку × Всего строк видео/Количество пикселей) - по числу пикселей матрицы значений пикселей и вектору управляющих сигналов длины (Всего пикселей на строку × Всего строк видео )/Количество пикселей.
Если число пикселов и число компонентов больше 1, необходимо установить формат вектора вывода равным Frame.
Video format - Размеры активных и неактивных областей в видеокадре1080p (по умолчанию) | 240p | 480p | 480pH | 576p | 720p | 768p | 1024p | 1200p | 2KCinema | 4KUHDTV | 8KUHDTV | CustomРазмеры активных и неактивных областей в видеокадре. Чтобы выбрать предопределенный формат, выберите в списке Формат видео. Фактические размеры кадра отображаются в разделе «Параметры видеоформата». Для пользовательского формата выберите Custom, а затем укажите размеры как целые числа.
Размеры определены на диаграмме.
![]()
Примечание
Время выборки источника видео должно соответствовать общему количеству пикселей в кадре блока «От кадра до пикселей». Общее число пикселей равно Total pixels per line × Total video lines, поэтому установите это значение в качестве времени выборки.
Video Format | Active Pixels Per Line | Active Video Lines | Total Pixels Per Line | Total Video Lines | Starting Active Line | Ending Active Line | Front Porch | Back Porch |
|---|---|---|---|---|---|---|---|---|
240p | 320 | 240 | 402 | 324 | 1 | 240 | 44 | 38 |
480p | 640 | 480 | 800 | 525 | 36 | 515 | 16 | 144 |
480pH | 720 | 480 | 858 | 525 | 33 | 512 | 16 | 122 |
576p | 720 | 576 | 864 | 625 | 47 | 622 | 12 | 132 |
720p | 1280 | 720 | 1650 | 750 | 25 | 744 | 110 | 260 |
768p | 1024 | 768 | 1344 | 806 | 10 | 777 | 24 | 296 |
1024p | 1280 | 1024 | 1688 | 1066 | 42 | 1065 | 48 | 360 |
1080p (по умолчанию) | 1920 | 1080 | 2200 | 1125 | 42 | 1121 | 88 | 192 |
1200p | 1600 | 1200 | 2160 | 1250 | 50 | 1249 | 64 | 496 |
2KCinema | 2048 | 1080 | 2750 | 1125 | 42 | 1121 | 639 | 63 |
4KUHDTV | 3840 | 2160 | 4400 | 2250 | 42 | 2201 | 88 | 472 |
8KUHDTV | 7680 | 4320 | 8800 | 4500 | 42 | 4361 | 88 | 1032 |
Custom | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный | Пользователь - определенный |
При использовании пользовательского формата значения, вводимые для активных и неактивных размеров изображения, должны складываться с общими размерами кадра. Если указан формат, не соответствующий этим правилам, блок сообщает об ошибке.
Для горизонтального направления значение «Всего пикселей на строку» должно быть больше или равно значению «Передняя крыльцо» + «Активные пикселы на строку». Блок вычисляет значение Back porch = Total pixels per line − Front porch − Active pixels per line.
Для вертикального направления Суммарные видеолинии должны быть больше или равны Начальной активной линии + Активной видеолинии − 1. Блок вычисляет Ending active line = Start active line + Active video lines − 1.
При использовании блока памяти линии или блоков, использующих внутреннюю память линии, с пользовательским видеоформатом применяются следующие требования:
Активные пикселы на строку должны быть больше 1.
Интервал горизонтального гашения, или Заднее крыльцо + Переднее крыльцо, должны соответствовать следующим инструкциям:
Общее число Back porch + Front porch должно быть не менее чем в 2 раза больше наибольшего размера ядра алгоритма в блоках, следующих за блоком Frame To Pixel. Если размер ядра меньше 4, общая площадь крыльца должна быть не менее 8 пикселей.
Задняя часть должна быть не менее 6 пикселей. Этот параметр представляет собой количество неактивных пикселей перед первым допустимым пикселем в кадре.
Дополнительные сведения о интервалах гашения см. в разделе Настройка интервалов гашения.
При использовании многопиксельной потоковой передачи (число пикселей > 1) применяются эти требования.
Формат видео должен иметь горизонтальные размеры, делящиеся на значение параметра Number of pixels. Горизонтальные размеры задаются следующими параметрами: Активные пикселы на строку, Всего пикселов на строку, Передняя крыльцо и Задняя крыльцо. Стандартные видео протоколы 480p, 720p, 1080p и 4k UHD поддерживают количество пикселей, равное 4 или 8.
Минимальный размер входного кадра для многопиксельной потоковой передачи (4 или 8 пикселей) составляет 18 строк на 32 столбца.
Выберите размер ядра и Активные пикселы на строку так, чтобы (Активные пикселы на строку )/( Количество пикселов) была по крайней мере шириной ядра.
Этот блок поддерживает генерацию кода C/C + + для режимов Simulink Accelerator и Rapid Accelerator.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
