A decoder that decodes the weight parameters of a neural network, an encoder, a method, and an encoded representation using probability estimation parameters
By employing context-dependent arithmetic coding and decoding techniques, specifically CABAC, and adapting probability estimation parameters for neural networks, the method effectively addresses the need for balanced compression, complexity, and computational cost in encoding and decoding neural network parameters.
Patent Information
- Application Number
- JP2022562944
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-04-14
- Filing Date
- 2021-04-13
- Publication Date
- 2025-06-19
- 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 context-dependent arithmetic coding and decoding, specifically context-adaptive binary arithmetic coding (CABAC), to encode and decode neural network parameters, along with the adaptation of probability estimation parameters based on different contexts and layers of the neural network.
This approach enhances the efficiency of encoding and decoding neural network parameters, improving compression efficiency while reducing computational resources and complexity.
Smart Images

Figure 0007695954000052 
Figure 0007695954000053 
Figure 0007695954000054
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, for example, in its most basic form, 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 feed-forward 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 = L2(L1(input)) Here, L i (X) = N i (B i (X)) where, i B i is, for example, the affine transformation of layer i, and N iA simple example is the matrix multiplication of the weight parameter (edge weight) w associated with layer i i and the input X. B i (X) = w i * X The operator * shall denote matrix multiplication.
[0007] The so-called convolutional layer 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 referred to as inference. Also, the intermediate result is referred to as a hidden layer or hidden activation value, which constitutes a linear transformation + element-wise non-linearity, for example, the calculation of the above-mentioned first inner product + non-linearity.
[0008] Hereinafter, 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:
Number
[0009] ε is a small scalar number (such as 0.001) that is necessary (or useful) to avoid division by zero. However, it may be 0. If all vector elements of b are equal to 0, Equation 1 refers to the batch normalization layer. In contrast, when all vector elements of ε as well as μ and β are set to 0, and all elements of γ and σ 2 are set to 1, a layer without batch normalization (bias only) is processed.
[0010] Typically, since neural networks can contain, for example, millions of parameters, they may require, for example, hundreds of megabytes for their representation. Therefore, their inference procedure involves, for example, the calculation of many inner product operations between large matrices, and thus high computational resources are required for its execution. 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, the decoder being configured to obtain at least one of a plurality of neural network parameters, such as components w of a matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or β, based on an encoded bitstream. Further, the decoder uses context-dependent arithmetic decoding, for example, context-adaptive binary arithmetic decoding (CABAC), to decode neural network parameters, such as components w of a matrix W of the neural network i , or b, or μ, or σ 2 , or σ, or γ, or β, for example, a quantized version of a neural network parameter. 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, 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, for arithmetic decoding of bins of the numerical representation of neural network parameters, based on one or more previously decoded neural network parameters or bins thereof, a probability estimate value, e.g., P(t) or p, which may be associated with a context, can be used. k It is configured to obtain k . 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, e.g., c k It is configured to obtain k .
[0017] A further embodiment according to the present invention includes a decoder for decoding the weight parameters of a neural network. The decoder is configured to obtain at least one of a plurality of neural network parameters, e.g., components w i of the matrix W of the neural network, b, μ, σ 2 σ, γ, and / or β, based on an encoded bitstream. Further, the decoder is configured to decode neural network parameters, e.g., components w i of the matrix W of the neural network, or b, or μ, or σ 2 or σ, or γ, or β, e.g., a quantized version of the neural network parameters, using context-dependent arithmetic decoding, e.g., context-adaptive binary arithmetic coding (CABAC). Optionally, the probability of a bin value may be determined for different contexts, e.g., each bin is associated with a context. Further, the decoder has 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 ik 、initVal i k is used to obtain, for example, a probability estimate value that may be associated with a context, such as P(t) or p, for arithmetic decoding of bins of a numerical representation of neural network parameters, for example, based on 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 、b、μ、σ 2 、σ、γ、and / or β of the matrix W of the neural network. Further, the encoder is configured to encode neural network parameters, such as components w i 、or b、or μ、or σ 2 、or σ、or γ、or β, for example, a quantized version thereof, using context-dependent arithmetic coding, for example, 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 、initVal i kFor use in, for example, optionally arithmetic coding 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, for example P(t) or p, which may be associated with a context, may be obtained. k It is configured to obtain. Further, the encoder is configured to use different probability estimation parameter values for encoding different neural network parameters and / or to use different probability estimation parameter values for encoding bins associated with different context models, for example c k It is configured to use different probability estimation parameter values for encoding bins associated with k .
[0019] A further embodiment according to the invention includes an encoder for encoding the weight parameters of a neural network, the encoder being configured to obtain a plurality of neural network parameters, for example the components w of the matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or β. Further, the encoder is configured to encode neural network parameters, for example the components w of the matrix W of the neural network, using context-dependent arithmetic coding, for example using context-adaptive binary arithmetic coding (CABAC), for example the 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, for example probability estimator parameters, for example N, a i , or b, or μ, or σ 2 , or σ, or γ, or β, for example the 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, 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 ik Using, for example, one or more previously encoded neural network parameters or bins thereof, for arithmetic encoding of an optional bin of a numerical representation of neural network parameters, a probability estimate value that can be associated with a context, such as 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 of decoding weight parameters of a neural network, the method comprising, based on an encoded bitstream, obtaining a plurality of neural network parameters, such as components w of a matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or β, and the method includes decoding at least one of them using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic coding (CABAC), a neural network parameter, such as a component w of a matrix W of the neural network i , or b, or μ, or σ 2 , or σ, or γ, or β, for example, decoding a quantized version of a neural network parameter. Optionally, the probability of a bin value is determined for different contexts, for example, each bin can 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 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 that may 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 decoding different neural network parameters and / or using different probability estimation parameter values for decoding bins associated with different context models, for example, c k including using different probability estimation parameter values for decoding bins associated with k .
[0021] A further embodiment according to the invention includes a method for decoding weight parameters of a neural network, the method including obtaining, based on an encoded bitstream, a plurality of neural network parameters, for example, components w of a matrix W of the neural network i , b, μ, σ 2 , σ, γ, and / or at least one of β. Further, the method includes using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic coding (CABAC), to decode neural network parameters, for example, components w of a matrix W of the neural network i , 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 Including obtaining k . Additionally, 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 of matrix W of the neural network, b, μ, σ 2 σ, γ, and / or β. Further, the method includes encoding 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 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 kUsing, for example, one or more previously encoded neural network parameters or bins thereof, for arithmetic coding of bins of a numerical representation of neural network parameters, for example probability estimates that may 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 probability estimation parameter values for encoding bins associated with different context models, such as c k including using different probability estimation parameter values for encoding bins associated with k .
[0023] A further embodiment according to the invention includes 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 of matrix W of the neural network, b, μ, σ 2 σ, γ, and / or β. Further, the method includes encoding 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 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 kUsing, for example, one or more previously encoded neural network parameters or bins thereof, for arithmetic encoding of bins of a numerical representation of neural network parameters, for example, a probability estimate value that may be associated with a context, such as 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 the computer program operates 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 technique for encoding such parameters, a uniform reconstruction quantizer (URQ) is used, for example, 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, and the quantization step size 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 as, for example, an integer multiple of a quantization step size value. Usually, for example, each quantizer in 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, 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).
[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, entropy encoding and probability estimation according to embodiments are disclosed, among other things. The details described below are optional and can be combined with the features described above, particularly with regard to the efficient representation of parameters.
[0032] For example, the quantization index output by a quantization method such as the one 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] The probability estimator is, for example, a device that models the probability P(t) that the bin is equal to x, based on, for example, the 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 s1 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 i k correspond to larger p 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 different functions 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, s1 k , s2 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 k = 16 and β2 k = 1 are set for all k, with α ≈ 0.99894079.
[0043] This exemplary configuration provides some insight into how state variables can be defined. As will be seen below, generally, P(·) need not be defined as it is not directly used. Rather, it is often obtained as a result of the actual implementation of the individual parts.
[0044] Next, the initialization of the state variables is 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 is 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 yields 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, for each state variable s of the context model ik is the probability value p i k is converted. Next, the probability estimate p k is the weighted sum of the probability values p i k and is derived as follows.
[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 value 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 value p k is derived, for example, from the weighted sum of the state variables s k according to the following equation, for example.
Equation
[0053] Method 3 (example) Another method for deriving the probability estimate value from the state variable is presented below. First, the weighted sum s k of the state variables is derived, for example, as in Method 2. Next, the probability estimate value p k is derived, for example, from the weighted sum of the state variables s k according to the following equation, for example.
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 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).
[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, with d1 k = 16, d2 k = 1, and a k = 2 -7 for all k. The look-up table containing the probability estimate value 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 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 lookup table A can be selected, for example, such that s i k remains within a particular given interval. Usually, the values of the lookup A approximate, for example, an update function. Alternatively, it is also possible to simply use, for example, the associated update function for state updates.
[0061] For example, the VVC estimation method according to technique 4 applies an update function for state updates and uses bit shifts, by which, for example, the "agility" of the updates is determined. This corresponds, for example, to the adaptation parameters described above. Embodiments of the present invention (see below, for example, those 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, m1 k =2 -3 , m2 k =2 -7 and n1 k =2 -1 , n2 k =1, and z = 16 are selected. 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}.
[0063] Before encoding the symbol, s1 k is assumed to be initialized with a value from the interval [-127, 127], and s2 k is assumed to be initialized with a value from the interval [-2047, 2047]. As a result, s1 k can be implemented, for example, as an 8-bit signed integer value, and s2 k can be implemented, for example, as 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 probability estimation values, 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 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 of bins associated with neural network parameters or entities, such as different contexts associated with neural network parameters, and their respective encodings. 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 estimate may be performed based on any suitable criterion, 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 parameter. 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 neural network parameters of 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 that may be required for signaling (or dynamic signaling) of the actually used probability estimation parameter values can be overcompensated by an 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, the reverse is true. The decoder according to the embodiments of the present invention can obtain an encoded bitstream, and the bitstream includes neural network parameters. The neural network parameters can be encoded in the bitstream 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, i.e., context-dependent arithmetic decoding. Therefore, the decoder is configured to obtain probability estimation values using a probability estimator that includes 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 。Furthermore, 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, such as the layer of their bins or the context model, the efficiency of decoding and encoding can be improved.
[0070] In other words, according to one aspect, 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 / or any other parameters related to the probability estimator, such as the 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, is 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, for example, a list of available pairs (sh1 k , sh2 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, for example, easier to select 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 significant allocation effort. Instead of checking one condition for each probability estimation parameter, one check, for example, 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 made and based on that, the 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 instead of 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 between, for example, 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 for example, the second set of available parameters defines the mapping of a 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, for example, 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, for example, 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] i k Alternatively, when uniform quantization of one or more probability estimation parameters, for example, uniform reconstruction quantization (URQ) or time-invariant quantization, is used, the decoder is configured to use a first mapping rule, for example, a first mapping table, 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.
[0081] In addition, when variable quantization of one or more probability estimation parameters, for example, trellis-coded quantization (TCQ) or dependent quantization (DQ), is used, the decoder can be configured to use a second mapping rule, for example, a second mapping table, 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. 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] Therefore, 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. Furthermore, 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 the coding efficiency can also 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 for example the available parameter values of the second mapping rule, are more capable of enabling 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 for example the available parameter values of the first mapping rule. Alternatively, on average, the available tuples of parameter values of the second set of available tuples of parameter values, or for example the available tuples of the second mapping rule, are more capable of enabling 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 for example the available tuples of 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, for example, with respect to 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, for example, with respect to a change in the frequency of bin values, compared to a usable tuple 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 coding value of one or more probability estimation parameters, for example, the coding index value q, as one or more probability estimation parameters, for example, sh i kconfigured to use different mapping rules, for example different mapping tables, to map to
[0090] It has been found that in order to evaluate the probability value of bits having a certain specific value, the adaptive parameters 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 encoding 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 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. is below a 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 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. is above a 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, 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, 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 encoded values representing one or more probability estimation parameters, e.g., an encoded index value q, above.
[0094] Furthermore, 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, 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 encoded values representing one or more probability estimation parameters, e.g., an encoded index value q, to.
[0095] Furthermore, the second set of available parameter values includes more available parameter values than the first set of available parameter values, the second set of available tuples of parameter values includes 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 the context model can be executed better when a large number of parameters are decoded, so 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 parameter 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 the probability estimation parameters or probability estimation parameter values can be considered in order to improve the coding efficiency. As a result, the signaling overhead is reduced in small-scale neural networks.
[0099] According to a further embodiment of the present invention, the decoder is configured to evaluate signaling, for example in the form of a dedicated flag, which may be included in the encoded bitstream, for example, and from that signaling, a set of available parameter values, such as 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, possibly overlapping subsets, of a base set, or a set of available tuples of parameter values, such as 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, possibly overlapping subsets, of a base set, 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 is an indication of which mapping rule among a plurality of mapping rules, such as a mapping table, should be used to map 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 k and here, the signaling may be included in the encoded bitstream, for example in the form of a dedicated flag.
[0101] Using information regarding the corresponding set or set of tuples of probability estimation parameters, the selection of the probability estimation parameters can be performed with a low computational cost. 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, 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 parameter values available 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, 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 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 neural network parameters can be equally applied to probability estimation parameters. Therefore, the probability estimation parameters, or bins representing the probability estimation parameters, or index values representing the probability estimation parameters, can be associated with the context model. The advantage of context-dependent encoding is that by encoding / decoding the probability estimation parameters, the neural network parameters can be utilized twice by performing context-dependent encoding / decoding.
[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. If the currently considered index value does not take a default value, the decoder is configured to extract and decode one or more additional bins that represent 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 the context, for example, considering the 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 in the first bin decoding step, for example, further decoding may not be necessary. Therefore, the encoding efficiency can be improved by decoding such a first bin. Since the first bin can always exist, for example, by more complex context-dependent encoding, the encoding efficiency can be improved. For the 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 code, 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 probability can be shortened, and by shortening the code length of frequently occurring indexes, symbols and time can be saved, so the efficiency can be improved.
[0111] According to a further embodiment of the present invention, the decoder is configured to change, according to the quantization mode used to quantize one or more probability estimation parameters, for example, 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, for example, 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, if the number of bins or the maximum number of bins can be selected with respect to the quantization or the expected quantization error, the coding efficiency can be improved.
[0113] According to a further embodiment of the present invention, for example, in the case of 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 achieved. 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 another layer of neural network parameters to be decoded. This flexibility can enable 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 multiple probability estimation parameters, or according to a switch between different mapping rules, to specify the selected probability estimation parameter or one or more probability estimation parameters that specify the selected tuple of probability estimation parameters, for example an integer index q, is configured to change the number of bins or the maximum number of bins used to decode.
[0117] For better understanding, the aspects of the foregoing embodiments regarding the bin representation of probability estimation parameters will be 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, for example, decomposed 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] , where setLength indicates the number of elements in the set.
[0121] 2. In the second step, a unary code is used. The first bin, e.g., 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, 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] It should be noted 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 the one or more state variables to derive a probability estimate, such as p k 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 estimate, such as P(x,i,k).
[0126] The state variables provide an efficient means for evaluating neural network parameters or a probability model, such as a context model, that describes the probability of its bins. As described above, the state variables can also be used for encoding probability estimation parameters. The probability estimation parameters may be decoded using a context model evaluated using the state variables, and the state variables may be updated based on, for example, already decoded or recently decoded probability estimation parameters. For example, the computational cost can be further reduced by using a look-up table as shown in equation (1).
[0127] According to a further embodiment of the present invention, the decoder [Number] and [Number] According to, two state variables s1 k , s2 k derive a probability estimate value p k is configured. Optionally, LUT2 may be as described herein. For example, for all k, for example, N = 2, d1 k = 16, d2 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 [Number] According to, update the state variables s1 k , s2 k . Here, m i k and n i k are weight coefficients, optionally constituting probability estimation parameters. For example, m1 k may be equal to 2 -3 , and m2 k may be equal to 2 -7 . In addition, A may be defined as described herein, for example, a look-up table that stores 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 has different probability estimation parameter values for decoding different neural network parameters, for example, n i kconfigured to change the weight coefficient n so as to use different values of i k and / or so as to use different probability estimation parameter values for decoding bins associated with different context models and / or so as to use different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network.
[0130] According to a further embodiment of the invention, the relationship between the weight coefficient n i k and the adaptation parameter sh i k is defined according to
Equation
[0131] According to a further embodiment of the invention, the decoder is configured to decode information describing the adaptation parameter, for example 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, for example the embodiment described above, the estimator applies a base set of adaptation parameters which is, for example, 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 in 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, and the base set is, for example, (sh1k , sh2 k includes the following 28 pairs for
[0134]
Table 1
[0135] The subset of size 3 is defined and ordered such that, for example, when all 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, for example, as the default parameter.
[0136]
Table 2
[0137] For example, one parameter of the subset is signaled, for example, by encoding q according to encoding scheme 1, where, for example, the bin useNotDefault is encoded using the 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 other encodings, such as any mixture of variable length or fixed length encodings, 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 size of the selected subset (Table 3) is equal to 5 and the pair of assigned adaptation parameters.
[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 of the selected subset (5), and the quantization method used that uses 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] When the layer parameters are quantized using DQ, the 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] 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 Table 2, for example, can always be used. Otherwise, when the number of elements of the layer parameters is above the threshold X, a subset with size 9 in Table 5, for example, shown as the second subset 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 (for example, 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, for example, a list of available pairs (sh1 k , sh2k ) can be included.
[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, when the encoder uses a first quantization mode, for example, uniform quantization URQ, 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. For example, when the encoder uses a second quantization mode, for example, dependent quantization DQ, the encoder selects one or more probability estimation parameters from a second set of available parameter values.
[0157] According to a further embodiment of the present invention, when uniform quantization of one or more probability estimation parameters, for example, 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 a first set of available tuples of parameter values. When variable quantization of one or more probability estimation parameters, for example, 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 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 there can be fewer bins 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 usable parameter values among the second set of usable parameter values enable a faster adaptation of the probability estimate than the usable parameter values among the first set of usable parameter values, for example, with respect to changes in the frequency of bin values. Alternatively, on average, the usable tuples of parameter values among the second set of usable tuples of parameter values enable a faster adaptation of the probability estimate than the usable tuples of parameter values among the first set of usable 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, the second set of usable parameter values includes usable parameter values that enable a faster adaptation of the probability estimate than the usable parameter values among the first set of usable parameter values, or even more, for example, 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 includes usable tuples of parameter values that enable a faster adaptation of the probability estimate than the usable tuples of parameter values among the first set of usable tuples of parameter values, or even more, for example, than all usable tuples, for example, with respect to changes in the frequency of bin values.
[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 different sets of usable, for example, acceptable tuples of parameter values, depending on the number of parameters of the layer 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 extracts and selects one or more probabilistic estimation parameters from a first set of available parameter values, or from a first set of available tuples of parameter values, 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 encoded using one or more selected probabilistic estimation parameters is below the 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., is below the threshold.
[0163] In addition, the encoder extracts and selects 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 the 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 the 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 or above 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 probability estimation parameters are selected from which set of available parameter values, for example, from a small or large set of available parameter values that can be different subsets of the base set, possibly overlapping subsets, or from which set of available tuples of parameter values, for example, from a small or large set of available tuples of parameter values that can be different subsets of the base set, possibly overlapping subsets, using, for example, one or more encoded flags, such as the flag "useSecondSubset".
[0167] According to a further embodiment of the present invention, the encoder is configured to encode one or more index values 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, for example generally integer values, such as index q or a plurality of indexes.
[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 model 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, use only the first bin when the currently considered index value takes a default value.
[0170] In addition, when the index value currently under consideration does not take the default value, the encoder uses a first bin that describes that the index value currently under consideration does not take the default value, and uses one or more additional bins that represent in binary form the index value currently under consideration or a value derived from the index value currently under consideration, such as q-1, to encode the index value currently under consideration.
[0171] Optionally, the first bin indicating whether the index value currently under consideration takes the default value is encoded using a context, for example taking into account a probability estimate value, 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, for example in the case of a unary code or a Huffman code, the number or maximum number of bins used to encode 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, is adapted according to the quantization mode used to quantize one or more probability estimation parameters, for example to 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, for example, in the case of a unary code or a Huffman code, the encoder uses the number of bins or the maximum number of bins used to encode 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 encoded 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 so as to adapt to 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 configured to change the number of bins or the maximum number of bins used to encode one or more probability estimation parameters, such as an integer index q that specifies a selected probability estimation parameter or a selected tuple of probability estimation parameters, according to the switching 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.
[0177] According to a further embodiment of the present invention, the encoder has one or more state variables, such as s i k or s kdetermine 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 estimate, for example, P(x,i,k), to derive a probability estimate, 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 present invention, the encoder
Number
[0180] In addition, A is, for example, a look-up table that can be defined as described herein, for example, stores integer values, 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.
[0181] According to a further embodiment of the present invention, the encoder uses different probability estimation parameter values, for example n i k for encoding different neural network parameters, and / or uses different probability estimation parameter values for encoding bins associated with different context models, and / or uses different probability estimation parameter values for encoding neural network parameters associated with different layers of the neural network, and the weight coefficient n i k is configured to be changed.
[0182] According to a further embodiment of the present invention, the relationship between the weight coefficient n i k and the adaptation parameter sh i k is defined according to
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 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 an embodiment of the present invention. Conversely, features described in the context of an encoder are to be understood, respectively, as features of a decoder. It will be apparent to those skilled in the art that the features of a decoder or decoding method according to an embodiment are equally applicable, mutatis mutandis, to the corresponding encoder, and vice versa. In this context, a decoder can correspond to an encoder, decoding a neural network can correspond to encoding neural network parameters, a previously decoded neural network parameter or its bin can correspond to a previously encoded neural network parameter or its bin, decoding different neural network parameters and bins associated with different context models can correspond to encoding different neural network parameters and bins associated with different context models, and decoding neural network parameters associated with different layers of a neural network can correspond to encoding neural network parameters associated with different layers of a neural network. However, these are merely examples of correspondence, and it will be apparent to those skilled in the art that the features and advantages of a decoder according to an embodiment of the present invention can be interchangeable with the features and advantages of an encoder according to an embodiment of the present invention. The same applies to the descriptions and drawings regarding the encoding / decoding methods 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 a neural network.
[0186] To improve the decoding efficiency, an adaptive selection of probability estimation parameters can be performed using separate coding representations.
[0187] According to a further embodiment of the present invention, the coding representation includes a flag indication indicating which of a plurality of mapping rules should be used to map a coding value representing one or more probability estimation parameters, for example, a coding index value q, to one or more probability estimation parameters, for example, sh i k to sh.
[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 later in this specification can be combined with each other unless otherwise specifically stated.
[0192] FIG. 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 processable 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 of the bitstream and / or error correction or other overhead, 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 bin can be associated with, for example, a context, or in other words, a probability model. The probability estimate can indicate the probability that the 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 estimate.
[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 a context model. 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 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, parameters 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 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 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 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 a first set 412 and another set 414 including, as an example, values d1 k = 15, d2 k = 2, a k = 1.5 -7 and LUT = LUT2. In other words, 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, when uniform quantization of one or more probability estimation parameters is used, the decoder can use a first mapping rule 460 that maps an encoded value representing one or more probability estimation parameters to one or more probability estimation parameters, and when variable quantization of one or more probability estimation parameters is used, the decoder can use a second mapping rule 450 that maps an encoded value representing one or more probability estimation parameters to one or more probability estimation parameters. 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 methods 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 compared to 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 compared to 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 compared to the usable parameter values of the first set of usable parameter values, or the usable parameter values of the first mapping rule, or even compared to 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 compared to the usable tuples of parameter values of the first set of usable tuples of parameter values, or even compared to 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, 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 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 as to 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. Optional bitstream decomposition unit 240 may decompose 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, 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 may include, for example, integer values. In other words, index value q i may 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 may be associated with one or more context models c i . The decoder may use context model c qi qi can be configured to decode the 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, the index value is already determined by the first bin, so 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 as shown for 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 shown in an example for 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 probabilities 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 of bins or the 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 a layer 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 an encoded value 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 of bins or the 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 has one or more state variables, such as s ik or s k is determined and configured to derive a probability estimate value, e.g., p k using one or more state variables.
[0220] Furthermore, the encoded bitstream 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., the 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 bitstream 202 can include separate probability estimation parameters, i.e., the encoded representation of the index value 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., q1 -> r1, q2 -> r2,.... Alternatively, or in addition, as shown in the figure, the separate probability estimation parameter 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] Figure 6 shows a schematic block diagram of a method according to an embodiment of the present invention. Figure 6 shows methods 600, 700 for decoding the weight parameters of a neural network. Methods 600 and 700 are based on an encoded bitstream and a plurality of neural network parameters, e.g., the components w i of the matrix W of the neural network, b, μ, σ 2Obtaining (610, 710) at least one of σ, γ, and / or β, and using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic coding (CABAC), to decode (620, 720) neural network parameters of a neural network, for example, its quantized version. 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, 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 k to obtain (630, 730), for example, a probability estimate value, for example, P(t) or p, that may be associated with a context, for arithmetic decoding of a number representation of a neural network parameter, optionally based on one or more previously decoded neural network parameters or their bins k of the bin. 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, for example, c
[0223] k k associated with the bins. Method 700 further includes using (740) different probability estimation parameter values for decoding neural network parameters associated with different layers of the neural network.
[0224]
[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, also shown as a quantization index, for example. Note that ε is usually not signaled in the bitstream.
[0227] 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, for example, 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 approach 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. Typically, for example, each quantizer within the set uses a mutually 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, which is typically 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 index output by the quantization method is 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. Typically, 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.
[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, 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 estimate value, for example, 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 s1 k ,..., s N k are maintained with N≧1. Each state variable s i k is implemented as, for example, a signed integer value and represents, for example, the probability value P(s i k , i, k)=p i k . The probability estimate value p k of the context model c k is defined as, for example, 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 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).
[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.
Equation
[0240] For example, to achieve a configuration comparable to that used in the current draft of the MPEG-7 Part 17 standard for compression of neural networks for multimedia content description and analysis using two states (N = 2, s1 k , s2 k ), α ≒ 0.99894079 and for all k, β1 k = 16 and β2 kSet it to 1.
[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 will be 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 and this can be optionally optimized for, e.g., compression applications.
[0243] Derivation of probability estimates from state variables (e.g., details are optional). For encoding or decoding symbols, probability estimates are derived from the state variables of the context model. As an example, three alternative methods are presented below. Method 1 yields more accurate results than Methods 2 and 3, but also has a higher computational complexity.
[0244] Method 1 (example) This method 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 to the corresponding probability value p i k according to, e.g., Equation (1).
Equation
[0246] Step 2: The probability estimate p k is derived from the probability value p, for example, according to the following equation. i k
Equation
[0247] 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 of the state variables k is derived, for example, according to the following equation.
Equation
[0248] Next, the probability estimate p k is derived from the weighted sum of the state variable s k for example, according to the following equation.
Equation
[0249] Method 3 (example) Another method for deriving the probability estimate from the state variable is presented below. First, the weighted sum s of the state variables k is derived, for example, as in Method 2. 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
[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 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).
[0251] 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 with, for example, d1 k = 16, d2 k = 1, and a k = 2 -7 for all k. The look-up table containing the probability estimates 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 arbitrary) After encoding or decoding of symbols, one or more state variables of the context model may be updated to track the statistical behavior of the symbol sequence.
[0254] The update is performed, for example, as follows. [Number] A is a look-up table that stores, for example, integer values. m i k and n i k are weight coefficients that control, for example, 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 an offset that ensures, for example, 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 updates, for example.
[0256] For example, the estimation method of VVC according to Method 4 applies an update function for state update 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. 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, m1 k =2 -3 、m2 k =2 -7 and n1 k =2 -1 、n2 k =1, and z = 16 are selected. 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,4,4,0}.
[0258] Before encoding the symbol, s1 k is initialized, for example, with a value in the interval [-127,127], and s2 k is initialized, for example, with a value in the interval [-2047,2047]. As a result, s1 k can be implemented, for example, as an 8-bit signed integer value, and s2 k can be implemented, for example, as a 12-bit signed integer.
[0259] Aspects of the present invention (details are optional) In the following, the parameters, namely, 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 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] 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 sets of estimator parameters according to the number N of states to be applied. According to one aspect of the present invention, the probability estimation, and thus the compression efficiency, is, for example, such that the parameters are layers (i.e., W, b, μ, σ 2 , γ, and β) and / or the context model c k can be improved when individually selected for each parameter or subset of parameters of.
[0261] 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. 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 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 can 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, 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 is encoded, which indicates, for example, (q - 1), indexMinusOne, where q is the index of the selected parameter minus one. The number of bins encoded for the index is, for example,
Number
[0265] 2. In the second step, a unary code is used. The first bin, e.g., 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, when greaterThan_0 = 0, no further bins are encoded. When 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). 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.
[0266] 3. This procedure applies a shortened unary code that is identical to 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_(q MAXAfter encoding (-1), further bins are not encoded. For example, on the decoder side, when greaterThan_(q MAX -1) is equal to 1, the value of q is q MAX is inferred to be.
[0267] 4. This procedure uses a variable-length code, such as a Huffman code, where the code length is selected according to the symbol occurrence probability.
[0268] Preferred embodiment (example, details are optional) In a preferred embodiment, the estimator applies a base set of adaptive parameters, for example, N sets of adaptive parameters sh i k . Next, a subset of the base set is selected. One of the parameters of the subset is signaled.
[0269] 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, and the base set is, for example, (sh1 k , sh2 k ) includes the following 28 pairs.
[0270]
Table 9
[0271] A subset of size 3 is defined and ordered such that, for example, when all parameters of the layer are quantized with DQ, the index q is assigned 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, 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.
[0274] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except that the size of the selected subset (Table 3) is equal to 5 for the pair of assigned adaptation parameters.
[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 size of the selected subset (Table 5) is equal to 9 for the pair of assigned adaptation parameters.
[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 that uses 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] Whenever the layer parameters are quantized using DQ, a subset (of size 9) of the pairs of parameters in Table 5 is 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] 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 having a size of 3 of the pairs of parameters shown as the first subset in Table 2, for example, is used. Otherwise, when the number of elements of the layer parameters is greater than or equal to the threshold X, a subset having a size of 9, for example, shown as the second subset in Table 5 is used.
[0289] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, but instead of using a threshold value, a flag (e.g., useSecondSubset) is encoded, which determines, for example, the subset to be used. For example, if the flag is equal to 0, the first subset is used. If the flag is equal to 1, the second subset is used.
[0290] Alternative embodiments: Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, and a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of a method step also represent a description of the corresponding block or item or feature 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, that stores an electronically readable control signal that cooperates with (or can cooperate with) a programmable computer system so that one of the methods described herein is performed. Thus, the digital storage medium may be computer-readable.
[0292] Some embodiments according to the present invention comprise a data carrier having an electronically readable control signal, which is capable of cooperating with a programmable computer system so that one of the methods described herein is performed.
[0293] Generally, embodiments of the present invention can be implemented as a computer program product having program code, the program code being operative to execute one of the methods when the computer program product operates 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 operates 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 a computer program that executes one of the methods described herein is installed.
[0300] A further embodiment according to the present invention includes 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 that are 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 these aspects.
[0309] It should also be noted that the present disclosure generally describes features that can be used explicitly or implicitly 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 a method can also be used in an apparatus (configured to perform such functions). Further, any features and functions disclosed herein with respect to an 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 an apparatus.
[0311] Also, any of the features and functions described herein can be implemented using 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] Furthermore, note 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 encoded values. Typically, a decoder is designed to maintain synchronization between the encoder and the 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 changes and modifications to 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, wherein the decoder (200) is configured to obtain a plurality of neural network parameters (204) of the neural network based on an encoded bit stream (202), wherein the decoder (200) is configured to decode the neural network parameters of the neural network using context-dependent arithmetic decoding, wherein the decoder (200) is configured to obtain probability estimation values for decoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, wherein the probability estimation parameters affect an adaptation rate of the probability estimation values of the context-dependent arithmetic decoding, wherein 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, A decoder.
2. A decoder (200) for decoding weight parameters of a neural network, wherein the decoder (200) is configured to obtain a plurality of neural network parameters (204) of the neural network based on an encoded bit stream (202), wherein the decoder (200) is configured to decode the neural network parameters of the neural network using context-dependent arithmetic decoding, wherein the decoder (200) is configured to obtain probability estimation values for decoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, The probability estimation parameter affects the adaptation rate of the probability estimation value of the context-dependent arithmetic decoding, 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. **Claim 3** The decoder (200) according to any one of claims 1 and 2, The decoder (200) is configured to use different probability estimation parameter values (230) for adapting the context of decoding different neural network parameters, and / or The decoder (200) is configured to use different probability estimation parameter values (230) for decoding bins associated with different context models, and / or The decoder (200) is configured to use different probability estimation parameter values (230) for adapting the context of decoding neural network parameters associated with different layers of the neural network. Decoder. **Claim 4** The decoder (200) according to any one of claims 1 to 3, The decoder (200) selects one or more probability estimation parameters from a base set (300), or from a proper subset (310, 320, 410, 412, 414, 420) of the base set. Decoder. **Claim 5** The decoder (200) according to any one of claims 1 to 4, The decoder (200) is configured to select one or more probability estimation parameters from different sets (410, 412, 414) of available parameter values or available tuples (430, 440) of parameter values depending on the quantization mode, or The decoder (200) is configured to use different mapping rules (450, 460) to map an encoded value representing one or more probability estimation parameters to the one or more probability estimation parameters depending on the quantization mode. Decoder.
6. The decoder (200) according to any one of claims 1 to 5, when uniform quantization of one or more probability estimation parameters is used, the decoder (200) is configured to extract and select the one or more probability estimation parameters from a first set (410, 412) of available parameter values or from a first set (430) of available tuples of parameter values; when variable quantization of one or more probability estimation parameters is used, the decoder (200) is configured to extract and select the one or more probability estimation parameters from a second set (420, 414) of available parameter values or from a second set (440) of available tuples of parameter values, or when uniform quantization of one or more probability estimation parameters is used, the decoder (200) is configured to use a first mapping rule (460) to map an encoded value representing the one or more probability estimation parameters to the one or more probability estimation parameters; when variable quantization of one or more probability estimation parameters is used, the decoder (200) is configured to use a second mapping rule (450) to map an encoded value representing the one or more probability estimation parameters to the one or more probability estimation parameters; the first set (410, 412) of available parameter values is different from the second set (414, 420) of available parameter values, the first set (430) of available tuples of parameter values is different from the second set (440) of available tuples of parameter values, and / or The second mapping rule (450) is different from the first mapping rule (450). Decoder. **Claim 7** The decoder (200) according to claim 6, wherein On average, among the usable parameter values of the second set (414, 420) of usable parameter values, the usable parameter values enable adaptation of a probability estimation value faster than the usable parameter values of the first set of usable parameter values, or On average, among the usable tuples of parameter values of the second set (440) of usable tuples of parameter values, the usable tuples of parameter values enable adaptation of a probability estimation value faster than the usable tuples of parameter values of the first set (430) of usable tuples of parameter values. Decoder. **Claim 8** The decoder (200) according to claim 6 or 7, wherein The second set (414, 420) of usable parameter values includes usable parameter values that enable adaptation of a probability estimation value faster than the usable parameter values of the first set (410, 412) of usable parameter values, or The second set (440) of usable tuples of parameter values includes usable tuples of parameter values that enable adaptation of a probability estimation value faster than the usable tuples of parameter values of the first set (430) of usable tuples of parameter values. Decoder. **Claim 9** The decoder (200) according to any one of claims 1 to 8, wherein The decoder (200) is configured to select one or more probability estimation parameters, depending on the number of parameters of the layer of the neural network, or depending on the number of neural network parameters to be decoded using the selected one or more probability estimation parameters, or depending on the number of elements of the layer parameters, from different sets (410, 412, 414, 420) of available parameter values or available tuples (430, 440) of parameter values, or The decoder (200) is configured to use different mapping rules (450, 460) to map encoded values representing one or more probability estimation parameters to the one or more probability estimation parameters, depending on the number of parameters of the layer of the neural network, or depending on the number of neural network parameters to be decoded using the selected one or more probability estimation parameters, or depending on the number of elements of the layer parameters. Decoder.
10. The decoder (200) according to claim 9, wherein The decoder (200) is configured to extract and select one or more probability estimation parameters, from a first set (410, 412) of available parameter values or from a first set (430) of available tuples of parameter values, when the number of parameters of the layer of the neural network is below a threshold, or when the number of neural network parameters to be decoded using the selected one or more probability estimation parameters is below a threshold, or when the number of elements of the layer parameters is below a threshold. The decoder (200) is configured to extract and select one or more probability estimation parameters, and when the number of parameters of the layer of the neural network exceeds the threshold, or when the number of neural network parameters to be decoded using the selected one or more probability estimation parameters exceeds the threshold, or when the number of elements of the layer parameters exceeds the threshold, select from a second set (414, 420) of available parameter values or from a second set (440) of available tuples of parameter values, or The decoder (200) is configured to extract and use a first mapping rule (460) that maps an encoded value representing one or more probability estimation parameters to one or more probability estimation parameters when the number of parameters of the layer of the neural network is below a threshold, or when the number of neural network parameters to be decoded using the selected one or more probability estimation parameters is below a threshold, or when the number of elements of the layer parameters is below a threshold, The decoder (200) is configured to extract and use a second mapping rule (450) that maps an encoded value representing one or more probability estimation parameters to one or more probability estimation parameters when the number of parameters of the layer of the neural network exceeds the threshold, or when the number of neural network parameters to be decoded using the selected one or more probability estimation parameters exceeds the threshold, or when the number of elements of the layer parameters exceeds the threshold, The second set (414, 420) of available parameter values includes more available parameter values than the first set (410, 412) of available parameter values, the second set (440) of available tuples of parameter values includes more available tuples than the first set (430) of available tuples of parameter values, and / or The second mapping rule (450) is different from the first mapping rule (450), Decoder.
11. A decoder (200) according to any one of claims 1 to 10, wherein the decoder (200) extracts and selects the one or more probability estimation parameters, and when the number of neural network parameters to be decoded using the selected one or more probability estimation parameters is equal to or greater than a threshold value, is configured to perform selection from an increased number of options. Decoder.
12. A decoder (200) according to any one of claims 1 to 11, wherein the decoder (200) is configured to evaluate signaling as to from which set of available parameter values, or from which set of available tuples of parameter values, the one or more probability estimation parameters are selected, or wherein the decoder (200) is configured to evaluate signaling instructions as to 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. Decoder.
13. A decoder (200) according to any one of claims 1 to 12, wherein the decoder (200) is configured to decode one or more index values that describe a probability estimation parameter value, or describe a plurality of probability estimation parameter values (230), or describe a tuple of probability estimation parameter values (230). Decoder.
14. A decoder (200) according to claim 13, wherein the decoder (200) is configured to decode the one or more index values using one or more context models. Decoder.
15. A decoder (200) according to claim 13 or 14, The decoder (200) is configured to decode a first bin that describes whether the currently considered index value takes a default value, and when the currently considered index value does not take the default value, the decoder (200) is configured to extract and decode one or more additional bins that represent, in binary representation, the currently considered index value or a value derived from the currently considered index value. Decoder.
16. The decoder (200) according to claim 13 or 14, wherein the decoder (200) is configured to decode the one or more index values using single-term code decoding, or using shortened single-term code decoding, or using variable-length code decoding. Decoder.
17. The decoder (200) according to any one of claims 1 to 16, wherein the decoder (200) is configured to change the number or maximum number of bins used to decode the one or more probability estimation parameters according to a quantization mode used to quantize the one or more probability estimation parameters. Decoder.
18. The decoder (200) according to any one of claims 1 to 17, wherein the decoder (200) is configured to change the number or maximum number of bins used to decode the one or more probability estimation parameters depending on the number of parameters of the layer of the neural network, or depending on the number of neural network parameters decoded using the one or more probability estimation parameters, or depending on the number of elements of the layer parameters. Decoder.
19. The decoder (200) according to any one of claims 1 to 18, wherein the decoder (200) is configured to switch between different sets (410, 412, 414, 420) of available parameter values associated with the one or more probability estimation parameters, or between different sets (430, 440) of tuples of available parameter values associated with a plurality of probability estimation parameters, or between different mapping rules (450, 460) for mapping encoded values representing one or more probability estimation parameters to the one or more probability estimation parameters. Decoder. **Claim 20** The decoder (200) according to claim 19, wherein the decoder (200) is configured to change the number or maximum number of bins used to decode the one or more probability estimation parameters that specify a selected probability estimation parameter or a selected tuple of probability estimation parameters according to a switch between different sets (410, 412, 414, 420) of available parameter values associated with the one or more probability estimation parameters, or between different sets (430, 440) of tuples of available parameter values associated with a plurality of probability estimation parameters, or between different mapping rules (450, 460). Decoder. **Claim 21** The decoder (200) according to any one of claims 1 to 20, wherein the decoder (200) is configured to determine one or more state variables and use the one or more state variables to derive the probability estimation values. Decoder. **Claim 22** The decoder (200) according to any one of claims 1 to 21, wherein the decoder (200) **Item 1** and **Item 2** in accordance with two state variables s 1 k , s 2 k to derive a probability estimate value p k A decoder configured as such.
23. The decoder (200) according to claim 22, wherein the decoder (200) is [Equation 3] in accordance with the state variable s 1 k , s 2 k configured to be updated, where m i k and n i k are weighting coefficients, A is a lookup table, z is an offset value, The decoder.
24. The decoder (200) according to claim 23, wherein 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 and / or to use different probability estimation parameter values (230) for decoding neural network parameters associated with different layers of the neural network, and the weighting coefficient n i k is configured to be changed, The decoder.
25. The decoder (200) according to claim 23 or 24, wherein the weighting coefficient n i k and the adaptation parameter sh i k The relationship with 【Number 4】 defined according to decoder.
26. The decoder (200) according to claim 25, wherein the decoder (200) is configured to decode information describing the adaptation parameter decoder.
27. An encoder for encoding the weight parameters of a neural network, wherein 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 arithmetic coding the encoder is configured to obtain probability estimation values for encoding bins of the numerical representation of the neural network parameters using one or more probability estimation parameters the probability estimation parameter affects the adaptation rate of the probability estimation value of the context-dependent arithmetic coding 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.
28. An encoder for encoding the weight parameters of a neural network, wherein 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 arithmetic coding, The encoder is configured to obtain probability estimation values for encoding bins of the numerical representation of the neural network parameters using one or more probability estimation parameters, The probability estimation parameters affect the adaptation rate of the probability estimation values of the context-dependent arithmetic coding, 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.
29. The encoder according to any one of claims 27 and 28, The encoder is configured to use different probability estimation parameter values (230) for adapting the context of encoding different neural network parameters, and / or The encoder is configured to use different probability estimation parameter values (230) for encoding bins associated with different context models, and / or The encoder is configured to use different probability estimation parameter values (230) for adapting the context of encoding neural network parameters associated with different layers of the neural network, Encoder.
30. The encoder according to any one of claims 27 to 29, which is configured to select one or more probability estimation parameters from a base set (300) or from a proper subset (310, 320, 410, 412, 414, 420) of the base set.
31. The encoder according to any one of claims 27 to 30, configured to select one or more probability estimation parameters from different sets (410, 412, 414) of available parameter values or available tuples (430, 440) of parameter values depending on the quantization mode.
32. The encoder is configured to extract and select the one or more probability estimation parameters from a first set (410, 412) of available parameter values or from a first set (430) of available tuples of parameter values when uniform quantization of the one or more probability estimation parameters is used. The encoder is configured to extract and select the one or more probability estimation parameters from a second set (414, 420) of available parameter values or from a second set (440) of available tuples of parameter values when variable quantization of the one or more probability estimation parameters is used. The first set (410, 412) of available parameter values is different from the second set (414, 420) of available parameter values. The first set (430) of available tuples of parameter values is different from the second set (440) of available tuples of parameter values. The encoder according to any one of claims 27 to 31.
33. On average, the available parameter values in the second set (414, 420) of available parameter values enable adaptation of probability estimation values faster than the available parameter values in the first set (410, 412) of available parameter values, or On average, the available tuples of parameter values in the second set (440) of available tuples of parameter values enable adaptation of probability estimation values faster than the available tuples of parameter values in the first set (430) of available tuples of parameter values. The encoder according to claim 32.
34. The second set (414, 420) of available parameter values includes available parameter values that enable adaptation of probability estimates faster than the available parameter values of the first set (410, 412) of available parameter values, or The second set (440) of available tuples of parameter values includes available tuples of parameter values that enable adaptation of probability estimates faster than the available tuples of parameter values of the first set (430) of available tuples of parameter values, An encoder according to claim 32 or 33.
35. The encoder is configured to select one or more probability estimation parameters, depending on the number of parameters of a layer of the neural network, or depending on the number of neural network parameters encoded using the one or more selected probability estimation parameters, or depending on the number of elements of the layer parameters, from different sets (410, 412, 414, 420) of available parameter values or available tuples (430, 440) of parameter values, the encoder according to any one of claims 27 to 34.
36. The encoder is configured to extract and select one or more probability estimation parameters, from the first set (410, 412) of available parameter values or from the first set (430) of available tuples of parameter values when the number of parameters of a layer of the neural network is below a threshold, or when the number of neural network parameters encoded using the 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 encoder is configured to extract and select one or more probability estimation parameters, and when the number of parameters of the layer of the neural network exceeds the threshold, or when the number of neural network parameters encoded using the selected one or more probability estimation parameters exceeds the threshold, or when the number of elements of the layer parameters exceeds the threshold, to select from a second set (414, 420) of available parameter values or from a second set (440) of available tuples of parameter values. The second set (414, 420) of available parameter values includes more available parameter values than the first set (410, 412) of available parameter values, and the second set (440) of available tuples of parameter values includes more available tuples than the first set (430) of available tuples of parameter values. The encoder according to claim 35.
37. The encoder is configured to extract and select the one or more probability estimation parameters, and when the number of neural network parameters encoded using the selected one or more probability estimation parameters is equal to or greater than a threshold, to select from increased options. The encoder according to any one of claims 27 to 36.
38. The encoder is configured to signal from which set (410, 412, 414, 420) of available parameter values or from which set of available tuples (430, 440) of parameter values the one or more probability estimation parameters are selected. The encoder according to any one of claims 27 to 37.
39. The encoder is configured to encode one or more index values that describe a probability estimation parameter value, or that describe a plurality of probability estimation parameter values (230), or that describe a tuple of probability estimation parameter values (230), according to any one of claims 27 to 38.
40. The encoder according to claim 39, wherein the encoder is configured to encode the one or more index values using one or more context models.
41. When the currently considered index value takes a default value, the encoder is configured to encode the currently considered index value using a first bin that describes that the currently considered index value takes the default value, when the currently considered index value does not take the default value, the encoder uses a first bin that describes that the currently considered index value does not take the default value and one or more additional bins that represent the currently considered index value or a value derived from the currently considered index value in a binary representation to encode the currently considered index value. The encoder according to claim 39 or 40.
42. The encoder according to claim 39 or 40, wherein the encoder is configured to encode the one or more index values using a unary code, or a shortened unary code, or a variable length code.
43. The encoder according to any one of claims 27 to 42, wherein the encoder is configured to change the number or the maximum number of bins used to encode the one or more probability estimation parameters according to a quantization mode used to quantize the one or more probability estimation parameters.
44. The encoder is configured to change the number or maximum number of bins used to encode the one or more probabilistic estimation parameters depending on the number of parameters of the layer of the neural network, or depending on the number of neural network parameters to be encoded using the one or more probabilistic estimation parameters, or depending on the number of elements of the layer parameters. The encoder according to any one of claims 27 to 43.
45. The encoder is configured to switch between different sets (410, 412, 414, 420) of available parameter values associated with the one or more probabilistic estimation parameters, or between different sets of tuples (430, 440) of available parameter values associated with a plurality of probabilistic estimation parameters. The encoder according to any one of claims 27 to 44.
46. The encoder is configured to change the number or maximum number of bins used to encode the one or more probabilistic estimation parameters according to the switching between different sets (410, 412, 414, 420) of available parameter values associated with the one or more probabilistic estimation parameters, or between different sets of tuples (430, 440) of available parameter values associated with a plurality of probabilistic estimation parameters, so as to specify the selected probabilistic estimation parameter or the selected tuple of probabilistic estimation parameters. The encoder according to claim 45.
47. The encoder is configured to determine one or more state variables and use the one or more state variables to derive the probabilistic estimation values. The encoder according to any one of claims 27 to 46.
48. The encoder is 【Equation 5】 and 【Equation 6】 According to two state variables s 1 k 、s 2 k to derive the probability estimate value p k The encoder according to any one of claims 27 to 47, which is configured to derive **Claim 49** The encoder is **Equation 7** to update the state variable s according to 1 k s 2 k and is configured to where m i k and n i k are weight coefficients A is a lookup table z is an offset value The encoder according to claim 48. **Claim 50** The encoder is configured to use different probability estimation parameter values (230) for encoding different neural network parameters and / or use different probability estimation parameter values (230) for encoding bins associated with different context models and / or use different probability estimation parameter values (230) for encoding neural network parameters associated with different layers of the neural network, and the weight coefficient n i k is configured to be changed. The encoder according to claim 49. **Claim 51** The relationship between the weight coefficient n i k and the adaptation parameter sh i k is defined according to **Equation 8** The encoder according to claim 49 or 50. **Claim 52** The encoder according to claim 51, which is configured to encode information describing adaptation parameters. **Claim 53** A method (600) for decoding weight parameters of a neural network, comprising: obtaining (610) a plurality of neural network parameters (204) of the neural network based on an encoded bit stream (202); decoding (620) the neural network parameters of the neural network using context-dependent arithmetic decoding; obtaining (630) probability estimation values for decoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, wherein the probability estimation parameters affect an adaptation rate of the probability estimation values of the context-dependent arithmetic decoding; 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. **Claim 54** A method (700) for decoding weight parameters of a neural network, comprising: obtaining (710) a plurality of neural network parameters (204) of the neural network based on an encoded bit stream (202); decoding (720) the neural network parameters of the neural network using context-dependent arithmetic decoding; obtaining (730) probability estimation values for decoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, The probability estimation parameter affects the adaptation rate of the probability estimation value of the context-dependent arithmetic decoding, 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.
55. A method for encoding the weight parameters of a neural network, 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 arithmetic coding, The method includes using one or more probability estimation parameters to obtain probability estimation values for encoding bins of the numerical representation of the neural network parameters, The probability estimation parameter affects the adaptation rate of the probability estimation value of the context-dependent arithmetic coding, 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.
56. A method for encoding the weight parameters of a neural network, 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 arithmetic coding, The method includes obtaining probability estimates for encoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, wherein the probability estimation parameters affect an adaptive rate of the probability estimates of the context-dependent arithmetic coding, and the method includes using different probability estimation parameter values (230) for encoding neural network parameters associated with different layers of the neural network. Method. **Claim 57** A computer program which, when run on a computer, executes the method according to any one of claims 53 to 56. **Claim 58** A decoder (200) for decoding weight parameters of a neural network, wherein the decoder (200) is configured to obtain a plurality of neural network parameters (204) of the neural network based on an encoded bit stream (202), the decoder (200) is configured to decode the neural network parameters of the neural network using context-dependent arithmetic decoding, the decoder (200) is configured to obtain probability estimates for decoding bins of a numerical representation of neural network parameters using one or more probability estimation parameters, for each context model of the context-dependent arithmetic decoding, one or more state variables are maintained to represent probability values, and the one or more probability estimation parameters consist of initialization values of state variables of the context model. 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. 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. **Claim 59**: An encoder for encoding weight parameters of a neural network, 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 arithmetic coding, The encoder is configured to use one or more probability estimation parameters to obtain probability estimation values for encoding bins of the numerical representation of the neural network parameters, For each context model of the context-dependent arithmetic coding, one or more state variables are maintained to represent probability values, The one or more probability estimation parameters consist of initialization values of the state variables of the context model, 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. 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.
Citation Information
Patent Citations
Arithmetic encoder, arithmetic decoder, video encoder, video decoder, encoding method, decoding method, and computer program
JP2021532698A
Image coding method, image decoding method, image coding device and image decoding device
WO2016199330A1
Arithmetic encoders, arithmetic decoders, video encoder, video decoder, methods for encoding, methods for decoding and computer program
WO2020008075A1