Software Implementation of Real-time Discrete Wavelet Transform Algorithm with Filter Banks

Software Implementation of Real-time Discrete Wavelet Transform Algorithm with Filter Banks

Nikolajs Bogdanovs (Department of Transport Electronics and Telematics, Riga Technical University, Riga, Latvia), Elans Grabs (Department of Transport Electronics and Telematics, Riga Technical University, Riga, Latvia) and Ernests Petersons (Department of Transport Electronics and Telematics, Riga Technical University, Riga, Latvia)
DOI: 10.4018/IJISSS.2016040106
OnDemand PDF Download:
No Current Special Offers


This article describes real-time discrete wavelet transform algorithm implementation for high-level programming language. The article describes multiscale transform algorithms both for direct discrete wavelet transform and inverse discrete wavelet transform. This algorithm has been implemented in C++ programming language and tested with Raspberry Pi microprocessor system. This article proposes the improved delay line algorithm without full shifting of register. New algorithm requires single reading operation, single writing operation and one division calculation for any length of delay line. The article includes experimental measurements of processing time on Raspberry Pi for various scale numbers. The algorithm described in this article can be used with any software tool capable of using high level programming language, for example Matlab, Octave, Opnet, etc. This is the main purpose – to create algorithm which is not tied strictly to hardware implementation but also, nonetheless, provides real-time discrete wavelet analysis capability.
Article Preview


The brief analysis of literature shows that multiscale discrete wavelet transform software implementation is not widely discussed. The main interest in most works is concerned with hardware implementation instead. The authors of this article couldn’t find any real-time algorithm proposed for discrete wavelet transform calculation. It is possible to segment data and process these segments in real-time if performance of the system is high enough. However the length of segments is limited from below by the number of analysis scales. So, for multiscale analysis it is necessary to increase the length of the segments.

Mallat pyramidal algorithm is being used for most of implementations and it is described in details in many sources, for example in (Strang & Ngueyen, 1996) or (Mallat, 1999). According to this algorithm, data segment is being accumulated and further is processed by IJISSS.2016040106.m01 scale filter bank. The result is composed of approximation coefficients IJISSS.2016040106.m02 and detail coefficients IJISSS.2016040106.m03. The approximation coefficients are being processed further by IJISSS.2016040106.m04 scale filter bank and this process is iteratively being repeated. It is possible to process data in real-time if segments are small enough and data rate is very high, for instance in master’s thesis (Bomers, 2000) such approach is described for audio signal real-time processing. Other works and articles describe segmentation with or without overlapping in order to minimize the border effect of segmentation (for example, in (Prusa & Rajmic, 2011)).

There is wide variety of hardware implementation descriptions. It is very popular to implement such filter banks with Field Programmable Gate Array (FPGA) logic, examples are provided in (Bahoura & Ezzaidi, 2010; Cavuslu & Karakaya, 2010)). Also such implementations are described in details in master’s thesis (Sripath, 2003). This work proposes different implementations – direct, polyphase, lattice structures. There are many articles with performance improvements, such as (Jing & Yuan Bin, 2007; Wenbing & Yingmin, 2008). Another optimization is related to decreased power consumption for multiplications, for example in (O’Brien & Conway, 2008).

There are discrete wavelet transform implementation algorithms for DSP processors as well, for example (Ben Hnia Gazzah et al., 2008; QiWei Lin et al., 2009), including parallel processing in (Wilburn & Alexander, 1994) to increase computational efficiency of discrete wavelet transform algorithm.

The publishing years of most of these works show that this topic is well researched and evolved. Of course, there are new works describing multidimensional transforms and more efficient processing algorithms, for example in (Darji et al., 2014; Darji et al., 2014). In other works the algorithms are being optimized for specific tasks, few of many examples are (Sardar & Babu, 2014; Cutajar et al., 2014). Another important topic is energy efficiency, which is also being researched at the present moment and some publications can give insight in this, for example (Tang-Hsuan et al., 2014) uses discrete wavelet transform for neuron network processing.

Complete Article List

Search this Journal:
Open Access Articles
Volume 14: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 13: 4 Issues (2021)
Volume 12: 4 Issues (2020)
Volume 11: 4 Issues (2019)
Volume 10: 4 Issues (2018)
Volume 9: 4 Issues (2017)
Volume 8: 4 Issues (2016)
Volume 7: 4 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing