Methods and apparatus to perform audio watermarking and watermark detection and extraction

Information

  • Patent Grant
  • 12002478
  • Patent Number
    12,002,478
  • Date Filed
    Friday, July 8, 2022
    2 years ago
  • Date Issued
    Tuesday, June 4, 2024
    5 months ago
Abstract
Example methods and apparatus to audio watermarking and watermark detection and extraction are disclosed herein. An example apparatus disclosed herein includes memory, computer readable instructions, and processor circuitry to execute the computer readable instructions to at least detect a first symbol, a second symbol, a third symbol, and a fourth symbol sequentially in encoded audio samples, determine whether the first symbol is a synchronization symbol, in response to a determination that the first symbol is a synchronization symbol, determine that the first symbol and the third symbol are associated with a first message and the second symbol and the fourth symbol are associated with a second message, and output at least one of the first message or the second message.
Description
TECHNICAL FIELD

The present disclosure relates generally to media monitoring and, more particularly, to methods and apparatus to perform audio watermarking and watermark detection and extraction.


BACKGROUND

Identifying media information and, more specifically, audio streams (e.g., audio information) is useful for assessing audience exposure to television, radio, or any other media. For example, in television audience metering applications, a code may be inserted into the audio or video of media, wherein the code is later detected at monitoring sites when the media is presented (e.g., played at monitored households). The information payload of the code/watermark embedded into original signal can consist of unique source identification, time of broadcast information, transactional information or additional content metadata.


Monitoring sites typically include locations such as, for example, households where the media consumption of audience members or audience member exposure to the media is monitored. For example, at a monitoring site, codes from the audio and/or video are captured and may be associated with audio or video streams of media associated with a selected channel, radio station, media source, etc. The collected codes may then be sent to a central data collection facility for analysis. However, the collection of data pertinent to media exposure or consumption need not be limited to in-home exposure or consumption.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic depiction of a broadcast audience measurement system employing a program identifying code added to the audio portion of a composite television signal.



FIG. 2 is a block diagram of an example encoder of FIG. 1.



FIG. 3 is a flow diagram illustrating an example encoding process that may be carried out by the example decoder of FIG. 2.



FIG. 4 is a flow diagram illustrating an example process that may be carried to generate a frequency index table used in conjunction with the code frequency selector of FIG. 2.



FIG. 5 is a chart illustrating critical band indices and how they correspond to short and long block sample indices.



FIG. 6 illustrates one example of selecting frequency components that will represent a particular information symbol.



FIGS. 7-9 are charts illustrating different example code frequency configurations that may be generated by the process of FIG. 4 and used in conjunction with the code frequency selector of FIG. 2.



FIG. 10 illustrates the frequency relationship between the audio encoding indices.



FIG. 11 is a block diagram of the example decoder of FIG. 1.



FIG. 12 is a flow diagram illustrating an example decoding process that may be carried out by the example encoder of FIG. 11.



FIG. 13 is a flow diagram of an example process that may be carried out to stack audio in the decoder of FIG. 11.



FIG. 14 is a flow diagram of an example process that may be carried out to determine a symbol encoded in an audio signal in the decoder of FIG. 11.



FIG. 15 is a flow diagram of an example process that may be carried out to process a buffer to identify messages in the decoder of FIG. 11.



FIG. 16 illustrates an example set of circular buffers that may store message symbols.



FIG. 17 illustrates an example set of pre-existing code flag circular buffers that may store message symbols.



FIG. 18 is a flow diagram of an example process that may be carried out to validate identified messages in the decoder of FIG. 11.



FIG. 19 illustrates an example filter stack that may store identified messages in the decoder of FIG. 11.



FIG. 20 is a schematic illustration of an example processor platform that may be used and/or programmed to perform any or all of the processes or implement any or all of the example systems, example apparatus and/or example methods described herein.





DETAILED DESCRIPTION

The following description makes reference to audio encoding and decoding that is also commonly known as audio watermarking and watermark detection, respectively. It should be noted that in this context, audio may be any type of signal having a frequency falling within the normal human audibility spectrum. For example, audio may be speech, music, an audio portion of an audio and/or video program or work (e.g., a television program, a movie, an Internet video, a radio program, a commercial spot, etc.), a media program, noise, or any other sound.


In general, as described in detail below, the encoding of the audio inserts one or more codes or information (e.g., watermarks) into the audio and, ideally, leaves the code inaudible to hearers of the audio. However, there may be certain situations in which the code may be audible to certain listeners. The codes that are embedded in audio may be of any suitable length and any suitable technique for assigning the codes to information may be selected.


As described below, the codes or information to be inserted into the audio may be converted into symbols that will be represented by code frequency signals to be embedded in the audio to represent the information. The code frequency signals include one or more code frequencies, wherein different code frequencies or sets of code frequencies are assigned to represent different symbols of information. Techniques for generating one or more tables mapping symbols to representative code frequencies such that symbols are distinguishable from one another at the decoder are also described. Any suitable encoding or error correcting technique may be used to convert codes into symbols.


By controlling the amplitude at which these code frequency signals are input into the native audio, the presence of the code frequency signals can be imperceptible to human hearing. Accordingly, in one example, masking operations based on the energy content of the native audio at different frequencies and/or the tonality or noise-like nature of the native audio are used to provide information upon which the amplitude of the code frequency signals is based.


Additionally, it is possible that an audio signal has passed through a distribution chain, where, for example, the content has passed from a content originator to a network distributor (e.g., NBC national) and further passed to a local content distributor (e.g., NBC in Chicago). As the audio signal passes through the distribution chain, one of the distributors may encode a watermark into the audio signal in accordance with the techniques described herein, thereby including in the audio signal an indication of that distributors identity or the time of distribution. The encoding described herein is very robust and, therefore, codes inserted into the audio signal are not easily removed. Accordingly, any subsequent distributors of the audio content may use techniques described herein to encode the previously encoded audio signal in a manner such that the code of the subsequent distributor will be detectable and any crediting due that subsequent distributor will be acknowledged.


Additionally, due to the repetition or partial repetition of codes within a signal, code detection can be improved by stacking messages and transforming the encoded audio signal into a signal having an accentuated code. As the audio signal is sampled at a monitored location, substantially equal sized blocks of audio samples are summed and averaged. This stacking process takes advantage of the temporal properties of the audio signal to cause the code signal to be accentuated within the audio signal. Accordingly, the stacking process, when used, can provide increased robustness to noise or other interference. For example, the stacking process may be useful when the decoding operation uses a microphone that might pick up ambient noise in addition to the audio signal output by a speaker.


A further technique to add robustness to the decoding operations described herein provides for validation of messages identified by a decoding operation. After messages are identified in an encoded audio signal, the messages are added to a stack. Subsequent repetitions of messages are then compared to identify matches. When a message can be matched to another message identified at the proper repetition interval, the messages are identified as validated. When a message can be partially matched to another message that has already been validated, the message is marked as partially validated and subsequent messages are used to identify parts of the message that may have been corrupted. According to this example validation technique, messages are only output from the decoder if they can be validated. Such a technique prevents errors in messages caused by interference and/or detection errors.


The following examples pertain generally to encoding an audio signal with information, such as a code, and obtaining that information from the audio via a decoding process. The following example encoding and decoding processes may be used in several different technical applications to convey information from one place to another.


The example encoding and decoding processes described herein may be used to perform broadcast identification. In such an example, before a work is broadcast, that work is encoded to include a code indicative of the source of the work, the broadcast time of the work, the distribution channel of the work, or any other information deemed relevant to the operator of the system. When the work is presented (e.g., played through a television, a radio, a computing device, or any other suitable device), persons in the area of the presentation are exposed not only to the work, but, unbeknownst to them, are also exposed to the code embedded in the work. Thus, persons may be provided with decoders that operate on a microphone-based platform so that the work may be obtained by the decoder using free-field detection and processed to extract codes therefrom. The codes may then be logged and reported back to a central facility for further processing. The microphone-based decoders may be dedicated, stand-alone devices, or may be implemented using cellular telephones or any other types of devices having microphones and software to perform the decoding and code logging operations. Alternatively, wire-based systems may be used whenever the work and its attendant code may be picked up via a hard wired connection.


The example encoding and decoding processes described herein may be used, for example, in tracking and/or forensics related to audio and/or video works by, for example, marking copyrighted audio and/or associated video content with a particular code. The example encoding and decoding processes may be used to implement a transactional encoding system in which a unique code is inserted into a work when that work is purchased by a consumer. Thus, allowing a media distribution to identify a source of a work. The purchasing may include a purchaser physically receiving a tangible media (e.g., a compact disk, etc.) on which the work is included, or may include downloading of the work via a network, such as the Internet. In the context of transactional encoding systems, each purchaser of the same work receives the work, but the work received by each purchaser is encoded with a different code. That is, the code inserted in the work may be personal to the purchaser, wherein each work purchased by that purchaser includes that purchaser's code. Alternatively, each work may be may be encoded with a code that is serially assigned.


Furthermore, the example encoding and decoding techniques described herein may be used to carry out control functionality by hiding codes in a steganographic manner, wherein the hidden codes are used to control target devices programmed to respond to the codes. For example, control data may be hidden in a speech signal, or any other audio signal. A decoder in the area of the presented audio signal processes the received audio to obtain the hidden code. After obtaining the code, the target device takes some predetermined action based on the code. This may be useful, for example, in the case of changing advertisements within stores based on audio being presented in the store, etc. For example, scrolling billboard advertisements within a store may be synchronized to an audio commercial being presented in the store through the use of codes embedded in the audio commercial.


An example encoding and decoding system 100 is shown in FIG. 1. The example system 100 may be, for example, a television audience measurement system, which will serve as a context for further description of the encoding and decoding processes described herein. The example system 100 includes an encoder 102 that adds a code or information 103 to an audio signal 104 to produce an encoded audio signal. The information 103 may be any selected information. For example, in a media monitoring context, the information 103 may be representative of an identity of a broadcast media program such as a television broadcast, a radio broadcast, or the like. Additionally, the information 103 may include timing information indicative of a time at which the information 103 was inserted into audio or a media broadcast time. Alternatively, the code may include control information that is used to control the behavior of one or more target devices.


The audio signal 104 may be any form of audio including, for example, voice, music, noise, commercial advertisement audio, audio associated with a television program, live performance, etc. In the example of FIG. 1, the encoder 102 passes the encoded audio signal to a transmitter 106. The transmitter 106 transmits the encoded audio signal along with any video signal 108 associated with the encoded audio signal. While, in some instances, the encoded audio signal may have an associated video signal 108, the encoded audio signal need not have any associated video.


In one example, the audio signal 104 is a digitized version of an analog audio signal, wherein the analog audio signal has been sampled at 48 kilohertz (KHz). As described below in detail, two seconds of audio, which correspond to 96,000 audio samples at the 48 KHz sampling rate, may be used to carry one message, which may be a synchronization message and 49 bits of information. Using an encoding scheme of 7 bits per symbol, the message requires transmission of eight symbols of information. Alternatively, in the context of overwriting described below, one synchronization symbol is used and one information symbol conveying one of 128 states follows the synchronization symbol. As described below in detail, according to one example, one 7-bit symbol of information is embedded in a long block of audio samples, which corresponds to 9216 samples. In one example, such a long block includes 36 overlapping short blocks of 256 samples, wherein in a 50% overlapping block 256 of the samples are old and 256 samples are new.


Although the transmit side of the example system 100 shown in FIG. 1 shows a single transmitter 106, the transmit side may be much more complex and may include multiple levels in a distribution chain through which the audio signal 104 may be passed. For example, the audio signal 104 may be generated at a national network level and passed to a local network level for local distribution. Accordingly, although the encoder 102 is shown in the transmit lineup prior to the transmitter 106, one or more encoders may be placed throughout the distribution chain of the audio signal 104. Thus, the audio signal 104 may be encoded at multiple levels and may include embedded codes associated with those multiple levels. Further details regarding encoding and example encoders are provided below.


The transmitter 106 may include one or more of a radio frequency (RF) transmitter that may distribute the encoded audio signal through free space propagation (e.g., via terrestrial or satellite communication links) or a transmitter used to distribute the encoded audio signal through cable, fiber, etc. In one example, the transmitter 106 may be used to broadcast the encoded audio signal throughout a broad geographical area. In other cases, the transmitter 106 may distribute the encoded audio signal through a limited geographical area. The transmission may include up-conversion of the encoded audio signal to radio frequencies to enable propagation of the same. Alternatively, the transmission may include distributing the encoded audio signal in the form of digital bits or packets of digital bits that may be transmitted over one or more networks, such as the Internet, wide area networks, or local area networks. Thus, the encoded audio signal may be carried by a carrier signal, by information packets or by any suitable technique to distribute the audio signals.


When the encoded audio signal is received by a receiver 110, which, in the media monitoring context, may be located at a statistically selected metering site 112, the audio signal portion of the received program signal is processed to recover the code, even though the presence of that code is imperceptible (or substantially imperceptible) to a listener when the encoded audio signal is presented by speakers 114 of the receiver 110. To this end, a decoder 116 is connected either directly to an audio output 118 available at the receiver 110 or to a microphone 120 placed in the vicinity of the speakers 114 through which the audio is reproduced. The received audio signal can be either in a monaural or stereo format. Further details regarding decoding and example decoders are provided below.


Audio Encoding


As explained above, the encoder 102 inserts one or more inaudible (or substantially inaudible) codes into the audio 104 to create encoded audio. One example encoder 102 is shown in FIG. 2. In one implementation, the example encoder 102 of FIG. 2 may be implemented using, for example, a digital signal processor programmed with instructions to implement an encoding lineup 202, the operation of which is affected by the operations of a prior code detector 204 and a masking lineup 206, either or both of which can be implemented using a digital signal processor programmed with instructions. Of course, any other implementation of the example encoder 102 is possible. For example, the encoder 102 may be implemented using one or more processors, programmable logic devices, or any suitable combination of hardware, software, and firmware.


In general, during operation, the encoder 102 receives the audio 104 and the prior code detector 204 determines if the audio 104 has been previously encoded with information, which will make it difficult for the encoder 102 to encode additional information into the previously encoded audio. For example, a prior encoding may have been performed at a prior location in the audio distribution chain (e.g., at a national network level). The prior code detector 204 informs the encoding lineup 202 as to whether the audio has been previously encoded. The prior code detector 204 may be implemented by a decoder as described herein.


The encoding lineup 202 receives the information 103 and produces code frequency signals based thereon and combines the code frequency signal with the audio 104. The operation of the encoding lineup 202 is influenced by the output of the prior code detector 204. For example, if the audio 104 has been previously encoded and the prior code detector 204 informs the encoding lineup 202 of this fact, the encoding lineup 202 may select an alternate message that is to be encoded in the audio 104 and may also alter the details by which the alternate message is encoded (e.g., different temporal location within the message, different frequencies used to represent symbols, etc.).


The encoding lineup 202 is also influenced by the masking lineup 206. In general, the masking lineup 206 processes the audio 104 corresponding to the point in time at which the encoding lineup 202 wants to encode information and determines the amplitude at which the encoding should be performed. As described below, the masking lineup 206 may output a signal to control code frequency signal amplitudes to keep the code frequency signal below the threshold of human perception.


As shown in the example of FIG. 2, the encoding lineup includes a message generator 210, a symbol selector 212, a code frequency selector 214, a synthesizer 216, an inverse Fourier transform 218, and a combiner 220. The message generator 210 is responsive to the information 103 and outputs messages having the format generally shown at reference numeral 222. The information 103 provided to the message generator may be the current time, a television or radio station identification, a program identification, etc. In one example, the message generator 210 may output a message every two seconds. Of course, other messaging intervals are possible.


In one example, the message format 222 representative of messages output from the message generator 210 includes a synchronization symbol 224. The synchronization symbol 224 is used by decoders, examples of which are described below, to obtain timing information indicative of the start of a message. Thus, when a decoder receives the synchronization symbol 224, that decoder expects to see additional information following the synchronization symbol 224.


In the example message format 222 of FIG. 2, the synchronization symbol 224, is followed by 42 bits of message information 226. This information may include a binary representation of a station identifier and coarse timing information. In one example, the timing information represented in the 42 bits of message information 226 changes every 64 seconds, or 32 message intervals. Thus, the 42 bits of message information 226 remain static for 64 seconds. The seven bits of message information 228 may be high resolution time that increments every two seconds.


The message format 222 also includes pre-existing code flag information 230. However, the pre-existing code flag information 230 is only selectively used to convey information. When the prior code detector 204 informs the message generator 210 that the audio 104 has not been previously encoded, the pre-existing code flag information 230 is not used. Accordingly, the message output by the message generator only includes the synchronization symbol 224, the 42 bits of message information 226, and the seven bits of message information 228; the pre-existing code flag information 230 is blank or filled by unused symbol indications. In contrast, when the prior code detector 204 provides to the message generator 210 an indication that the audio 104 into which the message information is to be encoded has previously been encoded, the message generator 210 will not output the synchronization symbol 224, the 42 bits of message information 226, or the seven bits of message information 228. Rather, the message generator 210 will utilize only the pre-existing code flag information 230. In one example, the pre-existing code flag information will include a pre-existing code flag synchronization symbol to signal that pre-existing code flag information is present. The pre-existing code flag synchronization symbol is different from the synchronization symbol 224 and, therefore, can be used to signal the start of pre-existing code flag information. Upon receipt of the pre-existing code flag synchronization symbol, a decoder can ignore any prior-received information that aligned in time with a synchronization symbol 224, 42 bits of message information 226, or seven bits of message information 228. To convey information, such as a channel indication, a distribution identification, or any other suitable information, a single pre-existing code flag information symbol follows the pre-existing code flag synchronization symbol. This pre-existing code flag information may be used to provide for proper crediting in an audience monitoring system.


The output from the message generator 210 is passed to the symbol selector 212, which selects representative symbols. When the synchronization symbol 224 is output, the symbol selector may not need to perform any mapping because the synchronization symbol 224 is already in symbol format. Alternatively, if bits of information are output from the message generator 210, the symbol selector may use straight mapping, wherein, for example seven bits output from the message generator 210 are mapped to a symbol having the decimal value of the seven bits. For example, if a value of 1010101 is output from the message generator 210, the symbol selector may map those bits to the symbol 85. Of course other conversions between bits and symbols may be used. In certain examples, redundancy or error encoding may be used in the selection of symbols to represent bits. Additionally, any other suitable number of bits than seven may be selected to be converted into symbols. The number of bits used to select the symbol may be determined based on the maximum symbol space available in the communication system. For example, if the communication system can only transmit one of four symbols at a time, then only two bits from the message generator 210 would be converted into symbols at a time.


The symbols from the symbol selector 212 are passed to the code frequency selector 214 that selects code frequencies that are used to represent the symbol. The symbol selector 212 may include one or more look up tables (LUTs) 232 that may be used to map the symbols into code frequencies that represent the symbols. That is, a symbol is represented by a plurality of code frequencies that the encoder 102 emphasizes in the audio to form encoded audio that is transmitted. Upon receipt of the encoded audio, a decoder detects the presence of the emphasized code frequencies and decodes the pattern of emphasized code frequencies into the transmitted symbol. Thus, the same LUT selected at the encoder 210 for selecting the code frequencies needs to be used in the decoder. One example LUT is described in conjunction with FIGS. 3-5. Additionally, example techniques for generating LUTs are provided in conjunction with FIGS. 7-9.


The code frequency selector 214 may select any number of different LUTs depending of various criteria. For example, a particular LUT or set of LUTs may be used by the code frequency selector 214 in response to the prior receipt of a particular synchronization symbol. Additionally, if the prior code detector 204 indicates that a message was previously encoded into the audio 104, the code frequency selector 214 may select a lookup table that is unique to pre-existing code situations to avoid confusion between frequencies used to previously encode the audio 104 and the frequencies used to include the pre-existing code flag information.


An indication of the code frequencies that are selected to represent a particular symbol is provided to the synthesizer 216. The synthesizer 216 may store, for each short block constituting a long block, three complex Fourier coefficients representative of each of the possible code frequencies that the code frequency selector 214 will indicate. These coefficients represent the transform of a windowed sinusoidal code frequency signal whose phase angle corresponds to the starting phase angle of code sinusoid in that short block.


While the foregoing describes an example code synthesizer 208 that generates sine waves or data representing sine waves, other example implementations of code synthesizers are possible. For example, rather than generating sine waves, another example code synthesizer 208 may output Fourier coefficients in the frequency domain that are used to adjust amplitudes of certain frequencies of audio provided to the combiner 220. In this manner, the spectrum of the audio may be adjusted to include the requisite sine waves.


The three complex amplitude-adjusted Fourier coefficients corresponding to the symbol to be transmitted are provided from the synthesizer 216 to the inverse Fourier transform 218, which converts the coefficients into time-domain signals having the prescribed frequencies and amplitudes to allow their insertion into the audio to convey the desired symbols are coupled to the combiner 220. The combiner 220 also receives the audio. In particular, the combiner 220 inserts the signals from the inverse Fourier transform 218 into one long block of audio samples. As described above, for a given sampling rate of 48 KHz, a long block is 9216 audio samples. In the provided example, the synchronization symbol and 49 bits of information require a total of eight long blocks. Because each long block is 9216 audio samples, only 73,728 samples of audio 104 are needed to encode a given message. However, because messages begin every two seconds, which is every 96,000 audio samples, there will be many samples at the end of the 96,000 audio samples that are not encoded. The combining can be done in the digital domain, or in the analog domain.


However, in the case of a pre-existing code flag, the pre-existing code flag is inserted into the audio 104 after the last symbol representing the previously inserted seven bits of message information. Accordingly, insertion of the pre-existing code flag information begins at sample 73,729 and runs for two long blocks, or 18,432 samples. Accordingly, when pre-existing code flag information is used, fewer of the 96,000 audio samples 104 will be unencoded.


The masking lineup 206 includes an overlapping short block maker that makes short blocks of 512 audio samples, wherein 256 of the samples are old and 256 samples are new. That is, the overlapping short block maker 240 makes blocks of 512 samples, wherein 256 samples are shifted into or out of the buffer at one time. For example, when a first set of 256 samples enters the buffer, the oldest 256 samples are shifted out of the buffer. On a subsequent iteration, the first set of 256 samples are shifted to a latter position of the buffer and 256 samples are shifted into the buffer. Each time a new short block is made by shifting in 256 new samples and removing the 256 oldest samples, the new short block is provided to a masking evaluator 242. The 512 sample block output from the overlapping short block maker 240 is multiplied by a suitable window function such that an “overlap-and-add” operation will restore the audio samples to their correct value at the output. A synthesized code signal to be added to an audio signal is also similarly windowed to prevent abrupt transitions at block edges when there is a change in code amplitude from one 512-sample block to the next overlapped 512-sample block. These transitions if present create audible artifacts.


The masking evaluator 242 receives samples of the overlapping short block (e.g., 512 samples) and determines an ability of the same to hide code frequencies to human hearing. That is, the masking evaluator determines if code frequencies can be hidden within the audio represented by the short block by evaluating each critical band of the audio as a whole to determine its energy and determining the noise-like or tonal-like attributes of each critical band and determining the sum total ability of the critical bands to mask the code frequencies. According to the illustrated example, the bandwidth of the critical bands increases with frequency. If the masking evaluator 242 determines that code frequencies can be hidden in the audio 104, the masking evaluator 204 indicates the amplitude levels at which the code frequencies can be inserted within the audio 104, while still remaining hidden and provides the amplitude information to the synthesizer 216.


In one example, the masking evaluator 242 conducts the masking evaluation by determining a maximum change in energy Eb or a masking energy level that can occur at any critical frequency band without making the change perceptible to a listener. The masking evaluation carried out by the masking evaluator 242 may be carried out as outlined in the Moving Pictures Experts Group-Advanced Audio Encoding (MPEG-AAC) audio compression standard ISO/IEC 13818-7:1997, for example. The acoustic energy in each critical band influences the masking energy of its neighbors and algorithms for computing the masking effect are described in the standards document such as ISO/IEC 13818-7:1997. These analyses may be used to determine for each short block the masking contribution due to tonality (e.g., how much the audio being evaluated is like a tone) as well as noise like (i.e., how much the audio being evaluated is like noise) features. Further analysis can evaluate temporal masking that extends masking ability of the audio over short time, typically, for 50-100 milliseconds (ms). The resulting analysis by the masking evaluator 242 provides a determination, on a per critical band basis, the amplitude of a code frequency that can be added to the audio 104 without producing any noticeable audio degradation (e.g., without being audible).


Because a 256 sample block will appear in both the beginning of one short block and the end of the next short block and, thus, will be evaluated two times by the masking evaluator 242, the masking evaluator makes two masking evaluations including the 256 sample block. The amplitude indication provided to the synthesizer 216 is a composite of those two evaluations including that 256 sample block and the amplitude indication is timed such that the amplitude of the code inserted into the 256 samples is timed with those samples arriving at the combiner 220.


Referring now to FIGS. 3-5, an example LUT 232 is shown that includes one column representing symbols 302 and seven columns 304, 306, 308, 310, 312, 314, 316 representing numbered code frequency indices. The LUT 232 includes 129 rows, 128 of which are used to represent data symbols and one of which is used to represent a synchronization symbol. Because the LUT 232 includes 128 different data symbols, data may be sent at a rate of seven bits per symbol. The frequency indices in the table may range from 180-656 and are based on a long block size of 9216 samples and a sampling rate of 48 KHz. Accordingly, the frequencies corresponding to these indices range between 937.5 Hz and 3126.6 Hz, which falls into the humanly audible range. Of course, other sampling rates and frequency indices may be selected. A description of a process to generate a LUT, such as the table 232 is provided in conjunction with FIGS. 7-9.


In one example operation of the code frequency selector 214, a symbol of 25 (e.g., a binary value of 0011001) is received from the symbol selector 212. The code frequency selector 214 accesses the LUT 232 and reads row 25 of the symbol column 302. From this row, the code frequency selector reads that code frequency indices 217, 288, 325, 403, 512, 548, and 655 are to be emphasized in the audio 104 to communicate the symbol 25 to the decoder. The code frequency selector 214 then provides an indication of these indices to the synthesizer 216, which synthesizes the code signals by outputting Fourier coefficients corresponding to these indices.


The combiner 220 receives both the output of the code synthesizer 208 and the audio 104 and combines them to form encoded audio. The combiner 220 may combine the output of the code synthesizer 208 and the audio 104 in an analog or digital form. If the combiner 220 performs a digital combination, the output of the code synthesizer 208 may be combined with the output of the sampler 202, rather than the audio 104 that is input to the sampler 202. For example, the audio block in digital form may be combined with the sine waves in digital form. Alternatively, the combination may be carried out in the frequency domain, wherein frequency coefficients of the audio are adjusted in accordance with frequency coefficients representing the sine waves. As a further alternative, the sine waves and the audio may be combined in analog form. The encoded audio may be output from the combiner 220 in analog or digital form. If the output of the combiner 220 is digital, it may be subsequently converted to analog form before being coupled to the transmitter 106.


An example encoding process 600 is shown in FIG. 6. The example process 600 may be carried out by the example encoder 102 of FIG. 2, or by any other suitable encoder. The example process 600 begins when audio samples to be encoded are received (block 602). The process 600 then determines if the received samples have been previously encoded (block 604). This determination may be carried out, for example, by the prior code detector 204 of FIG. 2, or by any suitable decoder configured to examine the audio to be encoded for evidence of a prior encoding.


If the received samples have not been previously encoded (block 604), the process 600 generates a communication message (block 606), such as a communication message having the format shown in FIG. 2 at reference numeral 222. In one particular example, when the audio has not been previously encoded, the communication message may include a synchronization portion and one or more portions including data bits. The communication message generation may be carried out, for example, by the message generator 210 of FIG. 2.


The communication message is then mapped into symbols (block 608). For example, the synchronization information need not be mapped into a symbol if the synchronization information is already a symbol. In another example, if a portion of the communication message is a series of bits, such bits or groups of bits may be represented by one symbol. As described above in conjunction with the symbol selector 212, which is one manner in which the mapping (block 608) may be carried out, one or more tables or encoding schemes may be used to convert bits into symbols. For example, some techniques may include the use of error correction coding, or the like, to increase message robustness through the use of coding gain. In one particular example implementation having a symbol space sized to accommodate 128 data symbols, seven bits may be converted into one symbol. Of course, other numbers of bits may be processed depending on many factors including available symbol space, error correction encoding, etc.


After the communication symbols have been selected (block 608), the process 600 selects a LUT that will be used to determine the code frequencies that will be used to represent each symbol (block 610). In one example, the selected LUT may be the example LUT 232 of FIGS. 3-5, or may be any other suitable LUT. Additionally, the LUT may be any LUT generated as described in conjunction with FIGS. 7-9. The selection of the LUT may be based on a number of factors including the synchronization symbol that is selected during the generation of the communication message (block 606).


After the symbols have been generated (block 608) and the LUT is selected (block 610), the symbols are mapped into code frequencies using the selected LUT (block 612). In one example in which the LUT 232 of FIG. 3-5 is selected, a symbol of, for example, 35 would be mapped to the frequency indices 218, 245, 360, 438, 476, 541, and 651. The data space in the LUT is between symbol 0 and symbol 127 and symbol 128, which uses a unique set of code frequencies that do not match any other code frequencies in the table, is used to indicate a synchronization symbol. The LUT selection (block 610) and the mapping (block 612) may be carried out by, for example, the code frequency selector 214 of FIG. 2. After the code frequencies are selected, an indication of the same is provided to, for example, the synthesizer 216 of FIG. 2.


Code signals including the code frequencies are then synthesized (block 614) at amplitudes according to a masking evaluation, which is described in conjunction with blocks 240 and 242 or FIG. 2, and is described in conjunction with the process 600 below. In one example, the synthesis of the code frequency signals may be carried out by providing appropriately scaled Fourier coefficients to an inverse Fourier process. In one particular example, three Fourier coefficients may be output to represent each code frequency in the code frequency signals. Accordingly, the code frequencies may be synthesized by the inverse Fourier process in a manner in which the synthesized frequencies are windowed to prevent spill over into other portions of the signal into which the code frequency signals are being embedded. One example configuration that may be used to carry out the synthesis of block 614 is shown at blocks 216 and 218 of FIG. 2. Of course other implementations and configurations are possible.


After the code signals including the code frequencies have been synthesized, they are combined with the audio samples (block 616). As described in conjunction with FIG. 2, the combination of the code signals and the audio is such that one symbol is inserted into each long block of audio samples. Accordingly, to communicate one synchronization symbol and 49 data bits, information is encoded into eight long blocks of audio information: one long block for the synchronization symbol and one long block for each seven bits of data (assuming seven bits/symbol encoding). The messages are inserted into the audio at two second intervals. Thus, the eight long blocks of audio immediately following the start of a message may be encoded with audio and the remaining long blocks that make up the balance of the two second of audio may be unencoded.


The insertion of the code signal into the audio may be carried out by adding samples of the code signal to samples of the host audio signal, wherein such addition is done in the analog domain or in the digital domain. Alternatively, with proper frequency alignment and registration, frequency components of the audio signal may be adjusted in the frequency domain and the adjusted spectrum converted back into the time domain.


The foregoing described the operation of the process 600 when the process determined that the received audio samples have not been previously encoded (block 604). However, in situations in which a portion of media has been through a distribution chain and encoded as it was processed, the received samples of audio processed at block 604 already include codes. For example, a local television station using a courtesy news clip from CNN in a local news broadcast might not get viewing credit based on the prior encoding of the CNN clip. As such, additional information is added to the local news broadcast in the form of pre-existing code flag information. If the received samples of audio have been previously encoded (block 604), the process generates pre-existing code flag information (block 618). The pre-existing code flag information may include the generation of an pre-existing code flag synchronization symbol and, for example, the generation of seven bits of data, which will be represented by a single data symbol. The data symbol may represent a station identification, a time, or any other suitable information. For example, a media monitoring site (MMS) may be programmed to detect the pre-existing code flag information to credit the station identified therein.


After the pre-existing code flag information has been generated (block 618), the process 600 selects the pre-existing code flag LUT that will be used to identify code frequencies representative of the pre-existing code flag information (block 620). In one example, the pre-existing code flag LUT may be different than other LUTs used in non-pre-existing code conditions. In one particular example, the pre-existing code flag synchronization symbol may be represented by the code frequencies 220, 292, 364, 436, 508, 580, and 652.


After the pre-existing code flag information is generated (block 618) and the pre-existing code flag LUT is selected (block 620), the pre-existing code flag symbols are mapped to code frequencies (block 612), and the remainder of the processing follows as previously described.


Sometime before the code signal is synthesized (block 614), the process 600 conducts a masking evaluation to determine the amplitude at which the code signal should be generated so that it still remains inaudible or substantially inaudible to human hearers. Accordingly, the process 600 generates overlapping short blocks of audio samples, each containing 512 audio samples (block 622). As described above, the overlapping short blocks include 50% old samples and 50% newly received samples. This operation may be carried out by, for example, the overlapping short block maker 240 of FIG. 2.


After the overlapping short blocks are generated (block 622), masking evaluations are performed on the short blocks (block 624). For example, this may be carried out as described in conjunction with block 242 of FIG. 2. The results of the masking evaluation are used by the process 600 at block 614 to determine the amplitude of the code signal to be synthesized. The overlapping short block methodology may yield two masking evaluation for a particular 256 samples of audio (one when the 256 samples are the “new samples,” and one when the 256 samples are the “old samples”), the result provided to block 614 of the process 600 may be a composite of these masking evaluations. Of course, the timing of the process 600 is such that the masking evaluations for a particular block of audio are used to determine code amplitudes for that block of audio.


Lookup Table Generation


A system 700 for populating one or more LUTs with code frequencies corresponding to symbols may be implemented using hardware, software, combinations of hardware and software, firmware, or the like. The system 700 of FIG. 7 may be used to generate any number of LUTs, such as the LUT of FIGS. 3-5. The system 700 which operates as described below in conjunction with FIG. 7 and FIG. 8, results in a code frequency index LUT, wherein: (1) two symbols of the table are represented by no more than one common frequency index, (2) not more than one of the frequency indices representing a symbol reside in one audio critical band as defined by the MPEG-AA compression standard ISO/IEC 13818-7:1997, and (3) code frequencies of neighboring critical bands are not used to represent a single symbol. Criteria number 3 helps to ensure that audio quality is not compromised during the audio encoding process.


A critical band pair definer 702 defines a number (P) of critical band pairs. For example, referring to FIG. 9, a table 900 includes columns representing AAC critical band indices 902, short block indices 904 in the range of the AAC indices, and long block indices 906 in the range of the AAC indices. In one example, the value of P may be seven and, thus, seven critical band pairs are formed from the AAC indices (block 802). FIG. 10 shows the frequency relationship between the AAC indices. According to one example, as shown at reference numeral 1002 in FIG. 10 wherein frequencies of critical band pairs are shown as separated by dotted lines, AAC indices may be selected into pairs as follows: five and six, seven and eight, nine and ten, eleven and twelve, thirteen and fourteen, fifteen and sixteen, and seventeen and seventeen. The AAC index of seventeen includes a wide range of frequencies and, therefore, index 17 is shown twice, once for the low portion and once for the high portion.


A frequency definer 704 defines a number of frequencies (N) that are selected for use in each critical band pair. In one example, the value of N is sixteen, meaning that there are sixteen data positions in the combination of the critical bands that form each critical band pair. Reference numeral 1004 in FIG. 10 identifies the seventeen frequency positions are shown. The circled position four is reserved for synchronization information and, therefore, is not used for data.


A number generator 706 defines a number of frequency positions in the critical band pairs defined by the critical band pair definer 702. In one example the number generator 706 generates all NP, P-digit numbers. For example, if N is 16 and P is 7, the process generates the numbers 0 through 268435456, but may do so in base 16-hexadecimal, which would result in the values 0 through 10000000.


A redundancy reducer 708 then eliminates all number from the generated list of numbers sharing more than one common digit between them in the same position. This ensures compliance with criteria (1) above because, as described below, the digits will be representative of the frequencies selected to represent symbols. An excess reducer 710 may then further reduce the remaining numbers from the generated list of numbers to the number of needed symbols. For example, if the symbol space is 129 symbols, the remaining numbers are reduced to a count of 129. The reduction may be carried out at random, or by selecting remaining numbers with the greatest Euclidean distance, or my any other suitable data reduction technique. In another example, the reduction may be carried out in a pseudorandom manner.


After the foregoing reductions, the count of the list of numbers is equal to the number of symbols in the symbol space. Accordingly, a code frequency definer 712 defines the remaining numbers in base P format to represent frequency indices representative of symbols in the critical band pairs. For example, referring to FIG. 10, the hexadecimal number F1E4B0F is in base 16, which matches P. The first digit of the hexadecimal number maps to a frequency component in the first critical band pair, the second digit to the second critical band pair, and so on. Each digit represents the frequency index that will be used to represent the symbol corresponding to the hexadecimal number F1E4B0F.


Using the first hexadecimal number as an example of mapping to a particular frequency index, the decimal value of Fh is 15. Because position four of each critical band pair is reserved for non-data information, the value of any hexadecimal digit greater than four is incremented by the value of one decimal. Thus, the 15 becomes a 16. The 16 is thus designated (as shown with the asterisk in FIG. 10) as being the code frequency component in the first critical band pair to represent the symbol corresponding to the hexadecimal number F1E4B0F. Though not shown in FIG. 10, the index 1 position (e.g., the second position from the far left in the critical band 7 would be used to represent the hexadecimal number F1E4B0F.


A LUT filler 714 receives the symbol indications and corresponding code frequency component indications from the code frequency definer 712 and fills this information into a LUT.


An example code frequency index table generation process 800 is shown in FIG. 8. The process 800 may be implemented using the system of FIG. 7, or any other suitable configuration. The process 800 of FIG. 8 may be used to generate any number of LUTs, such as the LUT of FIGS. 3-5. While one example process 800 is shown, other processes may be used. The result of the process 800 is a code frequency index LUT, wherein: (1) two symbols of the table are represented by no more than one common frequency index, (2) not more than one of the frequency indices representing a symbol reside in one audio critical band as defined by the MPEG-AA compression standard ISO/IEC 13818-7:1997, and (3) code frequencies of neighboring critical bands are not used to represent a single symbol. Criteria number 3 helps to ensure that audio quality is not compromised during the audio encoding process.


The process 800 begins by defining a number (P) of critical band pairs. For example, referring to FIG. 9, a table 900 includes columns representing AAC critical band indices 902, short block indices 904 in the range of the AAC indices, and long block indices 906 in the range of the AAC indices. In one example, the value of P may be seven and, thus, seven critical band pairs are formed from the AAC indices (block 802). FIG. 10 shows the frequency relationship between the AAC indices. According to one example, as shown at reference numeral 1002 in FIG. 10 wherein frequencies of critical band pairs are shown as separated by dotted lines, AAC indices may be selected into pairs as follows: five and six, seven and eight, nine and ten, eleven and twelve, thirteen and fourteen, fifteen and sixteen, and seventeen and seventeen. The AAC index of seventeen includes a wide range of frequencies and, therefore, index 17 is shown twice, once for the low portion and once for the high portion.


After the band pairs have been defined (block 802), a number of frequencies (N) is selected for use in each critical band pair (block 804). In one example, the value of N is sixteen, meaning that there are sixteen data positions in the combination of the critical bands that form each critical band pair. As shown in FIG. 10 as reference numeral 1004, the seventeen frequency positions are shown. The circled position four is reserved for synchronization information and, therefore, is not used for data.


After the number of critical band pairs and the number of frequency positions in the pairs is defined, the process 800 generates all NP, P-digit numbers with no more than one hexadecimal digit in common (block 806). For example, if N is 16 and P is 7, the process generates the numbers 0 through 268435456, but may do so in base 16-hexadecimal, which would results in 0 through FFFFFFF, but does not include the numbers that share more than one common hexadecimal digit. This ensures compliance with criteria (1) above because, as described below, the digits will be representative of the frequencies selected to represent symbols.


According to an example process for determining a set of numbers that comply with criteria (1) above (and any other desired criteria), the numbers in the range from 0 to NP−1 are tested. First, the value corresponding to zero is stored as the first member of the result set R. Then, the numbers from 1 to NP−1 are selected for analysis to determine if they meet criteria (1) when compared to the members of R. Each number that meets criteria (1) when compared against all the current entries in R is added to the result set. In particular, according to the example process, in order to test a number K, each hexadecimal digit of interest in K is compared to the corresponding hexadecimal digit of interest in an entry M from the current result set. In the 7 comparisons not more than one hexadecimal digit of K should equal the corresponding hexadecimal digit of M. If, after comparing K against all numbers currently in the result set, no member of the latter has more than one common hexadecimal digit, then K is added to the result set R. The algorithm iterates through the set of possible numbers until all values meeting criteria (1) have been identified.


While the foregoing describes an example process for determining a set of numbers that meets criteria (1), any process or algorithm may be used and this disclosure is not limited to the process described above. For example, a process may use heuristics, rules, etc. to eliminate numbers from the set of numbers before iterating throughout the set. For example, all of the numbers where the relevant bits start with two 0's, two 1's, two 2's, etc. and end with two 0's, two 1's, two 2's, etc. could immediately be removed because they will definitely have a hamming distance less than 6. Additionally or alternatively, an example process may not iterate through the entire set of possible numbers. For example, a process could iterate until enough numbers are found (e.g., 128 numbers when 128 symbols are desired). In another implementation, the process may randomly select a first value for inclusion in the set of possible values and then may search iteratively or randomly through the remaining set of numbers until a value that meets the desired criteria (e.g., criteria (1)) is found.


The process 800 then selects the desired numbers from the generated values (block 810). For example, if the symbol space is 129 symbols, the remaining numbers are reduced to a count of 129. The reduction may be carried out at random, or by selecting remaining numbers with the greatest Euclidean distance, or my any other suitable data reduction technique.


After the foregoing reductions, the count of the list of numbers is equal to the number of symbols in the symbol space. Accordingly, the remaining numbers in base P format are defined to represent frequency indices representative of symbols in the critical band pairs (block 812). For example, referring to FIG. 10, the hexadecimal number F1E4B0F is in base 16, which matches P. The first digit of the hexadecimal number maps to a frequency component in the first critical band pair, the second digit to the second critical band pair, and so on. Each digit represents the frequency index that will be used to represent the symbol corresponding to the hexadecimal number F1E4B0F.


Using the first hexadecimal number as an example of mapping to a particular frequency index, the decimal value of Fh is 15. Because position four of each critical band pair is reserved for non-data information, the value of any hexadecimal digit greater than four is incremented by the value of one decimal. Thus, the 15 becomes a 16. The 16 is thus designated (as shown with the asterisk in FIG. 10) as being the code frequency component in the first critical band pair to represent the symbol corresponding to the hexadecimal number F1E4B0F. Though not shown in FIG. 10, the index 1 position (e.g., the second position from the far left in the critical band 7 would be used to represent the hexadecimal number F1E4B0F.


After assigning the representative code frequencies (block 812), the numbers are filled into a LUT (block 814).


Of course, the systems and processes described in conjunction with FIGS. 8-10 are only examples that may be used to generate LUTs having desired properties in conjunction the encoding and decoding systems described herein. Other configurations and processes may be used.


Audio Decoding


In general, the decoder 116 detects a code signal that was inserted into received audio to form encoded audio at the encoder 102. That is, the decoder 116 looks for a pattern of emphasis in code frequencies it processes. Once the decoder 116 has determined which of the code frequencies have been emphasized, the decoder 116 determines, based on the emphasized code frequencies, the symbol present within the encoded audio. The decoder 116 may record the symbols, or may decode those symbols into the codes that were provided to the encoder 102 for insertion into the audio.


In one implementation, the example decoder 116 of FIG. 11 may be implemented using, for example, a digital signal processor programmed with instructions to implement components of the decoder 116. Of course, any other implementation of the example decoder 116 is possible. For example, the decoder 116 may be implemented using one or more processors, programmable logic devices, or any suitable combination of hardware, software, and firmware.


As shown in FIG. 11, an example decoder 116 includes a sampler 1102, which may be implemented using an analog to digital converter (A/D) or any other suitable technology, to which encoded audio is provided in analog format. As shown in FIG. 1, the encoded audio may be provided by a wired or wireless connection to the receiver 110. The sampler 1102 samples the encoded audio at, for example, a sampling frequency of 8 KHz. Of course, other sampling frequencies may be advantageously selected in order to increase resolution or reduce the computational load at the time of decoding. At a sampling frequency of 8 KHz, the Nyquist frequency is 4 KHz and, therefore, all of the embedded code signal is preserved because its spectral frequencies are lower than the Nyquist frequency. The 9216-sample FFT long block length at 48 KHz sampling rate is reduced to 1536 samples at 8 KHz sampling rate. However even at this modified DFT block size, the code frequency indices are identical to the original encoding frequencies and range from 180 to 656.


The samples from the sampler 1102 are provided to a stacker 1104. In general, the stacker 1104 accentuates the code signal in the audio signal information by taking advantage of the fact that messages are repeated or substantially repeated (e.g., only the least significant bits are changed) for a period of time. For example, 42 bits (226 of FIG. 2) of the 49 bits (226 and 224) of the previously described example message of FIG. 2 remain constant for 64 seconds (32 2-second message intervals) when the 42 bits of data 226 in the message include a station identifier and a coarse time stamp which increments once every 64 seconds. The variable data in the last 7 bit group 232 represents time increments in seconds and, thus, varies from message to message. The example stacker 1104 aggregates multiple blocks of audio signal information to accentuate the code signal in the audio signal information. In an example implementation, the stacker 1104 comprises a buffer to store multiple samples of audio information. For example, if a complete message is embedded in two seconds of audio, the buffer may be twelve seconds long to store six messages. The example stacker 1104 additionally comprises an adder to sum the audio signal information associated with the six messages and a divider to divide the sum by the number of repeated messages selected (e.g., six).


By way of example, a watermarked signal y(t) can be represented by the sum of the host signal x(t) and watermark w(t):

y(t)=x(t)+w(t)


In the time domain, watermarks may repeat after a known period T:

w(t)=w(t−T)


According to an example stacking method, the input signal y(t) is replaced by a stacked signal S(t):







S

(
t
)

=



y

(
t
)

+

y

(

t
-
T

)

+

+

y

(

t
-


(

n
-
1

)


T


)


n





In the stacked signal S(t), the contribution of the host signal decreases because the values of samples x(t), x(t−T), . . . , x(t−nT) are independent if the period T is sufficiently large. At the same time, the contribution of the watermarks being made of, for example, in-phase sinusoids, is enhanced.







S

(
t
)

=




x

(
t
)

+

x

(

t
-
T

)

+

+

x

(

t
-


(

n
-
1

)


T


)


n

+

w

(
t
)






Assuming x(t), x(t−T), . . . , x(t−nT) are independent random variables drawn from the same distribution X with zero mean E[X]=0 we obtain:









lim

n





E
[



x

(
t
)

+

x

(

t
-
T

)

+

+

x

(

t
-


(

n
-
1

)


T


)


n

]



0

,





and






Var
[



x

(
t
)

+

x

(

t
-
T

)

+

+

x

(

t
-


(

n
-
1

)


T


)


n

]

=


Var

(
X
)

n





Accordingly, the underlying host signal contributions x(t), . . . , x(t−nT) will effectively be canceling each other while the watermark is unchanged allowing the watermark to be more easily detected.


In the illustrated example, the power of the resulting signal decreases linearly with the number of stacked signals n. Therefore, averaging over independent portions of the host signal can reduce the effects of interference. The watermark is not affected because it will always be added in-phase.


An example process for implementing the stacker 1104 is described in conjunction with FIG. 12.


The decoder 116 may additionally include a stacker controller 1106 to control the operation of the stacker 1104. The example stacker controller 1106 receives a signal indicating whether the stacker 1104 should be enabled or disabled. For example, the stacker controller 1106 may receive the received audio signal and may determine if the signal includes significant noise that will distort the signal and, in response to the determination, cause the stacker to be enabled. In another implementation, the stacker controller 1106 may receive a signal from a switch that can be manually controlled to enable or disable the stacker 1104 based on the placement of the decoder 116. For example, when the decoder 116 is wired to the receiver 110 or the microphone 120 is placed in close proximity to the speaker 114, the stacker controller 1106 may disable the stacker 1104 because stacking will not be needed and will cause corruption of rapidly changing data in each message (e.g., the least significant bits of a timestamp). Alternatively, when the decoder 116 is located at a distance from the speaker 114 or in another environment where significant interference may be expected, the stacker 1104 may be enabled by the stacker controller 1106. Of course, any type of desired control may be applied by the stacker controller 1106.


The output of the stacker 1104 is provided to a time to frequency domain converter 1108. The time to frequency domain converter 1108 may be implemented using a discrete Fourier transformation (DFT), or any other suitable technique to convert time-based information into frequency-based information. In one example, the time to frequency domain converter 1108 may be implemented using a sliding long block fast Fourier transform (FFT) in which a spectrum of the code frequencies of interest is calculated each time eight new samples are provided to the example time to time to frequency domain converter 1108. In one example, the time to frequency domain converter 1108 uses 1,536 samples of the encoded audio and determines a spectrum therefrom using 192 slides of eight samples each. The resolution of the spectrum produced by the time to frequency domain converter 1108 increases as the number of samples used to generate the spectrum is increased. Thus, the number of samples processed by the time to frequency domain converter 1108 should match the resolution used to select the indices in the tables of FIGS. 3-5.


The spectrum produced by the time to frequency domain converter 1108 passes to a critical band normalizer 1110, which normalizes the spectrum in each of the critical bands. In other words, the frequency with the greatest amplitude in each critical band is set to one and all other frequencies within each of the critical bands are normalized accordingly. For example, if critical band one includes frequencies having amplitudes of 112, 56, 56, 56, 56, 56, and 56, the critical band normalizer would adjust the frequencies to be 1, 0.5, 0.5, 0.5, 0.5, 0.5, and 0.5. Of course, any desired maximum value may be used in place of one for the normalization. The critical band normalizer 1110 outputs the normalized score for each of the frequencies of the interest.


The spectrum of scores produced by the critical band normalizer 1110 is passed to the symbol scorer 1112, which calculates a total score for each of the possible symbols in the active symbol table. In an example implementation, the symbol scorer 1112 iterates through each symbol in the symbol table and sums the normalized score from the critical band normalizer 1110 for each of the frequencies of interest for the particular symbol to generate a score for the particular symbol. The symbol scorer 1112 outputs a score for each of the symbols to the max score selector 1114, which selects the symbol with the greatest score and outputs the symbol and the score.


The identified symbol and score from the max score selector 1114 are passed to the comparator 1116, which compares the score to a threshold. When the score exceeds the threshold, the comparator 1116 outputs the received symbol. When the score does not exceed the threshold, the comparator 1116 outputs an error indication. For example, the comparator 1116 may output a symbol indicating an error (e.g., a symbol not included in the active symbol table) when the score does not exceed the threshold. Accordingly, when a message has been corrupted such that a great enough score (i.e., a score that does not exceed the threshold) is not calculated for a symbol, an error indication is provided. In an example implementation, error indications may be provided to the stacker controller 1106 to cause the stacker 1104 to be enabled when a threshold number of errors are identified (e.g., number of errors over a period of time, number of consecutive errors, etc.).


The identified symbol or error from the comparator 1116 is passed to the circular buffers 1118 and the pre-existing code flag circular buffers 1120. An example implementation of the standard buffers 1118 is described in conjunction with FIG. 15. The example circular buffers 1118 comprise one circular buffer for each slide of the time domain to frequency domain converter 1108 (e.g., 192 buffers). Each circular buffer of the circular buffers 1118 includes one storage location for the synchronize symbol and each of the symbol blocks in a message (e.g., eight block messages would be stored in eight location circular buffers) so that an entire message can be stored in each circular buffer. Accordingly, as the audio samples are processed by the time domain to frequency domain converter 1108, the identified symbols are stored in the same location of each circular buffer until that location in each circular buffer has been filled. Then, symbols are stored in the next location in each circular buffer. In addition to storing symbols, the circular buffers 1118 may additionally include a location in each circular buffer to store a sample index indicating the sample in the audio signal that was received that resulted in the identified symbol.


The example pre-existing code flag circular buffers 1120 are implemented in the same manner as the circular buffers 1118, except the pre-existing code flag circular buffers 1120 include one location for the pre-existing code flag synchronize symbol and one location for each symbols in the pre-existing code flag message (e.g., an pre-existing code flag synchronize that includes one message symbol would be stored in two location circular buffers). The pre-existing code flag circular buffers 1120 are populated at the same time and in the same manner as the circular buffers 1118.


The example message identifier 1122 analyzes the circular buffers 1118 and the pre-existing code flag circular buffers 1120 for a synchronize symbol. For example, the message identifier 1122 searches for a synchronize symbol in the circular buffers 1118 and an pre-existing code flag synchronize symbol in the pre-existing code flag circular buffers 1120. When a synchronize symbol is identified, the symbols following the synchronize symbol (e.g., seven symbols after a synchronize symbol in the circular buffers 1118 or one symbol after an pre-existing code flag synchronize symbol in the pre-existing code flag circular buffers 1120) are output by the message identifier 1122. In addition, the sample index identifying the last audio signal sample processed is output.


The message symbols and the sample index output by the message identifier 1122 are passed to the validator 1124, which validates each message. The validator 1124 includes a filter stack that stores several consecutively received messages. Because messages are repeated (e.g., every 2 seconds or 16,000 samples at 8 KHz), each message is compared with other messages in the filter stack that are separated by approximately the number of audio samples in a single message to determine if a match exists. If a match or substantial match exists, both messages are validated. If a message cannot be identified, it is determined that the message is an error and is not emitted from the validator 1124. In cases where messages might be affected by noise interference, messages might be considered a match when a subset of symbols in a message match the same subset in another already validated message. For example, if four of seven symbols in a message match the same four symbols in another message that has already been validated, the message can be identified as partially validated. Then, a sequence of the repeated messages can be observed to identify the non-matching symbols in the partially validated message.


The validated messages from the validator 1124 are passed to the symbol to bit converter 1126, which translates each symbol to the corresponding data bits of the message using the active symbol table.


An example decoding process 1200 is shown in FIG. 12. The example process 1200 may be carried out by the example decoder 116 shown in FIG. 11, or by any other suitable decoder. The example process 1200 begins by sampling audio (block 1202). The audio may be obtained via an audio sensor, a hardwired connection, via an audio file, or through any other suitable technique. As explained above the sampling may be carried out at 8,000 Hz, or any other suitable frequency.


As each sample is obtained, the sample is aggregated by a stacker such as the example stacker 1104 of FIG. 11 (block 1204). An example process for performing the stacking is described in conjunction with FIG. 13.


The new stacked audio samples from the stacker process 1204 are inserted into a buffer and the oldest audio samples are removed (block 1206). As each sample is obtained, a sliding time to frequency conversion is performed on a collection of samples including numerous older samples and the newly added sample obtained at blocks 1202 and 1204 (block 1208). In one example, a sliding FFT may be used to process streaming input samples including 9215 old samples and the one newly added sample. In one example, the FFT using 9216 samples results in a spectrum having a resolution of 5.2 Hz.


After the spectrum is obtained through the time to frequency conversion (block 1208), the transmitted symbol is determined (block 1210). An example process for determining the transmitted symbol is described in conjunction with FIG. 14.


After the transmitted message is identified (block 1210), buffer post processing is performed to identify a synchronize symbol and corresponding message symbols (block 1212). An example process for performing post-processing is described in conjunction with FIG. 15.


After post processing is performed to identify a transmitted message (block 1212), message validation is performed to verify the validity of the message (block 1214). An example process for performing the message validation is described in conjunction with FIG. 18.


After a message has been validated (block 1214), the message is converted from symbols to bits using the active symbol table (block 1216). Control then returns to block 1106 to process the next set of samples.



FIG. 13 illustrates an example process for stacking audio signal samples to accentuate an encoded code signal to implement the stack audio process 1204 of FIG. 12. The example process may be carried out by the stacker 1104 and the stacker controller 1106 of FIG. 11. The example process begins by determining if the stacker control is enabled (block 1302). When the stacker control is not enabled, no stacking is to occur and the process of FIG. 13 ends and control returns to block 1206 of FIG. 12 to process the audio signal samples unstacked.


When the stacker control is enabled, newly received audio signal samples are pushed into a buffer and the oldest samples are pushed out (block 1304). The buffer stores a plurality of samples. For example, when a particular message is repeatedly encoded in an audio signal every two seconds and the encoded audio is sampled at 8 KHz, each message will repeat every 16,000 samples so that buffer will store some multiple of 16,000 samples (e.g., the buffer may store six messages with a 96,000 sample buffer). Then, the stacker 1108 selects substantially equal blocks of samples in the buffer (block 1306). The substantially equal blocks of samples are then summed (block 1308). For example, sample one is added to samples 16,001, 32,001, 48,001, 64,001, and 80,001, sample two is added to samples 16,002, 32,002, 48,002, 64,002, 80,002, sample 16,000 is added to samples 32,000, 48,000, 64,000, 80,000, and 96,000.


After the audio signal samples in the buffer are added, the resulting sequence is divided by the number of blocks selected (e.g., six blocks) to calculate an average sequence of samples (e.g., 16,000 averaged samples) (block 1310). The resulting average sequence of samples is output by the stacker (block 1312). The process of FIG. 13 then ends and control returns to block 1206 of FIG. 12.



FIG. 14 illustrates an example process for implementing the symbol determination process 1210 after the received audio signal has been converted to the frequency domain. The example process of FIG. 14 may be performed by the decoder 116 of FIGS. 1 and 11. The example process of FIG. 14 begins by normalizing the code frequencies in each of the critical bands (block 1402). For example, the code frequencies may be normalized so that the frequency with the greatest amplitude is set to one and all other frequencies in that critical band are adjusted accordingly. In the example decoder 116 of FIG. 11, the normalization is performed by the critical band normalizer 1110.


After the frequencies of interest have been normalized (block 1402). The example symbol scorer 1112 selects the appropriate symbol table based on the previously determined synchronization table (block 1404). For example, a system may include two symbol tables: one table for a normal synchronization and one table for an pre-existing code flag synchronization. Alternatively, the system may include a single symbol table or may include multiple synchronization tables that may be identified by synchronization symbols (e.g., cross-table synchronization symbols). The symbol scorer 1112 then computes a symbol score for each symbol in the selected symbol table (block 1406). For example, the symbol scorer 1112 may iterate across each symbol in the symbol table and add the normalized scores for each of the frequencies of interest for the symbol to compute a symbol score.


After each symbol is scored (block 1406), the example max score selector 1114 selects the symbol with the greatest score (block 1408). The example comparator 1116 then determines if the score for the selected symbol exceeds a maximum score threshold (block 1410). When the score does not exceed the maximum score threshold, an error indication is stored in the circular buffers (e.g., the circular buffers 1118 and the pre-existing code flag circular buffers 1120) (block 1412). The process of FIG. 14 then completes and control returns to block 1212 of FIG. 12.


When the score exceeds the maximum score threshold (block 1410), the identified symbol is stored in the circular buffers (e.g., the circular buffers 1118 and the pre-existing code flag circular buffers 1120) (block 1414). The process of FIG. 14 then completes and control returns to block 1212 of FIG. 12.



FIG. 15 illustrates an example process for implementing the buffer post processing 1212 of FIG. 12. The example process of FIG. 15 begins when the message identifier 1122 of FIG. 11 searches the circular buffers 1118 and the circular buffers 1120 for a synchronization indication (block 1502).


For example, FIG. 16 illustrates an example implementation of circular buffers 1118 and FIG. 17 illustrates an example implementation of pre-existing code flag circular buffers 1120. In the illustrated example of FIG. 16, the last location in the circular buffers to have been filled is location three as noted by the arrow. Accordingly, the sample index indicates the location in the audio signal samples that resulted in the symbols stored in location three. Because the line corresponding to sliding index 37 is a circular buffer, the consecutively identified symbols are 128, 57, 22, 111, 37, 23, 47, and 0. Because 128 in the illustrated example is a synchronize symbol, the message can be identified as the symbols following the synchronize symbol. The message identifier 1122 would wait until 7 symbols have been located following the identification of the synchronization symbol at sliding index 37.


The pre-existing code flag circular buffers 1120 of FIG. 17 include two locations for each circular buffer because the pre-existing code flag message of the illustrated example comprises one pre-existing code flag synchronize symbol (e.g., symbol 254) followed by a single message symbol. According to the illustrated example of FIG. 2, the pre-existing code flag data block 230 is embedded in two long blocks immediately following the 7 bit timestamp long block 228. Accordingly, because there are two long blocks for the pre-existing code flag data and each long block of the illustrated example is 1,536 samples at a sampling rate of 8 KHz, the pre-existing code flag data symbol will be identified in the pre-existing code flag circular buffers 3072 samples after the original message. In the illustrated example FIG. 17, sliding index 37 corresponds to sample index 38744, which is 3072 samples later than sliding index 37 of FIG. 16 (sample index 35672). Accordingly, the pre-existing code flag data symbol 68 can be determined to correspond to the message in sliding index 37 of FIG. 16, indicating that the message in sliding index 37 of FIG. 16 identifies an original encoded message (e.g., identifies an original broadcaster of audio) and the sliding index 37 identifies an pre-existing code flag message (e.g., identifies a re-broadcaster of audio).


Returning to FIG. 12, after a synchronize or pre-existing code flag synchronize symbol is detected, messages in the circular buffers 1118 or the pre-existing code flag circular buffers 1120 are condensed to eliminate redundancy in the messages. For example, as illustrated in FIG. 16, due to the sliding time domain to frequency domain conversion and duration of encoding for each message, messages are identified in audio data for a period of time (sliding indexes 37-39 contain the same message). The identical messages in consecutive sliding indexes can be condensed into a single message because they are representative of only one encoded message. Alternatively, condensing may be eliminated and all messages may be output when desired. The message identifier 1122 then stores the condensed messages in a filter stack associated with the validator 1124 (block 1506). The process of FIG. 15 then ends and control returns to block 1214 of FIG. 12.



FIG. 18 illustrates an example process to implement the message validation process 1214 of FIG. 12. The example process of FIG. 12 may be performed by the validator 1124 of FIG. 11. The example process of FIG. 18 begins when the validator 1124 reads the top message in the filter stack (block 1802).


For example, FIG. 19 illustrates an example implementation of a filter stack. The example filter stack includes a message index, seven symbol locations for each message index, a sample index identification, and a validation flag for each message index. Each message is added at message index M7 and a message at location M0 is the top message that is read in block 1802 of FIG. 18. Due to sampling rate variation and variation of the message boundary within a message identification, it is expected that messages will be separated by samples indexes of multiples of approximately 16,000 samples when messages are repeated every 16,000 samples.


Returning to FIG. 19, after the top message in the filter stack is selected (block 1802), the validator 1124 determines if the validation flag indicates that the message has been previously validated (block 1804). For example, FIG. 19 indicates that message M0 has been validated. When the message has been previously validated, the validator 1124 outputs the message (block 1812) and control proceeds to block 1816.


When the message has not been previously validated (block 1804), the validator 1124 determines if there is another suitably matching message in the filter stack (block 1806). A message may be suitably matching when it is identical to another message, when a threshold number of message symbols match another message (e.g., four of the seven symbols), or when any other error determination indicates that two messages are similar enough to speculate that they are the same. According to the illustrated example, messages can only be partially validated with another message that has already been validated. When a suitable match is not identified, control proceeds to block 1814.


When a suitable match is identified, the validator 1124 determines if a time duration (e.g., in samples) between identical messages is proper (block 1808). For example, when messages are repeated every 16,000 samples, it is determined if the separation between two suitably matching messages is approximately a multiple of 16,000 samples. When the time duration is not proper, control proceeds to block 1814.


When the time duration is proper (block 1808), the validator 1124 validates both messages by setting the validation flag for each of the messages (block 1810). When the message has been validated completely (e.g., an exact match) the flag may indicate that the message is fully validated (e.g., the message validated in FIG. 19). When the message has only been partially validated (e.g., only four of seven symbols matched), the message is marked as partially validated (e.g., the message partially validated in FIG. 19). The validator 1124 then outputs the top message (block 1812) and control proceeds to block 1816.


When it is determined that there is not a suitable match for the top message (block 1806) or that the time duration between a suitable match(es) is not proper (block 1808), the top message is not validated (block 1814). Messages that are not validated are not output from the validator 1124.


After determining not to validate a message (blocks 1806, 1808, and 1814) or outputting the top message (block 1812), the validator 1816 pops the filter stack to remove the top message from the filter stack. Control then returns to block 1802 to process the next message at the top of the filter stack.


While example manners of implementing any or all of the example encoder 102 and the example decoder 116 have been illustrated and described above one or more of the data structures, elements, processes and/or devices illustrated in the drawings and described above may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example encoder 102 and example decoder 116 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, the example encoder 102 and the example decoder 116 could be implemented by one or more circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)), etc. For example, the decoder 116 may be implemented using software on a platform device, such as a mobile telephone. If any of the appended claims is read to cover a purely software implementation, at least one of the prior code detector 204, the example message generator 210, the symbol selector 212, the code frequency selector 214, the synthesizer 216, the inverse FFT 218, the mixer 220, the overlapping short block maker 240, the masking evaluator 242, the critical band pair definer 702, the frequency definer 704, the number generator 706, the redundancy reducer 708, the excess reducer 710, the code frequency definer 712, the LUT filler 714, the sampler 1102, the stacker 1104, the stacker control 1106, the time domain to frequency domain converter 1108, the critical band normalize 1110, the symbol scorer 1112, the max score selector 1114, the comparator 1116, the circular buffers 1118, the pre-existing code flag circular buffers 1120, the message identifier 1122, the validator 1124, and the symbol to bit converter 1126 are hereby expressly defined to include a tangible medium such as a memory, DVD, CD, etc. Further still, the example encoder 102 and the example decoder 116 may include data structures, elements, processes and/or devices instead of, or in addition to, those illustrated in the drawings and described above, and/or may include more than one of any or all of the illustrated data structures, elements, processes and/or devices.



FIG. 20 is a schematic diagram of an example processor platform 2000 that may be used and/or programmed to implement any or all of the example encoder 102 and the decoder 116, and/or any other component described herein. For example, the processor platform 2000 can be implemented by one or more general purpose processors, processor cores, microcontrollers, etc. Additionally, the processor platform 2000 be implemented as a part of a device having other functionality. For example, the processor platform 2000 may be implemented using processing power provided in a mobile telephone, or any other handheld device.


The processor platform 2000 of the example of FIG. 20 includes at least one general purpose programmable processor 2005. The processor 2005 executes coded instructions 2010 and/or 2012 present in main memory of the processor 2005 (e.g., within a RAM 2015 and/or a ROM 2020). The processor 2005 may be any type of processing unit, such as a processor core, a processor and/or a microcontroller. The processor 2005 may execute, among other things, example machine accessible instructions implementing the processes described herein. The processor 2005 is in communication with the main memory (including a ROM 2020 and/or the RAM 2015) via a bus 2025. The RAM 2015 may be implemented by DRAM, SDRAM, and/or any other type of RAM device, and ROM may be implemented by flash memory and/or any other desired type of memory device. Access to the memory 2015 and 2020 may be controlled by a memory controller (not shown).


The processor platform 2000 also includes an interface circuit 2030. The interface circuit 2030 may be implemented by any type of interface standard, such as a USB interface, a Bluetooth interface, an external memory interface, serial port, general purpose input/output, etc. One or more input devices 2035 and one or more output devices 2040 are connected to the interface circuit 2030.


Although certain example apparatus, methods, and articles of manufacture are described herein, other implementations are possible. The scope of coverage of this patent is not limited to the specific examples described herein. On the contrary, this patent covers all apparatus, methods, and articles of manufacture falling within the scope of the invention.

Claims
  • 1. An apparatus to transform media content into a message, the apparatus comprising: memory;computer readable instructions; andone or more processors configured to execute the computer readable instructions to at least: detect a first symbol, a second symbol, a third symbol, and a fourth symbol sequentially in encoded audio samples;determine whether the first symbol is a synchronization symbol;in response to a determination that the first symbol is a synchronization symbol, determine that the first symbol and the third symbol are associated with a first message and the second symbol and the fourth symbol are associated with a second message; andoutput at least one of the first message or the second message in response to a determination that a number of audio samples between the first message and the second message corresponds to an encoding repetition rate.
  • 2. The apparatus as defined in claim 1, wherein the one or more processors are configured to store the first symbol, the second symbol, the third symbol, and the fourth symbol in at least one circular buffer.
  • 3. The apparatus as defined in claim 1, wherein the one or more processors are configured to store the first symbol in a first location of a first circular buffer, the second symbol in a second location in a second circular buffer, the third symbol in a third location in the first circular buffer, and the fourth symbol in a fourth location in the second circular buffer, the first location of the first circular buffer corresponding to the second location in the second circular buffer and the third location in the first circular buffer corresponding to the fourth location in the second circular buffer, the first circular buffer and the second circular buffer corresponding to a first set of circular buffers.
  • 4. The apparatus as defined in claim 3, wherein the one or more processors are configured to store the first symbol, the second symbol, the third symbol, and the fourth symbol as a data symbol in a second set of circular buffers different from the first set of circular buffers.
  • 5. The apparatus as defined in claim 4, wherein the one or more processors are configured to: determine whether the first symbol is a pre-existing code synchronization symbol; andin response to a determination that the first symbol is the pre-existing code synchronization symbol, determine that the encoded audio samples include a first set of encoded messages and a second set of encoded messages that were encoded in the encoded audio samples prior to the first set of encoded messages being encoded.
  • 6. The apparatus as defined claim 5, wherein the one or more processors are configured to, in response to the determination that the first symbol is the pre-existing code synchronization symbol, identify the second set of encoded messages based on the data symbol in the second set of circular buffers.
  • 7. The apparatus as defined in claim 1, wherein the one or more processors are configured to: determine whether the first message matches the second message; andin response to a determination that the first message matches the second message, output a single message corresponding to the first message and the second message.
  • 8. A non-transitory computer readable medium comprising instructions to cause a machine to at least: detect a first symbol, a second symbol, a third symbol, and a fourth symbol sequentially in encoded audio samples;determine whether the first symbol is a synchronization symbol;in response to a determination that the first symbol is a synchronization symbol, determine that the first symbol and the third symbol are associated with a first message and the second symbol and the fourth symbol are associated with a second message; andoutput at least one of the first message or the second message in response to a determination that a number of audio samples between the first message and the second message corresponds to an encoding repetition rate.
  • 9. The non-transitory computer readable medium as defined in claim 8, wherein the instructions, when executed, cause the machine to store the first symbol, the second symbol, the third symbol, and the fourth symbol in at least one circular buffer.
  • 10. The non-transitory computer readable medium as defined in claim 8, wherein the instructions, when executed, further cause the machine to store the first symbol in a first location of a first circular buffer, the second symbol in a second location in a second circular buffer, the third symbol in a third location in the first circular buffer, and the fourth symbol in a fourth location in the second circular buffer, the first location of the first circular buffer corresponding to the second location in the second circular buffer and the third location in the first circular buffer corresponding to the fourth location in the second circular buffer, the first circular buffer and the second circular buffer corresponding to a first set of circular buffers.
  • 11. The non-transitory computer readable medium as defined in claim 10, wherein the instructions, when executed, further cause the machine to store the first symbol, the second symbol, the third symbol, and the fourth symbol as a data symbol in a second set of circular buffers different from the first set of circular buffers.
  • 12. The non-transitory computer readable medium as defined in claim 11, wherein the instructions, when executed, further cause the machine to store to: determine whether the first symbol is a pre-existing code synchronization symbol; andin response to a determination that the first symbol is the pre-existing code synchronization symbol, determine that the encoded audio samples include a first set of encoded messages and a second set of encoded messages that were encoded in the encoded audio samples prior to the first set of encoded messages being encoded.
  • 13. The non-transitory computer readable medium as defined in claim 12, wherein the instructions, when executed, further cause the machine to, in response to the determination that the first symbol is the pre-existing code synchronization symbol, identify the second set of encoded messages based on the data symbol in the second set of circular buffers.
  • 14. The non-transitory computer readable medium as defined in claim 11, wherein the instructions, when executed, further cause the machine to: determine whether the first message matches the second message; andin response to a determination that the first message matches the second message, output a single message corresponding to the first message and the second message.
  • 15. A method to transform media content into a message, the method comprising: detecting a first symbol, a second symbol, a third symbol, and a fourth symbol sequentially in encoded audio samples;determining whether the first symbol is a synchronization symbol;in response to a determination that the first symbol is a synchronization symbol, determining that the first symbol and the third symbol are associated with a first message and the second symbol and the fourth symbol are associated with a second message; andoutputting at least one of the first message or the second message in response to a determination that a number of audio samples between the first message and the second message corresponds to an encoding repetition rate.
  • 16. The method as defined in claim 15, further including storing the first symbol, the second symbol, the third symbol, and the fourth symbol in at least one circular buffer.
  • 17. The method as defined in claim 15, further including storing the first symbol in a first location of a first circular buffer, the second symbol in a second location in a second circular buffer, the third symbol in a third location in the first circular buffer, and the fourth symbol in a fourth location in the second circular buffer, the first location of the first circular buffer corresponding to the second location in the second circular buffer and the third location in the first circular buffer corresponding to the fourth location in the second circular buffer, the first circular buffer and the second circular buffer corresponding to a first set of circular buffers.
  • 18. The method as defined in claim 17, further including storing the first symbol, the second symbol, the third symbol, and the fourth symbol as a data symbol in a second set of circular buffers different from the first set of circular buffers.
  • 19. The method as defined in claim 18, further including: determining whether the first symbol is a pre-existing code synchronization symbol; andin response to a determination that the first symbol is the pre-existing code synchronization symbol, determining that the encoded audio samples include a first set of encoded messages and a second set of encoded messages that were encoded in the encoded audio samples prior to the first set of encoded messages being encoded.
  • 20. The method as defined in claim 19, further including, in response to the determination that the first symbol is the pre-existing code synchronization symbol, identifying the second set of encoded messages based on the data symbol in the second set of circular buffers.
RELATED APPLICATIONS

This patent arises from a continuation of U.S. patent application Ser. No. 16/182,321, filed Nov. 6, 2018, now U.S. Pat. No. 11,386,908, titled “METHODS AND APPARATUS TO PERFORM AUDIO WATERMARKING AND WATERMARK DETECTION AND EXTRACTION,” which is a continuation of U.S. patent application Ser. No. 15/331,168, filed Oct. 21, 2016, now U.S. Pat. No. 10,134,408, titled “METHODS AND APPARATUS TO PERFORM AUDIO WATERMARKING AND WATERMARK DETECTION AND EXTRACTION,” which is a continuation of U.S. patent application Ser. No. 12/464,811, filed May 12, 2009, now U.S. Pat. No. 9,667,365, titled “METHODS AND APPARATUS TO PERFORM AUDIO WATERMARKING AND WATERMARK DETECTION AND EXTRACTION,” which claims priority to and the benefit of U.S. Provisional Application No. 61/174,708 filed May 1, 2009, titled “METHODS AND APPARATUS TO PERFORM AUDIO WATERMARKING AND WATERMARK DETECTION AND EXTRACTION” and U.S. Provisional Application No. 61/108,380, filed Oct. 24, 2008, titled “STACKING METHOD FOR ADVANCED WATERMARK DETECTION.” Priority to U.S. patent application Ser. No. 16/182,321, U.S. patent application Ser. No. 15/331,168, U.S. patent application Ser. No. 12/464,811, U.S. Provisional Application No. 61/174,708, and U.S. Provisional Application No. 61/108,380 is hereby claimed. U.S. patent application Ser. No. 16/182,321, U.S. patent application Ser. No. 15/331,168, U.S. patent application Ser. No. 12/464,811, U.S. Provisional Application No. 61/174,708, and U.S. Provisional Patent Application No. 61/108,380 are incorporated by reference herein in their entireties.

US Referenced Citations (556)
Number Name Date Kind
1742397 Kauffmann Jan 1930 A
4230990 Lert, Jr. Oct 1980 A
4647974 Butler et al. Mar 1987 A
4677466 Lert, Jr. Jun 1987 A
4697209 Kiewit et al. Sep 1987 A
4745468 Von Kohorn May 1988 A
4876592 Von Kohorn Oct 1989 A
4876736 Kiewit Oct 1989 A
4926255 Von Kohorn May 1990 A
4973952 Malec et al. Nov 1990 A
5019899 Boles et al. May 1991 A
5023929 Call Jun 1991 A
5034807 Von Kohorn Jul 1991 A
5057915 Von Kohorn Oct 1991 A
5081680 Bennett Jan 1992 A
5117228 Fuchigami et al. May 1992 A
5128752 Von Kohorn Jul 1992 A
5157489 Lowe Oct 1992 A
5227874 Von Kohorn Jul 1993 A
5234345 Weinblatt Aug 1993 A
5245665 Lewis et al. Sep 1993 A
5249044 Von Kohorn Sep 1993 A
5283734 Von Kohorn Feb 1994 A
5287266 Malec et al. Feb 1994 A
5331544 Lu et al. Jul 1994 A
5373315 Dufresne et al. Dec 1994 A
5382970 Kiefl Jan 1995 A
5401946 Weinblatt Mar 1995 A
5425100 Thomas et al. Jun 1995 A
5444769 Koen et al. Aug 1995 A
5450490 Jensen et al. Sep 1995 A
5453790 Vermeulen et al. Sep 1995 A
5481294 Thomas et al. Jan 1996 A
5483276 Brooks et al. Jan 1996 A
5485199 Elkind et al. Jan 1996 A
5512933 Wheatley et al. Apr 1996 A
5524195 Clanton, III Jun 1996 A
5526427 Thomas et al. Jun 1996 A
5543856 Rosser et al. Aug 1996 A
5574962 Fardeau et al. Nov 1996 A
5579124 Aijala et al. Nov 1996 A
5581800 Fardeau et al. Dec 1996 A
5594934 Lu et al. Jan 1997 A
5629739 Dougherty May 1997 A
5659366 Kerman Aug 1997 A
5666293 Metz et al. Sep 1997 A
5675510 Coffey et al. Oct 1997 A
5682196 Freeman Oct 1997 A
5719634 Keery et al. Feb 1998 A
5719880 Leung Feb 1998 A
5734413 Lappington et al. Mar 1998 A
5740035 Cohen et al. Apr 1998 A
5764763 Jensen et al. Jun 1998 A
5768680 Thomas Jun 1998 A
5787334 Fardeau et al. Jul 1998 A
5801747 Bedard Sep 1998 A
5815671 Morrison Sep 1998 A
5841978 Rhoads Nov 1998 A
5848155 Cox Dec 1998 A
5850249 Massetti et al. Dec 1998 A
5872588 Aras et al. Feb 1999 A
5878384 Johnson et al. Mar 1999 A
5880789 Inaba Mar 1999 A
5889548 Chan Mar 1999 A
5893067 Bender et al. Apr 1999 A
5907366 Farmer et al. May 1999 A
5918223 Blum et al. Jun 1999 A
5930369 Cox et al. Jul 1999 A
5933789 Byun et al. Aug 1999 A
5956674 Smyth et al. Sep 1999 A
5956716 Kenner et al. Sep 1999 A
5956743 Bruce et al. Sep 1999 A
5966120 Arazi et al. Oct 1999 A
5974380 Smyth et al. Oct 1999 A
5974396 Anderson et al. Oct 1999 A
5978855 Metz et al. Nov 1999 A
5987855 Dey et al. Nov 1999 A
6005490 Higashihara Dec 1999 A
6029045 Picco et al. Feb 2000 A
6034722 Viney et al. Mar 2000 A
6035177 Moses et al. Mar 2000 A
6049830 Saib Apr 2000 A
6055573 Gardenswartz et al. Apr 2000 A
6097441 Allport Aug 2000 A
6108637 Blumenau Aug 2000 A
6115680 Coffee et al. Sep 2000 A
6119092 Patwardhan Sep 2000 A
6125368 Bridge Sep 2000 A
6128597 Kolluru et al. Oct 2000 A
6154209 Naughton et al. Nov 2000 A
6154571 Cox Nov 2000 A
6157413 Hanafee et al. Dec 2000 A
6208735 Cox Mar 2001 B1
6216129 Eldering Apr 2001 B1
6221881 Garvey Apr 2001 B1
6263505 Walker Jul 2001 B1
6266815 Shen Jul 2001 B1
6286036 Rhoads Sep 2001 B1
6286140 Ivanyi Sep 2001 B1
6291559 Krinski Sep 2001 B1
6298348 Eldering Oct 2001 B1
6300888 Chen Oct 2001 B1
6308327 Liu Oct 2001 B1
6311876 Liu Nov 2001 B1
6331876 Koster Dec 2001 B1
6335736 Wagner Jan 2002 B1
6353929 Houston Mar 2002 B1
6363159 Rhoads Mar 2002 B1
6389055 August May 2002 B1
6400827 Rhoads Jun 2002 B1
6411725 Rhoads Jun 2002 B1
6421445 Jensen Jul 2002 B1
6457010 Eldering Sep 2002 B1
6466913 Yasuda Oct 2002 B1
6467089 Aust Oct 2002 B1
6487564 Asai Nov 2002 B1
6505160 Levy Jan 2003 B1
6507299 Nuijten Jan 2003 B1
6512836 Xie Jan 2003 B1
6513014 Walker Jan 2003 B1
6516079 Rhoads Feb 2003 B1
6522771 Rhoads Feb 2003 B2
6526385 Kobayashi Feb 2003 B1
6539095 Rhoads Mar 2003 B1
6546556 Kataoka Apr 2003 B1
6553127 Kurowski Apr 2003 B1
6553178 Abecassis Apr 2003 B2
6606605 Kolls Aug 2003 B1
6607136 Atsmon Aug 2003 B1
6614914 Rhoads Sep 2003 B1
6621881 Srinivasan Sep 2003 B2
6642966 Limaye Nov 2003 B1
6645873 Shimizu Nov 2003 B2
6647269 Hendrey Nov 2003 B2
6647548 Lu Nov 2003 B1
6651253 Dudkiewicz Nov 2003 B2
6654480 Rhoads Nov 2003 B2
6665873 Van Gestel Dec 2003 B1
6675383 Wheeler Jan 2004 B1
6681209 Schmidt Jan 2004 B1
6683966 Tian Jan 2004 B1
6687663 McGrath Feb 2004 B1
6710815 Billmaier Mar 2004 B1
6714683 Tian Mar 2004 B1
6735775 Massetti May 2004 B1
6741684 Kaars May 2004 B2
6745011 Hendrickson Jun 2004 B1
6748362 Meyer Jun 2004 B1
6750985 Rhoads Jun 2004 B2
6754470 Hendrickson Jun 2004 B2
6766523 Herley Jul 2004 B2
6795972 Rovira Sep 2004 B2
6804379 Rhoads Oct 2004 B2
6804566 Colomes Oct 2004 B1
6823310 Ishito Nov 2004 B2
6829368 Meyer Dec 2004 B2
6845360 Jensen Jan 2005 B2
6853634 Davies Feb 2005 B1
6871180 Neuhauser Mar 2005 B1
6871323 Wagner Mar 2005 B2
6873688 Aarnio Mar 2005 B1
6941275 Swierczek Sep 2005 B1
6956575 Nakazawa Oct 2005 B2
6958710 Zhang Oct 2005 B2
6965601 Nakano Nov 2005 B1
6968315 Nakisa Nov 2005 B1
6968371 Srinivasan Nov 2005 B1
6968564 Srinivasan Nov 2005 B1
6970131 Percy Nov 2005 B2
6970886 Conwell Nov 2005 B1
6996213 De Jong Feb 2006 B1
7003731 Rhoads Feb 2006 B1
7006555 Srinivasan Feb 2006 B1
7020285 Kirovski Mar 2006 B1
7038619 Percy May 2006 B2
7039932 Eldering May 2006 B2
7050603 Rhoads May 2006 B2
7051086 Rhoads May 2006 B2
7058697 Rhoads Jun 2006 B2
7082434 Gosselin Jul 2006 B2
7092964 Dougherty Aug 2006 B1
7095871 Jones Aug 2006 B2
7127261 Van Erlach Oct 2006 B2
7131007 Johnston Oct 2006 B1
7131077 Roxby et al. Oct 2006 B1
7143949 Hannigan Dec 2006 B1
7155159 Weinblatt Dec 2006 B1
7155210 Benson Dec 2006 B2
7158943 Van Der Riet Jan 2007 B2
7171018 Rhoads Jan 2007 B2
7174293 Kenyon Feb 2007 B2
7185201 Rhoads Feb 2007 B2
7194752 Kenyon Mar 2007 B1
7197156 Levy Mar 2007 B1
7203338 Ramaswamy Apr 2007 B2
7215280 Percy May 2007 B1
7221405 Basson May 2007 B2
7227972 Brundage Jun 2007 B2
7239981 Kolessar Jul 2007 B2
7248715 Levy Jul 2007 B2
7254249 Rhoads Aug 2007 B2
7260221 Atsmon Aug 2007 B1
7269564 Milsted Sep 2007 B1
7269734 Johnson Sep 2007 B1
7273978 Uhle Sep 2007 B2
7280970 Tamir Oct 2007 B2
7317716 Boni Jan 2008 B1
7328153 Wells Feb 2008 B2
7328160 Nishio Feb 2008 B2
7334735 Antebi Feb 2008 B1
7346512 Li-Chun Wang Mar 2008 B2
7356700 Noridomi Apr 2008 B2
7363278 Schmelzer Apr 2008 B2
7369678 Rhoads May 2008 B2
7383297 Atsmon Jun 2008 B1
7421723 Harkness Sep 2008 B2
7440674 Plotnick Oct 2008 B2
7443292 Jensen Oct 2008 B2
7463143 Forr Dec 2008 B2
7519658 Anglin Apr 2009 B1
7526430 Kato Apr 2009 B2
7540012 Herzberg May 2009 B1
7577195 Hickey Aug 2009 B2
7586439 Percy Sep 2009 B2
7587732 Wright Sep 2009 B2
7592908 Zhang Sep 2009 B2
7623823 Zito Nov 2009 B2
7627477 Wang Dec 2009 B2
7640141 Kolessar Dec 2009 B2
7761602 Knight Jul 2010 B1
7941480 Atsmon May 2011 B2
7949722 Ullman May 2011 B1
7961881 Jensen Jun 2011 B2
RE42627 Neuhauser Aug 2011 E
8019609 Tamir Sep 2011 B2
8065260 Herre Nov 2011 B2
8069037 Singhal Nov 2011 B2
8121830 Topchy Feb 2012 B2
8127137 Levy Feb 2012 B2
8132224 Bae Mar 2012 B2
8185351 Crystal May 2012 B2
8200476 Butterfield Jun 2012 B2
8229159 Tourapis Jul 2012 B2
8255763 Yang Aug 2012 B1
8285814 Rehiman et al. Oct 2012 B2
8350971 Malone Jan 2013 B2
8359205 Topchy Jan 2013 B2
8365236 Krikorian Jan 2013 B2
8369972 Topchy Feb 2013 B2
8554545 Topchy Oct 2013 B2
8559412 Nicholls et al. Oct 2013 B1
8666528 Harkness Mar 2014 B2
8700407 Wang Apr 2014 B2
8768713 Chaoui et al. Jul 2014 B2
8924995 Ramaswamy Dec 2014 B2
8965786 Frumkin Feb 2015 B1
9015563 Lynch Apr 2015 B2
9021516 Nielsen Apr 2015 B2
9124769 Srinivasan Sep 2015 B2
9336784 Lynch May 2016 B2
9667365 Srinivasan May 2017 B2
9711152 Neuhauser Jul 2017 B2
10003846 Harkness Jun 2018 B2
10134408 Srinivasan et al. Nov 2018 B2
10467286 Srinivasan Nov 2019 B2
10555048 Harkness Feb 2020 B2
11004456 Harkness May 2021 B2
11386908 Srinivasan Jul 2022 B2
20010037232 Miller Nov 2001 A1
20010044899 Levy Nov 2001 A1
20010056573 Kovac Dec 2001 A1
20020032734 Rhoads Mar 2002 A1
20020033842 Zetts Mar 2002 A1
20020053078 Holtz May 2002 A1
20020056094 Dureau May 2002 A1
20020059218 August May 2002 A1
20020062382 Rhoads May 2002 A1
20020088011 Lamkin Jul 2002 A1
20020091991 Castro Jul 2002 A1
20020102993 Hendrey Aug 2002 A1
20020108125 Joao Aug 2002 A1
20020111934 Narayan Aug 2002 A1
20020112002 Abato Aug 2002 A1
20020114490 Taniguchi Aug 2002 A1
20020124246 Kaminsky Sep 2002 A1
20020133562 Newnam Sep 2002 A1
20020138851 Lord Sep 2002 A1
20020144262 Plotnick Oct 2002 A1
20020144273 Reto Oct 2002 A1
20020162118 Levy Oct 2002 A1
20020174425 Markel Nov 2002 A1
20020194592 Tsuchida Dec 2002 A1
20020196275 Willner Dec 2002 A1
20020199187 Gissin Dec 2002 A1
20030004589 Bruekers Jan 2003 A1
20030005056 Yamamoto Jan 2003 A1
20030021441 Levy Jan 2003 A1
20030039465 Bjorgan Feb 2003 A1
20030054757 Kolessar Mar 2003 A1
20030088452 Kelly May 2003 A1
20030088674 Ullman May 2003 A1
20030103645 Levy Jun 2003 A1
20030105870 Baum Jun 2003 A1
20030108200 Sako Jun 2003 A1
20030115586 Lejouan Jun 2003 A1
20030115598 Pantoja Jun 2003 A1
20030122708 Percy Jul 2003 A1
20030131350 Peiffer Jul 2003 A1
20030144899 Kokubo Jul 2003 A1
20030171833 Crystal Sep 2003 A1
20030172274 Hsia et al. Sep 2003 A1
20030172375 Shaw Sep 2003 A1
20030177488 Smith Sep 2003 A1
20030185232 Moore Oct 2003 A1
20030191653 Birnbaum Oct 2003 A1
20030192060 Levy Oct 2003 A1
20030195851 Ong Oct 2003 A1
20030208763 McElhatten Nov 2003 A1
20030210803 Kaneda Nov 2003 A1
20030229900 Reisman Dec 2003 A1
20040004630 Kalva Jan 2004 A1
20040006696 Shin Jan 2004 A1
20040008615 Oh Jan 2004 A1
20040015399 Maggio Jan 2004 A1
20040024588 Watson Feb 2004 A1
20040031058 Reisman Feb 2004 A1
20040037271 Liscano Feb 2004 A1
20040038692 Muzaffar Feb 2004 A1
20040058675 Lu Mar 2004 A1
20040059918 Xu Mar 2004 A1
20040059933 Levy Mar 2004 A1
20040064319 Neuhauser Apr 2004 A1
20040073916 Petrovic Apr 2004 A1
20040073951 Bae Apr 2004 A1
20040102961 Jensen May 2004 A1
20040120417 Lynch Jun 2004 A1
20040125125 Levy Jul 2004 A1
20040128514 Rhoads Jul 2004 A1
20040137929 Jones Jul 2004 A1
20040143349 Roberts Jul 2004 A1
20040143844 Brant Jul 2004 A1
20040146161 De Jong Jul 2004 A1
20040162720 Jang Aug 2004 A1
20040162773 Del Rey Aug 2004 A1
20040163020 Sidman Aug 2004 A1
20040184369 Herre Sep 2004 A1
20040193489 Boyd Sep 2004 A1
20040199387 Wang Oct 2004 A1
20040236819 Anati Nov 2004 A1
20040237114 Drazin Nov 2004 A1
20040267533 Hannigan Dec 2004 A1
20050028189 Heine Feb 2005 A1
20050033758 Baxter Feb 2005 A1
20050035857 Khang Feb 2005 A1
20050036653 Brundage Feb 2005 A1
20050058319 Rhoads Mar 2005 A1
20050086488 Kori Apr 2005 A1
20050086682 Burges Apr 2005 A1
20050102696 Westberg May 2005 A1
20050144004 Bennett Jun 2005 A1
20050144632 Mears Jun 2005 A1
20050169497 Gustafson Aug 2005 A1
20050177738 Van Der Veen Aug 2005 A1
20050192933 Rhoads Sep 2005 A1
20050216346 Kusumoto Sep 2005 A1
20050216509 Kolessar Sep 2005 A1
20050234728 Tachibana Oct 2005 A1
20050234731 Sirivara Oct 2005 A1
20050234774 Dupree Oct 2005 A1
20050254453 Barneah Nov 2005 A1
20050262351 Levy Nov 2005 A1
20050264430 Zhang Dec 2005 A1
20050271246 Sharma Dec 2005 A1
20060041615 Blank Feb 2006 A1
20060059277 Zito Mar 2006 A1
20060083403 Zhang Apr 2006 A1
20060089912 Spagna Apr 2006 A1
20060095401 Krikorian May 2006 A1
20060107195 Ramaswamy May 2006 A1
20060107302 Zdepski May 2006 A1
20060110005 Tapson May 2006 A1
20060111962 Holsinger May 2006 A1
20060136549 Carro Jun 2006 A1
20060136564 Ambrose Jun 2006 A1
20060153041 Miyashita Jul 2006 A1
20060156002 Bruekers Jul 2006 A1
20060167747 Goodman Jul 2006 A1
20060168613 Wood Jul 2006 A1
20060212290 Ide Sep 2006 A1
20060212710 Baum Sep 2006 A1
20060221173 Duncan Oct 2006 A1
20060224798 Klein Oct 2006 A1
20060239502 Petrovic Oct 2006 A1
20060277410 Jajodia et al. Dec 2006 A1
20060280246 Alattar Dec 2006 A1
20070006250 Croy Jan 2007 A1
20070011040 Wright Jan 2007 A1
20070016918 Alcorn Jan 2007 A1
20070036357 Van Der Veen Feb 2007 A1
20070038516 Apple Feb 2007 A1
20070052560 Van Der Veen Mar 2007 A1
20070055987 Lu Mar 2007 A1
20070061577 Van De Kerkhof Mar 2007 A1
20070064937 Van Leest Mar 2007 A1
20070070429 Hein Mar 2007 A1
20070088801 Levkovitz Apr 2007 A1
20070104335 Shi May 2007 A1
20070106760 Houh May 2007 A1
20070110089 Essafi May 2007 A1
20070118375 Kenyon May 2007 A1
20070124756 Covell May 2007 A1
20070124771 Shvadron May 2007 A1
20070127717 Herre Jun 2007 A1
20070129952 Kenyon Jun 2007 A1
20070133223 Fredley Jun 2007 A1
20070143778 Covell Jun 2007 A1
20070149114 Danilenko Jun 2007 A1
20070162927 Ramaswamy Jul 2007 A1
20070198738 Angiolillo Aug 2007 A1
20070201835 Rhoads Aug 2007 A1
20070220263 Ziener Sep 2007 A1
20070226760 Neuhauser Sep 2007 A1
20070240234 Watson Oct 2007 A1
20070242826 Rassool Oct 2007 A1
20070250310 Sato Oct 2007 A1
20070250716 Brunk Oct 2007 A1
20070256141 Nakano Nov 2007 A1
20070274523 Rhoads Nov 2007 A1
20070276925 La Joie Nov 2007 A1
20070276926 Lajoie Nov 2007 A1
20070288277 Neuhauser Dec 2007 A1
20070288476 Flanagan Dec 2007 A1
20070294057 Crystal Dec 2007 A1
20070294132 Zhang Dec 2007 A1
20070294705 Gopalakrishnan Dec 2007 A1
20070294706 Neuhauser Dec 2007 A1
20080005656 Pang et al. Jan 2008 A1
20080019560 Rhoads Jan 2008 A1
20080022114 Moskowitz Jan 2008 A1
20080027734 Zhao Jan 2008 A1
20080028223 Rhoads Jan 2008 A1
20080028474 Horne Jan 2008 A1
20080040354 Ray Feb 2008 A1
20080059160 Saunders Mar 2008 A1
20080065507 Morrison Mar 2008 A1
20080071530 Ehara Mar 2008 A1
20080075128 Fourcand Mar 2008 A1
20080077956 Morrison Mar 2008 A1
20080082510 Wang Apr 2008 A1
20080082922 Biniak Apr 2008 A1
20080083003 Biniak Apr 2008 A1
20080085031 Estevez Apr 2008 A1
20080086304 Neuhauser Apr 2008 A1
20080086553 Theobald Apr 2008 A1
20080091087 Neuhauser Apr 2008 A1
20080091762 Neuhauser Apr 2008 A1
20080101454 Luff May 2008 A1
20080117975 Sasai May 2008 A1
20080126420 Wright May 2008 A1
20080133223 Son Jun 2008 A1
20080137749 Tian Jun 2008 A1
20080139182 Levy Jun 2008 A1
20080140573 Levy Jun 2008 A1
20080168503 Sparrell Jul 2008 A1
20080172261 Albertson Jul 2008 A1
20080204273 Crystal Aug 2008 A1
20080209219 Rhein Aug 2008 A1
20080209491 Hasek Aug 2008 A1
20080215333 Tewfik Sep 2008 A1
20080215889 Celik Sep 2008 A1
20080219496 Tewfik Sep 2008 A1
20080228744 Desbiens Sep 2008 A1
20080235077 Harkness Sep 2008 A1
20080240490 Finkelstein Oct 2008 A1
20080243590 Rich Oct 2008 A1
20080263359 Radzishevsky Oct 2008 A1
20080263620 Berkvens Oct 2008 A1
20080292134 Sharma Nov 2008 A1
20080319739 Mehrotra Dec 2008 A1
20090007159 Rangarajan Jan 2009 A1
20090031134 Levy Jan 2009 A1
20090063250 Burgess Mar 2009 A1
20090070408 White Mar 2009 A1
20090070587 Srinivasan Mar 2009 A1
20090074185 Srinivasan Mar 2009 A1
20090119723 Tinsman May 2009 A1
20090125310 Lee May 2009 A1
20090150553 Collart Jun 2009 A1
20090171767 Kolessar Jul 2009 A1
20090193052 Fitzgerald Jul 2009 A1
20090240505 Villemoes Sep 2009 A1
20090252370 Picard Oct 2009 A1
20090259325 Topchy Oct 2009 A1
20090265214 Jobs Oct 2009 A1
20090281815 Zopf Nov 2009 A1
20090306920 Zwinger Dec 2009 A1
20090307061 Monighetti Dec 2009 A1
20090307084 Monighetti Dec 2009 A1
20090326960 Breebaat Dec 2009 A1
20090327734 Aprea Dec 2009 A1
20100008500 Lisanke Jan 2010 A1
20100027837 Levy Feb 2010 A1
20100030838 Atsmon Feb 2010 A1
20100106510 Topchy et al. Apr 2010 A1
20100106718 Topchy Apr 2010 A1
20100121210 Lindner May 2010 A1
20100131970 Falcon May 2010 A1
20100134278 Srinivasan Jun 2010 A1
20100135638 Mio Jun 2010 A1
20100166120 Baum Jul 2010 A1
20100206949 Mattlin Aug 2010 A1
20100223062 Srinivasan Sep 2010 A1
20100226526 Modro Sep 2010 A1
20100240455 Gagner Sep 2010 A1
20100268540 Arshi Oct 2010 A1
20100268573 Jain Oct 2010 A1
20100280641 Harkness et al. Nov 2010 A1
20100324708 Ojanpera Dec 2010 A1
20110035462 Akella Feb 2011 A1
20110106587 Lynch et al. May 2011 A1
20110126222 Wright May 2011 A1
20110224992 Chaoui et al. Sep 2011 A1
20110314486 Lu Dec 2011 A1
20120078396 Case, Jr. Mar 2012 A1
20120101827 Topchy et al. Apr 2012 A1
20120130802 Shimizu May 2012 A1
20120159541 Carton et al. Jun 2012 A1
20120203363 McKenna Aug 2012 A1
20120203559 McKenna Aug 2012 A1
20120233646 Coniglio et al. Sep 2012 A1
20120239407 Lynch Sep 2012 A1
20120245978 Jain Sep 2012 A1
20120266187 Deng Oct 2012 A1
20120275621 Elko Nov 2012 A1
20120278651 Muralimanohar Nov 2012 A1
20130013737 Rehiman et al. Jan 2013 A1
20130014141 Bhatia et al. Jan 2013 A1
20130096706 Srinivasan Apr 2013 A1
20130144631 Miyasaka et al. Jun 2013 A1
20130144709 Narasimhan et al. Jun 2013 A1
20140026159 Cuttner Jan 2014 A1
20140189724 Harkness Jul 2014 A1
20140226814 Fernando Aug 2014 A1
20140259039 Nielsen Sep 2014 A1
20140270195 Nielsen Sep 2014 A1
20140282640 Nielsen Sep 2014 A1
20150039320 Neuhauser Feb 2015 A1
20150039321 Neuhauser Feb 2015 A1
20150039322 Lynch Feb 2015 A1
20150039972 Lynch Feb 2015 A1
20150221312 Lynch Aug 2015 A1
20170061975 Srinivasan Mar 2017 A1
20190074021 Srinivasan Mar 2019 A1
20190281349 Harkness et al. Sep 2019 A1
20200142927 Srinivasan May 2020 A1
20220351739 Srinivasan Nov 2022 A1
Foreign Referenced Citations (152)
Number Date Country
8976601 Feb 2002 AU
9298201 Apr 2002 AU
2003230993 Nov 2003 AU
2006203639 Sep 2006 AU
2006203639 Jan 2009 AU
2009308256 Apr 2010 AU
2009308304 Apr 2010 AU
2009308256 Mar 2014 AU
2009308304 Apr 2014 AU
112901 Jun 2003 BR
0112901 Jun 2003 BR
309598 Feb 2005 BR
0309598 Feb 2005 BR
2293957 Jul 2000 CA
2483104 Nov 2003 CA
2741342 Apr 2010 CA
2741391 Apr 2010 CA
3015423 Apr 2010 CA
3124234 Apr 2010 CA
2741391 Oct 2017 CA
2741342 Oct 2018 CA
3015423 Sep 2021 CA
1149366 May 1997 CN
1282152 Jan 2001 CN
1303547 Jul 2001 CN
1372682 Oct 2002 CN
1497876 May 2004 CN
1592906 Mar 2005 CN
1647160 Jul 2005 CN
1672172 Sep 2005 CN
1795494 Jun 2006 CN
1282152 Oct 2006 CN
101115124 Jan 2008 CN
101124624 Feb 2008 CN
101243688 Aug 2008 CN
101361301 Feb 2009 CN
102239521 Nov 2011 CN
102265344 Nov 2011 CN
102265536 Nov 2011 CN
102625982 Aug 2012 CN
1497876 Jul 2014 CN
102239521 Dec 2014 CN
102265344 Jan 2015 CN
104376845 Feb 2015 CN
102625982 Mar 2015 CN
102265536 Jun 2015 CN
104683827 Jun 2015 CN
104376845 Jan 2018 CN
0713335 May 1996 EP
0769749 Apr 1997 EP
0883939 Dec 1998 EP
0967803 Dec 1999 EP
1026847 Aug 2000 EP
1267572 Dec 2002 EP
0883939 May 2003 EP
1307833 May 2003 EP
1349370 Oct 2003 EP
1406403 Apr 2004 EP
1463220 Sep 2004 EP
1504445 Feb 2005 EP
1307833 Jun 2006 EP
1703460 Sep 2006 EP
1704695 Sep 2006 EP
1742397 Jan 2007 EP
1745464 Jan 2007 EP
1745464 Oct 2007 EP
1704695 Feb 2008 EP
1504445 Aug 2008 EP
2351028 Aug 2011 EP
2351271 Aug 2011 EP
2351271 Aug 2011 EP
2487858 Aug 2012 EP
2351028 Jun 2016 EP
2351271 Dec 2016 EP
1163918 Sep 2012 HK
1164565 Sep 2012 HK
1207200 Jan 2016 HK
H10294896 Nov 1998 JP
2000172282 Jun 2000 JP
2000307530 Nov 2000 JP
2001005471 Jan 2001 JP
2001040322 Feb 2001 JP
2002521702 Jul 2002 JP
2002237610 Aug 2002 JP
2002247610 Aug 2002 JP
2003208187 Jul 2003 JP
2003536113 Dec 2003 JP
2006154851 Jun 2006 JP
2007318745 Dec 2007 JP
2008511844 Apr 2008 JP
2012507044 Mar 2012 JP
2012507047 Mar 2012 JP
9417609 Aug 1994 WO
9527349 Oct 1995 WO
9702672 Jan 1997 WO
0004662 Jan 2000 WO
0019699 Apr 2000 WO
0072309 Nov 2000 WO
0119088 Mar 2001 WO
0124027 Apr 2001 WO
0131497 May 2001 WO
0140963 Jun 2001 WO
0153922 Jul 2001 WO
0175743 Oct 2001 WO
0191109 Nov 2001 WO
0199109 Dec 2001 WO
0205517 Jan 2002 WO
0211123 Feb 2002 WO
0215081 Feb 2002 WO
0215086 Feb 2002 WO
0217591 Feb 2002 WO
0219625 Mar 2002 WO
0227600 Apr 2002 WO
0237381 May 2002 WO
0245034 Jun 2002 WO
02061652 Aug 2002 WO
02065305 Aug 2002 WO
02065318 Aug 2002 WO
02069121 Sep 2002 WO
03009277 Jan 2003 WO
03091990 Nov 2003 WO
03094499 Nov 2003 WO
03096337 Nov 2003 WO
2004010352 Jan 2004 WO
2004010376 Jan 2004 WO
2004040416 May 2004 WO
2004040475 May 2004 WO
2005011198 Feb 2005 WO
2005025217 Mar 2005 WO
2005064885 Jul 2005 WO
2005101243 Oct 2005 WO
2005111998 Nov 2005 WO
2006012241 Feb 2006 WO
2006025797 Mar 2006 WO
2007056531 May 2007 WO
2007056532 May 2007 WO
2007073484 Jun 2007 WO
2008042953 Apr 2008 WO
2008044664 Apr 2008 WO
2008045950 Apr 2008 WO
2008072145 Jun 2008 WO
2008110002 Sep 2008 WO
2008110790 Sep 2008 WO
2009011206 Jan 2009 WO
2009061651 May 2009 WO
2009064561 May 2009 WO
2010045458 Apr 2010 WO
2010048458 Apr 2010 WO
2010048459 Apr 2010 WO
2010048498 Apr 2010 WO
2010127268 Nov 2010 WO
2020019625 Jan 2020 WO
Non-Patent Literature Citations (254)
Entry
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 13/708,578, dated Jun. 7, 2017, 12 pages.
United States Patent and Trademark Office, “Final Office Action,” mailed in connection with United States U.S. Appl. No. 14/195,547, dated Jun. 28, 2017, (14 pages).
Intellectual Property Office of India, “Examination Report,” issued in connection with Indian Patent Application No. 8465/DELNP/2011, dated Jun. 28, 2017, 2 Pages.
State Intellectual Property Office of China, “Second Notification of Office Action,” mailed in connection with Chinese Patent Application No. 201410725835.3, dated Aug. 1, 2017 (9 pages).
United States Patent and Trademark Office, “Advisory Action,” mailed in connection with U.S. Appl. No. 13/708,578, dated Aug. 23, 2017 (7 pages).
United States Patent and Trademark Office, “Non-Final Office Action” issued in U.S. Appl. No. 15/331,168, dated Oct. 6, 2017, (9 pages).
The State Intellectual Property Office of China, “Notice of Completion of Formalities for Patent Registration,” issued in connection with application No. 201410725324.1, dated Oct. 10, 2017, 5 pages, translation attached.
State Intellectual Property Office of China, “Second Office Action,” issued in connection with application No. 201510070787.3, dated Dec. 4, 2017, 8 pages.
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,760,677, dated Dec. 18, 2017, 1 page.
State Intellectual Property Office of China, “Third Office Action” mailed in connection with application No. 201410725835.3, dated Jan. 4, 2018, (8 pages).
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 14/195,547, dated Feb. 7, 2018, 14 pages.
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,741,342, dated Feb. 27, 2018, 1 page.
European Patent Office, “Communication under Rule 71(3) EPC,” issued in connection with European patent Application No. 09748893.6-1208, dated Feb. 28, 2018, 7 pages.
United States Patent and Trademark Office, “Notice of Allowance,” mailed in connection with U.S. Appl. No. 14/195,547, dated Mar. 13, 2018, (11 pages).
The State Intellectual Property Office of China, “Notice of Completion of Formalities,” issued in connection with application No. 201410725835.3, dated May 31, 2018, 5 pages.
United States Patent and Trademark Office, “Notice of Allowance” issued in U.S. Appl. No. 15/331,168 , dated Jul. 3, 2018, (8 pages).
European Patent Office, “ Decision to grant a European patent,” issued in connection with European Patent Application No. 09748893.6, dated Jul. 26, 2018, 2 pages.
European Patent Office, “European Search Report,” issued in connection with European patent appl. No. 18183643, filed Aug. 24, 2018, 2 pages.
The State Intellectual Property Office of People's Republic of China, “Decision of Rejection,” mailed in connection with Application No. 201510070787.3, dated Oct. 8, 2018, (12 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” mailed in connection with United States U.S. Appl. No. 15/698,373, dated Nov. 29, 2018, 11 pages.
United States Patent and Trademark Office, “Final Office Action,” dated Apr. 10, 2019 in connection with U.S. Appl. No. 15/698,373, 7 pages.
Canadian Intellectual Property Office, “Office Action”, issued in connection with Canadian Patent Application No. 3,008,502, dated Apr. 26, 2019, 4 pages.
United States Patent and Trademark Office, “Non Final Office Action,” mailed in connection with U.S. Appl. No. 16/004,111, dated Apr. 29, 2019, (25 pages).
State Intellectual Property Office of China, “Reexamination,” issued in connection with application No. 201510070787.3, on May 14, 2019, with English translation, 14 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 3,015,423, dated Jun. 18, 2019, (3 pages).
United States Patent and Trademark Office, “Notice of Allowance” in connection with U.S. Appl. No. 15/698,373, dated Jun. 26, 2019, 8 pages.
The State Intellectual Property Office of People's Republic of China, “Reexamination,” mailed in connection with Application No. 201510070787.3, on Jul. 22, 2019, (17 pages).
European Patent Office, “Examination Report,” dated Jul. 30, 2019, issued in connection with European Patent Application No. 18183643.8, 5 pages.
United States Patent and Trademark Office, “Notice of Allowability,” mailed in connection with U.S. Appl. No. 15/698,373, dated Aug. 23, 2019, 2 pages.
United States Patent and Trademark Office, “Notice of Allowance” in connection with U.S. Appl. No. 15/698,373, dated Sep. 12, 2019, 2 pages.
United States Patent and Trademark Office, “Notice of Allowance,” mailed in connection with U.S. Appl. No. 16/004,111, dated Sep. 18, 2019, 7 pages.
United States Patent and Trademark Office, “Notice of Allowability,” issued in connection with U.S. Appl. No. 16/004,111, dated Nov. 26, 2019, 4 pages.
United States Patent and Trademark Office, “Final Office Action,” issued in U.S. Appl. No. 16/672,128, dated Apr. 21, 2021, 13 pages.
United States Patent and Trademark Office, “Non-Office Action” issued in U.S. Appl. No. 16/182,321, dated Jan. 10, 2020, 11 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” mailed in connection with U.S. Appl. No. 16/426,803, dated Jan. 21, 2020, 6 pages.
Intellectual Property of Office of India, “Hearing adjournment notice,” issued in connection with Indian Patent Application No. 8465/DELNP/2011, dated Feb. 24, 2020, 2 Pages.
Intellectual Property of Office of India, “Hearing adjournment notice,” issued in connection with Indian Patent Application No. 8465/DELNP/2011, dated Mar. 13, 2020, 2 Pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 3,015,423, dated Jun. 5, 2020, (3 pages).
United States Patent and Trademark Office, “Notice of Allowance and Fee(s) Due,” mailed in connection with U.S. Appl. No. 16/426,803, dated Jun. 17, 2020, 7 pages.
United States Patent and Trademark Office, “Final Office Action” issued in U.S. Appl. No. 16/182,321, dated Jul. 24, 2020, 11 pages.
United States Patent and Trademark Office, “Notice of Allowance and Fee(s) Due,” mailed in connection with U.S. Appl. No. 16/426,803, dated Sep. 1, 2020, 4 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 3,015,423, dated Oct. 5, 2020, (20 pages).
Intellectual Property of Office of India, “Hearing adjournment notice,” issued in connection with Indian Patent Application No. 8465/DELNP/2011, dated Nov. 3, 2020, 2 Pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in U.S. Appl. No. 16/672,128, dated Dec. 10, 2020, 8 pages.
Intellectual Property of Office of India, “Intimation of Grant,” issued in connection with Indian Patent Application No. 8465/DELNP/2011, dated Dec. 21, 2020, 1 Page.
United States Patent and Trademark Office, “Notice of Allowance and Fee(s) Due,” mailed in connection with U.S. Appl. No. 16/426,803, dated Jan. 12, 2021, 7 pages.
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” mailed in connection with European Patent Application No. 18183643.8, dated Feb. 11, 2021, 5 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” mailed in connection with U.S. Appl. No. 16/779,212, dated Feb. 22, 2021, 11 pages.
United States Patent and Trademark Office, “Non-Final Office Action” issued in U.S. Appl. No. 16/182,321, dated Apr. 15, 2021, 12 pages.
IP Australia, “Patent Examination Report No. 1,” issued in connection with Australian Patent Application No. 2010242814, dated May 10, 2013, 5 pages.
United States Patent and Trademark , “Notice of Allowance,” issued in connection with U.S. Appl. No. 13/341,092, dated May 10, 2013, 16 Pages.
IP Australia,“Patent Examination Report No. 1,” issued in connection with Australian Application No. 2013203888, dated May 15, 2013, 4 pages.
State Intellectual Property Office of China, “Search Report,” issued in connection with application No. CN 200980152527.3, dated Jun. 8, 2013 (2 pages).
Intellectual Property Office of China, “Office Action,” mailed in connection with application No. CN 200981052527.3, dated Jun. 24, 2013 (6 pages).
Japanese Patent Office, “Notice of Reasons for Refusal,” issued in connection with Japanese Patent Application No. 2012-508780, dated Jul. 2, 2013, 9 pages. [English Translation Included].
The State Intellectual Property Office of People's Republic of China, “First Notification of Office Action,” mailed in connection with Application No. CN 200980148637.2, dated Jul. 2, 2013 (7 pages).
United States Patent and Trademark Office, “Non-Final Office Action”, for U.S. Appl. No. 11/618,245, dated Jul. 3, 2013, 24 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 14/023,226, dated Jul. 31, 2014, 6 pages.
Intellectual Property Australia, “Notice of Acceptance,” issued in connection with Australian patent application No. 2010242814, dated Jul. 22, 2014, 3 pages.
IP Australia, “Patent Examination Report No. 2,” issued in connection with AU Application No. 2009308305, dated Jul. 23, 2013, 2 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 2,741,342, dated Jul. 29, 2013, (3 pages).
The State Intellectual Property Office of People's Republic of China, “Search Report,” mailed in connection with Chinese Patent Application No. 200980152518.4, dated Jul. 31, 2013 (2 pages).
State Intellectual Property Office of China, “First Office Action,” mailed in connection with application No. CN 200980152518.4, dated Aug. 9, 2013 (10 pages).
IP Australia,“Notice of Acceptance,” issued in connection with AU Application No. 2009308305, dated Aug. 19, 2013, 2 pages.
IP Australia, “Notice of Grant”, issued in connection with Australian Patent Application No. 2009308256, dated Jul. 10, 2014, 1 page.
Australian Government, IP Australia,“Patent Examination Report No. 2,” issued in connection with AU Application No. 2009308304, dated Aug. 21, 2013, 4 pages.
State Intellectual Property Office of China, “Second Notification of Office Action,” issued in connection with Chinese Patent Application No. 200980148637.2, dated Mar. 5, 2014, 9 pages.
Australian Government, IP Australia,“Patent Examination Report No. 3,” issued in connection with AU Application No. 2009308304, dated Sep. 5, 2013, 3 pages.
United States Patent and Trademark , “Notice of Allowance,” issued in connection with U.S. Appl. No. 13/341,092, dated Sep. 9, 2013, 6 Pages.
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 12/771,640, dated Sep. 16, 2013, 8 Pages.
Canadian Intellectual Property Office, “Examiner's Report,” issued in connection with Application No. 2,760,677 dated Sep. 30, 2013, 3 pages.
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 12/771,640, dated Oct. 22, 2013, 10 Pages.
Japanese Patent Office, “Decision of Refusal”, issued in connection with Japanese Patent Application No. 2011-533356, dated Oct. 16, 2013 (2 Pages). English Translation Included.
United States Patent and Trademark Office, “Final Rejection,” issued in connection with U.S. Appl. No. 10/530,233, dated Nov. 7, 2013, 14 pages.
State Intellectual Property Office of China, “2nd Office Action,” mailed in connection with Chinese Patent Application No. 200980152518.4, dated Apr. 14, 2014 (7 pages).
IP Australia, “Notice of Acceptance,” mailed in connection with Australian Patent Application No. 2009308304, dated Apr. 3, 2014 (2 pages).
Rowand LLP, “Response to Examiner's Report,” issued in connection with Application No. 2,760,677 dated Mar. 28, 2014, 16 pages.
Japanese Patent Office, “Decision of Refusal,” issued in connection with Japanese Patent Application No. 2012-508780, dated Dec. 3, 2013, 2 pages. [English Translation Included].
United States Patent and Trademark Office, “Final Office Action” issued in U.S. Appl. No. 12/464,811, dated Dec. 17, 2013, 16 pages.
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Dec. 31, 2013, 27 pages.
State Intellectual Property Office of China, “2nd Office Action,” issued in connection with Chinese Patent Application No. 200980152527.3, dated Jan. 24, 2014, 9 pages.
Canadian Intellectual Property Office, “Notice of Allowance,” issued in connection with Canadian Application No. 2,741,536, dated Mar. 4, 2014, 1 page.
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 12/771,640, dated Feb. 3, 2014, 4 Pages.
IP Australia,“Patent Examination Report No. 4,” issued in connection with AU Application No. 2009308304, dated Mar. 21, 2014, 4 pages.
United States Patent and Trademark Office, “Advisory Action,” issued in connection with U.S. Appl. No. 10/530,233, dated Feb. 20, 2014, 5 pages.
IP Australia, “Notice of Acceptance”, issued in connection with Australian Patent Application No. 2009308256, dated Mar. 12, 2014, 2 pages.
State Intellectual Property Office of China, “Search Report,” issued in connection with Chinese Patent Application No. 201080029773.2, dated Feb. 25, 2014, 2 pages.
The State Intellectual Property Office of People's Republic of China, “1st Office Action,” mailed in connection with Chinese Patent Application No. 201080029773.2, dated Mar. 4, 2014 (5 pages).
IP Australia, “Certificate of Grant,” mailed in connection with Australian Patent Application No. 2009308304, dated Jul. 31, 2014, 1 page only.
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 14/023,221, dated Dec. 3, 2015, 11 pages.
State Intellectual Property Office of China, “Third Notification of Office Action,” issued in connection with Chinese Patent Application No. 200980152527.3, dated Aug. 6, 2014 (13 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/708,578, dated Nov. 17, 2015 (12 pages).
State Intellectual Property Office of China, “Notice of Decision of Granting Patent Right for Invention,” issued in connection with Chinese patent application No. 200980148637.2, dated Sep. 9, 2014, with English translation, 5 pages.
Canadian Intellectual Property Office, “Examiner's Report,” issued in connection with Application No. 2,760,677, dated Sep. 29, 2014, 3 pages.
Canadian Intellectual Property Office, “Office Action,” issued in connection with Canadian Patent Application No. 2,760,677, dated Nov. 9, 2015 (4 pages).
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 09748892.8, dated Oct. 6, 2014 (4 Pages.).
IP Australia,“Patent Examination Report No. 1,” issued in connection with Australian Patent Application No. 2015202561, dated Sep. 22, 2015, 3 pages.
State Intellectual Property Office of China, “Notice of Decision of Granting Patent Right for Invention,” issued in connection with Chinese patent application No. 200980152518.4, dated Oct. 13, 2014, with English translation, 5 pages.
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 09747953.9-2223, dated Oct. 15, 2014, 5 pages.
International Bureau, “International Search Report and Written Opinion,” issued in connection with International Patent Application No. PCT/US2014/049202, dated Nov. 12, 2014 (9 pages).
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 10/530,233, dated Sep. 18, 2015, 27 pages.
IP Australia, “Notice of Grant,” issued in connection with Australian Patent Application No. 2010242814, dated Nov. 13, 2014, 1 page.
IP Australia, “Patent Examination Report No. 1,” issued in connection with AU Application No. 2013203838, dated Nov. 24, 2014, 6 pages.
The State Intellectual Property Office of People's Republic of China, “Notice to Grant,” issued in connection with Chinese Patent Application No. 201080029773.2, dated Nov. 26, 2014, 3 Pages.
IP Australia, “Examination Report No. 1”, issued in connection with Australian Patent Application No. 2013203820, dated Nov. 28, 2014, 3 pages.
IP Australia,“Patent Examination Report No. 1,” issued in connection with AU Application No. 2013203674, dated Dec. 2, 2014, 4 pages.
Hong Kong Patents Registry, “Certificate of Grant of a Standard Patent,” mailed in connection with Hong Kong Patent Application No. 13101413.2, dated Aug. 21, 2015 (2 pages).
United States Patent and Trademark Office, “Non-final Office Action,” issued in connection with U.S. Appl. No. 13/708,578, dated Dec. 3, 2014, 13 pages.
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 14/023,226, dated Dec. 23, 2014 (5 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection to U.S. Appl. No. 13/955,245, dated Aug. 20, 2015, 15 pages.
IP Australia, “Notice of Acceptance,” issued in connection with Australian patent application No. 2013203888, dated Feb. 2, 2015, 2 pages.
State Intellectual Property Office of China, Notice of Decision of Granting Patent Right for Invention, issued in connection with Chinese patent application No. 200980152527.3, dated Feb. 26, 2015, with English translation, 5 pages.
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,741,391, dated Mar. 13, 2015, 4 pages.
United States Patent and Trademark Office, “Corrected Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/955,438, dated Jun. 2, 2015 (14 pages).
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 13/708,578, dated Apr. 21, 2015, 12 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/955,438, dated May 22, 2015 (15 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 14/685,984, dated Jul. 31, 2015 (5 pages).
United States Patent and Trademark Office, “Non-Final Office Action” issued in U.S. Appl. No. 12/464,811, dated Jul. 6, 2015, 16 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 10/530,233, dated May 26, 2015, 11 pages.
IP Australia, “Notice of Grant” mailed in connection with Australian Patent Application No. 2013203888, dated May 28, 2015 (2 pages).
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 2,741,342, dated Jun. 10, 2015, (4 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 14/023,221, dated Jun. 29, 2015 (10 pages).
United State Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/955,438, dated Jun. 6, 2015, 14 pages.
Wagner, “Lexington Area Travel Data Collection Test, Global Positioning Systems for Personal Travel Surveys, Final Report,” Federal Highway Administration, Sep. 15, 1997 (92 pages).
Hopper, “EBU Project Group P/META Metadata Exchange Standards,” EBU Technical Review, Sep. 2000, pp. 1-24. [http://www.ebu.ch/en/technical/trev/trev—284-contents.html, retrieved on Jul. 20, 2006] (24 pages).
Mulder, “The Integration of Metadata From Production to Consumer,” EBU Technical Review, Sep. 2000, pp. 1-5. [http://www.ebu.ch/en/technical/trev/trev_284-contents.html, retrieved on Jul. 20, 2006], 5 pages.
“EBU Technical Review (Editorial),” No. 284 Sep. 2000, pp. 1-3. [http://www.ebu.ch/en/technical/trev/trev—284-contents.html, retrieved on Jul. 20, 2006] (3 pages).
Heuer et al.,“Adaptive Multimedia Messaging based on MPEG-7—The M3-Box,” Nov. 9-10, 2000, Proc. Second Int'l Symposium on Mobile Multimedia Systems Applications, pp. 6-13 (8 pages).
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 13/708,578 dated Jun. 7, 2017, 17 pages.
Wactlar et al., “Digital Video Archives: Managing Through Metadata” Building a National Strategy for Digital Preservation: Issues in Digital Media Archiving, Apr. 2002, pp. 84-88.[http: www.infomedia.cs.cmu.edu/doc11mcnis/Wact1ar-CL1R-final.pdf, retrieved on Jul. 20, 2006) (14 pages). (Document already of record in parent U.S. Appl. No. 13/708,578. Copy can be provided upon request.).
Wang, “An Industrial-Strength Audio Search Algorithm,” Shazam Entertainment, Ltd., in Proceedings of the Fourth International Conference on Music Information Retrieval, Baltimore, Oct. 26-30, 2003 (7 pages).
International Searching Authority, “International Search Report,” issued in connection with PCT Application Serial No. PCT/US03/31180, dated Jun. 8, 2004 (5 pages).
International Searching Authority, “International Preliminary Examination Report,” issued in connection with PCT Application Serial No. PCT/US03/31180, dated Aug. 17, 2004 (4 pages).
Fink et al., “Social- and Interactive-Television Applications Based on Real-Time Ambient-Audio Identification,” EurolTV, 2006, 10 pages.
Claburn, “Google Researchers Propose TV Monitoring,” Information Week, Jun. 7, 2006, 3 pages.
Anderson, “Google to compete with Nielsen for TV-ratings info?,” Ars Technica, Jun. 19, 2006 (2 pages).
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 16/779,212, dated Sep. 3, 2021, 12 pages.
Evain, “TV-Anytime Metadata—A Preliminary Specification on Schedule!,” EBU Technical Review, Sep. 2000, pp. 1-14. [http://www.ebu.ch/en/technical/trev/trev_284-contents.html, retrieved on Jul. 20, 2006] (14 pages).
Wactlar et al., “Digital Video Archives: Managing Through Metadata” Building a National Strategy for Digital Preservation: Issues in Digital Media Archiving, Apr. 2002, pp. 84-88. [http://www.informedia.cs.cmu.edu/documents/Wactlar-CLIR-final.pdf, retrieved on Jul. 20, 2006] (14 pages).
International Searching Authority, “International Search Report and Written Opinion,” issued in connection with PCT Application Serial No. PCT/US05/26426, dated Aug. 18, 2006 (9 pages).
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with PCT No. PCT/US2005/026426, dated Feb. 1, 2007, 9 pages.
Shazam, “Shazam turns up the volume on mobile music,” http://www.shazam.com/music/web/newsdetail.html?nid=NEWS 137, Nov. 28, 2007, 1 page.
Arbitron, “Critical Band Encoding Technology Audio Encoding System From Arbitron,” Feb. 2008, 27 pages.
Shazam, “Shazam and video zone digital media announce UK's first fixed price mobile download service for music videos,” http://www.shazam.com/music/web/newsdetail.html?nid=NEWS136, Feb. 11, 2008, 1 page.
Shazam, “Shazam launches new music application for Facebook fans,” https://mobilemarketingmagazine.com/shazam-launches-facebook-app, Feb. 18, 2008 (1 page).
Canadian Intellectual Property Office, “Office Action,” issued in connection with CA Application Serial No. 2,574,998, dated Aug. 26, 2008 (4 pages).
United States Patent and Trademark Office, “Notice of Allowance,” issued in U.S. Appl. No. 16/672,128, dated Oct. 13, 2021, 10 pages.
United States Patent and Trademark Office, “Non-final Office Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Feb. 5, 2009 (35 pages).
Sullivan, “Google cozies up to SMBs for Digital Content,” Mediapost News, Mar. 18, 2009, 2 pages.
Stultz, “Hand-held captioning at Disney World Theme Parks,” Article retrieved on Mar. 19, 2009, http://goflorida.about.com/od/disneyworld/a/wdw_captioning.htm, 2 pages.
Canadian Intellectual Property Office, “Office Action,” issued in connection with Canadian Patent Application Serial No. 2,574,998, dated Mar. 23, 2009, 5 pages.
Canadian Intellectual Property Office, “Office Action”, issued in connection with Canadian Patent Application No. 3,094,520, dated Oct. 25, 2021, 5 pages.
Kane, “Entrepreneur Plans On-Demand Videogame Service,” The Wall Street Journal, Mar. 24, 2009, 2 pages.
Boehret, “Yahoo Widgets Lend brains to boob tube,” The Wall Street Journal, Mar. 25, 2009, 3 pages.
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Jul. 21, 2009 (26 pages).
United States Patent and Trademark Office, “Notice of Allowance,” dated Nov. 26, 2021, in connection with U.S. Appl. No. 16/182,321, 9 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 16/779,212, dated Jan. 24, 2022, 12 Pages.
United States Patent and Trademark Office, “Non-final Office Action,” issued in connection with U.S. Appl. No. 10/530,233, dated Sep. 16, 2009 (20 pages).
United States Patent and Trademark Office, “Notice of Allowance” issued in U.S. Appl. No. 16/182,321, dated Mar. 16, 2022, 10 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 3,124,234, dated Aug. 15, 2022, (4 pages).
Canadian Patent Office, “Examiner's Report,” mailed in connection with Canadian Patent Application No. 3,094,520, dated Sep. 2, 2022, 5 pages.
United States Patent and Trademark Office, “Advisory Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Sep. 30, 2009, 3 pages.
United States Patent and Trademark Office, “Final Office Action,” mailed in connection with U.S. Appl. No. 16/779,212, dated Oct. 5, 2022, 13 pages.
Canadian Intellectual Property Office, “Office Action,” issued in connection with CA Application Serial No. 2,574,998, dated Nov. 13, 2009, 10 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 3,124,234, dated Dec. 14, 2022, (23 pages).
Stross, “Apple wouldn't risk its cool over a Gimmick, Would it?”, The New York Times, Nov. 14, 2009, 3 pages.
United States Patent and Trademark Office, “Advisory Action,” issued in connection with U.S. Appl. No. 16/779,212, dated Jan. 9, 2023, 3 pages.
Jacked, “What is Jacked?,” [http://www.jacked.com/], retrieved on Dec. 3, 2009, 1 page.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in U.S. Appl. No. 17/676,461, dated Feb. 15, 2023, 6 pages.
Patent Cooperation Treaty, “International Search Report”, issued in connection with International Patent Application No. PCT/US2009/061750, dated Mar. 9, 2010, 3 Pages.
International Searching Authority, “Written Opinion of the International Searching Authority”, issued in connection with International Patent Application No. PCT/US2009/061750, dated Mar. 9, 2010, 6 Pages.
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 13/955,438 dated Dec. 4, 2015 (12 pages).
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 14/685,984, dated Dec. 18, 2015 (5 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 14/195,547 dated Dec. 18, 2015 (14 pages).
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection to U.S. Appl. No. 13/955,245, dated May 17, 2017, 9 pages.
European Patent Office, “Examination Report”, issued in connection with application No. 09748892.8 dated Dec. 21, 2015, 7 pages.
IP Australia,“Notice of Acceptance,” issued in connection with AU Application No. 2013203674, dated Jan. 5, 2016, 2 pages.
European Patent Office, “Communication under Rule 71(3) EPC,” issued in connection with European Patent Application No. 09747953.9-2223, dated Jan. 7, 2016, 7 pages.
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Patent Application No. PCT/US2014/049202, dated Feb. 2, 2016, 4 pages.
European Patent Office, “Communication regarding the expiry of opposition period”, issued in connection with European Patent Application No. 09747953.9-2223, dated May 4, 2017, 1 page.
United States Patent and Trademark Office, “Final Office Action,” issued in connection to U.S. Appl. No. 13/955,245, dated Feb. 26, 2016, 10 pages.
Canadian Intellectual Property Office, “Examiner Report”, issued in connection with Canadian Patent Application No. 2,741,391, dated Feb. 29, 2016, 4 pages.
United States Patent and Trademark Office, “Final Office Action” issued in U.S. Appl. No. 12/464,811, dated Mar. 10, 2016, 14 pages.
Hong Kong Patents Registry, “Certificate of Grant of Standard Patent,” mailed in connection with Hong Kong Patent Application No. 12105179.8, dated Mar. 18, 2016 (3 pages).
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European patent Application No. 09748893.6-1908, dated Apr. 5, 2016, 5 pages.
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 14/195,547, dated Apr. 27, 2016, 13 pages.
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 13/708,578, dated Apr. 29, 2016, 14 pages.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 2,741,342, dated May 16, 2016, (3 pages).
IP Australia, “Notice of Acceptance” mailed in connection with Australian Patent Application No. 2015202561, dated May 16, 2016 (2 pages).
European Patent Office, “Decision to grant a European patent pursuant to Article 97(1) EPC,” issued in connection with European Patent Application No. 09747953.9-2223, dated Jun. 2, 2016, 2 pages.
European Patent Office, “Communication under Rule 71(3) EPC,” issued in connection with European Patent Application No. 09 748 892.8 , dated Jun. 9, 2016 ( 7 Pages. ).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/955,245, dated Jun. 24, 2016 (12 pages).
European Patent Office, “Transmission of the certificate for a European patent pursuant to Rule 74 EPC,” issued in connection with European Patent Application No. 09747953.9-2223, dated Jun. 29, 2016, 1 page.
IP Australia,“Patent Examination Report No. 2,” issued in connection with AU Application No. 2013203838, dated Jul. 29, 2016, 4 pages.
IP Australia,“Notice of Acceptance,” issued in connection with AU Application No. 2013203838, dated Aug. 25, 2016, 2 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 14/023,221, dated Aug. 31, 2016 (13 pages).
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 13/955,438, dated May 2, 2017, 15 pages.
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 14/195,547, dated Sep. 1, 2016, 14 pages.
IP Australia,“Notice of Grant,” issued in connection with Australian Patent Application No. 2015202561, dated Sep. 8, 2016, 1 page.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/955,438, dated Sep. 9, 2016 (13 pages).
European Patent Office, “Summons to attend oral proceedings,” issued in connection with European patent Application No. 09748893.6-1908, Sep. 21, 2016, 25 pages.
United States Patent and Trademark Office, “Notice of Allowance” issued in U.S. Appl. No. 12/464,811, dated Sep. 23, 2016, 8 pages.
The State Intellectual Property Office of China, “First Notification of Office Action,” issued in connection with Chinese patent application No. 201510070787.3, dated Apr. 28, 2017, with English translation, 18 pages.
European Patent Office, “Decision to grant a European patent pursuant to Article 97/(1) EPC,” issued in connection with European Patent Application No. 09748892.8 , dated Nov. 10, 2016 ( 2 Pages. ).
IP Australia, “Notice of Grant”, issued in connection with Australian Patent Application No. 2013203820, dated Nov. 17, 2016, 1 page.
Canadian Intellectual Property Office, “Office Action,” issued in connection with Application No. 2,760,677, dated Nov. 21, 2016, 3 pages.
United States Patent and Trademark Office, “Final Office Action,” issued in connection to U.S. Appl. No. 13/955,245, dated Nov. 22, 2016, 14 pages.
IP Australia, “Notice of Grant”, issued in connection with Australian Patent Application No. 2013203820, dated Nov. 24, 2016, 1 page.
European Patent Office, “Transmission of the certificate for a European patent pursuant to Rule 74 EPC,” issued in connection with European Patent Application 09748892.8, dated Dec. 7, 2016, 1 Page.
The State Intellectual Property Office of China, “First Office Action,” issued in connection with application No. 201410725835.3, dated Dec. 12, 2016, 16 pages.
IP Australia, “Certificate of Grant”, mailed in connection with Australian Patent Application No. 2013203838, dated Dec. 22, 2016 (1 page).
United States Patent and Trademark Office, “Notice of Allowance and Fee(s) Due”, issue in connection with U.S. Appl. No. 12/464,811, dated Jan. 20, 2017, 30 pages.
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 13/708,578, dated Jan. 23, 2017, 12 pages.
The State Intellectual Property Office of China, “First Notification of Office Action,” issued in connection with Chinese patent application No. 201410725324.1, dated Feb. 4, 2017, with English translation, 16 pages.
United States Patent and Trademark Office, “Final Office action”, issued in connection with U.S. Appl. No. 14/023,221, dated Mar. 9, 2017, 14 pages.
Canadian Patent Office, “Notice of Allowance”, issued in connection with Canadian Patent application No. 2,741,391, dated Mar. 10, 2017, 1 page.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 2,741,342, dated Apr. 3, 2017, (4 pages).
International Searching Authority, “International Search Report,” issued in connection with International Application No. PCT/US2009/061827, dated Mar. 15, 2010, 3 pages.
United States Patent and Trademark Office, “Final Office Action,” mailed in connection with U.S. Appl. No. 10/530,233, dated Mar. 18, 2010 (9 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 16/779,212, dated Mar. 13, 2023, 13 pages.
Canadian Intellectual Property Office, “Examiner Requisition”, issued in connection with Canadian Patent Application No. 3,094,520, dated Jun. 5, 2023, 5 pages.
International Searching Authority, “Written Opinion,” issued in International Patent Application No. PCT/US2009/061827, dated May 15, 2010 (8 pages).
International Searching Authority, “International Search Report,” issued in connection with International Application No. PCT/US2009/061749, dated May 26, 2010, 5 pages.
International Searching Authority, “Written Opinion of the International Searching Authority”, issued in connection with International Patent Application No. PCT/US2009/061749, dated May 26, 2010, 8 Pages.
Japanese Patent Office, “Notice of Reasons for Refusal”, issued in connection with Japanese Patent Application No. 2011-533356, dated May 7, 2013 (5 Pages). English Translation Included.
Canadian Intellectual Property Office, “Notice of Allowance,” issued in connection with Application No. 2,574,998, dated Aug. 10, 2010, 1 page.
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with Application No. 10725310.6, dated Apr. 17, 2013, 7 Pages.
International Searching Authority, “International Search Report and Written Opinion,” issued in connection with PCT No. PCT/US2010/033201, dated Oct. 1, 2010, 8 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 12/771,640, dated Apr. 4, 2013, 20 Pages.
European Patent Office, “Examination Report,” issued in connection with corresponding European Patent Application No. 10725310.6, dated Apr. 17, 2011, 7 pages.
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Application No. PCT/US2009/061750, dated Apr. 26, 2011, 7 pages.
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Application No. PCT/US2009/061749, dated Apr. 26, 2011, 9 pages.
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Application No. PCT/US2009/061827, dated Apr. 26, 2011, 8 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Apr. 28, 2011, 48 pages.
United States Patent and Trademark Office, “Non-Final Office Action” issued in U.S. Appl. No. 12/464,811, dated Apr. 1, 2013, 14 pages.
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 10/530,233, dated Mar. 25, 2013 (28 pages).
Japanese Patent Office, “Decision of Refusal”, issued in connection with Japanese Patent Application No. 2011-533363, dated Mar. 19, 2013 (4 pages). English Translation Included.
United States Patent and Trademark Office, “Notice of Allowance,” mailed in connection with U.S. Appl. No. 12/604,176, dated Oct. 24, 2011 (25 pages).
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 11/618,245, dated Oct. 26, 2011, 36 pages.
Japanese Patent Office, “Written Opinion”, issued in connection with Japanese Patent Application No. 2011-533363, dated Feb. 25, 2013 (4 pages). English Translation Included.
Canadian Patent Office, “Office Action,” issued in connection with CA Patent Application No. 2,741,536, dated Feb. 22, 2013, (2 pages).
International Searching Authority, “International Preliminary Report on Patentability and Written Opinion,” mailed in connection with PCT/US2010/033201, dated Nov. 1, 2011 (9 pages).
United States Patent and Trademark Office, “Supplemental Notice of Allowability,” issued in connection with parent U.S. Appl. No. 12/604,176, dated Nov. 8, 2011 (6 pages).
European Patent Office, “Communication Pursuant to Rules 161(1) and 162 EPC,” issued in connection with European Patent Application No. 107253 10.6 dated Jan. 20, 2012 (2 pages).
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 12/551,220, dated Apr. 26, 2012, 10 Pages.
IP Australia, “Examination Report No. 1”, issued in connection with Australian Patent Application No. 2009308256, dated Jun. 25, 2012, 6 pages.
IP Australia,“Patent Examination Report No. 1,” issued in connection with AU Application No. 2009308305, dated Jun. 25, 2012, 5 pages.
IP Australia, “Examination Report No. 1,” issued in connection with Application No. 2009308304, dated Jun. 29, 2012, 11 pages.
Japanese Patent Office, “Notice of Reasons for Refusal”, issued in connection with Japanese Patent Application No. 2011-533356, dated Jul. 31, 2012 (8 Pages). English Translation Included.
Japanese Patent Office, “Notice of Reasons for Refusal”, issued in connection with Japanese Patent Application No. 2011-533357, dated Aug. 7, 2012 (6 Pages). English Translation Included.
United States Patent and Trademark , “Non-Final Office Action,” issued in connection with U.S. Appl. No. 13/341,092, dated Aug. 30, 2012, 10 Pages.
United States Patent and Trademark Office, “Non-Final Office Action” issued in U.S. Appl. No. 12/464,811, dated Aug. 31, 2012, 15 pages.
Japanese Patent Office, “Notice of Reasons for Refusal”, issued in connection with Japanese Patent Application No. 2011-533363, dated Oct. 2, 2012 (6 pages). English Translation Included.
United States Patent and Trademark Office, “Notice of Allowance,” issued in connection with U.S. Appl. No. 12/551,220, dated Dec. 5, 2012, 5 Pages.
Related Publications (1)
Number Date Country
20220351739 A1 Nov 2022 US
Provisional Applications (2)
Number Date Country
61174708 May 2009 US
61108380 Oct 2008 US
Continuations (3)
Number Date Country
Parent 16182321 Nov 2018 US
Child 17860920 US
Parent 15331168 Oct 2016 US
Child 16182321 US
Parent 12464811 May 2009 US
Child 15331168 US