5/24/2011 12:00:00 AM

A method of embedding auxiliary data in coefficients generated for a compressed data stream applies embedding rules to selected coefficients in different blocks to embed the data. The method receives coefficients in a data stream in which the coefficients are divided into blocks. It changes the value of selected coefficients to embed multi-bit message data in the coefficients. The process of changing the coefficients includes controlling changes to the selected coefficients from different blocks so that the relationship of the selected coefficients from the different blocks satisfy an embedding rule. One embedding rule causes the embedded data to form a pattern across the blocks. Another rule causes coefficients of blocks to have a desired phase relationship. Another rule enforces entropy and/or bit rate constraints onto the data stream. These embedding rules facilitate data hiding within bit rate and perceptibility constraints, while increasing robustness.