Decoder for decoding weight parameter of neural network, encoder, method and encoded representation using probability estimation parameter
Patent Information
- Application Number
- JP2025030998
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-04-14
- Filing Date
- 2025-02-28
- Publication Date
- 2025-08-07
- Estimated Expiration
- 2041-04-13
AI Technical Summary
There is a need for an improved method for encoding and decoding neural network parameters that balances compression, complexity, and computational cost effectively.
The use of a decoder based on an encoded bitstream for neural network parameters, employing context-dependent arithmetic decoding, such as CABAC, to decode weight parameters of a neural network, along with the use of probability estimation parameters for adaptive encoding and decoding.
This approach enables efficient encoding and decoding of neural network parameters, improving compression efficiency while reducing computational resources and transmission requirements.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] Embodiments according to the present invention include an encoder that encodes weight parameters of a neural network, a decoder, a method, and an encoded representation that uses probability estimation parameters.
Background Art
[0002] The following provides background information for a better understanding of the present invention. However, it should be noted that the features, functions, and details described in the background information may be optionally used, either individually or in combination, in any embodiment of the present invention.
[0003] A neural network, in its most basic form, for example, consists of a series of affine transformations followed by an element-wise non-linear function. For example, as shown in FIG. 1, they can be represented as a directed acyclic graph.
[0004] FIG. 1 shows an example of a graphical representation of a feedforward neural network. Specifically, this two-layer neural network is a non-linear function that maps a 4-dimensional input vector to a solid line.
[0005] For example, each node is associated with a specific value that is propagated forward to the next node by multiplication with the respective weight value of the edge. Next, all input values are simply aggregated.
[0006] Mathematically, the neural network in FIG. 1 calculates the output in the following way, for example. output = L 2 (L 1 (input)) Here, L i (X) = N i (B i (X)) where, i B iis, for example, some non - linear function of layer i. B i A simple example of i i is the matrix multiplication of the weight parameter (edge weight) w associated with layer i and the input X. i B i (X) = w 2 *X The operator * shall denote matrix multiplication.
[0007] The so - called convolutional layers can also be used, for example, by casting them as matrix - matrix products as described in Non - Patent Document 1. Hereinafter, the procedure for calculating the output from a given input is called inference. Also, the intermediate results are called hidden layers or hidden activation values, which consist of, for example, linear transformation + element - wise non - linearity such as the above - mentioned calculation of the first inner product + non - linearity.
[0008] In the following, the bias and batch normalization of the neural network will be described. More advanced variants of the affine transformation of the neural network layer include, for example, the so - called bias and batch normalization operations as follows. Equation 1: 2 In the formula, b represents the bias, and μ, σ 2 , γ, and β represent the batch normalization parameters. W is, for example, a weight matrix having dimensions n×k, and X is, for example, an input matrix having dimensions k×m. The bias b and the batch normalization parameters μ, σ 2 , γ, and β are, for example, transposed vectors of length n. The operator * denotes matrix multiplication. Note that all other operations (addition, multiplication, division) on matrices with vectors are, for example, element - wise operations on the columns of the matrix. For example, X·γ means that each column of X is multiplied element - wise by γ.
[0009] ε is a small scalar number (such as 0.001) that is necessary (or useful) to avoid division by zero. However, it may also be zero. If all vector elements of b are equal to zero, Equation 1 refers to the batch normalization layer. In contrast, when all vector elements of ε as well as μ and β are set to zero and all elements of γ and σ 2 are set to 1, a layer without batch normalization (bias only) is processed.
[0010] Typically, since a neural network may contain, for example, millions of parameters, it may require, for example, hundreds of megabytes for its representation. Therefore, its inference procedure involves, for example, the calculation of many inner product operations between large matrices, and thus its execution requires high computational resources. Therefore, it is very important to reduce the complexity of performing these inner products.
[0011] As another result, encoding and / or decoding neural network parameters is difficult. For example, a large transmission rate may be required to transmit millions of parameters of a neural network.
Prior Art Documents
Non-Patent Documents
[0012]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0013] Therefore, there is a need for an improved concept for encoding and / or decoding neural network parameters that provides a good compromise between compression, complexity, and computational cost.
Means for Solving the Problems
[0014] This is achieved by the subject matter of the independent claims of the present application.
[0015] Further embodiments according to the invention are defined by the subject matter of the dependent claims of the present application.
[0016] An embodiment according to the invention includes a decoder that decodes weight parameters of a neural network, and the decoder is based on an encoded bitstream to obtain a plurality of neural network parameters, for example, components w of matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or at least one of β. Further, the decoder uses context-dependent arithmetic decoding, for example, context-adaptive binary arithmetic decoding (CABAC), to decode neural network parameters, for example, components w of matrix W of the neural network i , or b, or μ, or σ 2 , or σ, or γ, or β, for example, to decode a quantized version of the neural network parameters. Optionally, the probability of a bin value may be determined for different contexts, for example, each bin is associated with a context. Further, the decoder includes one or more probability estimation parameters, for example, probability estimator parameters, for example, N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k , initVal i kFor example, for arithmetic decoding of bins of the numerical representation of neural network parameters, based on one or more previously decoded neural network parameters or their bins, a probability estimate value, such as P(t) or p, which may be associated with a context, can be used. k configured to obtain. Additionally, the decoder is configured to use different probability estimation parameter values for decoding different neural network parameters and / or to use different probability estimation parameter values for decoding bins associated with different context models, such as c k configured to use different probability estimation parameter values for decoding bins associated with k .
[0017] A further embodiment according to the present invention includes a decoder for decoding weight parameters of a neural network. The decoder is configured to obtain at least one of a plurality of neural network parameters, such as components w i of the matrix W of the neural network, b, μ, σ 2 σ, γ, and / or β, based on the encoded bitstream. Further, the decoder is configured to decode neural network parameters, such as components w i of the matrix W of the neural network, or b, or μ, or σ 2 or σ, or γ, or β, for example, a quantized version of the neural network parameters, using context-dependent arithmetic decoding, such as context-adaptive binary arithmetic coding (CABAC). Optionally, the probability of a bin value may be determined for different contexts, for example, each bin is associated with a context. Further, the decoder is configured to use one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k b i k a k d i k A, m i k n i k sh ik and initVal i k are used to obtain, for example, probability estimates that may be associated with a context, such as P(t) or p, for example, for arithmetic decoding of bins of a numerical representation of neural network parameters, based on, for example, one or more previously decoded neural network parameters or bins thereof. k In addition, the decoder is configured to use different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network.
[0018] Embodiments according to the present invention include an encoder that encodes weight parameters of a neural network, the encoder being configured to obtain at least one of a plurality of neural network parameters, such as components w i of matrix W of the neural network, b, μ, σ 2 , σ, γ, and / or β. Further, the encoder is configured to encode neural network parameters, such as components w i of matrix W of the neural network, or b, or μ, or σ 2 , or σ, or γ, or β, for example, a quantized version thereof, using context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC). Optionally, the probability of a bin value may be determined for different contexts, for example, each bin is associated with a context. In addition, the encoder includes one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k and initVal i kFor use in, for example, optionally arithmetic encoding of a numerical representation of neural network parameters based on one or more previously encoded neural network parameters or bins thereof, a probability estimate value that can be associated with a context, such as P(t) or p k is configured to obtain. Further, the encoder is configured to use different probability estimation parameter values for encoding different neural network parameters and / or different context models, such as c k is configured to use different probability estimation parameter values for encoding bins associated with.
[0019] A further embodiment according to the present invention includes an encoder for encoding weight parameters of a neural network, the encoder being configured to obtain a plurality of neural network parameters, such as components w of a matrix W of a neural network i , b, μ, σ 2 , σ, γ, and / or β. Further, the encoder is configured to encode neural network parameters, such as components w of a matrix W of a neural network, using context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC) i , or b, or μ, or σ 2 , or σ, or γ, or β, for example, a quantized version thereof. Optionally, the probability of a bin value may be determined for different contexts, for example, each bin is associated with a context. Further, the encoder includes one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k , initVal ik Using, for example, one or more previously encoded neural network parameters or bins thereof, for arithmetic coding optionally of a bin of a numerical representation of neural network parameters, a probability estimate value that may be associated with a context, e.g., P(t) or p k is configured to obtain. Additionally, the encoder is configured to use different probability estimation parameter values for encoding of neural network parameters associated with different layers of the neural network.
[0020] Embodiments according to the present invention include a method for decoding weight parameters of a neural network, the method comprising, based on an encoded bitstream, obtaining a plurality of neural network parameters, e.g., components w of a matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or β, and the method includes decoding at least one of the neural network parameters, e.g., components w of a matrix W of the neural network, using context-dependent arithmetic decoding, e.g., using context-adaptive binary arithmetic coding (CABAC) i , or b, or μ, or σ 2 , or σ, or γ, or β, e.g., a quantized version of the neural network parameters. Optionally, the probability of a bin value is determined for different contexts, e.g., each bin may be associated with a context. Further, the method includes one or more probability estimation parameters, e.g., probability estimator parameters, e.g., N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k , initVal i kUsing, for example, one or more previously decoded neural network parameters or bins thereof, for arithmetic decoding, for example, of bins of a numerical representation of neural network parameters, a probability estimate value, for example P(t) or p, that may be associated with a context k including obtaining. Additionally, the method uses different probability estimation parameter values for decoding different neural network parameters and / or different probability estimation parameter values for decoding bins associated with different context models, for example c k including using.
[0021] A further embodiment according to the present invention includes a method for decoding weight parameters of a neural network, the method comprising obtaining, based on an encoded bitstream, a plurality of neural network parameters, for example components w i of the matrix W of the neural network, b, μ, σ 2 σ, γ, and / or at least one of β. Further, the method uses context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic coding (CABAC), to decode neural network parameters, for example components w i of the matrix W of the neural network, or b, or μ, or σ 2 or σ, or γ, or β, for example, a quantized version of the neural network parameters. Optionally, the probability of a bin value may be determined for different contexts, for example, each bin is associated with a context. Further, the method includes one or more probability estimation parameters, for example probability estimator parameters, for example N, a i k b i k a k d i k A, m i k n i k sh i k initVali k is used to obtain, for example, probability estimates that may be associated with a context, such as P(t) or p, for arithmetic decoding, for example, of bins of a numerical representation of neural network parameters, based on, for example, one or more previously decoded neural network parameters or bins thereof. k In addition, the method includes using different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network.
[0022] Embodiments according to the present invention include a method of encoding weight parameters of a neural network, the method including obtaining at least one of a plurality of neural network parameters, such as components w i , b, μ, σ 2 , σ, γ, and / or β of, for example, a matrix W of the neural network. Further, the method includes encoding neural network parameters, such as components w i of a matrix W of the neural network, or b, or μ, or σ 2 , or σ, or γ, or β, for example, a quantized version of the neural network parameters, using context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC). Optionally, the probability of a bin value may be determined for different contexts, for example, each bin may be associated with a context. Further, the method includes one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k , initVal i kFor example, based on one or more previously encoded neural network parameters or their bins, using it for arithmetic coding of bins of the numerical representation of neural network parameters, for example, probability estimates that can be associated with a context, such as P(t) or p k including obtaining. Additionally, the method uses different probability estimation parameter values for encoding different neural network parameters and / or different context models, such as c k including using different probability estimation parameter values for encoding bins associated with.
[0023] A further embodiment according to the present invention includes a method for encoding weight parameters of a neural network. The method includes obtaining at least one of a plurality of neural network parameters, such as components w i of the matrix W of the neural network, b, μ, σ 2 σ, γ, and / or β. Further, the method uses context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC), to encode neural network parameters, such as components w i of the matrix W of the neural network, or b, or μ, or σ 2 or σ, or γ, or β, for example, a quantized version of the neural network parameters. Optionally, the probability of the bin value may be determined for different contexts, for example, each bin may be associated with a context. Further, the method includes one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k b i k a k d i k A, m i k n i k sh i k initVal i kUsing, for example, one or more previously encoded neural network parameters or bins thereof, for arithmetic encoding, for example, of bins of numerical representations of neural network parameters, a probability estimate value that can be associated with a context, for example, P(t) or p k including obtaining. Additionally, the method includes using different probability estimation parameter values for encoding neural network parameters associated with different layers of the neural network.
[0024] Embodiments according to the present invention include a computer program that, when operating on a computer, executes the method according to the present invention.
[0025] Embodiments according to the present invention include an encoded representation of neural network weight parameters, the encoded representation including a plurality of encoded weight parameters of the neural network and an encoded representation of one or more probability estimation parameters that determine characteristics of probability estimation for adaptation of the context of arithmetic decoding of the encoded weight parameters.
[0026] To better understand the main concepts of embodiments of the present invention, further optional aspects of encoding and decoding neural network parameters according to the present invention are disclosed below. First, among other things, an efficient representation of parameters according to embodiments is disclosed. The details described below are optional.
[0027] parameters W, b, μ, σ 2, γ, and β can be collectively referred to as layer parameters or layer parameters. One or more of these parameters can be examples of neural network parameters as described above. They usually need to be signaled in a bitstream (e.g., when the neural network is used in a video decoder, e.g., in an encoded video representation). For example, they can be represented as 32-bit floating-point numbers, or they can be quantized to an integer representation that is also shown as a quantization index, for example. Note that ε is usually not signaled in the bitstream.
[0028] For example, in a particularly efficient approach for encoding such parameters, a uniform reconstruction quantizer (URQ) is used, where each value is represented as an integer multiple of a so-called quantization step size value. The corresponding floating-point number can be reconstructed, for example, by multiplying the integer by the quantization step size, which is usually (but not necessarily) a single floating-point number. However, in an efficient implementation for neural network inference (i.e., calculating the output of the neural network for an input), integer operations are employed as much as possible. Therefore, it may not be desirable to require reconstructing the parameters into a floating-point representation.
[0029] In another efficient technique for encoding parameters, a set of quantizers is applied and each value is represented, for example, as an integer multiple of a quantization step size value. Usually, for example, each quantizer within the set uses a mutually prime set of integer multiples of the quantization step size parameter as applicable reconstruction values, although two or more quantizers may share one or more reconstruction values. The quantizer applied depends, for example, on the value of the previous quantization index in the encoding order. The corresponding floating point number can be reconstructed, for example, by multiplying the integer by the quantization step size, which is usually a floating point number that depends, for example, on the selected quantizer. An example of such a quantizer design is trellis coded quantization (TCQ), which is also referred to as dependent quantization (DQ).
[0030] In a preferred embodiment, a set of two quantizers is used. The first quantizer uses, for example, all even multiples of the quantization step size including 0, and the second quantizer uses all even multiples of the quantization step size including 0.
[0031] Next, in particular, entropy encoding and probability estimation according to embodiments are disclosed. The details described below are optional and can be combined with the features described above, especially with regard to the efficient representation of parameters.
[0032] For example, the quantization index output by a quantization method as described above may be entropy encoded using an appropriate entropy encoding method.
[0033] A particularly suitable entropy coding method for encoding such quantization indices is Context-based Adaptive Binary Arithmetic Coding, also denoted as CABAC. Thereby, each quantization index is decomposed, for example, into a sequence of binary decisions, so-called bins. Usually, for example, each bin is associated with a probability model, also referred to as a context model, which models the statistics of the associated bin, for example, using a probability estimation method.
[0034] A probability estimator is, for example, a device that models the probability P(t) that a bin is equal to x based on already encoded bins associated with the probability estimator, where x ∈ {0, 1}. P(t) can be an example of a probability estimate.
[0035] Next, for example, the design of a typical estimator will be described. The details of the estimator design are an optional feature of the embodiments according to the present invention and can in particular be combined with embodiments including the features described above.
[0036] First, the design of a typical estimator applied to neural network compression will be described.
[0037] For example, for each context model c k one or more state variables s 1 k ,..., s N k are maintained with N ≧ 1. Each state variable s i k is implemented, for example, as a signed integer value and represents, for example, the probability value P(s i k , i, k) = p i k . The probability estimate p k of the context model c k is defined, for example, as a weighted sum of the probability values p i k of all state variables of the context model.
[0038] The state variable preferably has the following characteristics, but does not necessarily have to be so. 1.s i k If = 0, p i k = 0.5. 2.s i k Larger values of correspond to larger p i k corresponding. 3.P(-s i k ,i,k)=1 - P(s i k ,i,k).
[0039] Therefore, a negative state variable can correspond to, for example, p i k < 0.5. Generally, it is possible to specify a different function P(·) for each state variable of each context model.
[0040] Next, a configuration example for associating a state variable with a probability value will be described. The details of the state association are an optional feature of the embodiments according to the present invention and can be combined, in particular, with embodiments including the features described above.
[0041] There are many useful ways to associate a state variable with a probability value, i.e., to implement P(·). For example, the state representation used in neural network compression can be achieved by the following equation.
Equation
[0042] For example, for two states (N = 2, s 1 k , s 2 kTo achieve a configuration comparable to that used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for multimedia content description and analysis using 1 k = 16 and β 2 k = 1 are set for α ≒ 0.99894079 and for all k.
[0043] This exemplary configuration gives some insight into how state variables can be defined. As can be seen below, generally, P(·) is not used directly and thus need not be defined. Rather, it is often obtained as a result of the actual implementation of the individual parts.
[0044] Next, the initialization of the state variables will be described. The details of the initialization are an optional feature of the embodiments according to the present invention and can in particular be combined with embodiments including the features described above.
[0045] Before encoding or decoding the first symbol using the context model, all state variables are initialized with the same value shown as initVal i k which can optionally be optimized, for example, for a compression application.
[0046] Next, the derivation of probability estimates from the state variables will be described. The details of the derivation are an optional feature of the embodiments according to the present invention and can in particular be combined with embodiments including the features described above.
[0047] For the encoding or decoding of symbols, probability estimates are derived from the state variables of the context model. As an example, three alternative methods are presented below. Method 1 gives more accurate results than Method 2 and Method 3 but also has a higher computational complexity.
[0048] Method 1 (example) This method consists of two steps. First, each state variable s of the context model i k is converted to a probability value p i k . Next, the probability estimate p k is derived as a weighted sum of the probability values p i k .
[0049] Step 1: The lookup table LUT1 is used to convert the state variable s i k to the corresponding probability value p i k , for example, according to Equation (1).
Equation
[0050] Step 2: The probability estimate p k is derived from the probability values p i k , for example, according to the following equation.
Equation
[0051] Method 2 (Example) An alternative method for deriving a probability estimate from state variables is shown below. In this method, a less accurate result is obtained and the computational complexity is reduced. First, the weighted sum s k of the state variables is derived, for example, according to the following equation.
Equation
[0052] Next, the probability estimate p k is derived, for example, from the weighted sum of the state variable s k according to the following equation.
Equation
[0053] Method 3 (Example) Another method for deriving the probability estimate from the state variable is presented below. First, the weighted sum s k of the state variable is derived, for example, as in Method 2. Next, the probability estimate p k is derived, for example, from the weighted sum of the state variable s k according to the following equation.
Equation
[0054] Method 4 (Example) In a further method, a linear relationship between the state value and the probability P(x,i,k) is used. The derivation of the probability estimate uses, for example, the method of Equation (2). An example of Method 4 is the probability estimation method currently used in the current draft of the Versatile Video Coding (VVC).
[0055] For example, to achieve the configuration currently used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content, the method of Method 3 is used, for example, for all k, d 1 k = 16, d 2 k = 1, and a k = 2-7 It is used by means of. The look-up table including the probability estimate values is, for example, as follows.
[0056] LUT2 = {0.5000, 0.4087, 0.3568, 0.3116, 0.2721, 0.2375, 0.2074, 0.1811, 0.1581, 0.1381, 0.1206, 0.1053, 0.0919, 0.0803, 0.0701, 0.0612, 0.0534, 0.0466, 0.0407, 0.0356, 0.0310, 0.0271, 0.0237, 0.0207, 0.0180, 0.0158, 0.0138, 0.0120, 0.0105, 0.0092, 0.0080, 0.0070}
[0057] Next, the update of the state variable will be described. The details of the update are an optional feature of the embodiments according to the present invention and can be combined, in particular, with embodiments including the features described above.
[0058] After the encoding or decoding of the symbol, one or more state variables of the context model can be updated to track the statistical behavior of the symbol sequence.
[0059] The update is performed, for example, as follows.
Number
Number
[0060] The values in the look-up table A can be selected, for example, such that s i k remains within a specific given interval. Usually, the values of the look-up A approximate, for example, an update function. Alternatively, it is also possible to simply use the associated update function for state updates, for example.
[0061] For example, the VVC estimation method according to method 4 applies an update function for state updates and uses a bit shift, by which, for example, the "agility" of the update is determined. This corresponds, for example, to the adaptation parameters described above. Embodiments of the present invention (see below, for example, described according to the main concepts of the embodiments) can similarly be applied thereto.
[0062] For example, to achieve the configuration used in the current draft of the MPEG-7 part 17 standard for the compression of neural networks for the description and analysis of multimedia content, the parameters are, for example, for all k, m 1 k = 2 -3 m 2 k = 2 -7 and n 1 k = 2 -1 n 2 k = 1, and z is selected to be 16. The look-up table A is, for example, A = {157, 143, 129, 115, 101, 87, 73, 59, 45, 35, 29, 23, 17, 13, 9, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0}.
[0063] Before encoding the symbol, s 1 k is initialized, for example, with a value from the interval [-127, 127], and s2 k shall be initialized with values from the interval [-2047, 2047], for example. As a result, s 1 k can be implemented as, for example, an 8-bit signed integer value, and s 2 k can be implemented as, for example, a 12-bit signed integer.
[0064] As described in the above example, the probability estimator has some parameters referred to as probability estimator parameters or estimator parameters (or probability estimation parameters), and these parameters affect the probability estimation value, such as the adaptation rate. Usually, these estimator parameters are globally selected according to the application scenario, for example, the encoding of neural network parameters. Thus, for example, in neural network encoding, each neural network parameter applies the same set of estimator parameters. However, the inventors have found that the compression efficiency can be improved by selecting estimator parameters optimized for the current neural network parameters. Thus, according to one aspect, the basic idea is to select appropriate estimator parameters from a set of parameters, and then the estimator parameters are signaled to the decoder.
[0065] In other words, embodiments according to the present invention (such as those defined by the independent claims) are based on the idea of using different probability estimation parameter values for the decoding and respective encoding of bins associated with neural network parameters or entities, such as different contexts associated with neural network parameters. Instead of using one fixed instance from the base set of probability estimation parameters or probability parameter estimates, an adaptive or, for example, optimal individual selection of probability estimation parameter values may be performed. The selection of the probability estimates may be performed based on any suitable criteria, such as, respectively, the pre-known characteristics of a particular neural network parameter, the probabilistic characteristics of the context model of a particular neural network parameter, or the probabilistic characteristics of the bins of the neural network parameters. For example, it is recognized that different neural network parameters may include different correlation characteristics, and by adapting the probability estimation parameters to these different correlation characteristics, the encoding efficiency can be improved. For example, depending on the function realized by the neural network, the correlation strength (neural network parameter) between adjacent branches or edges of the neural network may be different. Also, the extension of the correlation relationship between the edges (or branches) of the neural network may be different. According to one aspect of the present invention, the probability estimation parameter values can adapt to the correlation characteristics (correlation strength / correlation extension) of the neural network (e.g., dynamically, e.g., during the encoding of different neural network parameters of a single neural net), thereby resulting in particularly efficient encoding. As another example, it is recognized that the correlation characteristics of neural network parameters associated with different layers of a neural network may sometimes be substantially different. For example, if different layers of a neural network reflect convolutions of different sizes (or widths), this can be achieved by using different probability estimation parameter values for the encoding or decoding of the neural network parameters of the different neural network layers, and as a result, the encoding efficiency can be improved.
[0066] As a result, it has been found that when using different probability estimation parameters when encoding or decoding different neural network parameters, or when encoding or decoding bins associated with different context models, the trade-off between encoding efficiency, complexity, and resource usage is improved. For example, it has been recognized that the overhead required for signaling (or dynamic signaling) of the actually used probability estimation parameter values can be overcompensated by the increase in encoding efficiency.
[0067] A second aspect according to an embodiment of the present invention is that the encoding and / or decoding of the probability estimation parameters may include steps similar to or equivalent to the encoding and / or decoding of the neural network parameters.
[0068] The inventors have recognized that the encoding / decoding performance can be improved when probability estimation parameters, such as all parameters related to a probability estimator and / or a context model, are adaptively selected. The probability estimator parameters can be encoded / decoded using steps similar to those of the neural network parameters. For example, the probability estimation parameters, or an integer index q representing the probability parameters, may be encoded / decoded using a sequence of bins, such as bins greaterThan_0, greaterThan_1,..., and a context model similar to the neural network parameters.
[0069] In other words, for the decoder, it is the reverse. The decoder according to the embodiment of the present invention can obtain an encoded bit stream, and the bit stream includes neural network parameters. The neural network parameters can be encoded in the bit stream as a sequence of bins. These bins can be decoded using the same context-dependent arithmetic encoding method as that used to encode the bins representing the neural network parameters in the bit stream, i.e., context-dependent arithmetic decoding. Therefore, the decoder is configured to obtain probability estimation values using a probability estimator including at least one of one or more probability estimation parameters, for example, at least one of the aforementioned probability estimator parameters, for example, N, a i k 、b i k 、a k 、d i k 、A、m i k 、n i k 、sh i k 、initVal i k . The decoder may then use different probability estimation parameter values for the decoding of different neural network parameters and / or different probability estimation parameter values for the decoding of bins associated with different context models, for example c k . Further, the decoder can use different probability estimation parameter values for the decoding of neural network parameters associated with different layers of the neural network. By adapting the probability estimation parameter values according to certain characteristics of the neural network parameters, for example, the layers of those bins or the context model, the efficiency of decoding and encoding can be improved.
[0070] In other words, according to one aspect, the parameters, i.e., N, a i k 、b ik 、a k 、d i k 、A, m i k 、n i k 、sh i k 、initVal i k And / or any other parameters related to the probability estimator, such as a context model, may be collectively referred to as probability estimator parameters or estimator parameters (or probability estimation parameters).
[0071] Typically, for example, for each estimator parameter, one fixed instance from the base set of probability estimator parameters is selected for the entire network. The values of the base set can be N-tuples of estimator parameters according to the number N of states to be applied. According to one aspect of the present invention, probability estimation, and thus compression efficiency, can be improved, for example, when the parameters are individually selected for each parameter or subset of parameters of the layer (i.e., W, b, μ, σ 2 、γ, and β) and / or the context model c k of each parameter or subset of parameters.
[0072] The estimator parameters used are determined, for example, from among the parameters of a set of parameters, which can be, for example, the base set or any subset of the base set. Each parameter of this set can be associated with an integer index q, for example. For example, one parameter of the set may be indicated as the default parameter. Typically, the default parameter is associated with an integer index equal to, for example, 0. The index associated with the selected estimator parameter is then signaled to the decoder, for example.
[0073] According to an embodiment of the present invention, the decoder is configured to select one or more probability estimation parameters from a base set or from a proper subset of the base set. Optionally, the base set can include a plurality of available parameter values associated with one or more probability estimation parameters, or the base set can include a plurality of tuples of available parameter values associated with a plurality of probability estimation parameters, e.g., a list of available pairs (sh 1 k ,sh 2 k ).
[0074] By providing a subset or even a proper subset of the probability estimation parameters, acceptable pairs, tuples and / or sets of probability estimation parameters can be provided that are easy to select, for example, with respect to one or more criteria. For example, according to a particular layer of a neural network, the subset may be selected with low computational effort, for example, simply by comparing the layer ID with a predefined list, to select probability estimation parameters that provide improved decoding efficiency. Additionally, the selection of such a subset can be performed according to a particular type of quantization. By providing a subset, advantageous probability estimation parameters can be provided without a great deal of allocation effort. Instead of checking one condition for each probability estimation parameter, a single check, e.g., the aforementioned comparison of the layer ID or the context model of the bins of the neural network parameters with a predefined list or criterion, can be performed and based thereon, an entire set of probability estimation parameters or probability estimation parameter values can be selected. Also, by providing a base set, the signaling effort can be reduced because, for example, it may be sufficient to signal the index of the base set rather than the actual parameter values.
[0075] According to an embodiment of the present invention, the decoder is configured to select one or more probability estimation parameters from different sets of available parameter values or different sets of available tuples of parameter values according to the quantization mode, or the decoder is configured to, according to the quantization mode, map an encoded value representing one or more probability estimation parameters, for example, an encoded index value q, to one or more probability estimation parameters, for example, sh i k using different mapping rules, for example, different mapping tables.
[0076] Optionally, the decoder can select one or more probability estimation parameters from a first set of available parameter values or a first set of available tuples of parameter values when a first quantization mode, for example, uniform quantization URQ, is used, and the decoder can select one or more probability estimation parameters from a second set of available parameter values when a second quantization mode, for example, dependent quantization DQ, is used.
[0077] Optionally, the set of available parameters can define different associations, for example, between the index values included in the encoded bitstream and the associated probability estimation parameters or the associated tuples of probability estimation parameters. For example, the first set of available parameters defines the mapping of a given index value to a first tuple of probability estimation parameters, and the second set of available parameters defines the mapping of the same given index value to a second tuple of probability estimation parameters different from the first tuple.
[0078] It is recognized that different quantization modes can cause different probabilistic characteristics (e.g., correlations) of the neural network parameters, and thus, by adapting the selection of the probability estimation parameters according to the quantization method, improved probability estimation (and as a result, improved coding efficiency) can be achieved.
[0079] According to an embodiment of the present invention, when uniform quantization of one or more probability estimation parameters, such as uniform reconstruction quantization (URQ) or time-invariant quantization, is used, the decoder is configured to extract and select one or more probability estimation parameters from a first set of available parameter values or from a first set of available tuples of parameter values. When variable quantization of one or more probability estimation parameters, such as trellis-coded quantization (TCQ) or dependent quantization (DQ), is used, the decoder is configured to extract and select one or more probability estimation parameters from a second set of available parameter values or from a second set of available tuples of parameter values. Here, for example, variable quantization such as DQ can use more context models than uniform quantization so that the number of bins decoded for each context model in the case of variable quantization can be reduced.
[0080] Alternatively, when uniform quantization of one or more probability estimation parameters, such as uniform reconstruction quantization (URQ) or time-invariant quantization, is used, the decoder is configured to use a first mapping rule, such as a first mapping table, to map a coded value representing one or more probability estimation parameters, such as a coded index value q, to one or more probability estimation parameters, such as sh i k to.
[0081] In addition, when variable quantization of one or more probability estimation parameters, such as trellis-coded quantization (TCQ) or dependent quantization (DQ), is used, the decoder can be configured to use a second mapping rule, such as a second mapping table, to map a coded value representing one or more probability estimation parameters, such as a coded index value q, to one or more probability estimation parameters. Optionally, variable quantization such as DQ can use more context models than uniform quantization so that the number of bins decoded for each context model in the case of variable quantization can be reduced.
[0082] Furthermore, the first set of available parameter values is different from the second set of available parameter values, the first set of available tuples of parameter values is different from the second set of available tuples of parameter values, and / or the second mapping rule is different from the first mapping rule.
[0083] Accordingly, the concept according to the present invention can be applied to any form of quantization and is not limited to a specific type of quantization. Further, according to the characteristics of the neural network parameters, the type of quantization and the set and / or mapping of the probability estimation parameters used can be adapted. Therefore, not only is there a high degree of freedom, but also the coding efficiency can be improved.
[0084] According to a further embodiment of the present invention, on average, the available parameter values of the second set of available parameter values, or the available parameter values of, for example, the second mapping rule, are more likely to have a faster adaptation of the probability estimation values with respect to, for example, changes in the frequency of bin values, than the available parameter values of the first set of available parameter values, or the available parameter values of, for example, the first mapping rule. Alternatively, on average, the available tuples of parameter values of the second set of available tuples of parameter values, or the available tuples of, for example, the second mapping rule, are more likely to have a faster adaptation of the probability estimation values with respect to, for example, changes in the frequency of bin values, than the available tuples of parameter values of the first set of available tuples of parameter values, or the available tuples of, for example, the first mapping rule.
[0085] This embodiment is based on the finding that the coding efficiency is improved by such a concept.
[0086] According to a further embodiment of the present invention, a second set of usable parameter values, or for example a second mapping rule, enables a faster adaptation of the probability estimate values with respect to, for example, a change in the frequency of bin values, compared to a first set of usable parameter values, or for example the usable parameter values of a first mapping rule, or for example all usable parameter values. Alternatively, a second set of usable tuples of parameter values enables a faster adaptation of the probability estimate values with respect to, for example, a change in the frequency of bin values, compared to the usable tuples of parameter values of a first set of parameter values, or for example all usable tuples.
[0087] This embodiment is based on the finding that the coding efficiency is improved by such a concept.
[0088] According to a further embodiment of the present invention, the decoder is configured to select one or more probability estimation parameters from different sets of usable, for example acceptable, parameter values, or different sets of usable, for example acceptable, tuples of parameter values, depending on the number of parameters of the layers of the neural network, or depending on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or depending on the number of elements of the layer parameters, for example the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc.
[0089] Alternatively, the decoder depends on the number of parameters of the layers of the neural network, or depends on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or depends on the number of elements of the layer parameters, for example the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc., and represents the one or more probability estimation parameters as coded values, for example coded index values q, for the one or more probability estimation parameters, for example sh i kconfigured to use different mapping rules, for example different mapping tables, to map thereto.
[0090] It has been found that in order to evaluate the probability value of a bit having a certain specific value, the adaptive parameter of the probability estimator can be selected depending on the number of neural network parameters to be decoded using a context model. For example, the larger the number of decoded bins, the more probabilistically the probability of that bin can be estimated. Thereby, the coding efficiency can be improved.
[0091] According to a further embodiment of the present invention, the decoder, when the number of parameters of a layer of the neural network is below a threshold, for example X = 1000, or when the number of neural network parameters to be decoded using one or more selected probability estimation parameters is below the threshold, or when the number of elements of the layer parameters, for example the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc. is below the threshold, is configured to extract and select one or more probability estimation parameters from a first set of available parameter values, or from a first set of available tuples of parameter values.
[0092] In addition, the decoder, when the number of parameters of a layer of the neural network is above a threshold, for example X = 1000, or when the number of neural network parameters to be decoded using one or more selected probability estimation parameters is above the threshold, or when the number of elements of the layer parameters, for example the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc. is above the threshold, is configured to extract and select one or more probability estimation parameters from a second set of available parameter values, or from a second set of available tuples of parameter values.
[0093] Alternatively, the decoder, when the number of parameters of a layer of the neural network is below a threshold, e.g., X = 1000, or when the number of neural network parameters decoded using one or more selected probability estimation parameters is below the threshold, or when the number of elements of the layer parameters, e.g., the number of components of matrix W or the number of elements of (transposed) vector b, etc., is below the threshold, uses one or more probability estimation parameters, e.g., sh i k is configured to extract and use a first mapping rule, e.g., a first mapping table, that maps an encoded value representing one or more probability estimation parameters, e.g., an encoded index value q, onto the above.
[0094] Furthermore, the decoder, when the number of parameters of a layer of the neural network is above a threshold, e.g., X = 1000, or when the number of neural network parameters decoded using one or more selected probability estimation parameters is above the threshold, or when the number of elements of the layer parameters, e.g., the number of components of matrix W or the number of elements of (transposed) vector b, etc., is above the threshold, uses one or more probability estimation parameters, e.g., sh i k is configured to extract and use a second mapping rule, e.g., a second mapping table, that maps an encoded value representing one or more probability estimation parameters, e.g., an encoded index value q, onto the above.
[0095] Furthermore, the second set of available parameter values contains more available parameter values than the first set of available parameter values, the second set of available tuples of parameter values contains more available tuples than the first set of available tuples of parameter values, and / or the second mapping rule is different from the first mapping rule.
[0096] It has been found that by selecting probability estimation parameters according to a certain threshold, it may be possible to adapt the probability estimation parameters at a low computational cost. As described above, for example, the statistical adaptation of a context model can be better executed when a large number of parameters are decoded. Therefore, the probability estimation parameters can be adjusted according to such a number. Also, since the signaling is limited to probability estimation parameters (or a set of probability estimation parameters) that are well-suited to the neural network currently under consideration, the signaling overhead (e.g., the number of bits required for encoding the index of the probability estimation parameters or the set of probability estimation parameters) can be reduced.
[0097] According to a further embodiment of the present invention, when the number of neural network parameters to be decoded using one or more selected probability estimation parameters is equal to or greater than a threshold, e.g., X = 1000, the decoder is configured to extract and select one or more probability estimation parameters from an increased number of options.
[0098] It has been found that as the number of neural network parameters to be decoded increases, the degrees of freedom regarding the probabilistic characteristics of the neural network parameters, e.g., their correlations, can increase. Therefore, as the number of neural network parameters increases, an increase in probability estimation parameters or probability estimation parameter values can be considered to improve the encoding efficiency. As a result, in a small-scale neural network, the signaling overhead is reduced.
[0099] According to a further embodiment of the present invention, the decoder is configured to evaluate signaling, which may be included in the encoded bitstream, for example in the form of a dedicated flag, from which a set of available parameter values, for example a small set or a large set, for example a set among a plurality of sets of available parameter values, which may be different subsets of the base set, possibly overlapping subsets, or a set of available tuples of parameter values, for example a small set or a large set, for example a set among a plurality of sets of available tuples of parameter values, which may be different subsets of the base set, possibly overlapping subsets, one or more probability estimation parameters are selected using, for example, one or more flags to be decoded, for example using the flag "useSecondSubset".
[0100] Alternatively, the decoder is configured to evaluate signaling, which may be included in the encoded bitstream, for example in the form of a dedicated flag, indicating which of a plurality of mapping rules, for example mapping tables, should be used to map an encoded value representing one or more probability estimation parameters, for example an encoded index value q, to one or more probability estimation parameters, for example sh i k Thereby, the selection of the probability estimation parameters can be performed with a low computational cost using information regarding the corresponding set or set of tuples of probability estimation parameters. In addition, by transmitting such signaling, the error probability of using different probability estimation parameters in the decoder than in the encoder can be reduced. Similarly, useful mapping rules, for example the mapping rules used in the encoder used to encode the encoded bitstream, can be communicated via such signaling.
[0101] The selection of the probability estimation parameters can be performed at a low computational cost using information regarding the corresponding set or set of tuples of probability estimation parameters. In addition, by transmitting such signaling, the error probability of using different probability estimation parameters in the decoder than in the encoder can be reduced. Similarly, useful mapping rules, for example the mapping rules used in the encoder used to encode the encoded bitstream, can be communicated via such signaling.
[0102] For example, by providing such signaling, the encoding may adapt to the characteristics of the neural network. For example, a first set of available tuples of parameter values may be selected for a first type of neural network (e.g., because the first set of available parameter values better adapts to the statistics of the first type of neural network), and a second set of available tuples of parameter values may be selected for a second type of neural network. For example, it may be sufficient to signal the selection of the set of available parameter values for the neural network only once (or at least less frequently than the actual selection of the individual sets of parameter values). Thereby, the encoding efficiency can be improved.
[0103] According to a further embodiment of the present invention, the decoder is configured to decode one or more index values, for example generally integer values, such as index q, that describe a probability estimation parameter value, or describe a plurality of probability estimation parameter values, or describe a tuple of probability estimation parameter values, such as index q.
[0104] By using index values, the probability estimation parameters can be represented in an easily compressible manner. Since the probability estimation parameters are encoded and thus decoded in the same way as the neural network parameters, the encoding / decoding efficiency can be improved.
[0105] According to a further embodiment of the present invention, the decoder is configured to decode one or more index values using one or more context models, and the context model can determine, for example, the probabilities of the bin values of one or more bins used to decode the index values.
[0106] Pursuing one of the main concepts of the present invention, the sequence of encoding / decoding of neural network parameters can be similarly applied to probability estimation parameters. Therefore, probability estimation parameters, or bins representing probability estimation parameters, or index values representing probability estimation parameters, can be associated with a context model. The advantage of context-dependent encoding is that the encoding / decoding of probability estimation parameters allows the neural network parameters to be utilized twice by performing context-dependent encoding / decoding on the neural network parameters.
[0107] According to a further embodiment of the present invention, the decoder is configured to decode a first bin, for example, a useNotDefault bin, which describes whether the currently considered index value takes a default value, and when the currently considered index value does not take a default value, the decoder is configured to extract and decode one or more additional bins representing the currently considered index value or a value derived from the currently considered index value, for example, q-1, in binary representation.
[0108] Optionally, the first bin indicating whether the currently considered index value takes a default value is decoded using a context, for example, considering a probability estimation value, and the one or more additional bins are decoded with a fixed length of 1 bit per bin.
[0109] If the neural network parameters are identified as default values, for example, in the first bin decoding step, further decoding may not be required, so the encoding efficiency can be improved by decoding such a first bin. Since the first bin may always exist, for example, by more complex context-dependent encoding, the encoding efficiency can be improved. For additional bins that do not always exist, for example, a less complex encoding with a fixed probability can be implemented.
[0110] According to a further embodiment of the present invention, the decoder is configured to decode one or more index values using unary code decoding, or using shortened unary code decoding, or using variable length code decoding, and optionally, the code length is selected according to the probability of occurrence of different index values. By using unary codes, a self-synchronizing code without prefix-freeness can be made possible. Also, in variable length codes, the code length of index values with high occurrence probabilities can be shortened, and by shortening the code length of frequently occurring indexes, symbols and time can be saved, thus improving efficiency.
[0111] According to a further embodiment of the present invention, the decoder is configured to vary, depending on the quantization mode used to quantize one or more probability estimation parameters, e.g., the number of bins or the maximum number of bins used to decode an integer index q that specifies one or more probability estimation parameters, e.g., a selected probability estimation parameter or a selected tuple of probability estimation parameters, for example, in the case of unary codes or Huffman codes, to adapt to a selected set of available parameter values or a selected set of available tuples of parameter values.
[0112] Using a particular quantization method, a particular accuracy or precision of the probability estimation parameter may be achievable. Thus, the coding efficiency can be improved if the number of bins or the maximum number of bins can be selected with respect to the quantization or the expected quantization error.
[0113] According to a further embodiment of the present invention, in the case of, for example, a unary code or a Huffman code, the decoder uses the number of bins or the maximum number of bins used to decode an integer index q that specifies one or more probability estimation parameters, such as a selected probability estimation parameter or a selected tuple of probability estimation parameters, according to the number of parameters of the layer of the neural network, or according to the number of neural network parameters decoded using one or more probability estimation parameters, or according to the number of elements of the layer parameters, such as the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc., and is configured to change, for example, to adapt to a selected set of available parameter values or a selected set of available tuples of parameter values.
[0114] The coding efficiency can be improved by changing the number of bins used to decode the probability estimation parameters with respect to the number of neural network parameters to be decoded. A good trade-off between accuracy and computational cost and time effort can be implemented. In addition, the probabilistic characteristics of the bins are determined according to the number of neural network parameters, and for example, as the number of neural network parameters depending on the context model increases, the context model can be adapted more accurately.
[0115] According to a further embodiment of the present invention, the decoder is between different sets of available parameter values associated with one or more probability estimation parameters, or between different sets of tuples of available parameter values associated with a plurality of probability estimation parameters, or an encoded value representing one or more probability estimation parameters, such as an encoded index value q, to one or more probability estimation parameters, such as sh i kIt is configured to switch between different mapping rules for mapping to. Such switching may be performed, for example, after switching to neural network parameters of another layer to be decoded. This flexibility can enable a more advanced adaptation of decoding for increased coding efficiency.
[0116] According to a further embodiment of the present invention, the decoder is, for example, in the case of a unary code or a Huffman code, between different sets of available parameter values associated with one or more probability estimation parameters, or between different sets of tuples of available parameter values associated with a plurality of probability estimation parameters, or according to a switch between different mapping rules, configured to change the number of bins or the maximum number of bins used to decode one or more probability estimation parameters, for example an integer index q, specifying a selected probability estimation parameter or a selected tuple of probability estimation parameters.
[0117] For better understanding, aspects of the foregoing embodiments regarding the bin representation of probability estimation parameters are described below in the context of embodiments including an encoding procedure. Accordingly, an encoding method with optional details is disclosed below.
[0118] The index q ∈ [0, q MAX to be encoded is decomposed, for example, into a sequence of bins, and then the sequence of bins is encoded. Each bin may be encoded, for example, using a context model or using a fixed probability.
[0119] The encoding procedure can, for example, follow one of the following methods.
[0120] 1. The first bin, e.g., useNotDefault, indicates whether the estimator parameter to be selected is different from the default parameter (e.g., useNotDefault = 1) or not (e.g., useNotDefault = 0). For example, when useNotDefault = 0, the default parameter is selected and no further bins are encoded. As long as useNotDefault = 1, a sequence of bins, e.g., additional bins, is encoded, which indicates, for example, (q - 1), indexMinusOne, where q is one less than the index of the selected parameter. The number of bins encoded for the index is, for example,
Number
[0121] 2. In the second step, a unary code is used. The first bin, e.g., greaterThan_0, indicates whether the index q related to the probability parameter is greater than 0 (e.g., greaterThan_0 = 1) or not (e.g., greaterThan_0 = 0). For example, when greaterThan_0 = 0, no further bins are encoded. When greaterThan_0 = 1, another, e.g., additional bin, is encoded (e.g., greaterThan_1), which indicates whether the index q is greater than 1 (e.g., greaterThan_1 = 1) or not (e.g., greaterThan_1 = 0). For example, when greaterThan_1 = 0, no further bins are encoded. For example, when greaterThan_1 = 0, further bins (greaterThan_X) are similarly encoded until the flag greaterThan_q equals 0.
[0122] 3. This procedure applies a shortened unary code that is the same as the unary code used in encoding method 2, except when the index for encoding q is equal to q MAX In this case, for example, the bin greaterThan_(qMAX After encoding (-1), no further bins are encoded. For example, on the decoder side, if greaterThan_(q MAX -1) is equal to 1, the value of q is q MAX is inferred to be.
[0123] 4. This procedure uses a variable-length code whose code length is selected according to the occurrence probability of symbols, such as a Huffman code.
[0124] Note that any of these methods can be used in any embodiment of the present invention. It will be apparent to those skilled in the art that the method for encoding may be applied for decoding, and vice versa.
[0125] According to a further embodiment of the present invention, the decoder determines one or more state variables, such as s i k or s k and uses one or more state variables to, for example, use equations (1) and (2), or use equations (3) and (4), or use equations (3) and (5), or use a linear relationship between one or more state variables and a probability estimate, such as P(x,i,k), to derive a probability estimate, such as p k is configured to be derived.
[0126] The state variable provides an efficient means for evaluating neural network parameters or a probability model that describes the probability of its bins, such as a context model. As described above, the state variable can also be used for encoding probability estimation parameters. The probability estimation parameters may be decoded using a context model evaluated using the state variable, and the state variable may be updated based on, for example, already decoded, or for example, most recently decoded probability estimation parameters. For example, by using a look-up table as shown in equation (1), the computational cost can be further reduced.
[0127] According to a further embodiment of the present invention, the decoder [Number] and [Number] According to two state variables s 1 k , s 2 k derive the probability estimate value p k is configured. Optionally, LUT2 may be as described herein. For example, for all k, for example, N = 2, d 1 k = 16, d 2 k = 1, and a k = 2 -7 where k is the context model index.
[0128] According to an embodiment of the present invention, the decoder is [Number] update the state variables s 1 k , s 2 k Here, m i k and n i k are weight coefficients, optionally constituting probability estimation parameters. For example, m 1 k may be equal to 2 -3 and m 2 k may be equal to 2 -7 . In addition, A may be defined as described herein, for example, a look-up table storing integer values. Further, z is an offset value, for example, a predetermined value, and may be equal to 16, for example. Optionally, s i k may be initialized as described herein, for example.
[0129] According to a further embodiment of the present invention, the decoder uses different probability estimation parameter values, e.g., different values of n, for decoding different neural network parameters, and / or uses different probability estimation parameter values for decoding bins associated with different context models, and / or uses different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network, and is configured to change the weight factor n. i k i k
[0130] According to a further embodiment of the present invention, the relationship between the weight factor n i k and the adaptation parameter sh i k is defined according to [Equation]
[0131] According to a further embodiment of the present invention, the decoder is configured to decode information describing the adaptation parameter, e.g., an index q describing a tuple of adaptation parameters, and optionally, the meaning of the decoded index value q may be defined as provided, for example, in Table 2 or Table 3 or Table 4 or Table 5 or Table 6 or Table 7 below. These tables are examples of mapping rules or mapping tables.
[0132] In a preferred embodiment, e.g., the embodiment described above, the estimator applies a base set of adaptation parameters, e.g., N sets of adaptation parameters sh i k A subset of the base set is then selected. One of the parameters of the subset may be signaled.
[0133] In a particularly preferred embodiment, the configuration is, for example, the same as the previous preferred embodiment, but an estimator configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content is used. The basis set includes, for example, the following 28 pairs for (sh 1 k ,sh 2 k ).
[0134]
Table 1
[0135] The subset of size 3 is defined and ordered such that, for example, when all the parameters of the layer are quantized with DQ, the index q is assigned according to, for example, Table 2. The parameter with index q = 0 is shown as, for example, the default parameter.
[0136]
Table 2
[0137] For example, one parameter of the subset is signaled by encoding q according to, for example, encoding scheme 1, where, for example, the bin useNotDefault is encoded using a context model and all other bins are encoded with a fixed length of 1 bit per bin. Generally, according to embodiments of the present invention, context-dependent encoding and / or any other encoding, such as a mixture of variable-length or fixed-length encoding, may be applied to any bin of the probability estimation parameters and / or the neural network parameters.
[0138] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment except that the pair of assigned adaptation parameters and the size of the selected subset (Table 3) are equal to 5.
[0139]
Table 3
[0140] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 4).
[0141]
Table 4
[0142] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except that the pair of assigned adaptation parameters and the size of the selected subset (Table 5) are equal to 9.
[0143]
Table 5
[0144] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 6).
[0145]
Table 6
[0146] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 7), the size (5) of the selected subset, and the quantization method used with URQ.
[0147]
Table 7
[0148] In another preferred embodiment (example), an estimator configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content is used, and the base set of Table 1 is used. This is referred to as the basic configuration.
[0149] Whenever the layer parameters are quantized using DQ, a subset (of size 9) of the pairs of parameters in Table 5 can always be applied. When the layer parameters are quantized using URQ, the subset of Table 8 can be used.
[0150]
Table 8
[0151] In another preferred embodiment (example), the basic configuration of the previous preferred embodiment can be applied.
[0152] Whenever the number of elements of the layer parameters is below a threshold X that can be set, for example, to X = 1000, a subset with a size of 3 of the pairs of parameters shown as the first subset in Table 2, for example, can be used. Otherwise, when the number of elements of the layer parameters is above the threshold X, a subset with a size of 9, shown as the second subset in Table 5, for example, can be used.
[0153] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, but instead of using a threshold, a flag (e.g., useSecondSubset) is encoded, which determines, for example, the subset to be used. For example, when the flag is equal to 0, the first subset can be used. When the flag is equal to 1, the second subset can be used.
[0154] According to a further embodiment of the present invention, the encoder is configured to select one or more probability estimation parameters from the base set or from a proper subset of the base set.
[0155] Optionally, the base set can include a plurality of available parameter values associated with one or more probability estimation parameters, or the base set can include a plurality of tuples of available parameter values associated with a plurality of probability estimation parameters, e.g., a list of available pairs (sh 1 k , sh 2 k ).
[0156] According to a further embodiment of the present invention, the encoder is configured to select one or more probability estimation parameters from different sets of available parameter values or different sets of available tuples of parameter values according to the quantization mode. For example, the encoder selects one or more probability estimation parameters from a first set of available parameter values or a first set of available tuples of parameter values when a first quantization mode, e.g., uniform quantization URQ, is used. For example, the encoder selects one or more probability estimation parameters from a second set of available parameter values when a second quantization mode, e.g., dependent quantization DQ, is used.
[0157] According to a further embodiment of the present invention, when uniform quantization of one or more probability estimation parameters, such as uniform reconstruction quantization (URQ) or time-invariant quantization, is used, the encoder is configured to extract and select one or more probability estimation parameters from a first set of available parameter values or from a first set of available tuples of parameter values. When variable quantization of one or more probability estimation parameters, such as trellis-coded quantization (TCQ) or dependent quantization (DQ), is used, the encoder is configured to extract and select one or more probability estimation parameters from a second set of available parameter values or from a second set of available tuples of parameter values. Optionally, variable quantization, such as DQ, can use more context models than uniform quantization so that fewer bins are encoded per context model in the case of variable quantization.
[0158] In addition, the first set of available parameter values is different from the second set of available parameter values, and the first set of available tuples of parameter values is different from the second set of available tuples of parameter values.
[0159] According to a further embodiment of the present invention, on average, the available parameter values in the second set of available parameter values enable a faster adaptation of the probability estimation values than the available parameter values in the first set of available parameter values, for example, with respect to changes in the frequency of bin values. Alternatively, on average, the available tuples of parameter values in the second set of available tuples of parameter values enable a faster adaptation of the probability estimation values than the available tuples of parameter values in the first set of available tuples of parameter values, for example, with respect to changes in the frequency of bin values.
[0160] According to a further embodiment of the present invention, a second set of usable parameter values includes usable parameter values that enable a faster adaptation of the probability estimate values with respect to, for example, a change in the frequency of bin values, than the usable parameter values of the first set of usable parameter values, or even than, for example, all usable parameter values. Alternatively, a second set of usable tuples of parameter values includes usable tuples of parameter values that enable a faster adaptation of the probability estimate values with respect to, for example, a change in the frequency of bin values, than the usable tuples of parameter values of the first set of usable tuples of parameter values, or even than, for example, all usable tuples.
[0161] According to a further embodiment of the present invention, the encoder is configured to select one or more probability estimation parameters from different sets of usable, for example, acceptable parameter values, or from different sets of usable, for example, acceptable tuples of parameter values, depending on the number of parameters of the layers of the neural network, or depending on the number of neural network parameters to be encoded using one or more selected probability estimation parameters, or depending on the number of elements of the layer parameters, for example, the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc.
[0162] According to a further example of the present invention, the encoder is configured to extract and select one or more probability estimation parameters from the first set of usable parameter values, or from the first set of usable tuples of parameter values, when the number of parameters of the layers of the neural network is below a threshold, for example X = 1000, or when the number of neural network parameters to be encoded using one or more selected probability estimation parameters is below a threshold, or when the number of elements of the layer parameters, for example, the number of components of the matrix W, or the number of elements of the (transposed) vector b, etc. is below a threshold.
[0163] In addition, the encoder is configured to extract and select one or more probabilistic estimation parameters from a second set of available parameter values, or from a second set of available tuples of parameter values, when the number of parameters of a layer of the neural network exceeds a threshold, for example X = 1000, or when the number of neural network parameters encoded using one or more selected probabilistic estimation parameters exceeds a threshold, or when the number of elements of the layer parameters, for example the number of components of matrix W, or the number of elements of (transposed) vector b, etc., exceeds a threshold.
[0164] Furthermore, the second set of available parameter values includes more available parameter values than the first set of available parameter values, and the second set of available tuples of parameter values includes more available tuples than the first set of available tuples of parameter values.
[0165] According to a further embodiment of the present invention, the encoder is configured to extract and select one or more probabilistic estimation parameters from an increased set of options when the number of neural network parameters encoded using one or more selected probabilistic estimation parameters is at least equal to a threshold, for example X = 1000.
[0166] According to a further embodiment of the present invention, the encoder is configured to signal whether one or more probabilistic estimation parameters are selected from which set of available parameter values, for example, from a smaller or larger set of multiple sets of available parameter values that may be different subsets of the base set, possibly overlapping subsets, or from which set of available tuples of parameter values, for example, from a smaller or larger set of multiple sets of available tuples of parameter values that may be different subsets of the base set, possibly overlapping subsets, using, for example, one or more encoded flags, for example, using the flag "useSecondSubset".
[0167] According to a further embodiment of the present invention, the encoder is configured to encode one or more index values, for example generally integer values, such as index q, which describe a probability estimation parameter value, or which describe a plurality of probability estimation parameter values, or which describe a tuple of probability estimation parameter values, such as index q.
[0168] According to a further embodiment of the present invention, the encoder is configured to encode one or more index values using one or more context models, and the context models can determine, for example, the probability of the bin values of one or more bins used to encode the index values.
[0169] According to a further embodiment of the present invention, the encoder is configured to encode the currently considered index value using a first bin that describes that the currently considered index value takes a default value, or, for example, to encode the currently considered index value using only the first bin when the currently considered index value takes a default value.
[0170] In addition, when the currently considered index value does not take a default value, the encoder encodes the currently considered index value using a first bin that describes that the currently considered index value does not take a default value, and using one or more additional bins that represent the currently considered index value or a value derived from the currently considered index value, such as q - 1, in binary representation.
[0171] Optionally, the first bin indicating whether the currently considered index value takes a default value is encoded using a context, for example considering probability estimation values, and the one or more additional bins are encoded with a fixed length of 1 bit per bin.
[0172] According to a further embodiment of the present invention, the encoder is configured to encode one or more index values using a unary code, or using a shortened unary code, or using a variable length code, and optionally, the code length is selected according to the probability of occurrence of different index values.
[0173] According to a further embodiment of the present invention, the encoder is configured to vary, depending on the quantization mode used to quantize one or more probability estimation parameters, for example in the case of a unary code or a Huffman code, the number of bins or the maximum number of bins used to encode an integer index q specifying one or more probability estimation parameters, for example a selected probability estimation parameter or a selected tuple of probability estimation parameters, so as to adapt to, for example, a selected set of available parameter values or a selected set of available tuples of parameter values.
[0174] According to a further embodiment of the present invention, the encoder is configured to vary, depending on the number of parameters of a layer of a neural network, or depending on the number of neural network parameters encoded using one or more probability estimation parameters, or depending on the number of elements of the layer parameters, for example the number of components of a matrix W, or the number of elements of a (transposed) vector b, etc., the number of bins or the maximum number of bins used to encode an integer index q specifying one or more probability estimation parameters, for example a selected probability estimation parameter or a selected tuple of probability estimation parameters, so as to adapt to, for example, a selected set of available parameter values or a selected set of available tuples of parameter values.
[0175] According to a further embodiment of the present invention, the encoder is configured to switch between different sets of available parameter values associated with one or more probability estimation parameters, or between different sets of tuples of available parameter values associated with a plurality of probability estimation parameters.
[0176] According to a further embodiment of the present invention, for example in the case of a unary code or a Huffman code, the encoder is between different sets of available parameter values associated with one or more probability estimation parameters, or between different sets of tuples of available parameter values associated with a plurality of probability estimation parameters, or is configured to change the number of bins or the maximum number of bins used to encode one or more probability estimation parameters, for example an integer index q, that specify a selected probability estimation parameter or a selected tuple of probability estimation parameters according to the switching.
[0177] According to a further embodiment of the present invention, the encoder is one or more state variables, for example s i k or s k to determine one or more state variables, and use one or more state variables, for example using equations (1) and (2), or using equations (3) and (4), or using equations (3) and (5), or using a linear relationship between one or more state variables and a probability estimation value, for example P(x,i,k), to derive a probability estimation value, for example p k is configured to be derived.
[0178] According to a further embodiment of the present invention, the encoder
Number
Number
[0179] According to a further embodiment of the invention, the encoder is
Number
[0180] In addition, A is, for example, a look-up table that can be defined as described herein, for example, storing integer values, z is an offset value, for example a predetermined value, and for example may be equal to 16. Optionally, s i k may be initialized as described herein, for example.
[0181] According to a further embodiment of the invention, the encoder is configured to use different probability estimation parameter values, for example different values of n i k , for encoding different neural network parameters, and / or to use different probability estimation parameter values for encoding bins associated with different context models, and / or to use different probability estimation parameter values for encoding neural network parameters associated with different layers of the neural network, and to change the weighting factor n i k .
[0182] According to a further embodiment of the present invention, the weight coefficient n i k and the adaptation parameter sh i k The relationship between and is
Equation
[0183] According to a further embodiment of the present invention, the encoder is configured to encode information describing the adaptation parameter, for example, an index q describing a tuple of adaptation parameters, and for example, the meaning of the encoded index value q may be defined as provided in, for example, Table 2 or Table 3, or Table 4 or Table 5 or Table 6 or Table 7.
[0184] All features described above and below in connection with the decoder are to be understood, respectively, as features of an encoder according to embodiments of the present invention. Conversely, features described in the context of the encoder are to be understood, respectively, as features of the decoder. It will be apparent to those skilled in the art that the features of the decoder or decoding method according to embodiments are equally applicable, identically or similarly, to the corresponding encoder, and vice versa. In this context, the decoder can correspond to the encoder, decoding a neural network can correspond to encoding neural network parameters, previously decoded neural network parameters or their bins can correspond to previously encoded neural network parameters or their bins, decoding of different neural network parameters and decoding of bins associated with different context models can correspond to encoding of different neural network parameters and encoding of bins associated with different context models, and decoding of neural network parameters associated with different layers of the neural network can correspond to encoding of neural network parameters associated with different layers of the neural network. However, these are only examples of correspondence, and it will be apparent to those skilled in the art that the features and advantages of the decoder according to embodiments of the present invention may be interchangeable with the features and advantages of the encoder according to embodiments of the present invention. The same applies to the description of the encoding / decoding method and the drawings in the detailed description of the embodiments.
[0185] According to a further embodiment of the present invention, the encoded representation includes separate encoded representations of separate probability estimation parameters associated with different neural network parameters, and / or separate probability estimation parameters associated with different context models, and / or separate probability estimation parameters associated with different layers of the neural network.
[0186] To improve the decoding efficiency, an adaptive selection of probability estimation parameters can be performed using separate coded representations.
[0187] According to a further embodiment of the present invention, the coded representation includes a flag indication indicating which mapping rule among a plurality of mapping rules should be used to map a coded value representing one or more probability estimation parameters, for example, a coded index value q, to one or more probability estimation parameters, for example, sh i k thereof.
[0188] The drawings are not necessarily to scale and instead generally focus on illustrating the principles of the present invention. In the following description, various embodiments of the present invention are described with reference to the following drawings.
Brief Description of the Drawings
[0189]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Embodiments for Carrying Out the Invention
[0190] Identical or equivalent elements, or elements having the same or equivalent functions, are denoted by the same or equivalent reference numerals in the following description even if they appear in different figures.
[0191] In the following description, in order to provide a more complete description of embodiments of the present invention, a plurality of details are set forth. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring embodiments of the present invention. Additionally, features of different embodiments described herein can be combined with each other unless otherwise specifically stated.
[0192] Figure 2 shows a block schematic diagram of a decoder according to an embodiment of the present invention. The decoder 200 includes a context-dependent arithmetic decoding unit 210, a probability estimator 220, and probability estimation parameter values 230. Optionally, the decoder 200 includes a bitstream decomposition unit 240 and a parameter reassembly unit 250. The decoder 200 may be configured to receive an encoded bitstream 202. The encoded bitstream 202 may include information regarding a plurality of neural network parameters.
[0193] The optional bitstream decomposition unit 240 may be configured to convert the encoded bitstream 202 into information that can be processed by the context-dependent arithmetic decoding unit 210. Since this function may be provided by the decoding unit 210, the decomposition unit 240 is shown only for purposes of illustration. The decomposition unit may be configured to decompose the encoded bitstream 202 into a portion including information about the encoded neural network parameters and another portion indicating bits for the start and / or error correction or other overhead of the bitstream, such as a flag.
[0194] The decryption unit 210 can be configured to decrypt the encoded neural network parameters to provide a plurality of, for example, decrypted neural network parameters 204. To decrypt the neural network parameters, the decryption unit 210 is configured to receive probability estimates from the probability estimator 220. The neural network parameters can be encoded in the bitstream 202 as a sequence of bins. One bin or a plurality of bins can represent the neural network parameters. The bins can be associated with, for example, a context, or in other words, a probability model. The probability estimate can indicate the probability that a bin has a particular value, for example, 1 or 0. The probability estimate can be determined according to the context of the bin, or in other words, its probability model. The probability estimator 220 includes probability estimation parameters to determine the probability estimates.
[0195] The decoder or context-dependent arithmetic decoding unit 210 is configured to use different probability estimation parameter values for decoding different neural network parameters. Thus, by adapting the probability estimation parameters, the probabilistic individual characteristics of the neural network parameters can be taken into account. Additionally, or alternatively, the decoder or context-dependent arithmetic decoding unit 210 can be configured to use different probability estimation parameter values for decoding bins associated with different context models. Individual bins, or sets of bins, can be associated with context models. The context model can be adapted, for example, according to the most recently decoded neural network parameters or their bins. As a result, the parameterization of the probability estimator 220 can be adapted for individual bins, or the individual context models associated with the bins. The optional parameter reassembly unit 250 can be configured to reassemble the decoded bins into neural network parameters to provide a plurality of neural network parameters 204, and / or can be configured to interpret the decoded entities provided by the decoding unit 210. Optionally, the probability estimator 220 can receive feedback information from the output of the decoding unit 210 and / or from the optional parameter reassembly unit 250.
[0196] However, the decoder 200 can alternatively or additionally be configured to use different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network. Information about a particular layer of neural network parameters may be encoded in the bitstream and may trigger a change in the probability estimation parameter values 230.
[0197] Figure 3 shows a schematic diagram of an example of the selection of probability estimation parameters according to an embodiment of the present invention. In Figure 3, as an example, the probability estimation parameters of Methods 1 to 4 and the probability estimation parameters for updating the context model are shown. The decoder can select one or more probability estimation parameters, for example, Parameter 310 and / or 320, from the base set 300. As shown by Parameters 310 and 320, these parameters can be proper subsets of the base set 300.
[0198] As a result, the decoder can be configured to use not only different probability estimation parameter values but also different probability estimation parameters. Since the decoder can use any of Methods 1 to 4, only a subset of the probability estimation parameters of the base set 300 is required.
[0199] In addition, the decoder can not only select the probability estimation parameters but also select their values. For example, in the first selection step, the decoder may select Parameter 310. In the next step, the decoder can also select from different subsets of the probability estimation parameter values for these probability estimation parameters. In other words, for each probability estimation parameter, there may be multiple sets of acceptable probability estimation parameter values, and the decoder may select the probability estimation parameters and the corresponding values.
[0200] Figure 4 shows a schematic diagram of an example of a decoder selection entity according to an embodiment of the present invention. The decoder can be configured to select one or more probability estimation parameters from different sets 410, 420 of available parameter values. As an example, set 410 includes subset 412 (parameters according to method 3) and subset 414. Regarding methods 1-4 and the update of state variables, they have been described in the context of encoding and / or decoding of the neural network parameters themselves. However, similar or equivalent methods and updates of the context model can be performed for the encoding and / or decoding of the probability estimation parameters. Therefore, note that these parameters are shown here. Additionally, or alternatively, the decoder may select from available sets of tuples of parameter values 430, 440 and / or from different mapping rules shown here as an example in the form of Table 5 (450) and Table 7 (460). The selection of the probability estimation parameter values, tuples, or mappings can be performed based on the quantization mode. Note that different sets of available parameter values can include the same probability estimation parameters but can have different values. The decoder can select between the first set 412 and another set 414 including, as an example, values d 1 k = 15, d 2 k = 2, a k = 1.5 -7 and LUT = LUT2. In other words, the adaptation can be performed with respect to the parameters used for encoding / decoding and with respect to each value of the parameters. However, according to the embodiment, note that only the selection of values, for example, the decoder decision between sets 412 and 414, may be performed, and the selection of parameters is not limited to the parameters shown in method 3.
[0201] For example, when uniform quantization of one or more probability estimation parameters is used, the decoder can extract and select one or more probability estimation parameters from a first set 410 of available parameter values or from a first set 430 of available tuples of parameter values. As an example, the decoder can select between sets 412 and 414 in the case of uniform quantization. On the other hand, when variable quantization of one or more probability estimation parameters is used, the decoder can extract and select one or more probability estimation parameters from a second set 420 of available parameter values or from a second set 440 of available tuples of parameter values. Similarly, the decoder can use a first mapping rule 460 that maps an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters when uniform quantization of the one or more probability estimation parameters is used, and can use a second mapping rule 450 that maps an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters when variable quantization of the one or more probability estimation parameters is used. The first set, tuple, and mapping rule and the second set, tuple, and mapping rule may be different from each other.
[0202] Note that different sets, tuples, and mapping rules may include different probability estimation parameters or may include the same probability estimation parameters but have different values, for example, to perform calculations according to different techniques 1-4. Thus, the decoder can optionally first select a calculation routine and then select its parameterization, i.e., its value. On the other hand, the decoder may simply select a probability estimation parameter value according to the quantization mode, for example, select between set 412 and set 414, or, for example, select between tuple 430 and tuple 440 that describe the same probability estimation parameter but have different values.
[0203] As another optional feature, on average, the usable parameter values of the second set of usable parameter values, or the usable parameter values of the second mapping rule, can enable a faster adaptation of the probability estimate values than the usable parameter values of the first set of usable parameter values, or the usable parameter values of the first mapping rule, for example, with respect to changes in the frequency of bin values. Alternatively, on average, the usable tuples of parameter values of the second set of usable tuples of parameter values, or the usable tuples of the second mapping rule, can enable a faster adaptation of the probability estimate values than the usable tuples of parameter values of the first set of usable tuples of parameter values, or the usable tuples of the first mapping rule, for example, with respect to changes in the frequency of bin values.
[0204] Optionally, the second set of usable parameter values, or the second mapping rule, can include usable parameter values that enable a faster adaptation of the probability estimate values than the usable parameter values of the first set of usable parameter values, or the usable parameter values of the first mapping rule, or even than all usable parameter values, for example, with respect to changes in the frequency of bin values. Alternatively, the second set of usable tuples of parameter values can include usable tuples of parameter values that enable a faster adaptation of the probability estimate values than the usable tuples of parameter values of the first set of usable tuples of parameter values, or even than all usable tuples, for example, with respect to changes in the frequency of bin values.
[0205] Furthermore, sets 410 and 420 may be usable or, for example, acceptable parameter values, and tuples 430, 440 may be usable or, for example, acceptable tuples. The decoder selection of such sets or tuples can be performed based on, or dependent on, the number of parameters of the layers of the neural network, or on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or on the number of elements of the layer parameters. Similarly, the use of different mapping rules 450, 460 can be performed by the decoder depending on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or on the number of elements of the layer parameters.
[0206] As another optional feature, the decoder can be configured to extract and select one or more probability estimation parameters from a first set of usable parameter values, or from a first set of usable tuples of parameter values, when the number of parameters of the layers of the neural network is below a threshold, e.g., X = 1000, or when the number of neural network parameters to be decoded using one or more selected probability estimation parameters is below a threshold, or when the number of elements of the layer parameters is below a threshold.
[0207] Furthermore, the decoder can be configured to extract and select one or more probability estimation parameters from a second set of usable parameter values, or from a second set of usable tuples of parameter values, when the number of parameters of the layers of the neural network exceeds a threshold, or when the number of neural network parameters to be decoded using one or more selected probability estimation parameters exceeds a threshold, or when the number of elements of the layer parameters exceeds a threshold.
[0208] Alternatively, the decoder is configured to extract and use a first mapping rule that maps an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters when the number of parameters of a layer of the neural network is below a threshold, or when the number of neural network parameters decoded using one or more selected probability estimation parameters is below a threshold, or when the number of elements of the layer parameters is below a threshold. The decoder can be configured to extract and use a second mapping rule that maps an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters when the number of parameters of a layer of the neural network is above a threshold, or when the number of neural network parameters decoded using one or more selected probability estimation parameters is above a threshold, or when the number of elements of the layer parameters is above a threshold.
[0209] In this case, the second set of available parameter values can include more available parameter values than the first set of available parameter values, and the second set of available tuples of parameter values can include more available tuples than the first set of available tuples of parameter values. Additionally, or alternatively, the second mapping rule can be different from the first mapping rule.
[0210] FIG. 5 shows a schematic diagram of an example of an index value that describes an encoded bitstream and probability estimation parameter values according to an embodiment of the present invention. As an example, the bitstream 202 includes a flag indication F, or in other words, signaling in the form of flag F. However, the signaling may be transmitted in any suitable manner. The decoder may evaluate the flag F to determine from which set of available parameter values or from which set of available tuples of parameter values one or more probability estimation parameters are selected. Alternatively, the decoder may be configured to evaluate a signaling indication of which mapping rule among a plurality of mapping rules should be used to map an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters. Thus, the selection of the set, tuple, and / or mapping by the decoder in FIG. 4 may be based on signaling, for example, in the form of an encoded flag F. The optional bitstream decomposition unit 240 can decompose the bitstream 202, for example, in a flag indicating the set, tuple, and / or mapping used for decoding and in information regarding the probability estimation parameter values.
[0211] As shown in FIG. 5, the bitstream 202 includes one or more index values q that describe a probability estimation parameter value, or a plurality of probability estimation parameter values, or a tuple of probability estimation parameter values i (shown here as an example for i = 1, 2, and 3) and can include, for example, integer values. In other words, the index value q i can be an encoded representation of one or more probability estimation parameters.
[0212] The decoder may be configured to decode one or more index values q, for example, using signaling. In addition, one or more index values q i can be associated with one or more context models c i . The decoder is the context model c qi can be associated with.qi can be configured to decode an index value q i using qi .
[0213] The index value can be represented by one or more bins. The first bin can describe whether the index value currently under consideration takes a default value, as indicated by, for example, fbin. If the index value takes the default value, since the index value is already determined by the first bin, the index value can include only one bin. In other cases, the index value can be represented by one or more additional bins in the form of, for example, addbin where j = 1, 2, 3 j The decoder can be configured to decode the first bin and any optional additional bins. Any of these bins can be associated with a context, for example, individually. Optionally, the context c i of the index value q qi can be associated with the first bin of the index value, and the additional bins can be decoded with a fixed length for each bin.
[0214] In addition, the bitstream 202 includes an integer multiple r i associated with the neural network parameters, as in an example where i = 1, 2, 3. Based on the index value q i it is possible to perform adaptation of the context of arithmetic decoding of the encoded neural network parameters, and the neural network parameters can be the encoded weight parameters of the neural network represented by the integer multiple r i
[0215] As another optional feature, the decoder can be configured to decode one or more index values using single-term code decoding, or using shortened single-term code decoding, or using variable-length code decoding. For example, the code length is selected according to the probability of occurrence of different index values. According to an embodiment, any suitable coding technique can be applied individually to different index values, which can improve flexibility and coding efficiency.
[0216] In addition, the decoder can be configured to change the number or maximum number of bins used to decode one or more probability estimation parameters depending on the quantization mode used to quantize one or more probability estimation parameters, and / or depending on the number of parameters of the layers of the neural network, or depending on the number of neural network parameters decoded using one or more probability estimation parameters, or depending on the number of elements of the layer parameters.
[0217] As another optional feature, the decoder can be configured to switch between different sets of available parameter values associated with one or more probability estimation parameters, or between different sets of tuples of available parameter values associated with multiple probability estimation parameters, or between different mapping rules for mapping encoded values representing one or more probability estimation parameters to one or more probability estimation parameters. The decoder can switch between set 410 (and / or sets 412, 414) and 420, and / or between tuples 430, 440 and / or different mappings 450, 460, as shown in FIG. 4.
[0218] Furthermore, the change in the number or maximum number of bins described above can be performed by the decoder according to the switching between different sets, tuples and / or mapping rules.
[0219] In addition, the decoder can have one or more state variables, such as s ik or s k is determined and can be configured to derive a probability estimate value, e.g., p k using one or more state variables.
[0220] Furthermore, the encoded bit stream 202 can be an encoded representation of the weight parameters of the neural network, and a plurality of encoded weight parameters of the neural network in the form of an integer multiple r i and one or more probability estimation parameters, i.e., an encoded representation of the index value q i are included.
[0221] As shown in the figure, the encoded representation in the form of the encoded bit stream 202 can include separate encoded representations of separate probability estimation parameters, i.e., index values q i (shown here as an example for i = 1, 2, and 3). These index values q i can be associated with different neural network parameters, e.g., q 1 ->r 1 q 2 ->r 2 ... Alternatively, or in addition, as shown in the figure, separate probability estimation parameters q i can be associated with different context models c qi . As another optional feature, separate probability estimation parameters can be associated with different layers of the neural network.
[0222] FIG. 6 shows a schematic block diagram of a method according to an embodiment of the present invention. FIG. 6 shows methods 600, 700 for decoding the weight parameters of a neural network. Methods 600 and 700 are based on an encoded bit stream and a plurality of neural network parameters, e.g., components w i of the matrix W of the neural network, b, μ, σ 2Obtaining (610, 710) at least one of σ, γ, and / or β, and decoding (620, 720) neural network parameters of a neural network, such as a quantized version thereof, using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic coding (CABAC). Optionally, the probability of a bin value is determined for different contexts, for example, each bin is associated with a context. Methods 600, 700 include one or more probability estimation parameters, such as probability estimator parameters, such as N, a i k , b i k , a k , d i k , A, m i k , n i k , sh i k , initVal i k and obtaining (630, 730), for arithmetic decoding of bins of a numerical representation of neural network parameters, optionally, a probability estimate value, such as P(t) or p, that may be associated with a context, for example, based on one or more previously decoded neural network parameters or bins thereof. k
[0223] Method 600 further includes using (640) different probability estimation parameter values for decoding different neural network parameters and / or using different probability estimation parameter values for decoding bins associated with different context models, such as c k
[0224] On the other hand, method 700 further includes using (740) different probability estimation parameter values for decoding neural network parameters associated with different layers of a neural network.
[0225] Further embodiments and aspects The following discloses further embodiments including aspects and features that can be incorporated into any of the foregoing embodiments.
[0226] Efficient representation of parameters (e.g., details are optional) Parameters W, b, μ, σ 2 , γ, and β shall be collectively referred to as layer parameters or layer parameters. They usually need to be signaled in a bitstream (e.g., when a neural network is used in a video decoder, e.g., in an encoded video representation). For example, they can be represented as 32-bit floating-point numbers, or can be quantized to an integer representation, e.g., also shown as a quantization index. Note that ε is usually not signaled in the bitstream.
[0227] For example, in a particularly efficient technique for encoding such parameters, a uniform reconstruction quantizer (URQ) is used, where each value is represented as an integer multiple of a so-called quantization step size value. The corresponding floating-point number can be reconstructed, for example, by multiplying the integer by the quantization step size, which is usually (but not necessarily) a single floating-point number. However, in an efficient implementation for neural network inference (i.e., calculating the output of a neural network for an input), integer operations are employed as much as possible. Therefore, it may not be desirable to require reconstructing the parameters into a floating-point representation.
[0228] In another efficient technique for encoding parameters, a set of quantizers is applied and each value is represented as, for example, an integer multiple of a quantization step size value. Usually, for example, each quantizer within the set uses a co - prime set of integer multiples of the quantization step size parameter as the applicable reconstruction values, although two or more quantizers may share one or more reconstruction values. The quantizer applied depends, for example, on the value of the previous quantization index in the encoding order. The corresponding floating - point number can be reconstructed, for example, by multiplying the integer by the quantization step size, and the quantization step size is usually a floating - point number that depends, for example, on the selected quantizer. An example of such a quantizer design is trellis - coded quantization (TCQ), which is also referred to as dependent quantization (DQ).
[0229] In a preferred embodiment, a set of two quantizers is used. The first quantizer uses, for example, all even multiples of the quantization step size including 0, and the second quantizer uses all even multiples of the quantization step size including 0.
[0230] Entropy encoding and probability estimation (e.g., details are optional) For example, the quantization indices output by the quantization method are entropy - encoded using an appropriate entropy - encoding method.
[0231] A particularly suitable entropy - encoding method for encoding such quantization indices is context - based adaptive binary arithmetic coding, also denoted as CABAC. Thereby, each quantization index is decomposed, for example, into a sequence of binary decisions, so - called bins. Usually, for example, each bin is associated with a probability model, also referred to as a context model, which models the statistics of the associated bin using, for example, a probability estimation method.
[0232] A probability estimator is, for example, a device that models the probability P(t) that a bin is equal to x based on the already - encoded bins associated with the probability estimator, where x ∈ {0,1}.
[0233] For example, a probability estimator has some parameters referred to as probability estimator parameters or estimator parameters (or probability estimation parameters), and these parameters affect probability estimates, such as the adaptation rate. Usually, these estimator parameters are globally selected according to, for example, an adaptation scenario, such as the encoding of neural network parameters. Thus, for example, in neural network encoding, each neural network parameter applies the same set of estimator parameters.
[0234] However, it has been found that the compression efficiency can be improved by selecting estimator parameters optimized for the current neural network parameters. Thus, according to one aspect, the basic idea is to select appropriate estimator parameters from a set of parameters, and then the estimator parameters are signaled to the decoder.
[0235] Typical estimator design (e.g., details are optional) First, the design of a typical estimator applied to neural network compression will be described.
[0236] For example, for each context model c k one or more state variables s 1 k ,..., s N k are maintained with N≧1. Each state variable s i k is implemented, for example, as a signed integer value and represents, for example, a probability value P(s i k , i, k)=p i k . The probability estimate p k of the context model c k is defined, for example, as a weighted sum of the probability values p i k of all state variables of the context model.
[0237] The state variable preferably has the following characteristics, but does not necessarily have to be so. 1.s i k When = 0, p i k = 0.5. 2.s i k Larger values of i k correspond to larger p 3.P(-s i k , i, k) = 1 - P(s i k , i, k).
[0238] Therefore, a negative state variable can correspond to, for example, p i k < 0.5. Generally, it is possible to specify different functions P(·) for each state variable of each context model.
[0239] Configuration example for associating a state variable with a probability value (example, details are arbitrary) There are many useful ways to associate a state variable with a probability value, that is, to implement P(·). For example, the state representation used in neural network compression can be achieved by the following formula. [Number] β i k is a weight coefficient. α is a parameter where 0 < α < 1.
[0240] For example, for two states (N = 2, s 1 k , s 2 kTo achieve a configuration comparable to that used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for multimedia content description and analysis using 1 k α ≈ 0.99894079 and β 2 k = 16 and β
[0241] This exemplary configuration provides some insight into how state variables can be defined. Generally, P(·) need not be defined as it is not directly used, but as seen below, the definition of P(·) is also necessary. Rather, it often results from the actual implementation of the individual parts.
[0242] Initialization of state variables (e.g., details are optional). Before encoding or decoding the first symbol using the context model, all state variables are initialized with the same value shown as initVal i k which can be optionally optimized for, for example, a compression application.
[0243] Derivation of probability estimates from state variables (e.g., details are optional). For the encoding or decoding of symbols, probability estimates are derived from the state variables of the context model. As an example, three alternative techniques are presented below. Technique 1 yields more accurate results than Technique 2 and Technique 3, but also has a higher computational complexity.
[0244] Technique 1 (example) This technique consists of two steps. First, each state variable s i k of the context model is converted to a probability value p i k . Next, the probability estimate p k is derived as a weighted sum of the probability values p i k .
[0245] Step 1: The lookup table LUT1 is used to convert the state variable s i k into the corresponding probability value p i k according to, for example, Equation (1).
Equation
[0246] Step 2: The probability estimate p k is derived from the probability value p i k according to, for example, the following equation.
Equation
[0247] Method 2 (example) An alternative method for deriving a probability estimate from a state variable is shown below. In this method, a less accurate result is obtained and the computational complexity is reduced. First, the weighted sum s k of the state variables is derived according to, for example, the following equation.
Equation
[0248] Next, the probability estimate p k is derived from the weighted sum of the state variable s k according to, for example, the following equation.
Equation
[0249] Method 3 (example) Another method for deriving probability estimation values from state variables is presented below. First, a weighted sum s k of the state variables is derived, for example, as in Method 2. Next, the probability estimation value p k is derived from the weighted sum of the state variables s k according to, for example, the following equation.
Equation
[0250] Method 4 (example) In a further method, a linear relationship between the state value and the probability P(x,i,k) is used. The derivation of the probability estimation value uses, for example, the method of Equation (2). An example of Method 4 is the probability estimation method currently used in the current draft of the Versatile Video Coding (VVC).
[0251] For example, to achieve the configuration used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content, the method of Method 3 is used with, for example, d 1 k = 16 for all k, d 2 k = 1, and a k = 2 -7 is used. The look-up table that includes probability estimation values is, for example, as follows.
[0252] LUT2 = {0.5000, 0.4087, 0.3568, 0.3116, 0.2721, 0.2375, 0.2074, 0.1811, 0.1581, 0.1381, 0.1206, 0.1053, 0.0919, 0.0803, 0.0701, 0.0612, 0.0534, 0.0466, 0.0407, 0.0356, 0.0310, 0.0271, 0.0237, 0.0207, 0.0180, 0.0158, 0.0138, 0.0120, 0.0105, 0.0092, 0.0080, 0.0070}
[0253] Update of state variables (example, details are optional) After encoding or decoding of symbols, one or more state variables of the context model can be updated to track the statistical behavior of the symbol sequence.
[0254] The update is performed, for example, as follows. [Number] A is, for example, a look-up table that stores integer values. m i k and n i k are, for example, weight coefficients that control the "agility" of the update. Coefficient n i k is, for example, [Number] can be described according to, where sh i k is also shown as an adaptation parameter. z is, for example, an offset that ensures that the look-up table A is accessed only with non-negative values.
[0255] The values in the look-up table A can be selected, for example, such that s i k remains within a particular given interval. Usually, the values of the look-up A approximate, for example, an update function. Alternatively, it is also possible to simply use the relevant update function for state update, for example.
[0256] For example, the VVC estimation method according to Technique 4 applies an update function for state update and uses bit shifts, and the bit shifts determine, for example, the "agility" of the update. This corresponds to, for example, the adaptive parameters described above. The present invention (see below) can similarly be applied thereto.
[0257] For example, to achieve the configuration used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content, the parameters are, for example, for all k, m 1 k =2 -3 m 2 k =2 -7 and n 1 k =2 -1 n 2 k =1, and z is selected to be 16. The lookup table A is, for example, A = {157, 143, 129, 115, 101, 87, 73, 59, 45, 35, 29, 23, 17, 13, 9, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0}.
[0258] Before encoding the symbol, s 1 k is, for example, initialized with values in the interval [-127, 127], and s 2 k is, for example, initialized with values in the interval [-2047, 2047]. As a result, s 1 k can be implemented, for example, as an 8-bit signed integer value, and s 2 k can be implemented, for example, as a 12-bit signed integer.
[0259] Aspects of the present invention (details are optional) Hereinafter, the parameters, namely, N, a i k b ik , a k , d i k , A, m i k , n i k , sh i k , initVal i k And any other parameters related to the probability estimator (context model) shall be collectively referred to as probability estimator parameters or estimator parameters (or probability estimation parameters).
[0260] Usually, for example, for each estimator parameter, one fixed instance from the base set of probability estimator parameters is selected for the entire network. The values of the base set can be N sets of estimator parameters according to the number N of states to be applied. According to one aspect of the present invention, probability estimation, and thus compression efficiency, can be improved, for example, when the parameters are individually selected for each parameter or subset of parameters of the layer (i.e., W, b, μ, σ 2 , γ, and β) and / or the context model c k can be improved when selected individually for each parameter or subset of parameters.
[0261] The estimator parameters used are determined, for example, from among the parameters of a set of parameters, and the set of parameters can be, for example, the base set or any subset of the base set. Each parameter of this set can be associated with an integer index q, for example. For example, one parameter of the set may be shown as the default parameter. Usually, the default parameter is associated with an integer index equal to, for example, 0. The index associated with the selected estimator parameter is then signaled to the decoder, for example.
[0262] Encoding method (e.g., details are arbitrary) The encoded index q ∈ [0, q MAXis decomposed, for example, into a sequence of bins, and then the sequence of bins is encoded. Each bin may be encoded, for example, using a context model or using a fixed probability.
[0263] The encoding procedure can follow, for example, one of the following methods.
[0264] 1. The first bin, for example useNotDefault, indicates whether the selected estimator parameter is different from the default parameter (e.g., useNotDefault = 1) or not (e.g., useNotDefault = 0). For example, if useNotDefault = 0, the default parameter is selected and no further bins are encoded. As long as useNotDefault = 1, the sequence of bins is encoded, which indicates, for example, (q - 1), indexMinusOne, which is one less than the index of the selected parameter. The number of bins encoded for the index is, for example,
Number
[0265] 2. In the second procedure, a unary code is used. The first bin, for example greaterThan_0, indicates whether the index q associated with the probability parameter is greater than 0 (e.g., greaterThan_0 = 1) or not (e.g., greaterThan_0 = 0). For example, if greaterThan_0 = 0, no further bins are encoded. For example, if greaterThan_0 = 1, another bin is encoded (e.g., greaterThan_1), which indicates whether the index q is greater than 1 (e.g., greaterThan_1 = 1) or not (e.g., greaterThan_1 = 0). For example, if greaterThan_1 = 0, no further bins are encoded. For example, if greaterThan_1 = 0, further bins (greaterThan_X) are similarly encoded until the flag greaterThan_q becomes equal to 0.
[0266] 3. This procedure applies a shortened unary code that is the same as the unary code used in Encoding Method 2, except when the index for encoding q is equal to q MAX In this case, for example, after encoding bin greaterThan_(q MAX - 1), no further bins are encoded. For example, on the decoder side, if greaterThan_(q MAX - 1) is equal to 1, the value of q is inferred to be q MAX .
[0267] 4. This procedure uses a variable - length code, such as a Huffman code, whose code length is selected according to the occurrence probability of the symbol.
[0268] Preferred Embodiment (e.g., details are optional) In a preferred embodiment, the estimator applies a base set of adaptive parameters sh i k which are, for example, N sets of adaptive parameters. Next, a subset of the base set is selected. One of the parameters in the subset is signaled.
[0269] In a particularly preferred embodiment, the configuration is, for example, equal to the previous preferred embodiment, but is configured to be the same as the estimator currently used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content, and an estimator is used, and the base set is, for example, (sh 1 k ,sh 2 k ) includes the following 28 pairs.
[0270]
Table 9
[0271] The subset of size 3 is defined and ordered such that, for example, when all the parameters of the layer are quantized with DQ, the index q is assigned, for example, according to Table 2. The parameter with index q = 0 is shown as the default parameter, for example.
[0272]
Table 10
[0273] For example, one of the parameters of the subset is signaled by encoding q according to encoding scheme 1, where, for example, the bin useNotDefault is encoded using a context model and all other bins are encoded with a fixed length of 1 bit per bin.
[0274] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment except that the pair of assigned adaptation parameters and the size of the selected subset (Table 3) is equal to 5.
[0275]
Table 11
[0276] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 4).
[0277] [Table 12]
[0278] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except that the pair of assigned adaptation parameters and the size of the selected subset (Table 5) are equal to 9.
[0279] [Table 13]
[0280] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 6).
[0281] [Table 14]
[0282] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the pair of assigned adaptation parameters (Table 7), the size of the selected subset (5), and the quantization method used with URQ.
[0283] [Table 15]
[0284] In another preferred embodiment (example), an estimator configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for the compression of neural networks for the description and analysis of multimedia content is used, and the base set of Table 1 is used. This is referred to as the basic configuration.
[0285] When the layer parameters are quantized using DQ, a subset (of size 9) of the pairs of parameters in Table 5 is always applied. When the layer parameters are quantized using URQ, the subset of Table 8 is used.
[0286]
Table 16
[0287] In another preferred embodiment (example), the basic configuration of the previous preferred embodiment is applied.
[0288] When the number of elements of the layer parameters is below a threshold X that can be set, for example, to X = 1000, a subset with size 3 of the pairs of parameters shown as the first subset in, for example, Table 2 is always used. Otherwise, when the number of elements of the layer parameters is greater than or equal to the threshold X, a subset with size 9 in Table 5, for example, shown as the second subset is used.
[0289] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, but instead of using a threshold, a flag (e.g., useSecondSubset) is encoded, which determines, for example, the subset to be used. For example, when the flag is equal to 0, the first subset is used. When the flag is equal to 1, the second subset is used.
[0290] Alternative embodiments: While some aspects have been described in the context of apparatus, it will be apparent that these aspects also represent corresponding descriptions of methods, where blocks or devices correspond to method steps or features of method steps. Similarly, aspects described in the context of method steps also represent corresponding descriptions of corresponding blocks or items or features of the corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware device such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such a device.
[0291] Depending on certain implementation requirements, embodiments of the present invention can be implemented in hardware or software. Embodiments can be implemented using a digital storage medium, such as a floppy disk, DVD, Blu-ray (registered trademark), CD, ROM, PROM, EPROM, EEPROM, or flash memory, having electronically readable control signals stored thereon that cooperate (or are capable of cooperating) with a programmable computer system so that respective methods are executed. Thus, the digital storage medium may be computer-readable.
[0292] Some embodiments according to the present invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system so that one of the methods described herein is executed.
[0293] Generally, embodiments of the present invention can be implemented as a computer program product having program code, where the program code is operative to perform one of the methods when the computer program product is run on a computer. The program code may be stored, for example, on a machine-readable carrier.
[0294] Other embodiments include a computer program stored on a machine-readable carrier that executes one of the methods described herein.
[0295] Thus, in other words, one embodiment of the method of the present invention is a computer program having program code that executes one of the methods described herein when the computer program runs on a computer.
[0296] Thus, a further embodiment of the method of the present invention is a data carrier (or digital storage medium, or computer-readable medium) having recorded thereon a computer program that executes one of the methods described herein. The data carrier, digital storage medium or recorded medium is typically tangible and / or non-transitory.
[0297] Thus, a further embodiment of the method of the present invention is a sequence of a data stream or signal representing a computer program that executes one of the methods described herein. The sequence of the data stream or signal may be configured to be transferred via, for example, a data communication connection, for example via the Internet.
[0298] A further embodiment includes processing means, such as a computer or a programmable logic device, configured or adapted to execute one of the methods described herein.
[0299] A further embodiment includes a computer on which is installed a computer program that executes one of the methods described herein.
[0300] Further embodiments according to the present invention include an apparatus or system configured to transfer (e.g., electronically or optically) a computer program that executes one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system may include, for example, a file server for transferring the computer program to the receiver.
[0301] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, the field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably executed by any hardware device.
[0302] The apparatus described herein may be implemented using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0303] The apparatus described herein, or any component of the apparatus described herein, may be implemented at least partially in hardware and / or software.
[0304] The methods described herein may be executed using a hardware device, or using a computer, or using a combination of a hardware device and a computer.
[0305] The methods described herein, or any component of the apparatus described herein, may be executed at least partially by hardware and / or software.
[0306] Note that any embodiment as defined by the claims can be complemented by any of the details (features and functions) described herein.
[0307] Also, the embodiments described herein can be used individually and can also be complemented by any of the features included in the claims.
[0308] Note also that the individual aspects described herein can be used individually or in combination. Thus, details can be added to each of these individual aspects without adding details to another one of the aspects.
[0309] It should also be noted that the present disclosure generally describes features that can be used in video encoders (devices for providing an encoded representation of an input video signal) and video decoders (devices for providing a decoded representation of a video signal based on the encoded representation), as well as in audio encoders and audio decoders. Thus, any of the features described herein can be used in the context of a video encoder, and in the context of a video decoder, and in the context of an audio encoder, and in the context of an audio decoder.
[0310] Furthermore, the features and functions disclosed herein with respect to the method can also be used in an apparatus (configured to perform such functions). Furthermore, any features and functions disclosed herein with respect to the apparatus can also be used in the corresponding method. In other words, the methods disclosed herein can be complemented by any of the features and functions described with respect to the apparatus.
[0311] Also, any of the features and functions described herein can be implemented in hardware or software, or a combination of hardware and software, as described in the "Alternative Embodiments" section.
[0312] Furthermore, any of the features and syntactic elements described herein may optionally be introduced into the video bitstream, both individually and in combination.
[0313] It should also be noted that all features, functions, and details described in the context of an encoder or encoding can optionally also be used in the context of a decoder or decoding. For example, context derivation in a decoder may be similar to context derivation in an encoder, and the decoded values may serve the role of the values being encoded. Typically, a decoder is designed to maintain synchronization between the encoder and decoder such that the context used in the decoder corresponds to the context used in the encoder.
[0314] The embodiments described herein are merely illustrative of the principles of the present invention. It is understood that modifications and variations of the configurations and details described herein will be apparent to other skilled persons. Accordingly, it is intended to be limited only by the appended claims and not by the specific details presented in the description and explanation of the embodiments herein.
Claims
1. A decoder (200) for decoding weight parameters of a neural network, comprising: the decoder (200) is configured to obtain a plurality of neural network parameters (204) of the neural network based on the encoded bitstream (202); the decoder (200) is configured to decode the neural network parameters of the neural network using context-dependent binary arithmetic decoding; the decoder (200) is configured to obtain probability estimates for decoding bins of the number representation of neural network parameters using a lookup table and state variables that look up in the lookup table; the decoder (200) is configured to track statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables in response to decoded symbols; the decoder (200) is configured to use different probability estimation parameter values (230) for decoding different neural network parameters and / or to use different probability estimation parameter values (230) for decoding bins associated with different context models. Decoder.
2. A decoder (200) for decoding weight parameters of a neural network, comprising: the decoder (200) is configured to obtain a plurality of neural network parameters (204) of the neural network based on the encoded bitstream (202); the decoder (200) is configured to decode the neural network parameters of the neural network using context-dependent binary arithmetic decoding; the decoder (200) is configured to obtain probability estimates for decoding bins of the number representation of neural network parameters using a lookup table and state variables that look up in the lookup table; the decoder (200) is configured to track statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables in response to decoded symbols; the decoder (200) is configured to use different probability estimation parameter values (230) for decoding neural network parameters associated with different layers of the neural network. Decoder.
3. 1. An encoder for encoding weight parameters of a neural network, comprising: the encoder is configured to obtain a plurality of neural network parameters of the neural network; the encoder is configured to encode the neural network parameters of the neural network using context-dependent binary arithmetic coding; the encoder is configured to obtain probability estimates for encoding bins of the number representation of neural network parameters using a lookup table and state variables that look up in the lookup table; the encoder is configured to track statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables as a function of the encoded symbols; the encoder is configured to use different probability estimation parameter values (230) for encoding different neural network parameters and / or to use different probability estimation parameter values (230) for encoding bins associated with different context models. encoder.
4. 1. An encoder for encoding weight parameters of a neural network, comprising: the encoder is configured to obtain a plurality of neural network parameters of the neural network; the encoder is configured to encode the neural network parameters of the neural network using context-dependent binary arithmetic coding; the encoder is configured to obtain probability estimates for encoding bins of the number representation of neural network parameters using a lookup table and state variables that look up in the lookup table; the encoder is configured to track statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables as a function of the encoded symbols; the encoder is configured to use different probability estimation parameter values (230) for encoding neural network parameters associated with different layers of the neural network. encoder.
5. A method (600) for decoding weight parameters of a neural network, comprising: The method includes obtaining (610) a plurality of neural network parameters (204) of the neural network based on an encoded bitstream (202); The method includes decoding (620) the neural network parameters of the neural network using context-dependent binary arithmetic decoding; The method includes obtaining (630) probability estimates for decoding bins of the number representation of neural network parameters using a lookup table and state variables looking up in the lookup table; the method is adapted to track statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates with which the state variables change in response to decoded symbols; The method includes using (640) different probability estimation parameter values (230) for decoding different neural network parameters and / or using different probability estimation parameter values (230) for decoding bins associated with different context models. method.
6. 1. A method (700) for decoding weight parameters of a neural network, comprising: The method includes obtaining (710) a plurality of neural network parameters (204) of the neural network based on an encoded bitstream (202); The method includes decoding (720) the neural network parameters of the neural network using context-dependent binary arithmetic decoding; The method includes obtaining (730) probability estimates for decoding bins of the number representation of neural network parameters using a lookup table and state variables that look up in the lookup table; the method includes tracking statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables in response to decoded symbols; The method includes using (740) different probability estimation parameter values (230) for decoding neural network parameters associated with different layers of the neural network. method.
7. 1. A method for encoding weight parameters of a neural network, comprising: The method includes obtaining a plurality of neural network parameters (204) of the neural network; the method includes encoding the neural network parameters of the neural network using context-dependent binary arithmetic coding; the method includes obtaining probability estimates for encoding bins of a numerical representation of neural network parameters using a lookup table and state variables looking up in the lookup table; the method includes tracking statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables as a function of the coded symbols; The method includes using different probability estimation parameter values (230) for encoding different neural network parameters and / or using different probability estimation parameter values (230) for encoding bins associated with different context models. method.
8. 1. A method for encoding weight parameters of a neural network, comprising: The method includes obtaining a plurality of neural network parameters of the neural network; the method includes encoding the neural network parameters of the neural network using context-dependent binary arithmetic coding; the method includes obtaining probability estimates for encoding bins of a numerical representation of neural network parameters using a lookup table and state variables looking up in the lookup table; the method includes tracking statistical behavior by updating the state variables using one or more probability estimation parameters, which are weighting factors that control the agility of the updates to the state variables as a function of the coded symbols; The method includes using different probability estimation parameter values (230) for encoding neural network parameters associated with different layers of the neural network. method.
9. A computer program for carrying out the method according to any one of claims 5 to 8 when said computer program runs on a computer.