Method and apparatus for truncated predictive coding
Through band channel coherent parameter coding and adaptive inter-frame prediction, the instability problem of the comfortable noise generation method under environmental changes is solved, the separation effect between speech and background noise is improved, and the communication experience is improved.
Patent Information
- Application Number
- CN202411460314.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-05
- Filing Date
- 2019-04-05
- Publication Date
- 2025-01-14
AI Technical Summary
Existing comfortable noise generation methods cannot adapt to environmental changes during speech pauses, resulting in unstable stereo images of background noise, which may cause artifacts and poor audience experiences.
By using a frequency band-based channel coherence parameter encoding method, by forming coherence vectors and encoding using prediction schemes, combining adaptive inter prediction to optimize performance, adapt to changing bit budgets, and variable bit rate encoding when necessary Reduce error propagation.
It realizes a more stable stereo image, reduces the possibility of artifacts appearing, improves the separation effect between voice and background noise, and enhances the communication experience.
Smart Images

Figure CN119314496A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese national phase application (application number 201980031508.9) of the PCT international application entitled “Truncateable Predictive Coding” and application number PCT / EP2019 / 058681 filed on April 5, 2019. Technical Field
[0002] Embodiments related to predictive encoding and decoding, which are generally related to audio signal processing, are disclosed. Background Art
[0003] Although the capacity in telecommunication networks is constantly increasing, it is still of great interest to limit the bandwidth required for each communication channel. A smaller transmission bandwidth for each call allows a mobile network to serve a large number of users in parallel. In addition, reducing the transmission bandwidth results in lower power consumption in both the mobile devices and the base stations of the mobile network. Such lower power consumption results in energy and cost savings for mobile operators, while end users can experience extended battery life and increased talk time.
[0004] One method used to reduce transmission bandwidth in voice communications is to exploit natural pauses in speech. In most conversations, only one speaker is active at a time, and natural pauses in the speaker's speech in one direction will typically take up more than half of the signal. A method of exploiting this property of a typical conversation for the purpose of reducing transmission bandwidth is to employ a discontinuous transmission (DTX) scheme, where no active signal encoding occurs during speech pauses. The DTX scheme is standardized for all 3GPP mobile phone standards, such as 2G, 3G, and VoLTE. The DTX scheme is also commonly used in Voice over IP systems.
[0005] When implementing a DTX scheme, a very low bit rate encoding of the background noise is usually sent to allow a comfort noise generator (CNG) on the receiving end to fill in speech pauses with generated background noise that has similar characteristics to the original background noise. CNG makes the call sound more natural because the generated background noise does not turn on and off with the speech according to the DTX scheme. Complete silence during speech pauses is considered annoying to the listener and often leads to the misinterpretation that the call has been disconnected.
[0006] The DTX scheme also relies on a voice activity detector (VAD) that indicates to the system when to use an active signal coding method or a low-rate background noise coding method. The system can be generalized to discriminate between other source types by using a general sound activity detector (GSAD, also known as SAD), which can not only discriminate speech from background noise, but also detect music or other related signal types.
[0007] Communication services can be further enhanced by supporting stereo or multi-channel audio transmission. In this case, DTX and CNG systems may need to take into account the spatial characteristics of the audio signal in order to provide comfort noise that sounds pleasant. Summary of the invention
[0008] Traditionally, telecommunications utilize a single channel for voice communications, where a single microphone at each communication endpoint is used to capture the sound emitted by the speaker. Therefore, there is a need to enhance the communication experience by providing a more accurate reconstruction of the spatial environment of the speaker. Such an enhancement can increase the intelligibility of speech, as it is easier to separate speech from background noise if the speech and background noise are separated in a spatial manner. In addition, for teleconferencing scenarios with more than two participants, it is beneficial to separate the speakers in the audio space.
[0009] A common comfort noise (CN) generation method used in 3GPP speech codecs is to send information about the energy and spectral shape of the background noise for speech pauses to the receiver. Compared to conventional coding of speech segments, the information about the background noise can be sent using a significantly smaller number of bits.
[0010] At the receiver end, CN is generated by creating a pseudo-random signal and shaping the spectrum of the created signal using a filter based on the received information about the background noise for speech pauses. Such signal generation and spectrum shaping can be done in the time domain or the frequency domain.
[0011] Conventional methods of CN generation for stereo DTX systems use a mono encoder, and the DTX system works separately on each channel. For example, dual mono encoding is used for a two-channel stereo DTX system. Therefore, the energy and spectral shape of the background noise sent to the receiver can be different for the left and right signals. In most cases, the difference in the energy and spectral shape of the background noise sent between the left and right signals may not be very large, and such a difference may cause a significant difference in the degree to which the listener perceives the stereo image of the signal to be "wide". That is, if the pseudo-random signal used to generate the CN is synchronized between the left and right channels, the result will be a stereo signal that sounds very "narrow", giving a sense of the sound originating from inside the listener's head. In contrast, if the pseudo-random signal is not synchronized, the listener will be given the very opposite feeling, that is, a wide signal.
[0012] In most cases, the original background noise will have an energy and spectral shape (also known as a stereo image) that lies between these two extremes (i.e., narrow and wide signals). This results in detectable differences in the stereo image of the background noise when the system switches between active (speech) encoding and inactive (noise) encoding.
[0013] The stereo image of the original background noise may also change during a call. For example, the user may be moving around and / or the environment around the user may be changing. Conventional CN generation methods, such as dual-mono coding systems, do not provide any mechanism to adapt to such changes.
[0014] Another disadvantage of using conventional CN generation methods (such as dual mono encoding) is that the VAD decisions will not be synchronized between channels. For example, when the left channel is encoded using active encoding and the right channel is encoded using low-bitrate CN encoding, this may cause audible artifacts. The lack of synchronization of VAD decisions between channels may cause the pseudo-random signals used to generate CN in the left and right channels to be synchronized at some times and out of sync at other times. As a result, the stereo image of the generated CN may switch between extremely wide and extremely narrow over time.
[0015] As shown above, there is still a need for an improved CN generation method.
[0016] Therefore, certain embodiments disclosed herein provide a method for encoding channel coherence parameters applied on a frequency band basis, wherein the coherence parameters for each frequency band form a coherence vector. The coherence vector is encoded using a prediction scheme and then subjected to variable bit rate entropy encoding. The encoding scheme also improves performance through adaptive inter-frame prediction.
[0017] For example, in one aspect, a method for encoding a vector performed by an encoder is provided. The method includes an encoder forming a prediction weighting factor. For each element of the vector, the encoder forms a first prediction of the vector element and a second prediction of the vector element. The encoder uses the prediction weighting factor to merge the first prediction and the second prediction into a merged prediction. The encoder uses the vector element and the merged prediction to form a prediction residual. The encoder encodes the prediction residual using a variable bit rate scheme. The encoder sends the encoded prediction residual. In some embodiments, the vector is one of a series of vectors. In some embodiments, the encoder reconstructs the vector based on the merged prediction and the reconstructed prediction residual. In some embodiments, the encoder encodes and sends the prediction weighting factor.
[0018] In some embodiments, the first prediction is an intra prediction based on the reconstructed vector element. In such embodiments, the intra prediction is formed by performing a process comprising: selecting a predictor from a set of predictors; applying the selected predictor to the reconstructed vector element; and encoding an index corresponding to the selected predictor.
[0019] In some embodiments, the second prediction is an inter-frame prediction based on one or more vectors previously reconstructed for the series of vectors. In such embodiments, the inter-frame prediction is formed by performing a process comprising: selecting a predictor from a set of predictors; applying the selected predictor to the one or more previously reconstructed vectors; and encoding an index corresponding to the selected predictor. In some embodiments, values from previously reconstructed vectors are used for the inter-frame prediction.
[0020] In some embodiments, the encoder quantizes the prediction residual to form a first residual quantizer index, wherein the first residual quantizer index is associated with the first codeword.
[0021] In some embodiments, encoding the prediction residual using a variable bit rate scheme comprises encoding a first residual quantizer index as a result of determining that the length of the first codeword does not exceed the amount of remaining bits.
[0022] In some embodiments, encoding the prediction residual using a variable bit rate scheme includes: obtaining a second residual quantizer index as a result of determining that the length of the first codeword exceeds the amount of remaining bits, wherein the second residual quantizer index is associated with the second codeword, and wherein the length of the second codeword is shorter than the length of the first codeword. In such an embodiment, the encoder determines whether the length of the second codeword exceeds the determined amount of remaining bits.
[0023] In some embodiments, the encoder is further configured to: receive a first signal on a first input channel; receive a second signal on a second input channel; determine spectral characteristics of the first signal and the second signal; determine spatial coherence based on the determined spectral characteristics of the first signal and the second signal; and determine a vector based on the spatial coherence.
[0024] In some embodiments, the method is performed by an encoder in an audio encoder and decoder system comprising at least two input channels. In some embodiments, the encoder is further configured to create a spectrum by performing a process comprising transforming the input channels and analyzing the input channels in frequency bands. In some embodiments, the vector comprises a set of coherence values, and wherein each value corresponds to a coherence between two of the at least two input channels in a frequency band.
[0025] On the other hand, a method for decoding a vector performed by a decoder is provided. The method includes the decoder obtaining a weighting factor. For each element of the vector, the decoder forms a first prediction of the vector and a second prediction of the vector. The decoder uses the prediction weighting factor to merge the first prediction and the second prediction into a merged prediction. The decoder decodes the received encoded prediction residual. The decoder reconstructs the vector elements based on the merged prediction and the decoded prediction residual. In some embodiments, the vector is one of a series of vectors.
[0026] In some embodiments, the first prediction is an intra prediction based on the reconstructed vector elements. In such embodiments, the intra prediction is formed by performing a process comprising: receiving and decoding a predictor; and applying the decoded predictor to the reconstructed vector elements.
[0027] In some embodiments, the second prediction is an inter-frame prediction based on one or more vectors previously reconstructed for the series of vectors. In such embodiments, the inter-frame prediction is formed by performing a process that may include: receiving and decoding a predictor; and applying the decoded predictor to the one or more previously reconstructed vectors. In some embodiments, values from previously reconstructed vectors are used for the inter-frame prediction.
[0028] In some embodiments, the step of decoding the encoded prediction residual comprises: determining an amount of remaining bits available for decoding; and determining whether decoding the encoded prediction residual exceeds the amount of remaining bits.
[0029] In some embodiments, the step of decoding the encoded prediction residual comprises, as a result of determining that decoding the encoded prediction residual exceeds the amount of remaining bits, setting the prediction residual to zero.
[0030] In some embodiments, decoding the encoded prediction residual comprises deriving the prediction residual based on a residual quantizer index as a result of determining that decoding the encoded prediction residual does not exceed the amount of remaining bits, wherein the residual quantizer index is a quantization of the prediction residual.
[0031] In some embodiments, the step of obtaining the prediction weighting factor comprises (i) deriving the prediction weighting factor or (ii) receiving and decoding the prediction weighting factor.
[0032] In some embodiments, the decoder generates signals for at least two output channels based on the reconstructed vectors.
[0033] In yet another aspect, an encoder is provided that includes processing circuitry. The processing circuitry is configured to cause the encoder to: form a weighting factor; form a first prediction of a vector element; form a second prediction of the vector element; and merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor. The processing circuitry is further configured to cause the encoder to: form a prediction residual using the vector element and the merged prediction; encode the prediction residual using a variable bit rate scheme; and transmit the encoded prediction residual.
[0034] In yet another aspect, a decoder is provided that includes a processing circuit. The processing circuit is configured to cause the decoder to: obtain a weighting factor; form a first prediction of a vector element; form a second prediction of the vector element; and merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor. The processing circuit is also configured to cause the decoder to: decode a received encoded prediction residual; and reconstruct the vector element based on the merged prediction and the decoded prediction residual.
[0035] Embodiments disclosed herein provide prediction and residual coding that provide rate scalability suitable for variable bit budgets. Relative to the prediction scheme, the residual coding can be truncated. Adaptive inter-frame prediction finds a balance between the advantages of inter-frame redundancy while minimizing the risk of error propagation in the event of frame loss. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate various embodiments.
[0037] Figure 1 A stereo encoding and decoding system according to some embodiments is shown.
[0038] Figure 2 A stereo encoding and decoding system according to some embodiments is shown.
[0039] Figure 3 is a flow chart illustrating an encoding process according to some embodiments.
[0040] Figure 4 A truncation scheme according to some embodiments is shown.
[0041] Figure 5 is a flow chart illustrating a decoding process according to some embodiments.
[0042] Figure 6 is a flow chart illustrating a process according to one embodiment.
[0043] Figure 7 is a flow chart illustrating a process according to one embodiment.
[0044] Figure 8is a block diagram of an encoder according to one embodiment.
[0045] Fig. 9 is a block diagram of a decoder according to one embodiment.
[0046] Fig.10 is a diagram showing functional units of an encoder according to one embodiment.
[0047] Fig.11 is a diagram showing functional units of a decoder according to one embodiment. DETAILED DESCRIPTION
[0048] One way to achieve a spatial representation of a signal is to use multiple microphones and encode the stereo or multi-channel signal. Figure 1 A diagram of a parametric stereo encoder 102 and a decoder 104 is shown. The encoder 102 performs an analysis of an input channel pair 106A-106B and obtains a parametric representation of a stereo image by parametric analysis 108 and reduces the channels to a single channel by downmix 110, thereby obtaining a downmix signal. The downmix signal is encoded by a mono encoder 112 using a mono encoding algorithm and the parametric representation of the stereo image is encoded by a parameter encoder 114. The encoded downmix signal and the parametric representation of the stereo image are transmitted via a bitstream 116. The decoder 104 employs a mono decoder 118 to apply a mono decoding algorithm and obtain a synthesized downmix signal. The parametric decoder 120 decodes the received parametric representation of the stereo image. The decoder 104 transforms the synthesized downmix signal into a synthesized channel pair by parametric synthesis 122 using the decoded parametric representation of the stereo image.
[0049] Figure 2 2 shows a parametric stereo encoding and decoding system 200 according to some embodiments. Figure 2 As shown, the parametric stereo encoding and decoding system 200 includes: a mono encoder 112, which includes a CNG encoder 204; and a mono decoder 118, which includes a CNG decoder 206. In some embodiments, the input signal 106A-106B includes a signal represented as The channel pairs of and Respectively for frames Sample index of The input signal of the left and right channels is at the sampling frequency In length The samples are processed in frames of 10 samples, where the length of the frame may include overlap, such as look-ahead and memory of past samples.
[0050] The parametric stereo encoding and decoding system 200 also includes a coherence analysis 202 in the parametric analysis 108 and a coherence synthesis 208 in the parametric synthesis 122. The parametric analysis 108 includes the ability to analyze the coherence of the input signals 106A-106B. When the mono encoder 112 is configured to be used as a CNG encoder 204, the parametric analysis 108 can analyze the input signals 106A-106B. In some embodiments, the input signals 106A-106B can be transformed into the frequency domain with the aid of, for example, DFT or any other suitable filter bank or transforms such as QMF, hybrid QMF and MDCT. In some embodiments, the DFT or MDCT transform can be used to transform the input signals 106A-106B into the frequency domain. In such embodiments, the input signals 106A-106B are typically windowed before the transform. The choice of window depends on various parameters, such as time and frequency resolution characteristics, algorithm delay (overlap length), reconstruction properties, etc. As an example, by The DFT transform of the channel pair represented is given by:
[0051]
[0052] For frequency Vocal tract coherence The general definition of is given by:
[0053]
[0054] in and represents the power spectrum of the two channels 106A-106B, and is the cross power spectrum. In an exemplary DFT-based solution, the channel coherence spectrum can be represented by the DFT spectrum given by:
[0055]
[0056] in represents the complex conjugate. To reduce the number of bits required to encode the coherence value, the spectrum is divided into sub-bands (also referred to as coherence bands). In some embodiments, the bandwidth of the sub-bands is configured to match the perceived frequency resolution, with a narrow bandwidth for low frequencies and an increased bandwidth for higher frequencies. It is noted that throughout the specification, the terms channel coherence and spatial coherence are used interchangeably.
[0057] The analysis of the coherence thus provides a value for each sub-band, forming a vector of coherence values ,in is the number of coherent frequency bands, is the frequency band index, and is the frame index. Then the coherence value Encoded for storage or transmission to a decoder. In some embodiments, the power spectrum may be averaged or low-pass filtered over time to form a more stable estimate of the power spectrum. More details on coherence analysis are described in International Application Publication WO 2015 / 122809.
[0058] When decoding a CNG frame, the decoder 104 generates two CNG frames corresponding to the two synthesized channels 210A-210B. In some embodiments, the two CNG frames are generated to have minimum coherence / correlation. According to some embodiments, such a CNG frame with minimum coherence / correlation can be generated by operating the CNG decoder 206 twice with the same parameters but using two different pseudo-random number generators. In some embodiments, two CNG frames with minimum coherence / correlation can be generated by applying a decorrelator function that modifies the fine structure of the CNG frame while maintaining minimal impact on the amplitude spectrum. Then, the target coherence is obtained by merging the two generated CNG signals using the method described in International Application Publication WO 2015 / 122809.
[0059] The proposed solution disclosed herein is applicable to stereo encoder and decoder architectures that take into account channel coherence in a channel pair or to multi-channel encoders and decoders. Figure 2 According to some embodiments, the mono encoder 112 may include a stereo encoder VAD. The stereo encoder VAD may indicate to the CNG encoder 204 that the signal contains background noise, thereby activating the CNG encoder 204. Therefore, the CNG analysis including the coherence analysis 202 is activated in the parameterized analysis 108, and the mono encoder 112 starts the CNG encoder 204. As a result, the encoded representation of the coherence and the mono CNG are bundled together in the bitstream 116 for transmission and / or storage. The decoder 104 identifies the stereo CNG frames in the bitstream 116, decodes the mono CNG and the coherence value, and synthesizes the target coherence, such as described in International Application Publication No. WO 2015 / 122809.
[0060] The disclosed embodiments described herein relate to encoding and decoding of coherence values for CNG frames.
[0061] The encoding of the coherence vector described in this paper takes into account the following properties: (1) It can adapt to changing bit budgets per frame. encoding, (2) the coherence vectors show strong inter-frame similarity, and (3) for lost frames, the error propagation should be kept low.
[0062] In order to address the varying bit budget per frame, a coarse-fine coding strategy is implemented. More specifically, coarse coding is first implemented at a low bit rate, and when the bit limit is reached, the subsequent fine coding can be truncated.
[0063] In some embodiments, coarse encoding is performed using a prediction scheme. In such embodiments, the predictor is targeted at increasing frequency bands. Working along the coherence vector, each coherence value is estimated based on the previous value of the vector. That is, intra prediction of the coherence vector is performed and is given by:
[0064]
[0065] Each predictor set Depend on predictors, each of which includes each frequency band predictor coefficients, where and indicates the total number of predictor sets. As shown above, when When , there is no previous value and the intra prediction of coherence is zero. As an example, when there are six coherent bands ( ), the number of predictor sets Given by:
[0066] .
[0067] As another example, the total number of predictor sets may be four, i.e. , which indicates that 2 bits can be used to signal the selected predictor set. In some embodiments, the predictor sets used can be sequentially addressed. The predictor coefficients are stored in in a single vector.
[0068] Figure 3 3 is a flow chart showing an encoding process 301 according to some embodiments. The encoding process 301 may be performed by the encoder 102 according to the following steps:
[0069] In step 300, for each frame , the bit variable (also called the bit counter) used to track the bits consumed by the encoding is initialized to zero ( ). The encoding algorithm receives the coherence vector to be encoded ( ), the previously reconstructed coherence vector ( ) and the bit budget In some embodiments, the bits consumed in the previous encoding step may be included in and In such an embodiment, the bit budget in the following algorithm can be given by Given.
[0070] In step 310, from the available predictors Select the set of predictors that gives the smallest prediction error The selected set of predictors is given by
[0071] .
[0072] In some embodiments, is omitted from the predictor set because the prediction is zero and the contribution to the error will be the same for all predictor sets. The selected predictor set index is stored and the bit counter ( ) increases with the number of bits required, e.g. if two bits are required to encode the predictor set, then .
[0073] In step 320, the prediction weighting factor is calculated The prediction weighting factors are used to create weighted predictions, as described in step 360 below. The prediction weighting factors need to be available in the decoder 104. In some embodiments, the prediction weighting factors is encoded and sent to the decoder 104. In such an embodiment, the bit counter ( ) increases the amount of bits required to encode the prediction weighting factors. In other embodiments, the decoder may derive the prediction weighting factors based on other parameters already available in the decoder 104.
[0074] In step 330, for each frequency band , perform the following steps:
[0075] In step 340, the intra-frame prediction value is obtained For the first frequency band ( ), there is no previously encoded coherence value. In some embodiments, the intra prediction for the first band may be set to zero, In some embodiments, the intra prediction for the first band may be set to the average value , .
[0076] In some alternative embodiments, the coherence value of the first frequency band may be encoded separately. In such an embodiment, the first value is encoded using a scalar quantizer to produce a reconstructed value Therefore, the intra prediction for the first band can be set to the reconstructed value, . Set the bit counter Increase the number of bits required to encode the coherence value of the first frequency band. For example, if 3 bits are used to encode the coherence value of the first frequency band, then add 3 bits to the current number of bits consumed by encoding, e.g. .
[0077] For the remaining frequency band , intra prediction Based on the previously encoded coherence value, i.e. .
[0078] In step 350, an inter-frame prediction value is obtained based on previously reconstructed coherence vector elements from one or more previous frames. In the case of a stable or slowly changing background noise, the coherence band value The inter-frame variation of will be small. Therefore, inter-frame prediction using values from previous frames will usually be a good approximation, which produces a small prediction residual and a small residual coding bit rate. As an example, the prediction for the band The final reconstructed value is used for inter-frame prediction, that is, The inter-frame linear predictor considering two or more previous frames can be formulated as ,in Indicates the frame All frequency bands is a column vector of inter-frame prediction coherence values, Indicates the frame All frequency bands The reconstructed coherence value of It is across Linear predictor coefficients for the previous frames. Can be selected from a predefined set of predictors , in this case, an index is needed that can be transmitted to the decoder to indicate the predictor used.
[0079] In step 360, based on intra-frame prediction , inter-frame prediction and the prediction weighting factor To form a weighted prediction In some embodiments, the weighted prediction is Given.
[0080] In step 370, the prediction residual is calculated and encoded. In some embodiments, the prediction residual is calculated based on the coherence vector and the weighted prediction, i.e. In some embodiments, a scalar quantizer is used to quantize the prediction residual into an index In such an embodiment, the index is represented by Given, where is a scalar quantizer function with a suitable range. Table 1 below shows an example of a scalar quantizer. Table 1 shows an example of a reconstruction level and a quantizer index for a prediction residual.
[0081]
[0082] Table 1
[0083] In some embodiments, a variable length codeword scheme is used to encode the index , this variable length codeword scheme consumes fewer bits for smaller values. Some examples for encoding the prediction residual are Huffman coding, Golomb-Rice coding, and unary coding (unary coding is the same as Golomb-Rice coding with a divisor of 1). In the step of encoding the prediction residual, the remaining bit budget ( ). If the same as the index The length of the corresponding codeword fits within the remaining bit budget, i.e. , then select the index As the final index If the remaining bits are insufficient to index In some embodiments, the bit rate truncation strategy includes encoding the maximum possible residual value, assuming that smaller residual values cost fewer bits. Such a rate truncation strategy can be implemented by Figure 4 This is achieved by reordering the codebook as shown in Table 400 in FIG. Figure 4 An exemplary quantizer table 400 with a unary codeword mapping for the scalar quantizer example shown in Table 1 is shown. In some embodiments, bit rate truncation can be achieved by advancing upward in table 400 in steps of 2 until codeword 0 is reached. That is, Figure 4 A truncation scheme is shown moving upward from long codewords to shorter codewords. To maintain the correct sign of the reconstructed value, each truncation step is performed two steps on table 400, indicated by the dashed and solid arrows for negative and positive values, respectively. By moving upward in table 400 in steps of 2, a new truncated codebook index can be found . Continue searching upward until you meet Or has reached the top of the table 400.
[0084] If the length of the codeword determined by the upward search does not exceed the bit budget, the final index is selected and will Output to the bitstream and form the reconstructed residual based on the final index, i.e. .
[0085] If after searching upwards, the length of the codeword still exceeds the bit budget, , then this means the bit limit has been reached, In this case, the reconstructed residual is set to zero, , and no index is added to the bitstream. Since the decoder maintains a synchronized bit counter , so the decoder can detect this situation and use No explicit signaling is required.
[0086] In an alternative embodiment, if the length of the codeword associated with the initial index exceeds the bit budget, the residual value is immediately set to zero, thereby abandoning the upward search described above. This may be beneficial if computational complexity is critical.
[0087] In step 380, a reconstructed coherence value is formed based on the reconstructed prediction residual and the weighted prediction ,Right now .
[0088] The bit counter is incremented accordingly in step 390. As described above, throughout the encoding process 301, the bit counter is incremented.
[0089] In some embodiments, the inter-frame changes in the coherence vector are small. Therefore, inter-frame prediction using previous frame values is usually a good approximation, which produces a small prediction residual and a small residual coding bit rate. In addition, the prediction weighting factor Used to balance bit rate and frame loss resilience.
[0090] Figure 5 is a flow chart showing a decoding process 501 according to some embodiments. The decoding process 501 corresponding to the encoding process 301 may be performed by the decoder 104 according to the following steps:
[0091] In step 500, a bit counter configured to track bits consumed during the decoding process 501 is Initialized to zero, that is For each frame , the decoder 104 obtains the final reconstructed coherence vector Copies and bit budget .
[0092] In step 510, the selected predictor set is decoded from the bitstream 116 The bit counter increases by the amount of bits required to decode the selected predictor set. For example, if two bits are required to decode the selected predictor set, the bit counter Add 2, that is .
[0093] In step 520, prediction weighting factors corresponding to the weighting factors used in encoder 102 are derived. .
[0094] For each frequency band in step 530 , perform the following steps:
[0095] In step 540, the intra-frame prediction value is obtained The intra prediction for the first frequency band is obtained similarly to step 340 of the encoding process 301. Therefore, the intra prediction for the first frame can be set to zero ( ),average value ( ), or the coherence value of the first band may be decoded from the bitstream 116, and the intra prediction for the first frame may be set to the reconstructed value ( ). If the coherence value of the first band is decoded, the bit counter Increase the number of bits required for decoding. For example, if three bits are needed to decode the coherence value for the first band, increase the bit counter by Add 3, that is .
[0096] For the remaining frequency bands , intra prediction is based on the previously decoded coherence value, i.e. .
[0097] In step 550, the inter-frame prediction value is obtained similarly to step 350 of the encoding process 301. As an example, the frequency band The final reconstructed value of is used for inter-frame prediction, i.e. .
[0098] In step 560, based on intra-frame prediction , inter-frame prediction and the prediction weighting factor To form a weighted prediction In some embodiments, the weighted prediction is Given.
[0099] In step 570, the reconstructed prediction residual If the bit counter Below the bit limit, i.e. , then the reconstructed prediction residual is derived from the available quantizer indices If the bit counter equals or exceeds the bit limit, the reconstructed prediction residual is set to zero, i.e. .
[0100] In step 580, the coherence value is reconstructed based on the reconstructed prediction residual and the weighted prediction ,Right now In step 590, the bit counter is incremented.
[0101] In some embodiments, further enhancement of CNG may be required in the encoder. In such an embodiment, the local decoder will use the reconstructed coherence value Run in the encoder.
[0102] Figure 6 is a flow chart showing a process 600 performed by the encoder 102 to encode a vector according to some embodiments. The process 600 may begin at step s602, in which the encoder forms a prediction weighting factor. For each element of the vector, the following steps s604 to s614 may be repeated. In step s604, the encoder forms a first prediction of the vector element. In step s606, the encoder forms a second prediction of the vector element. In step s608, the encoder merges the first prediction and the second prediction into a merged prediction using the prediction weighting factor. In step s610, the encoder uses the vector element and the merged prediction to form a prediction residual. In step s612, the encoder encodes the prediction residual using a variable bit rate scheme. In step s614, the encoder reconstructs the vector element based on the merged prediction and the reconstructed prediction residual. In step s616, the encoder sends the encoded prediction residual. In some embodiments, the encoder also encodes the prediction weighting factor and sends the encoded prediction weighting factor.
[0103] In some embodiments, the first prediction is an intra prediction based on the reconstructed vector element. In such embodiments, the intra prediction is formed by performing a process comprising: selecting a predictor from a set of predictors; applying the selected predictor to the reconstructed vector element; and encoding an index corresponding to the selected predictor.
[0104] In some embodiments, the second prediction is an inter-frame prediction based on one or more vectors previously reconstructed for a series of vectors. In such embodiments, the inter-frame prediction is formed by performing a process comprising: selecting a predictor from a set of predictors; applying the selected predictor to the one or more previously reconstructed vectors; and encoding an index corresponding to the selected predictor. In embodiments, where the inter-frame prediction is based on only one previously reconstructed vector, the value from the previously reconstructed vector may be used for the inter-frame prediction, i.e., for band b, for band a, the value from the previously reconstructed vector may be used for the inter-frame prediction. The final reconstructed value (ie, vector element) of can be used for inter-frame prediction value.
[0105] In some embodiments, process 600 includes a further step in which the prediction residual is quantized to form a first residual quantizer index, wherein the first residual quantizer index is associated with the first codeword.
[0106] In some embodiments, encoding the prediction residual using a variable bit rate scheme comprises encoding a first residual quantizer index as a result of determining that the length of the first codeword does not exceed the amount of remaining bits.
[0107] In some embodiments, the step of encoding the prediction residual using a variable bit rate scheme includes: as a result of determining that the length of the first codeword exceeds the amount of remaining bits, obtaining a second residual quantizer index, wherein the second residual quantizer index is associated with the second codeword, and wherein the length of the second codeword is shorter than the length of the first codeword. In such an embodiment, process 600 includes another step in which the encoder determines whether the length of the second codeword exceeds the determined amount of remaining bits.
[0108] In some embodiments, process 600 includes another step in which the encoder receives the first signal on a first input channel, receives the second signal on a second input channel, determines spectral characteristics of the first signal and the second signal, determines spatial coherence based on the determined spectral characteristics of the first signal and the second signal, and determines a vector based on the spatial coherence.
[0109] In some embodiments, process 600 is performed by an encoder in an audio encoder and decoder system including at least two input channels. In some embodiments, process 600 includes a further step in which the encoder creates a spectrum by performing a process including transforming the input channels and analyzing the input channels in frequency bands. In some embodiments, the vector includes a set of coherence values, and wherein each value corresponds to a coherence between two input channels of the at least two input channels in a frequency band.
[0110] Figure 7is a flow chart illustrating a process 700 performed by the decoder 104 to decode a vector according to some embodiments. The process 700 may begin at step s702, in which the decoder obtains a prediction weighting factor. The following steps s704 to s712 may be repeated for each element of the vector. In step s704, the decoder forms a first prediction for the vector element. In step s706, the decoder forms a second prediction for the vector element. In step s708, the decoder merges the first prediction and the second prediction into a merged prediction using the prediction weighting factor. In step s710, the decoder decodes the received encoded prediction residual. In step s712, the decoder reconstructs the vector element based on the merged prediction and the prediction residual. In some embodiments, the vector is one of a series of vectors.
[0111] In some embodiments, the first prediction is an intra prediction based on the reconstructed vector elements. In such embodiments, the intra prediction is formed by performing a process comprising: receiving and decoding a predictor; and applying the decoded predictor to the reconstructed vector elements.
[0112] In some embodiments, the second prediction is based on an inter-prediction of one or more vectors previously reconstructed for the series of vectors. In such embodiments, the inter-prediction is formed by performing a process that may include: receiving and decoding a predictor; and applying the decoded predictor to the one or more previously reconstructed vectors. In embodiments, where the inter-prediction is based on only one previously reconstructed vector, values from that previously reconstructed vector may be used for the inter-prediction, i.e., for band b, for band a, values from that previously reconstructed vector may be used for the inter-prediction. The final reconstructed value (ie, vector element) of can be used for inter-frame prediction value.
[0113] In some embodiments, the step of decoding the encoded prediction residual comprises: determining an amount of remaining bits available for decoding; and determining whether decoding the encoded prediction residual exceeds the amount of remaining bits.
[0114] In some embodiments, the step of decoding the encoded prediction residual comprises, as a result of determining that decoding the encoded prediction residual exceeds the amount of remaining bits, setting the prediction residual to zero.
[0115] In some embodiments, decoding the encoded prediction residual comprises deriving the prediction residual based on a residual quantizer index as a result of determining that decoding the encoded prediction residual does not exceed the amount of remaining bits, wherein the residual quantizer index is a quantization of the prediction residual.
[0116] In some embodiments, the step of obtaining the prediction weighting factor comprises (i) deriving the prediction weighting factor or (ii) receiving and decoding the prediction weighting factor.
[0117] In some embodiments, process 700 further comprises the step of: the decoder generating signals for at least two output channels based on the reconstructed vectors.
[0118] Figure 8 is a block diagram of an encoder 102 according to some embodiments; Figure 8 As shown, the encoder 102 may include: a processing circuit (PC) 802, which may include one or more processors (P) 855 (e.g., a general-purpose microprocessor and / or one or more other processors, such as an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.); a network interface 848, including a transmitter (Tx) 845 and a receiver (Rx) 847, for enabling the encoder 102 to send data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which the network interface 848 is connected; a circuit 803 (e.g., a radio transceiver circuit including Rx 805 and Tx 806), coupled to an antenna system 804 for wireless communication with a UE; and a local storage unit (also referred to as a "data storage system") 808, which may include one or more non-volatile storage devices and / or one or more volatile storage devices (e.g., a random access memory (RAM)). In an embodiment where the PC 802 includes a programmable processor, a computer program product (CPP) 841 may be provided. The CPP 841 includes a computer readable medium (CRM) 842 storing a computer program (CP) 843 including computer readable instructions (CRI) 844. The CRM 842 may be a non-transitory computer readable medium, such as (but not limited to), a magnetic medium (e.g., a hard disk), an optical medium, a memory device (e.g., a random access memory, a flash memory), etc. In some embodiments, the CRI 844 of the computer program 843 is configured so that when executed by the data processing device 802, the CRI causes the encoder 102 to perform the steps described herein (e.g., the steps described herein with reference to the flowcharts and / or message flow diagrams). In other embodiments, the encoder 102 may be configured to perform the steps described herein without requiring code. That is, for example, the PC 802 may consist of only one or more ASICs. Therefore, the features of the embodiments described herein may be implemented in hardware and / or software.
[0119] In an embodiment, the encoder 102 includes a processing circuit 802 configured to cause the encoder to form a prediction weighting factor, and for each element of a vector: form a first prediction of the vector element; form a second prediction of the vector element; form a prediction weighting factor; and merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor. The processing circuit is also configured to cause the encoder to: form a prediction residual using the vector element and the merged prediction; encode the prediction residual using a variable bit rate scheme; and transmit the encoded prediction residual.
[0120] Fig. 9 is a block diagram of decoder 104 according to some embodiments. Fig. 9 As shown, the decoder 104 may include: a processing circuit (PC) 902, which may include one or more processors (P) 955 (e.g., a general-purpose microprocessor and / or one or more other processors, such as an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.); a network interface 948, including a transmitter (Tx) 945 and a receiver (Rx) 947, for enabling the decoder 104 to send data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which the network interface 948 is connected; a circuit 903 (e.g., a radio transceiver circuit including Rx 905 and Tx 906), coupled to an antenna system 904 for wireless communication with a UE; and a local storage unit (also referred to as a "data storage system") 908, which may include one or more non-volatile storage devices and / or one or more volatile storage devices (e.g., a random access memory (RAM)). In an embodiment where the PC 902 includes a programmable processor, a computer program product (CPP) 941 may be provided. The CPP 941 includes a computer readable medium (CRM) 942 storing a computer program (CP) 943 including computer readable instructions (CRI) 944. The CRM 942 may be a non-transitory computer readable medium, such as (but not limited to), a magnetic medium (e.g., a hard disk), an optical medium, a memory device (e.g., a random access memory, a flash memory), etc. In some embodiments, the CRI 944 of the computer program 943 is configured so that when executed by the data processing device 902, the CRI causes the decoder 104 to perform the steps described herein (e.g., the steps described herein with reference to the flowcharts and / or message flow diagrams). In other embodiments, the decoder 104 may be configured to perform the steps described herein without requiring code. That is, for example, the PC 902 may consist of only one or more ASICs. Therefore, the features of the embodiments described herein may be implemented in hardware and / or software.
[0121] In an embodiment, the decoder 104 includes a processing circuit 902 configured to cause the decoder to obtain a weighting factor, and for each element of a vector: form a first prediction of the vector element; form a second prediction of the vector element; obtain a prediction weighting factor; and merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor. The processing circuit is also configured to cause the decoder to: decode a received encoded prediction residual; and reconstruct the vector element based on the merged prediction and the decoded prediction residual.
[0122] Fig.10 is a diagram illustrating functional units of encoder 102 according to some embodiments. Fig.10 As shown, the encoder 102 includes: a first forming unit 1002, used to form a first prediction of a vector element; a second forming unit 1004, used to form a second prediction of the vector element; a third forming unit 1006 and an encoding unit 1008, used to form and encode a prediction weighting factor; a merging unit 1010, used to merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor; a fourth forming unit 1012, used to form a prediction residual using the vector element and the merged prediction; an encoding unit 1014, used to encode the prediction residual using a variable bit rate scheme; and a sending unit 1016, used to send the encoded prediction weighting factor and the encoded prediction residual.
[0123] Fig.11 is a diagram illustrating functional units of decoder 104 according to some embodiments. Fig.11 As shown, the decoder 104 includes: a first forming unit 1102, used to form a first prediction of a vector element; a second forming unit 1104, used to form a second prediction of the vector element; an obtaining unit 1106, used to obtain a prediction weighting factor; a merging unit 1108, used to merge the first prediction and the second prediction into a merged prediction using the prediction weighting factor; a receiving unit 1110 and a decoding unit 1112, used to receive and decode the encoded prediction residual; and a reconstruction unit 1114, used to reconstruct the vector element based on the merged prediction and the prediction residual.
[0124] Now, here is a collection of example embodiments to further describe the concepts presented herein.
[0125] A1. A method for encoding a vector, the method comprising:
[0126] forming a first prediction of a vector;
[0127] forming a second prediction of the vector;
[0128] forming and encoding prediction weighting factors;
[0129] combining the first forecast and the second forecast into a combined forecast using a forecast weighting factor;
[0130] forming a prediction residual using the vector and the merged prediction;
[0131] encoding the prediction residual using a variable bit rate scheme; and
[0132] The coded prediction weighting factors and the coded prediction residual are sent.
[0133] A2. The method of embodiment A1, wherein the vector is one of a series of vectors.
[0134] A3. The method according to embodiment A2, further comprising:
[0135] The vector is reconstructed based on the merged prediction and the reconstructed prediction residual.
[0136] A4. The method of embodiment A3, wherein the first prediction is an intra prediction based on the reconstructed vector.
[0137] A5. The method of embodiment A2 or A4, wherein the second prediction is an inter-frame prediction based on one or more vectors previously reconstructed for the series of vectors.
[0138] A6. The method of embodiment A4, wherein the intra prediction is formed by performing a process comprising the following operations:
[0139] Select a predictor from a set of predictors;
[0140] applying the selected predictor to the reconstructed vector; and
[0141] The index corresponding to the selected predictor is encoded.
[0142] A7. The method of embodiment A5, wherein the inter-frame prediction is formed by performing a process comprising the following operations:
[0143] Select a predictor from a set of predictors;
[0144] applying the selected predictor to the one or more previously reconstructed vectors; and
[0145] The index corresponding to the selected predictor is encoded.
[0146] A8. The method according to any one of embodiments A1 to A7, further comprising:
[0147] The prediction residual is quantized to form a first residual quantizer index, wherein the first residual quantizer index is associated with the first codeword.
[0148] A9. The method of embodiment A8, wherein encoding the prediction residual using a variable bit rate scheme comprises:
[0149] determining an amount of remaining bits available for encoding; and
[0150] It is determined whether the length of the first codeword exceeds the amount of remaining bits.
[0151] A10. The method of embodiment A9, wherein encoding the prediction residual using a variable bit rate scheme comprises:
[0152] As a result of determining that the length of the first codeword does not exceed the amount of remaining bits, a first residual quantizer index is encoded.
[0153] A11. The method of embodiment A9, wherein encoding the prediction residual using a variable bit rate scheme comprises:
[0154] As a result of determining that the length of the first codeword exceeds the amount of remaining bits, obtaining a second residual quantizer index, wherein the second residual quantizer index is associated with a second codeword, and wherein the length of the second codeword is less than the length of the first codeword; and
[0155] It is determined whether the length of the second codeword exceeds the determined amount of remaining bits.
[0156] A12. The method according to any one of embodiments A1 to A11, further comprising:
[0157] receiving a first signal on a first input channel;
[0158] receiving a second signal on a second input channel;
[0159] determining spectral characteristics of the first signal and the second signal;
[0160] determining a spatial coherence based on the determined spectral characteristics of the first signal and the second signal; and
[0161] The vector is determined based on the spatial coherence.
[0162] A13. The method of any one of embodiments A1 to A11, wherein the method is performed in an audio encoder and decoder system comprising at least two input channels.
[0163] A14. The method according to embodiment A13, further comprising:
[0164] The spectrum is created by performing a process including transforming the input channels and analyzing the input channels in frequency bands.
[0165] A15. The method of embodiment A14, wherein the vector comprises a set of coherence values, and wherein each value corresponds to a coherence between two input channels of the at least two input channels in a frequency band.
[0166] B1. A method for decoding a vector, the method comprising:
[0167] forming a first prediction of a vector;
[0168] forming a second prediction of the vector;
[0169] Obtaining prediction weighting factors;
[0170] combining the first forecast and the second forecast into a combined forecast using a forecast weighting factor;
[0171] receiving and decoding the encoded prediction residual; and
[0172] The vector is reconstructed based on the merged prediction and the prediction residual.
[0173] B2. The method of embodiment B1, wherein the vector is one of a series of vectors.
[0174] B3. The method according to embodiment B1 or B2, wherein the first prediction is an intra prediction based on the reconstructed vector.
[0175] B4. The method of embodiment B2 or B3, wherein the second prediction is an inter-frame prediction based on one or more vectors previously reconstructed for the series of vectors.
[0176] B5. The method of embodiment B3, wherein the intra prediction is formed by performing a process comprising the following operations:
[0177] receiving and decoding a predictor; and
[0178] The decoded predictor is applied to the reconstructed vector.
[0179] B6. The method of embodiment B4, wherein the inter-frame prediction is formed by performing a process comprising the following operations:
[0180] receiving and decoding a predictor; and
[0181] The decoded predictor is applied to the one or more previously reconstructed vectors.
[0182] B7. The method according to any one of embodiments B1 to B6, wherein decoding the encoded prediction residual further comprises:
[0183] determining an amount of remaining bits available for decoding; and
[0184] It is determined whether decoding the encoded prediction residual exceeds the amount of remaining bits.
[0185] B8. The method according to embodiment B7, wherein decoding the encoded prediction residual further comprises:
[0186] As a result of determining that decoding the encoded prediction residual exceeds the amount of remaining bits, the prediction residual is set to zero.
[0187] B9. The method according to embodiment B7, wherein decoding the encoded prediction residual further comprises:
[0188] As a result of determining that decoding the encoded prediction residual does not exceed the amount of remaining bits, a prediction residual is derived based on a residual quantizer index, wherein the residual quantizer index is a quantization of the prediction residual.
[0189] B10. The method of any one of embodiments B1 to B9, wherein the step of obtaining the prediction weighting factor comprises one of the following operations: (i) deriving the prediction weighting factor; and (ii) receiving and decoding the prediction weighting factor.
[0190] B11. The method according to any one of embodiments B1 to B10, further comprising:
[0191] Signals for at least two output channels are generated based on the reconstructed vectors.
[0192] In addition, although various embodiments of the present disclosure are described herein, it should be understood that they are merely presented as examples rather than limitations. Therefore, the breadth and scope of the present disclosure should not be limited by any of the above-mentioned exemplary embodiments. In addition, any combination of the above-mentioned elements with all possible variations thereof is included in the present disclosure, unless otherwise indicated or otherwise explicitly conflicting with the context.
[0193] In addition, although the process described above and shown in the drawings is shown as a series of steps, this is only for illustrative purposes. Therefore, it is contemplated that some steps may be added, some steps may be omitted, the order of steps may be rearranged, and some steps may be performed in parallel.
Claims
1. A method for audio encoding, comprising: detecting that an audio frame of the audio signal includes background noise; After detecting that the audio frame includes background noise, generating a coded comfort noise generation (CNG) frame for use by a comfort noise generator at a receiver to generate comfort noise to fill a pause, wherein generating the coded CNG frame comprises: obtaining a coherence vector associated with the audio frame of the audio signal, wherein, for each frequency band included in the set of frequency bands, the coherence vector comprises a coherence value for the frequency band; For each frequency band in the set of frequency bands: Obtaining intra-frame prediction of the coherence value of the frequency band; Obtaining an inter-frame prediction of a coherence value of the frequency band; calculating a weighted prediction of the coherence value for the frequency band using: i) an intra prediction of the coherence value for the frequency band, ii) an inter prediction of the coherence value for the frequency band, and iii) a weighting factor; forming a prediction residual using the coherence value for the frequency band and a weighted prediction of the coherence value for the frequency band; and encoding the prediction residual using a variable bit rate scheme; The encoded CNG frame is transmitted or stored, wherein the encoded CNG frame includes an encoded prediction residual.
2. The method according to claim 1, wherein: The coherence vector is one of a series of coherence vectors.
3. The method according to claim 1, further comprising: A reconstructed coherence value is generated based on the weighted prediction and the reconstructed prediction residual.
4. The method according to claim 3, wherein: The intra prediction is based on the reconstructed coherence value.
5. The method according to claim 2, wherein: The set of frequency bands is an ordered set of frequency bands including a first frequency band followed by a second frequency band, and inter-frame prediction of coherence of the first frequency band is based on a reconstructed coherence value associated with the first frequency band.
6. The method according to claim 4, wherein: Obtaining the intra prediction includes: selecting an intra predictor from a set of intra predictors; applying the selected intra predictor to the reconstructed coherence value; and encoding an index corresponding to the selected intra predictor, wherein the encoded CNG frame includes the encoded index.
7. The method according to claim 6, wherein: Forming the prediction residual includes calculating: C-Cpred, where C is the coherence value of the frequency band and Cpred is a weighted prediction of the coherence value of the frequency band.
8. The method according to claim 5, wherein: The inter-frame prediction is formed by performing a process comprising the steps of: selecting a predictor from a set of predictors; applying the selected predictor to one or more previously reconstructed vectors; and encoding an index corresponding to the selected predictor.
9. The method according to claim 1, further comprising: encoding the weighting factors; and including the encoded weighting factors in the bitstream.
10. The method according to claim 1, wherein: The encoded CNG frame further comprises an encoded intra-frame predictor and / or an encoded inter-frame predictor.
11. The method according to claim 1, wherein: Obtaining inter-frame prediction of the coherence value of the frequency band includes obtaining inter-frame prediction of the coherence value of the frequency band using the selected predictor and two or more reconstructed coherence values, the method also includes encoding an index representing the selected predictor, and the encoded CNG frame includes the encoded index.
12. The method according to claim 1, wherein: The set of frequency bands is an ordered set of frequency bands including a first frequency band followed by a second frequency band, and intra prediction of a coherence value of the first frequency band has a zero value or has an average value.
13. The method according to claim 12, wherein: Intra prediction of the coherence value of the second frequency band is based on previously encoded coherence values.
14. A method for obtaining a coherence vector associated with a comfort noise generation (CNG) frame of an audio signal, the coherence vector comprising a set of reconstructed coherence values, wherein: Each reconstructed coherence value is associated with a different frequency band from a set of frequency bands, the method comprising: obtaining weighting factors; and For each frequency band in the set of frequency bands: Obtaining intra-frame prediction values; Obtaining inter-frame prediction values; calculating a weighted prediction of the coherence value of the frequency band using: i) the intra prediction value, ii) the inter prediction value, and iii) the weighting factor; decoding the received encoded prediction residual; and The weighted prediction and the decoded prediction residual are used to obtain a reconstructed coherence value for the frequency band.
15. The method according to claim 14, wherein: The coherence vector is one of a series of coherence vectors.
16. The method according to claim 14, wherein: The intra prediction value is based on the reconstructed coherence value.
17. The method according to claim 16, wherein: The intra prediction value is obtained by performing a process comprising the steps of: receiving and decoding a predictor; and applying the decoded predictor to the reconstructed coherence value.
18. The method according to claim 15, wherein: The inter-frame prediction value is based on one or more vectors previously reconstructed for the series of coherence vectors.
19. The method according to claim 18, wherein: Values from previously reconstructed vectors are used for the inter prediction.
20. The method according to claim 18, wherein: The inter-frame prediction value is obtained by performing a process comprising the steps of: receiving an encoded predictor; decoding the encoded predictor to produce a decoded predictor; and applying the decoded predictor to the one or more previously reconstructed vectors.
21. The method according to claim 14, wherein: The step of obtaining the weighting factor comprises one of: (i) deriving the weighting factor, and (ii) receiving an encoded weighting factor and decoding the encoded weighting factor.
22. The method of claim 14, further comprising: Signals for at least two output channels are generated based on the reconstructed vectors.
23. An encoder comprising a processing circuit, the processing circuit being configured to cause the encoder to perform a method comprising the steps of: detecting that an audio frame of the audio signal includes background noise; After detecting that the audio frame includes background noise, a coded comfort noise generation (CNG) frame is generated for use by a comfort noise generator at the receiver to generate comfort noise to fill a pause, wherein: Generating the encoded CNG frame comprises: obtaining a coherence vector associated with the audio frame of the audio signal, wherein, for each frequency band included in the set of frequency bands, the coherence vector comprises a coherence value for the frequency band; For each frequency band in the set of frequency bands: Obtaining intra-frame prediction of the coherence value of the frequency band; Obtaining an inter-frame prediction of a coherence value of the frequency band; calculating a weighted prediction of the coherence value for the frequency band using: i) an intra prediction of the coherence value for the frequency band, ii) an inter prediction of the coherence value for the frequency band, and iii) a weighting factor; forming a prediction residual using the coherence value for the frequency band and a weighted prediction of the coherence value for the frequency band; and encoding the prediction residual using a variable bit rate scheme; The encoded CNG frame is transmitted or stored, wherein the encoded CNG frame includes an encoded prediction residual.
24. A decoder comprising a processing circuit configured to cause the decoder to perform a method for obtaining a coherence vector associated with a comfort noise generation (CNG) frame of an audio signal, the coherence vector comprising a set of reconstructed coherence values, wherein: Each reconstructed coherence value is associated with a different frequency band from a set of frequency bands, the method comprising: obtaining weighting factors; and For each frequency band in the set of frequency bands: Obtaining intra-frame prediction values; Obtaining inter-frame prediction values; calculating a weighted prediction of the coherence value of the frequency band using: i) the intra prediction value, ii) the inter prediction value, and iii) the weighting factor; decoding the received encoded prediction residual; and The weighted prediction and the decoded prediction residual are used to obtain a reconstructed coherence value for the frequency band.
Citation Information
Patent Citations
Comfort noise generation
WO2015122809A1