Patent Description:
The metering of media content (e.g., television programs, radio programs, audio information, video information, etc.) is typically performed by collecting consumption records (e.g., viewing records) or other consumption information from a group of statistically selected households. These viewing records are typically generated by identifying the media content displayed in these households.

Some techniques for identifying displayed media content are based on the use of audio and/or video signatures. In general, signature-based media content identification techniques use one or more characteristics of presented (but not yet identified) media content to generate a substantially unique signature (e.g., a series of digital values, a waveform, etc.) for that content. The signature information for the content being presented or rendered is then typically compared to signature information generated for known media content. When a substantial match is found, the media content can, with a relatively high probability, be identified as the known media content having substantially matching signature information.

<CIT><CIT>) discloses a method of identifying audio/video content of television program, and involves identifying features of media signals derived from audio/video content, and generating signature based on time intervals of signal features, to identify content.

Although the use of signatures to identify consumed media content is growing, known computationally efficient signature-based program identification techniques are not sufficiently reliable because these known techniques typically ignore important distinguishing characteristics of the media signal. As a result, such known techniques may limit or prevent the identification of media content and/or may result in an incorrect identification of that content.

A method, an apparatus and a computer readable storage medium for identifying media content using temporal signal characteristics are described herein, according to the appended claims.

Some example methods further include smoothing the plurality of sums. In some examples, the method further includes determining whether the media signal corresponds to the reference signal comprises performing a correlation of the second signature and the reference signature. Some example methods also include generating each of the normalized curve features by generating a peak having a height, a width, and a center location. The heights of the plurality of normalized curve features in some examples are equal and the widths of the plurality of normalized curve features are equal, while in some examples the height of the second signature is substantially zero at temporal locations other than locations corresponding to the normalized curve features. In some example methods, determining whether the media signal corresponds to the reference signal includes determining whether an index value is greater than a predetermined threshold.

In some examples, the media content is associated with at least one of a broadcast program or a local media source, and in some examples the media content includes at least one of audio content or video content. In some example methods, generating the reference signature includes generating a second plurality of sums based on peaks in the reference signal, identifying a second one or more signal peaks based on the generated sums, and generating the reference signature based on a second plurality of normalized curve features, wherein each of the second plurality of normalized curve features corresponds to one of the second signal peaks at a temporal location of the signal peak.

Some example methods to monitor exposure to media content, include monitoring an exposure site to collect a media signal, generating a plurality of sums based on peaks in the media signal, identifying one or more signal peaks based on the generated sums, generating a signature based on a plurality of normalized curve features, wherein each of the second normalized curve features corresponds to one of the signal peaks at a temporal location of the signal peak, and identifying the media signal based on a comparison of the signature and one or more reference signatures representative of known media content.

In some examples, the method further includes smoothing the plurality of sums. Some example methods further include generating one or more reference signatures representative of the known media content, where the generating includes generating a second plurality of sums based on peaks in a known media content signal, identifying second one or more signal peaks based on the second generated sums, and generating the reference signature based on a second plurality of normalized curve features, wherein each of the second normalized curve features corresponds to one of the second signal peaks at a temporal location of the signal peak. Some example methods further include identifying a second media signal based on a comparison of a third signature and one or more reference signatures representative of known media content. In some examples, identifying the first and second media signals includes comparing first and second index values with a first predetermined threshold, and some examples further include identifying a third media signal, wherein exposure to the third media signal occurs between exposure to the first media signal and second media signal, and wherein identifying the third media signal comprises comparing a third index value with a second predetermined threshold lower than the first predetermined threshold.

In some example apparatus, the processor is further programmed to smooth the plurality of sums. In some examples, determining whether the media signal corresponds to the reference signal includes performing a correlation of the second signature and the reference signature. In some example apparatus, the processor is further programmed to generate each of the normalized curve features by generating a peak having a height, a width, and a center location. In some additional examples, the heights of the plurality of normalized curve features are equal and the widths of the plurality of normalized curve features are equal. In some examples, the height of the second signature is substantially zero at temporal locations other than locations corresponding to the normalized curve features.

In some example apparatus, determining whether the media signal corresponds to the reference signal includes determining whether an index value is greater than a predetermined threshold. In some examples, the media content is associated with at least one of a broadcast program or a local media source. In some examples generating the reference signature includes generating a second plurality of sums based on peaks in the media signal, identifying second one or more signal peaks based on the second generated sums, generating the reference signature based on a second plurality of normalized curve features, wherein each of the second normalized curve features corresponds to a signal peak at a temporal location of the signal peak.

Some example machine readable storage medium comprises instructions which further cause the machine to smooth the plurality of sums. In some examples, determining whether the media signal corresponds to the reference signal includes performing a correlation of the second signature and the reference signature. Some example instructions further cause the machine to generate the normalized curve feature by generating a peak having a height, a width, and a center location. In some examples, the heights of the plurality of normalized curve features are equal and the widths of the plurality of normalized curve features are equal, while in some examples the height of the second signature is substantially zero at temporal locations other than locations corresponding to normalized curve features.

For some example machine readable media, determining whether the media signal corresponds to the reference signal includes determining whether an index value is greater than a predetermined threshold. In some examples, the media content is associated with at least one of a broadcast program or a local media source. In some described examples, generating the reference signature includes generating a second plurality of sums based on peaks in the reference signal, identifying second one or more signal peaks based on the second generated sums, and generating the reference signature based on a second plurality of normalized curve features, wherein each of the second normalized curve features corresponds to a signal peak at a temporal location of the signal peak.

For purposes of clarity, the following discussion describes systems, methods, apparatus, and articles of manufacture for identifying media content using temporal characteristics of an audio signal. However, the systems, methods, apparatus, and articles of manufacture described herein may use temporal characteristics of any signal associated with the media content. For example, temporal characteristics of a video signal and/or a digital signal may be used instead of the example audio signal described herein.

Some example systems, methods, apparatus, and articles of manufacture described herein may be used to generate a signature from a media content signal by identifying the peaks and zero crossings of the media content signal and generating sums of the peaks. The sums may then be smoothed to form a curve, and the amplitudes or magnitudes and temporal locations of peaks in the curve may be identified to generate normalized curve features with equal height at the locations of the peaks. The height of the example signatures is set to zero at locations other than the locations of the peaks. The generated signatures may then be correlated with or compared to reference signatures to generate an index. If a correlation or comparison yields an index higher than a threshold, it may be determined that the media content signal is the same as the media content represented by the reference signature.

<FIG> is a block diagram of an example system <NUM> within which the media content identification apparatus and methods described herein may be implemented. The example system <NUM> shown in <FIG> includes a content delivery/distribution system <NUM> that receives video and/or audio content from a plurality of media content providers <NUM> and <NUM>. The content delivery/distribution system <NUM> may be any form of audio and/or video content delivery/distribution system. For example, the content delivery/distribution system <NUM> may include a radio broadcast station, a television broadcast station, a point-to-point network, a multipoint network, etc. The media content providers <NUM> and <NUM> may provide media content such as television programs, advertisements, audio (e.g., radio) programs, still image information (e.g., web pages), etc. in known manners to the content delivery/distribution system <NUM>. The content delivery/distribution system <NUM> may transmit one or more media signals containing digital and/or analog media content information to a reference site <NUM> and at least one monitored site <NUM> via respective communication paths or links <NUM> and <NUM>.

The communication paths or links <NUM> and <NUM> may include any combination of hardwired or wireless links such as, for example, satellite links, wireless land-based links, cable links, the Internet, etc. The signals conveyed via the links <NUM> and <NUM> may contain multi-program analog signals and/or digital data streams, which are commonly employed with existing broadcast systems as well as other types of media content delivery/distribution systems.

As shown in <FIG>, the reference site <NUM> may include a plurality of receivers (e.g., set-top boxes or the like) <NUM>, <NUM> and <NUM> that simultaneously demodulate, demultiplex and/or decode audio, video and/or other information received via the communication link <NUM> from the content delivery/distribution system <NUM>. In one example, each of the receivers <NUM>, <NUM> and <NUM> receives audio information associated with a different portion of the media content (e.g., a different program) that is currently being transmitted (e.g., broadcast) and provides the audio information to a reference site processor <NUM>. For example, the receiver <NUM> may provide audio information associated with a first program while the receivers <NUM> and <NUM> provide audio information associated with respective second and third programs. In any case, the reference site processor <NUM> is configured to control and/or has information indicating to which portion of the media content (e.g., which channel, program, etc.) conveyed via the link <NUM> each of the receivers <NUM>, <NUM> and <NUM> is currently tuned.

In general, the reference site processor <NUM> includes the apparatus and methods described herein for collecting or generating reference signature information for a plurality of simultaneously broadcast programs. The reference site processor <NUM> sends the generated or collected reference signature information to a central processing facility <NUM> via a communication link <NUM>. In turn, the central processing facility <NUM> may store the reference signature information in a database <NUM> and, as described in greater detail below, may process the reference signature information together with information received from the reference site processor <NUM> to generate information related to the consumption of media content.

The monitored site <NUM> could be, for example, a statistically selected home, business, etc. containing a television, a radio, a computer, etc. However, it should be recognized that, while the monitored site <NUM> is depicted in <FIG> as receiving media content from a remotely situated content delivery/distribution system <NUM> (e.g., a broadcast station) via the communication link <NUM>, the monitored site <NUM> may alternatively or additionally receive media content from one or more local media content delivery systems or devices <NUM>. The local sources <NUM> may include one or more DVRs, DVD players, VCRs, etc. In addition, while the example system <NUM> shown in <FIG> depicts a single monitored site (i.e., the monitored site <NUM>), multiple monitored sites may receive media content via the link <NUM> and may be communicatively coupled to the central processing facility <NUM>.

<FIG> is a block diagram of an example system <NUM> that may be used to implement the monitored site <NUM> of <FIG>. As shown in <FIG>, the example system <NUM> includes a media delivery, presentation or output device <NUM> such as, for example, a television or a video monitor that receives a media content signal <NUM>, which may be derived directly or indirectly via the communication link <NUM> of <FIG>. For example, the media content signal <NUM> may be provided by a low noise block coupled to a satellite receiving dish in the case where the link <NUM> is a satellite communication link. A receiver, decoder or set-top box <NUM> may be serially interposed between the media content signal <NUM> received via the link <NUM> and the output device <NUM>. For example, in the case where the media content signal <NUM> received via the link <NUM> is a digital satellite or cable television transmission, the set-top box <NUM> demodulates the broadcast signal, demodulates multi-program data streams and selectively parses video and/or audio data packets associated with a desired channel and/or program. The selected data packets are processed to form an output signal <NUM> that can be processed and output (e.g., played, displayed, or otherwise presented) by the output device <NUM>. For example, in the case where the output device <NUM> is a television, the output signal <NUM> may be a composite video signal, a component video signal, an S-video signal, a red, green, blue (RGB) signal, a digital visual interface (DVI) signal, a high definition multimedia interface (HDMI) signal, or any other displayable or renderable video signal applied to the appropriate input(s) of the output device <NUM>. In the case where the media content signal <NUM> received via the link <NUM> is a conventional analog television transmission or signal, the set-top box <NUM> may not be required and the media content signal <NUM> may be directly coupled to the output device <NUM> (e.g., directly coupled to UHF/VHF inputs). In addition to signal processing functions, the set-top box <NUM> may also perform access control functions such as, for example, determining the media content to which a user of the example system <NUM> is permitted access to based on subscription status or subscription information associated with the example system <NUM>, generating displayable program guide information, etc..

The example system <NUM> also includes an audio signature processor <NUM> that may be configured to perform audio signature collection or generation, comparison and/or signature match detection functions to identify the media content (e.g., what channel, program, etc.) presented or delivered by the output device <NUM>. More specifically, the audio signature processor <NUM> receives the media content signal <NUM> and an audio output signal <NUM>, which may be provided directly by the output device <NUM>. The audio output signal <NUM> contains audio information associated with the media content currently consumed via or presented by the output device <NUM>. For example, in the case where the media content signal <NUM> received via the link <NUM> is delivered via a broadcast signal, the audio information provided by the audio output signal <NUM> may be associated with a television channel or program to which the example system <NUM> is currently tuned. Alternatively, the audio signature processor <NUM> may be coupled to an acoustic transducer <NUM> such as, for example, a microphone that is proximate to an acoustic output device (e.g., a speaker) associated with the output device <NUM>. In that case, the acoustic transducer <NUM> supplies an audio output signal <NUM> containing information associated with the media content currently presented by the output device <NUM> instead of, or in addition to, the audio output signal <NUM>.

As described in greater detail below, the audio signature processor <NUM> generates media content signature information, and may also collect or generate reference signature information from the media content signal <NUM> received via the link <NUM>. In some examples, the audio signature processor <NUM> sequentially generates reference signatures for programs, channels or, more generally, media content extracted or otherwise derived from the media content signal <NUM> and compares the reference signatures to the signature information associated with the media content currently being consumed via the output device <NUM>. If the comparison of reference signature information to the signature information associated with the media content currently being consumed yields at least a substantial match, the audio signature processor <NUM> may identify the media content currently being consumed as the media content (e.g., the channel or program) associated with the reference signature information to which the currently viewed media content signature information is substantially matched.

The audio signature processor <NUM> is coupled to a site unit <NUM> via a communication link or connection <NUM>. The audio signature processor <NUM> periodically or continuously sends consumption information (e.g., media content, channel and/or program information) associated with media content presented by or consumed via the output device <NUM> to the site unit <NUM>. In turn, the site unit <NUM> processes the consumption information it receives from the audio signature processor <NUM> and sends, for example, consumption records or information to a central facility such as, for example, the central processing facility <NUM> of <FIG>, via a communication link <NUM>. The communication link <NUM> may include one or more wireless communication links (e.g., cellular, satellite, etc.), hardwired communication links (e.g., phone lines), or any other combination of communication hardware and technology platforms that employ any desired combination of communication protocols.

While <FIG> depicts the audio signature processor <NUM> as being located at a monitored site, some or all of the functions of the audio signature processor <NUM> can be distributed among a plurality of physical locations. For instance, as discussed in greater detail in connection with the example system shown in <FIG> below, the reference signature generation function, the signature comparison function and/or the signature match detection function may be performed by different physical systems, some or all of which may be located in different physical locations.

<FIG> is a flow diagram illustrating an example method <NUM> to generate and collect signatures. The example method <NUM> may be executed by the example monitored site <NUM> of <FIG> to generate and collect signatures. Initially, the audio signature processor <NUM> of <FIG> obtains (e.g., generates, collects, etc.) signatures or signature information from a plurality of signals (e.g., the audio output signals <NUM> and/or <NUM>, and the media content signal <NUM>) (block <NUM>). As described in greater detail in connection with <FIG> below, the signatures output by the audio signature processor <NUM> are sent to the site unit <NUM> of <FIG> via the communication link or connection <NUM> of <FIG>. The site unit <NUM> adds the signatures, received from the audio signature processor <NUM>, to a collection of signatures (block <NUM>). Such a collection of signatures may be implemented using a database file, a text file, a serialized data structure, or one (or any combination) of many well-known data storage mechanisms or techniques. The signatures stored in the collection may be time stamped and stored along with other consumption information such as, for example, channel numbers, program identification information, etc..

If the site unit <NUM> determines that all the required signatures have not been collected (block <NUM>), the site unit <NUM> returns control to the audio signature processor <NUM> and waits for the additional signatures to be obtained (block <NUM>). On the other hand, if the site unit <NUM> determines that all required signatures have been collected (block <NUM>), the site unit <NUM> sends the collection of signatures to the central processing facility <NUM> of <FIG> via the link <NUM> of <FIG> (block <NUM>). The site unit <NUM> may determine at block <NUM> whether all signatures have been collected by using a time limit, such as a number of minutes, hours, days, weeks, months, etc, to delimit when all signatures that have been collected are ready to be sent to the central processing facility <NUM>. After sending the collection of signatures at block <NUM>, the site unit <NUM> may return control to block <NUM> and continue to obtain additional signatures.

While <FIG> depicts an example manner by which signatures are collected or generated for a period of time and then sent in groups to the central processing facility <NUM>, other manners of conveying signature information to the central processing facility <NUM> may be used instead. For example, signatures may be collected and conveyed to the central processing facility <NUM> on a continuous basis (e.g., on a streaming basis) rather than in groups sent on a periodic basis. However, any other suitable manner of conveying signatures may be used instead. Additionally, as noted above in connection with <FIG>, the central facility <NUM> may perform statistical analyses using the collected signatures to derive media content consumption behavior information, or any other desired information, therefrom.

<FIG> is a more detailed block diagram that illustrates an example manner in which the audio signature processor <NUM> shown in <FIG> may be implemented. The example audio signature processor <NUM> of <FIG> includes a media content selector <NUM> (e.g., a scanning tuner) that receives the media content signal <NUM> (e.g., the reference signal), which may contain a plurality of channels and audio and/or video programs available for consumption (e.g., viewing, listening, etc.), and selects a portion of the media content contained therein (e.g., a channel, program, etc.) for further processing. In particular, in the case where the media content signal <NUM> is a multi-program analog signal, the media content selector <NUM> may vary a demodulator mixing frequency to selectively tune to particular channels and programs. On the other hand, if the media content signal <NUM> is a multi-program digital data stream, the media content selector <NUM> may include digital receiver functions that demodulate, demultiplex and selectively parse the data stream to extract audio and/or video data packets associated with particular channels or programs. In either case, the techniques for processing such multi-program analog signals and digital signals are well known and, thus, are not described in greater detail herein.

In general, the media content selection process performed by the media content selector <NUM> results in the sequential generation of signature information for a plurality of channels and/or media programs. Also, generally, the media content selection process (as described in greater detail below in connection with <FIG>) continues until the audio signature processor <NUM> determines that a substantial match has been identified (i.e., that the media content currently being consumed via the output device <NUM> of <FIG> can be identified with a relatively high degree of certainty), or until the audio signature processor <NUM> determines that a substantial match cannot be identified (e.g., all available media content has been selected, processed to form audio signatures and none of those audio signatures substantially matches the signature information of the media content currently being consumed). In one example, the media content selection performed by the media content selector <NUM> may be based on a predetermined numerical sequence (e.g., a sequence of channel numbers or program numbers). In another example, the media content selection may be based on a probability of matching. For example, the media content selector <NUM> may select channels associated with recently consumed media content. Additionally or alternatively, the media content selector <NUM> may select channels based on the historical frequency with which media content has been consumed via those channels.

The media content selector <NUM> outputs a media content signal <NUM> to a signature generator <NUM>. The media content signal <NUM> contains audio information associated with the media content currently selected by the media content selector <NUM>. The signature generator <NUM> processes the received audio information to generate audio signature information therefrom. As described in greater detail below, the signature generator <NUM> uses one or more characteristics (e.g., peak magnitudes, zero crossings, temporal characteristics) of one or more audio features of the signal <NUM> to generate signatures or signature information.

The example signature generator <NUM> uses the signal <NUM> to generate a signature characteristic of the signal <NUM>. To this end, the example signature generator <NUM> identifies signals peaks and zero crossings in each of several time intervals of the signal and sums the magnitudes of the signal peaks. The signature generator <NUM> then generates a curve based on the interval sums, may smooth the curve, and generates a signature by generating a normalized curve feature (e.g., triangular-shaped peak) at a temporal location of identified peaks in the (smoothed) curve, each of which has a normalized height (i.e., magnitude) and width. The signature has a height of zero at locations other than the normalized curve features. The resulting signatures are substantially uniquely characteristic of the media content contained within the signal <NUM> and, thus, may be used as a reference to compare the media content currently selected by the media content selector <NUM> to the media content currently being consumed by an audience member (e.g., via the audio output signals <NUM> and <NUM>).

A second signature generator <NUM> receives an audio output signal from the output device <NUM> (e.g., the audio output signal <NUM> or, alternatively, the signal <NUM> from the acoustic transducer <NUM>). As described above, the signals <NUM> and <NUM> are associated with or representative of the media content being presented by or consumed via the output device <NUM>. The signature generator <NUM> is substantially the same or identical to the signature generator <NUM> and, thus, generates audio signatures or information in a substantially similar or identical manner to that of the signature generator <NUM>.

A time stamper <NUM> may be configured to provide time stamps that are used by the signature generators <NUM> and <NUM> to time stamp signature data generated thereby. For example, each signature may have one or more time stamps associated therewith to facilitate subsequent signature comparison operations, correlation operations, matching operations, etc. In some examples, the time stamper <NUM> may generate relatively fine time intervals such as, for example, <NUM>/<NUM>th of one second increments, each of which may correspond to an absolute time or a relative time based on some reference time.

The signature generators <NUM> and <NUM> provide respective collections of signatures or signature information <NUM> and <NUM> to a signature comparator <NUM>. The signature comparator <NUM> compares the signature information <NUM> associated with or generated from the signal <NUM> to the signature information <NUM>, which is associated with or generated from one or both of the signals <NUM> and <NUM>. As noted above, the signal <NUM> contains audio information associated with the media content (e.g., the channel, program, etc.) currently selected by the media content selector <NUM> from the media content signal <NUM>, and the signals <NUM> and <NUM> contain audio information associated with the media content currently being consumed via the output device <NUM>.

The comparison of audio signatures or information can be performed using any known or desired technique. In one example, the signature comparator <NUM> performs a normalized correlation between the reference signature information <NUM> and the signature information associated with the media content currently being consumed (i.e., the signature information <NUM>) over a predetermined interval or time period. If the result of the correlation is greater than or equal to a predetermined and/or dynamically determined threshold, the signature comparator <NUM> may provide an output signal or information <NUM> indicating that at least a substantial match has been detected (i.e., that the known media content currently selected by the media content selector <NUM> is substantially similar or identical to the media content currently being consumed via the output device <NUM>).

In another example, the signature comparator <NUM> calculates a difference signal or an error signal and then calculates an average error, a peak or maximum error, a standard deviation of error, or any other parameters characteristic of the differences, if any, between the signature information <NUM> and <NUM>. One or more of those parameters or characteristics may be compared to one or more threshold values and a determination of whether a substantial match or an identical match exists is indicated via the output <NUM> based on whether those parameters or characteristics are less than or greater than one or more of the threshold values.

The signature comparator <NUM> may also provide a feedback signal or information <NUM> to the media content selector <NUM> to facilitate the selection of media content (e.g., channels, programs, etc.) from the reference media content signal <NUM>. For example, in the event that the signature comparator <NUM> determines that the signature information <NUM> and <NUM> are not substantially similar or identical (i.e., the media content currently selected or tuned from the reference or media content signal <NUM> by the media content selector <NUM> does not substantially match the media content currently being consumed via the output device <NUM>), the feedback signal <NUM> may indicate a non-match condition to the media content selector <NUM>. In turn, the media content selector <NUM> may select or tune the next portion of media content (e.g., a next channel or program) in its media content search or scan sequence.

A media content identifier <NUM> is coupled to the audio signature comparator <NUM> and receives the match information output <NUM>. If the media content identifier <NUM> receives information (via the output <NUM>) indicating that a substantial or identical match has been identified, the media content identifier <NUM> determines the identity of the media content currently being consumed via the output device <NUM>. More specifically, the media content currently being consumed via the output device <NUM> may be identified as a particular broadcast channel, program, website, etc..

The media content identifier <NUM> is coupled to the site unit <NUM> (<FIG>) and provides the media content identification information to the site unit <NUM> (<FIG>) via the communication link <NUM>. The site unit <NUM> may use the media content identification information provided by the media content identifier <NUM> to generate consumption records and the like.

<FIG> is a flow diagram illustrating an example method <NUM> to process audio signatures. Initially, the signature generators <NUM> and <NUM> (<FIG>) collect or generate signatures and send the signatures to the signature comparator <NUM> (<FIG>) (block <NUM>). As described in greater detail in connection with <FIG> below, the signature collection or generation process (block <NUM>) uses the characteristics of audio features such as, for example, temporal characteristics such as the temporal locations of signal peaks, zero crossings of the signal, and signal peak magnitudes.

The signature comparator <NUM> then compares signature information received from the signature generator <NUM> to signature information received from the signature generator <NUM> (block <NUM>).

An example audio signal is divided into a plurality of successive time intervals, each of which may be an equal or unequal number of seconds, minutes, etc. Signatures may be generated within the confines of these time intervals or sampling periods to facilitate efficient matching of signatures. For example, one signature per second may be generated. In such a case, a matching process can match a reference signal signature (e.g., a signature derived from the media content signal <NUM> of <FIG>) generated within a time interval (e.g., a one second interval) to a consumption signal (e.g., one or both of the signals <NUM> and <NUM>) signature generated within that same time interval. Alternatively or additionally, the signature matching algorithm can match the reference signal signature generated within a predetermined time interval to signatures generated for one or both of the consumption signals <NUM> and <NUM> of <FIG> over a plurality of time intervals.

Regardless of the particular signature matching technique employed by the signature comparator <NUM> of <FIG>, if the signature comparator <NUM> determines that a signature received from the signature generator <NUM> of <FIG> matches (either substantially or identically) a signature received from the signature generator <NUM> (block <NUM>), the signature comparator <NUM> conveys the matching information <NUM> to the media content identifier <NUM> of <FIG>. In turn, the media content identifier <NUM> identifies the media content (e.g., the channel, program, etc.) to which the media content selector <NUM> of <FIG> is currently tuned and, thus, the media content currently being consumed via the output device <NUM> of <FIG> (block <NUM>). For example, if the signature comparator <NUM> and the media content identifier <NUM> are implemented using separate processor-based systems, the signature comparator <NUM> may convey an interrupt to the media content identifier <NUM>. Alternatively, if the signature comparator <NUM> and the media content identifier <NUM> are implemented within the same processor-based system, a software function call may be used to indicate to the media content identifier <NUM> that a matching condition has occurred within the signature comparator <NUM>. After the media content has been identified (block <NUM>), the media content identifier <NUM> sends the signatures or signature information along with any other desired media content identification information (e.g., program identifiers, time stamps, etc.) to the site unit <NUM> of <FIG> via the communication link or connection <NUM> (block <NUM>).

On the other hand, if at block <NUM> the signature comparator <NUM> determines that a signature received from the signature generator <NUM> does not match a signature received from the signature generator <NUM>, the signature comparator <NUM> transfers control to block <NUM> to invoke a media content selection process, which is described in greater detail in connection with <FIG>. After the media content selector <NUM> performs the media content selection process at block <NUM>, control returns to block <NUM>, at which the signature generators <NUM> and <NUM> again generate signature information or signatures.

<FIG> is a flow diagram illustrating an example method <NUM> to select media content. Initially, the media content selector <NUM> of <FIG> identifies all media content portions (e.g., channels, programs, etc.) that have not yet been compared to the signal(s) (e.g., the signals <NUM> and <NUM>) that are associated with the media content currently being consumed via the output device <NUM> of <FIG> (block <NUM>). If the media content selector <NUM> determines that the reference media content signal <NUM> contains media content that has not yet been compared to the consumption signal <NUM>, <NUM> (block <NUM>), the media content selector <NUM> selects another portion of media content (e.g., tunes to another broadcast channel or program) (block <NUM>) and then returns control to block <NUM> of <FIG> to generate a signature of the selected media content. The media content selector <NUM> may, for example, determine if broadcast channels exist that have not yet provided media content for comparison to the consumption signal (e.g., the signals <NUM> and <NUM>) by scanning or searching a series of broadcast channels in a predetermined sequence. If the media content selector <NUM> determines at block <NUM> that all of the media content supplied on each of the available broadcast channels has already been compared to the media content currently being consumed (e.g., the signals <NUM> and <NUM>), the media content selector <NUM> may perform one or more error handling techniques (block <NUM>) and then return control to block <NUM> of <FIG>.

<FIG> is a flow diagram illustrating an example method <NUM> to generate signatures. The example method <NUM> may be executed by the example audio signature processor <NUM> of <FIG> to implement block <NUM> of the example method <NUM> of <FIG>. For clarity and brevity, this example will refer to the signature generator <NUM> generating a signature for the consumption signal <NUM> or <NUM>. However, the example method <NUM> may also be implemented by the signature generator <NUM> to generate reference signatures for signals received from the media content selector <NUM>.

The signature generator <NUM> receives a media content signal (i.e., the consumption signal <NUM>, <NUM>) for which a signature is to be generated (block <NUM>). While receiving the media content signal, the signature generator <NUM> samples the media content signal to generate a digital representation of the signal (block <NUM>). Block <NUM> may be omitted if, for example, the media content signal is received in digital format in block <NUM>. After sampling the signal (if necessary), the signature generator <NUM> generates an interval sum for each of multiple intervals of the media content signal (block <NUM>). For example, a media content signal may be sampled at <NUM> samples per second (block <NUM>). The signature generator <NUM> then creates signal intervals every <NUM>/<NUM>th of one second, using <NUM> samples per interval. As described in detail below in <FIG>, the generated interval sum is based on peak magnitudes and zero crossings of the samples in the corresponding interval. After generating the interval sum (block <NUM>), the signature generator <NUM> determines whether there are more intervals in the media content signal (block <NUM>). If there are more intervals (block <NUM>), control returns to block <NUM> to generate another interval sum.

If there are no more intervals (block <NUM>), the signature generator <NUM> may smooth the curve represented by the interval sums generated in block <NUM> (block <NUM>). For example, the signature generator <NUM> may perform a low pass filter function to eliminate noise and other spurious interference or signal components that may adversely affect signature match detection. One particularly useful smoothing function may be based on the formula y(t) = a*x(t) + b*y(t-<NUM>), where y represents the smoothed data, x represents the interval sum data generated in block <NUM>, and a + b = <NUM>. Preferably, a = b = <NUM>. However, a and b may be different values if desired to suit the needs of a particular application. A smoothing function such as the example function set forth above may be successively applied to the data multiple times (e.g., ten times) to achieve a desired smoothness.

The signature generator <NUM> then identifies the peaks (e.g., peak amplitude) in the (smoothed) curve (block <NUM>). For example, the signature generator <NUM> determines the temporal locations of the peaks in the (smoothed) curve and the associated magnitudes of the peaks. The signature generator <NUM> may use any technique to determine the peaks of the curve. When the peaks have been identified (block <NUM>), the signature generator <NUM> selects an identified peak (block <NUM>) and generates a normalized curve feature at the temporal location of the selected peak (block <NUM>). An example normalized curve feature represents a triangular-shaped peak having a width and a height, with the peak or apex of the triangle at the temporal location of the peak identified in block <NUM>. The signature generator <NUM> determines whether there are more peaks (block <NUM>) and, if so, returns control to block <NUM> to select another identified peak. The signature generator <NUM> continues to execute blocks <NUM>-<NUM> for each peak identified at block <NUM>. The example triangular-shaped peaks or curve features generated by the signature generator <NUM> at block <NUM> are substantially identical and, thus, have equal or substantially equal widths and heights.

When the signature generator <NUM> has generated normalized curve features for each identified peak (blocks <NUM>-<NUM>), the signature generator <NUM> sets the height of the signal curve to zero at all temporal locations that do not correspond to a signal peak (block <NUM>). Thus, the signal curve generated by the signature generator <NUM> resembles a series of triangular-shaped peaks having equal or substantially equal widths and heights regardless of the amplitude of the original signal peaks to which they correspond. After generating the signature, the example method <NUM> ends and control returns to block <NUM> of <FIG> to compare the generated signatures.

<FIG> is a flow diagram illustrating an example method <NUM> to generate an interval sum. The example method <NUM> may be used to implement block <NUM> of the example method of <FIG>. In the example implementation, the method <NUM> is called from block <NUM> after the signature generator <NUM> of <FIG> samples the received media content signal, or from block <NUM> when the signature generator <NUM> determines there are more intervals for which to determine an interval sum.

Initially, the signature generator <NUM> resets a sample interval sum to zero (block <NUM>) and then waits for a zero crossing of the audio signal for which a signature is to be generated (e.g., the example consumption signal <NUM> or <NUM>, the example reference signal <NUM>) (block <NUM>). Upon detection of a zero crossing (block <NUM>), the signature generator <NUM> continuously or periodically acquires the peak magnitude of the signal (block <NUM>) until a subsequent zero crossing is detected (block <NUM>). After the subsequent zero crossing is detected (block <NUM>), the example signature generator <NUM> adds the peak magnitude acquired at block <NUM> to an interval sum (block <NUM>). The signature generator <NUM> then determines if the sample interval has expired (e.g., a predetermined amount of time has elapsed, a predetermined number of samples have been acquired, etc.) (block <NUM>). The sample interval may be a predetermined amount of time during which peak magnitudes are summed. If the sample interval has not expired (block <NUM>), the signature generator <NUM> returns control to block <NUM> to continue to acquire the peak magnitude. On the other hand, if the sample interval has expired (block <NUM>), the signature generator <NUM> may send the current interval sum to a smoothing function (block <NUM>) and then returns control to block <NUM> of the example method <NUM> of <FIG> to determine whether there are more intervals in the sampled media content signal.

<FIG> is an example graph <NUM> that depicts an audio signal <NUM> that may be processed by the example signature generator <NUM> or the example signature generator <NUM> shown in <FIG>. The described example of <FIG> will refer to the signature generator <NUM>. The signal <NUM> may be provided as the consumption signal <NUM> or <NUM> to the signature generator <NUM>. The signal <NUM> may additionally or alternatively be provided as the reference signal <NUM> to the signature generator <NUM> of <FIG>.

By way of example, at a time t<NUM> the interval sum retained by the signature generator <NUM> is reset to zero. Then, at a first zero crossing <NUM>, the signature generator <NUM> resets the peak value to zero. Following the first zero crossing <NUM>, the signal <NUM> increases in magnitude until it reaches a peak value "a. " The signature generator <NUM> retains the peak value "a" while the signal <NUM> decreases between "a" and a second zero crossing <NUM>. At the second zero crossing <NUM>, the signature generator <NUM> adds the magnitude of the peak value "a" to the interval sum and then resets its retained peak value to zero. Following the second zero crossing <NUM>, the signal <NUM> decreases in value until it reaches a negative peak "b," the absolute value of which is retained by the signature generator <NUM> as the signal <NUM> increases to zero at a third zero crossing <NUM>. At the third zero crossing <NUM>, the signature generator <NUM> adds the magnitude of "b" to the interval sum and resets the retained peak value to zero.

This process continues for peaks "d," through "k" up to time a t<NUM> (which may correspond to a predetermined time interval or sample interval including, for example, <NUM> samples), at which point the signature generator <NUM> stores the interval sum as a data point for optional later smoothing and resets the interval sum to zero. It should be noted that the peak "e" represents the peak magnitude between zero crossings and not "e' ("e" prime)".

The signature generator <NUM> repeats this process over the predetermined time interval, sample interval, or number of samples between times t<NUM> and t<NUM> for peaks "l" through "r," which results in a second sum being stored for optional smoothing. Of course, the process depicted graphically in <FIG> could be carried out for any desired number of intervals, which do not necessarily have to be immediately successive or contiguous. Further, in general, as the number of sums used to provide signature information for a particular audio signal increases, the certainty with which that signature uniquely identifies that particular audio signal increases.

<FIG> illustrates an example graph that depicts zero crossing data that may be generated by the example signature generator <NUM> of <FIG> from an audio signal such as, for example, the example signal <NUM> of <FIG>. More specifically, the sequence of interval sums generated by the signature generator <NUM>, which may be generally referred to as a zero crossing energy curve, is depicted at reference numeral <NUM>. Again, as noted above, in the case where the signal <NUM> is processed as a series of discrete data values, the zero crossing energy curve <NUM> has fewer discrete data values in any given time period or sample period because a plurality of samples or peak magnitude values from the signal <NUM> are summed to form each data value making up the zero crossing energy curve <NUM>. In the case where <NUM> samples from the signal <NUM> are summed, a data reduction ratio of <NUM>:<NUM> (i.e., from the signal <NUM> to the zero crossing energy curve <NUM>) is realized. A data reduction ratio of <NUM>:<NUM>, using the <NUM> samples per second sampling rate described above yields a <NUM> sample per second zero crossing energy curve <NUM>. However, as noted above, any other data reduction ratio may be used instead. The zero crossing energy curve <NUM> may then be processed by the signature generator <NUM> using a smoothing function to form a smoothed zero crossing energy curve <NUM>.

<FIG> illustrates an example smoothed zero crossing energy curve <NUM> of <FIG> and peaks identified from the smoothed zero crossing energy curve <NUM>. The example smoothed zero crossing energy curve <NUM> includes peaks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, which may be identified by the example signature generator <NUM> of <FIG>. After optionally smoothing the zero crossing energy curve <NUM> of <FIG>, the signature generator <NUM> identifies the peaks <NUM>-<NUM> formed by, for example, <NUM> samples at <NUM> samples per second.

<FIG> illustrates an example signature <NUM> generated by the audio signature processor <NUM> of <FIG> utilizing the peaks <NUM>-<NUM> illustrated in <FIG>. The example signature <NUM> includes normalized curve features <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> corresponding to respective signal peaks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. The normalized curve features <NUM>-<NUM> are generated by the signature generator <NUM> by executing the example method <NUM> described in <FIG> based on the example audio signal <NUM> of <FIG> and the zero crossing energy curve <NUM> of <FIG>.

As illustrated in <FIG>, the normalized curve features <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> have equal heights h and equal widths w. Further, the center location of each of the example normalized curve features <NUM>-<NUM> is at the temporal location of the respective curve peaks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Additionally, the example signature <NUM> has a height of zero at temporal locations other than those corresponding to normalized curve features. When the signature generator <NUM> has finished generating the example signature <NUM> (e.g., via the example method <NUM> of <FIG>), the signature comparator <NUM> of <FIG> compares the signature <NUM> to known signatures to identify the example audio signal <NUM>.

Although the example normalized curve features <NUM>-<NUM> of <FIG> have equal heights and widths, the normalized curve features <NUM>-<NUM> may be generated having, for example, heights equal to or proportional to the heights and/or temporal locations of the corresponding peaks, widths equal to or proportional to the heights and/or temporal locations of the corresponding peaks, and/or any combination thereof.

<FIG> is a block diagram of another example implementation of the audio signature processor <NUM> of <FIG>. The example audio signature processor <NUM> receives a media content signal (e.g., the consumption signal <NUM> and/or <NUM> of <FIG>, or the reference signal <NUM> of <FIG>), identifies the media content signal, and outputs consumption information to the site unit <NUM> of <FIG>. For ease of reference, the discussion of the example audio signature processor <NUM> of <FIG> will refer to the example consumption signal <NUM> of <FIG>. However, other signals (e.g., the signal <NUM> of <FIG>) could be processed by the audio signature processor <NUM>.

The example audio signature processor <NUM> shown in <FIG> receives a media content signal (e.g., the audio output signal or reference signal <NUM>, or the consumption signals <NUM> or <NUM> of <FIG>), which is sent to a signal conditioner <NUM>. The signal conditioner <NUM> may include analog and or digital circuitry for filtering (e.g., noise filtering, anti-aliasing filtering, transient filtering, etc.). One particularly useful filtering circuit may provide a bandpass filter characteristic from <NUM> hertz to <NUM> hertz. Additionally or alternatively, the signal conditioner <NUM> may include protection circuitry (e.g., surge protection circuitry), level shifting circuitry, amplification circuitry, attenuation circuitry, or any other known or desired signal conditioning circuitry. Of course, the signal conditioner <NUM> may be eliminated from the audio signature processor <NUM> in the event that the media content signals provided to the audio signature processor <NUM> do not require conditioning.

Conditioned signal(s) output by the signal conditioner <NUM> are provided to a zero crossing detector <NUM> and a peak detector <NUM>. The zero crossing detector <NUM> may use a one-shot multi-vibrator or the like to output a pulse to the peak detector <NUM> each time a zero crossing occurs within the conditioned signal(s). The peak detector <NUM> may be implemented using any desired peak detection circuit to detect peak signal magnitude. For example, in the case where the conditioned signals are analog signals, a diode, capacitor and bleed resistor combination may be used to detect peak value. On the other hand, in the case where the conditioned signals are digital values, the peak detector <NUM> may simply retain the largest numerical value following a reset. The peak detector <NUM> resets (e.g., to zero) in response to zero crossing pulses or other signals provided by the zero crossing detector <NUM>. As a result, the peak detector <NUM> outputs a series of signal peak magnitudes, each of which occurs between successive zero crossings.

A summer <NUM> receives the series of peak signal magnitudes from the peak detector <NUM> and generates interval sums of these peak signal magnitudes for each of the predetermined time intervals or sample intervals. In one example, the summer <NUM> may sum a plurality of peak magnitudes (absolute values) occurring within a predetermined number of samples (e.g., <NUM> samples) collected at a predetermined rate (e.g., <NUM> samples per second) from the conditioned signal. However, other sample sizes and sample rates may be used instead to suit the needs of a particular application. The summer <NUM> outputs a series of positive interval sum values at a rate equal to the sample rate divided by the sample size for each interval sum. Thus, in the example where the sample rate is <NUM> samples/second and the sample size per sum is <NUM>, the summer <NUM> provides interval sums at a rate of <NUM> per second. Additionally, as depicted in <FIG>, the summer <NUM> may also receive a time stamp from a time stamper <NUM> that enables the summer <NUM> to associate time stamp values with one or more of the interval sums.

The example signature generator <NUM> may also include a smoother <NUM> that performs a smoothing function on the series of sums output by the summer <NUM>. For example, the smoother <NUM> may perform a low pass filter function to eliminate noise and other spurious interference or signal components that may adversely affect signature match detection. The smoother <NUM> may successively smooth the data multiple times (e.g., ten times) to achieve a desired smoothness.

The filtering performed by the smoother <NUM> may be implemented using any desired combination of passive components (i.e., resistors, capacitors, inductors, etc.), active components (i.e., transistors, operational amplifiers, etc.) and/or digital components (i.e., digital logic, processing units, memory, etc.). There are many well-known analog and numerical (i.e., digital) filtering techniques that may be used to implement the smoother <NUM> and, thus, such implementation details are not discussed in greater detail herein.

The example audio signature processor <NUM> further includes a peak identifier <NUM> that receives the smoothed curve from the smoother <NUM>. The peak identifier <NUM> also receives time stamps from the time stamper <NUM>. Using the time stamps, the peak identifier <NUM> and identifies the signal peak(s) in the smoothed curve and outputs the magnitude(s) and temporal location(s) of the identified peak(s) to a feature generator <NUM>.

The feature generator <NUM> receives the signal peaks and temporal location information, and generates normalized curve features based on the signal peaks and temporal locations. An example set of normalized curve features that may be generated by the feature generator <NUM> is shown in <FIG>. After generating the normalized curve features, the feature generator <NUM> generates the remaining signature time by assigning a height or magnitude of zero to the signature locations not associated with the normalized curve features (e.g., triangular-shaped portions). The feature generator <NUM> then outputs the signature to a correlator <NUM>.

The correlator <NUM> receives the signature from the feature generator <NUM> and performs a comparison between the signature and one or more reference signatures. An example comparison that may be performed by the correlator <NUM> is a normalized cross-correlation function. However, the correlator <NUM> may also perform other comparisons, such as calculating the Mahalanobis distance between the signatures. The reference signatures may be generated by applying a known reference media signal to the signal conditioner <NUM>, zero crossing detector <NUM>, peak detector <NUM>, summer <NUM>, smoother <NUM>, peak identifier <NUM>, and the feature generator <NUM> to generate a signature of the reference media as described above. Alternatively or additionally, the correlator <NUM> may receive one or more reference signatures from a reference signature database <NUM>. The reference signature database <NUM> may be provided to store known signatures of media content to facilitate identification of an unidentified consumption signal. The correlator <NUM> generates an index (e.g., a cross-correlation coefficient) based on the correlation of the consumption signal with a reference signal.

The index value generated by the correlator <NUM> is sent to an index comparator <NUM>. The index comparator <NUM> determines whether the index is greater than a threshold indicative of a match. For example, if the correlator <NUM> performs a correlation on a signature generated by the feature generator <NUM> with a reference signature from the reference signature database <NUM>, the correlator <NUM> may calculate an index of <NUM>. The index comparator <NUM> compares the index <NUM> to an example threshold value of <NUM>. Because the calculated index is greater than the threshold, the index comparator <NUM> determines that the media content represented by the generated signature is the same as the media represented by the reference signature. If the index is not greater than the threshold, the correlator <NUM> may then perform another correlation with the generated signature and another reference signature to generate another index. Correlation and comparison may repeat until matching media content is determined.

The example threshold used by the index comparator <NUM> may be a predetermined value or may be dynamically generated and modified. For example, a first threshold value may be used to determine media exposure during time intervals in a given time period (e.g., every <NUM> seconds during a day). In the example, using the first threshold value, the audio signature processor <NUM> is capable of identifying media content during <NUM>% of a monitored time period. The index comparator <NUM> may then use a second threshold value to identify media content for time intervals that could not be identified using the first threshold value, thus enabling the index comparator <NUM> to identify media content during certain time intervals.

After the index comparator <NUM> has identified the media associated with the consumption signal, the index comparator <NUM> outputs consumption information to, for example, the site unit <NUM> of <FIG>.

<FIG> is a flowchart illustrating an example method <NUM> to identify media content. The example method <NUM> may be executed by the example audio signature processor <NUM> described in <FIG> to identify media content associated with a consumption signal (e.g., the consumption signal <NUM> of <FIG>). The example method <NUM> begins by receiving a media content signal (e.g., via the signal conditioner <NUM>), such as the consumption signal <NUM> or the reference signal <NUM> (block <NUM>). On receiving the media content signal (block <NUM>), the example signal conditioner <NUM>, the example zero crossing detector <NUM>, the example peak detector <NUM>, the example summer <NUM>, the example time stamper <NUM>, the example smoother <NUM>, the example peak identifier <NUM>, and the example feature generator <NUM> generate a signature of the media content signal (block <NUM>). Block <NUM> may be performed by executing the example method <NUM> of <FIG> using the example signal conditioner <NUM>, the example zero crossing detector <NUM>, the example peak detector <NUM>, the example summer <NUM>, the example time stamper <NUM>, the example smoother <NUM>, the example peak identifier <NUM>, and the example feature generator <NUM>.

After generating the signature from the media content signal (block <NUM>), the example correlator <NUM> of <FIG> selects a reference signature from, for example, the reference signature database <NUM> or a signature generated from a reference signal (block <NUM>). Once a reference signature is selected, the correlator <NUM> performs a correlation on the generated signature and the reference signature to generate a correlation index (block <NUM>). The example correlation index is passed to the index comparator <NUM>, which determines if the correlation index is greater than a threshold (block <NUM>). If the index is greater than the threshold (block <NUM>), the index comparator <NUM> determines the media content signal is the same as the reference signal (block <NUM>), and the example method <NUM> may end.

However, if the index comparator <NUM> determines the index is not greater than the threshold (block <NUM>), the correlator <NUM> determines whether there are additional reference curves for comparison (block <NUM>). Additional reference curves may come from additional media sources or from the reference signature database <NUM>. If there are additional reference curves for comparison (block <NUM>), control returns to block <NUM> to select a reference signature. If there are no additional reference curves (block <NUM>), the index comparator <NUM> determines that the media signal is unknown (block <NUM>). In such a case, the unknown media content signal and/or the signature generated therefrom may be sent to a central location (e.g., the site unit <NUM> of <FIG>) for additional processing.

Although the example normalized curve features are shown as triangular-shaped peaks, other shapes, heights, and/or widths may be used to, for example, further increase detection accuracy or increase correlation speed.

The example systems, methods, apparatus, and articles of manufacture are useful in identifying unknown media content based on known media content. In one example application, the systems described above may be used to verify exposure of advertisements in a retail store. The example application may have an audio and video playback device (e.g., a television set) to show video advertisements to in-store customers. Advertisers that want to verify that their paid advertisements are given sufficient exposure in-store may utilize the example systems, methods, apparatus, and articles of manufacture to monitor the advertisements shown on the playback device and identify them by comparing each exposed advertisement to a small library (e.g., <NUM>-<NUM> advertisements) of known advertisements. Each identified advertisement is then counted and the total counts can be reported to the advertiser to verify sufficient exposure.

More generally, the example systems, methods, apparatus, and articles of manufacture may be used to identify a clip or short segment of unidentified media content within a large library of known media content. Such identification may be useful in digital rights management, in detecting copyright infringement, or in any other application that may benefit from media content identification. To identify a clip or short segment, the example system generates a signature of at least a portion of the media to be identified, and performs a correlation or other comparison between the signature and a library of reference signatures.

Claim 1:
A method comprising:
detecting, with a processor, peaks in time intervals of a sensed media signal (<NUM>);
generating, with the processor, interval sums for respective ones of the time intervals based on absolute values of the detected peaks in corresponding ones of the time intervals, a first one of the interval sums for a first one of the time intervals based on a sum of the absolute values of ones of the peaks that occur between zero crossings (<NUM>, <NUM>, <NUM>) of the sensed media signal, the zero crossings corresponding to the first one of the time intervals;
generating, with the processor, a curve (<NUM>) based on the interval sums;
identifying, with the processor, peaks in the generated curve;
generating, with the processor, normalized curve features (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>) at respective temporal locations (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>) of the identified peaks in the curve; and
outputting, with the processor, a signature corresponding to the sensed media signal, the signature including the normalized curve features, characterised in that each of the normalized curve features is having a shape with a peak at the respective temporal location of a corresponding one of the peaks in the curve.