SegDTWT
The abbreviation SegDWT (or SegWT, SegDTWT)
covers the set the of algorithms of so-called segmentwise
wavelet transform (or segmented
wavelet transform) of discrete-time signals.
These algorithms allow us to compute exact wavelet coefficients of a signal segmentwise, i.e. block-by-block.
For one-dimensional signals, the natural benefit of such an approach is, for example, the possibility to process the signal in real time (as it comes in the course of time).
In two dimensions it might mean that the wavelet coefficients of the image can be obtained via parallel computations.
The methods are universal from the viewpoints of
- the wavelet filter lengths (including the biorthogonals),
- decomposition depth,
- length of the signal segment,
- and signal dimension.
Publications related to the method and algorithms (most of them downloadable from section Publications).
- PRŮŠA, Z.: Segmentwise Discrete Wavelet Transform. Dissertation thesis, Brno University of Technology, 2012.
Software and data (250 MB), see description on p. 103.
- RAJMIC, P.; PRŮŠA, Z.; KONCZI, R.: VST Plugin Module Performing Wavelet Transform In Real-time. In Proceedings of the 15th International Conference on Digital Audio Effects DAFx12. 2012.
- PRŮŠA, Z.: Multidimensional segmentwise wavelet transform: Ph.D. thesis.
Brno university of technology, Brno, 2012. In preparation.
- PRŮŠA, Z.; RAJMIC, P. Real-Time lifting wavelet transform algorithm. Elektrorevue - Internet journal, 2011, 3, p. 53-59. ISSN: 1213-1539.
- PRŮŠA, Z.; RAJMIC, P. Parallel Implementation of 2D Forward Discrete Wavelet Transform on multicore CPUs. Elektrorevue - Internet journal, 2010, roč. 2010, 112, p. 1-7. ISSN: 1213-1539.
- RAJMIC, P. Algorithms for Segmentwise Computation of Forward and Inverse Discrete- time Wavelet Transform. Journal of Concrete and Applicable Mathematics, 2010, 8, no. 3, p. 1-15. ISSN: 1548- 5390.
SegDWT for one-dimensional signals
We can divide the algorithms into two branches accordign to the application:
- So-called off-line
version, which allows processing the signal segment by segment,
however the forward and inverse parts are separated and independent; the forward routine does not directly pass on the computed coefficients for subsequent processing.
This is suitable, for example, in a digital signal processor (DSP), where we
do not require real-time processing, but we do not have enough memory
in the processor and thus the signal has to be
transformed part by part.
Another application arises in the field of processing large-scale image data
(here too, we do not have "real time", but the
segmentwise processing is advisable or even necessary).
- In the so-calledreal-time version,
the input segments are processed and sent to the output with minimum delay.
Such an approach is suitable in all situations in which it is necessary to produce the output with minimum delay, related to the input.
Block diagrams of the algorithms:
forward "off-line" transform,
inverse "off-line" transform,
real-time transform.
Implementation in Matlab
- Source code for MATLAB. The main files are segdtwt.m for the forward transform "off-line" and segidtwt.m
for the respective inverse, and rt_dtwt.m for the
simulation of the real-time version.
Detailed help could be found inside the files. (Author P. Rajmic)
- MATLAB files with a modified verison of the above [under construction] (Author Z. Průša)
Implementation in C++
Programs for C++ represent, in fact, rewriting of the algorithms from Matlab:
- Off-line
version is in the form of stand-alone executables (forward.exe and inverse.exe), calling the program without arguments results in the list of options.
A text file containing a detailed help forms a part of the package.
(Author J. Malý)
-
Static library SegDWT implementing SegDWT for a given (fixed) order of processing of segments. (Author Z. Průša)
- VST plug-in module which uses the above SegDWT library for real-time audio processing tasks.
The DLL file has to be copied into the directory, where the so-called host application searches for the plugin modules. As the host, Steinberg Cubase, MiniHost, GTPlayer, AbletonLive, can
be used, for example.
The VST module is extendable by user algorithms for processing the wavelet coefficients. (Author Z. Průša)
See the figure.
See this article.
|
Plug-in screenshot – graphical user interface of the module.
Left part from up to bottom – Gain controls the overall volume,
Wavelet allows for choosing the wavelet filter,
Depth defines the depth of decomposition,
Process chooses the processing of wavelet coefficients. |
SegLWT for one-dimensional signals
Lifting scheme is the polyphase representation of the wavelet filter bank, and it has several advantages.
The principle of obtaining the coefficients is, however, different (and more complicated) from the usual algorithm, and this requires new approach to the segmented computation.
This is why a special abbreviation, SegLWT (segmented lifling wavelet transform) was introduced.
Implementation in Matlab
MATLAB source codes for SegLWT. (Author Z. Průša)
SegDWT for two-dimensional signals
These algorithms can serve in cases when the wavelet transform of the image has to (or simply could) be computed segmentwise (i.e. block after block), so that no blocking artifacts would appear. We usually know the image beforehand so this opens a possibility to make the computation in parallel on multiple cores/processors/stations.
The blocks are of arbitrary size in our approach.
Implementation in C++ using Intel TBB
For the purposes of parallelization the Intel Threading Building Blocks library was utilized. The algorithm is based on the separability of the wavelet transform. The larger is the image processed, the more effectivity the parallelization can bring.
The archive containing the programs and a paper with description is
downloadable from here.
(Author Z. Průša)
SegDWT for n-dimensional signals
It is possible to use SegDWT for signals of arbitrary dimension, due to the separability property of DWT.
See thesis of Zdeněk Průša and related data and programs.
Remarks
All programs are published under the terms of the GNU General
Public Licence.
Thanks to the Czech
Science Foundation for funding this research (grant No.
102/06/P407).