Skip to main content

Crate singe_npp

Crate singe_npp 

Source
Expand description

Safe NVIDIA Performance Primitives wrappers for image and signal APIs.

This crate wraps NPP version queries, stream contexts, image and signal device memory, image processing pipelines, signal processing pipelines, typed image views, channel layouts, sizes, rectangles, and temporary workspaces.

§Example

use singe_cuda::context::Context;
use singe_npp::{
    C3, ImagePipeline, ImageView, StreamContext, Workspace,
    types::{ComparisonOperation, InterpolationMode, Size},
};

let ctx = Context::create()?;
let stream = ctx.create_stream()?;
let stream_context = StreamContext::create(&stream)?;
let mut workspace = Workspace::create();

let device_memory = todo!();
let size = Size::new(640, 480);
let source = ImageView::<u8, C3>::from_memory(&device_memory, size)?;

let output = ImagePipeline::from_view(&stream_context, &mut workspace, source)
    .resize(Size::new(256, 256), InterpolationMode::Lanczos)?
    .rgb_to_gray()?
    .threshold(128, ComparisonOperation::Less)?
    .filter_sharpen()?
    .finish()?;
let image = output.copy_to_host_vec()?;

println!("NPP version: {:?}", singe_npp::version()?);

Re-exports§

pub use context::StreamContext;
pub use error::Error;
pub use error::Result;
pub use image::AC4;
pub use image::AlphaIgnoredRgba;
pub use image::C1;
pub use image::C2;
pub use image::C3;
pub use image::C4;
pub use image::ChannelLayout;
pub use image::Channels2;
pub use image::Gray;
pub use image::Image;
pub use image::ImageView;
pub use image::ImageViewMut;
pub use image::MaskView;
pub use image::MaskViewMut;
pub use image::Rgb;
pub use image::Rgba;
pub use image::SupportedImage;
pub use pipeline::ImageBacking;
pub use pipeline::ImagePipeline;
pub use pipeline::SignalBacking;
pub use pipeline::SignalPipeline;
pub use pipeline::Workspace;
pub use signal::Signal;
pub use signal::SignalView;
pub use signal::SignalViewMut;
pub use signal::SupportedSignal;

Modules§

context
error
image
pipeline
Fluent NPP pipelines.
signal
types
workspace
Scratch-buffer support for NPP wrappers.

Macros§

try_ffi

Structs§

Version
NPP library version components.

Functions§

version
Returns the loaded NPP library version.