Message authentication code using image histograms
First Claim
1. A method of generating a message authentication code comprising:
- receiving a plurality of blocks of image data, each block corresponding to a particular one of a plurality of rows and a particular one of a plurality of columns of an image;
generating a row histogram for each particular one of the plurality of rows, the row histogram representing values in blocks corresponding to the particular one of the plurality of rows;
generating a row representation from each row histogram, the row representation corresponding to the particular one of the rows from which the row histogram was formed;
generating a column histogram for each particular one of the plurality of columns, the column histogram representing values in blocks corresponding to the particular one of the plurality of columns;
generating a column representation from each column histogram, the column representation corresponding to the particular one of the columns from which the column histogram was formed; and
generating a message authentication code comprising the plurality of row representations and the plurality of column representations.
2 Assignments
0 Petitions
Accused Products
Abstract
According to the principles of the invention, there is provided a system for generating a message authentication code for a conventional digital video stream. The system operates on the rows and columns of block data for a video stream, and more specifically on histograms of DC coefficients from each row and column, to produce a compact code that is nonetheless descriptive of the underlying images in the video stream. The message authentication code can be reproduced from the images of a received video stream, and if desired, compared with a digital watermark embedded in the video stream in order to confirm the accuracy of the video content or identify the source of the video stream.
133 Citations
46 Claims
-
1. A method of generating a message authentication code comprising:
-
receiving a plurality of blocks of image data, each block corresponding to a particular one of a plurality of rows and a particular one of a plurality of columns of an image;
generating a row histogram for each particular one of the plurality of rows, the row histogram representing values in blocks corresponding to the particular one of the plurality of rows;
generating a row representation from each row histogram, the row representation corresponding to the particular one of the rows from which the row histogram was formed;
generating a column histogram for each particular one of the plurality of columns, the column histogram representing values in blocks corresponding to the particular one of the plurality of columns;
generating a column representation from each column histogram, the column representation corresponding to the particular one of the columns from which the column histogram was formed; and
generating a message authentication code comprising the plurality of row representations and the plurality of column representations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
generating the row parity bit further comprises forming a row digital sequence from the row histogram, the row digital sequence including a row bin bit for each bin of the row histogram, and generating the row parity bit by summing the row bin bits of the digital sequence; and
generating the column parity bit further comprises forming a column digital sequence from the column histogram, the column digital sequence including a column bin bit for each bin of the column histogram, and generating the column parity bit by summing the column bin bits of the column digital sequence.
-
-
9. The method of claim 7 wherein generating the message authentication code includes concatenating each of the row parity bits and each of the column parity bits.
-
10. The method of claim 1 wherein the message authentication code is a one-hundred fifty bit message authentication code.
-
11. The method of claim 1 wherein the plurality of blocks of image data comprise a Moving Picture Experts Group video stream.
-
12. A method of using a message authentication code comprising:
-
receiving a plurality of blocks of image data, each block corresponding to a particular one of a plurality of rows and a particular one of a plurality of columns of an image;
generating a row histogram for each particular one of the plurality of rows, the row histogram representing values in blocks corresponding to the particular one of the plurality of rows;
generating a row representation from each row histogram, the row representation corresponding to the particular one of the rows from which the row histogram was formed;
generating a column histogram for each particular one of the plurality of columns, the column histogram representing values in blocks corresponding to the particular one of the plurality of columns;
generating a column representation from each column histogram, the column representation corresponding to the particular one of the columns from which the column histogram was formed;
generating a message authentication code comprising the plurality of row representations and the plurality of column representations;
reading a watermark from the plurality of blocks of image data; and
comparing the watermark to the message authentication code. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
generating the row parity bit further comprises forming a row digital sequence from the row histogram, the row digital sequence including a row bin bit for each bin of the row histogram, and generating the row parity bit by summing the row bin bits of the digital sequence; and
generating the column parity bit further comprises forming a column digital sequence from the column histogram, the column digital sequence including a column bin bit for each bin of the column histogram, and generating the column parity bit by summing the column bin bits of the column digital sequence.
-
-
19. The method of claim 17 wherein generating the message authentication code includes concatenating each of the row parity bits and each of the column parity bits.
-
20. The method of claim 12 wherein the message authentication code comprises a one-hundred fifty bit message authentication code.
-
21. The method of claim 12 wherein the plurality of blocks of image data comprise a Moving Picture Experts Group video stream.
-
22. The method of claim 12 wherein comparing the watermark to the message authentication code further comprises localizing errors in the plurality of blocks of image data.
-
23. A system for generating a message authentication code comprising:
-
means for receiving a plurality of blocks of image data, each block corresponding to a particular one of a plurality of rows and a particular one of a plurality of columns of an image;
means for generating a row histogram for each particular one of the plurality of rows, the row histogram representing values in blocks corresponding to the particular one of the plurality of rows;
means for generating a row representation from each row histogram, the row representation corresponding to the particular one of the rows from which the row histogram was formed;
means for generating a column histogram for each particular one of the plurality of columns, the column histogram representing values in blocks corresponding to the particular one of the plurality of columns;
means for generating a column representation from each column histogram, the column representation corresponding to the particular one of the columns from which the column histogram was formed; and
means for generating a message authentication code comprising the plurality of row representations and the plurality of column representations. - View Dependent Claims (24, 25, 26, 27, 28)
a Moving Picture Experts Group encoder for providing the plurality of blocks of image data to the receiving means; and
a watermark unit for embedding the message authentication code in the plurality of blocks of image data.
-
-
28. The system of claim 26 further comprising:
-
a Moving Picture Experts Group decoder for providing the plurality of blocks of image data to the receiving means;
a watermark reader for reading a watermark embedded in the plurality of blocks of image data; and
a watermark processor for comparing the watermark to the message authentication code.
-
-
29. A digital video encoder comprising:
-
a transform unit, the transform unit receiving a plurality of blocks of video data and performing a two-dimensional transform on each block to provide a transformed block, each transformed block including a plurality of coefficients;
a quantizer, the quantizer receiving each transformed block and scaling each coefficient of each transformed block using a quantization index, thereby providing a plurality of quantized blocks;
a message authentication code generator, the message authentication code generator receiving each of the plurality of quantized blocks and generating a message authentication code, the message authentication code including a plurality of row parity bits and a plurality of column parity bits, each one of the plurality of row parity bits determined according to a parity of a sum of corresponding row histogram bins containing DC coefficients, and each one of the column parity bits determined according to a parity of a sum of corresponding column histogram bins containing DC coefficients; and
a watermark unit, the watermark unit receiving the message authentication code and the plurality of quantized blocks, and the watermark unit embedding the message authentication code into the plurality of quantized blocks. - View Dependent Claims (30, 31, 32, 33, 34)
-
-
35. A message authentication code embodied in a Moving Picture Experts Group video data carrier signal, the message authentication code comprising:
-
a plurality of row parity bits, one row parity bit for each row of transformed blocks of an image, each one of the row parity bits determined according to a parity of a sum of corresponding row histogram bins containing DC coefficients; and
a plurality of column parity bits, one column parity bit for each column of transformed blocks of the image, each one of the column parity bits determined according to a parity of a sum of corresponding column histogram bins containing DC coefficients. - View Dependent Claims (36, 37)
-
-
38. A computer program product for generating a message authentication code, embodied in machine executable code for performing the following steps:
-
receiving a plurality of blocks of image data, each block corresponding to a particular one of a plurality of rows and a particular one of a plurality of columns of an image;
generating a row histogram for each particular one of the plurality of rows, the row histogram representing values in blocks corresponding to the particular one of the plurality of rows;
generating a row representation from each row histogram, the row representation corresponding to the particular one of the rows from which the row histogram was formed;
generating a column histogram for each particular one of the plurality of columns, the column histogram representing values in blocks corresponding to the particular one of the plurality of columns;
generating a column representation from each column histogram, the column representation corresponding to the particular one of the columns from which the column histogram was formed; and
generating a message authentication code comprising the plurality of row representations and the plurality of column representations. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
generating the row representation further comprises forming a row digital sequence from the row histogram, the row digital sequence including a row bin bit for each bin of the row histogram, and generating a row parity bit by summing the row bin bits of the digital sequence; and
generating the column representation further comprises forming a column digital sequence from the column histogram, the column digital sequence including a column bin bit for each bin of the column histogram, and generating a column parity bit by summing the column bin bits of the column digital sequence.
-
-
44. The computer program product of claim 38 wherein generating the message authentication code includes concatenating each of the row representations and each of the column representations.
-
45. The computer program product of claim 38 wherein the message authentication code is a one-hundred fifty-bit message authentication code.
-
46. The computer program product of claim 38 wherein the plurality of blocks of image data comprise a Moving Picture Experts Group video stream.
Specification