Отобразите статистику

Среднее значение, отклонение и стандартное отклонение

Библиотека

visionhdlstatistics

Описание

Блок Image Statistics вычисляет среднее значение, отклонение и стандартное отклонение данных о потоковом видео. Каждое вычисление выполняется по всем пикселям во входной видимой области (ROI). Блок реализует вычисления с помощью эффективных оборудованием алгоритмов.

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

  • Чтобы изменить размер и размерности ROI, можно управлять входными управляющими сигналами видеопотока. Смотрите видимые области.

  • Количество допустимых пикселей во входном изображении влияет на точность среднего приближения. Чтобы избежать ошибки приближения, используйте изображение, которое содержит меньше чем 64 пикселя, кратное 64 пикселей до 642 пикселей, кратное 642 пикселей до 643 пикселей или кратное 643 пикселей до 644 пикселей. Для получения дополнительной информации среднего приближения, см. Алгоритм.

  • Блок вычисляет статистику по кадрам до 644 (16,777,216) пиксели в размере. Этот размер поддерживает кадры HD.

Атрибуты сигнала

ПортНаправлениеОписаниеТип данных
pixelВходной параметрОдин пиксель изображения, заданный как скалярное значение.
  • uint8/uint16

  • fixdt(0,N,0), N = 8,9..., 16

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

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

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

pixelcontrol
meanВывод Среднее значение нового входного кадра завершается.То же самое как pixel
varВывод Отклонение нового входного кадра завершается.То же самое как pixel
stdDevВывод Стандартное отклонение нового входного кадра завершается.То же самое как pixel
validOutВывод Вычисления завершаются. Блок устанавливает этот вывод на true, когда статистические выходные параметры для кадра готовы. boolean

Примечание

Блок использует арифметику полной точности для внутреннего вычисления. При выводе промежуточные данные брошены к входному типу с помощью следующих настроек фиксированной точки: RoundingMethod = Nearest и OverflowAction = Saturate. Таблица показывает выходной размер слова для каждого вычисления относительно входного размера слова (IWL).

Среднее значение ДисперсияОтклонение станд.
IWL2×IWL2×IWL

Параметры

Enable mean output

Установите этот флажок, чтобы вычислить среднее значение каждого входного кадра. Если вы снимаете этот флажок, mean, вывод не показывает на блоке.

Enable variance output

Установите этот флажок, чтобы вычислить отклонение каждого входного кадра. Если вы снимаете этот флажок, var, вывод не показывает на блоке.

Enable std. deviation

Установите этот флажок, чтобы вычислить стандартное отклонение каждого входного кадра. Если вы снимаете этот флажок, stdDev, вывод не показывает на блоке.

Алгоритм

Архитектура

Вычисления среднего значения, отклонения и стандартного отклонения создают друг от друга. Для аппаратной эффективности логика вычисления совместно используется как показано.

Среднее значение

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

μ=1MNi=1Mj=1Nxij

Вместо того, чтобы использовать это уравнение, блок вычисляет среднее значение серией четырех аккумуляторов, которые вычисляют среднее значение сегмента пикселей. Во-первых, найдите сумму окна 64 пикселей и нормируйте.

μL1=164n=164xn

Затем накопите 64 из предыдущих окон и нормируйте.

μL2=164n=164μnL1

Третий аккумулятор суммирует 64 из 64×64 окна и нормирует тот же путь.

μL3=164n=164μnL2

Четвертый аккумулятор суммирует 64 из 64×64×64 окна и нормирует.

μL4=164n=164μnL3

Каждый допустимый пиксель накапливается, когда он прибывает. Его местоположение в строке или кадре не влияет на логику накопления.

Когда vEnd получен, блок продвигает любые остающиеся данные на четырех уровнях среднего вычисления, чтобы вычислить окончательный результат. Если счетчик аккумулятора не в 64, когда vEnd прибывает, тот уровень нормирует фактическим значением счетчика. Константы для этого умножения находятся в интерполяционной таблице (LUT). Эти четыре аккумулятора совместно используют один LUT и множитель.

Этот метод среднего вычисления точен, когда количество пикселей в кадре выравнивает vEnd с итоговой трансформацией аккумулятора. Это выравнивание происходит на уровне два, когда кадр содержит кратное 64 пикселей и меньше чем 642 (4096) пиксели. Происходит на уровне три, когда кадр содержит кратное 4 096 пикселей. Происходит на уровне четыре, когда кадр содержит кратное 643 пикселей. Этот метод также точен, когда кадр имеет меньше чем 64 пикселя, потому что только первый аккумулятор необходим.

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

Для изображений, больше, чем 4 096 пикселей, тот же эффект происходит во множителях 4 096 пикселей, и во множителях 643 пикселей.

Дисперсия

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

σ2=(1M*Ni=1Mj=1Nxij2)μ2

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

Стандартное отклонение

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

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

Видимые области

Статистические данные часто вычисляются на маленькие видимые области (ROI), а не целый кадр видео. Этот блок выполняет вычисления на всех допустимых пикселях между vStart и сигналами vEnd в шине ctrl, и не отслеживает пиксельное местоположение в кадре. Можно управлять управляющими сигналами потоковой передачи уменьшать размер кадра и формировать рисунок контуров видимой области прежде, чем передать видеопоток этому блоку. Для примера, который выбирает несколько маленьких КОРОЛЕЙ из увеличенного изображения, смотрите Мультизональное Измерение.

Блок Image Statistics вычисляет статистику по кадрам до 644 (16,777,216) пиксели в размере. Если вы предоставляете изображению больше чем 644 пикселя, блок вычисляет требуемую статистику только по первым 16 777 216 пикселям и затем утверждает validOut. Блок игнорирует дополнительные пиксели, пока он не получает сигнал vEnd.

Задержка

Задержка от vEnd до validOut зависит от вычислений, которые вы выбираете.

Когда блок получает сигнал vEnd, который является true, он комбинирует остающиеся данные на четырех уровнях среднего вычисления, чтобы вычислить окончательный результат. Этот последний шаг берет 4 цикла на уровень, приводящий максимум к 16 циклов задержки между сигналом входа vEnd и сигналом validOut. Если среднее значение доступно, вычисление отклонения берет 4 цикла. Логика квадратного корня требует циклов входного размера слова (IWL) задержки.

Если вычисление не выбрано и не нужно для других выбранных вычислений, та логика исключена из сгенерированного HDL-кода.

Таблица показывает логику вычисления и задержку для различных настроек блока.

Среднее значение ДисперсияОтклонение станд.Логика, исключенная из HDLЗадержка (циклы)
 [4n] +4+IWL, (где n является количеством уровней аккумулятора, требуемых для входного размера),
  отклонение и квадратный корень[4n]
  квадратный корень[4n] +4
   [4n] +4+IWL
 квадратный корень[4n] +4
  [4n] +4+IWL
  [4n] +4+IWL

Примечание

Должно быть по крайней мере 16 циклов между сигналами vEnd на входе. Это ограничение синхронизации позволяет блоку закончить обрабатывать текущий кадр, прежде чем новый прибудет.

Если вы используете пользовательский формат видео, установите горизонтальный интервал гашения с помощью параметров блока Frame To Pixels. Горизонтальный интервал гашения равен Total pixels per lineActive pixels per line, или, эквивалентно, Front porch + Back porch. Стандартные форматы потокового видео используют горизонтальный интервал гашения приблизительно 25% ширины кадра. Этот интервал намного больше, чем задержка операций статистики.

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

Представленный в R2015a