Decoder, encoder, method for decoding weight parameters of a neural network and encoding representation using probability estimation parameters

CN123014028APending Publication Date: 2026-10-30FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611333103.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2020-04-14
Filing Date
2021-04-13
Publication Date
2026-10-30

AI Technical Summary

Technical Problem

[0023]作为另一个结果,神经网络参数的编码和/或解码是具有挑战性的

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123014028A_ABST
    Figure CN123014028A_ABST
Patent Text Reader

Abstract

Embodiments according to the present application comprise a decoder for decoding weight parameters of a neural network, wherein the decoder is configured to obtain a plurality of neural network parameters of the neural network, e.g. at least one of entries of a matrix W and / or, based on an encoded bitstream. Further, the decoder is configured to decode the neural network parameters of the neural network, e.g. quantized versions of the neural network parameters, using context-dependent arithmetic decoding, e.g. using context adaptive binary arithmetic decoding (CABAC). Optionally, probabilities of binary bit values can be determined for different contexts, wherein, for example, each binary bit is associated with a context. Further, the decoder is configured to obtain probability estimates using one or more probability estimation parameters, e.g. the probability estimates can be associated with a context, for the arithmetic decoding of binary bits of a numerical representation of a neural network parameter, e.g. based on one or more previously decoded neural network parameters or binary bits thereof. Further, the decoder is configured to decode different neural network parameters using different probability estimation parameter values and / or to decode binary bits associated with different context models using different probability estimation parameter values. Further embodiments comprise a decoder configured to decode neural network parameters associated with different layers of the neural network using different probability estimation parameter values. Respective encoders, methods and encoded representations are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application is a divisional application filed on April 13, 2021, with application number 202180042614.4 (PCT / EP2021 / 059594) and entitled "Decoder, encoder, method for decoding weight parameters of neural networks and coded representation using probability estimation parameters". Technical Field

[0003] Embodiments of the present invention include an encoder, a decoder, a method for encoding weight parameters of a neural network, and an encoded representation using probability estimation parameters. Background of the Invention

[0005] Background information is provided below to better understand the invention. However, it should be noted that the features, functions, and details described in the background information may be selectively used in combination with any embodiment of the invention (alone or in combination).

[0006] For example, in its most basic form, neural networks consist of chains of affine transformations followed by element-level nonlinear functions. For instance, they can be represented as directed acyclic graphs, such as... Figure 1 As shown.

[0007] Figure 1 An example of a graphical representation of a feedforward neural network is shown. Specifically, this 2-layer neural network is a nonlinear function that maps a 4-dimensional input vector to a solid line.

[0008] For example, each node involves a specific value that is propagated forward to the next node, for example, by multiplying it with the corresponding weight value of the edge. Then, all the incoming values ​​are simply summed.

[0009] For example, in mathematics, Figure 1 The neural network will compute the output in the following way:

[0010]

[0011] in

[0012]

[0013] And among them, for example It is a layer affine transformation, and where, for example, It is a layer A certain nonlinear function. A simple example is with layers Associated weight parameters (edge ​​weights) With input Matrix multiplication:

[0014]

[0015] Operators This should represent matrix multiplication.

[0016] For example, so-called convolutional layers can also be used by converting them into matrix-matrix products, as described, for example, in "cuDNN: Efficient Primitives for Deep Learning" (Sharan Chetlur et al.; arXiv: 1410.0759, 2014). From now on, we will refer to the process of computing an output from a given input as inference. Furthermore, we will refer to intermediate results as hidden layers or hidden activations, which constitute a linear transformation plus element-wise nonlinearity, such as the computation of the first dot product above plus nonlinearity.

[0017] The following discussion covers bias and batch normalization in neural networks. More complex variations of the affine transformations of neural network layers include so-called bias and batch normalization operations, such as:

[0018] Formula 1:

[0019]

[0020] in Indicates deviation, and where For batch normalization parameters. It is a weight matrix, for example, with dimension 1. ,as well as It is the input matrix, for example, with dimension 1. For example, deviation and batch normalization parameters It is a length of The transpose of the vector. Operator This represents matrix multiplication. Note that, for example, all other operations on matrices that have vectors (summation, multiplication, division) are element-wise operations on the columns of the matrix. For example, mean Each column and Element-wise multiplication.

[0021] For example, It is a small scalar (such as 0.001) that is needed (or useful) to avoid being divisible by 0. However, it can also be 0. In this case, Equation 1 represents the batch normalization layer. In contrast, if as well as and All vector elements are set to 0, and and If all elements are set to 1, then layers without batch normalization (only bias) are resolved.

[0022] For example, neural networks typically contain millions of parameters and may therefore require hundreds of megabytes for their representation. Consequently, they require significant computational resources to execute because their inference process involves computations of numerous dot products, such as between large matrices. Therefore, reducing the complexity of performing these dot products is crucial.

[0023] As another consequence, encoding and / or decoding neural network parameters is challenging. For example, transmitting millions of parameters of a neural network may require high transmission rates.

[0024] Therefore, there is a need for improved concepts for encoding and / or decoding neural network parameters that offer a good trade-off between compression, complexity, and computational cost.

[0025] This is achieved through the subject matter of the independent claims of this application.

[0026] Further embodiments of the invention are defined by the subject matter of the dependent claims of this application. Summary of the Invention

[0027] Embodiments of the present invention include a decoder for decoding weight parameters of a neural network, wherein the decoder is configured to acquire multiple neural network parameters of the neural network, such as entries of matrix W, based on an encoded bitstream. and / or At least one of them. Furthermore, the decoder is configured to decode the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic decoding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit is associated with a context. Furthermore, the decoder is configured to use one or more probability estimation parameters, such as probability estimator parameters, for example... To obtain probability estimates, for example It can, for example, in context, perform arithmetic decoding of the binary bits of the digital representation of neural network parameters, such as based on one or more previously decoded neural network parameters or their binary bits. Furthermore, the decoder is configured to use different probability estimate parameter values ​​for decoding different neural network parameters and / or use different probability estimate parameter values ​​for decoding with different context models (e.g., ...). Decoding of the associated binary bits.

[0028] A further embodiment of the invention includes a decoder for decoding weight parameters of a neural network, wherein the decoder is configured to acquire multiple neural network parameters of the neural network, such as entries of matrix W, based on an encoded bitstream. and / or At least one of them. Furthermore, the decoder is configured to decode the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic decoding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit is associated with a context. Furthermore, the decoder is configured to use one or more probability estimation parameters, such as probability estimator parameters, for example... To obtain probability estimates, for example It can, for example, be context-dependent, used for, for example, arithmetic decoding of the digital representation of neural network parameters, such as based on one or more previously decoded neural network parameters or their binary bits. Furthermore, the decoder is configured to use different probability estimate parameter values ​​for decoding neural network parameters associated with different layers of the neural network.

[0029] Embodiments of the present invention include an encoder for encoding weight parameters of a neural network, wherein the encoder is configured to acquire a plurality of neural network parameters, such as entries of a matrix W. and / or At least one of them. Furthermore, the encoder is configured to encode the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic coding, for example, context-adaptive binary arithmetic coding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit is associated with a context. Furthermore, the encoder is configured to use one or more probability estimation parameters, such as probability estimator parameters, for example... Obtain probability estimates, for example This can, for example, be context-dependent, used to optionally arithmetically encode the binary representation of the neural network parameters, such as based on one or more previously encoded neural network parameters or their binary bits. Furthermore, the encoder is configured to encode different neural network parameters using different probability estimate parameter values ​​and / or to encode with different context models (e.g., The associated binary bits.

[0030] A further embodiment of the invention includes an encoder for encoding weight parameters of a neural network, wherein the encoder is configured to acquire a plurality of neural network parameters, such as entries of matrix W. and / or Furthermore, the encoder is configured to encode the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic coding, for example, context-adaptive binary arithmetic coding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit is associated with a context. Furthermore, the encoder is configured to use one or more probability estimation parameters, such as probability estimator parameters, for example... Obtain probability estimates, for example It can, for example, be used, in context, to optionally arithmetically encode the binary representation of the neural network parameters, such as based on one or more previously encoded neural network parameters or their binary bits. Furthermore, the encoder is configured to encode neural network parameters associated with different layers of the neural network using different probability estimate parameter values.

[0031] Embodiments of the present invention include a method for decoding weight parameters of a neural network, wherein the method includes obtaining a plurality of neural network parameters, such as entries of a matrix W, based on an encoded bitstream. and / or At least one of the methods, wherein the method includes decoding neural network parameters of a neural network, such as entries of matrix W, using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic decoding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value is determined for different contexts, where, for example, each bit can be associated with a context. Furthermore, the method includes using one or more probability estimation parameters, such as probability estimator parameters, for example... Obtain probability estimates, for example It can, for example, be context-dependent, used for, for example, the binary bits of a numerical representation of neural network parameters, such as based on one or more previously decoded neural network parameters or their binary bits. Furthermore, the method includes using different probability estimate parameter values ​​to decode different neural network parameters and / or using different probability estimate parameter values ​​to decode with different context models (e.g., The associated binary bits.

[0032] A further embodiment of the invention includes a method for decoding weight parameters of a neural network, wherein the method includes obtaining a plurality of neural network parameters, such as entries of a matrix W, based on an encoded bitstream. and / or At least one of them. Furthermore, the method includes decoding the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic decoding, for example, using context-adaptive binary arithmetic decoding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit is associated with a context. Furthermore, the method includes using one or more probability estimation parameters, such as probability estimator parameters, like... Obtain probability estimates, for example It can, for example, be context-dependent, used for, for example, arithmetic decoding of the digital representation of neural network parameters, such as based on one or more previously decoded neural network parameters or their binary bits. Furthermore, the method includes using different probability estimation parameter values ​​to decode neural network parameters associated with different layers of the neural network.

[0033] Embodiments of the present invention include a method for encoding weight parameters of a neural network, wherein the method includes obtaining a plurality of neural network parameters, such as entries of a matrix W. and / or At least one of them. Furthermore, the method includes encoding the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit can be associated with a context. Furthermore, the method includes using one or more probability estimation parameters, such as probability estimator parameters, for example... Obtain probability estimates, for example It can, for example, be context-dependent, used for, for example, the binary bits of a numerical representation of neural network parameters, such as arithmetic encoding, based on one or more previously encoded neural network parameters or their binary bits. Furthermore, the method includes encoding different neural network parameters with different probability estimate parameter values ​​and / or using different probability estimate parameter value pairs with different context models (e.g., The associated binary bits are encoded.

[0034] A further embodiment of the invention includes a method for encoding weight parameters of a neural network, wherein the method includes obtaining a plurality of neural network parameters, such as entries of a matrix W. and / or At least one of them. Furthermore, the method includes encoding the neural network parameters of the neural network, such as entries of matrix W, using context-dependent arithmetic coding, for example, using context-adaptive binary arithmetic coding (CABAC). For example, a quantized version of neural network parameters. Optionally, the probability of a bit value can be determined for different contexts, where, for example, each bit can be associated with a context. Furthermore, the method includes using one or more probability estimation parameters, such as probability estimator parameters, for example... Obtain probability estimates, for example It can, for example, be context-dependent, used for, for example, the binary bits of a numerical representation of neural network parameters, such as those based on one or more previously encoded neural network parameters or their binary bits. Furthermore, the method includes encoding neural network parameters associated with different layers of the neural network using different probability estimation parameter values.

[0035] An embodiment of the invention includes a computer program, which, when run on a computer, performs the method according to the invention.

[0036] Embodiments of the present invention include an encoded representation of weight parameters of a neural network, comprising an encoded representation of a plurality of encoded weight parameters of the neural network and an encoded representation of one or more probability estimation parameters, the one or more probability estimation parameters determining features of an adaptive probability estimate of the context for arithmetic decoding of the encoded weight parameters.

[0037] To better understand the main ideas of the embodiments of the present invention, further optional aspects of neural network parameter encoding and decoding according to the present invention are disclosed below. First, among other things, an effective representation of the parameters according to the embodiments is disclosed. The details explained below are optional.

[0038] parameter These can be collectively referred to as layer parameters or layer parameters. As mentioned above, one or more of these parameters can be examples of neural network parameters. They typically need to be signaled in the bitstream (e.g., in the encoded video representation if the neural network is used in a video decoder). For example, they can be represented as 32-bit floating-point numbers, or quantized to an integer representation, also known as a quantization index. Note that signaling is typically not performed in the bitstream. .

[0039] For example, a particularly efficient method for encoding such parameters is to use a uniform reconstruction quantizer (URQ), where each value is represented as an integer multiple of the so-called quantization step size. For instance, a corresponding floating-point number can be reconstructed by multiplying an integer by the quantization step size, which is typically (but not necessarily) a single floating-point number. However, efficient implementations of neural network inference (i.e., computing the output of a neural network against its input) use integer operations whenever possible. Therefore, requiring parameters to be reconstructed as floating-point representations may be undesirable.

[0040] In another efficient approach to encoding parameters, a set of quantizers is applied, where each value is represented, for example, as an integer multiple of the quantization step size value. Typically, each quantizer in the set uses a disjoint set of integer multiples of the quantization step size parameter as the applicable reconstructed value, but two or more quantizers may share one or more reconstructed values. The applied quantizer depends on, for example, the values ​​of previous quantization metrics in the encoding order. For example, a corresponding floating-point number can be reconstructed by multiplying an integer by the quantization step size, which is typically dependent on the floating-point number of the chosen quantizer. An example of this quantizer design is trellis-coded quantization (TCQ), also referred to as correlated quantization (DQ).

[0041] In a preferred embodiment, a set of two quantizers is used. For example, the first quantizer uses all even multiples of the quantization step size, including zero; and the second quantizer uses all even multiples of the quantization step size, including zero.

[0042] Secondly, among other things, entropy encoding and probability estimation according to embodiments are disclosed. The details explained below are optional and can in particular be combined with the features explained above, relating to the efficient representation of parameters.

[0043] For example, as mentioned above, the quantization index output by the quantization method can then be entropy encoded using a suitable entropy encoding method.

[0044] A particularly suitable entropy coding method for encoding such quantifiers is context-based adaptive binary arithmetic coding, also known as CABAC. For this purpose, each quantifier, for example, is decomposed into a sequence of binary decisions (so-called bins). Typically, each bin is associated with a probabilistic model (also known as a context model) that models the statistics of the associated bins, for example, using probabilistic estimation methods.

[0045] A probability estimator is a device that estimates the probability of a binary bit as equal to... probability Modeling is performed, in which For example, based on the encoded binary bits associated with the probability estimator. This can serve as an example of probability estimation.

[0046] The following examples illustrate typical estimator designs. Details of the estimator design are optional features according to embodiments of the invention, and in particular, can be combined with embodiments that include the features explained above.

[0047] First, a typical estimator design applied to neural network compression is described.

[0048] For example, for each context model Maintain one or more state variables ,in For example, each state variable They are all implemented as signed integer values, and represent, for example, probability values. Context model probability estimation It should be defined, for example, as the probability values ​​of all state variables in the context model. The weighted sum.

[0049] State variables ideally, but not necessarily, possess the following properties:

[0050] 1. If ,So .

[0051] 2. The larger the value, the larger the corresponding value. .

[0052] 3. .

[0053] Therefore, a negative state variable can, for example, correspond to Generally, a different function can be specified for each state variable of each context model. .

[0054] Next, an example configuration for associating state variables with probability values ​​will be explained. The details of state association are optional features according to embodiments of the invention, and in particular, can be combined with embodiments that include the features explained above.

[0055] There are many useful methods to associate state variables with probability values, i.e., to implement... For example, the state representation used in neural network compression can be implemented using the following formula:

[0056]

[0057] It is a weighting factor.

[0058] These are parameters, where .

[0059] For example, in order to achieve a configuration equivalent to that used in the current draft of the MPEG-7 Part 17 standard for compression of neural networks used for multimedia content description and analysis, the standard uses two states. ),set up 0.99894079, and for all .

[0060] This example configuration will provide some insights into how to constrain state variables. Generally, it is not necessary to constrain them. This is because it is not used directly, as can be seen below. Instead, it usually comes from the actual implementation of each part.

[0061] Next, the initialization of the state variables will be explained. The details of the initialization are optional features according to embodiments of the invention, and in particular, can be combined with embodiments that include the features explained above.

[0062] Before encoding or decoding the first symbol using the context model, all state variables can optionally be initialized with the same value, denoted as . For example, these values ​​can be optimized for compression applications.

[0063] Next, the probability estimates derived from the state variables will be explained. The details obtained are optional features according to embodiments of the invention, and in particular can be combined with embodiments that include the features explained above.

[0064] To encode or decode symbols, probability estimates are derived from the state variables of the context model. Three alternative methods are given below as examples. Method 1 yields more accurate results than Methods 2 and 3, but also has higher computational complexity.

[0065] Method 1 (Example)

[0066] This method involves two steps. First, each state variable of the context model is... Convert to probability value Secondly, probability estimates are derived. As a probability value The weighted sum.

[0067] Step 1:

[0068] Use lookup table state variables Convert to the corresponding probability value For example, according to the following formula (1).

[0069] (1)

[0070] • It is a lookup table containing probability values. It is a weighting factor, making adapt Size.

[0071] Step 2:

[0072] Probability Estimation From probability values It is derived, for example, from:

[0073] (2)

[0074] It is a weighting factor that controls the influence of each state variable.

[0075] Method 2 (Example)

[0076] Below is an alternative method for deriving probability estimates from state variables. It produces less accurate results but has lower computational complexity. First, the weighted sum of the state variables is derived. For example, according to:

[0077] (3)

[0078] It is a weighting factor that controls the influence of each state variable.

[0079] Secondly, probability estimation From state variables The weighted sum is derived, for example, from:

[0080] (4)

[0081] It is a lookup table that includes probability estimates. It is a weighting factor, making adapt Size.

[0082] Method 3 (Example)

[0083] The following is a further alternative method for deriving probability estimates from state variables. First, the weighted sum of the state variables is derived. As in Method 2. Secondly, probability estimation. From state variables The weighted sum is derived, for example, from:

[0084] (5)

[0085] It is a lookup table that includes probability estimates.

[0086] Method 4 (Example)

[0087] Further methods utilize the linear relationship between state values ​​and probabilities. The probability estimate is derived, for example, using the method of Equation (2). An example of Method 4 is the probability estimation scheme used in the current draft of Universal Video Coding (VVC).

[0088] For example, to implement the configuration used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, the method of method 3 is used, for example, for all A lookup table containing probability estimates is, for example:

[0089]

[0090] Next, the updating of the state variables will be explained. The details of the update are optional features according to embodiments of the invention, and in particular, can be combined with embodiments that include the features explained above.

[0091] After encoding or decoding symbols, one or more state variables of the context model can be updated to track the statistical behavior of the symbol sequence.

[0092] For example, the update is executed as follows:

[0093] (6)

[0094] A is a lookup table, for example, storing integer values. and It is a weighting factor that controls the "agility" of updates. For example, it can be based on... ,in It is also referred to as the adaptation parameter. It is an offset that ensures, for example, that lookup table A is accessed only using non-negative values.

[0095] For example, you can choose to look up a value in table A so that... The value of A is kept within a specific, given interval. Typically, the value of A is found to approximate, for example, by an update function. Alternatively, the state can be simply updated using a related update function.

[0096] For example, following the VVC estimation method of Method 4, an update function is applied to the state update, and shift bits are used, for example, to determine the “agility” of the update. This corresponds, for example, to the adaptation parameters described above. Embodiments of the invention (see below, for example, explained according to the main ideas of the embodiments) can be applied to them in the same manner.

[0097] For example, in order to implement the configuration used in the current draft of the MPEG-7 Part 17 standard for neural network compression used for multimedia content description and analysis, parameters are selected, for example, such that for all For example, the lookup table A is:

[0098] .

[0099] Before encoding the symbols, For example, an interval should be used. Initialize the value in, and For example, an interval should be used. The values ​​in the initialization are then used. Therefore, This can be implemented, for example, using an 8-bit signed integer value, and This can be implemented, for example, using a 12-bit signed integer.

[0100] As explained in the example above, a probability estimator has several parameters, denoted as probability estimator parameters or estimator parameters (or also called probability estimation parameters), which affect probability estimation, such as the fitness rate. Typically, these estimator parameters are chosen globally based on the application scenario (e.g., encoding neural network parameters). Thus, for example, in neural network encoding, the same set of estimator parameters is applied to each neural network parameter. However, the inventors discovered that compression efficiency can be improved by selecting optimized estimator parameters for the current neural network parameters. Therefore, according to one aspect, the basic idea is to select appropriate estimator parameters from a set of parameters, which are then signaled to the decoder.

[0101] In other words, embodiments of the invention (e.g., as defined in the independent claims) are based on the idea of ​​using different probabilistic estimation parameter values ​​to decode and encode neural network parameters or entities separately, such as bits associated with different contexts related to the neural network parameters. Instead of using a fixed instance of a basic set of probabilistic estimation parameters or probabilistic parameter estimates, adaptive or even optimal individual selections of the probabilistic estimation parameter values ​​can be performed. The selection of probabilistic estimates can be performed based on any suitable criterion, such as prior known features of certain neural network parameters, random features of the context model of certain neural network parameters, or random features of the individual bits of the neural network parameters. For example, it has been recognized that different neural network parameters can include different relevant features, and that adapting the probabilistic estimation parameters to these different relevant features may lead to improved encoding efficiency. For example, depending on the function implemented by the neural network, the correlation strength between adjacent branches or edges (neural network parameters) of the neural network can be different. Furthermore, the expansion of the correlation between edges (or branches) of the neural network can be varied. According to one aspect of the invention, the probabilistic estimation parameter values ​​can be adapted to the relevant features of the neural network (correlation strength / expansion of correlation) (e.g., in a dynamic manner, e.g., even between the encoding of different neural network parameters of a single neural network), thereby resulting in particularly efficient encoding. As another example, it has been recognized that the relevant characteristics of neural network parameters associated with different layers of a neural network can differ significantly in some cases. For instance, if different layers of a neural network reflect convolutions of different sizes (or widths), this can be achieved by encoding or decoding the neural network parameters of different neural network layers using different probability estimation parameter values, resulting in improved encoding efficiency.

[0102] In summary, it has been found that using different probability estimation parameters provides a better trade-off between coding efficiency, complexity, and resource usage when encoding or decoding different neural network parameters, or when encoding or decoding bits associated with different context models. For example, it has been recognized that the overhead that might be required for signaling (or even dynamic signaling) of the actual probability estimation parameter values ​​used could be overcompensated by the improvement in coding efficiency.

[0103] A second aspect of the present invention is that the encoding and / or decoding of probability estimation parameters may include steps similar to or even the same as those for encoding and / or decoding of neural network parameters.

[0104] The inventors recognized that encoding / decoding performance could be improved by adaptively selecting probability estimation parameters, such as all parameters associated with the probability estimator and / or the context model. Like neural network parameters, probability estimator parameters can be encoded / decoded using a similar process. For example, similar to neural network parameters, probability estimation parameters, or integer indices q representing probability parameters, can be encoded / decoded using a sequence of binary bits (e.g., greaterThan_0, greaterThan_1, ...) along with the context model.

[0105] In other words, for the decoder, and vice versa, the decoder according to an embodiment of the invention can acquire an encoded bitstream including neural network parameters. The neural network parameters can be encoded as a sequence of binary bits in the bitstream. These binary bits can be decoded using context-dependent arithmetic decoding (e.g., the same context-dependent arithmetic encoding method used to encode binary bits representing neural network parameters into a bitstream). Therefore, the decoder is configured to use a method including one or more probability estimation parameters (e.g., at least one of the aforementioned probability estimator parameters, such as...). At least one of the probability estimators is used to obtain probability estimates. The decoder can then use different probability estimate parameter values ​​to decode different neural network parameters and / or use different probability estimate parameter values ​​to decode with different context models (e.g., c). k The decoder can use different probability estimation parameter values ​​to decode neural network parameters associated with different layers of the neural network. Decoding and encoding efficiency can be improved by adapting the probability estimation parameter values ​​according to specific characteristics of the neural network parameters, such as the layer or context model of their binary representation.

[0106] In other words, based on one aspect, the parameter, i.e. And / or any other parameters related to the probability estimator, such as the context model, can be collectively referred to as probability estimator parameters or estimator parameters (or probability estimation parameters).

[0107] Typically, for example, for each estimator parameter, a fixed instance from the basic set of probability estimator parameters is chosen for the entire network. This depends on the number of application states. The values ​​of the basic set can also be the estimator parameters. Tuples. According to aspects of the invention, for example, if for each parameter or subset of parameters of the layer (i.e. ) and / or context model By selecting parameters individually, the probability estimation and thus the compression efficiency can be improved.

[0108] For example, the estimator parameters to be used are determined within a set of parameters, which can be a base set or any subset thereof. For instance, each parameter in this set can be associated with an integer index. Associated parameters. For example, one parameter in this group can be represented as a default parameter. For example, a default parameter is typically associated with an integer index equal to zero. Then, for example, the index associated with the selected estimator parameter is signaled to the decoder.

[0109] According to embodiments 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 may include a plurality of available parameter values ​​associated with one or more probability estimation parameters, or the base set may include a plurality of tuples of available parameter values ​​associated with a plurality of probability estimation parameters, such as available pairs. A list.

[0110] By providing a subset, or even a proper subset, of the probability estimation parameters, pairs, tuples, and / or sets of permissible probability estimation parameters that are easily selectable with respect to one or more criteria can be provided. For example, a subset can be selected with less computational effort based on a particular layer of a neural network, for instance, by comparing only the layer ID with a predefined list to select the probability estimation parameters that provide improved decoding efficiency. Furthermore, this selection of subsets can be performed based on a certain type of quantization. By providing a subset, advantageous probability estimation parameters can be provided without requiring a large amount of allocation work. Instead of checking multiple conditions, such as checking one condition for each probability estimation parameter, a single check can be performed, such as the aforementioned comparison of the context model of the layer ID or the binary bits of the neural network parameters with a predefined list or criteria, and the probability estimation parameter or the entire set of probability estimation parameter values ​​can be selected based on this. Furthermore, by providing a base set, signaling workload is reduced, since, for example, an index of the signaling base set rather than the actual parameter values ​​is sufficient.

[0111] According to embodiments of the present invention, the decoder is configured to select one or more probability estimation parameters from different sets of available parameter values ​​or available tuples of parameter values ​​based on a quantization mode, or wherein the decoder is configured to use different mapping rules based on the quantization mode, such as different mapping tables, where different mapping rules represent encoded values ​​of one or more probability estimation parameters, for example, an encoded index value q maps to one or more probability estimation parameters, for example... .

[0112] Optionally, the decoder may select one or more probability estimation parameters from a first set of available parameter values ​​or available tuples of parameter values ​​for the case of using a first quantization mode (e.g., uniform quantization URQ), and the decoder may select one or more probability estimation parameters from a second set of available parameter values ​​for the case of using a second quantization mode (e.g., correlated quantization DQ).

[0113] Optionally, the set of available parameters may, for example, define different associations between index values ​​contained in the coded bit stream and associated probability estimation parameters or associated tuples of probability estimation parameters, wherein, for example, a first set of available parameters defines a mapping from a given index value to a first tuple of probability estimation parameters, and wherein, for example, a second set of available parameters defines a mapping from a given index value to a second tuple of probability estimation parameters that is different from the first tuple.

[0114] It has been recognized that different quantization modes may lead to different stochastic properties (e.g., correlation) of neural network parameters, and therefore improved probability estimation (and thus improved coding efficiency) can be achieved by adapting the choice of probability estimation parameters according to the quantization method.

[0115] According to embodiments of the invention, the decoder is configured to selectively 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 using uniform quantization, such as uniform reconstruction quantization (URQ) or time-invariant quantization, of one or more probability estimation parameters; and the decoder is configured to selectively 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 ​​when using variable quantization, such as trellis-coded quantization (TCQ) or correlation quantization (DQ), wherein, for example, variable quantization, such as DQ, can use more context models than uniform quantization, so that in the case of variable quantization, fewer bits may be decoded for each context model.

[0116] Alternatively, the decoder is configured to use a first mapping rule, such as a first mapping table, when uniform quantization of one or more probability estimation parameters is used, for example, uniform reconstruction quantization (URQ) or time-invariant quantization. This first mapping rule represents the encoded values ​​of one or more probability estimation parameters, for example, the encoded index value q, mapped to one or more probability estimation parameters, such as... .

[0117] Furthermore, the decoder can be configured to use a second mapping rule, such as a second mapping table, when using variable quantization of one or more probability estimation parameters, for example, trellis-coded quantization (TCQ) or correlated quantization (DQ). This second mapping rule represents the encoded values ​​of one or more probability estimation parameters; for example, an encoded index value q maps to one or more probability estimation parameters. Optionally, variable quantization, such as DQ, can use more context models than uniform quantization, thus potentially requiring fewer bits to be decoded for each context model in the case of variable quantization.

[0118] Furthermore, the first set of available parameter values ​​differs from the second set of available parameter values, and the first set of available tuples of parameter values ​​differs from the second set of available tuples of parameter values, and / or the second mapping rule differs from the first mapping rule.

[0119] Therefore, the concepts according to the invention can be applied to any form of quantization, and are not limited to a certain type of quantization. Furthermore, the quantization type and the mapping of set and / or probability estimation parameters can be adapted according to the characteristics of the neural network parameters. Thus, in addition to providing high flexibility, coding efficiency can be improved.

[0120] According to a further embodiment of the 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, allow for faster adaptation of probability estimation, such as faster adaptation to changes in the frequency of binary bit values, compared to 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 parameter values ​​of the second mapping rule, allow for faster adaptation of probability estimation, such as faster adaptation to changes in the frequency of binary bit values, compared to the available tuples of parameter values ​​of the first set of available tuples of parameter values, or for example, the available tuples of parameter values ​​of the first mapping rule.

[0121] This embodiment is based on the discovery that such a concept leads to improved coding efficiency.

[0122] According to a further embodiment of the invention, a second set of available parameter values, or for example, a second mapping rule, includes available parameter values ​​that allow for faster adaptation of probability estimation than the first set of available parameter values, or for example, the available parameter values ​​of the first mapping rule, or even all available parameter values, for example, faster adaptation to changes in the frequency of binary bit values. Alternatively, a second set of available tuples of parameter values ​​includes available tuples of parameter values ​​that allow for faster adaptation of probability estimation than the available tuples of parameter values ​​in the first set of available tuples of parameter values, or even all available tuples, for example, faster adaptation to changes in the frequency of binary bit values.

[0123] This embodiment is based on the discovery that such a concept leads to improved coding efficiency.

[0124] According to a further embodiment of the invention, the decoder is configured to select one or more probability estimation parameters from different sets of available (e.g., permissible) parameter values ​​or available (e.g., permissible) tuples of parameter values ​​based on the number of parameters of the layers of the neural network, or based on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or based on the number of elements of the layer parameters, such as the number of entries of matrix W, or the number of elements of (transposed) vector b, etc.

[0125] Alternatively, the decoder is configured to use different mapping rules, such as different mapping tables, based on the number of parameters of the neural network layers, or based on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or based on the number of elements of the layer parameters, such as the number of entries in matrix W, or the number of elements in (transposed) vector b, etc. These different mapping rules would represent the encoded values ​​of one or more probability estimation parameters; for example, the encoded index value q maps to one or more probability estimation parameters, such as... .

[0126] It has been found that, for estimating the probability of bits with specific values, using a context model, the adaptation parameters of the probability estimator can be selected based on the number of parameters in the neural network to be decoded. For example, the higher the number of decoded bits, the better a random estimate of the probability of these bits can be determined. Therefore, encoding efficiency can be improved.

[0127] According to a further embodiment of the invention, the decoder is configured to selectively 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 ​​if the number of parameters of a layer of the neural network is less than a threshold, for example, X=1000, or the number of neural network parameters to be decoded using one or more selected probability estimation parameters is less than a threshold, or if the number of elements of the layer parameters, such as the number of entries of matrix W, or the number of elements of (transposed) vector b, is less than a threshold.

[0128] Furthermore, the decoder is configured to selectively 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 ​​if the number of parameters of a layer of the neural network is higher than a threshold, such as X=1000, or the number of neural network parameters to be decoded using one or more selected probability estimation parameters is higher than a threshold, or if the number of elements of a layer parameter, such as the number of entries in matrix W, or the number of elements in (transposed) vector b, is higher than a threshold.

[0129] Alternatively, the decoder is configured to selectively use a first mapping rule, such as a first mapping table, if the number of parameters of a layer in the neural network is below a threshold, for example, X=1000, or the number of neural network parameters to be decoded using one or more selected probability estimation parameters is below a threshold, or if the number of elements of a layer parameter, such as the number of entries in matrix W or the number of elements in (transposed) vector b, is below a threshold. The first mapping rule represents the encoded values ​​of one or more probability estimation parameters, for example, the encoded index value q maps to one or more probability estimation parameters, for example... .

[0130] Furthermore, the decoder is configured to selectively use a second mapping rule, such as a second mapping table, if the number of parameters of a layer in the neural network exceeds a threshold (e.g., X=1000), or the number of neural network parameters to be decoded using one or more selected probability estimation parameters exceeds a threshold, or the number of elements of a layer parameter, such as the number of entries in matrix W or the number of elements in (transposed) vector b, exceeds a threshold. The second mapping rule maps encoded values ​​representing one or more probability estimation parameters, such as encoded index values ​​q, to ​​one or more probability estimation parameters, for example... .

[0131] 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, and / or the second mapping rule is different from the first mapping rule.

[0132] It has been found that selecting probability estimation parameters based on a specific threshold can provide a computationally inexpensive possibility of tuning the probability estimation parameters. As previously mentioned, if a large number of parameters are decoded, and therefore the probability estimation parameters can be tuned according to that number, statistical adaptation, such as for context models, can be performed better. Furthermore, signaling overhead (e.g., the number of bits required to encode the probability estimation parameters or the index of the set of probability estimation parameters) can be reduced because the signaling is limited to the probability estimation parameters (or the set of probability estimation parameters) that are well-suited to the neural network under consideration.

[0133] According to a further embodiment of the invention, the decoder is configured to selectively select one or more probability estimation parameters from an increased selection if the number of neural network parameters to be decoded using one or more selected probability estimation parameters is greater than or equal to a threshold, for example, X=1000.

[0134] It has been found that as the number of neural network parameters to be decoded increases, more degrees of freedom can be presented regarding the stochastic characteristics of the neural network parameters (such as their correlations). Therefore, as the number of neural network parameters increases, it is possible to increase the number of probability estimation parameters or their values ​​to improve coding efficiency. Consequently, signaling overhead is reduced for small neural networks.

[0135] According to a further embodiment of the invention, the decoder is configured to evaluate signaling, which may be included, for example, in the coded bitstream, as a special flag, to select one or more probability estimation parameters from which set (e.g., small set or large set) of available parameter values ​​from a plurality of sets of available parameter values ​​(which may be different and potentially overlapping subsets of the base set) or from which set (e.g., small set or large set) of available tuples of parameter values ​​from a plurality of sets of available tuples of parameter values ​​(which may be different and potentially overlapping subsets of the base set), for example, using one or more decoded flags, such as the flag "useSecondSubset".

[0136] Alternatively, the decoder is configured to evaluate signaling, which may be included in the encoded bitstream, for example, as a special flag, indicating which of several mapping rules (e.g., mapping tables) should be used to represent the encoded values ​​of one or more probability estimation parameters, such as an encoded index value q mapped to one or more probability estimation parameters, e.g., sh. i k .

[0137] By utilizing information about the set of tuples containing the corresponding set or probability estimation parameters, the selection of probability estimation parameters can be performed with low computational cost. Furthermore, by transmitting such signaling, the probability of errors in using different probability estimation parameters in the decoder rather than the encoder can be reduced. Similarly, beneficial mapping rules, such as those used in an encoder for encoding coded bitstreams, can be transmitted via such signaling.

[0138] For example, by providing such signaling, the encoding can be adapted to the characteristics of the neural network. For instance, a first set of available tuples for parameter values ​​can be selected for a first type of neural network (e.g., because the first set of available parameter values ​​better suits the statistics of a first type of neural network), and a second set of available tuples for parameter values ​​can be selected for a second type of neural network. For example, for a neural network, signaling the selection of available tuples for parameter values ​​only once is sufficient (or at least less than the actual selection of a single set of parameter values). Therefore, encoding efficiency can be improved.

[0139] According to a further embodiment of the invention, the decoder is configured to decode one or more index values, typically integer values ​​such as index q or multiple indices, describing probability estimation parameter values, or describing multiple probability estimation parameter values, or describing tuples of probability estimation parameter values ​​such as index q.

[0140] By using index values, probability estimation parameters can be represented in a way that is easily compressed. Similar to neural network parameters, probability estimation parameters can be encoded and thus decoded, providing improved encoding / decoding efficiency.

[0141] According to a further embodiment of the invention, the decoder is configured to decode one or more index values ​​using one or more context models. For example, the context model can determine the probability of a binary bit value for decoding one or more bits of the index value.

[0142] Following a key idea of ​​this invention, the sequence of encoding / decoding neural network parameters can be similarly applied to probability estimation parameters. Therefore, probability estimation parameters, either representing binary bits or index values, can be associated with a contextual model. The benefits of context-sensitive encoding can be utilized twice, with the encoding / decoding of probability estimation parameters used to perform context-sensitive encoding / decoding of neural network parameters.

[0143] According to a further embodiment of the invention, the decoder is configured to decode a first binary bit, such as the useNotDefault binary bit, which describes whether the currently considered index value uses a default value, and the decoder is configured to selectively decode one or more additional binary bits that represent the currently considered index value or the value derived therefrom (e.g., q-1) in binary representation if the currently considered index value does not use a default value.

[0144] Optionally, context decoding can be used to indicate whether the currently considered index value takes the first bit of the default value, for example, considering probability estimation, while decoding one or more additional bits in a fixed length of 1 bit per bit.

[0145] Decoding such a first binary bit can improve encoding efficiency because if the neural network parameters are identified as default values ​​(e.g., in the first binary bit decoding step), further decoding may not be necessary. Since the first binary bit is likely to always be present, more complex context-dependent encoding can provide improved encoding efficiency, for example. For additional binary bits that may not always be present, less complex encodings can be implemented, such as encodings with fixed probabilities.

[0146] According to a further embodiment of the invention, the decoder is configured to decode one or more index values ​​using unary code decoding, or using truncated unary code decoding, or using variable-length code decoding, wherein the code length is optionally selected according to the probability of occurrence of different index values. Using unary codes allows for prefix-free and self-synchronizing codes. Furthermore, using variable-length codes allows index values ​​with high occurrence probabilities to have short code lengths, thereby allowing for improved efficiency, since using short code lengths for frequently occurring indices saves symbols and time.

[0147] According to a further embodiment of the invention, the decoder is configured to change the number of binary bits or the maximum number of binary bits according to the quantization mode used to quantize one or more probability estimation parameters. For example, in the case of unary codes or Huffman codes, the binary bits are used to decode one or more probability estimation parameters, for example, to specify the integer index q of the selected probability estimation parameter or the selected tuple of the probability estimation parameter, for example, to adapt to the selected set of available parameter values ​​or the selected set of available tuples of parameter values.

[0148] Given a specific quantization method, a certain level of accuracy or precision can be achieved in probabilistically estimating parameters. Therefore, if the number of bits or the maximum number of bits can be chosen with respect to the quantization or the expected quantization error, coding efficiency can be improved.

[0149] According to a further embodiment of the invention, the decoder is configured to vary the number of bits or the maximum number of bits based on the number of parameters of the layers of the neural network, or based on the number of neural network parameters to be decoded using one or more probability estimation parameters, or based on the number of elements of the layer parameters, such as the number of entries in matrix W, or the number of elements in (transposed) vector b, etc. For example, in the case of unary codes or Huffman codes, the bits are used to decode one or more probability estimation parameters, for example, specifying the integer index q of the selected probability estimation parameter or the selected tuple of the probability estimation parameter, to, for example, adapt to the selected set of available parameter values ​​or the selected set of available tuples of parameter values.

[0150] Encoding efficiency can be improved by varying the number of bits used in the probability estimation parameters of the decoding network with respect to the number of neural network parameters. A good trade-off can be achieved between accuracy, computational cost, and time commitment. Furthermore, the randomness of the bits can be determined based on the number of neural network parameters; for example, by utilizing an increased number of neural network parameters that depend on the context model, the model can be adapted to the context model more accurately.

[0151] According to a further embodiment of the invention, the decoder 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 multiple probability estimation parameters, or to map encoded values ​​(e.g., encoded index values ​​q) representing one or more probability estimation parameters to one or more probability estimation parameters (e.g., ...). Switching between different mapping rules is possible. For example, this switching can be performed after switching to the parameters of another layer of the neural network to be decoded. This flexibility allows for more sophisticated adaptations of decoding to improve encoding efficiency.

[0152] According to a further embodiment of the invention, the decoder is configured to change the number of bits or the maximum number of bits based on switching between different sets of available parameter values ​​associated with one or more probability estimation parameters, or switching between different sets of tuples of available parameter values ​​associated with multiple probability estimation parameters, or switching between different mapping rules. For example, in the case of unary codes or Huffman codes, the bits are used to decode one or more probability estimation parameters, such as specifying the integer index q of a selected probability estimation parameter or a selected tuple of probability estimation parameters.

[0153] To better understand, the aspects of the binary representation of the probability estimation parameters in the above embodiments will be explained below in the context of embodiments including the encoding process. Therefore, an encoding scheme with optional details is disclosed below.

[0154] For example, the index to be encoded The data is broken down into a sequence of binary bits, and then the sequence of binary bits is encoded. For example, a contextual model or a fixed probability can be used to encode each binary bit.

[0155] For example, the encoding process can be carried out according to one of the following schemes:

[0156] 1. The first binary bit, such as useNotDefault, indicates whether the estimator parameter to be selected is different from the default parameter (e.g., useNotDefault=1) or the same as the default parameter (e.g., useNotDefault=0). If, for example, useNotDefault=0, the default parameter is selected, and no other binary bits are encoded.

[0157] For example, whenever useNotDefault=1, a series of binary bits, such as additional binary bits, are encoded, representing, for example, the index of the selected parameter minus one. ), indexMinusOne. For example, the number of binary bits encoded for an index is equal to ,in Indicates the number of elements in the set.

[0158] 2. For the second process, unary codes are used. The first binary bit, for example, greaterThan_0, represents the index associated with the probability parameter. Is it greater than 0 (e.g., greaterThan_0 = 1) or not greater than 0 (e.g., greaterThan_0 = 0)? If, for example, greaterThan_0 = 0, then no other binary bits are encoded. If, for example, greaterThan_0 = 1, another, for example, additional binary bit is encoded (e.g., greaterThan_1), which represents the index. The value is either greater than 1 (e.g., greaterThan_1 = 1) or not greater than 1 (greaterThan_1 = 0). If, for example, greaterThan_1 = 0, then no other bits are encoded. For example, if greaterThan_1 = 0, then the other bits (greaterThan_X) will be encoded in the same way until the flag greaterThan_ is set. It equals 0.

[0159] 3. This process uses truncated unary codes, for example, the same unary codes used in encoding method 2, except for the encoding... The index equals In this case, for example, in the case of the binary bits greaterThan_

[0160] After encoding, no further encoding is performed on the remaining binary bits. For example, on the decoder side, if greaterThan_ If it equals 1, then The value is inferred as .

[0161] 4. This process uses variable-length codes, where the code length is chosen based on the probability of the symbol appearing, such as Huffman codes.

[0162] It should be noted that any of these schemes can be used in any embodiment of the present invention. It will be apparent to those skilled in the art that a scheme used for encoding can be used for decoding, and vice versa.

[0163] According to a further embodiment of the invention, the decoder is configured to determine one or more state variables using one or more state variables, such as 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), for example... or And derive probability estimates, for example .

[0164] State variables provide an effective means of evaluating probabilistic models, such as context models describing neural network parameters or their binary representations. As previously mentioned, state variables can also be used to encode probabilistic estimation parameters. Probabilistic estimation parameters can be decoded using context models and evaluated using state variables, for example, by updating state variables based on already decoded or, for example, recently decoded probabilistic estimation parameters. Using lookup tables, as shown in Equation (1), can also reduce computational costs.

[0165] According to a further embodiment of the invention, the decoder is configured to determine the following from two state variables. Derive probability estimates

[0166]

[0167] as well as

[0168] ,

[0169] Optionally, LUT2 can be as described herein, and where, for example, N=2, for example, for all , where k is the context model index.

[0170] According to an embodiment of the present invention, the decoder is configured to update state variables according to the following

[0171] ,

[0172] in and These are weighting factors and can optionally constitute the probability estimation parameters, where, for example... It can equal 2 -3 , and among them It can equal 2 -7 Furthermore, A is a lookup table, for example, storing integer values, which may be limited as described herein. Additionally, z is an offset value, for example, a predetermined value, which may be equal to 16. Optionally, It can be initialized, for example, as described in this article.

[0173] According to a further embodiment of the invention, the decoder is configured to change the weighting factor. In order to use different probability estimation parameter values, for example, Different values ​​of are used to decode different neural network parameters and / or different probability estimation parameter values ​​are used to decode the bits associated with different context models and / or different probability estimation parameter values ​​are used to decode the neural network parameters associated with different layers of the neural network.

[0174] According to a further embodiment of the present invention, based on Limited weighting factor With adaptation parameters The relationship between them.

[0175] According to a further embodiment of the invention, the decoder is configured to decode information describing the adaptation parameters, such as the index q of the tuple describing the adaptation parameters, wherein the meaning of the decoded index value q may optionally be defined as provided in Table 2, Table 3, Table 4, Table 5, Table 6, or Table 7 below. These tables are examples of mapping rules or mapping tables.

[0176] In a preferred embodiment, such as the embodiment described above, the estimator applies, for example, a basic set of adaptation parameters, which are adaptation parameters. of Tuples. Then select a subset of the basic set. One parameter in the subset can be signaled.

[0177] For example, in a particularly preferred embodiment, the configuration is equal to that of the previously preferred embodiment, but an estimator is used, which is configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, and the basic set contains the following 28 pairs for... :

[0178] Table 1: Optimal Basic Set of Adaptation Parameters

[0179] 0 (0,0) 14 (2,3) 1 (0,1) 15 (2,4) 2 (0,2) 16 (2,5) 3 (0,3) 17 (2,6) 4 (0,4) 18 (3,3) 5 (0,5) 19 (3,4) 6 (0,6) 20 (3,5) 7 (1,1) 21 (3,6) 8 (1,2) 22 (4,4) 9 (1,3) 23 (4,5) 10 (1,4) 24 (4,6) 11 (1,5) 25 (5,5) 12 (1,6) 26 (5,6) 13 (2,2) 27 (6,6)

[0180] For example, a subset of size 3 is bounded and sorted such that, according to the index in Table 2... Assignment, for example, in the case of all parameters of a layer quantized using DQ. For example, indexing. The parameters are represented as default parameters:

[0181] Table 2: Optimal subsets of the fitness parameters for a set of size 3

[0182] Adaptation parameter pair 0 (1,4) 1 (0,1) 2 (2,6)

[0183] For example, a parameter in a subset is signaled, for example, by encoding according to scheme 1. Encoding is performed, where, for example, the binary bit `useNotDefault` is encoded using a context model, while all other binary bits are encoded with a fixed length of 1 bit per binary bit. Generally, according to embodiments of the invention, any mixture of context-dependent encoding and / or other encodings (e.g., variable-length or fixed-length encoding) can be applied to any binary bit of the probability estimation parameters and / or neural network parameters.

[0184] 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) with the sum of the assigned adaptation parameter pairs equal to 5 is the same.

[0185] Table 3: Optimal subsets of the fitness parameters for a set size of 5

[0186] Adaptation parameter pair 0 (1,4) 1 (0,0) 2 (0,6) 3 (1,1) 4 (2,6)

[0187] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the assigned adaptation parameter pairs (Table 4):

[0188] Table 4: The second preferred subset with an adaptation parameter of size 5

[0189] Adaptation parameter pair 0 (1,2) 1 (0,0) 2 (0,5) 3 (2,5) 4 (3,4)

[0190] 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) with the sum of the assigned adaptation parameter pairs equal to 9 is the same.

[0191] Table 5: Optimal subsets of fitness parameters for a set size of 9

[0192] Adaptation parameter pair 0 (1,4) 1 (0,0) 2 (0,5) 3 (1,1) 4 (1,2) 5 (2,4) 6 (2,6) 7 (3,4) 8 (3,5)

[0193] In another preferred embodiment (example), the configuration is the same as in the previous preferred embodiment, except for the assigned adaptive parameter pairs (Table 6).

[0194] Table 6: The second preferred subset with an adaptation parameter of size 9

[0195] Adaptation parameter pair 0 (1,3) 1 (0,0) 2 (0,5) 3 (1,1) 4 (1,6) 5 (2,4) 6 (2,6) 7 (3,5) 8 (4,4)

[0196] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the assigned fitness parameter pairs (Table 7), the size of the selected subset (5), and the quantization method used (using URQ):

[0197] Table 7: Optimal subsets of the fitness parameters for set size 5 and URQ

[0198] Adaptation parameter pair 0 (1,4) 1 (0,6) 2 (1,1) 3 (2,6) 4 (3,4)

[0199] In another preferred embodiment (example), an estimator is used, which is configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, and uses the basic set in Table 1. This is represented as the basic configuration.

[0200] Whenever the layer parameters are quantized using DQ, a subset of parameter pairs (of size 9) from Table 5 can be applied. If the layer parameters are quantized using URQ, a subset from Table 8 can be used.

[0201] Table 8: Optimal subsets of the fitness parameters for a set size of 9

[0202] Adaptation parameter pair 0 (1,4) 1 (0,1) 2 (0,6) 3 (1,2) 4 (1,6) 5 (2,5) 6 (2,6) 7 (3,4) 8 (3,5)

[0203] In another preferred embodiment (example), the basic configuration of the previous preferred embodiment can be applied.

[0204] Whenever the number of elements in the layer parameter falls below a threshold For example, you can set Then, a subset of parameter pairs of size 3, as shown in Table 2, can be used as the first subset. Otherwise, if the number of elements in the layer parameters is greater than or equal to the threshold... Then, a subset of size 9, as shown in Table 5, can be used as the second subset.

[0205] In another preferred embodiment (example), the configuration is the same as in the previous preferred embodiment, but instead of using a threshold, a flag (e.g., useSecondSubset) is encoded, which determines, for example, the subset to be used. For example, if the flag is equal to zero, the first subset can be used. If the flag is equal to 1, the second subset can be used.

[0206] According to a further embodiment of the 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.

[0207] Optionally, the basic set may include multiple available parameter values ​​associated with one or more probability estimation parameters, or the basic set may include multiple tuples of available parameter values ​​associated with multiple probability estimation parameters, such as available pairs ( , A list of ).

[0208] According to a further embodiment of the 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 ​​based on a quantization mode. For example, the encoder selects one or more probability estimation parameters from a first set of available parameter values ​​or a first set of available tuples of parameter values ​​for the case of using a first quantization mode (e.g., uniform quantization URQ), and for example, the encoder selects one or more probability estimation parameters from a second set of available parameter values ​​for the case of using a second quantization mode (e.g., correlated quantization DQ).

[0209] According to a further embodiment of the invention, the encoder is configured to selectively 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 using uniform quantization, such as uniform reconstruction quantization (URQ) or time-invariant quantization, of one or more probability estimation parameters; and the encoder is configured to selectively 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 ​​when using variable quantization, such as trellis-coded quantization (TCQ) or correlation quantization (DQ), of one or more probability estimation parameters. Optionally, variable quantization, such as DQ, can use more context models than uniform quantization, so that in the case of variable quantization, fewer bits may be needed to be encoded for each context model.

[0210] Furthermore, the first set of available parameter values ​​differs from the second set of available parameter values, and the first set of available tuples of parameter values ​​differs from the second set of available tuples of parameter values.

[0211] According to a further embodiment of the invention, on average, the available parameter values ​​of the second set of available parameter values ​​allow for faster adaptation of probability estimation, such as faster adaptation to changes in the frequency of binary bit values, than the available parameter values ​​of the first set of available parameter values. Alternatively, on average, the available tuples of parameter values ​​of the second set of available tuples of parameter values ​​allow for faster adaptation of probability estimation, such as faster adaptation to changes in the frequency of binary bit values, than the available tuples of parameter values ​​of the first set of available tuples of parameter values.

[0212] According to a further embodiment of the invention, a second set of available parameter values ​​includes available parameter values ​​that allow for faster adaptation of probability estimation, e.g., faster adaptation to changes in the frequency of binary bit values, compared to the available parameter values ​​in the first set of available parameter values, or even all available parameter values. Alternatively, a second set of available tuples of parameter values ​​includes available tuples of parameter values ​​that allow for faster adaptation of probability estimation, e.g., faster adaptation to changes in the frequency of binary bit values, compared to the available tuples of parameter values ​​in the first set of available tuples of parameter values, or even all available tuples.

[0213] According to a further embodiment of the invention, the encoder is configured to select one or more probability estimation parameters from different sets of available (e.g., permissible) parameter values ​​or available (e.g., permissible) tuples of parameter values ​​based on the number of parameters of the layers of the neural network, or based on the number of neural network parameters to be encoded using one or more selected probability estimation parameters, or based on the number of elements of the layer parameters, such as the number of entries of matrix W or the number of elements of (transposed) vector b, etc.

[0214] According to a further example of the invention, the encoder is configured to selectively 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 ​​if the number of parameters of a layer of a neural network is less than a threshold, for example, X=1000, or the number of neural network parameters to be encoded using one or more selected probability estimation parameters is less than a threshold, or if the number of elements of a layer parameter, such as the number of entries of a matrix W or the number of elements of a (transposed) vector b, is less than a threshold.

[0215] Furthermore, the encoder is configured to selectively 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 ​​if the number of parameters of a layer of the neural network is higher than a threshold, such as X=1000, or the number of neural network parameters to be encoded using one or more selected probability estimation parameters is higher than a threshold, or if the number of elements of a layer parameter, such as the number of entries in matrix W or the number of elements in (transposed) vector b, is higher than a threshold.

[0216] 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.

[0217] According to a further embodiment of the invention, the encoder is configured to selectively select one or more probability estimation parameters from an increased selection if the number of neural network parameters to be encoded using one or more selected probability estimation parameters is greater than or equal to a threshold, for example, X=1000.

[0218] According to a further embodiment of the invention, the encoder is configured to signal one or more probability estimation parameters from which set (e.g., small set or large set) of available parameter values ​​from a plurality of sets of available parameter values ​​(which may be different and potentially overlapping subsets of the base set) or from which set (e.g., small set or large set) of available tuples of parameter values ​​from a plurality of sets of available tuples of parameter values ​​(which may be different and potentially overlapping subsets of the base set), for example using one or more encoded flags, such as the flag "useSecondSubset".

[0219] According to a further embodiment of the invention, the encoder is configured to encode one or more index values, typically integer values ​​such as index q or multiple indices, describing probability estimation parameter values, or describing multiple probability estimation parameter values, or describing tuples of probability estimation parameter values ​​such as index q.

[0220] According to a further embodiment of the invention, the encoder is configured to encode one or more index values ​​using one or more context models. For example, the context model can determine the probability of a binary bit value for encoding one or more binary bits of the index value.

[0221] According to a further embodiment of the invention, the encoder is configured to encode the currently considered index value using a first binary bit describing that the currently considered index value uses a default value, or for example, using only the first binary bit, if the currently considered index value adopts a default value.

[0222] Furthermore, the encoder is configured to encode the currently considered index value using a first binary bit describing that the currently considered index value does not use a default value, and one or more additional binary bits representing the currently considered index value or a value derived therefrom (e.g., q-1) in binary representation, if the currently considered index value does not use a default value.

[0223] Optionally, the first binary bit indicating whether the currently considered index value is encoded using the default value is used in context, such as considering probability estimation, while one or more additional binary bits are encoded with a fixed length of 1 bit per binary bit.

[0224] According to a further embodiment of the invention, the encoder is configured to encode one or more index values ​​using unary codes, truncated unary codes, or variable-length codes, wherein the code length is optionally selected based on the probability of different index values ​​occurring.

[0225] According to a further embodiment of the invention, the encoder is configured to change the number of binary bits or the maximum number of binary bits according to the quantization mode used to quantize one or more probability estimation parameters. For example, in the case of unary codes or Huffman codes, the binary bits are used to encode one or more probability estimation parameters, for example, to specify the integer index q of the selected probability estimation parameter or the selected tuple of the probability estimation parameter, for example, to adapt to the selected set of available parameter values ​​or the selected set of available tuples of parameter values.

[0226] According to a further embodiment of the invention, the encoder is configured to vary the number of bits or the maximum number of bits based on the number of parameters of the layers of the neural network, or based on the number of neural network parameters to be encoded using one or more probability estimation parameters, or based on the number of elements of the layer parameters, such as the number of entries in matrix W, or the number of elements in (transposed) vector b, etc. For example, in the case of unary codes or Huffman codes, the bits are used to encode one or more probability estimation parameters, such as specifying the integer index q of the selected probability estimation parameter or the selected tuple of the probability estimation parameter, for example, to adapt to the selected set of available parameter values ​​or the selected set of available tuples of parameter values.

[0227] According to a further embodiment of the 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 multiple probability estimation parameters.

[0228] According to a further embodiment of the invention, the encoder is configured to change the number of bits or the maximum number of bits based on switching between different sets of available parameter values ​​associated with one or more probability estimation parameters, or switching between different sets of tuples of available parameter values ​​associated with multiple probability estimation parameters. For example, in the case of unary codes or Huffman codes, the bits are used to encode one or more probability estimation parameters, such as specifying the integer index q of the selected probability estimation parameter or the selected tuple of the probability estimation parameter.

[0229] According to a further embodiment of the invention, the encoder is configured to use one or more state variables, such as 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... Determine one or more state variables, for example or And derive probability estimates, for example .

[0230] According to a further embodiment of the invention, the encoder is configured to operate based on the following two state variables. Derive probability estimates

[0231]

[0232] as well as

[0233] .

[0234] Alternatively, LUT2 can be as described herein, and for example, N=2, for example, for all , where k is the context model index.

[0235] According to a further embodiment of the invention, the encoder is configured to update state variables according to the following

[0236]

[0237] in and These are weighting factors, and, for example, constitute the probability estimation parameters, where, for example... It can equal 2 -3 , and among them It can equal 2 -7 .

[0238] Furthermore, A is a lookup table, for example, storing integer values, which may be limited as described herein, and z is an offset value, for example, a predetermined value, which may be equal to 16. Optionally, It can be initialized, for example, as described in this article.

[0239] According to a further embodiment of the invention, the encoder is configured to change the weighting factor. In order to use different probability estimation parameter values, for example Different values ​​are used for encoding different neural network parameters and / or different probability estimation parameter values ​​are used for encoding binary bits associated with different context models and / or different probability estimation parameter values ​​are used for encoding neural network parameters associated with different layers of the neural network.

[0240] According to a further embodiment of the present invention, based on Limited weighting factor With adaptation parameters The relationship between them.

[0241] According to a further embodiment of the invention, the encoder is configured to encode information describing adaptation parameters, such as the index q of a tuple describing the adaptation parameters, wherein, for example, the meaning of the encoded index value q may be defined as provided in Table 2, Table 3, Table 4, Table 5, Table 6, or Table 7.

[0242] In the context of the decoder, all features explained above, and all features to be explained below according to embodiments of the invention, are understood as features of the encoder, respectively. Conversely, features explained in the context of the encoder are understood as features of the decoder, respectively. It will be apparent to those skilled in the art that the features of the decoder or the decoding method according to the embodiments can be applied to the corresponding encoder in the same or similar manner, and vice versa. In this context, the decoder may correspond to the encoder, the decoding neural network may correspond to the encoding neural network parameters, previously decoded neural network parameters or their binary bits may correspond to previously encoded neural network parameters or their binary bits, the decoding of different neural network parameters and the decoding of binary bits associated with different context models may correspond to the encoding of different neural network parameters and the encoding of binary bits associated with different context models, and the decoding of neural network parameters associated with different layers of the neural network may correspond to the encoding of neural network parameters associated with different layers of the neural network. However, these are merely corresponding examples, and it will be apparent to those skilled in the art that the features and advantages of the decoder according to embodiments of the invention are interchangeable with the features and advantages of the encoder according to embodiments of the invention. The descriptions and figures regarding the encoding / decoding methods in the detailed description of the embodiments also apply.

[0243] According to a further embodiment of the invention, the encoded representation includes separate encoded representations of individual probability estimation parameters associated with different neural network parameters and / or individual probability estimation parameters associated with different context models and / or individual probability estimation parameters associated with different layers of the neural network.

[0244] By using a separate encoding representation, adaptive selection of probability estimation parameters can be performed to improve decoding efficiency.

[0245] According to a further embodiment of the invention, the encoded representation includes determining which of a plurality of mapping rules will 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 (e.g., ...). ( ) signage. Attached Figure Description

[0246] The accompanying drawings are not necessarily drawn to scale; the focus is generally on illustrating the principles of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, wherein:

[0247] Figure 1 An example of a graphical representation of a feedforward neural network is shown;

[0248] Figure 2 A schematic block diagram of a decoder according to an embodiment of the present invention is shown;

[0249] Figure 3 A schematic representation of an example of the selection of probability estimation parameters according to an embodiment of the present invention is shown;

[0250] Figure 4 A schematic representation of an example of a decoder selection entity according to an embodiment of the present invention is shown;

[0251] Figure 5 A schematic representation illustrating an coded bitstream according to an embodiment of the invention and index values ​​describing probability estimation parameter values ​​are shown; and

[0252] Figure 6 A schematic block diagram of a method according to an embodiment of the present invention is shown. Detailed Implementation

[0253] Equal or equivalent elements, or elements with equal or equivalent functions, even if they appear in different figures, are indicated by equal or equivalent reference numerals in the following description.

[0254] In the following description, several details are set forth to provide a more comprehensive explanation of embodiments of the invention. However, it will be apparent to those skilled in the art that embodiments of the invention can 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 invention. Furthermore, unless otherwise specifically stated, features of the different embodiments described herein can be combined with each other.

[0255] Figure 2 A schematic block diagram of a decoder according to an embodiment of the present invention is shown. Decoder 200 includes a context-dependent arithmetic decoding unit 210, a probability estimator 220, and probability estimation parameter values ​​230. Optionally, decoder 200 includes a bitstream decomposition unit 240 and a parameter reconstruction unit 250. Decoder 200 can be configured to receive an encoded bitstream 202. The encoded bitstream 202 may include information about multiple neural network parameters.

[0256] Optional bitstream decomposition unit 240 may be configured to convert the encoded bitstream 202 into processable information for context-dependent arithmetic decoding unit 210. This function may be provided by decoding unit 210, therefore the illustration of decomposition unit 240 is for illustrative purposes only. The decomposition unit may be configured to decompose the encoded bitstream 20 into one part including information about the encoded neural network parameters and another part, such as a flag indicating the start of the bitstream and / or bits for error correction or other overhead.

[0257] Decoding unit 210 can be configured to decode encoded neural network parameters to provide, for example, multiple decoded neural network parameters 204. To decode the neural network parameters, decoding unit 210 is configured to receive probability estimates from probability estimator 220. The neural network parameters can be encoded as a sequence of binary bits in bit stream 202. One or more binary bits can represent neural network parameters. For example, the binary bits can be associated with a context, or in other words, with a probability model. The probability estimate can indicate the probability that a binary bit has a specific value (e.g., 1 or 0). The probability estimate can be determined based on the context of the binary bit, or in other words, its probability model. Probability estimator 220 includes probability estimation parameters to determine the probability estimate.

[0258] The decoder or context-dependent arithmetic decoding unit 210 is configured to use different probability estimation parameter values ​​for decoding different neural network parameters. Therefore, by adapting the probability estimation parameters, the random, unique characteristics of the neural network parameters can be taken into account. Furthermore, or alternatively, the decoder or context-dependent arithmetic decoding unit 210 can be configured to use different probability estimation parameter values ​​to decode bits associated with different context models. Individual bits or sets of bits can be associated with a context model. The context model can be adapted based on, for example, recently decoded neural network parameters or their bits. Therefore, the parameterization of the probability estimator 220 can be adapted for individual bits or individual context models associated with bits. An optional parameter reassembly unit 250 can be configured to reassemble the decoded bits into neural network parameters and / or can be configured to interpret the decoded entities provided by the decoding unit 210 to provide multiple neural network parameters 204. 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.

[0259] However, decoder 200 can alternatively or additionally be configured to decode neural network parameters associated with different layers of the neural network using different probability estimation parameter values. Information about the layer of specific neural network parameters can be encoded in a bitstream and can trigger changes in the probability estimation parameter values ​​230.

[0260] Figure 3A schematic representation of an example of the selection of probability estimation parameters according to an embodiment of the present invention is shown. As an example, Figure 3 The probability estimation parameters for methods 1-4 and the probability estimation parameters used to update the context model are shown. The decoder can select one or more probability estimation parameters from the base set 300, such as parameters 310 and / or 320. As shown with parameters 310 and 320, these parameters can be a proper subset of the base set 300.

[0261] Therefore, the decoder can be configured not only to use different probability estimation parameter values, but also to use different probability estimation parameters. The decoder can use any of methods 1 to 4, and therefore only requires a subset of the probability estimation parameters of the base set 300.

[0262] Furthermore, the decoder can not only select the probability estimation parameters, but also select the values ​​of the probability estimation parameters. For example, in the first selection step, the decoder can select parameter 310. In subsequent steps, the decoder can also select from different subsets of the probability estimation parameter values ​​for these probability estimation parameters. That is, for each probability estimation parameter, there can be multiple sets of acceptable probability estimation parameter values, and the decoder can select the probability estimation parameter and its corresponding value.

[0263] Figure 4 A schematic representation of an example of a decoder selection entity according to an embodiment of the present invention is shown. The decoder can be configured to select one or more probability estimation parameters from different sets 410, 420 of available parameter values, wherein, as an example, set 410 includes subset 412 (parameters according to method 3) and subset 414. Although methods 1-4 and the update of the state variables have already been explained in the context of encoding and / or decoding of the neural network parameters themselves, it should be noted that similar or equivalent methods and context model updates can be performed for encoding and / or decoding of the probability estimation parameters, and therefore these parameters are shown herein. Furthermore, or alternatively, the decoder can select from the available sets of tuples of parameter values ​​430, 440 and / or different mapping rules, shown herein as examples in the form of Tables 5, 450 and 7, 460. The selection of probability estimation parameter values, tuples, or mappings can be performed based on quantization patterns. It should be noted that different sets of available parameter values ​​can include the same probability estimation parameter but with different values. The decoder can select between a first set 412 and another set 414, including, for example, values In other words, adjustments can be made regarding the parameters used for encoding / decoding and the corresponding values ​​of those parameters. However, it should be noted that, according to the embodiments, only the selection of values ​​can be performed, for example, decoder decisions between sets 412 and 414, where the selection of parameters is not limited to the parameters shown in method 3.

[0264] For example, in the case of uniform quantization using one or more probability estimation parameters, the decoder can selectively 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. For example, in the case of uniform quantization, the decoder can choose between sets 412 and 414. On the other hand, in the case of variable quantization using one or more probability estimation parameters, the decoder can selectively 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, in the case of uniform quantization using one or more probability estimation parameters, the decoder can use a first mapping rule 460, which maps encoded values ​​representing one or more probability estimation parameters to one or more probability estimation parameters, and in the case of variable quantization using one or more probability estimation parameters, it can use a second mapping rule 450, which maps encoded values ​​representing one or more probability estimation parameters to one or more probability estimation parameters. The first and second sets, tuples, and mapping rules may differ from each other.

[0265] It is important to note that different sets, tuples, and mapping rules may include different probability estimation parameters, for example, calculated according to different methods 1-4, or may include the same probability estimation parameter but with different values. Therefore, the decoder may optionally first select a computation routine, and then select its parameterization, or in other words, its value. Alternatively, the decoder may select only the probability estimation parameter value based on the quantization mode, for example, between sets 412 and 414, or for example, between tuples 430 and 440 that describe the same probability estimation parameter but have different values.

[0266] As another optional feature, on average, the second set of available parameter values ​​or the available parameter values ​​of the second mapping rule can allow probability estimation to adapt faster than the first set of available parameter values ​​or the available parameter values ​​of the first mapping rule, for example, faster adaptation to changes in the frequency of binary bit values. Alternatively, on average, the second set of available tuples of parameter values ​​or the available tuples of parameter values ​​of the second mapping rule can allow probability estimation to adapt faster than the first set of available tuples of parameter values ​​or the available tuples of parameter values ​​of the first mapping rule, for example, faster adaptation to changes in the frequency of binary bit values.

[0267] Optionally, the second set of available parameter values ​​or the second mapping rule may include available parameter values ​​that allow for faster adaptation of probability estimation than the available parameter values ​​of the first set of available parameter values ​​or the first mapping rule, or even all available parameter values, for example, faster adaptation to changes in the frequency of binary bit values. Alternatively, the second set of available tuples of parameter values ​​may include available tuples of parameter values ​​that allow for faster adaptation of probability estimation than the available tuples of parameter values ​​of the first set of available tuples of parameter values, or even all available tuples, for example, faster adaptation to changes in the frequency of binary bit values.

[0268] Furthermore, sets 410 and 420 can be available, or for example, permitted parameter values, and tuples 430 and 440 can be available, or for example, permitted tuples. The decoder can select these sets or tuples based on or according to the number of parameters of the neural network layers, or according to the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or according to the elements and number of layer parameters. Similarly, the use of different mapping rules 450 and 460 can be performed by the decoder based on the number of neural network parameters to be decoded using one or more selected probability estimation parameters, or according to the number of elements of the layer parameters.

[0269] As another optional feature, the decoder can be configured to selectively 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 ​​if the number of parameters of a layer of the neural network is less than a threshold, such as X=1000, or if the number of neural network parameters to be decoded using one or more selected probability estimation parameters is less than a threshold, or if the number of elements of the layer parameters is less than a threshold.

[0270] Furthermore, the decoder can be configured to selectively 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 ​​if the number of parameters of a layer of the neural network is higher than a threshold, or if the number of neural network parameters to be decoded using one or more selected probability estimation parameters is higher than a threshold, or if the number of elements of a layer parameter is higher than a threshold.

[0271] Alternatively, the decoder is configured to selectively use a first mapping rule that maps encoded values ​​representing one or more probability estimation parameters to one or more probability estimation parameters if the number of parameters of a layer of the neural network is less than a threshold, or if the number of neural network parameters to be decoded using one or more selected probability estimation parameters is less than a threshold, or if the number of elements of a layer parameter is less than a threshold, and the decoder can be configured to selectively use a second mapping rule that maps encoded values ​​representing one or more probability estimation parameters to one or more probability estimation parameters if the number of parameters of a layer of the neural network is greater than a threshold, or if the number of neural network parameters to be decoded using one or more selected probability estimation parameters is greater than a threshold, or if the number of elements of a layer parameter is greater than a threshold.

[0272] In this scenario, the second set of available parameter values ​​may include more available parameter values ​​than the first set, and the second set of available tuples of parameter values ​​may include more available tuples than the first set. Furthermore, or alternatively, the second mapping rule may differ from the first mapping rule.

[0273] Figure 5 A schematic representation of an example coded bitstream and index values ​​describing probability estimation parameter values ​​according to an embodiment of the invention is shown. As an example, bitstream 202 includes a flag indication F, or in other words, signaling in the form of a flag F. However, this signaling can be transmitted in any suitable manner. The decoder can evaluate the flag F to determine which set of available parameter values ​​or which set of available tuples of parameter values ​​to select one or more probability estimation parameters. Alternatively, the decoder can be configured to evaluate which of a plurality of mapping rules should be used to map the coded values ​​representing one or more probability estimation parameters to the signaling indication of one or more probability estimation parameters. Thus, the decoder, according to... Figure 4 The selection of sets, tuples, and / or mappings can be based on signaling, for example, in the form of an encoded flag F. Optional bitstream decomposition unit 240, for example, can decompose bitstream 202 into flags indicating the sets, tuples, and / or mappings to be used for decoding, as well as into information about probability estimation parameter values.

[0274] like Figure 5 As shown, bit stream 202 may include one or more index values ​​q. i (Here, i=1, 2, and 3 are shown as examples), for example, an integer value describing the probability estimation parameter value, or an integer value describing multiple probability estimation parameter values, or an integer value describing a tuple of probability estimation parameter values. In other words, the index value q i It can be a coded representation of one or more probability estimation parameters.

[0275] The decoder can be configured to decode one or more index values ​​q. i For example, using signaling. Additionally, one or more index values ​​q i It can be used with one or more context models c qi Associated, and the decoder can be configured to use the context model c qi Decode index value q i .

[0276] An index value can be represented by one or more binary bits. The first binary bit, such as fbin, describes whether the currently considered index value uses a default value. If the index value uses a default value, then the index value can include only one binary bit, because the index value has already been determined by the first binary bit. Otherwise, the index value can be represented by one or more additional binary bits, for example, using the binary bit addbin. j The form is represented as follows: j = 1, 2, 3. The decoder can be configured to decode the first binary bit and optionally additional binary bits. Any of these binary bits can be associated with a context, for example, respectively. Optionally, the index value q i Context c qi It can be associated with the first binary bit of the index value, and additional binary bits can be decoded at a fixed length per binary bit.

[0277] In addition, bit stream 202 includes integer multiples of r i As an example, i = 1, 2, 3, associated with neural network parameters. Based on the index value q i It can perform context adaptation for arithmetic decoding of encoded neural network parameters, where the encoded neural network parameters can be the encoded weight parameters of the neural network, which are integer multiples of r. i express.

[0278] As another optional feature, the decoder can be configured to decode one or more index values ​​using unary codes, truncated unary codes, or variable-length codes, wherein, for example, the code length is selected based on the probability of different index values ​​occurring. According to embodiments, any suitable encoding techniques can be applied, for example, separately for different index values, providing improved flexibility and encoding efficiency.

[0279] Furthermore, the decoder can be configured to change the number of bits or the maximum number of bits used to decode one or more probability estimation parameters based on the quantization mode used to quantize one or more probability estimation parameters, and / or based on the number of parameters of the layers of the neural network, or based on the number of neural network parameters to be decoded using one or more probability estimation parameters, or based on the number of elements of the layer parameters.

[0280] 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 used to map encoded values ​​representing one or more probability estimation parameters to one or more probability estimation parameters. The decoder can switch between set 410 (and / or between sets 412, 414) and 420, and / or between tuples 430, 440 and / or between different mappings 450, 460, such as... Figure 4 As shown.

[0281] Furthermore, the decoder can perform the aforementioned change in the number of bits or the maximum number of bits based on switching between different sets, tuples, and / or mapping rules.

[0282] Furthermore, the decoder can be configured to determine one or more state variables, such as s i k or s k And use one or more state variables to derive a probability estimate, such as p k .

[0283] Furthermore, the encoded bitstream 202 can be an encoded representation of the weight parameters of the neural network, including integer multiples of r. i The encoded representation of multiple weight parameters and one or more probability estimation parameters in a neural network of the form q, i.e., the index value q. i .

[0284] As shown in the figure, the encoded representation of the bitstream in the form of 202 can include a separate encoded representation of the individual probability estimation parameters, namely the index value q. i (Here, as an example, i = 1, 2, 3). These index values ​​q i It can be associated with different neural network parameters, for example Alternatively or additionally, as shown in the figure, the probability parameter q can be estimated separately. i It can be used with different context models c qi Correlation. As another optional feature, individual probability estimation parameters can be correlated with different layers of the neural network.

[0285] Figure 6 A schematic block diagram of a method according to an embodiment of the present invention is shown. Figure 6 Methods 600 and 700 for decoding weight parameters of a neural network are illustrated. Methods 600 and 700 involve obtaining multiple neural network parameters of a 610 or 710 neural network based on an encoded bitstream, such as entries w of matrix W. i , b, μ, σ 2At least one of σ, γ, and / or β, using context-dependent arithmetic decoding, for example, decoding the neural network parameters of a 620 or 720 neural network using Context Adaptive Binary Arithmetic Decoding (CABAC), for example, its quantized version. Optionally, the probability of the bit value is determined for different contexts, where, for example, each bit is associated with a context. Methods 600 and 700 further include using one or more probability estimation parameters, for example, probability estimator parameters, such as... Obtain 630 and 730 probability estimates, such as P(t) or p k For example, probability estimates can be context-dependent and used to optionally arithmetically decode the binary representation of the neural network parameters, for example, based on one or more previously decoded neural network parameters or their binary representations.

[0286] Method 600 also includes using 640 different probability estimation parameter values ​​to decode different neural network parameters and / or using different probability estimation parameter values ​​to decode with different context models (e.g., c). k The associated binary bits.

[0287] On the other hand, method 700 includes using 740 different probability estimation parameter values ​​to decode neural network parameters associated with different layers of the neural network.

[0288] Further embodiments and aspects

[0289] Further embodiments, including aspects and features that can be incorporated into any of the foregoing embodiments, are disclosed below.

[0290] Valid representation of parameters (examples, details are optional)

[0291] parameter These are collectively referred to as layer parameters or layer parameters. They typically need to be signaled in the bitstream (e.g., in the encoded video representation if the neural network is used in a video decoder). For example, they can be represented as 32-bit floating-point numbers, or quantized to an integer representation, also known as quantization metrics. Note that signaling is usually not performed in the bitstream. .

[0292] For example, a particularly efficient method for encoding such parameters is to use a uniform reconstruction quantizer (URQ), where each value is represented as an integer multiple of the so-called quantization step size. For instance, a corresponding floating-point number can be reconstructed by multiplying an integer by the quantization step size, which is typically (but not necessarily) a single floating-point number. However, efficient implementations of neural network inference (i.e., computing the output of a neural network against its input) use integer operations whenever possible. Therefore, requiring parameters to be reconstructed as floating-point representations may be undesirable.

[0293] In another efficient approach to encoding parameters, a set of quantizers is applied, where each value is, for example, represented as an integer multiple of the quantization step size value. Typically, each quantizer in the set uses a disjoint set of integer multiples of the quantization step size parameter as the applicable reconstructed value, but two or more quantizers may share one or more reconstructed values. The applied quantizers depend on, for example, the values ​​of previous quantization metrics in the encoding order. For example, a corresponding floating-point number can be reconstructed by multiplying an integer by the quantization step size, which is typically a floating-point number dependent on the chosen quantizer.

[0294] An example of this quantizer design is trellis-coded quantization (TCQ), also known as correlated quantization (DQ).

[0295] In a preferred embodiment, a set of two quantizers is used. For example, the first quantizer uses all even multiples of the quantization step size, including zero, and the second quantizer uses all even multiples of the quantization step size, including zero.

[0296] Entropy coding and probability estimation (examples, details are optional)

[0297] For example, the quantized index output by the quantization method is then entropy encoded using an appropriate entropy encoding method.

[0298] A particularly suitable entropy coding method for encoding such quantization metrics is context-based adaptive binary arithmetic coding, also known as CABAC. For this purpose, each quantization metric, for example, is decomposed into a sequence of binary decisions (so-called bits).

[0299] For example, typically each bit is associated with a probabilistic model (also known as a context model), which models the statistics of the associated bit, for example, using probabilistic estimation methods.

[0300] A probability estimator is a device that estimates the probability of a binary bit as equal to... probability Modeling is performed, in which For example, based on the encoded binary bits associated with the probability estimator.

[0301] For example, a probability estimator has several parameters, denoted as probability estimator parameters or estimator parameters (or also called probability estimation parameters), which affect probability estimation, such as the fitness rate. Typically, these estimator parameters are chosen globally based on the application scenario (e.g., the encoding of neural network parameters). Therefore, for example, in neural network encoding, the same set of estimator parameters is applied to each neural network parameter.

[0302] However, it has been found that compression efficiency can be improved by selecting optimized estimator parameters for the current neural network parameters. Therefore, according to one aspect, the basic idea is to select appropriate estimator parameters from a set of parameters, which are then signaled to the decoder.

[0303] Typical estimator design (example, details optional)

[0304] First, a typical estimator design applied to neural network compression is described.

[0305] For example, for each context model Maintain one or more state variables ,in For example, each state variable They are all implemented as signed integer values, and represent, for example, probability values. Context model probability estimation It should be defined, for example, as the probability values ​​of all state variables in the context model. The weighted sum.

[0306] State variables ideally, but not necessarily, possess the following properties:

[0307] 1. If ,So .

[0308] 2. The larger the value, the larger the corresponding value. .

[0309] 3. .

[0310] Therefore, a negative state variable can, for example, correspond to Generally, a different function can be specified for each state variable of each context model. .

[0311] Example configuration for associating state variables with probability values ​​(example, details are optional)

[0312] There are many useful methods to associate state variables with probability values, i.e., to implement... For example, the state representation used in neural network compression can be implemented using the following formula:

[0313]

[0314] It is a weighting factor.

[0315] · is a parameter, where .

[0316] For example, in order to achieve a configuration equivalent to that used in the current draft of the MPEG-7 Part 17 standard for compression of neural networks used for multimedia content description and analysis, the standard uses two states. ,set up 0.99894079, and for all .

[0317] This example configuration will provide some insights into how to constrain state variables. Generally, it is not necessary to constrain them. This is because it is not used directly, as can be seen below. Instead, it usually comes from the actual implementation of each part.

[0318] Initialization of state variables (example, details are optional)

[0319] Before encoding or decoding the first symbol using the context model, it is optional to utilize the representation as The same values ​​are used to initialize all state variables; for example, these values ​​can be optimized for compression applications.

[0320] Deriving probability estimates from state variables (example, details optional)

[0321] To encode or decode symbols, probability estimates are derived from the state variables of the context model. Three alternative methods are given below as examples. Method 1 yields more accurate results than Methods 2 and 3, but also has higher computational complexity.

[0322] Method 1 (Example)

[0323] This method involves two steps. First, each state variable of the context model is... Convert to probability value Secondly, probability estimates are derived. As a probability value The weighted sum.

[0324] Step 1:

[0325] Use lookup table state variables Convert to the corresponding probability value For example, according to the following formula (1).

[0326] (1)

[0327] • It is a lookup table containing probability values.

[0328] It is a weighting factor, making adapt Size.

[0329] Step 2:

[0330] Probability Estimation From probability values It is derived, for example, from:

[0331] (2)

[0332] It is a weighting factor that controls the influence of each state variable.

[0333] Method 2 (Example)

[0334] Below is an alternative method for deriving probability estimates from state variables. It produces less accurate results but has lower computational complexity. First, the weighted sum of the state variables is derived. For example, according to:

[0335] (3)

[0336] It is a weighting factor that controls the influence of each state variable.

[0337] Secondly, probability estimation From state variables The weighted sum is derived, for example, from:

[0338] (4)

[0339] It is a lookup table that includes probability estimates.

[0340] It is a weighting factor, making adapt Size.

[0341] Method 3 (Example)

[0342] The following is a further alternative method for deriving probability estimates from state variables. First, the weighted sum of the state variables is derived. As in Method 2. Secondly, probability estimation. From state variables The weighted sum is derived, for example, from:

[0343] (5)

[0344] It is a lookup table that includes probability estimates.

[0345] Method 4 (Example)

[0346] Further methods utilize the linear relationship between state values ​​and probabilities. The probability estimate is derived, for example, using the method of Equation (2). An example of Method 4 is the probability estimation scheme used in the current draft of Universal Video Coding (VVC).

[0347] For example, to implement the configuration used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, the method of method 3 is used, for example, for all A lookup table containing probability estimates is, for example:

[0348]

[0349] Updates to state variables (example, details optional)

[0350] After encoding or decoding symbols, one or more state variables of the context model can be updated to track the statistical behavior of the symbol sequence.

[0351] For example, the update is executed as follows:

[0352] (6)

[0353] A is a lookup table, for example, storing integer values.

[0354] and It is a weighting factor that controls the "agility" of updates. For example, it can be based on... in It is also referred to as the adaptation parameter.

[0355] It is an offset, for example, it ensures that lookup table A is accessed only using non-negative values.

[0356] For example, you can choose to look up a value in table A so that... Stay within a specific given range.

[0357] Typically, finding the value of A approximates, for example, an update function. Alternatively, a simple state update can be performed using a related update function.

[0358] For example, VVC estimation methods, following Method 4, apply an update function to the state update and use shift bits, for example, to determine the "agility" of the update. This corresponds, for example, to the adaptation parameters described above. The present invention (see below) can be applied to them in the same manner.

[0359] For example, in order to implement the configuration used in the current draft of the MPEG-7 Part 17 standard for neural network compression used for multimedia content description and analysis, parameters are selected, for example, such that for .

[0360] For example, the lookup table A is:

[0361] .

[0362] Before encoding symbols, For example, an interval should be used. Initialize the value in, and For example, an interval should be used. Initialize the values ​​in the table.

[0363] therefore, This can be implemented, for example, using an 8-bit signed integer value, and This can be implemented, for example, using a 12-bit signed integer.

[0364] Aspects of the invention (details are optional)

[0365] In the following text, the parameter, i.e. And any other parameters related to the probability estimator (context model) should be collectively referred to as probability estimator parameters or estimator parameters (or probability estimation parameters).

[0366] Typically, for example, for each estimator parameter, a fixed instance of a basic set of probability estimator parameters is chosen for the entire network. This depends on the number of application states. The values ​​of the basic set can also be the estimator parameters. Tuples. According to aspects of the invention, for example, if for each parameter or subset of parameters of the layer (i.e. ) and / or context model By selecting parameters individually, one can, for example, improve probability estimation and thus increase compression efficiency.

[0367] For example, the estimator parameters to be used are determined within a set of parameters, which can be a base set or any subset thereof. For instance, each parameter in this set can be associated with an integer index. Associated parameters. For example, one parameter in this group can be represented as a default parameter. For example, a default parameter is typically associated with an integer index equal to zero. Then, for example, the index associated with the selected estimator parameter is signaled to the decoder.

[0368] Encoding scheme (example, details are optional)

[0369] For example, the index to be encoded The data is broken down into a sequence of binary bits, which are then encoded. For example, each binary bit can be encoded using a contextual model or with a fixed probability.

[0370] For example, the encoding process can be carried out according to one of the following schemes:

[0371] 1. The first binary bit, such as useNotDefault, indicates whether the estimator parameter to be selected is different from the default parameter (e.g., useNotDefault=1) or the same as the default parameter (e.g., useNotDefault=0). If, for example, useNotDefault=0, the default parameter is selected, and no other binary bits are encoded.

[0372] For example, whenever useNotDefault=1, a series of binary bits are encoded, representing, for example, the index of the selected parameter minus one. ), indexMinusOne. For example, the number of binary bits encoded for an index is equal to ,in Indicates the number of elements in the set.

[0373] 2. For the second process, unary codes are used. The first binary bit, for example, greaterThan_0, represents the index associated with the probability parameter. The value is either greater than 0 (e.g., greaterThan_0 = 1) or not greater than 0 (e.g., greaterThan_0 = 0). If, for example, greaterThan_0 = 0, no other bits are encoded. If, for example, greaterThan_0 = 1, another bit is encoded (e.g., greaterThan_1), which represents the index. The value is either greater than 1 (e.g., greaterThan_1 = 1) or not greater than 1 (greaterThan_1 = 0). If, for example, greaterThan_1 = 0, then no other bits are encoded. For example, if greaterThan_1 = 0, then the other bits (greaterThan_X) will be encoded in the same way until the flag greaterThan_ is set. It equals 0.

[0374] 3. This process uses truncated unary codes, for example, the same unary codes used in encoding method 2, except for the encoding... The index equals In this case, for example, in the case of the binary bits greaterThan_ After encoding, no further encoding is performed on the remaining binary bits. For example, on the decoder side, if greaterThan_ If it equals 1, then The value is inferred as .

[0375] 4. This process uses variable-length codes, where the code length is chosen based on the probability of the symbol appearing, such as Huffman codes.

[0376] Preferred embodiments (examples, details are optional)

[0377] In a preferred embodiment, the estimator applies, for example, a basic set of adaptation parameters, which are adaptation parameters. of Tuples. Then select a subset of the basic set. One parameter in the subset is signaled.

[0378] For example, in a particularly preferred embodiment, the configuration is equal to that of the previous preferred embodiment, but an estimator is used, which is configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, and the basic set contains the following 28 pairs for ( ):

[0379] Table 9: Optimal Basic Set of Adaptation Parameters

[0380] 0 (0,0) 14 (2,3) 1 (0,1) 15 (2,4) 2 (0,2) 16 (2,5) 3 (0,3) 17 (2,6) 4 (0,4) 18 (3,3) 5 (0,5) 19 (3,4) 6 (0,6) 20 (3,5) 7 (1,1) 21 (3,6) 8 (1,2) 22 (4,4) 9 (1,3) 23 (4,5) 10 (1,4) 24 (4,6) 11 (1,5) 25 (5,5) 12 (1,6) 26 (5,6) 13 (2,2) 27 (6,6)

[0381] For example, a subset of size 3 is bounded and sorted such that, according to the index in Table 2... Assigned, for example, in the case of all parameters of a layer quantized using DQ. For example, indexes. The parameters are represented as default parameters:

[0382] Table 10: Optimal subsets of the fitness parameters for a set size of 3

[0383] Adaptation parameter pair 0 (1,4) 1 (0,1) 2 (2,6)

[0384] For example, a parameter in a subset is signaled, for example, by encoding according to scheme 1. Encode it.

[0385] For example, the binary bit `useNotDefault` is encoded using a context model, while all other binary bits are encoded with a fixed length of 1 bit per binary bit.

[0386] 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) with the sum of the assigned adaptation parameter pairs equal to 5 is the same.

[0387] Table 11: Optimal subsets of the fitness parameters for a set size of 5

[0388] Adaptation parameter pair 0 (1,4) 1 (0,0) 2 (0,6) 3 (1,1) 4 (2,6)

[0389] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the assigned adaptation parameter pairs (Table 4):

[0390] Table 12: Second preferred subset with an adaptation parameter of size 5

[0391] Adaptation parameter pair 0 (1,2) 1 (0,0) 2 (0,5) 3 (2,5) 4 (3,4)

[0392] 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) with the sum of the assigned adaptation parameter pairs equal to 9 is the same.

[0393] Table 13: Optimal subsets of fitness parameters for a set size of 9

[0394] Adaptation parameter pair 0 (1,4) 1 (0,0) 2 (0,5) 3 (1,1) 4 (1,2) 5 (2,4) 6 (2,6) 7 (3,4) 8 (3,5)

[0395] In another preferred embodiment (example), the configuration is the same as in the previous preferred embodiment, except for the assigned adaptive parameter pairs (Table 6).

[0396] Table 14: The second preferred subset with an adaptation parameter of size 9

[0397] Adaptation parameter pair 0 (1,3) 1 (0,0) 2 (0,5) 3 (1,1) 4 (1,6) 5 (2,4) 6 (2,6) 7 (3,5) 8 (4,4)

[0398] In another preferred embodiment (example), the configuration is the same as the previous preferred embodiment, except for the assigned fitness parameter pairs (Table 7), the size of the selected subset (5), and the quantization method used (using URQ):

[0399] Table 15: Optimal subsets of the adaptation parameters for set size 5 and URQ

[0400] Adaptation parameter pair 0 (1,4) 1 (0,6) 2 (1,1) 3 (2,6) 4 (3,4)

[0401] In another preferred embodiment (example), an estimator is used, which is configured to be the same as the estimator used in the current draft of the MPEG-7 Part 17 standard for neural network compression for multimedia content description and analysis, and uses the basic set in Table 1. This is represented as the basic configuration.

[0402] Whenever the layer parameters are quantized using DQ, a subset of parameter pairs (of size 9) from Table 5 can be applied. If the layer parameters are quantized using URQ, a subset from Table 8 can be used.

[0403] Table 16: Optimal subsets of the fitness parameters for a set size of 9

[0404] Adaptation parameter pair 0 (1,4) 1 (0,1) 2 (0,6) 3 (1,2) 4 (1,6) 5 (2,5) 6 (2,6) 7 (3,4) 8 (3,5)

[0405] In another preferred embodiment (example), the basic configuration of the previous preferred embodiment can be applied.

[0406] Whenever the number of elements in the layer parameter falls below a threshold For example, you can set Then, a subset of parameter pairs of size 3, as shown in Table 2, can be used as the first subset. Otherwise, if the number of elements in the layer parameters is greater than or equal to the threshold... Then, a subset of size 9, as shown in Table 5, can be used as the second subset.

[0407] In another preferred embodiment (example), the configuration is the same as in the previous preferred embodiment, but instead of using a threshold, a flag (e.g., useSecondSubset) is encoded, which determines, for example, the subset to be used. For example, if the flag is equal to zero, the first subset can be used. If the flag is equal to 1, the second subset can be used.

[0408] Implement alternative solutions:

[0409] Although some aspects have been described in the context of the apparatus, it is clear that these aspects also represent a description of the corresponding method, where blocks or devices correspond to method steps or features of method steps. Similarly, aspects described in the context of method steps also represent a description of corresponding blocks or items or features of the corresponding apparatus. Some or all of the method steps may be executed by (or using) hardware devices, such as microprocessors, programmable computers, or electronic circuits. In some embodiments, one or more of the most important method steps may be executed by such devices.

[0410] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or software. This implementation can be executed using a digital storage medium having electronically readable control signals stored thereon, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory, which cooperate (or are capable of cooperating with) a programmable computer system to execute the corresponding methods. Therefore, the digital storage medium can be computer-readable.

[0411] Some embodiments of the invention include a data carrier having electronically readable control signals that are capable of cooperating with a programmable computer system to perform one of the methods described herein.

[0412] Typically, embodiments of the present invention can be implemented as a computer program product having program code that, when run on a computer, is operable to perform one of the methods. For example, the program code may be stored on a machine-readable medium.

[0413] Other embodiments include a computer program for performing one of the methods described herein, the computer program being stored on a machine-readable medium.

[0414] In other words, therefore, embodiments of the method of the present invention are computer programs having program code that, when run on a computer, are used to perform one of the methods described herein.

[0415] Therefore, a further embodiment of the method of the present invention is a data carrier (or digital storage medium, or computer-readable medium) including a computer program recorded thereon for performing one of the methods described herein. The data carrier, digital storage medium, or recording medium is generally tangible and / or non-transitory.

[0416] Therefore, a further embodiment of the method of the present invention represents a data stream or signal sequence for performing one of the methods described herein. For example, the data stream or signal sequence may be configured to be transmitted via a data communication connection, such as via the Internet.

[0417] Further embodiments include processing means, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.

[0418] Further embodiments include a computer on which a computer program for performing one of the methods described herein is installed.

[0419] Further embodiments of the invention include an apparatus or system configured to transmit a computer program (e.g., electronic or optical) for performing one of the methods described herein to a receiver. For example, the receiver may be a computer, mobile device, storage device, etc. For example, the apparatus or system may include a file server for transmitting the computer program to the receiver.

[0420] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functions 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 performed by any hardware device.

[0421] The apparatus described herein can be implemented using hardware devices, a computer, or a combination of hardware devices and a computer.

[0422] The apparatus described herein, or any component thereof, may be implemented, at least in part, in hardware and / or software.

[0423] The methods described herein can be performed using hardware devices or a computer, or a combination of hardware devices and a computer.

[0424] The methods described herein, or any component of the apparatus described herein, may be implemented, at least in part, by hardware and / or software.

[0425] It should be noted that any embodiment defined in the claims may be supplemented by any details (features and functions) described herein.

[0426] Furthermore, the embodiments described herein can be used alone, and may also be supplemented by any features included in the claims.

[0427] Furthermore, it should be noted that the various aspects described herein can be used individually or in combination. Therefore, details can be added to each of the described aspects without needing to add details to another described aspect.

[0428] It should also be noted that this disclosure generally describes, explicitly or implicitly, features available in a video encoder (means for providing an coded representation of an input video signal) and a video decoder (means for providing a decoded representation of a video signal based on the coded representation), as well as in an audio encoder and an audio decoder. Therefore, any feature 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 an audio decoder.

[0429] Furthermore, the features and functions disclosed herein related to the method can also be used in an apparatus (configured to perform such functions). Additionally, any features and functions disclosed herein regarding the apparatus can also be used in the corresponding method. In other words, the method disclosed herein can be supplemented by any features and functions described regarding the apparatus.

[0430] Furthermore, any features and functions described herein can be implemented in hardware or software, or using a combination of hardware and software, as described in the "Implementation Alternatives" section.

[0431] Furthermore, any features and syntactic elements described herein may be optionally introduced individually or in combination into the video bitstream.

[0432] Furthermore, it should be noted that all features, functions, and details described in the encoder or encoding context can optionally be used in the decoder or decoding context. For example, context derivation in the decoder can be similar to context derivation in the encoder, where the decoded value can play the role of the value to be encoded. Decoders are typically designed to make the context used in the decoder correspond to the context used in the encoder in order to keep the encoder and decoder synchronized.

[0433] The embodiments described herein are merely illustrative of the principles of the invention. It will be understood that modifications and variations of the arrangements and details described herein will be apparent to those skilled in the art. Therefore, its intent is limited only by the scope of the pending patent claims and not by the specific details presented through the description and interpretation of the embodiments herein.

Claims

1. A decoder (200) for decoding weight parameters of a neural network. in, The decoder (200) is configured to acquire multiple neural network parameters (204) of the neural network based on the 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 use one or more probability estimation parameters to obtain a probability estimate of the decoding of binary bits for the digital representation of neural network parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate of the context-dependent arithmetic decoding. The decoder (200) is configured to use different probability estimation parameter values ​​(230) for decoding different neural network parameters and / or use different probability estimation parameter values ​​(230) for decoding binary bits associated with different context models; The decoder (200) is configured to determine one or more state variables and use one or more state variables to derive a probability estimate; The decoder (200) is configured to update the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The decoder (200) is configured to decode one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

2. A decoder (200) for decoding weight parameters of a neural network. in, The decoder (200) is configured to acquire multiple neural network parameters (204) of the neural network based on the 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 use one or more probability estimation parameters to obtain a probability estimate of the decoding of binary bits for the digital representation of neural network parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate 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; The decoder (200) is configured to determine one or more state variables and use one or more state variables to derive a probability estimate; The decoder (200) is configured to update the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The decoder (200) is configured to decode one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

3. An encoder for encoding weight parameters of a neural network, in, The encoder is configured to acquire multiple 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 a probability estimate of the encoding of binary bits for the digital representation of neural network parameters, and the one or more probability estimation parameters affect the fitness of the probability estimate of the context-dependent arithmetic encoding. 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 binary bits associated with different context models; The encoder is configured to determine one or more state variables and use one or more state variables to derive a probability estimate; The encoder is configured to update the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The encoder is configured to encode one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

4. An encoder for encoding weight parameters of a neural network, in, The encoder is configured to acquire multiple 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 a probability estimate of the encoding of binary bits for the digital representation of neural network parameters, and the one or more probability estimation parameters affect the fitness of the probability estimate of the context-dependent arithmetic encoding. 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; The encoder is configured to determine one or more state variables and use one or more state variables to derive a probability estimate; The encoder is configured to update the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The encoder is configured to encode one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

5. A method for decoding weight parameters of a neural network (600). in, The method includes obtaining multiple neural network parameters (204) of a (610) neural network based on the encoded bit stream (202); The method includes decoding the neural network parameters of the neural network using context-dependent arithmetic decoding (620). The method includes obtaining (630) a probability estimate of the decoding of binary bits for the digital representation of neural network parameters using one or more probability estimation parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate 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 binary bits associated with different context models; The method includes determining one or more state variables and using one or more state variables to derive a probability estimate; The method includes updating the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The method includes decoding one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

6. A method for decoding weight parameters of a neural network (700). in, The method includes obtaining multiple neural network parameters (204) of a (710) neural network based on the encoded bit stream (202); The method includes decoding the neural network parameters of the neural network using context-dependent arithmetic decoding (720). The method includes obtaining (730) a probability estimate of the decoding of binary bits for the digital representation of neural network parameters using one or more probability estimation parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate 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; The method includes determining one or more state variables and using one or more state variables to derive a probability estimate; The method includes updating the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The method includes decoding one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

7. A method for encoding weight parameters of a neural network, in, The method includes obtaining multiple neural network parameters (204) of the neural network. The method includes encoding the neural network parameters using context-dependent arithmetic coding; The method includes obtaining a probability estimate of the encoding of binary bits for the digital representation of neural network parameters using one or more probability estimation parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate of the context-dependent arithmetic encoding. 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 binary bits associated with different context models; The method includes determining one or more state variables and using one or more state variables to derive a probability estimate; The method includes updating the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The method includes encoding one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

8. A method for encoding weight parameters of a neural network, in, The method includes obtaining multiple neural network parameters; The method includes encoding the neural network parameters using context-dependent arithmetic coding; The method includes obtaining a probability estimate of the encoding of binary bits for the digital representation of neural network parameters using one or more probability estimation parameters, wherein the one or more probability estimation parameters affect the fitness of the probability estimate of the context-dependent arithmetic encoding. The method includes using different probability estimation parameter values ​​(230) for encoding neural network parameters associated with different layers of the neural network; The method includes determining one or more state variables and using one or more state variables to derive a probability estimate; The method includes updating the state variable s1 according to the following formula. k , s2 k in and As a weighting factor; and Where A is a lookup table; and Where z is the offset value; The method includes encoding one or more index values ​​of a tuple describing probability estimation parameter values, or describing multiple probability estimation parameter values ​​(230), or describing probability estimation parameter values ​​(230).

9. A computer program, when run on a computer, for performing the method according to any one of claims 5 to 8.

10. An encoded representation of weight parameters of a neural network (202), comprising: Weight parameters of multiple encodings in a neural network; as well as An encoded representation of one or more probability estimation parameters; characteristics of the probability estimation of the context-dependent arithmetic decoding of weight parameters used for encoding; one or more probability estimation parameters affecting the fitness of the probability estimation of the context-dependent arithmetic encoding and decoding; and The encoding of one or more index values ​​represents a tuple that describes the probability estimation parameter values, or multiple probability estimation parameter values ​​(230), or the probability estimation parameter values ​​(230).