2.1.1. Reversible Invisible Watermarking Scheme for Hyperspectral Images
In [
13], we have proposed a preliminary version of a reversible invisible watermarking scheme for hyperspectral images. This scheme relies on the approaches outlined in [
9,
14], and belongs to the category of additive schemes. In the additive scheme, the watermark signal
w (i.e., a watermark string) is directly added to the input signal, namely the pixels of the input hyperspectral image
HI. In this way the output produced (i.e., the watermarked hyperspectral image
HI^{W}) contains both the signals (the one that represents the
HI and the one that represents the watermark
w). A secret key,
K, is used to perform the embedding phase.
It is important to note that this scheme is reversible. Therefore, it is possible to restore the original HI and to extract the watermark w. In addition, this scheme is fragile: a simple modification of HI^{W} might cause the disappearance of the embedded watermark, w.
The basic objective of our scheme is to spread the bits of w among all the bands of HI. More precisely, each bit of w—referred to as b_{w}—will be embedded into a set of four pixels ${S}_{P}=\{{x}_{(0)},{x}_{(0)},{x}_{(2)},{x}_{(3)}\}$. These pixels are pseudorandomly selected by means of a pseudorandom number generator (PRNG) based on the secret key, K.
Since it is possible to have a set S_{P} that cannot be used to carry b_{w} due to the fact that the extraction algorithm might be unable to extract the hidden bit, it is necessary to classify the sets into two categories: “carrier sets” and “noncarrier sets”. A carrier set is a set in which a bit, b_{w}, can be embedded, while a noncarrier set is a set in which a bit, b_{w}, cannot be embedded.
When the algorithm identifies a carrier set
S_{P}, a bit
b_{w} can be embedded by means of the “embedWatermarkBit” procedure, reported in Algorithm 1, which returns as output the set
${S}_{P}^{w}$.
${S}_{P}^{w}$ represents the set
S_{P} in which
b_{w} is embedded. To classify a set
S_{P}, the relationship between
S_{P} and its
estimation ${S}_{P}^{E}$ is exploited. This estimation is computed by means of a linear combination of the pixels of
S_{P}, as explained in the “estimate” procedure (see Algorithm 2). By using the estimation, the extraction algorithm can classify, in two steps, a set
S_{P}. Furthermore, the extraction algorithm can restore the original pixel values of the carrier set by manipulating a watermarked carrier set. In this manner, the reversibility property is obtained.
Algorithm 1 The “embedWatermarkBit” procedure (pseudocode from [13]) 
procedure embedWatermarkBit (${S}_{P}$, ${b}_{w}$) 
if ${b}_{w}==1$ then ${x}_{(0)}^{w}={x}_{(0)}+1$; ${x}_{(1)}^{w}={x}_{(1)}1$; ${x}_{(2)}^{w}={x}_{(2)}1$; ${x}_{(3)}^{w}={x}_{(3)}+1$; else ${x}_{(0)}^{w}={x}_{(0)}1$; ${x}_{(1)}^{w}={x}_{(1)}+1$; ${x}_{(2)}^{w}={x}_{(2)}+1$; ${x}_{(3)}^{w}={x}_{(3)}1$; endif ${S}_{P}^{w}=\{{x}_{(0)}^{w},{x}_{(1)}^{w},{x}_{(2)}^{w},{x}_{(3)}^{w}\}$; return ${S}_{P}^{w}$;

end procedure 
Algorithm 3 reports the pseudocode of the “embed” procedure. This procedure embeds the watermark string w into the input hyperspectral image HI by using in the embedding process the secret key K.
In details: the pseudorandom number generator (PRNG) G is initialized by using K as a seed. Subsequently, w is subdivided into M substrings (where M is the number of bands of HI). The ith substring, w_{i}, will be embedded into the ith band of HI, denoted as HI_{(i)}. Therefore, each band will carry at least $\lfloor N/M\rfloor $ bits, where N denotes the length of w.
The algorithm considers each substring
w_{i} and performs the following steps until all the bits composing
w_{i} are embedded into
HI_{(i)}: four pixels (we denote them as
${x}_{(0)}$,
${x}_{(1)}$,
${x}_{(2)}$, and
${x}_{(3)}$) are randomly selected by using the PRNG
G to compose a set
${S}_{P}$. Subsequently, the estimation
${S}_{P}^{E}$ (composed by four estimated pixels, that we denote as
${x}_{(0)}^{E}$,
${x}_{(1)}^{E}$,
${x}_{(2)}^{E}$, and
${x}_{(3)}^{E}$) of
${S}_{P}$ is calculated. This estimation is computed by a linear combination of the pixels of
S_{P}, as it is shown in the
estimate procedure of Algorithm 2. In order to classify the set
${S}_{P}$, the difference
D, in absolute value, between
${x}_{(0)}$ and
${x}_{(0)}^{E}$ is computed. In the case
$D$ is less than 1, then the set
${S}_{P}$ is classified as a carrier set and, therefore, the “embedWatermarkBit” procedure (Algorithm 1) is performed in order to embed
b_{w} into
${S}_{P}$. Thus, the processing of bit
b_{w} is complete. The coordinates of the pixels
${x}_{(0)}$,
${x}_{(1)}$,
${x}_{(2)}$, and
${x}_{(3)}$ will be no longer selectable and the algorithm proceeds by embedding the next bit of
w_{i}.
Algorithm 2 The “estimate” procedure (pseudocode from [13]) 
procedure estimate (${S}_{P}$) 
${x}_{(0)}^{E}=\frac{2\times {x}_{(0)}+{x}_{(1)}+{x}_{(2)}}{4}$; ${x}_{(1)}^{E}=\frac{2\times {x}_{(1)}+{x}_{(0)}+{x}_{(3)}}{4}$; ${x}_{(2)}^{E}=\frac{2\times {x}_{(2)}+{x}_{(0)+{x}_{(3)}}}{4}$; ${x}_{(3)}^{E}=\frac{2\times {x}_{(3)}+{x}_{(1)}+{x}_{(2)}}{4}$; ${S}_{P}^{E}=\{{x}_{(0)}^{E},{x}_{(1)}^{E},{x}_{(2)}^{E},{x}_{(3)}^{E}\}$; return ${S}_{P}^{E}$;

end procedure 
In case
S_{p} is classified, instead, as a noncarrier set, then the value of the pixels of
S_{p} are modelled in order to increase the difference,
$D$. In this manner, the extraction algorithm is able to correctly understand that
S_{p} is a noncarrier set. As a consequence, the bit,
b_{w}, cannot be embedded into the set
S_{p} and other four pixels (different from the ones previously selected) will be selected to compose a new set
S_{p}, to try the embedding again.
Algorithm 3 The “embed” procedure (pseudocode from [13]) 
procedure embed ($HI$, w, K) 
Let $G$ be a PRNG; $N=lengthOf(w)$; Subdivide w into $\{{w}_{1},{w}_{2},\dots ,{w}_{M}\}$; for i = 1 to M do $idx=1$; ${N}_{i}=lengthOf({w}_{i})$ repeat ${b}_{w}={w}_{i}\left[idx\right]$; By using $G$ along with K, selects ${x}_{(0)},{x}_{(1)},{x}_{(2)},{x}_{(3)}$ from $H{I}_{(i)}$; ${S}_{P}=\{{x}_{(0)},{x}_{(1)},{x}_{(2)},{x}_{(3)}\}$; ${S}_{P}^{E}=estimate({S}_{P})$; $D={x}_{(0)}{x}_{(0)}^{E}$; if $D<1$ then ${S}_{P}^{w}=embedWatermarkBit({S}_{P},{b}_{w})$; $idx++$; else Modifying of ${S}_{P}$, by using ${S}_{P}=$ embedWatermarkBit(${S}_{P},$ 0) or ${S}_{P}=$ embedWatermarkBit(${S}_{P},$ 1), in order to increase the value of $D$; endif Setting of the coordinates of ${x}_{(0)}$, ${x}_{(1)}$, ${x}_{(2)}$ and ${x}_{(3)}$ no longer selectable; until $idx\le {N}_{i}$; end for Copying of all modified and unmodified pixels to $H{I}^{W}$; return $H{I}^{W}$;

end procedure 
2.1.2. Multiband Lossless Compression of Hyperspectral Images
The predictivebased multiband lossless compression for hyperspectral images (LMBHI) [
11] algorithm exploits the interband correlation (i.e., the correlation among the neighboring pixels of contiguous bands) as well as the intraband correlations (i.e., the correlations among the neighboring pixels of the same band), by using a predictive coding model.
Each pixel of the input hyperspectral image
HI is predicted by using one of the following predictive structures: the 2D linearized median predictor (2D LMP) [
15] and the 3D multiband linear predictor (3DMBLP).
2D LMP considers only the intraband correlation and it is used only for the pixels of the first band for which there are no previous reference bands.
3DMBLP exploits the intraband and the interband correlations instead and is used to predict the pixels of all the bands except for the first one.
Once the prediction step is performed the prediction error, e, is modelled and coded. In particular, e is obtained by subtracting the value of the prediction of the current pixel from its effective value.
The 3DMBLP predictor uses a threedimensional prediction context which is defined by considering two parameters: B and N, where B indicates the number of the previous reference bands and N indicates the number of pixels that will be included in the prediction context that are in the current band and in the previous B reference bands.
In order to permit an efficient and relative indexing of the pixels that form the prediction context of the 3DMBLP, an enumeration, E, is defined. We denote with ${I}_{i,j}$ the ith pixel (according to the enumeration E) of the jth band. In addition, we suppose that the current band is the $k$th band. In this manner, ${I}_{0,j}$ is referred to the pixel that has the same spatial coordinates of the current pixel (denoted as ${I}_{0,k}$), in the jth band.
The 3DMBLP predictor is based on the least squares optimization technique and the prediction is computed, as in Equation (1).
It is important to point out that the coefficients
${\alpha}_{0}={\left[{\alpha}_{1},\dots ,{\alpha}_{B}\right]}^{T}$ are chosen to minimize the energy of the prediction error, as in Equation (2).
It should be observable that Equation (2) can be rewritten (by using the matrix notation), as outlined in the equation
Subsequently, by computing the derivate of
$P$ and by setting it to zero, the optimal coefficients can be obtained
Once the coefficients ${\alpha}_{0}$, which solve the linear system of Equation (3), are computed, the prediction $\widehat{{I}_{0,k}}$, of the current pixel ${I}_{0,k}$, can be calculated.