Fingerprinting digital video for rights management in networks
First Claim
1. A method comprising:
- receiving a video stream comprising a plurality of image frames, each image frame comprising a matrix of pixels;
selecting a subset of the image frames;
for each image frame in the subset determining a sub-fingerprint for the image frame; and
assembling the sub-fingerprints into a fingerprint for the video stream.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods generate video fingerprints for video data streams. A collection of sub-fingerprints constitute a fingerprint block. The size and temporal position of the block is chosen to represent the video that is being served. The video server has prior information about the video semantics. Based on this information, the server generates control codes that identify which blocks, based on time/byte offsets, in the sequence best represent the video object. The video receiver is equipped with facilities to generate these fingerprint blocks. The block(s) are sent back to the server. The server is equipped with facilities to verify and record the mismatches with respect to references. The mismatch statistics may be archived for use in a number of applications.
105 Citations
26 Claims
-
1. A method comprising:
-
receiving a video stream comprising a plurality of image frames, each image frame comprising a matrix of pixels;
selecting a subset of the image frames;
for each image frame in the subset determining a sub-fingerprint for the image frame; and
assembling the sub-fingerprints into a fingerprint for the video stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A device comprising:
-
a processor;
a network interface module operable to receive video data, the video data comprising a plurality of frames, each frame comprising a pixel matrix;
a memory coupled to the processor for storing the pixel matrix, a variance matrix, and a constellation matrix; and
a fingerprint generation module executing on the processor and operable to;
determine a discrete cosine transformation (DCT) block for a pixel block surrounding a pixel in the pixel matrix, said DCT block having coefficients;
compute an estimation of a variance of the coefficients;
set a variance value in the variance matrix with the estimation of the variance, wherein the value is set at a position in the variance matrix corresponding to the pixel position in the image frame matrix;
determine a minimum variance value in a signature window of the variance matrix enclosing the pixel position; and
set a first predetermined value representing the minimum variance in the constellation matrix at a position corresponding to the minimum variance value and setting all other positions in the signature window to a different predetermined value. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system comprising
a video server communicably coupled to a communication channel and operable to transmit a video data stream through the communication channel; a video receiver communicably coupled to the communication channel and operable to;
receive the video data stream;
determine a subset of images in the video data stream;
calculate a sub-fingerprint for each of the subset of images;
assemble the sub-fingerprint for each of the subset of images into a fingerprint; and
transmit the fingerprint to a fingerprint verification module. - View Dependent Claims (17, 18)
-
19. A machine-readable medium having machine executable instructions for performing a method, the method comprising:
-
receiving a video stream comprising a plurality of image frames, each image frame comprising a matrix of pixels;
selecting a subset of the image frames;
for each image frame in the subset determining a sub-fingerprint for the image frame; and
assembling the sub-fingerprints into a fingerprint for the video stream. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification