panwave
|
#include <WaveletPacketTree.h>
Public Member Functions | |
WaveletPacketTree (size_t height, const Wavelet *wavelet, DyadicMode dyadic_mode=DyadicMode::Odd, PaddingMode padding_mode=PaddingMode::Zeroes) | |
void | Decompose () override |
void | Reconstruct (size_t level) override |
![]() | |
WaveletPacketTreeTemplateBase (size_t height, const Wavelet *wavelet) | |
void | SetRootSignal (const std::vector< double > *signal) override |
const std::vector< double > * | GetRootSignal () override |
size_t | GetWaveletLevelCount () const override |
![]() | |
Tree (size_t height) | |
![]() | |
WaveletPacketTreeBase (const WaveletPacketTreeBase &)=delete | |
WaveletPacketTreeBase (const WaveletPacketTreeBase &&)=delete | |
WaveletPacketTreeBase & | operator= (const WaveletPacketTreeBase &)=delete |
WaveletPacketTreeBase & | operator= (const WaveletPacketTreeBase &&)=delete |
virtual size_t | GetWaveletLevelCount () const =0 |
Protected Member Functions | |
void | IsolateLevel (size_t level) |
void | DecomposeNode (size_t node) |
void | ReconstructNode (size_t node) |
![]() | |
size_t | GetLeafCount () const |
size_t | GetFirstLeaf () const |
size_t | GetLastLeaf () const |
bool | IsLeaf (size_t node) const |
size_t | GetChild (size_t parent, size_t child_index) const |
size_t | GetParent (size_t child) const |
WaveletPacketTreeBase::WaveletPacketTreeNodeData & | GetNodeData (size_t index) |
bool | IsMarked (size_t node) const |
void | SetMark (size_t node) |
void | Unmark () |
size_t | GetHeight () const |
Additional Inherited Members | |
![]() | |
const Wavelet * | wavelet_ |
A conventional wavelet packet tree class.
This is a binary tree, each non-leaf node has two children.
During decomposition, each node is decomposed into details and approximation coefficients. The approximation coefficients are stored in the left (0th) child while the details coefficients are stored in the right (1st) child.
panwave::WaveletPacketTree::WaveletPacketTree | ( | size_t | height, |
const Wavelet * | wavelet, | ||
DyadicMode | dyadic_mode = DyadicMode::Odd , |
||
PaddingMode | padding_mode = PaddingMode::Zeroes |
||
) |
Construct a WaveletPacketTree instance.
Root signal is initially unset. Set it before calling Decompose.
height | Height of the tree. A tree with only one root node has height of 1. |
wavelet | Wavelet object used during decomposition / reconstruction. |
dyadic_mode | Which mode we should use when dyadically upsampling / downsampling when performing convolutions. (default: Odd) |
padding_mode | How we should pad the signal data during decomposition / reconstruction. (default: Zeroes) |
|
overridevirtual |
Perform a wavelet packet tree decomposition.
Starting with the root node, decomposes recursively every node in the tree stopping at the leaf nodes.
This is not a sparse decomposition, all nodes will have decomposed signal data after executing.
Implements panwave::WaveletPacketTreeBase.
|
overridevirtual |
Reconstruct an isolated wavelet level.
Beginning at the leaf nodes, recursively reconstruct up all levels of the tree stopping at the root node.
Upon completion, the root signal will contain the reconstructed signal.
level | The wavelet level we should isolate and reconstruct. |
Implements panwave::WaveletPacketTreeBase.