Header image

Parallelization of Prediction and Encoding for Multispectral and Hyperspectral Images

Monday, September 21, 2020
5:10 PM - 5:35 PM

Speaker

Attendee27
Enea Services Romania S.r.l.

Parallelization of Prediction and Encoding for Multispectral and Hyperspectral Images

Abstract Submission

Parallelization of Prediction and Encoding for
Multispectral and Hyperspectral Images
Enea Services Romania S.R.L.

This presentation analyses the parallelization schemas used for the prediction and encoding phases, described by the CCSDS 123.0-B-1 - Lossless Multispectral & Hyperspectral Image Compression and CCSDS-123.0-B-2 - Low-Complexity Lossless and Near-Lossless Multispectral and Hyperspectral Image Compression standards.

The CCSDS 123.0-B-1 standard is applicable for lossless compression, where the samples in each band are arranged in raster-scan order and each spectral band has its own weight vector, which is maintained independently of the weight vectors used by other spectral bands. Because of this, the parallelization method used for the prediction phase, is to divide the image along the z and y axes, in blocks made up of samples from entire x axis.

In comparison with the CCSDS 123.0-B-1, for the prediction phase from the CCSDS-123.0-B-2 standard, the same parallelization scheme could not be applied, because the quantization concept is introduced - which leads to some dependencies between consecutive spectral bands: the value computed for a given index in the current spectral band, depends by the value, from the same index, computed on the previous bands. These leads to a new parallelization scheme, where the image is divided along the z axis, in blocks made up of samples from entire y and x axis. In case the spectral bands are lower than the number of cores used, the image could be divided along the y axis and the blocks will be made up of samples from entire z and x axes.

Regarding the encoding phase, there are 3 encoding methods: Sample Adaptive and Block Adaptive defined in CCSDS 123.0-B-1 and CCSDS-123.0-B-2 and Hybrid method, which is a new concept introduced in CCSDS-123.0-B-2.

The scheme proposed when mapped prediction residuals are encoded using the Sample-Adaptive and the variable length code-words are saved in BI order, is to is partition the mapped prediction residuals along the y and the z axes in segments of data that can be encoded independently. The partition size along the z axis is given by the interleaving depth (M), except for, possibly, the last partition; while the partition size along the y axis is 1, which means that only one row is processed at a time. The sub-frame interleaving depth (M), when band-interleaved encoding order is used, could be selected so that the processing load on each core is balanced.

In case the variable length code-words are saved in BSQ order and the encoding method is Sample-Adaptive, the parallelization scheme is to divide the mapped prediction residuals along the z-axis in blocks of data that can be encoded independently. The size of each partition taken along the z-axis is calculated so that the task load can be managed efficiently. This method of distributing the computational load across processor’s cores is facilitated by the fact that separated statistics (based on accumulator Σz(t) and counter Γ(t) values) are maintained independently for each spectral band.

The parallelization scheme chosen for Block-Adaptive has similarities to the one described for the Sample-Adaptive, the difference consists in the way in which the size of each partition is calculated. For the Block-Adaptive encoding method, the size of each partition is calculated based on the number of reference blocks that exist in the image, while for the Sample-Adaptive method the size of each partition is calculated based on the number of spectral bands.

The Hybrid encoding method can be described as a combination between Sample-Adaptive and Block-Adaptive, where 16 low-entropy codes are used alongside high entropy encoding. The Hybrid encoding will be performed in two stages: the low entropy code detection and the codewords detection and encoding. Due to this, the parallelization will consist in one processing block for each low entropy code, and one additional for the high entropy mapped quantizer indexes - that gives the chance to balance the load evenly among cores.

loading