The present disclosure relates to decoding systems and, more particularly, to methods and apparatus to extract codes from a plurality of channels.
It is known to add or embed codes in broadcast audio and/or video and/or vertical blanking interval signals. For example, codes may be embedded in television and/or radio broadcasts and/or in pre-recorded audio or video content. In the field of audience metering, codes can be added to audio and/or video signals for the purpose of, for example, identifying programs and/or the distributor(s) that are broadcasting the programs, identifying commercials and promotional announcements, and the like.
Codes that are added to audio signals can be reproduced in the audio signal output by a speaker. Accordingly, these arrangements offer the possibility of non-intrusively intercepting and decoding the codes with equipment that uses microphonic inputs. For example, these systems enable measuring broadcast audiences by the use of portable metering equipment carried by panelists.
Audio codes are inserted at low intensities to prevent the codes from distracting a listener of program audio and, therefore, such codes can be vulnerable to various signal processing operations. Consequently, these approaches to encoding a broadcast audio signal may not be compatible with current and proposed digital audio standards, particularly those employing signal compression methods that can reduce the dynamic range of a signal. Dynamic range reduction processing of an audio signal may delete or damage an audio code inserted in the audio signal. In this regard, it is particularly important for an audio code to survive compression and subsequent de-compression carried out by, for example, the Dolby™ Digital Audio Code Number 3 (AC-3) Surround Sound algorithm or by one of the algorithms recommended in the Moving Picture Experts Group (MPEG) standards (e.g., MPEG-1, MPEG-2, MPEG-4, and the like).
Systems and methods for adding an inaudible code to an audio signal and subsequently retrieving that code in a manner that is compatible with current and proposed digital audio standards are known. In one such system, an encoder is arranged to add a binary code bit to a signal block by selecting, within the signal block, (i) a reference frequency within the predetermined signal bandwidth, (ii) a first code frequency having a first predetermined offset from the reference frequency, and (iii) a second code frequency having a second predetermined offset from the reference frequency. The spectral amplitude of the signal at the first code frequency is increased so as to render the spectral amplitude at the first code frequency a maximum in its neighborhood of frequencies and is decreased at the second code frequency so as to render the spectral amplitude at the second code frequency a minimum in its neighborhood of frequencies. A decoder can be arranged to decode the binary bit.
However, the extraction of audio codes from audio signals in such digital-audio-compatible systems requires considerable processing power, because complicated mathematical operations are used for code extraction. If several channels exist, it may be necessary to extract the audio codes from the numerous channels simultaneously. For example, DOLBY™ Digital AC-3 Surround Sound delivers six separate (discrete) channels of sound. AC-3 includes left, center, and right channels across the front of the room and separate (discrete) left and right surround sound channels. The sixth channel is a Low Frequency Effects Channel that is typically coupled to a sub-woofer or the like. With six separate channels, considerable processing power may be required to extract audio codes from each of the channels simultaneously.
In the example of
In practice, the channels 101-104 may be generated from a digital television bitstream. For example, a digital television bitstream may be de-multiplexed into its constituent audio, video and metadata components. The audio component, for example, may then be further de-multiplexed into a number of audio channels. The de-multiplexing operations may be carried out by a digital television, commercially-available television reception card that may be installed into a personal computer (PC), or custom receiver hardware. In the alternative, the channels 101-104 may be provided by hardware (e.g., a set top box) having a Sony/Philips Digital Interface (S/PDIF), which is an output through which digital audio data may be passed in a channelized format.
Some, none, or all of the channels 101-104 may contain information having identification codes embedded therein. The identification codes may be, for example, audio codes. The audio codes may be added to an audio signal using any method for encoding audio signals. For example, the broadcast encoding methods described in, for example, U.S. Pat. Nos. 5,450,490; 5,642,111; 5,764,763; and 6,272,176, the disclosures of each of which are hereby incorporated by reference in their entireties, can be used to insert or otherwise encode an audio code in an audio signal. However, any method for encoding a broadcast signal with an identification code can be used. By way of example, audio codes can be inserted into television audio content by program creators, broadcasters, final distributors, television networks, and the like. Although the codes could be any type of identification codes and do not have to be audio codes, the remainder of the description is directed, for ease of illustration, to the extraction of audio codes contained in audio channels. However, those having ordinary skill in the art will readily recognize that such a description is merely an example, and identification codes could be in any other channel and/or signal types than audio channels and signals. Accordingly, this disclosure should not be considered as limited to audio channels and/or audio codes, but as setting forth example code extraction systems, methods, and articles of manufacture.
The example system 100 includes a multiplexer 106, a signal ranker 108, a channel selector 110, a decoder 112, an audio processor 114, and audio output devices 116. It will be recognized by persons of ordinary skill in the art and will be apparent from the description below, that the term “multiplexer” as used herein is a generic term that describes any device that can perform multiplexing and/or de-multiplexing. The channels 101-104 are coupled both to the multiplexer 106 and the audio processor 114.
The multiplexer 106 can be any type of multiplexer that is capable of multiplexing and/or de-multiplexing signals, such as, for example, audio or video signals. The multiplexer 106 receives the channels 101-104 and de-multiplexes the information in the channels 101-104. The information from the multiplexer 106 passes to the signal ranker 108.
In general, the signal ranker 108 ranks the signals according to characteristic(s) of the signals in the channels 101-104. The signals may be ranked though a number of possible different techniques disclosed herein, such as by determining which channel or channels have the best signal quality.
The ranked signals pass to the channel selector 110, where a channel is selected for decoding based on the ranking performed by the signal ranker 108. For example, the channel selector 110 may select the channel ranked highest by the signal ranker 108.
Either signals selected by the channel selector 110 or codes extracted therefrom pass to the decoder 112, which decodes the codes and outputs the same. As the decoder 112 decodes the codes passes thereto, the decoder 112 produces a feedback signal that is coupled to the channel selector 110. The feedback signal may be used by the channel selector 110 as an interrupt that causes the channel selector 110 to execute one or more processes described below. For example, the decoder 112 may produce the feedback signal only when the decode quality of the codes being processed by the decoder 112 drops below a certain level. In such an instance, the channel selector 110 may respond by looking for a higher quality channel in which a code is found and coupling the code from that channel to the decoder 112 to improve the decode quality thereof.
Collectively, the multiplexer 106, the signal ranker 108, the channel selector 110 and the decoder 112 extract codes from a plurality of channels 101-104 in environments where multiple, potentially encoded, audio streams are present. In general, the disclosed systems, methods, and articles of manufacture are configured to extract information codes dynamically from one or more channels, rather than continuously decoding all of the channels simultaneously.
Although the multiplexer 106, the signal ranker 108, the channel selector 110 and the decoder 112 are shown in the example of
The audio processor 114 decodes the information in the channels 101-104 to produce audio that is coupled to the audio output devices 116, which may be speakers or the like. For example, if there are six channels of AC-3 audio that are coupled to the audio processor 114 for a program having surround sound audio, the audio processor 114 may decode the six channels of information into six audio signals that are coupled to the six audio output devices 116.
Although the example of
An example multiplexer 206 is shown in
The processor 208 may be, for example, a microprocessor, a microcontroller, any type of PC, a digital signal processor (DSP) an application-specific integrated circuit (ASIC) or the like. Accordingly, the multiplexer 206 may be constructed completely in hardware or in hardware that executes instructions stored in software or firmware.
The memory 210 may be a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically-erasable programmable read-only memory (EEPROM), flash memory or the like. Alternatively or additionally, the memory 210 may be any type of optical, magnetic, or electronic storage medium that is located either internally or externally to the multiplexer 206. For example, the memory 210 could be read-only memory (ROM), random access memory (RAM), compact disc read-only memory (CDROM), electro-optical memory, magneto-optical memory, or the like. The memory 210 may store, for example, instructions that dictate the operation of the processor 208. Additionally or alternatively, the memory 210 may be used to buffer the contents of one or more of the channels 101-104. For example, as described in detail below, the memory 210 could be used to buffer, for example, ten seconds of the contents of each of the channels 101-104.
Although shown as separate components in the example of
An example process that may be carried out by the processor 208 of the multiplexer 106 is shown in
The received signals are then ranked according to characteristics that are correlated with audio code fidelity (block 304). The audio signals received from the channels 101-104 may be ranked, ordered, or otherwise graded based on one or any combination of characteristics or features of the audio signals. Characteristics according to which the audio signals may be graded may include signal amplitude, signal energy, signal strength, signal to noise ratio (SNR), a history of a percentage of time that the amplitude or energy of the signals exceeds a threshold and the number of times an audio signal has been successfully decoded to yield an audio code. Alternatively, the characteristic used to rank signals may include certain aspects of the frequency spectrum of the audio signals.
If audio signal amplitude and/or strength of the signals are used to characterize the signal(s), any technique for determining the amplitude and/or signal strength of a signal can be used. Various techniques for determining signal energy are disclosed, for example, in U.S. Pat. No. 5,170,437, the entire disclosure of which is hereby incorporated by reference in its entirety. Of course, other techniques for determining signal energy may alternatively be used.
To rank, order or otherwise grade the signals, the characteristics or features, or any combination thereof, are measured or otherwise determined for each received audio signal. For example, the amplitude of each received audio signal can be determined. Once determined, the characteristic(s) or feature(s) can be used to rank or order the audio signals. To perform the ranking, for example, each audio signal can be assigned a value, percentage or any other numerical designation that is equivalent to or representative of the measured value of the characteristic(s) or feature(s). For example, if audio signal amplitude is calculated for each signal, the audio signals can be ranked in order of, for example, largest audio signal amplitude to smallest audio signal amplitude. The audio signals can be ranked in any increasing or decreasing order of the characteristic(s) or feature(s) measured, so long as the audio signal with the largest occurrence of the given characteristic(s) or feature(s) can be determined relative to the next largest occurrence of the given characteristic(s) or feature(s), relative to the third largest occurrence, etc.
The characteristics by which the ranking of audio signals is performed (block 304) may be determined by the multiplexer 206 or could be determined by any other component. In an example system in which the characteristic(s) are passed to the multiplexer 206 by another device, the multiplexer 206 would then rank the audio signal based on the characteristics passed thereto.
After the audio signals have been ranked (block 304), the multiplexer 206 selects an audio channel to be processed based on the rankings (block 306). The selected audio channel may be the audio channel having the signal(s) with the highest signal strength, the highest audio level or, more generally, the audio channel having an audio signal with the best ranking, regardless of the characteristic by which the audio signal are ranked. As used herein, to “select” an audio channel is to create a communication path or connection between the desired channel and a device. Additionally or alternatively, selection may mean that a particular audio channel or audio signal will be further processed by the multiplexer 206.
Once an audio channel has been selected (block 306), the multiplexer 206 may, optionally, buffer one or more of the unselected channels in the memory 210 (block 308). For example, the multiplexer 206 may buffer ten seconds of audio signals from the audio channels corresponding to the audio signals having the second and third highest rankings (provided that the audio channel corresponding to the highest ranked signal was selected).
Buffering audio signals from one or more unselected channels is advantageous in that, if the selected signal is of poor quality or does not include a detectable audio code, one of the buffered signals may be used as a backup. For example, if the multiplexer 206 searches for audio codes in the highest ranked channel for ten seconds and is unable to find audio codes therein, the multiplexer 206 may, in effect, travel back in time and analyze buffered 10 seconds of another audio channel to determine if the buffered channel included an audio code. Buffering may be particularly advantageous in situations in which audio channels are being scanned for an audio code corresponding to a 15 second television commercial. If the multiplexer 206 and the decoder 112 cannot find an audio code in a selected audio channel for 10 seconds, there is jeopardy that the multiplexer 206 and the decoder 112 will miss the occurrence of the commercial. However, if ten seconds of other audio channels are buffered, the multiplexer 206 and the decoder 112 may evaluate the buffered channels for the occurrence of an audio code corresponding to the commercial. While advantageous in certain aspects, like the other block of the example process of
After buffering of the unselected channels (block 308) or, if buffering is not performed, after the selection of an audio channel (block 306), it is determined if the audio signal on the selected audio channel includes an audio code (block 310). Any method for determining or otherwise detecting the existence of an audio code in an audio signal can be used to determine whether at least one audio code is present. For example, the audio signal on the selected audio channel may be fully or partially decoded to determine if an audio code is present. Example techniques for decoding (either fully or partially) the audio signal are disclosed in, for example, U.S. Pat. Nos. 5,450,490, 5,642,111, 5,764,763, and 6,272,176, which are incorporated herein by reference.
The multiplexer 206 may itself determine if the signals on the selected audio channel include audio codes. In the alternative, the multiplexer 206 may pass the audio signal from the selected channel to another device (e.g., a decoder) that is capable of decoding or otherwise extracting audio codes from audio signals using such decoding methods. If performed by another device, the results of the detection or decoding process can be sent or fed back to the multiplexer 206. The information received by the multiplexer 206 can be used by the multiplexer to determine whether the audio signal on the selected channel includes an audio code. For example, if a decoded audio code is fed back to the multiplexer 206 from, for example, an audio code decoder (e.g., the decoder 112), the multiplexer 206 can determine if the audio signal includes an audio code.
A finite period of time will be allotted for determining if the selected audio channel includes an audio code. Any time interval that is predetermined or determined on the fly can be used, depending on the desired response of the system. If no audio codes are decoded from the selected audio channel (either by the multiplexer 206 or from feedback from the audio code decoder 112) within the time interval, the multiplexer 206 may determine that no audio codes are present in the audio signal. Accordingly, the time period sets the maximum time limit by which an audio code must be found. If an audio code is not found within the allotted time period, the multiplexer 206 will conclude that audio codes are not present on the selected audio channel. Audio codes may not be present in an audio signal for numerous reasons. For example, for television audio content, if the audio content is silent (i.e., there is no audio signal for certain intervals of time) or the audio content is not encoded with an audio code, an audio code will not be present.
If audio codes are not found within the selected channel (block 312) and there are more channels remaining in the ranking that have not been used (block 313), control returns to block 306, where another audio channel is selected. When another audio channel is selected (block 306), such a selection may include selecting one or more channels stored in the buffer or memory 210. The selection (block 306) may be based on the ranking that was previously calculated (block 304). For example, the audio channel having the second highest rank may be selected. If the channel having the second highest rank does not include an audio code (block 310), the third-ranked audio channel may be selected, and so on until an audio code is found in the audio signal of a selected audio channel. In other words, control continues to loop through blocks 306-312 until audio codes are detected and/or every channel has been checked without discovery of an audio code. In no audio codes are detected in any channel, control returns to block 302. If there are no more channels remaining the ranking that have not been used (block 313), control returns to block 302.
Conversely, if it is determined that the audio signal does include an audio code (block 312), the multiplexer 206 extracts the audio code(s) from the audio signal (block 314). Any method for extracting or otherwise decoding audio code(s) from an audio signal can be used, such as that described in, for example, U.S. Pat. Nos. 5,450,490, 5,642,111, 5,764,763, and 6,272,176, which have been incorporated by reference herein. However, any method for decoding an identification code from a broadcast signal can be used. The audio code extraction can be performed by, for example, the multiplexer 206 or the decoder 112.
Once decoded, the extracted audio code(s) can be used by the multiplexer 206, the decoder 112, or passed along to any other device or process for subsequent processing. For example, the extracted audio code(s) can be optionally used to identify the content of the audio signals, e.g., the program content of a television program. For example, the extracted audio code(s) can be optionally used to identify a distributor (e.g., the final distributor) of the audio signals.
As an alternative to the process of
The example process of
After or while the audio signals are monitored (block 402), an audio channel is selected based on at least one characteristic of the audio signals that are monitored (block 404). While the example process of
After an audio channel is selected (block 404), signals on one or more of the unselected channels may be buffered (block 406). As described in conjunction with the example process of
After the audio channel has been selected (block 404) and any optional buffering is performed (block 406), it is determined if the audio signal on the selected audio channel includes one or more audio codes (block 408). If audio codes are not present (block 410) and there are more channels in the ranking that have not been used (block 411), a different audio channel is selected (block 404). The selection (block 404) may include selecting signals that are previously buffered (block 406). The operation of the blocks 404-410 will continue to iterate until audio code(s) of acceptable quality are detected in the selected audio signal (block 410). Alternatively, if it is determined that there are no more unused channels in the ranking (block 411), control returns to the block 402. When it is determined that audio code(s) of acceptable quality are present in the audio signal (block 410), the audio code(s) are extracted from the audio signal (block 412). The details of blocks 408-412 may be similar or identical to the details provided in conjunction with blocks 310-314 of
A further example process for selecting audio channels is shown in
As noted with respect to the example processes of
After channel selection (block 502) and optional buffering (block 504) an audio signal that is received on the selected channel is compared to a threshold (block 506). For example, any one or more of the energy, amplitude, the SNR or any other relevant characteristics of the selected signal of the selected signal is compared to corresponding thresholds for those characteristics. For example, the SNR and the energy of the selected signal may be respectively compared to SNR and energy thresholds to determine if the characteristics exceed the threshold (block 506).
If the characteristic(s) of the audio signal do exceed the threshold(s) (block 508), it is determined if the audio signal on the selected channel includes audio codes (block 510). If audio codes are present in the selected signal (block 512), audio codes are extracted from the audio signal (block 514). The blocks 510-514 may be implemented in a manner similar or identical to the corresponding blocks in
If the characteristic(s) of the audio signal do not exceed the threshold(s) (block 508) or audio code(s) are not present in the signal (block 512), control returns to block 502, at which point another audio channel is selected. The second selected audio channel could be an audio channel that has been previously buffered (block 504) or could be an audio channel that is presently being received. The second selected audio channel is compared to a threshold (block 506) and, if the threshold is exceeded (block 508), it is determined if the audio channel includes a signal having audio codes therein (block 510). Control loops through blocks 502-512 until a channel is found that includes a signal having a characteristic that exceeds the threshold and includes one or more audio code(s), at which point the audio code(s) are extracted (block 514).
The example processes of
Although certain example apparatus, methods and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all apparatus, methods and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
This application is a continuation of PCT patent application serial no. PCT/US03/31697 filed Oct. 7, 2003.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US03/31697 | Oct 2003 | US |
Child | 11278917 | Apr 2006 | US |