Patent ID: 7570782

Claim:
A method of embedding a watermark value in a data stream of data stream values, comprising: receiving the data stream on a first physical commuting device; on the first physical computing device, identifying a set of watermark locations in the data stream, partitioning the identified set of watermark locations from the data stream into a set of watermark location blocks each watermark location block to be embedded with a watermark value portion from the watermark value, and altering a data stream value associated with a predetermined maximum number of watermark locations in one watermark location block, wherein the altering further comprises generating blocks of derived Q-ary data stream values corresponding to the set of watermark location blocks by taking residues of the data stream values modulo Q associated with the set of watermark location blocks, wherein Q represents an alphabet having Q symbol, creating a code table that associates blocks of derived Q-ary data stream values to classes of Q-ary watermark value portions, comparing a Q-ary watermark value portion to be embedded with the corresponding block of a derived Q-ary data stream values, by way of the code table, and determining whether to change the one or more data stream values associated with the predetermined maximum number of watermark locations in the one watermark location block in response to the comparison and introduce no more than the predetermined level of distortion; on the first physical computing device, producing a transformed version of the data stream that comprises the altered data stream value; and transmitting the transformed version of the data stream from the first physical computing device to a second physical computing device.