luxlabs header browser preview


@class PyramidStage, PyramidStorage, DenoiseRemixStage;

@interface AMBNRStage : NSObject {
    PyramidStage *_pyramidStage;
    DenoiseRemixStage *_denoiseRemixStage;
    struct AmbnrConfiguration { struct NoiseModel { float lumaSigmaIntercept; float lumaSigmaSlope; float lumaSigmaMax; void /* unknown type, empty encoding */ chromaSigma; float lumaRemixWeight; float chromaRemixWeight; float blueBoost; float flatnessBoost; float flatnessThreshold; float blurKernelSize; float haloSuppression; float highGainDenoiseThreshold; float highGainSharpenThreshold; float radialSharpnessBoost; float radialFlatnessBoost; struct { float start; float end; float margin; } bluenessCb; struct { float start; float end; float margin; } bluenessCr; } nm; struct NoiseModel { float lumaSigmaIntercept; float lumaSigmaSlope; float lumaSigmaMax; void /* unknown type, empty encoding */ chromaSigma; float lumaRemixWeight; float chromaRemixWeight; float blueBoost; float flatnessBoost; float flatnessThreshold; float blurKernelSize; float haloSuppression; float highGainDenoiseThreshold; float highGainSharpenThreshold; float radialSharpnessBoost; float radialFlatnessBoost; struct { float start; float end; float margin; } bluenessCb; struct { float start; float end; float margin; } bluenessCr; } nmHighGain; struct exposureParameters { float gain; float red_gain; float blue_gain; float digital_gain; float exposure_time; float average_focus_score; float normalized_snr; float original_exposure_bias; float exposure_bias; BOOL is_long; } exposureParams; float lumaLensShadingFactor; float chromaLensShadingFactor; float chromaDemoireStrength; float lumaBlurKernelSize; float chromaBlurKernelSize; void /* unknown type, empty encoding */ lumaUpsamplingCoordOffset; void /* unknown type, empty encoding */ chromaUpsamplingCoordOffset; } _ambnrConf[4];
    PyramidStorage *_pyramid;
    struct PyramidFilterParams { int filterType; float luma_param; float chroma_param; } _pyrFilters[3];
    BOOL _pyramidOffsetsMatchStock;
}

- (void)selectBlurKernelSize:(struct AmbnrConfiguration { struct NoiseModel { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; struct { float x0; float x1; float x2; } x14; struct { float x0; float x1; float x2; } x15; } x0; struct NoiseModel { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; struct { float x0; float x1; float x2; } x14; struct { float x0; float x1; float x2; } x15; } x1; struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } x2; float x3; float x4; float x5; float x6; float x7; } *)a0;
- (id)init:(id)a0 onlySingleImageDenoising:(BOOL)a1;
- (void)computeConfiguration:(struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } *)a0 tuningParams:(id)a1 highGainTuningParams:(id)a2 correctBias:(BOOL)a3;
- (void).cxx_destruct;
- (int)run:(struct __CVBuffer { } *)a0 metalContext:(id)a1 exposure:(struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } *)a2 tuningParams:(id)a3 highGainTuningParams:(id)a4 ltmBuffers:(id)a5 correctBias:(BOOL)a6;
- (int)setResourcesWithPyramid:(id)a0 laplacianPyramid:(id)a1 denoisedPyramid:(id)a2;

@end