IP Library Granted Patent US 10,423,654
Granted Patent B2
US 10,423,654 · App. 16/355,727 · Granted Sep 24, 2019

Media fingerprinting and identification system

Inventors: Prashant Ramanathan (Mountain View, CA); Jose Pio Pereira (Cupertino, CA); Shashank Merchant (Sunnyvale, CA); Mihailo M. Stojancic (San Jose, CA)
Assignee: Gracenote, Inc.
G06F16/48G06F16/2255G06F16/285G06F16/41G06F16/783G06F16/7847G06F16/9014G06F16/951G06K9/00744G06K9/4671Y10S707/913
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,423,654
App. No.
16/355,727
Granted
Sep 24, 2019
Kind
B2
Abstract

The overall architecture and details of a scalable video fingerprinting and identification system that is robust with respect to many classes of video distortions is described. In this system, a fingerprint for a piece of multimedia content is composed of a number of compact signatures, along with traversal hash signatures and associated metadata. Numerical descriptors are generated for features found in a multimedia clip, signatures are generated from these descriptors, and a reference signature database is constructed from these signatures. Query signatures are also generated for a query multimedia clip. These query signatures are searched against the reference database using a fast similarity search procedure, to produce a candidate list of matching signatures. This candidate list is further analyzed to find the most likely reference matches. Signature correlation is performed between the likely reference matches and the query clip to improve detection accuracy.

Claims (56)

1. A computer-implemented method comprising:

establishing, using a video fingerprinting system, a rectangular grid of blocks overlaying pixels of a frame of a reference video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values;

generating, using the video fingerprinting system, fingerprint data for the frame based on the respective block values; and

storing, in a reference database, the fingerprint data in association with an identifier of the reference video.

2. The computer-implemented method of claim 1 , wherein the rectangular grid of blocks has a spatial extent, in pixels, of J×K, wherein J is an integer that is greater than one, and wherein K is an integer that is greater than one.

3. The computer-implemented method of claim 2 , wherein determining, for respective blocks of the rectangular grid of blocks, respective block-descriptor values based on the respective intensity values comprises computing, for respective blocks of the rectangular grid of blocks, L respective block values based on the respective intensity values, wherein L is an integer that is greater than or equal to one.

4. The computer-implemented method of claim 3 , wherein generating the fingerprint data for the frame based on the respective block values comprises deriving a descriptor from the L block values for multiple blocks of the rectangular grid of blocks.

5. The computer-implemented method of claim 4 , wherein generating the fingerprint data for the frame based on the respective block values further comprises determining a signature using the descriptor.

6. The computer-implemented method of claim 4 , wherein deriving the descriptor from the L block values for the multiple blocks comprises concatenating the L block values for the multiple blocks.

7. The computer-implemented method of claim 1 , wherein, for a given block of the respective blocks, determining the respective intensity values corresponding to pixels included within the given block comprises:

subdividing the block into an M×M grid of pixels, wherein M is an integer that is greater than one; and

for each sub-grid area of the M×M grid of pixels, combining intensity values of pixels of the sub-grid area to produce a re-sampled intensity value, and

wherein the block value for the given block is determined based on the re-sampled intensity value.

8. A computer-implemented method comprising:

establishing, using a video fingerprinting system, a rectangular grid of blocks overlaying pixels of a frame of a query video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values;

generating, using the video fingerprinting system, fingerprint data for the frame based on the respective block values; and

identifying a reference video corresponding to the query video using the fingerprint data and a reference database.

9. The computer-implemented method of claim 8 , wherein the reference database stores reference fingerprint data for the reference video, and wherein identifying the reference video using the fingerprint data comprises comparing the fingerprint data with the reference fingerprint data.

10. A non-transitory computer-readable medium having stored therein instructions that are executable by one or more computers to cause a video fingerprint system to perform functions comprising:

establishing a rectangular grid of blocks overlaying pixels of a frame of a reference video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels;

determining, for respective blocks of the rectangular grid of blocks, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values;

generating fingerprint data for the frame based on the respective block values; and

storing, in a reference database, the fingerprint data in association with an identifier of the reference video.

11. The non-transitory computer-readable medium of claim 10 , wherein the rectangular grid of blocks has a spatial extent, in pixels, of J×K, wherein J is an integer that is greater than one, and wherein K is an integer that is greater than one.

12. The non-transitory computer-readable medium of claim 11 , wherein determining, for respective blocks of the rectangular grid of blocks, respective block-descriptor values based on the respective intensity values comprises computing, for respective blocks of the rectangular grid of blocks, L respective block values based on the respective intensity values, wherein L is an integer that is greater than or equal to one.

13. The non-transitory computer-readable medium of claim 12 , wherein generating the fingerprint data for the frame based on the respective block values comprises deriving a descriptor from the L block values for multiple blocks of the rectangular grid of blocks.

14. A non-transitory computer-readable medium having stored therein instructions that are executable by one or more computers to cause a video fingerprint system to perform functions comprising:

establishing a rectangular grid of blocks overlaying pixels of a frame of a query video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels;

determining, for respective blocks of the rectangular grid of blocks, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks;

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values;

generating fingerprint data for the frame based on the respective block values; and

identifying a reference video corresponding to the query video using the fingerprint data and a reference database.

15. The non-transitory computer-readable medium of claim 14 , wherein the reference database stores reference fingerprint data for the reference video, and wherein identifying the reference video using the fingerprint data comprises comparing the fingerprint data with the reference fingerprint data.

16. A video fingerprinting system comprising:

a processing unit; and

a computer-readable medium having stored therein instructions that are executable by one or more computers to cause the video fingerprinting system to perform functions comprising:

establishing a rectangular grid of blocks overlaying pixels of a frame of a reference video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels,

determining, for respective blocks of the rectangular grid of blocks, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks,

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values,

generating fingerprint data for the frame based on the respective block values, and storing, in a reference database, the fingerprint data in association with an identifier of the reference video.

17. The video fingerprinting system of claim 16 , wherein the rectangular grid of blocks has a spatial extent, in pixels, of J×K, wherein J is an integer that is greater than one, and wherein K is an integer that is greater than one.

18. The video fingerprinting system of claim 17 , wherein determining, for respective blocks of the rectangular grid of blocks, respective block-descriptor values based on the respective intensity values comprises computing, for respective blocks of the rectangular grid of blocks, L respective block values based on the respective intensity values, wherein L is an integer that is greater than or equal to one.

19. A video fingerprinting system comprising:

a processing unit; and

a computer-readable medium having stored therein instructions that are executable by one or more computers to cause the video fingerprinting system to perform functions comprising:

establishing a rectangular grid of blocks overlaying pixels of a frame of a query video, wherein each block of the rectangular grid of blocks includes a grid of pixels, and wherein boundaries of the rectangular grid of blocks are defined such that some of the blocks of the rectangular grid of blocks include different numbers of pixels,

determining, for respective blocks of the rectangular grid of blocks, respective intensity values corresponding to pixels included within the respective blocks of the rectangular grid of blocks,

determining, for respective blocks of the rectangular grid of blocks, using the video fingerprinting system, respective block values based on the respective intensity values,

generating fingerprint data for the frame based on the respective block values, and

identifying a reference video corresponding to the video using the fingerprint data and a reference database.

20. The video fingerprinting system of claim 19 , wherein the reference database stores reference fingerprint data for the reference video, and wherein identifying the reference video using the fingerprint data comprises comparing the fingerprint data with the reference fingerprint data.

Assignments (11)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 056982/0194) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0664 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jun 29, 2021
From: ROKU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 056982/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: GRACENOTE, INC.
To: ROKU, INC.
Reel/Frame 056103/0786 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Apr 20, 2021
From: CITIBANK, N.A.
To: THE NIELSEN COMPANY (US), LLC; GRACENOTE, INC.
Reel/Frame 056973/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2019
From: ZEITERA, LLC
To: GRACENOTE, INC.
Reel/Frame 048630/0542 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2019
From: RAMANATHAN, PRASHANT; PEREIRA, JOSE PIO; MERCHANT, SHASHANK; STOJANCIC, MIHAILO M.
To: ZEITERA, LLC
Reel/Frame 048630/0532 →