IP Library › Granted Patent US 10,390,109
Granted Patent B2
US 10,390,109 · App. 15/900,665 · Granted Aug 20, 2019

System and method for synchronizing metadata with audiovisual content

Inventors: Alan David Young (Skillman, NJ); Dimitri Felixovich Tarassenko (Buford, GA); Roger James Franklin (Suwanee, GA)
Assignee: Crystal Computer Corporation
H04N21/8547H04N21/233H04N21/235H04N21/23418H04N21/23614H04N21/242H04N21/26603H04N21/8133
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,390,109
App. No.
15/900,665
Granted
Aug 20, 2019
Kind
B2
Abstract

An example method comprises receiving, at a first digital device, video data, scanning video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, timestamping each visual transition and create a first set of temporal video fingerprints, identifying items of metadata to be associated with the video data, identifying a location within the video data using the temporal video fingerprints for the identified items of metadata, generating a metadata index identifying each item of metadata and a location for each item of metadata relative to the video data using at least one of the temporal video fingerprints, and transmitting, at the first digital device, the video data, the first set of temporal video fingerprints, and the metadata index to a different digital device.

Claims (110)

1. A method comprising:

receiving, at a first digital device, video data;

scanning, at the first digital device, video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data;

retrieving, at the first digital device, a different time for each visual transition to timestamp each visual transition and create a first set of temporal video fingerprints, each of the first set of temporal video fingerprints being relative to a different visual transition and the retrieved time;

identifying, at the first digital device, items of metadata to be associated with the video data;

identifying, at the first digital device, a location within the video data using the temporal video fingerprints for the identified items of metadata;

generating, at the first digital device, a metadata index identifying each item of metadata and a location for each item of metadata relative to the video data using at least one of the temporal video fingerprints; and

transmitting, at the first digital device, the video data, the first set of temporal video fingerprints, and the metadata index to a different digital device.

2. The method of claim 1 , wherein each of the temporal fingerprints further identifies a different frame associated with a visual transition.

3. The method of claim 1 , further comprising:

receiving, at a second digital device, the video data and the first set of temporal video fingerprints;

scanning, at the second digital device, the video content of the video data for the visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data;

retrieving, at the second digital device, a different time for each visual transition to timestamp each visual transition and create a second set of temporal video fingerprints, each of the second set of temporal video fingerprints being relative to a different visual transition and the retrieved time;

comparing, at the second digital device, the first set of temporal video fingerprints and the second set of temporal video fingerprints to determine a time offset and determine a timing difference; and

inserting, at the second digital device, at least one of the items of metadata into the video data using the metadata index and the time offset to create modified video data.

4. The method of claim 3 , further comprising transmitting, at the second digital device, the modified video data to a user device for playback of the modified video data.

5. The method of claim 3 , further comprising playing the modified video data.

6. The method of claim 1 , wherein scanning, at the first digital device, the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises calculating histograms H=(h 0 , h 1 . . . h n ) for every chroma/luma/color channel where n is the number of possible pixel brightness levels for the particular channel and h i is the count of pixels with value i in each frame of video, calculating a sum of absolute differences (SAD) between histogram vectors of every pair of adjacent frames to generate resulting values, and comparing the resulting values to a threshold to identify at least one visual transition within the video content.

7. The method of claim 6 wherein the threshold is a moving average of the SAD of histograms from previous frames with a sample window of double the video framerate.

8. The method of claim 1 , wherein scanning, at the first digital device, the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises decimating the histogram vectors H(A) and H(B) to the size of 16(H′(A)&H′(B)) as follows: where H(A)=(a 0 , a 1 . . . a n ); H′(A)=(h 0 , h 1 . . . h 15 )

h

i

=

∑

(

i

+

1

)

⁢

(

n

+

1

)

16

-

1

⁢

a

j

j

=

i

⁡

(

n

+

1

)

16

wherein the result of this subtraction is used as a temporal video fingerprint.

9. The method of claim 2 wherein scanning, at the second digital device, the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises calculating histograms H=(h 0 , h 1 . . . h n ) for every chroma/luma/color channel where n is the number of possible pixel brightness levels for the particular channel and h i is the count of pixels with value i in each frame of video, calculating a sum of absolute differences (SAD) between histogram vectors of every pair of adjacent frames to generate resulting values, and comparing the resulting values to a threshold to identify at least one visual transition within the video content.

10. The method of claim 2 , wherein inserting, at the second digital device, at least one of the items of metadata into the video data using the metadata index and the time offset to create modified video data comprises adjusting audio of the video data.

11. A system comprising:

a first digital device including one or more first processors and memory, the memory containing instructions executable by at least one of the one or more first processors to:

receive video data;

scan video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data;

retrieve a different time for each visual transition to timestamp each visual transition and create a first set of temporal video fingerprints, each of the first set of temporal video fingerprints being relative to a different visual transition and the retrieved time;

identify items of metadata to be associated with the video data;

identify a location within the video data using the temporal video fingerprints for the identified items of metadata;

generate a metadata index identifying each item of metadata and a location for each item of the metadata relative to the video data using at least one of the temporal video fingerprints; and

transmit the video data, the first set of temporal video fingerprints, and the metadata index to a different digital device.

12. The system of claim 11 , wherein each of the temporal fingerprints further identifies a different frame associated with a visual transition.

13. The system of claim 11 , further comprising:

a second digital device including one or more second processors and memory, the memory containing instructions executable by at least one of the one or more second processors to:

receive the video data and the first set of temporal video fingerprints;

scan the video content of the video data for the visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data;

retrieve a different time for each visual transition to timestamp each visual transition and create a second set of temporal video fingerprints, each of the second set of temporal video fingerprints being relative to a different visual transition and the retrieved time;

compare the first set of temporal video fingerprints and the second set of temporal video fingerprints to determine a time offset and determine a timing difference; and

insert at least one of the items of metadata into the video data using the metadata index and the time offset to create modified video data.

14. The system of claim 13 , wherein the memory containing instructions executable by at least one of the one or more second processors is further executable to transmit the modified video data to a user device for playback of the modified video data.

15. The system of claim 13 , wherein the memory containing instructions executable by at least one of the one or more second processors is further executable to play the modified video data.

16. The system of claim 11 , wherein the memory containing the instructions to scan the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises the memory containing the instructions to calculate histograms H=(h 0 , h 1 . . . h n ) for every chroma/luma/color channel where n is the number of possible pixel brightness levels for the particular channel and h i is the count of pixels with value i in each frame of video, calculate a sum of absolute differences (SAD) between histogram vectors of every pair of adjacent frames to generate resulting values, and compare the resulting values to a threshold to identify at least one visual transition within the video content.

17. The system of claim 16 wherein the threshold is a moving average of the SAD of histograms from previous frames with a sample window of double the video framerate.

18. The system of claim 11 , wherein the memory containing the instructions to scan the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises the memory containing the instructions to decimate the histogram vectors H(A) and H(B) to the size of 16(H′(A)&H′(B)) as follows: where H(A)=(a 0 , a 1 . . . a n ); H′(A)=(h 0 , h 1 . . . h 15 )

h

i

=

∑

(

i

+

1

)

⁢

(

n

+

1

)

16

-

1

⁢

a

j

j

=

i

⁡

(

n

+

1

)

16

wherein the result of this subtraction is used as a temporal video fingerprint.

19. The system of claim 12 wherein the memory containing the instructions executable by the at least one or more of the second processors to scan the video content of the video data for visual transitions within the video content between consecutive frames of the video data, each transition indicating significant visual transitions relative to other frames of the video data, comprises the memory containing the instructions to calculate histograms H=(h 0 , h 1 . . . h n ) for every chroma/luma/color channel where n is the number of possible pixel brightness levels for the particular channel and h i is the count of pixels with value i in each frame of video, calculate a sum of absolute differences (SAD) between histogram vectors of every pair of adjacent frames to generate resulting values, and compare the resulting values to a threshold to identify at least one visual transition within the video content.

20. The system of claim 12 , wherein the memory containing the instructions executable by the at least one or more of the second processors to insert at least one of the items of metadata into the video data using the metadata index and the time offset to create modified video data comprises the memory containing the instructions executable by the at least one or more of the second processors to adjust audio of the video data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2020
From: CRYSTAL COMPUTER CORPORATION
To: LTN GLOBAL COMMUNICATIONS INC.
Reel/Frame 052811/0261 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2020
From: YOUNG, ALAN DAVID, MR; TARASSENKO, DIMITRI FELIXOVICH, MR; FRANKLIN, ROGER JAMES, MR
To: CRYSTAL COMPUTER CORPORATION
Reel/Frame 052611/0598 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2018
From: YOUNG, ALAN DAVID; TARASSENKO, DIMITRI FELIXOVICH; FRANKLIN, ROGER JAMES
To: CRYSTAL COMPUTER CORPORATION
Reel/Frame 047329/0298 →
Continuity (3)
Provisional Application 62568975 · Oct 6, 2017
Provisional Application 62605526 · Aug 17, 2017
Related Publication 20190058929A1 · Feb 21, 2019