Media Channel Identification with Video Multi-Match Detection and Disambiguation Based on Time of Broadcast
20170251281 ยท 2017-08-31
Inventors
Cpc classification
H04N21/4756
ELECTRICITY
H04N21/84
ELECTRICITY
H04H60/31
ELECTRICITY
H04N21/6582
ELECTRICITY
H04N21/44222
ELECTRICITY
H04H60/56
ELECTRICITY
E04F13/0887
FIXED CONSTRUCTIONS
H04N21/23109
ELECTRICITY
E04F15/02155
FIXED CONSTRUCTIONS
C09J2301/124
CHEMISTRY; METALLURGY
H04N21/435
ELECTRICITY
C09J2301/21
CHEMISTRY; METALLURGY
H04N21/44008
ELECTRICITY
H04N21/44204
ELECTRICITY
H04N21/2353
ELECTRICITY
H04N21/6118
ELECTRICITY
H04N21/23418
ELECTRICITY
H04N21/8352
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/431
ELECTRICITY
C09J2301/314
CHEMISTRY; METALLURGY
International classification
H04N21/442
ELECTRICITY
H04N21/234
ELECTRICITY
H04N21/24
ELECTRICITY
H04N21/258
ELECTRICITY
Abstract
Disclosed herein are methods and systems to help disambiguate channel identification in a scenario where fingerprint data of media content being rendered by a media presentation device matches multiple reference fingerprints corresponding respectively with multiple different channels. Upon detecting such a multi-match, a server or other entity will perform disambiguation based at least in part on a comparison of time of broadcast of the media content being rendered by the media presentation device with time of broadcast of the media content represented by the reference fingerprints. The server or other entity will thereby determine the channel on which the media content being rendered by the media presentation device is arriving, so as to facilitate taking channel-specific action.
Claims
1. A method comprising: determining, by a computing system, that a fingerprint of media content being rendered by a media presentation device matches multiple reference fingerprints each corresponding with a different respective channel; responsive to determining that the fingerprint matches the multiple reference fingerprints each corresponding with a different respective channel, performing disambiguation based at least in part on a time of broadcast of the media content being rendered by the media presentation device, to determine which channel the media presentation device is receiving the media content on; and taking action based on the determined channel.
2. The method of claim 1, wherein the computing system is an entity other than the media presentation device, and wherein the fingerprint is generated by the media presentation device, the method further comprising: receiving by the computing system, from the media presentation device, the fingerprint of media content being rendered by the media presentation device.
3. The method of claim 1, wherein the multiple reference fingerprints are selected from a plurality of reference fingerprints in reference data, and wherein determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints comprises: comparing the fingerprint of media content being rendered by the media presentation device with the plurality of reference fingerprints in the reference data; and based on the comparing, determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints.
4. The method of claim 3, further comprising detecting and flagging a multi-match group comprising the multiple reference fingerprints, wherein determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints comprises determining that the fingerprint matches the reference fingerprints of the flagged multi-match group.
5. The method of claim 1, wherein performing disambiguation based at least in part on the time of broadcast of the media content being rendered by the media presentation device comprises: determining the time of broadcast of the media content being rendered by the media presentation device; and using the determined time of broadcast of the media content being rendered by the media presentation device as a basis to determine which one of the matching reference fingerprints corresponds with the channel on which the media presentation device is receiving the media content.
6. The method of claim 5, wherein determining the time of broadcast of the media content being rendered by the media presentation device comprises receiving implicitly or explicitly from the media presentation device an indication of the time of broadcast of the media content being rendered by the media presentation device.
7. The method of claim 5, wherein determining the time of broadcast of the media content being rendered by the media presentation device comprises deeming a current time to be the time of broadcast of the media content being rendered by the media presentation device.
8. The method of claim 5, wherein each of the matching reference fingerprints has a corresponding time of broadcast, and wherein using the determined time of broadcast of the media content being rendered by the media presentation device as a basis to determine which one of the matching reference fingerprints corresponds with the channel on which the media presentation device is receiving the media content comprises: comparing the determined time of broadcast of the media content being rendered by the media presentation device with each matching reference fingerprint's corresponding time of broadcast, and determining based on the comparing that the time of broadcast of the media content being rendered by the media presentation device matches just the time of broadcast corresponding with the one matching reference fingerprint.
9. The method of claim 5, wherein each of the matching reference fingerprints has a corresponding time of broadcast, and wherein using the determined time of broadcast of the media content being rendered by the media presentation device as a basis to determine which one of the matching reference fingerprints corresponds with the channel on which the media presentation device is receiving the media content comprises: comparing the determined time of broadcast of the media content being rendered by the media presentation device with each matching reference fingerprint's corresponding time of broadcast, and determining based on the comparing that the time of broadcast of the media content being rendered by the media presentation device does not match another one of the matching reference fingerprints.
10. The method of claim 1, wherein taking action based on the determined channel comprises causing supplemental channel-specific content to be presented in conjunction with the media content being rendered by the media presentation device.
11. The method of claim 1, wherein the media content comprises content selected from the group consisting of video content and audio content.
12. The method of claim 1, wherein the media presentation device carries out one or more of the determining, the performing disambiguation, and the taking action.
13. A method comprising: determining by a computing system that a fingerprint of media content being rendered by a media presentation device matches multiple reference fingerprints each corresponding with a different respective channel, wherein each matching reference fingerprint of the multiple reference fingerprints has a corresponding time of broadcast; determining by the computing system which channel the media presentation device is receiving the media content on, wherein determining which channel the media presentation device is receiving the media content on is based at least in part on determining that a time of broadcast of the media content being rendered by the media presentation device matches the corresponding time of broadcast of just one of the matching reference fingerprints, wherein the determined channel is the channel corresponding with the one matching reference fingerprint; and taking action based on the determining of the channel.
14. The method of claim 13, wherein taking action based on the determined channel comprises causing supplemental channel-specific content to be presented in conjunction with the media content being rendered by the media presentation device.
15. The method of claim 13, wherein the media content comprises content selected from the group consisting of video content and audio content.
16. The method of claim 13, carried out at least in part by the media presentation device.
17. A system comprising: a network communication interface; a processing unit; non-transitory data storage; and program instructions stored in the non-transitory data storage and executable by the processing unit to carry out operations including: receiving from a media presentation device, via the network communication interface, a fingerprint of media content being rendered by the media presentation device and an indication of time of broadcast of the media content being rendered by the media presentation device, determining that the received fingerprint matches multiple reference fingerprints each corresponding with a different respective channel, responsive to determining that the received fingerprint matches the multiple reference fingerprints each corresponding with a different respective channel, performing disambiguation based at least in part on the time of broadcast of the media content being rendered by the media presentation device, to determine which channel the media presentation device is receiving the media content on, and taking action based on the determined channel.
19. The system of claim 18, wherein each of the matching reference fingerprints has a corresponding time of broadcast, and wherein performing disambiguation based at least in part on the time of broadcast of the media content being rendered by the media presentation device, to determine which channel the media presentation device is receiving the media content on, comprises: comparing the determined time of broadcast of the media content being rendered by the media presentation device with each matching reference fingerprint's corresponding time of broadcast, and determining based on the comparing that the time of broadcast of the media content being rendered by the media presentation device matches just the time of broadcast corresponding with one of the matching reference fingerprints, and deeming the channel corresponding with the one matching fingerprint to be the determined channel.
20. The system of claim 18, wherein taking action based on the determined channel comprises causing supplemental channel-specific content to be presented in conjunction with the media content being rendered by the media presentation device.
21. The system of claim 18, wherein taking action based on the determined channel comprises recording presentation of the determined channel for use in a channel ratings system.
22. The method of claim 1, wherein taking action based on the determined channel comprises recording presentation of the determined channel for use in a channel ratings system.
23. The method of claim 13, wherein taking action based on the determined channel comprises recording presentation of the determined channel for use in a channel ratings system.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
DETAILED DESCRIPTION
[0024] Referring to the drawings,
[0025] As shown in
[0026] In practice, for instance, the media content sources 12 could be national broadcasters, such as ABC, NBC, CBS, FOX, HBO, and CNN, the media content distributors 14 could be local affiliates and/or other local content distributors in particular designated market areas (DMAs), and the receivers 16 and media presentation devices 18 could then be situated at customer premises, such as homes or business establishments. With this or other arrangements, the content sources 12 could deliver media content to the content distributors 14 for distribution to receivers 16 at customer premises, and the content distributors could distribute the media content to the receivers 16 on discrete channels (e.g., particular frequencies). Each receiver could then respond to user input or one or more other triggers by tuning to a selected channel and outputting to a media presentation device 18 the media content that is arriving on the selected channel. And the media presentation device 18 could receive and render the media content (e.g., display or otherwise present the content).
[0027] In this arrangement, as the media presentation device receives and renders this media content, the media presentation device may have no indication of the channel on which the media content is arriving, i.e., of the channel to which the receiver is tuned. Rather, the media presentation device may be configured simply to receive the media content as a media stream from the receiver and to render the received media content. Per the present disclosure, however, the media presentation device may be in communication with a network server and may work with the network server to facilitate identification of the channel and thus to facilitate taking useful channel-specific action.
[0028]
[0029] As discussed above, the network server 20 or another entity operating in accordance with the present disclosure could establish or have access to reference data 24 for media content that is carried or scheduled to be carried on at least each of various channels accessible to the media presentation device 18. The reference data, which could be stored in a relational database or other form, could include a respective reference fingerprint for each channel, perhaps a reference fingerprint stream of media content that was most recently carried by the channel (e.g., on a sliding window basis covering a most recent period of time). In addition or alternatively, the reference data could include a respective reference fingerprint (e.g., reference fingerprint stream) of each media content program (e.g., television broadcast, radio broadcast, streaming media file, etc.) that is available and/or scheduled to be carried on a particular channel. As such, the reference data could map each reference fingerprint to a channel on which the associated media content (i.e., the content uniquely identified by the reference fingerprint) is or may be carried, and further to a corresponding time of broadcast of the associated media content on that channel.
[0030] In mapping reference fingerprints to channels, the reference data could characterize the channels by various attributes, to help distinguish the channels from each other. For example, where a receiver or other such device provides multiple different channels selectable by channel number, the reference data could characterize the channels by their respective channel numbers. And as another example, where each channel carries a particular content source's content, such as the content of one of a particular broadcaster for instance, the reference data could characterize the channels by their respective content sources' identities.
[0031] Still further, where more than one content distributor (e.g., multichannel distributor) distribute content sources' content, the reference data could characterize the channels by their respective content distributors' identities. In practice, the reference data could correlate each reference fingerprint with one or more of these or other attributes.
[0032] In mapping the reference fingerprints to corresponding times of broadcast on the channels, the reference data could then specify a time (e.g., date and time of day) at which the associated media content is being broadcast on the associated channel or is scheduled to be broadcast on the associated channel. Such a specification could take various forms. By way of example, if a reference fingerprint defines a sequence of fingerprint time segments representing respective time segments of the associated media content, the reference data could provide a timestamp per fingerprint time segment, indicating an actual or scheduled time of broadcast of the associated time segment of the media content. And as another example, if a reference fingerprint represents a media content program, the reference data could provide a timestamp indicating the actual or scheduled time of broadcast (e.g., programming time range, such as half-hour block) of that media content program as a whole. Other examples are possible as well.
[0033] The network server 20 or other entity operating in accordance with the present disclosure could establish some or all of this reference data by analyzing media content arriving on each of the various channels (e.g., at least the media content arriving on each of various channels that are available to a receiver that serves the media presentation device) and/or by receiving program scheduling data from one or more other entities.
[0034] To facilitate establishing reference data by analyzing media content arriving on various channels, as shown in
[0035] In practice, the server could be configured to receive concurrently on multiple such channels (perhaps all of the channels) and to analyze and generate respective fingerprints and timestamps for the channels in parallel, or the server might be configured to hop from channel to channel, possibly repeatedly cycling through the channels, to analyze and generate a respective fingerprint and timestamp for each channel. Further, the server could continue to do this in real-time, saving a respective fingerprint of at least a most recent time window of media content for each channel, for reference. And the server could record each channel's reference fingerprint in the reference data in association with timestamp information and channel characterization information as discussed above. Here, the server would have knowledge of each channel (e.g., channel number), just as a receiver would normally have knowledge of the channel to which the receiver is tuned. Further, the server may have access to guide information or other such data specifying attributes of each such channel (e.g., content source identity, content distributor identity, etc.), so that the server can determine and record channel attributes respectively for each reference fingerprint.
[0036] Further, the server could receive or perhaps establish such reference fingerprints for media content programs that are available or scheduled to be broadcast on particular channels at particular times. For instance, providers or distributors of various media content programs could generate reference fingerprints for the media content programs, again using any media fingerprinting process now known or later developed, and the server could receive those reference fingerprints along with indications of the channels on which the associated media content programs are scheduled to be broadcast and of the scheduled times of broadcast on those channels. The server could thus record each such reference fingerprint in association with scheduled time and channel information of the associated media content program. Alternatively, the server could receive advance copies of the media content programs from the providers or distributors, along with scheduled time and channel information, and the server could itself generate reference fingerprints for each media content program and record each generated reference fingerprint in association with the scheduled time and channel information. Other examples are possible as well.
[0037] Given this or other such reference data, when the server is presented with a fingerprint of media content that was received on an unknown channel, the server could match the fingerprint with one of the stored reference fingerprints, using any fingerprint matching process now known or later developed, and could thereby conclude that the media content at issue arrived on the channel that the reference data maps to the matching reference fingerprint. Thus, if the server is faced with a fingerprint of media content that is being rendered by the media presentation device 18, the server could compare the fingerprint with the reference fingerprints in the reference data. And if the server thereby finds a matching reference fingerprint, then the server could identify the channel that the reference data maps with the matching reference fingerprint and could conclude that that is the channel on which the media presentation device is receiving the media content (i.e., that that is the channel carrying the media content being rendered by the media presentation device). In turn, the server could responsively take a channel-specific action based on the identified channel, or cause or enable one or more other entities to take a channel-specific action based on the identified channel.
[0038] To facilitate this, the media presentation device 18 or another entity could be configured to generate a fingerprint of the media content that is being rendered by the media presentation device and to transmit the fingerprint to server 20 for analysis.
[0039] For instance, as shown in
[0040] In practice, the fingerprint generator could be configured to generate such a fingerprint as a fingerprint stream on an ongoing basis, such as on a per frame basis (e.g., on per key-frame basis) or other basis. And the media presentation device could be configured to transmit the fingerprint via network 22 to server 20 for analysis. By way of example, the media presentation device could be configured to periodically or from time to time transmit to the server a fingerprint representing a latest frame, series of frames or other segment or portion of the media content being rendered by the media presentation device. In particular, the media presentation device could generate a message carrying the latest generated fingerprint and could transmit the message to the server's IP address. Such a message could implicitly or explicitly indicate the current time, thus establishing a time at which the media content at issue is being broadcast and/or being rendered by the media presentation device. And the server may thereby receive the fingerprint and time information for analysis.
[0041] Alternatively, the media presentation device could transmit to the server, and the server could thus receive, various data regarding the media content being rendered by the media presentation device, likewise on an ongoing basis or other basis, to enable the server itself or another entity to generate a fingerprint of the media content being rendered by the media presentation device. For example, the media presentation device could transmit to the server portions of the media content being rendered by the media presentation device, such as individual frames (e.g., snapshots) or other segments of the media content, again implicitly or explicitly indicating the associated time information. And the server could apply any media fingerprinting process now known or later developed to generate a fingerprint of the media content for analysis and could associate the fingerprint with the indicated time information.
[0042] Through the process described above, the server could then compare the fingerprint of the media content being rendered by the media presentation device with the reference fingerprints in the reference data, using any digital fingerprint comparison process now known or later developed. And as noted above, if the server thereby finds a matching reference fingerprint, the server could determine the channel that the reference data maps with the matching reference fingerprint and could conclude that the determined channel is the channel carrying the media content being rendered by the media presentation device.
[0043] In response to thereby determining the channel at issue, the server could then take, or cause to be taken, one or more channel-specific actions based on the determination of the channel. In particular, the server itself could take action based on the channel determination, or the server could signal to another entity, perhaps to the media presentation device, to cause the other entity to take action based on the channel determination.
[0044] For example, the server could record the fact that the media presentation device is presenting content of that particular channel, as part of a channel rating or analytics system to measure the extent to which particular channels are being presented by media presentation devices. For instance, the media presentation device could regularly (e.g., periodically) report to the server a fingerprint of the media content that the media presentation device is rendering, and the server could carry out processes such as those discussed herein to determine the channel being rendered. Each time the server thus determines that a channel is being rendered, the server could add to a count or other statistic of the channel being rendered, as data to indicate the extent to which that channel is being presented. Further, these counts or other statistics could be per media presentation device (as device-specific viewing analytics), indicating the extent to which the media presentation device presents the channel at issue.
[0045] As another example, the server could responsively cause the media presentation device to present supplemental content, such as a pop-up advertisement as discussed above, a commercial break, or a channel identification, among other possibilities, possibly as a replacement for one or more portions of the media content. For instance, given knowledge of the channel at issue, the server could generate or select (e.g., from server data storage) particular supplemental media content associated specifically with the determined channel (and perhaps further based on profile data (e.g., device-specific viewing analytics) associated with the particular media presentation device) and could transmit the supplemental media content to the media presentation device for the media presentation device to present in conjunction with the media content that the media presentation device is receiving from the receiver. The media presentation device could thus receive the supplemental media content from the server and present it in conjunction with the media content that the media presentation device is receiving from the receiver.
[0046] In practice, this process could involve the server receiving in real-time from the media presentation device a fingerprint of the media content being rendered by the media presentation device and the server determining that the received fingerprint matches a reference fingerprint of media content that the server is concurrently receiving (or has scheduled for the same time) on a known channel.
[0047] In some cases, however, there may be a time difference between when the media presentation device renders the media content and timestamps and transmits the fingerprint to the server and when the server receives the media content on the known channel and otherwise has the reference fingerprint timestamped. The server could account for this time difference by comparing the received fingerprint over a sliding window of the reference fingerprint or vice versa. Further, the server could account for this time difference when taking action in response to a determined match between the received fingerprint and the reference fingerprint. For example, if the media presentation device receives the media content sufficiently earlier than the server's timestamp for the content (e.g., more than a few seconds earlier), the server could still identify a fingerprint match and could record analytics data. But in response to detecting that time difference, the server might forgo having the media presentation device present associated supplemental content, to help avoid a situation where the media presentation device presents the supplemental content too late (e.g., out of sync) from a user's perspective. On the other hand, if the server detects a fingerprint match for a sufficient period of time and/or determines that the matching content will continue, the server may have the media presentation device present supplemental content even when faced with such a time difference.
[0048] In any event, through these or other such processes, a network server or other entity can determine the channel on which the media presentation device is receiving the media content at issue. And once the entity determines the channel, the entity may then take action based on the channel determination. Alternatively, the entity could signal to another entity, perhaps back to the media presentation device, to cause the other entity to take action based on the channel determination. Other examples are possible as well.
[0049] In line with the discussion above, the server 20 or other entity that has access to reference data as noted above could be configured to identify multi-match scenarios, perhaps by detecting among the reference data various reference fingerprints that match each other and that match a fingerprint of media content being rendered by the media presentation device.
[0050] In one implementation, for instance, the server could regularly analyze the reference data in search of multi-match scenarios, comparing pairs of reference fingerprints in the reference data using any now known or later developed media fingerprint matching process, in an effort to find reference fingerprints that match each other. Upon finding each such match of at least two of the reference fingerprints, the server could then flag the reference fingerprints as being a multi-match group. Such a flag could indicate that there will be a potential ambiguity if the fingerprint of media content being rendered by the media presentation device matches any of the reference fingerprints in the flagged multi-match group. The server could flag the reference fingerprints as being a multi-match group in various ways. For instance, the server could cross-reference the reference fingerprints of the multi-match group in the reference data, to indicate that they are members of a multi-match group. Alternatively, the server could store a single copy of the reference fingerprint and associate that copy with various channels on which the media content represented by the reference fingerprint is carried, indicating for each channel the associated time of broadcast on that channel, as well as other information.
[0051] With this implementation, when the server receives from a media presentation device a fingerprint of media content being rendered by the media presentation device and the server determines that the received fingerprint matches a reference fingerprint, the server could then readily determine from the reference data whether a multi-match situation exists. If the matching reference fingerprint is not flagged as being a member of a multi-match group, then the server could conclude that a single-match situation (rather than a multi-match situation) exists, in which case, as discussed above, the server could then readily determine from the reference data the channel associated with the matching reference fingerprint and could conclude that that is the channel carrying the media content being rendered by the media presentation device. Whereas, if the matching reference fingerprint is flagged as being a member of a multi-match group, then the server could conclude that a multi-match situation (rather than a single-match situation) exists, in which case the server may need to perform a disambiguation process to help identify the channel at issue from among those associated with the reference fingerprints of the multi-match group.
[0052] Alternatively, in another implementation, the server could identify a multi-match group at the time the server receives a fingerprint from the media presentation device. For instance, when (e.g., as) the server receives the fingerprint from the media presentation device, the server could compare the received fingerprint with all of the reference fingerprints in the reference data. If the server thereby detects that the received fingerprint matches only one of the reference fingerprints, then the server could conclude that a single-match situation (rather than a multi-match situation) exists, in which case the server could then readily determine from the reference data the channel associated with the matching reference fingerprint and could conclude that that is the channel carrying the media content being rendered by the media presentation device. Whereas, if the server detects that the received fingerprint matches two or more of the reference fingerprints, then the server could conclude that a multi-match situation (rather than a single-match situation) exists, in which case the server may need to perform a disambiguation process to help identify the channel at issue from among those associated with the reference fingerprints of the multi-match group.
[0053] As noted above, when the server or other entity carrying out this analysis detects that the fingerprint of the media content being rendered by the media presentation device matches multiple reference fingerprints corresponding with multiple channels, the entity could apply a disambiguation process to help determine which of the channels associated with the multi-match group is the actual channel carrying the media content being rendered by the media presentation device.
[0054] Further, in accordance with the present disclosure, a useful example of such context information is time of broadcast of the media content being rendered by the media presentation device. In particular, it may be the case that the same media content is broadcast on multiple channels at a different time on each channel, such as on a different date and/or in a different programming time segment (e.g., a different half hour or hour block of programming time) per channel. In that case, each of two or more reference fingerprints in a multi-match group could have a respective time of broadcast (the associated time at which the media content represented by the reference fingerprint is broadcast or is scheduled to be broadcast on the associated channel), and knowledge of the time of broadcast of the media content being rendered by the media presentation device could then be used as a basis (alone or in combination with one or more other factors) to disambiguate between the two or more matching reference fingerprints.
[0055] To facilitate this in practice, when the media presentation device transmits to the server a fingerprint of the media content being rendered by the media presentation device (or transmits to the server the media content or associated data to enable the server to generate such a fingerprint), the media presentation device could implicitly or explicitly also provide the server with an indication of the time of broadcast of the media content being rendered by the media presentation device. Here, the time of broadcast could be defined as the time at which the media presentation device receives and renders the media content for presentation and may thus be a current time in a scenario where the media presentation device interacts with the server in substantially real time to facilitate channel identification. (This should work best in a scenario where the receiver or other source providing the media content to the media presentation device for playout has not time-shifted the media content.) And as noted above, the time at issue could be a date and a time of day, perhaps a range of time.
[0056] The media presentation device can implicitly communicate this indication of time to the server by merely transmitting the fingerprint (or associated data) to the server at the time, with the server treating the current time (e.g., time of receipt of the fingerprint from the media presentation device) as representing the time broadcast of the media content being rendered by the media presentation device. Alternatively, the media presentation device can explicitly communicate this indication of time to the server by generating and including a timestamp or the like in its transmission to the server, perhaps as header metadata accompanying the fingerprint data.
[0057] Given knowledge of the time of broadcast of the media content being rendered by the media presentation device, the server could use that time of broadcast as a basis to resolve the multi-match scenario. In particular, the server could compare the time of broadcast of the media content being rendered by the media presentation device with the times of broadcast that the reference data indicates respectively for the members of the multi-match group, in an effort to find a multi-match group member that has a matching time of broadcast, or perhaps to at least eliminate from consideration a multi-match group member that does not have a matching time of broadcast.
[0058] The server could compare the time of broadcast of the media content being rendered by the media presentation device with the time of broadcast associated with a reference fingerprint in various ways. For example, the server could determine whether the times of broadcast are threshold or substantially close to each other, such as within 5, 10 or 15 minutes of each other or within another defined tolerance that could reasonably support a conclusion that the broadcasts match, even though they may be somewhat time shifted in relation to each other. And as another example, where one of the times of broadcast is a range of time, the server could determine whether the other time of broadcast falls within that range as an indication that the times of broadcast match. Other examples are possible as well.
[0059] Through this analysis, the server may determine that the time of broadcast of the media content being rendered by the media presentation device matches the time of broadcast associated with just one of the reference fingerprints of the multi-match group, thereby establishing that the channel associated with that one reference fingerprint is the channel on which the media content being rendered by the media presentation device is arriving. Alternatively, the server may at least determine that the time of broadcast of the media content being rendered by the media presentation device does not match the time of broadcast associated with one or more of the reference fingerprints of the multi-match group, thereby at least eliminating each such reference fingerprint from consideration.
[0060] By way of example, consider a scenario where the media content that is being rendered by the media presentation device had been scheduled for broadcast on three channels, A, B, and C, at separate times T.sub.A, T.sub.B, and T.sub.C, respectively, and where the reference data thus includes three matching reference fingerprints FP.sub.A, FP.sub.B, and FP.sub.C, based on those broadcasts having been scheduled on those channels at those times. In particular, the reference data may associate reference fingerprint FP.sub.A with channel A for the broadcast scheduled at time T.sub.A, the reference data may associate reference fingerprint FP.sub.B with channel B for the broadcast scheduled at time T.sub.B, and the reference data may associate reference fingerprint FP.sub.S with channel C for the broadcast scheduled at time T.sub.C.
[0061] In this example, the server may receive from the media presentation device a fingerprint of the media content at time T.sub.A (e.g., the current time), and the server could detect a multi-match situation by determining that the fingerprint of the media content being rendered by the media presentation device matches reference fingerprints FP.sub.A, FP.sub.B, and FP.sub.C corresponding respectively with different channels. Further, the server could resolve that multi-match situation by determining that the time of broadcast of the media content being rendered by the media presentation device, namely, time T.sub.A, matches the time of broadcast associated with just reference fingerprint FP.sub.A. Given this, the server could reasonably conclude that the channel associated with reference fingerprint FP.sub.A, namely, channel A, is the channel on which the media content being rendered by the media presentation device is arriving, to facilitate taking channel-specific action accordingly.
[0062] As another example, consider a scenario where the media content that is being rendered by the media presentation device at time T.sub.A is currently being broadcast on channels A and B and had also been scheduled for broadcast on channel C at a different time T.sub.B. In this scenario, the reference data may again include three matching reference fingerprints FP.sub.A, FP.sub.B, and FP.sub.C, with (i) reference fingerprints FP.sub.A and FP.sub.B being based on the server's evaluation of the media content currently arriving on known channels A and B, and each having associated broadcast time T.sub.A, and (ii) reference fingerprint FP.sub.C being based on the scheduling of the broadcast on channel C at time T.sub.B.
[0063] In this example, the server may receive from the media presentation device a fingerprint of the media content at time T.sub.A (e.g., the current time), and the server could similarly detect a multi-match situation by determining that the fingerprint of the media content being rendered by the media presentation device matches reference fingerprints FP.sub.A, FP.sub.B, and FP.sub.C corresponding respectively with different channels. Further, the server could determine that the time of broadcast of the media content being rendered by the media presentation device does not match the time of broadcast of reference fingerprint FP.sub.C, and so the server could reasonably conclude that the channel associated with reference fingerprint FP.sub.C is not the channel on which the media content being rendered by the media presentation device is arriving. Through this process, the server could thus advantageously focus its analysis on reference fingerprints FP.sub.A and FP.sub.C, having eliminated consideration of reference fingerprint FP.sub.C. And the server could work to disambiguate as between reference fingerprints FP.sub.A and FP.sub.C, based on one or more additional factors, such as location of the media presentation device and/or fingerprint analysis of channel-specific content or the like. Other examples are possible as well.
[0064] Note that while the discussion herein focuses primarily on server 20 identifying a multi-match situation and then disambiguating based on consideration of context, some or all of the operations described could alternatively be carried out by one or more other entities, in place of or in cooperation with the server.
[0065] For instance, one or more of the operations could be carried out by the media presentation device itself or by an adjunct system in local communication with the media presentation device. By way of example, the media presentation device itself could be provisioned with or have access to reference data like that described above, and the media presentation device could itself refer to the reference data to identify a multi-match situation, to disambiguate, and to identify the channel that provides the media content being rendered by the media presentation device. Further, for efficiency, the media presentation device could be provided with a set of reference data specifically for the group of channels that match a query fingerprint (e.g., in response to the server detecting a multi-match situation involving those channels), and the media presentation device could then perform disambiguation itself by making comparisons between such reference data and subsequently derived query fingerprints. Still further, the media presentation device could then itself take channel-specific action, such as presenting channel-specific content, recording channel presentation, or the like, or could cause one or more other entities to take such action.
[0066]
[0067] As shown in
[0068] In line with the discussion above, the computing system could be an entity other than the media presentation device, and the fingerprint of the media content being rendered by the media presentation device could be generated by the media presentation device. The method could then involve the computing system receiving from the media presentation device the fingerprint of media content being rendered by the media presentation device.
[0069] Further, as discussed above, the multiple reference fingerprints could be selected from a plurality of reference fingerprints in reference data, in which case determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints could involve (i) comparing the fingerprint of media content being rendered by the media presentation device with the plurality of reference fingerprints in the reference data and (ii) based on the comparing, determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints.
[0070] Still further, as discussed above, the method could involve detecting and flagging a multi-match group including the multiple reference fingerprints, in which case determining that the fingerprint of media content being rendered by the media presentation device matches the multiple reference fingerprints could involve determining that the fingerprint matches the reference fingerprints of the flagged multi-match group.
[0071] Additionally in line with the discussion above, the act of performing disambiguation based at least in part on the time of broadcast of the media content being rendered by the media presentation device could involve (i) determining the time of broadcast of the media content being rendered by the media presentation device and (ii) using the determined time of broadcast of the media content being rendered by the media presentation device as a basis to determine which one of the matching reference fingerprints corresponds with the channel on which the media presentation device is receiving the media content.
[0072] Further, as discussed above, the act of determining the time of broadcast of the media content being rendered by the media presentation device could involve receiving implicitly or explicitly from the media presentation device an indication of the time of broadcast of the media content being rendered by the media presentation device and/or deeming the current time (e.g., a time of receipt of the fingerprint from media presentation device) to be the time of broadcast of the media content being rendered by the media presentation device.
[0073] In addition as discussed above, each of the matching reference fingerprints could have a corresponding time of broadcast. And the act of using the determined time of broadcast of the media content being rendered by the media presentation device as a basis to determine which one of the matching reference fingerprints corresponds with the channel on which the media presentation device is receiving the media content could involve (i) comparing the determined time of broadcast of the media content being rendered by the media presentation device with each matching reference fingerprint's corresponding time of broadcast and (ii) determining based on the comparing that the time of broadcast of the media content being rendered by the media presentation device matches just the time of broadcast corresponding with the one matching reference fingerprint and/or determining based on the comparing that the time of broadcast of the media content being rendered by the media presentation device does not match another one of the matching reference fingerprints (so as to help focus the analysis).
[0074] Further, in line with the discussion above, the act of taking action based on the determined channel comprises an action selected from the group consisting of (i) causing supplemental channel-specific content to be presented in conjunction with the media content being rendered by the media presentation device and (ii) recording presentation of the determined channel for use in a channel ratings system.
[0075]
[0076] As shown in
[0077]
[0078] Network communication interface 50 could comprise one or more physical network connection mechanisms to facilitate communication on a network such as network 22 discussed above, and/or for engaging in direct or networked communication with one or more other local or remote entities. As such, the network communication interface could comprise a wireless or wired Ethernet interface or other type of network interface, for engaging in IP communication and/or other type of network communication.
[0079] Processing unit 52 could then comprise one or more general purpose processors (e.g., microprocessors) and/or one or more specialized processors (e.g., application specific integrated circuits). And non-transitory data storage 54 could comprise one or more volatile and/or non-volatile storage components, such as optical, magnetic, or flash storage.
[0080] As shown, data storage 54 then stores program instructions 58, which could be executable by processing unit 52 to carry out various operations described herein. For example, the program instructions could be executable to (i) receive from a media presentation device, via the network communication interface, a fingerprint of media content being rendered by the media presentation device and an indication of time of broadcast of the media content being rendered by the media presentation device, (ii) determine that the received fingerprint matches multiple reference fingerprints each corresponding with a different respective channel, (iii) responsive to determining that the received fingerprint matches the multiple reference fingerprints each corresponding with a different respective channel, perform disambiguation based at least in part on the time of broadcast of the media content being rendered by the media presentation device, to determine which channel the media presentation device is receiving the media content on, and (iv) take action based on the determined channel. Various features described above could be applied in this context as well.
[0081] Finally,
[0082] As shown in
[0083] Media input interface 60 could comprise a physical communication interface for receiving media content to be presented by the media presentation device. As such, the media input interface could include one or more wired and/or wireless interfaces for establishing communication with and receiving media content in analog or digital form from a receiver or other device or system. For example, the media input interface could include one or more interfaces compliant with protocols such as DVI, HDMI, VGA, USB, BLUETOOTH, WIFI, among numerous others.
[0084] Media presentation interface 62 could then comprise one or more components to facilitate presentation of the received media content. By way of example, the media presentation interface could comprise a user interface such as a display screen and/or a loudspeaker, as well as one or more drivers or other components for processing the received media content to facilitate presentation of the content on the user interface.
[0085] Network communication interface 64 could comprise a physical network connection mechanism to facilitate communication on a network such as network 22 discussed above, and/or for engaging in direct or networked communication with one or more other local or remote entities. As such, the network communication interface could comprise a wireless or wired Ethernet interface or other type of network interface, for engaging in IP communication and/or other type of network communication.
[0086] Processing unit 66 could then comprise one or more general purpose processors (e.g., microprocessors) and/or one or more specialized processors (e.g., application specific integrated circuits). And non-transitory data storage 68 could comprise one or more volatile and/or non-volatile storage components, such as optical, magnetic, or flash storage. Further, as shown, data storage 68 stores program instructions 72, which could be executable by processing unit 66 to carry out various operations described here. For example, the program instructions could be executable to generate on an ongoing basis a fingerprint of media content being rendered by the media presentation device, based on analysis of the media content being received at the media input interface 60 and/or being processed at the media presentation interface, and to provide the generated fingerprint on an ongoing basis to facilitate channel identification as described herein.
[0087] Exemplary embodiments have been described above. Those skilled in the art will understand, however, that changes and modifications may be made to these embodiments without departing from the true scope and spirit of the invention.