Introduction

Remote sensing technology has stepped onto the hyperspectral remote sensing stage owing to the rapid development of imaging spectroscopy. As a result, hyperspectral image data are rapidly being collected by hyperspectral instruments, including the NASA Airborne Visible Infra-Red Imaging Spectrometer (AVIRIS) and Reflective Optics System Imaging Spectrometer (Gao and Chua 2013). The transmission channel in space communication suffers from heterogeneous time-varying limited bandwidth, high bit error rates, limited ability for dealing with on-board equipments, and limited resources, amongst others, especially in deep space communication. These characteristics make compression and transmission of hyperspectral remote sensing images very difficult. Lossless compression or near lossless compression should be adopted instead because the remote sensing images contain many important information. In fact, the compression process should be performed on board where the energy supply is limited, and therefore, the complexity of compression should be reduced to realize real-time compression. With the limited bandwidth resources for transmission, coding efficiency should be high to minimize the required channel capacity for transmission and memory capacity for storage, thereby improving the efficiency of disposal, transmission and storage. Thus, this study of compression coding for hyperspectral images is important in terms of its application value.

A hyperspectral image is a three-dimensional image consisting of one-dimensional spectral information and two-dimensional space images. Each two-dimensional image included in the hyperspectral image describes spatial features of the earth’s surface, while the spectral information reveals the spectral curve characteristics of each pixel. A hyperspectral image differs from a normal image in that it has abundant texture information but poor spatial correlation, as well as higher spectral correlation than a normal image. It also requires less computation without the need for a high configuration codec than the traditional method of compression for normal images; however, since this method cannot explain the correlation of images in an adjacent band or eliminate redundancy efficiently, higher code efficiency cannot be achieved. A better way of solving this problem is to combine encoding and decoding of hyperspectral images, for example, by using the three-dimensional (3D) set partitioning in hierarchical trees (SPIHT) algorithm. However, since this algorithm needs to store reference information in the encoder during the encoding process, which involves large computational cost and high complexity of encoding, and it proposes higher request about processing ability, storage capacity and energy supply to on-board encoder. Through integration, distributed source coding (DSC) can satisfy the demand for simple operations in encoding and make use of spectral redundancy. DSC is defined as encoding a group of correlated signals independently, and then transmitting all the encoded signals together to a single decoder for combined decoding. This greatly reduces the workload of the encoder and analysed information redundancy between the signal sources during encoding, resulting in improved coding efficiency as it transfers complexity from the encoder to the decoder (Xiong et al. 2004). Recently, DSC, as a way of coding a group of correlated signal sources, has attracted increasing attention from related researchers.

Based on the characteristics of hyperspectral images, this paper provides a 3D wavelet-based distributed coding method combined with DSC. We first apply a spectral filter, which separates information into a high frequency section (the Key frame in SPIHT encoding) and a low frequency section (the Wyner–Ziv [W–Z] frame in SPIHT encoding) after the wavelet transform. The W–Z encoder uses Turbo coding to improve the anti-error capability. The decoder relies on the encoded low frequency information to predict the high frequency information and create side information, which is decoded together with the high frequency section. Results show that the proposed scheme has better anti-error capabilities, higher coding efficiency, and better application flexibility, amongst others.

Distributed Source Coding

The techniques used by traditional encoders are not simple enough. For example, many algorithms, which are based on JPEG2000 or 3D transform, have excessive complexity (Zou et al. 2010). Given the close correlation among hyperspectral images, we can employ the DSC principle to compress these efficiently at lower computational cost (Pan and Liu 2012). DSC encodes two or more independent identically distributed signal sources separately, and then decodes all the encoded sources together using a single decoder according to the correlation between signal sources. This concept is used to design a compression scheme that provides error resilience, very low complexity, and good compression performance (Abrardo 2010). The underlying theory of this coding method is based on the following Slepian–Wolf theory and W–Z theory (Slepian and Wolf 1973; Wyner and Ziv 1973).

Slepian–Wolf Coding Information Theory

Slepian–Wolf theory explains how to code correlated sources separately with the same efficiency as joint coding based on the premise of non-distortion. This means zero error coding can be achieved by separately encoding and decoding two independent and identically distribution random sequences, X, Y with code rate \( R_{x} \ge H(X) \), \( R_{y} \ge H(Y) \). H(X) and H(Y) represent the entropy of X and Y, if R x and R y satisfy the following condition

$$ \left\{ {\begin{array}{*{20}l} {R_{x} \ge H(X|Y)} \\ {R_{y} \ge H(Y|X)} \\ {R_{x} + R_{y} \ge H(X,Y)} \\ \end{array} } \right. $$

where H(X, Y) is the joint entropy of X and Y. Thus, coding X and Y separately achieves the same efficiency as joint coding. Figure 1 illustrates these two coding methods.

Fig. 1
figure 1

Different coding methods: a Slepian–Wolf coding and b joint coding

W–Z coding information theory

By introducing distortion into the Slepian–Wolf approach, we will obtain its rate-distortion edition—Berger–Tung. This problem has been estimated by external and internal experts, but not solved completely (Yang 2009). However, loss compression coding theory with auxiliary information at the decoder has been established by W–Z. This is based on the belief that applying auxiliary information either only at the decoder or at both the encoder and the decoder moves away from reducing efficiency in the loss compression coding case.

W–Z coding can be treated as a combination of quantization of a code word and Slepian–Wolf coding. Suppose in lossy coding theory, random processes X and Y represent two samples of unlimited independent identical distributions Where source X cannot obtain auxiliary information Y during encoding, but the decoder can. \( \hat{X} \) is the reconstructed value obtained from source X (Fig. 2a). Then, we can suppose the decoding distortion \( {\text{D = I}}\;\left( {{\text{X}},{\hat{\text{X}}}} \right) \) and the rate-distortion function of W–Z \( R_{X|Y}^{WZ} \left( D \right) \) represents the lower rate limit of DSC under the constraint of distortion D. Furthermore, if the auxiliary information Y was also available at the encoder (Fig. 2b) and suppose the rate-distortion function is represented as \( {\text{R}}_{{{\text{X}}|{\text{Y}}}} \left( {\text{D}} \right) \), then Wyner and Ziv state the following proved conclusion, \( {\text{R}}_{{{\text{X}}|{\text{Y}}}}^{\text{WZ}} ( {\text{D)}} \ge {\text{R}}_{\text{XY}} ({\text{D}}) \).

Fig. 2
figure 2

Two different coding schemes with auxiliary information: a Wyner-Ziv coding and b auxiliary information available at the encoder

Codec Design

Wavelet transform is used widely in the study of mathematical theory and in the field of image processing by virtue of their good time–frequency localization, sparse representation, and multiresolution. For example, the wavelet transform is useful for removing image redundancy which is present in traditional transformation methods. Furthermore, it is convenient for eliminating structure redundancy information in images because of its multiresolution property, thereby enabling the transformed image data to retain more accurately the structures of the original images under any resolution. Owing to its great advantages in image signal processing, the wavelet transform is a key technique in hyperspectral remote image denoising and compression, and is applied widely.

By combining 3D-SPIHT and Turbo channel coding, we can achieve separate high frequency and low frequency sections of spectral filtering, which can be transmitted through different channels. This means that the transmitted information can reconstitute the hyperspectral image of the original band combined with side information and achieve a structure of the hyperspectral DSC that has high anti-error capability and better compression ratios. Figure 3 shows the general frame of the coding structure.

Fig. 3
figure 3

3D set partitioning in hierarchical trees (3D-SPIHT) distributed coding general frame

3D-SPIHT Coding

The SPIHT algorithm is one of the most efficient still-image compression algorithms. It is also a kind of embedded two-dimensional coding algorithm, which means that the encoder establishes a sequence as the significance of bit streams and end encoding at any time according to the requirement of target rate or distortion (Zhang 2004). The algorithm mainly includes sorting and thinning. Figure 4 shows the structure of the spatial orientation tree that has been established based on the wavelet coefficients.

Fig. 4
figure 4

Spatial orientation tree and parent–child relationship between nodes

3D-SPIHT, which is an extension to SPIHT, is a method proposed by Kim et al. (Kim et al. 2000) and originally applied to video coding problems. It uses 3D wavelet transform to eliminate inter-frame redundancy and intra-frame redundancy, and constructs a 3D orientation tree based on the wavelet coefficients, which is shown in Fig. 5.

Fig. 5
figure 5

3D orientation tree and parent–child relationship between nodes

Compared with the SPIHT algorithm, 3D-SPIHT adds a temporal axis to the 2D spatial tree, forming a 3D spatial–temporal tree, that is, an octree tree structure. It simplifies the scanning process of wavelet coefficients by conserving pixel coordinates using a linked list, resulting in improved compression efficiency and simplicity.

Turbo Coding

In this study, during W–Z coding, Turbo channel coding is performed on each bit plane starting with the most important bit plane, which is determined after quantizing the pixel values of the predicted error image. Turbo coding creates parity-check codes on every input bit plane. These parity-check codes are temporarily stored in a buffer using a puncturing matrix, and then the buffer transfer some of the codes to the decoder based on the requirements in the subsequent decoding process.

The Turbo decoder mainly consists of the component encoder, interleaver, puncturing matrix, and multiplexer(Garello et al. 2001). the component code can choose recursive systematic convolutional (RSC) code, block codes or non-recursion convolutional codes, amongst others; in this study, RSC code was used. We adopt the same generator matrix G(7,5) for the two component codes. To reduce the correlation of the output check sequence and enhance the weight of check codes, interleavers reset the bit position of the input information sequence using a method for block interleaving. The puncturing matrix aims to improve the rate of Turbo coding, where each row corresponds to the two component encoders. All elements therein are obtained from the set \( \{ 0,1\} \),where “0” denotes that the check bit in the corresponding position is deleted, and “1” denotes that it is preserved. The multiplexer is used to perform parallel and series transforms on the check sequence and information sequence and output them as a coding sequence. Figure 6 shows the overall architecture of the encoding structure, where \( {\{ }{\text{u}}_{k} {\} } \) represents the sequence of input information. Note that the first output sequence Xs in the encoder is unencoded, while the others are transferred to the \( 1st,2nd, \ldots ,Mth \) component encoders to be encoded through the interleavers. Next, M check sequences \( X^{1p} ,X^{2p} , \ldots ,X^{Mp} \) are obtained. Finally, these check sequences, after considering the puncturing matrix, form the code sequence with Xs through the multiplexer.

Fig. 6
figure 6

Overall architecture of Turbo coding structure

The Process of the Coding Scheme

What we have proposed in this study is a kind of 3D-SPIHT hyperspectral image compression coding based on DSC theory and Turbo coding. It includes independent encoding and joint decoding via SPIHT.

Independent Encoding

  • Step 1 Similar to video coding, suppose there are 16 frames as a group of bands (GOB) and we perform a four-level wavelet transform on these. We obtain the first band (low frequency part) as the Key frame and bands 2–16 (high frequency part) as the W–Z frame.

  • Step 2 Perform SPIHT coding on the Key frame, to form a code stream.

    • Step 2.1 Suppose \( n = \left[ {1b\left( {\max_{(i,j,k)} \left( {\left| {c(i,j,k)} \right|} \right)} \right)} \right] \), transfer n, and make LSP null. Then, LIP are root coordinates of \( (i,j,k) \in H \), LIS are root coordinates of all \( (i,j,k) \in H \) which has descendant.

    • Step 2.2 Dispose of each item in LIP; if it is important, delete it in LIP and add it to LSP. Separate items in LIS into A and B types for disposal.

    • Step 2.3 Output the n-th significant bit represented by the binary coefficients of each item in LSP, which includes only those obtained from LIS.

    • Step 2.4 Set \( n = n - 1 \), and return to Step 2.2, until the predetermined compression ratio is reached.

  • Step 3 Apply a spatial filter to the W–Z frame, and perform the 2D 9/7 wavelet transformation on each band which is obtained by the spectral filter.

  • Step 4 Perform SPIHT coding on the wavelet coefficients that obtained by spatial filter, then the binary code stream is achieved.

  • Step 5 Apply Turbo channel encoding to the code stream, and place the generated check bit stream into the channel with additive white Gaussian noise (AWGN).

    • Step 5.1 Reset bit position of input information sequences uk through block interleaving.

    • Step 5.2 Encode the reset information using RSC, and output check sequences XP.

    • Step 5.3 Delete some check bits periodically using the puncturing technique.

    • Step 5.4 Combine XP and the unencoded sequences Xs to produce Turbo sequences X through division multiplexing.

Joint Decoding

  • Step 1 Apply SPIHT decoding to the Key frame.

    • Step 1.1 First decode the coding stream to obtain the initial threshold value T0.

    • Step 1.2 Construct the inverse quantizer.

    • Step 1.3 Interpret the position and value of coefficients in the bit stream according to the scanning and quantization method used in coding.

  • Step 2 Take advantage of the Key frame and the second frame after spectral filtering to predict the W–Z frames, as the side information for joint decoding.

    • Step 2.1 Create an original hyperspectral image with little error from the spectral filtering inverse transformation of the Key frame and the second frame after spectral filtering in coding.

    • Step 2.2 Perform spectral filtering at the same level again on the hyperspectral image obtained in Step 2.1.

    • Step 2.3 Treat the high frequency (predicted W–Z frame) obtained after spectral filtering as side information for joint decoding.

  • Step 3 Perform Turbo channel decoding on the soft output Viterbi algorithm with the check bit stream transmitted through the AWGN channel.

    • Step 3.1 Compare the original code stream with the side information produced in Step 2, and at the same time feedback information.

    • Step 3.2 Next, combine it with the parity check codes to form the Turbo decoding code stream.

  • Step 4 Reconstruct the original wavelet transform coefficients by decoding the signal stream and side information.

  • Step 5 Perform the spectral filtering inverse transformation jointly on the coefficients obtained in Step 4 and information obtained in Step 1 to obtain the decoded hyperspectral image.

Experimental Results and Analysis

To confirm the validity of the method in this study, without loss of generality, we selected a group of cropped images with size of 352 × 288 between 17th and 32nd bands, from the AVIRIS aviation remote sensing hyperspectral low-altitude images as test targets. Figure 7 shows several of these bands, namely, 17th, 22th, 27th and 32nd. We compared this method with the normal 3D-SPIHT coding methods under the different strength of gaussian noise; the peak signal-to-noise ratio (PSNR) was used to measure the quality of the hyperspectral images that were transmitted through the noise channels in different ways.

Fig. 7
figure 7

The test hyperspectral image

The operating environment in this study comprised a P4 2.93GHZ processor with 512 MB memory running Microsoft Windows XP and Visual C++ 6.0. The code rate of Turbo channel coding was one third, with 16 iterations. The Eb/No of the channel were respectively, 1.8 dB and 2 dB.

Figures 8 and 9 show the PSNR comparison curves of the hyperspectral images under different signal-to-noise ratios (SNR) using the two methods, with Eb/No = 1.8 dB and 2 dB, respectively. Accordingly, Table 1 gives the comparison data with Eb/No = 1.8 dB and 2 dB.

Fig. 8
figure 8

Comparison diagram with Eb/No = 1.8 dB

Fig. 9
figure 9

Comparison diagram with Eb/No = 2.0 dB

Table 1 Peak signal-to-noise ratio (PSNR) statistics of decoded hyperspectral image with varying rates using two methods

As shown by the results, 3D-SPIHT based on the DSC method proposed in this study has better coding efficiency and robustness than 3D-SPIHT. The PSNR values of the new method are higher than those of the original 3D-SPIHT for the same rate (Figs. 8, 9). This means that the new method is more efficient in reconstructing hyperspectral images and more able to satisfy the transmission and coding of remote sensing images with increasing demands for information. It is also seen from the comparison that when PSNR is lower (the transmission channel suffers from greater noise), the difference between the PSNR values of the two methods is higher. In other words, 3D-SPIHT based on DSC has greater anti-error capabilities when the transmission channel suffers from significant interference. However, when the transmission channel is limited or narrow, the low frequency information that integrates more important information of the hyperspectral images can be transmitted to the decoder first. Then the prediction error can be transmitted as complementary basic information depending on the condition of the transmission channel, thus reflecting the scalability and flexibility of this method.

Conclusion

We proposed a new scheme for distributed coding of hyperspectral images based on 3D-SPIHT, while transmitting these images. It divided the hyperspectral image bands into high and low frequency parts by wavelet transform. Moreover, these are encoded and decoded through different transmission channels. Turbo channel coding creates high frequency information that reflect the image details with better anti-error capabilities, while the code stream created by SPIHT coding for low frequency information that mainly reflect image energy, had quality scalability. The experimental comparisons and analysis statistics showed that the new scheme has better coding efficiency, anti-error capabilities, and quality scalability, amongst others.