\begin{figure*}%[t]
\begin{center}
\subfloat[Data Embedding]{
- \begin{minipage}{0.49\textwidth}
+ \begin{minipage}{0.4\textwidth}
\begin{center}
- %\includegraphics[width=5cm]{emb.pdf}
- \includegraphics[scale=0.45]{emb}
+ %\includegraphics[scale=0.45]{emb}
+ \includegraphics[scale=0.4]{emb}
\end{center}
\end{minipage}
\label{fig:sch:emb}
}
-
+\hfill
\subfloat[Data Extraction]{
\begin{minipage}{0.49\textwidth}
\begin{center}
- %\includegraphics[width=5cm]{rec.pdf}
- \includegraphics[scale=0.45]{rec}
+ \includegraphics[scale=0.4]{dec}
\end{center}
\end{minipage}
\label{fig:sch:ext}
on many kinds of architectures like FPGAs, smart phones, desktop machines, and
GPUs, we have chosen this edge detector for illustrative purpose.
-%\JFC{il faudrait comparer les complexites des algo fuzy and canny}
+
This edge detection is applied on a filtered version of the image given
as input.
-More precisely, only $b$ most
-significant bits are concerned by this step, where
-the parameter $b$ is practically set with $6$ or $7$.
+More precisely, only $b$ most significant bits are concerned by this step,
+where the parameter $b$ is practically set with $6$ or $7$.
+Notice that only the 2 LSBs of pixels in the set of edges
+are returned if $b$ is 6, and the LSB of pixels if $b$ is 7.
If set with the same value $b$, the edge detection returns thus the same
set of pixels for both the cover and the stego image.
-In our flowcharts, this is represented by ``edgeDetection(b bits)''.
-Then only the 2 LSBs of pixels in the set of edges are returned if $b$ is 6,
-and the LSBs of pixels if $b$ is 7.
-
-
-
+Moreover, to provide edge gradient value,
+the Canny algorithm computes derivatives
+in the two directions with respect to a mask of size $T$.
+The higher $T$ is, the coarse the approach is. Practically,
+$T$ is set with $3$, $3$, or $7$.
+In our flowcharts, this step is represented by ``Edge Detection(b, T, X)''.
Let $x$ be the sequence of these bits.
The next section presents how to adapt our scheme
- when the size of $x$ is not sufficient for the message $m$ to embed.
+when the size of $x$ is not sufficient for the message $m$ to embed.
In the former the embedding rate depends on the number of edge pixels.
The higher it is, the larger the message length that can be inserted is.
Practically, a set of edge pixels is computed according to the
-Canny algorithm with a high threshold.
+Canny algorithm with parameters $b=7$ and $T=3$.
The message length is thus defined to be less than
half of this set cardinality.
If $x$ is too short for $m$, the message is split into sufficient parts
and a new cover image should be used for the remaining part of the message.
-
In the latter, the embedding rate is defined as a percentage between the
number of modified pixels and the length of the bit message.
This is the classical approach adopted in steganography.
Practically, the Canny algorithm generates
-a set of edge pixels related to a threshold that is decreasing
+a set of edge pixels related to increasing values of $T$ and
until its cardinality
is sufficient. Even in this situation, our scheme is adapting
its algorithm to meet all the user's requirements.
follows the data embedding approach
since there exists a reverse function for all its steps.
-More precisely, the same edge detection is applied on the $b$ first bits to
+More precisely, let $b$ be the most significant bits and
+$T$ be the size of the canny mask, both be given as a key.
+Thus, the same edge detection is applied on a stego content $Y$ to
produce the sequence $y$ of LSBs.
If the STC approach has been selected in embedding, the STC reverse
algorithm is directly executed to retrieve the encrypted message.
-This inverse function takes the $H$ matrix as a parameter.
+This inverse function takes the $\hat{H}$ matrix as a parameter.
Otherwise, \textit{i.e.}, if the \emph{sample} strategy is retained,
the same random bit selection than in the embedding step
is executed with the same seed, given as a key.
\begin{center}
\begin{minipage}{0.49\linewidth}
\begin{center}
-\includegraphics[scale=0.20]{Lena.eps}
+\includegraphics[scale=0.20]{lena512}
\end{center}
\end{minipage}
\begin{minipage}{0.49\linewidth}
\end{figure}
The edge detection returns 18,641 and 18,455 pixels when $b$ is
-respectively 7 and 6. These edges are represented in Figure~\ref{fig:edge}.
+respectively 7 and 6 and $T=3$.
+These edges are represented in Figure~\ref{fig:edge}.
When $b$ is 7, it remains one bit per pixel to build the cover vector.
This configuration leads to a cover vector of size 18,641 if b is 7
and 36,910 if $b$ is 6.
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{emb.pdf}
- \includegraphics[scale=0.20]{edge7.eps}
+ \includegraphics[scale=0.20]{edge7}
\end{center}
\end{minipage}
%\label{fig:sch:emb}
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{rec.pdf}
- \includegraphics[scale=0.20]{edge6.eps}
+ \includegraphics[scale=0.20]{edge6}
\end{center}
\end{minipage}
%\label{fig:sch:ext}
}%\hfill
\end{center}
- \caption{Edge detection wrt $b$}
+ \caption{Edge detection wrt $b$ with $T=3$}
\label{fig:edge}
\end{figure}
which bits to change among the 36,910 ones.
In the two cases, about the third part of the poem is hidden into the cover.
-Results with \emph{adaptive+STC} strategy are presented in
+Results with \emph{adaptive} and \textit{STC} strategies are presented in
Fig.~\ref{fig:lenastego}.
\begin{figure}[t]
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{emb.pdf}
- \includegraphics[scale=0.20]{lena7.eps}
+ \includegraphics[scale=0.20]{lena7}
\end{center}
\end{minipage}
%\label{fig:sch:emb}
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{rec.pdf}
- \includegraphics[scale=0.20]{lena6.eps}
+ \includegraphics[scale=0.20]{lena6}
\end{center}
\end{minipage}
%\label{fig:sch:ext}
\right..
$$
This function allows to emphasize differences between contents.
+Notice that
+
\begin{figure}[t]
\begin{center}
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{emb.pdf}
- \includegraphics[scale=0.20]{diff7.eps}
+ \includegraphics[scale=0.20]{diff7}
\end{center}
\end{minipage}
- %\label{fig:sch:emb}
+ \label{fig:diff7}
}%\hfill
\subfloat[$b$ is 6.]{
\begin{minipage}{0.49\linewidth}
\begin{center}
%\includegraphics[width=5cm]{rec.pdf}
- \includegraphics[scale=0.20]{diff6.eps}
+ \includegraphics[scale=0.20]{diff6}
\end{center}
\end{minipage}
- %\label{fig:sch:ext}
+ \label{fig:diff6}
}%\hfill
\end{center}
\caption{Differences with Lena's cover wrt $b$}
\end{figure}
+Notice that since $b$ is 7 in Fig.~\ref{fig:diff7}, the embedding is binary
+and this image only contains 0 and 75 values.
+Similarly, when $b$ is 6 as in Fig.~\ref{fig:diff6}, the embedding is ternary
+and the image contains all the values in $\{0,75,150,225\}$.
+