The present invention relates to a decoder for decoding an encoded audio signal and an encoder for encoding an audio signal. Embodiments show a method and an apparatus for signal-adaptive transform kernel switching in audio coding. In other words, the present invention relates to audio coding and, in particular, to perceptual audio coding by means of lapped transforms such as e.g. the modified discrete cosine transform (MDCT) [1].
All contemporary perceptual audio codecs, including MP3, Opus (Celt), the HE-AAC family, and the new MPEG-H 3D Audio and 3GPP Enhanced Voice Services (EVS) codecs, employ the MDCT for spectral-domain quantization and coding of one or more channel waveforms. The synthesis version of this lapped transform, using a length-M spectrum spec[] is given by
with M=N/2 and N being the time-window length. After windowing, the time output xi,n is combined with the previous time output xi−1,n by way of an overlap-and-add (OLA) process. C may be a constant parameter being greater than 0 or less than or equal to 1, such as e.g. 2/N.
While the MDCT of (1) works well for high-quality audio coding of arbitrarily many channels at various bitrates, there are two cases in which the coding quality may fall short. These are e.g.
Several scientific papers and articles mention MDCT or MDST-like operations, sometimes with different naming such as “lapped orthogonal transform (LOT)”, “extended lapped transform (ELT)” or “modulated lapped transform (MLT)”. Only [4] mentions several different lapped transforms at the same time, but does not overcome the aforementioned drawbacks of the MDCT.
Therefore, there is a need for an improved approach.
According to an embodiment, a decoder for decoding an encoded audio signal may have: an adaptive spectrum-time converter for converting successive blocks of spectral values into successive blocks of time values; and an overlap-add-processor for overlapping and adding the successive blocks of time values to acquire decoded audio values, wherein the adaptive spectrum-time converter is configured to receive a control information and to signal-adaptively change, in response to the control information, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels.
According to another embodiment, an encoder for encoding an audio signal may have: an adaptive time-spectrum converter for converting overlapping blocks of time values into successive blocks of spectral values; and a controller for controlling the adaptive time-spectrum converter to signal-adaptively change between transform kernels of a first group of transform kernels and transform kernels of a second group of transform kernels, wherein the adaptive time-spectrum converter is configured to receive a control information and to signal-adaptively change, in response to the control information, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels.
According to yet another embodiment, a method of decoding an encoded audio signal may have the steps of: spectrum-time converting successive blocks of spectral values into successive blocks of time values; and overlapping and adding successive blocks of time values to acquire decoded audio values, receiving a control information and signal-adaptively changing, in response to the control information, in the spectrum-time converting, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels.
According to still another embodiment, a method of encoding an audio signal may have the steps of: time-spectrum converting overlapping blocks of time values into successive blocks of spectral values; receiving a control information; and signal-adaptively changing, in response to the control information, in the time-spectrum converting, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels.
According to another embodiment, a non-transitory digital storage medium may have a computer program stored thereon to perform the method of decoding an encoded audio signal, which method may have the steps of: spectrum-time converting successive blocks of spectral values into successive blocks of time values; overlapping and adding successive blocks of time values to acquire decoded audio values; and receiving a control information and signal-adaptively changing, in response to the control information, in the spectrum-time converting, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels, when said computer program is run by a computer.
According to another embodiment, a non-transitory digital storage medium may have a computer program stored thereon to perform the method of encoding an audio signal, which method may have the steps of: time-spectrum converting overlapping blocks of time values into successive blocks of spectral values; receiving a control information; and signal-adaptively changing, in response to the control information, in the time-spectrum converting, between a transform kernel of a first group of transform kernels including one or more transform kernels including different symmetries at sides of the transform kernel of the first group of transform kernels, and a transform kernel of a second group of transform kernels including one or more transform kernels including equal symmetries at the sides of the transform kernel of the second group of transform kernels, when said computer program is run by a computer.
The present invention is based on the finding that a signal-adaptive change or substitution of the transform kernel may overcome the aforementioned kinds of issues of the present MDCT coding. According to embodiments, the present invention addresses the above two issues concerning conventional transform coding by generalizing the MDCT coding principle to include three other similar transforms. Following the synthesis formulation of (1), this proposed generalization shall be defined as
Note that the ½ constant has been replaced by a k0 constant and that the cos( . . . ) function has been substituted by a cs( . . . ) function. Both k0 and cs( . . . ) are chosen signal- and context-adaptively.
According to embodiments, the proposed modification of the MDCT coding paradigm can adapt to instantaneous input characteristics on per-frame basis, such that for example the previously described issues or cases are addressed.
Embodiments show a decoder for decoding an encoded audio signal. The decoder comprises an adaptive spectrum-time converter for converting successive blocks of spectral values into successive blocks of time values, e.g. via a frequency-to-time transform. The decoder further comprises an overlap-add-processor for overlapping and adding successive blocks of time values to obtain decoded audio values. The adaptive spectrum-time converter is configured to receive a control information and to switch, in response to the control information, between transform kernels of a first group of transform kernels comprising one or more transform kernels having different symmetries at sides of a kernel, and a second group of transform kernels comprising one or more transform kernels having the same symmetries at sides of a transform kernel. The first group of transform kernels may comprise one or more transform kernels having an odd symmetry at a left side and an even symmetry at the right side of the transform kernel or vice versa, such as for example an inverse MDCT-IV or an inverse MDST-IV transform kernel. The second group of transform kernels may comprise transform kernels having an even symmetry at both sides of the transform kernel or an odd symmetry at both sides of the transform kernel, such as for example an inverse MDCT-II or an inverse MDST-II transform kernel. The transform kernel types II and IV will be described in greater detail in the following.
Therefore, for highly harmonic signals having a pitch at least nearly equal to an integer multiple of the frequency resolution of the transform, which may be the bandwidth of one transform bin in the spectral domain, it is advantageous to use a transform kernel of the second group of transform kernels, for example the MDCT-II or the MDST-II, for coding the signal when compared to coding the signal with the classical MDCT. In other words, using one of the MDCT-II or MDST-II is advantageous to encode a highly harmonic signal being close to an integer multiple of the frequency resolution of the transform when compared to the MDCT-IV.
Further embodiments show the decoder being configured to decode multichannel signals, such as for example stereo signals. For stereo signals, for example, a mid/side (M/S)-stereo processing is usually superior to the classical left/right (L/R)-stereo processing. However, this approach does not work or is at least inferior, if both signals have a phase shift of 90° or 270°. According to embodiments, it is advantageous to code one of the two channels with an MDST-IV based coding and still using the classical MDCT-IV coding to encode the second channel. This leads to a phase shift of 90° between those two channels incorporated by the encoding scheme which compensates the 90° or 270° phase shift of the audio channels.
Further embodiments shown an encoder for encoding an audio signal. The encoder comprises an adaptive time-spectrum converter for converting overlapping blocks of time values into successive blocks of spectral values. The encoder further comprises a controller for controlling the time-spectrum converter to switch between transform kernels of a first group of transform kernels and transform kernels of a second group of transform kernels. Therefore, the adaptive time-spectrum converter receives a control information and switches, in response to the control information, between transform kernels of a first group of transform kernels comprising one or more transform kernels having different symmetries at sides of a kernel, and a second group of transform kernels comprising one or more transform kernels having the same symmetries at sides of a transform kernel. The encoder may be configured to apply the different transform kernels with respect to an analysis of the audio signal. Therefore, the encoder may apply the transform kernels in a way already described with respect to the decoder, where, according to embodiments, the encoder applies the MDCT or MDST operations and the decoder applies the related inverse operations, namely the IMDCT or IMDST transforms. The different transform kernels will be described in detail in the following.
According to a further embodiment, the encoder comprises an output interface for generating an encoded audio signal having, for a current frame, a control information indicating a symmetry of the transform kernel used for generating the current frame. The output interface may generate the control information for the decoder being able to decode the encoded audio signal with the correct transform kernel. In other words, the decoder has to apply the inverse transform kernel of the transform kernel used by the encoder to encode the audio signal in each frame and channel. This information may be stored in the control information and transmitted from the encoder to the decoder for example using a control data section of a frame of the encoded audio signal.
Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
In the following, embodiments of the invention will be described in further detail. Elements shown in the respective figures having the same or similar functionality will have associated therewith the same reference signs.
According to embodiments, the control information 12 may comprise a current bit indicating a current symmetry for a current frame, wherein the adaptive spectrum-time converter 6 is configured to not switch from the first group to the second group, when the current bit indicates the same symmetry as was used in a preceding frame. In other words, if e.g. the control information 12 indicates using a transform kernel of the first group for the previous frame and if the current frame and the previous frame comprise the same symmetry, e.g. indicated if the current bit of the current frame and the previous frame have the same state, a transform kernel of the first group is applied, meaning that the adaptive spectrum-time converter does not switch from the first to the second group of transform kernels. The other way round, i.e. to stay in the second group or to not switch from the second group to the first group, the current bit indicating the current symmetry for the current frame indicates a different symmetry as was used in the preceding frame. In other words, if the current and the previous symmetry is equal and if the previous frame was encoded using a transform kernel from the second group, the current frame is decoded using an inverse transform kernel of the second group.
Furthermore, if the current bit indicating a current symmetry for the current frame indicates a different symmetry as was used in the preceding frame, the adaptive spectrum-time converter 6 is configured to switch from the first group to the second group. More specifically, the adaptive spectrum-time converter 6 is configured to switch the first group into the second group, when the current bit indicating a current symmetry for the current frame indicates a different symmetry as was used in the preceding frame. Furthermore, the adaptive spectrum-time converter 6 may switch the second group into the first group, when the current bit indicating a current symmetry for the current frame indicates the same symmetry as was used in the preceding frame. More specifically, if a current and a previous frame comprise the same symmetry, and if the previous frame was encoded using a transform kernel of the second group of transform kernels, the current frame may be decoded using a transform kernel of the first group of transform kernels. The control information 12 may be derived from the encoded audio signal 4 or received via a separate transmission channel or carrier signal as will be clarified in the following. Moreover, the current bit indicating a current symmetry of a current frame may be a symmetry of the right side of the transform kernels.
The 1986 article by Princen and Bradley [2] describes two lapped transforms employing a trigonometric function which is either the cosine function or the sine function. The first one, which is called “DCT based” in that article, can be obtained using (2) by setting cs( )=cos( ) and k0=0, the second one, referred to as “DST based”, is defined by (2) when cs( )=sin( ) and k0=1. Due to their respective similarities to the DCT-II and DST-II often used in image coding, these particular cases of the general formulation of (2) shall be declared as “MDCT type II” and “MDST type II” transforms, respectively, in this document. Princen and Bradley continued their investigation in a 1987 paper [3] in which they propose the common case of (2) with cs( )=cos( ) and k0=0.5, which was introduced in (1) and which is generally known as “the MDCT”. For the sake of clarification and due to its relationship with the DCT-IV, this transform shall be referred to as “MDCT type IV” herein. The observant reader will already have identified a remaining possible combination, called “MDST type IV”, being based on the DST-IV and obtained using (2) with cs( )=sin( ) and k0=0.5. Embodiments describe when and how to switch signal-adaptively between these four transforms.
It is worth defining some rules as to how the inventive switching between the four different transform kernels can be achieved such that the perfect reconstruction property (identical reconstruction of the input signal after analysis and synthesis transformation in the absence of spectral quantization or other introduction of distortion), as noted in [1-3], is retained. To this end, a look at the symmetrical extension properties of the synthesis transforms according to (2) is useful, which is illustrated with respect to
Furthermore, two embodiments for deriving the control information 12 in the decoder are described. The control information may comprise e.g. a value of k0 and cs( ) to indicate one of the four above-mentioned transforms. Therefore, the adaptive spectrum-time converter may read from the encoded audio signal the control information for a previous frame and a control information for a current frame following the previous frame from the encoded audio signal in a control data section for the current frame. Optionally, the adaptive spectrum-time converter 6 may read the control information 12 from the control data section for the current frame and retrieve the control information for the previous frame from a control data section of the previous frame or from a decoder setting applied to the previous frame. In other words, a control information may be derived directly from the control data section, e.g. in a header, of the current frame or from the decoder setting of the previous frame.
In the following, the control information exchanged between an encoder and the decoder is described according to an embodiment. This section describes how the side-information (i.e. control information) may be signaled in a coded bit-stream and used to derive and apply the appropriate transform kernels in a robust (e.g. against frame loss) way.
According to an embodiment, the present invention may be integrated into the MPEG-D USAC (Extended HE-AAC) or MPEG-H 3D Audio codec. The determined side-information may be transmitted within a so-called fd_channel_stream element, which is available for each frequency-domain (FD) channel and frame. More specifically, a one-bit currAliasingSymmetry flag is written (by an encoder) and read (by a decoder) right before or after the scale_factor_data( ) bitstream element. If the given frame is an independent frame, i.e. indepFlag==1, another bit, prevAliasingSymmetry, is written and read. This ensures that both the left-side and right-side symmetries, and thus the resulting transform kernel to be used within said frame and channel, can be identified in the decoder (and decoded properly) even if the previous frame is lost during the bitstream transmission. If the frame is not an independent frame, prevAliasingSymmetry is not written and read, but set equal to the value which currAliasingSymmetry held in the previous frame. According to further embodiments, different bits or flags may be used to indicate the control information (i.e. the side-information).
Next, respective values for cs( ) and k0 are derived from the flags currAliasingSymmetry and prevAliasingSymmetry, as specified in Table 1, where currAliasingSymmetry is abbreviated symmi and prevAliasingSymmetry is abbreviated symmi-1. In other words, symmi is the control information for the current frame at index i and symmi-1 is the control information for the previous frame at index i-1. Table 1 shows a decoder-side decision matrix specifying the values of k0 and cs( . . . ) based on transmitted and/or otherwise derived side-information with regard to symmetry. Therefore, the adaptive spectrum-time converter may apply the transform kernel based on Table 1.
Lastly, once cs( ) and k0 have been determined in the decoder, the inverse transform for the given frame and channel may be carried out with the appropriate kernel using equation (2). Prior to and after this synthesis transform, the decoder may operate as usual in the state of the art, also with respect to windowing.
The controller may be configured to analyze the audio signal 24, for example with respect to fundamental frequencies being at least close to an integer multiple of the frequency resolution of the transform. Therefore, the controller may derive the control information 12 feeding the adaptive time-spectrum converter 26 and optionally the output interface 32 with the control information 12. The control information 12 may indicate suitable transform kernels of the first group of transform kernels or the second group of transform kernels. The first group of transform kernels may have one or more transform kernels having an odd symmetry at a left side of the kernel and an even symmetry at the right side of the kernel or vice versa. The second group of transform kernels may comprise one or more transform kernels having an even symmetry at both sides or an odd symmetry at both sides of the kernel. In other words, the first group of transform kernels may comprise an MDCT-IV transform kernel or an MDST-IV transform kernel, or the second group of transform kernels may comprise an MDCT-II transform kernel or an MDST-II transform kernel. For decoding the encoded audio signals, the decoder may apply the respective inverse transform to the transform kernels of the encoder. Therefore, the first group of transform kernels of the decoder may comprise an inverse MDCT-IV transform kernel or an inverse MDST-IV transform kernel, or the second group of transform kernels may comprise an inverse MDCT-II transform kernel or an inverse MDST-II transform kernel.
In other words, the control information 12 may comprise a current bit indicating a current symmetry for a current frame. Furthermore, the adaptive spectrum-time converter 6 may be configured to not switch from the first group to the second group of transform kernels, when the current bit indicates the same symmetry as was used in a preceding frame, and wherein the adaptive spectrum-time converter is configured to switch from the first group to the second group of transform kernels, when the current bit indicates a different symmetry as was used in the preceding frame.
Furthermore the adaptive spectrum-time converter 6 may be configured to not switch from the second group to the first group of transform kernels, when the current bit indicates a different symmetry as was used in a preceding frame, and wherein the adaptive spectrum-time converter is configured to switch from the second group to the first group of transform kernels, when the current bit indicates the same symmetry as was used in the preceding frame.
Subsequently, reference is made to
In particular, the time domain signal illustrated in
It is to be emphasized that the overlap does not necessarily have to be a 50% overlap, but the overlap can be higher and lower and there can even be a multi-overlap, i.e. an overlap of more than two windows so that a sample of the time domain audio signal does not contribute to two windows and consequently blocks of spectral values only, but a sample then contributes to even more than two windows/blocks of spectral values. On the other hand, those skilled in the art additionally understand that other window shapes exist which can be applied by the windower 201 of
The windowed time portions as obtained by
Thus, the sequence of blocks of spectral values obtained at the output of block 203 is illustrated in
Subsequently,
Subsequently, a further illustration of the procedures performed by the blocks in
The illustration is exemplified by reference to the MDCT, but other aliasing-introducing transforms can be processed in a similar and analogous manner. As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is a linear function F: R2N→RN (where R denotes the set of real numbers). The 2N real numbers x0, . . . , x2N−1 are transformed into the N real numbers X0, . . . , XN−1 according to the formula:
(The normalization coefficient in front of this transform, here unity, is an arbitrary convention and differs between treatments. Only the product of the normalizations of the MDCT and the IMDCT, below, is constrained.)
The inverse MDCT is known as the IMDCT. Because there are different numbers of inputs and outputs, at first glance it might seem that the MDCT should not be invertible. However, perfect invertibility is achieved by adding the overlapped IMDCTs of time-adjacent overlapping blocks, causing the errors to cancel and the original data to be retrieved; this technique is known as time-domain aliasing cancellation (TDAC).
The IMDCT transforms N real numbers X0, . . . , XN−1 into 2N real numbers y0, . . . , y2N−1 according to the formula:
(Like for the DCT-IV, an orthogonal transform, the inverse has the same form as the forward transform.)
In the case of a windowed MDCT with the usual window normalization (see below), the normalization coefficient in front of the IMDCT should be multiplied by 2 (i.e., becoming 2/N).
In typical signal-compression applications, the transform properties are further improved by using a window function wn (n=0, . . . , 2N−1) that is multiplied with xn and yn in the MDCT and IMDCT formulas, above, in order to avoid discontinuities at the n=0 and 2N boundaries by making the function go smoothly to zero at those points. (That is, one windows the data before the MDCT and after the IMDCT.) In principle, x and y could have different window functions, and the window function could also change from one block to the next (especially for the case where data blocks of different sizes are combined), but for simplicity one considers the common case of identical window functions for equal-sized blocks.
The transform remains invertible (that is, TDAC works), for a symmetric window wn=w2N−1−n, as long as w satisfies the Princen-Bradley condition:
wn2+wn+N2=1
various window functions are used. A window that produces a form known as a modulated lapped transform is given by
and is used for MP3 and MPEG-2 AAC, and
for Vorbis. AC-3 uses a Kaiser-Bessel derived (KBD) window, and MPEG-4 AAC can also use a KBD window.
Note that windows applied to the MDCT are different from windows used for some other types of signal analysis, since they have to fulfill the Princen-Bradley condition. One of the reasons for this difference is that MDCT windows are applied twice, for both the MDCT (analysis) and the IMDCT (synthesis).
As can be seen by inspection of the definitions, for even N the MDCT is essentially equivalent to a DCT-IV, where the input is shifted by N/2 and two N-blocks of data are transformed at once. By examining this equivalence more carefully, important properties like TDAC can be easily derived.
In order to define the precise relationship to the DCT-IV, it has to be realized that the DCT-IV corresponds to alternating even/odd boundary conditions (i.e. symmetry conditions): even at its left boundary (around n=−½), odd at its right boundary (around n=N−½), and so on (instead of periodic boundaries as for a DFT). This follows from the identities
Thus, if its inputs are an array x of length N, one can imagine extending this array to (x, −xR, −x, xR, . . . ) and so on, where xR denotes x in reverse order.
Consider an MDCT with 2N inputs and N outputs, where one divides the inputs into four blocks (a, b, c, d) each of size N/2. If one shifts these to the right by N/2 (from the +N/2 term in the MDCT definition), then (b, c, d) extend past the end of the N DCT-IV inputs, so they have to be “folded” back according to the boundary conditions described above.
Thus, the MDCT of 2N inputs (a, b, c, d) is exactly equivalent to a DCT-IV of the N inputs: (−cR−d, a−bR), where R denotes reversal as above.
This is exemplified for window function 202 in
(In this way, any algorithm to compute the DCT-IV can be trivially applied to the MDCT.) Similarly, the IMDCT formula above is precisely ½ of the DCT-IV (which is its own inverse), where the output is extended (via the boundary conditions) to a length 2N and shifted back to the left by N/2. The inverse DCT-IV would simply give back the inputs (−cR−d, a−bR) from above. When this is extended via the boundary conditions and shifted, one obtains:
IMDCT(MDCT(a,b,c,d))=(a−bR, b−aR, c+dR, d+cR)/2.
Half of the IMDCT outputs are thus redundant, as b−aR=−(a−bR)R, and likewise for the last two terms. If one groups the input into bigger blocks A,B of size N, where A=(a, b) and B=(c, d), one can write this result in a simpler way:
IMDCT(MDCT(A,B))=(A−AR, B+BR)/2
One can now understand how TDAC works. Suppose that one computes the MDCT of the time-adjacent, 50% overlapped, 2N block (B, C). The IMDCT will then yield, analogous to the above: (B−BR, C+CR)/2. When this is added with the previous IMDCT result in the overlapping half, the reversed terms cancel and one obtains simply B, recovering the original data.
The origin of the term “time-domain aliasing cancellation” is now clear. The use of input data that extend beyond the boundaries of the logical DCT-IV causes the data to be aliased in the same way (with respect to extension symmetry) that frequencies beyond the Nyquist frequency are aliased to lower frequencies, except that this aliasing occurs in the time domain instead of the frequency domain: one cannot distinguish the contributions of a and of bR to the MDCT of (a, b, c, d), or equivalently, to the result of IMDCT(MDCT(a, b, c, d))=(a−bR, b−aR, c+dR, d+cR)/2. The combinations c−dR and so on, have precisely the right signs for the combinations to cancel when they are added.
For odd N (which are rarely used in practice), N/2 is not an integer so the MDCT is not simply a shift permutation of a DCT-IV. In this case, the additional shift by half a sample means that the MDCT/IMDCT becomes equivalent to the DCT-III/II, and the analysis is analogous to the above.
We have seen above that the MDCT of 2N inputs (a, b, c, d) is equivalent to a DCT-IV of the N inputs (−cR−d, a−bR). The DCT-IV is designed for the case where the function at the right boundary is odd, and therefore the values near the right boundary are close to 0. If the input signal is smooth, this is the case: the rightmost components of a and bR are consecutive in the input sequence (a, b, c, d), and therefore their difference is small. Let us look at the middle of the interval: if one rewrites the above expression as (−cR−d, a−bR)=(−d, a)−(b,c)R, the second term, (b,c)R, gives a smooth transition in the middle. However, in the first term, (−d, a), there is a potential discontinuity where the right end of −d meets the left end of a. This is the reason for using a window function that reduces the components near the boundaries of the input sequence (a, b, c, d) towards 0.
Above, the TDAC property was proved for the ordinary MDCT, showing that adding IMDCTs of time-adjacent blocks in their overlapping half recovers the original data. The derivation of this inverse property for the windowed MDCT is only slightly more complicated.
Consider two overlapping consecutive sets of 2N inputs (A,B) and (B,C), for blocks A,B,C of size N. Recall from above that when (A,B) and (B,C) are input into an MDCT, an IMDCT, and added in their overlapping half, one obtains (B+BR)/2+(B−BR)/2=B, the original data.
Now one supposes that one multiplies both the MDCT inputs and the IMDCT outputs by a window function of length 2N. As above, one assumes a symmetric window function, which is therefore of the form (W, WR) where W is a length-N vector and R denotes reversal as before. Then the Princen-Bradley condition can be written as W2+WR2=(1, 1, . . . , ) with the squares and additions performed element-wise.
Therefore, instead of performing an MDCT (A,B), one now MDCTs (WA, WRB) with all multiplications performed element-wise. When this is input into an IMDCT and multiplied again (element-wise) by the window function, the last-N half becomes:
WR′(WRB+(WRB)R)=WR′(WRB+WBR)=WR2B+WWRBR.
(Note that one no longer has the multiplication by ½, because the IMDCT normalization differs by a factor of 2 in the windowed case.)
Similarly, the windowed MDCT and IMDCT of (B,C) yields, in its first-N half:
W·(WB−WRBR)=W2B−WWRBR
When one adds these two halves together, one recovers the original data. The reconstruction is also possible in the context of window switching, when the two overlapping window halves fulfill the Princen-Bradley condition. Aliasing cancellation could in this case be done exactly the same way as described above. For transforms with multiple overlap, more than two branches would be needed using all involved gain values.
Previously has been described the symmetries or boundary conditions of the MDCT, or more specifically, the MDCT-IV. The description is also valid for the other transform kernels referred to in this document, namely the MDCT-II, the MDST-II, and the MDST-IV. However, it has to be noted that the different symmetry or boundary conditions of the other transform kernels have to be taken into account.
The time domain aliasing cancellation (TDAC) property states that such aliasing is cancelled when even and odd symmetric extensions are summed up during OLA (overlap-and-add) processing. In other words, a transform with an odd right-side symmetry should be followed by a transform with an even left-side symmetry, and vice versa, in order for TDAC to occur.
Thus, we can state that
The related decision matrix to the transform sequences is illustrated in table 1.
Embodiments further show how the proposed adaptive transform kernel switching can be employed advantageously in an audio codec like HE-AAC to minimize or even avoid the two issues mentioned in the beginning. Following will be addressed highly harmonic signals suboptimally coded by the classical MDCT. An adaptive transition to the MDCT-II or MDST-II may be performed by an encoder based on e.g. the fundamental frequency of the input signal. More specifically, when the pitch of the input signal is exactly, or very close to, an integer multiple of the frequency resolution of the transform (i.e. the bandwidth of one transform bin in the spectral domain), the MDCT-II or MDST-II may be employed for the affected frames and channels. A direct transition from the MDCT-IV to the MDCT-II transform kernel, however, is not possible or at least does not guarantee time domain aliasing cancellation (TDAC). Therefore, a MDCT-II shall be utilized as a transition transform between the two in such a case. Conversely, for a transition from the MDST-II to the traditional MDCT-IV (i.e. switching back to traditional MDCT coding), an intermediate MDCT-II is advantageous.
So far, the proposed adaptive transform kernel switching was described for a single audio signal, since it enhances the encoding of highly harmonic audio signals. Furthermore, it may be easily adapted for multichannel signals, such as for example stereo signals. Here, the adaptive transform kernel switching is also advantageous, if for example the two or more channels of a multichannel signal have a phase shift of roughly ±90° to each other.
For multichannel audio processing, it may be appropriate to use MDCT-IV coding for one audio channel and MDST-IV coding for a second audio channel. Especially if both audio channels comprise a phase shift of roughly ±90 degrees before coding, this concept is advantageous. Since the MDCT-IV and the MDST-IV apply a phase shift of 90 degrees to an encoded signal when compared to each other, a phase shift of ±90 degrees between two channels of an audio signal is compensated after encoding, i.e. is converted into a 0- or 180-degree phase shift by way of the 90-degree phase difference between the cosine base-functions of the MDCT-IV and the sine base-functions of the MDST-IV. Therefore, using e.g. M/S stereo coding, both channels of the audio signal may be encoded in the mid signal, wherein only minimum residual information needs to be encoded in the side signal, in case of the abovementioned conversion into a 0-degree phase shift, or vice versa (minimum information in the mid signal) in case of the conversion into a 180-degree phase shift, thereby achieving maximum channel compaction. This may achieve a bandwidth reduction by up to 50% compared to a classical MDCT-IV coding of both audio channels while still using lossless coding schemes. Furthermore, it may be thought of using MDCT stereo coding in combination with a complex stereo prediction. Both approaches calculate, encode and transmit a residual signal from two channels of the audio signal. Moreover, complex prediction calculates prediction parameters to encode the audio signal, wherein the decoder uses the transmitted parameters to decode the audio signal. However, M/S coding using e.g. the MDCT-IV and the MDST-IV for encoding the two audio channels, as already described above, only the information regarding the used coding scheme (MDCT-II, MDST-II, MDCT-IV, or MDST-IV) should be transmitted to enable the decoder to apply the related encoding scheme. Since the complex stereo prediction parameters should be quantized using a comparably high resolution, the information regarding the used coding scheme may be encoded in e.g. 4 bits, since theoretically, the first and the second channel may each be encoded using one of the four different coding schemes, which leads to 16 different possible states.
Therefore,
According to embodiments, the multichannel processor of the decoder may process, in accordance with the joint multichannel processing technique, the received blocks. Furthermore, the received blocks may comprise an encoded residual signal of a representation of the first multichannel and a representation of the second multichannel. Moreover, the multichannel processor may be configured to calculate the first multichannel signal and the second multichannel signal using the residual signal and a further encoded signal. In other words, the residual signal may be the side signal of a M/S encoded audio signal or a residual between a channel of the audio signal and a prediction of the channel based on a further channel of the audio signal when using, e.g. complex stereo prediction. The multichannel processor may therefore convert the M/S or complex predicted audio signal into an L/R audio signal for further processing such as e.g. applying the inverse transform kernels. Therefore, the multichannel processor may use the residual signal and the further encoded audio signal which may be the mid signal of a M/S encoded audio signal or a (e.g. MDCT encoded) channel of the audio signal when using complex prediction.
According to further embodiments, the first processed blocks of spectral values represent a first encoded representation of the joint multichannel processing technique and the second processed blocks of spectral values represent a second encoded representation of the joint multichannel processing technique. Therefore, the encoding processor 46 may be configured to process the first processed blocks using quantization and entropy encoding to form a first encoded representation and to process the second processed blocks using quantization and entropy encoding to form a second encoded representation. The first encoded representation and the second encoded representation may be formed in a bitstream representing the encoded audio signal. In other words, the first processed blocks may comprise the mid signal of a M/S encoded audio signal or a (e.g. MDCT) encoded channel of an encoded audio signal using complex stereo prediction. Moreover, the second processed blocks may comprise parameters or a residual signal for complex prediction or the side signal of a M/S encoded audio signal.
The prediction information is generated by an optimizer 207 for calculating the prediction information 206 so that the prediction residual signal fulfills an optimization target 208. The first combination signal 204 and the residual signal 205 are input into a signal encoder 209 for encoding the first combination signal 204 to obtain an encoded first combination signal 210 and for encoding the residual signal 205 to obtain an encoded residual signal 211. Both encoded signals 210, 211 are input into an output interface 212 for combining the encoded first combination signal 210 with the encoded prediction residual signal 211 and the prediction information 206 to obtain an encoded multichannel signal 213.
Depending on the implementation, the optimizer 207 receives either the first channel signal 201 and the second channel signal 202, or as illustrated by lines 214 and 215, the first combination signal 214 and the second combination signal 215 derived from a combiner 2031 of
An optimization target is illustrated in
Other optimization targets may relate to the perceptual quality. An optimization target can be that a maximum perceptual quality is obtained. Then, the optimizer would necessitate additional information from a perceptual model. Other implementations of the optimization target may relate to obtaining a minimum or a fixed bit rate. Then, the optimizer 207 would be implemented to perform a quantization/entropy-encoding operation in order to determine the necessitated bit rate for certain α values so that the α can be set to fulfill the requirements such as a minimum bit rate, or alternatively, a fixed bit rate. Other implementations of the optimization target can relate to a minimum usage of encoder or decoder resources. In case of an implementation of such an optimization target, information on the necessitated resources for a certain optimization would be available in the optimizer 207. Additionally, a combination of these optimization targets or other optimization targets can be applied for controlling the optimizer 207 which calculates the prediction information 206.
The encoder calculator 203 in
The combiner 2031 outputs the first combination signal 204 and a second combination signal 2032. The first combination signal is input into a predictor 2033, and the second combination signal 2032 is input into the residual calculator 2034. The predictor 2033 calculates a prediction signal 2035, which is combined with the second combination signal 2032 to finally obtain the residual signal 205. Particularly, the combiner 2031 is configured for combining the two channel signals 201 and 202 of the multichannel audio signal in two different ways to obtain the first combination signal 204 and the second combination signal 2032, where the two different ways are illustrated in an exemplary embodiment in
The residual calculator 2034 in
The decoder calculator 116 can be implemented in different manners. A first implementation is illustrated in
The predictor control information 206 is a factor as illustrated to the right in
When, however, the prediction control information only comprises a second portion which can be the imaginary part of a complex-valued factor or the phase information of the complex-valued factor, where the imaginary part or the phase information is different from zero, the present invention achieves a significant coding gain for signals which are phase shifted to each other by a value different from 0° or 180°, and which have, apart from the phase shift, similar waveform characteristics and similar amplitude relations.
A prediction control information is complex-valued. Then, a significant coding gain can be obtained for signals being different in amplitude and being phase shifted. In a situation in which the time/frequency transforms provide complex spectra, the operation 2034 would be a complex operation in which the real part of the predictor control information is applied to the real part of the complex spectrum M and the imaginary part of the complex prediction information is applied to the imaginary part of the complex spectrum. Then, in adder 2034, the result of this prediction operation is a predicted real spectrum and a predicted imaginary spectrum, and the predicted real spectrum would be subtracted from the real spectrum of the side signal S (band-wise), and the predicted imaginary spectrum would be subtracted from the imaginary part of the spectrum of S to obtain a complex residual spectrum D.
The time-domain signals L and R are real-valued signals, but the frequency-domain signals can be real- or complex-valued. When the frequency-domain signals are real-valued, then the transform is a real-valued transform. When the frequency domain signals are complex, then the transform is a complex-valued transform. This means that the input to the time-to-frequency and the output of the frequency-to-time transforms are real-valued, while the frequency domain signals could e.g. be complex-valued QMF-domain signals.
The bitstream output by bitstream multiplexer 212 in
Depending on the implementation of the system, the frequency/time converters 52, 53 are real-valued frequency/time converters when the frequency-domain representation is a real-valued representation, or complex-valued frequency/time converters when the frequency-domain representation is a complex-valued representation.
For increasing efficiency, however, performing a real-valued transform is advantageous as illustrated in another implementation in
Concerning the position of the quantization/coding (Q/C) module 2072 for α, it is noted that the multipliers 2073 and 2074 use exactly the same (quantized) α that will be used in the decoder as well. Hence, one could move 2072 directly to the output of 2071, or one could consider that the quantization of α is already taken into account in the optimization process in 2071.
Although one could calculate a complex spectrum on the encoder-side, since all information is available, it is advantageous to perform the real-to-complex transform in block 2070 in the encoder so that similar conditions with respect to a decoder illustrated in
The real-to-imaginary transformer 1160a or the corresponding block 2070 of
Embodiments further show how the proposed adaptive transform kernel switching can be employed advantageously in an audio codec like HE-AAC to minimize or even avoid the two issues mentioned in the “Problem Statement” section. Following will be addressed stereo signals with roughly 90 degrees of inter-channel phase shift. Here a switching to an MDST-IV based coding may be employed in one of the two channels, while old-fashioned MDCT-IV coding may be used in the other channel. Alternatively, MDCT-II coding may be used in one channel and MDST-II coding in the other channel. Given that the cosine and sine functions are 90-degree phase-shifted variants of each other (cos(x)=sin(x+π/2)), a corresponding phase shift between the input channel spectra can in this way be converted into a 0-degree or 180-degree phase shift, which can be coded very efficiently via traditional M/S-based joint stereo coding. As in the previous case for highly harmonic signals suboptimally coded by the classical MDCT, intermediate transition transforms might be advantageous in the affected channel.
In both cases, for highly harmonic signals and stereo signals with roughly 90° of inter-channel phase shift, the encoder selects one of the 4 kernels for each transform (see also
Further embodiments relate to audio coding and, in particular, to low-rate perceptual audio coding by means of lapped transforms such as the modified discrete cosine transform (MDCT). Embodiments relate two specific issues concerning conventional transform coding by generalizing the MDCT coding principle to include three other, similar transforms. Embodiments further show a signal- and context-adaptive switching between these four transform kernels in each coded channel or frame, or separately for each transform in each coded channel or frame. To signal the kernel choice to a corresponding decoder, respective side-information may be transmitted in the coded bitstream.
It is to be understood that in this specification, the signals on lines are sometimes named by the reference numerals for the lines or are sometimes indicated by the reference numerals themselves, which have been attributed to the lines. Therefore, the notation is such that a line having a certain signal is indicating the signal itself. A line can be a physical line in a hardwired implementation. In a computerized implementation, however, a physical line does not exist, but the signal represented by the line is transmitted from one calculation module to the other calculation module.
Although the present invention has been described in the context of block diagrams where the blocks represent actual or logical hardware components, the present invention can also be implemented by a computer-implemented method. In the latter case, the blocks represent corresponding method steps where these steps stand for the functionalities performed by corresponding logical or physical hardware blocks.
Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some one or more of the most important method steps may be executed by such an apparatus.
The inventive transmitted or encoded signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disc, a DVD, a Blu-Ray, a CD, a ROM, a PROM, and EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may, for example, be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
A further embodiment of the inventive method is, therefore, a data carrier (or a non-transitory storage medium such as a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitory.
A further embodiment of the invention method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may, for example, be configured to be transferred via a data communication connection, for example, via the Internet.
A further embodiment comprises a processing means, for example, a computer or a programmable logic device, configured to, or adapted to, perform one of the methods described herein.
A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
In some embodiments, a programmable logic device (for example, a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are performed by any hardware apparatus.
While this invention has been described in terms of several advantageous embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
15158236 | Mar 2015 | EP | regional |
15172542 | Jun 2015 | EP | regional |
This application is a continuation of copending U.S. patent application Ser. No. 16/899,406, filed Jun. 11, 2020, which in turn is a continuation of copending U.S. patent application Ser. No. 16/271,380, filed Feb. 8, 2019, which in turn is a continuation of copending U.S. patent application Ser. No. 15/696,934, filed Sep. 15, 2016, which in turn is a continuation of copending International Application No. PCT/EP2016/054902, filed Mar. 8, 2016, which is incorporated herein by reference in its entirety, and additionally claims priority from European Applications Nos. EP 15158236.8, filed Mar. 9, 2015 and EP 15172542.1, filed Jun. 17, 2015, which are all incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5327366 | Mau | Jul 1994 | A |
5394473 | Davidson | Feb 1995 | A |
5890106 | Bosi-Goldberg | Mar 1999 | A |
6199039 | Chen et al. | Mar 2001 | B1 |
6496795 | Malvar | Dec 2002 | B1 |
6980933 | Cheng et al. | Dec 2005 | B2 |
8155954 | Edler et al. | Apr 2012 | B2 |
8595019 | Geiger et al. | Nov 2013 | B2 |
20020118845 | Henn et al. | Aug 2002 | A1 |
20030093282 | Goodwin | May 2003 | A1 |
20030187528 | Chu et al. | Oct 2003 | A1 |
20050149339 | Tanaka et al. | Jul 2005 | A1 |
20050165587 | Cheng et al. | Jul 2005 | A1 |
20050265445 | Xin et al. | Dec 2005 | A1 |
20060023958 | Malvar | Feb 2006 | A1 |
20070067162 | Villemoes et al. | Mar 2007 | A1 |
20090012797 | Boehm et al. | Jan 2009 | A1 |
20100013987 | Edler et al. | Jan 2010 | A1 |
20100161319 | Elder et al. | Jun 2010 | A1 |
20110060433 | Dai et al. | Mar 2011 | A1 |
20110173010 | Lecomte et al. | Jul 2011 | A1 |
20120093426 | Sato | Apr 2012 | A1 |
20130028426 | Purnhagen et al. | Jan 2013 | A1 |
20130030819 | Purnhagen et al. | Jan 2013 | A1 |
20130121411 | Robillard et al. | May 2013 | A1 |
20130166307 | Vernon | Jun 2013 | A1 |
20140161195 | Karkkainen et al. | Jun 2014 | A1 |
Number | Date | Country |
---|---|---|
1447285 | Oct 2003 | CN |
1481546 | Mar 2004 | CN |
101025919 | Aug 2007 | CN |
101325060 | Dec 2008 | CN |
103098126 | May 2013 | CN |
2650876 | Oct 2013 | EP |
2673776 | Dec 2013 | EP |
2673776 | Jun 2015 | EP |
H05110868 | Apr 1993 | JP |
H05506345 | Sep 1993 | JP |
2008501250 | Jan 2008 | JP |
2013528822 | Jul 2013 | JP |
2374703 | Nov 2009 | RU |
2451998 | May 2012 | RU |
2515704 | May 2014 | RU |
200818700 | Apr 2008 | TW |
201433147 | Aug 2014 | TW |
201440501 | Oct 2014 | TW |
9116769 | Oct 1991 | WO |
2004013839 | Feb 2004 | WO |
2008014853 | Feb 2008 | WO |
2013107602 | Jul 2013 | WO |
Entry |
---|
“Information technology—MPEG audio technologies—Part 3: Unified speech and audio coding”, ISO/IEC FDIS 23003-3:2011(E), ISO/IEC JTC 1/SC 29/WG 11. Sep. 20, 2011, Sep. 20, 2011, 286 pp. |
Britanak, V., “A Unified Fast Computation of the Evenly and Oddly Stacked MDCT-MDST”, 4th EURASIP Conference, Jul. 2-5, 2003, Croatia, XP10650136A. |
Dick, Sascha, et al., “Discrete Multi-Channel Coding Tool for Mpeg-H 3D Audio”, International Organisation for Standardisation, ISO/IEC JTC1/SC29/WG11, Coding of Moving Pictures and AudioNo. M36591 ; XP030064959, 22 pp. |
Helmrich, Christian, et al., “Signal-Adaptive Transform Kernel Switching For Stereo Audio Coding”, IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, pp. 1-5. |
Li, Tan, et al., “A unified computing kernal for MDCT/IMDCT i modern audio coding standards”, Tan Li, R. Zhang, R. Yang, Heyun Huang and Fuhuei Lin, “A unified computing kernel for MDCT/IMDCT in modern audio coding standards,” 2007 International Symposium on Communications and Information Technologies, Sydney,. NSW, 2007, pp. 1-5. |
Malvar, Henrique, “A Modulated Complex Lapped Transform and its Applications to Audio Processing”, Published in the IEEE International Conference on Acoustics, Speech, and Signal Processing, Phoenix, AZ, pp. 1421-1424, Mar. 1999., pp. 1-4. |
Malvar, Henrique S, “Lapped Transforms for Efficient Transform/Subband Coding”, IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 38 No. 6,, Jun. 1990, pp. 969-978. |
Neuendorf, Max, et al., “MPEG unified speech and audio coding-the ISO/MPEG standard for high-efficiency audio coding of all content types”, Audio Engineering Society Convention 132 (Apr. 29, 2012), Budapest, 2012., 22 pp. |
Neuendorf, Max, et al., “The ISO/MPEG Unified Speech and Audio Coding Standard-Consistent High Quality for all Content Types and at all Bit Rates”, J. Audio Eng. Soc., vol. 61, No. 12, pp. 956-977. |
Princen, J. P, et al., “Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation”, IEEE ICASSP, vol. 12, 1987, pp. 2161-2163. |
Princen, John P, et al., “Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation”, IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. ASSP-34, No. 5, Oct. 1986, pp. 1153-1161. |
Unknown, “Modified Discrete Cosine Transform”, Wikipedia.org [database online], [retrieved on Sep. 22, 2017] Retrieved from Wikipedia using Internet <URL: https://en.wikipedia.org/wiki/Modified_discrete_cosine_transform>. |
Vinton, Mark S, et al., “A Scalable and Progressive Audio Codec”, IEEE International Conference on Acoustics, Speech, and Signal Processing 2001, May 7-11, 2001, Salt Lake City, Utah, pp. 1-4. |
Wang, Ye, et al., “On the relationship between MDCT, SDFT and DFT”, “On the relationship between MDCT, SDPT and DFT,” WCC 2000—ICSP 2000. 2000 5th International Conference on Signal Processing Proceedings. 16th World Computer Congress 2000, Beijing, 2000, pp. 44-47 vol. 1., pp. 1-4. |
WIPO, “International Preliminary Report PCT/EP2016/054902”, International Preliminary Report dated Jul. 7, 2017 for International Patent Application No. PCT/EP2016/054902. |
WIPO, “International Search Report and Written Opinion PCT/EP2016/054902”, International Search Report and Written Opinion dated Jun. 3, 2016 for International Patent Application No. PCT/EP2016/054902. |
Xu, Hua-Jie, et al., “Recursive IMDCT Implementation on FPGA Based on AC-3 Digital Audio Decoding”, 1 Department of Electronic Science and Technology, University of Science and Technology of China, Hefei 230027, China; 2 Department of Electronic Engineering, Chizhou College, Chizhou 247000, China), pp. 167-170. |
Number | Date | Country | |
---|---|---|---|
20220238125 A1 | Jul 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16899406 | Jun 2020 | US |
Child | 17722027 | US | |
Parent | 16271380 | Feb 2019 | US |
Child | 16899406 | US | |
Parent | 15696934 | Sep 2017 | US |
Child | 16271380 | US | |
Parent | PCT/EP2016/054902 | Mar 2016 | US |
Child | 15696934 | US |