isce3 0.25.0
Loading...
Searching...
No Matches
cuAmpcorUtil.h
1/*
2 * @file cuAmpcorUtil.h
3 * @brief Header file to include various routines for cuAmpcor
4 *
5 *
6 */
7
8// code guard
9#ifndef __CUAMPCORUTIL_H
10#define __CUAMPCORUTIL_H
11
12#include "cuArrays.h"
13#include "cuAmpcorParameter.h"
14
15
16namespace isce3::matchtemplate::pycuampcor {
17
18//in cuArraysCopy.cu: various utilities for copy images file in gpu memory
19void cuArraysCopyToBatchWithOffset(cuArrays<float2> *image1, const int lda1, cuArrays<float2> *image2,
20 const int *offsetH, const int* offsetW);
21void cuArraysCopyToBatchAbsWithOffset(cuArrays<float2> *image1, const int lda1, cuArrays<float2> *image2,
22 const int *offsetH, const int* offsetW);
23void cuArraysCopyToBatchWithOffsetR2C(cuArrays<float> *image1, const int lda1, cuArrays<float2> *image2,
24 const int *offsetH, const int* offsetW);
25
26// same routine name overloaded for different data type
27// extract data from a large image
28template<typename T>
29void cuArraysCopyExtract(cuArrays<T> *imagesIn, cuArrays<T> *imagesOut, cuArrays<int2> *offset);
30
31void cuArraysCopyExtract(cuArrays<float2> *imagesIn, cuArrays<float> *imagesOut, int2 offset);
32
33template<typename T>
34void cuArraysCopyExtract(cuArrays<T> *imagesIn, cuArrays<T> *imagesOut, int2 offset);
35
36template<typename T>
37void cuArraysCopyInsert(cuArrays<T> *in, cuArrays<T> *out, int offsetX, int offsetY);
38
39template<typename T_in, typename T_out>
40void cuArraysCopyPadded(cuArrays<T_in> *imageIn, cuArrays<T_out> *imageOut);
41
42void cuArraysAbs(cuArrays<float2> *image1, cuArrays<float> *image2);
43
44// cuDeramp.cu: deramping phase
45void cuDeramp(int method, cuArrays<float2> *images);
46void cuDerampMethod1(cuArrays<float2> *images);
47
48// cuArraysPadding.cu: various utilities for oversampling padding
49void cuArraysPaddingMany(cuArrays<float2> *image1, cuArrays<float2> *image2);
50
51//in cuCorrNormalization.cu: utilities to normalize the cross correlation function
52void cuArraysSubtractMean(cuArrays<float> *images);
53void cuCorrNormalize(cuArrays<float> *templates, cuArrays<float> *images, cuArrays<float> *results);
54
55// in cuCorrNormalizationSAT.cu: to normalize the cross correlation function with sum area table
56void cuCorrNormalizeSAT(cuArrays<float> *correlation, cuArrays<float> *reference, cuArrays<float> *secondary,
57 cuArrays<float> * referenceSum2, cuArrays<float> *secondarySAT, cuArrays<float> *secondarySAT2);
58
59//in cuOffset.cu: utitilies for determining the max locaiton of cross correlations or the offset
60void cuArraysMaxloc2D(cuArrays<float> *images, cuArrays<int2> *maxloc, cuArrays<float> *maxval);
61void cuSubPixelOffset(cuArrays<int2> *offsetInit, cuArrays<int2> *offsetZoomIn, cuArrays<float2> *offsetFinal,
62 int OverSampleRatioZoomin, int OverSampleRatioRaw,
63 int xHalfRangeInit, int yHalfRangeInit);
64
65void cuDetermineSecondaryExtractOffset(cuArrays<int2> *maxLoc, cuArrays<int2> *maxLocShift,
66 int xOldRange, int yOldRange, int xNewRange, int yNewRange);
67
68//in cuCorrTimeDomain.cu: cross correlation in time domain
69void cuCorrTimeDomain(cuArrays<float> *templates, cuArrays<float> *images, cuArrays<float> *results);
70
71// For SNR estimation on Correlation surface (Minyan Zhong)
72// implemented in cuArraysCopy.cu
73void cuArraysCopyExtractCorr(cuArrays<float> *imagesIn, cuArrays<float> *imagesOut, cuArrays<int> *imagesValid, cuArrays<int2> *maxloc);
74// implemented in cuCorrNormalization.cu
75void cuArraysSumCorr(cuArrays<float> *images, cuArrays<int> *imagesValid, cuArrays<float> *imagesSum, cuArrays<int> *imagesValidCount);
76
77// implemented in cuEstimateStats.cu
78void cuEstimateSnr(cuArrays<float> *corrSum, cuArrays<int> *corrValidCount, cuArrays<float> *maxval, cuArrays<float> *snrValue);
79
80// implemented in cuEstimateStats.cu
81void cuEstimateVariance(cuArrays<float> *corrBatchRaw, cuArrays<int2> *maxloc, cuArrays<float> *maxval, int templateSize, cuArrays<float3> *covValue);
82
83} // namespace
84
85#endif
86
87// end of file
A class holds cuAmpcor process parameters.
Header file for cuArrays class.

Generated for ISCE3.0 by doxygen 1.13.2.