Information embedding and retrieval method and apparatus
First Claim
1. A method for encoding and embedding information within digital data, said method comprising the steps of:
- a) separating a plurality of bits representing information to be embedded into a first group of input bits and a second group of pointer bits according to a predetermined scheme wherein each pointer bit in said second group is associated with a respective input bit in said first group;
b) generating one or more output bits from an input bit using a convolutional code;
c) selecting a sequence of bits using a combination of a pointer bit and said one or more output bits, wherein said pointer bit is associated with said input bit of said step b); and
d) embedding said sequence of bits selected into encoded digital data by modifying coefficients of said encoded digital data according to said sequence of bits selected, wherein each bit of said sequence of bits selected is used to modify a respective coefficient of said encoded digital data, wherein said respective coefficient is incremented by not more than a value of one such that said respective coefficient is made even when said bit has a first value and odd when said bit has a second value, and wherein information so embedded is hidden.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system thereof for encoding and embedding information within digital data representing, for example, audio data, image data, and video data. The information is represented by a plurality of bits which are separated into a group of input bits and a group of pointer bits. One or more output bits are generated from an input bit using a convolutional code. A sequence of bits is selected using a pointer bit and the output bit(s). The information is encoded and embedded into the digital data by modifying coefficients of the digital data according to the sequence of bits selected. Each bit of the sequence of bits selected is used to modify a respective coefficient. In one embodiment, a coefficient is made into an even number when the bit has a first value and the coefficient is made into an odd number when the bit has a second value. In one embodiment, the digital data are in a compressed format. The digital data can be subsequently read to retrieve the embedded and encoded data, and the encoded sequence is then decoded and compared to the original watermark information.
-
Citations
15 Claims
-
1. A method for encoding and embedding information within digital data, said method comprising the steps of:
-
a) separating a plurality of bits representing information to be embedded into a first group of input bits and a second group of pointer bits according to a predetermined scheme wherein each pointer bit in said second group is associated with a respective input bit in said first group;
b) generating one or more output bits from an input bit using a convolutional code;
c) selecting a sequence of bits using a combination of a pointer bit and said one or more output bits, wherein said pointer bit is associated with said input bit of said step b); and
d) embedding said sequence of bits selected into encoded digital data by modifying coefficients of said encoded digital data according to said sequence of bits selected, wherein each bit of said sequence of bits selected is used to modify a respective coefficient of said encoded digital data, wherein said respective coefficient is incremented by not more than a value of one such that said respective coefficient is made even when said bit has a first value and odd when said bit has a second value, and wherein information so embedded is hidden. - View Dependent Claims (2, 3, 4, 5)
c1) using said output bit to select a subgroup from a plurality of subgroups comprising a plurality of sequences of bits; and
c2) using said pointer bit to select said sequence of bits selected from said plurality of said sequences of bits.
-
-
4. The method for encoding and embedding information within digital data as recited in claim 3 wherein said plurality of subgroups comprises four subgroups each comprising two sequences of bits each comprising three bits.
-
5. The method for encoding and embedding information within digital data as recited in claim 1 further comprising the steps of:
-
e) reading said coefficients of said encoded digital data to retrieve said sequence of bits; and
f) decoding said sequence of bits using said convolutional code.
-
-
6. A computer system comprising:
-
a bus;
a processor coupled to said bus; and
a computer-readable memory unit coupled to said bus;
said processor for performing a method for encoding and embedding information within digital data, said method comprising the steps of;
a) separating a plurality of bits representing information to be embedded into a first group of input bits and a second group of pointer bits according to a predetermined scheme, wherein each pointer bit in said second group is associated with a respective input bit in said first group;
b) generating one or more output bits from an input bit using a convolutional code;
c) selecting a sequence of bits using a combination of a pointer bit and said one or more output bits, wherein said pointer bit is associated with said input bit of said step b); and
d) embedding said sequence of bits selected into encoded digital data by modifying coefficients of said encoded digital data according to said sequence of bits selected, wherein each bit of said sequence of bits selected is used to modify a respective coefficient of said encoded digital data, wherein said respective coefficient is incremented by not more than a value of one such that said respective coefficient is made even when said bit has a first value and odd when said bit has a second value, and wherein information so embedded is hidden. - View Dependent Claims (7, 8, 9, 10)
c1) using said output bit to select a subgroup from a plurality of subgroups comprising a plurality of sequences of bits; and
c2) using said pointer bit to select said sequence of bits selected from said plurality of said sequences of bits.
-
-
9. The computer system of claim 8 wherein said plurality of subgroups comprises four subgroups each comprising two sequences of bits each comprising three bits.
-
10. The computer system of claim 6 wherein said processor performs said method for encoding and embedding information within digital data further comprising the steps of:
-
e) reading said coefficients of said encoded digital data to retrieve said sequence of bits; and
f) decoding said sequence of bits using said convolutional code.
-
-
11. A digital camera system for encoding and embedding information within digital data, said digital camera system comprising:
-
encoding means for separating a plurality of bits representing information to be embedded into a first group of input bits and a second group of pointer bits according to a predetermined scheme, wherein each pointer bit in said second group is associated with a respective input bit in said first group;
said encoding means also for generating one or more output bits from an input bit using a convolutional code;
said encoding means also for selecting a sequence of bits using a combination of a pointer bit and said one or more output bits, wherein said pointer bit is associated with said input bit used to generate said one or more output bits; and
modulating means for embedding said sequence of bits selected into encoded digital data by modifying coefficients of said encoded digital data according to said sequence of bits selected, wherein each bit of said sequence of bits selected is used to modify a respective coefficient of said encoded digital data, wherein said respective coefficient is incremented by not more than a value of one such that said respective coefficient is made even when said bit has a first value and odd when said bit has a second value, and wherein information so embedded is hidden. - View Dependent Claims (12, 13, 14, 15)
decoder means for reading said coefficients of said encoded digital data and retrieving said sequence of bits;
said decoder means also for decoding said sequence of bits using said convolutional code.
-
Specification