Karhunen-Loève Transform based Lossless Hyperspectral Image
Compression for Space Applications
Thesis submitted for the degree of
Doctor of Philosophy
at the University of Leicester
by
Nor Rizuan bin Mat Noor
Department of Engineering
University of Leicester
2015
ii
Abstract
The research presented in this thesis is concerned with lossless hyperspectral image
compression of satellite imagery using the Integer Karhunen-Loève Transform (KLT).
The Integer KLT is addressed because it shows superior performance in decorrelating the
spectral component in hyperspectral images compared to other algorithms, such as,
Discrete Cosine Transform (DCT), Discrete Wavelet Transform (DWT) as well as the
Lossless Multispectral and Hyperspectral Image Compression algorithm proposed by the
Consultative Committee for Space Data Systems (CCSDS-MHC). The aim of the
research is to develop a reliable low complexity implementation of the computationally
intensive Integer KLT, which is suitable for use on board remote sensing satellites.
The performance of the algorithm in terms of compression ratio (CR) and execution time
was investigated for different levels of clustering and tiling of hyperspectral images using
airborne and spaceborne test datasets. It was established that the clustering technique
could improve the CR, which is a completely new finding. To speed up the algorithm the
Integer KLT was parallelised based on the clustering concept and was implemented using
a multi-processor environment. The core part of the Integer KLT algorithm, i.e. the PLUS
factorisation, has proven to be the most vulnerable part to single-bit errors that could
cause a large loss to the encoded image. An error detection algorithm was proposed
which was incorporated in the Integer KLT to overcome that. Based on extensive testing
it was shown that it is capable of detecting errors with a sufficiently low error tolerance
threshold of 1e-11 featuring a low execution time depending on the extent of clustering
and tiling. A new fixed sampling method for the covariance matrix calculation was
proposed, which could avoid variation in the data volume of the encoded image that
would be beneficial for remote debugging. Analysis of the overhead information
generated by the Integer KLT was carried out for the first time and a compaction method
which is crucial to clustering and tiling was also suggested.
The full range of the proposed enhanced Integer KLT schemes was implemented and
evaluated on a desktop computer and two DSP platforms, OMAP-L137 EVM and
TMDSEVM6678L EVM in terms of execution time and average power consumption. A
new method for estimating the best clustering level, at which the compression ratio is
maximised for each tiling level involved, was also proposed. The estimation method
could achieve 87.1% accuracy in determining the best clustering level based on a test set
of 62 different hyperspectral images. The best average compression ratio, recorded for
Airborne Visible/Infrared Imaging Spectrometer (AVIRIS) and Hyperion (spaceborne)
images is 3.31 and 2.39, respectively. The fully optimised KLT system, achieving a
maximum CR, could compress an AVIRIS image in 3.6 to 8.5 seconds, depending on the
tiling level, while a Hyperion image - in less than 1 second on a desktop computer. On
the multi-core DSP, an AVIRIS image could be compressed in 18.7 seconds to 1.3
minutes, depending on the tiling level, whereas a Hyperion image - in around 3.4
seconds. On the low power DSP platform OMAP-L137 the compression of an AVIRIS
image takes 5.4 minutes and of a Hyperion image - 44 seconds to 2.1 minutes, depending
on the tiling level.
iii
Acknowledgements
In the name of Allah, the Most Gracious and the Most Merciful
Alhamdulillah, all praises to Allah for His blessing and opportunity for me to
successfully complete this thesis.
The work described in this thesis would not have been possible without the guidance and
help from my supervisor, Professor Tanya Vladimirova. Deepest gratitude goes to her for
all the motivations throughout this research. Her dedication to perfection and
professionalism has led to the research in this thesis, and will continue to be a lasting
inspiration for me.
I must also express my gratitude to the sponsors of this research effort namely The
Ministry of Higher Education (MoHE) of Malaysia and Universiti Sains Malaysia (USM)
for the scholarship that has been given during the research period.
Special acknowledgement goes to my wife, Norhidayah binti Arpi for her unconditional
support throughout my studies. Last but not least I would like to express my special
thanks to my parents, Mat Noor bin Hussin (1942-2012) and Rabbiah binti Kaus as well
as my brothers, sisters, nephews and nieces for their prayers and support.
iv
Table of Contents
Abstract ............................................................................................................................... ii
Acknowledgements ............................................................................................................ iii
Table of Contents ............................................................................................................... iv
List of Figures ..................................................................................................................... x
List of Tables ................................................................................................................... xvii
List of Listings ............................................................................................................. xxviii
List of Abbreviations ....................................................................................................... xxx
CHAPTER 1 INTRODUCTION ................................................................................ 1
1.1 Research Motivation ............................................................................................... 2
1.2 Scope and Objectives of the Research .................................................................... 4
1.3 Novelty of the Research Work ................................................................................ 6
1.4 Thesis Outline ......................................................................................................... 7
1.5 Publications ............................................................................................................. 8
CHAPTER 2 LITERATURE REVIEW .................................................................... 10
2.1 Introduction to Hyperspectral Remote Sensing ...................................................... 10
2.1.1 Definition .................................................................................................... 10
2.1.2 Difference between Multispectral and Hyperspectral Images .................... 11
2.1.3 Imaging Systems ......................................................................................... 12
2.1.4 Image Resolution ........................................................................................ 13
2.1.5 Format of Multi-Component Data .............................................................. 14
2.2 Review of Hyperspectral Spaceborne Missions ...................................................... 15
2.2.1 Hyperspectral Missions in the 1990’s ......................................................... 20
2.2.2 Hyperspectral Missions during 2000 – 2005 .............................................. 21
2.2.3 Hyperspectral Missions since 2006 ............................................................ 23
v
2.2.4 Discussion ................................................................................................... 24
2.3 Introduction to Hyperspectral Image Compression ................................................ 27
2.3.1 Definitions .................................................................................................. 27
2.3.2 Compression Algorithm Types ................................................................... 27
2.3.3 Compression System Block Diagram ......................................................... 28
2.4 Hyperspectral/Multi-component Image Compression ............................................ 29
2.4.1 Predictive Coding ....................................................................................... 32
2.4.2 Vector Quantisation .................................................................................... 35
2.4.3 Transform Coding ....................................................................................... 37
2.4.3.1 Discrete Cosine Transform ........................................................... 37
2.4.3.2 Discrete Wavelet Transform ......................................................... 38
2.4.4 Karhunen-Loève Transform ....................................................................... 42
2.4.5 CCSDS Lossless Multispectral and Hyperspectral Image Compression .... 47
2.4.6 Discussion ................................................................................................... 49
2.5 Hardware Implementation Approaches .................................................................. 50
2.5.1 FPGA Implementation ................................................................................ 50
2.5.2 DSP Implementation ................................................................................... 53
2.5.3 Discussion ................................................................................................... 54
2.6 Fault Tolerance Issues ............................................................................................. 55
2.7 Conclusion .............................................................................................................. 56
CHAPTER 3 INTEGER KLT INVESTIGATION ................................................... 59
3.1 The KLT and the Integer KLT Algorithms ............................................................. 59
3.1.1 Description of the KLT Algorithm ............................................................. 59
3.1.2 Description of the Integer KLT Algorithm ................................................. 63
3.1.2.1 Factorisation of Eigenvector Matrix ............................................. 65
3.1.2.2 Application of PLUS Matrices ...................................................... 71
vi
3.2 Numerical Experiment Outline ............................................................................... 72
3.3 Comparison of Lossless Compression Performances ............................................. 74
3.3.1 Compression Ratio Results ......................................................................... 77
3.3.2 Spectral Component Decorrelation Performance ....................................... 77
3.3.3 Discussion ................................................................................................... 81
3.4 Conclusion .............................................................................................................. 83
CHAPTER 4 REDUCING THE COMPUTATIONAL COMPLEXITY OF
INTEGER KLT .................................................................................... 84
4.1 Hyperspectral Datasets ............................................................................................ 84
4.2 Compression Performance Parameters ................................................................... 87
4.2.1 Compression Ratio ...................................................................................... 87
4.2.2 Execution Time ........................................................................................... 87
4.2.3 Overhead Information Compaction ............................................................ 88
4.3 Clustering and Tiling Techniques ........................................................................... 89
4.3.1 Clustering .................................................................................................... 90
4.3.2 Tiling ........................................................................................................... 92
4.3.3 Overhead Information Size ......................................................................... 93
4.3.4 Programming Approach .............................................................................. 95
4.4 Parallelisation Based on Clustering using OpenMP ............................................... 98
4.5 Covariance Matrix Calculation with Fixed Sampling ............................................. 103
4.6 Sparse Matrix-Matrix Multiplication Optimisation ................................................ 105
4.7 Performance Evaluation .......................................................................................... 106
4.7.1 Covariance Calculation Performance Gain/Loss with Fixed Sampling ..... 106
4.7.2 Clustering and Tiling Performance without Overhead Information ........... 108
4.7.3 Clustering and Tiling Performance with Overhead Information ................ 116
4.7.3.1 CR Performance ............................................................................ 117
vii
4.7.3.2 Execution Time Performance ........................................................ 123
4.7.3.3 Findings on the Range of Clustering and Tiling Levels ............... 127
4.7.4 Parallelised Clustering Using OpenMP ...................................................... 129
4.8 Conclusion .............................................................................................................. 135
CHAPTER 5 ERROR DETECTION IN INTEGER KLT ...................................... 138
5.1 Error Detection at the Algorithm Level .................................................................. 138
5.1.1 Freivald’s Checker ...................................................................................... 139
5.2 Single-bit Error Analysis of Integer KLT ............................................................... 140
5.3 PLUS Factorisation and Freivald’s Checker ........................................................... 145
5.4 Performance Evaluation .......................................................................................... 147
5.4.1 Error Detection Performance ...................................................................... 147
5.4.1.1 Discussion ..................................................................................... 151
5.4.2 Execution Time Evaluation ........................................................................ 152
5.4.2.1 Non-parallelised Integer KLT ....................................................... 152
5.4.2.2 Parallelised Integer KLT ............................................................... 155
5.4.2.3 Discussion ..................................................................................... 158
5.5 Conclusion .............................................................................................................. 160
CHAPTER 6 INTEGER KLT IMPLEMENTATION ON EMBEDDED
PLATFORMS ....................................................................................... 162
6.1 Embedded Platforms Outline .................................................................................. 162
6.1.1 Software Aspects ........................................................................................ 163
6.1.2 Hardware Aspects ....................................................................................... 164
6.1.2.1 Low Power DSP Platform ............................................................. 164
6.1.2.2 Multi-Core DSP Platform ............................................................. 165
6.2 Implementation Approach ....................................................................................... 167
6.2.1 Compiler Optimisation ............................................................................... 168
viii
6.2.2 Code Optimisation: Matrix-Matrix Multiplication Optimisation ............... 169
6.2.2.1 Permutation-Permutation and TERM-Permutation Matrix
Multiplication ................................................................................ 171
6.2.2.2 TERM-TERM Matrix Multiplication ........................................... 172
6.2.3 Integer KLT Implementation on Low Power DSP Platform ...................... 173
6.2.4 Integer KLT Implementation on Multi-Core DSP Platform ....................... 176
6.2.5 Power Measurement Method ...................................................................... 178
6.3 Performance Evaluation .......................................................................................... 180
6.3.1 Average Execution Time Performance ....................................................... 181
6.3.1.1 Non-parallelised Implementation .................................................. 181
6.3.1.2 Parallelised Implementation .......................................................... 184
6.3.1.3 Discussion ..................................................................................... 187
6.3.2 Average Power Consumption ..................................................................... 192
6.3.2.1 Non-parallelised Implementation .................................................. 192
6.3.2.2 Parallelised Implementation .......................................................... 195
6.3.2.3 Discussion ..................................................................................... 198
6.4 Conclusion .............................................................................................................. 203
CHAPTER 7 ESTIMATING THE BEST CLUSTERING LEVEL ....................... 205
7.1 Integer KLT with Different Levels of Clustering ................................................... 205
7.2 Integer KLT Output Characteristics ........................................................................ 209
7.3 Estimating the Best Clustering Level in Integer KLT from the Best Compression
Ratio ........................................................................................................................ 218
7.3.1 Empirical Investigation ............................................................................... 218
7.3.2 Clustering Level Estimation using Encoded Image Output ........................ 221
7.3.3 Algorithm for Integer KLT Clustering Level Estimation ........................... 223
7.4 Performance Evaluation .......................................................................................... 226
ix
7.5 Discussion ............................................................................................................... 230
7.6 Conclusion .............................................................................................................. 232
CHAPTER 8 SUMMARY AND FUTURE WORK .................................................. 233
8.1 Summary ................................................................................................................. 233
8.2 Novelty Contributions ............................................................................................. 236
8.2 Future Work ............................................................................................................ 237
References ....................................................................................................................... 241
Appendix A : Hyperspectral Imaging Techniques .......................................................... 260
Appendix B : Compression Performance Measures ....................................................... 262
Appendix C : CCSDS Lossless Multispectral and Hyperspectral Image Compression
Recommendation ............................................................................................................. 263
Appendix D : Integer KLT - Other Pivoting Techniques ............................................... 267
Appendix E : Details of Integer KLT Modelling Experiment ........................................ 270
Appendix F : Details of Integer KLT in Desktop Platform ............................................ 276
Appendix G : Additional Testing Results Based on Other Hyperspectral Images ......... 281
Appendix H : Variation in Random Sampling ................................................................ 297
Appendix I : Embedded Platforms Description .............................................................. 298
x
List of Figures
Figure 2-1: Hyperspectral Image Representation (Image Courtesy of NASA-JPL) ..... 11
Figure 2-2: Multi-component Images with Plot of Reflectance for (a) Multispectral
Image and (b) Hyperspectral Image (Image Courtesy of NASA-JPL) ...... 11
Figure 2-3: Imaging Techniques by (a) Framing System, and Scanning System by (b)
Whiskbroom and (c) Pushbroom Scanner [36] .......................................... 13
Figure 2-4: Spectral Resolution – Spectral Sampling Interval and FWHM [2] ............ 14
Figure 2-5: Multi-Component Image Data Organisation (a) BSQ, (b) BIL, and (c) BIP
.................................................................................................................... 15
Figure 2-6: Types of Hyperspectral Compression On-Board of the Satellites .............. 25
Figure 2-7: Types of Payload Data Processor ............................................................... 26
Figure 2-8: Mass Memory On-Board Capacity ............................................................. 26
Figure 2-9: A Typical Model for 2D Image Compression System ............................... 28
Figure 2-10: AVIRIS Cuprite Scene 1 from the 35th
to 40th
Bands ................................ 29
Figure 2-11: A Typical Model for Hyperspectral Image Compression .......................... 29
Figure 2-12: Data Flow for Typical Model of Hyperspectral Image Compression ........ 30
Figure 2-13: 3D Hyperspectral Image Compression Model ........................................... 31
Figure 2-14: DPCM (a) Encoder and (b) Decoder [108] ................................................ 32
Figure 2-15: DPCM Coding in Hyperspectral Image ..................................................... 33
Figure 2-16: Schematic Illustration of Lossless and Lossy Coding by VQ .................... 36
Figure 2-17: 1D Single Level Wavelet Decomposition and Reconstruction Process [158]
.................................................................................................................... 39
Figure 2-18: First Level 2D DWT ................................................................................... 39
Figure 2-19: Realisation of 2D DWT, (a) First Level, (b) Second Level, and (c) Third
Level of DWT ............................................................................................. 40
Figure 2-20: (a) Original Lena Image and (b) DWT Output .......................................... 40
xi
Figure 2-21: Spectral-Spatial DWT (a) 3 Levels Spectral-Spatial Decomposition and (b)
2 Levels Spectral -3 Levels Spatial Decomposition [159] ......................... 41
Figure 2-22: Flowchart Structure of SERMs Implementation (Partial Pivoting) [174] .. 43
Figure 2-23: Flowchart Structure of TERMs Implementation [174] .............................. 43
Figure 2-24: Flowchart Structure of SERMs Implementation (Full Pivoting) [175] ...... 43
Figure 2-25: Sub-Optimal Integer KLT [119] ................................................................. 45
Figure 2-26: Structure of Sub-Optimal Integer KLT for 32 Channels [119] .................. 45
Figure 2-27: CCSDS-MHC Compressor Schematic ....................................................... 48
Figure 3-1: Integer KLT Block Diagram ...................................................................... 64
Figure 3-2: Eigenvector Factorisation (PLUS Factorisation) in Integer KLT .............. 66
Figure 3-3: Implementation of P, L, U and S matrices .................................................. 72
Figure 3-4: Integer KLT Encoding + Spatial Compressor Block Diagram
(Compression) ............................................................................................ 72
Figure 3-5: Spatial Decompressor + Integer KLT Decoding Block Diagram
(Decompression) ......................................................................................... 73
Figure 3-6: Correlation Matrix Images from Mapped Prediction Residuals of CCSDS-
MHC-FP Configuration on AVIRIS Images .............................................. 80
Figure 4-1: False-Colour Representation for AVIRIS ((a)-(d)) and Hyperion ((e)-(h)) 86
Figure 4-2: Lossless Hyperspectral Image Compression Block Diagram .................... 90
Figure 4-3: Clustering Strategies [115] ......................................................................... 91
Figure 4-4: Visualisation of Clustering, Tiling and Overhead Information Compaction
in Integer KLT ............................................................................................ 96
Figure 4-5: Fork-Join Model of OpenMP [264] ............................................................ 99
Figure 4-6: Overhead Information Inter-thread Sharing ............................................. 101
Figure 4-7: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Jasper3,
AVIRIS ..................................................................................................... 112
Figure 4-8: Correlation Matrix Images for AVIRIS Dataset ...................................... 114
xii
Figure 4-9: Correlation Matrix Images for Hyperion Dataset ..................................... 115
Figure 4-10: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling for Jasper3-AVIRIS Image ...................................................... 118
Figure 4-11: Integer KLT, Clustering and Tiling – Average Execution Time (in seconds)
with Fixed Sampling – (a) AVIRIS, (b) Hyperion ................................... 124
Figure 4-12: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – (a) AVIRIS, (b) Hyperion ....................................... 131
Figure 5-1: Integer KLT Block Diagram and SBE Test Point Locations ................... 141
Figure 5-2: IEEE-754 Double Precision ..................................................................... 142
Figure 5-3: Visual Image Comparison – Band 219 ..................................................... 144
Figure 5-4: Visual Image Comparison – Band 16 ....................................................... 144
Figure 5-5: Visual Image Comparison – Band 36 ....................................................... 144
Figure 5-6: Visual Image Comparison – Band 75 ....................................................... 144
Figure 5-7: Visual Image Comparison – Band 14 ....................................................... 144
Figure 5-8: Visual Image Comparison – Band 32 ....................................................... 145
Figure 5-9: Visual Image Comparison – Band 13 ....................................................... 145
Figure 5-10: Visual Image Comparison – Band 216 ..................................................... 145
Figure 5-11: PLUS Factorisation with the Error Detection Algorithm and a Simple
Correction Capability. .............................................................................. 147
Figure 5-12: Random Selection of a Bit Position inside the Integer KLT Algorithm .. 148
Figure 5-13: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on AVIRIS Images
.................................................................................................................. 154
Figure 5-14: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion
Images ....................................................................................................... 154
Figure 5-15: ED Execution Time Overhead of the Non-parallelised Integer KLT using
Clustering and Tiling (in seconds) ........................................................... 155
xiii
Figure 5-16: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS Images ........................................................................................ 157
Figure 5-17: Average Execution Time Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion
Images ....................................................................................................... 157
Figure 5-18: ED Execution Time Overhead of the Parallelised Integer KLT using
Clustering and Tiling (in seconds) ........................................................... 158
Figure 6-1: TMS320C6678 Functional Block Diagram [277] .................................... 166
Figure 6-2: TMS320C6000 Software Development Flow .......................................... 168
Figure 6-3: Tftpd32 Software ...................................................................................... 177
Figure 6-4: Power Measurement – Boards-Desktop Host Connection Diagram ........ 179
Figure 6-5: LED to DAQ Connection Diagram .......................................................... 179
Figure 6-6: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS images for OMAP-L137 EVM ................................................... 183
Figure 6-7: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
Hyperion images for OMAP-L137 EVM ................................................. 183
Figure 6-8: ED Execution Time Overhead of the Non-parallelised Integer KLT using
Clustering and Tiling for OMAP-L137 EVM .......................................... 184
Figure 6-9: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS images for TMDSEVM6678L EVM ......................................... 186
Figure 6-10: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
Hyperion images for TMDSEVM6678L EVM ........................................ 186
Figure 6-11: Execution Time Overhead of the Parallelised Integer KLT using Clustering
and Tiling with and without ED for TMDSEVM6678L EVM ................ 187
xiv
Figure 6-12: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on AVIRIS
images for OMAP-L137 EVM (in Watt) ................................................. 194
Figure 6-13: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on Hyperion
images for OMAP-L137 EVM (in Watt) ................................................. 194
Figure 6-14: ED Power Overhead of the Non-Parallelised Integer KLT using Clustering
and Tiling for OMAP-L137 EVM (in Watt) ............................................ 195
Figure 6-15: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on AVIRIS images
for TMDSEVM6678L EVM (in Watt) ..................................................... 197
Figure 6-16: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on Hyperion
images for TMDSEVM6678L EVM (in Watt) ........................................ 197
Figure 6-17: ED Power Overhead of the Parallelised Integer KLT using Clustering and
Tiling with and without ED for TMDSEVM6678L EVM (in Watt) ....... 198
Figure 6-18: Spreadsheet for Accurate Estimates of the TMDSEVM6678L EVM Power
Consumption [287] ................................................................................... 201
Figure 7-1: Clustered Integer KLT Block Diagram with c > 2 ................................... 206
Figure 7-2: Integer KLT Block Diagram for Multiple Clustering Levels to Estimate
Clustering Level 𝑐 for an AVIRIS Image ................................................. 208
Figure 7-3: Integer KLT Output Histogram – Jasper3 ................................................ 211
Figure 7-4: The Jasper3 AVIRIS Image at the input of Integer KLT ......................... 212
Figure 7-5: The Jasper3 AVIRIS Image after the Integer KLT encoding ................... 213
Figure 7-6: Integer KLT Output Histograms for Several Spectral Bands – Jasper3 ... 217
Figure 7-7: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 1 (512×512×224) ....................................... 220
Figure 7-8: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 2 (512×512×112) ....................................... 220
xv
Figure 7-9: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 4 (512×512×56) ......................................... 220
Figure 7-10: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 7 (512×512×32) ......................................... 221
Figure 7-11: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 8 (512×512×28) ......................................... 221
Figure 7-12: Block Diagram for Integer KLT with Clustering Level 𝑐 Estimation
Capability for an AVIRIS Image .............................................................. 225
Figure A-1: SSTL DMC Multispectral Imager [294] .................................................. 260
Figure A-2: Basic Elements of Hyperspectral Imager/Spectrometer [246] ................. 261
Figure C-1: Typical Prediction Neighbourhood [123] ................................................. 264
Figure C-2: Samples Selection for Local Sums [123] ................................................. 264
Figure C-3: Directional Local Differences Computation in a Spectral Band [123] .... 265
Figure C-4: Raster Scan Order ..................................................................................... 266
Figure F-1: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Low2,
AVIRIS ..................................................................................................... 277
Figure F-2: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – YSCal11,
AVIRIS ..................................................................................................... 277
Figure F-3: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling –
YSUncal18, AVIRIS ................................................................................ 277
Figure F-4: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling –
Greenland, Hyperion ................................................................................ 278
xvi
Figure F-5: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Boston,
Hyperion ................................................................................................... 278
Figure F-6: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Edenton,
Hyperion ................................................................................................... 278
Figure F-7: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling –
Portobago, Hyperion ................................................................................. 279
Figure F-8: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling for (a) Low2, (b) YSCal11 and (c) YSUncal18 AVIRIS Images
.................................................................................................................. 279
Figure F-9: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling for (a) Greenland, (b) Boston, (c) Edenton and (d) Portobago
Hyperion Images ...................................................................................... 280
Figure I-1: Block Diagram of OMAP-L137 EVM [27] ............................................. 298
Figure I-2: OMAP-L137 EVM [27] ........................................................................... 298
Figure I-3: OMAP-L137 Functional Block Diagram [27] ......................................... 299
Figure I-4: OMAP-L137 Memory Map [27] .............................................................. 299
Figure I-5: Block Diagram of TMDSEVM6678L EVM [207] .................................. 300
Figure I-6: TMDSEVM6678L EVM [207] ................................................................ 300
Figure I-7: Brief TMS320C6678 Memory Map [207, 277] ....................................... 301
xvii
List of Tables
Table 2-1: Hyperspectral Image Compression Systems On Board Space Missions .... 17
Table 2-2: Satellite Category by Mass [49] ................................................................. 20
Table 2-3: On Board Hyperspectral Image Compression ............................................ 24
Table 2-4: AVIRIS and LandSat-1 Imager Specification ............................................ 31
Table 3-1: Computational Cost (in flops) of the KLT Encoding Process [115, 228] .. 63
Table 3-2: Computational Cost (in flops) of the KLT Decoding Process [115, 228] .. 63
Table 3-3: Computational Cost (in flops) for Integer KLT Encoding [115, 228] ....... 65
Table 3-4: Computational Cost (in flops) for Integer KLT Decoding [115, 228] ....... 65
Table 3-5: Desktop System .......................................................................................... 74
Table 3-6: Performance Comparison of Different Hyperspectral Compression
Schemes in terms of CR using AVIRIS Images ......................................... 76
Table 3-7: CR Performance of CCSDS-MHC-FP and Integer KLT + JPEG2000 ...... 80
Table 4-1: AVIRIS and Hyperion Test Images ........................................................... 85
Table 4-2: Lines Selection for Cropping Process in Hyperion Images ........................ 86
Table 4-3: Clustering Levels for AVIRIS and Hyperion Datasets .............................. 92
Table 4-4: Tiling Levels for AVIRIS and Hyperion Datasets ..................................... 93
Table 4-5: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
without Compaction (in kB) – AVIRIS ...................................................... 94
Table 4-6: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
with Compaction (in kB) – AVIRIS ........................................................... 95
Table 4-7: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
without Compaction (in kB) – Hyperion .................................................... 95
Table 4-8: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
with Compaction (in kB) – Hyperion ......................................................... 95
Table 4-9: Integer KLT CR Performance Comparison of Four Different Methods of
Covariance Matrix Calculation ................................................................. 107
xviii
Table 4-10: Integer KLT Execution Time Comparison of Four Different Methods of
Covariance Matrix Calculation (seconds) ................................................ 107
Table 4-11: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between No Sampling and Fixed Sampling – AVIRIS ....... 110
Table 4-12: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between No Sampling and Fixed Sampling – Hyperion ...... 111
Table 4-13: Correlated Spectral Bands in the Selected Hyperspectral Images ............ 115
Table 4-14: Lossless CR Comparison: Variable Clustering vs. Uniform Clustering .. 115
Table 4-15: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling – AVIRIS ................................................................................. 117
Table 4-16: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling – Hyperion ................................................................................ 118
Table 4-17: Integer KLT (at Clustering Levels c and 512×512 Sub-tile Size) and
JPEG2000 vs. CCSDS-MHC-FP .............................................................. 120
Table 4-18: Integer KLT, Clustering and Tiling – CR Performance without Sampling –
AVIRIS ..................................................................................................... 122
Table 4-19: Integer KLT, Clustering and Tiling – CR Performance without Sampling –
Hyperion ................................................................................................... 122
Table 4-20: Lossless CR Performance Comparison .................................................... 123
Table 4-21: Integer KLT, Clustering and Tiling – Average Execution Time (in seconds)
with Fixed Sampling – AVIRIS ............................................................... 124
Table 4-22: Integer KLT, Clustering and Tiling – Average Execution Time (in seconds)
with Fixed Sampling – Hyperion ............................................................. 124
Table 4-23: Execution Time Performance Comparison (in seconds) .......................... 126
Table 4-24: Percentage of Execution Time for the Integer KLT Steps ....................... 127
Table 4-25: Integer KLT, Clustering and Tiling – Average CR Performance at the Best
Clustering and Recommended Tiling Levels for AVIRIS ....................... 128
Table 4-26: Integer KLT, Clustering and Tiling – Average CR Performance at the Best
Clustering and Recommended Tiling Levels for Hyperion ..................... 128
xix
Table 4-27: Best Range of Clustering Levels (c) at the Recommended Tiling Levels (t2)
for AVIRIS and Hyperion Datasets .......................................................... 128
Table 4-28: Integer KLT, Clustering and Tiling – Average Execution Time (seconds) at
the Best Clustering and Recommended Tiling Levels for AVIRIS ......... 129
Table 4-29: Integer KLT, Clustering and Tiling – Average Execution Time (seconds) at
the Possible Clustering and Recommended Tiling Levels for Hyperion . 129
Table 4-30: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – AVIRIS .................................................................... 130
Table 4-31: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – Hyperion .................................................................. 130
Table 4-32: Integer KLT, Clustering, Tiling and Parallelisation – Execution Time
Improvement (in seconds) and Speedup – AVIRIS ................................. 132
Table 4-33: Integer KLT, Clustering, Tiling and Parallelisation – Execution Time
Improvement (in seconds) and Speedup – Hyperion ............................... 132
Table 4-34: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (seconds) at the Best Clustering and Recommended Tiling Levels –
AVIRIS ..................................................................................................... 134
Table 4-35: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (seconds) at the Best Clustering and Recommended Tiling Levels –
Hyperion ................................................................................................... 134
Table 4-36: Integer KLT Execution Time Performance Comparison (seconds) ......... 135
Table 5-1: SBE Test on AVIRIS-Jasper Ridge Scene 1 ............................................ 143
Table 5-2: Combinations of r Vectors used for Error Detection ............................... 148
Table 5-3: Error Detection Performance using One Vector r (with zeroes) .............. 149
Table 5-4: Error Detection Performance using One Vector r (without zeroes) ......... 149
Table 5-5: Error Detection Performance using Two Vectors r (with zeroes) ............ 149
Table 5-6: Error Detection Performance using Two Vectors r (without zeroes) ....... 150
Table 5-7: Error Detection Performance using Three Vectors r (with zeroes) .......... 150
Table 5-8: Error Detection Performance using Three Vectors r (without zeroes) ..... 150
xx
Table 5-9: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on AVIRIS Images
(in seconds) ............................................................................................... 153
Table 5-10: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion
Images (in seconds) .................................................................................. 153
Table 5-11: Average Execution Time Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED, based on AVIRIS Images
(in seconds) ............................................................................................... 156
Table 5-12: Average Execution Time Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion
Images (in seconds) .................................................................................. 156
Table 6-1: Compiler and Software Components Version List ................................... 163
Table 6-2: Summary of Compiler Options Setting for the Integer KLT Implementation
.................................................................................................................. 169
Table 6-3: Matrix-Matrix Multiplication Description in PLUS Factorisation ........... 170
Table 6-4: Matrix-Matrix Multiplication Description in the ED Algorithm ............. 170
Table 6-5: Clustering Levels of AVIRIS and Hyperion Datasets in OMAP-L137
Implementation ......................................................................................... 174
Table 6-6: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS images for OMAP-L137 EVM (in seconds) .............................. 182
Table 6-7: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
Hyperion images for OMAP-L137 EVM (in seconds) ............................ 182
Table 6-8: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS images for TMDSEVM6678L EVM ......................................... 185
xxi
Table 6-9: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on
Hyperion images for TMDSEVM6678L EVM ........................................ 185
Table 6-10: Average Execution Time (seconds) of the Non-parallelised Integer KLT at
the Best Clustering and Recommended Tiling Levels based on AVIRIS
images for OMAP-L137 EVM ................................................................. 189
Table 6-11: Average Execution Time (seconds) of the Non-parallelised Integer KLT at
the Best Clustering and Recommended Tiling Levels based on Hyperion
images for OMAP-L137 EVM ................................................................. 189
Table 6-12: Average Execution Time (seconds) of the Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on AVIRIS images
for TMDSEVM6678L EVM .................................................................... 190
Table 6-13: Average Execution Time (seconds) of the Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on Hyperion
images for TMDSEVM6678L EVM ........................................................ 190
Table 6-14: Average Throughput (in Mbps) of the Non-Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on AVIRIS images
for OMAP-L137 EVM ............................................................................. 191
Table 6-15: Average Throughput (in Mbps) of the Non-Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on Hyperion
images for OMAP-L137 EVM ................................................................. 191
Table 6-16: Average Throughput (in Mbps) of the Parallelised Integer KLT at the Best
Clustering and Recommended Tiling Levels based on AVIRIS images for
TMDSEVM6678L EVM .......................................................................... 191
Table 6-17: Average Throughput (in Mbps) of the Parallelised Integer KLT at the Best
Clustering and Recommended Tiling Levels based on Hyperion images for
TMDSEVM6678L EVM .......................................................................... 192
Table 6-18: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on AVIRIS
images for OMAP-L137 EVM (in Watt) ................................................. 193
xxii
Table 6-19: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on Hyperion
images for OMAP-L137 EVM (in Watt) ................................................. 193
Table 6-20: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on AVIRIS images
for TMDSEVM6678L EVM (in Watt) ..................................................... 196
Table 6-21: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on Hyperion
images for TMDSEVM6678L EVM (in Watt) ........................................ 196
Table 6-22: Average Power (in Watt) of the Non-Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on AVIRIS images for
OMAP-L137 EVM ................................................................................... 202
Table 6-23: Average Power (in Watt) of the Non-Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on Hyperion images for
OMAP-L137 EVM ................................................................................... 202
Table 6-24: Average Power (in Watt) of the Parallelised Integer KLT at Best Clustering
and Recommended Tiling Levels based on AVIRIS images for
TMDSEVM6678L EVM .......................................................................... 202
Table 6-25: Average Power (in Watt) of the Parallelised Integer KLT at Best Clustering
and Recommended Tiling Levels based on Hyperion images for
TMDSEVM6678L EVM .......................................................................... 202
Table 7-1: Input (H) vs Encoded Output (H_encoded) (AVIRIS) ............................. 209
Table 7-2: Input (H) vs Encoded Output (H_encoded) (Hyperion) ........................... 210
Table 7-3: Input (H) vs Encoded Output (H_encoded) (CHRIS) .............................. 211
Table 7-4: Correlation Coefficients for Jasper3 Input Image (1st to 9
th Bands) ......... 213
Table 7-5: Correlation Coefficients for Jasper3 Encoded Output (1st to 9
th Bands) .. 213
Table 7-6: Percentage of Spectral Bands with min(h_encodedz) Larger and Smaller
than min(hz) .............................................................................................. 214
Table 7-7: Percentage of Spectral Bands with max(h_encodedz) Larger and Smaller
than max(hz) ............................................................................................. 214
xxiii
Table 7-8: Percentage of Spectral Bands with R(h_encodedz) Larger and Smaller than
R(hz) .......................................................................................................... 215
Table 7-9: Correlation(G, V) for the First Five Different Levels of Clustering, c
Possible at Tiling Level t2 = 1 .................................................................. 218
Table 7-10: Correlation(G, V) for the First Five Different Levels of Clustering, c
Possible at Tiling Level t2 = 4 .................................................................. 219
Table 7-11: Actual vs Estimated Clustering Levels 𝑐 for Tiling Level t2 = 1 using
H_encoded (Volumetric CR) .................................................................... 222
Table 7-12: Actual vs Estimated Clustering Levels 𝑐 for Tiling Level t2 = 4 using
H_encoded (Volumetric CR) .................................................................... 222
Table 7-13: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
(in kB, with Compaction) – CHRIS ......................................................... 226
Table 7-14: Percentage of Overhead Size over Compressed Data – AVIRIS ............. 226
Table 7-15: Percentage of Overhead Size over Compressed Data – Hyperion ........... 226
Table 7-16: Percentage of Overhead Size over Compressed Data – CHRIS ............... 226
Table 7-17: Actual vs Estimated Clustering Levels 𝑐 for Tiling Level t2 = 1 using
Sampled H_adjust (CR with Overhead) ................................................... 227
Table 7-18: Actual vs Estimated Clustering Levels 𝑐 for Tiling Level t2 = 4 using
Sampled H_adjust (CR with Overhead) ................................................... 228
Table 7-19: Average Execution Time for the Estimation of 𝑐 in the Non-Parallelised
Desktop System – AVIRIS ....................................................................... 229
Table 7-20: Average Execution Time for the Estimation of 𝑐 in the Non-Parallelised
Desktop System – Hyperion ..................................................................... 229
Table 7-21: Average Execution Time for the Estimation of 𝑐 in the Non-Parallelised
Desktop System – CHRIS ........................................................................ 229
Table 7-22: Average Execution Time for the Estimation of 𝑐 in the Parallelised Desktop
System – AVIRIS ..................................................................................... 229
Table 7-23: Average Execution Time for the Estimation of 𝑐 in the Parallelised Desktop
System – Hyperion ................................................................................... 229
xxiv
Table 7-24: Average Execution Time for the Estimation of 𝑐 in the Parallelised Desktop
System – CHRIS ....................................................................................... 229
Table 7-25: Average Execution Time for the Estimation of 𝑐 in the TMDSEVM6678L
EVM – AVIRIS ........................................................................................ 229
Table 7-26: Average Execution Time for the Estimation of 𝑐 in the TMDSEVM6678L
EVM – Hyperion ...................................................................................... 230
Table 7-27: Average Execution Time for the Estimation of 𝑐 in the TMDSEVM6678L
EVM – CHRIS ......................................................................................... 230
Table E-1: Integer KLT – Java Application Flags and Parameters ............................ 270
Table E-2: Parameters Suggested for CCSDS-MHC Algorithm [186] ...................... 271
Table E-3: CCSDS-MHC – Java Application Flags and Parameters ......................... 272
Table G-1: Other AVIRIS Images .............................................................................. 281
Table G-2: Other Hyperion Images ............................................................................ 282
Table G-3: CHRIS Images .......................................................................................... 283
Table G-4: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 512×512 Sub-Tile Size – without Sampling ........................... 283
Table G-5: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 256×256 Sub-Tile Size – without Sampling ........................... 283
Table G-6: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 128×128 Sub-Tile Size – without Sampling ........................... 284
Table G-7: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 64×64 Sub-Tile Size – without Sampling ............................... 284
Table G-8: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 256×256 Sub-Tile Size – without Sampling ........... 285
Table G-9: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 128×128 Sub-Tile Size – without Sampling ........... 285
Table G-10: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 64×64 Sub-Tile Size – without Sampling ............... 286
xxv
Table G-11: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
372×372 Sub-Tile Size – without Sampling ............................................ 286
Table G-12: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
186×186 Sub-Tile Size – without Sampling ............................................ 287
Table G-13: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
93×93 Sub-Tile Size – without Sampling ................................................ 287
Table G-14: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 512×512 Sub-Tile Size – Fixed Sampling .............................. 287
Table G-15: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 256×256 Sub-Tile Size – Fixed Sampling .............................. 288
Table G-16: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 128×128 Sub-Tile Size – Fixed Sampling .............................. 288
Table G-17: Integer KLT, Clustering and Tiling – Volumetric CR for the Other AVIRIS
Images at 64×64 Sub-Tile Size – Fixed Sampling .................................. 289
Table G-18: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 256×256 Sub-Tile Size – Fixed Sampling .............. 289
Table G-19: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 128×128 Sub-Tile Size – Fixed Sampling .............. 290
Table G-20: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 64×64 Sub-Tile Size – Fixed Sampling .................. 290
Table G-21: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
372×372 Sub-Tile Size – Fixed Sampling ............................................... 291
Table G-22: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
186×186 Sub-Tile Size – Fixed Sampling ............................................... 291
Table G-23: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
93×93 Sub-Tile Size – Fixed Sampling ................................................... 291
Table G-24: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 512×512 Sub-Tile Size – Fixed Sampling .............................. 291
xxvi
Table G-25: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 256×256 Sub-Tile Size – Fixed Sampling .............................. 292
Table G-26: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 128×128 Sub-Tile Size – Fixed Sampling .............................. 292
Table G-27: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 64×64 Sub-Tile Size – Fixed Sampling .................................. 293
Table G-28: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 256×256 Sub-Tile Size – Fixed Sampling .............................. 293
Table G-29: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 128×128 Sub-Tile Size – Fixed Sampling .............................. 294
Table G-30: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 64×64 Sub-Tile Size – Fixed Sampling .................................. 294
Table G-31: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
372×372 Sub-Tile Size – Fixed Sampling ............................................... 295
Table G-32: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
186×186 Sub-Tile Size – Fixed Sampling ............................................... 295
Table G-33: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
93×93 Sub-Tile Size – Fixed Sampling ................................................... 295
Table G-34: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (Non-Parallelised Desktop
Implementation) ....................................................................................... 295
Table G-35: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (Parallelised Desktop
Implementation) ....................................................................................... 296
Table G-36: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (OMAP-L137 DSP) ...................... 296
Table G-37: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (TMDSEVM6678L DSP) ............ 296
Table H-1: Variation in Integer KLT Output from Random Sampling of Pixels for
Covariance Matrix Calculation in Ten Different Tests ............................ 297
xxvii
Table I-1: Optimisation Level of the Compiler [304] ............................................... 302
Table I-2: Optimisation between Speed of Execution versus Code Size [304] ........ 303
Table I-3: Equivalence of --opt_for_space and --opt_for_speed Options [304] ....... 304
xxviii
List of Listings
Listing 4-1: Clustering and Tiling in Integer KLT C++ Code ....................................... 97
Listing 4-2: C++ Code for Hyperspectral Variables Sharing in Integer KLT ............... 98
Listing 4-3: Clustered, Tiled-Integer KLT using the OpenMP SPMD Code ............... 100
Listing 4-4: C++ Code for Overhead Information Sharing in Integer KLT ................. 102
Listing 6-1: Generic Double-Double Matrix Multiplication C/C++ Code .................. 171
Listing 6-2: Typical Permutation-Permutation Matrix Multiplication ......................... 171
Listing 6-3: Improved Permutation-Permutation Matrix Multiplication ..................... 172
Listing 6-4: Improved TERM-Permutation Matrix Multiplication .............................. 172
Listing 6-5: Optimised TERM-TERM Matrix Multiplication ..................................... 173
Listing 6-6: Clustering and Tiling in Integer KLT C Code for OMAP-L137
Implementation ......................................................................................... 175
Listing 6-7: Clustering and Tiling in Integer KLT C Code for TMDSEVM6678L
Parallel Implementation ............................................................................ 178
Listing E-1: Integer KLT – Java Application Syntax ................................................... 270
Listing E-2: CCSDS-MHC Compression Syntax ......................................................... 272
Listing E-3: CCSDS-MHC Decompression Syntax ..................................................... 272
Listing E-4: Lossless Spatial Compression – JPEG2000 using Kakadu Software ....... 273
Listing E-5: Lossless Spatial Decompression – JPEG2000 using Kakadu Software ... 273
Listing E-6: Matlab m-file Syntaxes for Executing Kakadu Software ......................... 274
Listing E-7: C++ Code for Executing Kakadu Software .............................................. 274
Listing E-8: Lossless JPEG2000 Part II using Kakadu Software ................................. 274
Listing E-9: LOCO-I Compression Syntax .................................................................. 275
Listing E-10: LOCO-I Decompression Syntax ............................................................... 275
Listing F-1: Matlab m-file Syntax for Read, Crop and Save AVIRIS Image as Binary
Input Image File ....................................................................................... 276
xxix
Listing F-2: Matlab m-file Syntax for Read, Crop and Save Hyperion Image as Binary
Input Image File ....................................................................................... 276
Listing F-3: C++ Code for Reading the Binary File into a Variable ............................ 276
Listing I-1: Instruction to Initiate TFTP File Transfer ................................................ 302
xxx
List of Abbreviations
2D two-dimensional
3D three-dimensional
ABFT algorithm-based fault tolerance
AMC Advanced Mezzanine Card
ANSI American National Standards Institute
API application programming interface
ARM Advanced RISC Machine
ARTEMIS Advanced Responsive Tactically Effective Imaging Spectrometer
AVIRIS Airborne Visible/Infrared Imaging Spectrometer
BIL band interleaved by line
BIP band interleaved by pixel
bpp bits per pixel
bpppb bits per pixel per band
BSQ band sequential
C&DH command and data handling subsystem
CALIC Context-based Adaptive Lossless Image Codec
CCD charged-couple device
CCS Code Composer Studio
CCSDS Consultative Committee for Space Data Systems
CCSDS-MHC CCSDS Multispectral and Hyperspectral Compression
CDF Cohen-Daubechies-Feauveau
CDPU command and data processing unit
CGT Code Generation Tools
CHRIS Compact High Resolution Imaging Spectrometer
xxxi
COFF common object file format
COIS Coastal Ocean Imaging Spectrometer
COP co-processor
CPU central processing unit
CR compression ratio
CRISM Compact Reconnaissance Imaging Spectrometer for Mars
CT computed tomography
CUDA Compute Unified Device Architecture
DAQ data acquisition
DC direct current
DCT Discrete Cosine Transform
DPCM differential pulse code modulation
DPU data processing unit
DSP digital signal processor
DWT Discrete Wavelet Transform
ED error detection
EDAC error detection and correction
EDMA Enhanced Direct Memory Access
EEPROM electrically erasable programmable read-only memory
ELF Executable and Linking Format
EMIF External Memory Interface
EnMAP Environmental Mapping and Analysis Program
EnviSat ESA Environmental Satellite
EO-1 Earth Observing 1
ERM elementary reversible matrix
ESA European Space Agency
xxxii
EVM evaluation module
FFT fast Fourier transform
FL Fast Lossless
flops floating-point operations
FOV field of view
FP full prediction
FPGA field-programmable gate array
FTHSI Fourier Transform Hyperspectral Imager
FWHM full width half maximum
Gb gigabit
Gbaud giga baud
Gbps gigabits per second
GCD greatest common divisor
GFLOP giga floating-point operations per second
GHz giga Hertz
GMAC giga multiply-accumulate operations per second
GPGPU general-purpose GPU
GPIO General Purpose I/O
GPU graphics processing unit
GSD ground sampling distance
HDF Hierarchical Data Format
HERO Hyperspectral Environment and Resource Observer
HIS hyperspectral imager
HyspIRI Hyperspectral Infrared Imager
I/O input/output
IDE integrated development environment
xxxiii
IMS-1 Indian Microsatellite-1
Inf infinity
IP Internet Protocol
IPC Inter-processor Communication
IR infrared
JPEG Joint Photographic Experts Group
JTAG Joint Test Action Group
kB kilobyte
KLT Karhunen-Loève Transform
LED light-emitting diode
LLD Low-Level Driver
MB megabyte
Mb megabit
Mbps megabit per second
MCSDK Multi-core Software Developers Kit
MERIS Medium Resolution Imaging Spectrometer
MFLOPS million floating-point operations per second
MIPS million instructions per second
MMC/SD Multimedia Card/Secure Digital
MMU mass memory unit
MODIS Moderate Resolution Imaging Spectroradiometer
MRI magnetic resonance imaging
MSB most significant bit
MSM Multicore Shared Memory
MSMC Multicore Shared Memory Controller
MSX Midcourse Space Experiment
xxxiv
NaN Not a Number
NAND Negated AND
NDK Network Developers Kit
NEMO Naval EarthMap Observer
NI National Instruments
nm nanometer
NOR Negated OR
OHIS OrbView Hyperspectral Imaging System
OMEGA Observatoire pour la Minéralogie, l’Eau, les Glaces, et l’Activité
OMI Ozone Monitoring Instrument
OpenMP®
Open Multi Processing
ORASIS Optical Real-Time Adaptive Signature Identification System
PB pushbroom
PC principal component
PCA principal component analysis
PCI Peripheral Component Interface
PICMG PCI Industrial Computer Manufacturers Group
PPMCC Pearson product-moment correlation coefficient
PRISMA PRecursore IperSpettrale della Missione Operativa
PROBA-1 Project for On-Board Autonomy 1
PSP Platform Support Products
RAM random-access memory
RA-RCC Responsive Avionics Reconfigurable Computer
RC result checking
RGB red-green-blue
RISC Reduced-Instruction-Set Computing
xxxv
RP reduced prediction
rpm rotation-per-minute
RTC real-time clock
RTFS Real-Time File System
SATA Serial Advanced Technology Attachment
SBC single board computer
SBE single-bit error
SDRAM Synchronous Dynamic RAM
SERM single-row ERM
SEU single-event upset
SNR signal-to-noise ratio
SPI Serial Peripheral Interface
SPMD single program multiple data
SSR solid state recorder
SSTL Surrey Satellite Technology Ltd.
SVD singular value decomposition
SWIR short-wave infrared
TacSat-3 Tactical Satellite-3
Tbps terabit per second
TDP thermal design power
TERM triangular ERM
TES Tropospheric Emission Spectrometer
TFTP Trivial File Transfer Protocol
TI Texas Instruments
TWSat Third World Satellite
UART Universal Asynchronous Receiver-Transmitter
xxxvi
USB Universal Serial Bus
UVISI Ultraviolet and Visible Imagers and Spectrographic Imager
VI virtual instruments
VLIW Very Long Instruction Word
VME Versa Module Europa
VNIR visible near infrared
VQ vector quantisation
WARP Wideband Advanced Recorder and Processor
W Watt
WB whiskbroom
XDCtools eXpress DSP Component Tools
1
Chapter 1 Introduction
Remote sensing started in the early twentieth-century with the use of cameras to take
images of Earth, on board military surveillance aircrafts [1]. With the advent of space
technology dedicated Earth observing satellites were developed, which were more
suitable for uninterrupted “continuous” surveillance, as compared to airborne platforms
[2]. The first images taken from a spacecraft were film based, mono-chromatic (using a
single spectral band) and analogue [3]. The films would be dropped on the Earth surface
and collected manually. However, most of the imagers of present Earth Observation (EO)
satellites are digital and are able to provide multispectral imagery using multiple spectral
bands. In addition the images are stored on board until such time when the spacecraft is
ready to send the data to the ground stations via high speed downlinks.
Although the EO image gathering technology has advanced significantly, the image data
volumes have increased enormously too. This has led to many challenging issues which
need to be overcome, such are insufficient on-board storage, short downlink sessions for
EO satellites placed in the Lower Earth Orbit (LEO), limited downlink bandwidth. Image
compression on board satellites has been recognised as a solution to the data bottleneck
of EO missions. For example, a EO satellite in a typical 600 km altitude sun-synchronous
orbit is in range of the ground station for about 7 minutes [4]. With a downlink
bandwidth of 1 Megabit per second (Mbps) the maximum amount of data that could be
downloaded is around 420 Megabits (Mb) per pass, which is not enough to send a whole
image to ground within a single pass, for instance a multispectral image captured by a
typical EO satellite, such as TopSat satellite, is 600 Mb [5]. However, if it was possible to
compress the images on board, for example with a compression ratio (CR) of 3:1, they
could be easily be downloaded through a 1 Mbps downlink in a single pass. Hence image
compression prevents the serious degrading of satellite operational utility caused by
downloading a single image over multiple passes and saves on-board storage.
Current EO missions, such as EO-1 [6-11] and IMS-1 [6, 12] as well as future planned
missions, e.g. EnMAP [13, 14], require even more information, which could be supplied
by increasing significantly the number of spectral bands, i.e. by acquiring hyperspectral
images of Earth. Hyperspectral images have 100 or more spectral bands, which mean
more digital bits per image. For instance, a hyperspectral image captured by the Hyperion
2
sensor on board of the EO-1 satellite has 242 bands and a spatial resolution of 256 ×
6925 with 16 bits per pixel, occupying 6,547 Mb or 819 Megabytes (MB) of storage
[15]. Using a 1 Mbps downlink, a hyperspectral image would require at least 16 passes to
download the complete image, which would require additional ground stations, whereas,
with a compression ratio of 3:1, 6 passes would be required reducing or completely
avoiding the need of additional ground stations.
The downside of implementing compression on board is that it requires increased data
processing capabilities which will necessitate greater resources and will raise the cost of
the payload system. The actual manufacturing costs of embedded Digital Signal
Processors (DSP), however have recently gone down considerably. For example the
TMS320C40 processor from Texas Instrument (TI), which was used in the MightySat
II.1 mission [6] costs as low as £0.20 per chip [16] and its military-grade version
SMJ320C40 is around £7.50 per chip [17], while the TMS320C40’s predecessor,
TMS320C30, was priced much higher at $1,300 in 1988 [18].
Hyperspectral Earth observation started with the Airborne Visible/Infrared Imaging
Spectrometer (AVIRIS), the first Earth-looking imaging spectrometer, which was
introduced in 1986 [19]. The scientific data from the instrument is still being used
nowadays for various types of applications, including hyperspectral image compression
[20, 21], land cover studies [22], material observations [23] and for spaceborne
hyperspectral sensor design [24], to name but a few. It is envisaged that in the near future,
there will be many more spaceborne missions that incorporate hyperspectral sensors.
1.1 Research Motivation
Currently research on satellite hyperspectral imaging is a growing research area, which
will be reviewed in the Chapter 2. The space industry is moving rapidly towards
hyperspectral missions generating increasing amounts of data, which necessitates image
compression capabilities on board to reduce the data volume prior to transmission to the
ground station. Even though the theoretical aspects of compression algorithms had been
under study since the 1980’s, the advances in digital signal processing capabilities have
enabled true realisation today especially for hyperspectral image compression. The
technical aspects of the implementation of a compression scheme for hyperspectral
3
images are a relatively new area of research, which intrigues the research community
greatly.
In a multispectral image with fine spatial resolution but coarse spectral resolution, a
typical 2D image compression can be used although there are numerous of studies
working on this type of image to further exploit the spectral redundancy for better
compression. The hyperspectral image on the other hand has finer spectral resolution and
greater spectral redundancy than the multispectral image. This has pushed for an efficient
spectral decorrelator before compression using 2D image compression algorithm.
Karhunen-Loève Transform (KLT) or specifically its lossless version, the Integer KLT
has shown good potential in reducing or decorrelating the spectral redundancy inside a
hyperspectral image. However, it is highly computationally expensive and requires
extensive study to reduce its complexity while improving its compression performance.
The Integer KLT has been used for hyperspectral compressions previously but no
implementation attempt has yet been made on an embedded platform due to the
complexity issues. It needs more optimisation in order to reduce the complexity and to
increase the compression performance efficiently.
The spectrum coverage of hyperspectral imagers are expected to be wider in the near
future, leading to the increment of the number of bands in the hyperspectral image. The
data will become more invaluable and can be used widely for agriculture, mineralogy,
surveillance etc. as terrestrial applications. This requires a lossless compression to be
implemented at the sensor payload on board a satellite and urges for a lossless
compression study, which has become the focus of this research work.
When this research work was in its final stage, the Consultative Committee for Space
Data Systems (CCSDS) released a new algorithm named CCSDS Lossless Multispectral
and Hyperspectral Image Compression, referred to as CCSDS-MHC throughout the
thesis, in May 2012. The algorithm is capable of compressing an AVIRIS image in real-
time, using a graphics processing unit (GPU) and a high performance mobile computing
platform [25]. Such implementations, however, are not suitable for application on board
satellites due to the high power consumption. Targeting low power platforms, two DSPs
(a single core low power and a multi-core for high performance application DSPs) are
used in this work to implement the optimised Integer KLT, and evaluate its performance
in terms of execution time and average power consumption.
4
The harsh radiation environment of space could generate soft-errors, referred to as Single
Event Upsets (SEUs), which are non-destructive with regards to hardware, but harmful to
memory and software implementations. SEUs could affect the actual performance of an
algorithm and appear as transient pulses in logic and support circuitry, or as bit flips in
memory cells and registers [26]. The bit flips should be detected and corrected and this
has urged the need to include a suitable error detection (ED) algorithm in the targeted
lossless hyperspectral compression algorithm. However, the ED should be low in
complexity in order to be suitable for execution on embedded processors, which have
limited computational resources.
1.2 Scope and Objectives of the Research
This research is concerned with the investigation of the Integer KLT algorithm as a
spectral decorrelator in a hyperspectral image compression payload system and its
physical realisation on a DSP. It started at the Surrey Space Centre, University of Surrey,
in close collaboration with the leading manufacturer of small EO satellites Surrey
Satellite Technology Limited (SSTL), aiming to provide an efficient solution to lossless
hyperspectral compression for current and future missions, usable on board spaceborne
platforms. SSTL pioneered the ‘commercial off the shelf’ (COTS) approach which uses
standard consumer technology (e.g. imager, DSP etc.) and adapts it to cope with the harsh
space environment for small satellites applications. The Integer KLT algorithm and the
developed DSP implementations can be used for compressing not only satellite
hyperspectral images but any 3-dimensional (3D) data with a high spectral redundancy
for terrestrial applications.
During the research work the following overarching research questions were identified:
How to increase the compression performance of the algorithm?
How to reduce its complexity and achieve better performance in terms of
execution time?
How well the algorithm performs in case of SEUs and how to implement/increase
its fault tolerance?
How to implement and evaluate the algorithm on embedded DSP platforms?
5
To further refine and focus the research, seven topic areas that underpin the overarching
research questions above were established. To address the identified topic areas, the
following objectives were pursued:
1. Carry out a comprehensive study of hyperspectral satellite missions with
compression capability on board, and extensively review the existing methods
and algorithms for compressing hyperspectral data with a focus on lossless
compression.
2. Develop the lossless Integer KLT algorithm on a desktop platform using the
C/C++ language, followed by testing and evaluating with actual hyperspectral
datasets of both airborne and spaceborne types, such as AVIRIS and
Hyperion, and comparing the performance with other compression algorithms.
3. Propose optimisation techniques to the Integer KLT algorithm to reduce the
complexity of the algorithm and also to increase its compression performance.
Evaluate each of the techniques by measuring its execution time and its
compression capability using the hyperspectral datasets.
4. Accelerate the Integer KLT through software parallelisation using the
OpenMP (Open Multi Processing) for multi-core environment, employing
careful programming to avoid data-sharing conflicts.
5. Incorporate an ED algorithm to protect the Integer KLT algorithm from
single-bit soft errors. The ED algorithm should be of very low complexity and
most importantly should be able to detect the errors efficiently.
6. Implement the developed desktop implementation on DSP platforms and
perform an extensive debugging and optimisations to minimise the execution
time. This includes the evaluation of the algorithm on the DSPs while
compressing the hyperspectral datasets, which covers both execution time and
average power consumption.
7. Demonstrate a suitable method/algorithm to determine the optimum number of
cores/processor threads use in the multi-core implementation to achieve the
best compression performance.
The two targeted embedded DSP platforms used in this work are the OMAP-L137
Evaluation Module (EVM) with a clock speed of 300 MHz [27] and the
6
TMDSEVM6678L EVM [28] with 8 DSP cores, each with 1 GHz of clock speed. The
CPU power consumption, PCPU is given by equation (1-1), showing that it is
proportionate to the CPU clock speed [29]. Hence, the OMAP-L137 EVM is targeted at
low power implementations, whereas the TMDSEVM6678L EVM at high performance
implementations.
𝑃𝐶𝑃𝑈 ≈ 𝐶𝑉2𝑓
Where,
(1-1) 𝐶 = Capacitance
𝑉 = Voltage
𝑓 = Clock speed
1.3 Novelty of the Research Work
The following major outcomes of the research meet the above objectives and represent
the main novel contributions to the state-of-the-art.
The thesis
proposes and evaluates a new ED algorithm that improves the resilience of the
Integer KLT algorithm to radiation effects, making it suitable for use in space-
based embedded systems,
proposes and evaluates a novel method for estimating the clustering level,
corresponding to the number of processors or DSP threads/cores that should be
utilised in order to maximise the compression performance of the algorithm,
explores the design space of the Integer KLT algorithm and demonstrates the
performance benefits that are obtained through the use of the clustering technique
and its parallelisation,
proposes and evaluates novel strategies for the implementation of the Integer KLT
algorithm based on low power and high performance, multi-core embedded DSP
hardware platforms.
In addition to the claims stated above, several other contributions are listed below.
The thesis
7
investigates and compares for the first time the performance of the Integer KLT
and the new CCSDS algorithm in terms of compression performance and spectral
decorrelation efficiency,
demonstrates the CR and execution time disadvantages that are obtained through
the use of the tiling technique in the Integer KLT algorithm,
demonstrates the weakness of the random sampling method during the covariance
matrix calculation in the Integer KLT and proposes a fixed sampling method to
further enhance the algorithm performance,
proposes a technique based on compaction of the overhead information of the
Integer KLT algorithm improving the compression performance,
presents a systematic and analytical review of past and future hyperspectral
missions as well as lossless hyperspectral image compression algorithms and
hardware implementations including fault tolerance considerations.
1.4 Thesis Outline
The thesis comprises eight chapters.
Chapter 1 introduces the research area and discusses the research motivation and the
scope and objectives of the work.
Chapter 2 gives introduction to hyperspectral remote sensing and provides an in-depth
literature survey on the past, current and future hyperspectral spaceborne missions,
lossless hyperspectral compression algorithms, hardware implementations as well as fault
tolerance issues.
Chapter 3 will introduce the KLT and its lossless counterpart (Integer KLT), presents the
experiment outline to compare the lossless algorithm with few other algorithms for
compressing hyperspectral images. The new algorithm by the CCSDS committee will be
included to evaluate the CR and spectral decorrelation efficiency.
Chapter 4 will propose several optimisation techniques on the Integer KLT with the main
target being to reduce the complexity of the algorithm and also to improve the lossless
CR performance. Clustering, parallelisation of each cluster, fixed sampling on covariance
calculation and overhead information compaction are among the techniques to increase
the algorithm performance. Each technique will be evaluated using airborne and
spaceborne hyperspectral datasets and the performance will be reported.
8
Chapter 5 will introduce the Freivald’s checker followed by investigations on the effects
of a single-bit error towards the losslessness of the Integer KLT algorithm. Freivald’s
checker will be proposed to protect the algorithm by detecting the error in order to reduce
the risk of data corruption in such an event, targeting the core part of the Integer KLT;
PLUS factorisation. The error detection (ED) algorithm will be presented in detail and
evaluated to investigate its error coverage and complexity towards the overall Integer
KLT algorithm.
Chapter 6 will implement the low-complexity Integer KLT along with the ED algorithm
on the OMAP-L137 and the TMDSEVM6678L DSP platform. Details on the
implementation will be presented and evaluated based on execution time and average
power consumption.
Chapter 7 proposes a technique to estimate the best clustering level �̃� for each individual
hyperspectral image that could give the best CR performance. Evaluation will be
performed on the selected hyperspectral datasets as well as several other hyperspectral
images.
The last chapter, Chapter 8, summarises the research work and presents the main
findings. Future potential research work, including continuation of this research is also
suggested.
1.5 Publications
The results of this thesis are published in one journal and four conference publications. A
list of the published and submitted papers related to this work is given below.
Journal Paper
1) N. R. Mat Noor and T. Vladimirova, "Investigation into Lossless Hyperspectral
Image Compression for Satellite Remote Sensing," International Journal of
Remote Sensing, vol. 34, pp. 5072-5104, 2013, DOI:
10.1080/01431161.2013.783944
Conference Papers
1) N. R. Mat Noor, T. Vladimirova, and M. Sweeting, "High Performance Lossless
Compression for Hyperspectral Satellite Imagery," in UK Electronics Forum, pp.
78-83, 30 June-1 July 2010, Newcastle, UK, ISBN: 978-0-7017-0232-8
9
2) N. R. Mat Noor and T. Vladimirova, "Integer KLT Design Space Exploration for
Hyperspectral Satellite Image Compression," in Convergence and Hybrid
Information Technology, vol. 6935, G. Lee, D. Howard, and D. Ślęzak, Eds.,
Germany, Springer-Verlag Berlin Heidelberg, 2011, Ch. 8, Sec. 12, pp. 661-668,
DOI: 10.1007/978-3-642-24082-9_80
3) N. R. Mat Noor and T. Vladimirova, "Parallel Implementation of Lossless
Clustered Integer KLT Using OpenMP," in Proceedings of NASA/ESA
Conference on Adaptive Hardware and Systems (AHS-2012), pp. 122-128, 25-28
June 2012, Erlangen, Germany, DOI: 10.1109/AHS.2012.6268639
4) N. R. Mat Noor and T. Vladimirova, "Parallelised Fault-Tolerant Integer KLT
Implementation for Lossless Hyperspectral Image Compression on Board
Satellites," in Proceedings of NASA/ESA Conference on Adaptive Hardware and
Systems (AHS-2013), pp. 115-122, 24-27 June 2013, Torino, Italy, DOI:
10.1109/AHS.2013.6604234.
10
Chapter 2 Literature Review
In this chapter, a literature review that covers all areas related to the state-of-the-art, such
as hyperspectral spaceborne remote sensing, compression of hyperspectral imagery,
existing hardware implementations and fault tolerance issues is presented.
Section 2.1 introduces main concepts of hyperspectral remote sensing. Section 2.2
reviews past, current and future hyperspectral missions along with the image
processing/compression available on-board of the satellites. Section 2.3 serves as an
introduction to hyperspectral image compression. Section 2.4 surveys in depth
hyperspectral/multi-component lossless image compression studies that were carried out
by other researches. Embedded hardware implementations are reviewed in Section 2.5,
focusing on Field Programmable Gate Arrays (FPGAs) and DSP implementations.
Section 2.6 reviews fault tolerance at algorithmic level with a special focus on Result
Checking (RC). Section 2.7 concludes the chapter.
2.1 Introduction to Hyperspectral Remote Sensing
2.1.1 Definition
In hyperspectral remote sensing, the terms imaging spectroscopy, imaging spectrometry,
and hyperspectral imaging are often used interchangeably. The common definition for
those terms is ‘the simultaneous acquisition of spatially co-registered images, in many
narrow, spectrally contiguous bands, measured in calibrated radiance units, from a
remotely operated platform’ [30]. Hyperspectral sensors acquire images throughout the
visible, near-infrared (near-IR), mid-IR and thermal IR bands of the electromagnetic
spectrum [31]. A hyperspectral image is represented by three components, as shown in
Figure 2-1: the width x in pixels; the height y in pixels; and a third component, additional
to the spatial components, referred to as the spectral component, λ. This is given in
nanometres (nm). The terms wavelength or band number is also used in the literature to
denote the spectral component.
11
Figure 2-1: Hyperspectral Image Representation (Image Courtesy of NASA-JPL)
2.1.2 Difference between Multispectral and Hyperspectral Images
The number of bands that could be captured is used to differentiate between hyperspectral
and multispectral imaging. The ‘classical definition’ of hyperspectral imaging is that the
number of bands involved is more than 10, and any lower than that is referred to as
multispectral imaging [2, 30]. However, the number of spectral bands is also defined to
be in the range of 100 bands in some literature sources [31, 32]. In addition to that, the
contiguity among the bands and their spectral resolution (bandwidth) are also becoming
an important feature of hyperspectral imaging that is different from multispectral imaging
[33, 34] which is obvious in Figure 2-2. Hyperspectral images are said to have a very
high spectral resolution, providing better diagnostic capabilities for object detection,
classification and discrimination than multispectral images [35] since they provide
narrow and contiguous plots of reflectance data across the spectral bands (ratio of
reflected energy to incident energy as a function of wavelength [2]).
(a) (b)
Figure 2-2: Multi-component Images with Plot of Reflectance for (a) Multispectral
Image and (b) Hyperspectral Image (Image Courtesy of NASA-JPL)
0
0.5
1 2 3 4 5 6
Ref
lect
an
ce
Band Number
0
0.5
400 2400
Ref
lect
an
ce
Wavelength, nm
x (pixel)
y (pixel)
λ (nm)
12
2.1.3 Imaging Systems
In general, the imaging system in remote sensing can be categorised into two types;
framing and scanning systems with the latter type being common to most modern remote
sensing systems. The scanning systems are generally divided into two; whiskbroom and
pushbroom scanning systems. All these types are visualised in Figure 2-3(a) to (c).
The framing system (Figure 2-3(a)) makes use of various types of cameras to record an
entire image spontaneously, including common film-based cameras and digital cameras
(still or video). The area to be captured is focused on by the lens to form an image at the
focal plane where the sensor (Charged-Couple Device (CCD) or film) is placed for
recording. For film-based platforms, the movement of the satellite and the film are used
to get longer exposure and also to improve the focus [36]. The framing system was
applied on a multispectral remote sensing on the Apollo-9 flight mission that was
equipped with four Hasselblad cameras with filters in the green, yellow, red and deep red
regions of the electromagnetic spectrum, to capture pictures of Earth from space [37].
This system was very popular in the early remote sensing platforms (e.g. Corona satellite
(film-based) and early UoSat satellites (CCD) [36]).
The whiskbroom scanning system (also known as the cross track scanning system, Figure
2-3(b)) consists of a rotating scanning mirror that scans from side to side, while the
system flies along a track. The movement of the rotating mirror and the platform (i.e.
satellite or aircraft) produces the image that is captured by a small number of detectors
(e.g. Silicon photodiodes and photomultiplier tubes as in LandSat-1 to LandSat-3 [6]) for
multispectral imaging and can also be spectrometers (consisting of dispersive elements to
diffract the light) with line array detectors in each spectrometer (e.g. AVIRIS imager) to
capture a hyperspectral image cube. Due to the moving part, the mechanical part of the
scanning system is usually complex and more prone to wearing out.
In the pushbroom scanning system (along track scanner, Figure 2-3(c)), the scan direction
is along the track (i.e. direction of the satellite or aircraft) and similar to the bristles of a
push broom sweeping a path on the floor [37]. The detector usually comprises of CCD
sensors arranged in a line to capture a ground strip, and the motion of the platform
extends the capture to the next ground strip. In multispectral imaging, the scanner
accommodates a line of detector array for each spectral band. For hyperspectral imaging,
it usually consists of one or more spectrometers with a two-dimensional (2D) CCD array
13
for each of the spectrometer, acquiring multiple bands simultaneously through the
dispersive element for each ground strip. The pushbroom scanning system is usually
more compact due to the lack of moving parts and it is used for implementation on board
small satellites [38]. Explanations on multispectral imaging through filtering, and
hyperspectral imaging using dispersive elements from the sensor point of view are given
in Appendix A.
(a) (b) (c)
Figure 2-3: Imaging Techniques by (a) Framing System, and Scanning System by (b)
Whiskbroom and (c) Pushbroom Scanner [36]
2.1.4 Image Resolution
In remote sensing, there are four major types of image resolution, spatial, spectral,
radiometric and temporal resolution.
Spatial resolution is the minimum distance between two adjacent features that can be
detected by a remote sensing system. In spatial analysis, the Ground Sampling Distance
(GSD) is defined as the size of a square on the ground that is sensed with one detector
unit (i.e. one pixel of the resulting image) [26]. Spatial resolution is based on various
factors such as the altitude at which the sensor is flown, the number of detectors in the
sensor and the sensor Field Of View (FOV) [32].
The spectral resolution of a sensor is usually specified as either the Full Width Half
Maximum (FWHM) bandwidth or spectral sampling. The FWHM bandwidth refers to the
CCD response derived from exposure to a calibrated monochromatic source, which is the
width of the curve at 50% of the peak height [39, 40]. The idealised pixel response
(Gaussian shape) of photons or light energy on a CCD sensor that yields an electron
14
charge which is converted into digital numbers is shown in Figure 2-4. Spectral sampling
refers to the band spacing i.e. the quantisation of the spectrum at discrete steps [39].
Another definition of spectral sampling is the interval at which the digital numbers are
sampled along the curve [2] as shown in Figure 2-4. The author in [39] states that a
quality sensor should be designed so that the spectral sampling is kept equal to the
FWHM bandwidth. The spectral response of a feature on Earth must be larger than the
FWHM interval in order to be detected. Typical spectral resolution for hyperspectral
sensors is between 5-15 nm [41].
Figure 2-4: Spectral Resolution – Spectral Sampling Interval and FWHM [2]
Radiometric resolution refers to the number of digital levels used to express the data
collected by the sensor [1]. The term is also known as radiometric sensitivity or simply as
data quantisation. It is usually expressed as the number of binary bits needed to store at
the maximum voltage level. Specific to spaceborne acquired images, temporal resolution
refers to the frequency by which images of a given geographic location are acquired [42].
In other words, it is the revisit time of a satellite, of the same geographic location [43].
2.1.5 Format of Multi-Component Data
The image data (also referred as pixel or sample) inside a hyperspectral image is
organised in three schemes, generally referred to as the interleaving of a certain dataset:
band interleaved by line (BIL), band interleaved by pixel (BIP) and band sequential
(BSQ). All these schemes are visualised in Figure 2-5 for a 3×3×4 size multi-component
image (centre image in the figure), similarly as presented in [44]. Each band image data is
arranged sequentially and separately in BSQ. It also sometimes can be referred to as
storing each band data as a separate file [45]. In BIL, lines (i.e. rows) from each band are
15
stored adjacent to each other. BIP in contrast to the BIL arranges a column of image data
from each band so that each column from each band will be next to each other.
(a)
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
(b)
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
(c)
Example of Multi-Component
Image, 3×3×4
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
0 1 2
3 4 5
6 7 8
Figure 2-5: Multi-Component Image Data Organisation (a) BSQ, (b) BIL, and (c) BIP
2.2 Review of Hyperspectral Spaceborne Missions
This section reviews all past, present and planned future hyperspectral missions that were
known at the time of writing this thesis. Hyperspectral missions were reviewed in several
previous studies covering airborne platforms [33, 46-48], the history of remote sensing,
and instruments and data analysis [30, 34]. To the best of the authors’ knowledge, none
of the existing literature sources discuss the image compression techniques of such
missions.
The main characteristics of the missions, ordered chronologically by launch date, are
summarised in Table 2-1, which includes details about compression algorithms and
16
payload data processing that were lacking in the previous reviews. The first column of
Table 2-1 specifies the satellite mission along with the hyperspectral instrument (in
square brackets), its sensor type (e.g. filter, grating, prism, etc., in parentheses) and the
respective literature sources. The next column covers the launch date and current status of
the mission. Brief mission objectives and the scanning type (i.e. pushbroom (PB) or
whiskbroom (WB)) are the contents of the third and fourth columns, respectively. The
total mass, payload mass and the category of the satellite according to Table 2-2 [49] are
covered in the fifth column. Information related to payload data processing, such as the
compression algorithm, processor and on-board memory are given in the seventh to ninth
columns. The payload imager specifications in terms of radiometric resolution, spectral
range, spectral resolution, number of bands and ground sampling distance (GSD) are
covered in the 10th
to 14th
columns. The downlink speed for transmission of the payload
data to the ground station is in the last column of the table. Unavailable information is
denoted by NA in the table. Items requiring clarification are labelled with superscript
upper case letters and are explained briefly at the bottom of the table. Detailed description
of the hyperspectral image compression and processing available on-board is provided in
the remaining sections.
17
Table 2-1: Hyperspectral Image Compression Systems On Board Space Missions
Satellite/Mission
[Sensor Name]
(Sensor Type)
Launch Date
(Status)
Mission
Objectives
Scanning
Type
Mass (kg)
Category Compression
Algorithms
Payload Data
Processing
On-Board
Memory
(Gb)
Radiometric
Resolution
(bits)
Spectral Range
(nm)
Spectral
Resolution
(nm)
No. of Bands GSD (m) Downlink Speed
(Mbps) Satellite Payload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
MSX [UVISI]
(filter wheel)
([50-53])
24, April 1996
(Retired in July
2008)
Military purposes WB 2812 217 Large NA ADSP 2100&
MIL-STD-1750A
108 12 110-900 0.5-4.3 272 100 – 800
(nadir at
900km alt.)
25
Lewis [HSI]
(filter) ([54-56])
23, August 1997
(Failure after
launched)
Earth observation
& remote
sensing
PB 385.6 NA Mini NA NA 40 12-VNIR &
SWIR
400-2500 5 384 30 0.4-274
Terra, Aqua
[MODIS]
(filter) ([57-60])
18, December
1999 (Terra) 4,
May 2002
(Aqua) (Both
running)
Land & ocean,
snow & ice,
temperature,
clouds & land
cover
monitoring
WB 5190
(Terra),
2934
(Aqua)
229 Large NA 12-MHz MIL-
STD 1750A
NA 12 410-14500 NA 36 250, 500,
1000
150 (Ku-band)
ARIES-1 [ARIES-
1] (NA)([48,
61])A
Planned-2000
(Cancelled-
March 2003)
Vegetation
research
NA <500 NA Mini NA NA NA NA 400-1000
2000-2500
1000-2000
19 (FWHM)
15 (FWHM)
15 & 30
(FWHM)
32
32
32
30 NA
NEMO [COIS]
(grating)([62-
64])
Planned-mid-
2000 (never
flown)
DoD applications,
land & water
monitoring
PB 295 141B Mini ORASIS Parallel array of
DSPs
(2.5GFLOPS)
48 NA 400-2500 10 210 30, 60 150 - normal mode
(X-band)
1 - tactical mode
(S-band)
MightySat II.1
[FTHSI]
(Fourier
Transform)
([65-67])
19, July 2000
(turned off in
August 2002)
Air Force
missions
PB 121 20 Mini NA DSP-Quad C40
(TMS320C40 ×
4)
3 8/12 470-1050 85cm-1 256 28 1
EO-1 [Hyperion]
(grating)([6-11])
21, November
2000
(Running)
Land imaging
instrumentation
PB 572 49 Medium Rice coding RISC processor-
Mongoose 5
(12MHz)
48 12 400-2500 ≈10 (FWHM) 220 30 105 (X-band)
Orbview-4
[OHIS](NA)
([6])
21, September
2001 (Launch
failure)
Earth observation
for military &
civilian
WB 368 NA Mini No
compression
NA 32 12 400-2500 NA 200 8 150 (X-band)
PROBA-1
[CHRIS]
(prism)([38,
68])
22, October 2001
(Running)
Multi-angle earth
observation &
aerosol
properties of
atmosphere
PB 94 14 Micro NA ADSP21020 1.2 12 400-1050 1.25-11.3 18, 62, 37 18/34 0.2 – 1 (S-band)
EnviSat [MERIS]
(grating)([6, 69-
72])
1, March 2002
(Ended on 8,
April 2012)
Land &
atmosphere
monitoring
PB 8140 200 Large NA NA 150 12 390-1040 1.25 (spectral
sampling)
15 300, 1200 50/100 (X-band)
18
Table 2-1: Hyperspectral Image Compression Systems On Board Space Missions (cont.)
Satellite/Mission
[Sensor Name]
(Sensor Type)
Launch Date
(Status)
Mission
Objectives
Scanning
Type
Mass (kg)
Category Compression
Algorithms
Payload Data
Processing
On-Board
Memory
(Gb)
Radiometric
Resolution
(bits)
Spectral Range
(nm)
Spectral
Resolution
(nm)
No. of Bands GSD (m) Downlink Speed
(Mbps) Satellite Payload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Mars-Express
[OMEGA]
(grating)([73-
76])
2, Jun 2003
(Running)
Mars surface
exploration
Visible-
PB
IR-WB
1120 113B Large Wavelet
based
compression
TSC21020
Temic Processor
12 NA VNIR: 350-
1050
SWIR-C: 930-
2690
SWIR-L: 2520-
5090
7.5
14
23
352 300 0.23
Aura [OMI&
TES](grating&
Fourier
Transform) ([6,
77-79])
15, July 2004
(Running)
Climate & ozone
monitoring
PB 2967 65
(OMI)
385
(TES)
Large NA 20 MIPS RISC
Processor (TES)
100 (OMI) NA 270-500 (OMI)
3200-15400
(TES)
0.42-0.63
(FWHM)
(OMI)
0.025cm-1
(TES)
740 (OMI) 1300 × 2400
(nadir)(OMI)
530×5300
(nadir)(TES)
155 (X-band)
Mars
Reconnaissance
Orbiter
[CRISM]
(grating)([80,
81])
12, August 2005
(Running)
Mars exploration PB 2180 32.92 Large NA NA 160 NA VNIR: 362-
1053
IR: 1002-3920
6.55 (spectral
sampling)
545 20 6
IMS-1/TWSat
[HySI-T]
(wedge filter)
([6, 12])
28, April 2008
(Running)
Medium
resolution
imagery
PB 83 3.4 Micro JPEG2000 NA 16 10 400-950 8 (spectral
sampling)
64 550 8 (S-band)
TacSat-3
[ARTEMIS]
(grating)([6, 82-
84])
May 19, 2009
(Ended on Apr.
30, 2012)
Military purposes PB 400 170 Mini NA Xilinx FPGA 128 10 400-2500 5 (spectral
sampling)
NA NA 45/137/274
HERO [HERO]
(grating) ([85,
86])C
NA (In plan) Vegetation,
environment &
health
monitoring
PB 500 NA Medium Near-lossless
VQ
Xilinx FPGA
(Real-Time)
Virtex II (Non
Real-Time)
1000 12 400-2500 ~10 (FWHM) 210 30 150 (X-band – 2
channels)
PRISMA
[PRISMA]
(prism)([6, 87-
89])D
2012 (In plan) Natural resources
& atmosphere
monitoring
PB <500 <90 Mini NA NA 256 12 VNIR:
400-1010
SWIR:
920-2505
≤12 ~240 30 155 (X-band)
TAIKI [HSC-III]
(grating)([6, 90,
91])E
2012 (In plan) Agricultural
monitoring
PB 50 10 Micro NA 32-bit RISC 240 10 400-1000 10 138 15 10 (Ku-band)
EnMAP [HSI]
(prism) ([13,
14])
2014 (In plan) Agriculture,
forestry
monitoring
PB 870 325 Medium NA NA 512 14 420-2450 5 (VNIR)
10 (SWIR)
(spectral
sampling)
228 30 320
HyspIRI [HyTES]
(grating)([6, 92-
96])F
2015 (In plan) Land surface
composition
PB 100 NA Mini NA NA NA NA 7500-12000 17.6 (spectral
sampling)
256 36.4 (20000
m alt.)
NA
19
Table 2-1: Hyperspectral Image Compression Systems On Board Space Missions (cont.)
Satellite/Mission
[Sensor Name]
(Sensor Type)
Launch Date
(Status)
Mission
Objectives
Scanning
Type
Mass (kg) Category
Compression
Algorithms
Payload Data
Processing
On-Board
Memory
(Gb)
Radiometric
Resolution
(bits)
Spectral Range
(nm)
Spectral
Resolution
(nm)
No. of Bands GSD (m) Downlink Speed
(Mbps) Satellite Payload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
HYPXIM [NA]
(prism) ([97])
-Challenging (2
satellite
constellation)
before 2018 (In
plan)
Vegetation,
geoscience,
atmosphere,
security &
defence
PB <195 60 Mini Adaptive
compression
NA NA NA 400-2500 10 210 15 150 (X-band)
-Performance before 2020 (In
plan)
PB <605 ~100 Medium Adaptive
compression
NA NA NA VNIR-SWIR:
400-2500
Thermal IR: 90-
150
VNIR-SWIR:
10
Thermal IR:
90-150
VNIR-SWIR:
210
Thermal IR:
40
VNIR-SWIR:
8
Thermal IR:
100
270 (X-band)
Notes:
NA, Information not available; PB, Pushbroom; WB, Whiskbroom A Australian Resource Information and Environment Satellite-1 (ARIES-1). B The payload mass includes all the payloads of the mission. C Proposed satellite and sensor specification are discussed in [85]. Mission was initially targeted to be launched in 2009 but no further information as of the time of writing could be found. D Most of the latest information is from [88]. E Techniques to overcome large data are proposed but compression algorithms are not mentioned. F Mission requirements are discussed in [93]. Imager specifications for testing are given in [94-96]. Prediction, KLT, wavelet & SPIHT algorithm are proposed in [92].
20
Table 2-2: Satellite Category by Mass [49]
Group Name Wet Mass (kg) Large/Small Satellite
Large satellite > 1000 Large satellite
Medium sized satellite 500 – 1000
Mini satellite 100 – 500
Small satellite
Micro satellite 10 – 100
Nano satellite 1 – 10
Pico satellite 0.1 – 1
Femto satellite < 0.1
2.2.1 Hyperspectral Missions in the 1990’s
The Midcourse Space Experiment (MSX) mission, which was a military mission, flew
the first hyperspectral imagers in space in 1996. It carried nine hyperspectral sensors,
called Ultraviolet and Visible Imagers and Spectrographic Imagers (UVISI). The data
control system (DCS) could compress the 12 bpp to 8 bpp images using an image
processor (ADSP 2100 from Analog Devices Inc., Norwood, MA, USA) and a military
standard processor (MIL-STD-1750A). Two tape recorders each of size 54 gigabit (Gb)
were employed to store the images. The data were dumped to ground at a rate of 25 Mbps
[53].
Although failing shortly after being launched, Lewis is acknowledged and referred to as
the first civilian hyperspectral mission in [54, 55]. The mission was launched on 23
August 1997, lost contact on 26 August and was destroyed after the spacecraft re-entered
the atmosphere on 28 September of the same year [98]. Data collection from the HSI
imager and storage into a Solid State Recorder (SSR) were intended to take no more than
15 minutes of the 90 minute orbital period. Images in the SSR could then be compressed
using the on-board computer [54].
The Terra mission was launched in 1999 and carried the Moderate Resolution Imaging
Spectroradiometer (MODIS). MODIS was initially referred to as a non-hyperspectral
sensor in [47], but it has been proven to be exceptionally useful for many applications
and has since been categorised as a civilian hyperspectral sensor. A 12 MHz Military
Standard (MIL-STD) 1750A processor was used to pack the hyperspectral data from all
36 bands using a CCSDS data packet format [57].
21
2.2.2 Hyperspectral Missions during 2000 – 2005
The Aqua mission, launched in 2002, also carried a MODIS sensor. Both the Terra and
Aqua missions are still nominally operational [6], although a few of the payloads are not
functional.
The Naval EarthMap Observer (NEMO) mission carrying a Coastal Ocean Imaging
Spectrometer (COIS) sensor was planned for launch in 2000, but never flew. This
mission used a custom compression algorithm called the Optical Real-Time Adaptive
Signature Identification System (ORASIS) on a parallel array of 2.5 GFLOPS (Giga
floating-point operations per second) DSPs. ORASIS offered automated and adaptive
signature recognition capabilities for image analysis of military and commercial imagery
[62]. The signature recognition algorithm analyses each spectral band sequentially,
discarding duplicate bands and processing only unique spectral bands to map the required
location in the scene [63]. Convex set methods and orthogonal projection techniques are
used for the image analysis, followed by the creation of matched filters to decode the
image [99, 100].
The MightySat II.1 satellite (2000–2002) carrying a Fourier Transform Hyperspectral
Imager (FTHSI), is the first mission of its kind, encoding wavelengths through an
interferometer [65]. The FTHSI shows the advantages of the Fourier systems over
dispersive hyperspectral imagers by recording the full spectra without any time delay and
decoupling the spatial and spectral signatures [6]. A Quad C40 (QC40) processor
comprising of four TMS320C40 DSP chips was used for the payload processing [65].
Although no specific compression method has been reported, several algorithms for on-
board processing have been implemented such as apodisation (improvement in the
dynamic range of the image), spectral filtering and fast Fourier transform (FFT).
However, there were a few problems that rendered the on-board processing unrealistic
and therefore the raw data were downloaded and processed on the ground [65].
The Earth Observing 1 (EO-1) mission, launched in 2000 with Hyperion as its imaging
spectrometer, is still operational [6]. After capturing ground images, the data are sent to
the payload processing unit called the Wideband Advanced Recorder and Processor
(WARP) and are stored inside a memory board with a capacity of 24×2 Gb [10]. A
processor board inside the WARP comprising a 32 bit, 12 MHz Reduced-Instruction-Set
Computing (RISC) microprocessor, Mongoose 5, reads the images from the memory
22
board and compresses them using the Rice algorithm [101]. The algorithm also reformats
the data into a BSQ format before sending it back to the memory boards [10]. The image
CR achievable is 1.8 depending on the image entropy.
The Orbview-4 mission, launched in 2001 which carried the OrbView Hyperspectral
Imaging System (OHIS), did not use any compression method for its hyperspectral data
[6]. The mission was aborted due to a launch failure [102].
The Project for On-Board Autonomy 1 (PROBA-1) mission, launched in 2001, is a
European Space Agency (ESA) hyperspectral mission based on a micro-satellite platform
that is still operational [6]. PROBA-1 carries the Compact High Resolution Imaging
Spectrometer (CHRIS) imager from Surrey Satellite Technology Ltd. (SSTL), Guildford,
UK. It was reported that a compression algorithm for it was under active development
[103]. The imager’s data processing unit (DPU), called a payload processing unit,
consists of a mass memory unit (MMU) for data storage (1 Gb), comprising of a DSP
(ADSP21020) for image processing during and post-acquisition [68]. The complete
memory content can be dumped in at least two passes of about 10 minutes in 12 hours,
via a downlink at a tuneable data rate from 2 kbps to 1 Mbps [68].
The ESA Environmental Satellite (EnviSat) mission (2002–2012) carried the Medium
Resolution Imaging Spectrometer (MERIS) [6]. In [47], the authors have referred to
MERIS as a hyperspectral sensor by design, but the datasets received are not
hyperspectral. No information about the on-board data compression algorithm is
available. Images captured by MERIS are processed by a video electronic unit and a
digital processing unit. Raw data are transmitted to the ground and corrected thereafter
[70].
Mars-Express, which was launched in 2003, is an interplanetary exploration mission that
is aimed at visible and near-IR observation of the surface and atmosphere on Mars.
According to [76], the hyperspectral imagery captured by the on-board imager,
Observatoire pour la Minéralogie, l’Eau, les Glaces, et l’Activité (OMEGA) is
compressed using a wavelet-based algorithm through its command and data processing
unit (CDPU), followed by the formatting of the processed data. The CDPU is based on a
TSC21020 Temic processor with 6 MB static random-access memory (SRAM)
compressing and formatting the data into a 3D-packaged highly miniaturised cube.
23
Aura is a mission launched in 2004 to monitor atmospheric and climatic changes using
two hyperspectral imagers i.e. the Ozone Monitoring Instrument (OMI) and the
Tropospheric Emission Spectrometer (TES), and is based on an IR-imaging Fourier
Transform type of hyperspectral imager [77]. The command and data handling subsystem
(C&DH) includes a 20 million instructions per second (MIPS) RISC processor with 128
MB of RAM, 3 MB of electrically erasable programmable read-only memory (EEPROM)
and a Versa Module Europa (VME) interface at the instrument communication and
control bus. The C&DH has a high-rated data buffer and formats all science data into
8192 bytes CCSDS telemetry packets [79].
Mars Reconnaissance is another Mars exploration mission, launched in 2005 to study the
mineralogy and atmosphere of the red planet through its hyperspectral imager, the
Compact Reconnaissance Imaging Spectrometer for Mars (CRISM). The differential
pulse-code modulation (DPCM) method is used for lossless image compression [104].
Processing options, such as offset subtraction, gain multiplication, and detector row
selection can also be performed prior to compression. All image processing functions are
supported by the processor system in the DPU. The processor system uses an Actel field-
programmable gate array (FPGA) that also generates telemetry headers for image data
before sending it to the spacecraft SSR for transmission to Earth.
2.2.3 Hyperspectral Missions since 2006
The Indian Microsatellite-1 (IMS-1), previously known as the Third World Satellite
(TWSat), was launched in 2008. The IMS-1 carries the hyperspectral imager HySI-T and
is another example of a micro-satellite platform based mission. On-board image
compressions are performed using the image compression standard by Joint Photographic
Experts Group (JPEG) referred to as JPEG2000 algorithm with a CR of 3.4:1 [6].
The Tactical Satellite-3 (TacSat-3) mission was launched in 2009 and was recently ended
after the satellite was de-orbited and subsequently burned up in the Earth’s atmosphere
[84]. This mission represents the current state-of-the-art in hyperspectral missions flown
to date. The hyperspectral imager (HSI) payload houses the Advanced Responsive
Tactically Effective Imaging Spectrometer (ARTEMIS), as well as a Responsive
Avionics Reconfigurable Computer (RA-RCC) board and a G4-Single Board Computer
(SBC) [105]. The RA-RCC’s primary functions are payload control and processing of the
sensor data. The RA-RCC consists of four FPGAs including one Actel RTAX2000 and
24
three Xilinx V4LX160 co-processors (COPs). The COP FPGAs enable the deployment of
various high-performance signal-processing algorithms providing libraries of predefined
functions that allow developers to build custom functionality as required. The
compression algorithms used on board the satellite are not disclosed in the open
literature; however, such algorithms could easily be implemented, as discussed in [83].
There are a number of hyperspectral missions that are at the planning stage, but very few
details are available about the compression methods to be incorporated into their imaging
payload systems. It is suggested that the Hyperspectral Environment and Resource
Observer (HERO) mission will use a vector quantisation (VQ) compression method
implemented on an FPGA to support real-time and non-real-time operations [86] and the
HYPXIM mission will utilise an adaptive compression method [97], but no specific
methods are disclosed. No information regarding image compressions on board the future
missions PRISMA (PRecursore IperSpettrale della Missione Operativa), TAIKI (meaning
'big tree' in Japanese), EnMAP (Environmental Mapping and Analysis Program) and
HyspIRI (Hyperspectral Infrared Imager) was found in the available literature at the time
of writing of this thesis.
Table 2-3 lists the hyperspectral missions that have data compression capabilities on
board, according to the literature. The need for on-board compression of hyperspectral
imagery will grow in the future due to the even greater amount of valuable data that will
be generated by the next generation of instruments.
Table 2-3: On Board Hyperspectral Image Compression
Mission Launched Status Compression Scheme
EO-1 2000 Running Rice coding
Mars-Express 2003 Running Wavelet-based compression
IMS-1 2008 Running JPEG2000
NEMO Cancelled Custom compression
HYPXIM Planned Adaptive compression
HERO Planned VQ
2.2.4 Discussion
The progress of the current state-of-the-art in the technologies associated with image
compression and processing have enabled the use of several hundred bands acquired
through digital sensors. Therefore, the present definition of a hyperspectral image, so as
25
to differentiate it from a multispectral image, has also evolved over time. The previous
missions which were once considered as hyperspectral imagers, strictly speaking now,
fall short of the current description as defined in Section 2.1.2. For instance missions like
MSX, Terra, Aqua, Proba-1, EnviSat and IMS-1 support less than 100 of bands whilst
having good spectral resolution of 5-15 nm. The shortcoming is the number of bands
supported.
The imaging technique of hyperspectral remote sensing evolved over time. In the early
era, filter type imagers were used (e.g. MSX [6, 53], Terra and Aqua [6, 57, 59]
satellites), followed by dispersing-element-based imaging spectrometers (e.g. PROBA-1
[38, 68], EnviSat [6, 69-71] and TacSat-3 [6, 82, 83] satellites) and also Fourier
Transform imaging spectrometers (e.g. MightySat II.1 [6, 65, 67] satellite). The filter
type imager and dispersing-element-based spectrometer are briefly explained in
Appendix A.
Figure 2-6 reveals the types of hyperspectral compression algorithms implemented on
board. Most of the missions (65% or 15 out of 23) do not disclose the type of algorithm
used or planned. However, some of the missions provide on-board data processing
information as discussed before. Two flown missions used the JPEG2000 or wavelet-
based compression (Mars-Express and IMS-I) and two future missions will be using
adaptive compression (HYPXIM-Challenging and -Performance) but no further details
are available from the literature. There is only one mission that used (or will be using)
VQ (HERO), Rice coding (EO-I) and the custom compression method (NEMO-
ORASIS). There was only one mission that did not opt for on-board data compression
and that was the OrbView-4 mission (unfortunately lost in a launch failure).
Figure 2-6: Types of Hyperspectral Compression On-Board of the Satellites
NA
65% (15)
Custom
compression
5% (1)
VQ
4% (1) Rice coding
4% (1)
No data
compression
4% (1)
Adaptive
9% (2)
JPEG2000/Wavelet
-based 9% (2)
26
Figure 2-7, shows the type of payload data processor on board the hyperspectral missions
tabulated in Table 2-1. DSP has been used in five missions (MSX, NEMO, MightySat
II.1, PROBA-1 and Mars-Express) and similarly, five missions used RISC as their
payload processor namely Terra, Aqua, EO-1, Aura and TAIKI. Two missions which are
TacSat-3 (retired) and HERO (future mission) used (or will use) FPGA as the payload
processor. The remaining list of the missions which comprise of eleven missions did not
reveal the details.
Figure 2-7: Types of Payload Data Processor
In Figure 2-8, the hyperspectral space missions are classified according to the on-board
mass memory. Eight out of 23 missions (35%) have mass memory between 10 and 100
Gb, and five missions have a memory capacity of 100 to 500 Gb. Six missions (26%),
namely Aqua, Terra, ARIES-1, HyspIRI, and two HYPXIM platforms did not disclose
their memory capacity. Another two missions, PROBA-1 and MightySat II.1 use less
than 10 Gb of memory, and only one mission (i.e. HERO) (in planning phase) will use
more than 1 Terabit (Tb) mass memory on board.
Figure 2-8: Mass Memory On-Board Capacity
DSP
22% (5)
RISC
22% (5) FPGA
7% (2)
NA
48% (11)
Below 10 Gbit
9% (2)
(10 to 100) Gbit
35% (8)
(100 to 500) Gbit
22% (5) 500 Gbit to 1
Tbit
4% (1)
More than 1 Tbit
4% (1)
NA
26% (6)
27
2.3 Introduction to Hyperspectral Image Compression
2.3.1 Definitions
Image compression is a process of removing part or nearly all intrinsic redundancies. The
redundancies in an image can be classified into three categories: statistical (related to
coding), spatial (inter-pixel) and human vision (psychovisual) redundancies. The
redundancies are applicable to a general 2-D image, whereas for a 3-D hyperspectral
image there is an additional redundancy called spectral redundancy.
Statistical redundancy explores the probability of symbols by assigning short codewords
to high probability symbols, and long codewords to low probability symbols. Huffman
[106] and arithmetic coding are the popular techniques to reduce (decorrelate) the
statistical redundancy and is usually called entropy encoding.
Spatial redundancy exists in an image if the information in one pixel can be partially
inferred from neighbouring pixels. Prediction and transformation are the two types of
techniques used to reduce spatial redundancy. Differential Pulse Code Modulation
(DPCM) is an example of prediction, whereas Discrete Wavelet Transform (DWT) and
Discrete Cosine Transform (DCT) are popular transform methods that are used in
compression algorithms.
Human vision redundancy is based on the fact that human eyes are not sensitive to high
frequency contents. Quantisation is the popular method to reduce this type of redundancy.
In image compression, quantisation means, removing the higher frequency components in
an image. Since information is lost during compression, therefore, such methods are
called lossy.
Spectral redundancy refers to multi-component images where the degree of correlation
between the bands (interband) is so high that one band contains virtually the same
information as the adjacent bands [107].
2.3.2 Compression Algorithm Types
Image compression is categorised into two types: lossless and lossy [108]. Lossless
compressions involve no loss of information during the compression process and the
original image can be recovered exactly from the compressed data. Lossy compressions,
on the other hand, involve some loss of information and the original image cannot be
28
recovered or reconstructed exactly. The application requirements of medical and remote
sensing cannot tolerate loss of information and therefore, lossless compression is always
preferred. For applications such as video telephony and multimedia, some loss of
information is usually tolerable, thus lossy compression is the choice solution.
2.3.3 Compression System Block Diagram
A typical model for a 2D image compression system is shown in Figure 2-9. The spatial
decorrelation block performs the reduction of spatial redundancy through prediction or
transform-type methods. A lossy compression method utilises quantisation. The statistical
decorrelation block is for reducing the statistical redundancies, converting a two
dimensional matrix form of image into a single bit-stream output used by the
transmission process.
Original 2D
Image
Spatial Decorrelation
(Prediction/Transformation)
Statistical Decorrelation
(Entropy Encoding)
Compressed
2D ImageQuantisation
Figure 2-9: A Typical Model for 2D Image Compression System
Hyperspectral image is basically a group of 2D images captured at similar spatial
locations but at different wavelengths. Figure 2-10 shows an AVIRIS dataset from
Cuprite Scene 1 image from the 35th
to 40th
band to visualise the virtually similar
information (spectral redundancy) that exists between bands by using ENVI v4.7
software [109]. As a result of the spectral redundancy, a general model for hyperspectral
image (or generally multi-component image) compression has been adopted in literature,
its system block diagram is illustrated in Figure 2-11. The block diagram in Figure 2-9 is
expanded in Figure 2-11, by adding the spectral decorrelation block to reduce the spectral
redundancy between bands. In most of the cases, entropy encoding (as in Figure 2-9) is
embedded in the spatial decorrelation block.
(a) 35
th Band (b) 36
th Band (c) 37
th Band
29
(d) 38
th Band (e) 39
th Band (f) 40
th Band
Figure 2-10: AVIRIS Cuprite Scene 1 from the 35th
to 40th
Bands
Original
Hyperspectral Image
Spectral
Decorrelation
Spatial
Compression
Compressed
Hyperspectral Image
Figure 2-11: A Typical Model for Hyperspectral Image Compression
The performance of the compression algorithm is usually evaluated by calculating its CR
(for lossless and lossy) and its Peak Signal to Noise Ratio (PSNR) and Signal to Noise
Ratio (SNR) values for lossy. Details on how to calculate the CR, PSNR and SNR are
described in Appendix B.
2.4 Hyperspectral/Multi-component Image Compression
The future applications of hyperspectral image acquisition by spaceborne platforms were
perceived in 1990s, which instigated research in the area. Today, we can see many
applications harnessing the advantages of the advances in the field of image processing in
general, and hyperspectral images in particular. The future requirements of remote
sensing is to enable on-board processors to handle large images, compress them in real-
time, and to save on-board memory requirements and downlink channel capacities.
Compression of hyperspectral imagery adds a third dimension to compress 2D digital
images (Figure 2-1). The availability of a large number of spectral bands introduces
spectral (inter-band) redundancy in addition to the spatial (intra-band) redundancy
present in 2D digital images. Spectral redundancy is due to the correlation (or
dependence) between the different spectral bands, whereas spatial redundancy is due to
the correlation between neighbouring pixels in a spectral band [110]. When compressing
a hyperspectral image, both types of redundancies need to be reduced in order to achieve
a good compression performance via a lossless or lossy process.
In most of the cases, spectral decorrelation is performed first, followed by spatial
decorrelation in 2D image compressions as depicted in Figure 2-11 and is extended to
30
include both lossless and lossy compressions in Figure 2-12. As introduced previously,
the spectral decorrelation block is aimed at reducing the spectral redundancy, whereas the
spatial decorrelation/compression block is for the spatial redundancy. Both spectral and
spatial decorrelation can be performed by either a lossless or a lossy transform, as shown
in the figure. To achieve an overall lossless compression process, both the spectral and
the spatial decorrelation stages should utilise lossless transformations. On the other hand,
an overall lossy compression process can utilise not only lossy spectral and lossy spatial
decorrelation modules (e.g. [111]), but can also have one of the stages executed as
lossless (e.g. using a lossless spectral decorrelation module and a lossy spatial
decorrelation module [112, 113]). The two-stage multi-component image compression
has been used widely not only in remote sensing (e.g. [114-117]), but also in medical
applications (e.g. [118-120]) for 3D medical data.
Spatial DecorrelationSpectral Decorrelation
Lossless spectral
decorrelation
(e.g. Integer KLT)
Lossless image
compression
(e.g. lossless JPEG2000)
Lossy spectral
decorrelation
(e.g. KLT)
Lossy image
compression
(e.g. lossy JPEG2000)
Hyperspectral image
Lossless Compression
Lossy Compression
Compressed
hyperspectral image
Figure 2-12: Data Flow for Typical Model of Hyperspectral Image Compression
Another approach for the compression of 3D volumetric data is shown in Figure 2-13 to
reduce both the spectral and spatial redundancies in one stage. The entropy encoder
shown in Figure 2-9 earlier for 2D image compression is used in this model to reduce
statistical redundancy. Rice coding [101] and Golomb coding [121] are the examples of
entropy encoders that have been used widely in data compression. CCSDS Lossless Data
Compression (CCSDS-LDC) [122] is another example of an entropy encoder that extends
the Rice algorithm and has been accepted as a recommended algorithm for space
applications. Examples of compression algorithm that use the model visualised in Figure
2-13 are prediction-based compression methods (e.g. CCSDS Lossless Multispectral &
Hyperspectral Image Compression [123], 3D Context-based Adaptive Lossless Image
Codec, 3D-CALIC [124, 125]) and VQ [126].
31
Multispectral/
Hyperspectral Image
3D Spectral-Spatial
DecorrelationEntropy Encoder
Compressed
Multispectral/
Hyperspectral Image
Figure 2-13: 3D Hyperspectral Image Compression Model
Most of the research and studies on hyperspectral image compression are based on the
popular airborne imager AVIRIS, the first operational hyperspectral instrument [127].
There are also studies that use multispectral images from spaceborne sensors such as the
Landsat-Thematic Mapper (Landsat-TM) sensor that was flown on the LandSat-4 and 5
missions. AVIRIS and Landsat-TM imaging payloads have the specifications as shown in
Table 2-4 [6]. The information in this table is almost similar to Table 2-1 (i.e. about the
payload specifications such as scanning type, spectral range and resolution, number of
bands, GSD, radiometric resolution and on-board memory for payload data processing).
Similarly, unavailable information is denoted by NA (information not available).
Table 2-4: AVIRIS and LandSat-1 Imager Specification
AVIRIS Landsat-TM
Mission type Airborne Spaceborne
Sensor type Hyperspectral (grating) Multispectral (filter)
First flown/launched –
retired 1986
July 16, 1982 – June 1, 2001
(LandSat-4)
March 1, 1984 – January 15, 2013
(LandSat-5)
Scanning type Whiskbroom Whiskbroom
Spectral range (nm) 360 – 2500
Band 1: 450 – 520 (blue)
Band 2: 520 – 600 (green)
Band 3: 630 – 690 (red)
Band 4: 760 – 900 (NIR)
Band 5: 1550 – 1750 (SWIR)
Band 6: 2080 – 2350 (SWIR)
Band 7: 10400 – 12500 (TIR)
Spectral resolution (nm) 9.5 – 10 (FWHM) Variable (refer spectral range)
No. of bands 224 7
GSD (m) 20 (at altitude of 20 km) 30 – all bands except for TIR
(120)
Radiometric resolution (bit) 16 (from 2005), 12 (previously) 8
Memory 73 GB (from 2005) NA
The work in this study focuses solely on lossless compression. Therefore, the review in
this section will give special attention to lossless compression, as well as lossy-to-lossless
compression that gives similar attention to both of the compression types. The review
will start with a description of the three types of hyperspectral image compression
32
algorithms i.e. predictive coding, vector quantisation (VQ) and transform coding, and
previous works carried out on these. However, during the period of the research, a
potential method based on transform coding named Karhunen-Loève Transform (KLT)
was identified and a separate sub-section (Section 2.4.4) was added to review in detail
about the algorithm. Towards the completion of the PhD work, the CCSDS released the
CCSDS-MHC algorithm in May 2012 which is based on predictive coding. Another
separate sub-section (Section 2.4.5) was included to review the algorithm.
2.4.1 Predictive Coding
Early hyperspectral image compression studies were based on Differential Pulse Code
Modulation (DPCM), which falls under the category of predictive coding [128] , also
known as differential coding [108]. The principle of DPCM is illustrated in Figure
2-14(a) and (b) for encoder and decoder, respectively. In Figure 2-14(a), a prediction of
the present sample (S1) is made based upon previously coded information (S0′ ) that has
already been transmitted. The difference between the predicted and the actual value of the
sample, E1′ (also known as residuals) is then entropy-encoded and transmitted. In the
decoder, the E1′ will be summed with the S0
′ again to obtain the quantised version of S1
that is S1′ as shown in Figure 2-14(b).
Input Quantiser
Predictor
Entropy Encoder ChannelS1 +
-
E1 E’1
S’1
S’0
+
+
(a)
Channel Entropy Decoder
Predictor
Output+
+
E’1 S’1
S’0
(b)
Figure 2-14: DPCM (a) Encoder and (b) Decoder [108]
In multispectral/hyperspectral image compression, the prediction is typically a pixel value
that is spatially, temporally or spectrally adjacent to the current pixel. This is from the
basis that in naturally occurring signals such as audio and images, usually there is a high
33
degree of correlation between sampled values. By considering only pixel values in the
current band to predict the current pixel value, DPCM is used as a spatial decorrelation
method. On the other hand, DPCM is used as a spectral decorrelation method when using
only pixel values in the previous band. In most of the cases, DPCM uses the pixel values
from the current and the previous band. In [128], an example was given as depicted in
Figure 2-15 in order to visualise the DPCM in a hyperspectral image. The current pixel,
X0′ is predicted by using the pixels X1, X2, X3 and X4 from the current band along with the
pixels X5, X6, X7, X8 and X9 from the previous band. The prediction value of X0′ pixel is
given in (2-1), where the a1, a2... a9 are usually referred to as the prediction coefficients to
be determined by the predictor which also determines whether the compression is lossy or
lossless.
The standard DPCM (Figure 2-14 and Figure 2-15) was referred to as simple and suited
to real-time implementation for compressing AVIRIS images as performed by Roger and
Cavenor [129]. Several different causal predictors were used for the spatial and spectral
decorrelation of the images along with Rice coding [101] as the entropy encoder which
produced a CR in the range of 1.6 to 2.0.
X8
X5
X9
X6X7
Decoded version of neighbouring pixels in
previous band
X3 X4X2
X1Pixel value, X’0 to be predicted
Decoded version of neighbouring pixels in
current band
(a) (b)
Figure 2-15: DPCM Coding in Hyperspectral Image
X0′ = 𝑎1X1 + 𝑎2X2 + ⋯+ 𝑎9X9 (2-1)
Lossless JPEG or simply known as JPEG-LS [130] is a famous standard that is based on
the DPCM and Golomb coding [121]. JPEG-LS was designed for 2D image compression,
however it has been used as a benchmark for comparison purposes when coding
hyperspectral images such as in [117, 131-133].
Aiazzi et al. [134] used the combination of spatial-spectral prediction using fuzzy logic to
choose the prediction coefficients. Fuzzy-clustering was employed to identify the patterns
of the pixel intensity values within a causal neighbourhood (cluster) for each pixel. In
34
each cluster, an optimum linear predictor was computed according to the patterns of pixel
intensity computed. Compression performance was reported using the bit-rate of each
spectral band on the LANDSAT-TM and AVIRIS images and compared with the JPEG-
LS and another compression that is an extension to the JPEG-LS, supporting inter-band
coding but optimised for multispectral data [135]. The algorithm proposed gave superior
performance in comparison to the other algorithms.
Wu and Memon [136] have developed another DPCM coder called Context-based
Adaptive Lossless Image Coding (CALIC). The algorithm consists of three main
components: 1) prediction, 2) context modelling and quantisation and 3) conditional
entropy encoding. The prediction reduces the spatial redundancy in the image that is
followed by the context modelling which takes advantage of the spatial correlation
between the different image levels for the selection of the prediction coefficients. Initially
proposed for 2D image coding, a 3D version of CALIC (also known as 3D-CALIC) that
includes previous bands into the prediction process was later developed [124]. The bit-
rate achieved during the compression of a LANDSAT image was 2.72 bpppb (bits per
pixel per band) using the 3D-CALIC compared to 2.91 and 3.03 using the CALIC and
JPEG-LS, respectively.
Magli et al. [125] extend the 3D-CALIC by using multiple previous bands during the
sample/pixel prediction process, known as M-CALIC. The algorithm outperformed the
3D-CALIC in encoding several AVIRIS images that had been aligned using the BSQ and
BIL interleaving format. Averagely, the M-CALIC produced 4.91 bpppb for BSQ
whereas the 3D-CALIC generated 5.13 bpppb. For BIL interleaving, the M-CALIC
produced 5.06 bpppb compared to the 3D-CALIC with 5.27 bpppb bit-rates of
compressed image.
Low-complexity algorithm utilising linear prediction for compression of hyperspectral
images was developed in [137]. An inter-band linear predictor based on Euclidean
distance called Spectral-Oriented Least Squares (SLSQ), an optimised linear predictor for
inter-band coding was suggested. Whilst for intra-band coding, the standard median
predictor was used. Both of the predictors were coupled together to get the E1′ (refer to
Figure 2-14(a)) before going through the entropy encoder. The performance of the
algorithm was compared with the linear prediction algorithm, JPEG-LS and JPEG2000
on ten AVIRIS radiance data. From the study, the SLSQ algorithm outperformed the
other compression algorithms despite its low complexity. The JPEG-LS and JPEG2000
35
gave an average CR of 2.84 whereas the SLSQ could achieve up to 3.12. The work also
suggested two improvements to the SLSQ that could increase the CR to 3.19.
Another study that used purely predictive coding for both spectral and spatial components
was carried out in [138] using Golomb coding [121] as the entropy encoder. 2D and 3D
predictions were used; the same template as in Figure 2-15(b) was used for the 2D
prediction and an Artificial Neural Network, ANN (3D Adaptive Prediction based on the
ANN, 3D-APA [139]) was used for the 3D prediction. However, the performance of the
3D prediction did not always obtain good results and thus, the hybrid 2D/3D prediction
was proposed to improve the predictor. To demonstrate the performance of the proposed
compression schemes, four images from four different sensors were used: Operational
Modular Imaging Spectrometer-I (OMIS-I), OMIS-II, Pushbroom Hyperspectral Imager
(PHI) and Hyperion (the first three sensors are from airborne platforms). The
performance in terms of bit-rate (bits per pixel, bpp) was evaluated and compared with
the JPEG-LS and the 3D-APA algorithms. The proposed scheme could achieve 1.897 to
3.192 bpp outperforming JPEG-LS (1.852 to 4.368 bpp) and the 3D-APA (2.297 to 3.327
bpp).
2.4.2 Vector Quantisation
Hyperspectral images that consist of arrays of the spectral responses of the Earth’s
surface can be considered as brightness vectors. This makes the hyperspectral image ideal
for compression by VQ. According to [128, 140], there are four stages of the VQ coding
which starts by decomposing the hyperspectral image into a set of vectors. Second, a
training set is selected from the input vectors. A codebook is then generated from the
training set usually by using an iterative clustering algorithm. Finally, a reconstructed
image of the input is generated based on the codebook and its difference to the input
image can then be transmitted directly for a lossless compression, or quantised first
through a distortion measure to reduce the entropy of the data to achieve lossy
compression. The codebook addresses generated during the reconstructed image
generation are transmitted along with the difference vector for decoding purposes. The
final step is visualised in Figure 2-16.
36
Original
Hyperspectral
Image
Code
Book
∑
Distortion Measure
Code book addresses
Addresses
Difference vectors
Reconstructed
Image
VectorReconstructed
Vector
Difference Image
+ -
Figure 2-16: Schematic Illustration of Lossless and Lossy Coding by VQ
The distortion measure in the VQ-based compression method allows for the development
of lossy-to-lossless compression. A technique for distortion measure called the
Percentage Maximum Absolute Distortion (PMAD) was proposed in [140] using (2-2).
𝐵(𝑥, 𝑦, 𝑧) and �̂�(𝑥, 𝑦, 𝑧) are the original and reconstructed pixel value, respectively,
where x, y, z are the spatial-spectral location of the spatial coordinate (x, y) and the
spectral coordinate (band) z, and p is any value between 0 and 1. By varying the value of
p, the reconstructed pixel value, �̂�(𝑥, 𝑦, 𝑧) becomes lossy compared to the original value,
𝐵(𝑥, 𝑦, 𝑧).
(1 − 𝑝) × 𝐵(𝑥, 𝑦, 𝑧) < �̂�(𝑥, 𝑦, 𝑧) < (1 + 𝑝) × 𝐵(𝑥, 𝑦, 𝑧) (2-2)
Theoretically, VQ is the optimal block coding strategy. It requires a training phase and is
highly dependent on the trained codebook [26]. In addition to that, its computational
complexity increases with the hyperspectral image size [141]. Besides block coding, VQ
was also used as a hybrid method combining VQ with spatial compression techniques
(e.g. DCT in [142]) and also with spectral decorrelation techniques (e.g. PCA in [143]).
Ryan and Arnold [126] performed lossless VQ on six AVIRIS images. Several
normalisation methods from [144-146] have been tested to cover the wide dynamic range
of the images along with a proposed method called mean-normalisation VQ (M-NVQ).
The M-NVQ could achieve from 4.83 to 5.90 bpp of entropy, out-performing the
performance of DPCM by Roger and Cavenor (4.84 to 6.20 bpp) [129] for the whole
image.
37
Pickering and Ryan [142] have used spatial and spectral DCT for coding the M-NVQ
residuals. By using an AVIRIS image with the dimension of 145×145×220 (width ×
height × number of bands), they have performed 1) a sequentially optimised spatial M-
NVQ and spatial DCT, 2) a sequentially optimised spatial M-NVQ and spectral DCT, and
simultaneously optimised both of these methods. Quantisation of the DCT coefficients
and rearrangement of the coefficients into vectors using JPEG zigzag scanning order are
the examples of optimisation performed in the first method. Division of the 220 vectors
(bands) into sub-vectors and rearrangement of the spectral DCT coefficients in
descending order are the examples of optimisation in the second method. For lossless
compression (0% PMAD), the first method produced a 2.31 CR and 2.34 for the second
one. The simultaneous optimisation of the first method however produced similar results
but gave better performance for the cases when using non-zero PMAD (lossy). The
simultaneous optimisation of the second method could improve the CR recorded from
2.34 to 2.40.
2.4.3 Transform Coding
Transform coding is a general term which refers to the multiplication of the original
sample values (in this case the hyperspectral image) with a set of basis vector [128].
Three popular examples of transform coding are DCT [147], DWT [148] and KLT [149,
150]. In this sub-section, lossless DCT and DWT will be reviewed, whereas KLT will be
reviewed in Section 2.4.4.
2.4.3.1 Discrete Cosine Transform
Discrete Cosine Transform (DCT) [147] is used as part of the JPEG standard that handles
lossy coding [151], also known as the JPEG-baseline. The DCT of a data sequence X(m),
m = 0, 1, …, M – 1 is given by (2-3) [147].
𝐺𝑥(0) =√2
𝑀∑ 𝑋(𝑚)
𝑀−1
𝑚=0
𝐺𝑥(𝑘) =2
𝑀∑ 𝑋(𝑚)
𝑀−1
𝑚=0
𝑐𝑜𝑠(2𝑚 + 1)𝑘𝜋
2𝑚
k = 1, 2, …, M – 1
(2-3)
38
where Gx(k) is the k-th DCT coefficient with the basis vector of
1 √2cos ((2𝑚 + 1)𝑘𝜋/(2𝑀)⁄ .
Gx(k) is decomposed into several matrices in [152], producing a lossless DCT algorithm.
DCT (both lossy and lossless) has been used widely for spatial compression of each
spectral band of a hyperspectral image [153-156]. Spectral DCT was proposed by
Pickering and Ryan [142] for encoding residuals in an M-NVQ-encoded hyperspectral
image. It is basically a 1-dimensional DCT that has been used to transform each vector
inside the encoded hyperspectral image (samples from a similar spatial location across
different spectral bands) to produce an element vector of transform coefficients.
Baizert et al. [112] used the lossless 2D-DCT to replace the M-NVQ block proposed by
Pickering and Ryan [142]. The resulting compression consisted of spatial 2D-DCT and
spectral 1D-DCT followed by scalar quantisation to transform the original data into a
block of DCT coefficients. The PMAD measure [140] was included to provide both lossy
and lossless compression. The DC and AC coefficients from the vectors divided into sub-
vectors were encoded using a 1-dimension (1D) difference predictor and run-length
encoding (RLE) [157] of the zigzag-scanned spectral block, respectively. The
performance of the algorithm was evaluated using the similar AVIRIS image used in
[142] which achieved a lossless CR of 2.59 and 6.18 bpp entropy. This is comparable
with the simultaneously optimised spatial M-NVQ and spectral DCT that gave a 2.40 CR
and 6.68 bpp entropy; an improvement of 0.5 bpp. Since the DCT does not require the
training of a codebook as with VQ techniques, this algorithm has been suggested as a
suitable method for applications with limited processing power.
2.4.3.2 Discrete Wavelet Transform
Mallat [148] introduced bank filters for the realisation of DWT (also known as Fast
Wavelet Transform, FWT). The input data is filtered through two related (quadrature)
low-pass (h0) and high-pass (h1) filters as shown in Figure 2-17 for the 1-dimensional
(1D) data, single level decomposition. The output from the low pass filter produces
approximation coefficients whereas the high pass filter generates detail coefficients. The
coefficients are then subsampled by a factor of two to produce the output as an encoded
signal. Reconstruction (decoding) is performed by first upsampling the encoded signal by
a factor of two followed by filtering to produce reconstructed low-pass and high-pass
39
versions of the original signal. The outputs are then summed to produce the reconstructed
signal.
h0
h1
x[n]
↓2
↓2
y0[k]
y1[k]
↑2
↑2
g0
g1
∑ x'[n]
Figure 2-17: 1D Single Level Wavelet Decomposition and Reconstruction Process
[158]
The low- and high-pass filters are the realisation of the DWT that are represented by filter
banks or wavelets (basis vector). There are many types of wavelets such as Daubechies,
Coiflet, Meyer, Morlet and many more that have their own corresponding low- and high-
pass filters. The filters are usually represented by the number of taps and filter
coefficients. In the 2D application (image compression) of the DWT, the 1D DWT that
has been discussed is applied to each row and each column of the input image (first level)
as shown in Figure 2-18. The number of levels is actually unlimited, but usually three
levels are common as visualised in Figure 2-19 and Figure 2-20 using a sample Lena
image. In the figures, the LL3 sub-band is called the DC component (also referred to as a
low frequency component) whereas the other sub-bands represent the AC component
(high frequency component) of the original image. All the DC and AC components (also
referred to as wavelet coefficients) are encoded through the bit-plane encoder, with a
variety encoding methods that can be categorised into two: zero-tree and context-based
coding.
Horizontal Low-Pass Vertical
Low-Pass (LL1)
Horizontal High-Pass Vertical
Low-Pass (HL1)
Horizontal Low-Pass Vertical
High-Pass (LH1)
Horizontal High-Pass Vertical
High-Pass (HH1)
Horizontal
Low-Pass
(L)
Horizontal
High-Pass
(H)
1D DWT on each row
Original Image
1D DWT on each column
Figure 2-18: First Level 2D DWT
40
LL1 HL1
LH1 HH1
HL1
LH1 HH1
LL2 HL2
LH2 HH2
HL1
LH1 HH1
HL2
LH2 HH2
LL3 HL3
LH3 HH3
1D DWT on each row & column
1D DWT on each row & column
(a) (b) (c)
Figure 2-19: Realisation of 2D DWT, (a) First Level, (b) Second Level, and (c) Third
Level of DWT
(a)
(b)
Figure 2-20: (a) Original Lena Image and (b) DWT Output
For hyperspectral coding, generally the DWT is applied to both of spectral and spatial
decorrelation/compression using various wavelets. An example of a decomposition of a
hyperspectral image using the DWT on both the spectral and spatial components is given
in Figure 2-21. For lossless compression, the integer Cohen-Daubechies-Feauveau (CDF)
5/3 is always applied. Besides using various wavelets in combination with other coding
methods, most of the wavelet-based coding studies on hyperspectral image also focus on
the coding of the wavelet coefficients.
41
(a) (b)
Figure 2-21: Spectral-Spatial DWT (a) 3 Levels Spectral-Spatial Decomposition and
(b) 2 Levels Spectral -3 Levels Spatial Decomposition [159]
The wavelet coefficients are represented as bit-planes (the most significant bit for every
coefficient is coded first, followed by the next most significant bit for each coefficient
and so on [158]). A bit-plane encoder called the Set Partitioning in Hierarchical Trees
(SPIHT) proposed by Said and Pearlman [160] encodes bit values for each bit-plane in
order, from the lowest frequency (DC component) to the highest frequency (AC
component). The repetitive bits from the similar spatial position in each band are
combined forming an inverted tree of bit values. The SPIHT algorithm was then extended
for hyperspectral image coding by Lim et al. [161] referred to as the 3D-SPIHT. The 3D-
SPIHT had been widely used in the compression of the 3D images such as in [132, 162-
164].
Another bit-plane encoder for wavelet coefficients was developed by Islam and Pearlman
[165] called the Set Partitioned Embedded bloCK (SPECK) that was built based on the
SPIHT algorithm. It was then extended for hyperspectral image coding by Tang and
Pearlman [166]. The sub-band structure of 3D-SPECK is shown in Figure 2-21(a). The
3D-SPECK produced better compression performance compared to the 3D-SPIHT,
JPEG2000 Part II and 2D-SPIHT in a compression test on AVIRIS images.
A famous standard that is based on the DWT is the JPEG2000 (Part I) [167] that also
uses CDF 5/3 wavelet for lossless and CDF 9/7 for lossy compressions [168]. The
standard was extended to the JPEG2000 Part II [169] that supports multi-component
image compressions and has been widely used for hyperspectral image compression
performance comparisons. The standard supersedes the JPEG-LS standard that is based
on the DCT. The bit-plane encoder of the standards utilises the RLE algorithm [157] that
42
groups similar frequencies together including length coding zeroes, and followed by the
Huffman coding on the remaining bits in a zigzag order [170].
Kiely and Klimesh [171] proposed the ICER algorithm that is used on board the Mars
Exploration Rovers for the compression of a large majority of the images returned [172].
The algorithm is a 2D wavelet-based compressor that converts the wavelet coefficients
into sign-magnitude form and encodes one bit-plane at a time starting with the most
significant bit-plane. It was then extended to the ICER-3D by Klimesh et al. [173]. In the
3D version, after the 3D wavelet decomposition (very similar to Figure 2-21(a)), mean
values are computed and subtracted from each spatial plane in each low frequency
component. The resulting data is then converted into sign-magnitude form and
compressed as in the ICER algorithm. The ICER-3D produced improvements in the rate-
distortion performance for lossy-to-lossless compressions.
2.4.4 Karhunen-Loève Transform
The Karhunen-Loève Transform (KLT) is basically an irreversible transform that
produces a floating-point output matrix (also known as the KLT matrix or eigenvector
matrix) that needs quantisation, which makes the transform lossy. Pengwei and Qingyun
[174] proved that any non-singular matrix (Z×Z) with the determinant ±1, could be
factorised into several Elementary Reversible Matrices (ERMs) through two types of
linear transforms: 1) Z+1 single-row ERMs (SERMs) along with P, a permutation matrix
through partial pivoting, or 2) three triangular ERMs (TERMs): lower TERMs L and S0,
and upper TERM U along with one permutation matrix, P. It has been proven that the
TERMs factorisation could be easily converted to the SERMs [174]. The flowchart
structures of the linear transforms are shown in Figure 2-22 and Figure 2-23 for SERMs
and TERMs, respectively, which translate the floating-point output of the KLT matrix
into integer values that make it a lossless transform. In [175], the KLT matrix
(eigenvector matrix) that has its determinant value of ±1 was factorised using the SERMs
implementation and was improved by using full pivoting so that it will require two
permutation matrices, PR and PL matrices and J, a diagonal matrix with integer factors in
all diagonal elements. The SERMs output from several 8-bit Landsat TM images were
factorised and implemented/applied to the images before a spatial compression using the
JPEG2000. Figure 2-24 shows the flowchart structure of the SERMs implementation. 6
bands (Z) images were used, generating 6×6 (Z×Z) eigenvector matrix and factorised
43
into 7 (Z+1) SERMs. With acceptable complexity, the Beijing and Powerplant image of
the Landsat TM could be compressed losslessly at 3.77 and 3.67 bpppb (2.12 and 2.18
CR), respectively. The lossless version of the KLT (referred as the Integer KLT in this
thesis) is explained in detailed in Chapter 3.
P
x S0 S1 S2 S3 SN-1 SN y
Figure 2-22: Flowchart Structure of SERMs Implementation (Partial Pivoting) [174]
P
U L yx S0
Figure 2-23: Flowchart Structure of TERMs Implementation [174]
PRJ
x S0 S1 S2 S3
PL
SN-1 SN y
Figure 2-24: Flowchart Structure of SERMs Implementation (Full Pivoting) [175]
44
Galli and Salzo [176] realised through experimentation that the partial pivoting suggested
in [174] could give errors when the number of bands (Z) is too large. They varied the
pivoting method from partial pivoting in [174] to quasi-complete pivoting and used the
second method suggested in [174], that is matrix factorisation to three TERMs, L, U, and
S0 and one permutation matrix, P (Figure 2-23). AVIRIS Moffet images from scene 1, 2
and 3 were used, with CRs achieved from 3.22 to 3.45. At that point, the algorithm
outperformed CALIC [136] and the 3D CB-EZW [177], the state-of-the-art of 2D and
3D lossless compression algorithms, respectively.
Yodchanan et al. [118] applied the Integer KLT for electroencephalogram (EEG) signals
for medical applications. EEGs are waveforms from electrodes put all over the scalp to
study the brain’s spontaneous electrical activity. The number of electrodes represents the
number of channels, N in the paper. Although what had been done was not an image
compression, the authors used the Integer KLT to reduce inter-channel redundancies. The
authors suggested that from [174] (Figure 2-22), the input signal could be pre-ordered
without losing any information by introducing another permutation matrix that defined
the order. The multi-channel signals were fed into the temporal DPCM followed by the
Integer KLT before passing through the Stereo Integer DCT for temporal decorrelation
and Huffman Coding. The results of the CR had been presented and compared with the
lossless JPEG2000 and GZIP (by replacing the Huffman Coding). The proposed coder
could achieve a CR of 2.84 compared to the lossless JPEG2000 (1.97) and GZIP (1.44).
Yodchanan et al. [119] suggested the sub-optimal Integer KLT (referred as KLT) to solve
the complexity issues caused by the large number of N, which is shown in Figure 2-25.
The higher portion of the eigenvector is fed into the next level of the Integer KLT,
whereas the lower is not. In their experiments, 64 channels of EEG signals had been
clustered into 4 as shown in the complete diagram in Figure 2-26 for the first 32 channels.
The overall system is similar to what they had suggested in [118] where certain scanning
schemes for the channel ordering had been proposed. The CR recorded was 2.82, lower
than that which had been recorded in [118]. However, the number of lifting steps
involves is in the order of O(N1.585
) i.e. lower compared to the normal Integer KLT in
[118] with order of O(N2), besides fewer side information that needs to be transmitted.
45
Figure 2-25: Sub-Optimal Integer KLT [119]
Figure 2-26: Structure of Sub-Optimal Integer KLT for 32 Channels [119]
Xin et al. [178] tried various pivoting strategies to choose the permutation matrix defined
in [174]. Partial-maximum, partial-minimum and complete-maximum had been proposed
and tested along with the strategy in [176], referred to as complete-minimum in the
literature. Their main concern was the error propagation when the number of bands, Z is
increased. Partial pivoting (partial-maximum and minimum) gave low computational
complexity but the error was too large compared to complete pivoting. The performance
of complete-minimum and complete-maximum were very close and capable of confining
errors in a small range. The complete-maximum that had been proposed however was
superior in terms of computational efficiency without any division operations. The
images used were from the OMIS-I airborne spectrometer, with a resolution of
512×512×64, with 16-bits data quantisation. They had performed spatial compression
first by using the JPEG2000 followed by a spectral decorrelation using the Integer KLT,
and this configuration gave superior results as compared to the reverse order (Integer
KLT followed by IWT). The proposed system had been compared with CALIC and the
JPEG-LS (by replacing the JPEG2000). The proposed algorithm along with CALIC gave
46
the highest CR (2.36 to 2.60), followed by the JPEG2000 (2.19 to 2.45) and the JPEG-LS
(2.22 to 2.43). A similar pivoting method also had been used in [179] by the same
research group along with five levels of integer 5/3 wavelets in blocks of smaller
hyperspectral images with a 3D Tarp coder. It produced the best CR (2.93 to 3.15)
compared to the 3D-CALIC (2.72 to 2.94).
Zhang et al. [180] tested the Integer KLT along with the idea of a low complexity KLT
proposed in [181] to produce a low complexity Integer KLT by randomly sampling 1% of
the hyperspectral data for the purpose of covariance calculation. The low complexity
algorithm had been coupled with their proposed wavelet-based 3D coding called the 3D
tarp-based coding with classification for embedding (3D-TCE). Lossy as well as lossless
compressions were proposed, providing a lossy-to-lossless compression capability. The
DWT was also used for the spectral decorrelation. Tested on several AVIRIS images, the
combination of the Integer KLT and the 3D-TCE gave a 4.76 bpppb performance
averagely compared to the other combinations of the Integer KLT+wavelet-based and
DWT+wavelet-based spectral-spatial decorrelation such as the DWT+3D-TCE (5.33
bpppb) and the Integer KLT+JPEG2000 (4.92 bpppb) and also the M-CALIC with
average performance of 4.96 bpppb.
Blanes and Serra-Sagristà [115] proposed the clustered-multilevel Integer KLT by using
architecture which is almost similar to Figure 2-25 and Figure 2-26 as suggested in [119]
and the pivoting suggested in [176] (quasi-complete pivoting). Only the highest portion
of outputs from each cluster of the first level Integer KLT are further decorrelated by the
second level Integer KLT and the processes are repeated iteratively until only one Integer
KLT at the highest level is left. The performance of the suggested architecture had been
compared with normal clustering which involves of only one level of clustered Integer
KLT. AVIRIS Cuprite, Jasper Ridge, Low Altitude and Lunar Lake were among the test
images that had been used for the performance evaluation. They found that clustered-
multilevel Integer KLT gave better performance than the normal KLT (lossy) at lower
bit-rates and was much better than normal clustering across all bit-rates. By using the
JPEG2000 for spatial compression, the best lossless compression performances achieved
were 4.85, 4.84, 5.18 and 4.95 bpppb for the Cuprite, Jasper Ridge, Low Altitude and
Lunar Lake image, respectively. All the results were from multi-level clustering with the
first two images also producing the similar performances even without clustering.
47
Huang and Zhu [182] used random sampling in the covariance calculation for the KLT
proposed in [181] for the Integer KLT. A 2D spatial combinative lifting algorithm
(SCLA)-based integer wavelet transform was applied to the output of the spectral
decorrelation algorithm. The implementation was considered as low complexity and
ready for hardware implementation, giving a compression performance of 5.883 bpppb in
comparison to the other 3D wavelet-based coding algorithms i.e. 3D-SPIHT (5.852
bpppb) and 3D-SPECK (5.944 bpppb) on a Moffet image from the AVIRIS dataset. The
study also worked on a lossy compression to provide lossy-to-lossless compression of the
hyperspectral image.
Wang et al. [183] proposed an improvement on the Integer KLT algorithm. The output
from the TERMs factorisation (i.e. L, U, and S0) proposed in [176] were quantised into
fractions with the denominators to be a power of 2. The Integer KLT could be realised
through shifts and additions without the multiplication process. The Integer KLT also had
been performed using only 1% of the hyperspectral data that was selected randomly for
the covariance calculation as proposed in [181] for the KLT. Lossless spatial
decorrelation based on DCT (referred as reversible time-domain lapped transform
(RTDLT)) was used to achieve a lossless coding performance. The RTDLT+Integer KLT
produced a bit-rate of 5.2693 bpppb compared to the DWT+Integer KLT (DWT as spatial
compressor, 5.3504 bpppb) and the M-CALIC that gave the best performance with a bit-
rate of 5.0551 bpppb on a Jasper Ridge image from AVIRIS dataset.
2.4.5 CCSDS Lossless Multispectral and Hyperspectral Image
Compression
A work based on prediction using adaptive filtering was proposed by Klimesh [184] that
employed previous spectral bands for the prediction but adapts the prediction coefficients
using recursive estimations. The algorithm predicts a pixel by using only previously
encoded pixels in a small 3D neighbourhood, using pixel values in the current and P
(typical value of 3) preceding the spectral bands. The prediction coefficients are updated
recursively using sign algorithm [185]. Entropy encoding then encodes the differences
between the original and the predicted pixel values losslessly, whilst the algorithm
supports the common format of a multi-component data: BIL, BIP and BSQ. The
algorithm was tested on 21 AVIRIS images and produced 5.12 bpppb averagely,
outperforming several other compression algorithms like the JPEG-LS (7.51), SLSQ
48
(5.17), ICER-3D (5.41) and Rice coding (6.22). The algorithm was later adopted by the
CCSDS Multispectral and Hyperspectral Data Compression (MHDC) Working Group as
a recommended algorithm [123] (Blue Book), using the CCSDS-LDC entropy encoder
[122]. The algorithm was named CCSDS Lossless Multispectral and Hyperspectral Image
Compression (CCSDS-MHC) and is also known as the Fast Lossless, as proposed
initially.
The CCSDS-MHC algorithm is based on an adaptive predictive coding which maximises
the prediction accuracy using the sign algorithm. The underlying algorithm encodes a 3D
image by using only causal information (i.e. part of the image that has already been
processed) [186] that consists of an adaptive linear predictor and an adaptive entropy
encoder, as shown in Figure 2-27. The predictor predicts the value of each image sample
based on the values of nearby samples in a small 3D neighbourhood. The difference
between the predicted and the actual sample values (referred to as prediction residuals) is
then mapped to an unsigned integer using the sign algorithm, that makes the prediction
residuals use a similar number of bits as the input data sample. The mapped prediction
residuals 𝛿𝑧,𝑦,𝑥 are then fed to the encoder block. The encoder has two methods; sample-
adaptive entropy encoder and block-adaptive entropy coder, with the latter encoder
formalised in [122].
Multispectral/
Hyperspectral Image Predictor Encoder
Compressed
Multispectral/
Hyperspectral Image
Mapped
prediction
residuals, δz,y,x
Figure 2-27: CCSDS-MHC Compressor Schematic
Details of the CCSDS-MHC algorithm are given in Appendix C. The algorithm predicts
the value of each sample by considering the sample values of previously encoded samples
in a small 3D neighbourhood as shown in Figure C-1 from Appendix C. P preceding
bands including the current band are used for the estimation process where P should be in
the range 0 ≤ P ≤ 15.
Hopson et al. [25] managed to achieve real-time implementation of the CCSDS-MHC
algorithm on a mobile computing platform. The work focused on software parallelisation
to improve the performance of the algorithm in terms of speed of execution, and could
achieve a throughput of over than 800 Mbps (typical sensor throughput performance).
There are two systems involved in the work; implementation on the graphics processing
49
unit (GPU) and the multicore central processing unit (CPU), using CUDA (Compute
Unified Device Architecture) and OpenMP, respectively for software parallelisation. The
mobile platform used was a Dell Alienware M18x using the Intel Core i7-2760QM (4
cores) CPU that has a Thermal Design Power (TDP) of 45W whereas the GPU (inside the
similar mobile platform) is a 2× NVidia GeForce 560M GTX (192 threads), each
consuming 75W of power. This implementation performs the compression on a complete
12-bit AVIRIS image cube (512×614×224, height × width × bands), achieving a CR of
5.3.
2.4.6 Discussion
From the literature survey presented in this section, it can be concluded that there is a lot
of interest in hyperspectral compression and the activity continues to develop actively.
Predictive and transform coding are seen as the major focus, where predictive coding is
already selected as the recommended algorithm by CCSDS [123]. Besides compression
performance, complexity has become a design target to meet the requirement of on-board
implementation where processing power is limited. Real-time processing of satellite
compression is required on board satellites [187, 188]. The computational power on
board is limited and nowhere near that yielded by a desktop processor. With that in mind,
the algorithm used on board should be of lower computational complexity in order to
fulfil the real-time requirement, as much as possible.
From Section 2.4.4, it can be seen that the Integer KLT used in conjunction with a
wavelet-based spatial compressor produced promising results. The predictive coding
adopted by the CCSDS (Section 2.4.5) also shows an encouraging performance. Both
algorithms were compared separately with other compression algorithms but no literature
sources have compared the performance of the two algorithms both in terms of
compression performance and computational complexity. It can be concluded that these
compression algorithms are the current state-of-the-art algorithm in compressing
hyperspectral image losslessly.
50
2.5 Hardware Implementation Approaches
2.5.1 FPGA Implementation
A propriety algorithm namely Pixel Purity Index (PPI) (lossy) was implemented on
Xilinx Virtex-II XC2V6000-6 FPGA by Plaza [189]. The implementation was performed
through the utilisation of a systolic array on the FPGA. The PPI algorithm was said to
consist of a very large number of dot-products that can be parallelised using the systolic
architecture. A Cuprite image from the AVIRIS sensor was used and encoded through the
said lossy algorithm by 100, 200 and 400 processors programmed inside the FPGA. The
non-parallelised version of the algorithm took several minutes for encoding in a desktop
computer with an AMD Athlon 2.6 GHz processor but only took less than 50 seconds
using the 400 processor design.
Yu et al. [190] implemented Bright Difference Compensation (BDC) [191] for
radiometric calibration of multi/hyperspectral data as the pre-processor, Gradient-
Adjusted Prediction (GAP) [136] for spectral decorrelation and an entropy coder (CCSDS
lossless data compression, CCSDS-LDC [122]) on Spartan-3, Virtex-IV and Virtex-V
series of Xilinx FPGAs. With an FPGA-based accelerator, a throughput of 250
MSample/sec could be easily achieved on the Virtex-V chip. Three cases of optimisation
were performed; 1) without optimisation (total power of 309 mW), 2) supreme
quantisation (286 mW), and 3) supreme quantisation and multiplier-free (273 mW).
The CCSDS-MHC algorithm [123, 184] (also known as Fast Lossless, FL) was
implemented inside two SRAM based Xilinx Virtex IV FPGA devices by Aranki et al.:
Virtex IV LX160 [192] and Virtex IV LX25 [193]. The FPGA implementations in [192]
and [193] were optimised for processing of the incoming streaming data and were heavily
pipelined, producing a critical path of 29.5 nanoseconds (ns) at a clock speed of 33 MHz
and 17.5 ns at a clock speed of 58 MHz, whereby one sample is encoded every clock
cycle resulting in a throughput of 33 and 58 MSample/sec, respectively. A total power
consumption of 1.27 W was recorded from both implementations.
Schmidt et al. [194] implement the FL algorithm on an embedded processor running on a
platform FPGA and integrated with a fault tolerance technique called Radiation
Hardening by Software (RHBSW). One or two PowerPC 405 32-bit RISC processors
were embedded in a Virtex IV FX60 FPGA and used for encoding an AVIRIS image
from the 2001 uncalibrated (raw) dataset. The PowerPC was selected due to its
51
performance capabilities in executing 900 MIPS compared to radiation hardened
processor like the RAD750 (266 MIPS), however it needs a fault tolerant technique for
identifying and recovering from a Single Event Upset (SEU). The RHBSW was applied
on the predictor function of the FL algorithm and tested using the Memory Sentinel
Injection System (MSIS) [195] to inject faults into the PowerPC registers, data and
instruction caches. Without the RHBSW algorithm, the best execution time performance
(referred as runtime) of 27.15 seconds (2.6 MSample/sec) was obtained using two
PowerPC that were cache enabled. Similarly, when using only one PowerPC, the
execution time recorded was 53.53 seconds (1.32 MSample/sec). A speedup of 1.97×
was obtained by comparing the two PowerPCs and one PowerPC execution time figures,
which nearly reached the ideal speedup of 2×. In both configurations, the PowerPCs were
clocked at 300 MHz. When including the fault tolerance algorithm, 55.9 and 29.52
seconds of execution time values were recorded for one and two PowerPCs respectively,
with a similar overhead of 2.37 seconds.
Schmidt and French [196] demonstrated enhancements to the work by Schmidt et al.
[194] by designing and implementing several hardware accelerator intellectual property
(IP) cores for performing the prediction process in the FL algorithm. Similar to their
previous work, Xilinx Virtex IV FX60 FPGA was used with two PowerPC 405
processors. The fault tolerance of the RHBSW was also embedded along with the FPGA
Fabric Checkpoint/Restart (F2CPR). Both the RHBSW and the F2CPR were used to
enhance the hardware/software co-designed fault tolerance of the FPGA. Portions of the
FL algorithm were accelerated in the custom hardware IP cores in the FPGA fabric that
included the MSIS for fault injection. Compared to only one PowerPC, the two PowerPC
configurations produced a speedup of 11.28×.
Yin et al. [197] implement the intraband and interband predictive coding along with an
entropy coder on Xilinx Spartan3 XC3S4000 FPGA. Several optimisations were applied
systematically to improve the overall system performance. With coding optimisations, the
total time to encode an AVIRIS image with a size of 240×320×150×2 bytes improved
from 1547.62 seconds to 74.4 seconds (equivalent to 21× speedup). By using a simplified
entropy coder, the execution time was further reduced to 55.2 seconds (27× speedup).
González et al. [198] compared the FPGA and GPU for compressing an AVIRIS image
using a spectral unmixing-based lossy compression. Xilinx Virtex-II PRO XC2VP30
FPGA and NVidia Tesla C1060 GPU were used for the comparison. The compression
52
target was to reduce significantly the large volume of information in the hyperspectral
image while at the same time retaining important information to be utilised in certain
applications including military targets and environmental studies. The realisation of the
algorithm inside the FPGA was carried out through a systolic array design whereas the
GPU was developed using CUDA. On the FPGA implementation, the lossy data
compression was able to achieve a total processing time of 31.23 seconds utilising
approximately 76% of the available hardware resources on the FPGA board. The GPU on
the other hand took 17.59 seconds, whereas another coding attempt on a desktop platform
with an Intel Core i7 920 CPU took 1078.03 seconds. Considering the desktop platform
as the reference, the speedup factor of the FPGA implementation was of 34.52× and for
the GPU, the speedup factor was of 61.28×. As stated in [198], power consumption in the
GPU is higher than the FPGA implementation with speedup of only 1.77× (between the
two implementations).
Egho and Vladimirova [199] and Egho et al. [200] respectively implemented the
reversible Integer KLT and the irreversible KLT on Actel SmartFusion FPGA-based
System-on-a-Chip (SoC) which consists of 32-bit ARM (Advanced RISC Machine)
Cortex M-3 Microcontroller Subsystem as well as the FPGA fabric. A hardware
accelerator was built within the FPGA fabric with the most repeated operations realised
in the FPGA for acceleration, and the less frequent occurring operations (as well as less
computationally intensive operations) were executed on the Cortex M-3 processor. In
[199], the covariance matrix calculation and the lifting steps in the Integer KLT were
mapped onto the FPGA. In [200] two approaches were proposed; 1) similar to [199]
where the covariance and the application of the KLT transform matrix (eigenvector) with
the hyperspectral image were realised on the FPGA, and 2) similar with 1) but including
several parts from the eigenvector/eigenvalue calculations. The rest of the process such as
system initialisation, BandMean, SubMean and PLUS as referred in the literatures were
executed on the Cortex M-3 processor. The proposed SoC systems were used to encode
an AVIRIS image cropped to the size of 512×512×32 for performance evaluations. In
[199] where the Integer KLT was applied, a total improvement of 44.5% (in processing
time) was achieved with the overall power consumption estimated to be less than 0.25 W.
Similarly, the KLT implementation in [200] gave 33.21% (213.58 mW of power
consumption) and 54.3% (224.39 mW) of improvements for the first and the second
approaches, respectively.
53
2.5.2 DSP Implementation
Liu and Hu [201] implemented LOCO-1 as a spectral decorrelation on the TI 1.0 GHz,
fixed-point, TMS320C6416 DSP and Complex Programmable Logic Device (CPLD) that
are available as a single platform called DSP Starter Kit (DSK) designed by Spectrum
Digital. LOCO-1 in 2D image compression is a JPEG-LS algorithm that uses the DPCM
predictive coding as presented earlier. A Jasper Ridge image from the AVIRIS dataset
was used in the work and had been cropped to a 512×256×224 size from the lower-left
corner of the spatial resolution. The CPLD controls the flow of the hyperspectral image
input to the DSP core to be encoded. The system took 63 seconds to encode the image
and also produced a higher compression performance than the JPEG-LS 2D image
compression algorithm.
Fan et al. [202] performed an integer wavelet transform and embedded zero-tree wavelet
(EZW) on a video/imaging, 600 MHz, fixed-point, TMS320DM642 DSP from TI. The
whole algorithm consists of the DPCM as spectral decorrelator followed by an integer
wavelet transform and the EZW algorithm. The overall implementation was optimised
using compiler options and by replacing certain functions with intrinsic operators. The
operators map the functions directly to be in line with the DSP low level instructions that
will make the code no longer an ANSI (American National Standards Institute) C
compliant but produces faster execution [203]. Two AVIRIS images were used; Cuprite
and Jasper Ridge, with the former image taking 247 seconds and the latter image 208
seconds to be encoded. For comparison purposes, the un-optimised implementation took
1181 and 1056 seconds for the Cuprite and Jasper Ridge images, respectively.
Wu et al. [204] used the TMS320C6416 DSK to implement a 3D wavelet reversible
variable-length coding (3DWT-RVLC) for lossless compression of ultraspectral sounder
data. The algorithm was said to provide greater error robustness than the JPEG2000
algorithm. The ultraspectral data from the AIRS (Atmospheric Infrared Sounder) sensor
was divided into 240 granules, each saved as a binary file with 2107 channels, 135 scan
lines and 90 cross-track footprints per scan line (i.e. 135×90 = 12,150 footprints per
granule), where each binary file has the size of 39 MB. Five levels of 1D integer wavelet
transform was performed along the spectral dimension with 2107 channels, followed by
three levels of 2D wavelet transform for each spatial plane in each granule. For the
limited memory implementation (only 16 MB of SDRAM available on the DSK), each
granule was divided into 8 blocks before being encoded by the DSK. Each block was
54
then encoded and the compressed data was sent back to the host PC before encoding the
next remaining blocks. The average time to compress a single block of AIRS data within
the DSP chip took only 1.73 seconds.
2.5.3 Discussion
The most widely addressed hardware implementation for hyperspectral compression is
the FPGA based one, as reviewed in this section. Other FPGA implementations are
discussed comprehensively in [205]. However, only three literature sources have been
found on DSP implementations, with two on wavelet-based algorithms and one on
predictive coding. The FPGA has various advantages, as discussed in detail in [205], such
as low power consumption, good performance due to optimised data paths, etc. However
SRAM-based FPGAs are susceptible to SEUs and additional mitigation design work is
needed to protect them. In addition, their development requires special skills from space
engineers, such as knowledge of hardware description languages and dedicated CAD
tools.
From a power consumption point of view, DSPs could provide a middle solution between
GPUs and FPGAs. A low power OMAP-L137 DSP has a typical power consumption
between 466.94 – 747.39 mW [206], whereas a high performance, multi-core DSP
TMDSEVM6678L could consumed up to 31.2 W of power [207]. As a reference, an
NVIDIA®
TeslaTM
C1060 GPU [208] could consumed up to 187.8 W of power. Even
though FPGA power consumption depends highly on the implementation (e.g. [190],
[199, 200]), the power figure from the review ranges from 213.58 mW to 1.27 W. In
addition, radiation-hardened DSPs are available, which are more suitable for the harsh
space environment. Furthermore DSPs are easily programmable and traditionally used by
space engineers, offering flexibility in programming. Multi-core DSP platforms are also
available which offer the possibility of parallel execution, although the parallelisation
capability is lower compared to GPUs. However, in terms of energy efficiency, the
performance per watt of multi-core DSPs is better than that of GPUs and even better than
the general purpose processor (GPP) available on desktop computers [209]. More DSP
implementations of various hyperspectral compression algorithms are needed in order to
evaluate their performance both in terms of execution time and power consumption.
As introduced in Chapter 1, this study started at the Surrey Space Centre, University of
Surrey in close collaboration with the leading manufacturer of small EO satellites, Surrey
55
Satellite Technology Limited (SSTL). Pioneering ‘commercial off the shelf’ (COTS)
satellite technology since 1970s, SSTL have utilised the standard consumer technology
and adapted it to the unique environment of space (e.g. telescope and video imagers
[210]). Before that, satellite components were mostly purpose-built and therefore hugely
expensive, taking much longer to develop as well as becoming obsolete by the time of
launch [211]. The SSTL COTS approach has leveraged benefits of COTS, such as low
cost, ready availability, high performance and high packing density [212], achieving
extreme reliability and low random failure rates [213].
This research utilises the COTS approach and is aimed to demonstrate the feasibility of
implementing hyperspectral image compression (using the Integer KLT) on the latest
DSP platforms with a focus on the algorithmic level. Within the Surrey Space Centre and
related to this research, an FPGA implementation of the KLT/Integer KLT has also been
performed in a separate project [199, 200].
2.6 Fault Tolerance Issues
The Integer KLT algorithm, which is the main focus of this thesis, is intended to be used
in space and therefore fault tolerance provisions at algorithmic level are of direct
importance. Studies on fault tolerance aimed at algorithms using matrix operations were
undertaken by Kuang-Hua and Abraham [214] in 1984. Their method, referred to as
algorithm-based fault tolerance (ABFT) for LU decomposition, matrix multiplication and
matrix inversion. The ABFT is performed by introducing checksums on the input matrix,
followed by the targeted matrix operation on the input matrix as well as the checksum,
and the correctness is checked after the matrix operation is complete [215]. However, the
ABFT algorithm and its related subsequent works such as in [215, 216] are only possible
for multiprocessor architectures (e.g. systolic array) where a very good fault containment
exists between the set of processors involved in a certain computation [217]. Since this
study does not involve any systolic array architecture, the ABFT cannot be used. Hence,
this section will review another method called Result Checking (RC).
RC was introduced by Blum [218] which was later proposed to be implemented on an
embedded platform such as the microprocessor by Blum and Wasserman [219]. Stated in
[219]: “A simple checker for the function f is a program which, given inputs x and y,
returns the correct answer to the question, does f(x) = y? The checker may be randomised,
in which case, for any x and y, it must give the correct answer with a high probability
56
over its internal randomisation. Moreover, the checker must take asymptotically less time
than any possible program for computing f”. The randomised algorithm by Freivald [220]
was suggested by Blum and Kannan [221] to be remarkable enough as excellent program
checkers for integer, polynomial and matrix multiplications, known as Freivald’s simple
checker or Freivald’s checker. Freivald’s checker checks whether or not 𝐵 × 𝐶 = 𝐷, by
testing both sides of the equation with a random vector r, as shown in (2-4).
D × 𝑟 ≟ (B × (C × 𝑟)) (2-4)
If D × 𝑟 ≠ (B × (C × 𝑟)), it means that the matrix multiplication is incorrect with
probability of correctness = 1. However, D × 𝑟 = (B × (C × 𝑟)) means otherwise but
with the probability of correctness ≥ 1 2⁄ because the checker is only doing a small
number of checks (only one for each row for the result D). To increase the probability of
correctness, the checker needs to be repeated using k different number of r vectors so that
the probability of correctness is ≥ 1 2𝑘⁄ or for the probability of error to be ≤ 1 2𝑘⁄ .
The checker is quicker and simpler than the original multiplication of B by C.
Prata and Silva [217] performed a comparison between the RC and the ABFT algorithms
on matrix multiplication, QR decomposition and matrix inversion. The source code
produced by Chowdhurry [222] was used by replacing the ABFT algorithm with the RC
using Freivald’s checker. The RC was concluded to be independent of the targeted
algorithm and needs less lines of code for implementation compared to the ABFT, but
with similar memory overhead and error coverage.
2.7 Conclusion
In this chapter, hyperspectral spaceborne missions, lossless hyperspectral compression
algorithms and embedded hardware implementation of hyperspectral compression
algorithms were reviewed. Also fault tolerance studies using RC were briefly introduced
showing similar performance to the well-known ABFT algorithms but being independent
of the targeted algorithm that needed protection.
The hyperspectral missions review has shown that seven hyperspectral satellites are
currently operational in space including two missions for Mars explorations. In addition,
four missions have been turned off and two failed due to launch failure. Another two
57
missions have been cancelled at the planning stage and more hyperspectral spaceborne
missions are expected to be launched in the near future targeting small satellite platforms.
Statistical analysis on hyperspectral satellite mass, compression, type of payload data
processor and memory available on board has been carried out. It can be concluded from
the analysis that there are not many missions with on-board hyperspectral image
compression capabilities: only seven out of 23 missions. 15 remaining missions do not
disclose their details and one mission does not use any data compression. Only three
missions currently operational have compression techniques available on board. The DSP
and RISC processors are the main choices for payload data processors, however 11
missions do not reveal such information in the open literature. The mass memory
capacity on board the satellites was also reviewed. However, no clear patterns for future
missions could be obtained due to undisclosed information.
Three categories of hyperspectral image compression; predictive coding, VQ and
transform coding have been reviewed with focus only on lossless compressions.
Predictive and transform coding are the main focus in the area where predictive coding is
already adopted as a recommended algorithm by CCSDS. Compression performance and
lower complexity are the main foci for algorithm development. The review shows that the
Integer KLT spectral decorrelator (used in conjunction with wavelet-based spatial
compressor) and the CCSDS-MHC algorithm produced promising results. However, no
comparison or benchmarking has been performed on the two algorithms. In view of their
excellent performance, it can be concluded that the Integer KLT spectral decorrelator
(combined with a wavelet-based spatial compressor) and the CCSDS-MHC algorithm are
the current state-of-the-art algorithm for lossless hyperspectral compressions.
The FPGA has been found to be the most favoured target for hyperspectral compression
implementations. However, only three studies have been found (to the best of the author’s
knowledge) that used the DSP as the target platform [201, 202, 204]. With better
performance per unit power, the DSP is a better candidate than the GPU for space
applications as well as any other critical missions that generally require multi-component
image compression. Due to under use, more study and analysis of hyperspectral image
compression on DSP platforms are needed to evaluate the new DSP architectures
featuring novel features such as multi-core design, better programmability, faster external
memory access time, etc..
58
The review on hyperspectral missions presented in this chapter is undertaken for the first
time, providing a detailed systematic summary of hyperspectral image
compression/processing on board satellites. The in-depth review on hyperspectral image
compression algorithms is also new, reviewing all the algorithms together with the
Integer KLT and the CCSDS-MHC algorithms; the current state-of-the-art algorithms. To
the best of the author’s knowledge, the review of hyperspectral image compression
implementation is the first attempt to pull together information based on both FPGAs and
DSPs.
59
Chapter 3 Integer KLT Investigation
In this chapter, the Integer KLT algorithm is presented and evaluated for use as a lossless
hyperspectral image compression in remote sensing payloads. In addition its performance
is compared with the newly proposed CCSDS recommendation for lossless hyperspectral
compression.
Section 3.1 gives details about the algorithm. Section 3.2 introduces all the algorithms
and software components used in the evaluation process. Section 3.3 evaluates the
performance of the algorithm in terms of compression ratio (CR) and spectral component
decorrelation capability using AVIRIS images. Section 3.4 concludes the chapter.
3.1 The KLT and the Integer KLT Algorithms
The KLT algorithm is the optimum block-based transform for lossy data compression in a
statistical sense [223]. The KLT is also known as the Principal Component Analysis
(PCA) even though there are slight differences between them as described in [224]. The
KLT and also its integer approximation, the Integer KLT, have been used as spectral
decorrelators to reduce spectral redundancy in multi-component image compression
studies such as hyperspectral imaging for remote sensing [114, 156, 181, 225] and
magnetic resonance imaging (MRI) for medical applications [115, 120] as well as in one
dimensional signal compression [118, 119]. The KLT has also been applied for face
recognition [226] and pattern finding in high-dimension data [227].
3.1.1 Description of the KLT Algorithm
Before discussing the Integer KLT algorithm, it is necessary to present the original KLT
which is a lossy transform. The KLT, similar as the Integer KLT, acts as a spectral
decorrelator to reduce the spectral redundancy that exists between bands in a
hyperspectral image, as shown in Figure 2-12 previously. This will be followed by spatial
compression, performed by a 2D image compression algorithm, to reduce the spatial
redundancy.
Let our hyperspectral image, H with M×M spatial size and Z number of bands, be
arranged so that it has Z number of rows and MM number of columns. The H must be
60
centred on zero if it doesn’t have a zero mean (i.e. H must be subtracted with mean of
each band or generally referred to as centred mean operation). The KLT of H as
presented in [228] is computed as:
𝐻𝑒𝑛𝑐𝑜𝑑𝑒𝑑 = 𝐾𝐿𝑇Ʃ𝐻(𝐻) = 𝐴𝑇𝐻
Where,
H is the hyperspectral image with centred mean,
ƩH = (1 𝑀𝑀⁄ )𝐻𝐻𝑇 is the covariance matrix of H,
A is the orthogonal matrix obtained from singular value decomposition
(SVD) of ƩH = 𝐴Ʌ𝐴−1
Ʌ is a diagonal matrix, diag(λ1, λ2, …, λZ) and λ1 ≥ λ2 ≥ … ≥ λZ
(3-1)
Brief steps to perform a spectral decorrelation on the hyperspectral image H using the
KLT are explained below. Note that here the input H is in a 2-dimensional (Z×MM)
form.
I. Subtracting each sample in H with its corresponding mean of band, Mean to make
the input centred mean. The Mean will be needed for the decoding process.
𝐻_𝑎𝑑𝑗𝑢𝑠𝑡 = [ℎ𝑧,𝑚 − 𝑚𝑒𝑎𝑛𝑧] Where 0 ≤ z ≤ Z – 1; 0 ≤ m ≤ MM – 1
(3-2)
II. Computing covariance matrix, C of 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡. The covariance between band A
and band B is shown in (3-3) where ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑎,𝑚 and ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑏,𝑚 refer to an
individual sample value from A and B band, whereas 𝜇𝑎 and 𝜇𝑏 refer to the mean
value of band A and B from 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡, respectively. Note that 𝑐𝑜𝑣(𝐴, 𝐵) =
𝑐𝑜𝑣(𝐵, 𝐴) and 𝑚𝑒𝑎𝑛𝑧 from the previous step and 𝜇𝑧 here are different. The
covariance matrix, C is a square Z×Z matrix as shown in (3-4) with the variance
of each band is on the diagonal.
𝑐𝑜𝑣(𝐴, 𝐵) = ∑ (ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑎,𝑚 − 𝜇𝑎)(ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑏,𝑚 − 𝜇𝑏)
𝑀𝑀−1𝑚=0
𝑀𝑀
Where 0 ≤ m ≤ MM – 1
(3-3)
61
C =
[
𝑐𝑜𝑣(𝑏𝑎𝑛𝑑0, 𝑏𝑎𝑛𝑑0) 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑1, 𝑏𝑎𝑛𝑑0) ⋯ 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑𝑍 − 1, 𝑏𝑎𝑛𝑑0)𝑐𝑜𝑣(𝑏𝑎𝑛𝑑0, 𝑏𝑎𝑛𝑑1) 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑1, 𝑏𝑎𝑛𝑑1) ⋯ 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑𝑍 − 1, 𝑏𝑎𝑛𝑑1)
⋮ ⋮ ⋱ ⋮𝑐𝑜𝑣(𝑏𝑎𝑛𝑑0, 𝑏𝑎𝑛𝑑𝑍 − 1) 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑1, 𝑏𝑎𝑛𝑑𝑍 − 1) ⋯ 𝑐𝑜𝑣(𝑏𝑎𝑛𝑑𝑍 − 1, 𝑏𝑎𝑛𝑑𝑍 − 1)
] (3-4)
III. Performing SVD on C to get eigenvector, A and eigenvalue, V.
Eigenvector, A = [
𝛼0,0 𝛼0,1 ⋯ 𝛼0,𝑍−1
𝛼1,0 𝛼1,1 ⋯ 𝛼1,𝑍−1
⋮ ⋮ ⋱ ⋮𝛼𝑍−1,0 𝛼𝑍−1,1 ⋯ 𝛼𝑍−1,𝑍−1
], eigenvalue, V = [
𝑣0
𝑣1
⋮𝑣𝑍−1
] (3-5)
Each row of A is also known as the principal component, PC. A then is sorted
according to the V in descending order (i.e. row of A with the highest vz value will
be on the top row). A now becoming
Eigenvector, A = [
𝑎0,0 𝑎0,1 ⋯ 𝑎0,𝑍−1
𝑎1,0 𝑎1,1 ⋯ 𝑎1,𝑍−1
⋮ ⋮ ⋱ ⋮𝑎𝑍−1,0 𝑎𝑍−1,1 ⋯ 𝑎𝑍−1,𝑍−1
] (3-6)
that has Z vectors of PCs, also called the KLT transform matrix.
Note: Throughout this work, the SVD on C was performed using the ALGLIB
Numerical Analysis Library V3.1.0 [229].
IV. Multiply A with 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡 to get the encoded hyperspectral image, H_encoded as
in (3-7)
𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑 = ∑(𝑎𝑖,𝑧)𝑇ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑧,𝑚
𝑍−1
𝑧=0
Where 0 ≤ i ≤ Z – 1; 0 ≤ m ≤ MM – 1
(3-7)
To achieve compression (lossy), P number of the PCs (where P < Z) in the KLT
transform matrix A are selected based on their corresponding largest eigenvalue, V,
resulting only with P×Z of A being generated and this transform coding method is known
as the PCA. When all the PCs are retained (i.e. an Z×Z of A is generated), the PCA
62
transform coding is referred to as the KLT [114]. In other words, spectral decorrelation
using the KLT is equivalent to the PCA, in which the number of PCs is equal to the
number of spectral bands.
One important characteristic of the A matrix is that it is a non-singular matrix i.e.
reversible. A and Mean are needed at the decoder end for decoding purposes and hence
become the overhead information. The KLT decoding is shown in (3-8) to correlate back
the spectral component, followed by a Mean restoration in (3-9).
𝐻 = ∑ 𝑎𝑖,𝑧ℎ_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑧,𝑚
𝑍−1
𝑧=0
Where 0 ≤ i ≤ Z – 1; 0 ≤ m ≤ MM – 1
(3-8)
𝐻_𝑑𝑒𝑐𝑜𝑑𝑒𝑑 = [ℎ𝑧,𝑚 + 𝑚𝑒𝑎𝑛𝑧] Where 0 ≤ z ≤ Z – 1; 0 ≤ m ≤ MM – 1
(3-9)
Due to the rearrangement of the PCs by eigenvalue, the KLT is said to have the energy
compaction capability which is evidenced by the fact that the main details of the encoded
image are visible in the first few Eigen-planes (spectral bands of the encoded image)
followed by the remaining planes that do not have visible features. The remaining planes
(also referred to as “minor” PCs, which correspond to the small eigenvalues [114], are
composed of noise, can be coarsely quantised [156] and sometimes can even be dropped
to increase the signal-to-noise ratio (SNR) [114]. The rearrangement of all the PCs based
on their eigenvalues is the reason why the KLT is the optimal method to reduce the
spectral redundancy or, in other words, the similarity between the spectral bands. The
KLT has proven to be the most efficient spectral decorrelator compared with the DCT
[156] and the DWT [114].
The computational cost for the KLT encoding and decoding in a number of floating-point
operations (flops) are given in Table 3-1 and Table 3-2, respectively [115, 228]. The
covariance matrix calculation (step II) and the application of the eigenvector to the
hyperspectral image through matrix-matrix products (step IV, abbreviated as ‘Apply’ in
Table 3-1) are the main stages that contribute to the high complexity of the algorithm
[156, 181]. MM and Z in Table 3-1 and Table 3-2 denote the spatial and spectral size
(number of spectral bands) of the input hyperspectral image, respectively.
63
Table 3-1: Computational Cost (in flops) of the KLT Encoding Process [115, 228]
Stage Cost (in flops)
Step I : Mean calculation 2𝑀𝑀𝑍
Step II: Covariance matrix calculation 𝑀𝑀(𝑍2 + 𝑍 + 4)
Step III: SVD ≅ 9𝑍3
step IV: Apply 𝑀𝑀(2𝑍2 − 𝑍)
Total (≅) 9𝑍3 + 3𝑀𝑀𝑍2 + 2𝑀𝑀𝑍 + 4
Table 3-2: Computational Cost (in flops) of the KLT Decoding Process [115, 228]
Stage Cost (in flops)
Remove: Equation (3-8) 𝑀𝑀(2𝑍2 − 𝑍)
Mean restoration: Equation (3-9) 𝑀𝑀𝑍
Total 2𝑀𝑀𝑍2
Matrix-matrix multiplication in the KLT between the KLT transform matrix 𝐴𝑇 and
𝐻_𝑎𝑑𝑗𝑢𝑠𝑡 at the end of the encoding process is not exactly reversible because of the
small imprecisions due to the floating-point numbers in both of the variables. This makes
the encoded output from the KLT non-reversible since it consists of floating-point
numbers and rounding is necessary, which leads to a lossy transformation.
3.1.2 Description of the Integer KLT Algorithm
An approximation of the KLT has been proposed in [175] that is based on matrix
factorisation on the 𝐴𝑇 proposed in [174], representing the encoded image, H_encoded in
an integer form, hence it has been called the Integer KLT.
The Integer KLT is similar to the original KLT discussed in Section 3.1.1, except for the
following:
a) Mean of band, Mean in step I needs to be rounded, becoming
RoundedMean,
b) The KLT transform matrix or eigenvector, 𝐴𝑇 from step III needs to be
factored into four matrices, P, L, U and S (will be discussed in Section
3.1.2.1), and
c) The four matrices are applied to the 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡 using reversible lifting
operations (will be discussed in Section 3.1.2.2)
64
The matrices P, L, U and S and also the RoundedMean are needed for the decoding
process to get back the original data and hence will be referred to as overhead
information. The overall block diagram for the Integer KLT is shown in Figure 3-1. The
corresponding block diagram for step 4 and 5 in the figure below are shown in Figure 3-2
and Figure 3-3 that will be discussed in the following sub-sections. In Figure 3-1,
different variables, H and H_adjust are used mainly for the decoding and lossless
verification processes. The decoding process is performed on the H_adjust, producing the
decoded image using a similar variable name. The lossless verification is simply
performed by comparing the original image H with the decoded image, H_adjust. The
whole encoding process can also involve only one variable H and the algorithm will
update that H accordingly, provided that the decoding and the lossless verification
process are not needed. For on-board satellite implementation, the decoding process is
not required since the process will be performed on the ground.
Start
1. Calculate RoundedMean of each band
and perform centred mean operation on
input image, becoming H_adjust
2. Calculate covariance matrix, C
of H_adjust
3. Calculate eigenvectors, A & eigenvalue, V
of C. Sort A based on V in descending order
5. Apply P, L, U, S to
H_adjust
4. Factorise A into P, L, U, S
(PLUS Factorisation)
Finish
H = input
Encoded Image = H_adjust
Overhead Information = P, L,
U, S & RoundedMean
Figure 3-1: Integer KLT Block Diagram
The computational cost for the Integer KLT encoding and decoding in flops are given in
Table 3-3 and Table 3-4, respectively from [115, 228]. The step numbers inside the tables
are from Figure 3-1. By comparing the total flops from Table 3-3 and Table 3-1, the
Integer KLT is shown to be more complex than the KLT for 5
3𝑍3 +
1+𝑀𝑀
2𝑍2 +
6𝑀𝑀−37
6𝑍 + 𝑀𝑀 + 1 number of flops. For decoding (Table 3-2 and Table 3-4), a similar
pattern is followed with a difference of 3𝑀𝑀𝑍2 − 𝑀𝑀𝑍 − 3𝑀𝑀 number of flops. Note
that MM and Z are the spatial and spectral size of the hyperspectral image being encoded,
respectively. Factorisation of the eigenvector (step 4 from Figure 3-1) and the application
65
of P, L, U and S matrices to the hyperspectral image (step 5) will be discussed in the
following sub-sections.
Table 3-3: Computational Cost (in flops) for Integer KLT Encoding [115, 228]
Stage Cost (in flops)
RoundedMean calculation and centred
mean operation on input – step 1 2𝑀𝑀𝑍
Covariance matrix calculation – step 2 𝑀𝑀(𝑍2 + 𝑍 + 4)
SVD – step 3 ≅ 9𝑍3
Matrix factorisation – step 4 5𝑍3
3+
𝑍2
2−
37𝑍
6+ 5
Apply – step 5 𝑀𝑀(3𝑍2 − 3)
Total (≅) 32
3𝑍3 +
1 + 8𝑀𝑀
2𝑍2 +
18𝑀𝑀 − 37
6𝑍 + 𝑀𝑀 + 5
Table 3-4: Computational Cost (in flops) for Integer KLT Decoding [115, 228]
Stage Cost (in flops)
Remove 𝑀𝑀(3𝑍2 − 3)
RoundedMean restoration 𝑀𝑀𝑍
Total 3𝑀𝑀𝑍2 + 𝑀𝑀𝑍 − 3𝑀𝑀
3.1.2.1 Factorisation of Eigenvector Matrix
The matrix factorisation method proposed in [174] is also referred to as an integer to
integer transform [176] due to the fact that it uses integer mapping to produce the integer
output. For KLT implementation, the matrix factorisation is applied on the eigenvector,
𝐴𝑇 into a product of elementary reversible matrices (ERMs) whose diagonal elements are
equal to ±1. An ERM matrix that has unit diagonal elements is referred to as unit TERM.
Originally in [174], two factorisation strategies were proposed, the triangular ERM
(TERM) and single-row ERM (SERM) where the TERM factorisation is required in
order to create the SERM factorisation [115].
It has been said in [176] that the TERM factorisation is very similar to LU factorisation
[230]. It needs to be applied on the eigenvector 𝐴𝑇, which is a non-singular matrix (i.e.
det(𝐴𝑇) = |1|) into four Z×Z matrices: a permutation matrix, P, and three other TERMs: L
(lower TERM), U (upper TERM) and S (lower TERM) – also known as PLUS
factorisation.
PLUS factorisation of the eigenvector 𝐴𝑇 is shown in Figure 3-2. It is performed in an
iterative manner where in each iteration, the three matrices P, L and S which are initially
66
set to be an identity matrix, are updated accordingly from the input matrix A from 𝑘 = 0
to 𝑘 = 𝑍 − 2 iterations. The input 𝐴𝑇 is also updated (referred to as 𝑈𝑠(𝑘−1)
inside the
iteration) and used in the next iterations and at the end, become the output, U from the
algorithm. The matrices, 𝑃𝑠(𝑘)
, 𝐿𝑠(𝑘)
, and 𝑆𝑠(𝑘)
are the temporary matrices that are set to be
the identity matrix at the beginning of each iteration and updated in pivoting and
factorisation blocks. The temporary matrices are then used to update the P, L and S at the
end of the iteration through matrix-matrix multiplications. The updated P, L and S after
all the iterations become the output of the algorithm. The in-bracket superscript in the
figure shows the iteration (or step) number, k.
StartP = I, L = I, S = Ik = 0Us(k-1) = AT
k = Z – 2?
k = k + 1 Us(k-1) = Us
(k)
Update P, L, S
P = Ps(k) × P,
S = Ss(k) × S,
L = (Ls(k) × Ps
(k)) × LFactorization
Factor Us(k-1) into Ls
(k), Us(k), Ss
(k)
Pivoting
Determine Ps(k) from Us
(k-1)
Update Us(k-1), Us
(k-1) = Ps(k) × Us
(k-1)
Ps(k) = I, Ls
(k) = I, Ss(k) = I
U = Us(Z-2), P, L, S Finish
No
Yes Note: I = Identity matrix with k as the step number
All matrices are with dimension of Z × Z
Figure 3-2: Eigenvector Factorisation (PLUS Factorisation) in Integer KLT
The factorisation is not unique and depending on the pivoting method used, will affect the
error between the integer approximation and the original KLT transformation [231]. In
this work, the quasi-complete pivoting proposed in [176] is used. The intrinsic energy-
compacting capability of the KLT will be affected by the factorisation, so the error should
be minimised as much as possible especially when the number of spectral bands, Z of the
hyperspectral image is too large [176].
3.1.2.1.1 Pivoting
Partial pivoting as part of the Integer KLT was introduced in [174] and there were several
studies that focused on different types of pivoting [176, 178, 179]. Quasi-complete
pivoting [176] was reported as the best method to minimise the integer approximation
error in [115, 231] and was used in [120, 180]. The Integer KLT with quasi-complete
pivoting was compared with the linear prediction and band differential methods to
67
investigate the decorrelation performance and has shown that the Integer KLT yields the
highest CR when combined with the lossless JPEG2000 [117]. To proceed, quasi-
complete pivoting will be used in this study. For other pivoting methods, refer to
Appendix D: Integer KLT - Other Pivoting Techniques.
For quasi-complete pivoting [176] (also referred to as complete-minimum pivoting in
[178]), at 𝑘 = 0, find the minimum module of matrix defined in (3-10).
[(𝑢𝑖,𝑘(𝑘−1)
− 1) 𝑢𝑖,𝑗(𝑘−1)
⁄ ] 𝑘≤𝑖<𝑍−1𝑘+1≤𝑗<𝑍−1
=
[ (𝑢0,0
(−1)− 1) 𝑢0,1
(−1)⁄ (𝑢0,0
(−1)− 1) 𝑢0,2
(−1)⁄ ⋯ (𝑢0,0
(−1)− 1) 𝑢0,𝑍−1
(−1)⁄
(𝑢1,0(−1)
− 1) 𝑢1,1(−1)
⁄ (𝑢1,0(−1)
− 1) 𝑢1,2(−1)
⁄ ⋯ (𝑢1,0(−1)
− 1) 𝑢1,𝑍−1(−1)
⁄
⋮ ⋮ ⋱ ⋮
(𝑢𝑍−1,0(−1)
− 1) 𝑢𝑍−1,1(−1)
⁄ (𝑢𝑍−1,0(−1)
− 1) 𝑢𝑍−1,2(−1)
⁄ ⋯ (𝑢𝑍−1,0(−1)
− 1) 𝑢𝑍−1,𝑍−1(−1)
⁄ ]
Generally, at k-th step,
=
[ (𝑢𝑘,𝑘
(𝑘−1)− 1) 𝑢𝑘,𝑘+1
(𝑘−1)⁄ (𝑢𝑘,𝑘
(𝑘−1)− 1) 𝑢𝑘,𝑘+2
(𝑘−1)⁄ ⋯ (𝑢𝑘,𝑘
(𝑘−1)− 1) 𝑢𝑘,𝑍−1
(𝑘−1)⁄
(𝑢𝑘+1,𝑘(𝑘−1)
− 1) 𝑢𝑘+1,𝑘+1(𝑘−1)
⁄ (𝑢𝑘+1,𝑘(𝑘−1)
− 1) 𝑢𝑘+1,𝑘+2(𝑘−1)
⁄ ⋯ (𝑢𝑘+1,𝑘(𝑘−1)
− 1) 𝑢𝑘+1,𝑍−1(𝑘−1)
⁄
⋮ ⋮ ⋱ ⋮
(𝑢𝑍−1,𝑘(𝑘−1)
− 1) 𝑢𝑍−1,𝑘+1(𝑘−1)
⁄ (𝑢𝑍−1,𝑘(𝑘−1)
− 1) 𝑢𝑍−1,𝑘+2(𝑘−1)
⁄ ⋯ (𝑢𝑍−1,𝑘(𝑘−1)
− 1) 𝑢𝑍−1,𝑍−1(𝑘−1)
⁄ ]
(3-10)
At 𝑘 = 0, let’s say the minimum module is found located at row r and column c of matrix
from (3-10). To perform pivoting, exchange 0th
(from 𝑘 = 0) and r-th rows in 𝑃𝑠(0)
.
Generally, at k-th step and with the minimum module at row r and column c of
matrix 𝑈𝑠(−1)
, pivoting is performed by swapping k-th and r-th rows in 𝑃𝑠(𝑘)
.
𝑈𝑠(−1)
needs to be updated by multiplying with the 𝑃𝑠(0)
obtained earlier. Here, 𝐵(0) that is
equal to 𝑈𝑠(−1)
is introduced. It can be performed by row swapping as in 𝑃𝑠(0)
before.
𝑈𝑠(−1)
= 𝐵(0) = 𝑃𝑠(0)
𝑈𝑠(−1)
=
[ 𝑏0,0
(0)𝑏0,1
(0)⋯ 𝑏0,𝑍−1
(0)
𝑏1,0(0)
𝑏1,1(0)
… 𝑏1,𝑍−1(0)
⋮ ⋮ ⋱ ⋮
𝑏𝑍−1,0(0)
𝑏𝑍−1,1(0)
… 𝑏𝑍−1,𝑍−1(0)
]
Generally, at k-th step,
(3-11)
68
𝑈𝑠(𝑘−1)
= 𝐵(𝑘) = 𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
=
[ 𝑏0,0
(𝑘)𝑏0,1
(𝑘)⋯ 𝑏0,𝑍−1
(𝑘)
𝑏1,0(𝑘)
𝑏1,1(𝑘)
… 𝑏1,𝑍−1(𝑘)
⋮ ⋮ ⋱ ⋮
𝑏𝑍−1,0(𝑘)
𝑏𝑍−1,1(𝑘)
… 𝑏𝑍−1,𝑍−1(𝑘)
]
3.1.2.1.2 Factorisation
By using 𝐵(0) or 𝑈𝑠(−1)
from the pivoting step before, at 𝑘 = 0, 𝑆𝑠(0)
is defined as [176]:
𝑆𝑠(0)
= 𝐼 − 𝑠0𝑒𝑐𝑒0𝑇 =
[
1 0 ⋯ 0 ⋯ 00 1 ⋯ 0 ⋯ 0⋮ ⋮ ⋱ 0 ⋯ 0
−𝑠0 0 ⋯ 1 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋱ 00 0 ⋯ 0 ⋯ 1]
Where
I is identity matrix with size 𝑍 × 𝑍,
𝑠0 = (𝑏0,0(0)
− 1) 𝑏0,𝑐(0)
⁄ at position (c, 0),
𝑒𝑐 is a c-th standard basis vector with size Z,
[ 00⋮𝑞𝑐
⋮0 ]
, where 𝑞𝑐 = 1,
𝑐 is the column position of the minimum module from pivoting step
𝑒0𝑇 is a transpose of 0
th standard basis vector with size Z,
[𝑞0 0 ⋯ 0], where 𝑞0 = 1
Generally, at k-th step,
𝑆𝑠(𝑘)
= 𝐼 − 𝑠𝑘𝑒𝑐𝑒𝑘𝑇 =
[ 1 0 ⋯ 0 ⋯ 0 ⋯ 00 1 ⋯ 0 ⋯ 0 ⋯ 0⋮ ⋮ ⋱ ⋮ ⋯ 0 ⋯ 00 0 ⋯ 1 ⋯ 0 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮0 0 ⋯ −𝑠𝑘 ⋯ 1 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 00 0 ⋯ 0 ⋯ 0 ⋯ 1]
Where
𝑠𝑘 = (𝑏𝑘,𝑘(𝑘)
− 1) 𝑏𝑘,𝑐(𝑘)
⁄ at position (c, k),
𝑒𝑘𝑇 is a transpose of k-th standard basis vector with size Z,
[0 ⋯ 𝑞𝑘 ⋯ 0], where 𝑞𝑘 = 1
(3-12)
Updating 𝑈𝑠(−1)
by multiplying with 𝑆𝑠(0)
69
𝑈𝑠(−1)
= 𝑈𝑠(−1)
𝑆𝑠(0)
= 𝐵(0)𝑆𝑠(0)
=
[ 1 𝑏0,1
(0)… 𝑏0,𝑍−1
(0)
𝑏1,0(0)
− 𝑠0𝑏1,0(0)
𝑏1,1(0)
… 𝑏1,𝑍−1(0)
⋮ ⋮ ⋱ ⋮
𝑏𝑍−1,0(0)
− 𝑠0𝑏𝑍−1,0(0)
𝑏𝑍−1,1(0)
… 𝑏𝑍−1,𝑍−1(0)
]
=
[ 1 𝑢0,1
(−1)… 𝑢0,𝑍−1
(−1)
𝑢1,0(−1)
𝑢1,1(−1)
… 𝑢1,𝑍−1(−1)
⋮ ⋮ ⋱ ⋮
𝑢𝑍−1,0(−1)
𝑢𝑍−1,1(−1)
… 𝑢𝑍−1,𝑍−1(−1)
]
Generally, at k-th step,
𝑈𝑠(𝑘−1)
= 𝑈𝑠(𝑘−1)
𝑆𝑠(𝑘)
= 𝐵(𝑘)𝑆𝑠(𝑘)
=
[ 1 𝑏0,1
(𝑘)⋯ 𝑏0,𝑘
(𝑘)− 𝑠𝑘𝑏0,𝑐
(𝑘)⋯ 𝑏0,𝑍−2
(𝑘)𝑏0,𝑍−1
(𝑘)
0 1 ⋯ 𝑏1,𝑘(𝑘)
− 𝑠𝑘𝑏1,𝑐(𝑘)
⋯ 𝑏1,𝑍−2(𝑘)
𝑏1,𝑍−1(𝑘)
⋮ ⋮ ⋱ ⋮ ⋱ ⋮ ⋮
0 0 0 1 ⋯ 𝑏𝑘,𝑍−2(𝑘)
𝑏𝑘,𝑍−1(𝑘)
0 0 0 𝑏𝑘+1,𝑘(𝑘)
− 𝑠𝑘𝑏𝑘+1,𝑐(𝑘)
⋯ 𝑏𝑘+1,𝑍−2(𝑘)
𝑏𝑘+1,𝑍−1(𝑘)
⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
0 0 0 𝑏𝑍−1,𝑘(𝑘)
− 𝑠𝑘𝑏𝑍−1,𝑐(𝑘)
⋯ 𝑏𝑍−1,𝑍−2(𝑘)
𝑏𝑍−1,𝑍−1(𝑘)
]
=
[ 1 𝑢0,1
(𝑘−1)⋯ 𝑢0,𝑘
(𝑘−1)⋯ 𝑢0,𝑍−2
(𝑘−1)𝑢0,𝑍−1
(𝑘−1)
0 1 ⋯ 𝑢1,𝑘(𝑘−1)
⋯ 𝑢1,𝑍−2(𝑘−1)
𝑢1,𝑍−1(𝑘−1)
⋮ ⋮ ⋱ ⋮ ⋱ ⋮ ⋮
0 0 0 1 ⋯ 𝑢𝑘,𝑍−2(𝑘−1)
𝑢𝑘,𝑍−1(𝑘−1)
0 0 0 𝑢𝑘+1,𝑘(𝑘−1)
⋯ 𝑢𝑘+1,𝑍−2(𝑘−1)
𝑢𝑘+1,𝑍−1(𝑘−1)
⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
0 0 0 𝑢𝑍−1,𝑘(𝑘−1)
⋯ 𝑢𝑍−1,𝑍−2(𝑘−1)
𝑢𝑍−1,𝑍−1(𝑘−1)
]
(3-13)
Performing a Gaussian Elimination on the elements of the 0th
column (or generally k-th
column at k-th step), 𝑈𝑠(0)
(or generally 𝑈𝑠(𝑘)
) is obtained from 𝑈𝑠(−1)
(or generally
𝑈𝑠(𝑘−1)
) as:
𝑈𝑠(0)
=
[ 1 𝑢0,1
(0)⋯ 𝑢0,𝑍−1
(0)
0 𝑢1,1(0)
⋯ 𝑢1,𝑍−1(0)
⋮ ⋮ ⋱ ⋮
0 𝑢𝑍−1,1(0)
⋯ 𝑢𝑍−1,𝑍−1(0)
]
Generally, at k-th step,
(3-14)
70
𝑈𝑠(𝑘)
=
[ 1 𝑢0,1
(𝑘)⋯ 𝑢0,𝑘
(𝑘)𝑢0,𝑘+1
(𝑘)⋯ 𝑢0,𝑍−1
(𝑘)
0 1 ⋯ 𝑢1,𝑘(𝑘)
𝑢1,𝑘+1(𝑘)
⋯ 𝑢1,𝑍−1(𝑘)
⋮ ⋮ ⋱ ⋮ ⋮ ⋯ ⋮
0 0 ⋯ 1 𝑢𝑘,𝑘+1(𝑘)
⋯ 𝑢𝑘,𝑍−1(𝑘)
0 0 ⋯ 0 𝑢𝑘+1,𝑘+1(𝑘)
⋯ 𝑢𝑘+1,𝑍−1(𝑘)
⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮
0 0 0 0 𝑢𝑍−1,𝑘+1(𝑘)
⋯ 𝑢𝑍−1,𝑍−1(𝑘)
]
The elementary Gaussian matrix, 𝐿𝑠(0)
(or generally 𝐿𝑠(𝑘)
at k-th step) is obtained as:
𝐿𝑠(0)
=
[
1 0 ⋯ 0
𝑠0𝑏1,0(0)
− 𝑏1,0(0)
1 ⋯ 0
⋮ ⋮ ⋱ ⋮
𝑠0𝑏𝑍−1,0(0)
− 𝑏𝑍−1,0(0)
0 ⋯ 1]
Generally, at k-th step,
𝐿𝑠(𝑘)
=
[ 1 0 ⋯ 0 0 0 ⋯ 00 1 ⋯ ⋮ ⋮ ⋮ ⋯ ⋮⋮ 0 ⋱ 0 ⋮ ⋮ ⋯ ⋮⋮ ⋮ ⋯ 1 0 ⋮ ⋯ ⋮
⋮ ⋮ ⋯ 𝑠𝑘𝑏𝑘+1,𝑐(𝑘)
− 𝑏𝑘+1,𝑘(𝑘)
1 0 ⋯ ⋮
⋮ ⋮ ⋯ 𝑠𝑘𝑏𝑘+2,𝑐(𝑘)
− 𝑏𝑘+2,𝑘(𝑘)
0 1 ⋯ ⋮
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮
0 0 ⋯ 𝑠𝑘𝑏𝑍−1,𝑐(𝑘)
− 𝑏𝑍−1,𝑘(𝑘)
0 0 ⋯ 1]
Where the non-zero and non-one modules depicted above are located at k-th
column
(3-15)
At k = 0, we have
𝑈𝑠(0)
= 𝐿𝑠(0)
𝑃𝑠(0)
𝑈𝑠(−1)
𝑆𝑠(0)
Generally, at k-th step,
𝑈𝑠(𝑘)
= 𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
𝑆𝑠(𝑘)
(3-16)
where 𝑈𝑠(0)
and 𝑈𝑠(𝑘)
are shown in (3-14). Continuing the factorisation step from 𝑘 = 1 to
𝑘 = 𝑍 − 2 using 𝑈𝑠(𝑘−1)
as the input for each k-th step, 𝑈𝑠(𝑍−2)
that is an upper TERM is
obtained.
𝑈𝑠(𝑍−2)
= 𝐿𝑠(𝑍−2)
𝑃𝑠(𝑍−2)
𝐿𝑠(𝑍−3)
𝑃𝑠(𝑍−3)
… 𝐿𝑠(0)
𝑃𝑠(0)
𝑈𝑠(−1)
𝑆𝑠(0)
𝑆𝑠(1)
…𝑆𝑠(𝑍−3)
𝑆𝑠(𝑍−2)
(3-17)
71
=
[ 1 𝑢0,1
(𝑍−2)⋯ 𝑢0,𝑍−2
(𝑍−2)𝑢0,𝑍−1
(𝑍−2)
0 1 ⋯ 𝑢1,𝑍−2(𝑍−2)
𝑢1,𝑍−1(𝑍−2)
0 0 ⋱ ⋮ ⋮
⋮ ⋮ ⋯ 1 𝑢𝑘,𝑍−1(𝑍−2)
0 0 ⋯ 0 ±1 ]
With 𝑈 = 𝑈𝑠(𝑍−2)
, 𝑆 = (𝑆𝑠(0)
)−1
(𝑆𝑠(1)
)−1
…(𝑆𝑠(𝑍−3)
)−1
(𝑆𝑠(𝑍−2)
)−1
,
𝑃 = (𝑃𝑠(𝑍−2)
𝑃𝑠(𝑍−3)
… 𝑃𝑠(0)
)−1
, and 𝐿 = (𝐿𝑠(𝑍−2)
𝑃𝑠(𝑍−2)
𝐿𝑠(𝑍−3)
𝑃𝑠(𝑍−3)
…𝐿𝑠(0)
𝑃𝑠(0)
)−1
, (3-17)
can be re-written as:
𝐴𝑇 = 𝑃𝐿𝑈𝑆
Where,
P is a permutation matrix,
L and S are lower unit TERM, and
U is an upper TERM
(3-18)
3.1.2.2 Application of PLUS Matrices
All the P, L, U and S matrices are applied to the hyperspectral image according to Figure
3-3 using reversible lifting operations [232]. The figure depicts the lifting process for a 4
band hyperspectral image and ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑎, ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑏, ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑐 and ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑑 are the
sample values across the band, i.e. from a similar spatial location. The lifting process
involves the operations of multiplication (e.g. ℎ_𝑎𝑑𝑗𝑢𝑠𝑡𝑎 and 𝑆3,0), addition and rounding
up (denoted by the [] symbol). It starts with matrix S (bottom to up) followed by U (top to
bottom), L (bottom to top) and finally P for permutation operation. The encoded
hyperspectral image (denoted in the figure by samples ℎ_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑎, ℎ_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑏,
ℎ_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑐 and ℎ_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑑) is in an integer form due to the integer mapping [174].
72
LUS
+
s3,0 s3,1 s3,2
[]
+
+
s2,0 s2,1
[]
+
s1,0
[]
+
+
u0,1 u0,2 u0,3
[]
+
+
u1,2 u1,3
[]
+
+
u2,3
[]
++
l3,0 l3,1 l3,2
[]
+
+
l2,0 l2,1
[]
+
l1,0
[]
+
h_adjusta
h_adjustb
h_adjustc
h_adjustd
h_encodeda
h_encodedb
h_encodedc
h_encodedd
P
Figure 3-3: Implementation of P, L, U and S matrices
3.2 Numerical Experiment Outline
This section outlines the numerical experiment carried out to evaluate the Integer KLT
algorithm for lossless hyperspectral compression comparing it with its rival, the recently
announced CCSDS recommendation in [123].
The Integer KLT was evaluated in combination with two different spatial decorrelation
algorithms, the JPEG2000 and the JPEG-LS, following the compression scheme in
Figure 2-12.
Due to the Integer KLT generating the overhead information (i.e. the P, L, U, S and
RoundedMean as discussed in Section 3.1.2) that must be supplied at the decoder end for
decoding purposes, its block diagram when used with the JPEG2000 or the JPEG-LS
spatial compressor is slightly different compared to Figure 2-12. The block diagram for
this compression approach is shown in Figure 3-4 whereas Figure 3-5 shows the
decompression stages by considering the overhead information as part of the compressed
image data.
Hyperspectral Image Spectral Decorrelation
(Integer KLT)
Spatial Compression
(JPEG2000/JPEG-LS
Compressed
Hyperspectral Image
+Overhead Information
Figure 3-4: Integer KLT Encoding + Spatial Compressor Block Diagram
(Compression)
73
Original
Hyperspectral Image
Spatial Decompression
(JPEG2000/JPEG-LS)
Spectral Decoding
(de-Integer KLT)
Compressed
Hyperspectral Image
+Overhead Information
Figure 3-5: Spatial Decompressor + Integer KLT Decoding Block Diagram
(Decompression)
The CCSDS-MHC recommended algorithm, with block diagram shown in Figure 2-27, is
implemented in two versions covering (i) the full prediction mode, referred to as CCSDS-
MHC-FP and (ii) a reduced prediction mode, referred to as CCSDS-MHC-RP. The output
from the predictor of the CCSDS-MHC algorithm is also extracted by modifying the Java
codes and further compressed by using the spatial algorithms JPEG2000 and JPEG-LS,
replacing the entropy encoder in the algorithm to evaluate its performance.
The JPEG2000 Part II which is a wavelet-based spectral decorrelator and a spatial
compressor is also tested and compared with the other algorithms.
The compression performance was evaluated in terms of the compression ratio (CR) and
the spectral component decorrelation efficiency. Seven different hyperspectral
compression schemes were evaluated as follows:
1. Integer KLT combined with JPEG2000
2. Integer KLT combined with JPEG-LS
3. CCSDS reduced prediction mode (CCSDS-MHC-RP)
4. CCSDS full prediction mode (CCSDS-MHC-FP)
5. CCSDS-MHC-FP combined with JPEG2000
6. CCSDS-MHC-FP combined with JPEG-LS
7. JPEG2000 Part II
AVIRIS hyperspectral images from the 1997 dataset [233] and the 2006 dataset [234]
were employed in the testing process. All the images were cropped spatially to a size of
512×512 pixels from the upper left corner for all the 224 bands.
Open source hyperspectral image compression software, developed by the Group on
Interactive Coding of Images (GICI) [235], was used in the experiment, such as Integer
KLT Java implementation [236] and CCSDS-MHC Java implementation as well as the
2D image compression software JPEG2000 [237] and JPEG-LS, implementing the
LOCO-I algorithm [238]. These software components have been used widely in
multispectral, hyperspectral and 2D image compression studies. The Java Integer KLT
software [236] was used in [115, 228, 239, 240] for performance analysis of the
74
hyperspectral compression algorithm as well as for comparison with other algorithms.
The Java code for the CCSDS-MHC software [241] was used in [186, 242, 243] for
similar purposes. The JPEG2000 software [237] (referred to as Kakadu) as well as the
JPEG-LS [238] have also been very popular in 2D/3D image compression studies, e.g.
[115, 244] and [131, 201], respectively. All the public domain software used in this
section has been tested for compression/encoding and decompression/decoding to verify
the losslessness of the software. The software experiments were executed on a desktop
platform summarised in Table 3-5.
Table 3-5: Desktop System
Operating System Windows 7 64-bit Enterprise
Processor Intel Core i7 880 - 3.06 GHz (quad-core with Hyper-threading – 8 threads)
Storage 500 GB, 7200 rotation-per-minute (rpm), SATA II-3 Gbps magnetic hard disk
RAM 16 GB
Further details about the software components and procedures used during the evaluation
are given in Appendix E.
3.3 Comparison of Lossless Compression Performances
Table 3-6 shows the compression ratios of the different hyperspectral compression
schemes in terms of CR. The list of the AVIRIS images is shown in in the first column,
using images from the 1997 [233] and 2006 dataset [234]. All the images from the 1997
dataset are calibrated whereas each of image from the 2006 dataset has calibrated and
uncalibrated (calibrated images are abbreviated as Cal. and uncalibrated as Uncal. in
tables and figures) versions as listed in the table. The table shows the lossless CR
evaluated as original image size/compressed image size for the following schemes:
a) Integer KLT + JPEG2000 : 2nd
column
The Integer KLT as spectral decorrelator is used along with the lossless
JPEG2000 as spatial compressor,
b) Integer KLT + JPEG-LS : 3rd
column
Similar to a), only the output from the Integer KLT is spatially compressed
using the JPEG-LS,
c) CCSDS-MHC-RP : 4th
column
75
RP (Reduced Prediction) mode is used in combination with the column
oriented sample selection. This mode is suitable for raw data from pushbroom
hyperspectral imagers as stated in [123],
d) CCSDS-MHC-FP : 5th
column
FP (Full Prediction) mode is used in combination with the neighbour-oriented
sample selection. It could give the best compression performance for
whiskbroom imagers and calibrated imagery [123],
e) CCSDS-MHC-FP + JPEG2000 : 6th
column
In this approach, the mapped prediction residuals, 𝛿𝑧,𝑦,𝑥 from the predictor
block that use the similar mode as in d) are spatially compressed using
JPEG2000,
f) CCSDS-MHC-FP + JPEG-LS : 7th
column
Similar to e), only the mapped prediction residuals are spatially compressed
using the JPEG-LS, and
g) JPEG2000 Part II : 8th
column
The JPEG2000 Part II is a standard that compresses 3D images using the
lossless integer CDF 5/3 wavelet for both spectral decorrelation and spatial
compression.
The shaded cells in the table mark the compression method that gives the best (highest)
CR for a hyperspectral image. At the end of each of dataset category (i.e. 1997 dataset,
2006 dataset-calibrated and 2006 dataset-uncalibrated), the average is given and the
highest is marked as well. The evaluation of the CR performance of the proposed Integer
KLT based compression schemes takes into account the overhead information of the
compressed data, which is required at the decoder end. The losslessness of all the
algorithms involved has been verified through comparison of the original hyperspectral
test images with the decompressed ones.
76
Table 3-6: Performance Comparison of Different Hyperspectral Compression Schemes in terms of CR using AVIRIS Images
Hyperspectral Image Integer KLT +
JPEG2000
Integer KLT +
JPEG-LS *CCSDS-MHC-RP †CCSDS-MHC-FP
‡CCSDS-MHC-FP
+ JPEG2000
‡CCSDS-MHC-FP
+ JPEG-LS JPEG2000 Part II
1 2 3 4 5 6 7 8
AV
IRIS
1997 d
atas
et [
233]
Cuprite Scene 1 3.2401 3.1624 3.0684 3.2795 2.9945 2.9555 3.0313
Cuprite Scene 2 3.1799 - 3.0065 3.2113 2.9290 2.8978 2.9233
Cuprite Scene 3 3.2158 3.1415 3.0483 3.2590 2.9788 2.9398 3.0113
Cuprite Scene 4 3.1915 - 3.0263 3.2354 2.9570 2.9203 2.9890
Jasper Ridge Scene 1 3.2519 3.1754 3.0345 3.2439 2.9476 2.9129 2.8912
Jasper Ridge Scene 2 3.2546 - 3.0428 3.2579 2.9584 2.9257 2.9187
Jasper Ridge Scene 3 3.2452 3.1699 3.0138 3.2273 2.9324 2.8978 2.8514
Jasper Ridge Scene 4 3.2351 - 3.0130 3.2272 2.9294 2.8991 2.9074
Jasper Ridge Scene 5 3.2543 - 3.0481 3.2657 2.9686 2.9317 2.6900
Low Altitude Scene 1 3.0355 - 2.8158 2.9894 2.7210 2.7144 2.9890
Low Altitude Scene 2 3.0197 - 2.7804 2.9520 2.6833 2.6845 2.6595
Low Altitude Scene 3 3.0521 2.9869 2.8535 3.0285 2.7604 2.7503 2.7612
Low Altitude Scene 4 3.0359 - 2.8320 3.0059 2.7425 2.7327 2.7567
Low Altitude Scene 5 3.0268 - 2.8199 2.9963 2.7342 2.7276 2.7404
Low Altitude Scene 6 3.0545 - 2.8601 3.0336 2.7697 2.7576 2.7701
Low Altitude Scene 7 3.0664 - 2.8640 3.0431 2.7759 2.7616 2.7572
Lunar Lake Scene 1 3.1758 - 3.0104 3.2206 2.9406 2.9085 3.0195
Lunar Lake Scene 2 3.2059 - 3.0368 3.2501 2.9649 2.9299 3.0261
AVERAGE 3.1523 3.1272 2.9541 3.1515 2.8716 2.8471 2.8719
AV
IRIS
2006 d
atas
et [
234]
Yellowstone Cal. Scene 0 4.0763 3.9670 3.7356 4.0982 3.6401 3.5537 3.3371
Yellowstone Cal. Scene 3 4.1692 4.0527 3.8340 4.2042 3.7326 3.6344 3.4185
Yellowstone Cal. Scene 10 4.7070 4.5423 4.3835 4.8597 4.2877 4.1022 4.3928
Yellowstone Cal. Scene 11 4.3344 - 4.0579 4.4667 3.9630 3.8422 3.7771
Yellowstone Cal. Scene 18 4.1189 - 3.6610 4.0071 3.5634 3.4873 3.3873
AVERAGE 4.2812 4.1873 3.9344 4.3272 3.8374 3.7240 3.6626
Yellowstone Uncal. Scene 0 2.6084 - 2.3150 2.4776 2.2379 2.2806 2.2215
Yellowstone Uncal. Scene 3 2.6561 - 2.3727 2.5343 2.2937 2.3330 2.2620
Yellowstone Uncal. Scene 10 2.9403 - 2.6866 2.8717 2.6358 2.6287 2.7308
Yellowstone Uncal. Scene 11 2.7417 - 2.5335 2.7028 2.4679 2.4928 2.4238
Yellowstone Uncal. Scene 18 2.6304 - 2.2684 2.4161 2.2008 2.2372 2.2332
AVERAGE 2.7154 - 2.4352 2.6005 2.3672 2.3945 2.3743
* Reduced Prediction mode – combination with column oriented sample selection – intended for raw data from pushbroom hyperspectral imagers [123].
† Full Prediction mode – combination with neighbour oriented sample selection – intended for whiskbroom imagers and calibrated imagery [123].
‡ Full Prediction mode along with neighbour oriented sample selection – only prediction part is used. Reduced Prediction Mode produced lower performance and hence not shown.
77
3.3.1 Compression Ratio Results
From Table 3-6, averagely, the Integer KLT + JPEG2000 (2nd
column) gives the highest
CR for the AVIRIS 1997 (calibrated) as well as 2006-uncalibrated datasets. The CCSDS-
MHC-FP (5th
column) gives the best CR only for AVIRIS 2006-calibrated dataset,
averagely. The absolute differences of CR between the two methods in each image varies
from 0.0033 (Jasper Ridge Scene 1) to 0.2143 (Yellowstone Uncalibrated Scene 18).
Overall, it can be said that the Integer KLT + JPEG2000 gives better performance
compared to the CCSDS-MHC algorithm. The Integer KLT that statistically decorrelates
the spectral components reduces the spectral redundancy, i.e. the similarity between the
bands. The use of the JPEG2000 as a spatial compression further improves the overall
compression system performance.
The combination of the Integer KLT and the JPEG2000 gives higher CR performance
compared to the Integer KLT + JPEG-LS (3rd
column). Note also, there are some
hyperspectral images that could not be compressed using the Integer KLT and the JPEG-
LS combination due to the large output from the Integer KLT that could not fit into the
16-bit data type requirement of the JPEG-LS.
From the table, the CCSDS-MHC-FP (5th
column) gives better CR performance
compared to the CCSDS-MHC-RP (4th
column) for all the hyperspectral images,
including the uncalibrated images. The replacement of the adaptive entropy encoder
inside the CCSDS-MHC algorithm with the JPEG2000 (6th
column) and the JPEG-LS
(7th
column) does not further increase the performance. However, the combination with
the JPEG2000 gives higher CR values than the JPEG-LS. This proves that the adaptive
entropy encoder inside the CCSDS-MHC algorithm performed more efficiently than both
the spatial compression algorithms.
The JPEG2000 Part II (8th
column) although not giving the best performance, produces
about similar performance averagely with the CCSDS-MHC-FP and the JPEG2000
combination as given in the 6th
column of the table.
3.3.2 Spectral Component Decorrelation Performance
It is clear that the entropy encoder in the CCSDS-MHC algorithm (adaptive entropy
encoder) helps in improving the compression performance. In this section, the spectral
78
decorrelation performance of the predictor part inside the CCSDS-MHC will be
evaluated.
The output from the predictor (i.e. mapped prediction residuals, 𝛿𝑧,𝑦,𝑥) from the CCSDS-
MHC-FP will be analysed by calculating its correlation matrix using (3-19) for each pair
of spectral band A and B, where cov(A, B) is the covariance of band A and B, and σ() is
the standard deviation of the respective spectral bands. The correlation is also known as
Pearson product-moment correlation coefficient, PPMCC [245]. 𝑎𝑖 and 𝑏𝑖 in the right-
hand-side of the equation are the individual samples or pixels from the two bands A and
B, respectively from a hyperspectral image with the spatial size of M×M. A similar
equation will be used in Chapter 7 to analyse the input and the encoded hyperspectral
image and has been used for evaluating the performances of several spectral decorrelation
algorithms as in [117, 156].
Correlation(𝐴, 𝐵) =cov(𝐴, 𝐵)
𝜎(𝐴)𝜎(𝐵)=
𝑀𝑀(∑𝑎𝑖𝑏𝑖) − (∑𝑎𝑖)(∑𝑏𝑖)
√(𝑀𝑀∑𝑎𝑖2 − (∑𝑎𝑖)
2)(𝑀𝑀∑𝑏𝑖2 − (∑𝑏𝑖)
2)
Where 0 ≤ i ≤ MM – 1
(3-19)
For 224 spectral bands in an AVIRIS image, the correlation values will form a 224×224
correlation matrix, with correlation values in the main diagonal equal to 1 (i.e. correlation
between a band and itself). For analysis purposes, the correlation matrix is displayed by
assigning the lowest correlation value 0 (zero) as black and white for correlation value
that is equal to 1 (highest). High correlation values mean the two spectral bands A and B
are highly correlated whereas low correlation values mean otherwise.
Correlation matrix image from the predictor part of the CCSDS-MHC-FP configuration
are shown in Figure 3-6(a)-(ab) for each of the AVIRIS images used. A good spectral
decorrelator should produce correlation matrix with small values (except at the diagonal,
with values of 1) such as the Integer KLT. The correlation matrix images from the Integer
KLT however are not shown since all of the hyperspectral images are perfectly
decorrelated (i.e. small correlation values, from around ±0.0001 to ±0.1) and can simply
be visualised as a black square with white at the main diagonal pixels. From the figures,
there are obviously bright regions in most of the images indicating that there is still quite
significant spectral redundancy even after the prediction part of the algorithm.
79
(a) Cuprite Sc. 1* (b) Cuprite Sc. 2* (c) Cuprite Sc. 3* (d) Cuprite Sc. 4*
(e) Jasper Ridge Sc. 1 (f) Jasper Ridge Sc. 2* (g) Jasper Ridge Sc. 3 (h) Jasper Ridge Sc. 4
(i) Jasper Ridge Sc. 5* (j) Low Altitude Sc. 1 (k) Low Altitude Sc. 2 (l) Low Altitude Sc. 3
(m) Low Altitude Sc. 4 (n) Low Altitude Sc. 5 (o) Low Altitude Sc. 6 (p) Low Altitude Sc. 7
(q) Lunar Lake Sc. 1* (r) Lunar Lake Sc. 2* (s) Yellowstone Cal. Sc. 0* (t) Yellowstone Cal. Sc. 3*
(u) Yellowstone Cal. Sc. 10* (v) Yellowstone Cal. Sc. 11* (w) Yellowstone Cal. Sc. 18 (x) Yellowstone Uncal. Sc. 0
80
(y) Yellowstone Uncal. Sc. 3 (z) Yellowstone Uncal. Sc.
10
(aa) Yellowstone Uncal.
Sc. 11
(ab) Yellowstone Uncal. Sc.
18
* Correlation matrix images that gives CR higher than the Integer KLT
Figure 3-6: Correlation Matrix Images from Mapped Prediction Residuals of CCSDS-
MHC-FP Configuration on AVIRIS Images
A correlation matrix image having no or less visible bright regions would result into a
better CR performance even with the CCSDS-MHC algorithm. This can be observed by
relating the correlation matrix images from Figure 3-6 with the CR results obtained
previously. Differences of CR between the CCSDS-MHC and the Integer KLT are
obtained from Table 3-6 and sorted in descending order as shown in Table 3-7.
The correlation matrix images from the CCSDS-MHC-FP that gives a CR higher than the
Integer KLT are marked with an asterisk in Figure 3-6. In both Table 3-7 and Figure 3-6,
most hyperspectral images are less decorrelated (i.e. with significant bright regions in its
correlation matrix images) giving lower CR performances compared to the Integer KLT.
The Integer KLT with its superior capability in spectral decorrelation performs better and
produces a higher CR performance. Similarly, most of the hyperspectral images that have
been perfectly or almost perfectly decorrelated by the adaptive prediction method in the
CCSDS-MHC-FP algorithm (i.e. with mostly dark regions in its correlation matrix
images) give higher CR than the Integer KLT. The higher CR results from the CCSDS-
MHC-FP could also be due to the efficiency of the adaptive entropy encoder as discussed
previously.
Table 3-7: CR Performance of CCSDS-MHC-FP and Integer KLT + JPEG2000
Hyperspectral Image CCSDS-MHC-FP Integer KLT + JPEG2000 Difference
Yellowstone Uncal. Scene 18 2.4161 2.6304 -0.2143
Yellowstone Uncal. Scene 0 2.4776 2.6084 -0.1308
Yellowstone Uncal. Scene 3 2.5343 2.6561 -0.1218
Yellowstone Cal. Scene 18 4.0071 4.1189 -0.1118
Yellowstone Uncal. Scene 10 2.8717 2.9403 -0.0686
Low Altitude Scene 2 2.9520 3.0197 -0.0677
Low Altitude Scene 1 2.9894 3.0355 -0.0461
Yellowstone Uncal. Scene 11 2.7028 2.7417 -0.0389
Low Altitude Scene 5 2.9963 3.0268 -0.0305
Low Altitude Scene 4 3.0059 3.0359 -0.0300
Low Altitude Scene 3 3.0285 3.0521 -0.0236
81
Low Altitude Scene 7 3.0431 3.0664 -0.0233
Low Altitude Scene 6 3.0336 3.0545 -0.0209
Jasper Ridge Scene 3 3.2273 3.2452 -0.0179
Jasper Ridge Scene 1 3.2439 3.2519 -0.0080
Jasper Ridge Scene 4 3.2272 3.2351 -0.0079
Jasper Ridge Scene 2 3.2579 3.2546 0.0033
Jasper Ridge Scene 5 3.2657 3.2543 0.0114
Yellowstone Cal. Scene 0 4.0982 4.0763 0.0219
Cuprite Scene 2 3.2113 3.1799 0.0314
Yellowstone Cal. Scene 3 4.2042 4.1692 0.0350
Cuprite Scene 1 3.2795 3.2401 0.0394
Cuprite Scene 3 3.2590 3.2158 0.0432
Cuprite Scene 4 3.2354 3.1915 0.0439
Lunar Lake Scene 2 3.2501 3.2059 0.0442
Lunar Lake Scene 1 3.2206 3.1758 0.0448
Yellowstone Cal. Scene 11 4.4667 4.3344 0.1323
Yellowstone Cal. Scene 10 4.8597 4.7070 0.1527
3.3.3 Discussion
The CCSDS-MHC is a new recommended algorithm for compressing multispectral or
hyperspectral images losslessly. It is based on an adaptive predictive coding that performs
well and has achieved real-time performance using high performance parallel computing
platforms [25]. The CCSDS-MHC-FP performs better than the CCSDS-MHC-RP in all
AVIRIS images including the uncalibrated images, even though the CCSDS-MHC-RP
mode is intended for uncalibrated data. The adaptive entropy encoder plays an important
role in improving the CR significantly and this can be seen by replacing the encoder with
the JPEG2000 and the JPEG-LS algorithm.
The local sum value (𝜎𝑧,𝑦,𝑥) and local difference vector (𝑈𝑧,𝑦,𝑥) of the CCSDS-MHC-RP
(reduced prediction with column oriented) is more suitable for implementation in the
spectrometer/payload data processing unit in parallel than the CCSDS-MHC-FP even
though the former method produces lower a CR performance. This is best visualised in
Figure A-2 (in Appendix A) which illustrates the basic elements of a hyperspectral
imager/spectrometer pushbroom sensor [246]. With the x, y and z axes here tallying to the
axes shown in Figure C-1 (in Appendix C), the local sum value can be obtained by using
the sample that is available on the 2D CCD sensor only (e.g. 𝐴𝐵𝑎𝑛𝑑0,𝑦−1,𝑥" as 𝑠𝑧,𝑦−1,𝑥 from
the figure). Similarly, the local difference vector (𝑈𝑧,𝑦,𝑥) can be calculated using
samples 𝐴𝐵𝑎𝑛𝑑1,𝑦−1,𝑥" , 𝐴𝐵𝑎𝑛𝑑2,𝑦−1,𝑥
" , …, 𝐴𝐵𝑎𝑛𝑑𝑍−𝑃,𝑦−1,𝑥" ; all are available at the sensor. Up
to this point, both the local sum and local difference can be parallelised as has been done
in [25, 247] in the parallel processing platform (i.e. GPGPU and multicore CPU).
82
However, due to the weight vector W𝑧(𝑡) update after the encoding each of samples, the
next part of the algorithm is executed serially and becomes a bottleneck of the algorithm
[247]. On the other hand, the CCSDS-MHC-FP (full prediction with neighbour oriented),
due to the requirement of NW and W samples (i.e. 𝐴𝐵𝑎𝑛𝑑1,𝑦−1,𝑥−1" and 𝐴𝐵𝑎𝑛𝑑1,𝑦,𝑥−1
" as
𝑠𝑧,𝑦−1,𝑥−1 and 𝑠𝑧,𝑦,𝑥−1, respectively in (C-1)) that are not acquired yet make the local sum
as well as the local difference vector calculation become difficult. This makes the method
more suitable for a whiskbroom imager and also on a complete hyperspectral image
where all the samples needed are available.
The Integer KLT which is the integer approximation of the actual KLT could also
compress the hyperspectral images losslessly with the JPEG2000 as a spatial
compression. The Integer KLT gives a slightly better performance in terms of CR and has
the best spectral decorrelation capability. The data dependency on each sample in a
hyperspectral image makes the parallelisation of the Integer KLT from a sample encoding
point of view become impossible. The Integer KLT is more suitable when the whole
hyperspectral image cube is available to statistically reduce the similarity of features that
exists in each spectral band. However, it is still possible to encode a slice from the
hyperspectral image that is available on the CCD sensor (Figure A-2, image plane 2)
although this will produce lower compression results compared to the case that considers
the whole image cube.
The only problem with the Integer KLT is its complexity that is too high, in fact higher
than the original KLT algorithm (lossy). An investigation is needed to reduce the
complexity of the Integer KLT while maintaining or improving the CR performance.
High performance implementation (on a desktop or high performance DSP) is required to
observe its performance in comparison to the CCSDS-MHC algorithm. However, for
space application, power is too limited and hence low power implementation is also
necessary to be considered in the study. The Integer KLT should also have the capability
to detect soft error (from radiation that could affect the algorithm but not serious enough
to harm the hardware system) and perform some correction or recovery so that the flow
of the algorithm will not be affected.
Both the CCSDS-MHC and the Integer KLT require buffer memory to store the
hyperspectral image before performing the compression. The buffer memory for the
CCSDS-MHC is smaller than the Integer KLT due to the capability of the CCSDS-MHC
algorithm to perform the compression on a small neighbourhood of samples and P
83
predefined number of spectral bands. For the Integer KLT, the buffer memory would be
larger for the statistical approach of encoding the whole spatial and spectral components.
Hyperspectral image partitioning; spatially (tiling) and spectrally (clustering) can be
introduced to reduce the size of the buffer memory required. An extensive study is
required to investigate the effect of clustering and tiling on the CR performance as well as
the complexity of the algorithm.
Parallelisation in the Integer KLT is also an interesting direction to consider. Even though
parallelisation from the sample point of view seems to be impossible due to the statistical
characteristic of the algorithm, parallelisation from a clustering/tiling point of view seems
doable and can benefit from lower buffer memory as well as faster execution that will
lead to a lower on-board power consumption. OpenMP is an example of an application
programming interface (API) that can be used to achieve software parallelisation through
shared memory parallelism for the Integer KLT.
3.4 Conclusion
Both the CCSDS-MHC recommended algorithm and the Integer KLT with the JPEG2000
for the spatial compression could perform lossless compression on hyperspectral images
efficiently with the Integer KLT and the JPEG2000 showing a slightly better performance
in terms of CR than the CCSDS. The Integer KLT and the JPEG2000 averagely produced
the best CR performance for calibrated AVIRIS 1997 images as well as uncalibrated
2006 dataset while the CCSDS-MHC gave the best performance in compressing the
calibrated 2006 dataset. To the best of the author’s knowledge, this is the first time the
CCSDS-MHC algorithm is compared with the Integer KLT.
The Integer KLT has shown a better performance in decorrelating the spectral component
compared to the CCSDS-MHC based on the analysis of the AVIRIS images. This is
evidenced by the lack of bright regions (i.e. small correlation coefficient or reduced
similarity between bands) in the Integer KLT output , while the output from the CCSDS-
MHC algorithm still has observable bright regions (i.e. larger correlation coefficient
between bands). However, the entropy encoder from the CCSDS-MHC algorithm has
managed to achieve a significant data reduction from the predictor output. Due to the
superior capability in decorrelating the spectral component and a slightly better CR
performance when used along with the JPEG2000, the Integer KLT and the JPEG2000
algorithm are selected for further use in this study.
84
Chapter 4 Reducing the Computational
Complexity of Integer KLT
The integer approximation of the KLT, i.e. the Integer KLT, has shown an attractive
capability to reduce spectral redundancy across bands in a hyperspectral image. It is,
however, computationally complex especially for embedded implementations. In this
chapter, several enhancement techniques will be proposed aimed at reducing the
complexity of the Integer KLT. The Integer KLT is selected due to its reversible
advantage which suits space applications that demand a lossless process.
Section 4.1 introduces the selected hyperspectral datasets that will be used from this point
onwards for evaluating the low-complexity Integer KLT. Section 4.2 describes the
compression performance parameters and also suggests an overhead information
compaction method that will help improving the overall compression performance.
Section 4.3 elaborates in detail on the clustering and tiling techniques performed on the
input hyperspectral image prior to the encoding process. Section 4.4 expands on the idea
of clustering by parallelising Integer KLT clusters using the OpenMP environment.
Section 4.5 discusses a new fixed sampling method for covariance matrix calculation,
aimed at reducing the complexity of the process. In Section 4.6, a sparse matrix-matrix
multiplication optimisation process will be outlined and further explanation will follow in
Section 6.2.2 from Chapter 6. The performance evaluation of all the optimisation
techniques proposed in this chapter is then presented in Section 4.7. Section 4.8
concludes the chapter.
4.1 Hyperspectral Datasets
Four hyperspectral images acquired from each of the two hyperspectral sensors – the
airborne AVIRIS [233, 234] and the spaceborne Hyperion imager [248] – are employed
as the test images in this study. AVIRIS images are taken at the nominal altitude of 20
km [127] on NASA’s ER-2 jet [233]. The choice of AVIRIS is motivated by the fact that
its datasets have been used widely in hyperspectral image compression research,
providing a good basis for comparison [113, 181, 249]. AVIRIS data have also been used
for simulation of spaceborne imagery [250-253]. Hyperion is one of a few spaceborne
85
hyperspectral imagers that are operational at the time of writing of this thesis, and its
imagery is employed to investigate the Integer KLT performance on spaceborne
hyperspectral datasets. Hyperion is flown on the EO-1 (Earth Orbiter -1) satellite at 705
km altitude [254]. The AVIRIS images are stored as BIP whereas the Hyperion images as
BIL interleave, which has been explained in Section 2.1.5 previously.
The AVIRIS and Hyperion test images are listed in Table 4-1, which includes their
original size in pixels (lines × samples × bands corresponds to row × column × band in
the remaining text), the abbreviated names used in this thesis and the acquisition details.
Both datasets use 16 bits to store a single pixel value (i.e. 16 bits per pixel, bpp or bits per
pixel per band, bpppb).
Table 4-1: AVIRIS and Hyperion Test Images
Hyperspectral Image Original Size
(lines×samples×bands) Abbreviation Acquisition
AV
IRIS
Jasper Ridge Scene 3 512×614×224 Jasper3 1997 datasets [233]
Low Latitude Scene 2 512×614×224 Low2 "
Yellowstone Calibrated Scene 11 512×677×224 YSCal11 2006 datasets [234]
Yellowstone Uncalibrated Scene 18 512×680×224 YSUncal18 "
Hy
per
ion EO1H0090112001140111PP_PF1_01 6032×256×242 Greenland 20, May 2001
EO1H0120312001129111P1_PF1_01 6926×256×242 Boston 9, May 2001
EO1H0140362001127110PP_AGS_01 6926×256×242 Edenton 7, May 2001
EO1H0150332001134111P1_AGS_01 7149×256×242 Portobago 14, May 2001
All AVIRIS images are cropped spatially to a size of 512×512 pixels from the upper left
corner for all the 224 bands. The false-colour representations of these datasets are shown
in Figure 4-1(a)-(d). The size of an AVIRIS image after the cropping process is 117.44
MB.
All Hyperion images are cropped to a size of 256×256. The selected lines (i.e. rows) for
each of the Hyperion images from the cropping process are listed in Table 4-2. The
cropped spatial region covered places in Greenland-Denmark, Boston-USA, North-
eastern Regional Airport-Edenton-USA, and Portobago Bay-USA, respectively as listed
in Table 4-1. Out of 242 bands, only 196 bands, which were classified as unique and
calibrated, have been extracted (i.e. bands 8-57 and bands 79-224) [255]. False-colour
representations of the images are shown in Figure 4-1(e)-(h). The size of a Hyperion
image after the cropping and the spectral bands removal is 25.69 MB.
86
Table 4-2: Lines Selection for Cropping Process in Hyperion Images
Hyperion Images Selected Lines
Greenland 4714 - 4969
Boston 0 - 255
Edenton 0 - 255
Portobago 6722 - 6977
(a) Jasper3 (b) Low2 (c)YSCal11 (d)YSUncal18
(e) Greenland (f) Boston (g) Edenton (h) Portobago
Figure 4-1: False-Colour Representation for AVIRIS ((a)-(d)) and Hyperion ((e)-(h))
The original AVIRIS 1997, 2006 and Hyperion datasets have different file formats. The
AVIRIS 1997, 2006 calibrated and 2006 uncalibrated datasets are in .img, .cal and .raw
file extensions, respectively. For Hyperion, it is in a Hierarchical Data Format (HDF)
version 4.1 [256], in .L1R extension. For development purposes, all the hyperspectral
images are read in Matlab and saved as individual binary files with .bin extension. The
Matlab syntax to read an AVIRIS image, crop and save as .bin file is shown in Listing
F-1 (Appendix F) with Jasper3 image (.img file extension) as an example. The syntax can
be used for the other two file formats (.cal and .raw). Similarly, for the Hyperion dataset,
the syntaxes are shown in Listing F-2 for the EO1H0090112001140111PP_PF1_01 (i.e.
Greenland) image. Note that the permute instruction (line 3 from both of the figures) is
just to make sure that the image data is aligned in [band][column][row] so that when read
by the C++ code, the image data is stored as [row][column][band] correctly inside a 3D
variable that needs to be encoded. Note also that in Listing F-1 and Listing F-2, the
matrix indexing starts at 1 in comparison to C/C++ that starts at 0.
All the code development and performance evaluation for the Integer KLT in this chapter
were carried out in Microsoft Visual C++ 2008 and 2010 on the desktop platform (as
described in Table 3-5) for the parallelised (using OpenMP) and non-parallelised
87
implementation, respectively. The C++ code to read the binary input file is shown in
Listing F-3 for a variable named H with a size of row × column × band (declared as
H[row][column][band] or H[M][M][Z] since row = column = M and the total number of
bands Z).
Besides the selected images, another 24 AVIRIS images, 26 Hyperion images and 4
CHRIS images from the PROBA-1 mission [38] are tested and presented in Appendix G.
Details of the dataset are presented in Section G.1 (AVIRIS), Section G.2 (Hyperion) and
Section G.3 (CHRIS).
4.2 Compression Performance Parameters
4.2.1 Compression Ratio
In the compression of a hyperspectral image with a spatial size of M×M and Z number of
spectral bands (i.e. M×M×Z), the lossless compression performance (i.e. CR) defined in
(B-1) from Appendix B is re-defined as in (4-1). The equation includes the overhead
information size described in Section 3.1.2 (i.e. total size of P, L, U, and S coefficient
matrices as well as the RoundedMean) that needs to be transmitted to the decoder end due
to its requirement for decoding purposes.
CR = Original image size
(Compressed image size + Overhead information size) (4-1)
Another way of presenting lossless compression performance is through the bit-rate of
the compressed image, in number of bpppb. The bit-rate can be obtained from (4-1) using
(4-2). Note that both the original AVIRIS and Hyperion datasets have bit-rates of 16
bpppb.
Compressed image bit-rate (bpppb) = Original image bitrate
CR (4-2)
4.2.2 Execution Time
For the execution time performance parameter, it is simply evaluated in seconds. The
parameter is only measured for the Integer KLT by excluding the execution time for the
spatial compression as well as the input/output (I/O) time for reading/writing the
88
hyperspectral/compressed image from/to the memory. C++ function clock() is used
for the execution time measurement process by comparing its returned value with a value
returned by a previous call to the same function.
4.2.3 Overhead Information Compaction
The P, L, U, S matrices (each with size of Z×Z) and RoundedMean (vector with size of Z)
overhead information are combined together to form only two matrices (each with size of
Z×Z) with double data types. The L and U matrices can be compacted together producing
a Z×Z LU matrix with the lower triangular part belonging to the L and the upper
triangular part of the U matrix. However, it is worth noting that the L matrix has a unit
diagonal element whereas for U, the 𝑢𝑍−1,𝑍−1 = ± 1 [176, 240] and should be kept. In
other words, the combination of L and U matrices should preserve the lower triangular
part from L and the upper triangular part from U along with its main diagonal elements.
The combination of L and U as LU is shown in (4-3).
𝐿𝑈 =
[
𝑢0,0 𝑢0,1 ⋯ 𝑢0,𝑍−2 𝑢0,𝑍−1
𝑙1,0 𝑢1,1 ⋯ 𝑢1,𝑍−2 𝑢1,𝑍−1
⋮ ⋮ ⋱ ⋮ ⋮𝑙𝑍−2,0 𝑙𝑍−2,1 ⋯ 𝑢𝑍−2,𝑍−2 𝑢𝑍−2,𝑍−1
𝑙𝑍−1,0 𝑙𝑍−1,1 ⋯ 𝑙𝑍−1,𝑍−2 𝑢𝑍−1,𝑍−1]
(4-3)
The permutation matrix P can be represented as a column vector, 𝑃𝑐𝑜𝑙 with size Z and
each column recording the ‘1’ column position of each row of P. For example, (4-4)
shows how a P matrix is transformed to the 𝑃𝑐𝑜𝑙 column vector. The RoundedMean and
the 𝑃𝑐𝑜𝑙 can be packed together with the S matrix as the diagonal elements replacing the
unit diagonal in S. 𝑃𝑐𝑜𝑙 on the other hand can be integrated as the last column in S with
𝑝𝑐𝑜𝑙𝑍−1 placed at (0, 𝑍 − 2) location inside S replacing zero in it. These will produce the
SPMean variables that are shown in (4-5).
𝑃 = [
0 1 0 01 0 0 00 0 0 10 0 1 0
] , 𝑃𝑐𝑜𝑙 = [
1032
] (4-4)
SPMean = (4-5)
89
[ 𝑟𝑜𝑢𝑛𝑑𝑒𝑑𝑚𝑒𝑎𝑛0 0 ⋯ 𝑝𝑐𝑜𝑙𝑍−1
𝑝𝑐𝑜𝑙0
𝑠1,0 𝑟𝑜𝑢𝑛𝑑𝑒𝑑𝑚𝑒𝑎𝑛1 ⋯ 0 𝑝𝑐𝑜𝑙1
⋮ ⋮ ⋱ ⋮ ⋮𝑠𝑍−2,0 𝑠𝑍−2,1 ⋯ 𝑟𝑜𝑢𝑛𝑑𝑒𝑑𝑚𝑒𝑎𝑛𝑍−2 𝑝𝑐𝑜𝑙𝑍−2
𝑠𝑍−1,0 𝑠𝑍−1,1 ⋯ 𝑠𝑍−1,𝑍−2 𝑟𝑜𝑢𝑛𝑑𝑒𝑑𝑚𝑒𝑎𝑛𝑍−1]
After the overhead information compaction, the four square and one vector matrices can
be represented as two matrices. Due to the compaction, the decoder should be able to
extract back the original overhead information before the decoding process. Considering
Boolean, integer and double data types are equal to 1, 4, and 8 bytes, respectively, the
size of the overhead information (in bytes) without and with compaction are shown in
(4-6) and (4-7), respectively. Note that Z is the total number of bands in a hyperspectral
image to be encoded. All results in this work include the overhead information by using
the compaction method. The overhead information compaction is important and can
affect the CR performance as shown in (4-1) previously.
Overhead information size (without compaction) = 𝑍2 + 3(8𝑍2) + 4𝑍 = 25𝑍2 + 4𝑍 (4-6)
Overhead information size (with compaction) = 2(8𝑍2) = 16𝑍2 (4-7)
4.3 Clustering and Tiling Techniques
Clustering and tiling are the processes prior to encoding with the Integer KLT. The main
objectives of performing clustering and tiling are to reduce the computational burden and
buffer memory size in order to hold a smaller temporary copy of the hyperspectral image
(referred to as sub-cube throughout the text). It can be accomplished by dividing the
image spectrally (clustering, producing several clusters) and spatially (tiling, producing
several sub-tiles), and feeding the sub-cubes into the encoder. Both clustering and tiling
has been seen as ‘divide-and-conquer’ and could reduce the CR performance as higher
level of clustering and tiling are utilised ([115, 156, 240, 257]). A block diagram of the
processes is shown in Figure 4-2. Note that the overhead information is produced for each
sub-cube and must be transmitted to the decoder end for decoding purposes.
90
Hyperspectral
ImageClustering Tiling
Lossless Spatial
Compression
(JPEG2000)
Lossless Spectral
Decorrelation*
Integer KLT
Integer KLT
Integer KLT
Compressed Hyperspectral
Image
+
*on each sub-cube
Overhead Information
(from each sub-cube)
Figure 4-2: Lossless Hyperspectral Image Compression Block Diagram
The required buffer memory to store the sub-cube is proportional to the cluster and sub-
tile size and must be kept under a reasonable size to meet the limitations of the buffer
memory. The size of the required buffer memory in bits is shown in (4-8), where M2 is
the image spatial size (before tiling), Z is the total number of spectral bands, t2 and c are
the coefficients that define clustering and tiling levels, respectively and N is the bit-rate of
the input hyperspectral image. For the case without clustering and tiling, t and c are equal
to 1 and the buffer memory would become larger, 𝑀2𝑍𝑁.
Buffer Size (bits) =𝑀2
𝑡2×
𝑍
𝑐× 𝑁 (4-8)
4.3.1 Clustering
Clustering (or sometimes referred to as spectral partitioning) in the KLT and PCA which
are lossy algorithms, have been used to reduce the computational burden by reducing the
number of spectral bands to be encoded at a time in [258, 259]. Similarly, clustering on
the Integer KLT can be performed by encoding a group of z bands rather than the total
number of bands Z in a hyperspectral image, where z ≤ Z. Without ignoring any spectral
bands, the process is repeated for c number of iterations, where c is the number of
clusters that is defined as:
𝑐 =Z
z
Where z ∈ Z, z || Z
(4-9)
The number of bands in each cluster (i.e. cluster size), 𝑍 𝑐⁄ should be uniform. This
method is referred to as the normal clustering method in [115], shown in Figure 4-3(a).
The number of clusters, c is represented by the total number of the Integer KLT block in
the figure, and the cluster size 𝑍 𝑐⁄ is visualised as the number of arrows in each block
91
and this should be similar in each block. Note that the number of clusters, c and cluster
size, 𝑍 𝑐⁄ are used interchangeably in the text to represent the level of clustering, where c
= 1 is the lowest level (i.e. no clustering is used).
A similar but slightly different method was performed through the multilevel approaches
in [120] for 3D magnetic resonance imaging (MRI) by using two levels and has been
extended in [115] using multilevel clustering of several AVIRIS and computed
tomography (CT) images. This method is shown in Figure 4-3(b). Multilevel clustering is
a stacked version of the normal clustering performed on the higher energy components.
The next level is derived from the previous levels until only one cluster is processed at
the highest level. The low energy components are considered encoded without any further
modification. Multilevel clustering of the Integer KLT could bring some degree of
spectral scalability for lossy coding and costs (2 − 1 𝑐⁄ ) more in comparison to the
normal clustering as stated in [115]. It also makes the algorithm slightly more complex
and redundant when only a lossless process is involved.
Integer KLT
Integer KLT
Integer KLT
Integer KLT Integer KLT Integer KLT Integer KLTInteger KLT Integer KLT Integer KLT Integer KLT
(a) Normal Clustering (b) Multilevel Clustering
Figure 4-3: Clustering Strategies [115]
Since only lossless compression is considered in this work, normal clustering is sufficient
and simple to be implemented in the Integer KLT. However, there is a drawback of
normal clustering; local decorrelation within each cluster that could make the
compression performance becomes slightly degraded as c increases. Work on the Integer
KLT with normal clustering on the AVIRIS images in [115] showed this trend as well as
the work in [156] for multispectral images.
In this work, all possible number of clusters, c for the selected hyperspectral images are
used on the Integer KLT. The possible values of c are dependent to the total number of
bands, Z. However, the cluster size should not be lower than four because then the KLT
performance as spectral decorrelator will not be so effective [116]. The possible number
92
of clusters c and its size, 𝑍 𝑐⁄ for the selected AVIRIS and Hyperion hyperspectral
datasets are listed in Table 4-3 where c = 1 is the lowest clustering level and the highest
levels are set with the minimum cluster size of four.
Table 4-3: Clustering Levels for AVIRIS and Hyperion Datasets
Dataset No. of Clusters, c Cluster Size, 𝑍 𝑐⁄
AVIRIS
1 (lowest) 224
2 112
4 56
7 32
8 28
14 16
16 14
28 8
32 7
56 (highest) 4
Hyperion
1 (lowest) 196
2 98
4 49
7 28
14 14
28 7
49 (highest) 4
Knowing that each cluster (or sub-cube) of a hyperspectral image is decorrelated locally
using the Integer KLT means that each cluster will produce its own overhead information
with size of z×z matrices (instead of Z×Z for the case without clustering). The overhead
information is necessary to be transmitted to the decoder for decoding process.
4.3.2 Tiling
Tiling can be seen as dividing a hyperspectral image from a spatial direction. The main
reason to perform tiling is because the dimension of a hyperspectral image is extremely
large and would be complicated to handle the whole image at one time. For example, the
whole Low Altitude dataset from the AVIRIS imager has a size of 3689×614 from
spatial direction. For experimental purposes in this study, the AVIRIS and Hyperion
datasets are cropped into 512×512 and 256×256 tile size, respectively (as explained in
Section 4.1) and further tiling (which generates several sub-tiles) is introduced to see its
effect on the overall compression performance.
The introduction of tiling in the compression of satellite images has proven to increase
the resilience of the image compression algorithm to single-event upsets (SEUs) induced
93
by radiation [260, 261]. However, the compression performance suffers if the tile size is
too small. On the other hand, the tile size also determines the buffer size for the on-board
storage, so it cannot be very large either [262]. A careful trade-off analysis is required to
determine the right tile size.
Generally, for an M×M spatial size of a hyperspectral image, tiling is performed by
dividing it into several m×m sub-tile where m < M. The number of sub-tiles, t2 is defined
as the ratio between M×M and m×m, shown in (4-10). To encode the whole M×M
region, the Integer KLT is repeated for t2 number of iterations and should cover the whole
spatial region.
𝑡2 = (𝑀 × 𝑀) (𝑚 × 𝑚)⁄
Where (𝑚 × 𝑚) ∈ (𝑀 × 𝑀), (𝑚 × 𝑚) || (𝑀 × 𝑀) (4-10)
For the selected hyperspectral datasets, sub-tile sizes that are used in this work are shown
in Table 4-4. The total number of sub-tiles, t2 is listed as well in the table. Note that the
overhead information is produced for each sub-tile (or sub-cube) and should be
incorporated along with the encoded image for the decoding process.
Table 4-4: Tiling Levels for AVIRIS and Hyperion Datasets
Datasets Sub-Tile Sizes 𝑡2
AVIRIS
512×512 1 (lowest)
256×256 4
128×128 16
64×64 64 (highest)
Hyperion
256×256 1 (lowest)
128×128 4
64×64 16 (highest)
4.3.3 Overhead Information Size
The Integer KLT performed with clustering only (on sub-cubes with size of M×M×z), or
with tiling only (m×m×Z), or with both clustering and tiling (m×m×z), produces
overhead information for each of the sub-cubes that has been encoded. Thus, the total
size of the overhead information varies depending on the clustering and tiling levels and
can further affect the CR performance. The compaction method proposed in Section 4.2.3
is used on the overhead information generated for each sub-cubes. The size of overhead
information (in bytes) without and with the compaction method is shown in (4-11) and
(4-12), respectively. The size of a Boolean, integer and double data type here equals to 1,
94
4 and 8 bytes, respectively. Note that z is the number of bands in a cluster, c is the total
number of clusters, t2 is the total number of sub-tiles and Z is the total number of bands in
the hyperspectral image. Note also that when no clustering and tiling are performed, c
and t are equal to 1, which makes (4-11) and (4-12) similar to (4-6) and (4-7),
respectively.
𝑧2𝑐𝑡2 + 3(8𝑧2𝑐𝑡2) + 4𝑧𝑐𝑡2 = 𝑡2 (25𝑍2
𝑐+ 4𝑍) (4-11)
2(8𝑧2𝑐𝑡2) = 16𝑍2
𝑐𝑡2 (4-12)
The size of the overhead in comparison with the original image (uncompressed overhead)
is not expensive as evaluated in [175] when using float (4 bytes) and 1 byte integer data
type. However, when considering the double data type and the 32 bit integer used in
storing the overhead information, it can be quite significant. For the Hyperion image used
in this work (without clustering and tiling), the overhead data is equal to (961,184 ×
8)/(256 × 256 × 196) = 0.60 bpp when not compacted but could be reduced to
(614,656 × 8)/(256 × 256 × 196) = 0.38 bpp after compaction. From both of (4-11)
and (4-12), the utilisation of clustering and tiling could affect the total size of overhead
information and thus will affect the overall CR since this information must be recorded in
the encoded image [175]. The equations also clarify that performing clustering reduces
the size of the overhead information whereas tiling increases it.
The total overhead information sizes in kB for the AVIRIS dataset at each combination of
clustering and tiling levels are given in Table 4-5 (without compaction) and Table 4-6
(with compaction). Similarly, the total overhead size for the Hyperion dataset is given in
Table 4-7 and Table 4-8, for without and with compaction, respectively.
Table 4-5: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
without Compaction (in kB) – AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 1225.44 612.94 306.69 175.44 153.56 87.94 77.00 44.19 38.72 22.31
256×256 (4) 4901.75 2451.75 1226.75 701.75 614.25 351.75 308.00 176.75 154.88 89.25
128×128 (16) 19607.00 9807.00 4907.00 2807.00 2457.00 1407.00 1232.00 707.00 619.50 357.00
64×64 (64) 78428.00 39228.00 19628.00 11228.00 9828.00 5628.00 4928.00 2828.00 2478.00 1428.00
95
Table 4-6: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
with Compaction (in kB) – AVIRIS
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 784.00 392.00 196.00 112.00 98.00 56.00 49.00 28.00 24.50 14.00
256×256 (4) 3136.00 1568.00 784.00 448.00 392.00 224.00 196.00 112.00 98.00 56.00
128×128 (16) 12544.00 6272.00 3136.00 1792.00 1568.00 896.00 784.00 448.00 392.00 224.00
64×64 (64) 50176.00 25088.00 12544.00 7168.00 6272.00 3584.00 3136.00 1792.00 1568.00 896.00
Table 4-7: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
without Compaction (in kB) – Hyperion
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 938.27 469.33 234.86 134.37 67.38 33.88 19.52
128×128 (4) 3753.09 1877.31 939.42 537.47 269.50 135.52 78.09
64×64 (16) 15012.38 7509.25 3757.69 2149.88 1078.00 542.06 312.38
Table 4-8: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
with Compaction (in kB) – Hyperion
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 600.25 300.13 150.06 85.75 42.88 21.44 12.25
128×128 (4) 2401.00 1200.50 600.25 343.00 171.50 85.75 49.00
64×64 (16) 9604.00 4802.00 2401.00 1372.00 686.00 343.00 196.00
The overhead information compaction is capable of saving 𝑡2 (9𝑍2
𝑐+ 4𝑍) bytes of storage
or around 36 – 37% of saving compared to the case without compaction. In general,
clustering, tiling and the overhead information compaction for the normal clustering
method used in this work are visualised in Figure 4-4.
4.3.4 Programming Approach
To perform clustering and tiling in the Integer KLT, only uniform cluster sizes and sub-
tile sizes are used. A sub-cube (M×M×z – with only clustering, m×m×Z – only tiling or
m×m×z – both clustering and tiling) is encoded at a time, instead of the whole M×M×Z
image in a single iteration. As discussed in the previous sections, the number of iterations
for clustering, c and tiling, t2 is pre-fixed so that it covers the whole hyperspectral image.
96
Z
M
M
z
z
z
z
z
z
z
z
m
m
m
m
m
m
m
m
m
m
m
m
clustering
tiling
On each cluster
(without tiling)
On each sub-tile
(clustering and tiling) OR
No. of Clusters, c
(Cluster Size, Z/c)
(a) AVIRIS
1. 1 (224)
2. 2 (112)
3. 4 (56)
4. 7 (32)
5. 8 (28)
6. 14 (16)
7. 16 (14)
8. 28 (8)
9. 32 (7)
10. 56 (4)
(b) Hyperion
1. 1 (196)
2. 2 (98)
3. 4 (49)
4. 7 (28)
5. 14 (14)
6. 28 (7)
7. 49 (4)
Sub-tile Size, m×m
(No. of Sub-tiles, t2)
(a) AVIRIS
1. 512×512 (1)
2. 256×256 (4)
3. 128×128 (16)
4. 64×64 (64)
(b) Hyperion
1. 256×256 (1)
2. 128×128 (4)
3. 64×64 (16)
LU SPMean
Figure 4-4: Visualisation of Clustering, Tiling and Overhead Information Compaction in Integer KLT
97
Programming code for clustering and tiling in C++ is shown in Listing 4-1. In the figure,
the number of iterations for both clustering (c, as in (4-9)) and tiling (t, for both
directions i.e. width and height from spatial direction, as in (4-10)) are obtained at the
beginning of the program (line 1 and 2). The hyperspectral image to be encoded is then
loaded into variable H (refer to Listing F-3) and variable H_encoded is used to store the
encoded image. Three for loops; 1 for clustering iterations (line 3) and 2 for tiling
iterations (line 4 and 5) are used to encode H in an iterative manner to cover the whole 3D
image. In each iteration and as denoted in Figure 3-1 previously, Calc_Mean(),
Calc_Cova(), Calc_Eig(), TERM(), and Apply_TERM() functions are for the
RoundedMean calculation and centred-mean computation of H_encoded, covariance
(C) calculation, eigenvector (A) calculation, PLUS factorisation (to obtain P, L, U and S)
and the application of the P, L, U and S to H_encoded to get the encoded hyperspectral
image, respectively. At each loop iteration, Write_Coeff() is executed to write the
overhead information to disk. In this function, the proposed overhead information
compaction presented in Section 4.2.3 is used prior to the write to disk process.
/*H and H_encoded - M×M×Z (32-bit integer). L, U, S - z×z (double).
P - z×z (Boolean). RoundedMean - z (vector, 32-bit integer)*/
1. c = Z/z; //no. of iterations for clustering
2. t = M/m; //no. of iterations for tiling
/*Here, load hyperspectral image into variable H (refer Listing F-3)*/
3. for(d = 0; d < c; d++) //for loop for clustering
4. for(e = 0; e < t; e++) //for loops for tiling
5. for(f = 0; f < t; f++)
6. { Calc_Mean(d, e, f); //calculate RoundedMean
7. Calc_Cova(d, e, f); //calculate covariance, C
8. Calc_Eig(); //calculate eigenvector, A
9. TERM(); //PLUS factorisation on A
10. Apply_TERM(d, e, f); //apply P,L,U,S to H_encoded
11. Write_Coeff(); //write P,L,U,S and RoundedMean to disk
12. }
Listing 4-1: Clustering and Tiling in Integer KLT C++ Code
For execution time measurement, a simple clock() function is used that needs to be
placed before line 3 and after line 12 in Listing 4-1 (not shown) while disabling line 11
(Write_Coeff() function) to exclude the I/O operations.
As mentioned earlier in this section, the purposes of clustering and tiling are 1) to reduce
computational burden, and 2) to reduce buffer memory size to hold a sub-cube that is
being encoded. In normal approach, this would involves of a sub-cube load function into
98
the buffer memory at the beginning of each iteration (before line 6 in Listing 4-1) and this
could introduce some delay as observed in [263]. The delay can be avoided by sharing
the 3D hyperspectral image variables (H variable for input and H_encoded for the
encoded image) in each iteration so that the same variables will be read/written for any
cluster and/or sub-tile encoding. The variable sharing also benefits the program by
abolishing the need of the buffer memory and could be useful for embedded
implementation.
The H and H_encoded variables with size of M×M×Z are shared and accessed through
special array indexing to avoid sharing conflict that could severely affect the algorithm.
Functions that needs to read/write from/to the 3D variables (i.e. Calc_Mean(),
Calc_Cova() and Apply_TERM()) are called and the cluster number (denoted by
variable d from the for loop at line 3 from Listing 4-1) and sub-tile number (denoted by e
and f variables from the for loops at line 4 and 5, respectively) are passed along with the
function calling. The code to access the 3D variables are shown in Listing 4-2 for read
access (line 4) and write access (line 5) with variables d, e, and f from the main program
(i.e. Listing 4-1) to avoid sharing conflict. The index of the 3D arrays; row, column and
band are added with an offset as shown in (4-13), (4-14) and (4-15), respectively. The
resulting index will point to the equivalent cluster and sub-tile that is being encoded
inside the 3D arrays.
1. for(j = 0; j < z; j++)
2. for(k = 0; k < m; k++)
3. for(l = 0; l < m; l++)
4. { target = H[k+(e+e*(m-1))][l+(f+f*(m-1))][j+(d+d*(z-1))];
5. H_encoded[k+(e+e*(m-1))][l+(f+f*(m-1))][j+(d+d*(z-1))] = output;
6. }
Listing 4-2: C++ Code for Hyperspectral Variables Sharing in Integer KLT
Row offset = 𝑒 + 𝑒 × (𝑚 − 1) (4-13)
Column offset = 𝑓 + 𝑓 × (𝑚 − 1) (4-14)
Band offset = 𝑑 + 𝑑 × (𝑧 − 1) (4-15)
4.4 Parallelisation Based on Clustering using OpenMP
OpenMP is an industry-standard Application Programming Interface (API) for shared
memory programming in C, C++ and Fortran languages, and is available for many
99
desktop platforms, including Unix, Linux and Microsoft Windows platforms as well as
DSP nowadays (e.g. TMDSEVM6678L EVM [28] from TI). It is a utilisation of
multithreading with shared memory that is based on the ‘fork-join’ model [264], shown
in Figure 4-5. All OpenMP programs begin as a single process, sequentially, called
master thread until the ‘fork’ section where the master creates a team of parallel threads
and assigns a task for each of them. The ‘fork’ section is marked and enclosed by a
parallel region code (e.g. #pragma omp parallel for C and C++), which then is executed
in parallel to the other threads. Multiple parallel regions are possible, and each should end
with a ‘join’ section where all the parallel threads synchronise and terminate, leaving
only the master thread. All threads in the parallel region execute independently and
variables can be shared among the threads, which require careful programming to avoid
data-sharing conflict between the threads.
Figure 4-5: Fork-Join Model of OpenMP [264]
The idea of parallelising the Integer KLT is from the clustering point of view. With
clustering, a hyperspectral image with Z number of bands is divided equally into c
number of clusters, each containing 𝑧 = 𝑍𝑐⁄ number of bands, as introduced previously.
To parallelise the encoding process on a multi-processor environment with Q number of
threads, each cluster is assigned to be processed by each of the threads. When the number
of clusters c is equal or less than Q, only q = c number of threads is used where q ≤ Q. In
this case, each thread is utilised once (one iteration) to encode the whole hyperspectral
image. When the number of clusters c is greater than the available Q number of threads,
all the threads are used and some or all the threads might be utilised more than once.
Specifically, the number of iteration needed is equal to ceil(c/Q) (i.e. round up). Both of
the conditions are shown in (4-16). Note that as explained earlier in Table 3-5 about the
desktop system details, Q is equal to 8, which refers to the total number of threads.
𝑐 ≤ 𝑄 {No. of iterations = 1
No. of threads used, q = c , 𝑐 > 𝑄 {
No. of iterations = ceil (cQ⁄ )
No. of threads used, q = Q (4-16)
100
The implementation of the Integer KLT using OpenMP in this work is based on a single
program multiple data (SPMD) code that involves replicated execution with the body of
the code executing in a replicated fashion across multiple threads [265]. The
programming code for a parallelised Integer KLT is shown in Listing 4-3. The code is an
extension of the non-parallelised Integer KLT from Listing 4-1 that was targeted without
the OpenMP environment. All the developments, optimisations and analysis were carried
out in Microsoft Visual C++ 2008 with the OpenMP V2.0.
/*H and H_encoded - M×M×Z (32-bit integer). L, U, S - z×Z (double).
P - z×Z (Boolean). RoundedMean - Z (vector, 32-bit integer)*/
1. c = Z/z; /*no. of iterations for clustering*/
2. t = M/m; /*no. of iterations for tiling*/
/*Here, load hyperspectral image into variable H (refer Listing F-3)*/
3. if(c <= 8)
4. omp_set_num_threads(c);
5. else
6. omp_set_num_threads(8);
7. #pragma omp parallel shared(H, H_encoded, P, L, U, S, RoundedMean)
private(d, e, f)
8. { total_thrds = omp_get_num_threads();
9. thread_no = omp_get_thread_num();
/*the for loop with d variable is executed in each thread*/
10. for(d = thread_no; d < c; d += total_thrds) /*for clustering*/
11. { for(e = 0; e < t; e++) /*for tiling*/
12. for(f = 0; f < t; f++)
13. { Calc_Mean(d, e, f); /*calculate RoundedMean*/
14. Calc_Cova(d, e, f); /*calculate covariance, C*/
15. Calc_Eig(d); /*calculate eigenvector, A*/
16. TERM(d); /*PLUS factorisation on A*/
17. Apply_TERM(d, e, f); /*apply P, L, U, S to H_encoded*/
18. Write_Coeff(d, e, f);/*write the overhead information to disk*/
19. }
20. }
21. }
Listing 4-3: Clustered, Tiled-Integer KLT using the OpenMP SPMD Code
The parallel section started at line 7 (fork) and ended at line 21 (join) in Listing 4-3 where
the total number of threads available is obtained from the omp_get_num_threads()
function (line 8) and the current thread number is returned by the
omp_get_thread_num() function (line 9). A common syntax in the SPMD to
replicate the execution in each thread by creating a cyclic distribution of loop iterations is
shown by the for loop at line 10 [266] of the figure to encode a cluster. The number of
threads that needs to be used from (4-16) is set using the omp_set_num_threads()
function as in line 3 to 6 of the figure.
101
Similar with the non-parallelised version of Integer KLT implementation before, a simple
clock() function is used for execution time measurement that needs to be placed
before line 7 and after line 21 in Listing 4-3 while disabling line 18 (Write_Coeff()
function) to exclude the I/O operations. Similarly, the execution time accounts only for
the Integer KLT algorithm and does not include the time for performing spatial
compression using the JPEG2000.
In Listing 4-3, note that only clustering is executed in parallel whereas for tiling (in each
cluster), each sub-tile is processed sequentially until all the sub-tiles in a cluster are
encoded. The 3D variables H and H_encoded are shared among each thread as depicted
in shared syntax in line 7 of the figure. These variables are shared in a similar manner
as shown in the C++ code from Listing 4-2 for the non-parallelised Integer KLT
discussed before.
Similar to the 3D variables (Section 4.3.4), the overhead information (P, L, U, S and
RoundedMean) is also shared between each thread when clustering is involved
(shared syntax in line 7 from Listing 4-3). The size of the 2D variables (i.e. P, L, U and
S) is set to z×Z (as shown in Figure 4-6 as an example when c = q = 7) whereas for
RoundedMean (column vector) its size is set to Z to accommodate the overhead
information from all the clusters. The 2D variable from each cluster/thread (with size of
z×z) is hold in each block as shown in the figure. Each thread will only have access to its
corresponding variable section using the programming code shown in Listing 4-4. The
code utilises a similar approach of adding the array index to the band offset shown in
(4-15). The write (line 1 to 6 from the figure) and read access (line 7 to 12) are used for
recording any changes made by the algorithm back to the shared variables and for reading
from the shared variables, respectively. Note that during encoding, no compaction
method as proposed in Section 4.2.3 is used; the overhead information is only compacted
after the encoding (inside Write_Coeff()function at line 18 from Listing 4-3).
Z
z
Var.
section
for core 0
Var.
section
for core 1
Var.
section
for core 2
Var.
section
for core 3
Var.
section
for core 4
Var.
section
for core 5
Var.
section
for core 6
z
Figure 4-6: Overhead Information Inter-thread Sharing*
* The variable here is visualised in 2D where the width and height represents the size of the array and does not
represent how it is stored in the memory
102
1. for (x = 0; x < z; x++) /*write*/
2. { for (y = 0; y < z; y++)
3. { U[x][y+(d+d*(z-1))] = source1;
4. }
5. RoundedMean[x+(d+d*(z-1))] = source2;
6. }
7. for (x = 0; x < z; x++) /*read*/
8. { for (y = 0; y < z; y++)
9. { target1 = U[x][y+(d+d*(z-1))];
10. }
11. target2 = RoundedMean[x+(d+d*(z-1))];
12. }
Listing 4-4: C++ Code for Overhead Information Sharing in Integer KLT
In parallel computing, the theoretical speedup due to the parallelisation is given by
Amdahl’s Law [267], as follows:
𝑆 =1
(𝑝 𝑞⁄ + 1 − 𝑝)
Where,
𝑆 = speedup,
𝑞 = number of cores/threads used,
𝑝 = fraction of parallelised code.
(4-17)
In the ideal case where the whole code runs in parallel, 𝑝 = 1 and the expected speedup is
equal to the number of processor’s cores/threads. For the parallelised Integer KLT
implementation, where the total number of threads 𝑄 = 8, only a maximum number of
clusters c = 8 could be encoded in parallel and the remaining clusters (if c > 8) will be
encoded in the next available threads (equation (4-16)). As explained previously, with
tiling, the sub-tile encoding is not parallelised but encoded sequentially in each thread.
Due to that, the speedup analysis using the Amdahl’s Law of the parallelised
implementation should be focused on 1 ≤ c ≤ 8 and at all tiling levels in comparison to
the execution time without parallelisation. The parallelisations when c > 8 are not
expected to follow the Amdahl’s law but still will achieve a better execution time than the
non-parallelised implementation. The efficiency of the parallelisation method can be
measured using [267]:
Efficiency =𝑆
𝑞
Where,
𝑆 = speedup,
𝑞 = number of cores/threads used,
(4-18)
103
4.5 Covariance Matrix Calculation with Fixed Sampling
The covariance between two bands A and B of a hyperspectral image with M×M spatial
size was defined previously in (3-3) and can be re-written as in (4-19), where E(x)
denotes the mean of x.
𝑐𝑜𝑣(𝐴, 𝐵) = 𝐄[(𝐴 − 𝐄[𝐴])(𝐵 − 𝐄[𝐵])] (4-19)
The equation (4-19) can be expanded and simplified as shown in (4-20), where the
covariance of A and B is equal to the differences between the mean of AB and the product
of mean A and mean B.
𝑐𝑜𝑣(𝐴, 𝐵) = 𝐄[𝐴𝐵] − 𝐄[𝐴]𝐄[𝐵] (4-20)
The computation of the covariance matrix of a hyperspectral image with Z number of
bands and M×M spatial size has a computational complexity of O(Z2MM) [181] with a
𝑀𝑀(𝑍2 + 𝑍 + 4) number of flops [228]. In [181] a low complexity KLT was proposed
by randomly sampling M’×N’ pixels in the M×N spatial direction for computing the
covariance matrix, where M’ < M and N’ < N. A sampling factor ρ = M’N’ / MN was
introduced and several values of ρ ranging from 1 (without sampling) down to 0.00001
were tested. The M’×N’ pixels were selected by randomly picking M’ row indexes from
the interval of {0, M – 1} and N’ column indexes from {0, N – 1}, to form random pixel
coordinates x-y for M’N’ = ρMN number of sampled locations. The sampling factor ρ =
0.01 has yielded a very small PSNR loss within 0.5dB and at the same time it reduced the
complexity about 100 times with regards to the full complexity computation (i.e. ρ = 1).
Larger than 0.01 values of ρ also produce a very small loss but with only up to 20 times
of computation savings whereas a smaller ρ could further reduce the complexity but
could result in a larger loss in terms of PSNR. The sampling factor ρ = 0.01 was proposed
as a trade-off between the PSNR loss and the complexity reduction. The complexity of
this approach is given as O(ρZ2MM) [181] and 𝜌𝑀𝑀(𝑍2 + 𝑍 + 4) number of flops [228].
The random sampling approach, however, could result in variations of the output data
volume (i.e. overhead information P, L, U, and S, encoded image H, as well as the
recorded CR value) whenever the same image is encoded. Ten tests of compression on
the selected datasets using random sampling are shown in Table H-1 in Appendix H.
104
Note that the RoundedMean overhead information is unaffected since it is computed
before the covariance calculation takes place (refer Figure 3-1). In each of the test,
different overhead information P, L, U, S and different encoded image H were generated
and hence different CR values were obtained. In the table, the CR from each test and each
hyperspectral image is recorded and the |variation| (i.e. absolute difference between the
maximum and minimum CR) are given in the last column. Also listed in the table is the
absolute variation of the encoded image H that covers both of minimum (Hmin) and
maximum (Hmax) component from the tests. Similarly, a variation of the L (Lmax, Lmin), U
(Umax, Umin) and S (Smax, Smin) matrices are also given in the table.
A variation of the CR for the AVIRIS dataset ranged from 0.00220 to 0.01815, equivalent
to a variation of 36.85 to 126.09 kilobytes (kB) of compressed data. Similarly, for the
Hyperion dataset, the CR values vary from 0.00338 to 0.00576, equivalent to a variation
of 16.83 to 28.41 kB of compressed data. For the encoded data H, the largest variation of
Hmax and Hmin are recorded from the Hyperion-Boston image with values of 176,865 and
218,617 respectively. These two figures require 18 bits for data storage (i.e. more than 2
bytes). However, the variations of the L (Lmax, Lmin), U (Umax, Umin) and S (Smax, Smin)
from the table are smaller. The largest variation from the overhead information matrices
is 62.673 from Smax and 46.071 from Smin, both from the Hyperion-Greenland image.
Since these overhead information are stored as double data type utilising IEEE 754
specifications [268], the variation in them does not affect the memory storage in which
they are stored. The variation however, determines the variation in the encoded data H
since it is generated from the reversible lifting operations (Section 3.1.2.2) that involves
of the overhead information. All these variations may look small for terrestrial
applications but can be very expensive in space applications where each memory cell to
store a single bit is prone to radiation.
To overcome the problem, a fixed sampling method, which uses a template for the
selection of the pixels but maintains the sampling factor ρ = 0.01 is employed, similarly
as proposed in [181]. The template selection is based on the idea that the sampled pixels
need to be distributed evenly across the spatial region.
For a hyperspectral image with Z number of bands and M×M spatial size (M×M×Z), the
sampling factor ρ when using all pixels is as:
ρ = MM/MM = 1 (4-21)
105
For ρ = 0.01,
ρ = M’M’/MM = 0.01 (4-22)
Here, the total number of pixels selected is defined as:
K = 1/100 × MM = M’M’ (4-23)
Finally, M’ as in (4-24) is obtained. Note that the square bracket here is for rounding due
to the discrete nature of the pixels.
M’ = √𝐾 = [M /10] (4-24)
It can be seen from (4-24) that the distance between the selected pixels equals to 10
pixels and ρ ≈ 0.01 due to the rounding. The selected pixels, S is shown in (4-25). The
computational cost of this method is similar to the random sampling since the same value
of sampling factor ρ is used.
𝑺(𝑥,𝑦) = [
𝑠0,0 𝑠10,0 ⋯ 𝑠𝑥<𝑀−1,0
𝑠0,10 𝑠10,10 ⋯ 𝑠𝑥<𝑀−1,10
⋮ ⋮ ⋱ ⋮𝑠0,𝑦<𝑀−1 𝑠10,𝑦<𝑀−1 ⋯ 𝑠𝑥<𝑀−1,𝑦<𝑀−1
] (4-25)
For a non-square spatial size M×N, the ratio between M and N could be taken into
account to define M’ and N’ for row and column, respectively.
4.6 Sparse Matrix-Matrix Multiplication Optimisation
Inside the PLUS factorisation described in Section 3.1.2.1, there are some sparse matrix-
matrix multiplications that involve the P, L and S matrices as well as their temporary
matrices 𝑃𝑠(𝑘)
, 𝐿𝑠(𝑘)
and 𝑆𝑠(𝑘)
(refer to Figure 3-2). These matrices are mostly sparse or
populated primarily with zeroes with L and S forming two lower TERMs towards the end
of the PLUS factorisation. The multiplication processes are listed below where each of
them is executed in each iteration of the PLUS factorisation.
a) 𝑆 = 𝑆𝑠(𝑘)
× 𝑆,
b) 𝑃 = 𝑃𝑠(𝑘)
× 𝑃,
c) 𝐿 = (𝐿𝑆(𝑘)
× 𝑃𝑠(𝑘)
) × 𝐿
These multiplications can be speeded up due to the zeroes in one or both side of the
process. This optimisation method is actually aimed for DSP implementations and
106
therefore will be presented in detail in Section 6.2.2 later. However, the optimisation is
also applied throughout the thesis including this chapter.
4.7 Performance Evaluation
In this section, the performance of all the enhancement techniques proposed in this
chapter, which are aimed at reducing the complexity of Integer KLT, are evaluated in
four sections using the hyperspectral images described in Section 4.1. Note that the CR
performance comes from the combination of the Integer KLT and the JPEG2000 spatial
compressor, similar to the approach from Section 3.2 (for Integer KLT). The execution
time however is measured based only on the Integer KLT without the use of the spatial
compressor. The performance evaluations in this section are presented in the following
sections:
In Section 4.7.1, the fixed sampling on covariance calculation proposed in Section 4.5 is
tested and compared with the random sampling as well as the approach without sampling.
The tests utilised full-sized hyperspectral images (i.e. without clustering and tiling) to
observe performance loss/gain in CR and execution time of the fixed sampling in
comparison to the other approaches.
Section 4.7.2 opts for the clustering and tiling methods to observe the volumetric CR (i.e.
CR without considering the overhead information) pattern as the level of clustering and
tiling are changed. Two categories are compared: the volumetric CR values by utilising
the covariance calculation step 1) without sampling and 2) with fixed sampling.
In Section 4.7.3, clustering and tiling methods are tested on the hyperspectral datasets by
including the overhead information. The proposed fixed sampling is utilised in this sub-
section onwards. Two performance evaluations are carried out: CR and average execution
time.
Section 4.7.4 evaluates the average execution time for the parallelised Integer KLT using
OpenMP and reported for each combination of clustering and tiling levels.
4.7.1 Covariance Calculation Performance Gain/Loss with Fixed
Sampling
Four methods of calculating the covariance matrix in the Integer KLT are evaluated and
compared using (i) all pixels by utilising equation (4-20), (ii) all pixels using an open
107
source mathematical library ALGLIB [229], (iii) randomly sampled pixels (ρ = 0.01), and
(iv) fixed sampling (ρ = 0.01); where both (iii) and (iv) utilise equation (4-20). The
lossless CR results and the execution time (in seconds) for the Integer KLT are shown in
Table 4-9 and Table 4-10, respectively. In the random sampling, the CR and execution
time are averaged from the ten different compression executions showed in Table H-1
explained previously. The performance gain/loss when using the sampling methods over
the one without sampling by utilising equation (4-20) is calculated and given in brackets
as percentages. In both of the tables, the average performances are given at the end of
each dataset.
Table 4-9: Integer KLT CR Performance Comparison of Four Different Methods of
Covariance Matrix Calculation
Hyperspectral
Images
All Pixels (without sampling) Sampled Pixels at ρ ≈ 0.01
Equation (4-20) ALGLIB Fixed Sampling
(CR Loss, %)
Random Sampling*
(CR Loss, %)
AV
IRIS
Jasper3 3.245 3.245 3.221 (-0.74) 3.222 (-0.70)
Low2 3.020 3.020 3.004 (-0.53) 3.001 (-0.62)
YSCal11 4.334 4.337 4.253 (-1.87) 4.262 (-1.68)
YSUncal18 2.630 2.630 2.617 (-0.53) 2.617 (-0.52)
AVERAGE 3.307 3.308 3.274 (-0.92) 3.275 (-0.88)
Hy
per
ion Greenland 2.293 2.293 2.249 (-1.91) 2.255 (-1.67)
Boston 2.313 2.313 2.272 (-1.78) 2.278 (-1.52)
Edenton 2.276 2.276 2.238 (-1.66) 2.245 (-1.37)
Portobago 2.332 2.332 2.290 (-1.82) 2.297 (-1.52)
AVERAGE 2.304 2.304 2.262 (-1.79) 2.269 (-1.52) *Averaged from 10 different compression tests
Table 4-10: Integer KLT Execution Time Comparison of Four Different Methods of
Covariance Matrix Calculation (seconds)
Hyperspectral
Images
All Pixels (without sampling) Sampled Pixels at ρ ≈ 0.01
Equation (4-20) ALGLIB Fixed Sampling
(Speedup, %)
Random Sampling*
(Speedup, %)
AV
IRIS
Jasper3 123.71 31.76 25.57 (79.33) 26.45 (78.62)
Low2 123.32 31.81 25.58 (79.25) 26.42 (78.58)
YSCal11 122.63 31.72 25.68 (79.06) 26.22 (78.62)
YSUncal18 123.30 31.62 25.43 (79.38) 26.11 (78.83)
AVERAGE 123.24 31.73 25.56 (79.26) 26.30 (78.66)
Hyper
ion Greenland 18.07 6.83 5.79 (67.96) 5.73 (68.27)
Boston 17.43 6.65 5.52 (68.31) 5.74 (67.06)
Edenton 17.52 6.57 5.62 (67.94) 5.71 (67.42)
Portobago 17.39 6.49 5.63 (67.62) 5.69 (67.31)
AVERAGE 17.60 6.63 5.64 (67.96) 5.72 (67.52) *Averaged from 10 different compression tests
108
Discussion
It can be seen from Table 4-9 that the Integer KLT with covariance matrix calculations
using equation (4-20) and the ALGLIB library for all pixels, give the best CR results,
which are quite similar. The CR results based on the covariance matrix calculations with
fixed and random sampling are also quite similar, but slightly poorer compared to the
methods without sampling. This is due to the reduced number of pixels which are taken
into account in the covariance calculation. The average CR performance loss is 0.9%
(AVIRIS) and 1.8% (Hyperion) for fixed sampling and 0.9% (AVIRIS) and 1.5%
(Hyperion) for random sampling.
The advantage of sampling is a complexity reduction which improves the execution time
of the Integer KLT, as shown in Table 4-10. Using all pixels in equation (4-20) achieves
the worst performance. The ALGLIB mathematical library clearly could improve the
execution time performance while maintaining the CR performance. However, it requires
extra memory for temporary variables etc., making it not suitable for embedded
implementations. By sacrificing a little CR performance, both sampling methods produce
the lowest execution time. Similar for the random sampling, the proposed fixed sampling
method can improve execution time by around 79% for the AVIRIS and 68% for the
Hyperion datasets. The advantage of the fixed sampling over the random one is that the
compression outcome is the same in terms of compressed data volume, CR and the L, U,
S overhead information matrices, whenever a particular image is compressed. Another
advantage of such an output is that it will make the debugging and troubleshooting
process of the algorithm easier when a similar hyperspectral image needs to be encoded
and verified.
4.7.2 Clustering and Tiling Performance without Overhead
Information
Due to the introduction of clustering and tiling on the Integer KLT, each sub-cube
generates the overhead information (i.e. P, L, U, S and RoundedMean). These overheads
are necessary to be included in the encoded bit-stream for decoding purposes at the
decoder end. However, in this sub-section, the Integer KLT CR performance is evaluated
by excluding the overhead information to see how clustering and tiling affect the
volumetric compressed data. Even though the study proposed the fixed sampling method
during the covariance calculation, it is important to see the effect of clustering and tiling
109
when no sampling is adopted on the volumetric compression performance. Thus, two sets
of evaluation are presented here, volumetric CR performance when 1) no sampling, and
2) with fixed sampling, both utilising equation (4-20).
Table 4-11 shows the volumetric CR results achieved (for both of the cases stated above)
for the selected AVIRIS test images using ten different clustering (refer Table 4-3) and
four different tiling (Table 4-4) approaches. Similarly, Table 4-12 shows the results for
the Hyperion images using seven clustering and three tiling levels. Each cell in the tables
represent the CR performance of a hyperspectral image at a particular clustering (c) and
tiling levels (t2), for both of no sampling (denoted by *) and with fixed sampling (†)
during the covariance calculation step. The best (highest) volumetric CR values measured
for each image and each tiling level across the different levels of clustering are shaded in
grey. At the end of each tiling level, the average volumetric CR for the hyperspectral
dataset is given for each clustering level and the highest value is shaded as well. The
clustering level that gives averagely the highest volumetric CR in a tiling level will be
referred to as c̅ throughout the thesis.
Figure 4-7 represents graphically the volumetric CR comparison results tabulated in
Table 4-11 for the Jasper3-AVIRIS image, with the highest CR values marked by circles
in the charts. Inside the figure, graph (a) and (b) are the plot for the case without
sampling and fixed sampling, respectively. Similarly, the plots for the other AVIRIS and
Hyperion images (from Table 4-12) are given in Appendix F: Figure F-1 to Figure F-7.
Volumetric CR results without sampling during the covariance calculation step for the
other AVIRIS, Hyperion and CHRIS datasets are presented in Section G.4 of Appendix
G. The results utilising the fixed sampling method are presented in Section G.5.
110
Table 4-11: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between No Sampling and Fixed Sampling – AVIRIS
Sub-
tile
Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
51
2×
51
2
(1)
Jasper3 * 3.354 3.327 3.285 3.237 3.213 3.149 3.118 3.013 2.970 2.797
† 3.294 3.287 3.257 3.217 3.192 3.134 3.102 3.003 2.960 2.791
Low2 * 3.117 3.096 3.063 3.019 3.005 2.949 2.925 2.837 2.803 2.655
† 3.067 3.064 3.045 3.008 2.996 2.945 2.918 2.836 2.803 2.658
YSCal11 * 4.520 4.511 4.451 4.364 4.333 4.211 4.170 3.981 3.913 3.619
† 4.381 4.389 4.346 4.271 4.232 4.111 4.075 3.898 3.827 3.558
YSUncal18 * 2.717 2.705 2.674 2.652 2.613 2.573 2.533 2.447 2.401 2.258
† 2.664 2.667 2.644 2.629 2.590 2.554 2.515 2.430 2.386 2.246
AVERAGE * 3.427 3.410 3.368 3.318 3.291 3.221 3.186 3.070 3.022 2.832
† 3.351 3.352 3.323 3.281 3.252 3.186 3.152 3.042 2.994 2.813
25
6×
25
6
(4)
Jasper3 * 3.340 3.319 3.280 3.233 3.209 3.146 3.114 3.011 2.969 2.796
† 3.256 3.275 3.259 3.219 3.197 3.139 3.107 3.008 2.966 2.794
Low2 * 3.101 3.086 3.058 3.015 3.002 2.947 2.923 2.837 2.803 2.656
† 3.033 3.049 3.041 3.007 2.994 2.944 2.919 2.836 2.803 2.657
YSCal11 * 4.510 4.501 4.434 4.348 4.315 4.196 4.156 3.971 3.901 3.613
† 4.340 4.391 4.367 4.300 4.266 4.159 4.119 3.943 3.872 3.591
YSUncal18 * 2.700 2.692 2.664 2.644 2.606 2.567 2.527 2.442 2.397 2.255
† 2.650 2.662 2.644 2.630 2.592 2.558 2.519 2.435 2.391 2.250
AVERAGE * 3.413 3.399 3.359 3.310 3.283 3.214 3.180 3.065 3.018 2.830
† 3.320 3.344 3.328 3.289 3.262 3.200 3.166 3.055 3.008 2.823
12
8×
12
8
(16
)
Jasper3 * 3.332 3.312 3.274 3.228 3.205 3.142 3.110 3.009 2.966 2.795
† 3.117 3.214 3.235 3.206 3.185 3.134 3.104 3.007 2.965 2.794
Low2 * 3.090 3.078 3.053 3.013 3.000 2.946 2.921 2.837 2.803 2.657
† 2.932 3.002 3.025 2.996 2.984 2.938 2.915 2.833 2.800 2.655
YSCal11 * 4.502 4.479 4.408 4.323 4.286 4.164 4.126 3.943 3.871 3.591
† 4.220 4.324 4.343 4.299 4.271 4.177 4.138 3.963 3.897 3.612
YSUncal18 * 2.687 2.682 2.655 2.636 2.598 2.560 2.521 2.436 2.392 2.251
† 2.615 2.641 2.635 2.626 2.590 2.558 2.520 2.439 2.394 2.253
AVERAGE * 3.403 3.388 3.348 3.300 3.272 3.203 3.170 3.056 3.008 2.823
† 3.221 3.295 3.309 3.282 3.258 3.202 3.169 3.060 3.014 2.828
64×
64
(64
)
Jasper3 * 3.319 3.301 3.265 3.221 3.195 3.135 3.103 3.004 2.961 2.791
† 2.980 3.119 3.181 3.172 3.153 3.117 3.088 2.998 2.957 2.790
Low2 * 3.083 3.071 3.050 3.010 2.998 2.946 2.919 2.836 2.804 2.657
† 2.818 2.920 2.985 2.969 2.960 2.924 2.902 2.825 2.793 2.650
YSCal11 * 4.470 4.442 4.376 4.277 4.240 4.119 4.078 3.903 3.827 3.559
† 4.075 4.201 4.259 4.254 4.230 4.157 4.120 3.956 3.890 3.609
YSUncal18 * 2.678 2.675 2.649 2.631 2.592 2.555 2.516 2.431 2.387 2.247
† 2.521 2.586 2.604 2.608 2.572 2.549 2.511 2.435 2.391 2.252
AVERAGE * 3.388 3.372 3.335 3.285 3.256 3.189 3.154 3.043 2.995 2.814
† 3.098 3.207 3.257 3.251 3.229 3.187 3.155 3.054 3.008 2.825 * No sampling
† Fixed sampling
111
Table 4-12: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between No Sampling and Fixed Sampling – Hyperion
Sub-tile Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1)
Greenland * 2.445 2.443 2.434 2.410 2.374 2.299 2.229
† 2.377 2.407 2.410 2.396 2.367 2.296 2.228
Boston * 2.474 2.469 2.457 2.435 2.399 2.329 2.261
† 2.403 2.421 2.421 2.399 2.364 2.300 2.234
Edenton * 2.432 2.428 2.420 2.400 2.371 2.309 2.248
† 2.365 2.381 2.386 2.369 2.342 2.285 2.223
Portobago * 2.489 2.486 2.480 2.464 2.442 2.386 2.337
† 2.422 2.449 2.460 2.452 2.438 2.386 2.339
AVERAGE * 2.460 2.456 2.448 2.427 2.397 2.331 2.269
† 2.392 2.415 2.419 2.404 2.378 2.316 2.256
128×128 (4)
Greenland * 2.437 2.435 2.430 2.407 2.372 2.298 2.228
† 2.292 2.375 2.396 2.388 2.363 2.295 2.228
Boston * 2.464 2.461 2.451 2.429 2.393 2.324 2.257
† 2.332 2.395 2.416 2.407 2.383 2.320 2.256
Edenton * 2.421 2.419 2.415 2.395 2.367 2.306 2.245
† 2.298 2.360 2.382 2.375 2.358 2.302 2.245
Portobago * 2.478 2.477 2.477 2.462 2.442 2.387 2.338
† 2.345 2.415 2.442 2.441 2.432 2.383 2.338
AVERAGE * 2.450 2.448 2.443 2.423 2.394 2.329 2.267
† 2.317 2.386 2.409 2.403 2.384 2.325 2.266
64×64 (16)
Greenland * 2.429 2.426 2.422 2.401 2.368 2.296 2.226
† 2.254 2.318 2.348 2.356 2.347 2.287 2.224
Boston * 2.449 2.442 2.432 2.405 2.366 2.301 2.234
† 2.261 2.332 2.367 2.375 2.368 2.314 2.255
Edenton * 2.407 2.404 2.394 2.376 2.344 2.286 2.225
† 2.238 2.308 2.341 2.350 2.346 2.298 2.244
Portobago * 2.474 2.470 2.469 2.458 2.439 2.385 2.338
† 2.287 2.358 2.396 2.410 2.415 2.374 2.332
AVERAGE * 2.439 2.436 2.429 2.410 2.379 2.317 2.256
† 2.260 2.329 2.363 2.373 2.369 2.318 2.263 * No sampling
† Fixed sampling
(a)
2.7
2.8
2.9
3.0
3.1
3.2
3.3
3.4
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
112
(b)
512×512 256×256 128×128 64×64
Figure 4-7: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Jasper3, AVIRIS
Discussion
No Sampling
As tabulated in the tables for the cases without sampling and as visualised in Figure
4-7(a) (as well as the other plots visualised in Figure F-1(a) to Figure F-7(a)), the
volumetric CR performance across the different clustering levels maximised at c = 1 in
all tiling strategies. Similarly for the average performance, the maximum performance are
recorded at clustering level c̅ = 1, for all the images and at all tiling levels.
When comparing the performance at each clustering level and across the different tiling
levels, it is clear that the volumetric CR reduces as the tiling level increases. Note that
tiling (as well as clustering) is only performed on the hyperspectral images prior to the
Integer KLT but combined together before spatial compression by the JPEG2000 as
visualised in Figure 4-2 earlier. This means that the performance reduction is only due to
the tiling in the Integer KLT whereas the JPEG2000 compresses the spatial component at
full resolution (512×512 for AVIRIS and 256×256 for Hyperion) no matter how small
the tiling during the Integer KLT encoding. The average volumetric CR reduction
maximised during c̅ = 1 with a percentage of 1.15% for AVIRIS and 0.85% for Hyperion
by comparing the CR at the largest sub-tile sizes (512×512-AVIRIS and 256×256-
Hyperion) with the smallest sub-tile size (i.e. 64×64), averagely. As further clustering is
used, the average volumetric CR reduction become smaller but continues to drop
altogether. For the case without sampling during the covariance calculation, it can be
2.7
2.8
2.9
3.0
3.1
3.2
3.3
3.4
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
113
concluded that clustering and tiling reduces the volumetric CR performance similarly as
presented in [115, 156, 269]. The similar patterns can be observed from the other
hyperspectral datasets as presented in Section G.4.
Fixed Sampling
As seen from Table 4-11 and as shown in Figure 4-7(b) (as well as in Figure F-1(b) to
Figure F-7(b)) for the fixed sampling cases, the AVIRIS and Hyperion volumetric CR
performance maximised at c > 1 in all the tiling levels except for Jasper3 and Low2
images at 512×512 sub-tile size that peaked at c = 1. However, from the table, this sub-
tile size gives the best volumetric CR performance averagely at c̅ = 2 as well as at
256×256 sub-tile size. Further tiling makes c̅ = 4 the best clustering level averagely,
when it gives the maximum performance at both 128×128 and 64×64 sub-tile sizes. For
the Hyperion dataset, c̅ = 4 is recorded for 256×256 and 128×128 sub-tile sizes and
increased to c̅ = 7 for 64×64 sub-tile size, as shown in Table 4-12.
From the tables, tiling clearly reduces the volumetric CR performance, similar to the case
when no sampling is opted. The performance reduction between the largest and the
smallest sub-tile sizes however are only obvious in the first five clustering levels for both
the datasets. The volumetric CR values are almost similar between the tiling levels when
further clustering is opted, but continues to drop altogether. The worst volumetric CR
reduction occurred at c = 1 with a percentage of 7.5% for AVIRIS and 5.5% for Hyperion
by comparing the CR at the largest sub-tile sizes with the smallest one, averagely. Tiling
however, as explained previously, is useful to constrain error propagation and increase
resilience of the algorithm to SEUs.
When comparing the pair of graphs in Figure 4-7(a) and (b) (as well as the pair of graphs
in Figure F-1 to Figure F-7), it is clear that the fixed sampling reduce the volumetric CR
performance in each clustering and tiling levels, similar to what has been shown in
Section 4.7.1 (without clustering and tiling). The maximum CR values also shifted from c
= 1 to c > 1, with the maximum CR in the fixed sampling method become smaller than
the maximum CR from the case without sampling, and similarly for the clustering levels
c̅.
Up to this point, a question arises; for the case with fixed sampling, why the volumetric
CR performance maximised at c > 1? A work on PCA in [259] suggested that the best
114
way to perform clustering (referred to as partitioning) is by examining the correlation
matrix image of a hyperspectral image for lossy hyperspectral compression without
spatial or entropy encoder studies. The correlation values were generated using (3-19)
that has been used before. The idea is spectral partitioning through variable cluster size
instead of the uniform cluster size that has been used in this thesis. The proposed method
revealed that higher SNRs were obtainable in the SWIR (short-wave infrared) than the
VNIR (visible near infrared) bands of low altitude AVIRIS images, at high compression
ratio.
The correlation matrix image for the selected AVIRIS and Hyperion images are shown in
Figure 4-8 and Figure 4-9, respectively. From [259], the natural partitioning point is
where the correlation values change abruptly from bright to dark regions at the main
diagonal of the matrix image, where the correlation between one band and its nearby
neighbours are evaluated. From the correlation matrix images, the bright and dark/grey
regions are well differentiated except for YSCal11 and YSUncal18 images and thus have
been excluded from the analysis. From the selected images, group of bands that have
correlation values larger than 0.7 (brighter regions) are listed in the second column of
Table 4-13. The numbers of groups that determine the numbers of clusters with variable
sizes �̂� are listed in the third column of the table. To encode all the spectral bands, each
cluster should accommodate spectral bands with correlation values lower than 0.7 as
well. Thus, each of the clusters is expanded as shown in the fourth column of the tables
with the size of the cluster in brackets. Lossless volumetric CR values using variable
cluster size are recorded in the second column of Table 4-14. The maximum volumetric
CR values from the case without sampling and with fixed sampling are listed in the third
and fourth column of the table, respectively, taken from Table 4-11 and Table 4-12 for
comparison purposes. From the results, the volumetric CR values using variable cluster
size are all lower than both of the uniform clustering approaches. This shows that the idea
from [259] cannot be used for the combination of the Integer KLT and JPEG2000 for
lossless compression.
(a) Jasper3 (b) Low2 (c) YSCal11 (d) YSUncal18
Figure 4-8: Correlation Matrix Images for AVIRIS Dataset
115
(a) Greenland (b) Boston (c) Edenton (d) Portobago
Figure 4-9: Correlation Matrix Images for Hyperion Dataset
Table 4-13: Correlated Spectral Bands in the Selected Hyperspectral Images
Hyperspectral Image Correlated Bands No. of Variable Clusters, �̂� Spectral Bands in a Cluster (Size)
Jasper3
1 – 39
4
1 – 39 (39)
40 – 106 40 – 108 (69)
110 – 154 109 – 159 (51)
165 – 224 160 – 224 (65)
Low2
1 – 38
4
1 – 38 (38)
39 – 107 39 – 109 (71)
113 – 153 110 – 160 (51)
167 – 224 161 – 224 (64)
Greenland
1 – 92
3
1 – 96 (96)
101 – 138 97 – 144 (48)
151 – 196 145 – 196 (52)
Boston
1 – 28
3
1 – 28 (28)
29 – 50 29 – 50 (22)
51 – 196 51 – 196 (146)
Edenton
1 – 30
3
1 – 30 (30)
31 – 50 31 – 50 (20)
51 – 196 51 – 196 (146)
Portobago
1 – 28
4
1 – 29 (29)
30 – 92 30 – 95 (66)
98 – 138 96 – 144 (49)
151 – 196 145 – 196 (52)
Table 4-14: Lossless CR Comparison: Variable Clustering vs. Uniform Clustering
Hyperspectral
Image
CR (�̂�)
(Variable Clustering)
Max. CR without Sampling (c)
(Uniform Clustering)
Max. CR with Fixed Sampling (c)
(Uniform Clustering)
Jasper3 3.269 (4) 3.354 (1) 3.294 (1)
Low2 3.052 (4) 3.117 (1) 3.067 (1)
Greenland 2.407 (3) 2.445 (1) 2.410 (4)
Boston 2.414 (3) 2.474 (1) 2.421 (2)
Edenton 2.375 (3) 2.432 (1) 2.386 (4)
Portobago 2.451 (4) 2.489 (1) 2.460 (4)
To answer the question arose before, it is best up to this point to say that the reason why
the volumetric CR maximised at c > 1 is due to the sampling during the covariance
calculation. A few experiments have been performed using the random sampling by
varying the sampling factor ρ from 0.2 (20%) down to 0.01 (1%). From the case without
sampling (ρ = 1.0), the maximum volumetric CR values are recorded at c = 1 and it has
shifted gradually towards c that are shown in Table 4-11 and Table 4-12 (shaded cells for
116
the fixed 1% sampling) when the sampling factor ρ reduces to 1%. The sampling factor ρ
= 1% has been selected as a trade-off between PSNR loss and complexity reduction as
proposed in [181].
Chapter 7 will discovers the answer to another better question: How to determine the
clustering level that could give the maximum volumetric CR performance? To answer the
question, it is crucial to understand the underlying concept of the compression system
used in this study. The Integer KLT spectral decorrelator as explained before reduces the
spectral redundancy or similarity between the spectral bands before spatially compressed
using JPEG2000 algorithm. The output from the Integer KLT generally has greater bit-
depth (25-bit maximum as in Sprecision setting for the Kakadu software) than the input
hyperspectral image (16-bit) due to the integer mapping in order to produce the integer
output. A study in [117] which is part of this work has shown that hyperspectral images
compressed using Integer KLT and JPEG2000 spatial compressor produces higher CR
than using the JPEG2000 alone on each spectral band. These show that the data (pixels)
compression is solely handled by the JPEG2000 whereas the Integer KLT diminishes the
spectral redundancy which leads to a better CR. In Chapter 7, a few analyses will be
performed on the Integer KLT output (i.e. the input to the JPEG2000 algorithm) in order
to find the reason of maximum volumetric CR performance at c > 1.
On top of all that have been presented and discussed in this sub-section, note that the
volumetric CR value is not the right way to present the compression performance. A
different CR which considers the compressed image along with the overhead information
size (equation (4-1)) is the correct way to demonstrate the compression performance due
to the requirement of the overhead at the decoder end.
4.7.3 Clustering and Tiling Performance with Overhead Information
As discussed before, the overhead information from the Integer KLT should be included
in the encoded bit-stream for decoding purposes at the decoder end. In this sub-section,
the overhead compaction method proposed in Section 4.2.3 and expanded to include
clustering and tiling in Section 4.3.3 is used. The volume of the compacted overhead is
summed together with the volume of the compressed image to obtain the CR performance
that will be presented in detail in Section 4.7.3.1 below. Evaluated along with the CR is
the execution time that is measured in seconds covered in Section 4.7.3.2 later.
117
4.7.3.1 CR Performance
Using the similar presentation as before, Table 4-15 and Table 4-16 show the CR results
achieved for the selected AVIRIS and Hyperion datasets, respectively. As before, the
maximum CR achieved across the different level of clustering are shaded in grey. At the
end of each tiling level, the average CR for the hyperspectral dataset is given for each
clustering level and the highest average CR is shaded as well (at its clustering level c̅).
Figure 4-10 represents graphically the CR values from Table 4-15 for Jasper3-AVIRIS
image, with the highest CR values marked by circles in the chart. The similar plot for the
other selected AVIRIS and Hyperion images are shown in Figure F-8 (AVIRIS) and
Figure F-9 (Hyperion) in Appendix F.
Table 4-15: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling – AVIRIS
Sub-
tile
Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
51
2×
51
2
(1)
Jasper3 3.221 3.251 3.239 3.207 3.183 3.129 3.098 3.001 2.958 2.790
Low2 3.004 3.032 3.030 2.999 2.989 2.941 2.914 2.834 2.802 2.657
YSCal11 4.253 4.324 4.314 4.253 4.217 4.102 4.068 3.895 3.824 3.556
YSUncal18 2.617 2.643 2.633 2.622 2.584 2.551 2.512 2.429 2.385 2.246
AVERAGE 3.274 3.312 3.304 3.270 3.243 3.181 3.148 3.040 2.992 2.812
25
6×
25
6
(4)
Jasper3 2.989 3.135 3.188 3.179 3.162 3.120 3.091 2.999 2.958 2.790
Low2 2.800 2.927 2.979 2.972 2.964 2.927 2.904 2.828 2.796 2.653
YSCal11 3.879 4.142 4.240 4.229 4.205 4.125 4.090 3.927 3.859 3.585
YSUncal18 2.471 2.568 2.597 2.604 2.570 2.545 2.508 2.429 2.386 2.248
AVERAGE 3.035 3.193 3.251 3.246 3.225 3.179 3.148 3.046 3.000 2.819
12
8×
12
8
(16
)
Jasper3 2.325 2.733 2.972 3.053 3.052 3.059 3.040 2.972 2.935 2.779
Low2 2.220 2.579 2.794 2.862 2.867 2.872 2.858 2.802 2.773 2.641
YSCal11 2.887 3.497 3.882 4.028 4.035 4.045 4.024 3.902 3.845 3.586
YSUncal18 2.033 2.308 2.458 2.522 2.501 2.508 2.477 2.416 2.374 2.244
AVERAGE 2.366 2.779 3.026 3.116 3.114 3.121 3.100 3.023 2.982 2.812
64×
64
(64)
Jasper3 1.294 1.854 2.360 2.647 2.689 2.840 2.847 2.864 2.842 2.730
Low2 1.262 1.782 2.250 2.504 2.548 2.679 2.689 2.706 2.690 2.596
YSCal11 1.464 2.189 2.905 3.361 3.435 3.679 3.703 3.726 3.694 3.510
YSUncal18 1.199 1.652 2.027 2.242 2.255 2.361 2.350 2.346 2.315 2.213
AVERAGE 1.305 1.869 2.385 2.689 2.732 2.890 2.897 2.910 2.885 2.763
118
Table 4-16: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling – Hyperion
Sub-tile Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1)
Greenland 2.249 2.339 2.376 2.377 2.358 2.291 2.225
Boston 2.272 2.353 2.386 2.380 2.355 2.295 2.231
Edenton 2.238 2.315 2.353 2.350 2.333 2.280 2.221
Portobago 2.290 2.379 2.425 2.431 2.428 2.381 2.336
AVERAGE 2.262 2.347 2.3848 2.3845 2.368 2.312 2.254
128×128 (4)
Greenland 1.880 2.132 2.266 2.312 2.326 2.277 2.218
Boston 1.906 2.148 2.284 2.330 2.345 2.302 2.246
Edenton 1.884 2.121 2.253 2.301 2.321 2.284 2.235
Portobago 1.915 2.164 2.308 2.362 2.393 2.364 2.327
AVERAGE 1.896 2.141 2.278 2.326 2.346 2.307 2.256
64×64 (16)
Greenland 1.210 1.605 1.917 2.087 2.205 2.217 2.186
Boston 1.212 1.612 1.930 2.102 2.224 2.243 2.216
Edenton 1.205 1.601 1.913 2.083 2.204 2.228 2.205
Portobago 1.219 1.625 1.949 2.129 2.265 2.299 2.290
AVERAGE 1.212 1.611 1.927 2.100 2.225 2.247 2.224
512×512 256×256 128×128 64×64
Figure 4-10: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling for Jasper3-AVIRIS Image
CR results utilising the fixed sampling method and by including the overhead information
for the other AVIRIS, Hyperion and CHRIS datasets are presented in Section G.6 of
Appendix G.
Discussion
As it can be seen from Figure 4-10 (as well as the other graphs in Figure F-8 and Figure
F-9), maximum CR with the overhead information occurs in the cases when clustering
was performed (i.e. at c > 1), suggesting that clustering could maximise the CR
performance when sampling is opted. The results which utilised the proposed fixed
1.0
1.5
2.0
2.5
3.0
3.5
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
119
sampling during the covariance calculation are related to the volumetric CR performance
presented in Section 4.7.2 (with fixed sampling). The total overhead information size
(with compaction) across different clustering levels becomes smaller when the clustering
level is increased (as presented in Section 4.3.3). By including the overhead information
with the compressed image, the maximum CR now shifted to a greater clustering level
compared to the results obtained in the previous sub-section. As discussed in Section
4.3.1, the clustering levels are unique, depending on the total number of spectral bands, Z.
As shown in Table 4-3, with Z = 224, the AVIRIS dataset could be encoded using 10
different clustering levels, from c = 1 (lowest clustering level, cluster size of 224) until c
= 56 (highest clustering level), where the cluster size is reduced to four. Similarly, but
with Z = 196, the Hyperion dataset could be encoded using 7 different clustering levels
from c = 1 (lowest clustering level, cluster size of 196) to c = 49 (highest clustering
level). It was revealed in Section 4.7.2, that for AVIRIS images, the best average
clustering levels without overhead information are c̅ = 2, 2, 4 and 4 for 512×512,
256×256, 128×128 and 64×64 sub-tile sizes respectively, which shifted to c̅ = 2, 4, 14
and 28 for similar sub-tile sizes respectively, when including the overhead. Similarly for
Hyperion, when excluding the overhead, c̅ = 4, 4 and 7 for 256×256, 128×128 and
64×64 sub-tile sizes respectively, were reported, which shifted to c̅ = 4, 14 and 28 for the
similar sub-tile sizes when including the overhead. The inclusion of the overhead also
reduces the CR performance compared to the results presented in the previous sub-
section.
It can also be seen clearly from the figures that an overly large value of c (i.e. encoding
on a smaller cluster size, 𝑍 𝑐⁄ ) negatively affects the CR. By analysing the CR results
across different sub-tile sizes for hyperspectral image in Figure 4-10 (as well as for the
other images in Figure F-8 and Figure F-9), Table 4-15 and Table 4-16, it can be
concluded that a smaller sub-tile size could definitely result in poorer CR performance
too. This trend has been observed in Section 4.7.2 and becomes more obvious by
including the overhead information. By comparing the volumetric CR plots from the
previous sub-section (Figure 4-7(b), as well as the other plots in Figure F-1(b) to Figure
F-7(b)) with the plots obtained here, the CR performance reduction between the largest
and the smallest sub-tile sizes become more apparent in almost all cluster sizes. Similar to
that sub-section, the worst CR reduction occurred at c = 1 but with a larger percentage of
60.15% for AVIRIS and 46.44%, averagely, compared to only 7.5% (AVIRIS) and 5.5%
120
(Hyperion) as discussed before. The larger percentage is due to the overhead information
that has increased in total when using smaller sub-tile sizes as presented in Section 4.3.3.
However, in terms of algorithm robustness, the smaller sub-tile size is beneficial with
regards to constraining error propagation as discussed earlier in this chapter.
By gathering the CR performances from using the Integer KLT at clustering levels c̅ = 2
and at sub-tile size 512×512 and from using the CCSDS-MHC-FP algorithm discussed
and presented in Table 3-6 for all the AVIRIS images, the performance of both
algorithms can be compared as shown in Table 4-17 below. The CR performances of the
Integer KLT are from Table 4-15 for the selected AVIRIS images and the remaining
images are from Table G-24 from Appendix G. Also given in the table below are the
magnitudes of differences between the two algorithms and the best compression
algorithm (highest CR) for each image is shaded. The table also gives the average
performance for each category of the AVIRIS dataset; 1997 dataset, 2006 dataset-
calibrated and 2006 dataset-uncalibrated, similar to Table 3-6 and the best average CR is
shaded too. Note that the images are abbreviated using the similar scheme as the selected
images with the additional scene number at the end.
Table 4-17: Integer KLT (at Clustering Levels c̅ and 512×512 Sub-tile Size) and
JPEG2000 vs. CCSDS-MHC-FP
AVIRIS Hyperspectral
Images
Integer KLT + JPEG2000
(@512×512, c̅ = 2) CCSDS-MHC-FP |Difference|
AV
IRIS
1997 d
atas
et [
233]
Cuprite1 3.257 3.280 0.023
Cuprite2 3.195 3.211 0.016
Cuprite3 3.229 3.259 0.030
Cuprite4 3.212 3.235 0.023
Jasper1 3.259 3.244 0.015
Jasper2 3.270 3.258 0.012
Jasper3 3.251 3.227 0.024
Jasper4 3.239 3.227 0.012
Jasper5 3.259 3.266 0.007
Low1 3.048 2.989 0.059
Low2 3.032 2.952 0.080
Low3 3.067 3.029 0.039
Low4 3.047 3.006 0.041
Low5 3.038 2.996 0.042
Low6 3.070 3.034 0.036
Low7 3.077 3.043 0.034
Lunar1 3.197 3.221 0.024
Lunar2 3.222 3.250 0.028
AVERAGE 3.165 3.152
121
AV
IRIS
200
6 d
atas
et [
23
4]
YSCal0 4.070 4.098 0.028
YSCal3 4.169 4.204 0.035
YSCal10 4.737 4.860 0.123
YSCal11 4.324 4.467 0.143
YSCal18 4.116 4.007 0.109
AVERAGE 4.283 4.327
YSUncal0 2.619 2.478 0.141
YSUncal3 2.667 2.534 0.133
YSUncal10 2.966 2.872 0.094
YSUncal11 2.749 2.703 0.046
YSUncal18 2.643 2.416 0.227
AVERAGE 2.729 2.601
By comparing Table 4-17 with Table 3-6, the CR performance improvement by the
Integer KLT is obvious. The average CR performance for the AVIRIS 1997 dataset has
been improved from 3.152 to 3.165. Similarly, improvements from 4.281 to 4.283 and
from 2.715 to 2.729 have been recorded for the AVIRIS 2006-calibrated and uncalibrated
datasets, respectively. All the improvements are due to the clustering approach as well as
the overhead information compaction proposed earlier in this chapter.
From this chapter, 17 out of 28 AVIRIS hyperspectral images could be compressed at a
higher CR using the Integer KLT than the CCSDS-MHC-FP algorithm. It covers all the
low altitude images (Low1 – Low7), 4 out of 5 Jasper (Jasper Ridge) images, and all the
uncalibrated Yellowstone (YSUncal) images. The remaining 11 images which cover all
the Cuprite, Lunar (Lunar Lake) and 4 out of 5 calibrated Yellowstone (YSCal) images,
including a Jasper Ridge image favour the CCSDS algorithm. 4 out of 6 images that have
a magnitude of CR difference more than 0.1 are from compression using the Integer KLT
which are YSUncal18, YSUncal3, YSUncal0 and YSCal18 whereas the remaining 2
(YSCal11 and YSCal10) are best compressed using the CCSDS algorithm.
For the case when no sampling is opted during the covariance calculation step, the
clustering levels c̅ from the previous sub-section (Table 4-11 – AVIRIS and Table 4-12 –
Hyperion) are also shifted from c̅ = 1 to a greater clustering level. The CR performance
for that case is shown in Table 4-18 (AVIRIS) and Table 4-19 (Hyperion) for comparison
purposes. These tables show that, even without the sampling approach, the CR
performance (with the overhead information) are still maximised at clustering level c > 1.
122
Table 4-18: Integer KLT, Clustering and Tiling – CR Performance without Sampling –
AVIRIS
Sub-
tile
Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
51
2×
51
2
(1)
Jasper3 3.245 3.264 3.247 3.211 3.186 3.131 3.099 3.002 2.959 2.790
Low2 3.020 3.039 3.034 3.001 2.991 2.942 2.915 2.834 2.802 2.657
YSCal11 4.337 4.376 4.343 4.259 4.224 4.111 4.071 3.899 3.824 3.558
YSUncal18 2.630 2.651 2.637 2.624 2.586 2.552 2.513 2.429 2.386 2.246
AVERAGE 3.308 3.333 3.315 3.274 3.247 3.184 3.150 3.041 2.993 2.813
25
6×
25
6
(4)
Jasper3 3.054 3.169 3.203 3.188 3.170 3.123 3.093 3.000 2.959 2.791
Low2 2.850 2.953 2.991 2.978 2.969 2.929 2.906 2.829 2.797 2.654
YSCal11 4.008 4.221 4.279 4.252 4.224 4.130 4.097 3.928 3.858 3.585
YSUncal18 2.503 2.587 2.608 2.610 2.575 2.547 2.510 2.430 2.387 2.248
AVERAGE 3.104 3.232 3.270 3.257 3.235 3.183 3.152 3.047 3.000 2.819
12
8×
12
8
(16
)
Jasper3 2.446 2.809 3.010 3.078 3.074 3.071 3.049 2.976 2.939 2.781
Low2 2.316 2.640 2.822 2.880 2.883 2.881 2.865 2.806 2.777 2.643
YSCal11 3.020 3.612 3.955 4.071 4.075 4.063 4.041 3.910 3.850 3.587
YSUncal18 2.085 2.347 2.483 2.539 2.516 2.516 2.485 2.419 2.378 2.245
AVERAGE 2.467 2.852 3.067 3.142 3.137 3.133 3.110 3.028 2.986 2.814
64×
64
(64
)
Jasper3 1.359 1.926 2.417 2.693 2.733 2.867 2.873 2.878 2.855 2.737
Low2 1.319 1.846 2.295 2.539 2.581 2.700 2.708 2.716 2.700 2.601
YSCal11 1.518 2.271 2.994 3.429 3.503 3.722 3.743 3.748 3.714 3.520
YSUncal18 1.241 1.699 2.069 2.275 2.287 2.381 2.369 2.357 2.325 2.218
AVERAGE 1.359 1.935 2.443 2.734 2.776 2.917 2.923 2.925 2.898 2.769
Table 4-19: Integer KLT, Clustering and Tiling – CR Performance without Sampling –
Hyperion
Sub-tile Size
(𝑡2)
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1)
Greenland 2.293 2.360 2.387 2.381 2.359 2.291 2.224
Boston 2.313 2.373 2.397 2.386 2.357 2.296 2.231
Edenton 2.276 2.337 2.361 2.357 2.334 2.282 2.223
Portobago 2.332 2.402 2.433 2.438 2.429 2.380 2.335
AVERAGE 2.304 2.368 2.394 2.390 2.370 2.312 2.253
128×128 (4)
Greenland 1.975 2.183 2.297 2.330 2.334 2.280 2.219
Boston 1.994 2.202 2.315 2.351 2.355 2.306 2.247
Edenton 1.965 2.168 2.283 2.319 2.330 2.288 2.235
Portobago 2.002 2.215 2.338 2.382 2.402 2.368 2.327
AVERAGE 1.984 2.192 2.308 2.346 2.355 2.310 2.257
64×64 (16)
Greenland 1.263 1.665 1.974 2.130 2.229 2.229 2.191
Boston 1.271 1.677 1.990 2.149 2.251 2.257 2.222
Edenton 1.259 1.657 1.965 2.122 2.227 2.238 2.209
Portobago 1.275 1.684 2.004 2.172 2.289 2.311 2.296
AVERAGE 1.267 1.671 1.983 2.143 2.249 2.259 2.229
The CR performances that have been achieved so far are presented in Table 4-20 by
showing the performance without sampling and with fixed sampling from Section 4.7.1
in the second and the third column of the table, respectively. This is followed by the
123
combination of fixed sampling and clustering level c̅ from the cases without tiling in the
fourth column. From the table, the CR performance loss from the fixed sampling is
improved by the clustering approach and in fact is higher than the performance without
sampling, averagely around 0.15% (AVIRIS) and 3.53% (Hyperion). The YSCal11
image however has been negatively affected by the improvement methods proposed
earlier with CR performance loss around -0.23%.
Table 4-20: Lossless CR Performance Comparison
Hyperspectral
Image
From Section 4.7.1 Fixed Sampling + Clustering
@512×512, c̅ (CR Gain, %) Without Sampling
Fixed Sampling, ρ ≈ 0.01
(CR Gain, %)
AV
IRIS
Jasper3 3.245 3.221 (-0.74) 3.251 (0.17)
Low2 3.020 3.004 (-0.53) 3.032 (0.41)
YSCal11 4.334 4.253 (-1.87) 4.324 (-0.23)
YSUncal18 2.630 2.617 (-0.53) 2.643 (0.46)
AVERAGE 3.307 3.274 (-0.92) 3.312 (0.15)
Hy
per
ion Greenland 2.293 2.249 (-1.91) 2.376 (3.62)
Boston 2.313 2.272 (-1.78) 2.386 (3.14)
Edenton 2.276 2.238 (-1.66) 2.353 (3.38)
Portobago 2.332 2.290 (-1.82) 2.425 (3.96)
AVERAGE 2.304 2.262 (-1.79) 2.385 (3.53)
4.7.3.2 Execution Time Performance
Similarly as before, Table 4-21 and Table 4-22 tabulate the average execution time
results achieved from the execution of the Integer KLT for the AVIRIS and Hyperion
datasets, respectively. Each of the measurements was repeated five times and the average
value was calculated and reported. Note that, the shaded cells in the tables are from the
clustering levels c̅ (i.e. clustering levels that give the maximum CR values averagely)
from the previous sub-section.
The average execution time results from the tables are visualised in Figure 4-11(a) and
(b) for the AVIRIS and Hyperion datasets, respectively. The smaller charts within the
main charts show the detailed behaviour of the execution time at a smaller time range (i.e.
3 – 15 seconds for AVIRIS and from 0.5 – 2.5 seconds for Hyperion), with the plots from
the clustering levels c̅ are marked with circle.
124
0
20
40
60
80
100
120
140
1 2 4 7 8 14 16 28 32 56
Tim
e (s
eco
nd
s)
No. of Clusters (c)
3
5
7
9
11
13
15
1 2 4 7 8 14 16 28 32 56
0
5
10
15
20
25
1 2 4 7 14 28 49
Tim
e (s
eco
nd
s)
No. of Clusters (c)
0.5
1.0
1.5
2.0
2.5
4 7 14 28 49
Table 4-21: Integer KLT, Clustering and Tiling – Average Execution Time (in
seconds) with Fixed Sampling – AVIRIS
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 25.56 13.84 9.55 7.84 7.28 6.03 5.83 4.51 4.02 3.60
256×256 (4) 29.96 13.92 9.80 7.38 6.75 5.72 5.41 4.26 3.98 3.59
128×128 (16) 48.79 16.98 9.54 7.12 6.87 5.69 5.68 4.44 4.12 3.53
64×64 (64) 124.69 28.29 11.32 7.66 6.97 5.65 5.75 4.56 4.20 3.71
Table 4-22: Integer KLT, Clustering and Tiling – Average Execution Time (in
seconds) with Fixed Sampling – Hyperion
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 5.64 2.84 1.98 1.47 1.17 0.91 0.76
128×128 (4) 8.41 3.44 1.92 1.51 1.18 0.89 0.76
64×64 (16) 20.16 5.00 2.22 1.56 1.23 0.87 0.75
512×512 256×256 128×128 64×64 (a)
256×256 128×128 64×64 (b)
Figure 4-11: Integer KLT, Clustering and Tiling – Average Execution Time (in
seconds) with Fixed Sampling – (a) AVIRIS, (b) Hyperion
125
Discussion
From Figure 4-11(a) and (b), the fastest execution time is achieved by the largest number
of clusters c = 56 (AVIRIS) and c = 49 (Hyperion), although it does not yield the best CR
values. The results clearly show that clustering can significantly improve execution time.
The reason for this is that there is a reduction of the number of spectral bands to be
encoded in each cluster. In the most part of the Integer KLT (as well as KLT), the number
of bands is the main factor that contributes to the complexity of the algorithm. When a
smaller number of bands are used in each cluster, these will reduce the complexity and
hence improve the execution time. However, the number of clusters must be selected
based on a trade-off between execution time and CR performance as the CR is lower
when too few bands per cluster are to be decorrelated.
Figure 4-11(a) and (b) also suggest that the introduction of tiling in the first two numbers
of clusters c negatively affects the execution time (slower) but becomes less significant
when higher levels of clustering are used. Tiling during c = 1 and 2 simply reduces the
spatial information of the hyperspectral image but the number of bands in each of the
hyperspectral sub-cube (due to division of the hyperspectral cube during clustering and
tiling) remain the same. Basically, performing tiling at these two numbers of clusters
merely increase the complexity due to the large number of bands (the main contributing
factor towards complexity) that still exists in each sub-cube. At higher levels of
clustering, the complexity from each tiling level reduces as the number of bands per
cluster reduces. Tiling at the smallest sub-tile size (i.e. 64×64) produces the worst
execution time during c = 1, 2 and should be avoided. In addition to that, as discussed in
Section 4.3.3, the smallest sub-tile size generates the largest total overhead information
size. It can be concluded that when tiling is necessary, the safest tiling level is when t2 = 4
(i.e. 256×256 – AVIRIS and 128×128 – Hyperion). However, it is always best
performing the Integer KLT at t2 = 1 (i.e. 512×512 – AVIRIS and 256×256 – Hyperion)
due to the better CR performances. The advantage of tiling is for constraining error
propagation and increasing the resilience of the algorithm to SEUs.
It can be seen from Table 4-21 and Table 4-22 that the Hyperion images are processed
more rapidly, taking an average of 1.98 seconds at the clustering level c̅ compared to
13.84 seconds for the AVIRIS images at the 512×512 sub-tile size. Comparison at
smaller sub-tile sizes between the AVIRIS and Hyperion datasets also give similar
patterns. These are due to the fact that the 3D size of the AVIRIS datasets is four times
126
larger than the Hyperion spatially (512×512 for AVIRIS and 256×256 for Hyperion) and
in addition, it has 28 more bands.
The execution time performances that have been accomplished so far are shown in Table
4-23 by showing the performance from Section 4.7.1 in the second and the third column
(without sampling and with fixed sampling, respectively). Execution time performances
from the combination of fixed sampling and clustering at clustering level c̅ are shown in
the fourth column, only from the cases without tiling (i.e. at full resolution of 512×512
for AVIRIS and 256×256 for Hyperion). Compared to the case without sampling, the
combination of fixed sampling and clustering levels at c̅ give improvements averagely
around 88.8% for both datasets.
Table 4-23: Execution Time Performance Comparison (in seconds)
Hyperspectral
Image
From Section 4.7.1 Fixed Sampling + Clustering
@512×512, c̅
(Performance Gain, %) Without Sampling Fixed Sampling, ρ ≈ 0.01
(Performance Gain, %)
AV
IRIS
Jasper3 123.71 25.57 (79.33) 13.92 (88.75)
Low2 123.32 25.58 (79.25) 13.92 (88.72)
YSCal11 122.63 25.68 (79.06) 13.81 (88.74)
YSUncal18 123.30 25.43 (79.38) 13.71 (88.88)
AVERAGE 123.24 25.56 (79.26) 13.84 (88.77)
Hy
per
ion Greenland 18.07 5.79 (67.96) 2.15 (88.08)
Boston 17.43 5.52 (68.31) 1.95 (88.81)
Edenton 17.52 5.62 (67.94) 1.90 (89.13)
Portobago 17.39 5.63 (67.62) 1.90 (89.07)
AVERAGE 17.60 5.64 (67.96) 1.98 (88.77)
In each sub-cube encoding (i.e. iteration), averagely, the percentage of execution time in
each step of the Integer KLT (5 steps as shown in Figure 3-1) is tabulated in Table 4-24
for the case without sampling and by utilising the fixed sampling proposed. In the case
without sampling, the Step 2 dominates the execution time with 66.7% but has been
reduced to only 0.6% with the sampling. The Step 5 however becomes dominant with
percentage of 89.3% from the total sub-cube encoding execution.
127
Table 4-24: Percentage of Execution Time for the Integer KLT Steps
Integer KLT Steps
Percentage of Execution Time (%)
Without Sampling during
Covariance Calculation
With Sampling during
Covariance Calculation
Step 1: RoundedMean calculation and centred-
mean computation on input 1.2 3.7
Step 2: Covariance calculation 66.7 0.6
Step 3: Eigenvector and Eigenvalue calculation 0.1 0.1
Step 4: PLUS factorisation 2.1 6.3
Step 5: PLUS application 29.9 89.3
TOTAL 100 100
4.7.3.3 Findings on the Range of Clustering and Tiling Levels
It was shown in Section 4.7.2 and Section 4.7.3 that clustering could improve the
compression performance with and without overhead information, where the maximum
CR is obtainable at a clustering level c > 1. The findings from both of the sections were
based on the clustering level c̅ where the CR maximised averagely. As discussed in detail
in Section 4.7.2, the maximum CR at clustering level c > 1 is due to the sampling
approach in the covariance calculation. In addition to that, the inclusion of the overhead
information is another factor that contributes in the same way. In the remaining of this
chapter as well as the subsequent Chapter 5 and Chapter 6 the performance of the Integer
KLT is reported through the use of the clustering levels c̅. Chapter 7 will then estimate
the clustering level that could give the maximum CR for each individual hyperspectral
image.
The clustering levels c̅ in this section (as well as in Section 4.7.2 when the overhead
information is excluded) depend on the dataset and sub-tile sizes as can be observed from
the CR performance in Table 4-15 (AVIRIS) and Table 4-16 (Hyperion). This is not only
based on the selected hyperspectral images; similar values of c̅ for the selected AVIRIS
images are also recorded for the other AVIRIS images as shown in Section G.5 (without
overhead information) and Section G.6 (with overhead information) in Appendix G.
However, since the evaluation of c̅ was carried out averagely, the user may use the other
clustering levels c that produces higher CR performance than the case when c = 1
(reference case). A range of clustering levels can be generated for each tiling level which
start at c = 2 and end at the clustering level that starts to produce lower CR than the
reference clustering level, averagely. The reason to include the clustering level with a
slightly lower CR than c = 1 is to widen the range since the evaluation is based on the
average CR and not based on the individual performance from each image.
128
To clearly observe the possible range, the average CR performance from Table 4-15
(AVIRIS) and Table 4-16 (Hyperion) are shown in Table 4-25 and Table 4-26 for the
AVIRIS and Hyperion datasets, respectively. In the tables, the CR performance at
clustering level c̅ is marked with bold typeface and the ranges are shaded. Note that the
tiling levels at t2 > 4 are excluded (as discussed in Section 4.7.3.2) due to the worst
execution time and huge total overhead information size especially during c = 1, 2. At
these tiling levels, the CR performances are very low in comparison to the lower tiling
levels (i.e. t2 = 1 and 4). For the AVIRIS dataset, the levels of clustering that could lead
to a larger CR than the reference case for sub-tile 512×512, is in the range of 2 ≤ c ≤ 7,
whereas for the 256×256 sub-tile size, the range is within 2 ≤ c ≤ 32. For the Hyperion
dataset, the best clustering levels are at c ≥ 2 for both the 256×256 and 128×128 tiling
strategies, as shown in Table 4-26. The clustering level ranges at the recommended tiling
levels for both of the datasets are summarised in Table 4-27.
Table 4-25: Integer KLT, Clustering and Tiling – Average CR Performance at the Best
Clustering and Recommended Tiling Levels for AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1*
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 3.274 3.312 3.304 3.270 3.243 3.181 3.148 3.040 2.992 2.812
256×256 (4) 3.035 3.193 3.251 3.246 3.225 3.179 3.148 3.046 3.000 2.819 *Reference
Table 4-26: Integer KLT, Clustering and Tiling – Average CR Performance at the Best
Clustering and Recommended Tiling Levels for Hyperion
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1*
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 2.262 2.347 2.385 2.385 2.368 2.312 2.254
128×128 (4) 1.896 2.141 2.278 2.326 2.346 2.307 2.256 *Reference
Table 4-27: Best Range of Clustering Levels (c) at the Recommended Tiling Levels
(t2) for AVIRIS and Hyperion Datasets
AVIRIS Hyperion
Sub-tile Size (𝑡2) Range of c Sub-tile Size (𝑡2) Range of c
512×512 (1) 2 ≤ c ≤ 7 256×256 (1) c ≥ 2
256×256 (4) 2 ≤ c ≤ 32 128×128 (4) c ≥ 2
129
The average execution time should also be considered when selecting a clustering level
from the range listed in Table 4-27. The average execution times from Table 4-21
(AVIRIS) and Table 4-22 (Hyperion) are shown in Table 4-28 (AVIRIS) and Table 4-29
(Hyperion), only at the clustering and tiling levels defined previously. In the tables, the
average execution times at the clustering level c̅ are marked with bold typeface.
Noticeably, there is quite a significant difference in the execution time between c = 2 and
c = 4 in both tiling levels especially for the AVIRIS dataset (averagely around 4.21
seconds). In these cases, the selection of the clustering level should favour the clustering
that produces a lower execution time, particularly at the 512×512 sub-tile size, where the
difference in performance between the two clustering levels is quite small (i.e. 3.312 –
3.304 = 0.008). A mechanism to adaptively select a suitable clustering level can be
developed by considering the two factors (i.e. CR and execution time). For on-board
satellite implementations, power consumption can be another factor for the selection of
the clustering level to get an optimum energy usage (i.e. power × execution time) to suit
the power budget at a certain time of operation.
Table 4-28: Integer KLT, Clustering and Tiling – Average Execution Time (seconds)
at the Best Clustering and Recommended Tiling Levels for AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 13.84 9.55 7.84
256×256 (4) 13.92 9.80 7.38 6.75 5.72 5.41 4.26 3.98
Table 4-29: Integer KLT, Clustering and Tiling – Average Execution Time (seconds)
at the Possible Clustering and Recommended Tiling Levels for Hyperion
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 2.84 1.98 1.47 1.17 0.91 0.76
128×128 (4) 3.44 1.92 1.51 1.18 0.89 0.76
4.7.4 Parallelised Clustering Using OpenMP
Maintaining the presentation approaches before, execution time of the parallel Integer
KLT implementation using OpenMP is evaluated averagely for each dataset and at each
combination of clustering and tiling levels. The CR performance is similar to the results
tabulated in Table 4-15 (AVIRIS) and Table 4-16 (Hyperion) since the same underlying
130
0
50
100
150
200
250
1 2 4 7 8 14 16 28 32 56
Tim
e (s
eco
nd
s)
No. of Clusters (c)
0
2
4
6
8
1 2 4 7 8 14 16 28 32 56
algorithm is used and hence is not presented. Note that as proposed, the fixed sampling
on covariance calculation is opted during the test.
The average execution time of the parallelised Integer KLT is shown in Table 4-30
(AVIRIS) and Table 4-31 (Hyperion). The shaded cells are from the clustering levels c̅.
The tabulated results are shown graphically in Figure 4-12(a) and (b) for the AVIRIS and
Hyperion datasets, respectively. The smaller charts within the main charts show the
detailed behaviour of the results at a smaller time range (i.e. 0 – 8 seconds for AVIRIS
and 0 – 2 seconds for Hyperion datasets); with the plots from the clustering levels c̅ are
marked with circle.
Table 4-30: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – AVIRIS
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 28.09 8.29 3.63 2.30 1.93 1.83 1.66 1.46 1.38 1.10
256×256 (4) 37.36 9.01 3.46 2.16 2.00 1.71 1.58 1.28 1.14 0.94
128×128 (16) 75.34 11.54 3.23 1.78 1.62 1.30 1.24 1.00 0.97 0.79
64×64 (64) 229.89 21.87 4.13 1.91 1.53 1.31 1.17 0.99 0.94 0.75
Table 4-31: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – Hyperion
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 6.68 1.64 0.78 0.44 0.34 0.23 0.20
128×128 (4) 12.04 2.02 0.67 0.35 0.26 0.19 0.17
64×64 (16) 34.38 3.66 0.80 0.37 0.28 0.20 0.19
512×512 256×256 128×128 64×64 (a)
131
0
5
10
15
20
25
30
35
40
1 2 4 7 14 28 49
Tim
e (s
eco
nd
s)
No. of Clusters (c)
0.0
0.5
1.0
1.5
2.0
1 2 4 7 14 28 49
256×256 128×128 64×64 (b)
Figure 4-12: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (in seconds) – (a) AVIRIS, (b) Hyperion
Discussion
The plots of average execution time of the non-parallelised Integer KLT implementation
(Figure 4-11) have similar patterns with the OpenMP implementation (Figure 4-12), with
the OpenMP implementation generally producing faster execution. Corresponding
execution time figures can be observed from the data tabulated in Table 4-21 (AVIRIS)
and Table 4-22 (Hyperion) from the previous sub-section for the non-parallelised
implementation compared to the parallelised version as shown in Table 4-30 (AVIRIS)
and Table 4-31 (Hyperion). The improved execution time values are due to the
concurrent execution for the cases when c > 1 (i.e. with clustering) where each cluster is
encoded in each processor thread. For c = 1 (i.e. without clustering), all the hyperspectral
images encoded slower than the similar condition from the non-parallelised version, in all
tiling levels. This is mainly because OpenMP has extra overheads such as: 1) sequential
overhead, 2) parallelisation overhead, and 3) synchronisation overhead as listed in [267]
but no such overheads exist in the non-parallelised version. This becomes much worse
when smaller sub-tile sizes are used as what has been observed from the non-parallelised
version of the algorithm. This effect however is diminished when a larger value of c is
used and each cluster is executed on each thread (i.e. parallelised). When c > 8 (total
threads available), the execution time continues to improve even though more than one
iterations are used to encode all the spectral bands in parallel. As in the non-parallelised
version, the fastest execution time is achieved by the largest number of clusters c = 56
(AVIRIS) and c = 49 (Hyperion), although it does not yield the best CR values. The
132
discussion about the effect of clustering and tiling on execution time can be found from
Section 4.7.3.2.
Improvement of the average execution time from the parallelised implementation in
comparison to the non-parallelised implementation and its speedup for each of the
clustering and tiling levels are tabulated in Table 4-32 for AVIRIS and Table 4-33 for the
Hyperion dataset. Observing at clustering levels c̅, the OpenMP implementation gives
5.54 (×1.67 of speedup), 6.34 (×2.84), 4.39 (×4.37) and 3.57 (×4.61) seconds faster than
the non-parallelised implementation (averagely) for 512×512, 256×256, 128×128 and
64×64 sub-tile sizes, respectively for the AVIRIS images. Similarly, the parallelised
implementation for the Hyperion dataset produces 1.20 (×2.53), 0.92 (×4.53) and 0.66
(×4.27) seconds faster than the execution time recorded from the non-parallelised
implementation for 256×256, 128×128 and 64×64 sub-tile sizes, respectively.
Table 4-32: Integer KLT, Clustering, Tiling and Parallelisation – Execution Time
Improvement (in seconds) and Speedup – AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) -2.53 5.54 5.91 5.54 5.35 4.20 4.18 3.04 2.64 2.50
(×0.91) (×1.67) (×2.63) (×3.41) (×3.77) (×3.30) (×3.52) (×3.08) (×2.91) (×3.28)
256×256 (4) -7.40 4.91 6.34 5.21 4.75 4.01 3.83 2.99 2.84 2.65
(×0.80) (×1.54) (×2.84) (×3.41) (×3.38) (×3.34) (×3.42) (×3.33) (×3.49) (×3.84)
128×128 (16) -26.54 5.44 6.31 5.35 5.25 4.39 4.44 3.44 3.15 2.74
(×0.65) (×1.47) (×2.95) (×4.01) (×4.25) (×4.37) (×4.58) (×4.44) (×4.24) (×4.45)
64×64 (64) -105.20 6.42 7.19 5.75 5.44 4.35 4.58 3.57 3.27 2.96
(×0.54) (×1.29) (×2.74) (×4.01) (×4.55) (×4.32) (×4.92) (×4.61) (×4.49) (×4.94)
Table 4-33: Integer KLT, Clustering, Tiling and Parallelisation – Execution Time
Improvement (in seconds) and Speedup – Hyperion
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) -1.04 1.19 1.20 1.03 0.83 0.68 0.57
(×0.84) (×1.73) (×2.53) (×3.32) (×3.45) (×3.89) (×3.89)
128×128 (4) -3.63 1.42 1.25 1.16 0.92 0.69 0.59
(×0.70) (×1.71) (×2.87) (×4.30) (×4.53) (×4.61) (×4.38)
64×64 (16) -14.22 1.34 1.42 1.19 0.96 0.66 0.55
(×0.59) (×1.37) (×2.77) (×4.19) (×4.46) (×4.27) (×3.91)
In analysing the speedup performance of the parallelisation approach using the Amdahl’s
Law [267], represented by equations (4-17) and (4-18), the clustering levels 1 ≤ c ≤ 8 are
133
selected. However, as discussed in the previous paragraphs, parallelisation with clustering
at c = 1 is slower than the non-parallelised version at c = 1. For c = 2, the speedups
recorded ranges from 1.29 to 1.67 for AVIRIS and 1.37 to 1.73 for the Hyperion dataset,
with the lowest speedup coming from the highest tiling level (i.e. t2 = 64 for AVIRIS and
16 for Hyperion). At this clustering level, the speedups recorded are not far below the
ideal speedup of 2 (i.e. 𝑝 = 1, 𝑞 = 2 from equation (4-17)). Further parallelisation at the
next higher clustering levels c = 4, 7 (both datasets) and 8 (AVIRIS) shows that the
speedups recorded are far below the ideal speedups of 4, 7 and 8, respectively (i.e. 𝑝 = 1
and 𝑞 = 4, 7 and 8, respectively). This is due to the higher execution time percentage of
Step 5 in the Integer KLT (i.e. PLUS application), which is around 89.3% of the total
execution time, in average (Table 4-24). Since this part of the software comprises a large
multiplication stage, which is performed for each sample, it could be parallelised in a
different parallel region than the previous steps of Integer KLT. Other reasons could be
the overheads from the parallelisation approach [267] such as:
1. Sequential overhead – from the fraction of the algorithm that is sequential or
replicated. This involves the computations that occur once in the non-parallelised
approach but are performed by each thread in the parallelised implementation.
2. OpenMP parallelisation overhead – the amount of time spent in handling the
OpenMP constructs. One example is, when a parallel region is created (at run
time, line 3 to 6 of Listing 4-3), threads might have to be woken up and some
variables have to be set up.
3. Synchronisation overhead – the amount of time spent in waiting for variable
synchronisation from other threads.
Even though the remaining clustering levels (c > 8) cannot be related to the Amdahl’s
Law as discussed in Section 4.4, the parallelisation approach using those levels could
bring about speedups in the range of 2.91 to 4.94 compared to the non-parallelised
implementation. Parallelisation when c exceeds the total number of threads (i.e. 𝑄 = 8)
will introduce delay since the remaining clusters will be encoded in the next available
threads.
The average execution times at the favoured clustering and tiling levels are shown in
Table 4-34 (AVIRIS) and Table 4-35 (Hyperion) using the analysis of the possible
clustering levels (c > 1) that could produce a higher CR than at c = 1 and at tiling levels t2
= 1 and 4 (as introduced in Section 4.7.3.3. In the tables, the average execution time
134
values at clustering level c̅ are marked with bold typeface. Noticeably, there are quite
significant differences of execution time between c = 2 and 4 in both of the tiling levels
especially for the AVIRIS dataset (4.77 and 6.5 seconds for 512×512 and 256×256 sub-
tile size, respectively). In these cases, the selection of clustering levels should favour the
clustering that produce better execution time performance, particularly at 512×512 sub-
tile size where the difference of the average CR performance is quite small between the
two clustering levels (i.e. 3.312 – 3.304 = 0.008 from Table 4-15). A mechanism to
adaptively select the suitable clustering levels can be developed by considering the two
factors (i.e. CR and execution time). For on-board satellite implementation, power can be
another factor for the selection of the clustering level in order to get optimum energy (i.e.
power×execution time) to suite the power budget at a certain time during the operation.
Table 4-34: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (seconds) at the Best Clustering and Recommended Tiling Levels – AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 8.29 3.63 2.30
256×256 (4) 9.01 3.46 2.16 2.00 1.71 1.58 1.28 1.14
Table 4-35: Integer KLT, Clustering, Parallelisation and Tiling – Average Execution
Time (seconds) at the Best Clustering and Recommended Tiling Levels – Hyperion
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 1.64 0.78 0.44 0.34 0.23 0.20
128×128 (4) 2.02 0.67 0.35 0.26 0.19 0.17
The execution time performances that have been achieved so far are presented in Table
4-36. The table is an extension to Table 4-23 that now includes the average execution
time from the parallelised Integer KLT using number of threads q = c̅ in the fifth column.
The parallelisation approach improves the execution time by around 93.27% and 95.56%
averagely for the AVIRIS and Hyperion datasets respectively, compared to the case
without sampling in the second column.
135
Table 4-36: Integer KLT Execution Time Performance Comparison (seconds)
Hyperspectral
Dataset
From Section 4.7.1 Fixed Sampling +
Clustering @512×512,
c̅
(Performance Gain, %)
Fixed Sampling +
Clustering + OpenMP
@512×512, q = c̅
(Performance Gain, %) Without Sampling
Fixed Sampling
(ρ ≈ 0.01)
(Performance Gain,
%)
AVIRIS 123.24 25.56 (79.26) 13.84 (88.77) 8.29 (93.27)
Hyperion 17.60 5.64 (67.96) 1.98 (88.77) 0.78 (95.56)
4.8 Conclusion
This chapter proposes a number of novel techniques aimed at reducing the computational
complexity of the Integer KLT algorithm.
Clustering has been introduced at several levels, where z numbers of spectral bands are
encoded at a time instead of the total Z bands constructing c number of clusters. Tiling
divides the M×M spatial size of the hyperspectral image into tiles of size m×m
generating t2 number of sub-tiles. Clustering and tiling create sub-cubes (m×m×z) where
each sub-cube yields its own overhead information.
The benefits of the clustering approach are the improvement in execution time as well as
the CR performance. The tiling approach has proved advantageous mostly in constraining
the error propagation and increasing the resilience of the algorithm to SEUs.
The other enhancement techniques that have been proposed in this chapter are (in priority
order):
1) Algorithm parallelisation based on clustering using OpenMP:
The parallelisation of the Integer KLT based on the clustering approach accelerates the
execution of the algorithm due to concurrent sub-cube encoding on each processor thread.
2) Fixed sampling method for the covariance matrix calculation:
The fixed sampling method in comparison to the random sampling proposed in [181] for
covariance calculation avoids the variation of compressed data whenever the same image
is compressed. This also could help in the debugging process to emulate the similar
compression performance for troubleshooting purposes.
3) Overhead information compaction method:
136
The proposed overhead information compaction method is capable of saving
𝑡2 (9𝑍2
𝑐+ 4𝑍) bytes of storage, which amounts to around 36% – 37% compared to the
case without compaction. Each level of clustering reduces the total size of the overhead
information by a factor of 1 𝑐⁄ , whereas tiling increases it at a factor of t2 , which could
affect the CR performance.
4) Hyperspectral variable sharing technique:
The proposed hyperspectral variable sharing diminishes the use of buffer memory to hold
a sub-cube when clustering and/or tiling are utilised during the encoding process.
Clustering has proved to reduce the complexity of the Integer KLT and could improve the
CR performance up to a certain level of clustering c̅. From the average volumetric CR
performance studies, the CR maximised at c > 1 even without the overhead information
when utilising the proposed fixed sampling method. With the overhead, the AVIRIS
images produce the best CR averagely at the clustering levels c̅ = 2, 4, 14 and 28 for
512×512, 256×256, 128×128 and 64×64 tiling levels, respectively. Similarly, the CR
performance for the Hyperion dataset maximised at c̅ = 4, 14 and 28 for 256×256,
128×128 and 64×64 tiling levels, respectively. These clustering levels are where the CR
performance peaked averagely before continuing to decline as the clustering levels
further increased. This detailed investigation on clustering and its effects towards CR
performance is a new finding. To the best of the author’s knowledge no other research
work has uncovered the fact that the clustering can actually improve the compression
ratio of the Integer KLT algorithm.
The choices of tiling have been narrowed to a tiling level at t2 = 1 and 4 (i.e. 512×512
and 256×256 sub-tile sizes for the AVIRIS and 256×256 and 128×128 for the Hyperion
dataset) due to its negative impact on the CR and execution time performance. The
choices of clustering also have been restricted to the clustering levels that gives higher
CR performance than the case without clustering (i.e. c = 1) for both of t2 = 1 and 4 tiling
levels. These confined clustering and tiling levels could be selected adaptively so that the
CR and execution time performance can be kept higher and better than the case when c =
1.
Generally, the execution time performance of the Integer KLT has been improved by
reducing its complexity through the clustering approach, parallelisation and fixed
sampling. Besides that the sparse matrix-matrix multiplication optimisation that was
137
targeted during the embedded DSP implementations in Chapter 6 also contributes to the
execution time improvement. The CR performance however has been slightly lowered
due to the fixed sampling technique but has been increased due to the clustering at
clustering level c̅ as well as due to the overhead information compaction. Cumulatively,
the average execution time has been reduced by 93.27% for AVIRIS and 95.56% for
Hyperion datasets. The overall CR improvement has been recorded at 0.15% and 3.53%
for the selected AVIRIS and Hyperion datasets, respectively.
From the results shown in this chapter, the airborne (AVIRIS) images can be compressed
at higher CR values than the spaceborne images (Hyperion) even though the
uncompressed AVIRIS image (117.44 MB) is larger than the Hyperion (25.69 MB).
However, it is believed that the difference is due to the nature characteristics of the
dataset itself and can vary when using other dataset/image.
The investigation of the effect of clustering and tiling on the compression performance in
terms of CR and execution time, the fixed sampling for covariance matrix calculation, the
overhead information compaction method, and the hyperspectral variable sharing
technique are new approaches, which have been suggested during the course of this
research work.
138
Chapter 5 Error Detection in Integer KLT
This chapter is concerned with the development of a new Integer KLT incorporating an
error detection (ED) algorithm. The effect of a single-bit error (SBE) on the lossless
performance of the Integer KLT is investigated. An ED algorithm that is based on the
Freivald’s checker is proposed for the PLUS factorisation part of the Integer KLT
algorithm.
In Section 5.1, a brief introduction to ED at the algorithm level is given along with the
description of the Freivald’s checker. An SBE analysis of the Integer KLT is presented in
Section 5.2 where an error is injected during the encoding process of a hyperspectral
image, followed by decoding to see the effect of the SBE on the losslessness of the
Integer KLT. Section 5.3 gives details on how the ED is implemented inside the PLUS
factorisation part of the Integer KLT. Section 5.4 evaluates the effectiveness of the ED
and its contribution towards the complexity of the Integer KLT generally. Section 5.5
concludes the chapter.
5.1 Error Detection at the Algorithm Level
Besides good performance in encoding hyperspectral images, an algorithm used on board
satellites should have the capability of detecting and correcting soft errors that could
occur in the harsh environment of space. Single-event upsets (SEU), which are induced
by high-energy particles in space environment, are a common problem faced by on-board
data processing systems. SEUs could affect the actual performance of the algorithm or in
the worst case damage the system itself. SEUs typically appear as transient pulses in logic
and support circuitry, or as bit flips in memory cells and registers [26]. Bit flips should be
detected and corrected as they could affect the compression algorithm workflow and/or
the quality of the decompressed image, i.e. it might become lossy rather than lossless. It
is desirable that the ED algorithm is of a low complexity, so that it does not take a large
amount of computational resources (e.g. memory and CPU processing power).
A technique for ED from an algorithmic perspective, called the algorithm-based fault
tolerance (ABFT), was initially applied to systolic arrays [214]. The ABFT encodes data
once before computation by introducing checksums on a matrix, then works on the
encoded checksum along with the matrix data and the correctness is checked after the
139
matrix operation completes [215]. An ABFT ED algorithm for matrix multiplication, LU
decomposition and matrix inversion is proposed in [214]. However, the ABFT is only
possible to be implemented in multiprocessor architectures (e.g. systolic arrays), where a
very good fault containment exists between the set of processors involved in a certain
computation [217]. Another method called Result Checking (RC) [217] has been used
with matrix multiplication, QR decomposition and matrix inversion and its performance
was compared with the ABFT algorithm. RC was said to be independent of the targeted
algorithm that is to be fault-free and needs less lines of code for implementation
compared to the ABFT, but has similar memory overhead and error coverage.
RC originates from the idea that checking the result of a mathematical function is usually
easier than computing it. As stated in [219]: “A simple checker for function f is a program
which, given inputs x and y, returns the correct answer to the question, does f(x) = y? The
checker may be randomised, in which case, for any x and y, it must give the correct
answer with a high probability over its internal randomisation. Moreover, the checker
must take asymptotically less time than any possible program for computing f”. RC
however, is applicable only to error detection and not correction [216]. Several checkers
have been proposed for different mathematical functions such as linear transformations
like the Fourier Transform [270], trigonometric functions [271], and also for sorting,
matrix rank and the Greatest Common Divisor (GCD) [221].
Similar to the ABFT, RC methods have an issue with rounding errors in floating-point
computations [217]. An error tolerance interval has to be defined, so that if a fault
produces an error the magnitude of which is within the tolerance interval, the fault may
not be detected as it is deemed insignificant. In other words, the error tolerance interval
establishes the threshold for what is considered to be an error and what is not [217].
5.1.1 Freivald’s Checker
The Freivald’s checker for matrix multiplication checks whether or not 𝐵 × 𝐶 = 𝐷 [219].
In order do that, the product of D with a random vector r (𝐷 × 𝑟) is compared with
B × (C × 𝑟) as shown in (5-1) (similar to equation (2-4)),
D × 𝑟 ≟ (B × (C × 𝑟)) (5-1)
140
In case if D × 𝑟 is equal to (B × (C × 𝑟)), it is still probable that the multiplication is
incorrect. The probability can be reduced by re-running the algorithm with different
random vectors r. Probability analysis of the Freivald’s algorithm is discussed in [272].
The selection of the r vector could have some impact on the error detection coverage
[217].
Errors however could happen inside the Freivald’s checker. In this work, since the
checker is a simple algorithm, it is assumed that it is less likely to have bugs. As
mentioned in [217], the checker can be protected using the ‘robust assertion’ method
discussed in [273].
5.2 Single-bit Error Analysis of Integer KLT
To analyse the effect of an SBE on the losslessness of the Integer KLT, the existing C++
codes described in Listing 4-1 (non-parallelised) and Listing 4-3 (parallelised using
OpenMP) have been modified to include error injection that targets only a single bit of a
target variable. Six locations have been pre-selected and are denoted by A to F in the
Integer KLT block diagram in Figure 5-1. The targeted variables are:
a) H – input hyperspectral image (32-bit, integer),
b) RoundedMean – mean of each spectral band, rounded (32-bit, integer),
c) C – covariance matrix (64-bit, double),
d) A – eigenvector matrix (64-bit, double),
e) P – permutation matrix or its temporary variable, 𝑃𝑠(𝑘)
during the factorisation of
A at k-th step (1-bit*, Boolean),
f) L – lower TERM matrix or its temporary variable, 𝐿𝑠(𝑘)
(64-bit, double),
g) U – upper TERM matrix or its temporary variable, 𝑈𝑠(𝑘)
(64-bit, double), and
h) S – lower TERM matrix or its temporary variable, 𝑆𝑠(𝑘)
(64-bit, double).
For any data type from the targeted variables (except for Boolean), the SBE can be
introduced by first converting it into its binary form, toggling any single bit of it and
converting it back to its original data type. For double data type, the conversion is based
on double precision IEEE 754 specifications [268] and the binary data representation is
* A bit of Boolean occupy 1 byte of memory due to the smallest addressable unit of memory is 1 byte for
most of processor architecture. For this test, a bit is assumed to be a single bit without reflecting how it is
stored inside memory.
141
Start
1. Calculate RoundedMean of each band.
Perform centred-mean on H, becoming
H_adjust
2. Calculate covariance matrix, C of
H_adjust
3. Calculate eigenvectors, A & eigenvalue, V
of C. Sort A based on V in descending order
A
B
C
D
E
F
Example Diagram for 4-band operation
Finish
4. Factorise A into P, L, U, S (PLUS Factorisation)
StartP = I, L = I, S = Ik = 0Us(k-1) = AT
k = Z – 2?
k = k + 1 Us(k-1) = Us
(k)
Update P, L, S
P = Ps(k) × P,
S = Ss(k) × S,
L = (Ls(k) × Ps
(k)) × LFactorisation
Factor Us(k-1) into Ls
(k), Us(k), Ss
(k)
Pivoting
Determine Ps(k) from Us
(k-1)
Update Us(k-1), Us
(k-1) = Ps(k) × Us
(k-1)
Ps(k) = I, Ls
(k) = I, Ss(k) = I
U = Us(Z-2), P, L, S Finish
No
Yes Note: I = Identity matrix
All matrices are with dimension of Z × Z
5. Apply P, L, U, S to H_adjust
LUS
+
s3,0 s3,1 s3,2
[]
+
+
s2,0 s2,1
[]
+
s1,0
[]
+
+
u0,1 u0,2 u0,3
[]
+
+
u1,2 u1,3
[]
+
+
u2,3
[]
++
l3,0 l3,1 l3,2
[]
+
+
l2,0 l2,1
[]
+
l1,0
[]
+
h_adjusta
h_adjustb
h_adjustc
h_adjustd
h_encodeda
h_encodedb
h_encodedc
h_encodedd
P
H = input
Encoded Image = H_encoded
Overhead Information = P, L, U, S
& RoundedMean
Figure 5-1: Integer KLT Block Diagram and SBE Test Point Locations
shown in Figure 5-2. It consists of 1 sign bit, 11 bits exponent and 52 bits fraction or also
known as mantissa. In the standard, infinity value (Inf, e.g. 1 0⁄ ) and Not a Number
(NaN, e.g. 0 0⁄ ) are defined as when all the exponent bits are equal to logic 1. For the 32-
bit integer (signed/unsigned) data type, it is based on a standard discussed in [274] that
uses two’s complement for signed values. For the Boolean variable, the SBE is performed
simply by toggling its current logic. In this analysis, each bit location is tested. The
142
Integer KLT with the error injection is executed followed by spatial compression using
the lossless JPEG2000 (Figure 3-4). Then, the compressed image is decompressed and
decoded as in Figure 3-5 and the output is compared with the original image to see how
the SBE affects the losslessness of the algorithm.
63
exponent (11 bits)sign fraction/mantissa (52 bits)
62 5251 0
Figure 5-2: IEEE-754 Double Precision
The AVIRIS Jasper Ridge Scene 1 (Jasper1) is used here for the SBE test. The testing
results at the defined test points are shown in Table 5-1. The variable co-ordinate/location
was chosen randomly and listed in the table for the purpose of presentation. Several other
locations were tested and the lossy/lossless results may vary. The results covered the
injection of errors at all 32 (integer) and 64 (double) -bit positions and is presented as
lossy or lossless with the percentage of loss (each band and overall). Comparisons
through visual inspection were carried out by decoding the output back and viewing it in
the ENVI software package [109]. Some of the results show that the test produced
visually similar (VS) or similar (S) results compared with the original data. Results with a
lossy output of over 85% (on each band) are shown in Figure 5-3 to Figure 5-10.
As can be seen, the four variables, P, L, U and S (and their corresponding temporary
variables during factorisation, 𝑃(𝑍×𝑍)𝑘 , 𝐿(𝑍×𝑍)
𝑘 , 𝑈(𝑍×𝑍)𝑘 , and 𝑆(𝑍×𝑍)
𝑘 ) are the most vulnerable
variables and could cause a large loss to the decoded image. In the worst cases, the SBE
could cause the encoder to crash. In order to protect those variables, an ED algorithm
which is based on Freivald’s checker is proposed to be implemented in the PLUS
factorisation.
For the other variables (i.e. H, C and RoundedMean), these can be protected using other
algorithms such as the Hamming Code [275] to make sure those variables are not
changed/modified by the soft error. The H variable needs to be protected right after step 1
until the end of step 5 in the Integer KLT block diagram (Figure 5-1). The RoundedMean
variable needs to be protected after step 1 onwards. Variable C (i.e. covariance matrix)
might not need any protection since it is obtained from step 2 and used in step 3 for
eigenvector/eigenvalue calculation and there is no further use of C in the later steps.
143
Table 5-1: SBE Test on AVIRIS-Jasper Ridge Scene 1
Test
Point Variable
SBE Bit
Position Lossy/Lossless
Overall Loss
(%) Note
A H(1,2,3) = -158 (integer)
0-24 Lossy-H(1,2,3) 1.7e-6 VS
25-31 Lossy-H(1,2,z) 3.8e-4 VS
RoundedMean(50) = 3307 (integer) 0-31 Lossy-band 50 (100%) 0.45 VS
B C(3,2) = 22143.2191 (double) 0-64 Lossless - S
C A(60,89) = 0.0008672 (double) 62 Encoder crashed - -
Other Lossless - S
D
𝑃(159,142)0 = 0 (Boolean) 0 Lossy-all bands (36-99%) 92.0 Figure 5-3
𝐿(120,0)0 = -0.0640 (double) 0-63 Lossy-all bands (47-100%) 98.8 Figure 5-4
𝑈(100,28)0 = -0.0071 (double) 0-63 Lossy-all bands (47-100%) 98.8 Figure 5-5
𝑆(213,0)0 = 1.0798 (double)
0-61,63 Lossy-all bands (47-100%) 98.8 Figure 5-6
62 Encoder crashed - -
E
𝑃(38,35) = 1 (Boolean) 0 Lossy-all bands (32-80%) 54.8 VS
𝐿(54,1) = 0.00007475 (double) 62 Lossy-all bands (99.1%) 99.1 Figure 5-7
Other Lossless - S
𝑈(3,6) = -0.00009552 (double) 62 Lossy-all bands (100%) 100 Figure 5-8
Other Lossless - S
𝑆(38,35) = -1.0376 (double) 62 Encoder crash - -
Other Lossless - -
F
𝑃(100,87) = 0 (Boolean) 0 Lossy-all bands (30-80%) 55.9 VS
𝐿(4,0) = -0.004901 (double)
0-52 Lossless - -
53-61,63 Lossy-all bands (0.00038-
0.001%) 6.5e-4 VS
62 Lossy-all bands (40.5-85.1%) 84.7 Figure 5-9
𝑈(3,6) = -0.00009552 (double)
0-36 Lossless - -
37 Lossy-band 2 & 216 (0.00038%) 3.4e-6 VS
: Lossy-no. of bands increases : VS
61
Lossy-band
0,1,2,3,213,214,216,222,223
(0.06-2.4%)
0.03 VS
62 " (9.1-100%) 3.74 Figure 5-10
63 " (0.13-4.7%) 0.06 VS
𝑆(9,5) = 1.1656 (double)
0-26 Lossless - -
: Lossy-no. of bands increases : VS
28 Lossy-band 9,212,222,223
(0.0004-0.002%) 2e-5 VS
: : :
36
Lossy-band
9,212,214,216,222,223 (0.02-
0.39%)
4e-3 VS
: : :
60,61,63 "(7.1-99.7%) 1.09 VS
62 Decoder crashed - -
H(8,27,0) = 1094 (integer)
0 Lossy-124 bands (0.00038%) 2.1e-4 VS
1 Lossy-122 bands (0.00038%) 2.1e-4 VS : : :
8 Lossy-203 bands (0.00038%) 3.5e-4 VS : : :
10 Lossy – 213 bands (0.00038%) 3.6e-4 VS : : :
14-24 Lossy-all bands (0.00038%) 3.8e-4 VS
25-31 Lossless - S
RoundedMean(50) = 3307 (integer) All Lossy-band 50 (100%) 0.45 VS VS-visually similar, S-similar
144
(a) Original (b) Decoded: SBE in P at point D (99.5% loss)
Figure 5-3: Visual Image Comparison – Band 219
(a) Original (b) Decoded: SBE at 62nd bit in L at point D (100% loss)
Figure 5-4: Visual Image Comparison – Band 16
(a) Original (b) Decoded: SBE at 62nd bit in U at point D (99.9% loss)
Figure 5-5: Visual Image Comparison – Band 36
(a) Original (b) Decoded: SBE at 61st bit in S at point D (99.9% loss)
Figure 5-6: Visual Image Comparison – Band 75
(a) Original (b) Decoded: SBE at 62nd bit in L at point E (99.1% loss)
Figure 5-7: Visual Image Comparison – Band 14
145
(a) Original (b) Decoded: SBE at 61st bit in U at point E (100% loss)
Figure 5-8: Visual Image Comparison – Band 32
(a) Original (b) Decoded: SBE at 62nd bit in L at point F (85.08% loss)
Figure 5-9: Visual Image Comparison – Band 13
(a) Original (b) Decoded: SBE at 62nd bit in U at point F (99.04% loss)
Figure 5-10: Visual Image Comparison – Band 216
5.3 PLUS Factorisation and Freivald’s Checker
At the end of each iteration k from the PLUS factorisation, 𝑈𝑠(𝑘)
is obtained and given by:
𝑈𝑠(𝑘)
= 𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
𝑆𝑠(𝑘)
where, 𝑈𝑠(𝑘)
is the output from the current iteration,
𝑃𝑠(𝑘)
is a permutation matrix,
𝐿𝑠(𝑘)
and 𝑆𝑠(𝑘)
are lower TERM matrices, with
𝑆𝑠(𝑘)
=
[ 1 0 ⋯ 0 ⋯ 0 ⋯ 00 1 ⋯ 0 ⋯ 0 ⋯ 0⋮ ⋮ ⋱ ⋮ ⋯ 0 ⋯ 00 0 ⋯ 1 ⋯ 0 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮0 0 ⋯ −𝑠𝑘 ⋯ 1 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 00 0 ⋯ 0 ⋯ 0 ⋯ 1]
, from (3-12),
(5-2)
146
The element −𝑠𝑘 is at (c, k), where c is the column position from pivoting and
𝑠𝑘 is expressed as:
𝑠𝑘 = (𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
− 1)(𝑘,𝑘)
(𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
)(𝑘,𝑐)
⁄
with 𝑈𝑠(𝑘−1)
is the output from the previous iteration.
The equation (5-2) above can be re-arranged as:
𝑈𝑠(𝑘)
𝑆𝑠(𝑘)
= 𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
𝑈𝑠(𝑘−1)
where 𝑆𝑠(𝑘)
here is the inversion of 𝑆𝑠(𝑘)
from (5-2) as follows,
𝑆𝑠(𝑘)
=
[ 1 ⋯ 0 ⋯ 0 ⋯ 0⋮ ⋱ ⋮ ⋯ 0 ⋯ 00 ⋯ 1 ⋯ 0 ⋯ 0⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮0 ⋯ 𝑠𝑘 ⋯ 1 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋮ ⋱ 00 ⋯ 0 ⋯ 0 ⋯ 1]
(5-3)
By assigning 𝑈𝑠(𝑘)
𝑆𝑠(𝑘)
from (5-3) above to D in (5-1), similarly, 𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
to B and 𝑈𝑠(𝑘−1)
to C as shown in (5-4), error can be detected in each iteration of the PLUS factorisation
using the Freivald’s checker algorithm, opting for several random r vectors. Note that the
matrix multiplication in 𝑈𝑠(𝑘)
𝑆𝑠(𝑘)
and 𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
are simple since 𝑆𝑠(𝑘)
is an identity matrix
with a single value in the lower triangular part and 𝑃𝑠(𝑘)
is a permutation matrix. The
multiplication process is explained in detail in Section 6.2.2 later in Chapter 6. It is worth
noting that the ED algorithm is capable of detecting errors whenever the left side of
equation (5-4) is not equivalent to its right side, at any level. This means that even if all
bit locations inside any variable involved (i.e. 𝐿𝑠(𝑘)
, 𝑈𝑠(𝑘)
, 𝑆𝑠(𝑘)
and including 𝑃𝑠(𝑘)
) are
injected with errors, the ED algorithm is able to detect it suggesting that this algorithm is
capable of detecting multi-bit errors.
(𝑈𝑠(𝑘)
𝑆𝑠(𝑘)
) × 𝑟 ≟ (𝐿𝑠(𝑘)
𝑃𝑠(𝑘)
(𝑈𝑠(𝑘−1)
× 𝑟)) (5-4)
The block diagram for the PLUS factorisation with Freivald’s checker is shown in Figure
5-11. The blocks that are surrounded by dotted lines are the additional functions that have
been added in comparison to the original PLUS factorisation presented in Figure 3-2
earlier. At the beginning of each iteration, a copy of 𝑈𝑠(𝑘−1)
is backed-up for error
correction purposes. If the error checking produces a correct result, a different r vector
147
can be used to reduce the probability of the incorrectness. The error checking as shown in
the figure is repeated for W number of different r vectors. The value of W should not be
too big as this will increase the computational costs. The optimum value of W along with
the type of r vectors will be identified in the next sub-section. When an error is detected,
the copy of 𝑈𝑠(𝑘−1)
is used and the affected iteration is repeated. The factorisation is
resumed after that with the error detection executed in each iteration. After the
completion of the ED algorithm, the 𝑈𝑠(𝑘−1)
is assumed to be fault-free due to the
additional error correction capability, as shown in Figure 5-11.
StartP = I, L = I, S = I
k = 0
Us(k-1) = AT
k = Z – 2?
k = k + 1 Us(k-1) = Us
(k)
Ps(k) = I, Ls
(k) = I,
Ss(k) = I
U = Us(Z-2), P, L, S Finish
No
Yes Note: I = Identity matrix with k as the step number
All matrices are with dimension of Z × Z, except r with size of Z × 1
Ubackup = Us(k-1)
Backup current
Us(k-1)
1
Update P, L, S
P = Ps(k) × P,
S = Ss(k) × S,
L = (Ls(k) × Ps
(k)) × L
D = Us(k)Ss
(k)
B = Ls(k)Ps
(k)
C = Us(k-1)
D × r ≟ (B×(C×r))
Us(k-1) = Ubackup
Yes
Error Detection & Correction
NoYesw = w + 1
m = 0
w < W ?
Generate r
No (error detected)
Factorization
Factor Us(k-1) into
Ls(k), Us
(k), Ss(k)
6-9Pivoting
Determine Ps(k) from Us
(k-1)
Update Us(k-1), Us
(k-1) = Ps(k) × Us
(k-1)
2-5
10
Figure 5-11: PLUS Factorisation with the Error Detection Algorithm and a Simple
Correction Capability.
5.4 Performance Evaluation
5.4.1 Error Detection Performance
The input to the PLUS factorisation (i.e. AT, the eigenvector matrix) should be a non-
singular matrix. In order to evaluate the performance of the proposed ED in the
factorisation algorithm, the output Q from the QR factorisation (which is a non-singular
matrix) of a random Z×Z matrix is used. In the test, Z is set to 30. The non-singular
matrix Q is fed into the PLUS factorisation and an SBE is injected at a random iteration
number k and at a random location from 10 pre-selected locations (marked 1 to 10 in
Figure 5-11) in the algorithm. At the point of injection, one matrix variable out of the
four (𝑃𝑠(𝑘)
, 𝐿𝑠(𝑘)
, 𝑈𝑠(𝑘)
and 𝑆𝑠(𝑘)
) is randomly selected and one element from the selected
148
matrix (with 30×30 of total elements) is also randomly selected. Next, a bit position from
the 64 bits double data type (for 𝐿𝑠(𝑘)
, 𝑈𝑠(𝑘)
and 𝑆𝑠(𝑘)
) is randomly selected and the SBE is
performed by converting the selected matrix element into its binary form, and toggling
the selected bit position before converting it back to a double data type, as discussed in
the previous section. For 𝑃𝑠(𝑘)
, the SBE is performed simply by toggling its current logic.
The block diagram for the random selection process is shown in Figure 5-12 where the
shaded blocks are the selection processes that are performed randomly. It show the steps
involved in the random selection of a bit position from ten pre-selected locations inside
the Integer KLT algorithm for error detection and correction. The fault injection routine
is very similar to the one used in [216].
Start
Pick 1 out of 10 pre-
selected locations
Pick 1 out of the 4
matrices
Pick 1 out of 64 bits
location
Toggle the current
logic of the selected
matrix
Toggle the current
logic of the selected
value in its binary
representation
Pick 1 value out of
900 (30×30) values
inside the selected
matrix
Convert the binary
numbers back to its
double datatype
Finish
double
datatype
Boolean
datatype
Pick 1 out of 29 (Z – 1)
total number of
iterations, k
Figure 5-12: Random Selection of a Bit Position inside the Integer KLT Algorithm
Each Q matrix is factorised, randomly injected with an error and the Freivald’s checker is
used to detect the error by opting for six different combinations of r vectors as shown in
Table 5-2. Case 1 and 2 involved only one r vector (W = 1), case 3 and 4 for W = 2 and
case 5 and 6 for W = 3, where in each W, there is r vector with zeroes and another one
without zeroes in it. The entire program flow (Figure 5-12) was repeated and tested for 1
million different Q matrices.
Table 5-2: Combinations of r Vectors used for Error Detection
Case No. No. of r vectors, W Interval value of r (integer)
1 1 (with zeroes) [-1, 1]
2 1 (without zeroes) [1, 3]
3 2 (with zeroes) [-1, 1] and [2, 4]
4 2 (without zeroes) [1, 3] and [4, 6]
5 3 (with zeroes) [-1, 1], [2, 4] and [5, 7]
6 3 (without zeroes) [1, 3], [4, 6] and [7, 9]
The results from the error detection using the six cases of r vectors are shown in Table
5-3 to Table 5-8, where diff. is the difference between the original value and the corrupted
value of the targeted variable after the SBE injection. For the purpose of error analysis,
149
the magnitude of diff. is divided into several tolerance intervals as in [217]. Seven
intervals are used, diff. >= 1e-7, 1e-8 <= diff. < 1e-7, 1e-9 <= diff. < 1e-8, 1e-10 <= diff. <
1e-9, 1e-11 <= diff. < 1e-10, 1e-12 <= diff. < 1e-11, and diff. < 1e-12. The tables also
show the number of injected errors as well as the number of detected and undetected
errors for each of the tolerance intervals. In evaluating the ED algorithm, there is also the
possibility that the SBE produces Inf or NaN value and most of the time the error
detection is unable to detect them. Some additional code is introduced to detect these
cases and become an additional error detection method. These types of errors are not
shown in the tables.
Table 5-3: Error Detection Performance using One Vector r (with zeroes)
Case No. 1 Injected Undetected Detected
diff. >= 1e-7* 350,924 29,610 320,831
1e-8 <= diff. < 1e-7 8,864 2,726 6,138
1e-9 <= diff. < 1e-8 9,194 2,868 6,326
1e-10 <= diff. < 1e-9 12,031 3,812 8,219
1e-11 <= diff. < 1e-10 8,896 2,718 6,178
1e-12 <= diff. < 1e-11 8,871 2,970 5,901
diff. < 1e-12 601,220 598,738 2,482
TOTAL 1,000,000 643,442 356,075 *483 of errors were detected at later iteration
Table 5-4: Error Detection Performance using One Vector r (without zeroes)
Case No. 2 Injected Undetected Detected
diff. >= 1e-7 350,924 0 350,924
1e-8 <= diff. < 1e-7 8,864 0 8,864
1e-9 <= diff. < 1e-8 9,194 0 9,194
1e-10 <= diff. < 1e-9 12,031 0 12,031
1e-11 <= diff. < 1e-10 8,896 7 8,889
1e-12 <= diff. < 1e-11 8,871 82 8,789
diff. < 1e-12 601,220 595,856 5,364
TOTAL 1,000,000 595,945 404,055
Table 5-5: Error Detection Performance using Two Vectors r (with zeroes)
Case No. 3 Injected Undetected Detected
diff. >= 1e-7 350,924 0 350,924
1e-8 <= diff. < 1e-7 8,864 0 8,864
1e-9 <= diff. < 1e-8 9,194 0 9,194
1e-10 <= diff. < 1e-9 12,031 0 12,031
1e-11 <= diff. < 1e-10 8,896 2 8,894
1e-12 <= diff. < 1e-11 8,871 13 8,858
diff. < 1e-12 601,220 594,416 6,804
TOTAL 1,000,000 594,431 405,569
150
Table 5-6: Error Detection Performance using Two Vectors r (without zeroes)
Case No. 4 Injected Undetected Detected
diff. >= 1e-7 350,924 0 350,924
1e-8 <= diff. < 1e-7 8,864 0 8,864
1e-9 <= diff. < 1e-8 9,194 0 9,194
1e-10 <= diff. < 1e-9 12,031 0 12,031
1e-11 <= diff. < 1e-10 8,896 0 8,896
1e-12 <= diff. < 1e-11 8,871 11 8,860
diff. < 1e-12 601,220 591,109 10,111
TOTAL 1,000,000 591,120 408,880
Table 5-7: Error Detection Performance using Three Vectors r (with zeroes)
Case No. 5 Injected Undetected Detected
diff. >= 1e-7 350,924 0 350,924
1e-8 <= diff. < 1e-7 8,864 0 8,864
1e-9 <= diff. < 1e-8 9,194 0 9,194
1e-10 <= diff. < 1e-9 12,031 0 12,031
1e-11 <= diff. < 1e-10 8,896 0 8,896
1e-12 <= diff. < 1e-11 8,871 8 8,863
diff. < 1e-12 601,220 591,172 10,048
TOTAL 1,000,000 591,180 408,820
Table 5-8: Error Detection Performance using Three Vectors r (without zeroes)
Case No. 6 Injected Undetected Detected
diff. >= 1e-7 350,924 0 350,924
1e-8 <= diff. < 1e-7 8,864 0 8,864
1e-9 <= diff. < 1e-8 9,194 0 9,194
1e-10 <= diff. < 1e-9 12,031 0 12,031
1e-11 <= diff. < 1e-10 8,896 0 8,896
1e-12 <= diff. < 1e-11 8,871 2 8,869
diff. < 1e-12 601,220 589,132 12,088
TOTAL 1,000,000 589,134 410,866
The value of Z in the test determines: (i) the total number of iterations which equals to Z
– 1 and (ii) the size of the targeted variable. Unlike in [217] where Z was set to 210 for
implementation of the Freivald’s checker inside the QR factorisation itself, the value of Z
in this test (of PLUS factorisation) is set to 30 for simplicity reason. The value of Z does
not affect the performance of the Integer KLT, the Freivald’s checker algorithm or the
test itself. However, as suggested in [116], the value of Z here could not be less than four
since the Integer KLT performance as spectral decorrelator will not be so effective. The Z
variable (or z), as in the rest of the thesis, determines the number of spectral bands in a
cluster (Z = z if the number of clusters c = 1 and Z > z for c > 1). As presented in Table
4-3, several values of z (i.e. cluster size, Z/c or clustering level) could be used and the
value of 30 employed in this test falls under the range of clustering levels that are
possible for the selected hyperspectral datasets. For the test, only one iteration out of the
151
total 29 iterations is selected randomly and only one value inside the targeted matrix out
of the total 900 (30×30) possible values is also selected randomly before the SBE test is
performed. The capability of the Freivald’s checker is measured by comparing the
original value and the corrupted value (i.e. diff.) of the targeted variable after the SBE
test. The value of Z clearly does not affect the test outcome as long it is set to be greater
than four as suggested in [116].
5.4.1.1 Discussion
The worst detection performance is shown in Table 5-3 for case no. 1 that uses only one
random r vector (W = 1) with zeroes. The number of undetected errors is large at each
interval, with 483 errors detected at later iterations which fall under the first interval (diff.
≥ 1e-7). Table 5-4 shows a tremendous performance improvement and a capability to
detect all errors in the four highest tolerance intervals for case no. 2 using a non-zero and
integer r vector. The error tolerance threshold is diff. < 1e-10 and no errors were detected
at later iterations as in case no. 1.
If the error couldn’t be detected by using a particular random r vector, Freivald’s checker
can be repeated with a different r vector to improve the detection performance. Case no. 3
in Table 5-5 had similar performance as recorded in Table 5-3 at first but then it was
improved by using a second r vector without zeroes [2, 4], and the number of the
undetected errors became lower and, in fact, better than case no. 2 in Table 5-4.
Continuing the analysis to Table 5-8, it can be seen that the error detection performance
is further improved. The error tolerance threshold decreases from 1e-10 in Table 5-5
(case no. 3) to 1e-11 in Table 5-6 to Table 5-8 (case no. 4 to 6). However, using more r
vectors could increase the computational cost whilst not affecting the tolerance threshold
as much. More importantly, it was found that the errors in the bottom two tolerance
intervals in Table 5-6 to Table 5-8 caused insignificant changes to the PLUS
factorisation, which did not affect the losslessness of the Integer KLT algorithm.
Therefore, it can be concluded that two non-zero and integer r vectors (W = 2) are
sufficient to detect errors in the Integer KLT with a sufficiently low error tolerance
threshold of 1e-11.
152
5.4.2 Execution Time Evaluation
It is important to see how the proposed ED algorithm contributes towards the complexity
of the overall Integer KLT algorithm. As mentioned before, the ED algorithm is executed
in each iteration inside the PLUS factorisation. The additional process produces some
overhead in complexity and thus will affect the execution time of the Integer KLT.
In this sub-section, only two non-zero and integer r vectors are used in each iteration of
the factorisation for error detection purposes as it has been proven to be sufficient in the
previous sub-section. The proposed ED algorithm is applied to the desktop
implementations of the Integer KLT that have been improved in Chapter 4, covering both
the non-parallelised and parallelised (utilising OpenMP) implementations.
All the selected hyperspectral images used in the previous chapter are used to evaluate
the execution time performance of the Integer KLT implementations that now includes
the ED algorithm. Similarly as in the previous chapter, only the average execution time is
reported for all the combinations of clustering and tiling levels. The average execution
time figures are then compared with the average execution time obtained from the
previous chapter (i.e. without the ED algorithm) and reported as execution time overhead.
5.4.2.1 Non-parallelised Integer KLT
The average execution time comparison between the implementation with and without
the proposed ED algorithm for the non-parallelised implementation of the Integer KLT
from the previous chapter is shown in Table 5-9 and Table 5-10 for the AVIRIS and
Hyperion dataset respectively. The overhead of the ED algorithm (i.e. the execution time
differences between the case with and without the ED) are also shown. Graphically, the
comparison is shown in Figure 5-13 and Figure 5-14 for AVIRIS and Hyperion
respectively, where each chart inside the figures corresponds to each tiling approach. All
the average execution time values for the cases without the ED algorithm are taken from
Table 4-21 and Table 4-22 for the AVIRIS and Hyperion datasets, respectively. The
average execution time values from the clustering levels c̅ obtained in the previous
chapter are shaded in the tables and are marked with black-bordered bars in the charts.
Figure 5-15 on the other hand shows only the execution time overhead values in each of
clustering and tiling levels for both datasets. The smaller graphs inside the figure magnify
the execution time overhead values at smaller time ranges. The average execution time
performance for the CHRIS images is shown in Table G-34 from Appendix G.
153
Table 5-9: Average Execution Time Comparison of the Non-parallelised Integer KLT using Clustering and Tiling with and without ED,
based on AVIRIS Images (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
* † * † * † * † * † * † * † * † * † * †
512×512 (1) 25.56 26.06 13.84 13.99 9.55 9.60 7.84 7.88 7.28 7.32 6.03 6.06 5.83 5.85 4.51 4.52 4.02 4.03 3.60 3.60
Overhead 0.50 0.15 0.05 0.04 0.04 0.03 0.02 0.01 0.01 0.0045
256×256 (4) 29.96 31.96 13.92 14.34 9.80 9.87 7.38 7.44 6.75 6.80 5.72 5.75 5.41 5.45 4.26 4.29 3.98 4.00 3.59 3.59
Overhead 2.00 0.42 0.07 0.06 0.05 0.04 0.04 0.03 0.02 0.0030
128×128 (16) 48.79 56.55 16.98 18.62 9.54 9.91 7.12 7.28 6.87 6.99 5.69 5.73 5.68 5.72 4.44 4.48 4.12 4.13 3.53 3.54
Overhead 7.76 1.64 0.37 0.16 0.12 0.04 0.04 0.04 0.01 0.01
64×64 (64) 124.69 156.03 28.29 34.51 11.32 12.70 7.66 8.22 6.97 7.33 5.65 5.96 5.75 5.82 4.56 4.63 4.20 4.26 3.71 3.72
Overhead 31.33 6.21 1.38 0.56 0.36 0.31 0.07 0.07 0.06 0.02
Table 5-10: Average Execution Time Comparison of the Non-parallelised Integer KLT using Clustering and Tiling with and without ED,
based on Hyperion Images (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
* † * † * † * † * † * † * †
256×256 (1) 5.64 5.91 2.84 2.86 1.98 1.99 1.47 1.48 1.17 1.18 0.91 0.92 0.76 0.77
Overhead 0.27 0.02 0.02 0.01 0.01 0.01 0.01
128×128 (4) 8.41 9.59 3.44 3.66 1.92 1.96 1.51 1.55 1.18 1.21 0.89 0.91 0.76 0.78
Overhead 1.18 0.22 0.04 0.04 0.03 0.03 0.02
64×64 (16) 20.16 24.92 5.00 5.98 2.22 2.40 1.56 1.64 1.23 1.28 0.87 0.91 0.75 0.78
Overhead 4.76 0.98 0.18 0.08 0.05 0.05 0.03
* Average execution time without the ED † Average execution time with the ED
154
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 5-13: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on AVIRIS Images
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 5-14: Average Execution Time Comparison of the Non-parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion Images
0
5
10
15
20
25
30
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
5
10
15
20
25
30
35
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
10
20
30
40
50
60
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
50
100
150
200
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
1
2
3
4
5
6
7
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
2
4
6
8
10
12
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
5
10
15
20
25
30
1 2 4 7 14 28 49
Tim
e (s
eco
nd
s)
No. of Clusters (c)
155
0
5
10
15
20
25
30
35
1 2 4 7 8 14 16 28 32 56
Ov
erh
ead
(se
con
ds)
No. of Clusters (c) 512×512 256×256 128×128 64×64
0.0
0.1
0.2
0.3
0.4
0.5
0.6
1 2 4 7 8 14 16 28 32 56
0
1
2
3
4
5
1 2 4 7 14 28 49
Ov
erh
ead
(se
con
ds)
No. of Clusters (c) 256×256 128×128 64×64
0.00
0.05
0.10
0.15
0.20
1 2 4 7 14 28 49
(a) AVIRIS
(b) Hyperion
Figure 5-15: ED Execution Time Overhead of the Non-parallelised Integer KLT using
Clustering and Tiling (in seconds)
5.4.2.2 Parallelised Integer KLT
Using a similar presentation as before, the average execution time comparison between
the implementation with and without the ED algorithm for the parallelised Integer KLT
from the previous chapter is shown in Table 5-11 and Table 5-12 for the AVIRIS and
Hyperion datasets, respectively. The overhead of the ED algorithm are also shown in the
tables. Graphically, the two execution time values at each clustering and tiling levels are
presented in Figure 5-16 (AVIRIS) and Figure 5-17 (Hyperion). The average results from
the clustering levels c̅ obtained from Section 4.7.3.1 are shaded in the tables and marked
with black-bordered bars in the charts. Figure 5-18 on the other hand, shows only the
execution time overhead values in each of clustering and tiling levels for both of the
datasets. The smaller graphs inside the figure show the detailed behaviour of the
overhead at smaller time ranges. The CHRIS images average execution time performance
is tabulated in Table G-35 from Appendix G.
156
Table 5-11: Average Execution Time Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without ED, based on
AVIRIS Images (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ §
512×512 (1) 28.09 31.84 8.29 8.53 3.63 3.76 2.30 2.32 1.93 1.95 1.83 1.84 1.66 1.67 1.46 1.48 1.38 1.39 1.10 1.10
Overhead 3.75 0.23 0.13 0.03 0.02 0.02 0.01 0.01 0.01 0.0042
256×256 (4) 37.36 53.44 9.01 10.05 3.46 3.55 2.16 2.25 2.00 2.05 1.71 1.75 1.58 1.63 1.28 1.30 1.14 1.16 0.94 0.94
Overhead 16.08 1.03 0.10 0.09 0.06 0.04 0.04 0.03 0.02 0.01
128×128 (16) 75.34 134.43 11.54 15.97 3.23 3.64 1.78 2.10 1.62 1.67 1.30 1.33 1.24 1.27 1.00 1.03 0.97 0.99 0.79 0.80
Overhead 59.09 4.43 0.41 0.33 0.05 0.03 0.03 0.03 0.02 0.0024
64×64 (64) 229.89 466.38 21.87 38.48 4.13 5.35 1.91 2.26 1.53 1.75 1.31 1.45 1.17 1.29 0.99 1.07 0.94 1.01 0.75 0.76
Overhead 236.48 16.61 1.22 0.35 0.21 0.15 0.12 0.08 0.07 0.01
Table 5-12: Average Execution Time Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without ED, based on
Hyperion Images (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ §
256×256 (1) 6.68 9.05 1.64 1.82 0.78 0.79 0.44 0.45 0.34 0.34 0.23 0.24 0.20 0.20
Overhead 2.36 0.17 0.01 0.01 0.0049 0.0032 0.0013
128×128 (4) 12.04 21.94 2.02 2.63 0.67 0.76 0.35 0.37 0.26 0.27 0.19 0.20 0.17 0.18
Overhead 9.90 0.62 0.09 0.02 0.01 0.01 0.01
64×64 (16) 34.38 71.99 3.66 6.38 0.80 1.05 0.37 0.43 0.28 0.31 0.20 0.21 0.19 0.19
Overhead 37.60 2.72 0.25 0.06 0.04 0.01 0.0002
‡ Average execution time without the ED § Average execution time with the ED
157
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 5-16: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on AVIRIS Images
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 5-17: Average Execution Time Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED, based on Hyperion Images
0
5
10
15
20
25
30
35
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
10
20
30
40
50
60
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
20
40
60
80
100
120
140
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
75
150
225
300
375
450
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
2
4
6
8
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
5
10
15
20
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
10
20
30
40
50
60
70
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
158
0
50
100
150
200
250
1 2 4 7 8 14 16 28 32 56
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
512×512 256×256 128×128 64×64
0
5
10
15
20
25
30
35
40
1 2 4 7 14 28 49
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
256×256 128×128 64×64
0.0
0.1
0.2
0.3
0.4
1 2 4 7 8 14 16 28 32 56
0.00
0.05
0.10
0.15
0.20
0.25
1 2 4 7 14 28 49
(a) AVIRIS
(b) Hyperion
Figure 5-18: ED Execution Time Overhead of the Parallelised Integer KLT using
Clustering and Tiling (in seconds)
5.4.2.3 Discussion
It can be seen from Figure 5-13 and Figure 5-14 for the non-parallelised implementation
as well as from Figure 5-16 and Figure 5-17 for the parallelised implementations that the
Integer KLT with the ED algorithm has the same execution time pattern as the cases
without the ED as presented in Section 4.7.3.2. However the incorporation of the
algorithm does increase the average execution time of the Integer KLT in each case of
clustering and tiling levels as expected. Explanation and discussion on the average
execution time patterns are given in Section 4.7.3.2.
The execution time overhead is much higher at smaller sub-tile sizes and during the first
few clustering levels. This can be observed clearly from Figure 5-15 (non-parallelised)
and Figure 5-18 (parallelised) that shows only the execution time overhead bars. In both
of the non-parallelised and parallelised implementations, worst overheads are recorded at
159
the smallest sub-tile size (i.e. 64×64 sub-tile size) at clustering level c = 1. The non-
parallelised version produces 31.33 and 4.76 seconds of overhead for the AVIRIS and
Hyperion dataset, respectively. Similarly, the parallelised implementation gives 236.48
and 37.60 seconds of extra execution time figures due to the introduction of the ED
algorithm.
As discussed previously in Section 4.7.3.2, a combination of the smaller sub-tile sizes
and clustering level c = 1 suffers in execution time performance (as well as CR). Tiling
during c = 1 simply reduces the spatial information of the hyperspectral image but the
number of bands in each sub-cube remains the same. Basically, performing tiling at this
clustering level merely increases the complexity due to the large number of bands (Z; the
main contributing factor towards complexity) that still exists in each sub-cube. Related to
that, the error detection part of the ED algorithm also depends on the number of bands (Z)
where it is implemented and executed in each iteration of the PLUS factorisation, with
the total number of iteration of 𝑍 − 1 (0 to Z-2). Thus, the implementation of the ED
algorithm at smaller sub-tile sizes and clustering level c = 1 clearly could generate large
execution time overheads due to the large number of bands that still remain in each sub-
cube. The overheads by the OpenMP [267] (which gave slower execution time than the
non-parallelised implementation shown in the previous chapter) at c = 1 makes the
overhead by the ED algorithm larger than the non-parallelised implementation. Similar
with execution time results observed in Chapter 4 (Section 4.7.3.2 – non-parallelised and
Section 4.7.4 – parallelised), as higher levels of clustering is opted (c > 1), the execution
time overhead becomes smaller since the number of bands in each sub-cube is reduced
and this applied to all the tiling levels. At the clustering levels c̅, the overhead from the
ED is very small, which is in the range of 0.01 to 0.23 seconds for both the non-
parallelised and parallelised implementations, and also for both of the datasets.
In Section 4.7.3.3 the tiling levels at t2 > 4 are not recommended due to the negative
impact of the sub-tile sizes to the CR and execution time performance. In this chapter, the
large execution time overhead from the ED algorithm at those tiling levels has
strengthened that recommendation. From the best clustering and recommended tiling
levels that have been introduced in Section 4.7.3.3, the overhead varies from 0.01 to 0.42
seconds from the non-parallelised implementation and only from 0.0013 to 1.03 seconds
from the parallelised implementation, covering both of the datasets.
160
5.5 Conclusion
This chapter presents and evaluates a novel ED algorithm that is intended to allow the use
of the Integer KLT algorithm in space-based embedded systems. The ED algorithm is
based on RC or specifically the Freivald’s checker and fulfils the requirements for: 1)
sufficient error coverage, 2) low complexity, and 3) error correction capability.
The output from the PLUS factorisation stage of the Integer KLT has been found to be
the most vulnerable to SEUs element of the algorithm since an SBE occurrence in it
could affect the losslessness of the decompressed image. Based on the findings, the PLUS
factorisation stage was identified as a critical part to be protected in order to reduce the
risk of data corruption on the overall Integer KLT algorithm. The Freivald’s checker
algorithm has been found to be suitable to be implemented in the recursive factorisation
part of the algorithm.
The Freivald’s checker with only two different, random, non-zero, integer r vectors have
been proved to be sufficient for detecting an SBE in the PLUS factorisation through a
factorisation test of 1 million 30×30 non-singular matrices. It could detect the error in the
factorisation with a sufficiently low error tolerance threshold of 1e-11. The error
correction is performed by repeating the affected iteration using the pre-backed up input
matrix at the beginning of each iteration, and the factorisation is resumed after that with
the error detection operation being executed in each iteration. The idea of using the
Freivald’s checker for the PLUS factorisation along with the error tolerance threshold
investigation are new and suggest that the ED algorithm is suitable for the Integer KLT
algorithm.
The Freivald’s checker along with a simple error correction capability has been
implemented as an error detection and correction (EDAC) method inside the Integer KLT
algorithm. An exhaustive range of clustering and tiling combinations have been tested
along with the ED algorithm, which has proven to be of a low complexity. The ED
however is not suitable for the smallest sub-tile size due to the large execution time
overhead especially at the first two clustering levels, which is in agreement with the
recommendation on the tiling levels made in Section 4.7.3.3. At the best clustering and
recommended tiling levels, the ED has a very low execution time overhead which varies
from 0.0013 to 1.03 seconds for both non-parallelised and parallelised Integer KLT
implementations and both datasets, AVIRIS and Hyperion. Similarly, at the clustering
161
levels c̅, the ED’s overhead varies from 0.01 to 0.23 seconds. The low execution time
overhead of the ED algorithm confirms the suitability of implementing the algorithm
inside the Integer KLT, producing a low complexity new Integer KLT with an error
detection capability.
162
Chapter 6 Integer KLT Implementation on
Embedded Platforms
The low complexity Integer KLT proposed in Chapter 4 has shown a good performance
in lossless compression ratio as well as execution on a desktop computer. The Integer
KLT with the error detection capability proposed in Chapter 5 has improved the
resilience of the algorithm to SEUs showing a low execution time overhead. This chapter
details the implementation of the proposed low complexity Integer KLT with the error
detection capability on two DSP embedded computing platforms: OMAP-L137 and
TMDSEVM6678L. The performance is evaluated based on the execution time as well as
the average power consumption of the algorithm on the DSP platforms.
The embedded platforms are introduced in Section 6.1, and the implementation approach
is explained in Section 6.2. The performance evaluations of the DSP systems are
presented and discussed in Section 6.3 by encoding the selected hyperspectral test
images, which were used in Chapter 4 and Chapter 5. Section 6.4 concludes the chapter.
6.1 Embedded Platforms Outline
The low complexity Integer KLT algorithm with the error detection capability that has
been developed in Chapter 4 and Chapter 5 is used in the embedded computing
implementations in this chapter. Two fixed/floating-point DSP prototyping boards have
been selected, both using Texas Instruments digital signal processors from the C6000
DSP family: OMAP-L137 EVM [27] using the TMS320C6747 DSP [276] and
TMDSEVM6678L EVM [207] with the TMS320C6678 DSP [277]. The OMAP-L137
board is used as the target platform for the low power non-parallelised Integer KLT
implementation whereas the TMDSEVM6678L board is used as the target platform for
high performance parallelised implementation. Hardware details of the DSP platform will
be presented in the following sub-section.
163
6.1.1 Software Aspects
The integrated development environment (IDE) called Code Composer Studio (CCS)
version 5.3.0 is used for the implementation purposes. All the development processes are
carried out in the C language on a real-time kernel called SYS/BIOS using the C/C++ TI
compiler, also referred to as Code Generation Tools (CGT). The SYS/BIOS and TI
compiler version along with several other software components, referred as Real-Time
Software Component (RTSC) in the CCS IDE, which are used for each of the
implementations are listed in Table 6-1.
Table 6-1: Compiler and Software Components Version List
Compiler and RTSCs Version No.
OMAP-L137 TMDSEVM6678L
TI Compiler (Code Generation Tools, CGT) 7.4.0
SYS/BIOS 6.32.5.54 6.33.6.50
eXpress DSP Component Tools (XDCtools) 3.23.4.60
Inter-processor Communication (IPC) - 1.24.3.32
Optimised floating-point math function library (MATHLIB) C674x – 3.0.1.1 C66x – 3.0.1.1
Multi-core Software Developers Kit (MCSDK) - 2.1.2.5
Real-time File System (RTFS) 1.10.2.32 -
OpenMP (OMP – TI version) - 1.1.3.2
Network Developers Kit (NDK) - 2.21.1.38
Platform Support Products (PSP) Drivers 2.0.1 -
BIOS Universal Serial Bus (USB) 1.10.3 -
Enhanced Direct Memory Access 3 (EDMA3) Low-Level Driver (LLD) 2.0.1.4 2.11.5.2
For the OMAP-L137 system, the input hyperspectral image is read, and the output data
(the encoded image and the overhead information, P, L, U, S and RoundedMean) is
written to the multimedia card/secure digital (MMC/SD) slot available on the board.
These require the RTFS, PSP drivers and the BIOS USB software components.
For the TMDSEVM6678L system, the input image is read through the Ethernet adapter
from the host desktop platform (presented in Table 3-5) via Trivial File Transfer Protocol
(TFTP) and require the NDK software component. The MCSDK software component is a
software package for multi-core implementation that comes with the OMP, MATHLIB,
IPC, SYS/BIOS 6.33.6.50, EDMA3 LLD 2.11.5.2 and the NDK software components.
IPC, as its name suggests, handle the communication between the cores.
Other RTSC components that are utilised in both systems are XDCtools, EDMA3 LLD
and MATHLIB. XDCtools is included as part of the CCS IDE to take advantage of the
SYS/BIOS kernel and it is also used for application configuration [278]. The EDMA3
164
LLD is a low level driver that provides a set of APIs for programming the EDMA3
peripherals. The EDMA3 is a co-processor in the DSP that performs data transfers (from
one memory location to another or from a peripheral register to memory or vice versa)
without a CPU intervention [279]. MATHLIB is an optimised floating-point math
function library that takes advantage of the floating-point capability of the DSPs for
programming usage.
Similar to the desktop implementation introduced in Section 3.1, the eigenvalue and
eigenvector computations are calculated using the ALGLIB Numerical Analysis Library
V3.1.0 [229]. The C language version of the library has been extracted from its Python
release that acts as a wrapper around the core library, which was built based on the C
language. Some modifications and adjustments have been introduced to make it work
with the TI compiler. The C language version of the library has been tested for the
covariance matrix calculation but it was possible to do so only with a very small size
hyperspectral image (i.e. through clustering and tiling as presented in Section 4.3), as it
failed on large image sizes due to lack of memory. The covariance calculation function in
the library requires extra memory to cache the entire hyperspectral cube/sub-cube prior to
the calculation process.
6.1.2 Hardware Aspects
6.1.2.1 Low Power DSP Platform
Key features of the low-power DSP prototyping board OMAP-L137 EVM are listed
below:
a) TI OMAP-L137 fixed/floating point, dual-core DSP chip,
b) 64 MB of synchronous dynamic RAM (SDRAM),
c) 2 ports Ethernet connections supporting 10 and 100 megabits (Mb) per second
(Mbps) bandwidth modes,
d) MMC/SD/MMC Plus media card interfaces,
e) 2 USB V2.0 full speed interfaces,
f) Recommended Standard (RS) -232 serial port interface,
g) On-chip real time clock (RTC)
h) 4 user light-emitting diodes (LEDs) and 4 position user dual-inline package (DIP)
switches,
i) Expansion connectors,
165
j) On-board eXtended Development System 510 (XDS510) Joint Test Action Group
(JTAG) emulation using high-speed USB 2.0 interface,
The board is connected to the host desktop through the on-board JTAG using a high-
speed USB 2.0 interface to communicate with the CCS IDE.
The dual-core OMAP-L137 DSP chip consists of a Very Long Instruction Word (VLIW)
TMS320C6747 DSP and an ARM9 processor. Both the DSP and the ARM processor run
up to 300 MHz of clock speed and with the DSP could achieve up to 2400 MIPS and
1800 million floating-point operations per second (MFLOPS) [276]. The DSP is a low
power application processor in comparison to the other members of the TI C6000 family
[276]. In this work, only the TMS320C6747 DSP is used for the Integer KLT
implementation. The peripherals that are used in this work include the MMC/SD, external
memory interface –B (EMIFB) for the SDRAM access, EDMA3, internal memory and
general purpose input/output (GPIO) for LEDs access.
Further details of the OMAP-L137 DSP are provided in Appendix I. The memory map of
the DSP is shown in Figure I-4 [27].
For the Integer KLT implementation, the memory segment that started at 0x1180 0000 is
used which consists of the L1P (start address: 0x11E0 0000) and L1D regions (start
address: 0x11F0 0000), each with a size of 32 kB along with the L2P memory that is
configured continuously as cache. The use of the cache regions that are common to both
of the ARM9 and the DSP is mainly for future development which can take advantage of
the processing from the ARM9 processor. All the code, data and stack are allocated at the
external memory (SDRAM) which is the default settings that came with several project
examples.
6.1.2.2 Multi-Core DSP Platform
The main features of the multi-core DSP prototyping board EVM TMDSEVM6678L are:
a) A TI TMS320C6678 fixed/floating point, multi-core DSP chip,
b) 512 MB of Double Data Rate type 3 (DDR3) SDRAM memory,
c) 64 MB of Negated AND gate (NAND) flash,
d) 16 MB of Serial Peripheral Interface (SPI) Negated OR gate (NOR) flash,
e) Gigabit Ethernet connectivity (1 Gbps bandwidth),
f) 170 pin B+ style AMC interface,
166
g) 2 user LEDs, 5 banks of DIP switches and 4 software-controlled LEDs,
h) RS-232 serial interface,
i) On-board XDS100 JTAG emulation using high-speed USB 2.0 interface.
The TMS320C6678 DSP consists of eight TMS320C66x DSP core subsystems (referred
to as CorePac) with each running up to 1.0 or 1.25 GHz of clock speed. At 1.25 GHz,
each CorePac can achieve 40 giga multiply-accumulate operations per second (GMAC)
and 20 GFLOPS [277]. In this work, 1.0 GHz of clock speed is used since it is the
recommended setting by TI [280]. The DSP that is based on the KeyStone Multicore
Architecture provides adequate internal bandwidth for non-blocking access to all
CorePacs, peripherals, co-processors and I/O through four main hardware elements:
Multicore Navigator, TeraNet, Multicore Shared Memory Controller (MSMC) and
HyperLink [277]. From [277], the Multicore Navigator is capable of commanding 8192
queues of task (in packets) to be passed to the appropriate hardware at accelerated speed.
The TeraNet acts as a central switch, to move the packets at a bandwidth of 2 terabit per
second (Tbps). The MSMC provides access to the shared memory for the CorePacs
without affecting the TeraNet’s capacity so that the packet movement cannot be blocked
by memory access. The HyperLink on the other hand provides a group communication
channel for chip-to-chip interconnections at 50 giga baud (Gbaud) of speed with a low
protocol overhead. The peripherals in the DSP can be classified into masters and slaves.
HyperLink, MSMC and EDMA3 are examples of master peripherals whereas Serial
Peripheral Interface (SPI) and Universal Asynchronous Receiver-Transmitter (UART)
are the examples of slave peripherals.
Figure 6-1: TMS320C6678 Functional Block Diagram [277]
167
Further details for the TMS320C6678 DSP are provided in Appendix I. A memory map
for the DSP is shown in Figure I-7 [207, 277].
6.2 Implementation Approach
The DSPs can provide attractive opportunities for low power implementation of
hyperspectral image compression, which is a main limiting factor in space applications.
Compared to a desktop computer in terms of processing power and memory capacity a
DSP has limited resources. Therefore it is very important to verify the performance of the
Integer KLT on an embedded DSP platform before to check its suitability for use on
board a satellite.
One of the most popular techniques for developing a DSP system is to simulate the
system in C/C++ on a general computer followed by porting the code onto a DSP
environment [281]. The development process has been explained in Section 4.2 to
Section 4.6 for the Integer KLT along with several enhancement techniques to improve
the performance and its error resilience (Section 5.3). In this chapter, the algorithm is
ported to the DSP platforms and further optimised to achieve similar lossless CR
performance at the best execution time possible.
As mentioned previously, the implementation process of the Integer KLT on the DSP
platforms is carried out in C language using the CCS IDE. Similar variable names and
data types (e.g. H – input image and encoded image (integer), RoundedMean (integer), P
(Boolean), L (double), U (double), S (double) variables, etc.) as in the desktop
implementation systems are used. There are two implementations of the algorithm
involving both of the DSP EVMs covering the ED algorithm proposed in the previous
chapter, which are:
1. Non-parallelised implementation on the OMAP-L137, and
2. Parallelised (using OpenMP) implementation on the TMDSEVM6678L EVM
Generally, the same codes from the desktop systems are used for the DSP
implementations. However, due to the insufficient memory on the OMAP-L137 EVM to
store the whole hyperspectral image, some modifications have been introduced. Each of
the implementations has been heavily debugged and optimised for better execution time
performance. The output from the DSP implementation systems have been examined and
produce similar output as the desktop systems. The decoding part of the Integer KLT has
168
been implemented inside the TMDSEVM6678L EVM to verify the correctness and
losslessness of the algorithm implementation. For the OMAP-L137 system, the output
that is stored in a MMC card is transferred to the host desktop for decoding and
verification purposes. Note that only the Integer KLT part is implemented in this work
since it is the main focus of the study. The spatial compression using the JPEG2000
however can be implemented as future works and currently only the Integer KLT which
produces the encoded output and the overhead information (i.e. P, L, U, S and
RoundedMean) is realised on the DSP EVMs.
6.2.1 Compiler Optimisation
Both of the DSPs in the embedded platforms are from the TMS320C6000 DSP family
which is supported by a set of software development tools including a C/C++ compiler,
an assembler and a linker. The TMS320C6000 software development flow is shown in
Figure 6-2. The input to the compiler is the user C/C++ code and the resulting output is
either a Common Object File Format (COFF) or an Executable and Linking Format
(ELF) object file that is understandable by DSPs from the same family. ELF output is the
new output format introduced since CGT V7.0, replacing the COFF format. However, the
COFF output is still supported and can be generated by CGT V7.4.0. The Integer KLT on
the OMAP-L137 was created using the compiler prior to the CGT V7.0 and the COFF
output selection is retained when upgraded to CGT V7.4.0. The Integer KLT on the
TMDSEVM6678L on the other hand generates the new ELF output format.
C/C++ compiler Assembler source
AssemblerLinker
Executable object file
(Executable COFF/
ELF object files)
OMAP-L137/
TMDSEVM6678L
EVM
C/C++ source
files
Object files
(COFF/ELF
object files)
Figure 6-2: TMS320C6000 Software Development Flow
The compiler, assembler and linker use options supplied by the programmer. The options
determine the code performance in terms of speed and size. The TMS320C6000 C/C++
169
compiler can perform optimisation of up to about 80% compared with a hand-scheduled
assembly [282].
In the Integer KLT implementation systems, the option --opt_for_space is not used since
reducing the code size is not the target of the implementation but performance. All the
options value for optimising the Integer KLT C codes for the implementation purposes
are summarised in Table 6-2. For a complete explanation on the compiler optimisation,
refer Section I.2 in Appendix I.
Table 6-2: Summary of Compiler Options Setting for the Integer KLT
Implementation
--opt_level = 3 (-O3)
--opt_for_space None
--opt_for_speed = 5
On top of all the C code optimisations, the compiler will automatically translate some
common user operations or functions into other functions called intrinsic operators. The
intrinsic operators map directly the functions to be in line with the TMS320C6000 low
level instructions that will make the code no longer an ANSI C compliant but produce
faster execution [203]. To enable the automatic translation, the option --no_intrinsics
should be disabled. For the parallelised implementation, the OpenMP environment needs
to be enabled by supplying the option –openmp to the compiler.
6.2.2 Code Optimisation: Matrix-Matrix Multiplication Optimisation
The PLUS factorisation (Figure 3-2) and the ED algorithm (equation (5-4)) involve some
matrix-matrix multiplications that are mostly sparse or populated primarily with zeroes or
a permutation matrix. For the factorisation, the matrices involved are the square matrices
with dimension of Z×Z (or z×z when clustering is opted) which are P, L and S matrices
as well as their temporary instances 𝑃𝑠(𝑘)
, 𝐿𝑠(𝑘)
and 𝑆𝑠(𝑘)
. The multiplication operations are
listed in Table 6-3 where each of them executes at the end of each iteration in the
factorisation process. For the ED algorithm (Section 5.3), there are two multiplication
operations in each iteration of the factorisation as well as the temporary
matrices 𝑃𝑠(𝑘)
, 𝐿𝑠(𝑘)
, 𝑈𝑠(𝑘)
and 𝑆𝑠(𝑘)
as listed in Table 6-4.
170
Table 6-3: Matrix-Matrix Multiplication Description in PLUS Factorisation
Multiplication Description Note
𝑆 = 𝑆𝑠(𝑘)
× 𝑆 Multiplication of a lower TERM with
another lower TERM (TERM-TERM)
Both matrices have a double data type,
producing a lower TERM (double data
type)
𝑃 = 𝑃𝑠(𝑘)
× 𝑃 Multiplication of a permutation with
another permutation matrix
(permutation-permutation)
Both matrices have a Boolean data
type, producing a permutation matrix
(Boolean data type)
𝐿 = (𝐿𝑆(𝑘)
× 𝑃𝑠(𝑘)
) × 𝐿
𝐿𝑆(𝑘)
× 𝑃𝑠(𝑘)
Multiplication of a lower TERM with a
permutation matrix (TERM-
permutation)
Lower TERM with double data type,
permutation matrix with Boolean,
producing column permutation of
lower TERM (double data type)
(𝐿𝑆(𝑘)
× 𝑃𝑠(𝑘)
) × 𝐿 Multiplication of column permutation
of lower TERM with a lower TERM
(TERM-TERM)
Both matrices have a double data type,
producing a lower TERM (double data
type)
Table 6-4: Matrix-Matrix Multiplication Description in the ED Algorithm
Multiplication Description Note
𝐷 = 𝑈𝑠(𝑘)
× 𝑆𝑠(𝑘)
Multiplication of an upper TERM with
a lower TERM (TERM-TERM)
Both matrices have a double data type,
producing an upper TERM (double
data type)
𝐵 = 𝐿𝑠(𝑘)
× 𝑃𝑠(𝑘)
Multiplication of a lower TERM with a
permutation matrix (TERM-
permutation)
Lower TERM with double data type,
permutation matrix with Boolean,
producing column permutation of
lower TERM (double data type)
In the following sub-section, the three matrix multiplication types, permutation-
permutation, TERM-permutation and TERM-TERM matrix multiplications are optimised
and explained in detail. The permutation-permutation multiplication optimisation should
take into account any error (e.g. SBE) that could happen within the matrices without
affecting the actual purpose of the multiplication process. When an error occurs in a
permutation matrix, it could probably make the matrix to lose its permutative
characteristic. For TERM-permutation and TERM-TERM multiplication, the whole
matrix multiplication can be simplified by skipping the multiplication with matrix
elements containing zero values. These improved methods of matrix-matrix
multiplication have been implemented in the desktop system and have been tested
through the 1 million SBE tests in Section 5.4.1. Note that the optimised multiplication
operations are only applicable to square matrices.
For comparison purposes, Listing 6-1 shows a generic piece of C/C++ code for
multiplying two square matrices. Note the multiplication between the two values
a[x][z] and b[z][y] occurs in each iteration of the for loops (line 3, 4 and 6) and
multiplication is always best to be avoided when it can be simplified with addition [183,
171
231]. For this C/C++ code, any numeric type of input matrices (A and B) can be used
including integer and Boolean matrices by some modification on the data type at line 1
and 2.
1. void mux(double a[][Z], double b[][Z], double c[][Z])
2. { double temp[Z][Z];
3. for (x = 0;x < Z; x++)
4. for (y = 0; y < Z; y++)
5. { temp[x][y] = 0.0;
6. for (z = 0; z < Z; z++)
7. temp[x][y] += a[x][z]*b[z][y];
8. }
9. for (x = 0;x < Z; x++)
10. for (y = 0; y < Z; y++)
11. c[x][y] = temp[x][y];
12. }
Listing 6-1: Generic Double-Double Matrix Multiplication C/C++ Code
6.2.2.1 Permutation-Permutation and TERM-Permutation Matrix Multiplication
Multiplication of a permutation matrix A with another permutation matrix B can be seen
as column interchanges in A according to a ‘true’ logic position in each row of B. This is
shown in the C/C++ mux function code in Listing 6-2. However, if some errors (e.g.
SBE) happened in one of the matrices or both, where the permutative characteristic of the
matrix/matrices were lost, the C/C++ code shown in Listing 6-2 can no longer be used
since it will give an incorrect output.
1. void mux(Bool a[][Z], Bool b[][Z], Bool c[][Z])
2. { double temp[Z][Z];
3. for (x = 0;x < Z; x++)
4. for (y = 0; y < Z; y++)
5. { if(b[x][y] == true);
6. { for (z = 0; z < Z; z++)
7. { temp[z][y] = a[z][x];
8. }
9. break;
10. }
11. }
12. for (x = 0;x < Z; x++)
13. for (y = 0; y < Z; y++)
14. c[x][y] = (Bool)temp[x][y];
15. }
Listing 6-2: Typical Permutation-Permutation Matrix Multiplication
To improve the performance of the permutation-permutation matrix multiplication shown
above for the case if there is an error in the input matrices, the following C/C++ function
code shown in Listing 6-3 is used. This code has been tested thoroughly even though it
172
involves type casting (i.e. (double) and (Bool) at line 8 and 13, respectively) and
proven to be safe for the Boolean output. However, in order to use this function code, the
input B must be a Boolean matrix. This means that this code is applicable for TERM-
permutation matrix multiplication operations by removing the type casting as shown in
Listing 6-4. In comparison to Listing 6-1, there is no multiplication process involved in
both of Listing 6-3 and Listing 6-4 and this could give better performance especially for
the DSP implementation.
1. void mux(Bool a[][Z], Bool b[][Z], Bool c[][Z])
2. { double temp[Z][Z];
3. for (x = 0;x < Z; x++)
4. for (y = 0; y < Z; y++)
5. { temp[y][x] = 0.0;
6. for (z = 0; z < Z; z++)
7. { if(b[z][x]==true)
8. temp[y][x] += (double)a[y][z];
9. }
10. }
11. for (x = 0;x < Z; x++)
12. for (y = 0; y < Z; y++)
13. c[x][y] = (Bool)temp[x][y];
14. }
Listing 6-3: Improved Permutation-Permutation Matrix Multiplication
1. void mux(double a[][Z], Bool b[][Z], double c[][Z])
2. { double temp[Z][Z];
3. for (x = 0;x < Z; x++)
4. for (y = 0; y < Z; y++)
5. { temp[y][x] = 0.0;
6. for (z = 0; z < Z; z++)
7. { if(b[z][x]==true)
8. temp[y][x] += a[y][z];
9. }
10. }
11. for (x = 0;x < Z; x++)
12. for (y = 0; y < Z; y++)
13. c[x][y] = temp[x][y];
14. }
Listing 6-4: Improved TERM-Permutation Matrix Multiplication
6.2.2.2 TERM-TERM Matrix Multiplication
For the TERM-TERM matrix multiplication, the performance of the generic C/C++
function code shown in Listing 6-1 can be improved by using the code shown in Listing
6-5. This function code is applicable to any other data types but gives tremendous
improvement in terms of execution speed for large size TERM inputs. It is similar to the
generic function code shown in Listing 6-1 except that at each iteration, both the inputs
173
are checked whether or not they are zeroes (line 7). If one of the inputs (or both) is zero,
the output is simply set to zero. Otherwise, the multiplication process is executed as in the
generic function code.
1. void mux(double a[][Z], double b[][Z], double c[][Z])
2. { double temp[Z][Z];
3. for (x = 0;x < Z; x++)
4. for (y = 0; y < Z; y++)
5. { temp[x][y] = 0.0;
6. for (z = 0; z < Z; z++)
7. if((a[x][z] != 0.0) || (b[z][y] != 0.0))
8. temp[x][y] += a[x][z]*b[z][y];
9. }
10. for (x = 0;x < Z; x++)
11. for (y = 0; y < Z; y++)
12. c[x][y] = temp[x][y];
13. }
Listing 6-5: Optimised TERM-TERM Matrix Multiplication
6.2.3 Integer KLT Implementation on Low Power DSP Platform
As mentioned before, the input image for the OMAP-L137 implementation system is read
from the MMC/SD/MMC Plus media card interfaces. An 8 GB capacity MMC card has
been used for storing all the selected hyperspectral images and the output (i.e. encoded
image and the overhead information). The external memory on the board, however, is
small (64 MB SDRAM) and cannot store the whole hyperspectral image. The AVIRIS
image at sub-tile size 512×512 with all the 224 bands requires 224 MB of memory,
where each pixel is stored as an integer. Similarly, a Hyperion image (256×256 sub-tile
size, with 196 bands) requires 49 MB of memory. Note that the variable allocated for the
input is used as the variable for the output. Besides the hyperspectral image, other
variables such as the overhead information, and other temporary variables should be
allocated and this will increase the memory usage in the DSP system.
To solve the insufficient memory size issue, the normal clustering method proposed in
Section 4.3.1 becomes a compulsory approach in order to encode the entire hyperspectral
image. The possible clustering levels presented in Table 4-3 earlier are reduced to the list
shown in Table 6-5. As for tiling, the possible tiling levels remain the same as presented
in Table 4-4. The decoding part for the Integer KLT is not developed in the system due to
the insufficient memory issue. The encoded image as well as the overhead information
from the DSP system which are stored in the MMC card is decoded at the host computer
for losslessness and correctness verification.
174
Table 6-5: Clustering Levels of AVIRIS and Hyperion Datasets in OMAP-L137
Implementation
Dataset No. of Clusters (c) Cluster Size (𝑍 𝑐⁄ )
AVIRIS
7 32
8 28
14 16
16 14
28 8
32 7
56 4
Hyperion
2 98
4 49
7 28
14 14
28 7
49 4
The C code of the Integer KLT using the clustering and tiling approaches is shown in
Listing 6-6. The code is similar to the desktop implementation except here no variable
sharing is used due to the insufficient memory size. The hyperspectral image variable H
is set to a smaller size of m×m×z in comparison to M×M×Z as used in Listing 4-1 for the
desktop implementation.
/*H - m×m×z (32-bit integer). L, U, S - of z×z (double). P - z×z (Boolean). RoundedMean - z (vector, 32-bit integer)*/
1. c = Z/z; /*no. of iterations for clustering*/
2. t = M/m; /*no. of iterations for tiling*/
3. start = CLK_getltime();
4. finish = CLK_getltime();
5. overhead = (finish – start); /*get timer overhead*/
6. for(d = 0; d < c; d++) /*for loop for clustering*/
7. { duration = 0.0;
8. for(e = 0; e < t; e++) /*for loops for tiling*/
9. { for(f = 0; f < t; f++)
10. { Read_Image(d, e, f); /*read a binary file input for a
single band and for a specific sub-
tile*/
11. EVMC6747_LED_off(3); /*turned LED3 on the EVM off to start
power measurement*/
12. start = CLK_getltime(); /*start timer*/
13. Calc_Mean(d, e, f); /*calculate RoundedMean*/
14. Calc_Cova(d, e, f); /*calculate covariance, C*/
15. Calc_Eig(); /*calculate eigenvector, A*/
16. TERM(); /*PLUS factorisation on A*/
17. Apply_TERM(d, e, f); /*apply P,L,U,S to H*/
18. finish = CLK_getltime();/*stop timer*/
19. EVMC6747_LED_on(3); /*stop power measurement*/
20. duration += ((finish-start-overhead)*CLK_cpuCyclesPerLtime())
/GBL_getFrequency();
21. Write_Coeff(); /*write P, L, U, S and RoundedMean to
disk*/
22. }
175
23. }
24. total_duration += duration;
25. }
26. duration_in_seconds = total_duration/1000;
Listing 6-6: Clustering and Tiling in Integer KLT C Code for OMAP-L137
Implementation
The input binary file that has been created for the desktop implementation contains the
whole image and therefore cannot be used for this system due to the insufficient memory
size too. For this implementation system, a different binary file input that represents the
selected hyperspectral images was created. The binary input file contains only the image
data from a particular band and at a specific tiling level. For example, a binary file for an
AVIRIS image at tiling level 256×256 should only have data from a particular band (e.g.
1st band) and cover only a quarter from the spatial direction (i.e. one sub-tile out of a total
number of four sub-tiles to cover the whole 512×512 spatial size). In this case, it means
that for a single band, there are four different binary files that cover all the four quarters,
which makes the total number of binary files for the whole image 4×224 bands = 896
binary files. Due to that, the image load or read can only be executed at the beginning of
each iteration, as shown at line 10 in Listing 6-6 as the Read_Image() function.
The measurement of the execution time only involves the encoding part (i.e. excluding
the Read_Image()(line 10 from Listing 6-6) and the Write_Coeff() (line 21)
functions that are used for reading and writing the MMC memory card, respectively). The
measurements use the low resolution timer available on the EVM. To start and stop the
timer, CLK_getltime() function is used, returning the timer counter values (line 12
and 18 from the figure). Prior to the measurement, the timer overhead needs to be
calculated (line 3 to 5) and subtracted from the final measurement (line 20). Also at line
20, the timer counter value is converted to milliseconds by multiplying with the value
returned by the CLK_cpuCyclesPerLtime() function and dividing with the value
from the GBL_getFrequency() function. The multiplication with the value from the
CLK_cpuCyclesPerLtime() function converts the low-resolution time to CPU
cycles and the division with the value from the GBL_getFrequency() function
returns the time in milliseconds. The execution time in each iteration is summed
altogether to get the total duration from encoding all the sub-cubes.
For power measurement, the two locations where the timer starts and stops are also used
for turning off a user LED (LED3) available on the EVM as a signal to start and turning
176
on to halt the measurement process. The LED is set to “on” by default during the EVM
power-up. The EVMC6747_LED_off(3) function is used to turn the LED off (line 11)
and back on again using the EVMC6747_LED_on(3) function (line 19). The voltage
levels at the LED are sent to a data acquisition (DAQ) device to start and halt the power
measurement of the EVM during the encoding process. Details on the power
measurement are discussed in Section 6.2.5.
The ED algorithm proposed in Section 5.3 is also implemented along with the Integer
KLT on the OMAP-L137 EVM. As it has been observed in Section 5.4.2, the ED
algorithm introduced some execution time overhead on the desktop platform that
maximised at the smallest sub-tile sizes. In addition to the execution time, the power
consumption of the board while executing the algorithm is expected to be higher due to
the extra work performed by the DSP. Therefore, the implementation needs to be
executed on the board to obtain the actual physical results.
6.2.4 Integer KLT Implementation on Multi-Core DSP Platform
For the TMDSEVM6678L system, similar binary input files from the desktop
implementation are used as the input. The files, which are the hyperspectral images, are
transferred to the board through the TFTP using the Ethernet connection. Unlike the
OMAP-L137 EVM, the external memory of the TMDSEVM6678L EVM is larger (512
MB of DDR3 RAM) and is able to fit the whole hyperspectral image from the AVIRIS or
Hyperion dataset.
As mentioned previously, the decoding process is implemented on the same project to
verify the correctness and losslessness of the algorithm implementation. This means that
two variables of the hyperspectral image are needed as in the desktop implementation
system (i.e. H and H_encoded). The input image is read into the H variable and any
process from the encoding is written to the H_encoded variable. The decoding process
then decodes the H_encoded variable and a simple code to compare the H (original
image) and H_encoded (decoded image) is executed for losslessness verification
purposes. Due to this, the output from the encoding process is not transferred to the host
desktop.
On the desktop host, a simple TFTP server using an open source software called Tftpd32
[283] is set up at the Internet Protocol (IP) address of 192.168.2.101, which is the IP
address of the Ethernet adapter on the host. The software is also set up by pointing to a
177
folder location containing the binary input files. The software front interface is shown in
Figure 6-3.
Figure 6-3: Tftpd32 Software
The IP address of the EVM is set up statically at 192.168.2.100. The C code from Listing
I-1 is executed to initiate the transfer process from the host (denoted by the IP address
value in hostTFTP variable) to read a hyperspectral image (imagename) into a
temporary variable (buffer).
The parallel implementation of the Integer KLT executes in multiple cores, depending on
the clustering level. The C code for the implementation is shown in Listing 6-7. The code
is very similar to the C++ code shown in Listing 4-3 from the desktop platform, covering
all the possible levels of clustering and tiling.
A few lines are added to the C code to support the execution time and power
measurements. The execution time measurement uses a similar syntax as explained for
the OMAP-L137 EVM in Section 6.2.3. For the power measurement, a user LED (LED3)
available on the board is switched off using platform_led(3,
PLATFORM_LED_OFF,PLATFORM_USER_LED_CLASS) function (line 10) that
provides a voltage signal from the LED to the DAQ to start the measurement (similar
with the OMAP-L137 EVM, the LED is switched on during the EVM boot up). To
halt/stop the measurement, the same LED is switched on again using the
platform_led(3,PLATFORM_LED_ON, PLATFORM_USER_LED_CLASS)
function (line 27).
Note that all variables (i.e. H, H_encoded, P, L, U, S and RoundedMean) are shared
amongst each cluster/core. This is similar to the parallel implementation in the desktop
systems as discussed in Section 4.4. Similar to the OMAP-L137 system, the parallelised
178
implementation here includes the ED algorithm proposed in Section 5.3 and the two
overhead: execution time and power are evaluates.
/*H and H_encoded - M×M×Z (32-bit integer). L, U, S - z×Z (double).
P - z×Z (Boolean). RoundedMean - Z (vector, 32-bit integer)*/
1. c = Z/z; /*no. of iterations for clustering*/
2. t = M/m; /*no. of iterations for tiling*/
/*Here, load hyperspectral image into variable H through TFTP*/
3. if(c <= 8)
4. omp_set_num_threads(c);
5. Else
6. omp_set_num_threads(8);
7. start = CLK_getltime();
8. finish = CLK_getltime();
9. overhead = finish – start; /*get timer overhead*/
/*turned the LED3 off to start the power measurement*/
10. platform_led(3, PLATFORM_LED_OFF, PLATFORM_USER_LED_CLASS);
11. start = CLK_getltime(); /*start timer*/
12. #pragma omp parallel shared(H, H_encoded, P, L, U, S, RoundedMean)
private(d, e, f)
13. { total_thrds = omp_get_num_threads();
14. thread_no = omp_get_thread_num();
/*the for loop with d variable is executed in each core*/
15. for(d = thread_no; d < c; d += total_thrds) /*for clustering*/
16. { for(e = 0; e < t; e++) /*for tiling*/
17. for(f = 0; f < t; f++)
18. { Calc_Mean(d, e, f); /*calculate RoundedMean*/
19. Calc_Cova(d, e, f); /*calculate covariance, C*/
20. Calc_Eig(d); /*calculate eigenvector, A*/
21. TERM(d); /*PLUS factorisation on A*/
22. Apply_TERM(d, e, f); /*apply P, L, U, S to H_encoded*/
23. }
24. }
25. }
26. finish = CLK_getltime(); /*stop timer*/
/*stop power measurement*/
27. platform_led(3, PLATFORM_LED_ON, PLATFORM_USER_LED_CLASS);
28. duration_in_seconds = (((finish-start-
overhead)*CLK_cpuCyclesPerLtime())/GBL_getFrequency())/1000;
Listing 6-7: Clustering and Tiling in Integer KLT C Code for TMDSEVM6678L
Parallel Implementation
6.2.5 Power Measurement Method
National Instruments (NI) DAQ device, NI PCI 6221 is used along with its I/O connector
block, CB-68LP, for power measurement purposes. The DAQ uses a PCI bus interface
inside the host desktop computer and is linked to the I/O connector block using a special
cable, SHC68-68-EPM. On the desktop, the software package LabVIEW 2011 is installed
and an appropriate Virtual Instruments (VI) project for the measurement is executed to
make the following measurements:
179
a) Voltage measurement at direct current (DC) port of the boards, and
b) Voltage measurement across a shunt resistor (0.122 Ω) for current measurement
A connection from the user accessible LED on the boards is used as the trigger signals to
start and halt the measurement process. The start and halt signals are used to exclude the
measurement during the I/O access to the boards (e.g. hyperspectral image read and
encoded image write). The connections between the boards (i.e. at its DC port and the
JTAG USB connector), the I/O connector block and the desktop host are visualised in
Figure 6-4.
DSP EVMs Desktop Host
Voltage measurements
+
˗
USB JTAG Connection
SHC68-68-EPM cable to NI PCI 6221
DAQDC Adaptor
Current measurement
Trigger Signals to DAQ
NI I/O Connector Block
EVM DC Power Supply
0.1
22
Ω
Figure 6-4: Power Measurement – Boards-Desktop Host Connection Diagram
The LED (or specifically LED3 on the boards) is controlled by the GPIO peripheral
device within the boards, which is connected towards the DAQ as shown in Figure 6-5.
When the LED is turned off from the C code (provided it was turned on during the board
boot up), the voltage level at the LED’s cathode terminal changes from low to high and
gives the signal to the DAQ to start the measurement process. The measurement will
continue to acquire the data readings until the LED is turned on again (low voltage level),
giving a signal to the DAQ to halt the reading. The high voltage level at the LED’s
cathode terminal provides a measurement slot for the DAQ to acquire the readings
(voltage and current of the EVM) during the Integer KLT encoding process and is halted
by the low level voltage to exclude the I/O operations.
EVM Internal 3.3 V
330 Ω Resistor
To GPIO Circuitry
DSP EVM
Trigger Signals to DAQ
LED3 Measurement Slot
Measurement Slot
Figure 6-5: LED to DAQ Connection Diagram
180
On the LabVIEW side, the Virtual Instruments (VI) project is set to acquire the voltage
readings at 1 kHz rate (1000 readings or samples in one second). At the end of the
encoding process, the voltage and current readings of the board are multiplied to get the
power data and averaged for each second. The average power for each combination of
clustering and tiling levels is reported, covering the execution with and without the ED
algorithm.
The power measurement at the DC input of the board is not practical since the reading
could be from the DC adaptor as well as due to activity on the EVM boards as discussed
in [284]. The measurement can vary and slightly change from time to time depending on
how long the board has been switched on. The maximum power requirement of the
TMDSEVM6678L EVM board is 31.2 W for full utilisation of the DSP cores [207]. The
typical power of the DSP chip the OMAP-L137 EVM is maximised at 1W [206] [285].
The measurement at the DC input is aimed at measuring the total power consumption of
the boards due to operation of its other components, such as external memory, EDMA,
clock etc. The figures can be used in power budget consideration, as well as hardware
procurement before implementing the algorithm on board a satellite.
6.3 Performance Evaluation
In this section, the execution time and power consumption of the Integer KLT with all the
enhancement techniques that have been proposed in Chapter 4, Chapter 5 and this chapter
are evaluated on both of the DSP boards. The performance evaluations are carried out
using all the selected hyperspectral images, in a similar way to what has been presented
in Section 4.7.3.2. Both the execution time and power are evaluated as average execution
time and average power consumption, at each possible combination of clustering and
tiling defined before.
The ED algorithm proposed in Section 5.3 has shown good performance in detecting and
correcting errors during the PLUS factorisation, but has introduce some overheads in
terms of execution time for the desktop platform. This has urged the need to analyse
similar overheads in the DSPs environment. The execution time overhead for the
implementation is expected to be greater due to lower processing capabilities compared
to the desktop platform. The average power consumption measurement is another
evaluation to see the Integer KLT as well as the ED power requirement on the DSP
EVMs. The ED power consumption is obtained simply by measuring the power from the
181
execution of the Integer KLT with the ED algorithm and subtracted with another
execution of the Integer KLT without the ED algorithm. The difference between the two
measurements is reported as the power overhead due to the ED. In all the executions, the
performance evaluations are repeated for five times and the averages are reported. On
each set of five executions, the board was turned off first to cool down and switched on
and left on idle for about half an hour to standardise the temperature of the board and the
DC power adaptor. Section 6.3.1 will discuss the average execution time performance
whereas Section 6.3.2 covers the average power consumption.
6.3.1 Average Execution Time Performance
6.3.1.1 Non-parallelised Implementation
Following the presentation style in Section 5.4.2, Table 6-6 and Table 6-7 show the
average execution time performances for the AVIRIS and Hyperion datasets respectively,
on the OMAP-L137 EVM prototyping board. The execution time figures from the tables
are presented graphically in Figure 6-6 (AVIRIS) and Figure 6-7 (Hyperion) using bar
charts to see the differences of execution time between the execution with and without
the ED algorithm (i.e. execution time overhead). The average execution time values from
the clustering levels c̅ obtained from Chapter 4 are shaded in the tables and are marked
with black-bordered bars in the charts. The execution time overhead is presented in a
much more clear presentation in Figure 6-8 where only the execution time overhead is
displayed and compared between each of the clustering and tiling levels. The smaller
graphs inside the figure magnify the execution time overhead at smaller time ranges. The
average execution time performance of the CHRIS images on the DSP EVM is tabulated
in Table G-36 from Appendix G which includes the ED algorithm.
182
Table 6-6: Average Execution Time Performance Comparison of the Non-parallelised Integer KLT using Clustering and Tiling with and
without ED, based on AVIRIS images for OMAP-L137 EVM (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
* † * † * † * † * † * † * †
512×512 (1) 314.67 315.09 302.38 302.98 204.64 204.71 196.72 197.15 149.88 149.97 145.98 146.28 124.96 125.04
Overhead 0.42 0.60 0.08 0.43 0.09 0.31 0.07
256×256 (4) 320.57 322.36 305.99 306.23 205.91 206.30 197.86 198.18 150.66 150.78 146.73 146.83 125.58 125.62
Overhead 1.80 0.24 0.39 0.32 0.11 0.10 0.04
128×128 (16) 330.43 338.39 313.08 318.92 209.83 211.40 200.92 202.18 152.43 152.89 148.39 148.78 126.70 126.82
Overhead 7.96 5.84 1.57 1.27 0.45 0.39 0.12
64×64 (64) 348.11 359.03 325.71 333.17 212.42 214.59 202.60 204.11 153.46 154.04 149.49 149.84 127.63 127.75
Overhead 10.93 7.46 2.17 1.51 0.58 0.35 0.13
Table 6-7: Average Execution Time Performance Comparison of the Non-parallelised Integer KLT using Clustering and Tiling with and
without ED, based on Hyperion images for OMAP-L137 EVM (in seconds)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
* † * † * † * † * † * †
256×256 (1) 270.46 275.33 127.34 128.53 67.01 67.33 43.56 43.63 32.22 32.24 27.54 27.55
Overhead 4.87 1.19 0.32 0.07 0.02 0.01
128×128 (4) 329.31 348.73 136.27 140.99 70.03 71.31 44.00 44.28 32.60 32.68 27.67 27.70
Overhead 19.42 4.72 1.28 0.28 0.08 0.04
64×64 (16) 555.85 633.56 167.04 185.93 76.03 81.19 46.70 47.80 33.73 34.04 28.80 28.88
Overhead 77.71 18.89 5.16 1.10 0.32 0.08
* Average execution time without the ED † Average execution time with the ED
183
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 6-6: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on AVIRIS images
for OMAP-L137 EVM
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 6-7: Average Execution Time Performance Comparison of the Non-parallelised
Integer KLT using Clustering and Tiling with and without ED, based on Hyperion images
for OMAP-L137 EVM
0
50
100
150
200
250
300
350
7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
50
100
150
200
250
300
350
7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
100
200
300
400
7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
100
200
300
400
7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
50
100
150
200
250
300
2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
100
200
300
400
2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
100
200
300
400
500
600
700
2 4 7 14 28 49
Tim
e (s
eco
nd
s)
No. of Clusters (c)
184
0
2
4
6
8
10
12
7 8 14 16 28 32 56
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
512×512 256×256 128×128 64×64
0.0
0.5
1.0
1.5
2.0
7 8 14 16 28 32 56
0
20
40
60
80
100
2 4 7 14 28 49
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
256×256 128×128 64×64
0.0
0.5
1.0
1.5
2 4 7 14 28 49
(a) AVIRIS
(b) Hyperion
Figure 6-8: ED Execution Time Overhead of the Non-parallelised Integer KLT using
Clustering and Tiling for OMAP-L137 EVM
6.3.1.2 Parallelised Implementation
The average execution time performance of the AVIRIS and Hyperion datasets on the
TMDSEVM6678L EVM for parallelised implementation are shown in Table 6-8 and
Table 6-9, respectively. The average execution time figures are displayed in bar charts in
Figure 6-9 (AVIRIS) and Figure 6-10 (Hyperion) to compare the two executions (i.e.
with and without the ED algorithm). Average execution time values at clustering levels c̅
are shaded in the tables and are marked with black-bordered bars in the charts. The
execution time overheads are presented in Figure 6-11 for both datasets. Similarly as
before, the smaller charts within the main charts show the detailed behaviour of the
overhead at a smaller time range. The average execution time performance for CHRIS
dataset is shown in Table G-37 from Appendix G which includes the ED algorithm.
185
Table 6-8: Average Execution Time Performance Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without
ED, based on AVIRIS images for TMDSEVM6678L EVM
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ §
512×512 (1) 273.63 281.21 76.89 77.67 17.59 17.67 15.64 15.70 13.78 13.84 16.67 16.70 15.56 15.57 17.22 17.23 14.97 14.97 14.66 14.67
Overhead 7.58 0.78 0.08 0.06 0.05 0.03 0.01 0.01 0.01 0.01
256×256 (4) 350.39 368.08 77.41 79.43 17.03 18.68 14.48 15.96 13.70 14.95 16.46 17.32 16.22 16.95 17.72 18.04 14.77 15.00 13.98 13.99
Overhead 17.68 2.02 1.65 1.48 1.25 0.85 0.73 0.32 0.23 0.01
128×128 (16) 622.09 691.51 98.87 106.35 17.64 20.13 14.76 16.83 14.29 15.85 16.78 18.23 15.26 16.58 18.00 18.88 13.74 14.33 14.36 14.89
Overhead 69.42 7.48 2.49 2.07 1.56 1.45 1.32 0.88 0.59 0.52
64×64 (64) 1377.44 1951.87 167.53 190.20 24.97 31.15 14.47 17.03 14.31 16.78 16.83 18.51 14.69 16.59 20.06 21.42 13.90 15.14 13.60 14.55
Overhead 574.43 22.67 6.18 2.56 2.47 1.68 1.90 1.37 1.24 0.95
Table 6-9: Average Execution Time Performance Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without
ED, based on Hyperion images for TMDSEVM6678L EVM
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
‡ § ‡ § ‡ § ‡ § ‡ § ‡ § ‡ §
256×256 (1) 62.21 64.76 12.82 13.24 3.33 3.37 2.87 2.93 3.25 3.29 3.97 4.00 3.66 3.67
Overhead 2.54 0.42 0.04 0.06 0.04 0.03 0.01
128×128 (4) 104.77 115.97 15.56 16.95 3.74 3.89 3.33 3.41 3.38 3.44 4.10 4.13 4.36 4.38
Overhead 11.20 1.39 0.15 0.08 0.06 0.03 0.02
64×64 (16) 248.20 272.24 25.72 28.60 5.34 6.28 3.40 3.84 3.34 3.59 4.12 4.28 4.24 4.38
Overhead 24.04 2.88 0.95 0.44 0.25 0.16 0.14
‡ Average execution time without the ED § Average execution time with the ED
186
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 6-9: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on AVIRIS images
for TMDSEVM6678L EVM
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 6-10: Average Execution Time Performance Comparison of the Parallelised
Integer KLT using Clustering and Tiling with and without ED, based on Hyperion images
for TMDSEVM6678L EVM
0
50
100
150
200
250
300
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
100
200
300
400
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
200
400
600
800
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
500
1000
1500
2000
1 2 4 7 8 14 16 28 32 56
Tim
e (s
econ
ds)
No. of Clusters (c)
0
10
20
30
40
50
60
70
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
20
40
60
80
100
120
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
0
50
100
150
200
250
300
1 2 4 7 14 28 49
Tim
e (s
econ
ds)
No. of Clusters (c)
187
0
100
200
300
400
500
600
700
1 2 4 7 8 14 16 28 32 56
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
512×512 256×256 128×128 64×64
0
5
10
15
20
25
30
1 2 4 7 14 28 49
Ov
erh
ead
(se
con
ds)
No. of Clusters (c)
256×256 128×128 64×64
0
1
2
3
4
5
1 2 4 7 8 14 16 28 32 56
0.0
0.5
1.0
1.5
1 2 4 7 14 28 49
(a) AVIRIS
(b) Hyperion
Figure 6-11: Execution Time Overhead of the Parallelised Integer KLT using
Clustering and Tiling with and without ED for TMDSEVM6678L EVM
6.3.1.3 Discussion
Considering the cases without the ED algorithm, the execution on the OMAP-L137 board
(AVIRIS – Table 6-6 and Hyperion – Table 6-7 and their corresponding charts) have
similar characteristics with the non-parallelised desktop implementation as presented in
Section 4.7.3.2. Clustering can achieve better execution time with the largest number of
clusters c, although it does not give the best CR performance, whereas tiling badly affects
the execution time at the smaller values of c but does not affect the execution time
significantly when larger c are used. This has been discussed and explained in detail in
Section 4.7.3.2.
Clustering makes the encoding possible for the OMAP-L137 EVM board that has a small
memory that is insufficient to cover an AVIRIS or a Hyperion image. Due to the lower
number of bands that can be encoded at a time, this has made the encoding at clustering
188
levels c̅ for the AVIRIS dataset at 512×512 and 256×256 sub-tile sizes become
impossible. This is not the case for the TMDSEVM6678L EVM board where the whole
hyperspectral image (both AVIRIS and Hyperion datasets) can fit into the board’s
memory and makes the encoding possible at c = 1 even at the largest sub-tile sizes.
When considering the parallelised implementation on the TMDSEVM6678L EVM
(without the ED algorithm), it partially follows the characteristics from its counterpart on
the parallel desktop implementation discussed in Section 4.7.4. Using more cores
obviously speeds up the encoding process but unlike the desktop system, the execution
time slightly increases when the number of clusters c becomes larger than 8 (i.e. total
number of cores) but continue to decrease as it moves towards the maximum pre-
determined value of c. This is because when c becomes larger than 8, there are some
clusters waiting while the previous 8 clusters are being encoded and this introduces some
delay.
The inclusion of the ED algorithm in both of the implementations simply increases the
execution time of the Integer KLT for every case of clustering and tiling as in the desktop
implementation discussed in Section 5.4.2. The overhead due to the introduction of the
ED algorithm varies when different levels of clustering and tiling are used.
From Figure 6-8 (Integer KLT on the OMAP-L137 EVM) and Figure 6-11
(TMDSEVM6678L EVM), it is obvious that the execution time overhead is larger for the
smaller sub-tile sizes. From the figures, the overhead becomes smaller as the level of
clustering is increased. All the patterns are similar to the desktop implementation with the
ED algorithm as discussed in Chapter 5, with the worst overheads recorded with
execution time values of 10.93 seconds (AVIRIS at c = 7) and 77.71 seconds or 1.3
minutes (Hyperion at c = 2) from the OMAP-L137 EVM. The worst execution time
overheads for the TMDSEVM6678L EVM are 574.43 seconds or 9.6 minutes (AVIRIS at c =
1) and 24.04 seconds (Hyperion at c = 1). All the worst execution time overhead comes
from the smallest sub-tile size (i.e. 64×64) and at the smallest clustering levels possible
on the EVMs. At the clustering levels c̅, the overhead from the ED is very small, which is
in the range of 0.28 to 1.57 seconds and 0.04 to 1.65 seconds for the OMAP-L137 and
the TMDSEVM6678L EVM, respectively, which covers both datasets. Explanation and
discussion on the execution time overhead patterns have been given in Section 5.4.2.
On the OMAP-L137 EVM, by considering the ED and clustering levels c̅, the average
execution time for encoding an AVIRIS image is 211.40 (128×128 sub-tile size) and
189
154.04 (64×64) seconds. A Hyperion on the other hand, takes averagely 128.53
(256×256), 44.28 (128×128) and 34.04 (64×64) seconds. Similarly, the
TMDSEVM6678L EVM gives 77.67 (512×512 sub-tile), 18.68 (256×256), 18.23
(128×128) and 21.42 (64×64) seconds of execution time for encoding an AVIRIS image.
A Hyperion image needs averagely 3.37 (256×256), 3.44 (128×128) and 4.28 (64×64)
seconds to be spectrally encoded by the parallelised implementation.
As discussed in Section 4.7.3.3, sub-tile sizes at t2 > 4 are not recommended due to the
excessive CR and execution time performance reduction. Ranges of clustering levels for
each of the recommended tiling levels however have been limited to the clustering levels
that produce a CR greater than the case when no clustering is performed (i.e. c = 1).
Considering the implementation with the ED algorithm, Table 6-10 (AVIRIS) and Table
6-11 (Hyperion) show the average execution time at the best clustering and recommended
tiling levels from the OMAP-L137 EVM. Similarly, Table 6-12 (AVIRIS) and Table
6-13 (Hyperion) show the average execution time from the TMDSEVM6678 system.
Note that the execution time figures with bold typeface are from the clustering levels c̅,
where the best CR performances have been recorded previously.
Table 6-10: Average Execution Time (seconds) of the Non-parallelised Integer KLT at
the Best Clustering and Recommended Tiling Levels based on AVIRIS images for
OMAP-L137 EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 315.09
256×256 (4) 322.36 306.23 206.30 198.18 150.78 146.83
Table 6-11: Average Execution Time (seconds) of the Non-parallelised Integer KLT at
the Best Clustering and Recommended Tiling Levels based on Hyperion images for
OMAP-L137 EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 275.33 128.53 67.33 43.63 32.24 27.55
128×128 (4) 348.73 140.99 71.31 44.28 32.68 27.70
190
Table 6-12: Average Execution Time (seconds) of the Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on AVIRIS images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 77.67 17.67 15.70
256×256 (4) 79.43 18.68 15.96 14.95 17.32 16.95 18.04 15.00
Table 6-13: Average Execution Time (seconds) of the Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on Hyperion images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 13.24 3.37 2.93 3.29 4.00 3.67
128×128 (4) 16.95 3.89 3.41 3.44 4.13 4.38
Due to the insufficient memory size on the OMAP-L137 EVM, clustering can only be
performed at c = 7 for 512×512 and only at c = 7, 8, 14, 16, 28, and 32 for 256×256 sub-
tile sizes for an AVIRIS image. On the other hand, the Hyperion image can be encoded at
all the best clustering levels (i.e. c > 1) and at all tiling levels that have been
recommended (i.e. t2 ≤ 4). Integer KLT on the TMDSEVM6678L EVM however, can
encode both of the AVIRIS and Hyperion images at the recommended strategies. Noticeably,
the encoding of AVIRIS image on the TMDSEVM6678L EVM at 512×512 sub-tile size
produces large average execution time difference between c = 2 and 4. In this case, clustering
at c = 4 is much preferable due to the better execution time and the difference of CR is not
much, similar to what has been observed in Section 4.7.3.3 on the desktop implementation.
The selection of clustering and tiling levels for on-board satellite implementation can be
decided adaptively between the CR performance and the execution time. Smaller sub-tile
sizes as discussed in Chapter 4 result in a lower CR but provide advantage in increasing
the error resilience of the system during the encoding process. The CR performance is
also reduced when a higher level of clustering is selected but gives advantage of better
execution time. Note that as long as the selection of clustering level is within the best
range, the CR performance is still better than the case without clustering (i.e. c = 1).
However, when speed is more important than CR, the highest clustering levels (i.e. c = 56
for AVIRIS and c = 49 for Hyperion) can always be used but will result in very low CR
performance as discussed in Chapter 4.
191
The throughput in Mbps of the low complexity Integer KLT with the proposed ED
algorithm on the OMAP-L137 EVM are shown in Table 6-14 and Table 6-15 for AVIRIS
and Hyperion datasets, respectively, considering only the best clustering and
recommended tiling levels. Similarly, the throughput recorded for the TMDSEVL6678L
system is shown in Table 6-16 (AVIRIS) and Table 6-17 (Hyperion). The throughput at
clustering levels c̅ is marked with bold typeface. The throughput values are calculated
considering the whole hyperspectral image (i.e. 512×512×224×16-bit = 896 Mb for
AVIRIS and 256×256×196×16-bit = 196 Mb for Hyperion dataset).
Table 6-14: Average Throughput (in Mbps) of the Non-Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on AVIRIS images for OMAP-
L137 EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 2.84
256×256 (4) 2.78 2.93 4.34 4.52 5.94 6.10
Table 6-15: Average Throughput (in Mbps) of the Non-Parallelised Integer KLT at the
Best Clustering and Recommended Tiling Levels based on Hyperion images for OMAP-
L137 EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 0.71 1.52 2.91 4.49 6.08 7.12
128×128 (4) 0.56 1.39 2.75 4.43 6.00 7.07
Table 6-16: Average Throughput (in Mbps) of the Parallelised Integer KLT at the Best
Clustering and Recommended Tiling Levels based on AVIRIS images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 11.54 50.70 57.08
256×256 (4) 11.28 47.97 56.15 59.93 51.75 52.85 49.67 59.75
192
Table 6-17: Average Throughput (in Mbps) of the Parallelised Integer KLT at the Best
Clustering and Recommended Tiling Levels based on Hyperion images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 14.80 58.16 66.88 59.53 48.98 53.41
128×128 (4) 11.57 50.41 57.52 56.92 47.42 44.80
6.3.2 Average Power Consumption
6.3.2.1 Non-parallelised Implementation
Using the similar presentation as in the average execution time performance evaluation
before, Table 6-18 and Table 6-19 show the average power consumption (Watt, W) for
the AVIRIS and Hyperion datasets respectively, when encoded on the OMAP-L137
EVM. The power figures from the tables are presented using bar charts in Figure 6-12
(AVIRIS) and Figure 6-13 (Hyperion) to see the differences in the power consumption
between the execution with and without the ED algorithm (i.e. power overhead). The
average power from the clustering levels c̅ are shaded in the tables and marked with
black-bordered bars in the charts. The power overhead is presented in Figure 6-14 for
both of the datasets where only the overhead is displayed, and compared between all the
clustering and tiling levels.
193
Table 6-18: Average Power Performance Comparison of the Non-Parallelised Integer KLT using Clustering and Tiling with and without ED
based on AVIRIS images for OMAP-L137 EVM (in Watt)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
** †† ** †† ** †† ** †† ** †† ** †† ** ††
512×512 (1) 2.193 2.193 2.197 2.197 2.223 2.223 2.229 2.229 2.277 2.278 2.292 2.292 2.314 2.314
Overhead 0.0001 0.0000 0.0001 0.0001 0.0012 0.0001 0.0000
256×256 (4) 2.194 2.194 2.196 2.196 2.230 2.230 2.229 2.230 2.265 2.268 2.277 2.278 2.315 2.316
Overhead 0.0002 0.0003 0.0001 0.0005 0.0033 0.0004 0.0007
128×128 (16) 2.125 2.126 2.131 2.131 2.147 2.149 2.150 2.151 2.177 2.180 2.185 2.187 2.216 2.219
Overhead 0.0012 0.0004 0.0013 0.0009 0.0034 0.0020 0.0031
64×64 (64) 2.127 2.129 2.130 2.130 2.154 2.156 2.151 2.153 2.165 2.171 2.172 2.175 2.221 2.225
Overhead 0.0015 0.0007 0.0013 0.0013 0.0055 0.0026 0.0040
Table 6-19: Average Power Performance Comparison of the Non-Parallelised Integer KLT using Clustering and Tiling with and without ED
based on Hyperion images for OMAP-L137 EVM (in Watt)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
** †† ** †† ** †† ** †† ** †† ** ††
256×256 (1) 2.181 2.182 2.176 2.176 2.156 2.158 2.211 2.211 2.231 2.232 2.251 2.252
Overhead 0.0011 0.0004 0.0018 0.0002 0.0003 0.0006
128×128 (4) 2.176 2.178 2.174 2.175 2.149 2.151 2.198 2.200 2.233 2.233 2.252 2.253
Overhead 0.0018 0.0014 0.0026 0.0014 0.0006 0.0007
64×64 (16) 2.173 2.176 2.168 2.172 2.137 2.140 2.164 2.166 2.205 2.206 2.247 2.248
Overhead 0.0037 0.0039 0.0028 0.0014 0.0006 0.0010
** Average power without the ED †† Average power with the ED
194
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 6-12: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on AVIRIS images for
OMAP-L137 EVM (in Watt)
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 6-13: Average Power Performance Comparison of the Non-Parallelised Integer
KLT using Clustering and Tiling with and without ED based on Hyperion images for
OMAP-L137 EVM (in Watt)
2.10
2.15
2.20
2.25
2.30
2.35
7 8 14 16 28 32 56
Aver
age
Pow
er (
W)
No. of Clusters (c)
2.10
2.15
2.20
2.25
2.30
2.35
7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
2.05
2.10
2.15
2.20
2.25
7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
2.05
2.10
2.15
2.20
2.25
7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
2.10
2.15
2.20
2.25
2.30
2 4 7 14 28 49
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
2.06
2.11
2.16
2.21
2.26
2 4 7 14 28 49
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
2.05
2.10
2.15
2.20
2.25
2.30
2 4 7 14 28 49
Av
era
ge
Po
wer
(W
)
No. of Clusters (c)
195
(a) AVIRIS
(b) Hyperion
Figure 6-14: ED Power Overhead of the Non-Parallelised Integer KLT using Clustering
and Tiling for OMAP-L137 EVM (in Watt)
6.3.2.2 Parallelised Implementation
Table 6-20 and Table 6-21 show the average power consumption (W) for the AVIRIS
and Hyperion datasets respectively, during the encoding process on the
TMDSEVM6678L EVM. The tabulated figures are presented in bar charts in Figure 6-15
(AVIRIS) and Figure 6-16 (Hyperion) to compare the two measurements (average power
consumption with and without the ED algorithm). The average power values measured at
clustering levels c̅ are shaded in the tables and are marked with black-bordered bars in the
charts. The power overhead is shown in Figure 6-17 for both datasets.
0.000
0.001
0.002
0.003
0.004
0.005
0.006
7 8 14 16 28 32 56
Ov
erh
ead
(W
)
No. of Clusters (c)
512×512 256×256 128×128 64×64
0.000
0.001
0.002
0.003
0.004
0.005
2 4 7 14 28 49
Ov
erh
ead
(W
)
No. of Clusters (c)
256×256 128×128 64×64
196
Table 6-20: Average Power Performance Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without ED based
on AVIRIS images for TMDSEVM6678L EVM (in Watt)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§
512×512 (1) 14.816 14.825 15.256 15.276 15.894 15.915 15.526 15.528 15.054 15.067 15.644 15.645 14.960 14.961 14.983 14.983 15.049 15.049 15.163 15.167
Overhead 0.0098 0.0203 0.0205 0.0024 0.0137 0.0009 0.0016 -0.0004 -0.0002 0.0044
256×256 (4) 14.734 14.763 15.205 15.244 15.896 15.924 15.496 15.563 15.082 15.122 15.715 15.722 15.060 15.066 15.038 15.040 15.146 15.147 15.250 15.258
Overhead 0.0289 0.0387 0.0282 0.0676 0.0395 0.0070 0.0057 0.0014 0.0011 0.0084
128×128 (16) 14.741 14.802 15.282 15.383 16.046 16.143 15.655 15.726 15.018 15.159 15.596 15.625 15.314 15.320 15.246 15.250 15.300 15.307 15.338 15.376
Overhead 0.0610 0.1004 0.0974 0.0718 0.1417 0.0283 0.0064 0.0040 0.0069 0.0376
64×64 (64) 14.777 14.857 15.295 15.504 16.130 16.360 15.882 16.061 15.295 15.446 15.693 15.723 15.355 15.449 15.244 15.256 15.247 15.262 15.294 15.380
Overhead 0.0804 0.2091 0.2301 0.1791 0.1516 0.0297 0.0943 0.0126 0.0153 0.0856
Table 6-21: Average Power Performance Comparison of the Parallelised Integer KLT using Clustering and Tiling with and without ED based
on Hyperion images for TMDSEVM6678L EVM (in Watt)
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§ ‡‡ §§
256×256 (1) 14.718 14.774 15.223 15.259 16.010 16.020 15.263 15.280 15.658 15.663 14.972 14.973 14.987 14.992
Overhead 0.0562 0.0356 0.0093 0.0172 0.0053 0.0008 0.0050
128×128 (4) 14.760 14.833 15.256 15.354 16.068 16.094 15.536 15.554 15.478 15.566 14.936 14.978 15.091 15.097
Overhead 0.0730 0.0981 0.0259 0.0180 0.0877 0.0420 0.0053
64×64 (16) 14.718 14.819 15.270 15.468 16.062 16.221 15.699 15.721 15.530 15.618 15.100 15.177 15.102 15.109
Overhead 0.1002 0.1989 0.1590 0.0221 0.0880 0.0773 0.0063
‡‡ Average power without the ED §§ Average power with the ED
197
(a) 512×512 (b) 256×256
(c) 128×128 (d) 64×64
without ED with ED
Figure 6-15: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on AVIRIS images for
TMDSEVM6678L EVM (in Watt)
(a) 256×256 (b) 128×128
(c) 64×64
without ED with ED
Figure 6-16: Average Power Performance Comparison of the Parallelised Integer KLT
using Clustering and Tiling with and without ED based on Hyperion images for
TMDSEVM6678L EVM (in Watt)
14.0
14.5
15.0
15.5
16.0
1 2 4 7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
13.5
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 8 14 16 28 32 56
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 14 28 49
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 14 28 49
Av
erag
e P
ow
er (
W)
No. of Clusters (c)
13.5
14.0
14.5
15.0
15.5
16.0
16.5
1 2 4 7 14 28 49
Av
era
ge
Po
wer
(W
)
No. of Clusters (c)
198
(a) AVIRIS
(b) Hyperion
Figure 6-17: ED Power Overhead of the Parallelised Integer KLT using Clustering and
Tiling with and without ED for TMDSEVM6678L EVM (in Watt)
6.3.2.3 Discussion
Generally, the average power consumption of the low complexity Integer KLT on the
OMAP-L137 EVM board shown in Table 6-18 (AVIRIS) and Table 6-19 (Hyperion)
(visualised in Figure 6-12 for AVIRIS and Figure 6-13 for Hyperion) increases as higher
levels of clustering are used. The increment however is not linear. For the AVIRIS
dataset, the increment of the average power from c = 7 to 8 and c = 14 to 16 are not
obvious compared to the other adjacent clustering levels that are visualised in Figure
6-12. For the Hyperion dataset, the power figures seem to decline from c = 2 to 7 but
continue to increase after that. The increment of average power are recorded around 0.12
W for sub-tile size 512×512 and 256×256 but become smaller with figures around 0.09
W for 128×128 and 64×64 sub-tile sizes for the AVIRIS, by comparing the average
power at the smallest clustering levels (i.e. c = 7) with the largest (c = 56). Similarly, the
0.00
0.05
0.10
0.15
0.20
0.25
1 2 4 7 8 14 16 28 32 56
Ov
erh
ead
(W
)
No. of Clusters (c)
512×512 256×256 128×128 64×64
0.00
0.05
0.10
0.15
0.20
0.25
1 2 4 7 14 28 49
Over
hea
d (
W)
No. of Clusters (c)
256×256 128×128 64×64
199
Hyperion recorded the increment of average power around 0.07 W for all the tiling levels,
when varying the clustering levels from c = 2 to 49. For the tiling effect, generally using
smaller sub-tile sizes results in smaller average power figures for both the datasets with
the differences ranging from 0.07 to 0.12 W for AVIRIS and 0.004 to 0.047 W for
Hyperion, taken from the difference between the largest and the smallest sub-tile sizes.
The incorporation of the ED algorithm in the Integer KLT algorithm affects the average
power consumption of the OMAP-L137 EVM. This is visualised in Figure 6-14 in terms
of the power overhead. The variation of the average power overhead does not have a
clear pattern as the number of clusters c is increased in both datasets. However, it is
obvious that the smaller sub-tile sizes give bigger power overhead and this is consistent
with any level of clustering, for both datasets. At the best clustering levels c̅, the overhead
is very small which is in the range of 1.3 to 5.5 mW for AVIRIS and from 0.4 to 1.4 mW
for Hyperion.
With the ED algorithm executed on the OMAP-L137 system and at the clustering levels
c̅, the low complexity Integer KLT consumes 2.149 and 2.171 W of average power at
128×128 and 64×64 tiling levels, respectively for the AVIRIS dataset. Similarly, for
Hyperion dataset, the algorithm consumes around 2.176, 2.200 and 2.206 W at 256×256,
128×128 and 64×64 sub-tile sizes, respectively.
For the parallel implementation without the ED algorithm on the TMDSEVM6678L
EVM board, there are some fluctuations in the average power figures when varying the
level of clustering and this leads to unclear patterns as shown in Figure 6-15 (AVIRIS)
and Figure 6-16 (Hyperion). The power figures seem to peak at c = 4 for all tiling levels
in both the datasets due to unknown reasons. By comparing the smallest and the largest
clustering levels (ignoring the fluctuations between them), clustering has introduced 0.35,
0.52, 0.60 and 0.52 W of increment for the 512×512, 256×256, 128×128 and 64×64
tiling levels, respectively. Unlike the OMAP-L137, tiling increases the average power in
almost all the clustering levels. The increment is in the range of 0.04 to 0.40 W for the
AVIRIS and from 47 mW to 0.44 W for the Hyperion dataset. Maximum average power
figures are 16.130 (AVIRIS, 64×64 sub-tile size) and 16.068 W (Hyperion, 128×128),
both at c = 4, where the power figures peaked.
Similar to the OMAP-L137 implementation, the inclusion of the ED algorithm introduces
power overheads due to the extra work for error checking in each iteration of the PLUS
200
factorisation. The power overhead is shown in Figure 6-17 at each clustering and tiling
levels. The variation of the average power overhead on the TMDSEVM6678L EVM does
not have a clear pattern as the level of clustering is increased for both datasets. However,
it is obvious that the smaller sub-tile size gives bigger power overhead and this is
consistent with any level of clustering, also in both datasets. At the clustering levels c̅, the
overhead is in the range of 12.6 to 28.3 mW for AVIRIS and from 9.3 to 87.7 mW for
Hyperion.
By including the ED algorithm on the TMDSEVM6678L system and at the clustering
levels c̅, the low complexity Integer KLT consumes 15.276, 15.924, 15.625 and 15.256
W of average power for the 512×512, 256×256, 128×128 and 64×64 tiling levels,
respectively for the AVIRIS dataset. Similarly, the Hyperion dataset consumes 16.020,
15.566 and 15.177 W for the 256×256, 128×128 and 64×64 sub-tile sizes, respectively.
The effects of clustering and tiling on both boards with regards to the average power
consumption of the algorithm are not similar. To summarise, clustering increases the
average power on the OMAP-L137 system but has given no clear pattern (peaked at c =
4) on the TMDSEVM6678L EVM. Tiling has shown that it is capable for reducing the
average power figure on the non-parallelised implementation; however, it increases the
figure for the parallelised implementation. Both implementations, however, have
similarly given no clear pattern on the power overhead figure when the level of clustering
changes but positively affected (increases) when the level of tiling extends.
Spreadsheets for accurate power estimation provided by TI about OMAP-L137 EVM
[286] and TMDSEVM6678L EVM [287] can be utilised to model power consumption
during system design [206, 288]. The multi-core DSP’s spreadsheet, the interface of
which is shown in Figure 6-18, accepts as inputs the percentages of signal processing
(%SP) and control code (%CC) utilisation for each CorePack (i.e. cores). Estimated
percentage values of 80% and 15% for %SP and %CC, respectively, have been used
(assuming the idle state accounts for the remaining 5%). Due to the used SPMD
programming approach (Section 4.4) that divides the clusters’ encoding evenly across the
CorePacks, these percentages are assumed to be constant when using a different number
of CorePacks (i.e. number of clusters). This is because the spreadsheet accepts the inputs
in terms of percentage of utilisation that are relative to the amount of time a certain
module is in active use versus idle operation. Setting the CorePack’s frequency to 1.0
GHz and 60% percentage of utilisation for the DDR3 module with 70% of write
201
operations (estimated values), the total power generated by the spreadsheet for a different
number of CorePacks increases steadily from around 12 W to 14 W when using 1, 2, 4, 7
and 8 number of CorePacks (i.e. the first five clustering levels for AVIRIS). These
estimates have the same range of power variation as the multi-core EVM measurements,
reported in Section 6.3.2.2, but the maximum wattage is lower by 14%. In addition they
contradict the fluctuating pattern of the experimental power results in Figure 6-15 and
Figure 6-16. It is believed that the fluctuation might be due to interference from the DC
adaptor that powers the board itself as discussed in [284], especially that the power
measurements of the OMAP-L137 EVM board, taken in the same way, show a pattern
that is more consistent.
Figure 6-18: Spreadsheet for Accurate Estimates of the TMDSEVM6678L EVM Power
Consumption [287]
Even though with the dissimilarities and not clear patterns in both of boards, the average
power figures of the algorithm (with the ED algorithm) at the best clustering and
recommended tiling levels (introduced in Section 4.7.3.3) are shown in Table 6-22 and
Table 6-23 for the OMAP-L137 system and in Table 6-24 and Table 6-25 for the
TMDSEVM6678L system. In all the tables, the average power figures at clustering levels
c̅ (i.e. clustering level where the CR maximised averagely) are marked with a bold
typeface.
202
Table 6-22: Average Power (in Watt) of the Non-Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on AVIRIS images for OMAP-L137
EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 2.193
256×256 (4) 2.194 2.196 2.230 2.230 2.268 2.278
Table 6-23: Average Power (in Watt) of the Non-Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on Hyperion images for OMAP-L137
EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 2.182 2.176 2.158 2.211 2.232 2.252
128×128 (4) 2.178 2.175 2.151 2.200 2.233 2.253
Table 6-24: Average Power (in Watt) of the Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on AVIRIS images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
512×512 (1) 15.276 15.915 15.528
256×256 (4) 15.244 15.924 15.563 15.122 15.722 15.066 15.040 15.147
Table 6-25: Average Power (in Watt) of the Parallelised Integer KLT at Best
Clustering and Recommended Tiling Levels based on Hyperion images for
TMDSEVM6678L EVM
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
256×256 (1) 15.259 16.020 15.280 15.663 14.973 14.992
128×128 (4) 15.354 16.094 15.554 15.566 14.978 15.097
The comparison of the power consumption on the OMAP-L137 EVM with the parallel
implementation on the TMDSEVM6678L EVM has shown quite different patterns with
each other. This is due to the different architecture of the DSPs and different hardware
features such as clock speed, size and type of the external memory. The Integer KLT on
the TMDSEVM6678L EVM clearly uses more power but provides better execution time
than the OMAP-L137 which consumes much lower power. With the availability of
203
OpenMP for embedded platforms, the low complexity Integer KLT could be parallelised,
significantly improving the execution time performance.
6.4 Conclusion
This chapter presents novel implementation strategies using a dual-core DSP prototyping
board (OMAP-L137 EVM) and an eight-core DSP prototyping board (TMDSEVM6678L
EVM). The Integer KLT image compression systems enhanced with low complexity,
error detection capability and parallelised was mapped onto the eight-core DSP system.
An extensive experimentation was undertaken to test both the non-parallelised and the
parallelised Integer KLT version with the ED algorithm. The main focus was on the
execution time and the average power consumption of the algorithms, which were
measured on both DSP boards while varying the clustering and tiling levels of two sets of
hyperspectral images, captured by the airborne AVIRIS and the spaceborne Hyperion
imagers. To the best of the author’s knowledge, this is the first time the Integer KLT is
implemented on a DSP platform, accelerated through multi-core parallelisation and other
optimisation techniques and fully characterised in terms of the execution time and
average power consumption.
The execution time of the Integer KLT on the DSP platforms (with and without the ED)
produces a similar pattern (when varying the clustering and tiling levels) as in the desktop
platform, except for the OMAP-L137 EVM on several clustering levels that could not be
opted due to insufficient memory. The proposed ED algorithm provides a very low
execution time overhead with similar patterns as in the desktop implementation. The
execution time and its overhead however are higher than what have been recorded for the
desktop platform.
With regards to the average power consumption, the two prototyping boards generate
different patterns depending on the level of the clustering and tiling changes. Clustering
increases the average power on the OMAP-L137 system but has given no clear pattern
(peaked at c = 4) on the TMDSEVM6678L EVM. Tiling has shown that it is capable of
reducing the average power of the non-parallelised implementation; however, it increases
the power of the parallelised implementation. Both embedded implementations however,
have similarly, giving no clear pattern on the ED power overhead figure, when the level
of clustering rises, but the overhead increases when the level of tiling expands. The
204
possibility of interference from the DC adaptor is believed to be the reason of such
inconsistent patterns. The ED power overhead is low in both of EVMs, which is in the
range of 0.4 to 5.5 mW and from 9.3 to 87.7 mW for OMAP-L137 and the
TMDSEVM6678 EVM, respectively, observed from the clustering levels c̅, for both
datasets.
At the best clustering and recommended tiling levels, an AVIRIS image can be encoded
on the OMAP-L137 EVM using the ED capability for a time period between 2.5 to 5.4
minutes and from 27.55 seconds to 5.8 minutes for a Hyperion image. Similarly, an
AVIRIS image needs from 15 seconds to 1.3 minutes whereas a Hyperion needs from
2.93 to 16.95 seconds to be encoded on the TMDSEVM6678L EVM.
It is believed that the obtained ranges of both parameters the execution time and the
power consumption are compatible with the requirements of hyperspectral payloads of
EO satellite missions, which make the developed Integer KLT implementations suitable
for use on board spacecraft.
205
Chapter 7 Estimating the Best Clustering Level
In Chapter 4, several clustering levels have been proposed as a method to reduce the
complexity of the Integer KLT. The highest clustering level (i.e. smallest cluster size) can
be selected to get the fastest execution but it will engender a poor compression ratio. It
was shown in Section 4.7.2 (volumetric CR opting fixed sampling during covariance
calculation) and Section 4.7.3.1 (CR-with overhead information and using fixed sampling
method) that the CR increases as the level of clustering is increased until a certain level
where the CR is maximised before starting to drop. In this chapter, the clustering level
where the CR maximised is going to be estimated for each hyperspectral image and also
for each tiling strategy opted. This is believed to be beneficial for the multi-core
implementation where the clustering level determines the number of processor cores
(threads) being used as discussed in Section 4.4. The clustering level which generates the
best CR for each image and tiling approach also is not unique and cannot be generalised
from averaging the CR (i.e. c̅, the clustering level that gives averagely the highest CR in a
tiling approach as performed in Chapter 4) in the actual application on board a satellite.
In Section 7.1 Integer KLT with different levels of clustering is introduced. The Integer
KLT output is analysed in detail in Section 7.2. Based on the output characteristics, a
method to estimate the best clustering level is proposed and presented in Section 7.3.
Section 7.4 details the estimated clustering levels for all the hyperspectral images used in
this study and Section 7.5 discusses the results. Section 7.6 concludes the chapter.
7.1 Integer KLT with Different Levels of Clustering
As presented and discussed in Section 4.7.2, due to the sampling approach in the
covariance calculation step of the Integer KLT algorithm, the best volumetric CR
maximised at clustering level c > 1 (instead at c = 1 when no sampling is used). The
purpose of this chapter is to determine or estimate the best clustering level for all
hyperspectral images. Throughout this chapter, the best clustering level will be referred to
as �̃� *.
* All the shaded cells in Table 4-11, Table 4-12, Table 4-15, Table 4-16, Table 4-18, Table 4-19 and all the
tables in Appendix G that compare CR results at different clustering and tiling levels (except in the average
rows) can be referred as clustering levels �̃�
206
As explained in Chapter 4, the clustering can be visualised as a ‘divide-and-conquer’
approach whereby the total number of spectral bands, Z, is divided into c number of
uniform clusters (or groups), each consisting of z spectral bands, so that 𝑐 = 𝑍 𝑧⁄ . The
encoding process carried out on each cluster. A clustered version of the Integer KLT
block diagram given in Figure 3-1 is shown in Figure 7-1 (for c > 2), where the step
numbering is kept the same. Each branch in Figure 7-1 encodes a sub-cube of the input
hyperspectral image 𝐻𝑀×𝑀×𝑍. with size of 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡𝑀×𝑀×𝑧𝑘 where the superscript k = 1,
2, …, c denotes the cluster number. All the subsequent steps are performed on variables
with a size z instead of Z when no clustering is opted, e.g. 𝑅𝑜𝑢𝑛𝑑𝑒𝑑𝑀𝑒𝑎𝑛𝑧1, 𝐶𝑧×𝑧
2 , 𝑆𝑧×𝑧𝑐
etc..
Start
Get RoundedMean1z.
H_adjust1M×M×z ˗= RoundedMean1
z
Finish
HM×M×Z = input
Get C1z×z of
H_adjust1M×M×z
Get C2z×z of
H_adjust2M×M×z
Get Ccz×z of
H_adjustcM×M×z
Get A1z×z & V1
z×z
of C1z×z and sort
Get A2z×z & V2
z×z
of C2z×z and sort
Get Acz×z & Vc
z×z
of Ccz×z and sort
Factor A1z×z into P1
z×z,
L1z×z, U
1z×z, S
1z×z
Factor A2z×z into P2
z×z,
L2z×z, U
2z×z, S
2z×z
Factor Acz×z into Pc
z×z,
Lcz×z, U
cz×z, S
cz×z
Apply to
H_adjust1M×M×z
Apply to
H_adjust2M×M×z
Apply to
H_adjustcM×M×z
Get RoundedMean2z.
H_adjust2M×M×z ˗= RoundedMean2
z
Get RoundedMeancz.
H_adjustcM×M×z ˗= RoundedMeanc
z
H_adjust1M×M×z = HM×M×(0 to z-1) H_adjust2
M×M×z = HM×M×(z to 2z-1) H_adjustcM×M×z = HM×M×(cz to Z)
1
2
3
4
5
Combine H_adjust1M×M×z, H_adjust2
M×M×z … H_adjustcM×M×z à
H_encodedM×M×Z
Figure 7-1: Clustered Integer KLT Block Diagram with c > 2
The clustering level �̃� is determined from Section 4.7.3.1 by selecting the clustering level
out of all possible clustering levels that produced the highest CR value, which
corresponds to the smallest compressed image size in kB along with the overhead
information size. Since the size of the compressed image is produced by the JPEG2000
207
algorithm, used as the spatial decorrelator in this work, which is performed after the
Integer KLT compression, the clustering level �̃� can only be estimated rather than
determined. To estimate the clustering level �̃�, there should exist a strong correlation
between any variable or characteristic of the Integer KLT and the size of each
compressed spectral band, obtained from the output from the JPEG2000 algorithm in kB.
The strength of the relationship can be evaluated using the PPMCC, which is defined by
(3-19) and can be expressed as:
Correlation(𝐺, 𝑉) =∑(𝑔𝑧 − �̅�)(𝑣𝑧 − �̅�)
√∑(𝑔𝑧 − �̅�)2(𝑣𝑧 − �̅�)2
Where,
G is any variable or characteristic from each spectral band from the Integer
KLT
V = (v1 = band_size1, v2 = band_size2, …, vZ = band_sizeZ), i.e. size of each
band of compressed image (in kB)
�̅� = mean of G
�̅� = mean of V
(7-1)
Since the process is only based on the correlation value, the clustering level �̃� is only an
estimation and not a determination [289]. The correlation value should be high (i.e.
approaching 1.0) in order to use the variable or characteristic for the clustering level �̃�
estimation.
In order to estimate the clustering level �̃�, the maximum five levels of clustering starting
from c = 1 are used for comparison due to all the clustering levels c̅ at tiling levels t2 = 1
and 4 from Section 4.7.3.1 are within the first five clustering levels. This means that for
AVIRIS, Hyperion and CHRIS datasets, the selected c are {1, 2, 4, 7, 8}, {1, 2, 4, 7, 14}
and {1, 2}, respectively. In other words, maximum five different clustering approaches
need to be executed and compared to find an obvious characteristic with a high
correlation value using (7-1) that could point out to the clustering level �̃�. Figure 7-2
illustrates an example of a clustered Integer KLT that executes at five different clustering
levels to compress an AVIRIS image. As shown in Figure 7-2, the covariance matrix for
c > 1 , i.e. 𝐶𝑧×𝑧𝑘 , where k = 2, … c, can be obtained from the main diagonal of the
covariance matrix when c = 1 , i.e. 𝐶𝑍×𝑍1 or 𝐶𝑍×𝑍. This could save execution time by
calculating the covariance only once. Note also that in the figure, the 3D variables are
transformed from 224×M×M to 2D (224×MM), similar to the approach introduced in
Section 3.1.1.
208
Start
Get RoundedMean224.
H_adjust1224×MM –= RoundedMean224.
H_adjust8224×MM = H_adjust7
224×MM =
H_adjust4224×MM = H_adjust2
224×MM =
H_adjust1224×MM
Get C224×224 of
H_adjust1224×MM
Finish
HM×M×224 = input
c = 1 c = 2 c = 4 c = 7
Use C224×224
Extract C1112×112 and
C2112×112 from the
main diagonal of
C224×224
Perform Step 3 to 5
on C224×224 and
apply on
H_adjust1224×MM
Extract C156×56, to
C456×56 from the
main diagonal of
C224×224
Extract C132×32, to
C732×32 from the
main diagonal of
C224×224
c = 8
Extract C128×28, to
C828×28 from the
main diagonal of
C224×224
Perform Step 3 to 5
on all Ck112×112 and
apply on each of
H_adjust2112×MM
Perform Step 3 to 5
on all Ck56×56 and
apply on each of
H_adjust456×MM
Perform Step 3 to 5
on all Ck32×32 and
apply on each of
H_adjust732×MM
Perform Step 3 to 5
on all Ck28×28 and
apply on each of
H_adjust828×MM
H_encoded1224×MM = H_adjust1
224×MM. H_encoded2224×MM = H_adjust2
224×MM.
H_encoded4224×MM = H_adjust4
224×MM. H_encoded7224×MM = H_adjust7
224×MM.
H_encoded8224×MM = H_adjust8
224×MM.
Compare variables involve among
c = 1, 2, 4, 7, 8 clustering levels
Figure 7-2: Integer KLT Block Diagram for Multiple Clustering Levels to Estimate
Clustering Level �̃� for an AVIRIS Image
Since each clustering level in Figure 7-2 (i.e. each branch) involves a different number of
spectral bands, comparing the five different clustering levels would mean comparing five
variables with different dimensions and different cluster size, z. As an example, when c =
1, only one 𝐶224×2241 covariance matrix is involved whereas for c = 2, two covariance
matrices, 𝐶112×1121 and 𝐶112×112
2 , are involved etc.. This applies to the other Integer KLT
variables, such as eigenvector A, eigenvalue V, P, L, U, and S matrices, where each of
them is a square matrix with a size of z×z and with c being the total number of clusters
being encoded.
The matrices at each clustering level were analysed by combining them at the main
diagonal with the remaining elements set to zeroes (to form a Z×Z matrix). Several basic
comparison methods such as summation and averaging of the matrix elements, minimum
and maximum elements were applied too. However none of these produced a strong
correlation value, which could point out to the clustering level �̃�. The only variables that
can be compared between each of the clustering levels are the encoded outputs due to the
similar dimension among them, i.e. 𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑224×𝑀𝑀1 , 𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑224×𝑀𝑀
2 ,
𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑224×𝑀𝑀4 , 𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑224×𝑀𝑀
7 and 𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑224×𝑀𝑀8 . The next section will
be focused on the characteristics of the H_encoded output to investigate this promising
approach.
209
7.2 Integer KLT Output Characteristics
As mentioned in Section 3.1, the Integer KLT algorithm reduces the spectral
redundancies (or similarities) that exist between spectral bands in a hyperspectral input
image, H. The spectrally decorrelated output image, H_encoded is produced from the
algorithm which consists of integer samples (or pixels) due to the integer mapping
approach introduced in [174] as explained in Section 3.1.2.
To analyse the output from the Integer KLT algorithm, the AVIRIS, Hyperion and
CHRIS datasets (refer to Table 4-1 and Section G.1 to Section G.3 of Appendix G for a
complete list of images) and their encoded output are examined from the point of view of
the entire cube (3D analysis) and each spectral band (2D analysis). It is important to
involve in the analysis of all the hyperspectral images in order to identify a generalised
characteristic for the algorithm output. The characteristic will be used in the following
section to estimate the clustering level �̃� of each image.
For the 3D analysis, the following characteristics of each hyperspectral image H and its
encoded output H_encoded are generated using the Envi Software V4.7 [109]: (i)
minimum, abbreviated as min(), (ii) maximum, denoted by max() and (iii) range, denoted
by R() which equals to max() – min(). Table 7-1 presents the values of the three
parameters for AVIRIS input images and their corresponding encoded output in the
second to the seventh column of the table. Percentages of negative, zero and positive
samples in the encoded output are also shown in the last three columns of Table 7-1.
Table 7-2 and Table 7-3 show the similar information for Hyperion and CHRIS images,
respectively.
Table 7-1: Input (H) vs Encoded Output (H_encoded) (AVIRIS)
Hyperspectral Image, H Integer KLT Output, H_encoded
min max R min max R < 0 (%) = 0 (%) > 0 (%) 1 2 3 4 5 6 7 8 9 10
Cuprite1 -19 11,821 11,840 -13,882 39,952 53,834 45.39 9.34 45.27
Cuprite2 -21 13,645 13,666 -49,923 26,290 76,213 45.56 8.94 45.50
Cuprite3 -18 8,980 8,998 -14,224 23,916 38,140 45.22 9.08 45.70
Cuprite4 -20 14,083 14,103 -18,873 53,796 72,669 45.02 8.90 46.08
Jasper1 -21 10,185 10,206 -34,486 18,068 52,554 44.98 10.07 44.95
Jasper2 -21 24,883 24,904 -120,242 30,558 150,800 44.96 10.06 44.97
Jasper3 -20 11,246 11,266 -46,708 16,429 63,137 45.09 10.13 44.78
Jasper4 -21 13,964 13,985 -48,015 18,942 66,957 45.14 9.96 44.89
Jasper5 -20 12,524 12,544 -73,800 15,793 89,593 44.68 10.15 45.17
Low1 -259 25,191 25,450 -20,922 112,775 133,697 46.43 7.59 45.98
Low2 -50 19,694 19,744 -90,144 21,664 111,808 46.06 7.53 46.41
Low3 -58 12,412 12,470 -20,132 45,311 65,443 46.00 7.68 46.32
210
Low4 -57 17,033 17,090 -20,417 76,194 96,611 46.34 7.50 46.16
Low5 -55 20,297 20,352 -95,965 55,525 151,490 45.99 7.43 46.58
Low6 -57 22,433 22,490 -27,529 111,442 138,971 46.19 7.68 46.13
Low7 -64 13,954 14,018 -18,214 67,842 86,056 46.16 7.74 46.11
Lunar1 -19 13,864 13,883 -45,368 29,489 74,857 45.61 8.76 45.63
Lunar2 -16 13,465 13,481 -23,206 49,682 72,888 45.32 8.98 45.70
YSCal0 -142 6,528 6,670 -26,134 7,188 33,322 40.57 18.85 40.58
YSCal3 -191 5,764 5,955 -19,404 6,501 25,905 40.07 19.64 40.29
YSCal10 -220 5,528 5,748 -14,608 27,453 42,061 38.88 24.86 36.26
YSCal11 -140 11,412 11,552 -6,080 66,432 72,512 39.77 20.68 39.54
YSCal18 -130 12,880 13,010 -8,633 58,565 67,198 40.50 19.82 39.68
YSUncal0 1,542 21,737 20,195 -110,294 62,768 173,062 47.96 4.17 47.87
YSUncal3 1,536 17,529 15,993 -70,643 60,399 131,042 47.83 4.37 47.80
YSUncal10 1,518 21,225 19,707 -118,231 22,434 140,665 47.26 5.82 46.92
YSUncal11 1,541 41,375 39,834 -38,986 259,202 298,188 47.61 4.74 47.65
YSUncal18 1,559 41,737 40,178 -190,007 74,209 264,216 47.54 4.37 48.09
Table 7-2: Input (H) vs Encoded Output (H_encoded) (Hyperion)
Hyperspectral Image, H Integer KLT Output, H_encoded
min max R min max R < 0 (%) = 0 (%) > 0 (%) 1 2 3 4 5 6 7 8 9 10
Atturbah -188 6,700 6,888 -13,921 19,070 32,991 48.56 3.06 48.38
Benoni -254 9,796 10,050 -20,419 43,886 64,305 48.48 3.11 48.41
Berrigan -167 8,517 8,684 -24,369 25,853 50,222 48.49 2.68 48.82
Boston -32,767 9,037 41,804 -395,561 29,212 424,773 48.31 3.24 48.44
Carnarvon -206 5,188 5,394 -15,929 10,254 26,183 48.10 3.51 48.39
Chesterton -272 5,197 5,469 -13,244 12,459 25,703 48.48 3.16 48.36
Coolamon -212 7,661 7,873 -16,954 22,896 39,850 48.36 3.00 48.64
Dubbo1 -171 13,455 13,626 -18,651 18,374 37,025 48.50 3.24 48.26
Dubbo2 -189 7,960 8,149 -20,103 15,976 36,079 48.44 3.18 48.39
Echuca -316 5,536 5,852 -12,260 14,484 26,744 48.47 3.39 48.14
Edenton -32,767 10,034 42,801 -392,940 22,255 415,195 48.48 2.97 48.56
Elcho -501 6,391 6,892 -20,721 15,857 36,578 48.37 3.66 47.97
Goolwa -586 7,697 8,283 -16,329 23,672 40,001 48.49 3.16 48.34
Greenland -201 15,092 15,293 -34,632 41,052 75,684 48.45 3.27 48.28
Griffith -154 11,457 11,611 -23,891 45,431 69,322 48.72 2.86 48.41
Heathcote -134 4,052 4,186 -11,339 9,191 20,530 48.31 3.31 48.39
Inglewood1 -160 7,424 7,584 -17,621 18,644 36,265 48.26 3.00 48.75
Inglewood2 -123 7,258 7,381 -17,476 11,193 28,669 48.32 2.93 48.75
Kangaroo -422 4,572 4,994 -16,966 11,136 28,102 48.30 3.53 48.17
Maizhokunggar -110 7,906 8,016 -30,272 16,726 46,998 48.53 2.89 48.58
Moree1 -248 8,592 8,840 -19,933 20,600 40,533 48.69 3.02 48.29
Moree2 -221 7,006 7,227 -16,190 16,629 32,819 48.34 3.21 48.45
Okha -238 13,969 14,207 -47,391 29,654 77,045 48.30 3.44 48.26
Portobago -205 8,687 8,892 -22,928 18,627 41,555 48.47 3.25 48.28
Rochester -197 5,804 6,001 -11,834 18,753 30,587 48.29 3.27 48.43
Strathalbyn -184 7,954 8,138 -26,415 19,856 46,271 48.59 2.95 48.46
Tarlee -203 6,201 6,404 -14,254 17,978 32,232 48.59 3.06 48.35
Temora -149 5,436 5,585 -17,270 11,881 29,151 48.41 2.96 48.63
TomPrice -373 4,315 4,688 -11,898 12,276 24,174 48.23 3.34 48.43
Virginia -229 6,436 6,665 -21,265 16,518 37,783 48.56 3.07 48.36
211
Table 7-3: Input (H) vs Encoded Output (H_encoded) (CHRIS)
Hyperspectral Image, H Integer KLT Output, H_encoded
min max R min max R < 0 (%) = 0 (%) > 0 (%) 1 2 3 4 5 6 7 8 9 10
Barrax359a 0 267,797 267,797 -522,319 422,554 944,873 47.65 0.05 52.30
Barrax436e 0 230,178 230,178 -411,492 401,027 812,519 49.34 0.06 50.60
Colly37aa 3,051 179,273 176,222 -193,735 622,465 816,200 50.60 0.12 49.28
Colly39c8 12,680 196,328 183,648 -195,001 617,187 812,188 49.58 0.10 50.32
It can be seen from Table 7-1, Table 7-2 and Table 7-3 that for all images the parameter
min(H_encoded) has negative values and is much smaller than the corresponding min(H).
This also includes the images without negative samples (e.g. YSUncal0-AVIRIS and
Barrax359a-CHRIS). The max(H_encoded) values however are larger than their max(H),
affecting all the images too. Due to the reduction in min(H_encoded) and enlargement in
max(H_encoded), the R(H_encoded) becomes larger than R(H), which applies to all the
images. The analysis of the percentages of the negative, zero and positive samples in
Table 7-1, Table 7-2 and Table 7-3 show that, the first and the last categories are almost
the same. This indicates that the negative samples should have a similar impact as the
positive samples on the performance of the overall compression system, i.e. the
combination of Integer KLT and spatial JPEG2000 compressor.
As an example, a histogram of the encoded output of the AVIRIS image Jasper3 in Table
7-1 is shown in Figure 7-3, which is focused on the lower frequency range. The
histogram peaked at 5.9e6 for the zero sample value that can be derived from its
percentage in Table 7-1. The histogram of the Jasper3 image (as well as of the other
hyperspectral images) appears as a bell-shaped Gaussian like distribution that is
symmetrical at the zero sample value, which visualises the percentage similarity between
the negative and the positive samples.
Figure 7-3: Integer KLT Output Histogram – Jasper3
-6 -5 -4 -3 -2 -1 0 1 2
x 104
0
200
400
600
800
1000
Sample Value, H_encoded
Fre
qu
ency
212
The spectral decorrelation or similarities reduction between spectral bands inside the
encoded output can be visualised by comparing the hyperspectral data input and the
encoded output from the Jasper3 image in Figure 7-4(a) to (f) and Figure 7-5(a) to (f),
respectively. Six spectral bands are selected: (a) 1st, (b) 4
th, (c) 8
th, (d) 100
th, (e) 200
th, and
(f) 224th
, respectively as shown in Figure 7-4 and Figure 7-5. The visible features that
exist in Figure 7-4(a) to (f) are greatly reduced towards the end of the spectrum when the
Integer KLT spectral decorrelation is used, as shown in Figure 7-5(a) to (f). Using (3-19),
samples of the correlation coefficients of the same input image are tabulated for the 1st to
the 9th
bands in Table 7-4. The shaded cells show the coefficients for the adjacent bands
and only the non-redundant half is shown. Similarly, the correlation coefficients for the
encoded output are shown in Table 7-5. The shaded figures are greatly reduced in Table
7-5 compared to the shaded cells from Table 7-4, showing that the encoded outputs are
spectrally decorrelated. Note that the correlation between a band and itself is equal to 1.0
(i.e. similar).
(a) 1st Band (b) 4th Band (c) 8th Band
(d) 100th Band (e) 200th Band (f) 224th Band
Figure 7-4: The Jasper3 AVIRIS Image at the input of Integer KLT
(a) 1st Band (b) 4th Band (c) 8th Band
213
(d) 100th Band (e) 200th Band (f) 224th Band
Figure 7-5: The Jasper3 AVIRIS Image after the Integer KLT encoding
Table 7-4: Correlation Coefficients for Jasper3 Input Image (1st to 9
th Bands)
1st Band 2nd Band 3rd Band 4th Band 5th Band 6th Band 7th Band 8th Band 9th Band
1st Band 1.000000 0.772574 0.816845 0.801394 0.777893 0.765451 0.759503 0.749219 0.739762
2nd Band 1.000000 0.843492 0.832763 0.808220 0.795518 0.789156 0.778743 0.769251
3rd Band 1.000000 0.931222 0.910967 0.898178 0.892034 0.881503 0.871911
4th Band 1.000000 0.983411 0.976537 0.972243 0.965115 0.958040
5th Band 1.000000 0.994996 0.993169 0.989378 0.985077
6th Band 1.000000 0.997557 0.995933 0.993290
7th Band 1.000000 0.997867 0.996104
8th Band 1.000000 0.998580
9th Band 1.000000
Table 7-5: Correlation Coefficients for Jasper3 Encoded Output (1st to 9
th Bands)
1st Band 2nd Band 3rd Band 4th Band 5th Band 6th Band 7th Band 8th Band 9th Band
1st Band 1.000000 2.85E-07 5.64E-06 4.47E-06 -6.78E-06 -4.56E-06 -5.85E-06 3.40E-05 -7.32E-05
2nd Band 1.000000 -4.39E-07 1.03E-06 -1.03E-05 -1.47E-05 3.80E-07 3.08E-05 -5.56E-05
3rd Band 1.000000 -7.68E-06 8.58E-06 1.03E-05 9.25E-07 -4.07E-05 -1.79E-06
4th Band 1.000000 7.77E-06 -4.88E-06 2.74E-05 4.93E-05 8.26E-06
5th Band 1.000000 -1.35E-05 -1.93E-05 -1.21E-05 -1.54E-05
6th Band 1.000000 -2.30E-05 3.72E-05 -5.04E-05
7th Band 1.000000 8.86E-06 -1.08E-05
8th Band 1.000000 -1.98E-05
9th Band 1.000000
In order to further examine the encoded image, each spectral band is analysed in detail
since it is compressed individually by the JPEG2000 compressor. Similar to the previous
analysis, the study focuses on minimum, maximum and range values but for each spectral
band, i.e. min(h_encodedz) vs min(hz), max(h_encodedz) vs max(hz), and R(h_encodedz)
vs R(hz), where h_encodedz is the spectral band z being analysed. Since the number of
spectral bands involved is large, i.e. AVIRIS has 224 bands, Hyperion - 196 and CHRIS
– 62, the analysis is reported in percentage of spectral bands. Table 7-6 shows the
percentage of spectral bands in the encoded output with min(h_encodedz) larger or
smaller than the respective input min(hz). Similarly, Table 7-7 and Table 7-8 show the
results for the max() and R() analysis, respectively.
214
Table 7-6: Percentage of Spectral Bands with min(h_encodedz) Larger and Smaller
than min(hz)
AVIRIS
Percentage of Spectral Bands
Hyperion
Percentage of Spectral Bands
min(h_encodedz)
> min(hz)
min(h_encodedz)
< min(hz)
min(h_encodedz)
> min(hz)
min(h_encodedz)
< min(hz)
Cuprite1 0.45 99.55 Atturbah 6.63 93.37
Cuprite2 0.00 100.00 Benoni 8.16 91.84
Cuprite3 0.89 99.11 Berrigan 4.08 95.92
Cuprite4 0.45 99.55 Boston 4.02 95.98
Jasper1 5.80 94.20 Carnarvon 7.65 92.35
Jasper2 3.13 96.88 Chesterton 6.12 93.88
Jasper3 4.02 95.98 Coolamon 3.57 96.43
Jasper4 2.68 97.32 Dubbo1 5.61 94.39
Jasper5 2.68 97.32 Dubbo2 5.61 94.39
Low1 6.25 93.75 Echuca 9.69 90.31
Low2 5.80 94.20 Edenton 7.55 92.45
Low3 6.70 93.30 Elcho 15.31 84.69
Low4 4.91 95.09 Goolwa 16.33 83.67
Low5 5.80 94.20 Greenland 7.14 92.86
Low6 5.36 94.64 Griffith 4.08 95.92
Low7 5.36 94.64 Heathcote 6.12 93.88
Lunar1 0.45 99.55 Inglewood1 4.59 95.41
Lunar2 0.00 100.00 Inglewood2 3.06 96.94
YSCal0 2.68 97.32 Kangaroo 3.75 96.25
YSCal3 3.13 96.88 Maizhokunggar 4.59 95.41
YSCal10 4.91 95.09 Moree1 8.67 91.33
YSCal11 2.23 97.77 Moree2 11.22 88.78
YSCal18 1.79 98.21 Okha 17.86 82.14
YSUncal0 0.00 100.00 Portobago 6.12 93.88
YSUncal3 0.00 100.00 Rochester 8.16 91.84
YSUncal10 0.00 100.00 Strathalbyn 3.57 96.43
YSUncal11 0.00 100.00 Tarlee 6.63 93.37
YSUncal18 0.00 100.00 Temora 4.59 95.41
CHRIS TomPrice 12.24 87.76
Barrax359a 0.00 100.00 Virginia 8.16 91.84
Barrax436e 0.00 100.00
Colly37aa 0.00 100.00
Colly39c8 0.00 100.00
Table 7-7: Percentage of Spectral Bands with max(h_encodedz) Larger and Smaller
than max(hz)
AVIRIS
Percentage of Spectral Bands
Hyperion
Percentage of Spectral Bands
max(h_encodedz)
> max(hz)
max(h_encodedz)
< max(hz)
max(h_encodedz)
> max(hz)
max(h_encodedz)
< max(hz)
Cuprite1 4.46 95.54 Atturbah 2.04 97.96
Cuprite2 4.02 95.98 Benoni 10.20 89.80
Cuprite3 5.80 94.20 Berrigan 2.55 97.45
Cuprite4 4.91 95.09 Boston 4.08 95.92
Jasper1 2.68 97.32 Carnarvon 3.57 96.43
Jasper2 2.68 97.32 Chesterton 3.06 96.94
Jasper3 3.57 96.43 Coolamon 4.59 95.41
Jasper4 3.57 96.43 Dubbo1 4.59 95.41
Jasper5 4.46 95.54 Dubbo2 4.59 95.41
Low1 1.79 98.21 Echuca 6.63 93.37
Low2 2.23 97.77 Edenton 5.10 94.90
Low3 3.13 96.88 Elcho 8.67 91.33
215
Low4 3.57 96.43 Goolwa 6.63 93.37
Low5 1.79 98.21 Greenland 4.59 95.41
Low6 0.89 99.11 Griffith 4.59 95.41
Low7 2.68 97.32 Heathcote 4.08 95.92
Lunar1 5.36 94.64 Inglewood1 4.08 95.92
Lunar2 3.13 96.88 Inglewood2 4.08 95.92
YSCal0 3.57 96.43 Kangaroo 2.55 97.45
YSCal3 5.36 94.64 Maizhokunggar 1.02 98.98
YSCal10 4.91 95.09 Moree1 3.06 96.94
YSCal11 0.89 99.11 Moree2 2.04 97.96
YSCal18 1.79 98.21 Okha 2.55 97.45
YSUncal0 2.68 97.32 Portobago 5.10 94.90
YSUncal3 3.13 96.88 Rochester 4.08 95.92
YSUncal10 2.68 97.32 Strathalbyn 2.04 97.96
YSUncal11 1.79 98.21 Tarlee 2.04 97.96
YSUncal18 2.23 97.77 Temora 2.55 97.45
CHRIS TomPrice 5.61 94.39
Barrax359a 0.00 100.00 Virginia 3.57 96.43
Barrax436e 0.00 100.00
Colly37aa 0.00 100.00
Colly39c8 0.00 100.00
Table 7-8: Percentage of Spectral Bands with R(h_encodedz) Larger and Smaller than
R(hz)
AVIRIS
Percentage of Spectral Bands
Hyperion
Percentage of Spectral Bands
R(h_encodedz)
> R(hz)
R(h_encodedz)
< R(hz)
R(h_encodedz)
> R(hz)
R(h_encodedz)
< R(hz)
Cuprite1 8.04 91.96 Atturbah 6.12 93.88
Cuprite2 7.14 92.86 Benoni 13.27 86.73
Cuprite3 10.27 89.73 Berrigan 6.12 93.88
Cuprite4 7.59 92.41 Boston 2.55 97.45
Jasper1 5.80 94.20 Carnarvon 7.14 92.86
Jasper2 7.14 92.86 Chesterton 4.59 95.41
Jasper3 6.70 93.30 Coolamon 10.20 89.80
Jasper4 5.80 94.20 Dubbo1 8.67 91.33
Jasper5 7.14 92.86 Dubbo2 8.67 91.33
Low1 4.91 95.09 Echuca 12.24 87.76
Low2 4.91 95.09 Edenton 2.55 97.45
Low3 5.36 94.64 Elcho 11.22 88.78
Low4 6.70 93.30 Goolwa 11.22 88.78
Low5 3.13 96.88 Greenland 7.14 92.86
Low6 3.57 96.43 Griffith 7.14 92.86
Low7 6.70 93.30 Heathcote 5.61 94.39
Lunar1 7.59 92.41 Inglewood1 8.67 91.33
Lunar2 5.80 94.20 Inglewood2 8.16 91.84
YSCal0 7.14 92.86 Kangaroo 3.06 96.94
YSCal3 8.48 91.52 Maizhokunggar 2.04 97.96
YSCal10 6.70 93.30 Moree1 5.61 94.39
YSCal11 1.34 98.66 Moree2 6.12 93.88
YSCal18 4.02 95.98 Okha 4.08 95.92
YSUncal0 8.93 91.07 Portobago 8.16 91.84
YSUncal3 10.71 89.29 Rochester 7.65 92.35
YSUncal10 9.82 90.18 Strathalbyn 7.65 92.35
YSUncal11 2.68 97.32 Tarlee 7.14 92.86
YSUncal18 6.70 93.30 Temora 7.14 92.86
216
CHRIS TomPrice 8.16 91.84
Barrax359a 0.00 100.00 Virginia 6.63 93.37
Barrax436e 0.00 100.00
Colly37aa 1.61 98.39
Colly39c8 0.00 100.00
From the analysis on the 3D image cube presented in Table 7-1 to Table 7-3, the
min(H_encoded) have negative value and smaller than the min(H) and the
max(H_encoded) values are larger than the max(H). The spectral band analysis has
shown a slightly different pattern on the maximum and the minimum samples in each
band. Table 7-6 shows that the min(h_encodedz) is smaller than the min(hz) in most of the
spectral bands. The smallest percentage is 82.14% from Okha Hyperion image. Table
7-7, on the other hand, shows that the max(h_encodedz) is smaller than the max(hz) in
most of the spectral bands. The smallest percentage of 89.80% comes from the Benoni
Hyperion image. The two characteristics have resulted in a smaller range of samples in
the encoded output, R(h_encodedz) , in most of the spectral bands, as shown in Table 7-8.
Therefore, it can be generalised that the Integer KLT can actually reduce the sample
values from the input image and also decrease its range in almost all spectral bands
besides having the capability to decorrelate the spectral redundancy as well as
representing the output samples in integer form. From the analysis, it has been found that
the remaining spectral bands with a larger sample range are from the first few spectral
bands that have visible features in it, e.g. Figure 7-5(a) – (c).
As an example, the histograms of the encoded output of the Jasper3 AVIRIS image are
shown in Figure 7-6(a) to (f) from its 1st, 4
th, 8
th, 100
th, 200
th, and 224
th bands,
respectively. The histograms in Figure 7-6 are in the shape of a Gaussian-like
distribution, which holds for all the other spectral bands in any encoded output of any of
the hyperspectral images. This characteristic further emphasise that the negative samples
in each spectral band output have a similar impact as the positive samples on the
performance of the overall compression system, being roughly centred around the 0
sample value.
217
(a) 1st Band (b) 4th Band
(c) 8th Band (d) 100th Band
(e) 200th Band (f) 224th Band
Figure 7-6: Integer KLT Output Histograms for Several Spectral Bands – Jasper3
In all the hyperspectral images, the spectral bands with smaller R(h_encodedz) values,
produced smaller size (in kB) when further compressed using spatial JPEG2000 in
comparison to the remaining few spectral bands with larger R(h_encodedz) values. This
shows that the H_encoded output is a good candidate to be tested as the G variable in
(7-1). The test however needs to include the negative samples along with the positive
sample due to the reason pointed out in this section.
-1 0 1 2 3 4
x 104
0
2000
4000
6000
Sample Value, h_encoded1
Fre
qu
ency
-4000 -2000 0 20000
5000
10000
Sample Value, h_encoded4
Fre
qu
ency
-1000 -500 0 500 1000 15000
5000
10000
15000
Sample Value, h_encoded8
Fre
qu
ency
-20 0 20 40 600
0.5
1
1.5
2
x 104
Sample Value, h_encoded100
Fre
qu
ency
-10 -5 0 5 10 150
1
2
3
4
x 104
Sample Value, h_encoded200
Fre
qu
ency
-20 -15 -10 -5 0 50
2
4
6
x 104
Sample Value, h_encoded224
Fre
qu
ency
218
7.3 Estimating the Best Clustering Level in Integer KLT
from the Best Compression Ratio
7.3.1 Empirical Investigation
As shown in Section 7.2 above the H_encoded output is a good candidate to be tested as
the G variable in (7-1). The test needs to include the negative samples along with the
positive sample due to the reason pointed out in the section.
The modulus summation of the samples in the H_encoded output from its each input
spectral band is used as the G variable in (7-1), as shown in (7-2) below. The correlation
(G, V) was calculated for each of the hyperspectral images as shown in Table 7-9 and
Table 7-10 for the tiling level t2 = 1 and 4, respectively. Strong correlation figures have
been recorded with a value greater than 0.9 for all the hyperspectral images in both of the
tiling levels. Slightly higher correlation values have been produced for the tiling level t2 =
4 in comparison to the t2 = 1. Figure 7-7 to Figure 7-11 show the correlation plots of the
size of the compressed image in each band (in kB) versus the modulus summation of the
samples in each band for the Jasper3 AVIRIS image at tiling level t2 = 1 (i.e. 512×512)
and clustering levels c = 1, 2, 4, 7, and 8, respectively.
Correlation(𝐺, 𝑉) =∑(𝑔𝑧 − �̅�)(𝑣𝑧 − �̅�)
√∑(𝑔𝑧 − �̅�)2(𝑣𝑧 − �̅�)2
Where,
G = (g1 = ∑ |𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑|𝑚,𝑚,10≤𝑚,𝑚<𝑀 , …, gZ = ∑ |𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑|𝑚,𝑚,𝑍0≤𝑚,𝑚<𝑀
i.e. the modulus summation of samples in each band
V = (v1 = band_size1, v2 = band_size2, …, vZ = band_sizez),
i.e. size of each band in kB
�̅� = mean of G
�̅� = mean of V
(7-2)
Table 7-9: Correlation(G, V) for the First Five Different Levels of Clustering, c
Possible at Tiling Level t2 = 1
AVIRIS Correlation(𝐺, 𝑉)
Hyperion Correlation(𝐺, 𝑉)
c = 1 c = 2 c = 4 c = 7 c = 8 c = 1 c = 2 c = 4 c = 7 c = 14
Cuprite1 0.941 0.934 0.949 0.935 0.948 Atturbah 0.947 0.936 0.941 0.950 0.941
Cuprite2 0.934 0.937 0.932 0.943 0.934 Benoni 0.937 0.942 0.937 0.945 0.938
Cuprite3 0.931 0.944 0.937 0.943 0.938 Berrigan 0.940 0.944 0.949 0.937 0.947
Cuprite4 0.943 0.930 0.948 0.946 0.945 Boston 0.945 0.949 0.931 0.937 0.943
Jasper1 0.946 0.938 0.942 0.942 0.941 Carnarvon 0.936 0.935 0.944 0.942 0.942
Jasper2 0.936 0.935 0.939 0.935 0.946 Chesterton 0.943 0.931 0.937 0.939 0.935
Jasper3 0.950 0.931 0.941 0.932 0.946 Coolamon 0.944 0.947 0.936 0.945 0.933
219
Jasper4 0.950 0.931 0.949 0.930 0.944 Dubbo1 0.947 0.933 0.942 0.937 0.946
Jasper5 0.946 0.941 0.948 0.948 0.943 Dubbo2 0.940 0.940 0.948 0.937 0.939
Low1 0.933 0.934 0.934 0.931 0.932 Echuca 0.949 0.931 0.949 0.934 0.943
Low2 0.942 0.949 0.937 0.938 0.950 Edenton 0.942 0.944 0.937 0.942 0.946
Low3 0.949 0.944 0.950 0.945 0.937 Elcho 0.930 0.932 0.949 0.943 0.935
Low4 0.943 0.935 0.936 0.944 0.941 Goolwa 0.938 0.932 0.935 0.935 0.937
Low5 0.938 0.942 0.945 0.942 0.941 Greenland 0.933 0.937 0.932 0.948 0.932
Low6 0.942 0.940 0.932 0.944 0.950 Griffith 0.949 0.938 0.931 0.937 0.945
Low7 0.937 0.949 0.937 0.948 0.939 Heathcote 0.946 0.941 0.944 0.948 0.931
Lunar1 0.938 0.934 0.933 0.936 0.945 Inglewood1 0.936 0.931 0.934 0.944 0.944
Lunar2 0.946 0.944 0.930 0.947 0.948 Inglewood2 0.948 0.942 0.931 0.948 0.946
YSCal0 0.924 0.925 0.933 0.930 0.932 Kangaroo 0.936 0.941 0.950 0.944 0.947
YSCal3 0.925 0.924 0.937 0.935 0.939 Maizhokunggar 0.940 0.943 0.936 0.933 0.940
YSCal10 0.922 0.924 0.922 0.930 0.924 Moree1 0.937 0.946 0.946 0.943 0.933
YSCal11 0.938 0.922 0.921 0.931 0.935 Moree2 0.930 0.941 0.936 0.949 0.950
YSCal18 0.926 0.924 0.927 0.924 0.930 Okha 0.936 0.946 0.948 0.942 0.948
YSUncal0 0.938 0.933 0.922 0.928 0.921 Portobago 0.949 0.941 0.945 0.942 0.931
YSUncal3 0.930 0.929 0.940 0.936 0.930 Rochester 0.939 0.943 0.940 0.937 0.949
YSUncal10 0.938 0.923 0.928 0.939 0.938 Strathalbyn 0.947 0.947 0.937 0.942 0.947
YSUncal11 0.934 0.932 0.927 0.939 0.922 Tarlee 0.949 0.943 0.934 0.943 0.931
YSUncal18 0.935 0.933 0.937 0.928 0.935 Temora 0.938 0.943 0.949 0.946 0.940
CHRIS c = 1 c = 2 TomPrice 0.945 0.938 0.949 0.950 0.947
Barrax359a 0.948 0.941 Virginia 0.938 0.939 0.935 0.946 0.948
Barrax436e 0.939 0.934
Colly37aa 0.936 0.943
Colly39c8 0.936 0.944
Table 7-10: Correlation(G, V) for the First Five Different Levels of Clustering, c
Possible at Tiling Level t2 = 4
AVIRIS Correlation(𝐺, 𝑉)
Hyperion Correlation(𝐺, 𝑉)
c = 1 c = 2 c = 4 c = 7 c = 8 c = 1 c = 2 c = 4 c = 7 c = 14
Cuprite1 0.947 0.938 0.954 0.941 0.955 Atturbah 0.952 0.942 0.946 0.954 0.946
Cuprite2 0.940 0.941 0.937 0.948 0.938 Benoni 0.943 0.947 0.941 0.950 0.942
Cuprite3 0.934 0.951 0.941 0.947 0.942 Berrigan 0.944 0.950 0.954 0.941 0.951
Cuprite4 0.947 0.936 0.953 0.951 0.950 Boston 0.948 0.953 0.934 0.942 0.947
Jasper1 0.951 0.943 0.949 0.947 0.945 Carnarvon 0.940 0.939 0.948 0.947 0.948
Jasper2 0.942 0.939 0.942 0.938 0.950 Chesterton 0.947 0.937 0.940 0.944 0.938
Jasper3 0.954 0.935 0.944 0.937 0.949 Coolamon 0.948 0.950 0.939 0.948 0.937
Jasper4 0.953 0.937 0.955 0.937 0.949 Dubbo1 0.950 0.936 0.947 0.944 0.953
Jasper5 0.953 0.946 0.953 0.952 0.947 Dubbo2 0.944 0.945 0.952 0.942 0.943
Low1 0.938 0.938 0.940 0.934 0.937 Echuca 0.953 0.936 0.953 0.937 0.950
Low2 0.949 0.953 0.943 0.944 0.956 Edenton 0.946 0.950 0.943 0.945 0.952
Low3 0.956 0.947 0.954 0.952 0.942 Elcho 0.936 0.937 0.955 0.947 0.941
Low4 0.948 0.940 0.942 0.949 0.944 Goolwa 0.942 0.937 0.942 0.942 0.941
Low5 0.943 0.947 0.952 0.947 0.947 Greenland 0.937 0.942 0.939 0.954 0.937
Low6 0.948 0.945 0.937 0.950 0.954 Griffith 0.954 0.944 0.935 0.941 0.948
Low7 0.942 0.955 0.942 0.954 0.945 Heathcote 0.950 0.946 0.949 0.951 0.936
Lunar1 0.943 0.939 0.937 0.942 0.950 Inglewood1 0.940 0.935 0.938 0.948 0.951
Lunar2 0.950 0.950 0.937 0.953 0.954 Inglewood2 0.954 0.948 0.937 0.952 0.950
YSCal0 0.928 0.930 0.939 0.934 0.936 Kangaroo 0.939 0.944 0.954 0.950 0.952
YSCal3 0.929 0.930 0.940 0.942 0.942 Maizhokunggar 0.945 0.948 0.940 0.938 0.946
YSCal10 0.928 0.929 0.926 0.935 0.927 Moree1 0.943 0.951 0.952 0.949 0.936
YSCal11 0.941 0.927 0.927 0.937 0.941 Moree2 0.935 0.946 0.939 0.952 0.953
YSCal18 0.933 0.927 0.933 0.928 0.935 Okha 0.941 0.951 0.954 0.946 0.951
YSUncal0 0.942 0.938 0.925 0.934 0.927 Portobago 0.952 0.947 0.951 0.948 0.934
YSUncal3 0.937 0.936 0.945 0.940 0.933 Rochester 0.944 0.948 0.946 0.943 0.954
220
YSUncal10 0.943 0.928 0.934 0.942 0.944 Strathalbyn 0.952 0.951 0.943 0.945 0.951
YSUncal11 0.939 0.936 0.934 0.944 0.927 Tarlee 0.956 0.948 0.940 0.950 0.935
YSUncal18 0.941 0.939 0.941 0.934 0.940 Temora 0.942 0.948 0.955 0.951 0.944
CHRIS c = 1 c = 2 TomPrice 0.949 0.943 0.954 0.953 0.952
Barrax359a 0.954 0.945 Virginia 0.941 0.945 0.938 0.951 0.954
Barrax436e 0.945 0.941
Colly37aa 0.941 0.950
Colly39c8 0.940 0.949
Figure 7-7: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 1 (512×512×224)
Figure 7-8: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 2 (512×512×112)
Figure 7-9: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 4 (512×512×56)
0
100
200
300
400
500
3E+12 5E+12 7E+12 9E+12
Co
mp
ress
ed S
ize
per
Ba
nd
(k
B)
|Encoded Output Sample Summation per Band|
0
100
200
300
400
500
3E+12 5E+12 7E+12 9E+12
Co
mp
ress
ed S
ize
per
Ba
nd
(k
B)
|Encoded Output Sample Summation per Band|
0
100
200
300
400
500
3E+12 5E+12 7E+12 9E+12
Co
mp
ress
ed S
ize
per
Ban
d (
kB
)
|Encoded Output Sample Summation per Band|
221
Figure 7-10: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 7 (512×512×32)
Figure 7-11: Plot of Compressed Size per Band (kB) vs. Modulus Output Sample per
Band – Jasper3 at t2 = 1, c = 8 (512×512×28)
7.3.2 Clustering Level Estimation using Encoded Image Output
Based on the correlation results in Section 7.3.1 above, the H_encoded output from the
first five clustering levels can be used for the estimation of the clustering level �̃�. For the
best volumetric CR , the smallest compressed file among the clustering levels is selected.
Similar to that, the clustering level with the smallest modulus summation of samples are
selected to be the clustering level �̃� as follows:
Estimated clustering level �̃�
= min(( ∑ ∑ |𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑|𝑧,𝑚𝑚
0≤𝑚𝑚<𝑀𝑀0≤𝑧<𝑍
)
1
, … , ( ∑ ∑ |𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑|𝑧,𝑚𝑚
0≤𝑚𝑚<𝑀𝑀0≤𝑧<𝑍
)
5
)
Where the superscript denotes the clustering level 1 to 5
(7-3)
The estimated clustering levels �̃� of all the hyperspectral images are quite similar to the
clustering levels �̃� reported in Section 4.7.2 and Section G.5 from Appendix G, i.e.
volumetric CR with fixed sampling. The comparison of the estimated and the actual
0
100
200
300
400
500
3E+12 5E+12 7E+12 9E+12
Co
mp
ress
ed S
ize
per
Ba
nd
(k
B)
|Encoded Output Sample Summation per Band|
0
100
200
300
400
500
3E+12 8E+12 1.3E+13
Co
mp
ress
ed S
ize
per
Ba
nd
(k
B)
|Encoded Output Sample Summation per Band|
222
clustering levels �̃� is shown in Table 7-11 and Table 7-12 for tiling levels t2 = 1 and 4,
respectively.
Table 7-11: Actual vs Estimated Clustering Levels �̃� for Tiling Level t2 = 1 using
H_encoded (Volumetric CR)
AVIRIS
Clustering Level, �̃�
(Volumetric CR) Hyperion
Clustering Level, �̃�
(Volumetric CR)
Actual Estimated Actual Estimated
Cuprite1 2 2 Atturbah 4 4
Cuprite2 2 2 Benoni 4 4
Cuprite3 1 1 Berrigan 4 4
Cuprite4 2 2 Boston 2 4
Jasper1 1 2 Carnarvon 4 4
Jasper2 1 1 Chesterton 4 7
Jasper3 1 1 Coolamon 4 4
Jasper4 1 1 Dubbo1 4 4
Jasper5 1 1 Dubbo2 4 4
Low1 1 1 Echuca 4 4
Low2 1 1 Edenton 4 4
Low3 2 2 Elcho 4 4
Low4 1 1 Goolwa 4 4
Low5 1 1 Greenland 4 4
Low6 1 1 Griffith 4 4
Low7 1 1 Heathcote 4 4
Lunar1 2 2 Inglewood1 4 4
Lunar2 2 2 Inglewood2 4 4
YSCal0 1 1 Kangaroo 4 4
YSCal3 2 2 Maizhokunggar 4 4
YSCal10 4 4 Moree1 4 4
YSCal11 2 2 Moree2 4 4
YSCal18 1 2 Okha 4 4
YSUncal0 1 1 Portobago 4 4
YSUncal3 1 1 Rochester 4 4
YSUncal10 2 2 Strathalbyn 4 4
YSUncal11 1 1 Tarlee 4 4
YSUncal18 2 2 Temora 4 4
CHRIS TomPrice 4 4
Barrax359a 2 2 Virginia 4 4
Barrax436e 2 2
Colly37aa 1 2
Colly39c8 1 2
Table 7-12: Actual vs Estimated Clustering Levels �̃� for Tiling Level t2 = 4 using
H_encoded (Volumetric CR)
AVIRIS
Clustering Level, �̃�
(Volumetric CR) Hyperion
Clustering Level, �̃�
(Volumetric CR)
Actual Estimated Actual Estimated
Cuprite1 2 2 Atturbah 7 7
Cuprite2 2 2 Benoni 4 4
Cuprite3 2 2 Berrigan 4 7
Cuprite4 4 4 Boston 4 4
Jasper1 2 2 Carnarvon 7 7
Jasper2 2 2 Chesterton 7 7
223
Jasper3 2 2 Coolamon 4 4
Jasper4 2 2 Dubbo1 4 4
Jasper5 2 4 Dubbo2 4 4
Low1 2 2 Echuca 4 4
Low2 2 2 Edenton 4 4
Low3 2 2 Elcho 14 14
Low4 2 2 Goolwa 4 4
Low5 2 2 Greenland 4 4
Low6 2 2 Griffith 4 4
Low7 2 2 Heathcote 7 14
Lunar1 2 2 Inglewood1 4 4
Lunar2 2 2 Inglewood2 7 7
YSCal0 2 2 Kangaroo 7 7
YSCal3 2 2 Maizhokunggar 4 4
YSCal10 7 7 Moree1 4 4
YSCal11 2 2 Moree2 7 7
YSCal18 2 2 Okha 7 7
YSUncal0 2 2 Portobago 4 4
YSUncal3 2 2 Rochester 4 4
YSUncal10 7 7 Strathalbyn 4 4
YSUncal11 2 2 Tarlee 7 7
YSUncal18 2 2 Temora 7 7
CHRIS TomPrice 7 7
Barrax359a 2 2 Virginia 4 4
Barrax436e 2 2
Colly37aa 1 1
Colly39c8 1 2
As it can be observed from Table 7-11 and Table 7-12, by using the H_encoded output,
the correct clustering level c ̃ at tiling level t2 = 1 was accurately detected for 56 out of 62
hyperspectral images (90.3%) with the accuracy being slightly improved to 91.9% (57
out of 62) at the tiling level t2 = 4.
7.3.3 Algorithm for Integer KLT Clustering Level Estimation
Referring to Figure 7-1 and Figure 7-2, using the H_encoded output would mean that the
whole Integer KLT algorithm at five different clustering levels needs to be tested. This is
not appropriate for two reasons: (i) the total complexity of the system will be increased
by the estimation process and (2) the estimation is based on the output from the
algorithm. However, it was found that the absolute H_encoded output is almost equal to
the product of the absolute eigenvector A and the absolute centred-mean of the input
image H, i.e. H_adjust = H – RoundedMean, as shown in (7-4) below. This is due to the
similarity of the eigenvector A and the product of P, L, U and S, as shown in (3-18).
224
|𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑍×𝑀𝑀| ≈ |𝐴𝑍×𝑍| × |𝐻_𝑎𝑑𝑗𝑢𝑠𝑡𝑍×𝑀𝑀|*
where,
𝐻_𝑎𝑑𝑗𝑢𝑠𝑡𝑍×𝑀𝑀 = [ℎ𝑧,𝑚 − 𝑟𝑜𝑢𝑛𝑑𝑒𝑑𝑚𝑒𝑎𝑛𝑧]
with 0 ≤ z < Z ; 0 ≤ m < MM
(7-4)
Using the centred-mean of the input image H, i.e. H_adjust in (7-4), makes the whole
estimation process much simpler and less complex, since the PLUS factorisation and the
application of the PLUS matrices are avoided. However, the multiplication operation in
the right side of (7-4) is still computationally intensive with complexity of O(Z2MM). In
addition the number of columns (i.e. MM from the 2D Z×MM variable) can be reduced
while maintaining the performance achieved by the method employing the H_encoded
variable, which was exemplified by Table 7-11 and Table 7-12. It was found empirically
based on numerical experimentation involving all AVIRIS, Hyperion and CHRIS test
images that the number of columns MM can be reduced to 14, which are selected from
the first 14 spatial locations (m, m) with the highest modulus summation values across the
Z number of spectral bands. Similar to the method using the H_encoded output, the
multiplications in (7-4), which are performed only over 14 spatial locations, are summed
together and compared with the result from the other clustering levels. The clustering
level with the smallest summation value is selected as the estimated clustering level �̃�.
The steps to estimate the clustering level �̃� in Figure 7-2 are upgraded with the remaining
steps to finish the encoding process, as shown in Figure 7-12. Note that when tiling is
involved, the Steps 1 to 3 until the multiplication of A and H_adjust have to be performed
individually and summed together as Totalc, as illustrated in Figure 7-12. This is due to
the fact that each sub-cube (with or without tiling) has to be encoded individually as
discussed in Section 4.3. Note also that the estimated clustering level �̃� values, shown in
Table 7-11 and Table 7-12 are the same when any of the following variables are used in
the estimation process: (i) the encoded output |𝐻_𝑒𝑛𝑐𝑜𝑑𝑒𝑑𝑍×𝑀𝑀| in the left side of (7-4);
(ii) the 𝐻_𝑎𝑑𝑗𝑢𝑠𝑡𝑍×𝑀𝑀 in the right side of (7-4); and (iii) the reduced spatial size
𝐻_𝑎𝑑𝑗𝑢𝑠𝑡𝑍×14.
* As outlined in Section 3.1.1, the 3D variable here is arranged in a 2D form, Z×MM (i.e. Z no. of rows and
MM no. of columns)
225
Start1. Get RoundedMean224.
H_adjust224×MM –= RoundedMean224
2. Get C224×224 of
H224×MM
Finish
HM×M×224 = input
c = 1 c = 2 c = 4 c = 7
Use C224×224
Extract C1112×112 and
C2112×112 from the
main diagonal of
C224×224
Perform Step 3 to
get A1224×224
Extract C156×56, to
C456×56 from the
main diagonal of
C224×224
Extract C132×32, to
C732×32 from the
main diagonal of
C224×224
c = 8
Extract C128×28, to
C828×28 from the
main diagonal of
C224×224
Perform Step 3 to get
A1112×112 and A2
112×112
Perform Step 3 to
get A156×56 to A4
56×56
Perform Step 3 to
get A132×32 to A7
32×32
Perform Step 3 to
get A128×28 to A8
28×28
Combine A1112×112
and A2112×112 at the
main diagonal to
form A2224×224 with
zeroes in the
remaining location
Combine A156×56 to
A456×56 at the main
diagonal to form
A4224×224 with zeroes
in the remaining
location
Combine A132×32 to
A732×32 at the main
diagonal to form
A7224×224 with zeroes
in the remaining
location
Combine A128×28 to
A828×28 at the main
diagonal to form
A8224×224 with zeroes
in the remaining
location
Perform modulus summation on each spatial location (m, m) across different z in H_adjustZ×MM. Select 14 spatial locations
with the highest summation value to form a smaller 2D H_adjust224×14.
H_adjust1224×14 = H_adjust2
224×14 = H_adjust4224×14 = H_adjust7
224×14 = H_adjust8224×14 = H_adjust224×14
Sum1224×14 =
|A1224×224|×
|H_adjust1224×14|
Sum2224×14 =
|A2224×224|×
|H_adjust2224×14|
Sum4224×14 =
|A4224×224|×
|H_adjust4224×14|
Sum7224×14 =
|A7224×224|×
|H_adjust7224×14|
Sum8224×14 =
|A8224×224|×
|H_adjust8224×14|
Total1 = ∑Sum1224×14 Total2 = ∑Sum2
224×14 Total4 = ∑Sum4224×14 Total7 = ∑Sum7
224×14 Total8 = ∑Sum8224×14
Select the clustering level with the smallest Totalc value
Perform Step 4 on the selected Ac followed by Step 5
∑Sumc224×14 from
other sub-tiles
(if t2 > 1)
Figure 7-12: Block Diagram for Integer KLT with Clustering Level �̃� Estimation
Capability for an AVIRIS Image
Note that the estimation of clustering level �̃� discussed so far is with regards to the
volumetric CR. To obtain the clustering level �̃� on the overall CR, which includes the
overhead information as well as the compressed data, the percentage of the overhead size
over the compressed image size is obtained averagely for each clustering and tiling
strategy. These average percentage values need to be calculated beforehand becoming
constants in the estimation process. Each of the average percentages is added to each of
the terms ∑𝑆𝑢𝑚224×14𝑐 , shown in Figure 7-12, before the smallest value is picked, which
marks the clustering level �̃�.
226
The overhead information size is fixed by the overhead information compaction method,
proposed in Section 4.3.3 as listed in Table 4-6 and Table 4-8. The overhead size for the
CHRIS dataset is shown in Table 7-13 below. The percentage of the overhead
information size (kB) over the compressed image (kB) is shown in Table 7-14 (AVIRIS),
Table 7-15 (Hyperion) and Table 7-16 (CHRIS).
Table 7-13: Integer KLT, Clustering and Tiling – Total Size of Overhead Information
(in kB, with Compaction) – CHRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(62)
2
(31)
372×372 (1) 60.06 30.03
186×186 (4) 240.25 120.13
93×93 (16) 961.00 480.50
Table 7-14: Percentage of Overhead Size over Compressed Data – AVIRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
512×512 (1) 2.27 1.14 0.56 0.32 0.28
256×256 (4) 8.98 4.53 2.26 1.28 1.11
Table 7-15: Percentage of Overhead Size over Compressed Data – Hyperion
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
256×256 (1) 5.82 2.94 1.48 0.84 0.42
128×128 (4) 22.67 11.61 5.86 3.35 1.67
Table 7-16: Percentage of Overhead Size over Compressed Data – CHRIS
c (𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(62)
2
(31)
372×372 (1) 0.51 0.26
186×186 (4) 2.05 1.04
7.4 Performance Evaluation
The estimation of the clustering levels �̃� of the test hyperspectral images, using the
sampled H_adjust variable, when including the overhead information are shown in Table
7-17 and Table 7-18 at the tiling levels t2 = 1 and 4. The tables also include the actual
227
clustering level �̃� observed from Section 4.7.3.1 and Section G.6 of Appendix G i.e.
including the overhead information. The shaded cells denote the estimations that are not
the same as the actual value of �̃�. Note that the first five clustering levels selected for the
estimation process (i.e. c = 1, 2, 4, 7 and 8 for AVIRIS and c = 1, 2, 4, 7 and 14 for
Hyperion) are next to each other where c = 1 is the lowest clustering level, as shown
earlier in Table 4-3.
Table 7-17: Actual vs Estimated Clustering Levels �̃� for Tiling Level t2 = 1 using
Sampled H_adjust (CR with Overhead)
AVIRIS
Clustering Level, �̃�
(CR with Overhead) Hyperion
Clustering Level, �̃�
(CR with Overhead)
Actual Estimated Actual Estimated
Cuprite1 4 4 Atturbah 7 7
Cuprite2 4 4 Benoni 7 7
Cuprite3 4 4 Berrigan 14 14
Cuprite4 4 4 Boston 4 7
Jasper1 2 4 Carnarvon 7 7
Jasper2 2 2 Chesterton 7 14
Jasper3 2 2 Coolamon 7 7
Jasper4 2 2 Dubbo1 7 7
Jasper5 2 2 Dubbo2 7 7
Low1 2 2 Echuca 7 7
Low2 2 2 Edenton 4 7
Low3 4 4 Elcho 14 14
Low4 4 4 Goolwa 7 7
Low5 4 4 Greenland 7 7
Low6 2 2 Griffith 7 7
Low7 2 2 Heathcote 7 7
Lunar1 4 4 Inglewood1 7 7
Lunar2 4 4 Inglewood2 14 14
YSCal0 2 2 Kangaroo 7 7
YSCal3 2 4 Maizhokunggar 7 7
YSCal10 7 7 Moree1 14 14
YSCal11 2 4 Moree2 14 14
YSCal18 2 4 Okha 14 14
YSUncal0 2 2 Portobago 7 7
YSUncal3 2 2 Rochester 7 7
YSUncal10 7 7 Strathalbyn 7 7
YSUncal11 2 2 Tarlee 14 14
YSUncal18 2 4 Temora 7 7
CHRIS TomPrice 14 14
Barrax359a 2 2 Virginia 7 7
Barrax436e 2 2
Colly37aa 2 2
Colly39c8 2 2
228
Table 7-18: Actual vs Estimated Clustering Levels �̃� for Tiling Level t2 = 4 using
Sampled H_adjust (CR with Overhead)
AVIRIS
Clustering Level, �̃�
(CR with Overhead) Hyperion
Clustering Level, �̃�
(CR with Overhead)
Actual Estimated Actual Estimated
Cuprite1 7 7 Atturbah 14 14
Cuprite2 7 7 Benoni 14 14
Cuprite3 7 7 Berrigan 14 14
Cuprite4 7 7 Boston 14 14
Jasper1 4 4 Carnarvon 14 14
Jasper2 4 4 Chesterton 14 14
Jasper3 4 4 Coolamon 14 14
Jasper4 4 4 Dubbo1 14 14
Jasper5 4 7 Dubbo2 14 14
Low1 4 4 Echuca 14 14
Low2 4 4 Edenton 14 14
Low3 4 4 Elcho 14 14
Low4 4 4 Goolwa 14 14
Low5 4 4 Greenland 14 14
Low6 4 4 Griffith 14 14
Low7 4 4 Heathcote 14 14
Lunar1 7 7 Inglewood1 14 14
Lunar2 7 7 Inglewood2 14 14
YSCal0 4 4 Kangaroo 14 14
YSCal3 4 4 Maizhokunggar 14 14
YSCal10 7 8 Moree1 14 14
YSCal11 4 4 Moree2 14 14
YSCal18 4 4 Okha 14 14
YSUncal0 7 7 Portobago 14 14
YSUncal3 7 7 Rochester 14 14
YSUncal10 7 8 Strathalbyn 14 14
YSUncal11 7 7 Tarlee 14 14
YSUncal18 7 7 Temora 14 14
CHRIS TomPrice 14 14
Barrax359a 2 2 Virginia 14 14
Barrax436e 2 2
Colly37aa 2 2
Colly39c8 2 2
The execution time performance of the Integer KLT algorithm along with the proposed
estimation method is not unique since it depends on the clustering level �̃� that is being
estimated. However, the execution time has been measured only during the estimation
process (i.e. without Step 4 and 5 in Figure 7-12). For the parallel Integer KLT
implementations (i.e. desktop and the TMS320C6678L DSP), the estimation has been
implemented serially (outside the #pragma omp parallel).
Table 7-19 to Table 7-21 show the estimation execution time for the non-parallelised
desktop implementation, for the AVIRIS, Hyperion and CHRIS datasets, respectively.
Similarly, Table 7-22 to Table 7-24 show the execution time for the parallelised desktop
229
implementation and Table 7-25 to Table 7-27 are for the TMDSEVM6678L EVM
embedded implementation. The OMAP-L137 EVM could not be tested due to the
memory size problem that prevents the implementations of the first few clustering levels.
Table 7-19: Average Execution Time for the Estimation of �̃� in the Non-Parallelised
Desktop System – AVIRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
512×512 (1) 2.15
256×256 (4) 8.45
Table 7-20: Average Execution Time for the Estimation of �̃� in the Non-Parallelised
Desktop System – Hyperion
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
256×256 (1) 0.49
128×128 (4) 1.90
Table 7-21: Average Execution Time for the Estimation of �̃� in the Non-Parallelised
Desktop System – CHRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
372×372 (1) 0.13
186×186 (4) 0.49
Table 7-22: Average Execution Time for the Estimation of �̃� in the Parallelised
Desktop System – AVIRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
512×512 (1) 2.60
256×256 (4) 9.83
Table 7-23: Average Execution Time for the Estimation of �̃� in the Parallelised
Desktop System – Hyperion
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
256×256 (1) 0.77
128×128 (4) 2.98
Table 7-24: Average Execution Time for the Estimation of �̃� in the Parallelised
Desktop System – CHRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
372×372 (1) 0.15
186×186 (4) 0.58
Table 7-25: Average Execution Time for the Estimation of �̃� in the TMDSEVM6678L
EVM – AVIRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
512×512 (1) 22.92
256×256 (4) 88.68
230
Table 7-26: Average Execution Time for the Estimation of �̃� in the TMDSEVM6678L
EVM – Hyperion
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
256×256 (1) 5.27
128×128 (4) 20.86
Table 7-27: Average Execution Time for the Estimation of �̃� in the TMDSEVM6678L
EVM – CHRIS
Sub-tile Size (𝑡2) Estimation Execution Time (seconds)
372×372 (1) 0.73
186×186 (4) 2.85
7.5 Discussion
Table 7-17 (tiling level t2 = 1) shows the estimated best clustering levels �̃� for the overall
best CR, including the overhead information, when the sampled H_adjust characteristic is
used. 54 out of the 62 images, or 87.1% produce the same value of �̃� obtained in Section
4.7.3.1 and Section G.6 of Appendix G (with overhead information). Compared to Table
7-11, which uses the H_encoded variable for the volumetric CR without the overhead
(90.3% of accuracy), the performance in Table 7-17 is lower due to the inclusion of the
overhead information.
As mentioned previously, the overhead is included by taking the percentage of the
overhead over the compressed image and added to the final summation of the A-H_adjust
multiplication. This step is unavoidable, nonetheless, the difference in the estimation
performance of 3.2% is quite small. All the mismatched values of �̃� are next to the actual
�̃� values, which are one level higher up and could give a better execution time. This also
applies to the three cases of mismatched �̃� values in Table 7-18 (for tiling level t2 = 4)
showing accuracy of 95.2% which is better than the results in Table 7-17. The estimated
clustering levels �̃� for all the CHRIS images at both tiling levels are 100 % accurate. This
is mainly due to the limitation of the possible clustering levels, which is based on the
total number of spectral bands Z. At the tiling level t2 = 4 (i.e. Table 7-18), the clustering
levels �̃� for all the Hyperion images have been accurately estimated; with �̃� = 14.
The execution time of the clustering level estimation is low at the tiling level t2 = 1, as
shown in Table 7-19 to Table 7-24 (desktop implementation) and in Table 7-25 to Table
7-27 (TMDSEVM6678L EVM). At the tiling level t2 = 4 the estimation execution time
almost quadruples compared to t2 = 1 due to the extra processing of the additional three
231
sub-cubes involved in the tiling approach. As discussed in detail in Section 4.7.3.2, with
tiling, only the spatial component is divided while the number of spectral bands in each
sub-cube remains, which is the main factor that affects the complexity of the Integer
KLT. The estimation method is less suitable with a tiling level of t2 > 1, especially with
regards to the DSP implementation.
In each implementation, the largest estimation execution time is caused by the AVIRIS
images produce followed by Hyperion and CHRIS due to the differences in the number
of bands (AVIRIS – 224 bands, Hyperion - 196 and CHRIS - 62) as well as the spatial
size (sub-tile size). This was expected since a similar pattern was observed in Section
4.7.3.2. There is also a difference in the execution time of the non-parallelised and the
parallelised desktop implementations where the latter implementation causes a slightly
higher execution time than the former. This was observed in Section 4.7.4 and it is due to
the extra overhead in the OpenMP environment for variables synchronisation.
Generally, the estimation execution time is low due to the first two steps of the Integer
KLT algorithm being performed only once. The steps are: 1) RoundedMean calculation
along with a centred-mean computation of the input image H, and 2) covariance
calculation that take around 3.7% and 0.6%, respectively of the overall execution time, as
shown in Table 4-24. In addition to that, note that the PLUS factorisation (step 4) and the
implementation of the PLUS matrices to the input image (step 5) are not included since
they will be performed after the estimation process has ended.
Even though the estimation of the clustering level �̃� is based on correlation studies, it has
been shown that it is capable of estimating accurate values of �̃� with a minimum accuracy
of 87.1% on all the hyperspectral images in this study. As discussed in Section 7.1, there
are no other variables or characteristics (other than the encoded output), which have a
strong correlation with the size of each compressed spectral band. During the analysis of
the encoded image output, a discovery of an important finding was made, namely that the
bell-shaped Gaussian-like distribution of the samples in each spectral band is a key factor
for the successful estimation process. Since the Integer KLT is capable of producing such
an output, it is believed that the proposed estimation method is suitable for any
hyperspectral images.
The estimation of the clustering level �̃� increases the overall complexity of the Integer
KLT is increased, especially when tiling at t2 > 1 is required. However, depending on the
232
requirement, the estimation can benefit by a parallel multi-core implementation, where
the estimated value of �̃� determines the number of processor cores/threads that are
needed.
7.6 Conclusion
This chapter presents a novel method enabling the estimation of the best clustering level
�̃� in Integer KLT based on characteristics of the algorithm output. The method produces
a minimum accuracy of 87.1% on the hyperspectral test images used in this study. During
the mismatches, the estimated clustering level always favours the next higher level which
could produce a better execution time performance.
The output from the Integer KLT (an individual band or the whole cube) has been found
to be in the shape of a Gaussian-like distribution. This has been an important factor since
the shape confirms that both the negative and the positive samples have a similar impact
on the algorithm performance. The modulus summation of the samples of each band at
the output has been found to be having a strong correlation with the compressed image
size of each band. This has led to the use of an intermediate variable during the encoding
(i.e. H_adjust) which is almost equivalent to the actual output. It has also been found that
14 spatial locations (out of M×M) from the variable with the highest summation value
(across spectral bands) could be used, lowering the complexity significantly while
maintaining a similar accuracy to the method using the H_encoded variable.
The estimation of the clustering level �̃� produces a very low execution time but only for
the tiling level t2 = 1. Tiling at the next recommended level (i.e. t
2 = 4) simply quadruples
the execution time figures, which is very obvious in the DSP implementation. The
estimation, however, has been optimised to be a low complexity method through the re-
arrangement of steps in the Integer KLT. The estimation could be beneficial in parallel
multi-processor implementations, where the estimated value of �̃� determines the number
of processor cores/threads that need to be used. This will maximise the CR performance
and optimising the power consumption by using only the needed number of processor
cores/threads.
233
Chapter 8 Summary and Future Work
This chapter summarises the work contained in this thesis. Some suggestions for future
research are given.
8.1 Summary
Chapter 2 reviewed hyperspectral satellite missions, lossless compression algorithms as
well as the hardware/embedded implementation of the algorithms. From the survey, it has
been found that not many missions have compression on board the satellite and most of
the missions do not disclose the details in open literature. The Integer KLT (along with
the wavelet-based spatial compression) and the CCSDS-MHC algorithms have been
concluded as the current state-of-the-art for lossless hyperspectral image compression.
The compression implementation on the hardware/embedded platforms has shown that
FPGA is the most widely addressed method compared to DSP and more DSP
implementations are needed for performance assessment especially for the COTS
approach that has been adopted by SSTL to accelerate the development time.
In Chapter 3, the Integer KLT and the CCSDS-MHC algorithms are introduced and
experimented. Both algorithms have been tested with JPEG-based spatial compressors
including the JPEG2000 Part II algorithm, covering full and reduced prediction mode for
the CCSDS algorithm. The Integer KLT has shown a better spectral decorrelation
capability and slightly better CR. Lack of parallelisation attempts on the Integer KLT
along with its superior performance has made the Integer KLT become the focus of the
current study.
The CCSDS-MHC has been tested using a high performance computing platform in [25]
and has achieved real-time performance through parallelisation. It was important to
evaluate the performance of the Integer KLT on similar platforms for benchmarking
purposes. Even though parallelising from a samples (pixels) point of view is impossible
in Integer KL, parallelising based on groups of spectral bands (i.e. clusters) was seen as
promising approach. This was due to the Integer KLT (as well as KLT) being an
optimum block-based transform coding. Since the encoding is done in blocks, the
234
memory requirements of the Integer KLT are larger than the CCSDS-MHC, which is
another supporting argument for clustering.
Focusing on the Integer KLT, Chapter 4 proposed a few enhancement techniques with the
main target being to reduce the complexity and to improve its lossless CR performance.
Clustering and parallelisation of clusters are the main techniques that contribute to
complexity reduction and at the same time improve the CR. Fixed sampling is proposed
to overcome varying encoded output in random sampling during the covariance
calculation step of the Integer KLT algorithm. Overhead information compaction is
suggested and could save around 36% of compressed data and thus, improving the CR.
Hyperspectral variable sharing is also proposed in order to reduce buffer memory usage
during compression. Tiling is also introduced and has negatively affected the CR and
execution time but is believed to be beneficial for constraining error propagation.
Parallelising based on normal clustering is seen as divide and conquer technique to
reduce the complexity of the Integer KLT. Along with the fixed sampling in the
covariance calculation step, these two methods have successfully reduced the execution
time of the algorithm.
Chapter 5 proposed the Freivald’s checker to be used in the PLUS factorisation inside
Integer KLT. The variables from the PLUS factorisation have been found to be the most
vulnerable variables and could cause a large loss to the decoded image. The Freivald’s
checker algorithm was used to protect the factorisation part by using only two different,
random, non-zero and integer r vectors for the error detection part. The error correction is
performed simply by repeating the affected iterations using the pre-backup input matrix
during the beginning of each iteration and the factorisation is resumed after that with
error detection executed in each iteration. Integer KLT with the ED algorithm has been
tested and generated low execution time overhead as long as the tiling size is not too
small.
It is worth noting that the proposed ED algorithm is capable of detecting errors whenever
the left part of equation (5-4) is not equivalent to its right part, at any level. This means
that even if all bit locations are affected by errors, the ED algorithm is able to detect
them, suggesting that it is capable of multi-bit error detection.
In Chapter 6, the low-complexity Integer KLT algorithm with error detection capability is
implemented on a low power, small memory footprint (OMAP-L137 EVM) and high
235
performance with large memory (TMDSEVM6678L EVM) DSP platforms. Average
execution time and power are measured for each hyperspectral dataset as well as their
overhead due to the proposed ED algorithm; all for each of clustering and tiling levels.
Producing similar execution time pattern as its desktop counterpart, both platforms
however generate unclear pattern regarding its power figure when varying both clustering
and tiling levels. The power measurement at the DC input jack to measure the boards’
power consumption while executing the Integer KLT could also coming from the DC
adaptors that power the boards. This is believed to be the reason of the unclear patterns in
the power analysis.
The small memory footprint of the OMAP-L137 EVM has become the main limiting
factor in its execution time performance. Each sub-cube has to be read in each iteration of
clustering and tiling and this has introduced a huge delay in the overall performance.
With a larger memory, the TMDSEVM6678L EVM is capable of storing the whole
image cube and the variable sharing method proposed in this study could be used
between clusters and sub-tiles. In fact, two hyperspectral variables with the size of an
AVIRIS image (117.44 MB) could be stored in the memory along with other temporary
variables allowing to perform decoding and verification of losslessness.
Chapter 7 proposed a novel method in estimating the number of clustering level �̃� that
could give the best CR performance. The method exploits the characteristic of the
encoded output of the Integer KLT which is in the shape of Gaussian-like distribution and
lower sample ranges. The method uses the product of eigenvectors and centred-mean
input from the first five clustering levels which also almost similar to the encoded output.
Without the overhead information, 90.3% of accuracy has been recorded but has become
lower, 87.1%; with the overhead mainly due to the overhead being included is an average
percentage within the datasets. The estimation is beneficial in multi-processor
implementation where the estimated value of �̃� determined the number of processor
cores/threads that needs to be used. This will optimise the power consumption figure by
using only needed number of processor cores/threads while maximising the CR
performance.
236
8.2 Novelty Contributions
The following main novelty contributions were achieved as a result of the research
presented in this thesis:
An error detection algorithm based on the Freivald’s checker was proposed and
evaluated aiming to protect the core part of the Integer KLT algorithm from
single-bit errors. The ED algorithm has a low execution time and power
overhead, making it suitable for an embedded implementation. This is the first
time that an ED algorithm is incorporated in the Integer KLT PLUS factorisation
section, both within the parallelised and the non-parallelised versions.
A new method for estimating the best clustering level �̃� of each hyperspectral
image, corresponding to the number of processor threads/cores that should be
utilised to obtain optimum execution time performance with high CR value was
proposed and evaluated. This estimation method is aimed at guiding and
supporting the clustered-Integer KLT design and implementation process on
multi-core embedded platforms.
The benefits of the use of the clustering technique with the Integer KLT and its
parallelisation in terms of compression performance and execution time were
demonstrated for the first time. No other works so far have shown that clustering
can actually improve the CR performance. The idea of parallelising each cluster in
the clustered-Integer KLT is a novel approach, which was fully verified using
airborne and spaceborne hyperspectral imagery data.
Novel strategies for Integer KLT implementation, based on two DSP embedded
hardware platforms, including a multi-core one, were proposed and evaluated.
Due to the variable sharing approach, the use of a buffer memory could be
avoided reducing the memory usage. The performances of both implementations
were fully characterised.
In addition to the above, the following novel work was also undertaken:
A comparative analysis of the Integer KLT and the new CCSDS-MHC algorithm
in terms of CR performance and spectral decorrelation efficiency was carried out.
Comparison between the two algorithms has never been done before.
Disadvantages of using the tiling technique with the Integer KLT were identified
for the first time, i.e. reduced CR and higher execution time. Tiling, however, is
237
beneficial with regards to constraining error propagation increasing the resilience
of the algorithm to SEUs. A safe tiling range was established to minimise the
drawbacks.
A disadvantage of using the low complexity random sampling method for
covariance matrix calculation in the Integer KLT was established, which is related
to a variable output data volume. A fixed sampling method was proposed which
overcomes this issue. The proposed method, although simple, is novel and
advantageous, especially, for remote execution of the algorithm on board a
satellite.
Compaction of the overhead information generated by the Integer KLT algorithm
was proposed to improve its CR performance. This new technique has resulted in
around 36 – 37% of memory saving compared to the case without compaction.
The idea is novel and beneficial towards the implementation of the algorithm on
board a satellite.
8.2 Future Work
Based on the efforts initiated in this work, the following areas are proposed as an
additional step to further enhance the Integer KLT.
In-depth Parallelisation Analysis
The parallelised Integer KLT as proposed in this work has managed to reduce the
complexity of the algorithm. However, the main complexity still remains in the
application of the P, L, U and S TERM matrices to the hyperspectral image (around 89%
of the overall execution time). Works in [183, 231] proposed some quantisation on the
TERM matrices (L, U and S matrices) so that it can be represented as fractions with the
denominators to be a power of 2. The application of the TERMs matrices then can be
accomplished without any multiplication through multi-lifting. In this work during the
SBE analysis in the Integer KLT (Section 5.2 from Chapter 5), some error injections on
the matrices especially in the lower significant bits from the IEEE-754 Double Precision
representation has shown that the quantisation does not affect the losslessness of the
algorithm but affects the CR performance. Clearly, this might not be a good direction to
further improve the algorithm.
238
The parallelisation that has been proposed parallelised the algorithm from a cluster point
of view. However, when all the TERMs are obtained (after step 4 in Figure 3-1 and
Figure 5-1), there is no point of parallelisation. Step 5 can be parallelised using another
‘fork’ (parallel region) by utilising OpenMP. The parallelisation can even be performed
from a pixel/sample point of view and can further improve the execution time
performance without any drawback on the CR. This is implementable on the desktop as
well as the DSP (TMDSEVM6678L EVM).
Further Optimisation/Improvement in Error Detection Algorithm
The comparison of both sides of equation (5-4) is done using a normal similarity
comparison, which is believed to be enough for this study which focused on the algorithm
level implementation. Logic level comparison is possible although this could lead to
longer codes but could produce better (lower) execution time overhead. When an error is
detected, the pre-backed-up 𝑈𝑠(𝑘−1)
is used to resume the remaining of the PLUS
factorisation. The 𝑈𝑠(𝑘−1)
variable is assumed to be error free but for the actual
implementation, it needs to be protected to prevent catastrophic fault during the encoding
process.
Power Measurement Method
Power measurement of the Integer KLT algorithm on board of the DSP boards in this
study has generates some unclear patterns when varying both clustering and tiling levels.
It is believed that such patterns might be due to the interference from the DC adaptors
that power the boards. Power measurement from only the DSP (instead of the whole
board) could be the appropriate way of measuring the algorithm’s power consumption.
Memory Expansion in the OMAP-L137 EVM
Small memory has become an issue in the OMAP-L137 EVM not only affecting the
capability of the on board Integer KLT algorithm in compressing the whole image cube
but it also has force the clustering and tiling approaches and has made the proposed
variable sharing method impossible. This has introduced a huge I/O delay since each sub-
cube has to be loaded in each iteration of clustering and tiling. Adding a larger memory
on the OMAP-L137 EVM is an interesting approach to see its actual performance while
encoding the whole image cube with the variable sharing method. With the successful
239
implementation of Integer KLT on the TMDSEVM6678L EVM, it is clear that the
memory requirement for an AVIRIS encoding, decoding and lossless verification is not
more than 512 MB (total amount of memory available).
JPEG2000 Implementation on the DSP EVMs
The spatial compression using the JPEG2000 in this work may seem as left-out algorithm
due to the focus on the spectral decorrelation part. With the availability of the algorithm
in C++ language in [290] (JPEG2000 Part I), the algorithm can be ported to the DSP
environment. Another version is also available from the Kakadu Software developer
[237] where the code is not free but supports multi-threaded execution. TI also has
announced the availability of the JPEG2000 high definition (HD) codec [291] that can be
used for spatial compression to complete the compression system proposed in this study.
More Tests on the Estimation of the Best Clustering Level
With high accuracy (minimum of 87.1%), the estimation of the best clustering levels have
been tested with 62 different images from three different datasets: AVIRIS, Hyperion and
CHRIS. The estimation algorithm needs to be tested utilising other hyperspectral datasets
including 3D images from terrestrial applications such as MRI images that contain high
interband correlations.
Utilisation of the other Mathematical Library for Covariance Matrix Calculation
As shown in Chapter 4, the utilisation of the ALGLIB mathematical library for
covariance matrix calculations produced a remarkable performance improvement in
execution time without sacrificing the CR performance. However, due to the extra
memory requirement to cache the entire image prior to the calculation, this has made it
not suitable for DSP implementations. There are many mathematical libraries that support
C/C++ (e.g. Linear Algebra PACKage in C++, LAPACK++ [292], GNU Scientific
Library, GSL [293], etc.) however most of them are developed for desktop
implementation. An effort is needed to port the mathematical library (or at least the
covariance calculation part) into the DSPs in order to make it executable on the
platforms.
With all the proposed future work, the complete lossless hyperspectral compression
system based on the Integer KLT and the JPEG2000 can be developed with improved CR
240
and execution time performance. With reference to the performance recorded so far on
the TMDSEVM6678L EVM, the implementation of the algorithms along with the
suggestions made in this section can possibly achieve real-time performance at a very low
power compared to the implementation on high performance platforms (e.g. GPU or
mobile computing platform). The real-time Integer KLT algorithm on DSP platforms
then could be implemented on FPGA through realisation of multi-core system-on-chip to
take advantage of the much lower power and good performance due to optimised data
paths of FPGAs.
241
References
[1] P. M. Mather, Computer Processing of Remotely-Sensed Images. West Sussex,
England: John Wiley & Sons Inc., 2004.
[2] M. Borengasser, W. S. Hungate, and R. Watkins, Hyperspectral Remote Sensing:
Principles and Applications. Boca Raton, FL: Taylor & Francis Group, 2008.
[3] N. M. Short. (2009). Remote Sensing Tutorial - NASA. Available:
http://rst.gsfc.nasa.gov/
[4] D. A. Vallado and W. D. McClain, Fundamentals of Astrodynamics and
Applications, 2nd. ed. California, USA: Space Technology Library, 2004.
[5] P. Brooks, "TOPSAT - High Resolution Imaging from A Small Satellite," in The
Third IAA Symposium on Small Satellites for Earth Observation, Berlin,
Germany, 2001.
[6] eoPortal. (2010, 10 Dec 2011). eoPortal: Sharing Earth Observation Resources.
Available: http://directory.eoportal.org
[7] J. Pearlman, C. Segal, L. B. Liao, S. L. Carman, M. A. Folkman, W. Browne, et
al., "Development and Operations of the EO-1 Hyperion Imaging Spectrometer,"
in Proceedings of SPIE in Earth Observing Systems Vol. 4135, San Diego, USA,
2000.
[8] J. S. Pearlman, P. S. Barry, C. C. Segal, J. Shepanski, D. Beiso, and S. L. Carman,
"Hyperion, A Space-Based Imaging Spectrometer," IEEE Transactions on
Geoscience and Remote Sensing, vol. 41, pp. 1160-1173, 2003.
[9] US_Geological_Survey. (2011, 3 Oct 2012). USGS EO-1 Website. Available:
http://eo1.usgs.gov/
[10] T. Smith and J. Kessler. (1999, 10 Dec 2011). Earth Orbiter 1 - Wideband
Advanced Recorder and Processor (WARP). Available:
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19990024890_1999024437.pd
f
[11] G. Rabideau, D. Tran, S. Chien, B. Cichy, R. Sherwood, D. Mandl, et al.,
"Mission Operations of Earth Observing-1 with Onboard Autonomy," in Second
IEEE International Conference on Space Mission Challenges for Information
Technology, 2006 (SMC-IT 2006), Pasadena, California, USA, 2006, pp. 367-373.
[12] K. Thyagarajan and D. V. A. Raghava Murthy, "Micro- and Mini-Satellites of
ISRO - Technology and Applications," Acta Astronautica, vol. 65, pp. 1375-1382,
Nov - Dec 2009 2009.
[13] S. Hofer, K.-P. Förster, B. Sang, T. Stuffler, B. Penné, M. Kassebom, et al.,
"EnMAP Hyperspectral Mission - The Space Segment," in Proceedings of the
Hyperspectral Workshop 2010, Frascati, Italy, 2010.
[14] T. Stuffler, C. Kaufmann, S. Hofer, K. P. Förster, G. Schreier, A. Mueller, et al.,
"The EnMAP Hyperspectral Imager - An Advanced Optical Payload for Future
Applications in Earth Observation Programmes," Acta Astronautica, vol. 61, pp.
115-120, 2007.
[15] P. Barry, EO-1/Hyperion Science Data User's Guide, Level 1B. Redondo Beach,
CA: TRW Space, Defense & Information Systems, 2001.
[16] Texas-Instruments. (2013, 25th July 2013). Other TMS320TM DSPs -
TMS320C4X DSPs - TMS320C40. Available:
http://www.ti.com/product/tms320c40
[17] Texas-Instruments. (2013, 25th July 2013). Other TMS320TM
DSPs - TMS320C4X
DSPs - SMJ320C40. Available: http://www.ti.com/product/smj320c40
242
[18] S. A. Tretter, Communication System Design Using DSP Algorithms: With
Laboratory Experiments for the TMS320C6713 DSK: Springer Publishing
Company, Incorporated, 2008.
[19] R. J. Birk and T. B. McCord, "Airborne Hyperspectral Sensor Systems," IEEE
Aerospace and Electronic Systems Magazine, vol. 9, pp. 26-33, 1994.
[20] M. S. Rahimi, S. Sodagari, and A. N. Avanaki, "Dimension Selective Tensor
Compression of Hyperspectral Images," in Annual IEEE Conference Student
Paper, 2008, Aalborg, Denmark, 2008, pp. 1-4.
[21] B. Aiazzi, S. Baronti, and L. Alparone, "Lossless Compression of Hyperspectral
Images Using Multiband Lookup Tables," IEEE Signal Processing Letters, vol.
16, pp. 481-484, 2009.
[22] Y. Amano, N. Takagi, and A. Getz, "A Study on the Classification of Urban
Region Using Hyper-Spectrum Data at AVIRIS," in IEEE International
Geoscience and Remote Sensing Symposium, 2008 (IGARSS 2008), Boston, USA,
2008, pp. IV - 687-IV - 690.
[23] T. Akgun and Y. Altunbasak, "Material Specific Multiple Observation Resolution
Enhancement of Hyperspectral Imagery," in IEEE International Conference on
Acoustics, Speech and Signal Processing, 2008 (ICASSP 2008), 2008, pp. 845-
848.
[24] Z. Junping, Z. Wenjie, J. Haibin, and Z. Ye, "Spaceborne Hyperspectral Image
Generation Based-on Airborne Hyperspectral Image," in IEEE International
Geoscience and Remote Sensing Symposium, 2008 (IGARSS 2008), Boston, USA,
2008, pp. IV - 259-IV - 262.
[25] B. Hopson, K. Benkrid, D. Keymeulen, and N. Aranki, "Real-time CCSDS
Lossless Adaptive Hyperspectral Image Compression on Parallel GPGPU &
Multicore Processor Systems," in NASA/ESA Conference on Adaptive Hardware
and Systems (AHS), 2012, Erlangen, Germany, 2012, pp. 107-114.
[26] G. Yu, "An On-Board Real-Time Image Compression System for Earth
Observation Satellites," PhD Thesis, University of Surrey, Guildford, UK, 2009.
[27] I. Spectrum-Digital. (2008, June 24). OMAP-L137 Evaluation Module - Technical
Reference. Available:
http://support.spectrumdigital.com/boards/evmomapl137/revd/files/EVMOMAPL
137_TechRef_RevD.pdf
[28] Texas-Instruments. (2012, 19th April 2012). TMS320C6678 Evaluation Modules -
TMDSEVM6678. Available: http://www.ti.com/tool/tmdsevm6678
[29] Intel, Enhanced Intel® SpeedStep
® Technology for the Intel
® Pentium
® M
Processor - White Paper: Intel Corporation, 2004.
[30] M. E. Schaepman, S. L. Ustin, A. J. Plaza, T. H. Painter, J. Verrelst, and S. Liang,
"Earth System Science Related Imaging Spectroscopy - An Assessment," Remote
Sensing of Environment, vol. 113, pp. 123-137, September 2009 2009.
[31] T. M. Lillesand, R. W. Kiefer, and J. W. Chipman, Remote Sensing and Image
Interpretation, 6 ed. Hoboken, NJ: John Wiley & Sons, Inc., 2008.
[32] K. Navulur, Multispectral Image Analysis Using the Object-Oriented Paradigm.
Boca Raton, FL: Taylor & Francis Group, 2007.
[33] P. Shippert, "Introduction to Hyperspectral Image Analysis," Online Journal of
Space Communication - Remote Sensing of Earth via Satellite, 2003.
[34] M. E. Schaepman, "Spectrodirectional Remote Sensing: From Pixels to
Processes," International Journal of Applied Earth Observation and
Geoinformation, vol. 9, pp. 204-223, 2007.
243
[35] D. Qian, N. Raksuntorn, C. Shangshu, and R. J. Moorhead, "Color Display for
Hyperspectral Imagery," IEEE Transactions on Geoscience and Remote Sensing,
vol. 46, pp. 1858-1866, 2008.
[36] R. C. Olsen, Remote Sensing from Air and Space. Bellingham, WA, USA: SPIE -
The International Society for Optical Engineering, 2007.
[37] B. C. Panda, Applications of Remote Sensing and GIS in Agricultural Surveys -
Basic Principles of Remote Sensing. New Delhi: Indian Agricultural Statistics
Research Institute (I.C.A.R), 2012.
[38] M. Cutter and M. Sweeting, "A Hyperspectral Imaging Mission for Small
Satellites - Five Years Orbit Experience," in 3rd International Conference on
Recent Advances in Space Technologies, 2007 (RAST '07), Istanbul, Turkey,
2007, pp. 355-360.
[39] ITT. (2010, 10 Dec 2011). ENVI Tutorial: Hyperspectral Signature and Spectral
Resolution. Available:
www.exelisvis.com/portals/0/tutorials/envi/Signatures_Spectral_Res.pdf
[40] M. Borengasser, W. S. Hungate, and R. Watkins, "Imaging Spectrometers:
Operational Considerations," in Hyperspectral Remote Sensing: Principles and
Applications, Q. Weng, Ed., ed Boca Raton, FL: Taylor & Francis Group, 2008,
p. 17.
[41] H. Kaufmann, K. Segl, L. Guanter, S. Hofer, K. P. Foerster, T. Stuffler, et al.,
"Environmental Mapping and Analysis Program (EnMAP) - Recent Advances
and Status," in IEEE International Conference on Geoscience and Remote
Sensing Symposium, 2008 (IGARSS 2008), Boston, USA, 2008, pp. IV-109 - IV-
112.
[42] GIS-Development. (2009, 23rd June 2009). GIS Tutorials. Available:
http://www.gisdevelopment.net/tutorials/index.htm
[43] A. P. Cracknell and L. Hayes, Introduction to Remote Sensing, 2nd. ed. Boca
Raton, USA: CRC Press Taylor & Francis Group, 2007.
[44] G. Joseph, Fundamentals of Remote Sensing, 2nd ed. Hyderguda, Hyderabad:
University Press (India), 2005.
[45] J. A. N. Van Aardt, M. Lück-Vogel, W. Lück, and J. D. Althausen, Remote-
Sensing Systems for Operational and Research Use in Manual of Geospatial
Science and Technology, 2nd ed. Boca Raton, FL: Taylor and Francis Group,
LLC, 2010.
[46] R. Buckingham, K. Staenz, and A. Hollinger, "A Review of Canadian Airborne
and Space Activities in Hyperspectral Remote Sensing," Canadian Aeronautics
and Space Journal, vol. 48, pp. 115-121, 2002.
[47] R. Buckingham and K. Staenz, "Review of Current and Planned Civilian Space
Hyperspectral Sensors for EO," Canadian Journal of Remote Sensing, vol. 34, pp.
S187-S197, 2008.
[48] M. Guelman and F. Ortenberg, "Small Satellite's Role in Future Hyperspectral
Earth Observation Missions," Acta Astronautica, vol. 64, pp. 1252-1263, 2009.
[49] D. J. Barnhart, T. Vladimirova, A. M. Baker, and M. N. Sweeting, "A Low-Cost
Femtosatellite to Enable Distributed Space Missions," Acta Astronautica, vol. 64,
pp. 1123-1143, 2009.
[50] D. D. Stott, R. K. Burek, P. Eisenreich, J. E. Kroutil, P. D. Schwartz, and G. F.
Sweitzer, "The MSX Command and Data Handling System," Johns Hopkins APL
Technical Digest, vol. 17, pp. 143-151, 1996.
244
[51] K. J. Heffernan, J. E. Heiss, J. D. Boldt, E. H. Darlington, K. Peacock, T. J.
Harris, et al., "The UVISI Instrument," Johns Hopkins APL Technical Digest, vol.
17, pp. 198-214, 1996.
[52] W. E. Skullney, J. H. M. Kreitz, M. J. Harold, S. R. Vernon, T. M. Betenbaugh,
T. J. Hartka, et al., "Structural Design of the MSX Spacecraft," Johns Hopkins
APL Technical Digest, vol. 17, pp. 59-76, 1996.
[53] R. K. Huebschman, "The MSX Spacecraft System Design," Johns Hopkins APL
Technical Digest, vol. 17, pp. 41-48, 1996.
[54] C. T. Willoughby, J. Marmo, and M. A. Folkman, "Hyperspectral Imaging
Payload for the NASA Small Satellite Technology Initiative Program," in
Proceedings of the IEEE Aerospace Applications Conference, 1996, Aspen, CO,
USA, 1996, pp. 67-79.
[55] S. Wander, "Lewis Spins Out of Control," NASA System Failure Case Studies,
vol. 1, p. 4, 2007.
[56] D. Marshall, "Small Spacecraft Technology Initiative - Lewis Spacecraft," in
AIAA Space Programs and Technologies Conference, Huntsville, Alabama, USA,
1995.
[57] S. Frazier. (2010, 1 June 2012). MODIS Website. Available:
http://modis.gsfc.nasa.gov/about/electrsys.php
[58] C. L. Parkinson, "Aqua: An Earth-Observing Satellite Mission to Examine Water
and Other Climate Variables," IEEE Transactions on Geoscience and Remote
Sensing, vol. 41, pp. 173-183, 2003.
[59] X. Xiong, N. Che, and W. L. Barnes, "Terra MODIS On-Orbit Spectral
Characterization and Performance," IEEE Transactions on Geoscience and
Remote Sensing, vol. 44, pp. 2198-2206, 2006.
[60] P. Przyborski. (2011, 24 August 2011). NASA: TERRA. Available:
http://terra.nasa.gov/
[61] J. Merton and J. Huntington, "Early Simulation Results of the ARIES-1 Satellite
Sensor for Multi-Temporal Vegetation Research Derived from AVIRIS," in
Proceedings of the Eigth Annual JPL Airborne Earth Science Workshop, NASA,
JPL., Pasadena, CA, 1999.
[62] T. Wilson and R. Baugh, "Naval EarthMap Observer (NEMO) Program and the
Naval Space Science and Technology Program Office," Acta Astronautica, vol.
44, pp. 675-683, 1999.
[63] W. S. Vincent, "Data Handling for the Navy's Hyperspectral Imaging Satellite-
NEMO," in IEEE Aerospace Conference Proceedings, Snowmass at Aspen, CO,
USA, 1999, pp. 199-207.
[64] J. Fisher, J. A. Antoniades, C. Rollins, and L. Q. Xiang, "Hyperspectral Imaging
Sensor for the Coastal Environment," in Proceedings of SPIE in International
Optical Design Conference 1998 Vol. 3482, Kona, HI, 1998, pp. 179-186.
[65] A. Barducci, P. Marcoionni, and I. Pippi, "Recent Advance in Earth Remote
Sensing: Fourier Transform Stationary Hyperspectral Imagers," Annals of
Geophysics, vol. 49, February 2006.
[66] J. Freeman, C. Rudder, and P. Thomas, "MightySat II: On-orbit Lab Bench for
Air Force Research Laboratory," in Proceedings of the 14th Annual AIAA/USU
Conference on Small Satellites, Logan, Utah, USA, 2000, pp. 1-20.
[67] S. T. Yarbrough, T. R. Caudill, E. T. Kouba, V. Osweiler, J. Arnold, R. Quarles,
et al., "MightySat II.1 Hyperspectral Imager: Summary of On-Orbit
Performance," in Proceedings of SPIE in Imaging Spectrometry VII Vol. 4480,
San Diego, CA, 2002, pp. 186-197.
245
[68] J. Bermyn, "PROBA - PRoject for On-Board Autonomy," Journal of Air & Space
Europe, vol. 2, pp. 70-76, 2000.
[69] J. Louet. (2001, 10 Dec 2011). The Envisat Mission and System. Available:
http://www.esa.int/esapub/bulletin/bullet106/bul106_1.pdf
[70] J. L. Bezy, G. Gourmelon, R. Bessudo, G. Baudin, H. Sontag, and S. Weiss, "The
ENVISAT Medium Resolution Imaging Spectrometer (MERIS)," in IEEE
International Conference on Geoscience and Remote Sensing Symposium, 1999
(IGARSS 1999), Hamburg, Germany, 1999, pp. 1432-1434.
[71] P. A. Dubock, F. Spoto, J. Simpson, D. Spencer, E. Schutte, and H. Sontag, The
Envisat Satellite and Its Integration. Noordwijk, Netherlands: European Space
Agency, June 2001.
[72] ESA. (2012, 3rd June 2012). ESA declares end of mission for Envisat. Available:
http://www.esa.int/esaCP/SEM1SXSWT1H_index_0.html
[73] ESA. (2009, 10 Dec 2011). ESA - Mars Express. Available:
http://www.esa.int/SPECIALS/Mars_Express/
[74] R. Melchiorri, P. Drossart, T. Fouchet, B. Bézard, F. Forget, A. Gendrin, et al., "A
Simulation of the OMEGA/Mars Express Observations: Analysis of the
Atmospheric Contribution," Planetary and Space Science, vol. 54, pp. 774-783,
2006.
[75] G. Bonello, J.-P. Bibring, F. Poulet, A. Gendrin, B. Gondet, Y. Langevin, et al.,
"Visible and Infrared Spectroscopy of Minerals and Mixtures with the
OMEGA/MARS-EXPRESS Instrument," Planetary and Space Science, vol. 52,
pp. 133-140, 2004.
[76] J. P. Bibring, A. Soufflot, M. Berthé, Y. Langevin, B. Gondet, P. Drossart, et al.,
OMEGA: Observatoire pour la Minéralogie, l'Eau, les Glaces et l'Activité vol.
1240. Noordwijk, Netherlands: ESA Publ. Division, 2004.
[77] M. R. Schoeberl, A. R. Douglass, E. Hilsenrath, P. K. Bhartia, R. Beer, J. W.
Waters, et al., "Overview of the EOS Aura Mission," IEEE Transactions on
Geoscience and Remote Sensing, vol. 44, pp. 1066-1074, 2006.
[78] J. Wilson. (2007, 10 Dec 2011). NASA - Ozone Monitoring Instrument (OMI).
Available: http://www.nasa.gov/mission_pages/aura/spacecraft/omi.html
[79] S. R. Tyler and P. Varanasi, "The Relationship Between Ground Data Systems
and Flight Operations for the Aura Project TES Instrument," in IEEE Proceedings
of Aerospace Conference, 2001, Big Sky, Montana, USA, 2001, pp. 1611-1624.
[80] K. Beisser. (2011, 10 Dec 2011). Compact Reconnaissance Imaging Spectrometer
for Mars Website. Available: http://crism.jhuapl.edu/
[81] M. Viotti. (2008, 10 Dec 2011). Mars Exploration. Available:
http://marsprogram.jpl.nasa.gov
[82] T. M. Davis and S. D. Straight, "Development of the Tactical Satellite 3 for
Responsive Space Missions," in 4th Responsive Space Conference, Los Angeles,
USA, 2006.
[83] I. A. Troxel, M. Fehringer, and M. T. Chenoweth, "Achieving Multipurpose
Space Imaging with the ARTEMIS Reconfigurable Payload Processor," in
Military and Aerospace Programmable Logic Devices (MAPLD) Conference,
Annapolis, MD, USA, 2008.
[84] S. Writers, "ATK Announces Retirement of TacSat-3 Satellite," in Space Daily,
ed. Arlington, VA: Space Media Network, 2012.
[85] M. Bergeron, A. Hollinger, K. Staenz, M. Maszkiewicz, R. A. Neville, S. E. Qian,
et al., "Hyperspectral Environment and Resource Observer (HERO) Mission,"
Canadian Journal of Remote Sensing, vol. 34, pp. S1-S11, 2008.
246
[86] M. Bergeron, A. Hollinger, and P. Oswald. (2005, 14 July 2011). The
Hyperspectral Environment and Resource Observer (HERO) Mission. Available:
http://carms.geog.uvic.ca/HSIWSPresentations/Monday_am/4_Bergeron_HERO.
ppt
[87] C. Galeazzi, A. Sacchetti, A. Cisbani, and G. Babini, "The PRISMA Program," in
IEEE International Conference on Geoscience and Remote Sensing Symposium,
2008 (IGARSS 2008), Boston, USA, 2008, pp. 105-108.
[88] M. Paolo, D. Michele, G. Lorenzo, P. Beatrice, and F. Enrico, "PRISMA
Payload," in Proceedings of the Hyperspectral Workshop 2010, Frascati, Italy,
2010.
[89] A. Sacchetti, C. Galeazzi, A. Cisbani, and G. Babini, "The Italian Precursor of An
Operational Hyperspectral Imaging Mission," in Proceedings of the 7th IAA
Symposium on Small Satellites for Earth Observation, Berlin, Germany, 2009.
[90] Y. Aoyanagi, S. Satori, T. Totani, T. Yasunaka, A. Nakamura, and Y. Takeuchi,
"Development of Spaceborne Small Hyperspectral sensor HSC-III for Micro
Satellite," in Small Satellite Missions for Earth Observation, R. Sandau, H.-P.
Roeser, and A. Valenzuela, Eds., ed Heidelberg: Springer, 2010, pp. 331-340.
[91] Y. Aoyanagi, T. Totani, K. Yamaguchi, N. Takeyama, and S. Satori, "Design and
Ground Testing of Compact and Versatile Hyperspectral sensor HSC," in 8th IAA
(International Academy of Astronautics) Symposium on Small Satellites for Earth
Observation, Berlin, Germany, 2011, pp. 223-226.
[92] J. L. Buckner. (2008, 10 Dec 2011). HyspIRI Technology Investment Overview.
Available:
http://decadal.gsfc.nasa.gov/documents/Hyspiri_Technology_Investments.pdf
[93] R. O. Green, G. Asner, S. Ungar, and R. Knox, "NASA Mission to Measure
Global Plant Physiology and Functional Types," in IEEE Aerospace Conference,
2008, Big Sky, MT, USA, 2008, pp. 1-7.
[94] W. R. Johnson, S. J. Hook, P. Mouroulis, D. W. Wilson, S. D. Gunapala, C. J.
Hill, et al., "Quantum Well Earth Science Testbed," Infrared Physics &
Technology, vol. 52, pp. 430-433, 2009.
[95] S. J. Hook, B. T. Eng, S. D. Gunapala, C. J. Hill, W. R. Johnson, A. U. Lamborn,
et al., "QWEST and HyTES: Two New Hyperspectral Thermal Infrared Imaging
Spectrometers for Earth Science," in ESTF (Earth Science Technology Forum)
2010, Arlington, VA, USA, 2010, pp. 1-9.
[96] S. J. Hook. (2011, 10 Dec 2011). HyTES: A Hyperspectral Thermal Emission
Spectrometer for HyspIRI-TIR Science. Available:
http://airbornescience.jpl.nasa.gov/hytes/
[97] S. Michel, M. J. Lefevre-Fonollosa, and S. Hosford, "HYPXIM-A Hyperspectral
Satellite Defined for Science, Security and Defence Users," in Proceedings of the
Hyperspectral Workshop 2010, Frascati, Italy, 2010.
[98] C. Anderson, C. S. Vanek, H. R. Freeman, D. Furlong, A. Kirschbaum, R. Roy, et
al., Lewis Spacecraft Mission Failure Investigation Board - Final Report. Los
Angeles, CA: National Aeronautics and Space Administration, 1998.
[99] P. J. Palmadesso, J. Antoniades, M. Baumback, J. Bowles, and L. Rickard, "Use
of Filter Vectors and Fast Convex Set Methods in Hyperspectral Analysis," in
Proceedings of the International Symposium on Spectral Sensing Research,
Melbourne, Australia, 1995.
[100] J. H. Bowles, J. A. Antoniades, M. M. Baumback, D. Hass, and P. J. Palmadesso,
"Effects of Spectral Resolution and Number of Wavelength Bands in Analysis of
a Hyperspectral Data Set Using NRL's ORASIS Algorithm," in Proceedings of
247
SPIE in Hyperspectral Remote Sensing and Applications Vol. 2821, Denver, CO,
1996, pp. 171-182.
[101] R. Rice and J. Plaunt, "Adaptive Variable-Length Coding for Efficient
Compression of Spacecraft Television Data," IEEE Transactions on
Communication Technology, vol. 19, pp. 889-897, 1971.
[102] M. Boucher, "Taurus Launch ends in Failure, QuikTOMS and OrbView-4 Lost,"
in SpaceRef, ed, 2001.
[103] T. Read. (2003, 4 May 2010). PROBA Payload Processing [PowerPoint
Presentation]. Available: http://www.chris-
proba.org.uk/WS2003/PROBA_Payload_Processing_TRead.ppt
[104] S. Murchie, R. Arvidson, P. Bedini, K. Beisser, J. P. Bibring, J. Bishop, et al.,
"Compact Reconnaissance Imaging Spectrometer for Mars (CRISM) on Mars
Reconnaissance Orbiter (MRO)," J. Geophys. Res., vol. 112, p. E05S03, 2007.
[105] I. A. Troxel, M. Fehringer, and M. T. Chenoweth, "Achieving Multipurpose
Space Imaging with the ARTEMIS Reconfigurable Payload Processor," in IEEE
Aerospace Conference, 2008 Big Sky, MT, 2008, pp. 1-8.
[106] D. A. Huffman, "A Method for the Construction of Minimum-Redundancy
Codes," Proceedings of the IRE, vol. 40, pp. 1098-1101, 1952.
[107] J. Weissel. (2009, 23rd. June 2009). Remote Sensing Tutorial. Available:
http://rst.gsfc.nasa.gov/AppD/glossary.html
[108] K. Sayood, Introduction to Data Compression (3rd Edition), 3rd Edition ed. San
Francisco, USA: Morgan Kaufmann Publishers, 2006.
[109] ENVI. (2006, 17th May 2010). ENVI 4.3 Software. Available:
http://www.ittvis.com/ProductServices/ENVI.aspx
[110] M. Rabbani and P. W. Jones, Digital Image Compression Techniques vol. TT7.
Bellingham, WA: SPIE - The International Society for Optical Engineering, 1991.
[111] J. Zhang, J. E. Fowler, N. H. Younan, and G. Liu, "Evaluation of JP3D for Lossy
and Lossless Compression of Hyperspectral Imagery," in IEEE International
Geoscience and Remote Sensing Symposium, 2009 (IGARSS 2009), Capetown,
South Africa, 2009, pp. 474-477.
[112] P. Baizert, M. R. Pickering, and M. J. Ryan, "Compression of Hyperspectral Data
by Spatial/Spectral Discrete Cosine Transform," in IEEE International
Conference on Geoscience and Remote Sensing Symposium, 2001 (IGARSS
2001), Sydney, Australia, 2001, pp. 1859-1861.
[113] Z. Zhou, J. Liu, and J. Tian, "Real-time Hyperspectral Image Cube Compression
Combining Adaptive Classification and Partial Transform Coding," in 8th
International Conference on Signal Processing, 2006 (ICSP 2006), Beijing,
China, 2006, pp. 1157-1160.
[114] D. Qian and J. E. Fowler, "Hyperspectral Image Compression Using JPEG2000
and Principal Component Analysis," IEEE Geoscience and Remote Sensing
Letters, vol. 4, pp. 201-205, 2007.
[115] I. Blanes and J. Serra-Sagristà, "Clustered Reversible-KLT for Progressive Lossy-
to-Lossless 3D Image Coding," in Data Compression Conference, 2009 (DCC
'09), Snowbird, Utah, 2009, pp. 233-242.
[116] G. Yu, T. Vladimirova, and M. N. Sweeting, "Image Compression Systems On
Board Satellites," Acta Astronautica, vol. 64, pp. 988-1005, 2009.
[117] N. R. Mat Noor, T. Vladimirova, and M. Sweeting, "High Performance Lossless
Compression for Hyperspectral Satellite Imagery," in UK Electronics Forum,
Newcastle University, UK, 2010, pp. 78-83.
248
[118] W. Yodchanan, S. Oraintara, T. Tanaka, and K. R. Rao, "Lossless Multi-Channel
EEG Compression," in IEEE International Symposium on Circuits and Systems,
2006 (ISCAS 2006), Island of Kos, Greece, 2006, pp. 4 pp.-1614.
[119] W. Yodchanan, O. Soontorn, and K. R. Rao, "Integer Sub-Optimal Karhunen-
Loeve Transform for Multi-channel Lossless EEG Compression," in 14th
European Signal Processing Conference, Florence, Italy, 2006.
[120] W. Yodchanan, "Lossless Compression for 3-D MRI Data Using Reversible
KLT," in International Conference on Audio, Language and Image Processing,
2008 (ICALIP 2008) Shanghai, China, 2008, pp. 1560-1564.
[121] S. Golomb, "Run-length encodings (Corresp.)," Information Theory, IEEE
Transactions on, vol. 12, pp. 399-401, 1966.
[122] CCSDS, Lossless Data Compression - Recommended Standard (CCSDS 121.0-B-
2). Washington DC, USA: CCSDS Secretariat, NASA, 2012.
[123] CCSDS, Lossless Multispectral & Hyperspectral Image Compression -
Recommended Standard (CCSDS 123.0-B-1). Washington DC, USA: CCSDS
Secretariat, NASA, 2012.
[124] X. Wu and N. Memon, "Context-Based Lossless Interband Compression-
Extending CALIC," IEEE Transactions on Image Processing, vol. 9, pp. 994-
1001, 2000.
[125] E. Magli, G. Olmo, and E. Quacchio, "Optimized Onboard Lossless and Near-
Lossless Compression of Hyperspectral Data Using CALIC," IEEE Geoscience
and Remote Sensing Letters, vol. 1, pp. 21-25, 2004.
[126] M. J. Ryan and J. F. Arnold, "The Lossless Compression of AVIRIS Images by
Vector Quantization," IEEE Transactions on Geoscience and Remote Sensing,
vol. 35, pp. 546-550, 1997.
[127] R. O. Green, M. L. Eastwood, C. M. Sarture, T. G. Chrien, M. Aronsson, B. J.
Chippendale, et al., "Imaging Spectroscopy and the Airborne Visible/Infrared
Imaging Spectrometer (AVIRIS)," Remote Sensing of Environment, vol. 65, pp.
227-248, 1998.
[128] M. R. Pickering and M. J. Ryan, "Chapter 1: An Architecture for the Compression
of Hyperspectral Imagery," in Hyperspectral Data Compression, G. Motta, F.
Rizzo, and J. A. Storer, Eds., ed New York, USA.: Springer Science+Business
Media, Inc., 2006, pp. 1-34.
[129] R. E. Roger and M. C. Cavenor, "Lossless Compression of AVIRIS Images,"
IEEE Transactions on Image Processing, vol. 5, pp. 713-719, 1996.
[130] M. Weinberger, G. Seroussi, and G. Sapiro, The LOCO-I lossless image
compression algorithm : principles and standardization into JPEG-LS: Hewlett-
Packard Laboratories, 1998.
[131] S. Hunt and L. S. Rodriguez, "Fast Piecewise Linear Predictors for Lossless
Compression of Hyperspectral Imagery," in IEEE International Conference on
Geoscience and Remote Sensing Symposium, 2004 (IGARSS 2004), Anchorage,
Alaska, USA, 2004, pp. 309-312.
[132] B. Penna, T. Tillo, E. Magli, and G. Olmo, "Embedded Lossy to Lossless
Compression of Hyperspectral Images Using JPEG 2000," in IEEE International
Conference on Geoscience and Remote Sensing Symposium, 2005 (IGARSS
2005), Seoul, Korea, 2005, pp. 140-143.
[133] P. Toivanen, O. Kubasova, and J. Mielikainen, "Correlation-Based Band-Ordering
Heuristic for Lossless Compression of Hyperspectral Sounder Data," IEEE
Geoscience and Remote Sensing Letters, vol. 2, pp. 50-54, 2005.
249
[134] B. Aiazzi, P. Alba, L. Alparone, and S. Baronti, "Lossless Compression of
Multi/Hyper-spectral Imagery Based on a 3-D Fuzzy Prediction," IEEE
Transactions on Geoscience and Remote Sensing, vol. 37, pp. 2287-2294, 1999.
[135] B. Aiazzi, P. S. Alba, L. Alparone, and S. Baronti, "Reversible compression of
multispectral imagery based on an enhanced inter-band JPEG prediction," in
Geoscience and Remote Sensing, 1997. IGARSS '97. Remote Sensing - A Scientific
Vision for Sustainable Development., 1997 IEEE International, 1997, pp. 1990-
1992 vol.4.
[136] X. Wu and N. Memon, "Context-Based, Adaptive, Lossless Image Coding," IEEE
Transactions on Communications, vol. 45, pp. 437-444, 1997.
[137] F. Rizzo, B. Carpentieri, G. Motta, and J. A. Storer, "Low-Complexity Lossless
Compression of Hyperspectral Imagery Via Linear Prediction," IEEE Signal
Processing Letters, vol. 12, pp. 138-141, 2005.
[138] C. Yan, Z. Xiao-ling, and S. Lan-sun, "Lossless Compression of Hyperspectral
Imagery Through 2D/3D Hybrid Prediction," in IEEE International Symposium
on Communications and Information Technology, 2005 (ISCIT 2005), Beijing,
China, 2005, pp. 1456-1459.
[139] X. L. Zhang, L. S. Shen, and P. Q. Zhang, "Lossless Compression of
Hyperspectral Image Based on 3-D Adaptive Prediction," The Chinese Journal of
Electronics, vol. 32, pp. 957-959, 2004.
[140] M. J. Ryan and J. F. Arnold, "Lossy Compression of Hyperspectral Data Using
Vector Quantization," Remote Sensing of Environment, vol. 61, pp. 419-436,
1997.
[141] Q. Shen-En, "Hyperspectral Data Compression Using a Fast Vector Quantization
Algorithm," IEEE Transactions on Geoscience and Remote Sensing, vol. 42, pp.
1791-1798, 2004.
[142] M. R. Pickering and M. J. Ryan, "Compression of Hyperspectral Data Using
Vector Quantisation and The Discrete Cosine Transform," in IEEE International
Conference on Image Processing, 2000 (ICIP 2000), Vancouver, Canada, 2000,
pp. 195-198.
[143] A. Kaarna, P. Zemcik, Ka, x, lvia, x, et al., "Compression of multispectral remote
sensing images using clustering and spectral reduction," Geoscience and Remote
Sensing, IEEE Transactions on, vol. 38, pp. 1073-1082, 2000.
[144] R. Baker and R. Gray, "Image Compression Using Non-Adaptive Spatial Vector
Quantization," in Conference Record of 16th Asilomar Conference on Circuits,
Systems & Computer, California, 1982, pp. 55-61.
[145] T. Murakami, K. Asai, and E. Yamazaki, "Vector Quantizer of Video Signals,"
Electronic Letters, vol. 7, pp. 1005-1006, November 1982 1982.
[146] B. Ramamurthi and A. Gersho, "Image Vector Quantization with a Perceptually-
Based Cell Classifier," in IEEE International Conference on Acoustics, Speech,
and Signal Processing (ICASSP '84), 1984, pp. 698-701.
[147] N. Ahmed, T. Natarajan, and K. R. Rao, "Discrete Cosine Transfom," IEEE
Transactions on Computers, vol. C-23, pp. 90-93, 1974.
[148] S. G. Mallat, "A Theory for Multiresolution Signal Decomposition: The Wavelet
Representation," IEEE Transactions on Pattern Analysis and Machine
Intelligence, vol. 11, pp. 674-693, 1989.
[149] I. T. Jolliffe, Principal Component Analysis, 2nd ed. New York: Springer-Verlag,
2002.
250
[150] L. I. Smith. (2002, 26th July 2009). A Tutorial on Principal Components
Analysis. Available:
http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
[151] G. K. Wallace, "The JPEG still picture compression standard," Consumer
Electronics, IEEE Transactions on, vol. 38, pp. xviii-xxxiv, 1992.
[152] W. Philips, "The lossless DCT for combined lossy/lossless image coding," in
Image Processing, 1998. ICIP 98. Proceedings. 1998 International Conference
on, 1998, pp. 871-875 vol.3.
[153] G. P. Abousleman, "Compression of Hyperspectral Imagery Using Hybrid
DPCM/DCT and Entropy-constrained Trellis Coded Quantization," in
Proceedings of the Data Compression Conference, 1995 (DCC '95), Snowbird,
Utah, USA, 1995, pp. 322-331.
[154] G. P. Abousleman, M. W. Marcellin, and B. R. Hunt, "Hyperspectral Image
Compression Using Entropy-constrained Predictive Trellis Coded Quantization,"
IEEE Transactions on Image Processing, vol. 6, pp. 566-573, 1997.
[155] G. P. Abousleman, "Adaptive Coding of Hyperspectral Imagery," in IEEE
International Conference on Acoustics, Speech, and Signal Processing, 1999
(ICASSP '99), Phoenix, Arizona, USA, 1999, pp. 2243-2246.
[156] J. A. Saghri, A. G. Tescher, and J. T. Reagan, "Practical Transform Coding of
Multispectral Imagery," IEEE Signal Processing Magazine, vol. 12, pp. 32-43,
1995.
[157] S. E. C. Arturo. (1999, June 23). Run Length Encoding. Available:
http://www.arturocampos.com/ac_rle.html
[158] G. Motta, F. Rizzo, and J. A. Storer, Hyperspectral Data Compression, 1st.
Edition ed. New York, USA: Springer, 2006.
[159] G. Liu and F. Zhao, "Efficient Compression Algorithm for Hyperspectral Images
Based on Correlation Coefficients Adaptive 3D Zerotree Coding," IET Image
Processing, vol. 2, pp. 72-82, 2008.
[160] A. Said and W. A. Pearlman, "A New, Fast, and Efficient Image Codec Based on
Set Partitioning in Hierarchical Trees," IEEE Transactions on Circuits and
Systems for Video Technology, vol. 6, pp. 243-250, 1996.
[161] L. Sunghyun, S. Kwanghoon, and L. Chulhee, "Compression for Hyperspectral
Images Using Three Dimensional Wavelet Transform," in IEEE International
Conference on Geoscience and Remote Sensing Symposium, 2001 (IGARSS
2001), Sydney, Australia, 2001, pp. 109-111.
[162] K. Romines and E. S. Hong, "Hyperspectral Image Compression with
Optimization for Spectral Analysis," in Proceedings of the Data Compression
Conference, 2007 (DCC 2007), Snowbird, Utah, USA, 2007, pp. 400-400.
[163] T. Xiaoli and W. A. Pearlman, "Lossy-to-Lossless Block-Based Compression of
Hyperspectral Volumetric Data," in IEEE International Conference on Image
Processing, 2004 (ICIP 2004), Singapore, 2004, pp. 3283-3286.
[164] T. Xiaoli, C. Sungdae, and W. A. Pearlman, "Comparison of 3D Set Partitioning
Methods in Hyperspectral Image Compression Featuring an Improved 3D-
SPIHT," in Proceedings of the Data Compression Conference, 2003 (DCC 2003),
Snowbird, Utah, USA, 2003, p. 449.
[165] W. A. Pearlman, A. Islam, N. Nagaraj, and A. Said, "Efficient, Low-Complexity
Image Coding with a Set-Partitioning Embedded Block Coder," IEEE
Transactions on Circuits and Systems for Video Technology, vol. 14, pp. 1219-
1235, 2004.
251
[166] X. Tang and W. Pearlman, "Three-Dimensional Wavelet-Based Compression of
Hyperspectral Images," in Hyperspectral Data Compression, G. Motta, F. Rizzo,
and J. Storer, Eds., ed: Springer US, 2006, pp. 273-308.
[167] ISO/IEC, "Information Technology - JPEG2000 Image Coding Standard
(ISO/IEC 15444-1)," ed. New York: American National Standards Institute, 2000.
[168] D. Santa-Cruz, T. Ebrahimi, J. Askelof, M. Larsson, and C. A. Christopoulos,
"JPEG2000 Still Image Coding Versus Other Standards," in Proceedings of SPIE
in Applications of Digital Image Processing XXIII Vol. 4115, San Diego, CA,
2000, pp. 446-454.
[169] ISO/IEC, "Information Technology - JPEG2000 Image Coding Standard:
Extensions (ISO/IEC 15444-2)," ed. Switzerland: American National Standards
Institute, 2004.
[170] R. Maini and S. Mehra, "A Review on JPEG2000 Image Compression,"
International Journal of Computer Applications, vol. 11, pp. 43-47, 2010.
[171] A. Kiely and M. Klimesh, The ICER Progressive Wavelet Image Compressor vol.
42-155. Pasadena, California: Jet Propulsion Laboratory, 2003.
[172] A. Kiely and M. Klimesh, Preliminary Image Compression Results from the Mars
Exploration Rovers vol. 42-156. Pasadena, California: Jet Propulsion Laboratory,
2003.
[173] M. Klimesh, A. Kiely, H. Xie, and N. Aranki, "Spectral Ringing Artifacts in
Hyperspectral Image Data Compression," in Hyperspectral Data Compression, G.
Motta, F. Rizzo, and J. Storer, Eds., ed: Springer US, 2006, pp. 379-405.
[174] P. Hao and Q. Shi, "Matrix Factorizations for Reversible Integer Mapping," IEEE
Transactions on Signal Processing, vol. 49, pp. 2314-2324, 2001.
[175] P. Hao and Q. Shi, "Reversible Integer KLT for Progressive-to-Lossless
Compression of Multiple Component Images," in Proceedings of the
International Conference on Image Processing, 2003 (ICIP 2003), Barcelona,
Spain, 2003, pp. I-633-6.
[176] L. Galli and S. Salzo, "Lossless Hyperspectral Compression Using KLT," in IEEE
International Conference on Geoscience and Remote Sensing Symposium, 2004
(IGARSS 2004), Anchorage, Alaska, USA, 2004, pp. 313-316.
[177] A. Bilgin, G. Zweig, and M. W. Marcellin, "Three-Dimensional Image
Compression with Integer Wavelet Transform," Applied Optics, vol. 39, 2000.
[178] L. Xin, G. Lei, and L. Zhen, "Reversible Integer Principal Component Transform
for Hyperspectral Imagery Lossless Compression," in IEEE International
Conference on Control and Automation, 2007 (ICCA 2007), Guangzhou, China,
2007, pp. 2968-2972.
[179] L. Xin, G. Lei, and L. Zhen, "Lossless Compression of Hyperspectral Imagery
Using Integer Principal Component Transform and 3-D Tarp Coder," in Eighth
ACIS International Conference on Software Engineering, Artificial Intelligence,
Networking, and Parallel/Distributed Computing, 2007 (SNPD 2007), Qingdao,
China, 2007, pp. 553-558.
[180] Z. Jing, J. E. Fowler, and L. Guizhong, "Lossy-to-Lossless Compression of
Hyperspectral Imagery Using Three-Dimensional TCE and an Integer KLT,"
IEEE Geoscience and Remote Sensing Letters, vol. 5, pp. 814-818, 2008.
[181] B. Penna, T. Tillo, E. Magli, and G. Olmo, "A New Low Complexity KLT for
Lossy Hyperspectral Data Compression," in IEEE International Conference on
Geoscience and Remote Sensing Symposium, 2006 (IGARSS 2006), Denver,
Colorado, USA, 2006, pp. 3525-3528.
252
[182] J. Huang and R. Zhu, "Hyperspectral Image Compression using Low Complexity
Integer KLT and Three-Dimensional Asymmetric Significance Tree," in
Proceedings of SPIE in Mathematics for Signal and Information Processing Vol.
7444, San Diego, CA, 2009.
[183] W. Lei, W. Jiaji, J. Licheng, and S. Guangming, "Lossy-to-Lossless Hyperspectral
Image Compression Based on Multiplierless Reversible Integer TDLT/KLT,"
IEEE Geoscience and Remote Sensing Letters, vol. 6, pp. 587-591, 2009.
[184] M. Klimesh, "Low-Complexity Lossless Compression of Hyperspectral Imagery
via Adaptive Filtering," The Interplanetary Network Progress Report, vol. 42-
163, November 15 2005.
[185] A. Gersho, "Adaptive filtering with binary reinforcement," Information Theory,
IEEE Transactions on, vol. 30, pp. 191-199, 1984.
[186] J. E. Sanchez, E. Auge, J. Santalo, I. Blanes, J. Serra-Sagristà, and A. Kiely,
"Review and Implementation of the Emerging CCSDS Recommended Standard
for Multispectral and Hyperspectral Lossless Image Coding," in First
International Conference on Data Compression, Communications and Processing
(CCP) 2011, Palinuro, Cilento Coast, Italy, 2011, pp. 222-228.
[187] A. Abrardo, M. Barni, A. Bertoli, R. Grimoldi, E. Magli, and R. Vitulli, Satellite
Data Compression. Madison, WI: Springer Science+Business Media, 2011.
[188] L. N. Faria, L. M. G. Fonseca, and M. H. M. Costa, "Performance Evaluation of
Data Compression Systems Applied to Satellite Imagery," Journal of Electrical
and Computer Engineering, vol. 2012, p. 15, 2012.
[189] A. Plaza, "Towards Real-Time Compression of Hyperspectral Images Using
Virtex-II FPGAs," in Euro-Par 2007 Parallel Processing, ed, 2007, pp. 248-257.
[190] G. Yu, T. Vladimirova, and M. Sweeting, "FPGA-based On-Board
Multi/Hyperspectral Image Compression System," in IEEE International
Conference on Geoscience and Remote Sensing Symposium, 2009 (IGARSS
2009), Capetown, Africa, 2009.
[191] G. Yu, T. Vladimirova, and M. Sweeting, "A New Automatic On-Board
Multispectral Image Compression System for Leo Earth Observation Satellites,"
in 15th International Conference on Digital Signal Processing, 2007 (DSP 2007),
Cardiff, UK, 2007, pp. 395-398.
[192] N. Aranki, A. Bakhshi, D. Keymeulen, and M. Klimesh, "Fast and adaptive
lossless on-board hyperspectral data compression system for space applications,"
in Aerospace conference, 2009 IEEE, 2009, pp. 1-8.
[193] N. Aranki, D. Keymeulen, A. Bakhshi, and M. Klimesh, "Hardware
Implementation of Lossless Adaptive and Scalable Hyperspectral Data
Compression for Space," in Adaptive Hardware and Systems, 2009. AHS 2009.
NASA/ESA Conference on, 2009, pp. 315-322.
[194] A. G. Schmidt, J. P. Walters, K. M. Zick, M. French, D. Keymeulen, N. Aranki, et
al., "Applying Radiation Hardening by Software to Fast Lossless compression
prediction on FPGAs," in Aerospace Conference, 2012 IEEE, 2012, pp. 1-10.
[195] M. Bucciero, J. P. Walters, R. Moussalli, G. Shanyuan, and M. French, "The
PowerPC 405 Memory Sentinel and Injection System," in Field-Programmable
Custom Computing Machines (FCCM), 2011 IEEE 19th Annual International
Symposium on, 2011, pp. 154-161.
[196] A. G. Schmidt and M. French, "Fast lossless image compression with Radiation
Hardening by hardware/software co-design on platform FPGAs," in Application-
Specific Systems, Architectures and Processors (ASAP), 2013 IEEE 24th
International Conference on, 2013, pp. 103-106.
253
[197] H. Yin-Tsung, L. Cheng-Chen, and H. Ruei-Ting, "Lossless Hyperspectral Image
Compression System-Based on HW/SW Codesign," Embedded Systems Letters,
IEEE, vol. 3, pp. 20-23, 2011.
[198] C. González, S. Sánchez, A. Paz, J. Resano, D. Mozos, and A. Plaza, "Use of
FPGA or GPU-based architectures for remotely sensed hyperspectral image
processing," Integration, the VLSI Journal, vol. 46, pp. 89-103, 3// 2013.
[199] C. Egho and T. Vladimirova, "Hardware acceleration of the Integer Karhunen-
Loève Transform algorithm for satellite image compression," in Geoscience and
Remote Sensing Symposium (IGARSS), 2012 IEEE International, 2012, pp. 4062-
4065.
[200] C. Egho, T. Vladimirova, and M. N. Sweeting, "Acceleration of Karhunen-Loève
transform for System-on-Chip platforms," in Adaptive Hardware and Systems
(AHS), 2012 NASA/ESA Conference on, 2012, pp. 272-279.
[201] Q. Liu and B. Hu, "The Hyper-Spectral Image Compression System Based on
DSP," in 2008 International Workshop on Education Technology and Training
(ETT) & 2008 International Workshop on Geoscience and Remote Sensing (GRS),
Shanghai, China, 2008, pp. 171-174.
[202] J. Fan, J. Zhou, X. Chen, and W. Shen, "Hyperspectral image data compression
based on DSP," pp. 78500H-78500H, 2010.
[203] G. Krishnamurthy. (2004, 2nd June 2010). C Implementation of the
TMS320C64x Intrinsic Operators (SPRAA75). Available:
http://focus.ti.com/lit/an/spraa75/spraa75.pdf
[204] J. Wu, T.-J. Hsieh, T. Li, Y.-L. Chang, and B. Huang, "Digital signal processor-
based three-dimensional wavelet error-resilient lossless compression of high-
resolution spectrometer data," Journal of Applied Remote Sensing, vol. 5, pp.
051504-051504, 2011.
[205] S. Lopez, T. Vladimirova, C. Gonzalez, J. Resano, D. Mozos, and A. Plaza, "The
Promise of Reconfigurable Computing for Hyperspectral Imaging Onboard
Systems: A Review and Trends," Proceedings of the IEEE, vol. 101, pp. 698-722,
2013.
[206] Texas-Instruments. (2013, 19th July 2013). C6747/45/43 Power Consumption
Summary. Available:
http://processors.wiki.ti.com/index.php/C6747/45/43_Power_Consumption_Sum
mary
[207] Advantech-Ltd. (2008, June 24). TMDSEVM6678L EVM - Technical Reference
Manual Version 2.01 (SPRUH58). Available:
http://wfcache.advantech.com/support/DSPM-8301E_EVM%20(6678)-
3.0/TMDSEVM6678L_Technical_Reference_Manual_2V01_0320.pdf
[208] NVidia. (2013, 28 July 2013). NVIDIA Tesla C1060 Computing Processor.
Available: http://www.nvidia.co.uk/object/tesla_c1060_uk.html
[209] N. Saban. (2012, 20th August 2013). Multicore DSP vs GPUs. Available:
http://www.sagivtech.com/contentManagment/uploadedFiles/fileGallery/Multi_co
re_DSPs_vs_GPUs_TI_for_distribution.pdf
[210] SSTL. (2015, 12 September 2015). EO & Science Platforms - CARBONITE-1.
Available: http://www.sstl.co.uk/Products/EO-Science-Platforms/CARBONITE-1
[211] SSTL. (2015, 12 September 2015). Leaders in Satellite Technolgy - Surrey
Satellite Technology Ltd. Available: http://www.sstl.co.uk/About-SSTL/Our-
Story
[212] B. Taylor, C. Underwood, A. Dyer, C. Ashton, S. Rason, and J. Browning, "The
Micro Radiation Environment Monitor (MuREM) and SSTL Radiation Monitor
254
(SSTL RM) on TechDemoSat-1," in 12th European Conference on Radiation and
Its Effects on Components and Systems (RADECS), 2011, 2011, pp. 535-540.
[213] B. D. S. Peter. (2014, 1 November 2015). Surrey Founder Credits Consumer
Electronics for Fomenting Small-Satellite Revolution. Available:
http://spacenews.com/40019surrey-founder-credits-consumer-electronics-for-
fomenting-small-satellite/
[214] H. Kuang-Hua and J. A. Abraham, "Algorithm-Based Fault Tolerance for Matrix
Operations," IEEE Transactions on Computers, vol. C-33, pp. 518-528, 1984.
[215] P. Du, A. Bouteiller, G. Bosilca, T. Herault, and J. Dongarra, "Algorithm-based
Fault Tolerance for Dense Matrix Factorizations," SIGPLAN Not., vol. 47, pp.
225-234, 2012.
[216] F. Oboril, M. B. Tahoori, V. Heuveline, D. Lukarski, and J. P. Weiss, "Numerical
Defect Correction as an Algorithm-Based Fault Tolerance Technique for Iterative
Solvers," in 2011 17th IEEE Pacific Rim International Symposium on Dependable
Computing (PRDC), Pasadena, California, USA, 2011, pp. 144-153.
[217] P. Prata and J. G. Silva, "Algorithm Based Fault Tolerance Versus Result-
Checking for Matrix Computations," in The Twenty-Ninth Annual International
Symposium on Fault-Tolerant Computing, 1999. Digest of Papers. , Madison,
Wisconsin, 1999, pp. 4-11.
[218] M. E. Blum, Designing Programs to Check Their Work. Technical Report TR-88-
009. Berkeley, California: International Computer Science Institute, 1988.
[219] M. Blum and H. Wasserman, "Reflections on the Pentium Division Bug," IEEE
Transactions on Computers, vol. 45, pp. 385-393, 1996.
[220] R. Freivalds, "Fast probabilistic algorithms," in Mathematical Foundations of
Computer Science 1979. vol. 74, J. Bečvář, Ed., ed: Springer Berlin Heidelberg,
1979, pp. 57-69.
[221] M. Blum and S. Kannan, "Designing Programs that Check Their Work," Journal
of the Association for Computing Machinery (ACM), vol. 42, pp. 269-291, 1995.
[222] A. R. Chowdhurry, "Manual and Compiler Assisted Methods for Generating
Fault-Tolerant Parallel Programs," PhD, University of Illinois at Urbana-
Champaign, 1995.
[223] B. Penna, T. Tillo, E. Magli, and G. Olmo, "Transform Coding Techniques for
Lossy Hyperspectral Data Compression," IEEE Transactions on Geoscience and
Remote Sensing, vol. 45, pp. 1408-1421, 2007.
[224] J. J. Gerbrands, "On the Relationships between SVD, KLT and PCA," Pattern
Recognition, vol. 14, pp. 375-381, // 1981.
[225] A. Kaarna, "Integer PCA and Wavelet Transforms for Multispectral Image
Compression," in IEEE International Conference on Geoscience and Remote
Sensing Symposium, 2001 (IGARSS 2001), Sydney, Australia, 2001, pp. 1853-
1855.
[226] A. V. Nefian and M. H. Hayes, III, "Face Detection and Recognition Using
Hidden Markov Models," in International Conference on Image Processing, 1998
(ICIP 98), Chicago, Illinois, USA, 1998, pp. 141-145.
[227] P. Quintiliano and A. Santa-Rosa, "Detection of Streets Based On KLT Using
IKONOS Multispectral Images," in 2nd GRSS/ISPRS Joint Workshop on Remote
Sensing and Data Fusion over Urban Areas, 2003 (URBAN 2003), Berlin,
Germany, 2003, pp. 186-190.
[228] I. Blanes and J. Serra-Sagristà, "Cost and Scalability Improvements to the
Karhunen-Loeve Transform for Remote-Sensing Image Coding," IEEE
Transactions on Geoscience and Remote Sensing, vol. 48, pp. 2854-2863, 2010.
255
[229] S. A. Bochkanov. (2011, 10 Dec 2011). ALGLIB - Open Source. Available:
http://www.alglib.net/
[230] A. M. Turing, "Rounding-off Errors in Matrix Processes," The Quarterly Journal
of Mechanics and Applied Mathematics, vol. 1, pp. 287-308, January 1, 1948
1948.
[231] W. Lei, W. Jiaji, J. Licheng, and S. Guangming, "3D Medical Image Compression
Based on Multiplierless Low-Complexity RKLT and Shape-Adaptive Wavelet
Transform," in 16th IEEE International Conference on Image Processing 2009
(ICIP 2009), Cairo, Egypt, 2009, pp. 2521-2524.
[232] W. Sweldens, "The Lifting Scheme: A Custom-Design Construction of
Biorthogonal Wavelets," Applied and Computational Harmonic Analysis, vol. 3,
pp. 186-200, 1996.
[233] NASA-JPL. (2010, 10 Dec 2011). Ordering Free AVIRIS Standard Data
Products. Available: http://aviris.jpl.nasa.gov/html/aviris.freedata.html
[234] NASA-JPL. (2010, 10 Dec 2011). Hyperspectral Image Compression - AVIRIS &
Hyperion Raw Data. Available: http://compression.jpl.nasa.gov/hyperspectral/
[235] GICI. (2011, 14 July 2013). Group on Interactive Coding of Images (GICI).
Available: http://gici.uab.cat/GiciWebPage/index.php
[236] GICI. (2011, 14 July 2013). Spectral Transform Software. Available:
http://gici.uab.cat/GiciWebPage/downloads.php#spectral
[237] D. Taubman. (2010, 10 Dec 2011). Kakadu Software. Available:
http://www.kakadusoftware.com/
[238] HP-Labs. (2005, 4 May 2010). HP Labs LOCO-I/JPEG-LS Home Page.
Available: http://www.hpl.hp.com/loco/
[239] I. Blanes, J. Serra-Sagristà, M. W. Marcellin, and J. Bartrina-Rapesta, "Divide-
and-Conquer Strategies for Hyperspectral Image Processing: A Review of Their
Benefits and Advantages," Signal Processing Magazine, IEEE, vol. 29, pp. 71-81,
2012.
[240] I. Blanes, J. Serra-Sagristà, and P. Schelkens, "Divide-and-Conquer Decorrelation
for Hyperspectral Data Compression," in Satellite Data Compression, B. Huang,
Ed., ed: Springer New York, 2011, pp. 215-232.
[241] GICI. (2011, 14 July 2013). Emporda Software. Available:
http://gici.uab.cat/GiciWebPage/emporda.php
[242] E. Augé, J. E. Sánchez, A. Kiely, I. Blanes, and J. Serra-Sagristà, "Performance
Impact of Parameter Tuning on the CCSDS-123 Lossless Multi- and
Hyperspectral Image Compression Standard," Journal of Applied Remote Sensing,
vol. 7, pp. 074594-074594, 2013.
[243] F. Garcia-Vilchez, J. Serra-Sagrista, J. Bartrina-Rapesta, and F. Auli-Llinas,
"Hyperspectral Image Coding Using 3D Transform and the Recommendation
CCSDS-122-B-1," in Data Compression Conference, 2008 (DCC 2008), 2008,
pp. 103-112.
[244] H. Man, A. Docef, and F. Kossentini, "Performance Analysis of the JPEG2000
Image Coding Standard," Multimedia Tools and Applications, vol. 26, pp. 27-57,
2005.
[245] K. Pearson, "Mathematical Contributions to the Theory of Evolution. III.
Regression, Heredity, and Panmixia," Philosophical Transactions of the Royal
Society of London. Series A, Containing Papers of a Mathematical or Physical
Character, vol. 187, pp. 253-318, 1896.
256
[246] M. Aikio, "Hyperspectral Prism-Grating-Prism Imaging Spectograph," Doctor of
Technology D.Tech. diss., Department of Electrical Engineering, University of
Oulu, Oulu, Finland, 2001.
[247] D. Keymeulen, N. Aranki, B. Hopson, A. Kiely, M. Klimesh, and K. Benkrid,
"GPU lossless hyperspectral data compression system for space applications," in
Aerospace Conference, 2012 IEEE, 2012, pp. 1-9.
[248] USGS. (2011, 18 May 2012). Hyperion Archive Scenes. Available:
http://eo1.usgs.gov/acquisition/hyperion
[249] A. B. Kiely and M. A. Klimesh, "Exploiting Calibration-Induced Artifacts in
Lossless Compression of Hyperspectral Imagery," IEEE Transactions on
Geoscience and Remote Sensing, vol. 47, pp. 2672-2678, 2009.
[250] M. Abrams, "Simulation of ASTER Data Using AVIRIS Images," in Summaries
of th Third Annual JPL Airborne Gescience Workshop, Pasadena, California,
1992, pp. 83-84.
[251] L. S. Kalman and G. R. Pelzer, "Simulation of Landsat Thematic Mapper Imagery
Using AVIRIS Hyperspectral Imagery," presented at the Summaries of the Fourth
Annual JPL Airborne Geoscience Workshop, Pasadena, California, 1993.
[252] V. Willart Soufflet and R. Santer, "Using AVIRIS for In-Flight Calibration of the
Spectral Shifts of SPOT HRV and of AVHRR," in Summaries of the Fourth
Annual JPL Airborne Geoscience Workshop, Pasadena, California, 1993, pp. 197-
200.
[253] M. A. Wetzel, "Technical Note Simulation of Radiances for Future AVHRR
Platforms with the AVIRIS Spectral Radiometer," International Journal of
Remote Sensing, vol. 16, pp. 1167 - 1177, 1995.
[254] S. G. Ungar, J. S. Pearlman, J. A. Mendenhall, and D. Reuter, "Overview of the
Earth Observing One (EO-1) Mission," IEEE Transactions on Geoscience and
Remote Sensing, vol. 41, pp. 1149-1159, 2003.
[255] P. S. Thenkabail, E. A. Enclona, M. S. Ashton, C. Legg, and M. J. De Dieu,
"Hyperion, IKONOS, ALI, and ETM+ Sensors in the Study of African
Rainforests," Remote Sensing of Environment, vol. 90, pp. 23-43, 2004.
[256] HDF-Group. (2013, June 25 2013). HDF Specification and Developer's Guide
(HDF4 Release 2.9). Available:
http://www.hdfgroup.org/release4/doc/DSpec_html/DS.pdf
[257] D. A. Klarner and S. S. Magliveras, "The Number of Tilings of a Block with
Blocks," European Journal of Combinatorics, vol. 9, pp. 317-330, 7// 1988.
[258] H. Yang, D. Qian, W. Zhu, J. E. Fowler, and I. Banicescu, "Parallel Data
Compression for Hyperspectral Imagery," in IEEE International Conference on
Geoscience and Remote Sensing Symposium, 2008 (IGARSS 2008), Boston, USA,
2008, pp. 986-989.
[259] S. Subramaniam, N. Gat, A. Ratcliff, and M. Eismann, "Real-Time Hyperspectral
Data Compression Using Principal Components Transformation," presented at the
Proceedings of 9th AVIRIS Earth Science and Applications Workshop, Pasadena,
California, 2000.
[260] T. Vladimirova and A. Steffens, "Compression of Multispectral Images On-Board
Observation Satellites," in Proceedings of the International Conference "Space,
Ecology, Safety" (SES '05), Varna, Bulgaria, 2005, pp. 105-110.
[261] T. Vladimirova, M. Meerman, and A. Curiel, "On-Board Compression of
Multispectral Images for Small Satellites," in IEEE International Conference on
Geoscience and Remote Sensing Symposium, 2006 (IGARSS 2006), Denver,
Colorado, USA, 2006, pp. 3533-3536.
257
[262] N. R. Mat Noor and T. Vladimirova, "Integer KLT Design Space Exploration for
Hyperspectral Satellite Image Compression," in Lecture Notes in Computer
Science - Convergence and Hybrid Information Technology. vol. 6935, G. Lee, D.
Howard, and D. Slezak, Eds., ed: Springer Berlin / Heidelberg, 2011, pp. 661-
668.
[263] N. R. Mat Noor and T. Vladimirova, "Parallel Implementation of Lossless
Clustered Integer KLT Using OpenMP," in 2012 NASA/ESA Conference on
Adaptive Hardware and Systems (AHS-2012), Erlangen, Germany, 2012, pp. 122-
128.
[264] B. Barney. (2011, 1 January 2012). OpenMP. Available:
https://computing.llnl.gov/tutorials/openMP/
[265] R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, and R. Menon,
Parallel Programming in OpenMP. San Diego, USA: Academic Press, 2001.
[266] T. Mattson and L. Meadows, "Hands-On Introduction to OpenMP (Tutorial
Session)," in International Conference for High Performance Computing,
Networking, Storage and Analysis, Austin, TX, 2008.
[267] B. Chapman, G. Jost, and R. Van Der Pas, Using OpenMP Portable Shared
Memory Parallel Programming. Cambridge, MA: The MIT Press, 2008.
[268] "IEEE Standard for Floating-Point Arithmetic," IEEE Std 754-2008, pp. 1-58,
2008.
[269] N. R. Mat Noor and T. Vladimirova, "Investigation into Lossless Hyperspectral
Image Compression for Satellite Remote Sensing," International Journal of
Remote Sensing, vol. 34, pp. 5072-5104, 2013/07/20 2013.
[270] H. Wasserman and M. Blum, "Software Reliability via Run-Time Result-
Checking," Journal of the Association for Computing Machinery (ACM), vol. 44,
pp. 826-849, 1997.
[271] R. Rubinfeld, "On the Robustness of Functional Equations," in 35th Annual
Symposium on Foundations of Computer Science, 1994, Santa Fe, New Mexico,
1994, pp. 288-299.
[272] D. D. Chinn and R. K. Sinha, "Bounds on Sample Space Size for Matrix Product
Verification," Information Processing Letters, vol. 48, pp. 87-91, 1993.
[273] P. Prata, M. Rela, H. Madeira, and J. G. Silva, "Robust Assertions and Fail-
Bounded Behavior," Journal of the Brazilian Computer Society, vol. 10, pp. 20-
32, 2005.
[274] ISO/IEC, "Programming Languages - C," ed. New York, USA: American
National Standards Institute, 1999, p. 554.
[275] R. W. Hamming, "Error Detecting and Error Correcting Codes," The Bell System
Technical Journal, vol. 29, 1950.
[276] Texas-Instruments. (2008, June 23, 2013). OMAP-L137 Datasheet - Low-Power
Applications Processor (SPRS563B). Available:
http://www.ti.com/lit/ds/symlink/omap-l137.pdf
[277] Texas-Instruments. (2013, June 23). TMS320C6678 Datasheet - Multicore Fixed
and Floating-Point Digital Signal Processor (SPRS691D). Available:
http://www.ti.com/lit/ds/symlink/tms320c6678.pdf
[278] TI-E2E-Community. (2012, June 23). How is SYS/BIOS related to XDCtools and
RTSC? Available:
http://processors.wiki.ti.com/index.php/How_is_SYS/BIOS_related_to_XDCtools
_and_RTSC%3F
[279] TI-E2E-Community. (2012, June 23). Programming the EDMA3 using the Low-
Level Driver (LLD). Available:
258
http://processors.wiki.ti.com/index.php/Programming_the_EDMA3_using_the_L
ow-Level_Driver_(LLD)
[280] C. Courtney. (2012, June 24, 2013). C6678 Core Frequency: 1 or 1.25 GHz?
Available: http://e2e.ti.com/support/dsp/c6000_multi-
core_dsps/f/639/t/192687.aspx
[281] L. Hung-Chih, W. Yu-Jen, C. Kai-Ting, Y. Shang-Yu, C. Wei-Nien, T. Chia-
Yang, et al., "Algorithms and DSP implementation of H.264/AVC," in Design
Automation, 2006. Asia and South Pacific Conference on, 2006, p. 8 pp.
[282] N. Dahnoun, Digital Signal Processing Implementation Using the
TMS320C6000TM
DSP Platform. New Jersey: Prentice Hall, 2000.
[283] P. Jounin. (2010, June 27 2013). TFTPD32: An Opensource IPv6 Ready TFTP
Server/Service for Windows: TFTP Server. Available: http://www.jounin.net/
[284] C. Courtney. (2011, July 6, 2013). About the Power Consumption of
TMS320C6678. Available: http://e2e.ti.com/support/dsp/c6000_multi-
core_dsps/f/639/t/128820.aspx
[285] Texas-Instruments. (2013, 19th July 2013). DSP+ARM9 - OMAP-L1x - OMAP-
L137. Available: http://www.ti.com/product/OMAP-L137
[286] Texas-Instruments. (2014, 21 October 2015). C6678 Power Consumption Model
(Rev. D). Available: http://www.ti.com/lit/zip/sprm545
[287] Texas-Instruments. (2013, 21 October 2015). OMAP-L137 Power Consumption
Model (Rev. C). Available:
http://processors.wiki.ti.com/images/7/79/OMAPL137_PowerSpreadsheet_RevC.
zip
[288] Texas-Instruments, "Power Consumption Summary for KeyStone C66x Devices,"
ed, 2011.
[289] E. R. Tufte, The Cognitive Style of PowerPoint: Pitching Out Corrupts Within.
Cheshire, Connecticut: Graphic Press, 2006.
[290] M. D. Adams. (2012, 24 July 2013). The JasPer Project Home Page. Available:
http://www.ece.uvic.ca/~frodo/jasper/
[291] Texas-Instruments. (2012, 24 July 2013). Easing broadcast and digital cinema
development, Texas Instruments unveils industry's first real-time JPEG 2000 HD
solution on multicore DSP. Available:
http://newscenter.ti.com/index.php?s=32851&item=127846
[292] B. Olivier. (2014, 14 October 2014). EOLi Client Software. Available:
http://earth.esa.int/EOLi/EOLi.html
[293] M. Galassi, J. Davies, J. Theiler, B. Gough, R. Priedhorsky, G. Jungman, et al.,
GNU Scientific Library Reference Manual, 3 ed. UK: Network Theory Ltd., 2009.
[294] A. da Silva Curiel, L. Boland, J. Cooksley, M. Bekhti, P. Stephens, W. Sun, et al.,
"First Results From the Disaster Monitoring Constellation (DMC)," Acta
Astronautica, vol. 56, pp. 261-271, 2005.
[295] A. da Silva Curiel, A. Wicks, M. Meerman, L. Boland, and M. Sweeting, "Second
Generation Disaster Monitoring Microsatellite Platform," Acta Astronautica, vol.
51, pp. 191-197, 2002.
[296] D. Bannon and R. Thomas. (2004, 23rd August 2009). Meeting the Optical
Demands of Next Generation Hyperspectral Imaging Spectrometers - Photonics
Tech Briefs (NASA Tech Briefs). Available:
http://www.headwallphotonics.com/downloads/photonics_tech_briefs.pdf
[297] K. S. Ng and L. M. Cheng, "Artificial Neural Network for Discrete Cosine
Transform and Image Compression," in Proceedings of the Fourth International
Conference on Document Analysis and Recognition, 1997, 1997, pp. 675-678.
259
[298] R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3rd. ed. New Jersey,
USA: Pearson Prentice Hall, Pearson Education, Inc., 2008.
[299] J. E. Fowler and J. T. Rucker, "3D Wavelet-Based Compression of Hyperspectral
Imagery," in Hyperspectral Data Exploitation: Theory and Applications, C. I.
Chang, Ed., ed: John Wiley & Sons, Inc., 2007.
[300] GICI. (2011, 14 July 2013). Gici Emporda Manual. Available:
http://gici.uab.cat/GiciApps/EmpordaManual.pdf
[301] D. Taubman. (2006, 16 Nov 2013). Kakadu JPEG2000 Discussion Group - 32-bit
Integer Data. Available:
https://groups.yahoo.com/neo/groups/kakadu_jpeg2000/conversations/topics/3666
[302] R. Chassaing, DSP Applications Using C and the TMS320C6x DSK. New York:
John Wiley & Sons Inc., 2002.
[303] A. Singh and S. Srinivasan, Digital Signal Processing Implementations: Using
DSP Microprocessors with Examples from TMS320C54xx. California:
Thomson/Brooks/Cole Publishing Co., 2004.
[304] Texas-Instruments. (2012, 27 June 2013). TMS320C6000 Optimizing Compiler
V7.4 (SPRU187U). Available: http://www.ti.com/lit/ug/spru187u/spru187u.pdf
260
Appendix A : Hyperspectral Imaging Techniques
Two types of multispectral/hyperspectral imaging techniques will be explained briefly.
The first type is commonly used in multispectral imager and most of the earlier
hyperspectral imager by using a filter attached with a 2D detector (such as CCD). The
filter is sensitive to certain wavelength and having a spectral bandpass for the detector to
record the scene only within the spectral bandpass wavelength. The numbers of bands
that can be captured are determined by the numbers of filter type used. The attachment of
the filter is whether fixed or by rotating filter wheel that can be found in MSX, Terra,
Aqua and many earlier hyperspectral missions.
One of the examples of the imaging devices is the Surrey Satellite Technology Ltd.
(SSTL) Disaster Monitoring Constellation (DMC) multispectral imager as shown in
Figure A-1 below. The imager comprises 6 lenses and 6 sensors (Kodak™ CCD - 10, 000
pixels) configured in 2 banks where each bank is mounted angled away from nadir by
approximately 12° [294]. Each 2 pairs of the lenses equipped with near infra-red (NIR),
red and green filter for 3 bands multispectral imaging [295]. It employs the pushbroom
imaging technology using 2 cameras per band thus provide dual swath width with a
combined swath width of 600 km and 32 m GSD [6]. The resulting image that can be
acquired by the imager consists of near 20,000 pixels for each of green (520-620 nm), red
(630-690 nm) and NIR (760-900 nm) spectral bands [294].
Figure A-1: SSTL DMC Multispectral Imager [294]
Another type of imager is by using a dispersive element (e.g. grating or prism- imaging
spectrometer) along with a field-limiting entrance slit and a 2D detector. All the
information in this paragraph was taken partially from [246] that worked on prism-
grating-prism spectrograph. The basic elements for a hyperspectral imaging are shown in
Figure A-2 below. The light source (sun) illuminates the object to be recorded and the
261
entrance optics (telescope or camera lens) collects the radiation from the object, forms an
image on the Image Plane 1, where the entrance slit of the imaging spectrograph is
placed. The slit is a field-stop to determine the instantaneous field of view (IFOV) in
spatial directions to a length of ∆y and a width of ∆x. As a result from the entrance
optics, the point A on the object will have its image A’ on the entrance slit. The radiation
on the entrance slit will be collimated by a lens and then dispersed by a dispersing
element, so that the direction of propagation of the radiation depends on its wavelength.
Then it will be focused by the focusing optics on the Image Plane 2 where the 2D
detector is placed. Every point A is represented on the 2D detector by a series of
monochromatic images forming a continuous spectrum in the direction of the λ axis with
different wavelength. The ∆x defines the spectral resolution that can be seen as ∆x’’ on
the 2D detector. The next spatial dimensions, xN + 1 and xN + 2 are generated by
moving the FOV of the instrument relative to the scene and will be recorded as the
second and the third images inside the hyperspectral image cube.
Figure A-2: Basic Elements of Hyperspectral Imager/Spectrometer [246]
One of the advantageous of the second technique over the first technique is the imaging
spectrograph obtained the spectrum of each point simultaneously in a line, and thus
avoiding the mixing of spectral signatures in a temporally changing measurement
environment [296]. The second technique was proposed in [295] for hyperspectral
imaging in the DMC for small satellite due to the compactness of the design.
x
y
xN
xN + 1
xN + 2 ∆x
∆y
Measured area A
Light source
Entrance slit A’
Collimating optics
Dispersing element
(e.g. grating or prism)
Focusing optics BandZ
Band0
Band1
A”
∆y”
∆x”
A”
A”
y
x z
xN + 2
xN + 1
xN
Imaging
spectrograph
Entrance
optics
Image cube
Image plane 2
(2D CCD sensor)
Image plane 1
262
Appendix B : Compression Performance
Measures
In general, when we have 2 sets of data, d1 and d2, which represent the same information
or it can also be said that d2 is the compressed version of d1; the compression ratio (CR)
and the bit-rate (in bpp) of the compressed data are defined as:
Compression ratio, CR =d1
d2 (B-1)
bpp = Original image bit-rate CR⁄ (B-2)
For lossy compression, there are other methods to measure the quality of reconstructed
images compared with the original ones, such as PSNR and SNR. To explain this, mean-
squared error (MSE) for B-bit square hyperspectral image with dimension X×Y×Z will be
defined first as in (B-3). Here, 𝑓(𝑥, 𝑦, 𝑧) is the reconstructed image (after decoding or
decompress) and 𝑓(𝑥, 𝑦, 𝑧) is the original image. Calculation of the PSNR is given in
(B-4) [297]. The measurement of SNR is given in (B-5) [298]. Here, the original image is
‘signal’ whereas the difference between the original and the reconstructed image is
referred as ‘noise’.
MSE = 1
𝑋 × 𝑌 × 𝑍∑ ∑ ∑(𝑓(𝑥, 𝑦, 𝑧) − 𝑓(𝑥, 𝑦, 𝑧))
2𝑍
𝑧=0
𝑌
𝑦=0
𝑋
𝑥=0
(B-3)
PSNR = 10 log10
(2𝐵 − 1)2
MSE (B-4)
SNR
= 10 log10 ∑ ∑ ∑𝑓(𝑥, 𝑦, 𝑧)2
𝑍
𝑧=0
𝑌
𝑦=0
𝑋
𝑥=0
∑∑∑(𝑓(𝑥, 𝑦, 𝑧) − 𝑓(𝑥, 𝑦, 𝑧))2
Z
z=0
Y
y=0
X
x=0
⁄ (B-5)
Other method to measure the SNR value is as in (B-6) [114, 299].
SNR = 10 log10 (𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑒 𝑜𝑓 𝑓(𝑥, 𝑦, 𝑧)
𝑀𝑆𝐸) (B-6)
263
Appendix C : CCSDS Lossless Multispectral and
Hyperspectral Image Compression
Recommendation
The CCSDS-MHC algorithm predicts the value of each sample by considering the sample
values of previously encoded samples in a small 3D neighbourhood as shown in Figure
C-1. P preceding bands including the current band are used for the estimation process
where P should be in the range 0 ≤ P ≤ 15. In the figure, 𝑠𝑧,𝑦,𝑥 is the current sample at
spatial location (x, y) and at current spectral band z.
The local sum value, 𝜎𝑧,𝑦,𝑥, is computed from previous sample values in band z that are
neighbours to the current sample, 𝑠𝑧,𝑦,𝑥. The selection of the neighbouring samples is
divided into two; neighbour-oriented and column-oriented local sums that are shown in
Figure C-2 of the current band. The local sum for the neighbour-oriented and column-
oriented samples is given in (C-1) and (C-2), respectively. At this point, the mean of the
local sum (i.e. 𝜎𝑧,𝑦,𝑥 4⁄ , or local mean as referred in [186]) can be thought of as the
preliminary estimate of the current sample 𝑠𝑧,𝑦,𝑥 [186].
The local difference vector, 𝑈𝑧,𝑦,𝑥 is then calculated by obtaining the differences between
the local sum and the previous sample values, as given in (C-3) for the full prediction
mode. The first three components from 𝑈𝑧,𝑦,𝑥 are omitted under the reduced prediction
mode. The first three components (referred to as directional local difference) are each
equal to the difference between the samples in the spectral band z and the local
sum 𝜎𝑧,𝑦,𝑥. The samples are shown in Figure C-3 (shaded in grey) where N, W and NW
stand for north, west and north-west, respectively, similarly with its superscript in (C-3).
The remaining components in 𝑈𝑧,𝑦,𝑥 (referred as central local difference) are each equal
to the difference between samples that are located at the same spatial position x and y in
the previous z – i spectral bands and the central local difference 𝜎𝑧−𝑖,𝑦,𝑥, where 1 ≤ i ≤ P.
264
𝑠𝑧−𝑃,𝑦−1,𝑥−1 𝑠𝑧−𝑃,𝑦−1,𝑥 𝑠𝑧−𝑃,𝑦−1,𝑥+1
P previous
bands
𝑠𝑧−𝑃,𝑦,𝑥−1 𝑠𝑧−𝑃,𝑦,𝑥
𝑠𝑧−1,𝑦−1,𝑥−1 𝑠𝑧−1,𝑦−1,𝑥 𝑠𝑧−1,𝑦−1,𝑥+1
𝑠𝑧−1,𝑦,𝑥−1 𝑠𝑧−1,𝑦,𝑥
𝑠𝑧,𝑦−1,𝑥−1 𝑠𝑧,𝑦−1,𝑥 𝑠𝑧,𝑦−1,𝑥+1
current
band
𝑠𝑧,𝑦,𝑥−1 𝑠𝑧,𝑦,𝑥
current
sample
Figure C-1: Typical Prediction Neighbourhood [123]
1× 𝑠𝑧,𝑦−1,𝑥−1
1× 𝑠𝑧,𝑦−1,𝑥
1× 𝑠𝑧,𝑦−1,𝑥+1
1× 𝑠𝑧,𝑦,𝑥−1
1× 𝑠𝑧,𝑦,𝑥
𝑠𝑧,𝑦−1,𝑥−1
4× 𝑠𝑧,𝑦−1,𝑥
𝑠𝑧,𝑦−1,𝑥+1
𝑠𝑧,𝑦,𝑥−1
𝑠𝑧,𝑦,𝑥
(a) Neighbour-oriented (b) Column-oriented
Figure C-2: Samples Selection for Local Sums [123]
𝜎𝑧,𝑦,𝑥 = 𝑠𝑧,𝑦,𝑥−1 + 𝑠𝑧,𝑦−1,𝑥−1 + 𝑠𝑧,𝑦−1,𝑥 + 𝑠𝑧,𝑦−1,𝑥+1 (C-1)
𝜎𝑧,𝑦,𝑥 = 4𝑠𝑧,𝑦−1,𝑥 (C-2)
x
z
y
265
𝑈𝑧,𝑦,𝑥 =
(
𝑑𝑧,𝑦,𝑥𝑁 = 4𝑠𝑧,𝑦−1,𝑥 − 𝜎𝑧,𝑦,𝑥
𝑑𝑧,𝑦,𝑥𝑊 = 4𝑠𝑧,𝑦,𝑥−1 − 𝜎𝑧,𝑦,𝑥
𝑑𝑧,𝑦,𝑥𝑁𝑊 = 4𝑠𝑧,𝑦−1,𝑥−1 − 𝜎𝑧,𝑦,𝑥
𝑑𝑧−1,𝑦,𝑥 = 4𝑠𝑧−1,𝑦,𝑥 − 𝜎𝑧−1,𝑦,𝑥
𝑑𝑧−2,𝑦,𝑥 = 4𝑠𝑧−2,𝑦,𝑥 − 𝜎𝑧−2,𝑦,𝑥
⋮𝑑𝑧−𝑃,𝑦,𝑥 = 4𝑠𝑧−𝑃,𝑦,𝑥 − 𝜎𝑧−𝑃,𝑦,𝑥)
(C-3)
NW 𝑠𝑧,𝑦−1,𝑥−1
N 𝑠𝑧,𝑦−1,𝑥
𝑠𝑧,𝑦−1,𝑥+1
W 𝑠𝑧,𝑦,𝑥−1
central 𝑠𝑧,𝑦,𝑥
Figure C-3: Directional Local Differences Computation in a Spectral Band [123]
The utilisation of the reduced prediction mode along with column-oriented local sums
produced smaller compressed image data volumes for uncalibrated input images from
pushbroom imagers. The use of the full prediction mode in combination with the
neighbour-oriented local sums on the other hand, produced smaller compressed image
data volumes for whiskbroom imagers, multispectral imagers and calibrated imagery.
[123, 186].
The predicted sample value, �̂�𝑧,𝑦,𝑥 is computed as per (C-4), taken from [186] for the sake
of simplicity of the algorithm description. Note that the divisions by 4 are due to the
explanation in [186] that use the local mean instead of the local sum, similarly for the
calculation of the local difference vector, 𝑈𝑧,𝑦,𝑥. W𝑧𝑇(𝑡) is a weight vector with similar
dimensions as 𝑈𝑧,𝑦,𝑥. Index t is defined in [123] as t = y·Nx + x where Nx is the
hyperspectral image width and the samples in the spectral band are arranged in raster-
scan order (Figure C-4). The weight vector can be initialised using default and custom
initialisations as presented in detail in [123].
�̂�𝑧,𝑦,𝑥 =𝜎𝑧,𝑦,𝑥
4+ W𝑧
𝑇(𝑡)𝑈𝑧,𝑦,𝑥
4 (C-4)
266
……
……
……
……
Figure C-4: Raster Scan Order
From (C-4), the predicted sample value is equal to the preliminary estimate (𝜎𝑧,𝑦,𝑥 4⁄ ) in
addition to an offset of W𝑧𝑇(𝑡) 𝑈𝑧,𝑦,𝑥 4⁄ . Hence, the offset acts as a prediction of how
much the sample 𝑠𝑧,𝑦,𝑥 differ from the preliminary estimate. The prediction error 𝑒𝑧,𝑦,𝑥 is
defined as:
𝑒𝑧,𝑦,𝑥 = 𝑠𝑧,𝑦,𝑥 − �̂�𝑧,𝑦,𝑥 (C-5)
The prediction error is used to update the weight vector for the next sample, W𝑧(𝑡 + 1)
utilising the sign algorithm as in (C-6).
W𝑧(𝑡 + 1) = W𝑧(𝑡) + 𝑈𝑧,𝑦,𝑥 ∙ sgn(𝑒𝑧,𝑦,𝑥) ∙ 2−𝜌(𝑡) (C-6)
The parameter 𝜌(𝑡) controls the adaptation rate that begins at some user-determined
initial value and increases by one until reaching some final value.
The integer “mapped prediction residual” 𝛿𝑧,𝑦,𝑥 is calculated using the prediction
error 𝑒𝑧,𝑦,𝑥. Allowing 𝑓 to denote a mapping from integers to non-negative integers
function,
𝑓(𝑛) = {
|𝑛| + 𝜃𝑧,𝑦,𝑥, |𝑛| > 𝜃𝑧,𝑦,𝑥
2|𝑛|, 0 ≤ 𝑛 ≤ 𝜃𝑧,𝑦,𝑥
−2𝑛 − 1, −𝜃𝑧,𝑦,𝑥 ≤ 𝑛 ≤ 0
(C-7)
where 𝜃𝑧,𝑦,𝑥 = min{round(�̂�𝑧,𝑦,𝑥), 2𝐷 − 1 − round(�̂�𝑧,𝑦,𝑥)} and D is the dynamic range of
the hyperspectral image. Then, 𝛿𝑧,𝑦,𝑥 is equal to 𝑓(𝑒𝑧,𝑦,𝑥) or 𝑓(−𝑒𝑧,𝑦,𝑥), subject to
whether �̂�𝑧,𝑦,𝑥 is less or greater than round(�̂�𝑧,𝑦,𝑥).
x
y
Nx
267
Appendix D : Integer KLT - Other Pivoting
Techniques
D.1 Partial Pivoting
For partial pivoting, at 𝑘 = 0 and with 𝑈𝑠(𝑘−1)
= 𝑈𝑠(−1)
= 𝐴, we choose the minimum
module of vector as defined in (D-1).
[(𝑢𝑖,𝑘(𝑘−1)
− 1) 𝑢𝑖,𝑍−1(𝑘−1)
⁄ ]𝑘≤𝑖<𝑍−1
=
[ (𝑢0,0
(−1)− 1 𝑢0,𝑍−1
(−1)⁄ )
(𝑢1,0(−1)
− 1 𝑢1,𝑍−1(−1)
⁄ )
⋮
(𝑢𝑟,0(−1)
− 1 𝑢𝑟,𝑍−1(−1)
⁄ )
⋮
(𝑢𝑍−1,0(−1)
− 1 𝑢𝑍−1,𝑍−1(−1)
⁄ )]
Generally, at k-th step,
=
[ (𝑢𝑘,𝑘
(𝑘−1)− 1 𝑢𝑘,𝑍−1
(𝑘−1)⁄ )
(𝑢𝑘+1,𝑘(𝑘−1)
− 1 𝑢𝑘+1,𝑍−1(𝑘−1)
⁄ )
⋮
(𝑢𝑟,𝑘(𝑘−1)
− 1 𝑢𝑟,𝑍−1(𝑘−1)
⁄ )
⋮
(𝑢𝑍−1,𝑘(𝑘−1)
− 1 𝑢𝑍−1,𝑍−1(𝑘−1)
⁄ )]
(D-1)
At 𝑘 = 0, let say that the minimum module is at row r, swap 0th
and r-th rows in 𝑃𝑠(0)
matrix (initially set as identity, I matrix), as well as in 𝑈𝑠(−1)
. In general form, at k-th step
and the minimum module is at row r (𝑘 ≤ 𝑟 ≤ 𝑍 − 1), swap k-th and r-th rows in 𝑃𝑠(𝑘)
and 𝑈𝑠(𝑘−1)
. Factorisation step is similar to quasi-complete pivoting discussed in Section
3.1.2.1.2, except for 𝑆𝑠(𝑘)
. During 𝑘 = 0, and by using 𝑈𝑠(−1)
from pivoting step before,
we can define 𝑆𝑠(0)
as:
𝑆𝑠(0)
= 𝐼 − 𝑠0𝑒𝑍−1𝑒0𝑇 = [
1 0 ⋯ 00 1 ⋯ 0⋮ ⋮ ⋱ 0
−𝑠0 0 ⋯ 1
]
Where
(D-2)
268
I is identity matrix with size 𝑍 × 𝑍,
𝑠0 = (𝑢0,0(0)
− 1) 𝑢0,𝑍−1(0)
⁄ at position (𝑍 − 1, 0),
𝑒𝑍−1 is a (𝑍 − 1)-th standard basis vector with size Z, [
00⋮
𝑞𝑍−1
],
where 𝑞𝑍−1 = 1,
𝑒0𝑇 is a transpose of 0
th standard basis vector with size Z,
[𝑞0 0 ⋯ 0], where 𝑞0 = 1, and
Generally, at k-th step,
𝑆𝑠(𝑘)
= 𝐼 − 𝑠𝑘𝑒𝑍−1𝑒𝑘𝑇 =
[ 1 0 ⋯ 0 ⋯ 00 1 ⋯ 0 ⋯ 0⋮ ⋮ ⋱ ⋮ ⋯ 00 0 ⋯ 1 ⋯ 0⋮ ⋮ ⋮ ⋮ ⋱ ⋮0 0 ⋯ −𝑠𝑘 ⋯ 1]
Where
𝑠𝑘 = (𝑏𝑘,𝑘(𝑘)
− 1) 𝑏𝑘,𝑍−1(𝑘)
⁄ at position (𝑍 − 1, 𝑘),
𝑒𝑘𝑇 is a transpose of k-th standard basis vector with size Z,
[0 ⋯ 𝑞𝑘 ⋯ 0], where 𝑞𝑘 = 1
D.2 Partial Maximum Pivoting
At k-th step, partial maximum pivoting is performed by finding the maximum module of
a (𝑍 − 1)-th column vector defined as:
[𝑢𝑖,𝑍−1(𝑘−1)
]𝑘≤𝑖<𝑍−1
=
[ 𝑢𝑘,𝑍−1
(𝑘−1)
𝑢𝑘+1,𝑍−1(𝑘−1)
⋮
𝑢𝑍−1,𝑍−1(𝑘−1)
]
(D-3)
At k-th step and the maximum module is found and located at row r, swap k-th and r-th
rows in 𝑃𝑠(𝑘)
and 𝑈𝑠(𝑘−1)
. Factorisation step is similar to partial pivoting technique as
discussed in Section D.1.
D.3 Complete Maximum Pivoting
At k-th step, complete maximum pivoting is performed by finding the maximum module
of a 𝑍 × 𝑍 matrix defined as:
269
[𝑢𝑖,𝑗(𝑘−1)
] 𝑘≤𝑖<𝑍−1𝑘+1≤𝑗<𝑍−1
=
[ 𝑢𝑘,𝑘+1
(𝑘−1)𝑢𝑘,𝑘+2
(𝑘−1)⋯ 𝑢𝑘,𝑍−1
(𝑘−1)
𝑢𝑘+1,𝑘+1(𝑘−1)
𝑢𝑘+1,𝑘+2(𝑘−1)
⋯ 𝑢𝑘+1,𝑍−1(𝑘−1)
⋮ ⋮ ⋱ ⋮
𝑢𝑍−1,𝑘+1(𝑘−1)
𝑢𝑍−1,𝑘+2(𝑘−1)
⋯ 𝑢𝑍−1,𝑍−1(𝑘−1)
]
(D-4)
At k-th step and the maximum module is found and located at row r and column c, swap
k-th and r-th rows in 𝑃𝑠(𝑘)
and 𝑈𝑠(𝑘−1)
. For factorisation step, it is similar to quasi-
complete pivoting discussed in Section 3.1.2.1.2.
270
Appendix E : Details of Integer KLT Modelling
Experiment
E.1 Integer KLT
Java-based Integer KLT software from GICI [235] named rklt.jar is executed on the
desktop system by invoking its syntax as shown in Listing E-1.
java -jar rklt.jar -i <input.ext> -o <encoded.ext> -ig <NZ NY NX
DataType ByteOrder> -og <NZ NY NX DataType ByteOrder> -d <encode@decode>
-ti <overhead_info.ext>
Listing E-1: Integer KLT – Java Application Syntax
The flags and parameters used in Listing E-1 are explained in Table E-1, covering
compression modes (encode or decode), and input and output details. Several
enhancements that are embedded inside the Java implementation such as multi-level
clustering (proposed in [115]) is disabled, and the random sampling which was originally
proposed in [181] is also switched off. The spectrally encoded output will then be
compressed using the JPEG2000 or the JPEG-LS software.
Table E-1: Integer KLT – Java Application Flags and Parameters
Flag <parameter> –d <encode@decode>
Parameter type int
Description Compression mode for the input image. 0 – encode, 1 – decode.
Flag <parameter> –i <input.ext>
Parameter type string (e.g. input.raw, input.img, etc.)
Description Hyperspectral input image with extension.
Flag <parameter> –o <encoded.ext>
Parameter type string (e.g. encoded.raw, encoded.img, encoded.rawl, etc.)
Description Encoded hyperspectral image with extension similar to –i flag.
Flag <parameter> –ig <Nz Ny Nx DataType ByteOrder>, similarly with –og <>
Parameter type int int int int int int
Description
Specify the input image geometry
Nz – No. of spectral bands/image component, Ny – Image height, Nx – Image width,
DataType – Image data type: 0 – Boolean (1 byte), 1 – unsigned integer (1 bytes), 2 –
unsigned integer (2 bytes), 3 – signed integer (2 bytes), 4 – signed integer (4 bytes), 5 –
signed integer (8 bytes), 6 – float (4 bytes), 7 – double (8 bytes)
ByteOrder – Image endianness: 0 – big endian, 1 – little endian
Flag <parameter> –ti <overhead_info.ext>
Parameter type string
Description Overhead information file, use for decoding process.
271
E.2 CCSDS-MHC
Full implementation of the CCSDS-MHC from the similar GICI group [235] is used
which is based on predictive coding as discussed in Section 2.4.5. The work in [186]
recommended a few parameters for the algorithm, which are listed in Table E-2. All these
parameters are saved into an option file (option.txt) by taking the aliases of the parameter
(2nd
column) along with its values (3rd
column, numerical values).
The pre-compiled Java file named emporda.jar are executed for compressing and
decompressing using the syntax shown in Listing E-2 and Listing E-3, respectively. The
user may give input to the software by supplying flags and its parameters. Flags and
parameters used for compression and decompression in the text are explained in Table
E-3 as listed in [300]. The algorithm encodes a hyperspectral image in both directions
(i.e. spectrally and spatially) in a single stage followed by entropy encoding as presented
in Figure 2-27 previously.
Table E-2: Parameters Suggested for CCSDS-MHC Algorithm [186]
Parameter Alias Value
Previous bands, P NUMBER_PREDICTION_BANDS 15
Dynamic range, D DYNAMIC_RANGE 16
Output word size OUTPUT_WORD_SIZE 4
Predictor meta-data flag PREDICTOR_METADATA_FLAG False (0)
Coder meta-data flag ENTROPYCODER_METADATA_FLAG False (0)
Local sum LOCAL_SUM_MODE Neighbour oriented mode (0)
Prediction mode PREDICTION_MODE Full prediction mode (0)
Register size REGISTER_SIZE 32
Weight initialisation
method WEIGHT_INITIALIZATION_METHOD Default (0)
Weight initialisation
table flag WEIGHT_INITIALIZATION_TF False (0)
Weight component
resolution WEIGHT_COMPONENT_RESOLUTION 13
Weight update scaling
exponent change interval WEIGHT_UPDATE_SECI 64
Weight update scaling
exponent initial
parameter
WEIGHT_UPDATE_SE -1
Weight update scaling
exponent WEIGHT_UPDATE_SEFP 3
Adaptive encoder ENTROPY_CODER_TYPE Sample adaptive encoder (0)
Unary length limit UNARY_LENGTH_LIMIT 16
Rescaling counter size RESCALING_COUNTER_SIZE 6
Initial count exponent INITIAL_COUNT_EXPONENT 1
Initialisation
accumulator table flag ACCUMULATOR_INITIALIZATION_TF False (0)
Accumulator
initialisation constant ACCUMULATOR_INITIALIZATION_CONSTANT 5
272
java -jar emporda.jar -c -i <input.ext> -o <encoded.ext> -so
<SampleOrder> -ig <NZ NY NX DataType ByteOrder RGB> -f <option.txt>
Listing E-2: CCSDS-MHC Compression Syntax
java -jar emporda.jar -d -i <encoded.ext> -o <decoded.ext> -so
<SampleOrder>
Listing E-3: CCSDS-MHC Decompression Syntax
Table E-3: CCSDS-MHC – Java Application Flags and Parameters
Flag <parameter> –c
Parameter type –
Description Compression mode for the input image
Flag <parameter> –d
Parameter type –
Description Decompression mode for the input image
Flag <parameter> –i <input.ext>
Parameter type string (e.g. input.raw, input.img, etc.)
Description Hyperspectral input image with/without extension. If with extension, the similar
extension should be used for the –o flag.
Flag <parameter> –o <encoded.ext>
Parameter type string (e.g. encoded.raw, encoded.img, etc.)
Description Encoded hyperspectral image with/without extension, similar to –i flag.
Flag <parameter> –so <SampleOrder>
Parameter type int
Description Specify sample order of the input image: 0 – BSQ, 1 – BIL, 2 – BIP
Flag <parameter> –ig <Nz Ny Nx DataType ByteOrder RGB>
Parameter type int int int int int int
Description
Specify the input image geometry
Nz – No. of spectral bands/image component, Ny – Image height, Nx – Image width,
DataType – Image data type: 1 – unsigned integer (1 byte), 2 – unsigned integer (2
bytes), 3 – signed integer (2 bytes)
ByteOrder – Image endianness: 0 – big endian, 1 – little endian
RGB – Sample type: 1 – if 3 first components/bands are RGB (Red-Green-Blue), 0 –
otherwise
Flag <parameter> –f <option.txt>
Parameter type string
Description Option file name containing algorithm parameters (Table E-2) for compression process
E.3 JPEG2000
The lossless spatial JPEG2000 (or JPEG2000 Part I) utilising the Kakadu Software [237]
is used by executing the kdu_compress.exe software for compression and
kdu_expand.exe for decompression as shown in Listing E-4 and Listing E-5, respectively.
Before being spatially compressed using the Kakadu Software, the encoded image from
the spectral decorrelator is saved in a little-endian format with .rawl extension. By using
the syntax shown in Listing E-4, the entire image is compressed spatially and losslessly
273
using a CDF 5/3 wavelet. The input to this software is marked with –i as
encoded.rawl with Z number of bands and M×M size of spatial region. The
Sprecision is the maximum bit-depth of input image and is set at 25 to support the
samples range of the Integer KLT output (details on the output range are presented and
discussed in Chapter 7). The expression “*Z@4MM” means that the input encoded.rawl
will be unpacked internally into Z consecutive images, each separated by 4MM bytes with
4 from the integer (4 bytes) data types of the encoded image [237]. At the end, a
compressed.jpx file is produced as the output.
compression_syntax = kdu_compress Cycc=no -i encoded.rawl*Z@4MM -o
compressed.jpx Creversible=yes Scomponents=Z Sprecision=25 Ssigned=yes
Sdims={M,M}
Listing E-4: Lossless Spatial Compression – JPEG2000 using Kakadu Software
For decompression using the Kakadu Software, the syntax that is shown in Listing E-5 is
executed to decompress each band (spatial plane) and needs Z number of iterations in
total to decompress the whole hyperspectral image. Here, the input is the
compressed.jpx and the output is decoded.rawl. Note that the decoded.rawl
here is not the whole image. Instead, it is a single band that needs to be combined with all
Z number of iterations to form the 3D hyperspectral image with Z spectral bands and
M×M size of spatial region. The –skip_components marks only the a-th band to be
decompressed.
decompression_syntax = kdu_expand –i compressed.jpx –o decoded.rawl –
raw_components -skip_components a
Listing E-5: Lossless Spatial Decompression – JPEG2000 using Kakadu Software
Both the compression_syntax and decompression_syntax respectively from
Listing E-4 and Listing E-5, can be passed to be executed from Matlab m-files or C++ as
shown in Listing E-6 and Listing E-7, respectively as character type variables. Note that
the decompression is performed band-by-band in a for loop (line 2 in Listing E-6 and
Listing E-7) as explained previously.
274
1. dos(compression_syntax); % compression
2. for a=1:Z %
3. dos(decompression_syntax); % decompression
4. %read output here %
5. end
Listing E-6: Matlab m-file Syntaxes for Executing Kakadu Software
1. system(compression_syntax); /*compression*/
2. for (a=0; a < Z; a++) /*decompression*/
3. { system(decompression_syntax);
4. //read output here
5. }
Listing E-7: C++ Code for Executing Kakadu Software
E.4 JPEG2000 Part II
The JPEG2000 Part II by Kakadu Software can be executed losslessly using the
compression_syntax shown in Listing E-8 and decompressed using similar syntax as
shown in Listing E-5 earlier. Both the spectral and spatial compression use the CDF 5/3
wavelet for lossless compression by default [237].
compression_syntax =
kdu_compress -quiet Cycc=no -no_weights Clayers=1 –i
imagecube.rawl*Z@MM4 -o encoded.jpx Creversible=yes Mcomponents=Z
Msigned=yes Mprecision=25 Mstage_inputs:I1={0,Z-1}
Mstage_outputs:I1={0,Z-1} Mstage_collections:I1={Z,Z}
Mstage_xforms:I1={DWT,1,0,5,0} Mnum_stages=1 Mstages=1 Sdims={M,M}
Sprecision=25 Ssigned=yes
Listing E-8: Lossless JPEG2000 Part II using Kakadu Software
As discussed in Section 4.7.2, one of the syntax supplied to the kdu_compress is
Sprecision. The optimum value of the syntax has been set to 25 to cover the large range
of output (H_encoded) from the Integer KLT. The H_encoded variable (32-bit signed
integer) is saved and stored in little endian format (.rawl extension). This means that only
the first 25-bit (from LSB) are read into the Kakadu Software for compression. From
[301], “the software cannot perform correct reversible compression with precision (i.e.
Sprecision) greater than about 27 or 28”. The set value is sufficient to cover the sample
ranges of the AVIRIS images listed in Table 7-1, as well as all the Hyperion (Table 7-2)
and CHRIS images (Table 7-3), to produce the compressed output.
275
E.5 JPEG-LS
The JPEG-LS implementation from [238] is also tested as a spatial compressor. Each
spectral band needs to be saved as .img file before compression and will generate Z
number of outputs in .jls file extension. The syntax for compression is shown in Listing
E-9 (loco16e for 16-bit or locoe for 8-bit input image) and decompression in Listing E-10
(similarly, loco16d or locod for 16-bit and 8-bit input image, respectively).
loco16e <input_band.pgm> -o <compressed.jls>
Listing E-9: LOCO-I Compression Syntax
loco16d <compressed.jls> -o <decoded.pgm>
Listing E-10: LOCO-I Decompression Syntax
276
Appendix F : Details of Integer KLT in Desktop
Platform
F.1 Binary Input Image
1. hyperspectral = multibandread('Jasper_Sc3.img', [512 614 224],
'int16=>int16', 0, 'bip', 'ieee-be'); % read
2. hyperspectral = hyperspectral (:,1:512,:); % crop 3. hyperspectral = permute(hyperspectral, [3 1 2]); 4. fid = fopen('Jasper3.bin', 'w'); % 5. fwrite(fid, hyperspectral, 'int32'); % save as binary 6. fclose(fid); % file
Listing F-1: Matlab m-file Syntax for Read, Crop and Save AVIRIS Image as Binary
Input Image File
1. hyperspectral = hdfread('EO1H0090112001140111PP.L1R',
'EO1H0090112001140111PP.L1R'); 2. hyperspectral = hyperspectral(4715:4970, [8:57 79:224], :); %crop and
% select the unique and calibrated bands 3. hyperspectral = permute(hyperspectral, [2 1 3]); 4. fid = fopen('Greenland.bin', 'w'); % 5. fwrite(fid, hyperspectral, 'int32'); % save as binary 6. fclose(fid); % file
Listing F-2: Matlab m-file Syntax for Read, Crop and Save Hyperion Image as Binary
Input Image File
1. err = fopen_s(&pFile, "Greenland.bin", "r+b");
2. if (err == 0)
3. { fseek(pFile , 0 , SEEK_END); /*obtain file size*/
4. lSize = ftell(pFile);
5. rewind(pFile);
6. fread(H,1,lSize,pFile); /*read and store inside*/
7. fclose(pFile); /*hyperspectral variable*/
8. }
Listing F-3: C++ Code for Reading the Binary File into a Variable
277
F.2 Clustering and Tiling Performance without Overhead
Information – CR Performance
(a) (b)
512×512 256×256 128×128 64×64
Figure F-1: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Low2, AVIRIS
(a) (b)
512×512 256×256 128×128 64×64
Figure F-2: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – YSCal11, AVIRIS
(a) (b)
512×512 256×256 128×128 64×64
Figure F-3: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – YSUncal18, AVIRIS
2.6
2.7
2.8
2.9
3.0
3.1
3.2
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
2.6
2.7
2.8
2.9
3.0
3.1
3.2
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
3.5
3.7
3.9
4.1
4.3
4.5
4.7
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
3.5
3.7
3.9
4.1
4.3
4.5
4.7
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
2.2
2.3
2.4
2.5
2.6
2.7
2.8
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
2.2
2.3
2.4
2.5
2.6
2.7
2.8
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
278
(a) (b)
256×256 128×128 64×64
Figure F-4: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Greenland, Hyperion
(a) (b)
256×256 128×128 64×64
Figure F-5: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Boston, Hyperion
(a) (b)
256×256 128×128 64×64
Figure F-6: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Edenton, Hyperion
2.20
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.20
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.20
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.20
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.20
2.25
2.30
2.35
2.40
2.45
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.20
2.25
2.30
2.35
2.40
2.45
1 2 4 7 14 28 49
CR
No. of Clusters (c)
279
(a) (b)
256×256 128×
128
64×64
Figure F-7: Integer KLT, Clustering and Tiling – Volumetric CR Performance
Comparison between (a) No Sampling and (b) Fixed Sampling – Portobago, Hyperion
F.3 Clustering and Tiling Performance with Overhead Information –
CR Performance
(a) (b)
(c)
512×512 256×256 128×128 64×64
Figure F-8: Integer KLT, Clustering and Tiling – CR Performance with Fixed Sampling for
(a) Low2, (b) YSCal11 and (c) YSUncal18 AVIRIS Images
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
2.25
2.30
2.35
2.40
2.45
2.50
1 2 4 7 14 28 49
CR
No. of Clusters (c)
1.0
1.5
2.0
2.5
3.0
3.5
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
1.0
1.5
2.0
2.5
3.0
1 2 4 7 8 14 16 28 32 56
CR
No. of Clusters (c)
280
(a) (b)
(c) (d)
256×256 128×128 64×64
Figure F-9: Integer KLT, Clustering and Tiling – CR Performance with Fixed
Sampling for (a) Greenland, (b) Boston, (c) Edenton and (d) Portobago Hyperion Images
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
1 2 4 7 14 28 49
CR
No. of Clusters (c)
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
1 2 4 7 14 28 49
CR
No. of Clusters (c)
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
1 2 4 7 14 28 49
CR
No. of Clusters (c)
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
2.6
1 2 4 7 14 28 49
CR
No. of Clusters (c)
281
Appendix G : Additional Testing Results Based on
Other Hyperspectral Images
G.1 Other AVIRIS Images
Several other AVIRIS images that have been tested are listed in Table G-1. Similar to the
selected AVIRIS images, these images were cropped spatially to a size of 512×512
pixels from the upper left corner for all of the 224 bands. All the images use 16 bits to
store a single pixel value.
Table G-1: Other AVIRIS Images
Hyperspectral Image Original Size
(lines×samples×bands Abbreviation Acquisition
Cuprite Scene 1 512×614×224 Cuprite1
1997 datasets
[233]
Cuprite Scene 2 512×614×224 Cuprite2
Cuprite Scene 3 512×614×224 Cuprite3
Cuprite Scene 4 512×614×224 Cuprite4
Jasper Ridge Scene 1 512×614×224 Jasper1
Jasper Ridge Scene 2 512×614×224 Jasper2
Jasper Ridge Scene 4 512×614×224 Jasper4
Jasper Ridge Scene 5 512×614×224 Jasper5
Low Altitude Scene 1 512×614×224 Low1
Low Altitude Scene 3 512×614×224 Low3
Low Altitude Scene 4 512×614×224 Low4
Low Altitude Scene 5 512×614×224 Low5
Low Altitude Scene 6 512×614×224 Low6
Low Altitude Scene 7 512×614×224 Low7
Lunar Lake Scene 1 512×614×224 Lunar1
Lunar Lake Scene 2 512×614×224 Lunar2
Yellowstone Calibrated Scene 0 512×677×224 YSCal0
2006 datasets
[234]
Yellowstone Calibrated Scene 3 512×677×224 YSCal3
Yellowstone Calibrated Scene 10 512×677×224 YSCal10
Yellowstone Calibrated Scene 18 512×677×224 YSCal18
Yellowstone Uncalibrated Scene 0 512×680×224 YSUncal0
Yellowstone Uncalibrated Scene 3 512×680×224 YSUncal3
Yellowstone Uncalibrated Scene 10 512×680×224 YSUncal10
Yellowstone Uncalibrated Scene 11 512×680×224 YSUncal11
G.2 Other Hyperion Images
Other Hyperion images used in this study are listed in Table G-2, with details which
include location, abbreviation and acquisition date. Similar with the selected Hyperion
images, these images were cropped to a spatial size of 256×256 with the selected lines
(rows) out of its total are shown in the last column of the table. All the 256 samples (i.e.
282
column) are included in the cropping process. Each of the images consists of 196 unique
and calibrated spectral bands (out of the total 242 bands); similar to the selected Hyperion
image used in the thesis and has 16 bpppb of bit-rate.
Table G-2: Other Hyperion Images
Hyperspectral Image Location Abbreviation Acquisition Selected Lines/
Total Lines
EO1H1660512002107110PZ_SGS_01 Yemen Atturbah 17, April 2002 22 – 277/3128
EO1H1700782002055110PY_SGS_01 South Africa Benoni 24, February 2002 1419 – 1674/3351
EO1H0920842002012111KP_SGS_01 New South Wales, Australia Berrigan 11, January 2002 6200 – 6455/6926
EO1H0930772002083110KZ_LGS_01 Queensland, Australia Carnarvon 24, March 2002 545 – 800/3128
EO1H0930772002083110KZ_LGS_01 Queensland, Australia Chesterton 24, March 2002 2870 – 3125/3128
EO1H0920842002053110PY_AGS_01 New South Wales, Australia Coolamon 21, February 2002 2580 – 2835/3129
EO1H0910822002071110KW_AGS_01 New South Wales, Australia Dubbo1 11, March 2002 1330 – 1585/3128
EO1H0910822002071110KW_AGS_01 New South Wales, Australia Dubbo2 11, March 2002 1140 – 1395/3128
EO1H0930852002099110KY_AGS_01 Victoria, Australia Echuca 9, April 2002 5 – 260/2905
EO1H1030682002114110PZ_AKS_01 Northern Territory, Australia Elcho 24, April 2002 2 – 257/3129
EO1H0970842002049110KY_AGS_01 South Australia Goolwa 18, February 2002 2868 – 3123/3129
EO1H0920842002012111KP_SGS_01 New South Wales, Australia Griffith 11, January 2002 6200 – 6455/6926
EO1H0930852002099110KY_AGS_01 Victoria, Australia Heathcote 9, April 2002 2620 – 2875/2905
EO1H0940852002042110KY_SGS_01 Victoria, Australia Inglewood1 11, February 2002 2990 – 3245/3352
EO1H0940852002042110KY_SGS_01 Victoria, Australia Inglewood2 11, February 2002 2526 – 2781/3352
EO1H0980842002118110KY_LGS_01 South Australia Kangaroo 28, April 2002 2122 – 2377/3128
EO1H1370392002032110PZ_SGS_01 Tibet, China Maizhokunggar 1, February 2002 7 – 262/3128
EO1H0910802002014110PZ_HGS_01 New South Wales, Australia Moree1 13, January 2002 200 – 455/3128
EO1H0910802002014110PZ_HGS_01 New South Wales, Australia Moree2 13, January 2002 2440 – 2695/3128
EO1H1090232002092110PZ_AKS_01 Okhinsky, Russia Okha 2, April 2002 157 – 412/3128
EO1H0930852002099110KY_AGS_01 Victoria, Australia Rochester 9, April 2002 668 – 923/2905
EO1H0970842002049110KY_AGS_01 South Australia Strathalbyn 18, February 2002 2089 – 2344/3129
EO1H0970842002081110KW_AKS_01 South Australia Tarlee 22, March 2002 57 – 312/3343
EO1H0920842002053110PY_AGS_01 New South Wales, Australia Temora 21, February 2002 1430 – 1685/3129
EO1H1130762002072110PZ_AKS_01 Western Australia TomPrice 13, March 2002 16 – 271/6926
EO1H0970842002081110KW_AKS_01 South Australia Virginia 22, March 2002 1390 – 1645/3343
G.3 CHRIS – PROBA-1
The low-complexity and fault tolerant Integer KLT has been tested with hyperspectral
datasets from CHRIS imager [38, 68] that is flying on board of PROBA-1 satellite. The
dataset can be downloaded using the Earth Observation Link (EOLi) client software
[292]. The list of the images that has been tested is shown in Table G-3. Each image
consists of 62 bands with possible clustering levels of c = 1 and 2 for cluster size of 62
and 31 bands, respectively. All the CHRIS images are cropped spatially from the first line
(i.e. row) and sample (i.e. column) starting from the 7th
sample, to cover a size of
372×372 spatial resolution. The remaining spatial region consists of black pixels and thus
has been omitted. The images can be divided spatially (tiling) into 372×372 (t2 = 1),
186×186 (t2 = 4) and 93×93 (t
2 = 16) sub-tile sizes and use 32 bpppb of bit-rate.
283
Table G-3: CHRIS Images
Hyperspectral Image Location Original Size
(lines×samples×bands Abbreviation Acquisition
CHRIS_BR_030712_359A_41 Barrax, Spain 374×766×62 Barrax359a 3, July 2003
CHRIS_BR_040716_436E_41 Barrax, Spain 374×766×62 Barrax436e 16, July 2004
CHRIS_CL_030907_37AA_41 Colly, New South Wales, Australia 374×766×62 Colly37aa 7, September 2003
CHRIS_CL_031101_39C8_41 Colly, New South Wales, Australia 374×766×62 Colly39c8 1, November 2003
G.4 Volumetric CR without Sampling
Table G-4: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 512×512 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.344 3.325 3.299 3.267 3.249 3.202 3.180 3.099 3.063 2.919
Cuprite2 3.287 3.266 3.237 3.199 3.180 3.129 3.104 3.016 2.978 2.825
Cuprite3 3.315 3.296 3.272 3.240 3.222 3.177 3.155 3.074 3.039 2.897
Cuprite4 3.300 3.281 3.255 3.222 3.204 3.159 3.137 3.057 3.023 2.883
Jasper1 3.367 3.339 3.300 3.255 3.230 3.172 3.142 3.042 3.001 2.833
Jasper2 3.371 3.346 3.307 3.263 3.240 3.183 3.152 3.056 3.015 2.852
Jasper4 3.339 3.312 3.270 3.223 3.199 3.137 3.106 3.003 2.961 2.789
Jasper5 3.370 3.342 3.301 3.255 3.231 3.172 3.141 3.041 3.000 2.831
Low1 3.131 3.111 3.078 3.036 3.022 2.968 2.944 2.859 2.826 2.681
Low3 3.154 3.135 3.106 3.066 3.053 3.005 2.983 2.904 2.874 2.738
Low4 3.135 3.115 3.085 3.046 3.034 2.987 2.966 2.890 2.861 2.729
Low5 3.125 3.105 3.073 3.033 3.020 2.971 2.950 2.872 2.842 2.708
Low6 3.159 3.139 3.107 3.067 3.054 3.007 2.985 2.907 2.877 2.744
Low7 3.163 3.143 3.111 3.068 3.055 3.005 2.983 2.902 2.870 2.733
Lunar1 3.287 3.271 3.246 3.217 3.202 3.159 3.138 3.062 3.030 2.897
Lunar2 3.314 3.295 3.271 3.240 3.221 3.177 3.153 3.072 3.038 2.896
YSCal0 4.239 4.216 4.144 4.053 4.011 3.890 3.840 3.641 3.569 3.268
YSCal3 4.315 4.295 4.226 4.138 4.095 3.975 3.926 3.732 3.659 3.362
YSCal10 4.960 4.938 4.909 4.896 4.870 4.798 4.764 4.637 4.583 4.370
YSCal18 4.275 4.260 4.188 4.097 4.053 3.928 3.874 3.667 3.595 3.286
YSUncal0 2.695 2.681 2.651 2.629 2.593 2.554 2.517 2.436 2.391 2.252
YSUncal3 2.735 2.721 2.691 2.670 2.634 2.596 2.560 2.480 2.435 2.299
YSUncal10 3.053 3.043 3.025 3.013 2.989 2.963 2.940 2.886 2.855 2.760
YSUncal11 2.839 2.824 2.795 2.776 2.742 2.705 2.671 2.596 2.552 2.422
AVERAGE 3.386 3.367 3.331 3.290 3.267 3.209 3.180 3.081 3.039 2.874
Table G-5: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 256×256 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.332 3.316 3.294 3.264 3.245 3.200 3.178 3.098 3.063 2.920
Cuprite2 3.273 3.257 3.232 3.195 3.175 3.126 3.101 3.015 2.977 2.825
Cuprite3 3.303 3.288 3.267 3.236 3.218 3.175 3.153 3.074 3.039 2.898
Cuprite4 3.283 3.271 3.249 3.217 3.199 3.157 3.134 3.057 3.022 2.884
Jasper1 3.352 3.331 3.294 3.251 3.226 3.169 3.139 3.041 3.000 2.833
Jasper2 3.356 3.335 3.301 3.259 3.234 3.179 3.148 3.054 3.013 2.851
Jasper4 3.325 3.303 3.266 3.220 3.196 3.134 3.104 3.002 2.960 2.789
Jasper5 3.354 3.332 3.294 3.250 3.226 3.168 3.138 3.039 2.998 2.831
Low1 3.116 3.100 3.072 3.032 3.018 2.965 2.942 2.858 2.825 2.682
Low3 3.137 3.124 3.098 3.061 3.048 3.002 2.979 2.902 2.873 2.739
Low4 3.119 3.104 3.079 3.042 3.030 2.985 2.963 2.888 2.859 2.730
Low5 3.108 3.093 3.067 3.029 3.017 2.970 2.948 2.872 2.842 2.710
Low6 3.143 3.127 3.100 3.060 3.048 3.002 2.981 2.905 2.875 2.743
Low7 3.149 3.133 3.106 3.064 3.051 3.002 2.979 2.901 2.869 2.733
284
Lunar1 3.273 3.262 3.240 3.213 3.198 3.158 3.136 3.062 3.031 2.900
Lunar2 3.300 3.286 3.266 3.237 3.217 3.176 3.152 3.073 3.039 2.899
YSCal0 4.225 4.201 4.131 4.040 3.999 3.881 3.833 3.637 3.565 3.267
YSCal3 4.304 4.279 4.212 4.126 4.085 3.968 3.921 3.729 3.656 3.363
YSCal10 4.942 4.916 4.902 4.877 4.855 4.784 4.751 4.629 4.575 4.366
YSCal18 4.263 4.247 4.173 4.081 4.037 3.917 3.863 3.658 3.588 3.282
YSUncal0 2.679 2.669 2.642 2.622 2.587 2.549 2.513 2.433 2.388 2.251
YSUncal3 2.719 2.709 2.684 2.664 2.629 2.592 2.557 2.478 2.433 2.299
YSUncal10 3.032 3.026 3.014 3.003 2.981 2.957 2.935 2.882 2.853 2.759
YSUncal11 2.822 2.812 2.785 2.767 2.734 2.698 2.664 2.591 2.547 2.418
AVERAGE 3.371 3.355 3.324 3.284 3.261 3.205 3.175 3.078 3.037 2.874
Table G-6: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 128×128 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.322 3.310 3.290 3.261 3.241 3.199 3.175 3.097 3.063 2.920
Cuprite2 3.261 3.248 3.226 3.190 3.170 3.123 3.099 3.015 2.976 2.826
Cuprite3 3.296 3.284 3.265 3.235 3.216 3.173 3.152 3.074 3.038 2.898
Cuprite4 3.270 3.261 3.244 3.214 3.195 3.155 3.133 3.057 3.022 2.885
Jasper1 3.336 3.320 3.286 3.244 3.219 3.164 3.133 3.038 2.996 2.831
Jasper2 3.344 3.327 3.295 3.254 3.230 3.177 3.146 3.054 3.012 2.851
Jasper4 3.317 3.298 3.260 3.215 3.191 3.130 3.100 3.000 2.957 2.788
Jasper5 3.342 3.323 3.288 3.243 3.219 3.163 3.133 3.037 2.995 2.830
Low1 3.107 3.094 3.068 3.029 3.016 2.963 2.939 2.858 2.825 2.682
Low3 3.126 3.116 3.094 3.058 3.045 3.001 2.977 2.903 2.873 2.740
Low4 3.109 3.096 3.074 3.040 3.027 2.982 2.961 2.889 2.859 2.731
Low5 3.098 3.085 3.063 3.027 3.015 2.969 2.946 2.872 2.843 2.711
Low6 3.130 3.117 3.094 3.057 3.044 2.998 2.976 2.903 2.873 2.742
Low7 3.138 3.125 3.100 3.059 3.047 2.998 2.974 2.899 2.867 2.732
Lunar1 3.259 3.251 3.234 3.208 3.192 3.155 3.133 3.061 3.030 2.901
Lunar2 3.290 3.279 3.260 3.233 3.213 3.173 3.150 3.072 3.038 2.900
YSCal0 4.207 4.177 4.105 4.019 3.980 3.866 3.818 3.627 3.556 3.263
YSCal3 4.299 4.271 4.205 4.118 4.078 3.966 3.916 3.727 3.655 3.364
YSCal10 4.903 4.874 4.868 4.853 4.829 4.773 4.737 4.621 4.571 4.363
YSCal18 4.250 4.230 4.153 4.066 4.020 3.904 3.850 3.646 3.579 3.275
YSUncal0 2.665 2.657 2.631 2.613 2.579 2.542 2.506 2.428 2.384 2.249
YSUncal3 2.710 2.703 2.679 2.660 2.626 2.590 2.555 2.477 2.433 2.299
YSUncal10 3.013 3.012 3.002 2.994 2.972 2.952 2.931 2.879 2.850 2.757
YSUncal11 2.808 2.799 2.773 2.755 2.720 2.684 2.650 2.576 2.532 2.406
AVERAGE 3.358 3.344 3.315 3.277 3.254 3.200 3.170 3.075 3.034 2.873
Table G-7: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 64×64 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.314 3.307 3.287 3.258 3.238 3.197 3.174 3.098 3.063 2.921
Cuprite2 3.249 3.242 3.221 3.185 3.164 3.119 3.095 3.013 2.975 2.825
Cuprite3 3.289 3.276 3.261 3.233 3.214 3.172 3.149 3.074 3.038 2.899
Cuprite4 3.264 3.258 3.240 3.209 3.191 3.151 3.130 3.056 3.020 2.885
Jasper1 3.325 3.309 3.277 3.239 3.215 3.160 3.129 3.035 2.994 2.831
Jasper2 3.329 3.315 3.284 3.246 3.223 3.174 3.138 3.051 3.009 2.850
Jasper4 3.309 3.289 3.253 3.209 3.185 3.126 3.096 2.996 2.954 2.786
Jasper5 3.328 3.310 3.281 3.235 3.209 3.157 3.126 3.033 2.990 2.828
Low1 3.100 3.090 3.065 3.027 3.014 2.963 2.938 2.857 2.824 2.683
Low3 3.117 3.109 3.090 3.056 3.043 3.000 2.976 2.903 2.873 2.741
Low4 3.100 3.087 3.069 3.037 3.022 2.980 2.958 2.888 2.858 2.731
Low5 3.091 3.079 3.061 3.026 3.013 2.967 2.946 2.873 2.843 2.712
Low6 3.120 3.111 3.089 3.057 3.043 2.998 2.976 2.904 2.874 2.744
Low7 3.132 3.120 3.096 3.058 3.044 2.995 2.973 2.899 2.867 2.732
Lunar1 3.247 3.244 3.230 3.206 3.192 3.153 3.133 3.061 3.030 2.902
Lunar2 3.277 3.270 3.254 3.230 3.210 3.171 3.147 3.072 3.036 2.900
YSCal0 4.190 4.160 4.097 4.010 3.972 3.862 3.813 3.625 3.552 3.262
285
YSCal3 4.292 4.261 4.196 4.119 4.076 3.963 3.912 3.727 3.655 3.364
YSCal10 4.892 4.871 4.861 4.842 4.820 4.759 4.722 4.625 4.569 4.366
YSCal18 4.238 4.220 4.138 4.057 4.006 3.894 3.844 3.635 3.572 3.270
YSUncal0 2.656 2.650 2.624 2.609 2.577 2.539 2.503 2.426 2.383 2.249
YSUncal3 2.705 2.699 2.676 2.658 2.624 2.589 2.554 2.477 2.433 2.300
YSUncal10 3.004 3.001 2.995 2.987 2.969 2.951 2.929 2.879 2.850 2.759
YSUncal11 2.794 2.784 2.755 2.737 2.701 2.662 2.629 2.555 2.511 2.388
AVERAGE 3.314 3.307 3.287 3.258 3.238 3.197 3.174 3.098 3.063 2.921
Table G-8: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 256×256 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.482 2.480 2.476 2.465 2.441 2.389 2.344
Benoni 2.469 2.465 2.458 2.438 2.408 2.340 2.277
Berrigan 2.423 2.420 2.418 2.404 2.386 2.336 2.291
Carnarvon 2.561 2.559 2.552 2.539 2.515 2.460 2.418
Chesterton 2.515 2.512 2.508 2.496 2.473 2.420 2.377
Coolamon 2.474 2.472 2.469 2.457 2.439 2.392 2.353
Dubbo1 2.484 2.481 2.474 2.458 2.431 2.372 2.319
Dubbo2 2.481 2.479 2.474 2.459 2.436 2.381 2.334
Echuca 2.536 2.534 2.526 2.509 2.483 2.423 2.373
Elcho 2.582 2.581 2.578 2.568 2.554 2.511 2.484
Goolwa 2.498 2.497 2.493 2.478 2.460 2.407 2.364
Griffith 2.434 2.432 2.428 2.411 2.389 2.333 2.281
Heathcote 2.536 2.534 2.528 2.514 2.493 2.442 2.400
Inglewood1 2.478 2.475 2.469 2.454 2.433 2.380 2.332
Inglewood2 2.481 2.479 2.477 2.468 2.452 2.412 2.380
Kangaroo 2.566 2.565 2.558 2.544 2.523 2.470 2.428
Maizhokunggar 2.482 2.478 2.472 2.457 2.427 2.361 2.300
Moree1 2.476 2.474 2.470 2.458 2.441 2.394 2.355
Moree2 2.513 2.511 2.507 2.496 2.480 2.434 2.400
Okha 2.487 2.486 2.482 2.474 2.455 2.411 2.379
Rochester 2.517 2.515 2.511 2.496 2.476 2.424 2.382
Strathalbyn 2.463 2.460 2.455 2.439 2.417 2.363 2.314
Tarlee 2.492 2.491 2.487 2.476 2.462 2.419 2.386
Temora 2.483 2.481 2.477 2.465 2.447 2.400 2.360
TomPrice 2.553 2.551 2.547 2.538 2.522 2.480 2.452
Virginia 2.485 2.483 2.479 2.465 2.447 2.400 2.360
AVERAGE 2.498 2.496 2.491 2.478 2.457 2.406 2.363
Table G-9: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 128×128 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.473 2.473 2.472 2.462 2.441 2.389 2.344
Benoni 2.459 2.458 2.455 2.436 2.407 2.341 2.276
Berrigan 2.416 2.415 2.411 2.403 2.387 2.338 2.291
Carnarvon 2.554 2.552 2.551 2.538 2.514 2.460 2.418
Chesterton 2.508 2.506 2.506 2.495 2.472 2.421 2.377
Coolamon 2.469 2.468 2.464 2.456 2.439 2.392 2.353
Dubbo1 2.477 2.476 2.472 2.456 2.431 2.372 2.319
Dubbo2 2.474 2.473 2.472 2.457 2.435 2.382 2.333
Echuca 2.528 2.527 2.524 2.508 2.482 2.423 2.372
Elcho 2.575 2.575 2.571 2.566 2.553 2.511 2.485
Goolwa 2.491 2.490 2.488 2.476 2.459 2.409 2.364
Griffith 2.427 2.426 2.425 2.411 2.389 2.334 2.281
Heathcote 2.529 2.527 2.526 2.514 2.493 2.442 2.400
Inglewood1 2.469 2.468 2.467 2.453 2.432 2.380 2.332
Inglewood2 2.475 2.474 2.471 2.466 2.452 2.412 2.380
Kangaroo 2.560 2.557 2.556 2.543 2.523 2.470 2.428
Maizhokunggar 2.472 2.471 2.467 2.454 2.425 2.360 2.299
286
Moree1 2.468 2.468 2.465 2.457 2.441 2.395 2.355
Moree2 2.505 2.505 2.501 2.495 2.480 2.436 2.401
Okha 2.481 2.480 2.475 2.473 2.456 2.412 2.380
Rochester 2.512 2.510 2.509 2.496 2.476 2.425 2.382
Strathalbyn 2.455 2.454 2.453 2.438 2.416 2.363 2.313
Tarlee 2.487 2.486 2.484 2.477 2.462 2.420 2.386
Temora 2.476 2.475 2.474 2.464 2.447 2.401 2.360
TomPrice 2.548 2.546 2.544 2.536 2.521 2.480 2.452
Virginia 2.479 2.478 2.477 2.465 2.447 2.400 2.359
AVERAGE 2.491 2.490 2.488 2.477 2.457 2.406 2.363
Table G-10: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 64×64 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.471 2.468 2.465 2.460 2.438 2.388 2.342
Benoni 2.453 2.451 2.450 2.433 2.405 2.339 2.275
Berrigan 2.410 2.408 2.402 2.398 2.385 2.337 2.289
Carnarvon 2.552 2.548 2.547 2.535 2.512 2.458 2.417
Chesterton 2.502 2.502 2.500 2.492 2.469 2.420 2.376
Coolamon 2.461 2.461 2.454 2.452 2.435 2.390 2.351
Dubbo1 2.471 2.469 2.467 2.450 2.428 2.370 2.317
Dubbo2 2.468 2.467 2.466 2.453 2.433 2.380 2.332
Echuca 2.522 2.520 2.518 2.504 2.480 2.422 2.371
Elcho 2.568 2.567 2.561 2.559 2.551 2.510 2.484
Goolwa 2.485 2.484 2.480 2.472 2.456 2.407 2.363
Griffith 2.421 2.420 2.418 2.405 2.387 2.333 2.281
Heathcote 2.523 2.520 2.520 2.509 2.490 2.441 2.399
Inglewood1 2.463 2.462 2.460 2.450 2.429 2.378 2.331
Inglewood2 2.471 2.469 2.463 2.462 2.451 2.411 2.378
Kangaroo 2.555 2.551 2.551 2.540 2.521 2.469 2.427
Maizhokunggar 2.464 2.463 2.461 2.448 2.422 2.358 2.296
Moree1 2.465 2.461 2.459 2.452 2.439 2.393 2.354
Moree2 2.502 2.497 2.493 2.490 2.477 2.434 2.400
Okha 2.475 2.475 2.470 2.466 2.453 2.411 2.379
Rochester 2.505 2.505 2.503 2.491 2.474 2.423 2.380
Strathalbyn 2.448 2.448 2.447 2.434 2.414 2.361 2.312
Tarlee 2.483 2.481 2.479 2.474 2.461 2.419 2.386
Temora 2.471 2.471 2.465 2.462 2.444 2.399 2.358
TomPrice 2.541 2.541 2.536 2.533 2.517 2.478 2.450
Virginia 2.473 2.472 2.470 2.461 2.446 2.400 2.359
AVERAGE 2.486 2.484 2.481 2.473 2.454 2.405 2.362
Table G-11: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
372×372 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.779 2.775
Barrax436e 2.814 2.810
Colly37aa 3.102 3.091
Colly39c8 3.073 3.065
AVERAGE 2.942 2.936
287
Table G-12: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
186×186 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.757 2.753
Barrax436e 2.801 2.801
Colly37aa 3.101 3.094
Colly39c8 3.075 3.067
AVERAGE 2.934 2.929
Table G-13: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
93×93 Sub-Tile Size – without Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.746 2.727
Barrax436e 2.780 2.775
Colly37aa 3.102 3.096
Colly39c8 3.075 3.072
AVERAGE 2.926 2.918
G.5 Volumetric CR with Fixed Sampling
Table G-14: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 512×512 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.291 3.294 3.282 3.255 3.236 3.196 3.174 3.097 3.062 2.921
Cuprite2 3.226 3.230 3.215 3.182 3.161 3.118 3.094 3.012 2.974 2.825
Cuprite3 3.266 3.265 3.256 3.228 3.211 3.171 3.149 3.074 3.037 2.899
Cuprite4 3.241 3.248 3.236 3.206 3.189 3.150 3.128 3.056 3.020 2.885
Jasper1 3.300 3.295 3.271 3.235 3.212 3.158 3.128 3.035 2.993 2.830
Jasper2 3.308 3.307 3.279 3.244 3.220 3.171 3.137 3.051 3.009 2.850
Jasper4 3.286 3.275 3.247 3.204 3.181 3.124 3.095 2.996 2.953 2.786
Jasper5 3.297 3.295 3.271 3.229 3.203 3.151 3.123 3.031 2.988 2.825
Low1 3.081 3.080 3.058 3.022 3.010 2.961 2.937 2.857 2.824 2.682
Low3 3.097 3.100 3.084 3.053 3.040 3.000 2.974 2.903 2.873 2.741
Low4 3.082 3.079 3.066 3.034 3.019 2.979 2.957 2.887 2.858 2.731
Low5 3.072 3.070 3.055 3.022 3.010 2.966 2.945 2.872 2.842 2.712
Low6 3.103 3.102 3.085 3.054 3.040 2.997 2.975 2.904 2.874 2.744
Low7 3.113 3.110 3.092 3.054 3.041 2.994 2.972 2.898 2.866 2.732
Lunar1 3.223 3.232 3.224 3.203 3.189 3.152 3.132 3.060 3.029 2.901
Lunar2 3.255 3.258 3.249 3.227 3.207 3.170 3.147 3.071 3.036 2.900
YSCal0 4.128 4.127 4.081 4.001 3.965 3.858 3.813 3.621 3.552 3.262
YSCal3 4.209 4.229 4.185 4.108 4.065 3.963 3.912 3.728 3.656 3.365
YSCal10 4.735 4.815 4.829 4.827 4.809 4.747 4.723 4.619 4.568 4.367
YSCal18 4.179 4.174 4.119 4.041 3.996 3.893 3.839 3.635 3.569 3.269
YSUncal0 2.643 2.643 2.620 2.607 2.574 2.538 2.502 2.426 2.382 2.248
YSUncal3 2.693 2.692 2.673 2.656 2.623 2.588 2.553 2.477 2.433 2.300
YSUncal10 2.986 2.996 2.990 2.985 2.966 2.950 2.928 2.878 2.850 2.759
YSUncal11 2.781 2.776 2.750 2.735 2.698 2.660 2.628 2.554 2.510 2.388
AVERAGE 3.316 3.320 3.301 3.267 3.244 3.194 3.165 3.073 3.032 2.872
288
Table G-15: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 256×256 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.250 3.275 3.274 3.253 3.235 3.195 3.173 3.096 3.062 2.920
Cuprite2 3.193 3.216 3.212 3.182 3.163 3.120 3.096 3.013 2.975 2.826
Cuprite3 3.226 3.252 3.250 3.226 3.209 3.170 3.149 3.072 3.037 2.898
Cuprite4 3.202 3.230 3.231 3.206 3.189 3.151 3.130 3.056 3.020 2.885
Jasper1 3.261 3.282 3.270 3.234 3.212 3.161 3.130 3.036 2.995 2.831
Jasper2 3.266 3.290 3.278 3.245 3.221 3.173 3.141 3.052 3.011 2.851
Jasper4 3.240 3.260 3.243 3.206 3.183 3.126 3.097 2.999 2.956 2.788
Jasper5 3.265 3.287 3.272 3.235 3.211 3.159 3.130 3.036 2.994 2.830
Low1 3.045 3.062 3.054 3.022 3.009 2.960 2.936 2.856 2.823 2.681
Low3 3.066 3.087 3.081 3.051 3.039 2.998 2.974 2.902 2.872 2.740
Low4 3.049 3.068 3.062 3.033 3.021 2.980 2.958 2.888 2.858 2.731
Low5 3.031 3.056 3.050 3.020 3.010 2.966 2.945 2.871 2.842 2.711
Low6 3.070 3.087 3.081 3.051 3.037 2.995 2.974 2.902 2.872 2.742
Low7 3.075 3.095 3.087 3.052 3.041 2.995 2.972 2.898 2.866 2.731
Lunar1 3.189 3.220 3.219 3.199 3.186 3.151 3.130 3.060 3.029 2.900
Lunar2 3.221 3.247 3.247 3.225 3.207 3.170 3.148 3.071 3.037 2.900
YSCal0 4.076 4.108 4.072 4.002 3.967 3.862 3.811 3.626 3.554 3.262
YSCal3 4.169 4.194 4.164 4.100 4.061 3.957 3.908 3.725 3.651 3.363
YSCal10 4.651 4.767 4.802 4.817 4.791 4.752 4.727 4.615 4.565 4.364
YSCal18 4.095 4.151 4.114 4.044 4.001 3.897 3.842 3.644 3.576 3.274
YSUncal0 2.631 2.638 2.621 2.607 2.574 2.539 2.503 2.427 2.383 2.249
YSUncal3 2.676 2.682 2.669 2.655 2.621 2.588 2.553 2.477 2.432 2.299
YSUncal10 2.968 2.983 2.984 2.985 2.965 2.949 2.928 2.878 2.849 2.757
YSUncal11 2.775 2.779 2.763 2.749 2.716 2.681 2.648 2.576 2.531 2.406
AVERAGE 3.279 3.305 3.296 3.267 3.245 3.196 3.167 3.074 3.033 2.872
Table G-16: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 128×128 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.108 3.219 3.255 3.240 3.225 3.190 3.169 3.094 3.059 2.918
Cuprite2 3.073 3.164 3.195 3.172 3.156 3.116 3.093 3.011 2.974 2.824
Cuprite3 3.102 3.195 3.231 3.214 3.199 3.165 3.144 3.070 3.035 2.896
Cuprite4 3.084 3.179 3.213 3.194 3.180 3.147 3.126 3.053 3.019 2.882
Jasper1 3.133 3.230 3.251 3.226 3.204 3.158 3.128 3.036 2.995 2.831
Jasper2 3.136 3.233 3.257 3.233 3.212 3.168 3.139 3.050 3.009 2.849
Jasper4 3.107 3.202 3.222 3.194 3.173 3.123 3.094 2.997 2.956 2.787
Jasper5 3.132 3.234 3.252 3.226 3.204 3.157 3.128 3.035 2.994 2.830
Low1 2.944 3.018 3.039 3.011 3.000 2.956 2.933 2.854 2.821 2.679
Low3 2.967 3.041 3.066 3.041 3.032 2.994 2.972 2.899 2.870 2.738
Low4 2.952 3.024 3.047 3.023 3.013 2.976 2.955 2.884 2.856 2.728
Low5 2.945 3.014 3.035 3.010 3.001 2.962 2.941 2.869 2.840 2.709
Low6 2.973 3.044 3.066 3.040 3.030 2.993 2.973 2.901 2.871 2.741
Low7 2.982 3.051 3.072 3.044 3.034 2.993 2.971 2.896 2.865 2.731
Lunar1 3.071 3.170 3.204 3.191 3.178 3.148 3.128 3.058 3.027 2.898
Lunar2 3.104 3.197 3.231 3.216 3.200 3.166 3.144 3.069 3.036 2.897
YSCal0 3.970 4.045 4.053 3.999 3.963 3.864 3.817 3.630 3.559 3.265
YSCal3 4.035 4.118 4.129 4.081 4.044 3.950 3.903 3.723 3.650 3.361
YSCal10 4.557 4.705 4.784 4.806 4.790 4.753 4.725 4.615 4.568 4.361
YSCal18 3.975 4.083 4.088 4.037 3.997 3.898 3.845 3.652 3.581 3.280
YSUncal0 2.596 2.616 2.612 2.605 2.571 2.541 2.506 2.429 2.385 2.250
YSUncal3 2.635 2.655 2.653 2.645 2.612 2.584 2.549 2.475 2.430 2.298
YSUncal10 2.946 2.969 2.979 2.984 2.962 2.948 2.926 2.877 2.848 2.757
YSUncal11 2.744 2.760 2.754 2.749 2.717 2.689 2.656 2.586 2.543 2.416
AVERAGE 3.178 3.257 3.279 3.258 3.237 3.193 3.165 3.074 3.033 2.872
289
Table G-17: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
AVIRIS Images at 64×64 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.046 3.145 3.217 3.213 3.201 3.176 3.156 3.087 3.052 2.914
Cuprite2 2.983 3.088 3.155 3.145 3.132 3.103 3.081 3.005 2.967 2.820
Cuprite3 3.029 3.123 3.193 3.187 3.175 3.151 3.131 3.063 3.029 2.892
Cuprite4 3.006 3.107 3.176 3.169 3.157 3.134 3.114 3.047 3.013 2.878
Jasper1 3.005 3.142 3.201 3.194 3.174 3.141 3.113 3.028 2.987 2.827
Jasper2 3.010 3.147 3.207 3.202 3.183 3.153 3.124 3.043 3.002 2.845
Jasper4 2.973 3.112 3.170 3.161 3.141 3.105 3.078 2.989 2.948 2.783
Jasper5 3.011 3.147 3.202 3.194 3.174 3.142 3.113 3.028 2.987 2.825
Low1 2.834 2.936 3.000 2.985 2.978 2.942 2.921 2.846 2.815 2.675
Low3 2.858 2.964 3.029 3.017 3.009 2.981 2.961 2.893 2.864 2.733
Low4 2.847 2.949 3.010 2.997 2.991 2.963 2.944 2.879 2.850 2.724
Low5 2.834 2.937 2.997 2.984 2.977 2.948 2.928 2.861 2.832 2.703
Low6 2.864 2.967 3.029 3.016 3.009 2.981 2.961 2.895 2.866 2.739
Low7 2.863 2.969 3.032 3.017 3.010 2.979 2.958 2.889 2.859 2.727
Lunar1 2.993 3.100 3.167 3.166 3.155 3.134 3.115 3.051 3.020 2.892
Lunar2 3.033 3.130 3.197 3.193 3.179 3.155 3.133 3.063 3.029 2.892
YSCal0 3.798 3.921 3.970 3.955 3.922 3.843 3.799 3.622 3.552 3.261
YSCal3 3.860 3.988 4.043 4.033 4.002 3.926 3.882 3.711 3.640 3.354
YSCal10 4.423 4.589 4.704 4.766 4.748 4.733 4.706 4.606 4.557 4.356
YSCal18 3.799 3.946 4.004 3.994 3.959 3.879 3.829 3.645 3.576 3.277
YSUncal0 2.503 2.562 2.579 2.583 2.551 2.530 2.496 2.424 2.380 2.248
YSUncal3 2.540 2.599 2.618 2.623 2.591 2.571 2.538 2.469 2.424 2.294
YSUncal10 2.887 2.936 2.957 2.971 2.949 2.939 2.917 2.872 2.843 2.754
YSUncal11 2.665 2.713 2.725 2.731 2.700 2.679 2.648 2.583 2.540 2.415
AVERAGE 3.069 3.176 3.233 3.229 3.211 3.179 3.152 3.067 3.026 2.868
Table G-18: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 256×256 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.422 2.446 2.457 2.452 2.437 2.388 2.345
Benoni 2.406 2.431 2.440 2.426 2.403 2.339 2.276
Berrigan 2.362 2.386 2.400 2.391 2.382 2.336 2.291
Carnarvon 2.502 2.528 2.535 2.529 2.509 2.458 2.418
Chesterton 2.455 2.480 2.490 2.485 2.468 2.419 2.378
Coolamon 2.415 2.439 2.452 2.446 2.435 2.391 2.355
Dubbo1 2.422 2.446 2.456 2.443 2.426 2.370 2.319
Dubbo2 2.422 2.445 2.457 2.446 2.432 2.380 2.335
Echuca 2.473 2.498 2.506 2.497 2.478 2.422 2.373
Elcho 2.513 2.541 2.555 2.551 2.547 2.510 2.486
Goolwa 2.436 2.461 2.475 2.466 2.455 2.408 2.366
Griffith 2.374 2.398 2.411 2.399 2.385 2.333 2.282
Heathcote 2.475 2.500 2.509 2.504 2.489 2.441 2.401
Inglewood1 2.419 2.442 2.453 2.442 2.428 2.378 2.333
Inglewood2 2.422 2.447 2.461 2.455 2.449 2.412 2.381
Kangaroo 2.504 2.531 2.539 2.533 2.519 2.469 2.429
Maizhokunggar 2.423 2.444 2.452 2.446 2.424 2.360 2.300
Moree1 2.413 2.439 2.454 2.445 2.438 2.394 2.356
Moree2 2.451 2.478 2.492 2.485 2.476 2.434 2.402
Okha 2.415 2.449 2.463 2.457 2.451 2.411 2.381
Rochester 2.460 2.483 2.494 2.484 2.472 2.424 2.382
Strathalbyn 2.403 2.426 2.438 2.426 2.411 2.361 2.315
Tarlee 2.434 2.460 2.471 2.467 2.458 2.418 2.388
Temora 2.425 2.451 2.461 2.455 2.443 2.400 2.362
TomPrice 2.491 2.518 2.530 2.525 2.516 2.478 2.453
Virginia 2.427 2.452 2.462 2.456 2.445 2.399 2.361
AVERAGE 2.437 2.462 2.474 2.466 2.453 2.405 2.364
290
Table G-19: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 128×128 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.351 2.412 2.437 2.440 2.429 2.385 2.343
Benoni 2.332 2.397 2.420 2.414 2.397 2.336 2.276
Berrigan 2.299 2.357 2.384 2.384 2.376 2.333 2.291
Carnarvon 2.425 2.486 2.514 2.514 2.503 2.456 2.417
Chesterton 2.384 2.443 2.470 2.472 2.461 2.416 2.377
Coolamon 2.342 2.407 2.434 2.434 2.430 2.389 2.353
Dubbo1 2.346 2.412 2.437 2.433 2.420 2.368 2.318
Dubbo2 2.345 2.410 2.436 2.434 2.425 2.377 2.333
Echuca 2.401 2.461 2.486 2.485 2.471 2.419 2.371
Elcho 2.437 2.505 2.536 2.542 2.542 2.508 2.485
Goolwa 2.365 2.427 2.455 2.454 2.448 2.405 2.364
Griffith 2.304 2.366 2.393 2.390 2.379 2.330 2.280
Heathcote 2.403 2.463 2.489 2.490 2.482 2.438 2.399
Inglewood1 2.347 2.407 2.433 2.431 2.421 2.375 2.331
Inglewood2 2.356 2.415 2.441 2.445 2.442 2.408 2.380
Kangaroo 2.430 2.492 2.518 2.520 2.513 2.466 2.427
Maizhokunggar 2.360 2.412 2.436 2.435 2.418 2.358 2.300
Moree1 2.343 2.408 2.436 2.436 2.433 2.391 2.355
Moree2 2.376 2.444 2.471 2.474 2.470 2.432 2.401
Okha 2.325 2.416 2.444 2.449 2.445 2.408 2.378
Rochester 2.384 2.446 2.474 2.473 2.466 2.421 2.381
Strathalbyn 2.334 2.393 2.418 2.415 2.404 2.358 2.313
Tarlee 2.365 2.427 2.453 2.455 2.452 2.416 2.386
Temora 2.357 2.416 2.441 2.443 2.437 2.397 2.361
TomPrice 2.421 2.480 2.508 2.514 2.510 2.475 2.452
Virginia 2.354 2.416 2.443 2.442 2.436 2.396 2.360
AVERAGE 2.365 2.428 2.455 2.454 2.447 2.402 2.363
Table G-20: Integer KLT, Clustering and Tiling – Volumetric CR for the Other
Hyperion Images at 64×64 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.297 2.357 2.392 2.408 2.410 2.375 2.338
Benoni 2.268 2.337 2.373 2.381 2.379 2.327 2.271
Berrigan 2.247 2.309 2.343 2.355 2.359 2.324 2.285
Carnarvon 2.353 2.419 2.460 2.477 2.483 2.446 2.412
Chesterton 2.319 2.382 2.420 2.438 2.441 2.405 2.371
Coolamon 2.284 2.348 2.388 2.403 2.411 2.379 2.348
Dubbo1 2.278 2.348 2.386 2.399 2.401 2.358 2.313
Dubbo2 2.279 2.347 2.386 2.401 2.406 2.367 2.328
Echuca 2.331 2.396 2.435 2.449 2.453 2.410 2.367
Elcho 2.366 2.439 2.483 2.506 2.522 2.497 2.478
Goolwa 2.305 2.369 2.407 2.422 2.429 2.394 2.359
Griffith 2.250 2.313 2.350 2.360 2.363 2.321 2.275
Heathcote 2.333 2.401 2.439 2.454 2.462 2.427 2.394
Inglewood1 2.290 2.352 2.387 2.400 2.404 2.366 2.326
Inglewood2 2.301 2.362 2.396 2.414 2.423 2.397 2.374
Kangaroo 2.359 2.426 2.466 2.485 2.494 2.457 2.422
Maizhokunggar 2.303 2.357 2.395 2.406 2.401 2.350 2.296
Moree1 2.292 2.352 2.390 2.406 2.414 2.381 2.350
Moree2 2.317 2.383 2.423 2.441 2.451 2.422 2.395
Okha 2.284 2.360 2.396 2.417 2.427 2.397 2.372
Rochester 2.318 2.382 2.422 2.438 2.446 2.411 2.376
Strathalbyn 2.269 2.334 2.371 2.383 2.386 2.348 2.307
Tarlee 2.310 2.369 2.406 2.422 2.432 2.406 2.380
Temora 2.299 2.361 2.397 2.412 2.419 2.387 2.355
TomPrice 2.353 2.420 2.460 2.480 2.490 2.466 2.446
Virginia 2.292 2.357 2.394 2.409 2.417 2.385 2.353
AVERAGE 2.304 2.368 2.406 2.422 2.428 2.392 2.357
291
Table G-21: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
372×372 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.635 2.702
Barrax436e 2.691 2.749
Colly37aa 3.090 3.089
Colly39c8 3.066 3.066
AVERAGE 2.870 2.902
Table G-22: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
186×186 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.633 2.697
Barrax436e 2.686 2.738
Colly37aa 3.086 3.084
Colly39c8 3.059 3.058
AVERAGE 2.866 2.894
Table G-23: Integer KLT, Clustering and Tiling – Volumetric CR for CHRIS Images at
93×93 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.606 2.675
Barrax436e 2.667 2.724
Colly37aa 3.075 3.073
Colly39c8 3.048 3.044
AVERAGE 2.849 2.879
G.6 Lossless CR (with Overhead Information) with Fixed
Sampling
Table G-24: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 512×512 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 3.218 3.257 3.263 3.245 3.227 3.191 3.169 3.094 3.060 2.920
Cuprite2 3.157 3.195 3.197 3.172 3.153 3.113 3.089 3.010 2.972 2.824
Cuprite3 3.194 3.229 3.238 3.218 3.202 3.166 3.145 3.072 3.035 2.898
Cuprite4 3.171 3.212 3.219 3.196 3.180 3.145 3.124 3.054 3.018 2.884
Jasper1 3.227 3.259 3.253 3.225 3.203 3.153 3.124 3.032 2.991 2.829
Jasper2 3.234 3.270 3.261 3.234 3.211 3.166 3.133 3.048 3.007 2.849
Jasper4 3.214 3.239 3.229 3.194 3.172 3.119 3.091 2.993 2.951 2.786
Jasper5 3.224 3.259 3.253 3.218 3.194 3.147 3.118 3.029 2.986 2.824
Low1 3.018 3.048 3.042 3.013 3.002 2.957 2.933 2.855 2.822 2.681
Low3 3.033 3.067 3.068 3.044 3.033 2.995 2.971 2.901 2.871 2.740
Low4 3.018 3.047 3.050 3.025 3.011 2.974 2.954 2.885 2.856 2.730
Low5 3.009 3.038 3.039 3.014 3.003 2.962 2.941 2.870 2.841 2.711
Low6 3.039 3.070 3.069 3.045 3.032 2.992 2.971 2.902 2.872 2.743
Low7 3.048 3.077 3.076 3.045 3.033 2.989 2.968 2.896 2.864 2.731
292
Lunar1 3.154 3.197 3.206 3.193 3.181 3.147 3.128 3.058 3.027 2.900
Lunar2 3.184 3.222 3.231 3.217 3.198 3.165 3.142 3.069 3.034 2.899
YSCal0 4.015 4.070 4.053 3.985 3.952 3.851 3.807 3.618 3.550 3.260
YSCal3 4.091 4.169 4.155 4.092 4.051 3.955 3.905 3.724 3.653 3.364
YSCal10 4.587 4.737 4.789 4.804 4.790 4.736 4.714 4.614 4.564 4.365
YSCal18 4.063 4.116 4.090 4.025 3.982 3.886 3.833 3.632 3.567 3.268
YSUncal0 2.596 2.619 2.608 2.600 2.569 2.535 2.500 2.424 2.381 2.248
YSUncal3 2.645 2.667 2.661 2.649 2.617 2.585 2.550 2.475 2.431 2.299
YSUncal10 2.926 2.966 2.975 2.976 2.958 2.945 2.924 2.876 2.848 2.758
YSUncal11 2.729 2.749 2.737 2.728 2.691 2.657 2.625 2.552 2.508 2.387
AVERAGE 3.241 3.282 3.282 3.256 3.235 3.189 3.161 3.070 3.030 2.871
Table G-25: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 256×256 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 2.985 3.135 3.203 3.212 3.199 3.175 3.155 3.087 3.054 2.916
Cuprite2 2.937 3.080 3.143 3.143 3.130 3.101 3.080 3.004 2.967 2.822
Cuprite3 2.964 3.113 3.180 3.185 3.175 3.150 3.132 3.063 3.029 2.894
Cuprite4 2.944 3.093 3.161 3.166 3.154 3.132 3.113 3.047 3.013 2.881
Jasper1 2.994 3.141 3.199 3.193 3.177 3.141 3.113 3.027 2.987 2.827
Jasper2 2.999 3.148 3.206 3.205 3.186 3.154 3.124 3.043 3.003 2.847
Jasper4 2.976 3.121 3.173 3.167 3.149 3.107 3.081 2.990 2.949 2.784
Jasper5 2.997 3.145 3.201 3.194 3.176 3.140 3.113 3.027 2.986 2.826
Low1 2.811 2.939 2.991 2.987 2.979 2.943 2.921 2.848 2.816 2.677
Low3 2.829 2.962 3.017 3.015 3.008 2.981 2.959 2.893 2.865 2.736
Low4 2.815 2.944 3.000 2.997 2.990 2.963 2.944 2.880 2.852 2.727
Low5 2.799 2.934 2.988 2.985 2.979 2.949 2.930 2.863 2.835 2.707
Low6 2.832 2.962 3.017 3.015 3.006 2.977 2.959 2.894 2.865 2.739
Low7 2.836 2.970 3.023 3.016 3.009 2.978 2.957 2.889 2.859 2.728
Lunar1 2.933 3.084 3.150 3.160 3.151 3.132 3.114 3.051 3.021 2.896
Lunar2 2.960 3.109 3.176 3.185 3.172 3.151 3.131 3.062 3.029 2.895
YSCal0 3.667 3.890 3.961 3.940 3.914 3.833 3.786 3.613 3.543 3.257
YSCal3 3.742 3.967 4.049 4.035 4.006 3.927 3.882 3.712 3.640 3.357
YSCal10 4.126 4.475 4.649 4.728 4.714 4.709 4.689 4.594 4.547 4.354
YSCal18 3.682 3.928 4.001 3.981 3.947 3.867 3.817 3.631 3.565 3.269
YSUncal0 2.454 2.546 2.575 2.581 2.551 2.526 2.493 2.421 2.378 2.246
YSUncal3 2.493 2.587 2.621 2.628 2.598 2.575 2.542 2.471 2.427 2.296
YSUncal10 2.745 2.866 2.925 2.950 2.935 2.932 2.913 2.870 2.842 2.753
YSUncal11 2.580 2.677 2.711 2.720 2.691 2.667 2.636 2.569 2.526 2.403
AVERAGE 3.004 3.159 3.225 3.222 3.208 3.175 3.149 3.065 3.025 2.868
Table G-26: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 128×128 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 2.320 2.737 2.989 3.084 3.089 3.112 3.102 3.057 3.027 2.902
Cuprite2 2.300 2.697 2.938 3.022 3.026 3.042 3.029 2.976 2.944 2.808
Cuprite3 2.316 2.720 2.968 3.060 3.065 3.089 3.078 3.034 3.004 2.880
Cuprite4 2.306 2.708 2.954 3.043 3.048 3.072 3.060 3.017 2.988 2.866
Jasper1 2.334 2.745 2.986 3.071 3.069 3.082 3.063 3.001 2.965 2.816
Jasper2 2.335 2.747 2.990 3.078 3.077 3.092 3.073 3.014 2.978 2.834
Jasper4 2.319 2.725 2.961 3.042 3.041 3.048 3.030 2.963 2.926 2.772
Jasper5 2.333 2.748 2.987 3.071 3.069 3.081 3.063 3.000 2.964 2.814
Low1 2.227 2.590 2.806 2.876 2.882 2.889 2.875 2.822 2.794 2.665
Low3 2.240 2.608 2.829 2.903 2.911 2.925 2.913 2.867 2.842 2.723
Low4 2.231 2.595 2.813 2.886 2.894 2.909 2.896 2.852 2.829 2.714
Low5 2.227 2.587 2.803 2.875 2.883 2.895 2.883 2.837 2.812 2.695
Low6 2.244 2.610 2.829 2.903 2.910 2.925 2.914 2.868 2.843 2.727
Low7 2.249 2.615 2.834 2.905 2.913 2.924 2.912 2.864 2.838 2.717
Lunar1 2.299 2.702 2.946 3.039 3.046 3.072 3.062 3.022 2.996 2.882
Lunar2 2.317 2.721 2.969 3.062 3.066 3.090 3.078 3.033 3.004 2.881
YSCal0 2.768 3.313 3.649 3.764 3.759 3.751 3.720 3.579 3.516 3.244
293
YSCal3 2.800 3.361 3.710 3.837 3.832 3.831 3.802 3.669 3.605 3.339
YSCal10 3.041 3.742 4.231 4.471 4.495 4.583 4.577 4.534 4.498 4.325
YSCal18 2.771 3.338 3.677 3.797 3.790 3.783 3.747 3.600 3.538 3.259
YSUncal0 2.022 2.288 2.438 2.503 2.484 2.491 2.463 2.406 2.366 2.240
YSUncal3 2.046 2.318 2.473 2.540 2.522 2.532 2.505 2.451 2.410 2.288
YSUncal10 2.228 2.554 2.755 2.851 2.847 2.882 2.869 2.845 2.821 2.742
YSUncal11 2.111 2.398 2.561 2.636 2.620 2.634 2.608 2.560 2.521 2.405
AVERAGE 2.349 2.757 3.004 3.097 3.097 3.114 3.097 3.036 3.001 2.856
Table G-27: Integer KLT, Clustering and Tiling – Lossless CR for the Other AVIRIS
Images at 64×64 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(224)
2
(112)
4
(56)
7
(32)
8
(28)
14
(16)
16
(14)
28
(8)
32
(7)
56
(4)
Cuprite1 1.306 1.863 2.380 2.676 2.724 2.889 2.905 2.945 2.930 2.849
Cuprite2 1.294 1.843 2.345 2.628 2.674 2.829 2.841 2.870 2.852 2.759
Cuprite3 1.303 1.855 2.367 2.658 2.705 2.869 2.885 2.923 2.908 2.828
Cuprite4 1.298 1.850 2.357 2.645 2.692 2.854 2.870 2.908 2.893 2.815
Jasper1 1.298 1.862 2.371 2.662 2.704 2.861 2.869 2.891 2.870 2.766
Jasper2 1.299 1.864 2.374 2.668 2.711 2.870 2.878 2.904 2.884 2.784
Jasper4 1.292 1.852 2.354 2.639 2.681 2.831 2.839 2.855 2.834 2.724
Jasper5 1.299 1.864 2.372 2.663 2.705 2.861 2.869 2.891 2.870 2.764
Low1 1.265 1.788 2.259 2.516 2.561 2.695 2.705 2.725 2.710 2.620
Low3 1.270 1.798 2.275 2.538 2.584 2.727 2.739 2.768 2.756 2.676
Low4 1.268 1.792 2.265 2.524 2.570 2.712 2.724 2.755 2.743 2.667
Low5 1.265 1.788 2.257 2.515 2.560 2.699 2.711 2.738 2.726 2.647
Low6 1.271 1.799 2.275 2.538 2.584 2.727 2.740 2.770 2.758 2.681
Low7 1.271 1.800 2.277 2.539 2.584 2.725 2.737 2.765 2.751 2.670
Lunar1 1.296 1.847 2.352 2.643 2.691 2.855 2.870 2.912 2.900 2.828
Lunar2 1.303 1.858 2.369 2.662 2.708 2.872 2.886 2.923 2.909 2.828
YSCal0 1.427 2.111 2.768 3.171 3.229 3.431 3.441 3.428 3.387 3.180
YSCal3 1.436 2.130 2.803 3.221 3.283 3.497 3.509 3.508 3.467 3.268
YSCal10 1.507 2.290 3.106 3.672 3.769 4.123 4.170 4.297 4.290 4.213
YSCal18 1.427 2.118 2.785 3.196 3.254 3.460 3.466 3.449 3.409 3.195
YSUncal0 1.195 1.642 2.012 2.224 2.239 2.344 2.336 2.336 2.305 2.209
YSUncal3 1.203 1.657 2.035 2.253 2.270 2.380 2.373 2.377 2.347 2.254
YSUncal10 1.276 1.788 2.235 2.505 2.540 2.691 2.702 2.749 2.737 2.696
YSUncal11 1.230 1.702 2.100 2.333 2.352 2.472 2.469 2.482 2.455 2.371
AVERAGE 1.304 1.865 2.379 2.679 2.724 2.886 2.897 2.924 2.904 2.804
Table G-28: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 256×256 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 2.289 2.376 2.421 2.431 2.427 2.383 2.342
Benoni 2.275 2.362 2.405 2.406 2.393 2.334 2.274
Berrigan 2.235 2.319 2.366 2.372 2.372 2.332 2.289
Carnarvon 2.361 2.454 2.497 2.507 2.499 2.453 2.415
Chesterton 2.319 2.408 2.453 2.464 2.458 2.414 2.375
Coolamon 2.283 2.370 2.417 2.425 2.425 2.387 2.352
Dubbo1 2.289 2.377 2.421 2.423 2.416 2.366 2.317
Dubbo2 2.289 2.375 2.421 2.426 2.422 2.375 2.332
Echuca 2.335 2.425 2.469 2.476 2.467 2.417 2.371
Elcho 2.371 2.466 2.517 2.529 2.536 2.504 2.483
Goolwa 2.302 2.390 2.439 2.445 2.445 2.403 2.364
Griffith 2.246 2.332 2.377 2.380 2.376 2.328 2.279
Heathcote 2.337 2.428 2.472 2.483 2.479 2.436 2.398
Inglewood1 2.286 2.373 2.417 2.422 2.417 2.373 2.330
Inglewood2 2.290 2.378 2.425 2.434 2.439 2.407 2.378
Kangaroo 2.362 2.456 2.501 2.511 2.508 2.464 2.426
Maizhokunggar 2.290 2.375 2.417 2.426 2.414 2.355 2.298
Moree1 2.282 2.370 2.419 2.425 2.428 2.389 2.354
Moree2 2.315 2.407 2.455 2.464 2.466 2.429 2.400
Okha 2.283 2.379 2.428 2.437 2.440 2.406 2.378
294
Rochester 2.323 2.412 2.458 2.463 2.462 2.419 2.379
Strathalbyn 2.272 2.357 2.402 2.406 2.401 2.356 2.312
Tarlee 2.300 2.389 2.435 2.446 2.448 2.413 2.385
Temora 2.292 2.381 2.425 2.434 2.433 2.395 2.359
TomPrice 2.351 2.444 2.492 2.503 2.506 2.473 2.450
Virginia 2.294 2.382 2.427 2.435 2.434 2.394 2.358
AVERAGE 2.303 2.392 2.438 2.445 2.443 2.400 2.361
Table G-29: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 128×128 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 1.919 2.163 2.303 2.362 2.390 2.365 2.333
Benoni 1.907 2.150 2.288 2.337 2.359 2.318 2.266
Berrigan 1.884 2.118 2.256 2.309 2.338 2.315 2.280
Carnarvon 1.968 2.222 2.371 2.431 2.461 2.435 2.406
Chesterton 1.941 2.187 2.332 2.391 2.420 2.396 2.366
Coolamon 1.913 2.158 2.300 2.356 2.390 2.370 2.343
Dubbo1 1.916 2.162 2.303 2.355 2.381 2.349 2.308
Dubbo2 1.915 2.161 2.302 2.356 2.386 2.358 2.323
Echuca 1.952 2.202 2.347 2.403 2.430 2.399 2.360
Elcho 1.976 2.237 2.391 2.456 2.499 2.486 2.473
Goolwa 1.929 2.174 2.319 2.374 2.408 2.385 2.354
Griffith 1.888 2.126 2.263 2.314 2.341 2.312 2.270
Heathcote 1.954 2.203 2.349 2.408 2.440 2.418 2.388
Inglewood1 1.917 2.158 2.299 2.353 2.382 2.356 2.321
Inglewood2 1.923 2.165 2.306 2.366 2.402 2.389 2.369
Kangaroo 1.972 2.226 2.375 2.436 2.470 2.445 2.416
Maizhokunggar 1.926 2.162 2.302 2.356 2.378 2.339 2.290
Moree1 1.914 2.159 2.302 2.357 2.393 2.372 2.344
Moree2 1.936 2.188 2.333 2.393 2.429 2.412 2.390
Okha 1.902 2.166 2.309 2.370 2.405 2.388 2.367
Rochester 1.941 2.190 2.335 2.392 2.425 2.401 2.370
Strathalbyn 1.908 2.147 2.286 2.338 2.365 2.339 2.303
Tarlee 1.928 2.175 2.317 2.375 2.411 2.396 2.375
Temora 1.923 2.166 2.307 2.364 2.397 2.377 2.350
TomPrice 1.966 2.217 2.366 2.430 2.467 2.455 2.440
Virginia 1.921 2.166 2.308 2.364 2.396 2.376 2.349
AVERAGE 1.928 2.175 2.318 2.375 2.406 2.383 2.352
Table G-30: Integer KLT, Clustering and Tiling – Lossless CR for the Other Hyperion
Images at 64×64 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(196)
2
(98)
4
(49)
7
(28)
14
(14)
28
(7)
49
(4)
Atturbah 1.222 1.624 1.946 2.127 2.261 2.300 2.296
Benoni 1.214 1.615 1.934 2.107 2.234 2.256 2.231
Berrigan 1.208 1.601 1.914 2.086 2.216 2.252 2.245
Carnarvon 1.238 1.653 1.991 2.181 2.325 2.366 2.367
Chesterton 1.228 1.636 1.965 2.151 2.288 2.328 2.327
Coolamon 1.218 1.620 1.943 2.124 2.262 2.304 2.305
Dubbo1 1.217 1.620 1.942 2.121 2.253 2.284 2.272
Dubbo2 1.217 1.620 1.943 2.122 2.258 2.293 2.286
Echuca 1.232 1.643 1.975 2.160 2.299 2.333 2.324
Elcho 1.241 1.663 2.006 2.204 2.359 2.414 2.431
Goolwa 1.225 1.630 1.956 2.139 2.278 2.319 2.316
Griffith 1.209 1.603 1.919 2.090 2.219 2.250 2.236
Heathcote 1.232 1.645 1.977 2.163 2.306 2.349 2.350
Inglewood1 1.220 1.622 1.943 2.122 2.255 2.292 2.285
Inglewood2 1.223 1.626 1.949 2.132 2.273 2.321 2.331
Kangaroo 1.240 1.657 1.995 2.187 2.334 2.377 2.377
Maizhokunggar 1.224 1.624 1.948 2.126 2.253 2.276 2.256
Moree1 1.221 1.622 1.945 2.126 2.265 2.306 2.307
Moree2 1.228 1.636 1.967 2.153 2.297 2.344 2.351
295
Okha 1.218 1.626 1.949 2.135 2.276 2.321 2.329
Rochester 1.228 1.636 1.967 2.151 2.292 2.334 2.333
Strathalbyn 1.214 1.613 1.932 2.108 2.240 2.275 2.266
Tarlee 1.226 1.630 1.956 2.139 2.281 2.329 2.337
Temora 1.223 1.626 1.950 2.131 2.269 2.312 2.312
TomPrice 1.238 1.654 1.991 2.184 2.332 2.386 2.400
Virginia 1.221 1.624 1.948 2.129 2.267 2.310 2.311
AVERAGE 1.224 1.630 1.956 2.138 2.277 2.317 2.315
Table G-31: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
372×372 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.622 2.696
Barrax436e 2.678 2.743
Colly37aa 3.073 3.081
Colly39c8 3.049 3.057
AVERAGE 2.856 2.894
Table G-32: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
186×186 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ )
Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.584 2.671
Barrax436e 2.635 2.711
Colly37aa 3.020 3.050
Colly39c8 2.994 3.024
AVERAGE 2.808 2.864
Table G-33: Integer KLT, Clustering and Tiling – Lossless CR for CHRIS Images at
93×93 Sub-Tile Size – Fixed Sampling
c
(𝑍 𝑐⁄ ) Hyp.
Image
1
(62)
2
(31)
Barrax359a 2.425 2.577
Barrax436e 2.478 2.621
Colly37aa 2.826 2.943
Colly39c8 2.803 2.917
AVERAGE 2.633 2.764
G.7 CHRIS Execution Time Performance
Table G-34: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (Non-Parallelised Desktop Implementation)
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
372×372 (1) 1.50 1.08
186×186 (4) 1.44 0.97
93×93 (16) 1.62 1.06
296
Table G-35: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (Parallelised Desktop Implementation)
c
(𝑍 𝑐⁄ )
Sub-tile
Size (𝑡2)
1
(224)
2
(112)
372×372 (1) 1.33 0.53
186×186 (4) 1.33 0.47
93×93 (16) 1.65 0.49
Table G-36: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (OMAP-L137 DSP)
c
(𝑍 𝑐⁄ ) Sub-tile
Size (𝑡2)
1
(224)
2
(112)
372×372 (1) 119.14 52.58
186×186 (4) 125.92 53.72
93×93 (16) 152.26 58.88
Table G-37: Integer KLT, Clustering and Tiling – Execution Time for CHRIS Images –
Fixed Sampling with the ED Method (TMDSEVM6678L DSP)
c
(𝑍 𝑐⁄ ) Sub-tile
Size (𝑡2)
1
(224)
2
(112)
372×372 (1) 9.00 3.05
186×186 (4) 9.95 3.10
93×93 (16) 13.94 3.39
297
Appendix H : Variation in Random Sampling T
able
H-1
: V
aria
tion i
n I
nte
ger
KL
T O
utp
ut
from
Ran
do
m S
ampli
ng o
f P
ixel
s fo
r C
ovar
iance
Mat
rix C
alcu
lati
on i
n T
en D
iffe
rent
Tes
ts
Tes
ts
1
2
3
4
5
6
7
8
9
10
|Var
iati
on
|
AVIRIS
Jasper3
CR
3
.22272
3.2
2037
3.2
2402
3.2
2104
3.2
21
26
3.2
2383
3.2
2329
3.2
2193
3.2
2272
3.2
2037
0.0
0365
Hm
ax,
Hm
in
488
44
, -1
87
72
468
21
, -1
65
06
472
17
, -1
69
46
474
61
, -1
72
43
455
95
, -1
61
07
472
90
, -1
69
67
469
69
, -1
65
92
475
27
, -1
72
58
475
42
, -1
74
15
441
59
, -1
65
03
468
5, 26
65
Lm
ax, L
min
1
.657,
-2.0
99
1.4
14, -2
.71
9
1.4
56, -1
.75
0
3.3
82, -3
.02
3
2.4
50, -2
.03
0
1.8
45,
-4.4
91
1.7
11, -1
.80
1
2.5
32, -4
.78
4
5.1
78, -3
.31
8
2.8
20, -2
.84
6
3.7
64, 3.0
34
Um
ax,
Um
in
3.0
45,
-4.4
25
1.9
94, -2
.43
4
1.7
11, -2
.43
8
3.2
61, -6
.03
0
5.9
85, -2
.05
1
6.3
05, -1
2.5
89
4.3
98, -2
.40
4
4.3
38, -2
.62
0
3.7
56, -2
.61
5
13
.10
1, -2
.138
11
.39
0, 10
.53
9
Sm
ax, S
min
1
2.7
34
, -8
.717
5.8
58, -6
.32
0
3.7
64, -3
.96
6
6.1
10, -6
.71
4
4.5
63, -4
.52
2
10
.15
4,
-17
.24
7
7.2
84, -9
.40
9
4.4
41, -5
.42
2
4.7
26, -5
.87
3
6.9
09, -5
.69
2
8.9
70, 13
.281
Low2
CR
3
.00323
2.9
9433
2.9
9812
2.9
9869
3.0
0252
2.9
9938
3.0
0295
3.0
0169
3.0
0323
2.9
9433
0.0
0989
Hm
ax,
Hm
in
897
36
, -2
16
93
885
91
, -2
17
82
919
27
, -2
14
96
903
87
, -2
16
35
880
29
, -2
18
23
846
27
, -2
19
96
832
55
, -2
20
37
853
21
, -2
19
71
911
97
, -2
15
74
891
08
, -2
17
51
867
2, 54
1
Lm
ax, L
min
1
.899,
-2.0
77
3.5
28, -2
.04
2
1.5
08, -3
.40
8
1.7
08, -2
.96
1
1.7
13, -1
.99
2
2.5
23,
-1.8
98
1.2
64, -2
.21
1
4.5
87, -4
.17
4
1.4
26, -2
.04
5
2.6
92, -2
.03
1
3.3
23, 2.2
76
Um
ax,
Um
in
4.1
03,
-2.1
03
3.7
55, -3
.62
2
4.4
42, -4
.16
7
9.2
61, -5
.08
5
2.8
60, -2
.03
0
3.2
86,
-2.5
54
2.3
99, -1
.72
7
7.5
40, -5
.29
5
1.8
30, -2
.48
7
2.8
12, -2
.41
2
7.4
30, 3.5
68
Sm
ax, S
min
4
.515,
-5.5
26
4.7
65, -4
.30
7
4.5
92, -4
.23
1
5.1
52, -4
.47
2
3.9
85, -4
.37
0
3.7
30,
-5.0
31
3.6
73, -3
.86
6
10
.75
3, -7
.680
12
.37
8, -9
.432
3.2
48, -5
.40
0
9.1
30, 5.5
66
YSCal11
CR
4.2
6180
4.2
6987
4.2
55
70
4.2
71
14
4.2
63
18
4.2
52
99
4.2
61
18
4.2
64
82
4.2
61
80
4.2
69
87
0.0
18
15
Hm
ax,
Hm
in
664
45
, -5
84
8
663
99
, -6
61
7
664
05
, -6
39
6
664
54
, -5
80
6
664
36
, -6
03
8
664
28
, -5
98
5
664
49
, -5
86
5
664
60
, -5
68
2
664
19
, -6
27
3
664
43
, -5
81
2
61
, 93
5
Lm
ax, L
min
2
.292,
-1.3
64
1.9
54, -1
.82
3
2.9
96, -2
.41
5
1.9
00, -1
.49
4
1.7
65, -1
.94
9
1.6
23,
-1.9
82
1.3
27, -1
.73
0
1.1
09, -1
.99
6
0.9
76, -1
.44
5
1.9
98, -1
.41
2
2.0
20, 1.0
51
Um
ax,
Um
in
2.1
72,
-1.5
87
2.2
25, -1
.62
2
3.4
25, -1
.14
0
2.8
59, -1
.33
8
2.8
28, -2
.85
2
4.0
42,
-1.1
69
2.5
02, -2
.45
8
1.6
08, -1
.45
9
1.7
32, -1
.52
4
1.5
98, -2
.14
1
2.4
43, 1.7
13
Sm
ax, S
min
3
.302,
-4.7
11
3.1
97, -3
.01
8
3.5
39, -3
.77
4
3.9
65, -3
.21
9
5.5
97, -6
.27
6
5.1
44,
-5.3
90
4.2
18, -4
.44
6
2.7
53, -4
.02
7
3.3
70, -5
.59
3
5.1
42, -4
.27
2
2.8
44, 3.2
58
YSUncal18
CR
2
.61781
2.6
1621
2.6
1788
2.6
1657
2.6
1682
2.6
16
97
2.6
1568
2.6
1605
2.6
1781
2.6
1621
0.0
0220
Hm
ax,
Hm
in
213
80
6,
-71
82
6
213
51
6, -7
411
5
214
06
7,
-73
16
2
212
69
7,
-75
65
9
213
49
9,
-74
52
2
213
92
1,
-73
65
5
213
56
6,
-74
22
0
213
59
7, -7
325
8
213
74
0, -7
454
5
213
64
4, -7
509
4
137
0, 38
33
Lm
ax, L
min
0
.991,
-1.1
57
1.5
63, -1
.35
6
1.3
13, -1
.75
5
0.9
95, -1
.18
9
0.9
90, -1
.21
3
0.9
76,
-1.6
04
0.9
67, -1
.95
7
1.1
30, -1
.42
8
1.6
27, -2
.26
0
2.0
54, -2
.46
5
1.0
86, 1.3
08
Um
ax,
Um
in
1.3
75,
-1.4
73
1.6
91, -1
.92
1
2.9
81, -2
.98
5
1.5
11, -1
.19
4
2.0
89, -1
.39
1
1.8
37,
-1.4
70
1.9
51, -2
.10
2
1.8
36, -1
.61
1
2.1
81, -3
.11
2
2.4
27, -2
.32
2
1.6
06, 1.9
17
Sm
ax, S
min
2
.705,
-2.8
15
3.4
90, -3
.62
6
4.2
37, -5
.05
2
2.4
22, -2
.52
1
2.6
74, -2
.74
5
3.2
13,
-3.4
10
3.0
91, -3
.22
7
3.0
52, -3
.41
9
5.3
53, -4
.79
6
6.1
94, -3
.85
6
3.7
72, 2.5
30
Hyperion
Greenland
CR
2
.25484
2.2
5267
2.2
5490
2.2
5548
2.2
5836
2.2
5386
2.2
5562
2.2
5354
2.2
5466
2.2
5260
0.0
0576
Hm
ax,
Hm
in
410
89
, -3
46
22
409
55
, -3
46
36
410
10
, -3
46
30
410
36
, -3
46
33
410
65
, -3
46
23
410
14
, -3
46
26
410
39
, -3
46
27
411
21
, -3
46
17
408
53
, -3
46
47
411
37
, -3
46
14
284
, 3
3
Lm
ax, L
min
2
.367,
-4.0
00
2.3
63
, -2
.25
9
3.1
19, -1
.62
0
1.9
25, -2
.45
7
1.3
40, -1
.61
8
6.4
73,
-3.0
10
13
.00
9,
-21
.24
5
1.6
17, -2
.23
1
1.3
98, -1
.60
4
2.5
21, -6
.49
6
11
.66
9, 19
.64
1
Um
ax,
Um
in
12
.81
5,
-4.1
72
10
.35
4, -1
.891
5.4
27, -4
.09
6
2.3
90, -1
.64
7
2.0
51, -1
.79
3
31
.22
9,
-24
.06
7
32
.36
0,
-7.0
34
2.7
19, -2
.34
2
2.7
31, -1
.63
5
4.9
78, -2
.04
1
30
.30
9, 22
.43
2
Sm
ax, S
min
9
.433,
-7.6
30
12
.13
2, -1
1.4
43
4.4
77, -4
.19
2
4.7
62, -5
.98
4
6.3
86, -6
.03
7
17
.26
8,
-14
.11
0
67
.15
1,
-50
.26
3
9.6
48, -9
.94
6
4.7
75, -4
.65
3
10
.03
2, -9
.544
62
.67
3, 46
.07
1
Boston
CR
2
.27911
2.2
78
72
2.2
7798
2.2
7655
2.2
7726
2.2
7637
2.2
7889
2.2
8065
2.2
7775
2.2
7834
0.0
0428
Hm
ax,
Hm
in
290
30
, -4
05
59
6
296
47
, -4
05
26
7
296
07
, -4
05
22
4
290
57
, -4
05
64
0
205
58
1,-
187
02
3
292
70
, -4
05
06
8
296
76
, -4
05
61
1
298
89
, -4
05
30
6
287
16
, -4
05
10
1
288
28
, -4
05
58
1
176
86
5, 21
86
17
Lm
ax, L
min
2.9
46, -2
.450
1.6
13, -1
.512
1.3
10
, -2
.06
6
2.4
09
, -1
.35
2
1.7
01
, -1
.52
5
1.2
51
, -1
.51
5
1.6
84
, -1
.41
3
1.4
40
, -1
.43
3
1.6
27
, -1
.90
0
1.0
84
, -1
.49
3
1.8
62
, 1
.09
8
Um
ax,
Um
in
3.2
07,
-2.8
25
1.8
65, -1
.52
8
2.2
86, -2
.64
6
1.8
56, -1
.94
3
2.3
55, -1
.73
1
1.7
59
, -2
.15
4
1.8
60, -1
.42
2
1.7
94, -1
.43
8
1.9
91, -1
.90
1
1.5
12, -1
.58
5
1.6
94, 1.4
02
Sm
ax, S
min
6
.909,
-7.4
09
3.2
95, -3
.63
0
4.8
97, -4
.39
6
5.4
07, -6
.32
4
4.5
64, -4
.56
4
4.5
31,
-5.6
73
4.6
64, -4
.16
0
6.3
78, -5
.40
3
4.2
61, -4
.60
8
3.1
35, -3
.15
9
3.7
74, 4.2
50
Edenton
CR
2
.24470
2.2
4378
2.2
4583
2.2
4373
2.2
4438
2.2
4284
2.2
4556
2.2
4622
2.2
4367
2.2
4561
0.0
0338
Hm
ax,
Hm
in
120
03
9,
-23
26
12
229
44
, -4
05
20
6
232
53
, -4
03
99
6
236
32
, -4
03
80
3
214
29
, -4
09
11
3
110
20
7,
-22
73
83
341
95
, -4
09
96
4
111
11
8, -2
317
71
838
56
, -2
32
13
1
212
85
, -4
09
49
6
987
54
, 1
82
58
1
Lm
ax, L
min
1
.046,
-2.2
25
1.2
36, -2
.07
7
2.3
67, -2
.82
6
1.5
66, -2
.12
4
2.1
58, -1
.71
8
0.9
84,
-3.3
89
2.3
32, -2
.36
5
1.6
63, -1
.35
5
1.9
81, -1
.41
9
1.7
48, -1
.69
3
1.3
82, 2.0
34
Um
ax,
Um
in
1.4
87,
-1.6
84
2.9
26, -1
.39
7
2.9
00, -3
.02
5
1.9
21, -2
.37
6
1.6
45
, -1
.87
4
5.3
76,
-2.8
27
3.7
53, -1
.99
7
1.7
59, -1
.57
7
2.1
18, -1
.56
0
1.7
96, -2
.26
0
3.8
89, 1.6
28
Sm
ax, S
min
3
.671,
-3.7
46
3.6
61, -5
.16
2
3.3
37, -2
.93
7
3.6
42, -4
.44
7
3.3
42, -3
.98
3
4.1
74,
-4.2
85
6.4
60, -5
.23
9
3.4
05, -3
.17
3
5.3
69, -5
.04
1
4.1
64, -3
.63
8
3.1
24, 2
.30
2
Portobago
CR
2
.29736
2.2
9871
2.2
9554
2.2
9570
2.2
9458
2.2
9891
2.2
9677
2.2
9634
2.2
9725
2.2
9566
0.0
0433
Hm
ax,
Hm
in
186
26
, -2
29
19
186
45
, -2
28
98
186
22
, -2
29
31
185
88
, -2
29
50
186
50
, -2
29
14
186
05
, -2
29
38
186
27
, -2
29
23
186
32
, -2
29
19
185
70
, -2
29
61
186
55
, -2
29
09
85
, 63
Lm
ax, L
min
2
.000,
-1.9
16
0.9
74, -1
.85
5
1.5
29, -2
.06
4
0.9
84, -1
.55
2
1.2
63, -1
.68
3
1.7
46,
-1.2
37
1.2
00, -3
.32
9
0.9
94, -1
.47
8
1.3
29, -1
.92
4
0.9
22, -1
.52
5
1.0
26, 2.0
92
Um
ax,
Um
in
2.2
98,
-1.3
73
1.9
68, -1
.31
7
1.9
51, -1
.27
8
1.7
54, -1
.78
6
1.9
46, -1
.86
5
2.0
24,
-1.4
09
3.7
93, -1
.49
9
1.7
16, -1
.51
7
1.8
89, -1
.96
9
2.2
01, -1
.94
8
2.0
76, 0.6
91
Sm
ax, S
min
4
.036,
-4.0
48
4.5
55, -5
.08
1
3.5
50, -2
.56
4
4.5
53, -4
.99
0
4.0
13, -3
.91
4
8.9
29,
-8.3
79
3.8
90, -3
.82
2
3.4
11, -4
.04
2
2.7
08, -3
.44
9
3.8
64, -4
.07
2
6.2
21
, 5
.81
5
298
Appendix I : Embedded Platforms Description
I.1 Hardware Aspects
I.1.1 OMAP-L137 EVM
The OMAP-L137 EVM block diagram is shown in Figure I-1 and the board physical
layout is shown in Figure I-2 [27]. The functional block diagram of the EVM is shown in
Figure I-3.
Figure I-1: Block Diagram of OMAP-L137 EVM [27]
Ethernet
connections
MMC/SD/MMC Plus
media interface
RS-232
serial port
Expansion connectorsOn-board JTAG
interface
USB
interfaces
OMAP-L137DC 5V
On/Off
switch
User LEDs &
DIP switches
Reset
SDRAM
64 MB
Audio in/out
connectors
Figure I-2: OMAP-L137 EVM [27]
299
Figure I-3: OMAP-L137 Functional Block Diagram [27]
The memory map of the OMAP-L137 DSP is shown in Figure I-4 [27]. The figure gives
each memory section, with a start and end address along with its size. As depicted, the
DSP has two sets of two-level cache-based architecture: Level 1 and 2 (each set start at
0x0080 0000 and 0x1180 0000 addresses). The Level 1 cache has two types; Level 1
program cache (L1P) with 32 kB direct mapped cache and Level 1 data cache (L1D) with
32 kB 2-way set-associative cache. Level 2 is a program cache (L2P) with a size 256 kB
memory space that is shared between the program and data space. The L2 memory can be
used as mapped memory or cache, or a combination of these two. The EMIFB is used for
external memory that can accept up to 256 MB of memory. In the EVM, since it has only
64 MB of memory, the start address remains at 0xC000 0000 but ends at 0x0400 0000.
Start Address End Address Size ARM Memory Map DSP Memory Map
0x0080 0000 0x0083 FFFF 256 kB DSP L2P RAM
0x00E0 0000 0x00E0 7FFF 32 kB DSP L1P RAM
0x00F0 0000 0x00F0 7FFF 32 kB DSP L1D RAM
0x0184 0000 0x0184 FFFF 64 kB DSP Memory System
0x1180 0000 0x1183 FFFF 256 kB DSP L2P RAM
0x11E0 0000 0x11E0 7FFF 32 kB DSP L1P RAM
0x11F0 0000 0x11F0 7FFF 32 kB DSP L1D RAM
0x8000 0000 0x8001 FFFF 128 kB Shared RAM
0xB000 0000 0xB000 7FFF 32 kB EMIFB Control Register
0xC000 0000 0xCFFF FFFF 256 MB EMIFB SDRAM Data
0xFFFE E000 0xFFFE FFFF 8 kB ARM Interrupt Controller
0xFFFF 0000 0xFFFF 1FFF 8 kB ARM Local RAM
Figure I-4: OMAP-L137 Memory Map [27]
300
I.1.2 TMDSEVM6678L EVM
The TMDSEVM6678L EVM hardware block diagram is shown in Figure I-5 and the
board physical layout is shown in Figure I-6. The EVM’s form factor is equivalent to a
single-wide Peripheral Component Interconnect (PCI) Industrial Computer
Manufacturers Group (PICMG) Advanced Mezzanine Card-AMC.0 R2.0 module [207].
Figure I-5: Block Diagram of TMDSEVM6678L EVM [207]
Gigabit
Ethernet
Miscellaneous I/O
80 pin connector
NAND Flash
64 MB
TMS320C6678
(8 core DSP)AMC Type B+
DC 12VDDR3 SDRAM
512 MB60-pin header for
external emulator
Boot Mode/Configuration
Setting
RS-232 Serial
Port
On-board JTAG interfaceWar
m R
eset
Full
Reset
User
LEDs
Figure I-6: TMDSEVM6678L EVM [207]
Brief memory map for the TMS320C6678 DSP is shown in Figure I-7. As shown, each
CorePac has its own Level 2 (L2) and Level 1 (L1P-program and L1D-data) caches (the
addresses are referred as global addresses) as well as local caches with similar sizes (local
addresses). There is also a multi-core shared memory (MSM) with a size of 4 MB,
accessible by all CorePac. Master peripherals (e.g. EDMA3 controller) can access all the
global addresses directly but need address aliasing to get access to the local address.
Address aliasing is handled within the CorePac by masking the eight most significant bits
(MSBs) of the address to zero. The aliasing allows for a common code to be run
unmodified on multiple CorePac (e.g. SPMD as discussed in Section 4.4 for the OpenMP
301
implementation). As an example, CorePac7 can access its L2 memory using 0x1780 0000
or 0x0080 0000 base (start) addresses. Any other master peripheral (e.g. MSMC) must
use 0x1780 0000 only to access the cache. The local address 0x0080 0000 can be used by
any other CorePac as their own L2 base address. The local addresses should only be used
for shared code/data so that only a single copy of code/data is available in the memory. A
code or data targeted to a specific CorePac, or a memory region allocated during run-time
by a particular CorePac (i.e. making it private for specific CorePac) should only use the
global addresses.
Start Address End Address Size Description
0x0080 0000 0x0087 FFFF 512 kB Local L2 SRAM
0x00E0 0000 0x00E0 7FFF 32 kB Local L1P SRAM
0x00F0 0000 0x00F0 7FFF 32 kB Local L1D SRAM
0x0C00 0000 0x0C3F FFFF 4 MB Multi-core shared memory (MSM)
0x1080 0000 0x1087 FFFF 512 kB CorePac0 L2 SRAM
0x10E0 0000 0x10E0 7FFF 32 kB CorePac0 L1P SRAM
0x10F0 0000 0x10F0 7FFF 32 kB CorePac0 L1D SRAM
0x1180 0000 0x1187 FFFF 512 kB CorePac1 L2 SRAM
0x11E0 0000 0x11E0 7FFF 32 kB CorePac1 L1P SRAM
0x11F0 0000 0x11F0 7FFF 32 kB CorePac1 L1D SRAM
0x1280 0000 0x1287 FFFF 512 kB CorePac2 L2 SRAM
0x12E0 0000 0x12E0 7FFF 32 kB CorePac2 L1P SRAM
0x12F0 0000 0x12F0 7FFF 32 kB CorePac2 L1D SRAM
0x1380 0000 0x1387 FFFF 512 kB CorePac3 L2 SRAM
0x13E0 0000 0x13E0 7FFF 32 kB CorePac3 L1P SRAM
0x13F0 0000 0x13F0 7FFF 32 kB CorePac3 L1D SRAM
0x1480 0000 0x1487 FFFF 512 kB CorePac4 L2 SRAM
0x14E0 0000 0x14E0 7FFF 32 kB CorePac4 L1P SRAM
0x14F0 0000 0x14F0 7FFF 32 kB CorePac4 L1D SRAM
0x1580 0000 0x1587 FFFF 512 kB CorePac5 L2 SRAM
0x15E0 0000 0x15E0 7FFF 32 kB CorePac5 L1P SRAM
0x15F0 0000 0x15F0 7FFF 32 kB CorePac5 L1D SRAM
0x1680 0000 0x1687 FFFF 512 kB CorePac6 L2 SRAM
0x16E0 0000 0x16E0 7FFF 32 kB CorePac6 L1P SRAM
0x16F0 0000 0x16F0 7FFF 32 kB CorePac6 L1D SRAM
0x1780 0000 0x1787 FFFF 512 kB CorePac7 L2 SRAM
0x17E0 0000 0x17E0 7FFF 32 kB CorePac7 L1P SRAM
0x17F0 0000 0x17F0 7FFF 32 kB CorePac7 L1D SRAM
0x8000 0000 0xFFFF FFFF 2 GB DDR3 EMIF data
Figure I-7: Brief TMS320C6678 Memory Map [207, 277]
302
The EMIF address range shown in the figure above supports the addressing of up to 2 GB
of memory range and can be extended up to 8 GB [277]. For the EVM, since it came with
512 MB of memory, the start address remains at 0x8000 0000 but ends at 0x9FFF FFFF.
The shared and private memory regions can be remapped to point to this memory address
range, so that the shared and private memory regions become larger and suitable for
applications that demand large memory.
NtTftpRecv(hostTFTP, imagename, (char*)buffer, &Size, &ErrorCode);
Listing I-1: Instruction to Initiate TFTP File Transfer
I.2 Compiler Optimisation
The C/C++ compiler translates a C/C++ source file into a TMS320C6000 assembly
language source file. In general, programs are written in C/C++ language because of its
portability, ease of use and popularity [302, 303]. Although for time-critical applications
the assembly language is the most efficient language, the C/C++ compiler for the
TMS320C6000 processors can achieve performances exceeding 70% compared with
codes written in assembly [282]. After a program compilation, the assembler translates
the C/C++ codes into assembly codes. The assembly codes however need to be linked
together with other configuration file such as memory allocation setting, library files and
command files by using a linker to produce COFF or ELF files that the DSP can
understand and execute.
The compiler, assembler and linker use options supplied by the programmer. The options
determine the code performance in terms of speed and size. The TMS320C6000 C/C++
compiler can perform optimisation of up to about 80% compared with a hand-scheduled
assembly [282]. To invoke the compiler optimisation, option --opt_level = 0, 1, 2 or 3 (or
similarly by using its alias, -O0, -O1, -O2 or -O3) can be passed on to the compiler
during compilation time. Table I-1 listed each level of optimisation along with its
description [304]. In the implementations, the optimisation level, --opt_level is set to 3
for the compiler to automatically perform all the optimisations listed in the table.
Table I-1: Optimisation Level of the Compiler [304]
Optimisation Level (--opt_level flag) Alias
--opt_level = 0
Allocates variables to registers, performs loop rotation and eliminates unused code
Simplifies expressions and statements, expand calls to functions declared inline
-O0
303
--opt_level = 1, performs all optimisations performed by -O0, including
Performs local copy/constant propagation
Removes unused assignments, eliminates local common expressions
-O1
--opt_level = 2, performs all optimisations performed by -O1, including
Performs software pipelining, loop optimisations and loop unrolling
Eliminates global unused assignments
Converts array references in loops to incremented pointer form
-O2
--opt_level = 3, performs all optimisations performed by -O2, including
Removes all functions that are never called
Simplifies functions with return values that are never used and inline calls to small functions
Reorders function declaration; the called functions attributes are known when the caller is
optimised
Propagates arguments into function bodies when all calls pass the same value in the same
argument position
Identifies file-level variable characteristics
-O3
In conjunction with the compiler optimisation level listed in Table I-1, there is also an
option for reducing the code size (option --opt_for_space) that can be set to 0, 1, 2, or 3
(or similarly using alias -ms0, -ms1, -ms2 or -ms3) [304]. When using the --opt_level = 2
or 3, the compiler optimises mainly for performance. The --opt_for_space flag let the user
adjust the priorities between performance and code size. The option --opt_for_space = 0,
1, 2 and 3 increasingly favour code size over performance. The user can also choose not
to use this option especially for performance-critical codes [304].
There is also an option for optimising speed of execution versus code size (option --
opt_for_speed). This optimisation can be used to minimise code size with possible
degradation in the execution speed [302]. This option can be invoked during program
compilation. The level of optimisation between the speed and code size is shown in Table
I-2 with --opt_for_speed = 0 to 5. If the option is specified without the parameter, the
default setting is --opt_for_speed = 4. The --opt_for_space option has some relations with
the --opt_for_speed option and are shown in Table I-3. In the implementation works, the -
-opt_for_speed is set to 5.
Table I-2: Optimisation between Speed of Execution versus Code Size [304]
Degree of
Optimisation
(--opt_for_speed)
Optimisation Speed versus Size
= 0 Enables optimisations geared towards improving the code size with a high risk
of worsening or impacting performance.
= 1 Enables optimisations geared towards improving the code size with a medium
risk of worsening or impacting performance.
= 2 Enables optimisations geared towards improving the code size with a low risk of
worsening or impacting performance.
= 3 Enables optimisations geared towards improving the code performance/speed
with a low risk of worsening or impacting code size.
304
= 4 Enables optimisations geared towards improving the code performance/speed
with a medium risk of worsening or impacting code size.
= 5 Enables optimisations geared towards improving the code performance/speed
with a high risk of worsening or impacting code size.
Table I-3: Equivalence of --opt_for_space and --opt_for_speed Options [304]
--opt_for_space --opt_for_speed
none = 4
= 0 = 3
= 1 = 2
= 2 = 1
= 3 = 0
Top Related