The embedding is performed in the DCT domain. The
embedding steps are as follow:
Perform DCT transform to the original image.
Obtain the N-largest DCT coefficients excluding DC
coefficient as the host signal where the data will be
embedded. Assume that the embedding rate is 1/R,
then for every r coefficients, one bit data will be
embedded. There will be N/R host signals, where each
host signal consists of R coefficients.
Generate R length vector consist of uniformly
distributed random numbers. We will call this vector,
spread vector.
Quantize the projection of host signal on the spread
vector based on the QR code bits using uniform scalar
quantize with step-size as shown in Fig. 4. In general
the larger step-size, the watermark is more robust but it
will also increase the distortion, which will affect the
quality of the watermarked image.