Proposed two-channel filter bank
A block diagram of the proposed subband coding system using one pair of filters is presented in Fig. 2. In the decomposition (analysis) stage, the input signal is divided into two subbands W (z) and U (z). In the upper branch the signal is processed by filter H (z), delayed and downsampled by a factor of 2. In the bottom branch the input signal is only downsampled by a factor of 2. Because of delay z
−1, the input signal is separated into odd and even components. Downsampling causes the reduction of samples amount and preserves the same length of signals before and after the decomposition stage. The reconstruction stage is constructed in a different way. The bottom subband signal U (z) is upsampled by a factor of 2, processed by filter G (z) and combined with the signal which is formed by upsampling and shifting the subband signal W (z) by z
2. In the final step this signal is delayed (z
−1) and added to upsampled subband signal W (z).
For the discrete input signal X(z), the decomposition equations are formulated as follows
$$ Y(z)= X(z)\cdot H(z)\cdot {z}^{-1} $$
(1)
$$ W(z)=\frac{1}{2}\cdot Y\left({z}^{1/2}\right)+\frac{1}{2}\cdot Y\left(-{z}^{1/2}\right) $$
(2)
$$ U(z)=\frac{1}{2}\cdot X\left({z}^{1/2}\right)+\frac{1}{2}\cdot X\left(-{z}^{1/2}\right) $$
(3)
Substituting (1) for (2) gives the subband signals
$$ W(z)=\frac{1}{2}\cdot X\left({z}^{1/2}\right)\cdot H\left({z}^{1/2}\right)\cdot {z}^{-1/2}+\frac{1}{2}\cdot X\left(-{z}^{1/2}\right)\cdot H\left(-{z}^{1/2}\right)\cdot \left(-{z}^{-1/2}\right) $$
(4)
$$ U(z)=\frac{1}{2}\cdot X\left({z}^{1/2}\right)+\frac{1}{2}\cdot X\left(-{z}^{1/2}\right) $$
(5)
These equations can be written in the matrix form
$$ \left[\begin{array}{c}\hfill W(z)\hfill \\ {}\hfill U(z)\hfill \end{array}\right]=\frac{1}{2}\left[\begin{array}{cc}\hfill H\left({z}^{1/2}\right)\cdot {z}^{-1/2}\hfill & \hfill H\left(-{z}^{1/2}\right)\cdot \left(-{z}^{-1/2}\right)\hfill \\ {}\hfill 1\hfill & \hfill 1\hfill \end{array}\right]\left[\begin{array}{c}\hfill X\left({z}^{1/2}\right)\hfill \\ {}\hfill X\left(-{z}^{1/2}\right)\hfill \end{array}\right] $$
(6)
The reconstruction equations are formulated as follows
$$ V(z)= W\left({z}^2\right) $$
(7)
$$ Q(z)= U\left({z}^2\right) $$
(8)
$$ P(z)={z}^{-1}\cdot \left( V(z)\cdot {z}^2+ G(z)\cdot Q(z)\right) $$
(9)
$$ \widehat{X}(z)= P(z)+ Q(z) $$
(10)
Substituting (7),(8),(9) for (10) gives the output signal
$$ \widehat{X}(z)= z\cdot W\left({z}^2\right)+\left( G(z)\cdot {z}^{-1}+1\right)\cdot U\left({z}^2\right) $$
(11)
This relationship can be expressed in matrix form
$$ \widehat{X}(z)=\left[\begin{array}{cc}\hfill z\hfill & \hfill G(z)\cdot {z}^{-1}+1\hfill \end{array}\right]\cdot \left[\begin{array}{c}\hfill W\left({z}^2\right)\hfill \\ {}\hfill U\left({z}^2\right)\hfill \end{array}\right] $$
(12)
The fundamental requirement for subband coding scheme is to produce the output signal that is as close as possible or even exactly the same as the input signal. Substituting (6) for (12) gives the relationship between both signals
$$ \widehat{X}(z)=\left[\begin{array}{cc}\hfill z\hfill & \hfill G(z)\cdot {z}^{-1}+1\hfill \end{array}\right]\cdot \frac{1}{2}\left[\begin{array}{cc}\hfill H(z)\cdot {z}^{-1}\hfill & \hfill H\left(- z\right)\cdot \left(-{z}^{-1}\right)\hfill \\ {}\hfill 1\hfill & \hfill 1\hfill \end{array}\right]\left[\begin{array}{c}\hfill X(z)\hfill \\ {}\hfill X\left(- z\right)\hfill \end{array}\right] $$
(13)
This expands to
$$ \widehat{X}(z)=\frac{1}{2}\cdot \left( H(z)+ G(z)\cdot {z}^{-1}+1\right)\cdot X(z)+\frac{1}{2}\cdot \left( G(z)\cdot {z}^{-1}+1- H(z)\right)\cdot X\left(- z\right)={F}_0(z)\cdot X(z)+{F}_1(z)\cdot X\left(- z\right) $$
(14)
The F
0
(z) defines the transfer function of the subband coding scheme and determines the quality of reconstruction. If some scaling and delay can be accepted, the filter bank performs perfect reconstruction when
$$ {F}_0(z)=\frac{1}{2}\cdot \left( H(z)+ G(z)\cdot {z}^{-1}+1\right)= c\cdot {z}^{-{n}_0} $$
(15)
where:
-
c – scaling factor
-
n
0
– delay factor
The F
1
(z) denotes alias components and if it equals zero, an alias-free filter bank will be obtained. In this case
$$ {F}_1(z)=\frac{1}{2}\cdot \left( G(z)\cdot {z}^{-1}+1- H\left(- z\right)\right)=0 $$
(16)
For the proposed subband coding system, the perfect signal reconstruction is achieved when the following conditions are met
$$ H(z)+ H\left(- z\right)= c\cdot {z}^{-{n}_0} $$
(17)
$$ G(z)= z\cdot \left[ H\left(- z\right)-1\right] $$
(18)
Subband piecewise-linear approximation
The properties of the proposed subband coding system are specified by the filter H(z) transfer function. It should be designed to provide both the perfect reconstruction of the input signal as well as good approximation characteristics. Assuming the value of the predicted sample is defined as the difference between the arithmetic mean of neighboring input samples, an output can be written as
$$ y(n)= x(n)-\frac{x\left( n-1\right)+ x\left( n+1\right)}{2} $$
(19)
In z-transform domain
$$ Y(z)= X(z)-\frac{X(z)\cdot {z}^{-1}+ X(z)\cdot z}{2} $$
(20)
$$ H(z)=\frac{Y(z)}{X(z)}=-\frac{1}{2}\cdot \frac{{\left( z-1\right)}^2}{z} $$
(21)
This filter satisfies condition (17)
$$ H(z)+ H\left(- z\right)=2 $$
(22)
Substituting (21) for (18) gives the reconstruction filter G(z)
$$ G(z)=\frac{1}{2}\cdot \left({z}^2+1\right) $$
(23)
In Fig. 3 the decomposition of the input signal onto subbands w(n) and u(n) is presented in the graphical form.
The input signal x(n) is presented with the bold line. The subband signal u(n) is formed by downsampling by a factor of 2. The subband signal w(n) is formed as the difference of an odd sample and the averaged value of the two neighboring even samples.
Matrix formulation
The proposed piecewise-linear coding subband system (PL-SBC) can be represented in the matrix form. The signal decomposition stage is described as follows
$$ \left[\begin{array}{c}\hfill \mathbf{u}\hfill \\ {}\hfill \mathbf{w}\hfill \end{array}\right]=\mathbf{D}\times \mathbf{x}=\left(\mathbf{H}\times {\mathbf{P}}_{-1}\times {\mathbf{K}}_{\mathbf{U}}+{\mathbf{K}}_{\mathbf{B}}\right)\times \mathbf{x} $$
(24)
where:
-
x – input signal vector with elements x
i
, i = 0,1,…,N, N – even number
-
w, u – subband signal vectors with elements u
i
and w
i
, i = 0,1,…,N/2
-
D – decomposition matrix of size N + 1 x N + 1
-
H – filter H(z) transfer matrix of size N + 1 x N + 1
-
P−1 – delay matrix of size N + 1 x N + 1
-
KU, KB – downsampling by a factor of 2 matrix of size N + 1 x N + 1
The reconstruction stage is described as follows
$$ \widehat{\mathbf{x}}=\mathbf{R}\times \left[\begin{array}{c}\hfill \mathbf{u}\hfill \\ {}\hfill \mathbf{w}\hfill \end{array}\right]=\left({\mathbf{P}}_{-1}\times \left({\mathbf{P}}_2\times {\mathbf{K}}_{\mathbf{U}}^{\mathbf{T}}+\mathbf{G}\times {\mathbf{K}}_{\mathbf{B}}^{\mathbf{T}}\right)+{\mathbf{K}}_{\mathbf{B}}^{\mathbf{T}}\right)\times \left[\begin{array}{c}\hfill \mathbf{u}\hfill \\ {}\hfill \mathbf{w}\hfill \end{array}\right] $$
(25)
where:
-
\( \widehat{x} \) – input signal vector with elements x
i
, i = 0,1,…,N, N – even number
-
w, u – subband signal vectors with elements u
i
and w
i
, i = 0,1,…,N/2
-
R – reconstruction matrix of size N + 1 x N + 1
-
G – filter G(z) transfer matrix of size N + 1 x N + 1
-
P−1 – delay matrix of size N + 1 x N + 1
-
P2 – shift matrix of size N + 1 x N + 1
-
KU, KB – downsampling by a factor of 2 matrix of size N + 1 x N + 1
Below, the reconstruction matrix for piecewise-linear decomposition of N + 1 = 9 signal length is presented. The dotted line separates two subband channels. The upper part performs downsampling by a factor of 2 and the bottom part performs convolution with the transfer function H(z) and downsampling by a factor of 2.
$$ {D}_{PL}=\left[\begin{array}{ccccccccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill & \hfill 1\hfill \\ {}\hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill \dots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill \end{array}\right] $$
(26)
$$ {R}_{PL}=\left[\begin{array}{ccccccccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill \cdots \hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill {\scriptscriptstyle \frac{1}{2}}\hfill & \hfill 0\hfill & \hfill \cdots \hfill & \hfill 0\hfill & \hfill 1\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right] $$
(27)
Fast computational algorithms
The most important feature of the proposed piecewise-linear subband coding scheme (PL-SBC) are fast and easy for implementation computational algorithms. PL-SBC fast algorithms have been created on the basis of matrixes (26) and (27). In Fig. 4 the flowcharts of the piecewise linear decomposition and reconstruction algorithms for the signal length N + 1 = 9 are presented.
The PL-SBC decomposition algorithm operates on the input signal of odd length N + 1 and splits its up into two subband signals N/2 and N/2 + 1 long. The signals of even length have to be padded with one sample. On the basis of the filter transfer function, it is possible to extend the input signal with sample which produce zero value coefficient.
Let
$$ y(n)= x(n)-\frac{x\left( n-1\right)+ x\left( n+1\right)}{2}=0 $$
(28)
Then
$$ x\left( n+1\right)=2\cdot x(n)- x\left( n-1\right) $$
(29)
A simplicity of implementation is an important advantage of the presented algorithm. The algorithm of the decomposition stage for the N-size input signal requires only N additions/subtractions and N binary shifts. No complicated addressing modes are required, because only a division into even and odd samples takes place. Only basic arithmetical operations are performed: adding and subtracting. Multiplication and division by 2 can be easily implemented with binary shifts. Calculations can be led both on floating point as well as fixed point numbers. For example, for the monochrome image with 256 grey levels, spectral coefficients are located in the scope from −255 to 255 with the accuracy of ½. For representing such a spectre 10-bit representation will be enough e.g. in the fixed-point format (9.1) where the integral part is represented with 9 bits and the fractional part with 1 bit.
The algorithm of PL-SBC reconstruction stage is also very simple for implementation. It requires N additions/subtractions and N/2 binary shifts and has 25 % lower complexity than the decomposition algorithm.
Multilevel PL-SBC scheme
A possibility to construct cascaded systems is an important advantage of the subband coding systems. If some SBC system has a perfect response, any intermediate subband signal may be decomposed by the application of the same SBC system and a two-level system will also have a perfect response. If cascading is applied to each of the subband signals, the system is called a uniform cascade system. Otherwise, it is named a non-uniform or pyramid cascade [19]. In practical applications, especially in the area of multimedia processing, multilevel subband coding systems are usually used. In this method, subband signals from one decomposition level are treated as the input to the next level. In Fig. 5 the two-level non-uniformly cascaded PL-SBC system is presented.
Cascaded multilevel SBC systems can also be represented in the matrix form. The reconstruction matrix of 3-level pyramid PL-SBC system for signal N + 1 = 9 samples long is described as follows:
$$ {D}_{PL3}=\left[\begin{array}{ccccccccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill \\ {}\hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill \\ {}\hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill \\ {}\hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill -\frac{1}{2}\hfill & \hfill 1\hfill & \hfill -\frac{1}{2}\hfill \end{array}\right] $$
(30)