[]
This abstract class represents a subband in a bidirectional tree structure that describes the subband decomposition for a wavelet transform. This class is implemented by the SubbandAn and SubbandSyn classes, which are for the analysis and synthesis sides respectively.
<p>The element can be either a node or a leaf of the tree. If it is a node,
it has 4 descendants (LL, HL, LH and HH). If it is a leaf, it has no
descendant.</p><p>The tree is bidirectional. Each element in the tree structure has a
"parent", which is the subband from which the element was obtained by
decomposition. The only exception is the root element which, for obvious
reasons, has no parent (i.e. it is null).</p>
public abstract class Subband
Name | Description |
---|---|
Subband() | Creates a Subband element with all the default values. The dimensions are (0,0), the upper left corner is (0,0) and the upper-left corner with respect to the canvas is (0,0) too. |
Subband(int, int, int, int, int, WaveletFilter[], WaveletFilter[]) | Creates the top-level node and the entire subband tree, with the top-level dimensions, the number of decompositions, and the decomposition tree as specified.
|
Name | Description |
---|---|
WT_ORIENT_HH | The ID for the HH orientation |
WT_ORIENT_HL | The ID for the HL (horizontal high-pass) orientation |
WT_ORIENT_LH | The ID for the LH (vertical high-pass) orientation |
WT_ORIENT_LL | The ID for the LL orientation |
anGainExp | The base 2 exponent of the analysis gain of the subband. The analysis gain of a subband is defined as the gain of the previous subband (i.e. the one from which this one was obtained) multiplied by the line gain and by the column gain. The line (column) gain is the gain of the line (column) filter that was used to obtain it, which is the DC gain for a low-pass filter and the Nyquist gain for a high-pass filter. It is 0 by default.
|
h | The height of the subband |
isNode | True if it is a node in the tree, false if it is a leaf. |
level | The level in the tree to which this subband belongs, which is the number of performed wavelet decompositions to get this subband. It is 0 for the top-level (i.e. root) node. |
nomCBlkH | The nominal code-block height |
nomCBlkW | The nominal code-block width |
numCb | The number of code-blocks (in both directions) contained in this subband. |
orientation | The orientation of this subband (WT_ORIENT_LL, WT_ORIENT_HL, WT_ORIENT_LH, WT_ORIENT_HH). |
resLvl | The resolution level to which this subband contributes. 0 is the smallest resolution level (the one with the lowest frequency LL subband). |
sbandIdx | The subband index within its resolution level. This value uniquely identifies a subband within a resolution level and a decomposition level within it. Note that only leaf elements represent "real" subbands, while node elements represent only intermediate stages.
|
ulcx | The horizontal coordinate of the upper-left corner of the subband, with respect to the canvas origin, in the component's grid and subband's decomposition level. This is the real horizontal index of the first column of this subband. If even the horizontal decomposition of this subband should be done with the low-pass-first convention. If odd it should be done with the high-pass-first convention. |
ulcy | The vertical coordinate of the upper-left corner of the subband, with respect to the canvas origin, in the component's grid and subband's decomposition level. This is the real vertical index of the first column of this subband. If even the vertical decomposition of this subband should be done with the low-pass-first convention. If odd it should be done with the high-pass-first convention. |
ulx | The horizontal coordinate of the upper-left corner of the subband |
uly | The vertical coordinate of the upper-left corner of the subband |
w | The width of the subband |
Name | Description |
---|---|
HH | Returns the HH child subband of this subband. |
HL | Returns the HL (horizontal high-pass) child subband of this subband. |
HorWFilter | This function returns the horizontal wavelet filter relevant to this subband |
LH | Returns the LH (vertical high-pass) child subband of this subband. |
LL | Returns the LL child subband of this subband. |
NextResLevel | Returns the first leaf subband element in the next higher resolution level. |
Parent | Returns the parent of this subband. The parent of a subband is the subband from which this one was obtained by decomposition. The root element has no parent subband (null). |
VerWFilter | This function returns the vertical wavelet filter relevant to this subband |
Name | Description |
---|---|
ToString() | Returns subband informations in a string. |
getSubband(int, int) | Returns a reference to the Subband element to which the specified point belongs. The specified point must be inside this (i.e. the one defined by this object) subband. This method searches through the tree. |
getSubbandByIdx(int, int) | Returns a subband element in the tree, given its resolution level and subband index. This method searches through the tree. |
initChilds() | Initializes the childs of this node with the correct values. The sizes of the child subbands are calculated by taking into account the position of the subband in the canvas.
|
nextSubband() | Returns the next subband in the same resolution level, following the subband index order. If already at the last subband then null is returned. If this subband is not a leaf an IllegalArgumentException is thrown. |
split(WaveletFilter, WaveletFilter) | Splits the current subband in its four subbands. This creates the four childs (LL, HL, LH and HH) and converts the leaf in a node. |