IP Library Granted Patent US 11,095,380
Granted Patent B2
US 11,095,380 · App. 16/711,757 · Granted Aug 17, 2021

Source identification using parallel accumulation and comparison of broadcast fingerprints

Inventors: Dyon Anniballi (Wayne, PA); Philippe Generali (Scarsdale, NY)
Assignee: iHeartMedia Management Services, Inc.
H04H60/37H04H60/64H04H60/65H04H2201/90
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 11,095,380
App. No.
16/711,757
Granted
Aug 17, 2021
Kind
B2
Abstract

First fingerprint data is accumulated in a first fingerprint buffer of a channel identification server in parallel with accumulation of second fingerprint data in a second fingerprint buffer of the channel identification server. The first and second fingerprint data include multiple fingerprints representing broadcast content broadcast by corresponding broadcast sources during contiguous time periods, and accumulating the fingerprints includes appending newly received first fingerprints to previously received first fingerprints to generate continuous fingerprints. The channel identification server also receives an unmatched fingerprint representing broadcast content received from an unknown broadcast source by the end-user device. The unmatched fingerprint into probes, which are scrubbed against both first and second continuous fingerprints in an attempt to determine a match between the unmatched fingerprint and either the first or second continuous fingerprint. The unknown broadcast source is identified based on that determination.

Claims (57)

1. A method comprising:

accumulating first fingerprint data in a first fingerprint buffer of a channel identification server, the first fingerprint data including a plurality of first fingerprints representing broadcast content broadcast by a first known broadcast source during contiguous time periods, wherein accumulating first fingerprint data includes appending newly received first fingerprints to previously received first fingerprints to generate a first continuous fingerprint;

accumulating second fingerprint data in a second fingerprint buffer of a channel identification server in parallel with the first fingerprint data, the second fingerprint data including a plurality of second fingerprints representing broadcast content broadcast by a second known broadcast source during contiguous time periods, wherein accumulating second fingerprint data includes appending newly received second fingerprints to previously received second fingerprints to generate a second continuous fingerprint;

receiving, at the channel identification server, an unmatched fingerprint representing broadcast content received at an end-user device, the unmatched fingerprint associated with an unknown broadcast source;

dividing the unmatched fingerprint into probes;

scrubbing probes of the unmatched fingerprint concurrently against both the first continuous fingerprint and the second continuous fingerprint to make a determination that the unmatched fingerprint matches either the first continuous fingerprint or the second continuous fingerprint; and

identifying the unknown broadcast source as the first known broadcast source or the second known broadcast source based on the determination.

2. The method of claim 1 , wherein:

dividing the unmatched fingerprint into probes includes dividing the unmatched fingerprint into blocks composed of a plurality of frames; and

scrubbing probes includes attempting to match a block of the unmatched fingerprint against each potential block of the first continuous fingerprint and the second continuous fingerprint.

3. The method of claim 2 , wherein each of potential block of the first continuous fingerprint and the second continuous fingerprint are defined at frame boundaries.

4. The method of claim 2 , wherein scrubbing an individual probe yields a position of a first block from the unmatched fingerprint and a matched block from at least one of the first continuous fingerprint or the second continuous fingerprint.

5. The method of claim 4 , further comprising:

growing a match between the first block of the unmatched fingerprint and the matched block by matching a first adjoining block adjacent to the first block with a second adjoining block adjacent to the matched block.

6. The method of claim 1 , further comprising:

determining whether a size of an accumulated continuous fingerprint exceeds a threshold value established as a maximum size for data storage; and

removing an oldest portion of the accumulated continuous fingerprint until the size of the accumulated continuous fingerprint falls within the threshold value.

7. The method of claim 1 , wherein the first fingerprint buffer and the second fingerprint buffer are configured to buffer between about 30-60 seconds of broadcast content.

8. A device comprising:

a processor;

memory operably associated with the processor;

first and second fingerprint buffers;

a program of instructions configured to be stored in the memory and executed by the processor, the program of instructions comprising:

at least one instruction to accumulate first fingerprint data in the first fingerprint buffer, the first fingerprint data including a plurality of first fingerprints representing broadcast content broadcast by a first known broadcast source during contiguous time periods, wherein accumulating first fingerprint data includes appending newly received first fingerprints to previously received first fingerprints to generate a first continuous fingerprint;

at least one instruction to accumulate, in parallel with the first fingerprint data, second fingerprint data in the second fingerprint buffer, the second fingerprint data including a plurality of second fingerprints representing broadcast content broadcast by a second known broadcast source during contiguous time periods, wherein accumulating second fingerprint data includes appending newly received second fingerprints to previously received second fingerprints to generate a second continuous fingerprint;

at least one instruction to receive an unmatched fingerprint representing broadcast content received at an end-user device, the unmatched fingerprint associated with an unknown broadcast source;

at least one instruction to divide the unmatched fingerprint into probes;

at least one instruction to scrub probes of the unmatched fingerprint concurrently against both the first continuous fingerprint and the second continuous fingerprint to make a determination that the unmatched fingerprint matches either the first continuous fingerprint or the second continuous fingerprint; and

at least one instruction to identify the unknown broadcast source as the first known broadcast source or the second known broadcast source based on the determination.

9. The device of claim 8 , wherein the program of instructions further includes:

at least one instruction to divide the unmatched fingerprint into blocks composed of a plurality of frames; and

at least one instruction to scrub probes by attempting to match a block of the unmatched fingerprint against each potential block of the first continuous fingerprint and the second continuous fingerprint.

10. The device of claim 9 , wherein each of potential block of the first continuous fingerprint and the second continuous fingerprint are defined at frame boundaries.

11. The device of claim 9 , wherein scrubbing an individual probe yields a position of a first block from the unmatched fingerprint and a matched block from at least one of the first continuous fingerprint or the second continuous fingerprint.

12. The device of claim 11 , wherein the program of instructions further includes:

at least one instruction to grow a match between the first block of the unmatched fingerprint and the matched block by matching a first adjoining block adjacent to the first block with a second adjoining block adjacent to the matched block.

13. The device of claim 8 , wherein the program of instructions further includes:

at least one instruction to determine whether a size of an accumulated continuous fingerprint exceeds a threshold value established as a maximum size for data storage; and

at least one instruction to remove an oldest portion of the accumulated continuous fingerprint until the size of the accumulated continuous fingerprint falls within the threshold value.

14. The device of claim 8 , wherein the first fingerprint buffer and the second fingerprint buffer are configured to buffer broadcast content signatures representing multiple days of broadcast content.

15. A non-transitory computer readable medium tangibly embodying a program of instructions to be stored in a memory and executed by a processor, the program of instructions including:

at least one instruction to accumulate first fingerprint data in a first fingerprint buffer, the first fingerprint data including a plurality of first fingerprints representing broadcast content broadcast by a first known broadcast source during contiguous time periods, wherein accumulating first fingerprint data includes appending newly received first fingerprints to previously received first fingerprints to generate a first continuous fingerprint;

at least one instruction to accumulate, in parallel with the first fingerprint data, second fingerprint data in a second fingerprint buffer, the second fingerprint data including a plurality of second fingerprints representing broadcast content broadcast by a second known broadcast source during contiguous time periods, wherein accumulating second fingerprint data includes appending newly received second fingerprints to previously received second fingerprints to generate a second continuous fingerprint;

at least one instruction to receive an unmatched fingerprint representing broadcast content received at an end-user device, the unmatched fingerprint associated with an unknown broadcast source;

at least one instruction to divide the unmatched fingerprint into probes;

at least one instruction to scrub probes of the unmatched fingerprint concurrently against both the first continuous fingerprint and the second continuous fingerprint to make a determination that the unmatched fingerprint matches either the first continuous fingerprint or the second continuous fingerprint; and

at least one instruction to identify the unknown broadcast source as the first known broadcast source or the second known broadcast source based on the determination.

16. The non-transitory computer readable medium of claim 15 , wherein the program of instructions further includes:

at least one instruction to divide the unmatched fingerprint into blocks composed of a plurality of frames; and

at least one instruction to scrub probes by attempting to match a block of the unmatched fingerprint against each potential block of the first continuous fingerprint and the second continuous fingerprint.

17. The non-transitory computer readable medium of claim 16 , wherein each of potential block of the first continuous fingerprint and the second continuous fingerprint are defined at frame boundaries.

18. The non-transitory computer readable medium of claim 16 , wherein scrubbing an individual probe yields a position of a first block from the unmatched fingerprint and a matched block from at least one of the first continuous fingerprint or the second continuous fingerprint.

19. The non-transitory computer readable medium of claim 18 , wherein the program of instructions further includes:

at least one instruction to grow a match between the first block of the unmatched fingerprint and the matched block by matching a first adjoining block adjacent to the first block with a second adjoining block adjacent to the matched block.

20. The non-transitory computer readable medium of claim 15 , wherein the program of instructions further includes:

at least one instruction to determine whether a size of an accumulated continuous fingerprint exceeds a threshold value established as a maximum size for data storage; and

at least one instruction to remove an oldest portion of the accumulated continuous fingerprint until the size of the accumulated continuous fingerprint falls within the threshold value.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Dec 29, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 069795/0912 →
PATENT SECURITY AGREEMENT Recorded Dec 28, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 069794/0248 →
PATENT SECURITY AGREEMENT Recorded Dec 28, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 069793/0758 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 069792/0335 →
PATENT SECURITY AGREEMENT Recorded Dec 23, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 069762/0453 →
PATENT SECURITY AGREEMENT Recorded Dec 22, 2024
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 069752/0941 →
PATENT SECURITY AGREEMENT SUPPLEMENT NO. 2 Recorded Jul 16, 2020
From: IHEARTMEDIA MANAGEMENT SERVICES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 053224/0899 →
CHANGE OF NAME Recorded Dec 12, 2019
From: CLEAR CHANNEL MANAGEMENT SERVICES, INC.
To: IHEARTMEDIA MANAGEMENT SERVICES, INC.
Reel/Frame 051273/0975 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: ANNIBALLI, DYON; GENERALI, PHILIPPE
To: CLEAR CHANNEL MANAGEMENT SERVICES, INC.
Reel/Frame 051264/0454 →
Continuity (5)
Continuation 15958767 · Apr 20, 2018
Continuation 15186622 · Jun 20, 2016
Continuation 13897155 · May 17, 2013
Continuation In Part 13221237 · Aug 30, 2011
Related Publication 20200119824A1 · Apr 16, 2020
Cited By (1)
US 12,368,524