Что именно делает CUDA NppiBorderType? - PullRequest
0 голосов
/ 05 ноября 2019

В настоящее время я играю с CUDA и примитивами производительности изображений и сигналов NVIDIA 2D (NPP), например, гауссовый фильтр

Здесь вы можете указать, как ядро ​​фильтра должно обрабатывать области изображения вне массива.

Официальная документация NVIDEA в основном равна 0. (https://docs.nvidia.com/cuda/npp/group__typedefs__npp.html#ga7e1448936057e7401acf293d19278317) И я не смог найти других источников: /

Это мое текущее понимание Ценностей. Пожалуйста, исправьте меняесли я ошибаюсь.

NPP_BORDER_UNDEFINED
Я абсолютно не знаю, что это делает.

NPP_BORDER_NONE
Ядро фильтра не будет обрабатывать внешние слои изображенияпоэтому нет необходимости иметь дело с неопределенными значениями.

NPP_BORDER_CONSTANT
Если ядро ​​фильтра пытается прочитать неопределенное значение, ядро ​​получает значение 0 или другую константу (я не знаюлюбая функция в библиотеке NVIDEA, где вы можете передать постоянное значение. Поэтому я предположил, что это будет 0)

NPP_BORDER_REPLICATE
Это, вероятно, повторяет пиксели границы.

Например:Изображение имеет ширину 100 пикселей и высоту 100 пикселей.

  • Если ядро ​​попытается прочитать изображение [5, -1], оно получит значение [5, 0]
  • Еслиядро пытается прочитать изображение [5, -10], оно получит значение [5, 0]
  • Если кеrnel пытается прочитать Image [5, 100], он получит значение [5, 99]
  • Если ядро ​​попытается прочитать Image [5, 110], он получит значение [5, 99]
  • Если ядро ​​попытается прочитать изображение [-1, -1], оно получит значение [0, 0]
  • Если ядро ​​попытается прочитать изображение [100, 100], онополучит значение [99, 99]

NPP_BORDER_WRAP
Я думаю, что здесь начинается переворачивание границы. Как будто вы помещаете несколько экземпляров изображения рядом.

Например: изображение имеет ширину 100 пикселей и высоту 100 пикселей.

  • Если ядро ​​пытается прочитать изображение [5, -1] получит значение [5, 99]
  • Если ядро ​​попытается прочитать изображение [5, -10], оно получит значение [5, 90]
  • Если ядро ​​попытается прочитать изображение [5, 100], оно получит значение [5, 0]
  • Если ядро ​​попытается прочитать изображение [5, 110], оно получит значение [5, 10]
  • Если ядро ​​попытается прочитать изображение [-1, -1], оно получит значение [99, 99]
  • Если ядро ​​попытается прочитать изображение [100,100] получит значение [0, 0]

NPP_BORDER_MIRROR
Это, вероятно, будет зеркально отображать изображение.

Например: изображение имеет ширину 100 пикселей иВысота 100 пикселей.

  • Если ядро ​​пытается прочитать изображение [5, -1], оно получит значение [5, 0]
  • Если ядро ​​попытается прочитать изображение[5, -10] получит значение [5, 9]
  • Если ядро ​​попытаетсяo читать Image [5, 100], оно получит значение [5, 99]
  • . Если ядро ​​попытается прочитать Image [5, 110], оно получит значение [5, 89] * 1076. *
  • Если ядро ​​попытается прочитать изображение [-1, -1], оно получит значение [0, 0]
  • Если ядро ​​попытается прочитать изображение [100, 100], оно получитзначение [99, 99]
...