19 template <
typename T,
typename BC >
26 void operator()(T * s, std::size_t n, std::size_t step);
33 void operator()(T * s, std::size_t n, std::size_t step);
44 template <
typename T,
typename BC >
51 void operator()(T * s, std::size_t n, std::size_t step);
58 void operator()(T * s, std::size_t n, std::size_t step);
69 template <
typename DWT, std::
size_t D >
74 template <
typename DWT >
93 template <
typename DWT >
178 template <
typename DWT >
196 template <
typename IDWT >
224 template <
typename DWT, std::
size_t D >
234 template <
typename TIterator >
235 static bool or_all(TIterator begin, TIterator end)
237 for (; begin != end; ++begin)
239 if (*begin)
return true;
249 template <
typename IDWT, std::
size_t D >
262 for (std::size_t i = 0; i < D; ++i)
267 if (sm[i] > sm[i0])
return false;
279 template <
typename T >
282 void operator()(T * s, std::size_t length, std::size_t hop);
287 template <
typename T, std::
size_t D >
290 template <
typename T >
302 template <
typename T >
309 void shuffle(T * s, std::size_t length, std::size_t jump = 1);
310 void unshuffle(T * s, std::size_t length, std::size_t jump = 1);
312 std::vector<T> m_buffer;
317 template <
typename T, std::
size_t D >
322 template <
typename T >
331 template <
typename T >
345 template <
typename T,
typename BC >
346 inline void dwt_cubic(T * s, std::size_t n, std::size_t step, BC);
349 template <
typename T >
350 inline void dwt_cubic(T * s, std::size_t n, std::size_t step);
353 template <
typename T,
typename BC >
354 inline void idwt_cubic(T * s, std::size_t n, std::size_t step, BC);
357 template <
typename T >
358 inline void idwt_cubic(T * s, std::size_t n, std::size_t step);
360 template <
typename T, std::
size_t D >
363 template <
typename T, std::
size_t D >
366 template <
typename T,
typename BC >
369 template <
typename T >
372 template <
typename T,
typename BC >
375 template <
typename T >
378 template <
typename T, std::
size_t D,
typename BC >
381 template <
typename T, std::
size_t D >
384 template <
typename T, std::
size_t D,
typename BC >
387 template <
typename T, std::
size_t D >
390 template <
typename T >
393 template <
typename T >
396 template <
typename T, std::
size_t D >
399 template <
typename T, std::
size_t D >
402 template <
typename T, std::
size_t D >
void multi_dwt_cubic(T *s, std::size_t dim, BC)
void dwtND_cubic(T *im, numeric_array< std::size_t, D > dim)
void dwtND_cubicConjugate(T *im, numeric_array< std::size_t, D > dim)
void multi_dwtND_shuffle(T *im, numeric_array< std::size_t, D > dim)
void dwt_cubic(T *s, std::size_t n, std::size_t step, BC)
In-place (4-2) DWT via lifting.
void idwt_cubic(T *s, std::size_t n, std::size_t step, BC)
In-place inverse (4-2) DWT via lifting.
void multi_idwtND_cubic(T *im, numeric_array< std::size_t, D > dim, BC)
Belongs to package Box Do not include directly, include til/Box.h instead.
Extension of DWT to multidimensional arrays.
In-place (4-2) DWT via lifting.
Multi-scale in-place DWT.
void multi_dwtND_power(T *im, numeric_array< std::size_t, D > dim)
void multi_dwtND_unshuffle(T *im, numeric_array< std::size_t, D > dim)
IDWT::prec_type prec_type
void operator()(T *s, std::size_t n, std::size_t step)
void multi_dwt_shuffle(T *s, std::size_t n)
Multi-scale in-place DWT in N-D.
void multi_dwt_unshuffle(T *s, std::size_t n)
void multi_idwt_cubic(T *s, std::size_t dim, BC)
IDWT::prec_type prec_type
void multi_dwtND_cubic(T *im, numeric_array< std::size_t, D > dim, BC)
Transposed filter of (4-2).
MultiDWTShuffle(std::size_t maxlength)