Next Article in Journal
Global Distribution of Column Satellite Aerosol Optical Depth to Surface PM2.5 Relationships
Next Article in Special Issue
An FPGA Accelerator for Real-Time Lossy Compression of Hyperspectral Images
Previous Article in Journal
A Long-Term Cloud Albedo Data Record Since 1980 from UV Satellite Sensors
Previous Article in Special Issue
Lossy Compression of Multispectral Satellite Images with Application to Crop Thematic Mapping: A HEVC Comparative Study
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Analysis of Variable-Length Codes for Integer Encoding in Hyperspectral Data Compression with the k2-Raster Compact Data Structure

by
Kevin Chow
*,
Dion Eustathios Olivier Tzamarias
,
Miguel Hernández-Cabronero
,
Ian Blanes
and
Joan Serra-Sagristà
Department of Information and Communications Engineering, Universitat Autònoma de Barcelona, 08193 Cerdanyola del Vallès, Barcelona, Spain
*
Author to whom correspondence should be addressed.
Remote Sens. 2020, 12(12), 1983; https://doi.org/10.3390/rs12121983
Submission received: 19 May 2020 / Revised: 10 June 2020 / Accepted: 18 June 2020 / Published: 20 June 2020
(This article belongs to the Special Issue Remote Sensing Data Compression)

Abstract

:
This paper examines the various variable-length encoders that provide integer encoding to hyperspectral scene data within a k 2 -raster compact data structure. This compact data structure leads to a compression ratio similar to that produced by some of the classical compression techniques. This compact data structure also provides direct access for query to its data elements without requiring any decompression. The selection of the integer encoder is critical for obtaining a competitive performance considering both the compression ratio and access time. In this research, we show experimental results of different integer encoders such as Rice, Simple9, Simple16, PForDelta codes, and DACs. Further, a method to determine an appropriate k value for building a k 2 -raster compact data structure with competitive performance is discussed.

1. Introduction

Hyperspectral scenes [1,2,3,4,5,6,7,8,9,10] are data taken from the air by sensors such as AVIRIS (Airborne Visible/Infrared Imaging Spectrometer) or by satellite instruments such as Hyperion and IASI (Infrared Atmospheric Sounding Interferometer). These scenes are made up of multiple bands from across the electromagnetic spectrum, and data extracted from certain bands are helpful in finding objects such as oil fields [11] or minerals [12]. Other applications include weather prediction [13] and wildfire soil studies [14], to name a few. Due to their sizes, hyperspectral scenes are usually compressed to facilitate their transmission and reduce storage size.
Compact data structures [15] are a type of data structure where data are stored efficiently while at the same time providing real-time processing and compression of the data. They can be loaded into main memory and accessed directly by means of the rank and select functions [16] in the structures. Compressed data provide reduced space usage and query time, i.e., they allow more efficient transmission through limited communication channels, as well as faster data access. There is no need to decompress a large portion of the structure to access and query individual data as is the case with data compressed by classical compression algorithms such as gzip or bzip2 and by specialized algorithms such as CCSDS 123.0-B-1 [17] or KLT+JPEG 2000 [18,19]. In this paper, we are interested in lossless compression of hyperspectral scenes through compact data structures. Therefore, reconstructed scenes should be identical to the originals before compression. Any deterministic analysis process will necessarily yield the same results. Figure 1 shows several images from our datasets.
The compact data structure used in this paper is called k 2 -raster. It is a tree structure developed from another compact data structure called k 2 -tree. k 2 -raster is built from a raster matrix with its pixel cells filled with integer values, while k 2 -tree is from a bitmap matrix with zero and one values. During the construction of the k 2 -raster tree, if the neighboring pixels have equal values such as clusters (spatial correlation), the number of nodes in the tree that need to be saved is reduced. If the values are similar, as discussed later in this paper, the values will be made even smaller. They are then compressed or packed in a more compact form by the integer encoders, and with these small integers, the compression results are even better. Moreover, when it comes to querying cells, a tree structure speeds up the search, saving access time. Another added advantage of some of the integer encoders is that they provide direct random access to the cells without any need for full decompression.
Currently, huge amounts of remote sensing data have been produced, transmitted, and archived, and we can foresee that in the future, the amount of larger datasets is expected to keep growing at a fast rate. The need for their compression is becoming more pressing and critical. In view of this trend, we take on the task of remote sensing compression and make it as one of our main objectives. In this research work, we reduce hyperspectral data sizes by using compact data structures to produce lossless compression. Early on, we began by examining the possibility of taking advantage of the spatial correlation and spectral correlation in the data. In our previous paper [20], we presented a predictive method and a differential method that made use of these correlations in hyperspectral data with favorable results. However, in this paper, we would like to focus on selecting a suitable integer encoder that is employed in the k 2 -raster compact data structure, as that is also a major factor in providing competitive compression ratios.
Compression of integer data in the most effective and efficient way, in relation to compact data structures, has been the focus of many studies over the past several decades. Some include Elias [21,22,23], Rice [24,25,26], PForDelta [27,28,29], and Directly Addressable Codes (DACs) [30,31,32]. In our case, we need to store non-negative, typically small integers in the k 2 -raster structure. This structure is a tree built in such a way that the nodes are not connected by pointers, but can still be reached with the use of a compact data structure linear rank function. When the data are saved, no pointers need to be stored, thus keeping the size of the structure small. Additionally, we use a fixed code ([15], §2.7) to help us save even more space. In what follows, we investigate the effectiveness of some of these integer encoders.
The rest of the paper is organized as follows: In Section 2, we describe the k 2 -raster structure, followed by the various variable-length integer encoders such as Elias, Rice, PForDelta, and DACs. Section 3 presents experimental results for finding the best and optimal values for k and exploring the different integer encoders for k 2 -raster. This is done in comparison with classical compression techniques. Lastly, some conclusions and final thoughts on future work are put forth in Section 4.

2. Materials and Methods

In this section, we describe k 2 -raster [33] and the integer encoders Elias, Rice, Simple9, Simple16, PForDelta codes, and DACs. This is followed by a discussion on how to obtain the best value of k and two related works on raster compression: heuristic k 2 -raster [33] and 3D-2D mapping [34].

2.1. K 2 -Raster

The k 2 -tree structure was originally proposed by Ladra et al. [35] as a compact representation of the adjacency matrix of a directed graph. Its applications include web graphs and social networks. Based on k 2 -tree, the same authors also proposed k 2 -raster [33], which is specifically designed for raster data including images. A k 2 -raster is built from a matrix of width w and height h. If the matrix can be partitioned into k 2 square subquadrants of equal size, it can be used directly. Otherwise, it is necessary to enlarge the matrix to size s × s , where s is computed as:
s = k log k m a x ( w , h ) ,
setting the new elements to 0. This extended matrix is then recursively partitioned into k 2 submatrices of identical size, referred to as quadrants. This process is repeated until all cells in a quadrant have the same value, or until the submatrix has size 1 × 1 and cannot be further subdivided. This partitioning induces a tree topology, which is represented in a bitmap T. Elements can then be accessed via a rank function. At each tree level, the maximum and minimum values of each quadrant are computed. These are then compared with the corresponding maximum and minimum values of the parent, and the differences are stored in the V m a x and V m i n arrays of each level. Saving the differences instead of the original values results in lower values for each node, which in turn allows a better compression with DACs or other integer encoders such as Simple9, PForDelta, etc. An example of a simple 8 × 8 matrix is given in Figure 2 to illustrate this process. A k 2 -raster is constructed from this matrix with maximum and minimum values as given in Figure 3. Differences from the parents’ extrema are then computed as explained above, resulting in the structure shown in Figure 4. Next, with the exception of the root node at the top level, the V m a x and V m i n arrays at all levels are concatenated to form L m a x and L m i n , respectively. Both arrays are then compressed by an integer encoder such as DACs. The root’s maximum ( r M a x ) and minimum ( r M i n ) values remain uncompressed. The resulting elements, which fully describe this k 2 -raster structure, are given in Table 1.

2.2. Unary Codes and Notation

We denote x as a non-negative integer. The expression | x | gives the minimum bit length needed to express x, i.e., | x | = log 2 x + 1 .
Unary codes are generally used for small integers. Unary codes have the following form:
u ( x ) = 0 x 1 ,
where the superscript x indicates the number of consecutive 0 bits in the code. For example, u ( 1 d ) = 0 1 1 = 01 b , u ( 6 d ) = 0 6 1 = 0000001 b , u ( 9 d ) = 0 9 1 = 0000000001 b . Here, bits are denoted by a subscript b and decimal numbers by a subscript d. Furthermore, when codes are composed of two parts, they are spaced apart for readability purposes. In general, the notation used in [15] is adopted in this paper.

2.3. Elias Codes

Elias codes include Gamma ( γ ) codes and Delta ( δ ) codes. They were developed by Peter Elias [21] to encode natural numbers, and in general, they work well with sequences of small numbers.
Gamma codes have the following form:
γ ( x ) = 0 x 1 [ x ] x = u ( | x | 1 ) [ x ] x 1 ,
where [ x ] l represents the l least significant bits of x. For example, γ ( 1 d ) = γ ( 1 b ) = 1 b , γ ( 4 d ) = γ ( 100 b ) = 001 00 b , γ ( 6 d ) = γ ( 110 b ) = 001 10 b , γ ( 9 d ) = γ ( 1001 b ) = 0001 001 b , γ ( 14 d ) = γ ( 1110 b ) = 0001 110 b .
Delta codes have the following form:
δ ( x ) = γ ( x ) [ x ] x 1 .
For values that are larger than 31, Delta codes produce shorter codewords than Gamma codes. This is due to the use of Gamma codes in forming the first part of their codes, which provides a shorter code length for Delta codes as the number becomes larger. Some examples are: δ ( 1 d ) = δ ( 1 b ) = 1 b , δ ( 6 d ) = δ ( 110 b ) = 011 10 b , δ ( 9 d ) = δ ( 1001 b ) = 00100 001 b , δ ( 14 d ) = δ ( 1110 b ) = 00100 110 b .

2.4. Rice Codes

Rice codes [25] are a special case of Golomb codes. Let x be an integer value in the sequence, and let y = x / 2 l , where l is a non-negative integer parameter. The Rice codes for this parameter are defined as:
R l ( x ) = u ( y + 1 ) [ x ] l .
Some examples are shown for different values of l in Table 2.
To obtain optimal performance among Rice codes, l should be selected to be close to the expected value of the input integers. In general, Rice codes give better compression performance than Elias γ and δ codes.

2.5. Simple9, Simple16, and PForDelta

Apart from Elias codes and Rice codes, the codes in this section store the integers in single or multiple word-sized elements to achieve data compression. They have been shown to have good compression ratios [30].
Simple9 [36] assigns a maximum possible number of a certain bit length to a 28-bit segment or packing space of a 32-bit word. The other 4 bits contain a selector that has a value ranging from 0 to 8. Each selector has information that indicates how the integers are stored, and that includes the number of these integers and the maximum number of bits that each integer is allowed in this packing space. For example, Selector 0 tests to see if the first 28 integers in the data have a value of 0 or 1, i.e., a bit length of 1. If they do, then they are stored in this 28-bit segment. Otherwise, Selector 1 tests to see if it can pack 14 integers into the segment with a maximum bit length of 2 bits for each. If this still does not work, Selector 2 tests to see if 9 integers can each be packed into a maximum bit length of 3 bits. This testing goes on until the right number of data are found that can be stored in these 28 bits. Table 3 shows the 9 different ways of using 28 bits in a word of 32 bits in Simple9.
Simple16 [37] is a variant of Simple9 and uses all 16 combinations in the selector bits. Their values range from 0 to 15. Table 4 shows the 16 different ways of packing integers into the 28-bit segment in Simple16.
PForDelta [27] is also similar to both Simple9 and Simple16, but encodes a fixed group of numbers at a time. To do so, 128- or 256-bit words are used.
Due to its relative simplicity, Simple9 is used here as an example to illustrate how an integer sequence is stored in the encoders described in this section. This sequence <3591 25 13 12 15 12 11 26 20 8 13 8 9 7 13 10 12 0 10> d is taken from the L m a x array of one of our data scenes AG9, and the bit-packing is shown in Table 5. There are 19 integers in the sequence. Assuming the integer is 16 bits each, the sequence has a total size of 38 bytes. After packing into the array, the sequence occupies only 16 bytes.

2.6. Directly Addressable Codes

Directly Addressable Codes (DACs) can be used to compress k 2 -raster and provide access to variable-length codes. Based on the concept of compact data structures, DACs were proposed in the papers published by Brisaboa et al. in 2009 [30] and 2013 [31]. This structure is proven to yield good compression ratios for variable-length integer sequences. By means of the rank function, it gains fast direct access to any position of the sequence in a very compact space. The original authors also asserted that it was best suited for a sequence of integers with a skewed frequency distribution toward smaller integer values.
Different types of encoding are used for DACs, and the one that we are interested in for k 2 -raster is called VBytecoding. Consider a sequence of integers x. Each integer x i , which is represented by log 2 x i + 1 bits, is broken into chunks of bits of size C S . Each chunk is stored in a block of size C S + 1 with the additional bit used as a control bit. The chunk occupies the lower bits in the block and the control bit the highest bit. The block that holds the most significant bits of the integer has its control bit set to 0, while the others have it set to 1. For example, if we have an integer 41 d (101001 b ), which is 6 bits long, and if the chunk size is C S = 3, then we have 2 blocks: 0101 1001 b . The control bit in each block is shown underlined. To show how the blocks are organized and stored, we again illustrate it with an example. Given five integers of variable length: 7 d (111 b ), 41 d (101001 b ), 100 d (1100100 b ), 63 d (111111 b ), 427 d (110101011 b ), and a chunk size of 3 (the block size is 4), their representations are listed in Table 6.
We store them in three blocks of arrays A and control bitmaps B. This is depicted in Figure 5. To retrieve the values in the arrays A, we make use of the corresponding bitmaps B with the rank function. This function returns the number of bits, which are set to 1 from the beginning position to the one being queried in the control bitmap B i . An example of how the function is used follows: If we want to access the third integer (100 d ) in the sequence in Figure 5, we start looking for the third element in the array A 1 in Block 1 and find A 3 , 1 with its corresponding control bitmap B 3 , 1 . The function rank( B 3 , 1 ) then gives a result of 2, which means that the second element A 3 , 2 in the array A 2 in Block 2 contains the next block. With the control bit in B 3 , 2 , we compute the function rank( B 3 , 2 ) and obtain a result of 1. This means the next block in Block 3 can be found in the first element A 3 , 3 . Since its corresponding control bitmap B 3 , 3 is set to 0, the search ends here. All the blocks found are finally concatenated to form the third integer in the sequence.
More information on DACs and the software code can be found in the papers [30,31] by Ladra et al.

2.7. Selection of the k Value

Following the description of SubSection 2.1, using different k values leads to the creation of L m a x and L m i n arrays of different lengths. This, in turn, affects the final results of the size of k 2 -raster. With this in mind, we present a heuristic approach that can be used to determine the best k value for obtaining the smallest storage size. First, we compute the sizes of the extended matrix for different values of k within a suitable range using Equation (1). Then, we find the k value that corresponds to the matrix with the smallest size, and the result can be considered as the best k value. Before the start of the k 2 -raster building process, the program can find the best k value and use it as the default.

2.8. Heuristic k 2 -Raster

In the k 2 -raster paper by Ladra et al. [33], a variant of this structure was also proposed whereby the elements at the last level of the tree structure are stored by using an entropy-based heuristic approach. This is denoted by k H 2 -raster. For example, for k = 2 , each set of the 4 nodes that are from the same parent forms a codeword. It is possible that at this same level of the tree, these codewords may be repeated, and their frequencies of occurrences can be computed. These sets of codewords and their frequencies are then compressed and saved. In effect, the more these codewords are repeated, the less storage space they take up. An example of codeword frequency based on the k 2 -raster discussed in Section 2.1 is shown in Table 7. According to experiments conducted by the authors of [33], it saves space in the final representation.

2.9. 3D-2D Mapping

A study on compact representation of raster images in a time-series was proposed by Cruces et al. in [34]. This method is based on the 3D to 2D mapping of a raster where 3D tuples < x , y , z > are mapped into a 2D binary grid. That is, a raster of size w × h with values in a certain range, between 0 and v inclusive, has a binary matrix of w × h columns and v+1 rows. All the rasters are then concatenated into a 3D matrix and stored as a 3D- k 2 -tree.

3. Experimental Results

In this section, we present an exhaustive comparison of the different integer encoders for use with k 2 -raster. First, though, we report results from experiments for finding the best k value. Reported also are the experimental results to find out if the heuristic k 2 -raster and 3D-2D mapping would give better storage sizes. All storage sizes in this section are expressed as bits per pixel per band (bpppb).
The hyperspectral scenes were captured by different sensors: Atmospheric Infrared Sounder (AIRS), AVIRIS, Compact Reconnaissance Imaging Spectrometer for Mars (CRISM), Hyperion, and IASI. Except for IASI, all of them are publicly available for download (http://cwe.ccsds.org/sls/docs/sls-dc/123.0-B-Info/TestData). The hyperspectral scenes used are listed in Table 8.
The implementations for k 2 -raster and k H 2 -raster were based on the algorithms presented in the paper by Ladra et al. [33]. The sdsl-lite implementation of k 2 -tree by Simon Gog [38] (https://github.com/simongog/sdsl-lite/blob/master/include/sdsl/k2_tree.hpp) was used for testing 3D-2D mapping described in the paper by Cruces et al. [34]. The DACs software was downloaded from a package called “DACs, optimization with no further restrictions” at the Universidade da Coruña’s Database Laboratory website (http://lbd.udc.es/research/DACS/). The programming code for the Rice, PForDelta, Simple9, and Simple16 codes was written by the programmers Diego Caro, Michael Dipperstein, and Christopher Hoobin and was downloaded from these authors’ GitHub web pages. Slight modifications to the code were made to meet our requirements to perform the experiments. All programs for this paper were written in C and C++ and compiled with gnu g++ 5.4.0 20160609 with -Ofast optimization. The experiments were carried out on an Intel Core 2 Duo CPU E7400 @2.80GHz with 3072KB of cache and 3GB of RAM. The operating system was Ubuntu 16.04.5 LTS with kernel 4.15.0-47-generic (64 bits). The software code is available at http://gici.uab.cat/GiciWebPage/downloads.php.

3.1. Best k Value Selection

From our previous research [20], the selection of the k value when building a k 2 -raster was shown to have a great effect on the resulting size of the structure, as well as the access time to query its elements. In order to further investigate this idea, we extended our research to finding ways of choosing the best k value. One way was to build the k 2 -raster structure with different k values for scene data from each sensor to see how the matrix size affected the choice of the k value. Additionally, we measured the time it took to build the k 2 -raster and the size of the structure. The results are shown in Table 9. For most tested data, the k value leading to the smallest extended matrix size (attribute S in the table) usually provided the fastest build time and the smallest storage size. With these results, we could say that, in general, when k = 2 , the compressed data size was large, sometimes even larger than the size of the original scene. As the value of k became larger, beginning with k = 3 , the compressed data size was reduced. As far as the compressed size was concerned, the best value was in the range from three to 10 for matrices with a small raster size (i.e., if both the original width and original height were less than 1000) such as the ones for the AIRS Granule or AVIRIS Yellowstone scenes. If at least one dimension was larger than 1000 such as Hyperion calibrated or uncalibrated scenes, a larger range, typically between three and 20, needed to be considered.
The above experiments were repeated to compare the access time for the different k values. For each scene, the average time over 100,000 consecutive queries is reported. Results are shown in Table 10, and Figure 6 shows how the access time and the size varied depending on the k value. As can be observed, access time became smaller and smaller as the value of k became larger. The plotted data suggested that there was a trade-off between access time and size with respect to the k value. We considered the optimal k value to be the one that created a relatively small size with a minimal access time. For example in AG9, when comparing the results between k = 6 and k = 15 , the difference in bits per pixel per band for storage size was not very significant, but the reduction in access time was. Therefore, for this scene, k = 15 was considered an optimal value.

3.2. Heuristic k 2 -Raster

In this section, we present the results of the experiments using the heuristic k 2 -raster proposed by Ladra et al. [33] on some of our datasets. Table 11 reports results for two hyperspectral scene datasets: AIRS Granule and AVIRIS Uncalibrated Yellowstone. In the experiments, we found that only when k = 2 would there be enough repeated sets of codewords in the last level of nodes to help us save space. When k 3, there were no repeated sets of codewords. From the table, it can be seen that there was not much size reduction with k H 2 -raster in most cases. However, if we built a k 2 -raster using the best or optimal k value, the size was considerably smaller. Therefore, we can see that k H 2 -raster structure did not produce a better size.

3.3. 3D-2D Mapping

As discussed earlier, Cruces et al. [34] proposed a 3D to 2D mapping of raster images using k 2 -tree as an alternative to achieve a better compression ratio. We used the k 2 -tree implementation in sdsl-lite software to obtain the sizes for one of our datasets (AG9) from k = 2 to k = 4 . Note that similar to k 2 -raster, if the 2D binary matrix cannot be partitioned into square subquadrants of equal size, it needs to be expanded using Equation (1), and the extra elements are set to zero. The results are presented in Table 12. The sizes for a range of bands from 1481 to 1500 of the scene are also given for comparison.
From the results for AG9, we can see that the 3D-2D mapping did not make the size smaller. Instead, it became larger when the k value increased, and therefore, the method did not produce competitive results.

3.4. Comparison of Integer Encoders for k 2 -Raster

Experiments were conducted to determine whether other variable-length encoders of integers might serve as a better substitute for DACs, which were the original choice in the k 2 -raster structure initially proposed by Ladra et al. [33]. The performance of DACs was compared to that of other encoders such as Rice, Simple9, PForDelta, Simple16 codes, and gzip. In these experiments, the L m a x and L m i n arrays were encoded using these codes, and the results are shown in Table 13. For Rice codes, the l value, as explained in Section 2.4, produced different results depending on the mean of the raster’s elements, and only the ones with the best l value are shown.
The results showed that, in most cases, DACs still provided the best storage size compared to other encoders for our datasets. They also had the added advantage of direct random access to individual elements of the matrix whilst the other encoders would need to decompress each raster in order to retrieve the element, thus requiring much longer access time. When DACs did not yield the best performance, DACs results were usually only less than 0.1 bpppb worse. In the worst cases, DACs results lagged behind by, at most, 0.4 bpppb.

4. Conclusions

In this research, we examined the possibility of using different integer coding methods for k 2 -raster and concluded that this compact data structure worked best when it was used in tandem with DACs encoding. The other variable-length encoders, though having competitive compression ratios, lacked the ability to provide users with direct access to the data. We also studied a method whereby we could obtain a k value that gave a competitive storage size and, in most cases, also a suitable access time.
For future work, we are interested in investigating the feasibility of modifying elements in a k 2 -raster structure, facilitating data replacements without having to go through cycles of decompression and compression for the entire compact data structure.

Author Contributions

Conceptualization, K.C., D.E.O.T., M.H.-C., I.B., and J.S.-S.; methodology, K.C., D.E.O.T., M.H.-C., I.B., and J.S.-S.; software, K.C.; validation, K.C., I.B., and J.S.-S.; formal analysis, K.C., D.E.O.T., M.H., I.B., and J.S.-S.; investigation, K.C., D.E.O.T., M.H.-C., I.B., and J.S.-S.; resources, K.C., D.E.O.T., M.H.-C., I.B., and J.S.-S.; data curation, K.C., I.B., and J.S.-S.; writing, original draft preparation, K.C., I.B., and J.S.-S.; writing, review and editing, K.C., M.H.-C., I.B., and J.S.-S.; visualization, K.C., I.B., and J.S.-S.; supervision, I.B. and J.S.-S.; project administration, I.B. and J.S.-S.; funding acquisition, M.H.-C., I.B., and J.S.-S. All authors read and agreed to the published version of the manuscript.

Funding

This research was funded by the Spanish Ministry of Economy and Competitiveness and the European Regional Development Fund under Grants RTI2018-095287-B-I00 and TIN2015-71126-R (MINECO/FEDER, UE) and BES-2016-078369 (Programa Formación de Personal Investigador), by the Catalan Government under Grant 2017SGR-463, by the postdoctoral fellowship program Beatriu de Pinós, Reference 2018-BP-00008, funded by the Secretary of Universities and Research (Government of Catalonia), and by the Horizon 2020 program of research and innovation of the European Union under the Marie Skłodowska-Curie Grant Agreement #801370.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Clark, R.N.; Roush, T.L. Reflectance spectroscopy: Quantitative analysis techniques for remote sensing applications. J. Geophys. Res. Solid Earth 1984, 89, 6329–6340. [Google Scholar] [CrossRef]
  2. Goetz, A.F.; Vane, G.; Solomon, J.E.; Rock, B.N. Imaging spectrometry for earth remote sensing. Science 1985, 228, 1147–1153. [Google Scholar] [CrossRef] [PubMed]
  3. Kruse, F.A.; Lefkoff, A.; Boardman, J.; Heidebrecht, K.; Shapiro, A.; Barloon, P.; Goetz, A. The spectral image processing system (SIPS)-interactive visualization and analysis of imaging spectrometer data. AIP Conf. Proc. 1993, 283, 192–201. [Google Scholar]
  4. Joseph, W. Automated spectral analysis: A geologic example using AVIRIS data, north Grapevine Mountains, Nevada. In Proceedings of the Tenth Thematic Conference on Geologic Remote Sensing, Environmental Research Institute of Michigan, San Antonio, TX, USA, 9–12 May 1994; pp. 1407–1418. [Google Scholar]
  5. Asner, G.P. Biophysical and biochemical sources of variability in canopy reflectance. Remote Sens. Environ. 1998, 64, 234–253. [Google Scholar] [CrossRef]
  6. Parente, M.; Kerekes, J.; Heylen, R. A Special Issue on Hyperspectral Imaging [From the Guest Editors]. IEEE Geosci. Remote Sens. Mag. 2019, 7, 6–7. [Google Scholar] [CrossRef]
  7. Ientilucci, E.J.; Adler-Golden, S. Atmospheric Compensation of Hyperspectral Data: An Overview and Review of In-Scene and Physics-Based Approaches. IEEE Geosci. Remote Sens. Mag. 2019, 7, 31–50. [Google Scholar] [CrossRef]
  8. Khan, M.J.; Khan, H.S.; Yousaf, A.; Khurshid, K.; Abbas, A. Modern trends in hyperspectral image analysis: A review. IEEE Access 2018, 6, 14118–14129. [Google Scholar] [CrossRef]
  9. Theiler, J.; Ziemann, A.; Matteoli, S.; Diani, M. Spectral Variability of Remotely Sensed Target Materials: Causes, Models, and Strategies for Mitigation and Robust Exploitation. IEEE Geosci. Remote Sens. Mag. 2019, 7, 8–30. [Google Scholar] [CrossRef]
  10. Sun, W.; Du, Q. Hyperspectral band selection: A review. IEEE Geosci. Remote Sens. Mag. 2019, 7, 118–139. [Google Scholar] [CrossRef]
  11. Scafutto, R.D.M.; de Souza Filho, C.R.; de Oliveira, W.J. Hyperspectral remote sensing detection of petroleum hydrocarbons in mixtures with mineral substrates: Implications for onshore exploration and monitoring. ISPRS J. Photogramm. Remote Sens. 2017, 128, 146–157. [Google Scholar] [CrossRef]
  12. Bishop, C.A.; Liu, J.G.; Mason, P.J. Hyperspectral remote sensing for mineral exploration in Pulang, Yunnan Province, China. Int. J. Remote Sens. 2011, 32, 2409–2426. [Google Scholar] [CrossRef]
  13. Le Marshall, J.; Jung, J.; Zapotocny, T.; Derber, J.; Treadon, R.; Lord, S.; Goldberg, M.; Wolf, W. The application of AIRS radiances in numerical weather prediction. Aust. Meteorol. Mag. 2006, 55, 213–217. [Google Scholar]
  14. Robichaud, P.R.; Lewis, S.A.; Laes, D.Y.; Hudak, A.T.; Kokaly, R.F.; Zamudio, J.A. Postfire soil burn severity mapping with hyperspectral image unmixing. Remote Sens. Environ. 2007, 108, 467–480. [Google Scholar] [CrossRef] [Green Version]
  15. Navarro, G. Compact Data Structures: A Practical Approach; Cambridge University Press: Cambridge, UK, 2016. [Google Scholar]
  16. Jacobson, G. Space-efficient static trees and graphs. In Proceedings of the 30th Annual Symposium on Foundations of Computer Science, Research Triangle Park, NC, USA, 30 October–1 November 1989; pp. 549–554. [Google Scholar]
  17. Consultative Committee for Space Data Systems (CCSDS). Image Data Compression CCSDS 123.0-B-1; Blue Book; CCSDS: Washington, DC, USA, 2012. [Google Scholar]
  18. Jolliffe, I.T. Principal Component Analysis; Springer: Berlin, Germany, 2002; p. 487. [Google Scholar]
  19. Taubman, D.S.; Marcellin, M.W. JPEG 2000: Image Compression Fundamentals, Standards and Practice; Kluwer Academic Publishers: Boston, MA, USA, 2001. [Google Scholar]
  20. Chow, K.; Tzamarias, D.E.O.; Blanes, I.; Serra-Sagristà, J. Using Predictive and Differential Methods with K2-Raster Compact Data Structure for Hyperspectral Image Lossless Compression. Remote Sens. 2019, 11, 2461. [Google Scholar] [CrossRef] [Green Version]
  21. Elias, P. Efficient storage and retrieval by content and address of static files. J. ACM (JACM) 1974, 21, 246–260. [Google Scholar] [CrossRef]
  22. Ottaviano, G.; Venturini, R. Partitioned Elias-Fano indexes. In Proceedings of the 37th International ACM SIGIR Conference on Research & Development in Information Retrieval, Gold Coast, Australia, 6–11 July 2014; pp. 273–282. [Google Scholar]
  23. Pibiri, G.E. Dynamic Elias-Fano Encoding. Master’s Thesis, University of Pisa, Pisa, Italy, 2014. [Google Scholar]
  24. Sugiura, R.; Kamamoto, Y.; Harada, N.; Moriya, T. Optimal Golomb-Rice Code Extension for Lossless Coding of Low-Entropy Exponentially Distributed Sources. IEEE Trans. Inf. Theory 2018, 64, 3153–3161. [Google Scholar] [CrossRef]
  25. Rice, R.; Plaunt, J. Adaptive variable-length coding for efficient compression of spacecraft television data. IEEE Trans. Commun. Technol. 1971, 19, 889–897. [Google Scholar] [CrossRef]
  26. Rojals, J.S.; Karczewicz, M.; Joshi, R.L. Rice Parameter Update for Coefficient Level Coding in Video Coding Process. U.S. Patent 9,936,200, 3 April 2018. [Google Scholar]
  27. Zukowski, M.; Heman, S.; Nes, N.; Boncz, P. Super-scalar RAM-CPU cache compression. In Proceedings of the 22nd International Conference on Data Engineering (ICDE’06), Atlanta, GA, USA, 3–7 April 2006; p. 59. [Google Scholar]
  28. Silva-Coira, F. Compact Data Structures for Large and Complex Datasets. Ph.D. Thesis, Universidade da Coruña, A Coruña, Spain, 2017. [Google Scholar]
  29. Al Hasib, A.; Cebrian, J.M.; Natvig, L. V-PFORDelta: Data compression for energy efficient computation of time series. In Proceedings of the 2015 IEEE 22nd International Conference on High Performance Computing (HiPC), Bengaluru, India, 16–19 December 2015; pp. 416–425. [Google Scholar]
  30. Brisaboa, N.R.; Ladra, S.; Navarro, G. DACs: Bringing direct access to variable-length codes. Inf. Process. Manag. 2013, 49, 392–404. [Google Scholar] [CrossRef] [Green Version]
  31. Brisaboa, N.R.; Ladra, S.; Navarro, G. Directly addressable variable-length codes. In Proceedings of the International Symposium on String Processing and Information Retrieval, Saariselkä, Finland, 25–27 August 2009; pp. 122–130. [Google Scholar]
  32. Baruch, G.; Klein, S.T.; Shapira, D. A space efficient direct access data structure. J. Discret. Algorithms 2017, 43, 26–37. [Google Scholar] [CrossRef]
  33. Ladra, S.; Paramá, J.R.; Silva-Coira, F. Scalable and queryable compressed storage structure for raster data. Inf. Syst. 2017, 72, 179–204. [Google Scholar] [CrossRef]
  34. Cruces, N.; Seco, D.; Gutiérrez, G. A compact representation of raster time series. In Proceedings of the Data Compression Conference (DCC), Snowbird, UT, USA, 26–29 March 2019; pp. 103–111. [Google Scholar]
  35. Brisaboa, N.R.; Ladra, S.; Navarro, G. k 2-trees for compact web graph representation. In Proceedings of the International Symposium on String Processing and Information Retrieval, Saariselkä, Finland, 25–27 August 2009; pp. 18–30. [Google Scholar]
  36. Anh, V.N.; Moffat, A. Inverted index compression using word-aligned binary codes. Inf. Retr. 2005, 8, 151–166. [Google Scholar] [CrossRef]
  37. Zhang, J.; Long, X.; Suel, T. Performance of compressed inverted list caching in search engines. In Proceedings of the 17th International Conference on World Wide Web, Beijing, China, 21–25 April 2008; pp. 387–396. [Google Scholar]
  38. Gog, S.; Beller, T.; Moffat, A.; Petri, M. From theory to practice: Plug and play with succinct data structures. In Proceedings of the International Symposium on Experimental Algorithms, Copenhagen, Denmark, 29 June–1 July 2014; pp. 326–337. [Google Scholar]
Figure 1. Several hyperspectral scenes used in this paper. The original and the decompressed scenes discussed in this paper are numerically identical. Depicted also are two spectral signatures for AVIRIS Yellowstone 00 (uncal.). The AVIRIS images in this figure are courtesy of NASA/JPL-Caltech.
Figure 1. Several hyperspectral scenes used in this paper. The original and the decompressed scenes discussed in this paper are numerically identical. Depicted also are two spectral signatures for AVIRIS Yellowstone 00 (uncal.). The AVIRIS images in this figure are courtesy of NASA/JPL-Caltech.
Remotesensing 12 01983 g001
Figure 2. Subdivision of an example 8 × 8 matrix for k 2 -raster ( k = 2 ).
Figure 2. Subdivision of an example 8 × 8 matrix for k 2 -raster ( k = 2 ).
Remotesensing 12 01983 g002
Figure 3. A k 2 -raster ( k = 2 ) tree storing the maximum and minimum values for each quadrant of every recursive subdivision of the matrix in Figure 2. Every node contains the maximum and minimum values of the subquadrant, separated by a dash. On the last level, only one value is shown as each subquadrant contains only one cell.
Figure 3. A k 2 -raster ( k = 2 ) tree storing the maximum and minimum values for each quadrant of every recursive subdivision of the matrix in Figure 2. Every node contains the maximum and minimum values of the subquadrant, separated by a dash. On the last level, only one value is shown as each subquadrant contains only one cell.
Remotesensing 12 01983 g003
Figure 4. Based on the tree in Figure 3, the maximum value of each node is subtracted from that of its parent while the minimum value of the parent is subtracted from the node’s minimum value. These differences then replace their corresponding values in the node. The maximum and minimum values of the root remain the same.
Figure 4. Based on the tree in Figure 3, the maximum value of each node is subtracted from that of its parent while the minimum value of the parent is subtracted from the node’s minimum value. These differences then replace their corresponding values in the node. The maximum and minimum values of the root remain the same.
Remotesensing 12 01983 g004
Figure 5. Organization of 3 DACs blocks.
Figure 5. Organization of 3 DACs blocks.
Remotesensing 12 01983 g005
Figure 6. A comparison of the storage size (bpppb) and access time ( μ s) for different k values of k 2 -raster built from scenes in our datasets. Access time is the average time of 100,000 consecutive queries. For AIRS Granule 9, the best value is marked with a red circle, and the optimal value is marked with a blue square.
Figure 6. A comparison of the storage size (bpppb) and access time ( μ s) for different k values of k 2 -raster built from scenes in our datasets. Access time is the average time of 100,000 consecutive queries. For AIRS Granule 9, the best value is marked with a red circle, and the optimal value is marked with a blue square.
Remotesensing 12 01983 g006
Table 1. An example of the elements of a k 2 -raster based on Figure 2, Figure 3 and Figure 4.
Table 1. An example of the elements of a k 2 -raster based on Figure 2, Figure 3 and Figure 4.
T Bitmapbinary 1110 1111 1010 1111
L m a x decimalLevel 10446
Level 20314 0212 0111
Level 30212 0101 0212 0001 0111 0111 0001 0101 0011 0111
L m i n decimalLevel 1100
Level 23120 10 1000
r M a x decimal 8
r M i n decimal 2
Table 2. Some examples of Rice codes.
Table 2. Some examples of Rice codes.
Value v Rice Code R l ( v )
DecimalBinary l = 1 l = 2 l = 3 l = 4
1 d 1 b 1 b 1 b 1 b 1 b
6 d 110 b 0001 0 b 01 10 b 110 b 110 b
9 d 1001 b 00001 1 b 001 01 b 01 001 b 1001 b
14 d 1110 b 00000001 0 b 0001 10 b 01 110 b 1110 b
Table 3. Nine different ways of encoding numbers in the 28-bit packing space in Simple9.
Table 3. Nine different ways of encoding numbers in the 28-bit packing space in Simple9.
SelectorNumber of Integers n Width of Integers 28 / n (Bits)Wasted Bits
02810
11420
2931
3740
4553
5470
6391
72140
81280
Table 4. Sixteen different ways of encoding numbers in the 28-bit packing space in Simple16. There are no wasted bits in any of the selectors.
Table 4. Sixteen different ways of encoding numbers in the 28-bit packing space in Simple16. There are no wasted bits in any of the selectors.
SelectorNumber of Integers Width of Integers (Bits)
028 28 × 1 bit
121 7 × 2 bits , 14 × 1 bit
221 7 × 1 bit , 7 × 2 bits , 7 × 1 bit
321 14 × 1 bit , 7 × 2 bits
414 14 × 2 bits
59 1 × 4 bits , 8 × 3 bits
68 1 × 3 bits , 4 × 4 bits , 3 × 3 bits
77 7 × 4 bits
86 4 × 5 bits , 2 × 4 bits
96 2 × 4 bits , 4 × 5 bits
105 3 × 6 bits , 2 × 5 bits
115 2 × 5 bits , 3 × 6 bits
124 4 × 7 bits
133 1 × 10 bits , 2 × 9 bits
142 2 × 14 bits
151 1 × 28 bits
Table 5. Example to show how the integer sequence <3591 25 13 12 15 12 11 26 20 8 13 8 9 7 13 10 12 0 10> d is stored with Simple9.
Table 5. Example to show how the integer sequence <3591 25 13 12 15 12 11 26 20 8 13 8 9 7 13 10 12 0 10> d is stored with Simple9.
ElementSelectorNumber of
Integers
Integers Stored
(Decimal)
Integers Stored
(Binary)
07 d (0111 b )23591 2500111000000111 00000000011001
14 d (0100 b )513 12 15 12 1101101 01100 01111 01100 01011
24 d (0100 b )526 20 8 13 811010 10100 01000 01101 01000
33 d (0011 b )79 7 13 10 12 0 101001 0111 1101 1010 1100 0000 1010
Table 6. Example of an integer sequence and the corresponding DACs blocks of the integers.
Table 6. Example of an integer sequence and the corresponding DACs blocks of the integers.
DecimalBinaryDACs Blocks
7 d 0111 b (B 1 , 1 A 1 , 1 )
41 d 0101 1001 b (B 2 , 2 A 2 , 2 B 2 , 1 A 2 , 1 )
100 d 0001 1100 1100 b (B 3 , 3 A 3 , 3 B 3 , 2 A 3 , 2 B 3 , 1 A 3 , 1 )
63 d 0111 1111 b (B 4 , 2 A 4 , 2 B 4 , 1 A 4 , 1 )
427 d 0110 1101 1011 b (B 5 , 3 A 5 , 3 B 5 , 2 A 5 , 2 B 5 , 1 A 5 , 1 )
Table 7. Codeword frequency in Level 3 of the L m a x bitmap in the k 2 -raster structure in Figure 1.
Table 7. Codeword frequency in Level 3 of the L m a x bitmap in the k 2 -raster structure in Figure 1.
CodewordFrequency
01113
02122
01012
00012
00111
Table 8. Hyperspectral scenes used in our experiments. Also shown are the bit rate and bit rate reduction using k 2 -raster. x is the scene width, y the scene height, and z the number of spectral bands. bpppb, bits per pixel per band; CRISM, Compact Reconnaissance Imaging Spectrometer for Mars; IASI, Infrared Atmospheric Sounding Interferometer.
Table 8. Hyperspectral scenes used in our experiments. Also shown are the bit rate and bit rate reduction using k 2 -raster. x is the scene width, y the scene height, and z the number of spectral bands. bpppb, bits per pixel per band; CRISM, Compact Reconnaissance Imaging Spectrometer for Mars; IASI, Infrared Atmospheric Sounding Interferometer.
SensorNameC/U 🟉 AcronymOriginal
Dimensions
(x × y × z)
Bit
Depth
(bpppb)
Best
k Value
k 2 -Raster
Bit Rate
(bpppb)
k 2 -Raster
Bit-Rate
Reduction (%)
AIRS9UAG990 × 135 × 15011269.4921%
16UAG1690 × 135 × 15011269.1224%
60UAG6090 × 135 × 150112159.7219%
126UAG12690 × 135 × 15011269.6120%
129UAG12990 × 135 × 15011268.6528%
151UAG15190 × 135 × 15011269.5321%
182UAG18290 × 135 × 15011269.6819%
193UAG19390 × 135 × 150112159.3023%
AVIRISYellowstone sc. 00CACY00677 × 512 × 2241669.6140%
Yellowstone sc. 03CACY03677 × 512 × 2241669.4241%
Yellowstone sc. 10CACY10677 × 512 × 2241667.6252%
Yellowstone sc. 11CACY11677 × 512 × 2241668.8145%
Yellowstone sc. 18CACY18677 × 512 × 2241669.7839%
Yellowstone sc. 00UAUY00680 × 512 × 22416911.9225%
Yellowstone sc. 03UAUY03680 × 512 × 22416911.7427%
Yellowstone sc. 10UAUY10680 × 512 × 2241699.9938%
Yellowstone sc. 11UAUY11680 × 512 × 22416911.2730%
Yellowstone sc. 18UAUY18680 × 512 × 22416912.1524%
CRISMfrt000065e6_07_sc164UC164640 × 420 × 54512610.0816%
frt00008849_07_sc165UC165640 × 450 × 54512610.3714%
frt0001077d_07_sc166UC166640 × 480 × 54512611.058%
hrl00004f38_07_sc181UC181320 × 420 × 5451259.9717%
hrl0000648f_07_sc182UC182320 × 450 × 54512510.1116%
hrl0000ba9c_07_sc183UC183320 × 480 × 54512510.6511%
HyperionAgriculturalCHCA256 × 3129 × 24212168.5229%
Coral ReefCHCC256 × 3127 × 2421287.6236%
UrbanCHCU256 × 2905 × 24212168.8526%
Erta AleUHUEA256 × 3187 × 2421287.7635%
Lake MononaUHULM256 × 3176 × 2421287.8235%
Mt. St. HelenaUHUMS256 × 3242 × 2421287.9134%
IASILevel 0 1UI0160 × 1528 × 835912126.3247%
Level 0 2UI0260 × 1528 × 835912126.3847%
Level 0 3UI0360 × 1528 × 835912126.3147%
Level 0 4UI0460 × 1528 × 835912126.4346%
🟉 : Calibrated (C) or Uncalibrated (U).
Table 9. Results for different k values using the scene data from each sensor for the following attributes: (S) the extended matrix Size (pixels), (C) the k 2 -raster Compressed storage data rate (bpppb), and (B) the time to Build the k 2 -raster (seconds). The original scene width and height are shown in the first column. The best results are highlighted in blue.
Table 9. Results for different k values using the scene data from each sensor for the following attributes: (S) the extended matrix Size (pixels), (C) the k 2 -raster Compressed storage data rate (bpppb), and (B) the time to Build the k 2 -raster (seconds). The original scene width and height are shown in the first column. The best results are highlighted in blue.
Scene Data
(w × h) 🟉
k = 234567891011121314151617181920
AG9
(90 × 135)
S25624325662521634351272910001331144169196225256289324361400
C13.0610.1110.0310.479.499.9810.689.8910.6512.9811.2310.3311.299.5311.5711.7210.7812.5212.13
B5.33.24.110.94.210.912.610.717.529.62.94.13.04.34.66.66.84.97.3
ACY00
(677 × 512)
S10247291024312512962401409672910001331172821972744337540964913583268598000
C12.3410.209.7610.709.619.9110.269.699.839.879.9510.2410.2010.5110.2410.5510.6110.4910.73
B19.510.710.830.710.519.342.08.89.311.513.217.123.229.145.555.872.6101.1131.0
AUY00
(680 × 512)
S10247291024312512962401409672910001331172821972744337540964913583268598000
C15.3112.9312.2013.0612.0812.3512.4711.9212.1112.1312.1712.5212.4312.8412.4412.8312.8712.6912.96
B18.410.710.130.711.420.941.47.78.510.912.717.122.929.344.355.873.0101.0130.6
C164
(640 × 420)
S10247291024312512962401409672910001331172821972744337540964913583268598000
C12.6010.4210.1711.3510.0810.4611.1210.3410.2010.7610.4810.9610.6610.7711.1911.1811.5511.8011.30
B47.128.827.974.327.747.398.619.321.124.829.738.749.469.696.2133.3179.3231.1314.9
HCA
(256 × 3129)
S40966561409615625777616807409665611000014641207362856138416337540964913583268598000
C17.215.649.79-10.47-8.549.139.7----8.658.528.759.169.078.92
B121.9183.668.7-186.6-55.2115.6238.9----44.356.770.691.9121.8156.6
HUEA
(256 × 3187)
S40966561409615625777616807409665611000014641207362856138416337540964913583268598000
C16.0214.638.89-9.68-7.768.469.00----8.507.808.698.688.468.27
B131.1189.074.4-172.3-60.3120.8245.3----49.560.475.795.3123.3159.4
I01
(60 × 1528)
S204821874096312577762401409665611000014641172821972744337540964913583268598000
C21.9912.5917.9810.2524.607.719.3312.2316.9726.496.327.288.286.807.648.549.4410.438.25
B1021.1780.51728.7986.55167.5635.61426.73938.67870.717973.9339.7474.3658.9944.01498.11826.62789.83543.24810.3
🟉 : w = scene width; h = scene height.
Table 10. Access time ( μ s) for a random cell query with different kvalues. Each result is the average time over 100,000 consecutive queries. The best results are highlighted in blue.
Table 10. Access time ( μ s) for a random cell query with different kvalues. Each result is the average time over 100,000 consecutive queries. The best results are highlighted in blue.
Scene Data
(w × h) 🟉
k = 234567891011121314151617181920
AG9
(90 × 135)
2.451.200.910.820.700.650.610.640.610.570.470.470.480.470.450.420.460.430.43
ACY00
(677 × 512)
15.104.952.892.071.601.331.131.010.890.880.790.760.740.730.690.670.680.660.64
AUY00
(680 × 512)
17.075.703.032.191.661.401.201.050.940.880.850.830.800.770.720.770.720.700.72
C164
(640 × 420)
14.665.092.842.121.671.481.341.101.081.010.950.930.880.830.810.810.790.740.74
HCA
(256 × 3129)
0.340.260.19-0.19-0.180.180.16----0.170.140.150.150.160.16
HUEA
(256 × 3187)
31.5910.095.24-3.11-1.871.811.60----1.221.021.011.011.001.01
I01
(60 × 1528)
6.133.352.482.242.131.941.821.761.741.721.621.561.481.551.541.541.411.401.53
🟉 : w = scene width; h = scene height.
Table 11. Comparison of the structure size (bpppb) built from k 2 -raster and k H 2 -raster where k = 2 . The sizes for k 2 -raster using the best k value and the optimal k value are also shown. The best results are highlighted in blue.
Table 11. Comparison of the structure size (bpppb) built from k 2 -raster and k H 2 -raster where k = 2 . The sizes for k 2 -raster using the best k value and the optimal k value are also shown. The best results are highlighted in blue.
AIRS
Granule
k 2 -Raster ( k = 6 )
(Best)
k 2 -Raster ( k = 15 )
(Optimal)
k 2 -Raster ( k = 2 ) k H 2 -Raster ( k = 2 )
AG99.499.5313.0613.22
AG169.129.1712.7212.85
AG609.819.7213.6513.86
AG1269.619.7213.4213.59
AG1298.658.7211.9811.95
AG1519.539.5613.1913.35
AG1829.689.7113.3213.47
AG1939.449.3013.2913.43
AVIRIS
Uncalibrated
k 2 -Raster ( k = 9 )
(Best)
k 2 -Raster ( k = 9 )
(Optimal)
k 2 -Raster ( k = 2 ) k H 2 -Raster ( k = 2 )
AUY0011.9211.9215.3115.19
AUY0311.7411.7415.0314.74
AUY109.999.9912.8511.86
AUY1111.2711.2714.2714.08
AUY1812.1512.1515.3615.25
Table 12. The sizes of AIRS Granule (AG9) produced by 3D to 2D mapping from k = 2 to k = 4 . The individual band sizes ranging from 1481 to 1500 are also shown. Sizes for individual bands are in bits per pixel (bpp), while the ones for all bands are in bits per pixel per band (bpppb).
Table 12. The sizes of AIRS Granule (AG9) produced by 3D to 2D mapping from k = 2 to k = 4 . The individual band sizes ranging from 1481 to 1500 are also shown. Sizes for individual bands are in bits per pixel (bpp), while the ones for all bands are in bits per pixel per band (bpppb).
BandOriginal
Size
k 2 -Tree
k = 2
k 2 -Tree
k = 3
k 2 -Tree
k = 4
All bands1616.5320.5726.57
14811617.5622.0028.45
14821617.2721.5427.84
14831617.1921.4727.67
14841617.4521.8128.18
14851616.9321.1027.29
14861617.0921.2727.50
14871616.8221.0627.02
14881617.0121.2127.34
14891617.2321.5127.78
14901616.9421.1027.20
14911616.8020.8626.96
14921616.5620.6426.51
14931616.8020.9126.89
14941616.8420.9326.98
14951616.6920.8826.72
14961616.6620.7526.66
14971616.7020.8726.73
14981616.6120.7026.58
14991616.6720.7326.78
15001616.3920.4026.18
Table 13. A comparison of the storage size (in bpppb) using different integer encoders on L m a x and L m i n from the k 2 -raster built from our datasets. The combined entropies for L m a x and L m i n are listed as a reference. The l value that was used in Rice codes is enclosed in brackets. The best and optimal k values for DACs are also enclosed in brackets. Except for the entropy, the best rates for each scene’s data are highlighted in blue.
Table 13. A comparison of the storage size (in bpppb) using different integer encoders on L m a x and L m i n from the k 2 -raster built from our datasets. The combined entropies for L m a x and L m i n are listed as a reference. The l value that was used in Rice codes is enclosed in brackets. The best and optimal k values for DACs are also enclosed in brackets. Except for the entropy, the best rates for each scene’s data are highlighted in blue.
Hyperspectral
Scene
Entropy
( Lmax + Lmin )
Rice
( l Value)
Simple9PForDeltaSimple16DACs
(Best k )
DACs
(Optimal k )
gzip
AG98.2910.10 (7)10.069.889.699.49 (6)9.53 (15)12.45
AG167.929.88 (7)9.649.559.309.12 (6)9.17 (15)11.96
AG608.5810.31 (7)10.5010.1910.129.72 (15)9.81 (6)12.79
AG1268.4210.34 (7)10.259.989.819.61 (6)9.72 (15)12.55
AG1297.479.66 (7)9.019.018.618.65 (6)8.72 (15)11.21
AG1518.3610.39 (7)9.999.799.549.53 (6)9.56 (15)12.39
AG1828.4410.58 (7)10.4410.0910.019.68 (6)9.71 (15)12.71
AG1938.2510.26 (7)10.069.939.659.30 (15)9.44 (6)12.33
ACY008.819.89 (7)10.379.8010.119.61 (6)9.69 (9)12.56
ACY038.489.70 (7)9.809.409.579.42 (6)9.50 (9)11.98
ACY106.889.18 (7)7.347.437.187.62 (6)7.74 (9)9.32
ACY118.129.45 (7)9.329.029.098.81 (6)9.00 (9)11.61
ACY188.9610.58 (7)10.529.8410.289.78 (6)9.88 (9)12.66
AUY0011.1617.59 (7)14.0111.9313.7911.92 (9)11.92 (9)15.13
AUY0310.8316.59 (7)13.5411.5613.2911.74 (9)11.74 (9)14.59
AUY109.2612.87 (7)10.909.6110.549.99 (9)9.99 (9)12.29
AUY1110.6015.16 (7)13.1211.2412.8911.27 (9)11.27 (9)14.47
AUY1811.3820.70 (7)14.1912.1014.0112.15 (9)12.15 (9)15.53
C1649.1810.33 (7)11.3510.4411.1410.08 (6)10.08 (6)12.85
C1659.4810.91 (7)11.7810.6911.5710.37 (6)10.37 (6)13.17
C16610.0212.83 (7)12.9911.4112.7411.05 (6)11.05 (6)13.61
C1819.169.96 (7)10.9310.5310.729.97 (5)9.97 (5)13.37
C1829.2710.17 (7)11.2410.6710.9910.11 (5)10.11 (5)13.26
C1839.6011.15 (7)12.3311.2112.0510.65 (5)10.65 (5)13.32
HCA7.598.94 (7)9.798.809.568.52 (16)8.54 (8)11.20
HCC6.758.20 (7)8.287.607.937.62 (8)7.71 (16)9.51
HCU7.879.78 (7)10.308.9110.048.85 (16)8.86 (8)11.35
HUEA6.667.67 (5)8.307.998.007.76 (8)7.80 (16)9.85
HULM6.717.66 (5)8.388.118.107.82 (8)7.88 (16)10.13
HUMS6.777.90 (5)8.488.148.207.91 (8)7.94 (16)10.12
I015.396.51 (4)6.266.545.946.32 (12)6.80 (15)7.46
I025.466.56 (4)6.276.555.966.38 (12)6.84 (15)7.51
I035.426.51 (4)6.196.485.896.31 (12)6.79 (15)7.39
I045.516.62 (4)6.376.656.046.43 (12)6.90 (15)7.63

Share and Cite

MDPI and ACS Style

Chow, K.; Tzamarias, D.E.O.; Hernández-Cabronero, M.; Blanes, I.; Serra-Sagristà, J. Analysis of Variable-Length Codes for Integer Encoding in Hyperspectral Data Compression with the k2-Raster Compact Data Structure. Remote Sens. 2020, 12, 1983. https://doi.org/10.3390/rs12121983

AMA Style

Chow K, Tzamarias DEO, Hernández-Cabronero M, Blanes I, Serra-Sagristà J. Analysis of Variable-Length Codes for Integer Encoding in Hyperspectral Data Compression with the k2-Raster Compact Data Structure. Remote Sensing. 2020; 12(12):1983. https://doi.org/10.3390/rs12121983

Chicago/Turabian Style

Chow, Kevin, Dion Eustathios Olivier Tzamarias, Miguel Hernández-Cabronero, Ian Blanes, and Joan Serra-Sagristà. 2020. "Analysis of Variable-Length Codes for Integer Encoding in Hyperspectral Data Compression with the k2-Raster Compact Data Structure" Remote Sensing 12, no. 12: 1983. https://doi.org/10.3390/rs12121983

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop