{"id":506,"date":"2023-05-23T16:13:36","date_gmt":"2023-05-23T21:13:36","guid":{"rendered":"https:\/\/davidwdrell.net\/wordpress\/?p=506"},"modified":"2023-05-23T16:14:15","modified_gmt":"2023-05-23T21:14:15","slug":"nvidia-2d-image-and-signal-performance-primitives-npp","status":"publish","type":"post","link":"https:\/\/davidwdrell.net\/wordpress\/?p=506","title":{"rendered":"NVIDIA 2D Image and Signal Performance Primitives (NPP)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Based on the lack of examples and discussion in the forums, I assume the NPP are under-utilized and under-appreciated.&nbsp; Since I discovered these, it has been a game changer for me in my image processing work. Since machine vision camera resolutions are now at 12 Mega-pixels and higher, its required to accelerate processing with a GPU.  No longer do I need to create many of my own Cuda algorithms for 2D image processing \u2013 many of them already exist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, resizing an image (x,y re-scale) is fully supported on any pixel data type and with multiple filter types, all accelerated with Cuda parallel operations (see my post and example project on an image resize implementation <a href=\"https:\/\/davidwdrell.net\/wordpress\/?p=449\">here<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The NVIDIA documentation is a bit sparse, the shear number of functions and sub-libraries are daunting. I suggest starting with this page. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.nvidia.com\/cuda\/npp\/modules.html\">https:\/\/docs.nvidia.com\/cuda\/npp\/modules.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Within this page, open the topics and drill down, I think you will be impressed with the number of Cuda functions available.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-1024x385.png\" alt=\"\" class=\"wp-image-507\" srcset=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-1024x385.png 1024w, https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-300x113.png 300w, https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-768x289.png 768w, https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image.png 1054w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"265\" src=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-2.png\" alt=\"\" class=\"wp-image-509\" srcset=\"https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-2.png 862w, https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-2-300x92.png 300w, https:\/\/davidwdrell.net\/wordpress\/wp-content\/uploads\/2023\/05\/image-2-768x236.png 768w\" sizes=\"auto, (max-width: 862px) 100vw, 862px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Based on the lack of examples and discussion in the forums, I assume the NPP are under-utilized and under-appreciated.&nbsp; Since [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[8,5,9],"tags":[],"class_list":["post-506","post","type-post","status-publish","format-standard","hentry","category-cuda","category-image-processing","category-nvidia-jetson"],"_links":{"self":[{"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=506"}],"version-history":[{"count":4,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/506\/revisions"}],"predecessor-version":[{"id":513,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/506\/revisions\/513"}],"wp:attachment":[{"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davidwdrell.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}