Device and method for encoding or decoding audio multi-channel signal using spectral domain resampling
By performing multi-channel processing and resampling in the spectrum domain, the problem of high latency in the multi-channel encoding and decoding process in the prior art is solved, and low latency and efficient signal processing effects are achieved.
Patent Information
- Application Number
- CN202210761486.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-01-22
- Filing Date
- 2017-01-20
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2037-01-20
AI Technical Summary
The prior art has high latency and is not suitable for low latency characteristics in multi-channel encoding and decoding, especially in voice communication and stereo processing, making it difficult to achieve low latency and efficient signal processing.
Multi-channel processing and resampling are employed to perform multi-channel processing in the spectrum domain to reduce the need for time domain resampling operations. Specific methods include downmixing operations, time and phase alignment in the spectrum domain on the encoder side and decoder side, and spectrum domain resampling to achieve low latency multi-channel encoding and decoding.
By processing and resampling in the spectrum domain, low latency and efficient multi-channel signal processing are achieved, avoiding computationally intensive time domain resampling operations and reducing system delays.
Smart Images

Figure CN115148215B_ABST
Abstract
Description
[0001] This application is a divisional application of the applicant Fraunhofer Gesellschaft, the application date is "January 20, 2017", the application number is "201780002248.3", and the invention name is "Device and method for encoding or decoding audio multi-channel signals using spectral domain resampling". Technical Field
[0002] The present application relates to stereo processing or in general multi-channel processing, where the multi-channel signal has two channels (such as, in case of a stereo signal, a left channel and a right channel) or more than two channels (such as three, four, five or any other number of channels). Background Art
[0003] Stereo voice, and in particular conversational stereo voice, has received much less attention than the storage and broadcasting of stereo music. In fact, in voice communication, mono transmission is still mainly used today. However, as network bandwidth and capacity increase, it is envisioned that communication based on stereo technology will become more popular and bring a better listening experience.
[0004] For efficient storage or broadcasting, efficient coding of stereo audio material has long been studied in perceptual audio coding of music. At high bit rates where waveform preservation is critical, sum-difference stereo, known as middle / side (M / S) stereo, has long been used. For low bit rates, intensity stereo and, more recently, parametric stereo coding have been introduced. The latest techniques are used in different standards, such as HeAACv2 and Mpeg USAC. The latest techniques produce a downmix of the two channel signals and associate close spatial side information.
[0005] Joint stereo coding is usually built with respect to high frequency resolution (ie low temporal resolution, time-frequency transform of the signal) and is thus incompatible with the low-delay and time-domain processing performed in most speech coders. Furthermore, the resulting bit rate is usually high.
[0006] On the other hand, parametric stereo uses an additional filter bank, which is positioned in the front end of the encoder as a preprocessor and in the back end of the decoder as a postprocessor. Therefore, parametric stereo can be used with conventional speech encoders such as ACELP, as performed in MPEG USAC. In addition, the parameterization of the auditory scene can be achieved with a minimum amount of side information, which is suitable for low bit rates. However, as in MPEG USAC, parametric stereo is not specifically designed for low delay and does not deliver constant quality for different conversational scenarios. In the conventional parameter representation of the spatial scene, the width of the stereo image is artificially reproduced by a decorrelator applied to two synthetic channels and is controlled by the inter-channel coherence (IC) parameters calculated and transmitted by the encoder. For most stereo speech, this way of widening the stereo image is not suitable for reconstructing the natural environment of speech that is a perfect direct sound, because it is produced by a single source located at a specific position in the space (sometimes with some reverberation from the room). In contrast, musical instruments have a much larger natural width than speech, which can be better imitated by decorrelating the channels.
[0007] The problem also arises when recording speech with non-coincident microphones, such as in an AB configuration when the microphones are far from each other, or for binaural recording or presentation. Those scenarios can be envisioned for capturing speech in teleconferences or for setting up virtual auditory scenes with distant speakers in a multipoint control unit (MCU). The arrival time of the signal is thus different from one channel to another, unlike recordings made with coincident microphones, such as XY (intensity recordings) or MS (mid-side recordings). The calculation of the coherence of these two channels, which are not time-aligned, can then be estimated incorrectly, which makes the artificial environment synthesis fail.
[0008] Prior art references related to stereo processing are US Pat. No. 5,434,948 or US Pat. No. 8,811,621.
[0009] Document WO 2006 / 089570 A1 discloses a nearly transparent or transparent multi-channel encoder / decoder scheme. The multi-channel encoder / decoder scheme additionally generates a waveform type residual signal. This residual signal is transmitted to the decoder together with one or more multi-channel parameters. Compared with a pure parameter multi-channel decoder, the enhanced decoder generates a multi-channel output signal with improved output quality due to the additional residual signal. On the encoder side, the left channel and the right channel are filtered by an analysis filter bank. Thus, for each sub-band signal, an alignment value and a gain value are calculated for the sub-band. This alignment is thus performed before further processing. On the decoder side, de-alignment and gain processing are performed, and then the corresponding signal is synthesized by a synthesis filter bank to generate a decoded left signal and a decoded right signal.
[0010] On the other hand, parametric stereo employs an additional filter bank, which is located in the front end of the encoder as a preprocessor and in the back end of the decoder as a postprocessor. Therefore, parametric stereo can be used with conventional speech encoders such as ACELP, as performed in MPEG USAC. In addition, parameterization of the auditory scene can be achieved with a minimum amount of side information, which is suitable for low bit rates. However, as in MPEG USAC, parametric stereo is not specifically designed for low delay, and the entire system shows a very high algorithmic delay. Summary of the invention
[0011] It is an object of the invention to provide an improved concept for multi-channel encoding / decoding which is efficient and in place to obtain low delay.
[0012] The invention is based on the finding that at least part and preferably all parts of a multichannel processing (i.e. a joint multichannel processing) are performed in the spectral domain. In particular, the downmix operation of the joint multichannel processing is preferably performed in the spectral domain, and additionally, the time and phase alignment operations or even the procedures for analyzing the parameters of the joint stereo / joint multichannel processing. Furthermore, a spectral domain resampling is performed after the multichannel processing or even before the multichannel processing in order to provide an output signal from a further spectro-temporal converter which is already at the output sampling rate required by the subsequently connected core encoder.
[0013] At the decoder side, at least the operations for generating the first channel signal and the second channel signal from the downmix signal in the spectral domain are preferably performed again, and preferably even the complete inverse multi-channel processing is performed in the spectral domain. Furthermore, a time-spectral converter is provided for converting the core decoded signal into a spectral domain representation, and in the frequency domain, the inverse multi-channel processing is performed. The spectral domain resampling is performed before the multi-channel inverse processing or after the multi-channel inverse processing in such a way that at the end, the spectrum-time converter converts the spectrally resampled signal into the time domain at the output sampling rate intended for the time domain output signal.
[0014] Thus, the present invention allows to completely avoid any computationally intensive time domain resampling operations. Instead, multi-channel processing is combined with resampling. In a preferred embodiment, spectral domain resampling is performed by truncating the spectrum in the case of downsampling, or by zero padding the spectrum in the case of upsampling. These simple operations (i.e., truncating the spectrum on the one hand or zero padding the spectrum on the other hand, and preferably additional scaling in order to take into account certain normalization operations performed in spectral domain / time domain conversion algorithms such as DFT or FFT algorithms) enable the spectral domain resampling operations to be performed in a very efficient and low-latency manner.
[0015] In addition, it has been found that at least a portion or even the entire joint stereo processing / joint multi-channel processing on the encoder side and the corresponding inverse multi-channel processing on the decoder side are suitable for performing in the frequency domain. This is not only effective for the downmix operation as the minimum joint multi-channel processing on the encoder side or the upmix processing as the minimum inverse multi-channel processing on the decoder side. On the contrary, even the stereo scene analysis and time / phase alignment on the encoder side or the phase and time de-alignment on the decoder side can also be performed in the spectral domain. The above situation applies to the side channel coding on the encoder side or the side channel synthesis and use on the decoder side for producing two decoded output channels, which is preferably performed.
[0016] Therefore, the advantage of the present invention is that a new stereo coding scheme is provided that is more suitable for conversion of stereo speech than existing stereo coding schemes. Embodiments of the present invention provide a new architecture for implementing a low-delay stereo codec and integrating a common stereo tool for a speech core encoder and an MDCT-based core encoder executed in the frequency domain within a switched audio codec.
[0017] Embodiments of the invention relate to hybrid methods for mixing elements from conventional M / S stereo or parametric stereo. Embodiments use some aspects and tools from joint stereo coding and other aspects and tools from parametric stereo. More particularly, embodiments employ additional time-frequency analysis and synthesis performed at the front end of the encoder and at the back end of the decoder. The time-frequency decomposition and inverse transform are achieved by employing a filter bank or block transform with complex values. From two channel or multi-channel input, stereo or multi-channel processing combines and modifies the input channels to output channels called mid and side signals (MS).
[0018] Embodiments of the present invention provide solutions for reducing the algorithmic delays introduced by the stereo module and in particular from the framing and windowing of its filter banks. The solution provides a multi-rate inverse transform for feeding a switched encoder such as 3GPP EVS or an encoder switching between a speech encoder such as ACELP and a general audio encoder such as TCX by generating the same stereo processed signal at different sampling rates. Furthermore, the solution provides different constraints suitable for low-delay and low-complexity systems and windowing of the stereo processing. Furthermore, embodiments provide methods for combining and resampling different decoded synthesis results in the spectral domain, wherein the inverse stereo processing is also applied.
[0019] A preferred embodiment of the invention comprises a multi-function in the spectral domain resampler which generates not only a single spectral domain resampled block of spectral values, but additionally generates further resampled sequences of blocks of spectral values corresponding to different higher or lower sampling rates.
[0020] Furthermore, the multi-channel encoder is configured to additionally provide an output signal at the output of the spectrum-time converter, which has the same sampling rate as the original first and second channel signals input into the time-spectral converter on the encoder side. Thus, in an embodiment, the multi-channel encoder provides at least one output signal at the original input sampling rate, which is preferably used for MDCT-based encoding. Furthermore, at least one output signal is provided at an intermediate sampling rate, in particular for ACELP encoding, and additionally further output signals are provided at further output sampling rates, which can also be used for ACELP encoding, but are different from the other output sampling rates.
[0021] These procedures can be performed for a mid signal or for a side signal or for two signals originating from a first and a second channel signal of a multichannel signal, wherein in the case of a stereo signal having only two channels (two additionally, for example a low frequency enhancement channel) the first signal page can be the left signal and the second signal can be the right signal.
[0022] In a further embodiment, the core encoder of the multi-channel encoder is configured to operate according to a framing control, and the time-spectral converter and the spectrum-time converter and the resampler of the stereo post-processor are also configured to operate according to a further framing control synchronized with the framing control of the core encoder. The synchronization is performed so that the start frame boundary or the end frame boundary of each frame of the sequence of frames of the core encoder is in a predetermined relationship with the start instant or the end instant of the overlapping part of the window used by the time-spectral converter or by the spectrum-time converter for each block of the sequence of blocks of sampled values or for each block of the resampled sequence of blocks of spectral values. Thus, it is ensured that subsequent framing operations operate in synchronization with each other.
[0023] In a further embodiment, a look-ahead operation with a look-ahead portion is performed by the core encoder. In this embodiment, preferably, the look-ahead portion is also used by an analysis window of a time-spectral converter, wherein an overlapping portion of the analysis window is used, the overlapping portion having a time length lower than or equal to the time length of the look-ahead portion.
[0024] Thus, by making the look-ahead part of the core encoder and the overlapping part of the analysis window equal to each other or by making the overlapping part even smaller than the look-ahead part of the core encoder, the temporal spectral analysis of the stereo preprocessor is not performed without any additional algorithmic delay. In order to ensure that this windowed look-ahead part does not affect the core encoder look-ahead functionality too much, this part is preferably corrected using the inverse of the analysis window function.
[0025] To ensure that this is done with good stability, a square root of the sine window shape is used instead of a sine window shape as the analysis window, and the sine of the synthesis window to a power of 1.5 is used for the purpose of synthesis windowing before performing the overlap operation at the output of the spectrum time converter. Thus, it is ensured that the correction function assumes values that are reduced in magnitude compared to a correction function that is the inverse of the sine function.
[0026] However, on the decoder side, the same analysis and synthesis window shape is preferably used, of course, because no correction is required. On the other hand, preferably a time gap is used on the decoder side, wherein the time gap exists between the end point of the leading overlapping part of the analysis window of the time spectrum converter on the decoder side and the time instant when the frame output by the core decoder on the multi-channel decoder side ends. Therefore, the core decoder output sample in this time gap is not needed for the purpose of being immediately opened by the analysis window of the stereo postprocessor, but is only required for the processing / windowing of the next frame. This time gap can be implemented, for example, by using the non-overlapping part usually in the middle of the analysis window, which causes the overlapping part to be shortened. However, other alternatives for implementing this time gap can also be used, but it is a preferred way to implement the time gap by the non-overlapping part in the middle. Therefore, this time gap can be used for other core decoder operations when the core decoder switches from the frequency domain to the time domain frame, or preferably switching between smooth operations between events, or for any other smooth operations that can be useful when parameter changes or coding characteristic changes have occurred. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Subsequently, preferred embodiments of the present invention are discussed in detail with reference to the accompanying drawings, in which:
[0028] Figure 1 is a block diagram of an embodiment of a multi-channel encoder;
[0029] Figure 2 An embodiment of spectral domain resampling is illustrated;
[0030] Figure 3a to Figure 3c illustrates different alternatives for performing time / frequency or frequency / time conversion with different normalizations and corresponding scaling in the spectral domain;
[0031] Figure 3d illustrates different frequency resolutions and other frequency-related aspects of certain embodiments;
[0032] Figure 4a is a block diagram of an embodiment of an encoder;
[0033] Figure 4b A block diagram illustrating a corresponding embodiment of a decoder;
[0034] Figure 5A preferred embodiment of a multi-channel encoder is illustrated;
[0035] Figure 6 A block diagram illustrating an embodiment of a multi-channel decoder;
[0036] Figure 7a A further embodiment of a multi-channel decoder including a combiner is shown;
[0037] Figure 7b A further embodiment of a multi-channel decoder additionally comprising a combiner (addition) is shown;
[0038] Figure 8a A table illustrating different characteristics of a window for several sampling rates is shown;
[0039] Figure 8b illustrates different proposals / embodiments of DFT filter banks as implementations of time-to-spectral converters and spectrum-to-time converters;
[0040] Figure 8c Figure 1 shows a sequence of two analysis windows of a DFT with a time resolution of 10 ms;
[0041] Figure 9a Figure 2 shows schematic windowing of an encoder according to a first suggestion / embodiment;
[0042] Figure 9b FIG. 1 shows a schematic windowing of a decoder according to a first suggestion / embodiment;
[0043] Fig.9c Figure 2 shows windows at the encoder and decoder according to the first suggestion / embodiment;
[0044] Figure 9d A preferred flow chart illustrating a corrective embodiment;
[0045] Fig.9e The figure further illustrates a flow chart of a corrective embodiment;
[0046] Figure 9f FIG. 1 is a flowchart for explaining an embodiment of a time gap decoder side;
[0047] Fig.10a FIG. 1 shows schematic windowing of an encoder according to a fourth suggestion / embodiment;
[0048] Fig.10b FIG. 4 shows a schematic window of a decoder according to a fourth suggestion / embodiment;
[0049] Fig.10c Figure 2 shows windows at an encoder and a decoder according to a fourth suggestion / embodiment;
[0050] Fig.11aFIG. 1 shows schematic windowing of an encoder according to a fifth suggestion / embodiment;
[0051] Fig.11b FIG. 4 shows a schematic windowing of a decoder according to a fifth suggestion / embodiment;
[0052] Fig.11c The diagram shows an encoder and a decoder according to a fifth suggestion / embodiment;
[0053] Fig.12 is a block diagram of a preferred implementation of multi-channel processing using downmixing in a signal processor;
[0054] Fig.13 A preferred embodiment of inverse multi-channel processing with upmixing operation within a signal processor;
[0055] Fig.14a A flow chart illustrating a procedure performed in an apparatus for encoding for the purpose of aligning channels;
[0056] Fig.14b illustrates a preferred embodiment of the procedure performed in the frequency domain;
[0057] Fig.14c A preferred embodiment of a process executed in a device for encoding using an analysis window with zero-padded portions and overlapping ranges is illustrated;
[0058] Fig.14d A flowchart illustrating other procedures performed within an embodiment of an apparatus for encoding;
[0059] Fig.15a illustrates a procedure performed by an embodiment of an apparatus for decoding and encoding a multi-channel signal;
[0060] Fig.15b illustrates a preferred implementation of an apparatus for decoding with respect to some aspects; and
[0061] Fig.15c The procedure performed in the case of wideband de-alignment in a framework for decoding encoded multi-channel signals is illustrated. DETAILED DESCRIPTION
[0062] Figure 1The diagram shows a device for encoding a multi-channel signal comprising at least two channels 1001, 1002. In the case of a two-channel stereo scenario, the first channel 1001 is in the left channel, and the second channel 1002 may be the right channel. However, in the case of a multi-channel scenario, the first channel 1001 and the second channel 1002 may be any one of the channels of the multi-channel signal, such as, for example, a left channel on the one hand and a left surround channel on the other hand, or a right channel on the one hand and a right surround channel on the other hand. However, these channel pairings are only examples, and other channel pairings may be applied as the situation requires.
[0063] Figure 1 The multi-channel encoder comprises a time-spectral converter for converting a sequence of blocks of sampled values of at least two channels into a frequency domain representation at the output of the time-spectral converter. Each frequency domain representation has a sequence of blocks of spectral values of one of the at least two channels. In particular, the blocks of sampled values of the first channel 1001 or the second channel 1002 have an associated input sampling rate, and the blocks of spectral values of the sequence of outputs of the time-spectral converter have spectral values up to a maximum input frequency associated with the input sampling rate. Figure 1 In the embodiment described in , the time-spectral converter is connected to a multi-channel processor 1010. This multi-channel processor is configured to apply a joint multi-channel processing to a sequence of blocks of spectral values to obtain at least one resulting sequence of blocks of spectral values containing information related to at least two channels. A typical multi-channel processing operation is a downmix operation, but a preferred multi-channel operation comprises additional procedures which will be described later.
[0064] In an alternative embodiment, the multi-channel processor 1010 is connected to a spectral domain resampler 1020 and the output of the spectral domain resampler 1020 is input into the multi-channel processor. This is illustrated by the dashed connecting lines 1021, 1022. In this alternative embodiment, the multi-channel processor is configured to apply the joint multi-channel processing not to the sequence of blocks of spectral values output by the time-to-spectral converter but to the resampled sequence of blocks available on the connecting line 1022.
[0065] The spectral domain resampler 1020 is configured to resample the result sequence produced by the multi-channel processor or the sequence of blocks output by the time-to-spectral converter 1000 to obtain a resampled sequence of blocks of spectral values representing the intermediate signal as illustrated by line 1025. Preferably, the spectral domain resampler additionally performs resampling of the side signal produced by the multi-channel processor and thus also outputs a resampled sequence corresponding to the side signal as illustrated by 1026. However, the generation and resampling of the side signal are optional and not required for low bit rate implementations. Preferably, the spectral domain resampler 1020 is configured to truncate the blocks of spectral values for the purpose of downsampling or to zero-pad the blocks of spectral values for the purpose of upsampling. The multi-channel encoder additionally comprises a spectral-to-time converter for converting the resampled sequence of blocks of spectral values into a time domain representation comprising an output sequence of blocks of sampled values having an associated output sampling rate different from the input sampling rate. In an alternative embodiment, where spectral domain resampling is performed prior to multichannel processing, the multichannel processor provides the resulting sequence directly to the spectrum-time converter 1030 via dashed line 1023. In this alternative embodiment, an optional feature is that additionally, the side signals are generated by the multichannel processor and thus already in a resampled representation, and the side signals are then also processed by the spectrum-time converter.
[0066] Finally, the spectro-time converter preferably provides a time-domain mid signal 1031 and an optional time-domain side signal 1032, which can be core-encoded by a core encoder 1040. Generally, the core encoder is configured to core-encode an output sequence of blocks of sample values to obtain an encoded multi-channel signal.
[0067] Figure 2 Figure Spectrum diagram useful for explaining spectral domain resampling.
[0068] Figure 2 The upper diagram in illustrates the spectrum of the channel available at the output of the time-to-spectral converter 1000. This spectrum 1210 has spectrum values up to the maximum input frequency 1211. In the case of upsampling, zero padding is performed in a zero-padded portion or zero-padded region 1220 extending up to the maximum output frequency 1221. Since upsampling is intended, the maximum output frequency 1221 is greater than the maximum input frequency 1211.
[0069] In contrast, Figure 2 The lowest graph in illustrates the process caused by downsampling a sequence of blocks. For this purpose, the blocks are truncated in the truncation region 1230 so that the maximum output frequency of the truncated spectrum at 1231 is lower than the maximum input frequency 1211.
[0070] Usually, with Figure 2 The sampling rate associated with the corresponding spectrum in is at least twice the maximum frequency of the spectrum. Figure 2 In the upper case, the sampling rate will be at least twice the maximum input frequency 1211.
[0071] exist Figure 2 In the second graph of , the sampling rate will be at least twice the maximum output frequency 1221 (i.e., the highest frequency of the zero-padded region 1220). In contrast, Figure 2 In the lowest graph in , the sampling rate will be at least 2 times the maximum output frequency 1231 (ie, the highest spectral value remaining after truncation within the truncation region 1230).
[0072] Figure 3a to Figure 3c Several alternatives are described that may be used in the context of certain DFT forward or inverse transform algorithms. Figure 3a In block 1331, a reverse transform with a different size y is described, where a DFT with a size of 1 / N is performed. y Normalization of N. y is the number of inverse transformed spectral values of size y. Next, preferably, the N-th order of magnitude of the inverse transform is performed as illustrated in block 1321. y / N x of scaling.
[0073] In contrast, Figure 3b An implementation is illustrated where normalization is assigned to both the forward transform 1312 and the inverse transform 1332. Scaling is then required as illustrated in block 1322 where the square root of the relationship between the number of inverse transformed spectral values and the number of forward transformed spectral values is useful.
[0074] Figure 3c A further implementation is described, where in the case of performing a forward transform with size x, an overall normalization is performed on the forward transform. Thus, the inverse transform as described in block 1333 operates without any normalization, such that Figure 3c The schematic block 1323 in FIG. 1 does not require any scaling. Therefore, depending on the specific algorithm, a specific scaling operation or even no scaling operation is required. However, it is preferred that Figure 3a to operate.
[0075] In order to keep the overall delay low, the present invention provides a method at the encoder side for avoiding the need for a time domain resampler and replacing it by resampling the signal in the DFT domain. For example, in EVS, it allows saving 0.9375ms of delay from the time domain resampler. Resampling in the frequency domain is achieved by zero padding or truncating the spectrum and scaling the spectrum correctly.
[0076] Consider the input windowed signal x (sampled at rate fx, with a spectrum size of N x ) and version y of the same signal (resampled at rate fy with a spectrum size of N y ). The sampling factor is then equal to:
[0077] fy / fx=N y / N x
[0078] In the case of reduced sampling, N x >N y Downsampling can be performed simply in the frequency domain by directly scaling and truncating the original spectrum X:
[0079] Y[k]=X[k].N y / N x , where k = 0..N y
[0080] In the case of increased sampling, N x <N y Upsampling can be performed simply in the frequency domain by directly scaling and zero-padding the original spectrum X:
[0081] Y[k]=X[k].N y / N x , where k = 0…N x
[0082] Y[k]=0,where k=N x …N y
[0083] The two resampling operations can be summarized as follows:
[0084] Y[k]=X[k].N y / N x , where all k = 0…min(N y ,N x )
[0085] Y[k]=0, where all k=min(N y ,N x )…N y , if N y>N x
[0086] Once the new spectrum Y is obtained, it can be y The associated inverse transform iDFT is used to obtain the time domain signal y:
[0087] y=iDFT(Y)
[0088] To construct a continuous time signal across different frames, the output frame y is then windowed and added overlap to the previously obtained frame.
[0089] The window shape is the same for all sampling rates, but the window has different sizes in samples and is sampled differently depending on the sampling rate. Since the shape is defined purely analytically, the number of samples of the window and its value can be easily derived. Different parts and sizes of the window are in Figure 8a can be found as a function of the target sampling rate. In this case, a sinusoidal function in the overlap (LA) is used for the analysis and synthesis windows. For these regions, the incremental ovlp_size factor is given by:
[0090] win_ovlp(k)=sin(pi*(k+0.5) / (2*ovlp_size)); where k=0..ovlp_size-1
[0091] The decreasing ovlp_size factor is given by:
[0092] win_ovlp(k)=sin(pi*(ovlp_size-1-k+0.5) / (2*ovlp_size)); where k=0..ovlp_size-1
[0093] where ovlp_size is a function of the sampling rate and is Figure 8a Given in.
[0094] The new low-delay stereo coding is a joint mid / side (M / S) stereo coding with some spatial cues, where the mid channel is encoded by a main mono core encoder (mono core encoder) and the side channels are encoded in a secondary core encoder. The encoder and decoder principles are described in Figure 4a and Figure 4b middle.
[0095] Stereo processing is mainly performed in the frequency domain (FD). Optionally, some stereo processing can be performed in the time domain (TD) before frequency analysis. This is the case with ITD calculations, which can be calculated and applied before frequency analysis for aligning channels in time before implementing stereo analysis and processing. Alternatively, ITD processing can be directly carried out in the frequency domain. Since common speech encoders such as ACELP do not contain any internal time-frequency decomposition, stereo coding adds additional complex modulation filter banks by means of analysis and synthesis filter banks before the core encoder and another stage of analysis and synthesis filter banks after the core decoder. In a preferred embodiment, an oversampling DFT with low overlapping areas is used. However, in other embodiments, any complex valued time-frequency decomposition with similar time resolution can be used. After the stereo filter bank, reference is made to filter banks such as QMF or block transforms such as DFT.
[0096] The stereo processing consists of computing spatial cues and / or stereo parameters such as inter-channel time difference (ITD), inter-channel phase difference (IPD), inter-channel level difference (ILD) and prediction gains for predicting the side signal (S) from the mid signal (M). It is worth noting that the stereo filter banks at both the encoder and decoder introduce additional delay in the encoding system.
[0097] Figure 4a An apparatus for encoding a multi-channel signal is described, wherein, in this implementation, a certain joint stereo processing is performed in the time domain using an inter-channel time difference (ITD) analysis, and wherein the result of this ITD analysis 1420 is applied in the time domain using a time shift block 1410 placed before the time-to-spectral converter 1000.
[0098] Next, in the spectral domain, a further stereo processing 1010 is performed which results in at least a downmix of the left and right sides of the middle signal M and, optionally, in the calculation of the side signal S, and although Figure 4a Not explicitly shown in the figure, one of two different alternatives may be applied Figure 1 The resampling operation performed by the spectral domain resampler 1020 described in , that is, the resampling is performed after multi-channel processing or before multi-channel processing.
[0099] also, Figure 4a Further details of the preferred core encoder 1040 are described. In particular, an EVS encoder is used for the purpose of encoding the time domain intermediate signal m at the output of the spectro-temporal converter 1030. Additionally, for the purpose of side signal encoding, MDCT encoding 1440 and subsequently connected vector quantization 1450 are performed.
[0100] The coded or core coded intermediate signals and the core coded side signals are forwarded to a multiplexer 1500 which multiplexes these coded signals together with side information. One type of side information is an ID parameter which is output to the multiplexer (and optionally to the stereo processing component 1010) at 1421, and other parameters are channel level difference / prediction parameters, inter-channel phase differences (IPD parameters) or stereo filling parameters as illustrated at line 1422. Accordingly, the method for decoding the multi-channel signal represented by the bitstream 1510 is described in detail in detail in detail in the accompanying drawings. Figure 4b The device comprises a demultiplexer 1520, a core decoder consisting in this embodiment of an EVS decoder 1602 for the encoded intermediate signal m, and a vector dequantizer 1603 followed by an inverse MDCT block 1604. Block 1604 provides the core decoded side signal s. The decoded signals m, s are converted into the spectral domain using a time-spectral converter 1610, and then, in the spectral domain, inverse stereo processing and resampling are performed. Again, Figure 4b A situation is described in which an upmix from the M signal to left L and right R is performed and in addition a narrowband dealignment using IPD parameters is performed and in addition a further procedure for calculating as good as possible left and right channels using the inter-channel level difference parameters ILD and the stereo filling parameters on line 1605 is performed. Furthermore, the signal separator 1520 extracts not only the parameters on line 1605 but also the inter-channel time differences on line 1606 from the bitstream 1510 and forwards this information to the block inverse stereo processing / resampler and in addition to the inverse time shifting process in block 1650 which is performed in the time domain, i.e. after a procedure performed by a spectro-time converter providing decoded left and right signals at an output rate which is, for example, different from the rate at the output of the EVS decoder 1602 or from the rate at the output of the IMDCT block 1604.
[0101] The stereo DFT can then provide differently sampled versions of the signal that are further fed to the switched core encoder. The signal for encoding can be the center channel, the side channels or the left and right channels, or any signal resulting from a rotation or channel mapping of the two input channels. Since the different core encoders of a switched system accept different sampling rates, an important feature is that the stereo synthesis filter bank can provide a multi-rated signal. The principle is described in Figure 5 Given in.
[0102] exist Figure 5In the stereo module, two input channels l and r are selected as inputs and transformed into signals M and S in the frequency domain. In the stereo processing, the input channels can be finally mapped or modified to generate two new signals M and S. M will be further encoded according to the 3GPP standard EVS mono or its modified version. This encoder is a switching encoder, switching between the MDCT core (in the case of EVS, TCX and HQ cores) and the speech encoder (in EVS, ACELP). It also has a pre-processing function that always runs at 12.8kHz, and other pre-processing functions that run at a sampling rate (12.8kHz, 16kHz, 25.6kHz or 32kHz) that varies according to the operating mode. In addition, ACELP runs at 12.8kHz or 16kHz, while the MDCT core runs at the input sampling rate. Signal S can be encoded by a standard EVS mono encoder (or its modified version) or by a specific side signal encoder specially designed for its characteristics. It is also possible to skip the encoding of the side signal S.
[0103] Figure 5 Details of a preferred stereo encoder with a multi-rate synthesis filterbank for stereo processed signals M and S are described. Figure 5 A time-to-frequency converter 1000 is shown which performs a time-to-frequency transform at the input rate (ie, the rate at which signals 1001 and 1002 have). Specifically, Figure 5 The time domain analysis blocks 1000a, 1000e for each channel are additionally described. In particular, although Figure 5 A formal time domain analysis block (i.e., a window opener for applying an analysis window to a corresponding channel) is mentioned, but it should be noted that elsewhere in this specification, a window opener for applying a time domain analysis block is considered to be included in a block indicated as a "time-spectral converter" or "DFT" at a certain sampling rate. In addition and accordingly, the reference to a spectrum-time converter generally includes a window opener for applying a corresponding synthesis window at the output of the actual DFT algorithm, wherein, in order to finally obtain the output samples, an overlap-addition of blocks of sample values windowed with the corresponding synthesis window is performed. Therefore, even if, for example, block 1030 only mentions "IDFT", this block generally refers to the subsequent windowing of blocks of time domain samples using an analysis window and, in addition, the subsequent overlap-addition operation in order to finally obtain the time domain m signal.
[0104] also, Figure 5 A specific stereo scene analysis block 1011 is illustrated which implements the parameters used in block 1010 for performing stereo processing and downmixing and these parameters may be, for example, Figure 4a Parameters on line 1422 or 1421. Thus, block 1011 in the described implementation may correspond to Figure 4aBlock 1420 in which even the parametric analysis (ie the stereo scene analysis) is performed in the spectral domain and in particular utilizes a sequence of blocks of spectral values that have not been resampled but at a maximum frequency corresponding to the input sampling rate.
[0105] Furthermore, the core decoder 1040 comprises an MDCT-based encoder branch 1430a and an ACELP encoding branch 1430b. In particular, the intermediate encoder for the intermediate signal M and the corresponding side encoder for the side signal s perform switching encoding between MDCT-based encoding and ACELP encoding, wherein typically the core encoder additionally has a coding mode decider that typically operates on a certain look-ahead part in order to determine whether a certain block or frame is encoded using an MDCT-based procedure or an ACELP-based procedure. Additionally or alternatively, the core encoder is configured to use the look-ahead part in order to determine other characteristics such as LPC parameters.
[0106] Furthermore, the core encoder additionally includes pre-processing stages at different sampling rates, such as a first pre-processing stage 1430c operating at 12.8 kHz and a further pre-processing stage 1430d operating at a sampling rate of the sampling rate group consisting of 16 kHz, 25.6 kHz or 32 kHz.
[0107] Therefore, in general, Figure 5 The embodiment described in is configured to have a spectral domain resampler for resampling from an input rate (which may be 8 kHz, 16 or 32 kHz) to any of the output rates other than 8, 16 or 32.
[0108] also, Figure 5 The embodiment in is additionally configured to have additional branches that are not resampled, ie the branches for the mid signal and optionally for the side signals as illustrated by the "IDFT at input rate".
[0109] also, Figure 5 The encoder in preferably includes a resampler that resamples not only to the first output sampling rate, but also to the second output sampling rate, so as to have data for both preprocessors 1430c and 1430d, which preprocessors may, for example, be operable to perform the operations preferably disclosed in the for use in Figure 4a In this case, some kind of filtering, some kind of LPC calculation or some other signal processing in the 3GPP standard of the EVS encoder already mentioned.
[0110] Figure 6 An embodiment of a device for decoding an encoded multi-channel signal 1601 is illustrated. The decoding device comprises a core decoder 1600, a time-spectral converter 1610, a spectral domain resampler 1620, a multi-channel processor 1630 and a spectrum-time converter 1640.
[0111] Furthermore, the invention relating to the apparatus for decoding the encoded multi-channel signal 1601 can be implemented in two alternatives. One alternative is that the spectral domain resampler is configured to resample the core decoded signal in the spectral domain before performing the multi-channel processing. This alternative consists of Figure 6 However, another alternative is to perform spectral domain resampling after multi-channel processing, i.e., multi-channel processing is performed at the input sampling rate. Figure 6 Indicated by dotted lines.
[0112] In particular, in the first embodiment, i.e., where spectral domain resampling is performed in the spectral domain prior to multi-channel processing, the core decoded signal representing a sequence of blocks of sampled values is converted into a frequency domain representation of a sequence of blocks of spectral values of the core decoded signal at line 1611.
[0113] In addition, the core decoded signal includes not only the M signal at line 1602, but also the side signal at line 1603, wherein the side signal is illustrated by the core encoded representation at 1604.
[0114] Next, the time-to-spectral converter 1610 additionally generates a sequence of blocks of spectral values of the side signal on line 1612 .
[0115] Next, spectral domain resampling is performed by block 1620 and a resampled sequence of blocks of spectral values of the intermediate signal or the downmix channel or the first channel is forwarded to the multi-channel processor on line 1621 and, optionally, a resampled sequence of blocks of spectral values of the side signal is also forwarded from the spectral domain resampler 1620 to the multi-channel processor 1630 via line 1622.
[0116] Next, the multi-channel processor 1630 performs inverse multi-channel processing on the sequence illustrated at lines 1621 and 1622, including sequences from the downmix signal and optionally from the side signal, so as to output at least two resulting sequences of blocks of spectral values illustrated at 1631 and 1632. These at least two sequences are then converted into the time domain using a spectrum-time converter to output time-domain channel signals 1641 and 1642. In another alternative illustrated at line 1615, the time-spectrum converter is configured to feed a core-decoded signal (such as an intermediate signal) to the multi-channel processor. In addition, the time-spectrum converter may also feed the decoded side signal 1603 in its spectral domain representation to the multi-channel processor 1630, although this option is not described in detail. Figure 6Then, the multi-channel processor performs the inverse processing and the at least two channels of the output are forwarded to the spectral domain resampler via the connection line 1635, and the spectral domain resampler then forwards the resampled at least two channels to the spectrum time converter 1640 via the line 1625.
[0117] Therefore, with Figure 1 The apparatus for decoding a coded multi-channel signal also comprises two alternatives, namely, the case where the spectral domain resampling is performed before the inverse multi-channel processing, or, alternatively, the case where the spectral domain resampling is performed after the multi-channel processing at the input sampling rate. However, preferably, the first alternative is performed, because the first alternative allows Figure 7a and Figure 7b Advantageous alignment of the different signal contributions illustrated in .
[0118] also, Figure 7a A core decoder 1600 is illustrated, however, the core decoder outputs three different output signals, namely: a first output signal 1601 at a different sampling rate relative to the output sampling rate, a second core decoded signal 1602 at the input sampling rate (i.e., the sampling rate at the core encoded signal 1601), and the core decoder additionally generates an output sampling rate (i.e., Figure 7a An operable and usable third output signal 1603 at the final desired sampling rate at the output of the spectrum-to-time converter 1640 in FIG.
[0119] All three core decoded signals are input into a time-spectral converter 1610 which produces three different sequences 1613 , 1611 and 1612 of blocks of spectral values.
[0120] The sequence of blocks of spectral values 1613 has frequencies or spectral values up to the maximum output frequency and is therefore associated with the output sampling rate.
[0121] The sequence of blocks of spectral values 1611 has spectral values up to different maximum frequencies and, therefore, this signal does not correspond to the output sampling rate.
[0122] Furthermore, the signal 1612 spectrum has values up to a maximum input frequency which is also different from the maximum output frequency.
[0123] Therefore, sequences 1612 and 1611 are forwarded to the spectral domain resampler 1620, while signal 1613 is not forwarded to the spectral domain resampler 1620 because this signal is already associated with the correct output sampling rate.
[0124] The spectral domain resampler 1620 forwards the resampled sequence of spectral values to the combiner 1700, which is configured to perform block-by-block combining on a spectral line-by-spectral line basis for the corresponding signals in the overlapping situation. Therefore, there will usually be a crossover region between the switch from the MDCT-based signal to the ACELP signal, and in this overlapping range, the signal values are present and combined with each other. However, when this overlapping range ends and the signal is only present in, for example, signal 1603, and not in, for example, signal 1602, the combiner will not perform block-by-block spectral line addition in this part. However, when the switch occurs later, block-by-block, spectral line-by-spectral line addition will occur during this crossover region.
[0125] In addition, if Figure 7b Continuous addition may also be possible, where the bass post filter output signal illustrated at block 1600a is performed, which may be generated, for example, from Figure 7a Then, after the time-to-spectral conversion in block 1610 and the subsequent spectral domain resampling 1620, preferably after performing Figure 7b An additional filtering operation 1702 is performed before the addition in block 1700.
[0126] Similarly, the MDCT-based decoding stage 1600d and the time-domain bandwidth extension decoding stage 1600c may be coupled via a cross-fading block 1704 in order to obtain a core-decoded signal 1603 which is then converted into a spectral domain representation at the output sampling rate, so that for this signal 1613, spectral domain resampling is not necessary, but the signal may be directly forwarded to the combiner 1700. Stereo inverse processing or multi-channel processing 1603 then takes place after the combiner 1700.
[0127] Therefore, with Figure 6 Compared to the embodiment described in , the multi-channel processor 1630 does not operate on a resampled sequence of spectral values, but operates on a sequence including at least one resampled sequence of spectral values (such as, 1622 and 1621), wherein the sequence on which the multi-channel processor 1630 operates also includes a sequence 1613 that is not necessarily resampled.
[0128] As illustrated in Figure 7, different decoded signals from different DFTs operating at different sampling rates have been time aligned because the analysis windows at different sampling rates share the same shape. However, the spectra show different sizes and scaling. In order to reconcile the spectra and make them compatible, all spectra are resampled in the frequency domain at the desired output sampling rate before being added to each other.
[0129] Thus, Figure 7 illustrates the combination of different contributions to the synthesized signal in the DFT domain, where the spectral domain resampling is performed in such a way that, in the end, all signals to be added by the combiner 1700 are already available and the spectral values extend up to a maximum output frequency corresponding to the output sampling rate (i.e., lower than or equal to half the output sampling rate then obtained at the output of the spectrum-to-time converter 1640).
[0130] The choice of stereo filter bank is critical for low-latency systems and is Figure 8b The achievable balance is outlined in . It can use DFT (block transform) or pseudo low-delay QMF called CLDFB (filter bank). Each proposal shows different delay, time and frequency resolution. For the system, the best compromise between these characteristics must be selected. It is important to have good frequency and time resolution. This is why using a pseudo QMF filter bank as in proposal 3 can be problematic. The frequency resolution is low. It can be enhanced by a hybrid approach as in MPS212 of MPEG-USAC, and it has the disadvantage of significantly increasing complexity and delay. Another important point is the delay available at the decoder side between the core decoder and the inverse stereo processing. The larger this delay, the better. For example, proposal 2 cannot provide this delay and is not a valuable solution for this reason. For these reasons mentioned above, we will focus on proposals 1, 4 and 5 in the remainder of this specification.
[0131] The analysis and synthesis window of the filter bank is another important aspect. In a preferred embodiment, the same window is used for the analysis and synthesis of the DFT. It is also the same at the encoder side and the decoder side. Special attention is paid to achieving the following constraints:
[0132] • The overlap area must be equal to or smaller than the overlap area of the MDCT core and the ACELP look-ahead. In the preferred embodiment, all sizes are equal to 8.75 ms.
[0133] • Zero padding should be at least about 2.5 ms to allow linear shifting of the channels to be applied in the DFT domain.
[0134] For different sampling rates: 12.8kHz, 16kHz, 25.6kHz, 32kHz and 48kHz, the window size, overlap region size and zero padding size must be expressed as an integer number of samples.
[0135] • The DFT complexity should be as low as possible, ie the maximum radix of the DFT in a split-radix FFT implementation should be as low as possible.
[0136] The time resolution is fixed at 10ms.
[0137] Given these constraints, Figure 8cIn Figure 8a The windows used for suggestions 1 and 4 are described in .
[0138] Figure 8c A first window is illustrated, which consists of an initial overlapping portion 1801, a subsequent intermediate portion 1803, and a terminating overlapping portion or second overlapping portion 1802. Furthermore, the first overlapping portion 1801 and the second overlapping portion 1802 additionally have a zero-padded portion 1804 at their beginning and a zero-padded portion 1805 at their end.
[0139] also, Figure 8c Description relative to Figure 1 The time-to-spectrum converter 1000 or alternatively Figure 7a Another analysis window consisting of element 1811 (i.e., the first overlapping portion), a middle non-overlapping portion 1813, and a second overlapping portion 1812 overlaps the first window by 50%. The second window additionally has zero-padded portions 1814 and 1815 at its beginning and end. These zero-overlapping portions are necessary in order to perform wideband time alignment in the frequency domain in position.
[0140] In addition, the first overlapping portion 1811 of the second window starts when the middle portion 1803 (i.e., the non-overlapping portion of the first window) ends, and the overlapping portion of the second window (i.e., the non-overlapping portion 1813) starts when the second overlapping portion 1802 of the first window ends, as shown in the figure.
[0141] When thinking Figure 8c represents a spectrum-time converter (such as for an encoder) Figure 1 When performing an overlap-add operation on the spectrum-time converter 1030 of the decoder, or the spectrum-time converter 1640 for the decoder), the first window consisting of blocks 1801, 1802, 1803, 1805, 1804 corresponds to the synthesis window, and the second window consisting of parts 1811, 1812, 1813, 1814, 1815 corresponds to the synthesis window of the next block. Thus, the overlap between the windows describes the overlapping portion, and the overlapping portion is described by 1820, and the length of the overlapping portion is equal to the current frame divided by two, and in the preferred embodiment is equal to 10ms. In addition, in Figure 8c At the bottom of , the analytical equation for calculating the increasing window coefficient within the overlapping range 1801 or 1811 is illustrated as a sine function, and correspondingly, the decreasing overlap size coefficient of the overlapping parts 1802 and 1812 is also illustrated as a sine function.
[0142] In a preferred embodiment, the same analysis window and synthesis window are only used for Figure 6 , Figure 7a , Figure 7bTherefore, the time-to-spectral converter 1616 and the spectrum-to-time converter 1640 use exactly the same window, such as Figure 8c As described in .
[0143] However, in certain embodiments, particularly with respect to the subsequent suggestion / embodiment 1, the use of a substantially conforming Fig.11c The analysis window is , but the window coefficient for increasing or decreasing the overlap is calculated using the square root of a sine function whose independent variable is Figure 8c Correspondingly, the synthesis window is calculated using a sine to power 1.5 function, but again with the same argument of the sine function.
[0144] Furthermore, it should be noted that the multiplication of sine to the power of 0.5 by sine to the power of 1.5 again produces a result of sine to the power of 2, due to the overlap-add operation, which is necessary to have an energy conservation situation.
[0145] Proposal 1 has as its main feature that the overlap region of the DFT is of the same size and aligned with the ACELP lookahead and MDCT core overlap regions. The encoder delay is thus the same for the ACELP / MDCT core and stereo does not introduce any additional delay at the encoder. In the case of EVS and when using Figure 5 In the case of the multi-rate synthesis filter bank approach described in , the stereo encoder latency is as low as 8.75 ms.
[0146] exist Figure 9a The encoder schematically frames the Fig.9e The decoder is depicted in Fig.9c The window for the encoder is drawn with a dotted blue line and the window for the decoder is drawn with a solid red line.
[0147] A major problem with Proposal 1 is that the look-ahead at the encoder is windowed. The problem can be corrected for subsequent processing, or the windowing can be retained if subsequent processing is employed to take into account the windowed look-ahead. This may be the case if the stereo processing performed in the DFT modifies the input channels, and especially when non-linear operations are used, the corrected or windowed signal does not allow for perfect reconstruction if the core coding is bypassed.
[0148] It is worth noting that there is a 1.25ms time gap between the core decoder synthesis window and the stereo decoder analysis window, which can be used for core decoder post-processing, bandwidth extension (BWE) (such as time domain BWE used for ACELP) or some smoothing (in the case of conversion between ACELP core and MDCT core).
[0149] Since this time gap of only 1.25 ms is lower than the 2.3125 ms required by the standard EVS for these operations, the present invention provides a method to combine, resample and smoothly switch the different synthesis parts of the decoder in the DFT domain of the stereo module.
[0150] like Figure 9a As illustrated in , the core encoder 1040 is configured to operate according to a framing control to provide a sequence of frames, wherein the frames are bounded by a start frame boundary 1901 and an end frame boundary 1902. In addition, the time-to-spectral converter 1000 and / or the spectrum-to-time converter 1030 are also configured to operate according to a second framing control that is synchronized with the first framing control. The framing control is illustrated by two overlapping windows 1903 and 1904 for the time-to-spectral converter 1000 in the encoder, and in particular for the first channel 1001 and the second channel 1002 that are processed simultaneously and completely synchronously. In addition, the framing control is also visible on the decoder side, specifically, the framing control illustrated in 1913 and 1914 for Figure 6 These windows 1913 and 1914 are applied to the core decoder signal, which is preferably e.g. Figure 6 A single mono or downmix signal 1610. In addition, Figure 9a It is obvious that the synchronization between the framing control of the core encoder 1040 and the framing control of the time-to-spectrum converter 1000 or the spectrum-to-time converter 1030 is such that for each block of the sequence of blocks of sampled values or for each block of the resampled sequence of blocks of spectral values, the start frame boundary 1901 or the end frame boundary 1902 of each frame of the frame sequence is in a predetermined relationship with the start instant or the end instant of the overlap used by the time-to-spectrum converter 1000 or the spectrum-to-time converter 1030. Figure 9a In the embodiment described in , the predetermined relationship is such that the start of the first overlapping portion coincides with the start time boundary relative to window 1903, and the start of the overlapping portion of another window 1904 coincides with the middle portion (such as, Figure 8c 1803) ends. Therefore, when Figure 8c The second window in corresponds to Figure 9a When the window 1904 in the Figure 8c The middle section 1813 is aligned with the end.
[0151] Therefore, it is obvious that Figure 9a The second overlapping portion of the second window 1904 in Figure 8c 1812) extends beyond the end or stop frame boundary 1902 and, therefore, extends into the core encoder look-ahead portion illustrated by 1905.
[0152] Thus, the core encoder 1040 is configured to use a look-ahead portion, such as the look-ahead portion 1905, when core encoding an output block of an output sequence of blocks of sample values, wherein the output look-ahead portion is temporally located after the output block. The output block corresponds to a frame bounded by frame boundaries 1901, 1904, and the output look-ahead portion 1905 follows this output block for the core encoder 1040.
[0153] Furthermore, as illustrated, the time-spectral converter is configured to use an analysis window, namely window 1904, which has an overlapping portion with a time length lower than or equal to the time length of the look-ahead portion 1905, wherein the data corresponding to the look-ahead portion 1905 located in the overlapping range Figure 8c This overlapping portion of overlap 1812 is used to generate the windowed look-ahead portion.
[0154] Furthermore, the spectrum time converter 1030 is configured to process the output look-ahead portion corresponding to the windowed look-ahead portion, preferably using a correction function, wherein the correction function is configured such that the influence of overlapping parts of the analysis windows is reduced or eliminated.
[0155] therefore, Figure 9a The spectrum time converter operating between the core encoder 1040 and the downmix 1010 / downsampling 1020 blocks in is configured to apply a correction function to undo the Figure 9a Windowing is applied in window 1904.
[0156] Therefore, it is determined that the core encoder 1040, when applying its look-ahead functionality to the look-ahead portion 1095, performs the look-ahead function on a portion as far as possible from the original portion rather than on the look-ahead portion.
[0157] However, due to the low delay constraints, and due to the synchronization between the stereo preprocessor and the framing of the core encoder, the original time domain signal for the look-ahead part does not exist. However, the application of the correction function ensures that any artifacts caused by this procedure are reduced as much as possible.
[0158] exist Figure 9d , Fig.9e A series of procedures for this technique are described in more detail in .
[0159] In step 1910, the DFT of the zeroth block is performed -1 to obtain the zeroth block in the time domain. The zeroth block will have been obtained for Figure 9a However, this zeroth block is not in Figure 9a clearly stated in .
[0160] Next, in step 1912, the zeroth block is windowed using the synthetic window, i.e., Figure 1Windowing is performed in the spectrum-to-time converter 1030 described in the specification.
[0161] Next, as illustrated in block 1911, a DFT of the first block obtained by window 1903 is performed. -1 , to obtain the first block in the time domain, and again in block 1910 this first block is windowed using the synthesis window.
[0162] Then, if Figure 9d As indicated by 1918 in the above, the second block (i.e., by Figure 9a The inverse DFT of the block obtained by the window 1904 of the time domain is performed to obtain the second block in the time domain, and then the first part of the second block is windowed using the synthesis window, such as Figure 9d However, importantly, through Figure 9d The second part of the second block obtained in item 1918 is not windowed using the synthetic window, but Figure 9d is corrected as described in block 1922 of , and for the correction function, an analysis window function and the inverse of the corresponding overlapping portion of the analysis window function are used.
[0163] Therefore, if the window used to generate the second block is Figure 8c The sine window described in Figure 8c The 1 / sin() at the bottom of the equation that decrements the overlap size coefficient is used as a correction function.
[0164] However, preferably the square root of a sine window is used for the analysis window, and therefore the correction function is the window function This ensures that the corrected look-ahead portion obtained by block 1922 is as close as possible to the original signal within the look-ahead portion, but of course not the original left signal or the original right signal, but the original signal that has been obtained by adding the left signal and the right signal to obtain the intermediate signal.
[0165] Then, in Figure 9dIn step 1924 of , a frame indicated by frame boundaries 1901, 1902 is generated by performing an overlap-add operation in block 1030 so that the encoder has a time domain signal, and this frame is performed by an overlap-add operation between the block corresponding to window 1903 and the previous sample of the previous block and using the first part of the second block obtained by block 1920. Then, this frame output by block 1924 is forwarded to the core encoder 1040, and additionally, the core encoder further receives the corrected look-ahead part of the frame, and as illustrated in step 1926, the core encoder can then use the corrected look-ahead part obtained by step 1922 to determine the characteristics of the core encoder. Then, as illustrated in step 1928, the core encoder core-encodes the frame using the characteristics determined in block 1926, thereby finally obtaining a core-encoded frame corresponding to frame boundaries 1901, 1902, which has a length of 20ms in a preferred embodiment.
[0166] Preferably, the overlapping portion of the window 1904 extending into the look-ahead portion 1905 has the same length as the look-ahead portion, but it may also be shorter, but preferably not longer, so that the stereo preprocessor does not incur any additional delay due to the overlapping windows.
[0167] Next, the procedure continues with windowing the second portion of the second block using the synthesis window, as illustrated in block 1930. Thus, the second portion of the second block is on the one hand corrected by block 1922 and on the other hand windowed by the synthesis window, as illustrated in block 1930, because this portion is then needed for the core encoder to generate the next frame by overlap-adding the windowed second portion of the second block, the windowed third block and the windowed first portion of the fourth block, as illustrated in block 1932. Naturally, the fourth block, and in particular the second portion of the fourth block, will once again be subjected to the same procedure as described with respect to Figure 9dThe corrective operation discussed in the second block of item 1922 of , and then, the procedure will once again be repeated as previously discussed. In addition, in step 1934, the core encoder will use the corrected second part of the fourth block to determine the core encoder characteristics, and then, the determined encoding characteristics will be used to encode the next frame, so as to finally obtain the next frame encoded by the core in block 1934. Therefore, the alignment of the second overlapping part of the analysis (corresponding synthesis) window with the core encoder forward part 1905 ensures that a very low delay implementation can be obtained and this advantage is caused by the fact that the forward part of the windowed is solved on the one hand by performing the corrective operation and on the other hand by applying the analysis window (not equal to the synthesis window, but exerting a smaller influence) so that the corrective function can be ensured to be more stable than using the same analysis / synthesis window. However, in the case where the core encoder is modified to operate its forward function (which is usually necessary to determine the core encoding characteristics regarding the windowed part), the corrective function may not be performed. However, it has been found that using the corrective function is better than modifying the core encoder.
[0168] Furthermore, as discussed previously, it should be noted that the end point of the window (i.e., analysis window 1914) is the same as that of Figure 9b There is a time gap between the start frame boundary 1901 and the end frame boundary 1902 of the frame defined by the end frame boundary 1902.
[0169] In particular, the time gap is relative to the Figure 6 The analysis window applied by the time-to-spectral converter 1610 is illustrated at 1920 , and this time gap is also visible 120 relative to the first output channel 1641 and the second output channel 1642 .
[0170] Figure 9f The procedure showing the steps performed in the case of a time gap, the core decoder 1600 performs core decoding on the frame or at least the initial part of the frame until the time gap 1920. Next, Figure 6 The time-spectral converter 1610 is configured to apply an analysis window to an initial part of a frame using an analysis window 1914 , the analysis window not extending until the end of the frame, ie the time instant 1902 , but only until the beginning of the time gap 1920 .
[0171] Therefore, the core decoder has additional time to core decode the samples in the time slot and / or post-process the samples in the time slot, as illustrated at block 1940. Therefore, the time-to-spectral converter 1610 has output the first block as a result of step 1938, where the core decoder may provide the remaining samples in the time slot or may post-process the samples in the time slot at step 1940.
[0172] Next, in step 1942, the time-to-spectrum converter 1610 is configured to use Figure 9b The next analysis window that occurs after window 1914 in the time slot is windowed for the samples in the time slot and the samples of the next frame. Next, as illustrated in step 1944, the core decoder 1600 is configured to decode the next frame or at least the initial portion of the next frame until the time slot 1920 occurs in the next frame. Next, in step 1946, the time-to-spectral converter 1610 is configured to window the samples in the next frame until the time slot 1920 of the next frame, and in step 1948, the core decoder will then core decode and / or post-process the remaining samples in the time slot of the next frame.
[0173] Therefore, this time gap (for example, when considering Figure 9b In an embodiment, 1.25 ms) can be adopted by core decoder post-processing, by bandwidth extension, by time domain bandwidth extension as used in the case of ACELP, or by some smoothing in the case of transmission conversion between ACELP and MDCT core signals.
[0174] Therefore, once again, the core decoder 1600 is configured to operate according to a first framing control to provide a sequence of frames, wherein the time-to-spectrum converter 1610 or the spectrum-to-time converter 1640 is configured to operate according to a second framing control synchronized with the first framing control so that a start frame boundary or an end frame boundary of each frame of the sequence of frames is in a predetermined relationship with a start instant or an end instant of an overlapping portion of a window used by the time-to-spectrum converter or by the spectrum-to-time converter for each block of a sequence of blocks of sampled values or for each block of a resampled sequence of blocks of spectral values.
[0175] Furthermore, the time-to-spectral converter 1610 is configured to use the analysis window for windowing frames of the sequence of frames having an overlapping range ending before the end frame boundary 1902, thereby leaving a time gap 1920 between the end of the overlapping portion and the end frame boundary. The core decoder 1600 is thus configured to perform processing on the samples in the time gap 1920 in parallel with the windowing of the frames using the analysis window, or wherein additional post-processing is performed on the time gap in parallel with the windowing of the frames using the analysis window performed by the time-to-spectral converter.
[0176] Furthermore, and preferably, the analysis windows for subsequent blocks of the core decoded signal are positioned so that the middle non-overlapping portion of the window is located such that Figure 9b Within the time gap described in 1920.
[0177] In Proposal 4, the total system delay is enlarged compared to Proposal 1. At the encoder, the additional delay comes from the stereo module. Unlike Proposal 1, the problem of perfect reconstruction is no longer relevant in Proposal 4.
[0178] At the decoder, the available delay between the core decoder and the first DFT analysis is 2.5 ms, which allows to perform conventional resampling, combining and smoothing between different core synthesized and extended bandwidth signals as it is done in standard EVS.
[0179] exist Fig.10a The encoder schematically frames the Fig.10b The decoder is depicted in Fig.10c The window is given in .
[0180] In Proposal 5, the time resolution of the DFT is reduced to 5 ms. The look-ahead and overlap regions of the core encoder are not windowed, which is a shared advantage with Proposal 4. On the other hand, the achievable delay between encoder decoding and stereo analysis is small and a solution as proposed in Proposal 1 is required (Fig. 7). The main disadvantages of this proposal are the low frequency resolution of the time-frequency decomposition and the small overlap region reduced to 5 ms, which prevents large time shifts in the frequency domain.
[0181] exist Fig.11a The encoder schematically frames the Fig.11b The decoder is depicted in Fig.11c The window is given in .
[0182] In view of the above, with respect to the encoder side, the preferred embodiment is about multi-rate time-frequency synthesis, which provides at least one stereo processed signal to subsequent processing modules at different sampling rates. The modules include, for example, speech encoders (such as ACELP), preprocessing tools, MDCT-based audio encoders (such as TCX) or bandwidth extension encoders (such as time-domain bandwidth extension encoders).
[0183] Regarding the decoder, a combination of different contributions synthesized by the decoder for resampling in the stereo frequency domain is performed. These synthesized signals can come from a speech decoder (such as an ACELP decoder), an MDCT-based decoder, a bandwidth extension module or an interharmonic error signal from post-processing (such as a bass post-filter).
[0184] Furthermore, with respect to both the encoder and the decoder, it is useful to apply a window for the DFT or transform complex values with zero padding, low overlap regions and a hop size (which corresponds to an integer number of samples at different sampling rates such as 12.9kHz, 16kHz, 25.6kHz, 32kHz or 48kHz).
[0185] Embodiments enable low-bitrate encoding of low-delay stereo audio. A filter bank is specifically designed to efficiently combine a low-delay switched audio coding scheme (such as EVS) with a stereo coding module.
[0186] Embodiments may be used when distributing or broadcasting all types of stereo or multi-channel audio content (speech and similar music, with constant perceived quality at a given low bit rate), such as for digital radio, Internet streaming and audio communication applications.
[0187] Fig.12 A device for encoding a multi-channel signal having at least two channels is described. The multi-channel signal 10 is input into a parameter determiner 100 on the one hand and into a signal aligner 200 on the other hand. The parameter determiner 100 determines a broadband alignment parameter on the one hand and a plurality of narrowband alignment parameters on the other hand from the multi-channel signal. These parameters are output via a parameter line 12. In addition, these parameters are also output to an output interface 500 via another parameter line 14, as shown in the figure. On the parameter line 14, additional parameters such as level parameters are forwarded from the parameter determiner 100 to the output interface 500. The signal aligner 200 is configured to align at least two channels of the multi-channel signal 10 using the broadband alignment parameters and the plurality of narrowband alignment parameters received via the parameter line 10 to obtain aligned channels 20 at the output of the signal aligner 200. These aligned channels 20 are forwarded to a signal processor 300, which is configured to calculate an intermediate signal 31 and a side signal 32 from the aligned channels received via the line 20. The device for encoding further comprises a signal encoder 400 for encoding the intermediate signal from line 31 and the side signal from line 32 to obtain an encoded intermediate signal on line 41 and an encoded side signal on line 42. These signals are both forwarded to an output interface 500 for generating an encoded multichannel signal at output line 50. The encoded signal 50 at output line comprises the encoded intermediate signal from line 41, the encoded side signal from line 42, the narrowband alignment parameters and the wideband alignment parameters from line 14 and optionally the level parameters from line 14 and additionally optionally the stereo filling parameters generated by the signal encoder 400 and forwarded to the output interface 500 via parameter line 43.
[0188] Preferably, the signal aligner is configured to align the channels from the multi-channel signal using the wideband alignment parameters before the parameter determiner 100 actually calculates the narrowband parameters. Therefore, in this embodiment, the signal aligner 200 sends the wideband aligned channels back to the parameter determiner 100 via the connection line 15. The parameter determiner 100 then determines a plurality of narrowband alignment parameters from the multi-channel signal that has been aligned with respect to the wideband characteristics. However, in other embodiments, these parameters are determined without this particular program sequence.
[0189] Fig.14aA preferred implementation is described in which a specific sequence of steps is performed that results in connection line 15. In step 16, broadband alignment parameters are determined using the two channels and broadband alignment parameters such as inter-channel time difference or ITD parameters are obtained. Next, in step 21, the broadband alignment parameters are used to obtain the broadband alignment parameters by Fig.12 The two channels are aligned by the signal aligner 200. Then, in step 17, the aligned channels are used to determine narrowband parameters in the parameter determiner 100 to determine a plurality of narrowband alignment parameters, such as a plurality of inter-channel phase difference parameters for different frequency bands of the multi-channel signal. Then, in step 22, the spectral values in each parameter band are aligned using the corresponding narrowband alignment parameters for this particular frequency band. When this procedure in step 22 is performed for each frequency band (for which the narrowband alignment parameters are available), the aligned first and second or left / right channels are available for use by Fig.12 The signal processor 300 performs further signal processing.
[0190] Fig.14b illustrate Fig.12 Yet another implementation of a multi-channel encoder of , wherein several processes are performed in the frequency domain.
[0191] Specifically, the multi-channel encoder further comprises a time-spectrum converter 150 for converting the time-domain multi-channel signal into a spectrum representation of at least two channels in the frequency domain.
[0192] In addition, as described in 152, Fig.12 The parameter determiners, signal aligners and signal processors illustrated at 100, 200 and 300 in the drawings all operate in the frequency domain.
[0193] Furthermore, the multi-channel encoder and in particular the signal processor further comprises a spectro-temporal converter 154 for generating a time domain representation of at least the intermediate signal.
[0194] Preferably, the spectrum-time converter additionally converts the spectral representation of the side signal, also determined by the procedure represented by block 152, into a time domain representation, and Fig.12 The signal encoder 400 is then configured according to Fig.12 The mid signal and / or the side signal is further encoded into a time domain signal according to a specific implementation of the signal encoder 400.
[0195] Preferably, Fig.14b The time-to-spectrum converter 150 is configured to implement Fig.14cSteps 155, 156 and 157 of the present invention are described in detail. Specifically, step 155 includes providing an analysis window having at least one zero-padded portion at one end thereof, and specifically, having a zero-padded portion at an initial window portion and having a zero-padded portion at a terminal window portion, as described later, for example, in FIG. 7. In addition, the analysis window additionally has an overlapping range or overlapping portion at a first half of the window and a second half of the window, and in addition, preferably, the middle portion is a non-overlapping range, as the case may be.
[0196] In step 156, each channel is windowed using an analysis window with an overlapping range. Specifically, each channel is windowed using an analysis window in such a way that a first block of the channel is obtained. Subsequently, a second block of the same channel is obtained, which has a certain overlapping range with the first block, and so on, so that after, for example, five windowing operations, five blocks of windowed samples for each channel are obtained, which are then individually transformed into spectral representations, such as Fig.14c The same procedure is also performed for the other channel, so that at the end of step 157, a sequence of blocks of spectral values, and in particular complex spectral values, such as DFT spectral values or complex subband samples, is available.
[0197] In by Fig.12 In step 158 performed by the parameter determiner 100 of Fig.12 In step 159 performed by the signal alignment 200 of , a cyclic shift is performed using the broadband alignment parameters. Fig.12 In step 160 performed by the parameter determiner 100 of , narrowband alignment parameters are determined for individual frequency bands / sub-bands and in step 161 the aligned spectrum values are rotated for each frequency band using the corresponding narrowband alignment parameters determined for the specific frequency band.
[0198] Fig.14d Other procedures performed by the signal processor 300 are described. Specifically, the signal processor 300 is configured to calculate the mid signal and the side signal, as described in step 301. In step 302, some further processing of the side signal may be performed, then, in step 303, each block of the mid signal and the side signal is transformed back into the time domain, and in step 304, a synthesis window is applied to each block obtained by step 303, and in step 305, an overlap-add operation is performed on the mid signal on the one hand and on the side signal on the other hand, to finally obtain the time-domain mid / side signal.
[0199] Specifically, the operations of steps 304 and 305 cause a cross-fading from one block of the mid signal or the side signal in the next block of the mid signal and the side signal, so that even when any parameter change occurs (such as the inter-channel time difference parameter or the inter-channel phase difference parameter), this fading is not affected by the mid signal or the side signal. Fig.14d The time domain mid / side signal obtained in step 305 will still be inaudible.
[0200] Fig.13 A block diagram illustrating an embodiment of a device for decoding an encoded multi-channel signal received at input line 50 is shown.
[0201] In particular, the signal is received by the input interface 600. Connected to the input interface 600 are a signal decoder 700 and a signal de-aligner 900. Furthermore, a signal processor 800 is connected to the signal decoder 700 on the one hand and to the signal de-aligner on the other hand.
[0202] In particular, the encoded multi-channel signal comprises an encoded mid signal, an encoded side signal, information about wideband alignment parameters and information about a plurality of narrowband parameters. Thus, the encoded multi-channel signal on line 50 may be coupled to the encoded mid signal by Fig.12 The signals output by the output interface 500 are exactly the same.
[0203] However, it is important to note here that Fig.12 Compared to what is described in Fig.12 The alignment parameters used by the signal aligner 200 in , but may alternatively also be their inverse values, ie parameters that may be used by exactly the same operation performed by the signal aligner 200 but with inverse values, so that de-aligned parameters are obtained.
[0204] Therefore, information about the alignment parameters can be obtained as Fig.12 The alignment parameters used by the signal aligner 200 in may be inverse values, ie, actual “de-alignment parameters.” Additionally, these parameters will typically be quantized in some form as will be discussed subsequently with respect to FIG. 8 .
[0205] Fig.13 The input interface 600 of the coded intermediate / side signal separates information about the wideband alignment parameters and a plurality of narrowband alignment parameters from the coded intermediate / side signal and forwards this information to the signal de-aligner 900 via a parameter line 610. On the other hand, the coded intermediate signal is forwarded to the signal decoder 700 via a line 601 and the coded side signal is forwarded to the signal decoder 700 via a signal line 602.
[0206] The signal decoder is configured to decode the encoded intermediate signal and to decode the encoded side signal to obtain a decoded intermediate signal on line 701 and a decoded side signal on line 702. These signals are used by the signal processor 800 for calculating a decoded first channel signal or a decoded left signal and a decoded second channel or a decoded right channel signal from the decoded intermediate signal and the decoded side signal, and outputting the decoded first channel and the decoded second channel on lines 801, 802, respectively. The signal de-aligner 900 is configured to de-align the decoded first channel on line 801 and the decoded right channel 802 using information about the wideband alignment parameters and additionally using information about a plurality of narrowband alignment parameters to obtain a decoded multi-channel signal, i.e. a decoded signal on lines 901 and 902 having at least two decoded and de-aligned channels.
[0207] Figure 9a Description from Fig.13 The preferred order of steps performed by the signal de-aligner 900 is shown in FIG. 910. Specifically, step 910 receives the signal from Fig.13 The aligned left and right channels available on lines 801, 802 of FIG. 8A and FIG. 9B are shown in FIG. 9C . In step 910, the signal de-aligner 900 dealigns the individual sub-bands using information about the narrowband alignment parameters so as to obtain phase dealigned decoded first and second or left and right channels at 911a and 911b. In step 912, the channels are dealigned using the wideband alignment parameters so as to obtain phase and time dealigned channels at 913a and 913b.
[0208] In step 914, any other processing is performed, including the use of windowing or any overlap-add operation or in general any cross-fading operation, in order to obtain an artifact-reduced or artifact-free decoded signal at 915a or 915b, i.e. a decoded channel without any artifacts, although here there are usually already time-varying de-alignment parameters for the wideband on the one hand and for multiple narrowbands on the other hand.
[0209] Fig.15b illustrate Fig.13 A preferred implementation of the multi-channel decoder described in .
[0210] In particular, from Fig.13 The signal processor 800 includes a time-to-spectrum converter 810 .
[0211] The signal processor further comprises a mid / side to left / right converter 820 in order to calculate the left signal L and the right signal R from the mid signal M and the side signal S.
[0212] Importantly, however, the side signal S is not necessarily used in order to calculate L and R by the mid / side to left / right conversion in block 820. Instead, as discussed later, only the gain parameters derived from the inter-channel level difference parameters ILD are initially used to calculate the left / right signals. Thus, in this implementation, the side signal S is only used in the channel updater 830, which operates to provide a better left / right signal using the transmitted side signal S, as illustrated by the bypass line 821.
[0213] Thus, the converter 820 operates using the level parameters obtained via the level parameter input 822 and does not actually use the side signal S, but the channel updater 830 then operates using the side 821 and, depending on the specific implementation, uses the stereo filling parameters received via line 831. The signal aligner 900 thus comprises a phase de-aligner and an energy scaler 910. The energy scaling is controlled by a scaling factor derived by a scaling factor calculator 940. The scaling factor calculator 940 is fed by the output of the channel updater 830. Based on the narrowband alignment parameters received via input 911, a phase de-alignment is performed and in block 920, based on the wideband alignment parameters received via line 921, a time de-alignment is performed. Finally, a spectrum-time conversion 930 is performed in order to finally obtain a decoded signal.
[0214] Fig.15c In the preferred embodiment, the description is usually Fig.15b Another order of steps performed within blocks 920 and 930.
[0215] Specifically, the narrowband dealignment channel is input to the Fig.15b in the broadband de-alignment functionality of block 920 of . The DFT or any other transform is performed in block 931 . After the actual calculation of the time domain samples, an optional synthesis windowing using a synthesis window is performed. The synthesis window is preferably identical to the analysis window, or derived from the analysis window, e.g. interpolated or decimated, but somehow dependent on the analysis window. This dependency is preferably such that the multiplication factor defined by the two overlapping windows sums to one for each point in the overlapping range. Therefore, after the synthesis window in block 932, an overlap operation and a subsequent addition operation are performed. Alternatively, instead of synthesis windowing and overlap / addition operations, any cross-fading between subsequent blocks for each channel is performed in order to obtain a decoded signal with reduced artifacts, as in Fig.15a The case has been discussed.
[0216] Obviously, on the one hand, for the intermediate signal (ie, the "EVS decoder") and on the other hand for the side signal (the inverse vector quantization VQ -1 and inverse MDCT operation (IMDCT)) corresponds to the actual decoding operation Fig.13 The signal decoder 700 is provided.
[0217] Furthermore, the DFT operation in block 810 corresponds to Fig.15b Component 810 in , and the functionality of inverse stereo processing and inverse time shifting corresponds to Fig.13 Blocks 800, 900, and the inverse DFT operation 930 corresponds to Fig.15b The corresponding operation in block 930 in .
[0218] Subsequently, a more detailed discussion Figure 3d In particular, Figure 3d Describe the DFT spectrum with individual spectral lines. Preferably, Figure 3d The DFT spectrum illustrated in , or any other spectrum, is a complex spectrum, and each line is a complex spectral line having a magnitude and a phase, or having a real part and an imaginary part.
[0219] In addition, the spectrum is also divided into different parameter bands. Each parameter band has at least one and preferably more than one spectral line. In addition, the parameter bands increase from lower frequencies to higher frequencies. Typically, the broadband alignment parameters are used for the entire spectrum (i.e., in Figure 3d In the exemplary embodiment of , a single broadband alignment parameter is included for all frequency bands 1 to 6).
[0220] Furthermore, multiple narrowband alignment parameters are provided so that there is a single alignment parameter for each parameter band. This means that the alignment parameter for a band is always applicable for all spectral values within the corresponding band.
[0221] Furthermore, in addition to the narrowband alignment parameters, level parameters are provided for each parameter band.
[0222] Compared to the level parameters provided for each parameter band of bands 1 to 6, narrowband alignment parameters are preferably provided only for a limited number of lower bands, such as bands 1, 2, 3 and 4.
[0223] Additionally, stereo filling parameters are provided for a certain number of frequency bands excluding lower frequency bands (such as, in the exemplary embodiment, frequency bands 4, 5 and 6), while there are side signal spectral values for lower parameter bands 1, 2 and 3, and therefore, no stereo filling parameters are present for these lower frequency bands, wherein waveform matching is obtained using the side signals themselves or a predicted residual signal representing the side signals.
[0224] As already stated, there are more spectral lines in the higher frequency bands, such as Figure 3d In the embodiment in , there are seven spectral lines in parameter band 6 versus only three spectral lines in parameter band 2. However, naturally the number of parameter bands, the number of spectral lines and the number of spectral lines within a parameter band and different limit values for certain parameters will be different.
[0225] Nevertheless, Figure 8 illustrates the distribution of parameters and the number of frequency bands whose parameters are Figure 3d In contrast, in one embodiment there are actually 12 frequency bands provided.
[0226] As illustrated, a level parameter ILD is provided for each of the 12 bands and is quantized to a quantization accuracy represented by five bits per band.
[0227] Furthermore, the narrowband alignment parameter IPD is only provided for the lower frequency band up to the boundary frequency of 2.5 kHz. In addition, the inter-channel time difference or wideband alignment parameter is only provided as a single parameter for the entire spectrum, but with a very high quantization accuracy represented by eight bits for the entire frequency band.
[0228] Furthermore, rather coarsely quantized stereo filling parameters are provided, represented by three bits per band and are not used for lower frequency bands below 1 kHz, since for the lower frequency bands the actual encoded side signal or side signal residual spectral values are included.
[0229] Subsequently, the preferred processing on the encoder side is outlined. In the first step, a DFT analysis of the left and right channels is performed. This procedure corresponds to Fig.14c Steps 155 to 157 of FIG. 154 are performed. The wideband alignment parameters are calculated, and in particular, the wideband alignment parameter inter-channel time difference (ITD) is preferably calculated. A time shift of L and R in the frequency domain is performed. Alternatively, this time shift can also be performed in the time domain. An inverse DFT is then performed, the time shift is performed in the time domain and an additional forward DFT is performed in order to once again have a spectral representation after alignment using the wideband alignment parameters.
[0230] The ILD parameters (ie, level parameters) and the phase parameters (IPD parameters) are calculated for each parameter band on the shifted L and R representations. This step corresponds to, for example, Fig.14c Step 160. The time-shifted L and R representations are rotated as a function of the inter-channel phase difference parameter, such as Fig.14c As illustrated in step 161 of . Then, as illustrated in step 301, the mid and side signals are calculated, and preferably, additionally utilizing the energy session operation as discussed subsequently. Furthermore, a prediction of S is performed, which utilizes M as a function of the ILD, and optionally utilizes the past M signals (i.e., the mid signals of the previous frame). Then, an inverse DFT of the mid and side signals is performed, which in a preferred embodiment corresponds to Fig.14d Steps 303, 304, and 305.
[0231] In the final step, the time domain intermediate signal m and optionally the residual signal are encoded. This procedure corresponds to encoding by Fig.12 A program executed by the signal encoder 400 in.
[0232] At the decoder, in the inverse stereo process, the Side signal is generated in the DFT domain and first predicted from the Mid signal as:
[0233]
[0234] where g is the gain calculated for each parameter band and is a function of the transmitted inter-channel level difference (ILD).
[0235] The residual of the predicted Side-g·Mid can then be optimized in two different ways:
[0236] -Through secondary encoding of the residual signal:
[0237]
[0238] where g cod is the global gain for the entire spectrum transmission
[0239] - Predicting the residual side spectra using the previously decoded Mid signal spectra from the previous DFT frame via residual prediction known as stereo filling:
[0240]
[0241] where g pred is the predictive gain for each parameter band transmission.
[0242] The two types of coding optimization can be mixed in the same DFT spectrum. In a preferred embodiment, residual coding is applied to the lower parameter bands, while residual prediction is applied to the remaining bands. After synthesizing the residual side signal in the time domain and transforming it by MDCT, the residual coding is performed as follows: Fig.12 In the preferred embodiment described in , the MDCT domain is performed. Unlike DFT, MDCT is key sampled and more suitable for audio coding. MDCT coefficients are vectors quantized directly by lattice vector quantization, but can alternatively be encoded by a scalar quantizer followed by an entropy encoder. Alternatively, the residual side signal can also be encoded in the time domain by speech coding techniques or directly in the DFT domain.
[0243] Subsequently, yet another embodiment of a joint stereo / multi-channel encoder process or an inverse stereo / multi-channel process is described.
[0244] 1. Time-frequency analysis: DFT
[0245] Importantly, the additional time-frequency decomposition from the stereo processing performed by DFT allows for good auditory scene analysis without significantly increasing the overall delay of the coding system. By default, a time resolution of 10ms is used (twice the 20ms framing of the core encoder). The analysis window and the synthesis window are identical and symmetrical. The window is represented in FIG7 at a sampling rate of 16kHz. It can be observed that the overlapping area is limited to reduce the self-generated delay, and zero padding is also added to counteract the cyclic shift when applying ITD in the frequency domain, which will be explained later.
[0246] 2. Stereo parameters
[0247] The stereo parameters can be transmitted at the maximum possible time resolution of the stereo DFT. At a minimum, they can be reduced to the framing resolution of the core encoder, i.e. 20ms. By default, the parameters are calculated every 20ms in 2 DFT windows when no transients are detected. The parameter bands constitute a non-uniform and non-overlapping decomposition of the spectrum, followed by approximately 2 or 4 times the equivalent rectangular bandwidth (ERB). By default, a 4x ERB scale is used for a total of 12 bands for a frequency bandwidth of 16kHz (32kbps sampling rate, ultra-wideband stereo). Figure 8 outlines an example of a configuration in which the stereo side information is transmitted at approximately 5kbps.
[0248] 3. Calculation of ITD and channel time alignment
[0249] ITD is calculated by estimating the time delay of arrival (TDOA) using the generalized cross correlation with phase transform (GCC-PHAT):
[0250]
[0251] Where L and R are the frequency spectra of the left and right channels, respectively. The frequency analysis can be performed independently of the DFT used for subsequent stereo processing or can be shared. The pseudo program code for calculating ITD is as follows:
[0252] L = fft(window(l));
[0253] R = fft(window(r));
[0254] tmp = L.*conj(R);
[0255] sfm_L=prod(abs(L).^(1 / length(L))) / (mean(abs(L))+eps);
[0256] sfm_R=prod(abs(R).^(1 / length(R))) / (mean(abs(R))+eps);
[0257] sfm=max(sfm_L,sfm_R);
[0258] h.cross_corr_smooth=(1-sfm)*h.cross_corr_smooth+sfm*tmp;
[0259] tmp=h.cross_corr_smooth. / abs(h.cross_corr_smooth+eps);
[0260] tmp=ifft(tmp);
[0261] tmp=tmp([length(tmp) / 2+1:length(tmp)1:length(tmp) / 2+1]);
[0262] tmp_sort=sort(abs(tmp));
[0263] thresh=3*tmp_sort(round(0.95*length(tmp_sort)));
[0264] xcorr_time=abs(tmp(-(h.stereo_itd_q_max-(length(tmp)-1) / 2-1):-(h.stereo_itd_q_min-(length(tmp)-1) / 2-1)));
[0265] %smooth outputfor better detection
[0266] xcorr_time=[xcorr_time 0];
[0267] xcorr_time2=filter([0.250.50.25],1,xcorr_time);
[0268] [m,i]=max(xcorr_time2(2:end));
[0269] ifm>thresh
[0270] itd=h.stereo_itd_q_max-i+1;
[0271] else
[0272] itd=0;
[0273] end
[0274] ITD calculation can also be summarized as follows. The cross-phase relationship is calculated in the frequency domain before smoothing by relying on the spectrum flatness measurement. SFM is delimited between 0 and 1. In the case of a noise-like signal, SFM will be high (i.e., about 1) and smoothing will be weak. In the case of a tone-like signal, SFM will be low and smoothing will become stronger. The smoothed cross-correlation is then normalized by its amplitude before transforming back to the time domain. The normalization corresponds to the phase transformation of the cross-correlation, and is known to show better performance than the general cross-correlation in a low-noise and relatively high-reverberation environment. The time domain function thus obtained is first filtered for achieving a more stable peak peaking. The index corresponding to the maximum amplitude corresponds to an estimate of the time difference (ITD) between the left and right channels. If the amplitude of the maximum value is below a given threshold, the estimate of the ITD is considered unreliable and is set to zero.
[0275] If time alignment is applied in the time domain, the ITD is calculated in a separate DFT analysis. The shift is performed as follows:
[0276]
[0277] It requires an additional delay at the encoder whose maximum value is equal to the maximum absolute ITD that can be handled. The ITD variation over time will be smoothed by the analysis windowing of the DFT.
[0278] Alternatively, time alignment can be performed in the frequency domain. In this case, the ITD calculation and cyclic shift are in the same DFT domain (a domain shared with this other stereo processing). The cyclic shift is given by the following formula:
[0279]
[0280] Zero padding of the DFT window is required for emulating time shifts with cyclic shifts. The size of the zero padding corresponds to the maximum absolute ITD that can be handled. In a preferred embodiment, the zero padding is evenly spaced on both sides of the analysis window by adding 3.125ms of zeros at both ends. The maximum absolute possible ITD is thus 6.25ms. In an AB microphone setup, this corresponds to the worst case maximum distance of about 2.15 meters between the two microphones. The variation of the ITD over time is smoothed by synthetic windowing and overlap-adding of the DFT.
[0281] Importantly, the time shift is followed by windowing of the shifted signal. The main difference from prior art Binaural Cue Coding (BCC) is that the time shift is applied to the windowed signal, which is further windowed at the synthesis stage. Therefore, any change of ITD over time produces artificial transients / clicks in the decoded signal.
[0282] 4. IPD calculation and channel rotation
[0283] The IPD is calculated after time-aligning the two channels, and this is for each parameter band or at least up to a given ipd_maxband, depending on the stereo configuration.
[0284]
[0285] IPD is then applied to both channels to align their phases:
[0286]
[0287] Where β = atan2(sin(IPD i [b]), cos(IPD i [b])+c), and b is the parameter band index belonging to frequency index k. The parameter β is responsible for distributing the amount of phase rotation between the two channels while aligning their phases. β depends on the IPD, but also on the relative amplitude levels ILD of the channels. If a channel has a higher amplitude, it will be considered a leading channel and will be less affected by the phase rotation than a channel with a lower amplitude.
[0288] 5. Sum, difference and side signal coding
[0289] A sum difference transformation is performed on the time and phase aligned spectra of the two channels in such a way that energy is preserved in the intermediate signal.
[0290]
[0291] in Bounded between 1 / 1.2 and 1.2 (ie, -1.58 dB and +1.58 dB). The limit avoids artifacts when adjusting the energies of M and S. Notably, this energy conservation is less important when time and phase are pre-aligned. Alternatively, the bounds may be increased or decreased.
[0292] Use M to further predict the side signal S:
[0293] S′(f)=S(f)-g(ILD)M(f)
[0294] in in Alternatively, the optimal prediction gain g can be found by minimizing the residual mean square error (MSE) and the ILD derived from the previous equation.
[0295] The residual signal S'(f) can be modeled in two ways: by predicting it with the delayed spectrum of M, or by encoding it directly in the MDCT domain.
[0296] 6.Stereo decoding
[0297] The middle signal X and the side signal S are first converted into a left channel L and a right channel R as follows:
[0298] L i [k] = M i [k]+gM i [k], where band_limits[b]≤k<band_limits[b+1],
[0299] R i [k] = M i [k]-gM i [k], where band_limits[b]≤k<band_limits[b+1],
[0300] where the gain g of each parameter band is derived from the ILD parameters:
[0301] in
[0302] For parameter bands below cod_max_band, both channels are updated with the decoded side signals:
[0303] L i [k] = L i [k]+cod_gain i ·S i [k], for 0≤k<band_limits[cod_max_band],
[0304] Where 0≤k<band_limits[cod_max_band],
[0305] For higher parameter bands, the side signals are predicted and the channels are updated as follows:
[0306] L i [k] = L i [k]+cod_pred i [b]·M i-1 [k], where band_limits[b]≤k<band_limits[b+1],
[0307] Where band_limits[b]≤k<band_limits[b+1],
[0308] Finally, the channels are multiplied by complex values with the goal of recovering the original energy and inter-channel phase of the stereo signal:
[0309] L i [k] = a·e j2πβ ·L i [k]
[0310]
[0311] in
[0312]
[0313] where a is defined and bounded as previously defined, and where β = atan2(sin(IPD i [b]), cos(IPD i [b])+c), where atan2(x, y) is the four-quadrant inverse tangent of x to y.
[0314] Finally, the channels are time-shifted in time or in the frequency domain, depending on the transmitted ITD. The time domain channels are synthesized by inverse DFT and overlap-add.
[0315] The encoded audio signal of the present invention may be stored on a digital storage medium or a non-transitory storage medium, or may be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
[0316] Although some aspects have been described in the context of an apparatus, it is apparent that these aspects also represent the description of the corresponding method, where a block or apparatus corresponds to a method step or a feature of a method step. Similarly, the aspects described in the context of a method step also represent the description of the corresponding block or item or feature of the corresponding apparatus.
[0317] Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or software. The implementation can be performed using a digital storage medium having electronically readable control signals stored thereon, such as a floppy disk, DVD, CD, ROM, PROM, EPROM, EEPROM or flash memory, which electronically readable control signals cooperate (or can cooperate) with a programmable computer system to cause the execution of the respective method.
[0318] 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.
[0319] 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.
[0320] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier or a non-transitory storage medium.
[0321] 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.
[0322] A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein.
[0323] Therefore, a further embodiment of the inventive method is 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 transmitted via a data communication connection (eg, via the Internet).
[0324] A further embodiment comprises a processing element (for example, a computer or a programmable logic device) configured or adapted to perform one of the methods described herein.
[0325] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0326] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware device.
[0327] The embodiments described above are merely illustrative of the principles of the present invention. It should be understood that modifications and variations to the configurations and details described herein will be apparent to those skilled in the art. Therefore, it is intended to be limited only by the scope of the appended patent claims, rather than by the specific details presented by way of the description and explanation of the embodiments herein.
Claims
1. An apparatus for encoding a multi-channel audio signal comprising at least two channels, comprising: a multi-channel processor (1010) for applying a joint multi-channel processing to a sequence of blocks of spectral values or a resampled sequence of blocks of spectral values to obtain at least one resulting sequence of blocks of spectral values containing information related to the at least two channels, wherein the blocks of spectral values of the sequence of blocks of spectral values have spectral values up to a maximum input frequency (1211) related to an input sampling rate; a spectral domain resampler (1020) for resampling blocks of the at least one result sequence in the frequency domain or for resampling the sequence of blocks of spectral values of the at least two channels in the frequency domain to obtain a resampled sequence of blocks of spectral values, wherein the blocks of the resampled sequence of blocks of spectral values have spectral values up to a maximum output frequency (1231, 1221) different from the maximum input frequency (1211); and A core encoder (1040) for encoding an output sequence of blocks of sampled values obtained from a resampled sequence of blocks of spectral values, or for encoding a resampled sequence of blocks of spectral values, to obtain an encoded multi-channel audio signal (1510).
2. The device according to claim 1, wherein the spectral domain resampler (1020) is configured for truncating the block of the at least one result sequence in the frequency domain, or truncating the block of spectral values of the at least two channels in the frequency domain for downsampling purposes, or The spectral domain resampler (1020) is configured to zero-pad the blocks of the at least one result sequence in the frequency domain or to zero-pad the blocks of spectral values of the at least two channels in the frequency domain for upsampling purposes.
3. The device according to claim 1, The spectral domain resampler (1020) is configured to scale (1322) spectral values of blocks of at least one resulting sequence of blocks using a scaling factor depending on the maximum input frequency (1211) and depending on the maximum output frequency (1231, 1211).
4. The device as claimed in claim 3, The device comprises a time-spectral converter (1000) for converting a sequence of blocks of sample values of the at least two channels into a frequency domain representation of a sequence of blocks of spectral values of the at least two channels, wherein the blocks of sample values have the input sampling rate and the blocks of spectral values of the sequence of blocks of spectral values have spectral values up to the maximum input frequency (1211) associated with the input sampling rate; wherein the scaling factor is greater than the scaling factor in the case of upsampling, wherein the output sampling rate is greater than the input sampling rate, or wherein the scaling factor is less than the scaling factor in the case of downsampling, wherein the output sampling rate is less than the input sampling rate, or wherein the time-to-frequency converter (1000) is configured to perform the time-to-frequency transform algorithm (1311) without normalization with respect to the total number of spectral values of a block of spectral values, and wherein the scaling factor is equal to the quotient between the number of spectral values of a block of the resampled sequence and the number of spectral values of a block of spectral values before the resampling, and wherein the spectrum-to-time converter (1030) is configured to apply normalization based on the maximum output frequency (1231, 1211).
5. The device according to claim 1, The device comprises a time-to-spectral converter (1000) for converting a sequence of blocks of sample values of the at least two channels into a frequency domain representation of a sequence of blocks of spectral values of the at least two channels, wherein the blocks of sample values have the input sampling rate and the blocks of spectral values of the sequence of blocks of spectral values have spectral values up to the maximum input frequency (1211) associated with the input sampling rate, wherein the time-to-spectrum converter (1000) is configured to perform a discrete Fourier transform algorithm, or wherein the spectrum-to-time converter (1030) is configured to perform an inverse discrete Fourier transform algorithm.
6. The device according to claim 1, The apparatus comprises a spectro-time converter (1030) for converting a resampled sequence of blocks of spectral values into a time domain representation, or for converting at least a resulting sequence of blocks of spectral values into a time domain representation of an output sequence of blocks of sampled values having an associated output sampling rate different from the input sampling rate, wherein the multi-channel processor (1010) is configured to obtain a further resulting sequence of blocks of spectral values, and The spectrum-time converter (1030) is configured to convert the further resulting sequence of spectral values into a further time domain representation (1032) of a further output sequence of blocks of sample values having an associated output sampling rate equal to the input sampling rate.
7. A method for encoding a multi-channel audio signal comprising at least two channels, comprising: applying (1010) a joint multi-channel processing to a sequence of blocks of spectral values or a resampled sequence of blocks of spectral values to obtain at least one resulting sequence of blocks of spectral values containing information related to the at least two channels, wherein the blocks of spectral values of the sequence of blocks of spectral values have spectral values up to a maximum input frequency (1211) related to the input sampling rate; spectral domain resampling (1020) blocks of the at least one result sequence in the frequency domain or resampling the sequence of blocks of spectral values of the at least two channels in the frequency domain to obtain a resampled sequence of blocks of spectral values, wherein the blocks of the resampled sequence of blocks of spectral values have spectral values up to a maximum output frequency (1231, 1221) different from the maximum input frequency (1211); and An output sequence of blocks of sampled values obtained from a resampled sequence of blocks of spectral values is core encoded (1040), or a resampled sequence of blocks of spectral values is core encoded to obtain an encoded multi-channel audio signal (1510).
8. An apparatus for decoding an encoded multi-channel audio signal, comprising: A core decoder (1600) for generating a core-decoded audio signal; a spectral domain resampler (1620) for resampling a block of spectral values of the sequence (1611, 1612) of blocks of spectral values of the core decoded audio signal or at least two resultant sequences (1635) obtained in the frequency domain by inverse multi-channel processing to obtain a resampled sequence (1621) of blocks of spectral values or at least two resampled sequences (1625), wherein the blocks of the resampled sequence have spectral values up to a maximum output frequency (1331) different from a maximum input frequency; as well as A multi-channel processor (1630) for applying an inverse multi-channel process to a sequence (1615) of a sequence of blocks of spectral values or a resampled sequence (1621) of blocks of spectral values of the core decoded audio signal to obtain at least two result sequences (1631, 1632, 1635) of blocks of spectral values.
9. The device as claimed in claim 8, wherein the spectral domain resampler (1620) is configured for truncating the block of the result sequence in the frequency domain or truncating the block of spectral values of the at least two channels in the frequency domain for downsampling purposes, The spectral domain resampler (1620) is configured to zero-pad the blocks of the result sequence in the frequency domain or to zero-pad the blocks of spectral values of the at least two channels in the frequency domain for upsampling purposes.
10. The device according to claim 8, The spectral domain resampler (1620) is configured to scale (1322) spectral values of blocks of the resulting sequence of blocks using a scaling factor depending on the maximum input frequency and depending on the maximum output frequency (1331).
11. The device according to claim 10, The apparatus comprises a time-to-spectral converter (1610) for converting a sequence of blocks of sample values of the core decoded audio signal into a frequency domain representation of a sequence of blocks of spectral values of the core decoded audio signal, wherein the blocks of sample values have an associated input sampling rate, and wherein the blocks of spectral values have spectral values up to the maximum input frequency associated with the input sampling rate, wherein the scaling factor is greater than the scaling factor in the case of upsampling, wherein the output sampling rate is greater than the input sampling rate, or wherein the scaling factor is less than the scaling factor in the case of downsampling, wherein the output sampling rate is less than the input sampling rate, or wherein the time-to-frequency converter (1610) is configured to perform the time-to-frequency transform algorithm (1311) without normalization with respect to the total number of spectral values of a block of spectral values, and wherein the scaling factor is equal to the quotient between the number of spectral values of a block of the resampled sequence and the number of spectral values of a block of spectral values before the resampling, and wherein the spectrum-to-time converter (1640) is configured to apply normalization (1331) based on the maximum output frequency.
12. The device according to claim 11, wherein the time-to-spectrum converter (1610) is configured to perform a discrete Fourier transform algorithm, or wherein the spectrum-to-time converter (1640) is configured to perform an inverse discrete Fourier transform algorithm.
13. The device according to claim 8, The apparatus comprises a time-to-spectral converter (1610) for converting a sequence of blocks of sample values of the core decoded audio signal into a frequency domain representation of a sequence of blocks of spectral values of the core decoded audio signal, wherein the blocks of sample values have an associated input sampling rate, and wherein the blocks of spectral values have spectral values up to the maximum input frequency associated with the input sampling rate, wherein the core decoder (1600) is configured to generate a further core-decoded audio signal (1601) having a further sampling rate different from the input sampling rate, wherein the time-to-spectral converter (1610) is configured to convert the further core decoded audio signal into a frequency domain representation of a further sequence (1611) of blocks of spectral values of the further core decoded audio signal, wherein the blocks of spectral values of the further core decoded audio signal have spectral values up to a further maximum input frequency different from the maximum input frequency and related to the further sampling rate, wherein the spectral domain resampler (1620) is configured to resample the further sequence (1611) of blocks of the further core decoded audio signal in the frequency domain to obtain a further resampled sequence (1621) of blocks of spectral values, wherein the blocks of spectral values of the further resampled sequence have spectral values up to the maximum output frequency (1331) different from the further maximum input frequency; and The apparatus further comprises a combiner (1700) for combining the resampled sequence (1622) and the further resampled sequence (1621) to obtain a sequence (1701) to be processed by the multi-channel processor (1630).
14. A method for decoding an encoded multi-channel audio signal, comprising: generating (1600) a core-decoded audio signal; resampling (1620) a block of spectral values of the sequence (1611, 1612) of blocks of spectral values of the core decoded audio signal or at least two resultant sequences (1635) obtained in the frequency domain by inverse multi-channel processing to obtain a resampled sequence (1621) of blocks of spectral values or at least two resampled sequences (1625), wherein the blocks of the resampled sequences have spectral values up to a maximum output frequency (1331) different from a maximum input frequency; and An inverse multi-channel process is applied (1630) to a sequence (1615) of blocks of spectral values or the resampled sequence (1621) of blocks of spectral values comprising the core decoded audio signal to obtain at least two resulting sequences (1631, 1632, 1635) of blocks of spectral values.
15. A non-transitory computer-readable storage medium storing a computer program, for executing the method according to claim 7 or the method according to claim 14 when the computer program is run on a computer or a processor.
Citation Information
Patent Citations
Polyphonic coding
US5434948A
Parametric stereo upmix apparatus, a parametric stereo decoder, a parametric stereo downmix apparatus, a parametric stereo encoder
US8811621B2
Near-transparent or transparent multi-channel encoder / decoder scheme
WO2006089570A1
Device and method for postprocessing spectral values and encoder and decoder for audio signals
CN101553870A
Audio encoder and decoder for encoding and decoding frames of sampled audio signal
CN102089758A