Théo Taburet
email: theo.taburet@centralelille.fr

Patrick Bas
email: patrick.bas@centralelille.fr

Wadih Sawaya
email: wadih.sawaya@imt-lille-douai.fr

Jessica Fridrich
email: fridrich@binghamton.edu

A Natural Steganography Embedding Scheme Dedicated to Color Sensors in the JPEG Domain

Keywords:

Using Natural Steganography (NS), a cover raw image acquired at sensitivity ISO 1 is transformed into a stego image whose statistical distribution is similar to a cover image acquired at sensitivity ISO 2 > ISO 1 . This paper proposes such an embedding scheme for color sensors in the JPEG domain, extending thus the prior art proposed for the pixel domain and the JPEG domain for monochrome sensors. We first show that color sensors generate strong intra-block and inter-block dependencies between DCT coefficients and that theses dependencies are due to the demosaicking step in the development process. Capturing theses dependencies using an empirical covariance matrix, we propose a pseudoembedding algorithm on greyscale JPEG images which uses up to four sub-lattices and 64 lattices to embed information while preserving the estimated correlations among DCT coefficients. We then compute an approximation of the average embedding rate w.r.t. the JPEG quality factor and evaluate the empirical security of the proposed scheme for linear and non-linear demosaicking schemes. Our experiments show that we can achieve high capacity (around 2 bit per nzAC) with a high empirical security (P E 30% using DCTR at QF 95).

RAW Cover

Introduction

The class of model-based (MB) steganographic schemes, such as [START_REF] Sallee | Model-based steganography[END_REF][START_REF] Sedighi | Content-adaptive steganography by minimizing statistical detectability[END_REF], is a rational source of inspiration for secure steganography since the goal is to embed a payload while matching a statistical model. In the MB method introduced by Sallee [START_REF] Sallee | Model-based steganography[END_REF], the embedding is done in order to preserve the underlying generalized Cauchy distribution of each DCT coefficient. In MiPOD [START_REF] Sedighi | Content-adaptive steganography by minimizing statistical detectability[END_REF], the goal is to minimize the statistical distortion of residuals modeled in the pixel domain using a Gaussian distribution.

Natural Steganography (NS) is a another class of model-based embedding schemes which embeds a stego signal that mimics the statistical properties of the camera shot noise. NS embeds a payload by adding noise (a stego signal) to an image acquired at ISO 1 to make it look like the image was acquired at a larger ISO sensitivity ISO 2 > ISO 1 . This approach has been shown to achieve both high capacity and statistical undetectability as long as the embedder is able to correctly model the added noise. The high security of NS schemes is also due to the fact that NS uses side-information at the embedder [START_REF] Bas | Steganography via Cover-Source Switching[END_REF]. However, contrary to other schemes relying on side information such as SI-Uniward [START_REF] Holub | Universal distortion function for steganography in an arbitrary domain[END_REF] or other side-informed implementations [START_REF] Denemark | Side-informed steganography with additive distortion[END_REF], the embedding capacity of NS is only limited by the gap between the two ISO sensitivities. 1In the spatial domain, implementations of NS have been proposed for monochrome sensors, which do not perform demosaicking, with development processes that apply quantization, gamma correction [START_REF] Bas | Steganography via Cover-Source Switching[END_REF], and downsampling [START_REF] Bas | An embedding mechanism for Natural Steganography after down-sampling[END_REF]. In the JPEG domain, our recent work [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF] highlighted that models that only consider first-order marginal statistics (histograms) work well for monochrome sensors but the embedding is very detectable for color sensors.

This problem is addressed in this paper by first modeling dependencies among 3 × 3 × 64 DCT coefficients from 3 blocks × 3 blocks by estimating the covariance matrix of DCT coefficients of shot noise of a given power. Then using four different sublattices and computing conditional probabilities by modeling the dependencies with a multivariate Gaussian distribution, we are able to compute the embedding probability associated with each DCT coefficient. This probability will be later transformed into costs and used with syndrome-trellis codes (STCs) [START_REF] Filler | Minimizing additive distortion in steganography using syndrome-trellis codes[END_REF] to perform practical embedding in the greyscale domain.

Preliminaries

Throughout this paper, we use capital letters for random variables and the corresponding lower-case symbols for their realizations. Matrices are typed in upper-case and vectors in lower-case boldface font. Matrix transpose will be denoted with a superscript "t".

We distinguish between three forms of steganographic embedding: (classical) embedding, simulated-embedding and pseudo-embedding. By an embedding scheme, we understand a practical embedding algorithm that embeds a given payload in a cover.

In simulated-embedding, the embedding changes are simulated according to a given selection channel -the probability π(k) of modifying the sample in the cover at location k. For simulated embedding, practical embedding can be realized using multilayered STCs [START_REF] Filler | Minimizing additive distortion in steganography using syndrome-trellis codes[END_REF] based on costs directly computed from the set of embedding probabilities π(k), but is often not implemented to reduce the implementation time. We call this output simulated-stego or simu-stego for brevity.

Finally, pseudo-embedding means that the practical embedding is not possible with the proposed implementation, but that the output of the algorithm, that we call a pseudo-stego, is statistically distributed as the stego image.

Pseudo-embedding at the photo-site level

We first recall how to generate a pseudo-stego signal and how to perform pseudo-embedding on RAW image photo-sites.

The embedding relies on the principle that the shot noise values perturbing the photo-sites of a CCD or CMOS sensor are assumed to be independent realizations of random variables N i,j that follow the heteroscedastic noise model

N (1) i,j ∼ N (0, a 1 µ i,j + b 1 ), (1)
where µ i,j is the noiseless photo-site value at photo-site i, j, while (a i , b 1 ) are a pair of constants that only depend on the ISO 1 sensitivity and the specific sensor. The acquired photo-site sample x

(1) i,j is thus a realization

x (1) i,j = µ i,j + n (1) i,j (2)
of a Gaussian variable

X (1) i,j ∼ N (µ i,j , a 1 µ i,j + b 1 ). (3)
Similarly, at ISO 2 the realization is distributed as X [START_REF] Bas | Steganography via Cover-Source Switching[END_REF] i,j ∼ N (µ i,j , a 2 µ i,j + b 2 ). However, we can also write the photo-site value of a stego image acquired at ISO 2 as

y i,j = x (1) i,j + s i,j , (4)
where S i,j is a random variable independent of the cover and representing the stego signal necessary to mimic the image captured at ISO 2 . It is distributed as

S i,j ∼ N (0, (a 2 -a 1 )µ i,j + b 2 -b 1 ). (5)
The photo-site of the stego image is distributed as

Y i,j ∼ N (µ i,j , a 1 µ i,j + b 1 + (a 2 -a 1 )µ i,j + b 2 -b 1 ).
Assuming that the observed photo-site is close to its expectation, i.e., µ i,j ≈ x

(1)
i,j , we obtain

Y i,j ∼ X (2) i,j . (6)
Equation [START_REF] Denemark | Side-informed steganography with additive distortion[END_REF] shows that the distribution of a stego image pixel is the same as the distribution of a cover pixel acquired at ISO 2 . Equation ( 4) is the pseudo-embedding operation, which enables us to generate pseudo-stego content at the photo-site level.

Practically, the distribution of the stego signal in the continuous domain takes into account the statistical model of the shot noise estimated for two ISO settings, ISO 1 and ISO 2 , using the procedure described in [START_REF] Bas | Steganography via Cover-Source Switching[END_REF]. The work presented in [START_REF] Bas | An embedding mechanism for Natural Steganography after down-sampling[END_REF][START_REF] Bas | Steganography via Cover-Source Switching[END_REF] shows that for monochrome sensors, this model in the spatial domain can be used to derive the distribution of the stego signal in the spatial domain after quantization, gamma correction, and image downsampling using bilinear kernels. We next study the properties of the acquisition noise after the Discrete Cosine Transform (DCT).

Pseudo-embedding at the DCT level

We now explain the basic development pipeline shown in Figure 1 that enables us to generate pseudo-stego images in the JPEG domain. It consists of the following steps:

• Using (4), a pseudo-stego image y is generated in the RAW domain. • y first goes through the demosaicking algorithm to generate a vector y d . Here, we use popular algorithms implemented by LibRaw [START_REF]Libraw raw image decoder[END_REF], such as the bilinear interpolation, VNG, DCB, and AAHD. To preserve information, the resulting image is sampled at 16 bits per channel and stored, for example, in the TIFF format. • Because we target embedding in grayscale images, we then convert the color image into a grayscale image by computing the luminance:

y l = 0.299 yr + 0.587 yg + 0.114 y b , (7)
where yr, yg, and y b denote, respectively, the red, green, and blue components (without loss of generality we assume here that there is no color correction). • The DCT transform is then computed on 8 × 8 blocks:

y t = DCT(y l ). ( 8
)
• Finally, the DCT coefficients are quantized using quantization tables to generate a set of JPEG coefficients yq. We use standard quantization tables parametrized by the JPEG Quality Factor (QF). • Quantized coefficients yq are stored in a JPEG container to generate a pseudo-stego image in the JPEG format.

Modeling DCT coefficients

Rationale

In [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF], the stego signal in the JPEG domain was modeled as a set of independent modifications of each DCT mode in the stego image. Practically, we used Monte-Carlo simulations and 300 pseudo-stego images to blindly estimate the empirical histogram of the stego signal for each mode, and showed that the empirical security was high for monochrome sensors but low for color sensors (particularly for high JPEG QF), which was due to the fact that we did not take into account dependencies between DCT coefficients during embedding.

Consequently, in the current paper we first analyze the dependencies between DCT coefficients within one block but also between blocks. In the development pipeline proposed in Figure 1, dependencies between DCT modes can only be introduced during the demosaicking process since pseudo-embedding at the photo-site level and luminance computation are both pixel-wise operations. Since most demosaicking algorithms only involve a small window, 2 we consider only the dependencies between neighboring blocks.

In order to perform NS in the JPEG domain, we also need to specify the joint distribution of the stego signal in the DCT domain.

If we assume that the demosaicking operation is linear, and since the stego signal at the photo-site level is Gaussian, the stego-signal s t at the DCT level is distributed as a Multivariate Gaussian Distribution (MGD) S t ∼ N (m, Σ), where m ∈ R 9×64 and Σ ∈ R (9×64)×(9×64) represent the mean and the covariance matrix of the MGD that models the dependencies among all 9 × 64 DCT coefficients from a local 3 block × 3 block neighborhood.

If the demosaicking operation is non-linear, we hope that the distribution will be close enough to a Gaussian to guarantee practical security. This issue is investigated in the Results section of this paper.

Covariance matrix estimation

In order to estimate the empirical mean m and the covariance matrix Σ without explicitly knowing the development pipeline, the following experiment has been conducted:

• A constant RAW image with all photo-site values 2 12 is first generated. Note that the maximum value of each photo-site for the sensors considered in this paper is 2 14 . The values are multiplied by 4 to be encoded with two bytes. • A stego signal s at the photo-site level associated for a given pair of parameters (a, b) is added to the RAW image to simulate embedding. The resulting RAW image is stationary and can be used to estimate statistics in the developed domain. • We develop the image using the development pipeline shown in Figure 1 to compute a vector of DCT coefficients y t . • A set of No observations are generated by extracting 24 × 24 non-overlapping patches from the same developed image in order to gather 3 × 3 JPEG blocks. Note that since the image is stationary, can do not need generate several pseudo-stego images but instead we gather observations from the same developed image. • The covariance matrix Σ of dimension 576 × 576 is finally computed from these observations. In order to get an accurate estimation of the covariance matrix, we used No = 6 × 10 4 observations.

2 Usually a 3 × 3 window.

Covariance matrix analysis

The covariance matrix Σ and the mean m have been computed for one color sensor (E1 action cam camera, CMOS) and one monochrome sensor (Leica M Monochrome Type 230 camera). A subset of the covariance matrix, computed on only four adjacent blocks, is illustrated for both sensors in Note that while the covariance matrix of a monochrome sensor is diagonal, it exhibits many correlations between coefficients for the color sensor. This explains the negative result reported in [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF] and the need to take into account dependencies between DCT coefficients for color sensors. • Intra-block 8 × 8 covariance matrices Σ I capture the correlations between DCT coefficients of the same block. They are located on the diagonal of the covariance matrix Σ. Note that DCT coefficients can be both positively and negatively correlated.

• Horizontal inter-block covariance matrices of type Σ→

or Σ← hold correlations between horizontal blocks. • Vertical inter-block covariance matrices capture correlations between vertical blocks. They can be of type Σ ↑ or Σ ↓ . • Diagonal inter-block covariance matrices capture correlations between diagonal blocks. They can be of type Σ , Σ ,Σ , or Σ .

Note that with a crude examination of the covariance matrix, one might expect that Σ = Σ = Σ = Σ = 0, since theses blocks share only a few pixels in the corners, and that these matrices exhibit symmetries, such as Σ t = Σ . Both conclusions are, however, generally incorrect, which can be explained using, for example, bilinear demosaicking. For this case, inspect Figure [START_REF] Bas | An embedding mechanism for Natural Steganography after down-sampling[END_REF] showing the locations of photo-sites that are used to predict pixel values within one block for bilinear demosaicking. Notice, for example, that the photo-sites involved in the interpolation process are different between for the right neighboring block and the left. Additionally, the correlations involved on the NorthEast and SouthWest neighboring blocks are more important than on the NorthWest and SouthEast neighboring blocks. ⌃ I < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ ! < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ # < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ & < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ I < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ I < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ ! < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ .

< l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ # < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ I < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t ! < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t ! < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t . < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t # < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t # < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⌃ t & < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > (d)

Why these correlations happen?

As seen in the previous section, inter-block correlations between DCT coefficients are caused by demosaicking, which averages adjacent photo-site values to interpolate the missing color values and thus creates correlations between neighboring pixels and neighboring JPEG blocks.

The intra covariance matrices Σ I exhibit patterns induced by the demosaicking algorithm itself (see Figure [START_REF] Bas | Steganography via Cover-Source Switching[END_REF]). Next, we analyze those inter-blocks correlations that appeared to be consistent across various demosaicking methods. Figure (4) depicts for the DCT mode (1,0) the locations and correlations of the DCT modes in neighboring blocks. Based on this observation, we can draw several important remarks linked to the notions of frequential consistency and spatial continuity:

• The most significant correlations correspond to the surrounding vertical and horizontal blocks. As explained in the previous section, this is due to the number of neighboring photo-sites involved in the interpolation process.

• The largest correlations are for the same vertical or horizontal frequency due to frequential consistency between adjacent blocks. • The sign of the correlations represents the preservation of continuity between blocks in order to guarantee spatial continuity. For example, alternating signs are due to the topology of the modes. For mode (1, 0), all modes (i, 0) have a white top line but the bottom line alternates between white and black w.r.t. i. Figure [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF] shows the arrangement of the most correlated blocks based on the estimated covariance matrix after bilinear demosaicking. We can see that these arrangements preserve both frequential consistency and continuity.

Relationship with previous art

It is worth pointing out that using joint or conditional probability distributions among frequency domain pairs of coefficients during embedding has recently been proposed to improve the empirical security of JPEG steganography. Li et al. [START_REF] Li | Defining joint distortion for jpeg steganography[END_REF] define a joint distortion function for JPEG steganography to improve the empirical security of UERD and J-UNIWARD against GFR and DCTR by using block boundary constraints during embedding. Their idea relies on the principle of block boundary continuity (BBC) in frequency domain (DCT).

In order to preserve pair block realizations, the authors used simultaneous modifications on inter-block neighbors. A +1 on the DCT mode would imply a +1 on the horizontally connected neighboring blocks and a -1 on the vertically connected neighboring blocks. This allowed them to be more consistent with block boundary dependencies. By using the dependencies exhibited in the covariances matrices, we can show that BBC assumptions are a specific case of how to use our estimated covariance matrix for embedding.

Regarding steganalysis, in JRM [START_REF] Kodovskỳ | Steganalysis of jpeg images using rich models[END_REF] the authors proposed features built using "unions of submodels formed as joint distributions of DCT coefficients from their frequency and spatial neighborhoods" and thus make a classifier able to take into account a wide range of statistical dependencies. The authors also showed that the strongest dependencies among DCT coefficients are those within the same block and those between the closest neighboring blocks, confirming our analysis of the covariance matrix.

Embedding algorithm (simulated)

This section presents the whole embedding algorithm, which relies on lattice decomposition, scaling the covariance matrix Σ, and sampling from MGD conditioned by the already sampled neighborhood. Each step is detailed below.

Decomposition into lattices

The embedding has to take into account three facts:

1. Intra-block dependencies within each 8 × 8 block. 2. Inter-block dependencies between one block, its four horizontal and diagonal neighbors and possibly its four diagonal neighbors. 3. Independence of blocks that are not neighbors.

Argument [START_REF]Libraw raw image decoder[END_REF] means that we practically have to use 64 sublattices to perform embedding in one DCT block and

(2) and ( 3) mean that we need a maximum of four lattices {Λ 1 , Λ 2 , Λ 3 , Λ 4 } to perform embedding on each DCT block while respecting the correlations exhibited by the estimated covariance matrix. The different lattices are illustrated in Figure 7 together with the neighboring blocks that are used to generate the stego signal. If we consider that diagonal blocks can be generated independently, then it is possible to use only three lattices. We are going to describe the implementation for four lattices but an implementation using three lattices can be proposed by considering, respectively, Λ 2 and Λ 3 as Λ 3 and Λ 4 of the four-lattice implementation.

Covariance scaling

The sampling mechanism uses the estimated covariance matrix Σ described in the previous section, which is computed for a stationary image with µ = 2 12 .

For blocks of arbitrary photo-site values, we assume that Σ is scaled w.r.t. these values, and, consequently, we avoid estimating Σ for each block. This assumption is, to some extent, valid as we shall see in the the "Results" section. It is motivated by the fact that our development pipeline is mostly linear. The covariance matrix associated with each block is consequently Σ = γΣ, where γ represents the scaling factor given by:

γ = 0.299 2 (axr + b) + 0.587 2 (axg + b) + 0.114 2 (ax b + b) (0.299 2 + 0.587 2 + 0.114 2 )(a2 12 + b) , (9)
where xr, xg, and xb represent, respectively, the average photo-site value of the red, green, and blue component of the block that is sampled.

Simulated embedding on DCT blocks

We derive an embedding mechanism performing simulated embedding in the DCT domain and not directly in the JPEG domain (i.e., on quantized DCT coefficients). This due to computational reasons since it is faster to sample a joint-distribution on one DCT block than to sample individually on each JPEG coefficient. Indeed, the latter necessitates computing 64 conditional distributions and discretizing them. However, the approximation of the embedded payload presented in the next section shows that practical embedding is possible. Figure 6 shows the differences between our implementation and practical and simulated embedding, the simu-stego image is generated by modifying DCT coefficients of the cover image.

Consequently, the embedding scheme directly generates the stego-signal on DCT blocks, i.e., on vectors of 64 DCT coefficients, by sampling according to a MGD and by taking into account the already sampled coefficients on the neighboring blocks. The computation of the conditional MGD is done using the covariance matrix computed for each block Σ and the Schur complement of the covariance matrix Σ (see [START_REF] Papoulis | Probability, Random Variables and Stochastic Processes[END_REF]).

In our experiments, we have directly sampled a whole 8 × 8 DCT block B i from the conditional distribution other lattices or from the same block. For example, to compute the distribution of the last DCT coefficient of a block belonging to the 4 th lattice, the dependencies between blocks of different lattices imply to have already sampled 12 blocks of Λ 1 , 6 blocks of Λ 2 and 4 blocks of Λ 3 together with 63 coefficients of the current block. Figure 9 shows the locations of the different blocks. Figure 9: JPEG blocks, associated with their lattice, involved in the computation of the capacity for a block belonging to Λ 4 .

Computation of the probability mass function

The stego signal is quantized by the JPEG coding algorithm, thus the conditioned probability density functions must be converted into a probability mass function that takes into account the quantization table associated with a given quality factor. We denote here q i the discrete quantized version the real valued random variable (C i | C i-1 , . . . , C 1 ) , q i is a discretized Gaussian random variable with probability mass function :

Pr (q i = [µ i ] + k) = Pr(u k < C i /Q ≤ u k+1 ), = u k+1 u k 1 √ 2πσ 2 i exp - (x-µi) 2 2σ 2 i dx, = 1 2 erf u k+1 -µi √ 2σi -1 2 erf u k -µi √ 2σi , (15)
where µ = µ /Q and σ = σ /Q for parameters µ and σ before quantization associated with a quantization step Q, and

u k = [µ i ] + k -0.5.

Computation of the entropy

Given the alphabet A = [-K, . . . , 0, . . . K], the entropy is directly related to the (2K + 1)-ary alphabet. We perform a truncation of the pmf in order to match the length of the (2K + 1)-ary alphabet and denote π i (k) the probability for the i th coefficient to add k to the DCT coefficient. According to the number of symbols and to the probability mass function, the probability that for the i th coefficient the stego signal produce +k on the coefficient is normalized as :

π i (k) = Pr (q i = [µ i ] + k) l∈A Pr (q l = [µ i ] + l) . ( 16
)
Thus the entropy associated with the steganographic signal for the i th coefficient can be written as follows :

H(K, i) = - K k=-K π i (k) log 2 π i (k). ( 17
)

Results

We evaluate in this section the capacity of the proposed scheme, its practical security, and the impact of the demosaicking algorithms and the alphabet size.

We used a switch from sensitivity ISO 100 to ISO 200 from one CMOS sensor from the Z CAM E1 action camera as in [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF]. If the demosaicking scheme is not explicitly mentioned, bilinear interpolation is used.

Capacity

The tests presented have been conducted for an average photo-site value of 2 12 for a 14 bit sampling. We first study the impact of the conditioning on the entropy and the lattice index.

Figure 10 shows the evolution of the capacity in bits/nzAC for each lattice and different alphabet size at QF 95. It is important to notice that there is almost no gain beyond pentary embedding (K = 2) and that conditioning w.r.t. the 8 neighboring blocks (Λ 4 ) decreases the entropy by about 20% w.r.t. considering only intra-block dependencies (Λ 1 ). If the impact of using four lattices on the embedding rate is small, we shall notice in the next section that the impact of dealing with inter-block dependencies in terms of practical security is important. Figure 11 presents the impact of the JPEG QF on the theoretical embedding rate for a range of QFs between 75 and 100, we also compare independent embedding which, the approach proposed in [START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF], which is equivalent to use a diagonal covariance matrix, with the 4 lattices implementation. The embedding rate stays large even for low quality factors because we measure it in bits per non-zero AC DCT coefficient. It is also interesting to notice that taking into account correlations between coefficients reduces the capacity from 0.8 bits/nzAC at QF 95 to 2 bits/nzAC at QF 75 while increasing also the practical security (see next section).

Practical security

To assess the empirical security of the proposed scheme, the stego images were generated from cover images captured at ISO 1 = 100 while our embedding strives to mimic the statistical properties of images captured at ISO 2 = 200. Steganalysis was performed using the DCTR features [START_REF] Holub | Low-complexity features for jpeg steganalysis using undecimated dct[END_REF] and the low complexity linear classifier [START_REF] Cogranne | Is ensemble classifier needed for steganalysis in high-dimensional feature spaces?[END_REF] with the threshold set to minimize the total classification error probability under equal priors, P E = min P FA 1 2 (P FA + P MD ), with P FA and P MD standing for the false-alarm and missed-detection rates, respectively.

For SI-UNIWARD, the embedding rate is set to its maximum, i.e., 1 bit per nzAC coefficient.

The results are shown in Table 1. Our implementation using lattice embedding increases the practical security w.r.t. embedding where the dependencies between blocks and between coefficients (respectively denoted "Intro only" and "Independent embedding" in the table) are not taken into account. The difference between using either 3 or 4 lattices, i.e. considering or not that diagonal blocks can be processed independently, also appears to be important.

Additionally, we show that the practical security of the scheme decreases with increasing JPEG quality factor. This is due to the fact that the generation of the stego signal is still distinguishable from the sensor noise as high quality JPEG compression preserves more complex properties of covers. The adopted scaling of the covariance matrix w.r.t. the RGB components (see ( 9)) also probably contributes to increased statistical detectability. The comparison with SI-UNIWARD shows that this classical embedding strategy is more detectable and has a smaller embedding rate.

Non-linear demosaicking algorithms

One advantage of the covariance matrix estimation over explicit calculus is that we can blindly extract the covariance matrices for any demosaicking scheme, including development processes that are not publicly known. In this experiment, we evaluate the practical security for three demosaicking processes that are not linear (VNG, DCB, and AAHD). Note that the stego signal is generally not following a MGD for non-linear demosaicking. Table 2 presents the impact of the demosaicking step on detectability. Depending on the process, the detectability varies quite significantly, e.g., compare the classifier errors for AAHD and VNG.

Interestingly, when we compare the detectability with the statistical distribution of DCT modes (see Figure ( 12)), we can see that for demosaicking schemes with high detectability, such as AAHD, the empirical histogram and the Gaussian distribution with same mean and variance have very different distributions. On the contrary, VNG, which increases the detectability only slightly over Bilinear demosaicking, is associated with an empirical histogram thatis close to the Gaussian distribution. Consequently, one drawback of the proposed approach is that it cannot be used with demosaicking algorithms that have strong nonlinearities with the exception of low QFs.

Impact of the alphabet size

The impact of the alphabet size K is now measured in terms of practical security. Table (3) presents the results w.r.t the JPEG QF for the proposed implementation. Notice that using only ternary embedding makes the scheme very detectable for QF 95. In fact, this setup required heptary embedding to offer detectability comparable to that of an infinite alphabet. On the contrary, ternary embedding is already sufficient for QF 75.

Conclusions and perspectives

To conclude, we first have to mention that even if NS in the JPEG domain may sound attractive from the the capacity and the security point of view, its practical implementation is not straightforward. As described in this paper, in order to deal with the dependencies between DCT coefficients, we need to use 4 × 64 lattices. Furthermore, embedding in each lattice requires computing costs from the embedding change probabilities given by (15). Note that these probabilities are also computed considering embedding changes performed on other lattices in order to take into account the MGD. This combination of mechanisms is of course implementable, but the computational complexity may be excessive since the complexity of computing the conditional distribution increases as the complexity of the Cholesky decomposition of the covariance matrix, i.e., as O(n 3 ) where n ≤ 8 × 64.

However, we claim that there are interesting lessons to learn from this study. First, we have shown that embedding in images originating from a color sensor needs more sophisticated strategies than for a monochrome sensor. Additionally, we have shown here that if the correlations between DCT coefficients are not taken into account, this can have an important impact on practical detectability. The need to take into account dependencies has also been reported by others both in the pixel and JPEG domains. Thus, we believe that our analysis will be important for development more realistic synchronization strategies in the future.

Another interesting conclusion is that the demosaicking algorithm creates a statistical fingerprint that needs to be modeled correctly in order to preserve undetectability. If the demosaicking does not preserve the Gaussianity of the stego signal in the DCT domain, our approach becomes more detectable since the embedding scheme is unable to fit the correct distribution.

Finally, we wish to stress for practical use that NS in JPEG domain for low JPEG quality factors enjoys higher security independently of the alphabet size (ternary is sufficient) or of the demosaicking algorithm.

Figure 1 :

 1 Figure 1: Development of a pseudo-stego in the JPEG domain.

  Figure (2a) and Figure (2b), respectively. The scan order for the four 8 × 8 DCT blocks consists of a scan by rows within each block and a blockwise scan across the four blocks as shown in Figure (2d).

  By observing Figure (2a) together with the scan order depicted in Figure (2c) and the decomposition of the matrix into different types in Figure (2d), we can decompose the entire covariance matrix into four types of matrices of size 64 × 64: one intra-block matrix and three inter-block matrices:

Figure 2 :

 2 Figure 2: (a) 256 × 256 covariance matrix of DCT coefficients of a color sensor and bilinear demosaicking (different sub-matrices are presented), (b) of a monochrome sensor. The values have been thresholded to the range [-6000, 6000] for visualization purposes. scan order by block and coefficients. (d): types of sub-matrices representing the nine covariance matrices introduced in the text.

Figure 3 :

 3 Figure 3: Locations of photo-sites (dark colors) used to predict pixel values within one block using bilinear demosaicking. Diagonal blocks are correlated either through common photosites belonging to horizontal or vertical blocks (red and blue photosite on the upper left and lower right corners) or through photosites belonging to the central block (red and blue photosite on the upper right and lower left corners or green photosite on the upper left and lower right corners).

Figure 4 :

 4 Figure 4: Analysis of the covariance matrix after bilinear demosaicking: Intra and Inter-block dependencies for mode (1,0) of the central block (in blue): positively correlated blocks are in blue and negatively correlated blocks in red.

Figure 5 :

 5 Figure 5: Different arrangements of most correlated modes in the 4-connected pixels for different modes for bilinear demosaicking.

4 ∪ΛFigure 10 :

 410 Figure 10: Embedding capacity as a function of K, QF=95, bilinear demosaicking.Figure11presents the impact of the JPEG QF on the theoretical embedding rate for a range of QFs between 75 and 100, we also compare independent embedding which, the approach proposed in[START_REF] Denemark | Natural Steganography in JPEG Compressed Images[END_REF], which is equivalent to use a diagonal covariance matrix, with the 4 lattices implementation. The embedding rate stays large even for low quality factors because we measure it in bits per non-zero AC DCT coefficient. It is also interesting to notice that taking into account correlations between coefficients reduces the capacity from 0.8 bits/nzAC at QF 95 to 2 bits/nzAC at QF 75 while increasing also the practical security (see next section).

Figure 11 :

 11 Figure 11: Embedding capacity as a function of QF for K = 3, bilinear demosaicking.

Figure 12 :

 12 Figure 12: Practical histogram of mode (7, 0) vs. Gaussian distribution for two different demosaicking algorithms.

Table 1 :

 1 Empirical security (P E in %) for different quality factors and embedding strategies on E1Base with bilinear demoisaicking. DCTR features combined with regularized linear classifier are used for steganalysis.

		P E (%) / Pseudo	4 Lattices	3 Lattices	Intra Independent SI-Uniward,
		JPEG QF embed. embedding embedding	only	embedding	[5]
		95	41.1		30.3	17.6	0.8	0.5	9.57
		85	41.4		39.8	36.6	13.1	10.8	7.52
		75	43.0		40.4	40.2	30.2	27.0	0.032
	QF / P E in % Bilinear VNG DCB AAHD
	95	30.3	22.7	4.5	3.4
	85	39.8	36.9	32.6	25.4
	75	40.4	40.9	39.8	35.7

Table 2 :

 2 Practical security for different demosaicking algorithms (MGD model, 4 lattices).

	QF / P E in %	K = 1	K = 2	K = 3
	95	2.8 / 3.5 19.3 / 23.6 29.5 / 39.3
	85	39.8	39.8	39.8
	75	40.4	40.4	40.4

Table 3 :

 3 Practical security w.r.t. alphabet size K.Right and left values are respectively for 4-lattice embedding and pseudo-embedding when values differ. For QF 85 and QF 75, the 2 implementation give identical results.

It should be pointed out that NS needs the RAW, undeveloped image while previous side-informed steganography only uses a higher quality version of the cover, the so-called precover.

Acknowledgments

The work on this paper was supported by NSF grant No. 1561446 and by DARPA under agreement number FA8750-16-2-0173. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright notation there on. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies, either expressed or implied of DARPA or the U.S. Government. This work was also partially supported by the French ANR DEFALS program (ANR-16-DEFA-0003) and the French ANR ASTRID program (ANR-18-ASTR-0009).

RAW

Cover

Demosaicking DCT Quantization JPEG Simu-Stego Luminance Simulated Embedding

x < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x d

< l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x l < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > y q < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > y t < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x t < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

RAW

Cover

Demosaicking DCT Quantization JPEG Stego Luminance Embedding

x < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x d < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x l < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > y q < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x t < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x q < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > x < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

RAW

x d < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x l < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > y q < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x t < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

x q < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > N (0, γΣ k ) where γ is the scaling factor computed in [START_REF] Holub | Universal distortion function for steganography in an arbitrary domain[END_REF] and Σ k , k ∈ {1, 2, 3, 4}, are 64 × 64 covariance matrices computed differently for each lattice Λ k . For Λ 1 , Σ 1 is the covariance matrix of a DCT block (B

Embedding Simulated Embedding

i ∼ N (0, γΣ 1 )) where Σ 1 are the first 64 × 64 elements of Σ.

For Λ 2 , Λ 3 , and Λ 4 , respectively, we compute the conditional joint distributions conditioned w.r.t. the previously sampled blocks in the neighborhood (see also Figure 7):

where m i denotes the expectation computed w.r.t. the previoulsy sampled blocks. Note that a practical embedding will also rely on computing the conditional probabilities on a fine grid of 64 lattices (one for each DCT coefficient of the JPEG block) with STCs using q-ary embeddings whose costs are computed from the quantized probability distributions as executed in [START_REF] Bas | Steganography via Cover-Source Switching[END_REF].

Embedding capacity

The overall purpose of this section is to estimate the average payload size after embedding for different JPEG quality factors. Since the variance of the stego signal relies on the photo-site value (cf ( 5)), the embedded message size is consequently different for each cover. Using optimal coding, or close to optimal codes such as the STCs [START_REF] Filler | Minimizing additive distortion in steganography using syndrome-trellis codes[END_REF], we can show that the payload size is close to the entropy related to the embedding change probabilities of each JPEG coefficient.

The different elements involved in the computation of the entropy are summarized in Figure 8, and are listed below :

Computation of the discrete entropy Hπ

Summation of the entropies computed for each coefficient.

We now detail each of these steps.

Sampling pdf to pmf Entropy

< l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > ⇡ i < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > [c i 1 , . . . , c 1 ] < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > c i < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > i := i + 1 < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > Sum H ⇡i < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t > < l a t e x i t s h a 1 _ b a s e 6 4 = " ( n u l l ) " > ( n u l l ) < / l a t e x i t >

Conditional distribution

With a MGD on i random variables of expectation µ = [µ 1 , . . . , µ i ] T and covariance matrix

and,

It is important to notice that in order to compute ( μi , Σi ) we need to have sampled already coefficients from

Author Biography