singe-npp 0.1.0-alpha.8

Safe Rust wrappers for NVIDIA Performance Primitives library (NPP).
Documentation
use singe_cuda::memory::DeviceMemory;

use crate::{
    context::StreamContext,
    error::Result,
    image::{
        statistics,
        view::{C1, C3, C4, ImageView},
    },
};

use super::super::ImagePipeline;
use super::*;

#[path = "statistics_error_metric_dispatch_impls.rs"]
mod error_metric_impls;
#[path = "statistics_quality_norm_dispatch_impls.rs"]
mod norm_impls;

impl_quality_metric_image!(u8, C1, 1, statistics::mse_u8_c1, statistics::psnr_u8_c1);
impl_quality_metric_image!(u8, C3, 3, statistics::mse_u8_c3, statistics::psnr_u8_c3);

impl_structural_similarity_image!(u8, C1, 1, statistics::ssim_u8_c1);
impl_structural_similarity_image!(u8, C3, 3, statistics::ssim_u8_c3);

impl_multiscale_structural_similarity_image!(u8, C1, 1, statistics::msssim_u8_c1);

impl_weighted_multiscale_structural_similarity_image!(u8, C1, 1, statistics::wmsssim_u8_c1);
impl_weighted_multiscale_structural_similarity_image!(u8, C3, 3, statistics::wmsssim_u8_c3);
impl_weighted_multiscale_structural_similarity_image!(u8, C4, 4, statistics::wmsssim_u8_c4);