Patent ID: 7830923

Claim:
A computer-readable storage media tangibly embodying a program of instructions executable by a computer to perform a method for decoding an interval centroid based watermark from a packet flow, the packet flow containing a temporally separated sequence of packets, the packet flow having a duration T f and a starting point, the watermark having length l bits and a redundancy r, each of the l bits representative of a bit value, the method comprising: A) measuring relative packet times for the temporally separated sequence of packets in each of a quantity of 2n intervals, the relative packet times being the relative time between the temporally separated sequence of packets in each of the quantity of 2n intervals and the beginning of each of the quantity of 2n intervals; n being the product of length l and redundancy value r, the intervals dividing a duration T d , duration T d being less than or equal to duration T f , the quantity of 2n intervals beginning after the offset from the starting point; the quantity of 2n intervals including: i) a quantity of n group A intervals; and ii) a quantity of n group B intervals, each of the quantity of n group B intervals distinct from each of the quantity of n group A intervals; B) calculating a group A centroid for each of the quantity of n group A intervals using the relative packet times measured in each of the quantity of n group A intervals; C) calculating a group B centroid for each of the quantity of n group B intervals using the relative packet times measured in each of the quantity of n group B intervals; D) calculating a centroid difference for each of quantity of n interval pairs, each of the quantity of n interval pairs including a unique group A interval and a unique group B interval, each of the quantity of n interval pairs representing one of the l bits, the centroid difference calculated using: i) the group A centroid calculated for the unique group A interval; and ii) the group B centroid calculated for the unique group B interval; E) determining bit values represented by each of the quantity of n interval pairs by: i) determining that an interval pair represents a first bit value if the centroid difference calculated for that interval pair is greater than a first threshold; and ii) determining that an interval pair represents a second bit value if the centroid difference calculated for that interval pair is less than a second threshold; and F) determining a value for the watermark using the bit values represented by each of the quantity of n interval pairs.