GENERATION OF OUTPUT DATA BASED ON SOURCE SIGNAL SAMPLES AND CONTROL DATA SAMPLES
20220158600 · 2022-05-19
Assignee
Inventors
Cpc classification
H03G5/165
ELECTRICITY
International classification
Abstract
A signal processing method, especially for audio signals, comprises: receiving input signal samples having source signal portions associated with respective time periods (In_n−1); generating parameters associated with the respective time periods by processing the respective input signal samples, in which the step of generating the parameters has an associated non-zero latency period so that generating step provides a parameter p in a time period (T_n−1) later than the start of the respective time period; and generating an output data portion associated with a given time period (Out_n−1 using a signal processing function F which depends upon the input signal samples in the given time period (In_n−1) and an approximated parameter p′ (1110) associated with a time period other than the given time period (T_n−2).
Claims
1. A signal processing method comprising: generating control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the step of generating the control data portions has an associated non-zero latency period so that the step of generating control data portions provides a control data portion later than the start of the associated time period; and generating an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.
2. A method according to claim 1, in which the control data portion associated with a time period other than the given time period comprises a control data portion which is most-recently generated at the start of generating the output data portion.
3. A method according to claim 1, comprising: performing the steps of generating the source data portions and generating the output data portion in real time.
4. A method according to claim 1, comprising: detecting a rate of change of the control data portions with respect to the time periods; and in response to a detected rate of change greater than a threshold rate of change, causing the step of generating an output data portion to generate the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with the given time period.
5. A method according to claim 1, in which the step of generating an output data portion comprises: for a rate of change of the control data portions with respect to the time periods of less than a threshold rate of change, generating the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with time period other than the given time period; and for a rate of change of the control data portions with respect to the time periods of greater than the threshold rate of change, generating the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with the given time period.
6. A method according to claim 1, comprising smoothing the control data portions with respect to successive time periods.
7. A method according to claim 1, in which the input signal, the one or more source signals and the output signal are audio signals.
8. A method according to claim 7, in which the step of generating an output data portions comprises at least: applying a frequency transform to the sampled source signal to generate frequency-transformed data; and processing the frequency-transformed data according to a control data portion.
9. A method according to claim 8, in which the step of generating an output data portion has an associated latency of at least the given time period.
10. A method according to claim 7, in which the step of generating control data portions comprises at least: applying a frequency transform to the sampled source signal.
11. A method according to claim 7, in which the step of generating an output data portion comprises at least applying a gain to the sampled source signal in dependence upon a control data portion.
12. A method according to claim 1, in which the step of generating an output data portion comprises: using a first function dependent upon first control data portions and using a function dependent upon second control data portions, the generation of the first control data portions having a greater associated latency than the generation of the second control data portions; generating the output data portion associated with the given time period using the first processing operation in dependence upon the given time period of the sampled input signal and a control data portion associated with time period other than the given time period; and generating the output data portion associated with the given time period using the second processing operation in dependence upon the given time period of the sampled input signal and a control data portion associated with the given time period.
13. Computer software having program instructions which, when executed by a computer, causes the computer to perform the method of claim 1.
14. A non-transitory machine-readable medium which stores computer software according to claim 13.
15. Signal processing apparatus comprising: control data generator circuitry configured to generate control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the generation of the control data portions by the control data generator circuitry has an associated non-zero latency period so as to provide a control data portion later than the start of the associated time period; and output data generator circuitry configured to generate an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, in which:
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0022] Referring now to the drawings,
[0023] The control data can be generated as portions, which may correspond to time windows but may in other examples be associated with individual sample positions. Similarly, the input and output samples may be considered as portions, which in some embodiments are windows of multiple samples, but in other examples may be individual samples. The portions can be contiguous (that is to say, one portion is adjacent to a next portion and a preceding portion), or non-contiguous, or even (in situations where a portion represents more than one sample) overlapping. The portions can all be of the same size or can have different sizes.
[0024] In the example of
[0025] In
[0026] In
[0027] Note that instead of audio signals, other types of signals could be relevant to these techniques, such as sensor signals for example from real-world sensors where processing is performed to process the sensor signals with respect to correlation and temporal trends, radio frequency signals such as RADAR signals, image signals or the like.
[0028] Analysis circuitry 330 generates parameters p which are then subject to smoothing by smoothing circuitry 350 to generate smoothed parameters p′ which are actually used for controlling the function F. The reason for the smoothing operation is that the parameters p are not considered as stable from one frame to a next frame (at least for audio signals such as musical signals) but having been smoothed by the smoothing circuitry 350 the variation amongst the parameters p′ with time is reduced.
[0029] In
[0030] Note that there is no requirement that the functions F are the same as between each of the examples of
[0031] Each of the arrangements of
[0032] For this reason and to reduce that signal path latency, in example embodiments to be discussed below, a technique is provided of approximating, for use in generation of output data 220, 420 by the processing operation or function F, the parameters or control data associated with a current time window or position in the input data by another (for example the most recently generated) set of parameters p or p′ available at the start of generating a portion of output data 220, 420.
[0033] The function F can involve, for example, applying a frequency transform (such as an FFT) to the input samples to generate frequency-transformed data, and processing the frequency-transformed data according to a control data portion. In other examples, the generation of the control data can involve performing an FFT process. In other example situations, such as loudness detection, volume control and/or automation and analysis based on neural networks, a frequency transform is not required.
[0034] By way of summary of the processes discussed here,
[0035] generating (at a step 500) control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the step of generating the control data portions has an associated non-zero latency period so that the step of generating control data portions provides a control data portion later than the start of the associated time period; and
[0036] generating (at a step 510) an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.
[0037] For example, the control data portion associated with a time period other than the given time period comprises a control data portion which is most-recently generated at the start of generating the output data portion.
[0038] This process has the overall effect of approximating, for use in the step of generating the output data portion, the control data portion associated with the given time period by using a substitute, different, control data portion, for example one which is most-recently generated at the start of generating the output data portion.
[0039] Optionally, a further step 520 can be provided, comprising smoothing the control data portions with respect to successive time periods, for example using the smoothing filter 450 such as an FIR or IIR low pass filter.
[0040] The steps 500, 510 can be performed in real time, for example.
[0041] In another optional arrangement shown schematically by the flowchart of
[0042] Therefore, in summary of
[0043] The skilled person will appreciate that a comparison of “less than or equal Thr” and “greater than Thr” can equivalently be expressed as “less than Thr2” and “greater than or equal to Thr2”, where Thr2 may be the same as or marginally higher than Thr. The only difference is which outcome of the step 620 applies when ROC is equal to the threshold.
[0044] It will be appreciated that in systems with a smoothing filter, there is a reduced need of the control circuitry and the ROC thresholding as the parameters of the filter can be set to ensure in at least most cases that the ROC is sufficiently low. However, the two arrangements can be used together as a precaution against excursions outside of the normal ROC range provided by the smoothing filter.
[0045]
[0046] control data generator circuitry 700 configured to generate control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the generation of the control data portions by the control data generator circuitry has an associated non-zero latency period so as to provide a control data portion later than the start of the associated time period; and
[0047] output data generator circuitry 710 configured to generate an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.
[0048] Note also that the present techniques may also be implemented by general purpose data processing apparatus operating under software control. An example of such apparatus will be described below with reference to
[0049] The techniques just described can operate particularly usefully when either the control data is slowly varying or the control data is smoothed so as to make it slowly varying (as in the case of the smoothed data or parameters p′).
[0050] Considering some technical contents in which slowly varying parameters of the type discussed above can be useful, assume that the function F is a gain control or equalizer control function in the context of modifying an audio signal, for example in a digital audio mixing arrangement, and the parameters p or p′ represent control parameters based upon signal correlations between pairs or groups of input signals or the like. In the example case of audio signals, human perception of level changes introduced by gain automation are such that fast changes will be apparent to a listener, whereas a slow changes may remain largely unnoticed. Slow gain changes or slow equaliser changes can be useful, for example, in live audio settings, where a noticeable sudden corrective change of timbre would potentially not be welcome.
[0051] In arrangements in which the function F comprises at least a gain control, this provides an example in which generation of an output data portion comprises at least applying a gain to the sampled source signal in dependence upon a control data portion.
[0052]
[0053] Referring to
[0054] The parameters p can evolve with time slowly or quickly.
[0055] In
[0056] In
[0057] In another example, relevant to the “large buffer” arrangements of
[0058]
[0059]
[0060] Again, although other types of signal are envisaged, considering an example in the field of audio signals, a process such as an equalisation process can potentially be decomposed into or considered as including (a) a slow process of control data generation that requires a certain amount of data (for example a slow-response dynamic equalizer) and (b) a fast process that requires not much data (such as a multi-band correction of attacks). It is possible to use the techniques discussed above to alleviate or avoid latency in the process (a), while allowing the process (b) to use control data associated with the time period of the current source data because the latency of the second process (b) is relatively low and can be tolerated. This example shows that the proposed techniques may help improve complex processes, not only slow processes exclusively.
[0061] In the example of
[0062] An approach provided by the present embodiments involves generating the output data portion associated with the given time period using the first processing operation F1 in dependence upon the given time period of the sampled input signal and a control data portion associated with time period other than the given time period (in other words, removing or avoiding the latency of the long buffer 1510 by approximating the control data portions as discussed above); and generating the output data portion associated with the given time period using the second processing operation F2 in dependence upon the given time period of the sampled input signal and a control data portion associated with the given time period (or in other words allowing the relatively short latency of the buffer 1500).
[0063] Note that as indicated by the broken line 1520 in
[0064] In so far as embodiments of the disclosure have been described as being implemented, at least in part, by software-controlled data processing apparatus, it will be appreciated that a non-transitory machine-readable medium carrying such software, such as an optical disk, a magnetic disk, semiconductor memory or the like, is also considered to represent an embodiment of the present disclosure. Similarly, a data signal comprising coded data generated according to the methods discussed above (whether or not embodied on a non-transitory machine-readable medium) is also considered to represent an embodiment of the present disclosure.
[0065] It will be apparent that numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended clauses, the technology may be practised otherwise than as specifically described herein.
[0066] Various respective aspects and features will be defined by the following numbered clauses:
1. A signal processing method comprising:
[0067] generating control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the step of generating the control data portions has an associated non-zero latency period so that the step of generating control data portions provides a control data portion later than the start of the associated time period; and
[0068] generating an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.
2. A method according to clause 1, in which the control data portion associated with a time period other than the given time period comprises a control data portion which is most-recently generated at the start of generating the output data portion.
3. A method according to clause 1 or clause 2, comprising:
[0069] performing the steps of generating the source data portions and generating the output data portion in real time.
4. A method according to any one of the preceding clauses, comprising:
[0070] detecting a rate of change of the control data portions with respect to the time periods; and
[0071] in response to a detected rate of change greater than a threshold rate of change, causing the step of generating an output data portion to generate the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with the given time period.
5. A method according to any one of the preceding clauses, in which the step of generating an output data portion comprises:
[0072] for a rate of change of the control data portions with respect to the time periods of less than a threshold rate of change, generating the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with time period other than the given time period; and
[0073] for a rate of change of the control data portions with respect to the time periods of greater than the threshold rate of change, generating the output data portion associated with the given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with the given time period.
6. A method according to any one of the preceding clauses, comprising smoothing the control data portions with respect to successive time periods.
7. A method according to any one of the preceding clauses, in which the input signal, the one or more source signals and the output signal are audio signals.
8. A method according to clause 7, in which the step of generating an output data portions comprises at least:
[0074] applying a frequency transform to the sampled source signal to generate frequency-transformed data; and
[0075] processing the frequency-transformed data according to a control data portion.
9. A method according to clause 8, in which the step of generating an output data portion has an associated latency of at least the given time period.
10. A method according to any one of clauses 7 to 9, in which the step of generating control data portions comprises at least:
[0076] applying a frequency transform to the sampled source signal.
11. A method according to any one of clauses 7 to 10, in which the step of generating an output data portion comprises at least applying a gain to the sampled source signal in dependence upon a control data portion.
12. A method according to any one of the preceding clauses, in which the step of generating an output data portion comprises:
[0077] using a first function dependent upon first control data portions and using a function dependent upon second control data portions, the generation of the first control data portions having a greater associated latency than the generation of the second control data portions;
[0078] generating the output data portion associated with the given time period using the first processing operation in dependence upon the given time period of the sampled input signal and a control data portion associated with time period other than the given time period; and
[0079] generating the output data portion associated with the given time period using the second processing operation in dependence upon the given time period of the sampled input signal and a control data portion associated with the given time period.
13. Computer software having program instructions which, when executed by a computer, causes the computer to perform the method of any one of the preceding clauses.
14. A non-transitory machine-readable medium which stores computer software according to clause 13.
15. Signal processing apparatus comprising:
[0080] control data generator circuitry configured to generate control data portions associated with respective time periods by processing a sampled source signal having source signal portions associated with respective time periods, in which the generation of the control data portions by the control data generator circuitry has an associated non-zero latency period so as to provide a control data portion later than the start of the associated time period; and
[0081] output data generator circuitry configured to generate an output data portion associated with a given time period using a processing operation which depends upon the given time period of the sampled input signal and a control data portion associated with a time period other than the given time period.