178 width_(pixelMapping.width_),
179 height_(pixelMapping.height_),
180 appearanceCostNormalizationInt8_(pixelMapping.appearanceCostNormalizationInt8_),
181 appearanceCostNormalizationInt16_(pixelMapping.appearanceCostNormalizationInt16_),
182 appearanceCostNormalizationInt24_(pixelMapping.appearanceCostNormalizationInt24_),
183 appearanceCostNormalizationInt32_(pixelMapping.appearanceCostNormalizationInt32_),
184 sapatialCostNormalizationInt8_(pixelMapping.sapatialCostNormalizationInt8_),
185 spatialCostNormalizationInt16_(pixelMapping.spatialCostNormalizationInt16_),
186 spatialCostNormalizationInt24_(pixelMapping.spatialCostNormalizationInt24_),
187 spatialCostNormalizationInt32_(pixelMapping.spatialCostNormalizationInt32_)
189 const unsigned int windowHalf = 2u;
203 OCEAN_SUPPRESS_UNUSED_WARNING(windowHalf);
207 width_(pixelMapping.width_),
208 height_(pixelMapping.height_),
209 appearanceCostNormalizationInt8_(pixelMapping.appearanceCostNormalizationInt8_),
210 appearanceCostNormalizationInt16_(pixelMapping.appearanceCostNormalizationInt16_),
211 appearanceCostNormalizationInt24_(pixelMapping.appearanceCostNormalizationInt24_),
212 appearanceCostNormalizationInt32_(pixelMapping.appearanceCostNormalizationInt32_),
213 sapatialCostNormalizationInt8_(pixelMapping.sapatialCostNormalizationInt8_),
214 spatialCostNormalizationInt16_(pixelMapping.spatialCostNormalizationInt16_),
215 spatialCostNormalizationInt24_(pixelMapping.spatialCostNormalizationInt24_),
216 spatialCostNormalizationInt32_(pixelMapping.spatialCostNormalizationInt32_)
218 const unsigned int windowHalf = 2u;
220 ocean_assert(int64_t(appearanceCostNormalizationInt8_) * int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(width_) +
sqr(height_)) +
221 int64_t(sapatialCostNormalizationInt8_) + int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(255)) * 26ll < int64_t((
unsigned int)(-1)));
223 ocean_assert(int64_t(appearanceCostNormalizationInt16_) * int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(width_) +
sqr(height_)) +
224 int64_t(spatialCostNormalizationInt16_) + int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(255)) * 2ll * 26ll < int64_t((
unsigned int)(-1)));
226 ocean_assert(int64_t(appearanceCostNormalizationInt24_) * int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(width_) +
sqr(height_)) +
227 int64_t(spatialCostNormalizationInt24_) + int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(255)) * 3ll * 26ll < int64_t((
unsigned int)(-1)));
229 ocean_assert(int64_t(appearanceCostNormalizationInt32_) * int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(width_) +
sqr(height_)) +
230 int64_t(spatialCostNormalizationInt32_) + int64_t(
sqr(2 * windowHalf + 1)) * int64_t(
sqr(255)) * 4ll * 26ll < int64_t((
unsigned int)(-1)));
232 OCEAN_SUPPRESS_UNUSED_WARNING(windowHalf);
234 pixelMapping.width_ = 0u;
235 pixelMapping.height_ = 0u;
237 pixelMapping.appearanceCostNormalizationInt8_ = 0u;
238 pixelMapping.appearanceCostNormalizationInt16_ = 0u;
239 pixelMapping.appearanceCostNormalizationInt24_ = 0u;
240 pixelMapping.appearanceCostNormalizationInt32_ = 0u;
242 pixelMapping.sapatialCostNormalizationInt8_ = 0u;
243 pixelMapping.spatialCostNormalizationInt16_ = 0u;
244 pixelMapping.spatialCostNormalizationInt24_ = 0u;
245 pixelMapping.spatialCostNormalizationInt32_ = 0u;
251 appearanceCostNormalizationInt8_(calculateAppearanceCostNormalization<1u>(width, height)),
252 appearanceCostNormalizationInt16_(calculateAppearanceCostNormalization<2u>(width, height)),
253 appearanceCostNormalizationInt24_(calculateAppearanceCostNormalization<3u>(width, height)),
254 appearanceCostNormalizationInt32_(calculateAppearanceCostNormalization<4u>(width, height)),
255 sapatialCostNormalizationInt8_(calculateSpatialCostNormalization<1u>(width, height)),
256 spatialCostNormalizationInt16_(calculateSpatialCostNormalization<2u>(width, height)),
257 spatialCostNormalizationInt24_(calculateSpatialCostNormalization<3u>(width, height)),
258 spatialCostNormalizationInt32_(calculateSpatialCostNormalization<4u>(width, height))
260 const unsigned int windowHalf = 2u;
274 OCEAN_SUPPRESS_UNUSED_WARNING(windowHalf);
427 if (
this != &mapping)
430 height_ = mapping.height_;
432 appearanceCostNormalizationInt8_ = mapping.appearanceCostNormalizationInt8_;
433 appearanceCostNormalizationInt16_ = mapping.appearanceCostNormalizationInt16_;
434 appearanceCostNormalizationInt24_ = mapping.appearanceCostNormalizationInt24_;
435 appearanceCostNormalizationInt32_ = mapping.appearanceCostNormalizationInt32_;
437 sapatialCostNormalizationInt8_ = mapping.sapatialCostNormalizationInt8_;
438 spatialCostNormalizationInt16_ = mapping.spatialCostNormalizationInt16_;
439 spatialCostNormalizationInt24_ = mapping.spatialCostNormalizationInt24_;
440 spatialCostNormalizationInt32_ = mapping.spatialCostNormalizationInt32_;
443 mapping.height_ = 0u;
445 mapping.appearanceCostNormalizationInt8_ = 0u;
446 mapping.appearanceCostNormalizationInt16_ = 0u;
447 mapping.appearanceCostNormalizationInt24_ = 0u;
448 mapping.appearanceCostNormalizationInt32_ = 0u;
450 mapping.sapatialCostNormalizationInt8_ = 0u;
451 mapping.spatialCostNormalizationInt16_ = 0u;
452 mapping.spatialCostNormalizationInt24_ = 0u;
453 mapping.spatialCostNormalizationInt32_ = 0u;
virtual void applyMapping(Frame &frame, const Frame &mask, const unsigned int xStart, const unsigned int xWidth, const unsigned int yStart, const unsigned int yHeight, Worker *worker=nullptr) const =0
Applies the current mapping for one given frame.