Endpoint based video fingerprinting
First Claim
1. A method of fingerprinting a video having a sequence of video frames, the method performed by a computer system, the method comprising:
- identifying, by the computer system, a plurality of discontinuities in features of audio-visual content of the video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities;
generating an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames;
segmenting, by the computer system, the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames;
generating, by the computer system, a fingerprint for each segment; and
storing the fingerprints to a computer readable storage medium to represent the sequence of video frames.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system generates and compares fingerprints for videos in a video library. The video fingerprints provide a compact representation of the temporal locations of discontinuities in the video that can be used to quickly and efficiently identify video content. Discontinuities can be, for example, shot boundaries in the video frame sequence or silent points in the audio stream. Because the fingerprints are based on structural discontinuity characteristics rather than exact bit sequences, visual content of videos can be effectively compared even when there are small differences between the videos in compression factors, source resolutions, start and stop times, frame rates, and so on. Comparison of video fingerprints can be used, for example, to search for and remove copyright protected videos from a video library. Furthermore, duplicate videos can be detected and discarded in order to preserve storage space.
-
Citations
31 Claims
-
1. A method of fingerprinting a video having a sequence of video frames, the method performed by a computer system, the method comprising:
-
identifying, by the computer system, a plurality of discontinuities in features of audio-visual content of the video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; generating an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; segmenting, by the computer system, the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames; generating, by the computer system, a fingerprint for each segment; and storing the fingerprints to a computer readable storage medium to represent the sequence of video frames. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for managing a digital video library, the method performed by a computer system, the method comprising:
-
identifying, by the computer system, a plurality of discontinuities in features of audio-visual content of a video in the digital video library, the video having a sequence video frames, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; generating an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; segmenting, by the computer system, the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames; generating, by the computer system, a sequence of video fingerprints including a fingerprint for each of the partially overlapping segments; indexing the sequence of video fingerprints; and storing the indexed video fingerprints to a tangible computer readable storage medium. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-implemented method for identifying duplicate video content in a video library comprising:
-
receiving, by a computer system, a video comprising a sequence of frames; identifying, by the computer system, a plurality of discontinuities in features of audio-visual content of the received video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; generating an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; segmenting, by the computer system, the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames; generating, by the computer system, a fingerprint sequence for the received video including a fingerprint for each of the partially overlapping segments; searching a reference database for reference videos having reference fingerprint sequences that match the fingerprint sequence for the received video; and determining at least one reference video corresponding to at least one matching reference fingerprint sequence. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A non-transitory computer-readable storage medium storing instructions for generating a video fingerprint, the instructions including a plurality of modules executable by one or more computer systems, the plurality of modules comprising:
-
an input module adapted to receive a video have a sequence of video frames; an endpoint detection module adapted to identify a plurality of discontinuities in features of audio-visual content of the video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; an encoding module adapted to generate an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; a segmenting module adapted to segment the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames, and to generate a sequence of fingerprints including a fingerprint for each of the partially overlapping segments; and an output module adapted to output the sequence of fingerprints. - View Dependent Claims (26, 27, 28)
-
-
29. A system for identifying duplicate video content in a video database comprising:
-
an ingest server adapted to receive a video comprising a sequence of video frames; an endpoint detection module adapted to identify a plurality of discontinuities in features of audio-visual content of the video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; an encoding module adapted to generate an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein the frames not associated with discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; a segmenting module adapted to segment the encoded data representation into a plurality of partially overlapping segments, wherein consecutive segments represent portions of the audio-visual content that overlap by one or more frames, and to generate a sequence of fingerprints including a fingerprint for each of the partially overlapping segments; an indexing module adapted to assign an index value to the received video according to at least one of the sequence of video fingerprints for the video; a reference database comprising a plurality of reference fingerprints associated with a plurality of reference videos; and a matching module adapted to search the reference database to identify at least one of the plurality of reference videos in the reference database having a similar video fingerprint to one or more of the sequence of video fingerprints of the received video. - View Dependent Claims (30, 31)
-
Specification