Embedding and Extracting Digital Data in Music and Other Audio Signals

JP2025529953A5Pending Publication Date: 2026-08-05UTOPIA MUSIC AG
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
UTOPIA MUSIC AG
Filing Date
2023-09-01
Publication Date
2026-08-05

AI Technical Summary

Technical Problem

Existing techniques face challenges in reliably embedding and reconstructing binary data in analog signals, particularly audio signals, due to the varying amplitude of audio signals over time, which complicates the assignment of binary states to specific frequencies.

Method used

A method is proposed where a pair of frequencies is chosen for embedding binary data in an analog signal, ensuring that the amplitude of one frequency is greater than the other for each binary state, with optional modification of the signal to maintain a sufficient amplitude difference, and using redundant pairs and checksums for enhanced reliability.

Benefits of technology

The method allows for efficient and reliable embedding and reconstruction of binary data in analog signals with minimal perceptible impact, ensuring robustness against signal loss and errors through amplitude adjustments and redundancy techniques.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method for embedding binary data in an analog signal. For each of a plurality of time periods, one of a first binary state and a second binary state is embedded in the analog signal using a pair of frequencies including a first and a second frequency in the frequency spectrum of the analog signal. For a given time period, when the first binary state is to be embedded in the analog signal, the amplitude of the first frequency is ensured to be greater than the amplitude of the second frequency. And when the second binary state is to be embedded in the analog signal, the amplitude of the second frequency is ensured to be greater than the amplitude of the first frequency. The present disclosure further relates to a method for reconstructing binary data embedded in an analog signal, and corresponding apparatus, computer program, and computer-readable storage medium.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to techniques for embedding binary data in analog signals and for digital watermarking of audio files. This disclosure further relates to techniques for the reconstruction of binary data embedded in analog signals, including techniques for integrity checking and error correction. [Background technology]

[0002] There are many situations where it is useful to embed digital data (e.g., binary data) into an analog signal. The analog signal may be, for example, an audio signal. One example of embedding digital data is commonly referred to as digital watermarking. For audio, identifiers and other metadata can be embedded and extracted with minimal impact on the perceived audio. This allows content creators to track the origin of the audio being played and allows content services to easily identify the content, its license, and other useful information. When done correctly, the embedded signal survives most compression without causing significant degradation to the listening experience.

[0003] In view of the above, there is a need for reliable techniques for embedding digital data in analog signals, including audio signals, and corresponding techniques for reconstructing the embedded binary data. Summary of the Invention

[0004] In view of this need, the present disclosure provides a method for embedding binary data in an analog signal, a method for reconstructing binary data embedded in an analog signal, as well as a corresponding device, a computer program and a computer-readable storage medium, having the features of the respective independent claims.

[0005] One aspect relates to a method for embedding binary data (e.g., digital data) in an analog signal. The binary data may, for example, relate to or represent a binary data signal. The analog signal may, for example, be an audio signal such as a music file. According to the method, for each of a plurality of time periods, one of a first binary state and a second binary state may be embedded in the analog signal using a pair of frequencies or frequency pairs. The pair of frequencies may include first and second frequencies in the frequency spectrum of the analog signal. The first and second frequencies may be different from each other. For example, the first and second frequencies may be chosen to be sufficiently different so as not to be cut off by a corresponding compression codec and / or to have a low impact (e.g., perceptual impact) on the analog signal. It is understood that the first and second binary states may also relate to a binary "1" and a binary "0," respectively. However, depending on the implementation, the first and second binary states may be selected to inversely assign binary "1"s and "0"s to the binary "1"s and "0"s. The time periods may, for example, be consecutive time periods in a series of time periods.

[0006] The method may include ensuring that, for a given time period, if the first binary state is to be embedded in the analog signal, the amplitude of the first frequency is greater than the amplitude of the second frequency in the given time period, whereas, if the second binary state is to be embedded in the analog signal, the method may include ensuring that, for the given time period, the amplitude of the second frequency is greater than the amplitude of the first frequency.

[0007] The proposed method thereby provides a reliable and efficient way to embed binary data into an analog signal. In particular, the embedding can be independent of the absolute amplitude level of the analog signal and correspond to a time-varying absolute amplitude. Therefore, the proposed method is particularly applicable to embedding binary data, e.g., watermarks, into audio signals (such as music files).

[0008] In some embodiments, the method may further include comparing the amplitude of the first frequency to the amplitude of the second frequency. And, ensuring that the amplitude of the first frequency is greater than the amplitude of the second frequency may involve modifying the analog signal to enhance the amplitude of the first frequency relative to the amplitude of the second frequency if the amplitude of the first frequency is not greater than the amplitude of the second frequency. On the other hand, ensuring that the amplitude of the second frequency is greater than the amplitude of the first frequency may involve modifying the analog signal to enhance the amplitude of the second frequency relative to the amplitude of the first frequency if the amplitude of the second frequency is not greater than the amplitude of the first frequency.

[0009] Thus, if the amplitudes of the first and second frequencies do not already have the proper magnitude relationship to embed the desired data bits for a given time period, the analog signal may simply need to be modified.

[0010] In some embodiments, modifying the analog signal may involve injecting a predefined signal into a first frequency to enhance the amplitude of the first frequency, or injecting a predefined signal into a second frequency to enhance the amplitude of the second frequency. The predefined signal may be a continuous and / or smooth signal. For example, the predefined signal may be a sinusoidal signal or may be derived from a sinusoidal signal.

[0011] This allows the analog signal to be modified in a manner that has very little perceptible effect on the audio signal, which is particularly the case for audio signals.

[0012] In some embodiments, the method may further include embedding second binary data into the analog signal using a second pair of frequencies, where the second binary data may be configured to indicate temporal boundaries of a payload (e.g., a message) of the binary data. Thus, a binary signal representing or related to the second binary data may be viewed as a clock signal for the binary data signal representing the binary data.

[0013] This allows the boundaries of the embedded binary data, i.e., the payloads of the first binary data, to be efficiently indicated, eliminating the need for predefined code words indicating the start and end points of each of these payloads and the need to detect the code words, thereby improving the efficiency and reliability of data embedding.

[0014] In some embodiments, for a given payload of the binary data, the second binary data comprises a fixed one of the first and second binary states for all time periods during which the given payload is embedded, and may transition to or from the other of the first and second binary states at the time boundaries of the given payload, e.g., a transition from a longer sequence of binary "1"s to a longer sequence of binary "0"s is easily detectable, thereby allowing for highly reliable indication of payload boundaries for embedded binary data.

[0015] In some embodiments, the method may further include determining a checksum value for a data word of the binary data and appending the determined checksum value to the data word for embedding in the analog signal. The checksum value may be, for example, a CRC value, thereby improving the reliability of data reconstruction.

[0016] In some embodiments, the binary data may be redundantly embedded in the analog signal using multiple different pairs of frequencies, which may further improve the reliability of data reconstruction.

[0017] Another aspect of the present disclosure relates to a method for reconstructing binary data embedded in an analog signal. According to the method, for each of a plurality of time periods, one of a first binary state and a second binary state may be embedded in the analog signal using a pair of frequencies. The pair of frequencies may include first and second frequencies in the frequency spectrum of the analog signal. The duration and / or boundaries of the time period may be pre-agreed between the embedding instance and the reconstruction instance. Alternatively, the boundaries of the time period may be determined by analyzing an audio signal at the first and second frequencies. This may involve determining whether a predetermined pattern exists in the audio signal at the first and second frequencies. For example, this may involve determining whether a predetermined pattern exists in the frequency spectrum of the audio signal at the first and second frequencies.

[0018] For a given time period, the method may include comparing an amplitude of the first frequency to an amplitude of the second frequency. Further, if the amplitude of the first frequency is greater than the amplitude of the second frequency, it may be determined that the binary data or binary signal includes the first binary state as a data bit for the given time period. On the other hand, if the amplitude of the second frequency is greater than the amplitude of the first frequency, it may be determined that the binary data or binary signal includes the second binary state as a data bit for the given time period.

[0019] In some embodiments, the method further includes reconstructing second binary data embedded in the analog signal using a second pair of frequencies. The method may further include determining temporal boundaries of a payload of the binary data based on the reconstructed second binary data. Here, the reconstruction of the second binary data may proceed in the same manner as the reconstruction of the binary data with reference to the second pair of frequencies.

[0020] In some embodiments, the method may further include dividing the binary data payload into data words and checksum values ​​for the data words. The method may further include determining whether the checksum value indicates that the payload was accurately reconstructed. If the checksum value indicates that the payload was not accurately reconstructed, the method may further include: obtaining a confidence score for each data bit of the payload regarding confidence that the data bit was accurately reconstructed; and inverting one or more of the data bits of the payload for which the confidence score indicates the lowest confidence that the data bit was accurately reconstructed to obtain a bit-reversed payload. Finally, determining whether the checksum value of the bit-reversed payload indicates that the bit-reversed payload was accurately reconstructed. The confidence score or confidence may then be determined based on a magnitude or absolute value of a difference between the amplitude of a first frequency and the amplitude of a second frequency for the data bits. Inverting one or more of the data bits of the payload may involve inverting the lowest confidence data bit, inverting the second lowest confidence data bit, and / or inverting the two lowest confidence data bits.

[0021] In some embodiments, binary data may be redundantly embedded in an analog signal using multiple different pairs of frequencies. The method may further include reconstructing each redundant version of the binary data for each of the multiple different pairs of frequencies. In this case, the most reliable version of the reconstructed binary data may be used as the final reconstructed version. The most reliable version may be the version with the largest magnitude or absolute value difference between the amplitudes of the frequencies for each pair of frequencies. Alternatively, the reconstructed versions of the binary data may be correlated with each other to determine the final reconstructed version. Reconstruction of each redundant version of the binary data may proceed similarly to the method described above.

[0022] Another aspect of the present disclosure relates to a method for watermarking an audio file, which may comprise embedding binary data corresponding to a digital watermark in the audio file using the method according to the first aspect described above or any of its embodiments.

[0023] According to another aspect of the present disclosure, an apparatus is described, which may include a processor and a memory coupled to the processor and storing instructions for the processor, the processor may be configured to perform all steps of the methods according to the preceding aspects and embodiments thereof.

[0024] According to a further aspect, a computer program is described which, when executed by a computing device such as a processor, may include executable instructions to perform the methods or method steps outlined throughout this disclosure.

[0025] According to another aspect, a computer-readable storage medium is described that may store a computer program, such as the computer program of the preceding aspect, that, when executed on the processor, is adapted to run on the processor and to perform the methods or method steps outlined throughout this disclosure.

[0026] It should be noted that the methods and apparatus, including the preferred embodiments, outlined in this disclosure may be used alone or in combination with other methods and systems disclosed in this document. Furthermore, all aspects of the methods and apparatus outlined in this disclosure may be combined in any manner. In particular, the features of the claims may be combined with each other in any manner.

[0027] It will be understood that apparatus features and method steps may be variously interchanged. In particular, as will be appreciated by those skilled in the art, details of the disclosed methods can be implemented by corresponding apparatus, and vice versa. It will also be understood that any statements made above relating to a method and, e.g., steps thereof, apply equally to corresponding apparatus and, e.g., blocks, stages, units thereof, and vice versa. [Brief explanation of the drawings]

[0028] The invention will now be described, by way of example only, with reference to the accompanying drawings, in which: [Figure 1] FIG. 1 is a flow chart illustrating an example method for embedding binary data in an analog signal according to an embodiment of the present disclosure. [Figure 2] FIG. 2 is a diagram illustrating an example spectrogram of an analog signal with embedded binary data in accordance with an embodiment of the present disclosure. [Figure 3] FIG. 3 illustrates an example spectrogram of an analog signal with binary data embedded along with a clock signal in accordance with an embodiment of the present disclosure. [Figure 4]FIG. 4 is a flowchart illustrating an example method for reconstructing binary data embedded in an analog signal according to an embodiment of the present disclosure. [Figure 5] FIG. 5 is a flowchart illustrating an example of a method for consistency checking and error correction that may be used in the context of FIG. 4 according to an embodiment of the present disclosure. [Figure 6] FIG. 6 illustrates another example spectrogram of an audio signal with embedded binary data, additionally showing confidence scores for the reconstructed data bits, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0029] Hereinafter, exemplary embodiments of the present disclosure will be described with reference to the accompanying drawings, in which the same elements are designated by the same reference numerals, and repeated description thereof may be omitted. Embedding binary data or binary signals

[0030] One challenge faced when embedding binary data in an audio signal, as a non-limiting example of an analog signal, is that because the amplitude of audio varies over time and is a relative scale, one cannot simply pick a frequency and transmit high and low amplitudes that represent the binary data.

[0031] Therefore, the present disclosure proposes choosing a pair of frequencies or frequency pairs and ensuring that the first frequency of the pair, when representing a binary "0," has a higher amplitude than the second frequency of the pair, and vice versa, when representing a binary "1" in the binary data. This ensures that the binary value is easily determinable while modifying the audible signal as little as possible. It is understood that the assignment of high and low amplitudes to binary "0" and "1," i.e., the initial assignment, is arbitrary and that, depending on the implementation, opposite assignments may be chosen. It is further understood that the respective selected assignments need to be negotiated or otherwise shared between the encoder or embedding instance that embeds the binary data and the decoder or reconstruction instance that reconstructs the embedded binary data.

[0032] 1 is a flowchart illustrating an example method 100 for embedding binary data, e.g., digital data, in an analog signal, according to an embodiment of the present disclosure. The method may be used in connection with or in the context of digital watermarking. The analog signal into which the binary data is embedded may be, for example, an audio signal. In particular, the analog signal may consist of, be contained within, or relate to a music file. Nevertheless, the present disclosure should not be understood as being limited to audio signals and may apply to any analog signal.

[0033] Binary data may be referred to as a binary payload. It may relate to or represent, for example, a binary data signal. In other words, binary data may relate to or represent information content, such as the binary states of a time-dependent binary signal. Furthermore, binary data may relate to additional information, such as metadata, a digital watermark, or analog data.

[0034] In general, method 100 embeds one of a first binary state and a second binary state into the analog signal for each of a plurality of time periods using a pair of frequencies, the pair of frequencies including a first frequency and a second frequency, the first and second frequencies being frequencies in a frequency spectrum of the analog signal and being different from each other.

[0035] It will be appreciated that the first and second frequencies are chosen to be sufficiently different from one another to allow reliable reconstruction of the embedded binary data. Furthermore, the first and second frequencies may be chosen so as not to be cut off by the applicable compression codec and / or to have a low impact, e.g., a perceptible impact, on the analog signal. As one non-limiting example, 14 kHz and 16 kHz may be chosen for the first and second frequencies.

[0036] The time periods may be, for example, consecutive time periods in a series of time periods. The time periods may have a predefined duration, for example, of equal duration. Furthermore, the duration of the time periods may be negotiated between the embedded instance and the reconstructed instance.

[0037] It is understood in the present context that different amplitudes of the first and second frequencies may mean that these amplitudes are sufficiently different to allow reliable reconstruction of the embedded data. In other words, the ensured difference in amplitude may be chosen to result in a sufficiently good signal-to-noise ratio (SNR) for the embedded data. Without intended limitation, the minimum difference in amplitude that method 100 seeks to ensure may be, for example, 44 dB.

[0038] The method 100 includes steps S110 and S120, which may be performed for a given time period among a plurality of time periods. Depending on the implementation, steps S110 and S120 may be performed for each of a plurality of time periods.

[0039] In step S110, if a first binary state is to be embedded in the analog signal, it is ensured that the amplitude of the first frequency in a given time period is greater than the amplitude of the second frequency. Here and hereinafter, the amplitude of the first frequency is intended to refer to the magnitude of the analog signal within a time-frequency tile in the time-frequency domain, e.g., after an appropriate time-frequency transformation of the analog signal, corresponding to the given time period and the first frequency. Similarly, the amplitude of the second frequency is intended to refer to the magnitude of the analog signal within a time-frequency tile in the time-frequency domain, corresponding to the given time period and the second frequency.

[0040] Step S120 ensures that if a second binary state is to be embedded in the analog signal, the amplitude of the second frequency in a given time period is greater than the amplitude of the first frequency.

[0041] Notably, only one of steps S110 and S120 may be performed for a given time period. Step S110 may be performed if the binary data to be embedded needs to be embedded in a given time period as a first binary state as a data bit. Conversely, step S120 may be performed if the binary data to be embedded needs to be embedded in a given time period as a second binary state as a data bit. Thus, the other of steps S110 and S120 may be performed for different ones of the time periods depending on the respective data bits to be embedded in the respective time periods.

[0042] For some time periods, the amplitudes of the first and second frequencies may already have the necessary relationship to embed the desired data bit for that time period, but for other time periods, this may not be the case, and therefore modification of the analog signal is required.

[0043] Thus, the method 100 may further include comparing the amplitude of the first frequency to the amplitude of the second frequency for a given time period.

[0044] Ensuring that the amplitude of the first frequency is greater than the amplitude of the second frequency in step S110 may involve modifying the analog signal to enhance the amplitude of the first frequency relative to the amplitude of the second frequency if the amplitude of the first frequency was not already greater than the amplitude of the second frequency, or was not sufficiently greater. In other words, if the desired data bit for the time period requires the amplitude of the first frequency to be greater than the amplitude of the second frequency, i.e., if it is desired to embed a first binary state in the time period, but the amplitude of the first frequency is not already greater than the amplitude of the second frequency in the original analog signal, then the analog signal is modified in a manner that enhances the amplitude of the first frequency relative to the amplitude of the second frequency. This may involve enhancing the amplitude of the first frequency and / or suppressing the amplitude of the second frequency.

[0045] On the other hand, ensuring that the amplitude of the second frequency is greater than the amplitude of the first frequency in step S120 may involve modifying the analog signal to enhance the amplitude of the second frequency relative to the amplitude of the first frequency if the amplitude of the second frequency was not already greater than the amplitude of the first frequency, or was not sufficiently greater. In other words, if the desired data bit for the time period requires the amplitude of the second frequency to be greater than the amplitude of the first frequency, i.e., if it is desired to embed a second binary state in the time period, but the amplitude of the second frequency is not already greater than the amplitude of the first frequency in the original analog signal, then the analog signal is modified in a manner that enhances the amplitude of the second frequency relative to the amplitude of the first frequency. This may involve enhancing the amplitude of the second frequency and / or suppressing the amplitude of the first frequency.

[0046] In the above, modifying the analog signal to enhance the amplitude of a first frequency relative to the amplitude of a second frequency may involve injecting, e.g., inserting, a predefined signal into the first frequency to enhance the amplitude of the first frequency. Conversely, modifying the analog signal to enhance the amplitude of a second frequency relative to the amplitude of the first frequency may involve injecting, e.g., inserting, a predefined signal into the second frequency to enhance the amplitude of the second frequency. For this purpose, the predefined signal may be a periodic predefined signal of the first frequency or the second frequency, depending on whether the amplitude of the first or second frequency needs to be enhanced. Furthermore, the predefined signal may be a continuous and / or smooth signal. For example, the predefined signal may be a sinusoidal signal. Preferably, the predefined signal may be injected so as not to affect the boundaries of the time period and to have a maximum impact at a timing within the time period, e.g., midway or approximately midway through the time period. In this case, the effect may be continuously increasing from the start of the time period and continuously decreasing towards the end of the time period. The strength or peak strength of the injected signal may be selected based on the difference in amplitude between the first and second frequencies in a given time period of the original analog signal to ensure a desired minimum difference between these amplitudes according to the data bits embedded for the given time period.

[0047] Figure 2 shows an example spectrogram of an analog signal into which binary data has been embedded according to the above method. Specifically, in this example, binary data, such as a binary sequence of "101010101010," is repeatedly embedded in the audio signal.

[0048] The embedded binary data is clearly visible as an alternating dot pattern at an exemplary first frequency of approximately 13.75 kHz and an exemplary second frequency of approximately 14.5 kHz. A bright dot at the first frequency, i.e., high amplitude, without a dot at the second frequency for a given time period indicates a first binary state, i.e., a binary "1" in this example, while a bright dot at the second frequency, without a dot at the first frequency for a given time period, indicates a second binary state, i.e., a binary "0" in this example. It is understood that each time period contains one dot at either the first or second frequency. Thus, the binary data or binary sequence "101010101010" requires 12 time periods for embedding.

[0049] As a possible addition to the above method, the problem of determining where a binary payload begins and ends can be addressed as described below. Without knowing where to begin reading, it can be difficult to determine what data is being read. One way to address this problem is to select a second pair of frequencies and use the above technique to embed binary "1s" and "0s" on this second pair of frequencies, sending / embedding a stream of "1s" from the beginning to the end of the message and then sending / embedding "0s" for the duration of the next payload. This can be done by alternating between a sequence of "1s" and a sequence of "0s" for each payload. In doing so, for example, the timing of the transition from a sequence of "1s" to a sequence of "0s," or vice versa, can be recognized by a decoder attempting to reconstruct the embedded binary data as the boundary between different payloads / messages of the embedded data. Thus, the binary data embedded using the second pair of frequencies can be considered relative to a clock signal to inform the decoder of the boundaries between payloads / messages.

[0050] However, methods according to embodiments of the present disclosure may further include embedding second binary data into the analog signal using a second pair of frequencies. In this case, the second binary data may be configured to indicate time boundaries between payloads of binary data. As noted above, a binary signal representing or related to the second binary data may be considered a clock signal for the binary data signal representing the binary data. It is understood, of course, that the frequencies of the second pair of frequencies may be different or sufficiently different from the first and second frequencies described above.

[0051] Further in line with the above, the second binary data may comprise, for a given payload of binary data, a fixed binary state of the first and second binary states for all time periods in which the given payload is embedded, e.g., a continuous sequence of "1"s or a continuous sequence of "0"s, and the second binary data may transition to or from the other of the first and second binary states at the time boundaries of the given payload.

[0052] Figure 3 shows an example of a spectrogram of an analog signal in which binary data has been embedded along with a clock signal. In this example, the binary data or binary sequence "101010101010" is repeatedly embedded in the audio signal in the same manner as in Figure 2.

[0053] The embedded binary data is again clearly visible as an alternating dot pattern at an exemplary first frequency of approximately 13.75 kHz and an exemplary second frequency of approximately 14.5 kHz. Thus, the binary data or binary sequence "101010101010" requires 12 time periods for embedding. Furthermore, the second binary data, i.e., the clock signal, is visible as a dot pattern at approximately 11 kHz and approximately 11.75 kHz. For the duration of the 12 time periods of each binary data payload / message, the second binary data includes a consecutive sequence of 12 binary "0"s or 12 binary "1"s, with transitions between consecutive sequences at the time boundaries of the binary data payload / message. Verifying the integrity of binary data

[0054] Because analog signals are inherently lossy, it may be desirable to perform some form of integrity check to ensure that the payload is intact and complete. This may be done, for example, using a parity bit. To do so, the number of "1"s or the number of a chosen one of the first and second binary states in the message may be counted in the message, and if the number is even, a particular parity bit, e.g., a "1", may be added, and if the number is odd, the opposite bit, e.g., a "0", may be added to the end of the message. This added bit can then be used to detect if a single bit is incorrect in the reconstructed message.

[0055] A problem that arises with the above technique using a single parity bit is that if two, four, or any even number of bits are incorrect, the message will still be recognized as intact and complete. Because this disclosure concerns lossy signals, it may be preferable to use multiple parity bits so that multiple incorrect bits can be detected.

[0056] Several implementations of multi-bit checksums are feasible for use in the context of this disclosure. One of these is the Hamming code, which can detect single and double-bit errors and can even reconstruct the message if only a single bit is incorrect. Alternatively, CRC or cyclic redundancy codes may be used when the focus is on verifying signal integrity or detecting burst errors.

[0057] The use of CRCs when embedding binary data in audio signals can be particularly beneficial because audio signals often vary in strength and errors in the data are often clustered together. While any type of CRC or data integrity technique may be used in the context of the present disclosure, with varying benefits and costs, preferred embodiments of the present disclosure may use CRC-4 for this purpose.

[0058] In view of the above, a method according to an embodiment of the present disclosure may further include determining a checksum value for a data word of binary data and appending the determined checksum value to the data word for embedding in the analog signal. Here, as noted above, the checksum may be a CRC value, such as a CRC-4 value. In one example, an actual data word may include 20 bits of data followed by an 8-bit CRC sum, resulting in a total message length of 28 bits.

[0059] An alternative or perhaps complementary technique for ensuring the integrity of binary data may be to redundantly embed the binary data in an analog signal using multiple different or sufficiently different pairs of frequencies. During reconstruction, different reconstructed versions of the redundantly embedded binary data may be correlated with each other to determine the reconstructed binary data that is most likely to be accurate. This technique may be used independently of the above-described technique involving checksums. For example, the integrity of each duplicate version of the binary data may be ensured separately using its respective checksum value. Reconstructing embedded binary data

[0060] The method for reconstructing the embedded binary data may mirror the method 100 described above with reference to Figure 1. Thus, similar descriptions described above may apply here and need not be explicitly repeated for the sake of brevity.

[0061] 4 is a flowchart illustrating an example of such a method 400 for reconstructing binary data embedded in an analog signal according to an embodiment of the present disclosure. It is assumed that, for each of a plurality of time periods, one of a first binary state and a second binary state is embedded in the analog signal using a pair of frequencies, the pair of frequencies including first and second frequencies, e.g., sufficiently different first and second frequencies, of the frequency spectrum of the analog signal, consistent with the output generated by the above-described method 100. It is understood that the embedder or embedding instance and the reconstructor or reconstruction instance agree on which frequencies to use to embed the binary data, or any second binary data and / or any redundant versions of the binary data.

[0062] It will further be understood that the duration and / or temporal boundaries of the time periods may be pre-agreed between the embedding party and the reconstruction party. Alternatively, the boundaries of the time periods may be determined by analyzing the audio signals at the first and second frequencies. This may involve determining whether a predetermined pattern is present in the audio signals at the first and second frequencies. In particular, this may involve determining whether a predetermined pattern is present in the frequency spectrum of the audio signals at the first and second frequencies. For example, such a predetermined pattern may be the result of injecting a predefined signal at the first or second frequency, as discussed above in the context of method 100.

[0063] Method 400 includes steps S410, S420, and S430, which may be performed for a given time period of a plurality of time periods. Depending on the implementation, steps S410-S430 may be performed for each of a plurality of time periods. It will be appreciated that by performing steps S410, S420, and S430 for each of a plurality of consecutive time periods to determine the sequence of data bits of the binary data, the entire payload / message may be reconstructed.

[0064] In step S410, the amplitude of the first frequency is compared to the amplitude of the second frequency.

[0065] In step S420, if the amplitude of the first frequency is greater than the amplitude of the second frequency, it is determined that the binary signal or binary data includes a first binary state as a data bit in a given time period.

[0066] In step S430, if the amplitude of the second frequency is greater than the amplitude of the first frequency, it is determined that the binary signal or binary data includes a second binary state as a data bit in a given time period.

[0067] As discussed above in the context of method 100, it will be appreciated that the amplitudes of the first and second frequencies may need to be sufficiently different to allow reliable reconstruction of the embedded data. However, assuming the embedder takes appropriate measures to ensure a sufficient difference in amplitude, the reconstruction party may not need to specifically check whether the larger of the two amplitudes is sufficiently larger than the smaller of the two amplitudes.

[0068] In a framework in which a clock signal indicating the temporal boundaries of the binary data payload is embedded in the analog signal, method 400 may further include reconstructing the second binary data embedded in the analog signal using the second pair of frequencies. The method may then determine the temporal boundaries of the binary data payload based on the reconstructed second binary data. It will be appreciated that the reconstruction of the second binary data may proceed similarly to the reconstructing of the binary data described above with reference to steps S410-S430, but with reference to the second pair of frequencies. Data Error Handling

[0069] Techniques for detecting data errors, for example by parity bits and checksums, have been described above. Based on this, the present disclosure further provides a means for reconstructing or correcting messages that are found to be erroneous, in order to avoid having to drop too many messages due to simple single and double bit errors. Notably, the checksums employed above do not themselves provide a technique for data reconstruction, but only a way to verify whether a message has been correctly reconstructed.

[0070] Since the present disclosure relates to analog signals, such as audio signals, it is common for the incorrect bit to have the smallest amplitude difference between the sampled frequencies of a pair of frequencies. Therefore, it is proposed to classify the bits of an incorrectly reconstructed message by their amplitude difference. The bit with the smallest amplitude difference can then be considered the least certain value and, consequently, the most likely erroneous bit. After the most likely erroneous bit is inverted, the checksum verification can be attempted. If this does not result in a correct checksum, the next most likely erroneous bit, i.e., the bit with the second smallest amplitude difference between the pair of frequencies, can be inverted instead.

[0071] If no operational value payload is found after test-flipping the top N bits, i.e., the N bits most likely to be incorrect, then one may try flipping two bits at a time to see if it produces a valid checksum for the payload. In the above example, N is chosen to be N=2, although other values ​​are feasible depending on the situation.

[0072] In general, it is important not to flip more bits than the checksum can compensate for to avoid false positives. However, there are cases where it makes more sense to flip two bits that are more likely to be wrong than to flip a single bit that is very unlikely to be wrong. The flipping strategy you choose may depend on the size of the payload, the strength of the checksum, and the acceptable risk of a false positive.

[0073] An example of a method 500 for message / payload detection and correction that may be used in the context of method 400 is shown in the flowchart of Figure 5. Method 500 includes steps S510-S560 that may be performed after the steps of method 400 have been performed repeatedly over several time periods to produce a reconstructed payload or message of binary data.

[0074] In step S510, the binary data payload is divided into data words and checksum values ​​for the data words.

[0075] In step S520, it is determined whether the checksum value indicates that the payload was correctly reconstructed.

[0076] If the checksum value indicates that the payload has been correctly reconstructed (YES in step S530), the method ends. On the other hand, if the checksum value indicates that the payload has not been correctly reconstructed (NO in step S530), the method proceeds to step S540.

[0077] In step S540, a confidence score is obtained for each data bit of the payload, which relates to the confidence that the respective data bit has been accurately reconstructed. The confidence score or confidence may be determined based on the magnitude or absolute value of the difference between the amplitude of a first frequency and the amplitude of a second frequency for the data bit, or for a pair of frequencies of general interest.

[0078] In step S550, one or more of the data bits of the payload whose confidence score indicates the lowest confidence that the data bits were accurately reconstructed are inverted to obtain a bit-reversed payload.

[0079] Inverting one or more of the data bits of the payload may involve inverting the data bit with the lowest confidence score, inverting the data bit with the second lowest confidence score, and / or inverting the data bits with the two lowest confidence scores. Further example inversion patterns are described below.

[0080] In step S560, it is determined whether the checksum value of the bit-reversed payload indicates that the bit-reversed payload was correctly reconstructed.

[0081] If so, the method ends. Otherwise, a different pattern for bit flipping or inversion pattern based on the determined confidence score may be tried, and steps S550 and S560 may be repeated.

[0082] In general, for a given number N, e.g., chosen as described above, successively attempted different patterns of bit flips may involve flipping the data bit with the lowest confidence score, flipping the data bit with the second lowest confidence score, ...and flipping the data bit with the Nth lowest confidence score. These patterns of bit flips may further include flipping two data bits among the N data bits with the lowest confidence scores, e.g., the data bit with the lowest confidence score and another bit among the remaining N-1 bits with the lowest confidence scores.

[0083] FIG. 6 shows a spectrogram of an audio signal with embedded binary data, along with confidence scores for the reconstructed data bits. The amplitudes of the first and second frequencies are listed, along with confidence scores (normalized to 1) determined based on the difference between the amplitudes of the first and second frequencies. In particular, the confidence score may be determined based on the magnitude or absolute value of the difference between the amplitudes of the first and second frequencies. For example, a relatively high confidence score of 0.97 is determined for the first data bit shown in the figure. On the other hand, a relatively low confidence score of 0.10 is determined for the seventh data bit shown in the figure due to noise in the analog signal at the respective time periods.

[0084] As mentioned above, an alternative or perhaps complementary technique for ensuring the integrity of binary data may be to redundantly embed binary data in an analog signal using multiple different or sufficiently different pairs of frequencies. Then, upon reconstruction, different reconstructed versions of the redundantly embedded binary data may be correlated with each other to determine the reconstructed binary data that is most likely to be accurate. This technique may be used independently of the above-mentioned technique involving checksums. For example, the integrity of each redundant version of the binary data may be ensured individually using its respective checksum value.

[0085] Thus, for each of methods 400 and 500, binary data may be redundantly embedded in an analog signal using a plurality of different frequency pairs. And, each method may further include reconstructing each redundancy version of the binary data for the plurality of different frequency pairs. The reconstruction of the redundancy version may proceed using method 400, taking into account each applicable frequency pair. Furthermore, the reconstruction of each redundancy version may involve performing the steps of method 500 to check and potentially correct each payload / message.

[0086] If redundant versions of the reconstructed binary data are available, this knowledge can be used to verify the reconstructed binary data and derive the final reconstructed binary data. For example, the most reliable version of the reconstructed binary data can be used as the final reconstructed version. The most reliable version can be the version with the largest difference between the amplitudes of each frequency in a pair of frequencies. Alternatively, the reconstructed versions of the binary data can be correlated with each other to determine the final reconstructed version, for example, by majority voting.

[0087] It should be noted that the method features described above correspond to respective apparatus, systems, and computer programs that may not be explicitly described for the sake of brevity, and vice versa. The disclosure of this document is deemed to extend to such apparatus, system, and computer program features, and vice versa. For example, such an apparatus or system may be adapted, e.g., via a suitably configured processor, to perform any or each of the steps described above, and such a computer program may be adapted to cause a processor to execute any or each of the steps described above. The present disclosure should further be construed as relating to a computer-readable medium storing such a computer program.

[0088] Furthermore, it should be noted that the specification and drawings merely illustrate the principles of the proposed method and apparatus / system. Those skilled in the art will be able to make various arrangements that embody the principles of the invention and are within its spirit and scope, even if not explicitly described or shown herein. Moreover, all examples and embodiments outlined in this document are primarily intended for illustrative purposes only to aid the reader in understanding the principles of the proposed method and system. Furthermore, all statements herein providing principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass equivalents thereof.

Claims

1. A method for embedding binary data into an analog signal, wherein for each of a plurality of time periods, one of a first binary state and a second binary state is embedded in the analog signal using a pair of frequencies, the pair of frequencies including the first and second frequencies of the frequency spectrum of the analog signal, Regarding a given time period, When the first binary state is to be embedded in the analog signal, ensure that the amplitude of the first frequency is greater than the amplitude of the second frequency during the given time period. If the second binary state is to be embedded in the analog signal, ensure that the amplitude of the second frequency is greater than the amplitude of the first frequency during the given time period. Methods that include...

2. Regarding the aforementioned given time period, A method further comprising comparing the amplitude of the first frequency with the amplitude of the second frequency, Ensuring that the amplitude of the first frequency is greater than the amplitude of the second frequency involves modifying the analog signal to enhance the amplitude of the first frequency relative to the amplitude of the second frequency if the amplitude of the first frequency is not greater than the amplitude of the second frequency, and / or Ensuring that the amplitude of the second frequency is greater than the amplitude of the first frequency involves modifying the analog signal to enhance the amplitude of the second frequency relative to the amplitude of the first frequency if the amplitude of the second frequency is not greater than the amplitude of the first frequency. The method according to claim 1.

3. The method according to claim 2, wherein the modification of the analog signal involves injecting a predefined signal into the first frequency to enhance the amplitude of the first frequency, or injecting a predefined signal into the second frequency to enhance the amplitude of the second frequency.

4. A method further comprising embedding a second binary data into the analog signal using a second pair of frequencies, The second binary data is configured to indicate the temporal boundaries of the payload of the binary data. The method according to claim 1.

5. With respect to a predetermined payload of the binary data, the second binary data includes, for all time periods in which the predetermined payload is embedded, a fixed binary state among the first and second binary states, and a transition to or from the other binary state among the first and second binary states at the temporal boundary of the predetermined payload. The method according to claim 4.

6. The further step includes determining a checksum value for the data word of the binary data and adding the determined checksum value to the data word in order to embed it in the analog signal. The method according to claim 1.

7. The binary data is redundantly embedded in the analog signal using multiple different pairs of frequencies. The method according to claim 1.

8. A method for reconstructing binary data embedded in an analog signal, wherein, for each of a plurality of time periods, one of a first binary state and a second binary state is embedded in the analog signal using a pair of frequencies, the pair of frequencies including the first and second frequencies of the frequency spectrum of the analog signal. Regarding a given time period, Comparing the amplitude of the first frequency with the amplitude of the second frequency, If the amplitude of the first frequency is greater than the amplitude of the second frequency, it is determined that the binary signal includes the first binary state as data bits in the given time period. If the amplitude of the second frequency is greater than the amplitude of the first frequency, it is determined that the binary signal includes the second binary state as the data bit in the given time period. Methods that include...

9. Reconstructing the second binary data embedded in the analog signal using the second pair of frequencies, The temporal boundaries of the payload of the binary data are determined based on the reconstructed second binary data. The method according to claim 8, further comprising:

10. The payload of the aforementioned binary data is divided into a data word and the checksum value of the data word. Determining whether the checksum value indicates that the payload has been accurately reconstructed, If the checksum value indicates that the payload has been accurately reconstructed, For each data bit of the payload, a confidence score is obtained regarding the confidence that each data bit has been accurately reconstructed. To obtain a bit-inverted payload, the confidence score indicates the lowest confidence that the data bits have been accurately reconstructed, by inverting one or more of the data bits of the payload. Determining whether the checksum value of the bit-inverted payload indicates that the bit-inverted payload has been accurately reconstructed. The method according to claim 8, further comprising:

11. The binary data is redundantly embedded in the analog signal using multiple different pairs of frequencies, and The method according to claim 8, further comprising reconstructing each duplicate version of the binary data for the plurality of different pairs of frequencies.

12. A method for watermarking audio files, A method comprising embedding binary data corresponding to a digital watermark into the audio file using the method described in claim 1 or 8.

13. A device comprising a processor and a memory connected to the processor, the memory storing instructions to be executed by the processor, wherein the processor is configured to carry out the method described in claim 1 or 8.

14. A computer program, when executed by a processor, including instructions that cause the processor to perform the method described in claim 1 or 8.

15. A computer-readable storage medium for storing the computer program described in claim 14.