Audio encoders and decoders
By encoding audio parameters with a modulo-based entropy method using a shared probability table, the inefficiencies in audio coding systems are addressed, resulting in reduced memory and bitrate requirements with maintained quality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- DOLBY INTERNATIONAL AB
- Filing Date
- 2025-04-10
- Publication Date
- 2026-06-17
AI Technical Summary
Existing audio coding systems, particularly object-based systems, face inefficiencies in encoding and decoding audio signals while maintaining quality, with methods like MPEG SAOC relying on assumptions about audio object attributes and requiring high bitrates.
The proposed solution involves encoding audio parameters using a method where each parameter in a vector is represented by an index value, with differences between elements modulo N, and applying entropy encoding to reduce the number of symbols and memory requirements, using a shared probability table for both elements.
This approach reduces memory and encoding complexity, leading to more efficient encoding and decoding with reduced bitrates, while maintaining coding efficiency and quality.
Smart Images

Figure 0007875333000006 
Figure 0007875333000007 
Figure 0007875333000008
Abstract
Description
[Technical Field]
[0001] Cross-references to related applications This application claims the benefits as of the filing date of U.S. Provisional Patent Application No. 61 / 827,264, filed on 24 May 2013. The contents of that application are incorporated herein by reference.
[0002] Technical field This paper broadly relates to audio coding. More specifically, it relates to encoding and decoding of parameter vectors in audio coding systems. This disclosure further relates to methods and apparatus for reconstructing audio objects in audio decoding systems. [Background technology]
[0003] In typical audio systems, a channel-based approach is used. Each channel may represent, for example, the content of a single speaker or a single speaker array. Possible encoding schemes for such systems include discrete multi-channel encoding or parametric encoding such as MPEG surround.
[0004] More recently, a new approach has been developed. This approach is object-based. In a system using an object-based approach, a three-dimensional audio scene is represented by audio objects with associated position metadata. These audio objects move around within the three-dimensional audio scene during audio signal playback. The system may also include so-called bed channels. Bed channels may be described as static audio objects that are directly mapped to the speaker positions of a typical audio system, for example, as described above.
[0005] A potential problem in object-based audio systems is how to efficiently encode and decode audio signals while maintaining the quality of the encoded signals. One possible encoding scheme involves the encoder generating a downmix signal containing several channels from the audio object and bed channels, and the decoder generating side information that allows for the regeneration of the audio object and bed channels.
[0006] MPEG Spatial Audio Object Coding (MPEG SAOC) describes a system for parametric coding of audio objects. This system transmits side information describing the object's attributes, upmix matrix references, and parameters such as the object's level difference and cross-correlation. These parameters are then used by the decoder to control the regeneration of the audio object. This process is mathematically complex and often relies on assumptions about the audio object's attributes that are not explicitly described by the parameters. While the method presented in MPEG SAOC can reduce the required bitrate for object-based audio systems, further improvements may be needed to increase efficiency and quality, as described above. [Brief explanation of the drawing]
[0007] Exemplary embodiments will now be described with reference to the accompanying drawings. [Figure 1] This is a generalized block diagram of an audio encoding system based on an exemplary embodiment. [Figure 2] Figure 1 is a generalized block diagram of an exemplary upmix matrix encoder. [Figure 3]This figure shows an exemplary probability distribution for the first element in the parameter vector corresponding to the elements in the upmix matrix determined by the audio encoding system in Figure 1. [Figure 4] This figure shows an exemplary probability distribution for at least one modulo-differentiated second element in the parameter vector corresponding to an element in the upmix matrix determined by the audio encoding system of Figure 1. [Figure 5] This is a generalized block diagram of an audio decoding system based on an exemplary embodiment. [Figure 6] Figure 5 is a generalized block diagram of the upmix matrix decoder. [Figure 7] This figure shows the encoding method for the second element in the parameter vector corresponding to the element in the upmix matrix determined by the audio encoding system of Figure 1. [Figure 8] This figure shows the encoding method for the first element in the parameter vector corresponding to the elements in the upmix matrix, as determined by the audio encoding system in Figure 1. [Figure 9] This figure shows parts of the encoding method of Figure 7 for the second element in the example parameter vector. [Figure 10] This figure shows parts of the encoding method of Figure 8 for the first element in the example parameter vector. [Figure 11] Figure 1 is a generalized block diagram of a second exemplary upmix matrix encoder. [Figure 12] This is a generalized block diagram of an audio decoding system based on an exemplary embodiment. [Figure 13] This figure shows an encoding method for sparse encoding of rows in an upmix matrix. [Figure 14] This figure shows parts of the encoding method for an exemplary row of the upmix matrix in Figure 10. [Figure 15] FIG. 10 is a diagram showing portions of an encoding method for exemplary rows of an upmix matrix. All drawings are schematic and generally show only those portions necessary to clarify the present disclosure. On the other hand, other portions may be omitted or only suggested. Unless otherwise specified, like reference numerals refer to like parts in different drawings. **DETAILED DESCRIPTION OF THE INVENTION**
[0008] In view of the above, it is an object to provide an encoder, a decoder, and related methods that provide increased efficiency and quality of encoded audio signals.
[0009] <I. Overview - Encoder> According to a first aspect, an exemplary embodiment proposes an encoding method, an encoder, and a computer program product for encoding. The proposed method, encoder, and computer program product may generally have the same features and advantages.
[0010] According to an exemplary embodiment, a method for encoding a vector of parameters in an audio encoding system is provided. Each parameter corresponds to an aperiodic quantity. The vector has a first element and at least one second element. The method includes: representing each parameter in the vector by an index value that can take N values; and associating each of the at least one second element with a symbol, the symbol being calculated by: calculating the difference between the index value of the second element and the index value of its preceding element in the vector; and applying modulo N to the difference. The method further includes encoding each of the at least one second element by entropy encoding the symbol associated with the at least one second element based on a probability table including the probability of the symbol.
[0011] The advantage of this method is that the number of possible symbols is reduced by about half compared to a normal differential encoding strategy where the modulo N is not applied to the difference. As a result, the size of the probability table is reduced by about half. As a result, the memory required to store the probability table is reduced, and since the probability table is often stored in expensive memory in an encoder, the encoder can thus be made less expensive. Further, the speed of searching for symbols in the probability table can be increased. A further advantage is that the encoding efficiency can be increased because all symbols in the probability table are possible candidates to be associated with a particular second element. This can be compared to a normal differential encoding strategy where only about half of the symbols in the probability table are candidates for being associated with a particular second element.
[0012] According to embodiments, the method further includes associating the first element in the vector with a symbol. The symbol is calculated by shifting an index value representing the first element in the vector by an offset value and applying modulo N to the shifted index value. The method further includes encoding the first element by entropy encoding of the symbol associated with the first element using the same probability table used to encode the at least one second element.
[0013] This embodiment uses the fact that the probability distribution of the index value of the first element and the probability distribution of the symbols of the at least one second element are similar but shifted relative to each other by an offset value. As a result, instead of a dedicated probability table, the same probability table can be used for the first element in the vector. As a result, as described above, it can lead to reduced memory requirements and a less expensive encoder.
[0014] According to one embodiment, the offset value is equal to the difference between the most likely index value for the first element and the most likely symbol for at least one second element in the probability table. This means that the peaks of their probability distributions are aligned. As a result, substantially the same coding efficiency is maintained for the first element compared to when a dedicated probability table is used for the first element.
[0015] According to various embodiments, the first element and the at least one second element of the parameter vector correspond to different frequency bands used in the audio encoding system in a particular time frame. That is, data corresponding to multiple frequency bands can be encoded in the same operation. For example, the parameter vector may correspond to upmix or reconstruction factors that vary across multiple frequency bands.
[0016] According to one embodiment, the first element and the at least one second element of the parameter vector correspond to different time frames used in the audio encoding system in a particular frequency band. That is, data corresponding to multiple time frames can be encoded in the same operation. For example, the parameter vector may correspond to upmix or reconstruction factors that vary over multiple time frames.
[0017] According to various embodiments, the probability table is translated into a Huffman codebook, where a symbol associated with an element in the vector is used as a codebook index, and the encoding step includes encoding each of the at least one second element by representing the second element with a codeword in the codebook indexed by the codebook index associated with the second element. Using a symbol as a codebook index can improve the search speed for the codeword representing the element.
[0018] According to various embodiments, the encoding step includes encoding the first element in the vector using the same Huffman codebook used to encode the at least one second element, by representing the first element with a codeword in the Huffman codebook indexed by a codebook index associated with the first element. As a result, only one Huffman codebook needs to be stored in the encoder's memory, which can lead to a less expensive encoder as described above.
[0019] According to one further embodiment, the parameter vector corresponds to elements in an upmix matrix determined by the audio encoding system. This can reduce the bitrate required in the audio encoding / decoding system because the upmix matrix can be efficiently encoded.
[0020] According to an exemplary embodiment, a computer-readable medium is provided having computer code instructions adapted to perform any method of the first aspect when executed on a device having processing capabilities.
[0021] According to an exemplary embodiment, an encoder is provided for encoding a vector of parameters in an audio encoding system. Each parameter corresponds to a non-periodic quantity. The vector has a first element and at least one second element. The encoder has: a receiving component adapted to receive the vector; an indexing component adapted to represent each parameter in the vector by an index value that can take N values; and an association component adapted to associate each of the at least one second element with a symbol. The symbol is calculated by: calculating the difference between the index value of the second element and the index value of its preceding element in the vector; and applying modulo N to the difference. The encoder further has an encoding component for encoding each of the at least one second element by entropy coding the symbol associated with the at least one second element based on a probability table containing the probability of the symbol.
[0022] <II. Overview - Decoder> In a second aspect, exemplary embodiments propose a decoding method, a decoder, and a computer program product for decoding. The proposed method, decoder, and computer program product may generally have the same features and advantages.
[0023] The features and setup advantages presented in the above overview of encoders can generally also be applied to the corresponding features and setups of decoders.
[0024] According to an exemplary embodiment, a method is provided for decoding an entropy-encoded symbol vector in an audio decoding system into a parameter vector relating to a non-periodic quantity. The entropy-encoded symbol vector has a first entropy-encoded symbol and at least one second entropy-encoded symbol, and the parameter vector has a first element and at least one second element. The method includes: representing each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol that can take N integer values by using a probability table; associating the first entropy-encoded symbol with an index value; and associating each of the at least one second entropy-encoded symbol with an index value, wherein the index value of the at least one second entropy-encoded symbol is calculated by: calculating the sum of the index value associated with the entropy-encoded symbol preceding the second entropy-encoded symbol in the vector of entropy-encoded symbols and the symbol representing the second entropy-encoded symbol; and applying modulo N to the sum. The method further includes the step of representing the at least one second element of the parameter vector by a parameter value corresponding to an index value associated with the at least one second entropy-encoded symbol.
[0025] According to an exemplary embodiment, the step of representing each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol is performed using the same probability table for all entropy-encoded symbols in the vector of entropy-encoded symbols. The index value associated with the first entropy-encoded symbol is calculated by: shifting the symbol representing the first entropy-encoded symbol in the vector of entropy-encoded symbols by a certain offset value; and applying modulo N to the shifted symbol. The method further includes the step of representing the first element of the parameter vector by a parameter value corresponding to the index value associated with the first entropy-encoded symbol.
[0026] According to one embodiment, the probability table is translated into a Huffman codebook, and each entropy-encoded symbol corresponds to a codeword in the Huffman codebook.
[0027] In a further embodiment, each codeword in the Huffman codebook is associated with a codebook index, and the step of representing each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol includes representing the entropy-encoded symbol by a codebook index associated with the codeword corresponding to the entropy-encoded symbol.
[0028] According to various embodiments, each entropy-encoded symbol in the vector of entropy-encoded symbols corresponds to a different frequency band used in the audio decoding system in a particular time frame.
[0029] According to one embodiment, each entropy-encoded symbol in the vector of entropy-encoded symbols corresponds to a different time frame used in the audio decoding system in a particular frequency band.
[0030] According to various embodiments, the parameter vector corresponds to an element in the upmix matrix used by the audio decoding system.
[0031] According to an exemplary embodiment, a computer-readable medium is provided having computer code instructions adapted to perform any method of the second aspect when executed on a device having processing capabilities.
[0032] According to an exemplary embodiment, a decoder is provided for decoding an entropy-encoded symbol vector in an audio decoding system into a parameter vector relating to a non-periodic quantity. The entropy-encoded symbol vector has a first entropy-encoded symbol and at least one second entropy-encoded symbol, and the parameter vector has a first element and at least a second element. The decoder includes: a receiving component configured to receive a vector of entropy-encoded symbols; an indexing component configured to represent each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol that can take N integer values using a probability table; and an association component configured to associate the first entropy-encoded symbol with an index value; the association component is further configured to associate each of the at least one second entropy-encoded symbols with an index value, the index value of the at least one second entropy-encoded symbol is calculated by: calculating the sum of the index value of the entropy-encoded symbol preceding the second entropy-encoded symbol in the vector of entropy-encoded symbols and the symbol representing the second entropy-encoded symbol; and applying modulo N to the sum. The decoder further includes a decoding component configured to represent the at least one second element of the parameter vector by a parameter value corresponding to the index value associated with the at least one second entropy-encoded symbol.
[0033] <III. Overview - Sparse Matrix Encoder> In a third aspect, exemplary embodiments propose encoding methods, encoders, and computer program products for encoding. The proposed methods, encoders, and computer program products may generally have the same features and advantages.
[0034] According to an exemplary embodiment, a method for encoding an upmix matrix in an audio encoding system is provided. Each row of the upmix matrix contains M elements that allow for the reconstruction of time / frequency tiles of an audio object from a downmix signal containing M channels. The method comprises, for each row of the upmix matrix: selecting a subset of elements from the M elements of that row of the upmix matrix; representing each element in the selected subset of elements by value and position in the upmix matrix; and encoding the value and position in the upmix matrix of each element in the selected subset of elements.
[0035] In this paper, the term "downmix signal containing M channels" refers to a signal containing M signals or channels, where each channel is a combination of multiple audio objects, each containing the audio object to be reconstructed. The number of channels is typically greater than 1, and often five or more.
[0036] In the context of this paper, the term "upmix matrix" refers to an N-row, M-column matrix that allows for the reconstruction of N audio objects from a downmix signal containing M channels. Each element in a row of the upmix matrix corresponds to a single audio object and provides a coefficient that should be multiplied by the M channels of the downmix to reconstruct that audio object.
[0037] In this paper, the term "position" in an upmix matrix refers to the row and column indices that specify the row and column of a matrix element. The term "position" can also refer to the column index in a given row of an upmix matrix.
[0038] In some cases, sending all elements of the upmix matrix for each time / frequency tile requires an undesirably high bitrate in the audio encoding / decoding system. The advantage of this method is that only a subset of the upmix matrix elements needs to be encoded and transmitted to the decoder. Since less data is transmitted, this can reduce the bitrate required by the audio encoding / decoding system, and the data may be encoded more efficiently.
[0039] An audio encoding / decoding system typically divides the time-frequency space into time / frequency tiles, for example, by applying a filter bank suitable for the input audio signal. A time / frequency tile generally refers to a portion of the time-frequency space corresponding to a given time interval and frequency subband. The time interval typically corresponds to the duration of the time frame used in the audio encoding / decoding system. The frequency subband typically corresponds to one or more neighboring frequency subbands defined by the filter bank used in the encoding / decoding system. If the frequency subband corresponds to several neighboring frequency subbands defined by the filter bank, this allows for non-uniform frequency subbands in the audio signal decoding process, for example, a wider frequency subband for higher frequencies of the audio signal. In the case of broadband, where the audio encoding / decoding system operates over the entire frequency range, the frequency subbands of the time / frequency tile may correspond to the entire frequency range. The above method discloses encoding stages for encoding an upmix matrix in an audio encoding system to allow for the reconstruction of audio objects between one such time / frequency tile. However, it is understood that this method may be repeated for each time / frequency tile of an audio encoding system. It is also understood that several time / frequency tiles may be encoded simultaneously. Typically, neighboring time / frequency tiles may overlap slightly in time and / or frequency. For example, overlap in time may be equivalent to a temporal linear interpolation of the elements of the reconstruction matrix, i.e., from one time interval to the next. However, this disclosure also targets other parts of the encoding / decoding system, and any overlap in time and / or frequency between neighboring time / frequency tiles is left to the implementation of those skilled in the art.
[0040] According to various embodiments, for each row in the upmix matrix, the position of a selected subset of elements in the upmix matrix changes across multiple frequency bands and / or multiple time frames. Therefore, the selection of these elements may depend on a particular time / frequency tile, and thus different elements may be selected for different time / frequency tiles. This provides a more flexible encoding method, which improves the quality of the encoded signal.
[0041] According to various embodiments, the selected subset of elements contains the same number of elements for each row of the upmix matrix. In further embodiments, the number of elements selected may be exactly one. This reduces the complexity of the encoder because the algorithm only needs to select the same number of elements (one or more) for each row, i.e., the most important elements (one or more) when performing the upmix on the decoder side.
[0042] According to various embodiments, for each row in the upmix matrix and for multiple frequency bands or multiple time frames, the values of the elements of a selected subset of the elements form one or more vectors of parameters, each parameter in the vector of parameters corresponds to one of the multiple frequency bands or multiple time frames, and the one or more vectors of parameters are encoded using a method based on the first aspect. In other words, the values of the selected elements can be efficiently encoded. The advantages of the features and setup presented in the overview of the first aspect above may generally also be valid for this embodiment.
[0043] According to various embodiments, for each row in the upmix matrix and for multiple frequency bands or multiple time frames, the positions of elements in a selected subset of elements form one or more vectors of parameters, each parameter in the parameter vectors corresponds to one of the multiple frequency bands or multiple time frames, and the one or more vectors of parameters are encoded using a method based on the first aspect. In other words, the positions of selected elements can be efficiently encoded. The advantages of the features and setup presented in the overview of the first aspect above may generally also be valid for this embodiment.
[0044] According to an exemplary embodiment, a computer-readable medium is provided having computer code instructions adapted to perform any method of the third aspect when executed on a device having processing capabilities.
[0045] According to an exemplary embodiment, an encoder is provided for encoding an upmix matrix in an audio encoding system. Each row of the upmix matrix contains M elements that allow for the reconstruction of time / frequency tiles of an audio object from a downmix signal containing M channels. The encoder comprises: a receiving component adapted to receive each row in the upmix matrix; a selection component adapted to select a subset of elements from the M elements of that row in the upmix matrix; and an encoding component adapted to represent each element in the selected subset of elements by value and position in the upmix matrix, the encoding component further adapted to encode the value and position in the upmix matrix of each element in the selected subset of elements.
[0046] <IV. Overview - Sparse Matrix Decoder> According to a fourth aspect, exemplary embodiments propose a decoding method, a decoder, and a computer program product for decoding. The proposed method, decoder, and computer program product may generally have the same features and advantages.
[0047] The advantages of the features and setups presented in the above overview of sparse matrix encoders can generally also be applied to the corresponding features and setups for decoders.
[0048] According to an exemplary embodiment, a method is provided for reconstructing the time / frequency tile of an audio object in an audio decoding system. The method includes: receiving a downmix signal containing M channels; receiving at least one encoded element representing a subset of M elements in a row of an upmix matrix, each encoded element including a value and a position in that row of the upmix matrix, the position indicating one of the M channels of the downmix signal to which the encoded element corresponds; and reconstructing the time / frequency tile of the audio object from the downmix signal by forming a linear combination of the downmix channels corresponding to the at least one encoded element. In the linear combination, each downmix channel is multiplied by the value of its corresponding encoded element.
[0049] Therefore, according to this method, the time / frequency tiles of the audio object are reconstructed by forming a linear combination of subsets of downmix channels. A subset of downmix channels corresponds to the channel from which the upmix coefficients encoded for it are received. Thus, this method allows for the reconstruction of the audio object despite the fact that only a subset of the upmix matrix, for example a sparse subset, is received. The complexity of the decoding process can be reduced by forming a linear combination of only the downmix channels corresponding to at least one of the encoded elements. An alternative would be to form a linear combination of all downmix signals and then multiply some of them (those not corresponding to at least one of the encoded elements) by the value 0.
[0050] According to various embodiments, the position of the at least one encoded element changes across multiple frequency bands and / or multiple time frames. In other words, different elements of the upmix matrix may be encoded for different time / frequency tiles.
[0051] According to various embodiments, the number of elements in the at least one encoded element is equal to 1. That is, the audio object is reconstructed from one downmix channel in each time / frequency tile. However, the one downmix channel used to reconstruct the audio object may vary between different time / frequency tiles.
[0052] According to various embodiments, for multiple frequency bands or multiple time frames, the value of at least one encoded element forms one or more vectors, each value is represented by an entropy-encoded symbol, each symbol in each vector of entropy-encoded symbols corresponds to one of the multiple frequency bands or one of the multiple time frames, and the one or more vectors of entropy-encoded symbols are decoded using a method based on a second aspect. In this way, the values of the elements of the upmix matrix can be efficiently encoded.
[0053] According to various embodiments, for multiple frequency bands or multiple time frames, the position of at least one encoded element forms one or more vectors, each position is represented by an entropy-encoded symbol, each symbol in each vector of the entropy-encoded symbols corresponds to one of the multiple frequency bands or multiple time frames, and the one or more vectors of the entropy-encoded symbols are decoded using a method based on a second aspect. In this way, the positions of the elements of the upmix matrix can be efficiently encoded.
[0054] According to an exemplary embodiment, a computer-readable medium is provided having computer code instructions adapted to perform any method of the third aspect when executed on a device having processing capabilities.
[0055] According to an exemplary embodiment, a decoder is provided for reconstructing the time / frequency tile of an audio object. The decoder comprises: a receiving component configured to receive a downmix signal having M channels and at least one encoded element representing a subset of M elements in a row of an upmix matrix, each encoded element including a value and a position in that row of the upmix matrix, the position indicating one of the M channels of the downmix signal to which the encoded element corresponds; and a reconstructing component configured to reconstruct the time / frequency tile of the audio object from the downmix signal by forming a linear combination of the downmix channels corresponding to the at least one encoded element. In the linear combination, each downmix channel is multiplied by the value of its corresponding encoded element. [Examples]
[0056] <V. Exemplary Embodiments> Figure 1 shows a generalized block diagram of an audio encoding system 100 for encoding audio objects 104. The audio encoding system has a downmix component 106 that generates a downmix signal 110 from the audio objects 104. The downmix signal 110 may be a 5.1 or 7.1 surround signal that is backward compatible with established sound decoding systems such as Dolby Digital Plus or MPEG standards, such as AAC, USAC, or MP3. In a further embodiment, the downmix signal is not backward compatible.
[0057] Upmix parameters are determined in the upmix parameter analysis component 112 from the downmix signal 110 and the audio object 104 so that the audio object 104 can be reconstructed from the downmix signal 110. For example, the upmix parameters may correspond to elements of an upmix matrix that allows for the reconstruction of the audio object 104 from the downmix signal 110. The upmix parameter analysis component 112 processes the downmix signal 110 and the audio object 104 with respect to individual time / frequency tiles. Thus, the upmix parameters are determined for each time / frequency tile. For example, an upmix matrix may be determined for each time / frequency tile. For example, the upmix parameter analysis component 112 may operate in the frequency domain, such as the quadrature mirror filter (QMF) domain, which allows for frequency-selective processing. For this reason, the downmix signal 110 and the audio object 104 may be converted to the frequency domain by passing them through a filter bank 108. This may be done, for example, by applying a QMF transformation or any other suitable transformation.
[0058] The upmix parameters 114 may be organized in vector format. The vector may represent upmix parameters for reconstructing a particular audio object from audio object 104 in various frequency bands in a particular time frame. For example, the vector may correspond to a matrix element in an upmix matrix, where the vector includes the values of the matrix element for a set of frequency bands. In a further embodiment, the vector may represent upmix parameters for reconstructing a particular audio object from audio object 104 in various time frames in a particular frequency band. For example, the vector may correspond to a matrix element in an upmix matrix, where the vector includes the values of the matrix element for a set of time frames, but in the same frequency band.
[0059] Each parameter in a vector corresponds to a periodic quantity, for example, a quantity that takes values between -9.6 and 9.4. A periodic quantity generally means a quantity whose possible values do not have periodicity. This is in contrast to periodic quantities, such as angles, where there is a clear periodic correspondence between the possible values. For example, angles have a periodicity of 2π, so angle 0 corresponds to angle 2π.
[0060] Next, the upmix parameter 114 is received in vector format by the upmix matrix encoder 102. The upmix matrix encoder is described here in detail in relation to Figure 2. The vector is received by the receiving component 202 and has a first element and at least one second element. The number of elements depends, for example, on the number of frequency bands in the audio signal. The number of elements may also depend on the number of time frames of the audio signal being encoded in a single encoding operation.
[0061] Next, the vector is indexed by an indexing component 204. The indexing component is adapted to represent each parameter in the vector by an index value that can take on a predetermined number of values. This representation can be done in two steps. First, the parameter is quantized, and then the quantized value is indexed by the index value. For example, if each parameter in the vector can take on a value between -9.6 and 9.4, this can be done by using a quantization step of 0.2. The quantized value may then be indexed by indices 0 to 95, i.e., 96 different values. In the following example, the index values are in the range of 0 to 95, but this is of course merely an example, and other ranges of index values, such as 0 to 191 or 0 to 63, are equally possible. Smaller quantization steps may result in a less distorted decoded audio signal on the decoder side, but may also result in a higher bitrate requirement for data transmission between the audio encoding system 100 and the decoder.
[0062] The indexed values are then sent to association component 206. Association component 206 associates each of the at least one second element with a symbol using a modulo difference encoding strategy. Association component 206 is adapted to calculate the difference between the index value of the second element and the index value of the immediately preceding element in the vector. By simply using a normal difference encoding strategy, the difference can be anywhere in the range of -95 to 95, i.e., there are 191 possible values. This means that when the difference is encoded using entropy encoding, a probability table containing 191 probabilities is required, i.e., one probability for each of the 191 possible values for the difference. Furthermore, for each difference, about half of the 191 probabilities are impossible, which reduces the efficiency of encoding. For example, if the second element to be difference encoded has an index value of 90, the possible differences are in the range of -5 to +90. Typically, having an entropy encoding strategy where some of the probabilities for each value to be encoded are impossible reduces the efficiency of encoding. The differential coding strategy in this disclosure overcomes this problem by applying modulo 96 operations to the difference, while simultaneously reducing the number of codes required to 96. Thus, the association algorithm can be expressed as follows:
[0063] Δ idx (b) = (idx(b) - idx(b-1)) mod N Q (Formula 1) Here, b is an element in the differentially encoded vector, and N Q Δ is the number of possible index values. idx (b) is the symbol associated with element b.
[0064] According to some embodiments, the probability table is converted to a Huffman codebook. In this case, the symbol associated with an element in the vector is used as a codebook index. The encoding component 208 can then encode each of the at least one second element by representing the second element with a codeword in the Huffman codebook that is indexed by the codebook index associated with the second element.
[0065] Any other suitable entropy coding strategy may be implemented by the encoding component 208. For example, such an encoding strategy may be a range coding strategy or an arithmetic coding strategy.
[0066] Below, we show that the entropy of the modulo approach is always less than or equal to the entropy of the ordinary difference approach. Entropy of the ordinary difference approach E p teeth
number
[0067] Entropy E in the modulo approach q teeth
number
[0068] Therefore, it is as follows:
number
[0069]
Number
Number
[0070] As shown above, the entropy for the modulo approach is always less than or equal to the entropy for the normal difference approach. The case where the entropies are equal is a rare case where the data being encoded is pathological data, i.e., data with bad behavior, and in most cases, for example, it does not apply to the upmix matrix.
[0071] Since the entropy for the modulo approach is always less than or equal to the entropy for the normal difference approach, the entropy coding of symbols calculated by the modulo approach results in a lower or at least the same bit rate compared to the entropy coding of symbols calculated by the normal difference approach. In other words, the entropy coding of symbols calculated by the modulo approach is usually more efficient than the entropy coding of symbols calculated by the normal difference approach.
[0072] A further advantage is that, as described above, the number of probabilities required in the probability table for the modulo approach is approximately half the number of probabilities required for the normal non - modulo approach.
[0073] The above describes a modulo approach for encoding the at least one second element in the parameter vector. The first element may be encoded using an index value representing the first element. Since the probability distributions of the index value of the first element and the modulo difference value of the at least one second element can be very different (see Figure 3 for the probability distribution of the indexed first element, and Figure 4 for the probability distribution of the symbol for the modulo difference value, i.e., the at least one second element), a dedicated probability table for the first element may be required. This requires that both the audio encoding system 100 and the corresponding decoder have such a dedicated probability table in memory.
[0074] However, the inventors have observed that in some cases the shapes of probability distributions can be very similar, albeit shifted relative to one another. This observation can be used to approximate the probability distribution of an indexed first element by a shifted version of the probability distribution of the symbol for at least one second element. Such a shift may be implemented by the association component 206 associating the first element in the vector with a symbol by shifting the index value representing the first element in the vector by a certain offset value, and then applying modulo 96 (or the corresponding value) to the shifted index value.
[0075] Therefore, the calculation of the symbol associated with the first element is: idx shifted (1) = (idx(1) - abs_offset) mod N Q (Formula 11) It may also be expressed as follows.
[0076] The symbols thus achieved are used by the encoding component 208. The encoding component 208 encodes the first element by entropy coding the symbols associated with the first element using the same probability table used to encode the at least one second element. The offset value may be equal to, or at least close to, the difference between the most likely index value for the first element and the most likely symbol for the at least one second element in the probability table. In Figure 3, the most likely index value for the first element is represented by arrow 302. If the most likely symbol for the at least one second element is 0, the value represented by arrow 302 becomes the offset value used. By using the offset approach, the peaks of the distributions in Figures 3 and 4 are aligned. This approach avoids the need for a dedicated probability table for the first element, thus saving memory in the audio encoding system 100 and the corresponding decoder. On the other hand, it maintains almost the same encoding efficiency as often given by a dedicated probability table.
[0077] If the entropy coding of the at least one second element is performed using a Huffman codebook, the encoding component 208 may encode the first element in the vector using the same Huffman codebook used to encode the at least one second element. This is done by representing the first element with a codeword in the Huffman codebook that is indexed by the codebook index associated with the first element.
[0078] In audio decoding systems, search speed is crucial when encoding parameters; therefore, the memory where the codebook is stored is advantageously high-speed and thus expensive. Consequently, using only one probability table can make the encoder less expensive than one using two probability tables.
[0079] It is worth noting that the probability distributions shown in Figures 3 and 4 are often pre-calculated for the training dataset and therefore not calculated during vector encoding. However, it is certainly possible to calculate the distributions "on the fly" during encoding.
[0080] It should be noted that the above description of audio encoding system 100, which uses a vector from an upmix matrix as the vector of parameters to be encoded, is merely an illustrative use. The method of encoding a vector of parameters according to this disclosure may be used in other applications in audio encoding systems, for example, when encoding other internal parameters in a downmix encoding system, such as parameters used in a parametric bandwidth expansion system such as spectral band replication (SBR).
[0081] Figure 5 is a generalized block diagram of an audio decoding system 500 for regenerating an encoded audio object from an encoded downmix signal 510 and an encoded upmix matrix 512. The encoded downmix signal 510 is received by a downmix receiving component 506, where the signal is decoded and converted to a preferred frequency domain if it is not already in a preferred frequency domain. The decoded downmix signal 516 is then sent to an upmix component 508. In the upmix component 508, the decoded downmix signal 516 and the decoded upmix matrix 504 are used to regenerate the encoded audio object. More specifically, the upmix component 508 may perform a matrix operation in which the decoded upmix matrix 504 is multiplied by a vector containing the decoded downmix signal 516. The decoding process of the upmix matrix is described below. The audio decoding system 500 further includes a rendering component 514 that outputs an audio signal based on a reconstructed audio object 518, depending on the type of playback unit connected to the audio decoding system 500.
[0082] The encoded upmix matrix 512 is received by the upmix matrix decoder 502. This upmix matrix decoder 502 is described here in detail in relation to Figure 6. In the audio decoding system, the upmix matrix decoder 502 is configured to decode an entropy-encoded symbol vector into a parameter vector relating to a non-periodic quantity. The entropy-encoded symbol vector includes a first entropy-encoded symbol and at least one second entropy-encoded symbol, and the parameter vector includes a first element and at least a second element. Thus, the encoded upmix matrix 512 is received in vector format by the receiving component 602. The decoder 502 further has an indexing component 604 configured to represent each entropy-encoded symbol in the vector by a symbol that can take N values, using a probability table. N may be, for example, 96. The association component 606 is configured to associate the first entropy-encoded symbol with an index value by any preferred means, depending on the encoding method used to encode the first element in the parameter vector. Next, the symbol for each of the second codes and the index value for the first code are used by the association component 606. The association component 606 associates each of the at least one second entropy-encoded symbols with an index value. The index value of the at least one entropy-encoded symbol is first calculated by summing the index value associated with the entropy-encoded symbols preceding the second entropy-encoded symbol in the vector of entropy-encoded symbols with the symbol representing the second entropy-encoded symbol. Then, modulo N is applied to the sum. Without loss of generality, suppose the minimum index value is 0 and the maximum index value is N-1, for example 95. Then the association algorithm is: idx(b)=(idx(b-1)+Δ idx (b) mod N Q (Formula 12) It may also be expressed as follows: Here, b is an element in the decoded vector, and N Q This is the number of possible index values.
[0083] The upmix matrix decoder 502 further includes a decode component 608 configured to represent the at least one second element of the parameter vector by a parameter value corresponding to an index value associated with the at least one second entropy-encoded symbol. Thus, this representation is a decoded version of the parameter encoded by the audio encoding system shown in Figure 1, for example. In other words, this representation is equivalent to the quantized parameter encoded by the audio encoding system shown in Figure 1.
[0084] According to one embodiment of the present invention, each entropy-encoded symbol in the vector of entropy-encoded symbols is represented by a symbol using the same probability table for all entropy-encoded symbols in the vector of entropy-encoded symbols. The advantage of this is that only one probability table needs to be stored in the decoder's memory. In audio decoding systems, search speed can be important when decoding entropy-encoded symbols, so the memory where the probability table is stored is advantageously high-speed memory and therefore expensive. Therefore, by using only one probability table, the decoder can be less expensive than when two probability tables are used. According to this embodiment, the association component 606 may be configured to associate the first entropy-encoded symbol with an index value by first shifting the symbol representing the first entropy-encoded symbol in the vector of entropy-encoded symbols by a certain offset value. Then modulo N is applied to the shifted symbol. Therefore, the association algorithm is idx(1)=(idx shifted (1) + abs_offset) mod N Q (Formula 13) It may also be expressed as follows.
[0085] The decoding component 608 is configured to represent the first element of the parameter vector by the parameter value corresponding to the index value associated with the first entropy-encoded symbol. Thus, this representation is the decoded version of the parameter encoded by the audio encoding system 100 shown, for example, in Figure 1.
[0086] The method for differential encoding non-periodic quantities will be further explained in relation to Figures 7 to 10.
[0087] Figures 7 and 9 describe the encoding method for the four second elements in the parameter vector. Thus, the input vector 902 contains five parameters. These parameters can take any value between a minimum and a maximum value. In this example, the minimum value is -9.6 and the maximum value is 9.4. The first step of the encoding method, S702, represents each parameter in vector 902 with an index value that can take N values. In this case, N is chosen to be 96. That is, the quantization step size is 0.2. This gives vector 904. The next step, S704, calculates the difference between each of the four upper parameters in the second element, i.e., vector 904, and its preceding element. Thus, the resulting vector 906 contains four difference values—four upper values in vector 906. As can be seen in Figure 9, these difference values can be negative, zero, or positive. As explained above, it is advantageous to have enough difference values to take N values, in this case 96 values. To achieve this, in the next step S706 of this method, modulo 96 is applied to the second element in vector 906. The resulting vector 908 contains no negative values. The symbols thus achieved shown in vector 908 are then used to encode the second element of the vector in the final step S708 of the method shown in Figure 7. This is done by entropy coding the symbols associated with the at least one second element based on a probability table containing the probabilities of the symbols shown in vector 908.
[0088] As can be seen in Figure 9, the first element is not processed after the indexing step S702. Figures 8 and 10 describe how the first element in the input vector is encoded. The same assumptions made in the above descriptions of Figures 7 and 9 regarding the minimum and maximum values of the parameters and the number of possible index values are valid when describing Figures 8 and 10. The first element 1002 is received by the encoder. In the first step S802 of the encoding method, the parameters of the first element are represented by the index value 1004. In the next step S804, the indexed value 1004 is shifted by an offset value. In this example, the offset value is 49. This value is calculated as described above. In the next step S806, modulo 96 is applied to the shifted index value 1006. The resulting value 1008 is then used to encode the first element by entropy coding of symbol 1008 using the same probability table used to encode the at least one element in Figure 7.
[0089] Figure 11 shows one embodiment 102' of the upmix matrix encoding component 102 in Figure 1. The upmix matrix encoder 102' may be used to encode an upmix matrix in an audio encoding system, for example, the audio encoding system 100 shown in Figure 1. As described above, each row of the upmix matrix contains M elements that allow for the reconstruction of an audio object from a downmix signal containing M channels.
[0090] At low overall target bitrates, encoding and sending all M upmix matrix elements for each object and T / F tile, one by one for each downmix channel, can require undesirably high bitrates. This can be mitigated by "sparsening" the upmix matrix, i.e., by reducing the number of non-zero elements. In some cases, four out of five elements are zero, and a single downmix channel is used as the basis for reconstructing the audio object. Sparse matrices have a different probability distribution of encoded indices (absolute or difference) than non-sparse matrices. If the upmix matrix contains a large proportion of zeros, and the value 0 is more likely than 0.5, and Huffman coding is used, the coding efficiency decreases. This is because the Huffman coding algorithm is inefficient when certain values, such as 0, have a probability greater than 0.5. Furthermore, since many of the elements in the upmix matrix have the value 0, those elements contain no information at all. Therefore, one strategy may be to select a subset of the upmix matrix elements and encode only those, sending them to the decoder. This reduces the amount of data being transmitted, which can lower the bitrate required by the audio encoding / decoding system.
[0091] To increase the efficiency of encoding upmix matrices, dedicated encoding modes for sparse matrices may be used. This will be explained in detail below.
[0092] Encoder 102' has a receiving component 1102 adapted to receive each row in the upmix matrix. Encoder 102' further has a selection component 1104 adapted to select a subset of elements from the M elements of a row in the upmix matrix. In most cases, the subset includes all elements that do not have a value of 0. However, in certain embodiments, the selection component may choose not to select elements that have non-zero values, for example, elements with values close to 0. According to various embodiments, the selected subset of elements may include the same number of elements for each row of the upmix matrix. To further reduce the required bitrate, the number of elements selected may be 1.
[0093] Encoder 102' further includes an encoding component 1106 adapted to represent each element in a selected subset of elements by its value and position in the upmix matrix. Encoding component 1106 is further adapted to encode the value and position in the upmix matrix of each element in a selected subset of elements. Encoding component 1106 may be adapted to encode values using, for example, modulo difference encoding as described above. In this case, for each row in the upmix matrix and for multiple frequency bands or multiple time frames, the values of the elements in the selected subset of elements form one or more vectors of parameters. Each parameter in the vector of parameters corresponds to one of the multiple frequency bands or multiple time frames. The vector of parameters may be encoded using the modulo difference encoding described above. In a further embodiment, the vector of parameters may be encoded using ordinary difference encoding. In yet another embodiment, encoding component 1106 is adapted to encode each value separately using fixed-rate encoding of the true quantized value of each value, i.e., the quantized value that has not been difference-encoded.
[0094] The following examples of average bitrates were observed for typical content. These bitrates were measured for M=5, with 11 audio objects to be reconstructed on the decoder side, 12 frequency bands, a parameter quantizer step size of 0.1, and 192 levels. The following average bitrates were observed when all five elements per row in the upmix matrix were encoded.
[0095] Fixed-rate encoding: 165kb / sec Differential encoding: 51kb / sec Modulo differential coding: 51kb / sec, however, the size of the probability table or codebook is halved as described above.
[0096] For sparse encoding, where only one element is selected by the selection component 1104 for each row in the upmix matrix, the following average bitrates were observed.
[0097] Fixed-rate coding (using 8 bits for value and 3 bits for position): 45kb / sec Modulo differential encoding for both element values and element positions: 20kb / sec.
[0098] The encoding component 1106 may be adapted to encode the position of each element in the upmix matrix in a subset of elements, in the same way as the values. The encoding component 1106 may be adapted to encode the position of each element in the upmix matrix in a subset of elements, in a different way than the encoding of the values. When encoding positions using differential coding or modulo differential coding, for each row in the upmix matrix and for multiple frequency bands or multiple time frames, the positions of the elements in a selected subset of elements form one or more vectors of parameters. Each parameter in the vector of parameters corresponds to one of the multiple frequency bands or multiple time frames. The vector of parameters is encoded using the differential coding or modulo differential coding described above.
[0099] It should be noted that encoder 102' may be combined with encoder 102 in Figure 2 to achieve the modulo difference coding of the sparse upmix matrix described above.
[0100] Furthermore, while the method for encoding rows in a sparse matrix is illustrated above with an example of encoding rows in a sparse upmix matrix, it should be noted that this method may also be used to encode other types of sparse matrices that are well known to those skilled in the art.
[0101] The method for encoding sparse upmix matrices will be explained further in relation to Figures 13 to 15.
[0102] The upmix matrix is received, for example, by the receiving component 1102 in Figure 11. For each row 1402, 1502 in the upmix matrix, the method includes selecting a subset from M, for example, 5 elements of that row in the upmix matrix (S1302). Then, each element in the selected subset of elements is represented by its value and its position in the upmix matrix (S1304). In Figure 14, one element is selected as the above subset (S1302). For example, element number 3 has a value of 2.34. Thus, the representation may be a vector 1404 with two fields. The first field in vector 1404 represents the value, for example, 2.34, and the second field in vector 1404 represents the position, for example, 3. In Figure 15, two elements are selected as the above subset (S1302). For example, element number 3 has a value of 2.34 and element number 5 has a value of -1.81. Therefore, the representation may be a vector 1504 having four fields. The first field in vector 1504 represents the value of the first element, for example, 2.34, and the second field in vector 1504 represents the position of the first element, for example, 3. The third field in vector 1504 represents the value of the second element, for example, -1.81, and the fourth field in vector 1504 represents the position of the second element, for example, 5. Then, representations 1404 and 1504 are encoded according to the above (S1306).
[0103] Figure 12 is a generalized block diagram of an audio decoding system 1200 based on an exemplary embodiment. The decoder 1200 has a receiving component 1206 configured to receive a downmix signal 1210 containing M channels and at least one encoded element 1204 representing a subset of M elements in a row of an upmix matrix. Each encoded element includes a value and a position in that row of the upmix matrix. The position indicates which of the M channels of the downmix signal 1210 corresponds to the encoded element. The at least one encoded element 1204 is decoded by an upmix matrix element decoding component 1202. The upmix matrix element decoding component 1202 is configured to decode the at least one encoded element 1204 according to the encoding strategy used to encode the at least one encoded element 1204. An example of such an encoding strategy is disclosed above. The at least one decoded element 1214 is then sent to a reconstructing component 1208. The reconstruction component 1208 is configured to reconstruct the time / frequency tiles of the audio object from the downmix signal 1210 by forming a linear combination of downmix channels corresponding to at least one encoded element 1204. When forming the linear combination, each downmix channel is multiplied by its corresponding encoded element 1204.
[0104] For example, if the decoded element 1214 contains the value 1.1 and position 2, the time / frequency tile of the second downmix channel is multiplied by 1.1, which is then used to reconstruct the audio object.
[0105] The audio decoding system 500 further includes a rendering component 1216 that outputs an audio signal based on the reconstructed audio object 1218. The type of the audio signal depends on what type of playback unit is connected to the audio decoding system 1200. For example, if a pair of headphones is connected to the audio decoding system 1200, the rendering component 1216 may output a stereo signal.
[0106] <Equivalents, extensions, substitutions, etc.> Further embodiments of the disclosure will become apparent to those skilled in the art upon examination of the above description. While this paper and its drawings disclose embodiments and examples, the disclosure is not limited to these specific examples. Numerous modifications and variations can be made without exceeding the scope of the disclosure as defined by the supplementary claims. Any reference numerals appearing in the claims should not be understood as limiting their scope.
[0107] Furthermore, from an examination of the drawings, this disclosure, and the accompanying claims, modifications to the disclosed embodiments can be understood and implemented by those skilled in the art. In the claims, the words “having / including” do not exclude other elements or steps, and singular expressions do not exclude plurals. The mere fact that certain measures are described in different dependent claims does not imply that combinations of these measures cannot be used advantageously.
[0108] The systems and methods disclosed above may be implemented as software, firmware, hardware, or a combination thereof. In hardware implementations, the division of tasks between the functional units mentioned above does not necessarily correspond to the division into physical units. Conversely, a single physical component may have multiple functions, and a single task may be performed collaboratively by several physical components. Certain or all components may be implemented as software executed by a digital signal processor or microprocessor, or as hardware or as application-specific integrated circuits. Such software may be distributed on computer-readable media, which may include computer storage media (or non-temporary media) and communication media (or temporary media). As is well known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technique for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other media that can be used to store desired information and can be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically include any information delivery media in which computer-readable instructions, data structures, program modules or other data are embodied in modulated data signals such as carrier waves or other transmission mechanisms.
[0109] Several aspects are described below. [Aspect 1] A method for encoding a parameter vector in an audio encoding system, wherein each parameter corresponds to a non-periodic quantity, and the vector has a first element and at least one second element, and the method is: The step of representing each parameter in the vector by an index value that can take on N different values; The step of associating each of the at least one second element with a symbol, wherein the symbol is: The difference between the index value of the second element and the index value of the preceding element in the vector is calculated; The steps are calculated by applying modulo N to the difference; The step of encoding each of the at least one second element by entropy encoding the symbol associated with the at least one second element based on a probability table including the probability of the symbol, method. [Aspect 2] The step of associating the first element in the vector with a symbol, wherein the symbol is: The index value representing the first element in the vector is shifted by a certain offset value; The steps are calculated by applying modulo N to the shifted index value; The process further includes the step of encoding the first element by entropy coding of the symbols associated with the first element using the same probability table used to encode the at least one second element, The method described in Embodiment 1. [Aspect 3] The method according to embodiment 2, wherein the offset value is equal to the difference between the most likely index value for the first element and the most likely symbol for at least one second element in the probability table. [Aspect 4] The method according to any one of embodiments 1 to 3, wherein the first element and the at least one second element of the parameter vector correspond to different frequency bands used in the audio encoding system in a particular time frame. [Aspect 5] The method according to any one of embodiments 1 to 3, wherein the first element and the at least one second element of the parameter vector correspond to different time frames used in the audio encoding system in a particular frequency band. [Aspect 6] The method according to any one of embodiments 1 to 5, wherein the probability table is converted to a Huffman codebook, a symbol associated with an element in the vector is used as a codebook index, and the encoding step comprises encoding each of the at least one second element by representing the second element with a codeword in a codebook indexed by the codebook index associated with the second element. [Aspect 7] The method according to Embodiment 6, by reference to Embodiment 2, wherein the encoding step includes encoding the first element in the vector using the same Huffman codebook used to encode the at least one second element, by representing the first element with a codeword in the Huffman codebook indexed by a codebook index associated with the first element. [Aspect 8] The method according to any one of embodiments 1 to 7, wherein the vector of the parameters corresponds to an element in the upmix matrix determined by the audio encoding system. [Aspect 9] A computer-readable storage medium having computer code instructions adapted to perform the method described in any one of aspects 1 to 8 when executed on a device having processing capabilities. [Aspect 10] An encoder for encoding a parameter vector in an audio encoding system, wherein each parameter corresponds to a non-periodic quantity, and the vector has a first element and at least one second element, and the encoder: A receiving component adapted to receive the aforementioned vector; An indexing component adapted to represent each parameter in the vector by an index value that can take N different values; An association component adapted to associate each of the at least one second element with a symbol, wherein the symbol is: The difference between the index value of the second element and the index value of its preceding element in the vector is calculated; The associated component is calculated by applying modulo N to the difference; The encoding component comprises encoding each of the at least one second element by entropy encoding the symbol associated with the at least one second element based on a probability table including the probability of the symbol, Encoder. [Aspect 11] A method for decoding an entropy-encoded symbol vector in an audio decoding system into a parameter vector relating to a non-periodic quantity, wherein the vector of entropy-encoded symbols has a first entropy-encoded symbol and at least one second entropy-encoded symbol, and the parameter vector has a first element and at least one second element, and the method is: The steps include: representing each entropy-encoded symbol in the vector of entropy-encoded symbols by using a probability table, where each symbol can take on N integer values; The first step of associating the entropy-encoded symbol with an index value; The step includes associating each of the at least one second entropy-encoded symbols with an index value, wherein the index value of the at least one second entropy-encoded symbol is: The sum of the index value associated with the entropy-encoded symbol preceding the second entropy-encoded symbol in the vector of entropy-encoded symbols and the symbol representing the second entropy-encoded symbol is calculated; The steps are calculated by applying modulo N to the sum; The step of representing at least one second element of the parameter vector by a parameter value corresponding to an index value associated with the at least one second entropy-encoded symbol, method. [Aspect 12] The step of representing each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol is performed using the same probability table for all entropy-encoded symbols in the vector of entropy-encoded symbols, wherein the index value associated with the first entropy-encoded symbol is: The symbol representing the first entropy-encoded symbol in the vector of entropy-encoded symbols is shifted by a certain offset value; It is calculated by applying modulo N to the shifted symbols, The method further: The step includes representing the first element of the parameter vector by a parameter value corresponding to an index value associated with the first entropy-encoded symbol, The method described in aspect 11. [Aspect 13] The method according to embodiment 11 or 12, wherein the probability table is converted to a Huffman codebook, and each entropy-encoded symbol corresponds to a codeword in the Huffman codebook. [Aspect 14] The method according to embodiment 13, wherein each codeword in the Huffman codebook is associated with a codebook index, and the step of representing each entropy-encoded symbol in the vector of entropy-encoded symbols by a symbol includes representing the entropy-encoded symbol by a codebook index associated with the codeword corresponding to the entropy-encoded symbol. [Aspect 15] The method according to any one of embodiments 11 to 14, wherein each entropy-encoded symbol in the vector of entropy-encoded symbols corresponds to a different frequency band used in the audio decoding system in a particular time frame. [Aspect 16] The method according to any one of embodiments 11 to 14, wherein each entropy-encoded symbol in the vector of entropy-encoded symbols corresponds to a different time frame used in the audio decoding system in a particular frequency band. [Aspect 17] The method according to any one of embodiments 11 to 16, wherein the vector of parameters corresponds to an element in the upmix matrix used by the audio decoding system. [Aspect 18] A computer-readable storage medium having computer code instructions adapted to perform the method described in any one of aspects 11 to 17 when executed on a device having processing capabilities. [Aspect 19] A decoder for decoding an entropy-encoded symbol vector in an audio decoding system into a parameter vector relating to a non-periodic quantity, wherein the vector of entropy-encoded symbols comprises a first entropy-encoded symbol and at least one second entropy-encoded symbol, and the parameter vector comprises a first element and at least a second element, and the decoder: A receiving component configured to receive the vector of entropy-encoded symbols; An indexing component configured to represent each entropy-encoded symbol in the vector of entropy-encoded symbols by symbols that can take N integer values, using a probability table; An association component configured to associate the first entropy-encoded symbol with an index value, The association component is further configured to associate each of the at least one second entropy-encoded symbols with an index value, the index value of the at least one second entropy-encoded symbol is: The sum of the index value of the entropy-encoded symbol preceding the second entropy-encoded symbol in the vector of entropy-encoded symbols and the symbol representing the second entropy-encoded symbol is calculated; The sum is calculated by applying modulo N to the sum. Associated components and; A decoding component configured to represent at least one second element of the parameter vector by a parameter value corresponding to an index value associated with the at least one second entropy-encoded symbol, decoder. [Aspect 20] A method for encoding an upmix matrix in an audio encoding system, wherein each row of the upmix matrix includes M elements that allow for the reconstruction of time / frequency tiles of audio objects from a downmix signal containing M channels, and the method is: For each row in the aforementioned upmix matrix: Select a subset of elements from the M elements in that row of the aforementioned upmix matrix; Each element in a selected subset of elements is represented by its value and its position in the upmix matrix; This includes encoding the value and position in the upmix matrix of each element in a selected subset of the elements, method. [Aspect 21] The method according to embodiment 20, wherein for each row in the upmix matrix, the position in the upmix matrix of the selected subset element varies across multiple frequency bands and / or multiple time frames. [Aspect 22] The method according to embodiment 20 or 21, wherein the selected subset of elements includes the same number of elements for each row of the upmix matrix. [Aspect 23] The method according to any one of embodiments 20 to 22, wherein for each row of the upmix matrix, a selected subset of elements includes exactly one element from among the M elements of that row in the upmix matrix. [Aspect 24] The method according to any one of embodiments 20 to 23, wherein for each row in the upmix matrix and for a plurality of frequency bands or a plurality of time frames, the values of the elements of a selected subset of the elements form one or more vectors of parameters, each parameter in the vector of parameters corresponds to one of the plurality of frequency bands or a plurality of time frames, and the one or more vectors of parameters are encoded using the method according to any one of embodiments 1 to 8. [Aspect 25] The method according to any one of embodiments 20 to 24, wherein, for each row in the upmix matrix and for a plurality of frequency bands or a plurality of time frames, the positions of the elements of a selected subset of the elements form one or more vectors of parameters, each parameter in the vector of parameters corresponds to one of the plurality of frequency bands or a plurality of time frames, and the one or more vectors of parameters are encoded using the method according to any one of embodiments 1 to 8. [Aspect 26] A computer-readable storage medium having computer code instructions adapted to perform the method described in any one of aspects 20 to 25 when executed on a device having processing capabilities. [Aspect 27] An encoder for encoding an upmix matrix in an audio encoding system, wherein each row of the upmix matrix contains M elements that allow for the reconstruction of time / frequency tiles of audio objects from a downmix signal containing M channels, and the encoder: A receiving component adapted to receive each row in the aforementioned upmix matrix; A selection component adapted to select a subset of elements from the M elements in the row of the aforementioned upmix matrix; The system comprises an encoding component adapted to represent each element in a selected subset of elements by its value and its position in the upmix matrix, the encoding component further adapted to encode the value and its position in the upmix matrix of each element in a selected subset of elements. Encoder. [Aspect 28] A method for reconstructing the time / frequency tiles of an audio object in an audio decoding system, the following: The step of receiving a downmix signal containing M channels; A step of receiving at least one encoded element representing a subset of M elements in a row of an upmix matrix, each encoded element including a value and a position in that row of the upmix matrix, wherein the position indicates one of the M channels of the downmix signal to which the encoded element corresponds; Reconstructing the time / frequency tile of the audio object from the downmix signal by forming a linear combination of the downmix channels corresponding to at least one encoded element, wherein in the linear combination, each downmix channel is multiplied by the value of its corresponding encoded element, method. [Aspect 29] The method according to embodiment 28, wherein the position of the at least one encoded element changes across multiple frequency bands and / or across multiple time frames. [Aspect 30] The method according to embodiment 28 or 29, wherein the number of elements of the at least one encoded element is equal to 1. [Aspect 31] The method according to any one of embodiments 28 to 30, wherein, for multiple frequency bands or multiple time frames, the values of at least one encoded element form one or more vectors, each value is represented by an entropy-encoded symbol, each entropy-encoded symbol in each vector of entropy-encoded symbols corresponds to one of the multiple frequency bands or one of the multiple time frames, and the one or more vectors of entropy-encoded symbols are decoded using the method according to any one of embodiments 11 to 17. [Aspect 32] The method according to any one of embodiments 28 to 31, wherein, for multiple frequency bands or multiple time frames, the positions of at least one encoded element form one or more vectors, each position is represented by an entropy-encoded symbol, each symbol in each vector of entropy-encoded symbols corresponds to one of the multiple frequency bands or multiple time frames, and the one or more vectors of entropy-encoded symbols are decoded using the method according to any one of embodiments 11 to 17. [Aspect 33] A computer-readable storage medium having computer code instructions adapted to perform the method described in any one of aspects 28 to 32 when executed on a device having processing capabilities. [Aspect 34] A decoder that reconstructs the time / frequency tiles of an audio object: A receiving component configured to receive a downmix signal containing M channels and at least one encoded element representing a subset of M elements in a row of an upmix matrix, wherein each encoded element includes a value and a position in that row of the upmix matrix, the position indicating one of the M channels of the downmix signal to which the encoded element corresponds; The system includes a reconstruction component configured to reconstruct the time / frequency tile of the audio object from the downmix signal by forming a linear combination of the downmix channels corresponding to at least one encoded element, wherein in the linear combination, each downmix channel is multiplied by the value of its corresponding encoded element. decoder.
Claims
1. A method for encoding a parameter vector in an audio encoding system, wherein each parameter corresponds to a non-periodic quantity, and the vector has a first element and at least one second element, and the method is: A step of representing each parameter in the vector by an index value that can take on N different values; The step of associating each of the at least one second element with a symbol, wherein the symbol is: The difference between the index value of the second element and the index value of the preceding element in the vector is calculated; The steps are calculated by applying modulo N to the difference; A step of encoding each of the at least one second element by entropy encoding the symbol associated with the at least one second element based on a probability table including the probability of the symbol, wherein the first element and the at least one second element of the parameter vector correspond to different frequency bands used in the audio encoding system in a particular time frame; The step of associating the first element in the vector with a symbol, wherein the symbol is: The index value representing the first element in the vector is shifted by subtracting a certain offset value from the index value; It is calculated by applying modulo N to the shifted index value, The offset value is equal to the difference between the most likely index value for the first element and the most likely symbol for at least one second element in the probability table, in steps; The process includes the step of encoding the first element by entropy coding of the symbol associated with the first element based on a probability table that includes the probability of the symbol, method.
2. The method according to claim 1, wherein the probability table is converted to a Huffman codebook, a symbol associated with an element in the vector is used as a codebook index, and the encoding step comprises encoding each of the at least one second element by representing the second element with a codeword in a codebook indexed by the codebook index associated with the second element.
3. A computer-readable storage medium having computer code instructions adapted to perform the method according to claim 1 or 2 when executed on a device having processing capabilities.