51 auto findGoodCorrelationSize(
const Dimensions &ref);
57 auto findGoodPatchSize();
78 std::vector<FramePatchMeta<T>> getPatchesLocation(
const std::pair<T, T> &borders,
116 T* setFilter(
float scale,
const Dimensions &dims);
119 struct AlignmentContext
124 std::pair<T, T> scale;
127 size_t alignmentBytes()
const {
128 return (N * (N-1) / 2) * 2 *
sizeof(float);
139 void applyShiftsComputeAverage(
148 auto getOutputStreamCount();
164 std::optional<Dimensions> getStoredSizes(
const Dimensions &dim,
bool applyCrop);
179 void report(
float scale,
190 void getCroppedFrame(
const Dimensions &settings, T *output, T *src);
206 mFrames.reserve(dim.
n());
207 for (
auto n = 0;
n < dim.
n(); ++
n) {
209 mFrames.emplace_back(1, 1, dim.
y(), dim.
x(),
nullptr);
216 auto &getDim()
const {
224 auto &getFrame(
size_t index)
const {
225 return mFrames[
index];
233 auto setFrameData(
size_t index, T *ptr) {
234 mFrames[
index].data = ptr;
238 std::vector<MultidimArray<T>> mFrames;
258 auto computeAlignment(
float *positions,
const AlignmentContext &context);
260 void releaseAll()
override;
273 std::string getKey(
const std::string &keyword,
const Dimensions &dim,
bool crop)
const {
274 std::stringstream ss;
275 ss <<
version <<
" " << mGpu.value().getUUID() << keyword << dim <<
" " << crop;
279 void applyShiftsComputeAverage(
308 std::string minMemoryStr = std::string(
"minMem");
309 std::string optSizeXStr = std::string(
"optSizeX");
310 std::string optSizeYStr = std::string(
"optSizeY");
311 std::string optBatchSizeStr = std::string(
"optBatchSize");
313 static constexpr
auto version =
"2.0";
void defineParams()
Define parameters.
CUDA_HD constexpr size_t x() const
void readParams()
Read argument from command line.
CUDA_HD constexpr size_t y() const
int verbose
Verbosity level.
CUDA_HD constexpr size_t n() const