Fingerprinting digital video for rights management in networks
AssigneeIntel Corporation
InventorRaja Neogi
Life of this patent
Estimating the term…
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.
Claims22
A method for execution by one or more processors, comprising:
- receiving by the one or more processors a video stream comprising a plurality of image frames;
- selecting by the one or more processors a portion of the video stream, the portion of the video stream comprising a subset of the image frames;
- for each image frame in the subset determining a sub-fingerprint for the image frame, the sub-fingerprint comprising a bit string representing an encoding of a portion of the video stream;
- assembling the sub-fingerprints into a fingerprint block for the video stream;
- and
- comparing the assembled fingerprint block with at least one previously stored original fingerprint block, wherein the at least one previously stored original fingerprint block is stored in a fingerprint database, thereby automatically identifying the video stream when a comparison match exists.
A method for execution by a fingerprint matching server, comprising:
- computing a plurality of fingerprint blocks each corresponding to a video stream;
- storing the plurality of fingerprint blocks in a fingerprint database in a memory store coupled to the fingerprint matching server;
- receiving a fingerprint block from a fingerprint client device, wherein the received fingerprint block comprises assembled sub-fingerprints for a selected portion of a video stream, each sub-fingerprint generated from an image frame of the video stream, and each sub-fingerprint comprising a bit string representing an encoding of a portion of the video stream;
- comparing the received fingerprint block with at least one previously stored original fingerprint block stored in the fingerprint database, and automatically identifying the video stream when a comparison match exists;
- and
- notifying the fingerprint client device of results of the comparing.
A fingerprint matching server for verifying video streams based on a fingerprint block corresponding to the video stream, comprising:
- a processor coupled with a memory store;
- a fingerprint database comprising a plurality of original fingerprint blocks each original fingerprint block corresponding to a video stream, the fingerprint database stored in the memory store;
- a network interface module configured to receive an assembled fingerprint block over a network from a fingerprint client device, wherein the received assembled fingerprint block comprises assembled sub-fingerprints for a selected portion of a video stream, each sub-fingerprint generated from an image frame of the video stream, each sub-fingerprint comprising a bit string representing an encoding of a portion of the video stream;
- a comparison unit configured to compare the received assembled fingerprint block with at least one previously stored original fingerprint block stored in the fingerprint database, and automatically identifying the video stream when a comparison match exists;
- and
- a notification unit configured to notify the fingerprint client device of results of the comparing, the notification to be sent via the network interface module.
A computer readable storage medium having instructions stored thereon, the instructions when executed on a machine cause the machine to:
- receive a fingerprint block from a fingerprint client device, wherein the received fingerprint block comprises assembled sub-fingerprints for a selected portion of a video stream, each sub-fingerprint generated from an image frame of the video stream, and each sub-fingerprint comprising a bit string representing an encoding of a portion of the video stream;
- compare the received fingerprint block with at least one previously stored original fingerprint block stored in a fingerprint database, and automatically identify the video stream when a comparison match exists;
- and
- notify the fingerprint client device of results of the comparing.
A computer readable storage medium having instructions stored thereon, the instructions when executed on a machine cause the machine to:
- receive a video stream comprising a plurality of image frames;
- select a portion of the video stream, the portion of the video stream comprising a subset of the image frames;
- for each image frame in the subset determine a sub-fingerprint for the image frame, the sub-fingerprint comprising a bit string representing an encoding of a portion of the video stream;
- assemble the sub-fingerprints into a fingerprint block for the video stream;
- and
- send the fingerprint block to a fingerprint matching server for a comparison of the fingerprint block with at least one previously stored original fingerprint block, wherein the at least one previously stored original fingerprint block is stored in a fingerprint database;
- and
- receive results of the comparison.
Dependencies are inferred from the claim text.