Modifying a coded bitstream
First Claim
1. A method comprising:
- accessing, without initially decoding, arithmetically encoded data, the arithmetically encoded data comprising data encoded with an arithmetic code, and the encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
and determining a modified first arithmetically coded portion such that the second coded portion is decodable to produce a common result based on either an output from decoding the first coded portion or an output from decoding the modified first arithmetically coded portion, wherein determining comprises determining a modified first arithmetically coded portion that generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion.
3 Assignments
0 Petitions
Accused Products
Abstract
Implementations may relate to various aspects of modifying, or using, a coded bitstream, or to recovering watermarking information from data. In one implementation, a coded bitstream is modified to allow for the application of a watermark to the coded bitstream without changing the coding of any other syntax elements in the bitstream. This is performed by identifying conditions necessary to change a coded syntax element without disrupting the interpretation of subsequent coded elements. The coded syntax element is replaced with another coded value if the modified value generates the same decoding variables as the original value would have generated. Particular implementations focus on syntax elements coded using entropy coding, including, for example, Context-based Adaptive Binary Arithmetic Coding (CABAC). Regardless of the type of coding or watermarking, various implementations may provide for recovering watermarking information. Particular implementations recover watermarking information using detection data and feature information.
60 Citations
41 Claims
-
1. A method comprising:
- accessing, without initially decoding, arithmetically encoded data, the arithmetically encoded data comprising data encoded with an arithmetic code, and the encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
and determining a modified first arithmetically coded portion such that the second coded portion is decodable to produce a common result based on either an output from decoding the first coded portion or an output from decoding the modified first arithmetically coded portion, wherein determining comprises determining a modified first arithmetically coded portion that generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
- accessing, without initially decoding, arithmetically encoded data, the arithmetically encoded data comprising data encoded with an arithmetic code, and the encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
-
16. An apparatus comprising:
- an accessing unit to access, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
a modification unit to determine a modified first arithmetically coded portion such that the second coded portion is decodable to produce a common result based on either an output from decoding the first coded portion or an output from decoding the modified first arithmetically coded portion, wherein the modification unit determines a modified first arithmetically coded portion that generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion. - View Dependent Claims (17)
- an accessing unit to access, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
-
18. An apparatus comprising:
- means for accessing, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
means for determining a modified first arithmetically coded portion such that the second coded portion is decodable to produce a common result based on either an output from decoding the first coded portion or an output from decoding the modified first arithmetically coded portion, wherein the means for determining determines a modified first arithmetically coded portion that generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion.
- means for accessing, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
-
19. An apparatus comprising a processor-readable medium including instructions stored on the processor-readable medium for performing at least the following:
- accessing, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
and determining a modified first arithmetically coded portion such that the second coded portion is decodable to produce a common result based on either an output from decoding the first coded portion or an output from decoding the modified first arithmetically coded portion, wherein determining comprises determining a modified first arithmetically coded portion that generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion.
- accessing, without initially decoding, arithmetically encoded data including at least a first coded portion and a second coded portion, wherein the first and second coded portions have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
-
20. An apparatus comprising a processor-readable medium including information stored on the processor-readable medium identifying an arithmetically encoded replacement portion for a first coded portion of an arithmetically encoded set of data, the encoded set of data also including a second coded portion, and decoding of the second coded portion being based on the second coded portion and on the first coded portion, wherein the arithmetically encoded replacement portion has a property such that:
decoding of the second coded portion produces a particular decoded result if decoding is performed on the encoded set of data including the first coded portion, and decoding of the second coded portion produces the particular decoded result if decoding is performed on the encoded set of data including the arithmetically encoded replacement portion instead of the first coded portion, wherein the arithmetically encoded replacement portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion.
-
21. A method comprising:
- accessing, without initially decoding, an arithmetically coded bitstream that includes at least a first coded portion and a second coded portion, wherein the first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
replacing the first coded portion with a replacement arithmetically coded portion to produce a modified coded bitstream for which a decoding of the second coded portion will produce a common result based on either an output from decoding the first coded portion or an output from decoding the replacement arithmetically coded portion, wherein the replacement arithmetically coded portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
- accessing, without initially decoding, an arithmetically coded bitstream that includes at least a first coded portion and a second coded portion, wherein the first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; and
-
31. An apparatus comprising a processor-readable medium including instructions stored on the processor-readable medium for performing at least the following:
- accessing, without initially decoding, a an arithmetically coded bitstream that includes at least a first coded portion and a second coded portion, wherein the first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
and replacing the first coded portion with a replacement arithmetically coded portion to produce a modified coded bitstream for which a decoding of the second coded portion will produce a common result based on either an output from decoding the first coded portion or an output from decoding the replacement arithmetically coded portion, wherein the arithmetically coded replacement portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion.
- accessing, without initially decoding, a an arithmetically coded bitstream that includes at least a first coded portion and a second coded portion, wherein the first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion;
-
32. An apparatus comprising a processor-readable medium, the processor-readable medium having stored thereon arithmetically encoded data including a modified first coded portion and a second coded portion, the modified first coded portion being a replacement of a first arithmetically coded portion, wherein:
- the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion, and
decoding of the second coded portion will produce a common result based on either an output from decoding the first arithmetically coded portion or an output from decoding the modified first coded portion, wherein the modified first coded portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first arithmetically coded portion. - View Dependent Claims (33)
- the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion, and
-
34. A method comprising:
- accessing, without initially decoding, a modified set of arithmetically coded data including a modified first coded portion and a second coded portion, the modified first coded portion resulting from a modification of a first arithmetically coded portion, wherein the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion;
decoding the second coded portion to produce a common result, wherein the common result is the same whether decoding of the second coded portion is performed based on an output from decoding the first arithmetically coded portion or an output from decoding the modified first coded portion, wherein the modified first coded portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first arithmetically coded portion; and decoding the modified first coded portion. - View Dependent Claims (35, 36, 37, 38, 39)
- accessing, without initially decoding, a modified set of arithmetically coded data including a modified first coded portion and a second coded portion, the modified first coded portion resulting from a modification of a first arithmetically coded portion, wherein the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion;
-
40. An apparatus comprising a processor-readable medium including instructions stored on the processor-readable medium for performing at least the following:
- accessing, without initially decoding, a modified set of arithmetically coded data including a modified first coded portion and a second coded portion, the modified first coded portion resulting from a modification of a first arithmetically coded portion, wherein the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion;
decoding the second coded portion to produce a common result, wherein the common result is the same whether decoding of the second coded portion is performed based on an output from decoding the first arithmetically coded portion or an output from decoding the modified first coded portion, wherein the modified first coded portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first arithmetically coded portion; and decoding the modified first coded portion.
- accessing, without initially decoding, a modified set of arithmetically coded data including a modified first coded portion and a second coded portion, the modified first coded portion resulting from a modification of a first arithmetically coded portion, wherein the modified first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the modified first coded portion;
-
41. An apparatus for replacing coded data, the apparatus comprising:
an accessing unit to access, without initially decoding, an arithmetically coded bitstream that includes at least a first coded portion and a second coded portion, wherein the first coded portion and the second coded portion have been coded with a code having memory, such that decoding the second coded portion relies on an output from decoding the first coded portion; a replacing unit to replace the first coded portion with a replacement arithmetically coded portion to produce a modified coded bitstream for which a decoding of the second coded portion will produce a common result based on either an output from decoding the first coded portion or an output from decoding the replacement arithmetically coded portion, wherein the replacement arithmetically coded portion generates a Context-based Adaptive Binary Arithmetic Coding (CABAC) state value that is the same as a CABAC state value generated by the first coded portion; and a memory for storing (i) the replacement value and (ii) location information that identifies location in a decoded image for use in recovering one or more watermarking bits indicated by the replacement value.
Specification