-edges in images.
-The most common ones are filter
-edge detection methods such as Sobel or Canny filters, low order methods such as
-first order and second order ones. These methods are based on gradient or
-Laplace operators and fuzzy edge methods, which are based on fuzzy logic to
-highlight edges.
-
-Of course, all the algorithms have advantages and drawbacks that depend on the
-motivations behind that edges detection. Unfortunately unless testing most of the
-algorithms, which would require many times, it is quite difficult to have an
-accurate idea on what would produce such algorithm compared to another. That is
-why we have chosen Canny algorithm, which is well known, fast, and implementable
-on many kinds of architectures like FPGAs, smartphones, desktop machines, and
-GPUs. And of course, we do not pretend that this is the best solution.
-
-In order to be able to compute the same set of edge pixels, we suggest to consider all the bits of the image (cover or stego) without the LSB. With an 8 bits image, only the 7 first bits are considered. In our flowcharts, this is represented by ``LSB(7 bits Edge Detection)''.
-% First of all, let us discuss about compexity of edge detetction methods.
-% Let then $M$ and $N$ be the dimension of the original image.
-% According to~\cite{Hu:2007:HPE:1282866.1282944},
-% even if the fuzzy logic based edge detection methods~\cite{Tyan1993}
-% have promising results, its complexity is in $C_3 \times O(M \times N)$
-% whereas the complexity on the Canny method~\cite{Canny:1986:CAE:11274.11275}
-% is in $C_1 \times O(M \times N)$ where $C_1 < C_3$.
-% \JFC{Verifier ceci...}
-% In experiments detailled in this article, the Canny method has been retained
-% but the whole approach can be updated to consider
-% the fuzzy logic edge detector.
-Next, following~\cite{Luo:2010:EAI:1824719.1824720}, our scheme automatically
-modifies the Canny algorithm
-parameters to get a sufficiently large set of edge bits: this
-one is practically enlarged until its size is at least twice as large
-as the size of the embedded message.
+edges in images (whose noise has been initially reduced).
+They can be separated in two categories: first and second order detection
+methods on the one hand, and fuzzy detectors on the other hand~\cite{KF11}.
+In first order methods like Sobel, Canny~\cite{Canny:1986:CAE:11274.11275}, and so on,
+a first-order derivative (gradient magnitude, etc.) is computed
+to search for local maxima, whereas in second order ones, zero crossings in a second-order derivative, like the Laplacian computed from the image,
+are searched in order to find edges.
+As far as fuzzy edge methods are concerned, they are obviously based on fuzzy logic to highlight edges.
+
+Canny filters, on their parts, are an old family of algorithms still remaining a state of the art edge detector. They can be well-approximated by first-order derivatives of Gaussians.
+As the Canny algorithm is fast, well known, has been studied in depth, and is implementable
+on many kinds of architectures like FPGAs, smart phones, desktop machines, and
+GPUs, we have chosen this edge detector for illustrative purpose.
+
+
+
+
+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$.
+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.
+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$, $5$, 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
+with respect to the size
+of the message $m$ to embed and the size of the cover $x$.
+
+
+
+
+
+
+
+
+\subsection{Adaptive embedding rate}\label{sub:adaptive}
+Two strategies have been developed in our approach,
+depending on the embedding rate that is either \emph{Adaptive} or \emph{Fixed}.
+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 parameters $b=7$ and $T=3$.
+The message length is thus defined to be lesser 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 increasing values of $T$ and
+until its cardinality
+is sufficient. Even in this situation, our scheme adapts
+its algorithm to meet all the user's requirements.
+
+
+Once the map of possibly modified pixels is computed,
+two methods may further be applied to extract bits that
+are really changed.
+The first one randomly chooses the subset of pixels to modify by
+applying the BBS PRNG again. This method is further denoted as a \emph{sample}.
+Once this set is selected, a classical LSB replacement is applied to embed the
+stego content.
+The second method considers the last significant bits of all the pixels
+inside the previous map. It next directly applies the STC
+algorithm~\cite{DBLP:journals/tifs/FillerJF11}.
+It is further referred to as \emph{STC} and is detailed in the next section.
+
+
+
+
+
+
+
+
+\subsection{Minimizing distortion with Syndrome-Trellis Codes}\label{sub:stc}
+\input{stc}
+
+