Reversible watermarking methods enable auxiliary data to be embedded in
data sets, such as images, audio, video and software. The reversible nature of
the method enables the original data set to be perfectly restored. Control systems
with feedback loops are used to optimize embedding based on distortion or auxiliary
data capacity constraints. The watermarking may be applied recursively to embed
several layers, where subsequent layers are embedded into a previously watermarked
data set. To recover the original data, each layer is extracted and the data restored
in reverse order of the embedding. Sets of elements that are expanded to carry
auxiliary data in each layer overlap or are interleaved to maximize embedding capacity
or quality of the host data.