Introduction:
Methods:
Conclusion:
Contacts:
|
Methods
Bit Plane Complexity Segmentation (BPCS)
BPCS attempts to address the shortcomings of LSB insertion by searching an
image for noise-like regions. These regions are replaced with watermark
data, while informative regions are undisturbed. The algorithm works as
follows:
- Convert a 2m x 2m N-bit/pixel image from natural binary into N-bit
Gray Code.
- Decompose the N-bit Gray code into N single-bit planes. Each plane
forms a binary image.
- Divide each bit plane into 8x8 tiles.
- For each tile, compute the complexity &alpha.
- If &alpha is above a threshold, replace the tile with
watermark data.
- The bit-planes are recombined to form an N-bit channel in Gray code
- The Gray code is converted back to natural binary
A bit plane tile being examined [6]
The complexity metric is
defined as:
&alpha = k / (2 x 2m x (2m - 1 ))
where a tile has size 2m x 2m and k is the sum of
xor-ing adjacent bits in a tile, both in the horizontal and vertical direction. The valid range for
&alpha is 0 < &alpha < 1. With this measumrent, an all
white or all black tile would have an &alpha of 0, while a
checkerboard pattern would have an &alpha of 1.
In the results below, the BPCS algorithm was run with the threshold
&alpha=0.3. Notice how the sky, car, and grass seem relatively
unaltered compared to the original image, while the tree in the foreground
contains a relatively large amount of distortion. From a standard viewing
distance, however, this distortion does not appear artificial. The tiled
nature of the watermark is only evident on close inspection.
original image
|
BPCS with &alpha=0.3 capacity: 45.0% psnr: 27.11
|
(click on the images for a larger version)
|