karhunen-lo¨ve transform based lossless hyperspectral image compression for space

340
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

Upload: others

Post on 11-Sep-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 2: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 3: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 4: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 5: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 6: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 7: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 8: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 9: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 10: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 11: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 12: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 13: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 14: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 15: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 16: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 17: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 18: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 19: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 20: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 21: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 22: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 23: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 24: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 25: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 26: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 27: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 28: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 29: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 30: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 31: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 32: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 33: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 34: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 35: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 36: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 37: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 38: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 39: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 40: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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?

Page 41: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 42: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 43: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 44: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 45: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 46: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 47: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 48: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 49: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 50: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 51: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 52: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 53: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 54: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 55: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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].

Page 56: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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].

Page 57: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 58: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 59: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 60: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 61: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 62: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 63: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 64: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 65: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 66: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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].

Page 67: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 68: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 69: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 70: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 71: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 72: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 73: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 74: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 75: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 76: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 77: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 78: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 79: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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]

Page 80: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 81: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 82: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 83: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 84: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 85: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 86: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 87: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 88: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 89: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 90: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 91: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 92: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 93: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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..

Page 94: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 95: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 96: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 97: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 98: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 99: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 100: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 101: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 102: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 103: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 104: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 105: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 106: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 107: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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].

Page 108: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 109: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 110: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 111: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 112: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 113: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 114: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 115: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 116: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 117: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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).

Page 118: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 119: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 120: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 121: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 122: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 123: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 124: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 125: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 126: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 127: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 128: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 129: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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,

Page 130: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 131: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 132: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 133: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 134: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 135: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 136: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 137: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 138: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 139: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 140: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 141: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 142: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 143: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 144: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 145: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 146: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

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

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

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

Page 147: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 148: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 149: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 150: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 151: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 152: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 153: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

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

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

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

Page 154: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 155: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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%

Page 156: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 157: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 158: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

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

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

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

Page 159: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 160: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 161: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 162: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 163: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 164: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 165: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 166: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 167: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 168: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 169: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 170: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 171: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

135

Table 4-36: Integer KLT Execution Time Performance Comparison (seconds)

Hyperspectral

Dataset

From Section 4.7.1 Fixed Sampling +

Clustering @512×512,

(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:

Page 172: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 173: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 174: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 175: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 176: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 177: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 178: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 179: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 180: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 181: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 182: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 183: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 184: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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,

Page 185: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 186: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 187: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 188: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 189: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 190: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 191: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 192: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 193: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 194: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 195: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 196: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 197: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 198: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 199: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 200: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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,

Page 201: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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,

Page 202: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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]

Page 203: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 204: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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++

Page 205: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 206: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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,

Page 207: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 208: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 209: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 210: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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. }

Page 211: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 212: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 213: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 214: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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:

Page 215: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 216: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 217: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 218: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 219: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 220: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 221: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 222: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 223: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 224: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 225: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 226: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 227: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 228: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 229: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 230: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 231: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 232: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 233: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 234: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 235: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 236: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 237: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 238: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 239: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 240: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 241: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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 �̃�

Page 242: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 243: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 244: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 245: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 246: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 247: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 248: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 249: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 250: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 251: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 252: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 253: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 254: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 255: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 256: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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|

Page 257: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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|

Page 258: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 259: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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).

Page 260: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 261: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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 �̃�.

Page 262: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 263: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 264: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 265: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 266: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 267: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 268: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 269: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 270: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 271: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 272: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 273: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 274: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 275: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 276: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 277: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 278: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 279: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 280: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 281: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 282: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 283: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 284: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 285: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 286: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 287: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 288: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 289: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 290: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 291: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 292: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 293: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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:

Page 294: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 295: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 296: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 297: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 298: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 299: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 300: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 301: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 302: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 303: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 304: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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:

Page 305: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 306: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 307: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 308: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 309: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 310: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 311: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 312: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 313: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 314: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 315: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 316: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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)

Page 317: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 318: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 319: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 320: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 321: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 322: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 323: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 324: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 325: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 326: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 327: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 328: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 329: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 330: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 331: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 332: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 333: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 334: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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]

Page 335: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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]

Page 336: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 337: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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]

Page 338: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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

Page 339: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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.

Page 340: Karhunen-Lo¨ve Transform based Lossless Hyperspectral Image Compression for Space

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