Cognitive Wins Patent for Improved ACR Approach

Cognitive Networks won a U.S. patent for a system that could help content owners and smart TV manufacturers generate increased revenue from ads triggered by automatic content recognition technology.

The patent details how it can increase the performance of ACR systems by varying the sampling rates for samples, or “fingerprints” of digital content that it captures from TV programming.

“Despite continuing advances in computing power, automated matching of audio or video content remains a daunting task,” Cognitive notes in the patent, titled, “Systems and Methods for Improving Server and Client Performance in Fingerprint ACR Systems.”

Cognitive CTO and co-founder Zeev Neumeier and VP of technology Brian Reed are named as inventors on the patent.

Earlier this month, Cognitive won two U.S. patents for techniques to optimize detection speed and system scale for real-time content recognition services. 

Abstract: A system and method are disclosed that improve the efficiency and performance of an Automatic Content Recognition (ACR) system. Several approaches are described that may be used alone or in combination to reduce total system computational costs related to the manner in which such an ACR means takes samples, called “fingerprints,” of digital content being played by a television display device and transmits said fingerprints to a remote server to be compared to a database of fingerprints from known programming. Methods are described for implementing such system performance enhancement including varying sampling rates and other resolution metrics during the process of creating such fingerprints and transmitting them to the database server. The system and method disclosed also describes how to reduce the probability that, when compared to samples from already-identified programming, such fingerprints are incorrectly identified as being of programming other than that which they are in fact derived from.

Patent

Claims:

  1. A method, comprising: determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions; signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values; identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages; and determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video.
  1. The method of claim 1, wherein determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprises: determining the one or more values following at least one of a power-on condition, a change of channels, a fast-forward operation, a rewind operation, a pause operation, or a skip operation associated with the client.
  1. The method of claim 1, wherein determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprises: determining the one or more values based at least in part on a channel associated with the client, a video segment associated with the client, a time offset related to a video segment associated with the client, or a time of day.
  1. The method of claim 1, further comprising: determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is not at least one of a channel of interest or a video segment of interest, adjusting one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to at least one of (i) transmit fingerprint packages enabling ACR detection sufficiently fast for detecting a channel to which the client is changed within at least one time proximity of the change of channel, (ii) at least one of halt or slow transmission of fingerprint packages until a channel change occurs, (iii) at least one of halt or slow transmission of fingerprint packages until a trigger time for an expected video segment of interest occurs, (iv) at least one of halt or slow transmission of fingerprint packages until a detection of an ad pod occurs, or (v) at least one of halt or slow transmission of fingerprint packages until a detection of a video segment of interest is detected by an ingest system associated with the ACR system.
  1. The method of claim 1, further comprising: receiving at least one additional transmitted fingerprint package at the ACR system in accordance with the adjusted one or more values related to transmitting fingerprints; making a second identification of at least one of a channel or a video segment associated with the client based at least partially on the one or more transmitted fingerprint packages and the at least one additional transmitted fingerprint package; and if the second identification is not associated with the at least one of the identified channel or the identified video segment, further adjusting at least one of the one or more values related to transmitting fingerprints.
  1. The method of claim 1, wherein determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video comprises: at least one of (i) altering at least one sampling rate, (ii) altering at least one pattern of sampling, (iii) altering at least one number of samples associated with creating a fingerprint package, (iv) altering a rate at which fingerprint packages are transmitted, (v) altering an interval between successive fingerprint packages being transmitted, or (vi) altering a number of fingerprints packaged in a fingerprint package if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest.
  1. The method of claim 1, further comprising: signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the adjusted one or more values.
  1. The method of claim 1, wherein signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values comprises: providing, at least partially via the Internet, a signal to a smart television to transmit, at least partially via the Internet, one or more fingerprint packages from the smart television to the ACR system based at least partially on the one or more values.
  1. The method of claim 1, wherein identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages comprises: receiving the one or more fingerprint packages from a smart television, the one or more fingerprint packages transmitted by the smart television at least partially via the Internet; querying a media database using at least some data from at least one of the received one or more fingerprint packages as a search term; receiving one or more candidate channels or video segments from the media database as one or more search results; and identifying the at least one of a channel or a video segment based at least partially on the received one or more candidate channels or video segments.
  1. A method, comprising: receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment; receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment; and determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications.
  1. The method of claim 10, wherein receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment comprises: receiving a first fingerprint package sent by a smart television at least partially via the Internet, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment.
  1. The method of claim 10, wherein receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment comprises: receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match from a media database associated with an Automated Content Recognition (ACR) system based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment.
  1. The method of claim 10, wherein determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications comprises: determining a confidence interval based at least partially on a difference in time between the first timestamp and the second timestamp; and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined confidence interval.
  1. The system of claim 10, wherein circuitry configured for receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment comprises: circuitry configured for receiving a first fingerprint package sent by a smart television at least partially via the Internet, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment.
  1. The system of claim 10, wherein circuitry configured for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment comprises: circuitry configured for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match from a media database associated with an Automated Content Recognition (ACR) system based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment.
  1. The system of claim 10, wherein circuitry configured for determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications comprises: circuitry configured for determining a confidence interval based at least partially on a difference in time between the first timestamp and the second timestamp; and circuitry configured for establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined confidence interval.
  1. A computer program product, comprising: at least one non-transitory computer-readable medium including at least: one or more instructions for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions; one or more instructions for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values; one or more instructions for identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages; and one or more instructions for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video.
  1. The computer program product of claim 17, wherein at least some of the one or more instructions for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprise: one or more instructions for determining the one or more values following at least one of a power-on condition, a change of channels, a fast-forward operation, a rewind operation, a pause operation, or a skip operation associated with the client.
  1. The computer program product of claim 17, wherein at least some of the one or more instructions for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprise: one or more instructions for determining the one or more values based at least in part on a channel associated with the client, a video segment associated with the client, a time offset related to a video segment associated with the client, or a time of day.
  1. The computer program product of claim 17, wherein at least some of the one or more instructions for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values comprise: one or more instructions for providing, at least partially via the Internet, a signal to a smart television to transmit, at least partially via the Internet, one or more fingerprint packages from the smart television to the ACR system based at least partially on the one or more values.
  1. The computer program product of claim 17, wherein at least some of the one or more instructions for identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages comprise: one or more instructions for receiving the one or more fingerprint packages from a smart television, the one or more fingerprint packages transmitted by the smart television at least partially via the Internet; one or more instructions for querying a media database using at least some data from at least one of the received one or more fingerprint packages as a search term; one or more instructions for receiving one or more candidate channels or video segments from the media database as one or more search results; and one or more instructions for identifying the at least one of a channel or a video segment based at least partially on the received one or more candidate channels or video segments.

 

  1. The computer program product of claim 17, wherein at least some of the one or more instructions for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video comprise: one or more instructions for at least one of (i) altering at least one sampling rate, (ii) altering at least one pattern of sampling, (iii) altering at least one number of samples associated with creating a fingerprint package, (iv) altering a rate at which fingerprint packages are transmitted, (v) altering an interval between successive fingerprint packages being transmitted, or (vi) altering a number of fingerprints packaged in a fingerprint package if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest.
  1. The computer program product of claim 17, wherein the at least one non-transitory computer-readable medium further comprises: one or more instructions for receiving at least one additional transmitted fingerprint package at the ACR system in accordance with the adjusted one or more values related to transmitting fingerprints; one or more instructions for making a second identification of at least one of a channel or a video segment associated with the client based at least partially on the one or more transmitted fingerprint packages and the at least one additional transmitted fingerprint package; and one or more instructions for, if the second identification is not associated with the at least one of the identified channel or the identified video segment, further adjusting at least one of the one or more values related to transmitting fingerprints.
  1. The computer program product of claim 17, wherein the at least one non-transitory computer-readable medium further comprises: one or more instructions for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is not at least one of a channel of interest or a video segment of interest, adjusting one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to at least one of (i) transmit fingerprint packages enabling ACR detection sufficiently fast for detecting a channel to which the client is changed within at least one time proximity of the change of channel, (ii) at least one of halt or slow transmission of fingerprint packages until a channel change occurs, (iii) at least one of halt or slow transmission of fingerprint packages until a trigger time for an expected video segment of interest occurs, (iv) at least one of halt or slow transmission of fingerprint packages until a detection of an ad pod occurs, or (v) at least one of halt or slow transmission of fingerprint packages until a detection of a video segment of interest is detected by an ingest system associated with the ACR system.
  1. The computer program product of claim 17, wherein the at least one non-transitory computer-readable medium further comprises: one or more instructions for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the adjusted one or more values.
  1. A system, comprising: circuitry configured for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions; circuitry configured for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values; circuitry configured for identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages; and circuitry configured for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video.
  1. The system of claim 26, wherein circuitry for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprises: one or more instructions for determining the one or more values following at least one of a power-on condition, a change of channels, a fast-forward operation, a rewind operation, a pause operation, or a skip operation associated with the client.
  1. The system of claim 26, wherein circuitry for determining one or more values related to transmitting fingerprints associated with a client to an Automated Content Recognition (ACR) system, the one or more values associated with one or more of at least one sampling rate, at least one pattern of sampling, at least one number of samples associated with creating a fingerprint package, or at least one time interval between fingerprint package transmissions comprises: circuitry for determining the one or more values based at least in part on a channel associated with the client, a video segment associated with the client, a time offset related to a video segment associated with the client, or a time of day.
  1. The system of claim 26, wherein circuitry for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the one or more values comprises: circuitry providing, at least partially via the Internet, a signal to a smart television to transmit, at least partially via the Internet, one or more fingerprint packages from the smart television to the ACR system based at least partially on the one or more values.
  1. The system of claim 26, wherein circuitry for identifying at least one of a channel or a video segment associated with the client based at least partially on one or more transmitted fingerprint packages comprises: circuitry for receiving the one or more fingerprint packages from a smart television, the one or more fingerprint packages transmitted by the smart television at least partially via the Internet; circuitry for querying a media database using at least some data from at least one of the received one or more fingerprint packages as a search term; circuitry for receiving one or more candidate channels or video segments from the media database as one or more search results; and circuitry for identifying the at least one of a channel or a video segment based at least partially on the received one or more candidate channels or video segments.
  1. The system of claim 26, wherein circuitry for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest, adjusting at least one of the one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to transmit fingerprint packages enabling ACR detection sufficiently fast for providing at least some context-sensitive content substantially simultaneously with at least one targeted video comprises: circuitry for at least one of (i) altering at least one sampling rate, (ii) altering at least one pattern of sampling, (iii) altering at least one number of samples associated with creating a fingerprint package, (iv) altering a rate at which fingerprint packages are transmitted, (v) altering an interval between successive fingerprint packages being transmitted, or (vi) altering a number of fingerprints packaged in a fingerprint package if the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest.
  1. The system of claim 26, further comprising: circuitry for receiving at least one additional transmitted fingerprint package at the ACR system in accordance with the adjusted one or more values related to transmitting fingerprints; circuitry for making a second identification of at least one of a channel or a video segment associated with the client based at least partially on the one or more transmitted fingerprint packages and the at least one additional transmitted fingerprint package; and for, if the second identification is not associated with the at least one of the identified channel or the identified video segment, further adjusting at least one of the one or more values related to transmitting fingerprints.
  1. The system of claim 26, further comprising: circuitry for determining whether the at least one of the identified channel or the identified video segment is at least one of a channel of interest or a video segment of interest and, if the at least one of the identified channel or the identified video segment is not at least one of a channel of interest or a video segment of interest, adjusting one or more values related to transmitting fingerprints wherein the adjusted one or more values are operable to at least one of (i) transmit fingerprint packages enabling ACR detection sufficiently fast for detecting a channel to which the client is changed within at least one time proximity of the change of channel, (ii) at least one of halt or slow transmission of fingerprint packages until a channel change occurs, (iii) at least one of halt or slow transmission of fingerprint packages until a trigger time for an expected video segment of interest occurs, (iv) at least one of halt or slow transmission of fingerprint packages until a detection of an ad pod occurs, or (v) at least one of halt or slow transmission of fingerprint packages until a detection of a video segment of interest is detected by an ingest system associated with the ACR system.
  1. The system of claim 26, further comprising: circuitry for signaling to transmit one or more fingerprint packages associated with the client to the ACR system based at least partially on the adjusted one or more values.
  1. A computer program product, comprising: at least one non-transitory computer-readable medium including at least: one or more instructions for receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment; one or more instructions for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment; and one or more instructions for determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications.
  1. The computer program product of claim 35, wherein at least some of the one or more instructions for receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment comprise: one or more instructions for receiving a first fingerprint package sent by a smart television at least partially via the Internet, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment.
  1. The computer program product of claim 35, wherein at least some of the one or more instructions for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment comprise: one or more instructions for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match from a media database associated with an Automated Content Recognition (ACR) system based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment.
  1. The computer program product of claim 35, wherein at least some of the one or more instructions for determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications comprise: one or more instructions for determining a confidence interval based at least partially on a difference in time between the first timestamp and the second timestamp; and one or more instructions for establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined confidence interval.
  1. A system, comprising: circuitry configured for receiving a first fingerprint package, the received first fingerprint package associated with a first timestamp, and retrieving at least one first match based at least partially on the received first fingerprint package, the at least one first match associated with a first video channel or video segment; circuitry configured for receiving a second fingerprint package, the received second fingerprint package associated with a second timestamp, and retrieving at least one second match based at least partially on the received second fingerprint package, the at least one second match associated with a second video channel or video segment; and circuitry configured for determining a difference in time between the first timestamp and the second timestamp and establishing a likelihood that at least one of the first match or the second match correctly identifies a video channel or video segment associated with a client sending the first and second fingerprint packages based at least partially on the determined difference in time, wherein differences in time correlate with different likelihoods of correct identifications.

Comments are closed.