Сконфигурируйте интервалы гашения

Потоковые протоколы видео имеют два интервала гашения: horizontal и vertical. Горизонтальный интервал гашения является периодом неактивных циклов между концом одной линии и началом следующей линии. Вертикальный интервал гашения является периодом неактивных линий между концом системы координат и началом следующей системы координат.

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

В блоке Frame To Pixels горизонтальный интервал гашения равен Total pixels per line - Active pixels per line или, эквивалентно, Front porch + Back porch. Интервал вертикального гашения равен Total video lines - Active video lines или, эквивалентно, Starting active line + Ending active line - Active video lines.

Для примера, блок Frame To Pixels, параметры которого показаны на этом изображении, имеет горизонтальный интервал гашения 140 пикселей и вертикальный интервал гашения 80 линий.

Frame To Pixels block parameters.

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

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

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

Рекомендуемый минимальный горизонтальный интервал гашения 2 × Kw при использовании циклов заполнения или 12, когда вы устанавливаете параметр Padding method None. Этот интервал включает некоторое значение для более длительных времен вычислений ядра поверх задержки буфера линии.

Рекомендуемый интервал вертикального гашения - это, по крайней мере, высота ядра, Kh линий. Буфер линии требует этого интервала, использует ли операция заполнение.

Примечание

Когда вы используете блок потоковой передачи пикселей внутри Enabled Subsystem (Simulink), шаблон сигнала включения должен поддерживать синхронизацию потока пикселей, включая минимальные интервалы гашения. Вам может потребоваться увеличить интервалы гашения, чтобы соответствовать циклам, когда активация низкая.

Диагностируйте проблемы с интервалом гашения

Когда интервал гашения слишком мал, вы можете увидеть:

  • Пустые выходные системы координат

  • Частичные выходные системы координат

  • Поврежденные диаграммы направленности потока пикселей (для образца, отсутствующие vEnd или hEnd сигналы или повторяющиеся End или Start сигналы)

  • Что алгоритм работает с непрерывными допустимыми входными пикселями на каждой линии, но не тогда, когда существуют погрешности между допустимыми пикселями в линии

  • Что алгоритм работает в Simulink® но не работает в HDL симуляции

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

Если вы видите какие-либо из этих симптомов, увеличьте интервалы горизонтального и вертикального гашения до 25% от размерностей активной системы координат и повторите симуляцию. Если этот шаг подтверждает, что слишком маленький интервал гашения вызывает ваши симптомы, вы можете точно настроить интервалы.

Один из способов диагностировать проблемы интервала гашения в Simulink - использовать блок Measure Timing для наблюдения размерностей потока пикселей до и после вашей операции. Недостаточные интервалы гашения заставляют блок повреждать сигналы управления. В этих случаях выходные системы координат показывают другие размерности, чем входные кадры.

Эта модель показывает блок Image Filter, сконфигурированный с включенными ядром фильтра 12 на 12 и заполнением ребра. Формат потока пикселей является пользовательским форматом, который имеет только 8 горизонтальных пикселей гашения, как показано блоком Measure Timing на вход потоке. Поскольку горизонтальный интервал гашения меньше ширины ядра, выходная система координат пуста. Блок Measure Timing на выходе фильтра показывает повреждение формата.

Вы также можете увидеть повреждение, посмотрев на выходные сигналы управления в Logic Analyzer приложении. Сигнал показывает входной и выходной сигналы блока Image Filter. Красные стрелы указывают на отсутствующие hStart сигналы и другой шаблон на выходе valid сигнал от блока.

Эта модель показывает блок Edge Detector, сконфигурированный для использования ядра фильтра Собеля 3 на 3 и с включенной заполнением ребра. Этот формат потока пикселей имеет только два горизонтальных пикселя гашения, как показано блоком Measure Timing на потоке входа. В этом случае выход системы координат включает в себя только каждую вторую линию. Блок Measure Timing на выходе фильтра показывает повреждение формата.

Вы также можете увидеть повреждение, посмотрев на выходные сигналы управления в Logic Analyzer приложении. Сигнал показывает входной и выходной сигналы блока Edge Detector. Красный кружок указывает на отсутствие hStart и hEnd сигналы, и красная стрела указывает на другой шаблон на выходе valid сигнал от блока.

Если вы изменяете входной формат, чтобы иметь горизонтальный интервал гашения 3 пикселя, эта модель возвращает правильные выходные системы координат в Simulink. Однако, когда вы запускаете сгенерированный HDL- испытательного стенда, испытательный стенд сообщает о несоответствии между сигналами, захваченными в Simulink, и поведением сигнала в HDL. Это изображение журнала испытательного стенда подсвечивает несоответствие в выход hEnd и vEnd сигналы.

Эта форма волны из симуляции испытательного стенда HDL показывает, что hEnd и vEnd отсутствуют сигналы в конце первой системы координат. Синие сигналы являются ожидаемым выходом, полученным из симуляции Simulink. Красные сигналы являются выходом алгоритма в HDL симуляции. Красные стрелы указывают, где отсутствуют ожидаемые импульсы сигнала управления.

Чтобы исправить модель Image Filter и модель Edge Detector, установите горизонтальный интервал гашения равным как минимум 2 × Kw пикселей, где Kw - ширина ядра фильтра. Для модели Image Filter установите это значение как минимум на 24 пикселя. Для модели Edge Detector установите это значение как минимум на 8 пикселей.

См. также

|

Похожие темы