exponenta event banner

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

Что такое потоковый пиксельный интерфейс?

В аппаратном обеспечении обработка всего кадра видео за один раз имеет высокую стоимость в памяти и области. Для экономии ресурсов в конструкциях ЛПВП предпочтительна последовательная обработка. Блоки Vision HDL Toolbox™ и системные объекты работают на пикселе, линии или окрестности, а не на кадре. Блоки и объекты принимают и генерируют видеоданные как последовательный поток пиксельных данных и управляющих сигналов. Сигналы управления указывают относительное местоположение каждого пикселя в изображении или видеокадре. Протокол имитирует синхронизацию видеосистемы, включая неактивные интервалы между кадрами. Каждый блок или объект работает без полного знания формата изображения и может допускать несовершенную синхронизацию строк и кадров.

Все блоки панели инструментов Vision HDL и системные объекты поддерживают потоковую передачу одного пикселя (с 1 пикселем на цикл). Некоторые блоки и системные объекты также поддерживают многопиксельную потоковую передачу (с 4 или 8 пикселями на цикл) для высокоскоростного видео или видео с высоким разрешением. Многопиксельная потоковая передача увеличивает аппаратные ресурсы для поддержки более высокого разрешения видео с той же тактовой частотой, что и видео с меньшим разрешением. Генерация кода HDL для многопиксельной потоковой передачи не поддерживается системными объектами. Используйте эквивалентные блоки для создания кода HDL для мультипиксельных алгоритмов.

Как работает потоковый пиксельный интерфейс?

Системы видеосъемки сканируют видеосигналы слева направо и сверху вниз. По мере сканирования эти системы генерируют неактивные интервалы между строками и кадрами активного видео.

Интервал горизонтального гашения состоит из неактивных циклов между концом одной строки и началом следующей строки. Этот интервал часто разбивается на две части: переднее крыльцо и заднее крыльцо. Эти термины происходят из синхронизирующего импульса между линиями в аналоговых видеосигналах. Переднее крыльцо - это количество выборок между концом активной линии и синхронизирующим импульсом. Заднее крыльцо - это количество выборок между импульсом синхронизации и началом активной линии.

Интервал вертикального гашения состоит из неактивных циклов между конечной активной линией одного кадра и начальной активной линией следующего кадра.

Шаблон сканирования требует сигналов начала и конца как для горизонтального, так и для вертикального направления. Потоковый пиксельный протокол Vision HDL Toolbox включает интервалы гашения и позволяет настроить размер активного и неактивного кадра.

Inactive and active periods of a video frame.

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

Зачем использовать потоковый пиксельный интерфейс?

Независимость формата

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

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

Допуск ошибки

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

При использовании потокового пиксельного интерфейса с управляющими сигналами каждый блок или объект Vision HDL Toolbox начинает вычисление на свежем сегменте пикселей в начале линии или начале кадра. Вычисление выполняется независимо от того, принимает ли блок или объект конечный сигнал для предыдущего сегмента.

Протокол допускает незначительные ошибки синхронизации. Если количество допустимых и недопустимых циклов между сигналами запуска изменяется, блоки или объекты продолжают работать правильно. Для некоторых блоков и объектов Vision HDL Toolbox требуются минимальные горизонтальные области гашения для выполнения операций с буфером памяти. Дополнительные сведения см. в разделе Настройка интервалов гашения.

Преобразование пиксельного потока с использованием блоков и системных объектов

В Simulink ® используйте блок Frame To Pixels для преобразования кадрированных видеоданных в поток пикселей и управляющих сигналов, соответствующих этому протоколу. Управляющие сигналы группируются в невиртуальный тип данных шины, называемыйpixelcontrol. Блок можно настроить на возврат потока пикселей с 1, 4 или 8 пикселями на цикл.

В MATLAB ® используйте visionhdl.FrameToPixels объект для преобразования кадрированных видеоданных в поток пикселей и управляющих сигналов, которые соответствуют этому протоколу. Управляющие сигналы группируются в структурный тип данных. Можно настроить объект на создание потока пикселей с 1, 4 или 8 пикселями на цикл.

Если входное видео уже находится в последовательном формате, можно создать собственную логику для создания pixelcontrol управляющие сигналы от существующей схемы последовательного управления. Например, см. раздел Преобразование сигналов управления камерой в формат pixelcontrol и интеграция блоков HDL Vision в систему связи с камерой.

Поддерживаемые типы пиксельных данных

Блоки и объекты панели инструментов Vision HDL содержат порты или аргументы для потоковой передачи пиксельных данных. Каждый блок и объект поддерживает один или несколько форматов пикселей. Поддерживаемые форматы зависят от операции, выполняемой блоком или объектом. В этой таблице приведены общие форматы видео, поддерживаемые системой Vision HDL Toolbox.

Тип видеоФормат пикселя
Набор из двух предметовКаждый пиксель представлен одним boolean или logical значение. Используется для истинного черно-белого видео.
Оттенки серогоКаждый пиксель представлен яркостью, которая является значением яркости с гамма-поправкой. Этот пиксель представляет собой одно целое число без знака или значение с фиксированной точкой.
Цвет

Каждый пиксель представлен от 2 до 4 целыми значениями без знака или значениями с фиксированной точкой, представляющими цветовые компоненты пикселя. Блоки и объекты Vision HDL Toolbox используют цветовые пространства с гамма-поправкой, такие как R 'G' B' и Y 'CbCr.

Для обработки многокомпонентных потоков для блоков, не поддерживающих многокомпонентный ввод, реплицируйте блок для каждого компонента. pixelcontrol шина для всех компонентов идентична, поэтому можно подключить одну шину к нескольким реплицированным блокам.

Чтобы настроить многопиксельную потоковую передачу для цветного видео, можно настроить блок Frame To Pixels для возврата многокомпонентного и многопиксельного потока. См. раздел Многопиксельная потоковая передача видео.

Блоки панели инструментов Vision HDL имеют входной или выходной порт, pixel, для пиксельных данных. Объекты Vision HDL Toolbox System ожидают или возвращают аргумент, представляющий пиксельные данные. В следующей таблице описан формат пиксельных данных.

Порт или аргументОписаниеТип данных
pixel
  • Потоковая передача одного пикселя - скаляр, представляющий двоичное значение или значение пикселя в градациях серого или вектор строки от двух до четырех значений, представляющий цветной пиксель

  • Многопиксельная потоковая передача - вектор столбца с четырьмя или восемью значениями пикселей

  • Многопиксельная-многокомпонентная потоковая передача - матрица из четырех или восьми значений пикселей на два-четыре цветовых компонента.

Можно моделировать системные объекты с помощью многопиксельного потокового интерфейса, но системные объекты, использующие многопиксельные потоки, не поддерживаются для генерации кода HDL. Используйте эквивалентные блоки для создания кода HDL для мультипиксельных алгоритмов.

Поддерживаемые типы данных могут включать:

  • boolean или logical

  • uint или int

  • fixdt()

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

Примечание

Эти блоки поддерживают многопиксельную потоковую передачу:

Блоки выбора окупаемости инвестиций, Pixel Stream FIFO и Pixel Stream Aligner поддерживают многопиксельную многокомпонентную потоковую передачу.

Потоковые сигналы управления пикселями

Блоки и объекты панели инструментов Vision HDL содержат порты или аргументы для управляющих сигналов, относящихся к каждому пикселю. Эти пять управляющих сигналов указывают достоверность пикселя и его местоположение в кадре. Для многопиксельной потоковой передачи каждый вектор значений пикселей имеет один набор управляющих сигналов.

В Simulink порт управляющего сигнала представляет собой невиртуальный тип данных шины, называемый pixelcontrol. Дополнительные сведения о типе данных шины см. в разделе Шина управления пикселами.

В MATLAB аргумент управляющего сигнала является структурой. Дополнительные сведения о типе данных структуры см. в разделе Структура управления пикселями.

Временная диаграмма последовательного интерфейса с одним пикселом

Для иллюстрации потокового пиксельного протокола этот пример преобразует кадр в последовательность сигналов управления и данных. Рассмотрим изображение размером 2 на 3 пиксела. Чтобы смоделировать интервалы гашения, настройте сериализованное изображение так, чтобы оно включало неактивные пикселы в следующих областях вокруг активного изображения:

  • Заднее крыльцо шириной 1 пиксел

  • Переднее крыльцо шириной 2 пиксела

  • 1 строка перед первой активной строкой

  • 1 строка после последней активной строки

Размеры активной и неактивной областей можно настроить с помощью блока «От рамки до пикселов» или visionhdl.FrameToPixels объект.

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

Блок или объект сериализует изображение слева направо по одной строке за раз. Временная диаграмма показывает управляющие сигналы и пиксельные данные, которые соответствуют этому изображению, которое является последовательным выходом блока «от кадра к пикселям» для этого кадра, сконфигурированного для потоковой передачи с одним пикселем.

Пример использования блока «От кадра до пикселей» для сериализации изображения см. в разделе Разработка алгоритмов обработки видео для HDL в Simulink.

Для примера использования FrameToPixels для сериализации образа см. раздел Проектирование аппаратного целевого фильтра изображений в MATLAB.

Временная диаграмма многопиксельного последовательного интерфейса

В этом примере кадр преобразуется в многопиксельный поток с 4 пикселями на цикл и соответствующими сигналами управления. Рассмотрим кадр шириной 64 пиксела с этими неактивными областями вокруг активного изображения.

  • Заднее крыльцо шириной 4 пиксела

  • Переднее крыльцо шириной 4 пиксела

  • 4 строки перед первой активной строкой

  • 4 строки после последней активной строки

Блок «от кадра до пикселей», сконфигурированный для многопиксельной потоковой передачи, возвращает векторы пикселей, сформированные из пикселей каждой строки в кадре слева направо. На этой схеме показан верхний левый угол рамки. Серые пиксели показывают активную область кадра, а пиксели с нулевым значением представляют затемняющие пиксели. Метка на каждом активном пикселе представляет местоположение пикселя в кадре. В выделенных полях отображаются наборы пикселов, передаваемых в потоке за один цикл. Пиксели в неактивной области также передаются потоком по четыре за раз. В серой рамке показаны четыре пикселя гашения, попавшие в цикл перед началом активного кадра. Синяя рамка показывает значения четырех пикселей, поступающие в поток в первом действительном цикле кадра, а оранжевая рамка показывает значения четырех пикселей, поступающие в поток во втором действительном цикле кадра. Зеленое поле показывает первые четыре пикселя следующей активной строки.

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

До показанного периода времени исходные вертикальные пиксели гашения передаются по четыре за раз, при этом все сигналы управления устанавливаются в false. Эта форма сигнала показывает поток пикселей первой строки изображения. Серые, синие и оранжевые поля соответствуют подсвеченным областям диаграммы кадра. После завершения первой строки поток имеет два цикла горизонтального гашения, которое содержит 8 недопустимых пикселей (передняя и задняя крыльцо). Затем форма сигнала показывает следующую строку в потоке, начиная с зеленого прямоугольника.

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

См. также

| | |

Связанные темы