Method and apparatus for embedding data in encoded digital bitstreams
First Claim
1. A method for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
- coding a value of the one syntax element in the overriding syntax element position; and
inserting the embedded data into the other syntax element position.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for embedding data in an encoded video bitstream, for example, an MPEG or MPEG-like bitstream, wherein the bitstream includes redundantly coded syntax element values of which one is an overriding value, includes mandatorily coding the syntax element overriding value and replacing the non-overriding syntax element value with the data to be embedded. Apparatus for embedding data in such bitstream includes a coder creating the coded video bitstream with such value mandatorily coded in the overriding syntax element position therein, and a data inserter for inserting the data to be embedded into the non-overriding syntax element position. In an MPEG compressed bitstream, the quantization scale code (QSC) value is mandatorily explicitly coded in the first coded macroblock following a slice header and the embedded data is inserted into the QSC position in the slice header. The invention may be embodied in a computer implemented process and/or in apparatus performing such computer implemented process.
60 Citations
32 Claims
-
1. A method for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
coding a value of the one syntax element in the overriding syntax element position; and
inserting the embedded data into the other syntax element position. - View Dependent Claims (2, 3, 4)
-
-
5. A method for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
coding a value of the one syntax element in the overriding syntax element position; and
inserting the embedded data into the other syntax element position, wherein said coding a value includes re-coding the coded bitstream to create the overriding syntax element position, and inserting the value of the one syntax element therein. - View Dependent Claims (6)
-
-
7. A method for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
coding a value of the one syntax element in the overriding syntax element position; and
inserting the embedded data into the other syntax element position, decoding the coded bitstream responsive to the overriding syntax element value thereof;
searching for the other syntax element position, and extracting the embedded data therefrom.
-
-
8. A method for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
coding a value of the one syntax element in the overriding syntax element position; and
inserting the embedded data into the other syntax element position, wherein said syntax element value includes N bits and wherein said embedded data includes at least M x N bits, wherein said inserting the embedded data comprises;
separating the embedded data into at least M segments of N bits each, and inserting one of the M segments into a series of at least M other syntax element positions.
-
-
9. A method for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, the value thereof coded in one of the header and the data block positions being overriding respecting the value coded in the other of the header and data block positions, comprising:
-
coding a value of the one syntax element in the overriding one of the header and data block positions; and
inserting the embedded data into the other of the header and data block positions. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, the value thereof coded in one of the header and the data block positions being overriding respecting the value coded in the other of the header and data block positions, comprising:
-
coding a value of the one syntax element in the overriding one of the header and data block positions; and
inserting the embedded data into the other of the header and data block positions, wherein said coding a value includes re-coding the coded bitstream to create the overriding one of the header and data block positions, and inserting the value of the one syntax element therein. - View Dependent Claims (15)
-
-
16. A method for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, the value thereof coded in one of the header and the data block positions being overriding respecting the value coded in the other of the header and data block positions, comprising:
-
coding a value of the one syntax element in the overriding one of the header and data block positions;
inserting the embedded data into the other of the header and data block positions, decoding the coded bitstream responsive to the syntax element value in the overriding one of the header and data block positions thereof;
searching for the other one of the header and data block positions, and extracting the embedded data therefrom.
-
-
17. A method for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, the value thereof coded in one of the header and the data block positions being overriding respecting the value coded in the other of the header and data block positions, comprising:
-
coding a value of the one syntax element in the overriding one of the header and data block positions; and
inserting the embedded data into the other of the header and data block positions, wherein said syntax element value includes N bits and wherein said embedded data includes at least M x N bits, wherein said inserting the embedded data comprises;
separating the embedded data into at least M segments of N bits each, and inserting one of the M segments into a series of at least M ones of the other of the header and data block positions.
-
-
18. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, and hiding data in the quantization scale code position of at least one of the slice headers.
-
-
19. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, and hiding data in the quantization scale code position of at least one of the slice headers, wherein coding the coded bitstream includes said explicitly coding a quantization scale code in at least the first coded macroblock following each slice header.
-
-
20. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, and hiding data in the quantization scale code position of at least one of the slice headers, wherein said explicitly coding a quantization scale code value includes recoding the coded bitstream to code the first macroblock following the slice header for explicit quantization scale factor coding, and inserting the value of the quantization scale code therein. - View Dependent Claims (21)
-
-
22. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, hiding data in the quantization scale code position of at least one of the slice headers; and
creating the explicitly coded quantization scale code in the first macroblock following the slice header while coding the bitstream.
-
-
23. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, hiding data in the quantization scale code position of at least one of the slice headers; and
decoding the coded bitstream responsive to the quantization scale code value in the first coded macroblock following the slice header. - View Dependent Claims (24)
searching for the slice headers; and
extracting the hidden data therefrom.
-
-
25. A method for hiding data in an MPEG coded bitstream, wherein the coded bitstream includes a series of slices each having a slice header and at least one macroblock following the slice header, comprising:
-
explicitly coding a quantization scale code in at least the first coded macroblock following each slice header, and hiding data in the quantization scale code position of at least one of the slice headers, wherein said quantization scale code value includes N bits and wherein said hidden data includes at least M x N bits, wherein said inserting the hidden data comprises;
separating the hidden data into at least M segments of N bits each, and inserting one of the M segments into a series of at least M ones of the slice header quantization scale code positions.
-
-
26. A coder for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, comprising:
-
means for coding a bitstream having at least one syntax element that can be coded in a header and in a data block position, wherein the value thereof coded in one of the header and the data block positions is overriding respecting the value coded in the other of the header and data block positions;
means for coding a value of the one syntax element in the overriding one of the header and data block positions; and
means for inserting the embedded data into the other of the header and data block positions.
-
-
27. A coder for embedding data in a coded bitstream having headers and data blocks wherein the coded bitstream has at least one syntax element that can be coded in a header and in a data block position, comprising:
-
means for coding a bitstream having at least one syntax element that can be coded in a header and in a data block position, wherein the value thereof coded in one of the header and the data block positions is overriding respecting the value coded in the other of the header and data block positions;
means for coding a value of the one syntax element in the overriding one of the header and data block positions; and
means for inserting the embedded data into the other of the header and data block positions, wherein said means for coding a value includes;
means for re-coding the coded bitstream to create the overriding one of the header and data block positions, and means for inserting the value of the one syntax element therein. - View Dependent Claims (28)
-
-
29. A storage medium encoded with machine-readable computer instructions for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
means for causing a computer to code a value of the one syntax element in the overriding syntax element position; and
means for causing the computer to insert the embedded data into the other syntax element position. - View Dependent Claims (30)
-
-
31. A storage medium encoded with machine-readable computer instructions for embedding data in a coded bitstream wherein the coded bitstream has at least one syntax element that can be coded in plural positions, the value thereof coded in one position being overriding respecting the value coded in the other position, comprising:
-
means for causing a computer to code a value of the one syntax element in the overriding syntax element position; and
means for causing the computer to insert the embedded data into the other syntax element position;
wherein said means for causing a computer to code a value includes means for causing the computer to re-code the coded bitstream to create the overriding syntax element position, and means for causing the computer to insert the value of the one syntax element therein. - View Dependent Claims (32)
-
Specification