Encoder and decoder, and method for encoding or decoding symbols
By introducing two operating modes and auxiliary information indication mechanisms in arithmetic encoding and decoding technologies, the problems of poor encoding efficiency and computing efficiency in the prior art are solved, and flexible compression rate and throughput adjustments are achieved.
Patent Information
- Application Number
- CN202411373162.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-30
- Filing Date
- 2020-09-24
- Publication Date
- 2024-12-27
AI Technical Summary
Existing arithmetic encoding and decoding technologies are difficult to effectively adapt to the probability changes of symbol values during the encoding and decoding process, resulting in a poor trade-off between compression rate and calculation efficiency, affecting the encoding efficiency.
Two operating modes are adopted: update the status variable and interval size information in the first mode to achieve high compression rate, disable updates in the second mode to improve data throughput, and indicate which mode to use through auxiliary information, combined with overall encoding Multiplication or displacement operation of interval size value and interval size information to suit different needs.
The compromise of flexibly adjusting compression rate and throughput in different encoding and decoding scenarios is realized, which improves coding efficiency and computing efficiency, and adapts to different operational requirements.
Smart Images

Figure CN119211549A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese patent application "Arithmetic encoder and decoder, video encoder and decoder, method for encoding or decoding symbols, and method for encoding or decoding video content" (application number: 202080080942.9) with a filing date of September 24, 2020. Technical Field
[0002] Embodiments of the invention relate to arithmetic encoders. Other embodiments relate to arithmetic decoders. Further embodiments relate to video encoders or video decoders.
[0003] Other embodiments of the present invention relate to methods for encoding symbols having symbol values. Other embodiments of the present invention relate to methods for decoding symbols having symbol values. Other embodiments of the present invention relate to methods for encoding video content. Other embodiments of the present invention relate to methods for decoding video content.
[0004] Embodiments according to the invention relate to decoders and encoders of digitally represented content (e.g. video signals, audio signals, parameters of a neural network, etc.) employing entropy encoding and decoding of, for example, binary decisions (or, optionally, decisions with more than two states).
[0005] Embodiments according to the present invention relate to a probability estimation method for binary entropy coding or decoding, which can be used, for example, for video encoders, video decoders, and image encoders, image decoders, audio encoders, audio decoders, encoders and decoders for parameters of neural networks, etc. In this context, binary entropy coding or decoding means any method for encoding or decoding a binary decision sequence, wherein a binary entropy encoder or decoder can (or in some cases must) be provided with a probability estimate for each binary decision before encoding or decoding the decision. These probability estimates are provided, for example, by a probability estimation method, which must be the same in the encoder and decoder. For example, the M encoder of CABAC of the HEVC video compression standard is such a binary entropy coding scheme. Another example is the PIPE coding concept. Background Art
[0006] Arithmetic coding and decoding have proven to be valuable tools in encoding and decoding audio and video content, as well as encoding other types of information (e.g., pictures, neural network coefficients, etc.). Embodiments of the present invention can be used in all of these applications. For example, known probabilities of occurrence of binary values (e.g., symbols) in a binary sequence representing video or audio content (or other types of content) can be exploited to improve coding efficiency.
[0007] However, in order for arithmetic coding and decoding to bring about the best coding efficiency, it is important to have good information about the probabilities of symbol values that reflects well the actual frequencies of occurrence.
[0008] In order to adapt to the probabilities of "0" and "1" (or generally, to the probabilities of the symbols to be encoded), the concept is typically to adjust the interval boundaries within the total (current) value range to obtain an interval subdivision (e.g., so that the entire value range is subdivided into intervals associated with different binary values or groups of binary values).
[0009] In other words, information about the probabilities of different symbols (such as "0" and "1") is used to derive an interval size, which describes the width of the interval associated with the symbol (wherein the total interval width (e.g., the overall encoded interval size value) may vary over time, for example depending on the encoding or decoding process).
[0010] Therefore, there is a need to determine interval size information (e.g., probability estimates) and / or a concept of interval size for the encoding or decoding process, such as for interval subdivision (e.g., for subdivision of the total encoding interval), which provides a good compromise between high compression rate and computational efficiency. Summary of the invention
[0011] Embodiments of the present invention may relate to encoders (e.g., arithmetic encoders and video encoders) and decoders (e.g., arithmetic decoders and video decoders). For example, the described decoder may allow information encoded by the described encoder to be decoded. Accordingly, the described encoder may allow information to be encoded so that the described decoder can decode the encoded information. Therefore, the implementation of the inventive concept may include features implemented on the encoder side or the decoder side or both sides. Therefore, the functions and advantages of the features described on the encoder side or the decoder side may be equivalently or similarly applicable to the corresponding features on the decoder side or the encoder side, respectively, although there may not be an explicit repetitive description. In addition, some of the described features may be implemented in multiple described aspects of the present invention. The functions and advantages of the features described in specific aspects may be equivalently or similarly applicable to the implementation of corresponding features in the context of other aspects, although there is no explicit repetitive description. Embodiments of the present invention may combine the various features described in relation to aspects of the present invention and combinations thereof.
[0012] A first aspect of the invention depends on the idea of implementing two or more operating modes for encoding or decoding of symbol values, so that for each operating mode, a trade-off between compression rate and computational effort can be selected separately. In a first operating mode, the symbol value to be encoded or decoded is used to update one or more state variable values and / or interval size information, which is used to determine the interval size for arithmetic encoding or decoding of one or more subsequent symbol values to be encoded or decoded. Therefore, the encoding or decoding of subsequent symbol values can be performed depending on the symbol value currently to be encoded or decoded (i.e., the symbol value directly preceding the subsequent symbol value). Considering the symbol value directly preceding can provide an accurate estimate of the interval size information associated with the symbol value, such as a probability estimate of the symbol value, and can therefore allow high compression. In a second operating mode, the encoder or decoder disables the updating of one or more state variable values and / or interval size information, thereby saving computing power. Therefore, a higher data throughput can be achieved. Since the encoder or decoder can operate in the first operating mode or the second operating mode, the operation of the encoder or decoder can be adapted to the current requirements for the encoding or decoding process or the bit stream provided by the encoder or received by the decoder. Specifically, in situations where the symbol values to be encoded are expected to remain unchanged, i.e., the estimated probability of a symbol value change is low, disabling the updating of state variable values and / or interval size information may allow an increase in throughput, while the compression rate may be only slightly affected. For example, the interval size information may be determined depending on a context model of the symbol values to be encoded or decoded, even if the updating of the state variable values is disabled, so that a reliable determination of the interval size information can still be achieved, for example, in situations where the interval size information depends primarily on the context model. In other examples, where the updating of the interval size information is disabled, the required computing power may be particularly low, thereby allowing a high throughput. Therefore, the trade-off between compression rate and throughput of an encoder or decoder can be particularly accurately adapted to the operational requirements.
[0013] According to an embodiment of the first aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to: in a first mode of operation, based on one or more state variable values (a t+1 , b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive the value for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS), one or more state variable values representing multiple previously encoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2 etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for encoding one or more subsequent symbol values; wherein the arithmetic encoder is configured to disable the update of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values already used for encoding one or more symbol values and / or interval size information already used for encoding one or more symbol values are reused for encoding one or more subsequent symbol values), wherein the arithmetic encoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode enabling the update of one or more state variable values and / or interval size information or the second mode disabling the update of one or more state variable values and / or interval size information.
[0014] According to an embodiment, the arithmetic encoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) on a per-frame basis (e.g., once per frame), or on a per-slice basis (e.g., once per slice), or on a per-picture group basis (e.g., once per picture group), or on a per-sequence basis (e.g., once per sequence), the auxiliary information indicating whether to use a first mode that enables updating of one or more state variable values and / or interval size information or a second mode that disables updating of one or more state variable values and / or interval size information. By avoiding providing auxiliary information separately for each symbol value to be encoded or decoded, the signaling overhead and therefore the size of the bitstream can be lower.
[0015] According to an embodiment, the arithmetic encoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing the profile) on a per-profile basis, the auxiliary information indicating whether to use a first mode that enables updating of one or more state variable values and / or interval size information or a second mode that disables updating of one or more state variable values and / or interval size information (where, for example, each profile may have been associated with a mode in the first mode and the second mode, so that the selection of the profile signaled by the auxiliary information can, for example, determine whether to use the first mode or the second mode. For example, the encoder and decoder may have information about which operating mode is associated with a particular profile. Therefore, it may be sufficient to signal the profile currently in use. Since further information about the encoding and decoding process can be associated with the profile, signaling the operating mode on a per-profile basis can have a particularly low signaling overhead.
[0016] According to an embodiment, the arithmetic encoder is configured to provide dedicated auxiliary information (e.g., a dedicated bit or flag, which is specifically dedicated to indicating whether the first mode or the second mode is used, the dedicated auxiliary information indicating whether the first mode enabling the update of one or more state variable values and / or interval size information or the second mode disabling the update of one or more state variable values and / or interval size information is used. Having dedicated auxiliary information for signaling the operation mode provides a simple implementation and low computational effort for providing and extracting the auxiliary information on the encoder and decoder side, respectively.
[0017] According to an embodiment, the arithmetic encoder is configured to reuse one or more previously determined state variable values and / or previously determined interval size information (e.g., for encoding one or more subsequent symbol values to be encoded) when using the second mode (so that, for example, when using the second mode, the same one or more previously determined state variable values or the same previously determined interval size information are used to encode multiple subsequent symbol values to be encoded, and the multiple subsequent symbol values to be encoded are encoded using different updated interval size information when using the first mode). Reusing previously determined state variable values and / or interval size information can increase the possibility or accuracy for determining the interval size, even though the state variable values and / or interval size information may not be updated.
[0018] According to an embodiment, the arithmetic encoder is configured to encode the interval size value based on the overall encoding interval size value (eg, R) and based on the interval size information (eg, the probability value p t+1 Or probability value P t+1 Or shift operation count value g LPS ) to obtain the interval size associated with the symbol value among the multiple possible symbol values (e.g., R LPS) (for example, so that due to the change in the overall encoding interval size value, a different interval size is obtained for encoding subsequent symbol values to be encoded).
[0019] According to an embodiment, the arithmetic encoder is configured to use a first calculation rule when operating in the first mode and a second calculation rule when operating in the second mode to obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values based on the overall encoding interval size value (e.g., R) and based on the interval size information. LPS ) (wherein, for example, the first calculation rule comprises a higher accuracy than the second calculation rule, and / or wherein the first calculation rule comprises a higher complexity than the second calculation rule). Using separate calculation rules for operating modes allows further adaptation of the corresponding accuracy and calculation effort for determining the interval size in the operating mode.
[0020] According to an embodiment, the arithmetic encoder is configured to: when operating in the first mode, based on the overall encoded interval size value (e.g., R) and based on the interval size information, obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values using a multiplication of the overall encoded interval size value or a shifted version thereof (e.g., R) and the interval size information value or a shifted version thereof. LPS ); and when operating in the second mode, using a bit shift operation applied to (or by applying a bit shift operation) (e.g., a right shift operation) on an overall coded interval size value (e.g., R), wherein the number of bits by which the overall coded interval size value is shifted is determined by the interval size information (e.g., g LPS ) determination. The multiplication can provide an accurate determination of the interval size, thereby allowing particularly high compression rates when operating in the first mode. The bit shift operation provides a particularly fast and computationally efficient method for determining the interval size, thereby allowing high throughput when operating in the second operating mode.
[0021] According to an embodiment, the arithmetic encoder is configured to represent the probability value based on an integer value including (or using) BITS bits (eg, P LPS ) using the operand value (x,P LPS +(P LPS >>2)) The bit position of the most significant non-zero bit is determined to determine the shift count value (e.g., g LPS ), the shift count value describing the number of bits by which the overall encoding interval size value is shifted, the operand value being increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding a predetermined (e.g., constant) value). Determining the bit position of the most significant non-zero bit is a low complexity operation, and thus this method of determining the shift count value is very efficient.
[0022] According to an embodiment, the arithmetic encoder is configured to determine the shift count value (e.g., g) based on one or more initialization parameters (e.g., slopeIdx and / or qp and / or offsetIdx) (e.g., without determining the bin size information based on one or more source statistics). LPS ), the shift count value describing the number of bits by which the overall coding interval size value is shifted. For example, determining the shift count value based on the initialization parameter can allow, for example, initializing encoding or decoding in the second operating mode without, for example, having to initialize parameters for encoding or decoding in the first mode.
[0023] According to an embodiment, the arithmetic encoder is configured to obtain an updated version a of the first state value according to the following equation t+1
[0024] a t+1 =a t +x t ·(ONE a >>n a )-(a t >>n a )
[0025] where a t is the current version of the first state value, where x t is the current coded symbol (e.g., a binary symbol with a value of 0 or 1), where n a is the window size information (e.g., having an integer value), where
[0026] ONE a =(1<<BITS a )-k a
[0027] BITS a is the number of bits used to represent the first state value, where k a is a predetermined number (eg, an integer value, such as 0 or 1); and / or wherein the arithmetic encoder is configured to obtain an updated version b of the first state value according to the following equation t+1
[0028] b t+1 =b t +x t ·(ONE b >>n b )-(b t >>n b )
[0029] where b t is the current version of the first state value, where x tis the current coded symbol (e.g., a binary symbol with a value of 0 or 1), where n b is the window size information (e.g., having an integer value), where
[0030] ONE b =(1<<BITS b )-k b
[0031] BITS b is the number of bits used to represent the first state value, where k b is a predetermined number (eg, an integer value such as 0 or 1).
[0032] According to an embodiment, the arithmetic encoder is configured to perform a first state variable value (a t ) and the second state variable value (b t ) to obtain the interval size information.
[0033] According to an embodiment, the arithmetic encoder is configured to derive the probability estimate P according to the following equation t
[0034] P t =((a t >>(BITS a -BITS min ))+(b t >>(BITS b -BITS min )))>>1
[0035] in
[0036] BITS min =min(BITS a , BITS b )
[0037] where a t is the value of the first state variable, where b t is the value of the second state variable, where BITS a It is used to represent a t The number of bits; BITS b It is used to represent b t The number of bits. (The probability value can be obtained by P t Divide by 1 << BITS min Export).
[0038] A second aspect of the invention depends on the idea of implementing two or more operating modes for encoding or decoding of symbol values, so that for each operating mode, a trade-off between compression rate and computational effort can be selected individually. In a first operating mode, the interval size for encoding or decoding symbol values is obtained by multiplying the overall encoding interval size value with the interval size information. Such determination of the interval size can be particularly accurate or reliable. Accurate interval size can provide a high compression rate. In a second operating mode, a bit shift operation is used to obtain the interval size for encoding or decoding, wherein the overall encoding interval size value is shifted by the number of bits determined by the interval size information. Since the bit shift operation is computationally efficient, the second mode can provide high throughput. Since the encoder or decoder can operate in the first operating mode or the second operating mode, the operation of the encoder or decoder can adapt to the current requirements for the encoding or decoding process or the bit stream provided by the encoder or received by the decoder.
[0039] According to an embodiment of the second aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to, in the first mode, combine the overall encoding interval size value or a shifted version thereof (eg, R) with the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take on a value of potency other than 2) to obtain (directly or indirectly, e.g., using additional addition) an interval size (e.g., R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the arithmetic encoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to an overall encoding interval size value (e.g., R) in a second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS) determined; and wherein the arithmetic encoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0040] According to an embodiment, the arithmetic encoder is configured to derive a shift count value (eg, g LPS ), the shift count value describes how many bits the overall encoding interval size value is shifted. Having the shift count value can effectively implement the bit shift operation.
[0041] According to an embodiment, the arithmetic encoder is configured to calculate the probability value (eg, P LPS ) to derive the shift count value (e.g. g LPS ), the shift count value describes how many bits the overall encoding interval size value is shifted, and the probability value describes the probability of a symbol value among a plurality of possible symbol values. Derivation of the shift count value based on the probability value allows the interval size to be determined depending on the probability value. Thus, the interval size can be determined very accurately, so that a good compression ratio can be achieved when using a bit shift operation to determine the interval size.
[0042] According to an embodiment, the arithmetic encoder is configured to represent the probability value based on an integer value including (or using) BITS bits (eg, P LPS ) uses the operand value (x, P LPS +(P LPS >>2)) to derive the shift count value (e.g., g LPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding a predetermined (e.g., constant) value). The bit position of the most significant non-zero bit can be derived with a low amount of work. In addition, using the integer value representation of the probability value can reduce the number of bits required to perform the operation. Therefore, the shift count value can be determined particularly quickly.
[0043] According to an embodiment, the arithmetic encoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is used to derive a shift count value by determining the position of the most significant non-zero bit, which is represented by the integer value depending on the probability value (P LPS >>2) Integer values relative to probability values represent increases or decreases. Addition or subtraction can be performed with low computational effort.
[0044] According to an embodiment, the arithmetic encoder is configured to use the operand values (x, P LPS +(PLPS >>2)) is determined by determining the bit position of the most significant non-zero bit to derive a shift count value, which is obtained by adding or subtracting the right-shifted version of the value represented by the integer value of the probability value (P LPS >>2) Increase or decrease relative to the integer value representation of the probability value. The right-shifted version of the integer value representation of the probability value can be determined with low computational effort. Therefore, in combination with an addition or subtraction operation, the shift count value can be determined particularly efficiently.
[0045] According to an embodiment, the arithmetic encoder is configured to derive the shift count value g according to the following equation LPS :
[0046]
[0047] or
[0048]
[0049] or
[0050]
[0051] or
[0052]
[0053] Among them, P LPS is an integer value representation of a probability value; wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value; e.g., equal to zero); wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator. Having a maximum allowed value for the shift count value may limit the maximum number of bits required to represent the shift count value and / or the interval size and may allow efficient computation of the interval size.
[0054] According to an embodiment, the arithmetic encoder is configured to derive the shift count value g according to the following equation LPS
[0055]
[0056] Among them, BITS-1 is used for P LPS The number of bits represented by the number (where P LPS The digital representation preferably includes a ratio P tThe number represents one less bit); where P LPS is the integer value representation of the probability value; where g MAX is a predetermined number; wherein >> is a right shift operator; wherein log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0057] According to an embodiment, the arithmetic encoder is configured to calculate the probability value based on the initial probability value (p init ) (e.g., P clip ) derives a shift count value, the initial probability value being obtained based on one or more context model initialization parameters (e.g., slope, qp, and offset) (e.g., at least when updating of one or more state variable values and / or interval size information is disabled). Therefore, the shift count value can be determined based on one or more initialization parameters, thereby allowing the second operation mode to be initialized based on the initialization parameters. Therefore, the determination of the shift count value does not necessarily depend on the previously encoded or decoded symbol value or the state variable value describing its statistics. Therefore, even if the previously encoded or decoded symbol value or the state variable value describing its statistics is not updated, the shift count value and therefore the interval size can be accurately determined.
[0058] According to an embodiment, the arithmetic encoder is configured to depend on the initial probability value (eg, p init or P init ) (e.g., P clip ) to initialize one or more source statistics (e.g. a t 、b t ), where the initial probability value is obtained based on one or more context model initialization parameters (e.g., at least using an update of one or more state variable values and / or interval size information).
[0059] According to an embodiment, the arithmetic encoder is configured to use a bit shift operation depending on the initial probability value (p init ) represents an integer value with a limited range of P clip To initialize one or more source statistics a t 、b t .
[0060] According to an embodiment, the arithmetic encoder is configured to depend on the initial probability value (p init ) represents an integer value with a limited range of P clip To initialize one or more source statistics a t 、b t ,according to
[0061] a t =Pclip <<(BITS a -const31)
[0062] and / or according to
[0063] b t =P clip <<(BITS b -const31)
[0064] Among them, BITS a is used for source statistic a t The number represents the number of bits; BITS b is used for source statistic value b t The number of bits represented by the number; wherein const31 is a predetermined value (e.g., 7); and wherein << is a left shift operator.
[0065] According to an embodiment, the arithmetic encoder is configured to derive the initial probability value (eg, p) according to the following equation: init ) (e.g., P clip ):
[0066] P clip =min(const11,max(const12,P init ))
[0067] P init =((slope·(qp-const13))>>const14)+offset wherein const11 is a predetermined value (e.g., 127); wherein const12 is a predetermined value (e.g., 1); wherein const13 is a predetermined value (e.g., 16); wherein const14 is a predetermined value (e.g., 1); wherein slope is an initialization parameter value (e.g., an integer value, e.g., in a range between -4 and 3) (which can be represented by an initialization parameter, such as slopeIdx); wherein qp is a quality parameter value (e.g., an integer value, e.g., in a range between 0 and 51) (e.g., a quantization parameter describing a quantization step size used for quantization of symbol values); wherein offset is an initialization parameter value (e.g., an integer value, e.g., in a range between 1 and 127) (which can be represented by an initialization parameter, such as offsetIdx).
[0068] According to an embodiment, the arithmetic encoder is configured to determine, based on the same one or more initialization parameters (eg, slopeIdx, offsetIdx): one or more source statistics (eg, a t 、b t ), which is used to derive the interval size information value (e.g., p in the first mode) LPSor P LPS ); and the shift count value (e.g. g LPS ) which is used in the second mode.
[0069] According to an embodiment, the arithmetic encoder is configured to obtain the bin size R in the first mode according to the following equation LPS :
[0070] H LPS =(((R>>SHIFT R )·(P LPS >>SHIFT P ))>>SHIFT MUL )+add LPS
[0071] Where R is the size of the overall coding interval; where SHIFT R is a predetermined value; where P LPS is an integer value interval size information value;
[0072] Among them, SHIFT P is a predetermined value; where SHIFT MUL is a predetermined value;
[0073] Among them, add LPS is a predetermined value (preferably greater than zero).
[0074] According to an embodiment, the arithmetic encoder is configured to obtain the integer-valued interval size information value P according to the following equation: LPS :
[0075] val MPS =P t >>(BITS min -1)
[0076] P LPS =(val MPS ? (1<<BITS min )-1-P t :P t )
[0077] Among them, P t is an integer-valued probability value; where BITS min It is used to represent P t The number of bits; where (cond? A: B) is an operator that provides the value A if the condition cond is non-zero, otherwise it provides B. For example, P LPSThe probability of a low probability symbol can be represented so that the interval size determined based on the integer value interval size information value can be the smaller of the possible interval sizes associated with the low probability symbol and the high probability symbol, respectively. Determining the interval size for the low probability symbol improves the accuracy of the interval size, assuming that the number of bits used to represent the interval size is constant.
[0078] A third aspect of the invention is based on the idea of determining the interval size for encoding or decoding a symbol value by applying a bit shift operation to an overall encoded interval size value. Bit shift operations are a computationally efficient way to derive interval sizes. This aspect also includes deriving a shift count value based on an integer value representation of interval size information, the shift count value determining the number of bits by which the overall encoded interval size value is shifted, the interval size information, for example, representing an estimate of the probability of a symbol value associated with the interval size to be determined. The integer value representation of the interval size information can have a low bit count, for example, lower than a fractional representation. A low bit count can ensure a shorter processing time. This aspect also includes determining the shift count value using a determination of the bit position of the most significant non-zero bit of the operand value that depends on the interval size information. The bit position of the most significant bit can be efficiently determined, thereby providing a low computational workload for determining the interval size.
[0079] According to an embodiment of the third aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoding interval size value (e.g., R); LPS ), where the number of bits by which the overall coding interval size value is shifted is determined by the shift count value (e.g., g LPS ) determined; and wherein the arithmetic encoder is configured to represent (eg, P) an integer value based on (eg, including (or using) BITS bits) a probability value (eg, interval size information) LPS ) using the operand value (x,P LPS +(P LPS>>2)) to derive the shift count value (e.g., g LPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value).
[0080] According to an embodiment, the arithmetic encoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is used to derive a shift count value by determining the position of the most significant non-zero bit, which is represented by the integer value depending on the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0081] According to an embodiment, the arithmetic encoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is determined by determining the bit position of the most significant non-zero bit to derive a shift count value, which is obtained by adding or subtracting the right-shifted version of the value represented by the integer value of the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0082] According to an embodiment, the arithmetic encoder is configured to derive the shift count value g according to the following equation LPS :
[0083]
[0084] or
[0085]
[0086] or
[0087]
[0088] or
[0089]
[0090] Among them, P LPS is an integer value representation of a probability value; wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value); wherein g MAXis a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator. This method for determining the shift count value is a good compromise between computational complexity and resulting compression.
[0091] According to an embodiment, the arithmetic encoder is configured to derive the shift count value g according to the following equation LPS :
[0092]
[0093] Among them, BITS-1 is used for P LPS The number of bits represented by the number; where P LPS is the integer value representation of the probability value; where g MAX is a predetermined number; wherein >> is a right shift operator; wherein log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0094] According to an embodiment, the arithmetic encoder is configured to calculate the probability value based on the initial probability value (p init ) represents (Pclip) a derived shift count value, which initial probability value is obtained based on one or more context model initialization parameters (e.g., slope, qp, and offset) (e.g., at least when updating of one or more state variable values and / or interval size information is disabled).
[0095] According to an embodiment, the arithmetic encoder is configured to depend on the initial probability value (p init ) represents the (limited range) integer value of (P clip ) to initialize one or more source statistics (e.g. a t 、b t ), where the initial probability value is obtained based on one or more context model initialization parameters (e.g., at least using an update of one or more state variable values and / or interval size information).
[0096] According to an embodiment, the arithmetic encoder is configured to use a bit shift operation depending on the initial probability value (p init ) represents an integer value with a limited range of P clip To initialize one or more source statistics a t 、b t .
[0097] According to an embodiment, the arithmetic encoder is configured to depend on the initial probability value (p init ) represents an integer value with a limited range of P clip To initialize one or more source statistics at 、b t :
[0098] a t =F clip <<(BITS a -const31)
[0099] and / or
[0100] b t =P clip <<(BITS b -const31)
[0101] Among them, BITS a is used for source statistic a t The number represents the number of bits; BITS b is used for source statistic value b t The number of bits represented by the number; wherein const31 is a predetermined value (e.g., 7); and wherein << is a left shift operator.
[0102] According to an embodiment, the arithmetic encoder is configured to derive the initial probability value (p init ) represents a (limited range) integer value of P clip :
[0103] P clip =min(const11,max(const12,P init ))
[0104] P init =((slope·(qp-const13))>>const14)+offset wherein const11 is a predetermined value (e.g., 127); wherein const12 is a predetermined value (e.g., 1); wherein const13 is a predetermined value (e.g., 16); wherein const14 is a predetermined value (e.g., 1); wherein slope is an initialization parameter value (e.g., an integer value, e.g., in a range between -4 and 3) (which can be represented by an initialization parameter, such as slopeIdx); wherein qp is a quality parameter value (e.g., an integer value, e.g., in a range between 0 and 51) (e.g., a quantization parameter describing a quantization step size used for quantization of symbol values); wherein offset is an initialization parameter value (e.g., an integer value, e.g., in a range between 1 and 127) (which can be represented by an initialization parameter, such as offsetIdx).
[0105] According to an embodiment, the arithmetic encoder is configured to determine, based on the same one or more initialization parameters (eg, slopeIdx, offsetIdx): one or more source statistics (eg, at 、b t ), which is used to derive the interval size information value (e.g., p in the first mode) LPS or P LPS ); and the shift count value (e.g. g LPS ) which is used in the second mode.
[0106] A fourth aspect of the invention depends on the idea of implementing two or more operating modes for encoding or decoding of symbol values, so that for each operating mode, a trade-off between compression rate and computational workload can be selected individually. The fourth aspect includes that a first initialization value and a second initialization value are determined based on a common set of one or more initialization parameters, the first initialization value can be used to determine the interval size of symbol values for encoding or decoding in the first mode, and the second initialization value can be used to determine the interval size of encoding or decoding in the second mode. Since the first initialization value and the second initialization value are determined by the same set of initialization parameters, the implementation complexity of the two modes is low, and the number of initialization parameters required by the encoder or decoder is small. Having a low number of initialization parameter meters can provide a small signaling overhead.
[0107] According to an embodiment of the fourth aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to use a first interval size determination method in a first mode to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values. LPS ); and wherein the arithmetic encoder is configured to use a second interval size determination method in the second mode (e.g., by applying a bit shift operation (e.g., a right shift operation) to an overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS); and wherein the arithmetic encoder is configured to obtain one or more first initialization values (e.g., a) based on one or more initialization parameters (e.g., a slope and an offset, represented by slopIdx and offsetIdx, respectively) (e.g., using a first initialization value determination method). t and / or b t ) (e.g., an initial source statistic value) for determining the interval size using a first interval size determination method, and wherein the arithmetic encoder is configured to obtain one or more second initialization values (e.g., g based on one or more initialization parameters (e.g., using a second initialization value determination method different from the first initialization value determination method) LPS ), which is used to determine the interval size using a second interval size determination method.
[0108] According to an embodiment, a first interval size determination method ("first interval size estimator") includes a first accuracy (e.g., a relatively high resolution), wherein a second interval size determination method ("second interval size estimator") includes a second accuracy (e.g., a relatively low resolution), wherein the first accuracy is different from the second accuracy; and / or wherein the first interval size determination method includes a first computational complexity (e.g., a relatively high computational complexity), wherein the second interval size determination method includes a second computational complexity (e.g., a relatively low computational complexity), wherein the first computational complexity is different from the second computational complexity. High accuracy for determining interval size can provide a high compression rate. Using low accuracy to determine interval size can allow a low number of bits to be used to present the interval size, thereby allowing high throughput. High computational complexity can allow accurate determination of interval size, thereby achieving high compression rates. Low computational complexity can provide a high throughput of heat. Therefore, two modes with different accuracy and / or computational complexity allow a choice between high compression rate and high throughput. Therefore, the operation of an encoder or decoder can be adapted to bitstream requirements and / or encoder or decoder capabilities.
[0109] According to an embodiment, the arithmetic encoder is configured to, in a first mode, combine the overall encoded interval size value or a shifted version thereof (eg, R) with the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain an interval size (e.g., R) associated with a symbol value from among the plurality of possible symbol values. LPS ); and wherein the arithmetic encoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to an overall encoding interval size value (e.g., R) in a second mode. LPS), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0110] According to an embodiment, the arithmetic encoder is configured to determine one or more source statistics (e.g. a t 、b t ) as one or more first initialization values; and / or wherein the arithmetic encoder is configured to determine a shift count value (eg, g LPS ) as a second initialization value, the shift count value determining the number of bits by which the overall encoding interval size value is to be shifted to obtain an interval size (R) associated with a symbol value in a plurality of possible symbols LPS ).
[0111] According to an embodiment, the arithmetic encoder is configured to determine one or more first initialization values using a first mapping (e.g., a first initialization value determination method), which first mapping converts an intermediate probability value (e.g., P) obtained based on one or more initialization parameters (slope, offset) into an intermediate probability value (e.g., P) in addition to one or more clipping operations and one or more rounding operations. clip ) is linearly mapped to one or more first initialization values (e.g., a t 、b t ). Mapping is a low-computation operation that increases the throughput of determining interval sizes.
[0112] According to an embodiment, the arithmetic encoder is configured to use a probability value equal to the intermediate probability value (eg, P clip ) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2)) to a reduced range of (e.g., integer) values (e.g., g LPS ) (e.g., a second initialization value determination method) to determine one or more second initialization values; or
[0113] The arithmetic encoder is configured to use a pair equal to the intermediate probability value (eg, P clip ) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2)) quantize the grid in the logarithmic domain (e.g. to obtain g LPS ) (e.g., a second initialization value determination method) to determine one or more second initialization values.
[0114] According to an embodiment, the arithmetic encoder is configured to determine one or more second initialization values using a second mapping, the second mapping comprising: calculating a value equal to the intermediate probability value (eg, P clip) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2))'s logarithm (e.g., log2); and rounding the calculated logarithm to an integer value.
[0115] According to an embodiment, the arithmetic encoder is configured to obtain one or more first initialization values a according to the following equations: t and / or b t :
[0116] a t =P clip <<(BITS a -const64)
[0117] b t =P clip <<(BITS b -const64)
[0118] The arithmetic encoder is configured to obtain the intermediate probability value P according to the following equation: clip :
[0119] P clip =min(const 60,max(const61,P init ))
[0120] P init =((slope·(qp-const 62))>>const63)+offset
[0121] wherein slope is a first initialization parameter; wherein offset is a second initialization parameter; wherein qp is a third initialization parameter; wherein const60 is a predetermined value (e.g., 127); wherein const61 is a predetermined value (e.g., 1); wherein const62 is a predetermined value (e.g., 16); wherein const63 is a predetermined value (e.g., 1); wherein const64 is a predetermined value (e.g., 7); wherein BITS a It is used to represent the first source statistic a t The number of bits; BITS b It is used to represent the first source statistic b t The number of bits.
[0122] According to an embodiment, the arithmetic encoder is configured to obtain the second initialization value g according to the following equation LPS :
[0123]
[0124] or
[0125]
[0126] or
[0127]
[0128] or
[0129]
[0130] Where P LPS Equal to P clip Or based on P clip (e.g., using the probability of small-probability symbols determined from Pclip), where P clip is obtained according to the following equation:
[0131] P clip =min(const 60,max(const61,P init ))
[0132] P init =((slope·(qp-const 62))>>const63)+offset
[0133] wherein slope is a first initialization parameter; wherein offset is a second initialization parameter; wherein qp is a third initialization parameter; wherein const60 is a predetermined value (e.g., 127); wherein const61 is a predetermined value (e.g., 1); wherein const62 is a predetermined value (e.g., 16); wherein const63 is a predetermined value (e.g., 1); wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value); wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0134] A fifth aspect of the present invention depends on the idea of implementing two or more operating modes for encoding or decoding of symbol values, so that for each operating mode, a trade-off between compression rate and computational workload can be selected separately. According to the fifth aspect, the interval size associated with a symbol value in a plurality of possible symbol values is determined based on the overall encoding interval size value. The encoder or decoder can switch between the use of a first number of bits and the use of a second number of bits for representing the overall encoding interval size value. Although a high number of bits can provide a higher accuracy of the overall encoding interval size value, a low number of bits can provide a high throughput. The higher accuracy of the encoding interval size value can provide a high compression rate. Therefore, being able to switch between the first number of bits and the second number of bits allows the trade-off between the high compression rate and the high throughput of the encoding or decoding to be adjusted. For example, for the overall encoding interval size value, the ability to switch between the first number of bits and the second number of bits allows the use of a high number of bits when operating in an operating mode that achieves a high compression rate (e.g., in an efficient mode, such as the first mode). For example, in a high throughput mode (e.g., the second mode), a low number of bits can be used.
[0135] An aspect provides an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g., binary values) (e.g., to provide a bitstream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bitstream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values based on an overall encoding interval size value (e.g., R) (e.g., using a first interval size determination method) in a first mode. LPS ); and wherein the arithmetic encoder is configured to determine the overall coding interval size value (e.g., R) in the second mode (using a second interval size determination method) (e.g., by applying a bit shift operation (e.g., right shift operation) to the overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS); and wherein the arithmetic encoder is configured to switch between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R) (e.g., such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, for example).
[0136] According to an embodiment, the arithmetic encoder is configured to determine (and update, e.g., renormalize) the overall encoding interval size value such that before encoding the symbol value (e.g., after renormalization) the overall encoding interval size value is in the following interval:
[0137] (1<<(BITS R1 -1), (1<<BITS R1 )-1)
[0138] , (and such that after encoding the symbol value and before possible renormalization, the overall encoding interval size value is in the interval (1, (1<<BITS R1 )-2) wherein the arithmetic encoder is configured to use BITS in the first mode R1 bits represent the coding interval size, and wherein the arithmetic encoder is configured to use BITS in the second mode R2 Bits represent the size of the encoding interval, where BITS R2 <BITS R1 .
[0139] According to an embodiment, the arithmetic encoder is configured to combine the overall encoded interval size value or a shifted version thereof (e.g. R) with the interval size information value or a shifted version thereof (e.g. p) in a first mode (where, for example, a relatively high first number of bits or a first resolution may be used). LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain an interval size (e.g., R) associated with a symbol value from among the plurality of possible symbol values. LPS ).
[0140] According to an embodiment, the arithmetic encoder is configured to obtain an interval size (e.g. R) associated with a symbol value of the plurality of possible symbol values by applying a bit shift operation (e.g. right shift operation) to the overall encoding interval size value (e.g. R) in a second mode (where, for example, a relatively lower second number of bits or a second resolution may be used). LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0141] According to an embodiment, the arithmetic encoder is configured to derive a shift count value (eg, g LPS ), the shift count value describes how many bits the overall encoding interval size value has been shifted.
[0142] According to an embodiment, the arithmetic encoder is configured to convert the shift count value (eg, g LPS ) is limited to a maximum value of g MAX , and wherein the first bit number (eg BITS R1 ) is greater than the second number of bits, and wherein the second number of bits (eg, BITS R2 ) is greater than the maximum value g MAX (For example, BITS R2 =g MAX +ADD MAX , where ADD MAX is a positive integer value).
[0143] According to an embodiment, the arithmetic encoder is configured to switch between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R), such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, wherein the first number of bits is greater than the second number of bits, and wherein the arithmetic encoder is configured to obtain, in the second mode, an interval size (e.g., R) associated with a symbol value from among a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall coding interval size value (e.g., R). LPS ), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., gLPS); and wherein the shift count value is limited to a first maximum value (e.g., gLPS) in the first mode. MAX (mode1)), and wherein the shift count value is limited to a second maximum value (eg, g MAX(mode2)), where the first maximum value is greater than the second maximum value. Since the shift count value is limited to the maximum value, there can be a maximum number of bits required to represent the interval size with maximum accuracy, and the maximum number of bits required to represent the interval size is related to the maximum value of the shift count value. Since the shift count value is limited to the first maximum value in the first mode and is limited to the second maximum value in the second mode, using the first number of bits to represent the overall coding interval size value in the first mode and using the second number of bits to represent the overall coding interval size value in the second mode can allow the overall coding interval size value to be represented in both the second mode and the second mode, so that the representation of the overall coding interval size value has the minimum number of bits that can represent the overall coding interval size value with maximum accuracy. Therefore, for both modes, a high degree of compromise between accuracy and throughput can be achieved.
[0144] According to an embodiment, the first number of bits is adapted to a first maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the first number of bits results in a non-zero value, and wherein the second number of bits is adapted to a second maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the second number of bits results in a non-zero value.
[0145] According to an embodiment of the first aspect, an arithmetic decoder is provided for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic decoder is configured to: in a first mode of operation, based on one or more state variable values (a t+1 , b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive one or more symbol values (x) to be decoded t+1 ) interval size information for arithmetic decoding (for example, probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ), one or more state variable values representing a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for decoding one or more subsequent symbol values; wherein the arithmetic decoder is configured to disable the updating of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values already used for decoding of one or more symbol values and / or interval size information already used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values), wherein the arithmetic decoder is configured to receive auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode enabling the updating of one or more state variable values and / or interval size information or the second mode disabling the updating of one or more state variable values and / or interval size information.
[0146] According to an embodiment, the arithmetic decoder is configured to receive auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) on a per-frame basis (e.g., once per frame), or on a per-slice basis (e.g., once per slice), or on a per-picture group basis (e.g., once per picture group), or on a per-sequence basis (e.g., once per sequence), the auxiliary information indicating whether to use a first mode that enables updating of one or more state variable values and / or interval size information or a second mode that disables updating of one or more state variable values and / or interval size information.
[0147] According to an embodiment, the arithmetic decoder is configured to receive auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing the profile) on a per-profile basis, the auxiliary information indicating whether to use a first mode that enables updating of one or more state variable values and / or interval size information or to use a second mode that disables updating of one or more state variable values and / or interval size information (wherein, for example, each profile may have been associated with a mode of the first mode and the second mode, so that the selection of the profile signaled by the auxiliary information can, for example, determine whether to use the first mode or the second mode).
[0148] According to an embodiment, the arithmetic decoder is configured to receive dedicated auxiliary information (e.g., a dedicated bit or a flag, which is specifically dedicated to indicating whether the first mode or the second mode is to be used, the dedicated auxiliary information indicating whether the first mode enabling the update of one or more state variable values and / or interval size information is to be used or the second mode disabling the update of one or more state variable values and / or interval size information is to be used.
[0149] According to an embodiment of the first aspect, an arithmetic decoder is provided for decoding a plurality of symbols having symbol values (e.g., binary values), wherein the arithmetic decoder is configured to: in a first mode of operation, based on one or more state variable values (a t+1 , b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive one or more symbol values (x) to be decoded t+1 ) interval size information for arithmetic decoding (for example, probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ), one or more state variable values representing a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2 etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for decoding one or more subsequent symbol values; wherein the arithmetic decoder is configured to disable the updating of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values already used for decoding of one or more symbol values and / or interval size information already used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values), wherein the arithmetic decoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode enabling the updating of one or more state variable values and / or interval size information or the second mode disabling the updating of one or more state variable values and / or interval size information.
[0150] According to an embodiment, the arithmetic decoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) on a per-frame basis (e.g., once per frame), or on a per-slice basis (e.g., once per slice), or on a per-picture group basis (e.g., once per picture group), or on a per-sequence basis (e.g., once per sequence), the auxiliary information indicating whether to use a first mode that enables updating of one or more state variable values and / or interval size information or a second mode that disables updating of one or more state variable values and / or interval size information.
[0151] According to an embodiment, the arithmetic decoder is configured to provide dedicated auxiliary information (e.g., a dedicated bit or a flag, which is specifically dedicated to indicating whether the first mode or the second mode is used, which dedicated auxiliary information indicates whether the first mode that enables updating of one or more state variable values and / or interval size information is used or whether the second mode that disables updating of one or more state variable values and / or interval size information is used.
[0152] The following embodiments may refer to any decoder according to the first aspect of the present invention.
[0153] According to an embodiment, the arithmetic decoder is configured to reuse one or more previously determined state variable values and / or previously determined interval size information (for example, for decoding one or more subsequent symbol values to be decoded) when using the second mode (so that, for example, when using the second mode, the same one or more previously determined state variable values or the same previously determined interval size information are used to decode multiple subsequent symbol values to be decoded, and the multiple subsequent symbol values to be decoded are decoded using different updated interval size information when using the first mode).
[0154] According to an embodiment, the arithmetic decoder is configured to decode the interval size value based on the overall encoding interval size value (eg, R) and based on the interval size information (eg, probability value p t+1 Or probability value P t+1 Or shift operation count value g LPS ) to obtain the interval size associated with the symbol value among the multiple possible symbol values (e.g., R LPS ) (e.g., such that, due to a change in the overall encoding interval size value, a different interval size is obtained for decoding subsequent symbol values to be decoded).
[0155] According to an embodiment, the arithmetic decoder is configured to use a first calculation rule when operating in the first mode and a second calculation rule when operating in the second mode to obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values based on the overall encoding interval size value (e.g., R) and based on the interval size information. LPS ) (wherein, for example, the first calculation rule comprises a higher accuracy than the second calculation rule, and / or wherein the first calculation rule comprises a higher complexity than the second calculation rule).
[0156] According to an embodiment, the arithmetic decoder is configured to: when operating in the first mode, based on the overall encoded interval size value (e.g., R) and based on the interval size information, obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values using a multiplication of the overall encoded interval size value or a shifted version thereof (e.g., R) and the interval size information value or a shifted version thereof. LPS); and when operating in the second mode, using a bit shift operation applied to (or by applying a bit shift operation) (e.g., a right shift operation) on an overall coded interval size value (e.g., R), wherein the number of bits by which the overall coded interval size value is shifted is determined by the interval size information (e.g., g LPS )Sure.
[0157] According to an embodiment, the arithmetic decoder is configured to represent the probability value based on an integer value including (or using) BITS bits (eg, P LPS ) uses the operand value (x, P LPS +(P LPS >>2)) The bit position of the most significant non-zero bit is determined to determine the shift count value (e.g., g LPS ), the shift count value describing the number of bits by which the overall coding interval size value is shifted, the operand value being increased or decreased relative to the integer value representing the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representing the probability value, and / or by adding a predetermined (e.g., constant) value).
[0158] According to an embodiment, the arithmetic decoder is configured to determine the shift count value (e.g., g) based on one or more initialization parameters (e.g., slopeIdx and / or qp and / or offsetIdx) (e.g., without determining the interval size information based on one or more source statistics). LPS ), the shift count value describes the number of bits by which the overall coding interval size value is shifted.
[0159] According to an embodiment, the arithmetic decoder is configured to obtain an updated version a of the first state value according to the following equation t+1 :
[0160] a t+1 =a t +x t ·(ONE a >>n a )-(a t >>n a )
[0161] where a t is the current version of the first state value, where x t is the symbol currently decoded (e.g., a binary symbol with a value of 0 or 1), where n a is the window size information (e.g., having an integer value), where:
[0162] ONE a =(1<<BITS a )-k a
[0163] Where BITSa is the number of bits used to represent the first state value, and k a is a predetermined number (eg, an integer value, such as 0 or 1); and / or wherein the arithmetic decoder is configured to obtain an updated version b of the first state value according to the following equation t+1 :
[0164] b t+1 =b t +x t ·(ONE b >>n b )-(b t >>n b )
[0165] where b t is the current version of the first state value, where x t is the symbol currently decoded (e.g., a binary symbol with a value of 0 or 1), where n b is the window size information (e.g., having an integer value), where:
[0166] ONE b =(1<<BITS b )-k b
[0167] BITS b is the number of bits used to represent the first state value, where k b is a predetermined number (eg, an integer value such as 0 or 1).
[0168] According to an embodiment, the arithmetic decoder is configured to perform a first state variable value (a t ) and the second state variable value (b t ) to obtain the interval size information.
[0169] According to an embodiment, the arithmetic decoder is configured to derive the probability estimate P according to the following equation t :
[0170] P t =((a t >>(BITS a -BITS min ))+(b t >>(BITS b -BITS min )))>>1Among them
[0171] BITS min =min(BITS a , BITS b )
[0172] where at is the value of the first state variable, where b t is the value of the second state variable, where BITS a It is used to represent a t The number of bits; BITS b It is used to represent b t The number of bits. (The probability value can be obtained by P t Divide by 1 << BITS min Export).
[0173] According to an embodiment of the second aspect, there is provided an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. so as to provide a bit stream comprising arithmetic decoded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g. derive) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to, in the first mode, combine the overall coded interval size value or a shifted version thereof (eg, R) with the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the arithmetic decoder is configured to obtain an interval size (e.g., RLPS) associated with a symbol value of a plurality of possible symbol values by applying a bit shift operation (e.g., right shift operation) to an overall coded interval size value (e.g., R) in the second mode, wherein the number of bits by which the overall coded interval size value is shifted is determined by the interval size information (e.g., g LPS ) determined; and wherein the arithmetic decoder is configured to receive auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0174] According to another embodiment of the second aspect, an arithmetic decoder is provided for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bitstream comprising arithmetic decoded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g. derive) a bitstream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to, in the first mode, combine the overall coded interval size value or a shifted version thereof (eg, R) with the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the arithmetic decoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoded interval size value (e.g., R) in the second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS ) determined; and wherein the arithmetic decoder is configured to provide auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0175] The following embodiments may refer to any decoder according to the second aspect of the present invention.
[0176] According to an embodiment, the arithmetic decoder is configured to derive a shift count value (eg, g LPS ), the shift count value describes how many bits the overall encoding interval size value has been shifted.
[0177] According to an embodiment, the arithmetic decoder is configured to calculate the probability value (eg P LPS ) to derive the shift count value (e.g. g LPS), the shift count value describes how many bits the overall coding interval size value is shifted, and the probability value describes the probability of a symbol value among multiple possible symbol values.
[0178] According to an embodiment, the arithmetic decoder is configured to represent the probability value based on an integer value including (or using) BITS bits (eg, P LPS ) uses the operand value (x, P LPS +(P LPS >>2)) to derive the shift count value (e.g., g LPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding a predetermined (e.g., constant) value).
[0179] According to an embodiment, the arithmetic decoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is used to derive a shift count value by determining the position of the most significant non-zero bit, which is represented by the integer value depending on the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0180] According to an embodiment, the arithmetic decoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is determined by determining the bit position of the most significant non-zero bit to derive a shift count value, which is obtained by adding or subtracting the right-shifted version of the value represented by the integer value of the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0181] According to an embodiment, the arithmetic decoder is configured to derive the shift count value g LPS :
[0182]
[0183] or
[0184]
[0185] or
[0186]
[0187] or
[0188]
[0189] Among them, P LPSis an integer value representation of a probability value; wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value; e.g., equal to zero); wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0190] According to an embodiment, the arithmetic decoder is configured to derive the shift count value g according to the following equation LPS :
[0191]
[0192] Among them, BITS-1 is used for P LPS The number of bits represented by the number (where P LPS The digital representation preferably includes a ratio P t The number represents one less bit); where P LPS is the integer value representation of the probability value; where g MAX is a predetermined number; wherein >> is a right shift operator; wherein log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0193] According to an embodiment, the arithmetic decoder is configured to init ) represents (Pclip) a derived shift count value, which initial probability value is obtained based on one or more context model initialization parameters (e.g., slope, qp, and offset) (e.g., at least when updating of one or more state variable values and / or interval size information is disabled).
[0194] According to an embodiment, the arithmetic decoder is configured to depend on the initial probability value (eg p init ) of a (e.g., range-restricted) integer value representation (e.g., P clip ) to initialize one or more source statistics (e.g. a t 、b t ), where the initial probability value is obtained based on one or more context model initialization parameters (e.g., at least using an update of one or more state variable values and / or interval size information).
[0195] According to an embodiment, the arithmetic decoder is configured to use a bit shift operation depending on the initial probability value (eg P init 、pinit ) is a limited range integer value representation (e.g. P clip ) to initialize one or more source statistics (e.g. a t 、b t ).
[0196] According to an embodiment, the arithmetic decoder is configured to depend on the initial probability value (eg P init 、p init ) is a limited range integer value representation (e.g. P clip ) to initialize one or more source statistics (e.g. a t 、b t ):
[0197] a t =P clip <<(BITS a -const31)
[0198] and / or
[0199] b t =P clip <<(BITS b -const31)
[0200] Among them, BITS a is used for source statistic a t The number represents the number of bits; BITS b is used for source statistic value b t The number of bits represented by the number; wherein const31 is a predetermined value (e.g., 7); and wherein << is a left shift operator.
[0201] According to an embodiment, the arithmetic decoder is configured to derive the initial probability value (eg, P) according to the following equation: init 、p init ) (e.g., P clip ):
[0202] P clip =min(const11,max(const12,P init ))
[0203] P init=((slope·(qp-const13))>>const14)+offset wherein const11 is a predetermined value (e.g., 127); wherein Const12 is a predetermined value (e.g., 1); wherein const13 is a predetermined value (e.g., 16); wherein const14 is a predetermined value (e.g., 1); wherein slope is an initialization parameter value (e.g., an integer value, e.g., in a range between -4 and 3) (which can be represented by an initialization parameter, such as slopeIdx); wherein qp is a quality parameter value (e.g., an integer value, e.g., in a range between 0 and 51) (e.g., a quantization parameter describing a quantization step size used for quantization of symbol values); wherein offset is an initialization parameter value (e.g., an integer value, e.g., in a range between 1 and 127) (which can be represented by an initialization parameter, such as offsetIdx).
[0204] According to an embodiment, the arithmetic decoder is configured to determine, based on the same one or more initialization parameters (eg, slopeIdx, offsetIdx): one or more source statistics (eg, a t 、b t ), which is used to derive the interval size information value (e.g., p in the first mode) LPS or P LPS ); and the shift count value (e.g. g LPS ) which is used in the second mode.
[0205] According to an embodiment, the arithmetic decoder is configured to obtain the interval size R in the first mode according to the following equation LPS :
[0206] R LPS =(((R>>SHIFT R )·(P LPS >>SHIFT P ))>>SHIFT MUL )+add LPS
[0207] Where R is the size of the overall coding interval; where SHIFT R is a predetermined value; where P LPS Is an integer value interval size information value; where SHIFT P is a predetermined value; where SHIFT MUL is a predetermined value; where add LPS is a predetermined value (preferably greater than zero).
[0208] According to an embodiment, the arithmetic decoder is configured to obtain the integer-valued interval size information value P according to the following equation: LPS :
[0209] val MPS =P t >>(BITS min -1)
[0210] P LPS =(val MPS ? (1<<BITS min )-1-P t :P t )
[0211] Where Pt is an integer-valued probability value; Where BITSmin is the number of bits used to represent Pt; Where (cond?A:B) is an operator that provides the value A if the condition cond is non-zero, otherwise it provides B.
[0212] According to an embodiment of the third aspect, there is provided an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. so as to provide a bit stream comprising arithmetic decoded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g. derive) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoded interval size value (e.g., R); LPS ), where the number of bits by which the overall coding interval size value is shifted is determined by the shift count value (e.g., g LPS ) determined; and wherein the arithmetic decoder is configured to represent an integer value (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) uses the operand value (x, P LpS +(P LPS >>2)) to derive the shift count value (e.g., g LPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value).
[0213] According to an embodiment, the arithmetic decoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is used to derive a shift count value by determining the position of the most significant non-zero bit, which is represented by the integer value depending on the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0214] According to an embodiment, the arithmetic decoder is configured to use the operand values (x, P LPS +(P LPS >>2)) is determined by determining the bit position of the most significant non-zero bit to derive a shift count value, which is obtained by adding or subtracting the right-shifted version of the value represented by the integer value of the probability value (P LPS >>2) An integer value relative to the probability value indicates an increase or decrease.
[0215] According to an embodiment, the arithmetic decoder is configured to derive the shift count value g according to the following equation LPS :
[0216]
[0217] or
[0218]
[0219] or
[0220]
[0221] or
[0222]
[0223] Among them, P LPS is an integer value representation of a probability value; wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value); wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0224] According to an embodiment, the arithmetic decoder is configured to derive the shift count value g according to the following equation LPS :
[0225]
[0226] Among them, BITS-1 is used for P LPS The number of bits represented by the number; where P LPS is the integer value representation of the probability value; where g MAX is a predetermined number; wherein >> is a right shift operator; wherein log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0227] According to an embodiment, the arithmetic decoder is configured to calculate the probability of the initial probability value (eg, P init 、p init ) (e.g., P clip ) derives a shift count value, which initial probability value is obtained based on one or more context model initialization parameters (e.g., slope, qp, and offset) (e.g., at least when updating of one or more state variable values and / or interval size information is disabled).
[0228] According to an embodiment, the arithmetic decoder is configured to depend on the initial probability value (eg P init 、p init ) (e.g., P clip ) to initialize one or more source statistics (e.g. a t 、b t ), where the initial probability value is obtained based on one or more context model initialization parameters (e.g., at least using an update of one or more state variable values and / or interval size information).
[0229] According to an embodiment, the arithmetic decoder is configured to use a bit shift operation depending on the initial probability value (eg P init 、p init ) is a limited range integer value representation (e.g. P clip ) to initialize one or more source statistics (e.g. a t 、b t ).
[0230] According to an embodiment, the arithmetic decoder is configured to depend on the initial probability value (eg P init 、p init ) represents an integer value with a limited range of P clip To initialize one or more source statistics a t 、b t
[0231] a t =P clip <<(BITS a -const31)
[0232] and / or
[0233] b t =P clip <<(BITS b -const31)
[0234] Among them, BITS a is used for source statistic a t The number represents the number of bits; BITS b is used for source statistic value b t The number of bits represented by the number; wherein const31 is a predetermined value (e.g., 7); and wherein << is a left shift operator.
[0235] According to an embodiment, the arithmetic decoder is configured to derive the initial probability value P according to the following equation init The (limited range) integer value represents P clip :
[0236] P clip =min(const11,max(const12,Pi init ))
[0237] P init =((slope·(qp-const13))>>const14)+offset wherein const11 is a predetermined value (e.g., 127); wherein const12 is a predetermined value (e.g., 1); wherein const13 is a predetermined value (e.g., 16); wherein const14 is a predetermined value (e.g., 1); wherein slope is an initialization parameter value (e.g., an integer value, e.g., in a range between -4 and 3) (which can be represented by an initialization parameter, such as slopeIdx); wherein qp is a quality parameter value (e.g., an integer value, e.g., in a range between 0 and 51) (e.g., a quantization parameter describing a quantization step size used for quantization of symbol values); wherein offset is an initialization parameter value (e.g., an integer value, e.g., in a range between 1 and 127) (which can be represented by an initialization parameter, such as offsetIdx).
[0238] According to an embodiment, the arithmetic decoder is configured to determine, based on the same one or more initialization parameters (eg, slopeIdx, offsetIdx): one or more source statistics (eg, a t 、b t ), which is used to derive the interval size information value (e.g., p in the first mode) LPS or P LPS ); and the shift count value (e.g. g LPS) which is used in the second mode.
[0239] According to an embodiment of the fourth aspect, there is provided an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic decoded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g., derive) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to obtain an interval size (eg, R ) associated with a symbol value in a plurality of possible symbol values using a first interval size determination method in a first mode. LPS ); and wherein the arithmetic decoder is configured to use a second interval size determination method in the second mode (e.g., by applying a bit shift operation (e.g., a right shift operation) to an overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS ); and wherein the arithmetic decoder is configured to obtain one or more first initialization values (e.g., a) based on one or more initialization parameters (e.g., a slope and an offset, represented by slopIdx and offsetIdx, respectively) (e.g., using a first initialization value determination method). t and / or b t ) (e.g., an initial source statistic value) for determining the interval size using a first interval size determination method, and wherein the arithmetic decoder is configured to obtain one or more second initialization values (e.g., g based on one or more initialization parameters (e.g., using a second initialization value determination method different from the first initialization value determination method) LPS ), which is used to determine the interval size using a second interval size determination method.
[0240] According to an embodiment, a first interval size determination method ("first interval size estimator") includes a first accuracy (e.g., a relatively high resolution), wherein a second interval size determination method ("second interval size estimator") includes a second accuracy (e.g., a relatively low resolution), wherein the first accuracy is different from the second accuracy; and / or wherein the first interval size determination method includes a first computational complexity (e.g., a relatively high computational complexity), wherein the second interval size determination method includes a second computational complexity (e.g., a relatively low computational complexity), wherein the first computational complexity is different from the second computational complexity.
[0241] According to an embodiment, the arithmetic decoder is configured to, in a first mode, combine the overall encoded interval size value or a shifted version thereof (eg R) with the interval size information value or a shifted version thereof (eg p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain an interval size (e.g., R) associated with a symbol value from among the plurality of possible symbol values. LPS ); and wherein the arithmetic decoder is configured to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoded interval size value (e.g., R) in the second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0242] According to an embodiment, the arithmetic decoder is configured to determine one or more source statistics (e.g. a t 、b t ) as one or more first initialization values; and / or wherein the arithmetic decoder is configured to determine a shift count value (eg, g LPS ) as a second initialization value, the shift count value determining the number of bits by which the overall encoding interval size value is to be shifted to obtain an interval size (R) associated with a symbol value in a plurality of possible symbols LPS ).
[0243] According to an embodiment, the arithmetic decoder is configured to determine one or more first initialization values using a first mapping (e.g., a first initialization value determination method), which first mapping converts an intermediate probability value (e.g., P) obtained based on one or more initialization parameters (slope, offset) into an intermediate probability value (e.g., P) in addition to one or more clipping operations and one or more rounding operations. clip ) is linearly mapped to one or more first initialization values (e.g., a t 、b t )superior.
[0244] According to an embodiment, the arithmetic decoder is configured to use a probability value equal to the intermediate probability value (eg, P clip ) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2)) to a reduced range of (e.g., integer) values (e.g., g LPS ) (e.g., a second initialization value determination method) to determine one or more second initialization values; or
[0245] The arithmetic decoder is configured to use a pair equal to the intermediate probability value (eg, P clip ) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2)) quantize the grid in the logarithmic domain (e.g. to obtain g LPS ) (e.g., a second initialization value determination method) to determine one or more second initialization values.
[0246] According to an embodiment, the arithmetic decoder is configured to determine one or more second initialization values using a second mapping, the second mapping comprising: calculating a value equal to the intermediate probability value (eg, P clip ) or based on an intermediate probability value (e.g. P clip ) operand value (e.g. P LPS +(P LPS >>2))'s logarithm (e.g., log2); and rounding the calculated logarithm to an integer value.
[0247] According to an embodiment, the arithmetic decoder is configured to obtain one or more first initialization values a according to the following equations: t and / or b t :
[0248] a t =P clip <<(BITS a -const64)
[0249] b t =P clip <<(BITS b -const64)
[0250] The arithmetic decoder is configured to obtain the intermediate probability value P according to the following equation: clip :
[0251] P clip =min(const 60,max(const61,P init ))
[0252] P init =((slope·(qp-const 62))>>const63)+offset
[0253] wherein slope is a first initialization parameter; wherein offset is a second initialization parameter; wherein qp is a third initialization parameter; wherein const60 is a predetermined value (e.g., 127); wherein const61 is a predetermined value (e.g., 1); wherein const62 is a predetermined value (e.g., 16); wherein const63 is a predetermined value (e.g., 1); wherein const64 is a predetermined value (e.g., 7); wherein BITS a It is used to represent the first source statistic a t The number of bits; BITS b It is used to represent the first source statistic b t The number of bits;
[0254] According to an embodiment, the arithmetic decoder is configured to obtain the second initialization value g according to the following equation LpS :
[0255]
[0256] or
[0257]
[0258] or
[0259]
[0260] or
[0261]
[0262] Where P LPS Equal to P clip Or based on P clip (For example, using the probability of a small probability symbol to determine the probability of P clip Export), where P clip is obtained according to the following equation:
[0263] P clip =min(const 60,max(const61,P init ))
[0264] P init =((slope·(qp-const 62))>>const63)+offset
[0265] wherein slope is a first initialization parameter; wherein offset is a second initialization parameter; wherein qp is a third initialization parameter; wherein const60 is a predetermined value (e.g., 127); wherein const61 is a predetermined value (e.g., 1); wherein const62 is a predetermined value (e.g., 16); wherein const63 is a predetermined value (e.g., 1); wherein const1 is a predetermined value (e.g., BITS-1) (preferably an integer value); wherein const2 is a predetermined value (e.g., 2) (preferably an integer value); wherein const2' is a predetermined value (preferably a value different from 1); wherein const3 is a predetermined value (preferably an integer value); wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0266] According to an embodiment of the fifth aspect, there is provided an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic decoded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g., derive) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to obtain, in a first mode, an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values based on the overall encoding interval size value (e.g., R) (e.g., using a first interval size determination method); LPS ); and wherein the arithmetic decoder is configured to determine the overall coding interval size value (e.g., R) in the second mode (using a second interval size determination method) (e.g., by applying a bit shift operation (e.g., a right shift operation) to the overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS); and wherein the arithmetic decoder is configured to switch between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R) (e.g., such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, for example).
[0267] According to an embodiment, the arithmetic decoder is configured to determine (and update, e.g., renormalize) the overall encoding interval size value such that before decoding the symbol value (e.g., after renormalization) the overall encoding interval size value is in the following interval:
[0268] (1<<(BITS R1 -1), (1<<BITS R1 )-1)
[0269] (and such that after decoding the symbol value and before possible renormalization, the overall encoding interval size value is in the interval (1, (1<<BITS R1 )-2) wherein the arithmetic decoder is configured to use BITS in the first mode R1 bits represent the coding interval size, and wherein the arithmetic decoder is configured to use BITS in the second mode R2 Bits represent the size of the encoding interval, where BITS R2 <BITS R1 .
[0270] According to an embodiment, the arithmetic decoder is configured to, in a first mode (where, for example, a relatively high first number of bits or a first resolution may be used), separate the overall encoded interval size value or a shifted version thereof (e.g., R) from the interval size information value or a shifted version thereof (e.g., p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain an interval size (e.g., R) associated with a symbol value from among the plurality of possible symbol values. LPS ).
[0271] According to an embodiment, the arithmetic decoder is configured to obtain an interval size (e.g. R) associated with a symbol value of the plurality of possible symbol values by applying a bit shift operation (e.g. right shift operation) to the overall encoded interval size value (e.g. R) in a second mode (where, for example, a relatively lower second number of bits or a second resolution may be used). LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0272] According to an embodiment, the arithmetic decoder is configured to derive a shift count value (eg, g LPS ), the shift count value describes how many bits the overall encoding interval size value has been shifted.
[0273] According to an embodiment, the arithmetic decoder is configured to convert the shift count value (eg g LPS ) is limited to a maximum value of g MAX , and wherein the first bit number (eg BITS R1 ) is greater than the second number of bits, and wherein the second number of bits (eg, BITS R2 ) is greater than the maximum value g MAX (For example, BITS R2 =g MAX +ADD MAX , where ADD MAX is a positive integer value).
[0274] According to an embodiment, the arithmetic decoder is configured to switch between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R), such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, wherein the first number of bits is greater than the second number of bits, and wherein the arithmetic decoder is configured to obtain, in the second mode, an interval size (e.g., R) associated with a symbol value from among a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall coding interval size value (e.g., R). LPS ), where the number of bits by which the overall coding interval size value is shifted is determined by the shift count value (e.g., g LPS ) determined; and wherein the shift count value is limited to a first maximum value (e.g., gmax(mode1)) in a first mode, and wherein the shift count value is limited to a second maximum value (e.g., gmax(mode2)) in a second mode, wherein the first maximum value is greater than the second maximum value.
[0275] According to an embodiment, the first number of bits is adapted to a first maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the first number of bits results in a non-zero value, and wherein the second number of bits is adapted to a second maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the second number of bits results in a non-zero value.
[0276] According to an embodiment of the first aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises: in a first mode of operation, based on one or more state variable values (at+1 、b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive the value for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ), one or more state variable values representing multiple previously encoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2 etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for encoding one or more subsequent symbol values; wherein the method includes disabling the updating of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values already used for encoding one or more symbol values and / or interval size information already used for encoding one or more symbol values are reused for encoding one or more subsequent symbol values); wherein the method includes providing auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode enabling the updating of one or more state variable values and / or interval size information or the second mode disabling the updating of one or more state variable values and / or interval size information.
[0277] According to an embodiment of the second aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. in order to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises in a first mode, the overall encoding interval size value or a displacement version thereof (eg, R) and the interval size information value or a displacement version thereof (eg, p LPS or P LPS) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the method comprises obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to an overall encoding interval size value (e.g., R) in a second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS ) determined; and wherein the method includes providing auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0278] According to an embodiment of the third aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. in order to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method includes obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoding interval size value (e.g., R); LPS ), where the number of bits by which the overall coding interval size value is shifted is determined by the shift count value (e.g., g LPS ) determination; and wherein the method includes an integer value representation (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using the operand value (x,P LPS +(P LPS >>2)) to derive the shift count value (e.g., g LPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value).
[0279] According to an embodiment of the fourth aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. in order to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method includes obtaining an interval size (e.g., R ) associated with a symbol value in a plurality of possible symbol values using a first interval size determination method in a first mode LPS ); and wherein the method includes using a second interval size determination method in a second mode (e.g., by applying a bit shift operation (e.g., a right shift operation) to an overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS ); and wherein the method includes obtaining one or more first initialization values (e.g., a) based on one or more initialization parameters (e.g., a slope and an offset, represented by slopIdx and offsetIdx, respectively) (e.g., using a first initialization value determination method) t and / or b t ) (e.g., an initial source statistic value) for determining the interval size using a first interval size determination method, and wherein the method includes obtaining one or more second initialization values (e.g., g based on one or more initialization parameters (e.g., using a second initialization value determination method different from the first initialization value determination method) LPS ), which is used to determine the interval size using a second interval size determination method.
[0280] According to an embodiment of the fifth aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. in order to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPSOr shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values based on an overall encoding interval size value (e.g., R) (e.g., using a first interval size determination method) in a first mode. LPS ); and wherein the method includes determining the overall coding interval size value (e.g., R) in the second mode (using a second interval size determination method) (e.g., by applying a bit shift operation (e.g., a right shift operation) to the overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS ); and wherein the method includes switching between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R) (e.g., such that the first number of bits is used when operating in a first mode, and such that the second number of bits is used, for example, when operating in a second mode).
[0281] According to an embodiment of the first aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values), wherein the method comprises: in a first mode of operation, based on one or more state variable values (a t+1 , b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive one or more symbol values (x) to be decoded t+1 ) interval size information for arithmetic decoding (for example, probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ), one or more state variable values representing a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for decoding one or more subsequent symbol values; wherein the method includes disabling the updating of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values that have been used for decoding of one or more symbol values and / or interval size information that have been used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values); wherein the method includes receiving auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode that enables the updating of one or more state variable values and / or interval size information or the second mode that disables the updating of one or more state variable values and / or interval size information.
[0282] According to an embodiment of the first aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values), wherein the method comprises: in a first mode of operation, based on one or more state variable values (a t+1 , b t+1 , also called source statistics) (which is associated with a given context model, for example) to derive one or more symbol values (x) to be decoded t+1 ) interval size information for arithmetic decoding (for example, probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ), one or more state variable values representing a plurality of previously decoded symbol values (e.g., a sequence of binary values 0 and 1, such as x t 、x t-1 、x t-2 etc.); and in a first mode (e.g., in a normal throughput operation mode), updating one or more state variable values and / or interval size information for decoding one or more subsequent symbol values; wherein the method includes disabling the updating of one or more state variable values and / or interval size information in a second mode (e.g., in a high throughput operation mode) (e.g., so that one or more state variable values that have been used for decoding of one or more symbol values and / or interval size information that have been used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values); wherein the method includes providing auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile), the auxiliary information indicating whether to use the first mode that enables the updating of one or more state variable values and / or interval size information or the second mode that disables the updating of one or more state variable values and / or interval size information.
[0283] According to an embodiment of the second aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising an arithmetically decoded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises in a first mode, the overall encoding interval size value or a displacement version thereof (eg, R) and the interval size information value or a displacement version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the method comprises obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to an overall encoding interval size value (e.g., R) in a second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS ) determined; and wherein the method includes receiving auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0284] According to an embodiment of the second aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising an arithmetically decoded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., RLPS ); wherein the method comprises in a first mode, the overall encoding interval size value or a displacement version thereof (eg, R) and the interval size information value or a displacement version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ); and wherein the method comprises obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to an overall encoding interval size value (e.g., R) in a second mode. LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS ) determined; and wherein the method includes providing auxiliary information (e.g., a dedicated bit or flag, or auxiliary information describing a profile) indicating whether to use a first mode of performing multiplication between an overall coding size value and an interval size information value or a second mode of obtaining the interval size by bit shifting.
[0285] According to an embodiment of the third aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising an arithmetically decoded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method includes obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoding interval size value (e.g., R); LPS ), where the number of bits by which the overall coding interval size value is shifted is determined by the shift count value (e.g., g LPS ) determination; and wherein the method includes an integer value representation (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using the operand value (x,P LPS +(P LPS >>2)) to derive the shift count value (e.g., gLPS ), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value).
[0286] According to an embodiment of the fourth aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising an arithmetically decoded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method includes obtaining an interval size (e.g., R ) associated with a symbol value in a plurality of possible symbol values using a first interval size determination method in a first mode LPS ); and wherein the method includes using a second interval size determination method in a second mode (e.g., by applying a bit shift operation (e.g., a right shift operation) to an overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS ); and wherein the method includes obtaining one or more first initialization values (e.g., a) based on one or more initialization parameters (e.g., a slope and an offset, represented by slopIdx and offsetIdx, respectively) (e.g., using a first initialization value determination method) t and / or b t ) (e.g., an initial source statistic value) for determining the interval size using a first interval size determination method, and wherein the method includes obtaining one or more second initialization values (e.g., g based on one or more initialization parameters (e.g., using a second initialization value determination method different from the first initialization value determination method) LPS ), which is used to determine the interval size using a second interval size determination method.
[0287] According to an embodiment of the fifth aspect, there is provided a method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. to provide a bit stream comprising an arithmetically decoded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g. deriving) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises obtaining an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values based on an overall encoding interval size value (e.g., R) (e.g., using a first interval size determination method) in a first mode. LPS ); and wherein the method includes determining the overall coding interval size value (e.g., R) in the second mode (using a second interval size determination method) (e.g., by applying a bit shift operation (e.g., a right shift operation) to the overall coding interval size value (e.g., R), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value (e.g., g LPS ) to obtain an interval size (e.g., R) associated with a symbol value among a plurality of possible symbol values LPS ); and wherein the method includes switching between use of a first number of bits (or a first bit resolution) and use of a second number of bits (or a second bit resolution) for representing an overall coding interval size value (e.g., R) (e.g., such that the first number of bits is used when operating in a first mode, and such that the second number of bits is used, for example, when operating in a second mode).
[0288] A sixth aspect of the invention depends on the idea of using a count value to determine an interval size for encoding or decoding a symbol, the interval size being associated with a symbol value. The idea includes deriving a count value based on an integer value representation of interval size information, which interval size information may, for example, describe the probability of an associated symbol value. Derivation of the count value uses determination of the bit position of the most significant non-zero bit of an operand value, which operand value is increased or decreased relative to the integer value representation of the interval size information. For example, determining the bit position of the most significant non-zero bit of an operand value is an effective operation for rounding the operand value to a power of 2. Increasing or decreasing the operand value relative to the integer value representation of the interval size information may result in rounding the interval size information up or rounding to, for example, the next nearest power of 2. Thus, rounding may be accurate, for example, more accurate without increasing or decreasing the integer value representation of the interval size information. Furthermore, determining the position of the most significant bit may require little computational effort. Thus, for example, determining the count value according to the described process may represent a very efficient way to accurately round the integer value representation of the interval size value to a bit position of a non-zero bit, i.e., for example, to a power of 2. Powers of 2 can be represented by a low number of bits, for example, by indicating the power rather than the value. Therefore, using a count value to determine the interval size may require a low number of bits for the count value, thereby allowing an efficient and fast implementation. For example, the count value can be used as an input to a mapping function or a shift operation. Since the count value can represent the integer value of the interval size value in the form of a power of 2, it can be directly mapped to the position of the entry in the table without further processing, so that the mapping can be implemented very efficiently. Similarly, the form of the count value can achieve an efficient implementation of the shift operation, where the count value is used to indicate that the operand value (e.g., the overall encoded interval size value) will be shifted, for example, to obtain the number of bits of the interval size. Note that in some aspects described herein, the shift count value can be derived similarly or equivalently to the count value, or the shift count value can correspond to the count value, so that the functions and advantages described with respect to the count value can also be applied to the shift count value.
[0289] According to an embodiment of the sixth aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g., binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (e.g., x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to represent an integer value (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using operand values (e.g. x, P LPS +(P LPS >>2)) The count value (g) is derived by determining the position of the most significant non-zero bit LPS ; also referred to as a shift count value or a shift parameter), the operand value being increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value); and wherein the arithmetic encoder is configured to use the count value to obtain an interval size (e.g., R) associated with a symbol value from the plurality of possible symbol values. LPS ).
[0290] According to an embodiment, the arithmetic encoder is configured to apply a bit shift operation (e.g., a right shift operation) to a predetermined value (e.g., R'; e.g., 384) (e.g., the predetermined value is within a range of allowed overall encoding interval size values and may be located in the middle of the range (or interval) of allowed overall encoding interval size values within a tolerance range of + / -10% relative to the width of the range (or interval)) to obtain an interval size (e.g., R LPS ), where the number of bits by which the predetermined value is shifted is determined by the count value (e.g., g LPS ) Determining the interval size using a predetermined value is a way of determining the interval size with little computational effort, for example, less effort than determining the interval size based on a continuously adapted overall coded interval size perception value. Thus, this implementation allows for particularly high throughput.
[0291] According to an embodiment, the arithmetic encoder is configured to convert the count value (eg, g LPS ) to the interval size (for example, to R LPS The mapping operation can be performed quickly and effortlessly, thereby providing high throughput.
[0292] According to an embodiment, the arithmetic encoder is configured to determine the interval size (e.g. using the application of a bit shift operation of a predetermined value (e.g. R'), or using a mapping table, independently of the current overall encoding interval size (e.g. R) if the count value is within a first value range (e.g. if the count value is greater than 1, or if the count value is greater than a (predetermined) threshold), and wherein the arithmetic encoder is configured to determine the interval size depending on the current overall encoding interval size value (e.g. R) if the count value is within a second value range different from the first value range (e.g. if the count value is less than or equal to 1, or if the count value is less than or equal to the (predetermined) threshold, or if the count value takes a predetermined value (e.g. 1)). Thus, the determination of the interval size can be adapted to the count value, which is based on interval size information, which, for example, represents the probability of a symbol value associated with the interval size. For example, the first value range for the count value may represent a value where the probability of the associated symbol value is higher than the probability of another of the binary symbol values or higher than a threshold, while the second value range may represent a value where the probability of the binary symbol values is equal or similar or the probability of the associated symbol value is lower than a threshold. For example, for equal or similar probabilities of binary symbol values, determining the interval size and basing it on the overall encoded interval size value, such as reusing the overall encoded interval size value as the interval size, can be computationally efficient. Otherwise, determination of the interval size independent of the overall encoded interval size value can provide accurate determination of the interval size and thus provide a high compression rate. In other words, the way of obtaining the interval size based on the adaptation of the count value can provide a good compromise between computational efficiency and compression rate.
[0293] According to an embodiment, the arithmetic encoder is configured to: if the count value is within the second value range, take over the current overall encoding interval size value (eg, R) as the interval size (eg, R LPS )(and skipping the bin size renormalization)(i.e. using bypass mode)(where, for example, the overall encoding bin size is limited to 2 N and 2 N+1 -1). Taking over the current encoding interval size value can save computational effort and provide high throughput. As in the second value range, for example, the count value can represent the probability of a symbol value associated with the interval size, which is equal to or similar to the probability of another one of the binary values, however, reusing the current overall encoding interval size can provide a high compression rate because, for example, renormalization of the overall encoding interval size value can be omitted. Therefore, for example, more computational power can be saved without losing accuracy.
[0294] According to an embodiment, the arithmetic encoder is configured to: if the count value is within the second value range, apply a bit shift operation (e.g., a right shift operation) to the current overall encoding interval size value (e.g., R) to obtain the interval size (e.g., R LPS) (where the number of bits shifted by the current overall coding interval size value is determined by the count value (e.g. g LPS ) is determined, or is predetermined). If the count value is within the second value range, determining the interval size based on the overall encoded interval size value provides a particularly accurate determination of the interval size.
[0295] According to an embodiment, the arithmetic encoder is configured to apply a bit shift operation (e.g., a right shift operation) to the current overall encoding interval size value (e.g., R) if the count value is within the first value range (e.g., for a count value greater than 1) so as to obtain the interval size (e.g., R LPS ) (where the number of bits shifted by the current overall coding interval size value is determined by the count value (e.g. g LPS ) is determined, or is predetermined), and wherein the arithmetic encoder is configured to take over the current overall encoding interval size value (e.g., R) as the interval size (e.g., and skip the interval size renormalization) (i.e., use the bypass mode) if the count value is within the second value range (e.g., for the count value is 1) (where, for example, the overall encoding interval size is limited to 2 N and 2 N+1 -1).
[0296] A seventh aspect of the invention depends on the idea of implementing two or more operating modes for encoding or decoding of symbol values, so that for each operating mode, a trade-off between compression rate and computational workload can be selected individually. The idea includes: when operating in a first mode, determining the interval size for encoding or decoding of symbol values at a first granularity or first resolution; and when operating in a second mode, determining the interval size at a second granularity or resolution. Determining the interval size at a high granularity or resolution can allow a high compression rate for a coded bitstream into which the symbol values to be encoded are encoded or from which the symbol values to be decoded are decoded. In contrast, a low resolution or granularity can allow a particularly fast determination of the interval size and can also allow the use of a low number of bits to represent the interval size. Therefore, a low resolution or granularity of the interval size can allow a computationally efficient encoding or decoding process. Therefore, two operating modes with different resolutions or granularities allow the encoding or decoding to be adapted to the current bitstream requirements or decoder or encoder capabilities, while allowing a good trade-off between high compression rate and computational workload.
[0297] According to an embodiment of the seventh aspect, there is provided an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g., binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (x t+1) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic encoder is configured to be switchable between a first mode (high throughput mode) and a second mode (normal mode), wherein the arithmetic encoder is configured to determine, when operating in the first mode, an interval size (e.g., R ) associated with a symbol value of a plurality of possible symbol values at a first granularity or a first resolution (e.g., a granularity of 8) LPS ), and determining an interval size (e.g., R ) associated with a symbol value of the plurality of possible symbol values at a second granularity or resolution (e.g., a granularity of 1) when operating in the second mode LPS ), wherein the first granularity or the first resolution is coarser than the second granularity or the second resolution.
[0298] Note that the first operation mode described in relation to aspect seven may be, for example, a high throughput operation mode and may correspond to the second operation mode described in relation to other aspects. In addition, the second operation mode described in relation to aspect seven may be, for example, a normal mode or an efficient mode and may correspond to the first operation mode described in relation to other aspects.
[0299] According to an embodiment, the arithmetic encoder is configured to use a bin size (eg, R ) comprising a first number of bits when operating in the first mode. LPS ), and wherein the arithmetic encoder is configured to use an interval size (eg, R ) comprising a second number of bits when operating in the second mode. LPS ), wherein the second number of bits (e.g., 9 bits) is greater than the first number of bits (e.g., 6 bits); or wherein the arithmetic encoder is configured to, when operating in the first mode, increase the interval size (e.g., R LPS ) is reserved as a predetermined bit value (e.g., 0) (such that the bits reserved with the predetermined value do not carry meaningful information), and when operating in the first mode, the interval size (e.g., R LPS ) as information carrying bits. For example, the number of signal bits or used bits can be adapted to the resolution or granularity of determining the interval size. Thus, using a first number of bits in a first mode and a second number of bits in a second mode allows, for example, an efficient implementation or a fast encoding process without loss of accuracy.
[0300] According to an embodiment, the arithmetic encoder is configured to use a representation of the overall coding interval size (e.g., R) including a third bit number when operating in the first mode, and wherein the arithmetic encoder is configured to use a representation of the overall coding interval size (e.g., R) including a fourth bit number when operating in the second mode, wherein the fourth bit number (e.g., 9 bits) is greater than the third bit number (e.g., 5 bits); or wherein the arithmetic encoder is configured to reserve a plurality of bits (e.g., the least significant 3 bits) of the representation of the overall coding interval size (e.g., R) as a predetermined bit value (e.g., 0) when operating in the first mode (so that the bits reserved with the predetermined value do not carry meaningful information), and to use all bits of the representation of the overall coding interval size (e.g., R) as information carrying bits when operating in the first mode. Adapting the number of bits used to represent the overall coding interval size value according to the current operating mode allows efficient implementation, for example, without loss of accuracy, as also described with respect to aspect five. Combining an adaptation of the number of bits used to represent the interval size with an adaptation of the number of bits used to encode the interval size value as a whole can be particularly beneficial, for example, determining the interval size based on the overall encoded interval size value can be particularly easy to implement and, for example, the determination of the interval size may only have to process as many bits as are required to determine the interval size with accuracy.
[0301] According to an embodiment, the arithmetic encoder is configured to, when operating in the second operating (normal mode) mode, determine the bin size such that the bin size depends on the overall encoding bin size (R).
[0302] According to an embodiment, the arithmetic encoder is configured to determine the bin size when operating in the first mode (high throughput mode) such that the bin size is independent of the overall encoding bin size (R) at least within a value range of the bin size information.
[0303] According to an embodiment, the arithmetic encoder is configured to perform a multiplication based overall coding interval subdivision when operating in the second mode (normal mode).
[0304] According to an embodiment, the arithmetic encoder is configured to, when operating in the second mode (normal mode), separate the overall encoded interval size value or a shifted version thereof (eg, R) from the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ).
[0305] According to an embodiment, the arithmetic encoder is configured to perform a displacement-based subdivision of the overall coding interval when operating in the second mode (normal mode). The displacement-based subdivision can be performed quickly and with little computational effort. For example, when a high number is selected to represent the interval size, a high accuracy of the interval size and therefore a high compression rate can be achieved. Therefore, in combination with the number of bits adapted to represent the interval size depending on the operating mode, by determining the interval size by a displacement operation in the second mode and optionally in the first mode, a first operating mode with a high throughput and a second operating mode with a high compression rate can be implemented with high computational efficiency.
[0306] According to an embodiment, the arithmetic encoder is configured to obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoding interval size value (e.g., R) when operating in the second mode (normal mode). LPS ), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0307] According to an embodiment, the arithmetic encoder is configured to initialize the overall coding interval size (R) to a multiple of a predetermined power of 2 when operating in the first mode (high throughput mode). By initializing the overall coding interval size value to a predetermined multiple of 2, and determining the interval size based on the overall coding interval size value, for example by using a bit shift operation, it can result in the interval size being a multiple of the predetermined power of 2. Therefore, the interval size can be represented by a low number of bits, for example without losing accuracy.
[0308] According to an embodiment, the arithmetic encoder is configured to provide a bin size when operating in high throughput mode such that the bin size (eg, R LPS ) (and preferably also a complementary symbol interval size (associated with a symbol value different from a given symbol value, e.g. associated with a highly probable symbol value), e.g. R MPS =RR LPS , which is obtained by subtracting the bin size (associated with a given symbol value, such as a less likely symbol value) from the overall encoding bin size (e.g., R LPS ) is a multiple of a predetermined power of 2 (e.g., 8). Therefore, the interval size can be represented by a low number of bits or a low number of bits carrying information, thereby allowing efficient signaling and fast processing.
[0309] According to an embodiment, the arithmetic encoder is configured to use a table lookup (and optionally a bypass mode where the current overall encoding interval size value (e.g. R) is taken over as the interval size (e.g. R LPS), and wherein renormalization of the interval size is skipped for one or more values of the interval size information) to provide the interval size, wherein the entries of the lookup table are multiples of a predetermined power of 2 (e.g., 8). Since the entries are multiples of a predetermined power of 2, a low number of bits or a low number of bits carrying information can be used to signal the interval size.
[0310] In accordance with an embodiment, the arithmetic encoder is configured to provide the interval size using the application of a bit shift operation to a predetermined value (e.g., R'), which is selected such that the bit shifted version of the predetermined value is a multiple of a predetermined power of 2 (e.g., 8) (e.g., R'=384 decimal=110000000 binary).
[0311] The embodiment of the sixth aspect provides an arithmetic decoder for decoding a plurality of symbols having symbol values (eg, binary values), wherein the arithmetic decoder is configured to determine (eg, derive) a binary value for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to represent an integer value (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using the operand value (x,P LPS +(P LPS >>2)) The count value (g) is derived by determining the position of the most significant non-zero bit LPS ; also referred to as a shift count value or a shift parameter), the operand value being increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value); and wherein the arithmetic decoder is configured to use the count value to obtain an interval size (e.g., R) associated with a symbol value from the plurality of possible symbol values. LPS ).
[0312] According to an embodiment, the arithmetic decoder is configured to apply a bit shift operation (e.g., a right shift operation) to a predetermined value (e.g., R'; e.g., 384) (e.g., the predetermined value is within a range of allowed overall encoding interval size values and may be located in the middle of the range (or interval) of allowed overall encoding interval size values within a tolerance range of + / -10% relative to the width of the range (or interval)) to obtain an interval size (e.g., R LPS), where the number of bits by which the predetermined value is shifted is determined by the count value (e.g., g LPS )Sure.
[0313] According to an embodiment, the arithmetic decoder is configured to convert the count value (eg, g LPS ) to the interval size (for example, to R LPS on) (e.g., using a mapping table) (at least within a sub-range of the range of possible values for the count value).
[0314] According to an embodiment, the arithmetic decoder is configured to determine the interval size independently of the current overall coding interval size (e.g., R) if the count value is within a first value range (e.g., if the count value is greater than 1, or if the count value is greater than a (predetermined) threshold value) (e.g., using the application of a bit shift operation on a predetermined value (e.g., R'), or using a mapping table), and wherein the arithmetic decoder is configured to determine the interval size depending on the current overall coding interval size value (e.g., R) if the count value is within a second value range different from the first value range (e.g., if the count value is less than or equal to 1, or if the count value is less than or equal to the (predetermined) threshold value, or if the count value takes a predetermined value (e.g., 1)).
[0315] According to an embodiment, the arithmetic decoder is configured to: if the count value is within the second value range, take over the current overall encoding interval size value (eg, R) as the interval size (eg, R LPS )(and skipping the bin size renormalization)(i.e. using bypass mode)(where, for example, the overall encoding bin size is limited to 2 N and 2 N+1 -1).
[0316] According to an embodiment, the arithmetic decoder is configured to: if the count value is within the second value range, apply a bit shift operation (e.g., a right shift operation) to the current overall encoding interval size value (e.g., R) to obtain the interval size (e.g., R LPS ) (where the number of bits shifted by the current overall coding interval size value is determined by the count value (e.g. g LPS ) confirmed, or predetermined).
[0317] According to an embodiment, the arithmetic decoder is configured to apply a bit shift operation (e.g., a right shift operation) to the current overall encoding interval size value (e.g., R) if the count value is within the first value range (e.g., for a count value greater than 1) so as to obtain the interval size (e.g., R LPS ) (where the number of bits shifted by the current overall coding interval size value is determined by the count value (e.g. g LPS) is determined, or is predetermined), and wherein the arithmetic decoder is configured to take over the current overall coding interval size value (e.g., R) as the interval size (e.g., and skip the interval size renormalization) (i.e., use the bypass mode) if the count value is within the second value range (e.g., for the count value is 1) (wherein, for example, the overall coding interval size is limited to 2 N and 2 N+1 -1).
[0318] According to an embodiment of the seventh aspect, an arithmetic decoder is provided for decoding a plurality of symbols having symbol values (eg, binary values), wherein the arithmetic decoder is configured to determine (eg, derive) a binary value for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to derive the interval size based on the interval size information (eg, the size of the interval associated with a given symbol value; for example, R LPS ); wherein the arithmetic decoder is configured to be switchable between a first mode (high throughput mode) and a second mode (normal mode), wherein the arithmetic decoder is configured to determine, when operating in the first mode, an interval size (e.g., R ) associated with a symbol value of a plurality of possible symbol values at a first granularity or a first resolution (e.g., a granularity of 8) LPS ), and determining an interval size (e.g., R ) associated with a symbol value of the plurality of possible symbol values at a second granularity or resolution (e.g., a granularity of 1) when operating in the second mode LPS ), wherein the first granularity or the first resolution is coarser than the second granularity or the second resolution.
[0319] According to an embodiment, the arithmetic decoder is configured to use a bin size (eg, R ) comprising a first number of bits when operating in the first mode. LPS ), and wherein the arithmetic decoder is configured to use an interval size (eg, R ) comprising a second number of bits when operating in the second mode. LPS ), wherein the second number of bits (e.g., 9 bits) is greater than the first number of bits (e.g., 6 bits); or wherein the arithmetic decoder is configured to, when operating in the first mode, convert the interval size (e.g., R LPS ) is reserved as a predetermined bit value (e.g., 0) (such that the bits reserved with the predetermined value do not carry meaningful information), and when operating in the first mode, the interval size (e.g., R LPS ) as information carrying bits.
[0320] According to an embodiment, the arithmetic decoder is configured to use a representation of the overall coding interval size (e.g., R) including a third bit number when operating in a first mode, and wherein the arithmetic decoder is configured to use a representation of the overall coding interval size (e.g., R) including a fourth bit number when operating in a second mode, wherein the fourth bit number (e.g., 9 bits) is greater than the third bit number (e.g., 5 bits); or wherein the arithmetic decoder is configured to reserve multiple bits (e.g., the least significant 3 bits) of the representation of the overall coding interval size (e.g., R) as a predetermined bit value (e.g., 0) when operating in the first mode (so that the bits reserved with the predetermined value do not carry meaningful information), and to use all bits of the representation of the overall coding interval size (e.g., R) as information carrying bits when operating in the first mode.
[0321] According to an embodiment, the arithmetic decoder is configured to determine the bin size when operating in the second operation (normal mode) mode such that the bin size depends on the overall encoding bin size (R).
[0322] According to an embodiment, the arithmetic decoder is configured to determine the bin size when operating in the first mode (high throughput mode) such that the bin size is independent of the overall encoding bin size (R) at least within a value range of the bin size information.
[0323] According to an embodiment, the arithmetic decoder is configured to perform a multiplication based overall coding interval subdivision when operating in the second mode (normal mode).
[0324] According to an embodiment, the arithmetic decoder is configured to, when operating in the second mode (normal mode), separate the overall encoded interval size value or a shifted version thereof (eg, R) from the interval size information value or a shifted version thereof (eg, p LPS or P LPS ) (which includes two or more bits of resolution with different bit weights and / or may take values of significance other than 2) to obtain (directly or indirectly, e.g. using additional addition) an interval size (e.g. R) associated with a symbol value from the plurality of possible symbol values. LPS ).
[0325] According to an embodiment, the arithmetic decoder is configured to perform a displacement-based overall coding interval subdivision when operating in the second mode (normal mode).
[0326] According to an embodiment, the arithmetic decoder is configured to obtain an interval size (e.g., R) associated with a symbol value of the plurality of possible symbol values by applying a bit shift operation (e.g., a right shift operation) to the overall encoded interval size value (e.g., R) when operating in the second mode (e.g., the normal mode). LPS), where the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information (e.g. g LPS )Sure.
[0327] According to an embodiment, the arithmetic decoder is configured to initialize the overall encoding interval size (R) to a multiple of a predetermined power of two when operating in the first mode (high throughput mode).
[0328] According to an embodiment, the arithmetic decoder is configured to provide an interval size when operating in high throughput mode such that the interval size (eg, R LPS ) (and preferably also a complementary symbol interval size (associated with a symbol value different from a given symbol value, e.g. associated with a highly probable symbol value), e.g. R MPS =RR LPS , which is obtained by subtracting the bin size (associated with a given symbol value, such as a less likely symbol value) from the overall encoding bin size (e.g., R LPS ) is a multiple of a predetermined power of 2 (for example, 8).
[0329] According to an embodiment, the arithmetic decoder is configured to use a table lookup (and optionally a bypass mode where the current overall encoding interval size value (e.g. R) is taken over as the interval size (e.g. R LPS ), and wherein interval size renormalization is skipped for one or more values of the interval size information) to provide an interval size, wherein entries of the lookup table are multiples of a predetermined power of two (e.g., 8).
[0330] In accordance with an embodiment, the arithmetic decoder is configured to provide the interval size using the application of a bit shift operation on a predetermined value (e.g., R'), which is selected such that the bit shifted version of the predetermined value is a multiple of a predetermined power of 2 (e.g., 8) (e.g., R'=384 decimal=110000000 binary).
[0331] According to an embodiment of the sixth aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g., deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS); wherein the method includes an integer value representation (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using the operand value (x,P LPS +(P LPS >>2)) The count value (g) is derived by determining the position of the most significant non-zero bit LPS ; also referred to as a shift count value or a shift parameter), the operand value being increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value); and wherein the method includes using the count value to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values LPS ).
[0332] According to an embodiment of the seventh aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g., deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises switching between a first mode (high throughput mode) and a second mode (normal mode), wherein the method comprises determining, when operating in the first mode, a bin size (e.g., R ) associated with a symbol value of a plurality of possible symbol values at a first granularity or a first resolution (e.g., a granularity of 8) LPS ), and determining an interval size (e.g., R ) associated with a symbol value of the plurality of possible symbol values at a second granularity or resolution (e.g., a granularity of 1) when operating in the second mode LPS ), wherein the first granularity or the first resolution is coarser than the second granularity or the second resolution.
[0333] According to an embodiment of a sixth aspect, there is provided a method for decoding a plurality of symbols having symbol values (eg, binary values), wherein the method comprises determining (eg, deriving) a binary value for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value gLPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method includes an integer value representation (eg, P) of a probability value based on (eg, including (or using) BITS bits) LPS ) using the operand value (x,P LPS +(P LPS >>2)) The count value (g) is derived by determining the position of the most significant non-zero bit LPS ; also referred to as a shift count value or a shift parameter), the operand value is increased or decreased relative to the integer value representation of the probability value (e.g., by a scaling operation, and / or by adding or subtracting a value that depends on the integer value representation of the probability value, and / or by adding or subtracting a predetermined (e.g., constant) value); and wherein the arithmetic method includes using the count value to obtain an interval size (e.g., R) associated with a symbol value in a plurality of possible symbol values LPS ).
[0334] According to an embodiment of a seventh aspect, there is provided a method for decoding a plurality of symbols having symbol values (eg, binary values), wherein the method comprises determining (eg, deriving) a binary value for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes deriving an interval size based on interval size information (e.g., the size of an interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises switching between a first mode (high throughput mode) and a second mode (normal mode), wherein the method comprises determining, when operating in the first mode, a bin size (e.g., R ) associated with a symbol value of a plurality of possible symbol values at a first granularity or a first resolution (e.g., a granularity of 8) LPS ), and determining an interval size (e.g., R ) associated with a symbol value of the plurality of possible symbol values at a second granularity or resolution (e.g., a granularity of 1) when operating in the second mode LPS ), wherein the first granularity or the first resolution is coarser than the second granularity or the second resolution.
[0335] According to the eighth aspect of the present invention, the interval size information for deriving the interval size for arithmetic coding or decoding of symbol values is determined based on the low complexity context model selected for encoding or decoding of the symbol value. The eighth aspect depends on the following idea: initialize one or more parameters of multiple low complexity context models so that one or more parameter values of two or more low complexity context models associated with different environments or different encoder or decoder states of the same syntax element to be encoded or decoded but one or more previously encoded or decoded symbols are the same. Since the parameter values of two or more low complexity context models are the same and the changes in corresponding parameters can be omitted, the computational workload is saved. In other words, the determination of the interval size value based on the low complexity context model can be independent of the parameters of the two or more low complexity context models, thereby providing easy determination of the interval size information. Therefore, a high throughput of encoding or decoding can be achieved.
[0336] According to an embodiment of the eighth aspect, an arithmetic encoder is provided for encoding a plurality of symbols having symbol values (e.g., binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic encoder is configured to determine (e.g., derive) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic encoder is configured to be based on the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ) to derive the interval size (e.g., the size of the interval associated with a given symbol value; e.g., R LPS ); wherein the arithmetic encoder is configured to select a low-complexity context model from a plurality of low-complexity context models depending on one or more previously encoded symbols or depending on an encoder state (e.g., a high-throughput context model; e.g., a context model, according to which one or more state variable values that have been used for encoding one or more symbol values and / or interval size information that has been used for encoding one or more symbol values are reused for encoding one or more subsequent symbol values; e.g., a context mode, according to which updating of the source statistic is not performed), in order to determine the interval size information (e.g., the shift operation count value g LPS ); wherein the arithmetic encoder is configured to initialize one or more parameters of multiple low-complexity context models (e.g., g LPS and val MPS)(For example, using the context initialization value g LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with the low-complexity context model, including the value g LPS and val MPS ) such that one or more (initial) parameter values of two or more low-complexity context models (which may remain unchanged when encoding symbols) (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a syntax element of a certain type in a set of different syntax elements for encoding video information) and different environments (or sets) or different encoder states of one or more previously encoded symbols) are the same.
[0337] According to an embodiment, the arithmetic encoder is configured to switch between an efficient mode and a high throughput mode, in which a plurality of high complexity context models are used (according to which one or more corresponding state variable values (e.g. a t and b t ) and / or interval size information is updated), a low-complexity context model is used in high-throughput mode (e.g., it does not include one or more corresponding state variable values (e.g., g LPS and val MPS )). Being able to switch between high efficiency mode and high throughput mode allows the tradeoff between high compression rate and high throughput to be adjusted to the current requirements of the bitstream and / or encoder or decoder capabilities.
[0338] According to an embodiment, the arithmetic encoder is configured to select a high complexity context model from a plurality of high complexity context models depending on one or more previously encoded symbols or depending on an encoder state when operating in an efficient mode (wherein, when operating in an efficient mode, one or more corresponding state variable values (e.g., a t and b t ) and / or interval size information, while disabling updates to one or more corresponding state variable values (e.g., g LPS and val MPS ) in order to determine the interval size information. Considering the encoder state and / or one or more previously encoded or decoded symbols allows the interval size value to be accurately predicted or determined, so that high compression rates can be achieved.
[0339] According to an embodiment, the arithmetic encoder is configured to initialize one or more parameters (e.g., a) of a plurality of high complexity context models (e.g., a plurality of high complexity context models associated with different environments or sets of previously encoded symbols). t and b t, or slopeIdx and offsetIdx, a t and b t The (e.g. initial) parameter values or parameter value sets of two or more high complexity context models (which may remain unchanged when encoding symbols) (which are associated with the same syntax element to be encoded (e.g., a flag, a transform coefficient, etc. having a specific meaning; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different environments (or sets) or different encoder states of one or more previously encoded symbols) are different (e.g., can be derived therefrom) (e.g., using corresponding (first) sets of initialization parameters associated with different high complexity context models, including for example parameters slopeIdx and offsetIdx). Thus, for example, the corresponding parameter values of the high complexity context model depend on the environment or encoder or decoder state of one or more previously encoded or decoded symbols. By taking the environment and / or the encoder or decoder state into account, the interval size information can be determined very accurately, so that a high compression ratio can be achieved.
[0340] According to an embodiment, an arithmetic encoder is configured to determine whether parameter values of two or more low-complexity context models (which may remain unchanged when encoding a symbol) (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different environments (or sets) or different encoder states of one or more previously encoded symbols) are the same, and wherein the arithmetic encoder is configured to selectively disable the distinction between different environments (or sets) or different encoder states of one or more previously encoded symbols in response to finding that the parameter values of two or more low-complexity context models associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information; for example, a certain "binary decision") and different environments (or sets) or different encoder states of one or more previously encoded symbols (or binary decisions) are the same. By disabling the distinction between different environments or encoder or decoder states, calculation steps can be saved, thereby reducing the processing time for determining interval size information.
[0341] According to an embodiment, the arithmetic encoder is configured to distinguish between independently coded image parts (e.g., video frames or video slices or I slices or I frames or intra-coded slices or intra-coded frames), unidirectionally predicted image parts (e.g., video frames or video slices or P slices or P frames or predictive coded slices or predictive coded frames) and bidirectionally predicted image parts (e.g., video frames or video slices or B slices or B frames or bidirectionally coded slices or bidirectionally coded frames) when operating in high-efficiency mode (and when encoding one or more symbols associated with independently coded image parts, when encoding one or more symbols associated with unidirectionally predicted image parts, and when encoding one or more symbols associated with bidirectionally predicted image parts, different context models are used. For example, the probability of a symbol value depends on the type of image part (independent, unidirectionally predicted, bidirectionally predicted), so distinguishing the type of image part when determining the interval size information can improve the accuracy of the interval size information.
[0342] According to an embodiment, the arithmetic encoder is configured to use the same interval size information independently of the image portion type (e.g., independently encoded image portion, unidirectionally predicted image portion, or bidirectionally predicted image portion) when operating in low complexity mode. Determining the interval size information independently of the type of image portion provides low processing time at high throughput.
[0343] According to an embodiment, the arithmetic encoder is configured to initialize one or more parameters (e.g., a) of a plurality of high complexity context models (e.g., a plurality of high complexity context models associated with a given environment or set of previously encoded symbols). t and b t , or slopeIdx and offsetIdx, a t and b t The (initial) parameter values or parameter value sets of two or more high complexity context models (which can be updated when encoding symbols) (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different types of image parts (e.g., independently coded image parts, unidirectionally predicted image parts or bidirectionally predicted image parts)) are different (e.g., depending on the type of image part).
[0344] According to an embodiment, the arithmetic encoder is configured to initialize one or more parameters (e.g., g ) of a plurality of high-throughput context models (e.g., a plurality of high-throughput context models associated with a given environment or set of previously encoded symbols).LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with a different high throughput context model, including, for example, the parameter g LPS and val MPS ) such that (initial) parameter values or sets of parameter values of two or more high-throughput context models (which may remain unchanged when encoding symbols) that are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different types of picture parts (e.g., independently coded picture parts, unidirectionally predicted picture parts, or bidirectionally predicted picture parts) are the same (e.g., independent of the type of picture part).
[0345] According to an embodiment, the arithmetic encoder is configured to initialize one or more parameters (e.g. a ) of a plurality of high complexity context models (e.g. a plurality of high complexity context models associated with a given environment or set of previously encoded symbols) depending on an encoding quality parameter (e.g. a picture quality parameter). t and b t , or slopeIdx and offsetIdx, a t and b t can be derived therefrom) (e.g. using a corresponding (first) set of initialization parameters associated with different high complexity context models, including for example parameters slopeIdx and offsetIdx) (so that the (initial) parameter values or parameter value sets of two or more high complexity context models (which can be updated when encoding symbols) (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different types of quality parameter values) are different (e.g. depending on the quality parameter)). By taking into account the encoding quality parameter, one or more parameters can be adapted to the value of the encoding quality parameter, thereby allowing the interval size information to be accurately determined based on the high quality context model.
[0346] According to an embodiment, the arithmetic encoder is configured to be independent of the encoding quality parameters (e.g. q p ) to initialize one or more parameters (e.g., g ) of a plurality of high-throughput context models (e.g., a plurality of high-throughput context models (which, for example, may correspond to low-complexity context models) associated with a given environment or set of previously encoded symbols LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with a different high throughput context model, including, for example, the parameter g LPS and valMPS ) (so that the (initial) parameter values or sets of parameter values (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for encoding video information) and different quality parameters) of two or more high-throughput context models (which may remain unchanged when encoding symbols) are the same (e.g., independent of the quality parameter). Initializing one or more parameters independently of the encoding quality parameter allows fast initialization.
[0347] According to an embodiment, the arithmetic encoder is configured to select a context model from a plurality of candidate context models (e.g., both an efficient candidate context model and a high throughput candidate context model) for determining interval size information (e.g., for encoding a symbol to be encoded), wherein the arithmetic encoder is configured to use a separate set of context model initialization parameters (e.g., a separate slopeIdx and a separate offsetIdx, from which a separate a is derived). t and b t ) to initialize each of the efficient candidate context models (which, for example, correspond to high complexity context models), and wherein the arithmetic encoder is configured to use a common (same) set of context model initialization parameters (e.g., a common g LPS and val MPS ) to initialize two or more high throughput candidate context models. Initializing the two or more high throughput candidate context models using a common set of context model initialization parameters allows for fast initialization and at the same time allows for simple implementation, which is, for example, compatible with the implementation of efficient candidate context models. In addition, initializing the two or more high throughput candidate context models using a common set of context model initialization parameters allows for omitting the evaluation of the context model for determining interval size information.
[0348] According to an embodiment of the eighth aspect, an arithmetic decoder is provided for decoding a plurality of symbols having symbol values (e.g., binary values) (e.g., based on a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the arithmetic decoder is configured to determine (e.g., derive) a bit stream for decoding one or more symbol values (x t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the arithmetic decoder is configured to be based on the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value gLPS ) to derive the interval size (e.g., the size of the interval associated with a given symbol value; e.g., R LPS ); wherein the arithmetic decoder is configured to select a low-complexity context model from a plurality of low-complexity context models depending on one or more previously decoded symbols or depending on a decoder state (e.g., a high-throughput context model; e.g., a context model, according to which one or more state variable values that have been used for decoding of one or more symbol values and / or interval size information that has been used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values; e.g., a context mode, according to which updating of source statistics is not performed), in order to determine the interval size information (e.g., the shift operation count value g LPS ); wherein the arithmetic decoder is configured to initialize one or more parameters of a plurality of low-complexity context models (eg, g LPS and val MPS )(For example, using the context initialization value g LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with the low-complexity context model, including the value g LPS and val MPS ) such that one or more (initial) parameter values of two or more low-complexity context models (which may remain unchanged when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a syntax element of a certain type in a set of different syntax elements for decoding video information) and different environments (or sets) of one or more previously decoded symbols or different decoder states) are the same.
[0349] According to an embodiment, the arithmetic decoder is configured to switch between an efficient mode and a high throughput mode, in which a plurality of high complexity context models are used (according to which one or more corresponding state variable values (e.g. a t and b t ) and / or interval size information is updated), a low-complexity context model is used in high-throughput mode (e.g., it does not include one or more corresponding state variable values (e.g., g LPS and val MPS )).
[0350] According to an embodiment, the arithmetic decoder is configured to select a high complexity context model from a plurality of high complexity context models depending on one or more previously decoded symbols or depending on a decoder state when operating in an efficient mode (wherein, when operating in an efficient mode, one or more corresponding state variable values (e.g., a t and b t) and / or interval size information, while disabling updates to one or more corresponding state variable values (e.g., g LPS and val MPS ) to determine the interval size information.
[0351] According to an embodiment, the arithmetic decoder is configured to initialize one or more parameters (e.g., a) of a plurality of high complexity context models (e.g., a plurality of high complexity context models associated with different environments or sets of previously decoded symbols). t and b t , or slopeIdx and offsetIdx, a t and b t The (initial) parameter values or parameter value sets of two or more high complexity context models (which may remain unchanged when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag, a transform coefficient, etc. having a specific meaning; for example, a certain type of syntax element in a set of different syntax elements for decoding video information) and different environments (or sets) or different decoder states of one or more previously decoded symbols) are different.
[0352] According to an embodiment, an arithmetic decoder is configured to determine whether parameter values of two or more low-complexity context models (which may remain unchanged when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements used to decode video information) and different environments (or sets) or different decoder states of one or more previously decoded symbols) are the same, and wherein the arithmetic decoder is configured to selectively disable the distinction between different environments (or sets) or different decoder states of one or more previously decoded symbols in response to discovering that the parameter values of two or more low-complexity context models associated with the same syntax element to be decoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements used to decode video information; for example, a certain "binary decision") and different environments (or sets) or different decoder states of one or more previously decoded symbols (or binary decisions) are the same.
[0353] According to an embodiment, the arithmetic decoder is configured to distinguish between independently decoded image parts (e.g., video frames or video slices or I slices or I frames or intra-coded slices or intra-coded frames), unidirectionally predicted image parts (e.g., video frames or video slices or P slices or P frames or predictive coded slices or predictive coded frames), and bidirectionally predicted image parts (e.g., video frames or video slices or B slices or B frames or bidirectionally coded slices or bidirectionally coded frames) when operating in high-efficiency mode (and use different context models when decoding one or more symbols associated with independently decoded image parts, when decoding one or more symbols associated with unidirectionally predicted image parts, and when decoding one or more symbols associated with bidirectionally predicted image parts).
[0354] According to an embodiment, the arithmetic decoder is configured to use the same interval size information independently of the picture part type (eg independently decoded picture part, unidirectionally predicted picture part or bidirectionally predicted picture part) when operating in low complexity mode.
[0355] According to an embodiment, the arithmetic decoder is configured to initialize one or more parameters (e.g., a) of a plurality of high complexity context models (e.g., a plurality of high complexity context models associated with a given environment or set of previously decoded symbols). t and b t , or slopeIdx and offsetIdx, a t and b t The (initial) parameter values or parameter value sets of two or more high complexity context models (which can be updated when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag, a transform coefficient, etc. with a specific meaning; for example, a certain type of syntax element in a set of different syntax elements for decoding video information) and different types of image parts (e.g., independently decoded image parts, unidirectionally predicted image parts or bidirectionally predicted image parts)) are different (e.g., depending on the type of image part).
[0356] According to an embodiment, the arithmetic decoder is configured to initialize one or more parameters (e.g., g ) of a plurality of high-throughput context models (e.g., a plurality of high-throughput context models associated with a given environment or set of previously decoded symbols). LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with a different high throughput context model, including, for example, the parameter g LPS and val MPS) such that (initial) parameter values or sets of parameter values of two or more high-throughput context models (which may remain unchanged when decoding symbols) that are associated with the same syntax element to be decoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a certain type of syntax element in a set of different syntax elements for decoding video information) and different types of picture parts (e.g., independently decoded picture parts, unidirectionally predicted picture parts, or bidirectionally predicted picture parts) are the same (e.g., independent of the type of picture part).
[0357] According to an embodiment, the arithmetic decoder is configured to initialize one or more parameters (e.g. a ) of a plurality of high complexity context models (e.g. a plurality of high complexity context models associated with a given environment or set of previously decoded symbols) depending on a decoding quality parameter (e.g. a picture quality parameter). t and b t , or slopeIdx and offsetIdx, a t and b t can be derived therefrom) (e.g. using corresponding (first) sets of initialization parameters associated with different high complexity context models, including for example parameters slopeIdx and offsetIdx) (so that the (initial) parameter values or parameter value sets of two or more high complexity context models (which can be updated when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag, a transform coefficient, etc. with a specific meaning; for example, a certain type of syntax element in a set of different syntax elements for decoding video information) and different types of quality parameter values) are different (e.g. depending on the quality parameter)).
[0358] According to an embodiment, the arithmetic decoder is configured to be independent of the decoding quality parameters (e.g. q p ) to initialize one or more parameters (e.g., g ) of a plurality of high-throughput context models (e.g., a plurality of high-throughput context models associated with a given environment or set of previously decoded symbols) LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with a different high throughput context model, including, for example, the parameter g LPS and val MPS ) (such that the (initial) parameter values or sets of parameter values (which are associated with the same syntax element to be decoded (e.g., a flag, a transform coefficient, etc. with a specific meaning; e.g., a certain type of syntax element in a set of different syntax elements for decoding video information) and different quality parameters) of two or more high-throughput context models (which may remain unchanged when decoding symbols) are the same (e.g., independent of the quality parameter)).
[0359] According to an embodiment, the arithmetic decoder is configured to select a context model from a plurality of candidate context models (e.g., both an efficient candidate context model and a high throughput candidate context model) for determining bin size information (e.g., for decoding a symbol to be decoded), wherein the arithmetic decoder is configured to use a separate set of context model initialization parameters (e.g., a separate slopeIdx and a separate offsetIdx, from which a separate a is derived). t and b t ) to initialize each of the efficient candidate context models, and wherein the arithmetic decoder is configured to use a common (same) set of context model initialization parameters (e.g., a common g LPS and val MPS ) to initialize two or more high-throughput candidate context models.
[0360] According to an embodiment of the eighth aspect, there is provided a method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g., to provide a bit stream comprising arithmetic coded representations of the symbols and auxiliary information), wherein the method comprises determining (e.g., deriving) a bit stream for encoding one or more symbol values (x t+1 ) to perform arithmetic coding on the interval size information (e.g., probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes based on interval size information (such as probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ) to derive the interval size (e.g., the size of the interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises selecting a low-complexity context model from a plurality of low-complexity context models depending on one or more previously encoded symbols or depending on an encoding state (e.g. a high-throughput context model; e.g. a context model, according to which one or more state variable values already used for encoding of one or more symbol values and / or interval size information already used for encoding of one or more symbol values are reused for encoding of one or more subsequent symbol values; e.g. a context mode, according to which updating of a source statistic is not performed), in order to determine the interval size information (e.g. a shift operation count value g LPS ); wherein the method includes initializing one or more parameters of multiple low-complexity context models (e.g., g LPS and val MPS )(For example, using the context initialization value g LPS and valMPS ) (e.g. using a corresponding (second) set of initialization parameters associated with the low-complexity context model, including the value g LPS and val MPS ) such that one or more (initial) parameter values of two or more low-complexity context models (which may remain unchanged when encoding symbols) (which are associated with the same syntax element to be encoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a syntax element of a certain type in a set of different syntax elements for encoding video information) and different environments (or sets) or different encoding states of one or more previously encoded symbols) are the same.
[0361] According to an eighth aspect, an embodiment provides a method for decoding a plurality of symbols having symbol values (e.g., binary values) (e.g., based on a bit stream comprising an arithmetic coded representation of the symbols and auxiliary information), wherein the method comprises determining (e.g., deriving) a binary representation of one or more symbol values (x) to be decoded. t+1 ) to perform arithmetic decoding of the interval size information (such as the probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ); wherein the method includes based on interval size information (such as probability value p t+1 Or probability value P t+1 or P LPS Or shift operation count value g LPS ) to derive the interval size (e.g., the size of the interval associated with a given symbol value; e.g., R LPS ); wherein the method comprises selecting a low-complexity context model from a plurality of low-complexity context models depending on one or more previously decoded symbols or depending on a decoding state (e.g. a high-throughput context model; e.g. a context model, according to which one or more state variable values already used for decoding of one or more symbol values and / or interval size information already used for decoding of one or more symbol values are reused for decoding of one or more subsequent symbol values; e.g. a context mode, according to which updating of a source statistic is not performed), in order to determine the interval size information (e.g. a shift operation count value g LPS ); wherein the method includes initializing one or more parameters of multiple low-complexity context models (e.g., g LPS and val MPS )(For example, using the context initialization value g LPS and val MPS ) (e.g. using a corresponding (second) set of initialization parameters associated with the low-complexity context model, including the value g LPS and val MPS) such that one or more (initial) parameter values of two or more low-complexity context models (which may remain unchanged when decoding symbols) (which are associated with the same syntax element to be decoded (e.g., a flag with a specific meaning, a transform coefficient, etc.; for example, a syntax element of a certain type in a set of different syntax elements for decoding video information) and different environments (or sets) or different decoding states of one or more previously decoded symbols) are the same.
[0362] An embodiment provides a method for encoding video content, wherein the method includes encoding multiple video frames, wherein the method includes performing arithmetic coding according to any one of the first aspect to the eighth aspect to provide an encoded binary sequence based on a binary value sequence representing the video content.
[0363] On the one hand, a method for decoding video content is provided, wherein the method includes decoding multiple video frames, wherein the method includes performing arithmetic decoding according to any one of the first aspect to the eighth aspect to provide a decoded binary sequence (for example, based on decoded symbol values) based on an encoded representation based on the binary sequence.
[0364] These methods are based on the same considerations as the corresponding user equipment. In addition, these methods can be supplemented by any features, functions and details described herein for the user equipment, alone or in combination.
[0365] In one aspect there is provided a computer program for performing any of the aforementioned methods when the computer program is run on a computer.
[0366] On the one hand, a video encoder is provided, wherein the video encoder is configured to encode multiple video frames, wherein the video encoder includes an arithmetic encoder, which is used to provide an encoded binary sequence based on a binary value sequence representing video content according to any one of the first aspect to the eighth aspect.
[0367] On the one hand, a video decoder is provided, wherein the video decoder is configured to decode multiple video frames, wherein the video decoder includes an arithmetic decoder for providing a decoded binary sequence (e.g., based on decoded symbol values) based on an encoded representation of the binary sequence according to any one of the first to eighth aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0368] The embodiments of the present application will be described below with reference to the accompanying drawings.
[0369] Figure 1 shows an arithmetic encoder according to an embodiment,
[0370] Figure 2shows an arithmetic decoder according to an embodiment,
[0371] Figure 3 shows an arithmetic encoder according to an embodiment,
[0372] Figure 4 shows an arithmetic decoder according to an embodiment,
[0373] Figure 5 shows an arithmetic encoder according to an embodiment,
[0374] Figure 6 shows an arithmetic decoder according to an embodiment,
[0375] Figure 7 shows an interval size determination block according to an embodiment,
[0376] Figure 8 shows an arithmetic encoder according to an embodiment,
[0377] Fig. 9 shows an arithmetic decoder according to an embodiment,
[0378] Fig.10 shows an arithmetic encoder according to an embodiment,
[0379] Fig.11 shows an arithmetic decoder according to an embodiment,
[0380] Fig.12 shows an arithmetic encoder according to an embodiment,
[0381] Fig.13 shows an arithmetic decoder according to an embodiment,
[0382] Fig.14 shows an arithmetic encoder according to an embodiment,
[0383] Fig.15 shows an interval size determination core according to an embodiment,
[0384] Fig.16 shows an interval size determination core according to an embodiment,
[0385] Fig.17 shows an interval size determination core according to an embodiment,
[0386] Fig.18 shows an arithmetic decoder according to an embodiment,
[0387] Fig.19 shows an arithmetic encoder according to an embodiment,
[0388] Fig. 20 shows an arithmetic decoder according to an embodiment,
[0389] Fig.21 shows an arithmetic encoder according to an embodiment,
[0390] Fig. 22 shows an arithmetic decoder according to an embodiment,
[0391] Fig.23 shows a video encoder according to an embodiment,
[0392] Fig.24 A video decoder according to an embodiment is shown. DETAILED DESCRIPTION
[0393] In the following, different inventive embodiments and different aspects will be described. Furthermore, other embodiments will be defined by the appended claims.
[0394] It should be noted that any embodiment as defined in the claims may be supplemented by any details (features and functions) described herein. In addition, the embodiments described herein may be used alone and may also be optionally supplemented by any details (features and functions) included in the claims. In addition, it should be noted that the various aspects described herein may be used alone or in combination. Therefore, details may be added to each of the various aspects without adding details to another aspect of the aspects. It should also be noted that the present disclosure explicitly or implicitly describes features that can be used for arithmetic coding. Therefore, any features described herein may be used in the context of arithmetic coding. It should also be noted that the present disclosure explicitly or implicitly describes features that can be used for video encoders (devices for providing an encoded representation of an input video signal) and video decoders (devices for providing a decoded representation of a video signal based on an encoded representation). Therefore, any features described herein may be used in the context of a video encoder and in the context of a video decoder.
[0395] The present invention will be more fully understood from the detailed description given below and the accompanying drawings of embodiments of the present invention, which, however, should not be considered to limit the present invention to the specific embodiments described but are for illustration and understanding only.
[0396] In addition, the features and functions related to the method disclosed herein may also be used in an apparatus (configured to perform such functions). In addition, any features and functions disclosed herein about an apparatus may also be used in a corresponding method. In other words, the method disclosed herein may be supplemented by any features and functions described about an apparatus.
[0397] The following description of the diagram is from the arithmetic encoder ( Figure 1 ) and the arithmetic decoder ( Figure 2). Then, a description of an embodiment of the present invention and how to construct the present invention into Figure 1 and Figure 2 However, with the subsequent Figure 3 The embodiments described in the following figures can also be used to form Figure 1 and Figure 2 encoder and decoder.
[0398] 1.1.According to Figure 1 and Figure 2 The arithmetic encoder 110 and the arithmetic decoder 290
[0399] Figure 1 An example of the arithmetic encoder 110 according to an embodiment of the present invention (eg, according to any one of the first to eighth aspects) is shown.
[0400] For example, according to Figure 1 The arithmetic encoder 110 can be used in a video encoder. Alternatively, the arithmetic encoder 110 can also be used in an audio encoder, an image encoder, an encoder for encoding coefficients of a neural network, and the like.
[0401] The arithmetic encoder 110 is configured to receive symbols 120 to be encoded. The symbols 120 to be encoded may be represented by symbol values. The arithmetic encoder 110 provides a bit stream 192 based on one or more symbols 120 to be encoded. For example, the bit stream 192 represents a sequence of symbols 120 to be encoded.
[0402] The arithmetic encoder 110 includes an encoder core 130 that receives symbols 120 to be encoded and provides a bitstream 192. The encoder core 130 also receives an interval size 152, which may be represented by an interval size value and may be represented, for example, as R LPS. For example, the interval size 152 may indicate the size of an interval associated with a symbol value. For example, the interval size 152 may represent a portion of an overall encoding interval size value 140, which may also be represented as a current encoding interval. The encoder core 130 may determine whether the symbol 120 to be encoded corresponds to a symbol value associated with the interval size 152, and if so, the encoder core 130 may provide the interval size 152 as a new overall encoding interval size value 140. Otherwise, the encoder core 130 may, for example, provide another portion of the current encoding interval as a new overall encoding interval size value 140, such as a portion complementary to the portion represented by the interval size. Thus, for example, the arithmetic encoder 110 may perform one iteration for each symbol 120 to be encoded. In some examples, the encoder core 130 may redetermine (but not necessarily change) the overall encoding interval size value 140 in each iteration, and provide the overall encoding interval for interval size determination of subsequent symbols to be encoded. In other examples, the encoder core 130 may not redetermine and / or provide the overall encoding interval size value 140. For example, the encoder core 130 can renormalize the overall encoding interval size value 140 if the overall encoding interval size value or the interval selected by the encoder core based on the interval size and the symbol to be encoded is within (or outside) a predetermined range. For example, the encoder core 130 can provide one or more bits of the bitstream 192 if the overall encoding interval size value 140 is renormalized or if the interval selected based on the interval size 152 and the symbol value to be encoded 120 is found to be within or outside a predetermined range.
[0403] For example, the symbol 120 to be encoded is a binary symbol, for example, the symbol 120 can take a symbol value of 0 or 1. The arithmetic encoder 110 can determine whether the symbol 120 to be encoded represents a less-probable symbol (LPS) or a more-probable symbol (MPS) of two binary symbols. For example, the determination of whether the symbol 120 to be encoded is an LPS or an MPS can be based on the bin size information 162. For example, the bin size 152 can be associated with the LPS or the MPS. For example, if the bin size is associated with the LPS, it can be represented as R LPS In other words, the symbol value (e.g., 0 or 1) associated with the interval size 152 or the interval size information 162 may depend on the value of the interval size information 162. Additionally or alternatively, the symbol value related to or associated with the interval size information 162 may depend on the probability of each symbol value. For example, the interval size information may refer to LPS and may be represented as p LPS or P LPS .
[0404] For example, if the symbol 120 to be encoded corresponds to a symbol of two binary symbols that are associated with an interval size 152, the encoder core 130 can provide the interval size 152, for example, as an overall encoding interval size 140, and if the symbol 120 to be encoded corresponds to the other of the two binary values, the difference between the current overall encoding interval size value and the interval size 152 can be provided as a new overall encoding interval size value 140.
[0405] The interval size 152 is provided by the interval size determination block 145 based on the overall encoded interval size value 145. The interval size determination block 145 includes an interval size determination 150. The interval size determination 150 receives the overall encoded interval size value 140 and the interval size information 162. The interval size information 162 can also be expressed as a probability estimate, such as p t , P t For example, the interval size information 162 may refer to the LPS of a binary symbol value and may be expressed as p LPS , P LPS The interval size information 162 may be an estimate of the probability that the symbol 120 to be encoded corresponds to a particular symbol value or a particular symbol type. LPS , P LPS ) may refer to the probability that the symbol 120 to be encoded corresponds to the LPS.
[0406] The interval size determination 150 determines the interval size 152 based on the overall encoded interval size value 140 and the interval size information 162. Examples of the interval size determination 150 are described with respect to the following embodiments.
[0407] The interval size information 162 is provided by the interval size information determination 160 of the interval size determination block 145. The interval size information determination 160 may optionally obtain context information 170. For example, the arithmetic encoder 110 may receive the context information or may initialize the context information. For example, the interval size information determination 160 may select one or more context models for the symbol 120 to be encoded, and may determine the interval size information 162 based on or according to the context model selected for the symbol 120. Additionally or alternatively, the interval size information determination 160 may take into account the values of multiple previously encoded symbols and / or the current encoder state, which may, for example, include an operating mode. For example, the interval size information determination 160 may determine a first source statistic (e.g., a) based on a corresponding multiple previously encoded symbols and / or encoder state. t ) and the second source statistic (e.g. b t). The interval size information determination 160 may determine the interval size information 162 based on the first source statistic and the second source statistic. Optionally, the arithmetic encoder 110 may provide the symbol 120 to be encoded to the interval size information determination 162, so that the interval size information determination may consider the symbol 120 to be encoded for determining the interval size information 162 of subsequent symbols to be encoded.
[0408] Figure 2 An arithmetic decoder 290 according to an embodiment of the present invention (eg, according to any one of the first to eighth aspects) is shown.
[0409] The arithmetic decoder 290 can be used, for example, in a video decoder, but can also be used in an audio encoder, an image encoder, an encoder for encoding coefficients of a neural network, and the like.
[0410] The arithmetic decoder 290 is configured to receive a bitstream 292, which may correspond to the bitstream 192 provided by the encoder 110. The arithmetic decoder provides decoded symbols 220 based on the bitstream 192. For example, the arithmetic decoder 290 provides a sequence of decoded symbols 220. The arithmetic decoder includes a decoder core 230. The decoder core 230 receives the bitstream 292 and the interval size 250, and provides the decoded symbols 220 and the overall encoded interval size value 240. The arithmetic decoder 290 includes an interval size determination 250. The interval size determination 250 provides the interval size 252 based on the overall encoded interval size value 240 and the interval size information 262. The interval size determination 250 may be equivalent to Figure 1 Therefore, the description of interval size 152 can be equivalently applied to interval size 252.
[0411] For example, the decoder core 230 may compare the value represented by the currently considered portion of the bitstream 292 to the interval size 252. If the value of the currently considered portion of the bitstream is within the interval represented by the interval size 252, the decoder core 230 may provide the symbol value associated with the interval size 252 as the decoded symbol 220. In this case, in some examples, the decoder core 230 may provide the interval size 252 as the overall encoded interval size value 240, and may additionally provide another symbol value or symbol type as the decoded symbol 220, and may provide the complementary portion of the current encoded interval (complementary to the interval size 252) as the new overall encoded interval size value 240. For example, the decoded symbol 220 may be a binary symbol, the interval size 252 may be associated with one of two binary symbols (e.g., LPS), and the decoder core 230 may provide the interval size 252 or the difference between the current encoded interval and the interval size 252 as the total encoded interval size value 240. In other examples, encoder core 230 may not provide an overall encoding interval size value 240, or may provide an overall encoding interval size value that is independent of the decoded symbol value, for example, as a predetermined value.
[0412] The arithmetic decoder 290 includes an interval size determination block 245 for providing interval size information 262. The interval size determination block 245 includes an interval size information determination 260, which may correspond to Figure 1 The interval size information determination 260 may optionally receive the decoded symbol 220 to update a plurality of previously decoded symbols. The plurality of previously decoded symbols may be used to determine the interval size information 262, for example, equivalently as described for determining the interval size information 162 based on a plurality of previously encoded symbols 120. The interval size information determination 260 may also receive context information 270, which may be derived, for example, based on the decoded symbol 220. For example, the interval size determination block 245 may correspond to the interval size determination block 145, wherein the previously decoded symbol 220 may replace the functionality of the previously encoded symbol, the symbol to be decoded replaces the symbol to be encoded, and the decoder state may replace the encoder state.
[0413] The arithmetic encoder 110 and the arithmetic decoder 290 may optionally be supplemented or combined with any of the features, functions and details described herein with respect to the following embodiments, either alone or in combination.
[0414] It is further noted that the encoder 110 and the decoder 290 illustrate a general operation scheme of arithmetic coding and decoding. However, the following embodiments may alternatively be implemented differently from or equivalent to the encoder 110 and the decoder 290.
[0415] It is further noted that the features, functions, and details described with respect to the following embodiments may optionally be combined with each other. For example, some aspects of the invention may involve one or more of context initialization (e.g., initialization of context information 170), determination of interval size information 162, determination of interval size 152, and implementation of an operating mode. For example, encoder 110 and decoder 290 may provide a framework for combining embodiments of multiple of these steps.
[0416] 1.2.According to Figure 3 and Figure 4 The arithmetic encoder 310 and the arithmetic decoder 490
[0417] Figure 3 An arithmetic encoder 310 according to an embodiment of the invention (e.g., according to the first aspect) is shown. For example, the arithmetic encoder 310 may correspond to the arithmetic encoder 110. The arithmetic encoder 310 receives one or more symbol values 320 to be encoded, which may correspond to the symbol values 120 to be encoded. For example, the arithmetic encoder 310 includes an encoder core 330 (e.g., the encoder core 130) for encoding the symbol values 320.
[0418] The arithmetic encoder 310 includes an interval size information determination 360, which may correspond to Figure 1 The interval size information determination 360 will provide interval size information 362, which may correspond to the interval size information 162.
[0419] The interval size determination 360 will derive interval size information 362 for arithmetic encoding of one or more symbol values 320 to be encoded. The interval size information determination 360 includes an interval size information determination core 365, which will derive interval size information 362 based on one or more state variable values 364. For example, the interval size information determination 360 includes a state variable value determination 363 for providing a state variable value 364. The state variable value 364 represents a plurality of previously encoded symbol values 320.
[0420] The arithmetic encoder 310 can operate in one of a first operating mode (e.g., an efficient mode or a normal mode) and a second operating mode (e.g., a high throughput mode). The arithmetic encoder 310 includes an operation indicator 314 for indicating whether the arithmetic encoder 310 is operating in the first operating mode or in the second operating mode. When operating in the first operating mode, the interval size information determination 360 can update one or more state variable values 364 and / or interval size information 362 for encoding one or more subsequent symbol values to be encoded. When operating in the second operating mode, the interval size information determination 360 can disable the updating of one or more state variable values 364 and / or interval size information 362.
[0421] The arithmetic encoder 310 is configured to provide an operating mode indication 316 as auxiliary information, which indicates whether to use a first mode that enables updating of one or more state variable values 364 and / or interval size information 362 or a second mode that disables updating of one or more state variable values 364 and / or interval size information 362.
[0422] For example, the state variable value 364 includes a first source statistic (eg, a t ) and the second source statistic (e.g. b t ), which may represent the frequency or count of previously encoded symbol values (e.g., binary symbol values). For example, the first source statistic and the second source statistic are each considered in their respective windows (e.g., w a and w b ) The state variable value determination 363 may use the symbol value to be encoded 320 to update one or more of the one or more state variable values 364 for encoding subsequent symbol values.
[0423] The interval size information determination core 365 determines interval size information 362 based on one or more state variable values 365. For example, the interval size information 362 may indicate the size of an interval, wherein the interval to which the interval size information relates may be associated with a particular symbol value or symbol type. For example, the interval size indicated by the interval size information may indicate an estimate of the probability that the symbol value 320 to be encoded corresponds to the symbol value or symbol type associated with the interval described by the interval size information 362. For example, the interval size information 362 may indicate an estimate of the probability that the symbol 120 to be encoded corresponds to the LPS of two binary symbol values. The interval size information 362 may be expressed as a decimal value in the range of 0 to 1, such as p t , or can be expressed as an integer, such as P t .
[0424] The interval size information determination core 365 may determine the interval size information 362 based on context information (e.g., the context information 170) selected for the symbol value to be encoded 320. Thus, the interval size information determination core 365 may determine the interval size information 362 based on the state variable value 364 and optionally based on other information such as the context information.
[0425] In the second operation mode, the update of the state variable value 364 may be disabled. In this case, the interval size information determination core 365 may, for example, use a default value of the state variable value 365, or may use the last updated value of the state variable value 364. However, the interval size information determination core 365 may optionally update the interval size information 362, for example, depending on context information. In other examples, in the second operation mode, the interval size information determination core 365 is disabled. In this case, the arithmetic encoder 310 may use a default value of the interval size information 362, or may use the last updated value of the interval size information 362.
[0426] In an example, the symbol value 320 to be decoded can represent a picture of a video sequence. For example, a plurality of pictures can form a sequence, and a plurality of pictures of a sequence can form a picture group. One or more pictures belonging to the same time point can form a frame. A picture can include one or more slices, and the corresponding picture can be subdivided into the one or more slices. For example, the operation mode of the arithmetic encoder 310 can be selected on a per-frame basis, or on a per-slice basis, or on a per-picture group basis, or on a per-sequence basis. Therefore, the operation mode indication 360 provided by the arithmetic encoder 310 can refer to a frame, or a slice, or a picture group, or a sequence. For example, the operation mode indicator 314 can provide an indication of an operation mode per frame, or one per slice, or one per picture group, or one per sequence.
[0427] The arithmetic encoder 310 may operate according to a profile selected for encoding of the symbol values 320. The profile may have an operating mode associated therewith for the arithmetic encoder 310, e.g., a first operating mode or a second operating mode. For example, the arithmetic encoder may provide an indication of the profile as an operating mode indication 360. In other words, the operating mode indication 360 may be implicitly signaled, e.g., by signaling the profile.
[0428] Alternatively or additionally, the operation mode indication 360 is signaled as dedicated auxiliary information, ie, for example, the operation mode indication 360 may be represented by explicit signaling (eg a dedicated bit or flag) which is specifically dedicated to indicating whether the first mode or the second mode is used.
[0429] For example, the arithmetic encoder 310 may include interval size determination (e.g., Figure 1The arithmetic encoder 310 may include an interval size determination 150 for determining an interval size (e.g., interval size 152) associated with a symbol value or symbol type from a plurality of possible symbol values or symbol types based on an overall encoded interval size value (e.g., overall encoded interval size value 140) and based on interval size information 362. The interval size determination may use a first calculation rule when operating in a first operating mode, and may use a second calculation rule when operating in a second operating mode. For example, the first calculation rule and the second calculation rule may differ in accuracy and / or complexity. For example, the arithmetic encoder 310 may perform interval size determination as described with respect to the arithmetic encoder 110 or as described with respect to other embodiments below.
[0430] In some examples, the interval size information 362 may be represented by or may include a shift count value, such as g. LPS For example, when operating in the first operating mode, the interval size information 362 may be represented by or may include a probability estimate, such as p t , P t , and in the second operation mode, the interval size information 362 may be represented by or include a shift count value. For example, the interval size information determination core 365 may determine the shift count value based on an initialization parameter.
[0431] In an example, the state variable value determination 363 may update the first source statistical value a according to the following equation when the update state variable value 364 is enabled: t :
[0432] a t+1 =a t +x t ·(ONE a >>n a )-(a t >>n a )
[0433] where a t is the current version of the first state value, where x t is the symbol of the current code, where n a is the window size information, where
[0434] ONE a =(1<<BITS a )-k a
[0435] Among them, BITS a is the number of bits used to represent the first state value, where k a It is a predetermined number.
[0436] Therefore, the state variable determination 363 can update the second source statistic V according to the following equation t :
[0437] b t+1 =b t +x t ·(ONE b >>n b )-(b t >>n b )
[0438] where b t is the current version of the first state value, where x t is the symbol of the current code, where n b is the window size information, where
[0439] ONE b =(1<<BITS b )-k b
[0440] Among them, BITS b is the number of bits used to represent the first state value, where k b It is a predetermined number.
[0441] For example, a t+1 and b t+1 An updated version of the state variable value 364 may be represented for use in determining the state variable value for a subsequent symbol to be encoded.
[0442] For example, the interval size information determination core 365 may combine the first source statistic and the second source statistic to obtain the interval size information 362. For example, the interval size information determination core 365 may derive the first source statistic a t and the second source statistic b t , to obtain the interval size information 362. For example, the interval size information determination core 365 can provide a probability estimate P t As the interval size information 362. The interval size information determination core 365 can derive the probability estimate P according to the following equation t
[0443] P t =((a t >>(BITS a -BITS min ))+(b t >>(BITS b -BITS min )))>>1Among them
[0444] BITS min =min(BITSa , BITS b )
[0445] where a t is the value of the first state variable, where b t is the value of the second state variable, where BITSa is used to represent a t The number of bits; and BITS b It is used to represent b t The number of bits.
[0446] The arithmetic encoder 310 may optionally be supplemented by any features, functions and details described herein with respect to the following embodiments, either individually or in combination. Specifically, the interval size information determination core 365 may be implemented, for example, as described with respect to aspect 4 (section 1.5). In addition, interval size information 362 may be provided for interval size determination, which may be implemented as described with respect to aspects 2, 3 and 5.
[0447] Figure 4 An arithmetic decoder 490 according to an embodiment of the invention (e.g., according to the first aspect) is shown. For example, the arithmetic decoder 490 may correspond to the arithmetic decoder 290. The arithmetic decoder 490 may include a decoder core 430 (e.g., decoder core 230) for decoding a symbol value to be decoded to obtain a decoded symbol value 420. The arithmetic decoder 490 includes an interval size determination 450 for: in a first mode of operation, deriving interval size information 462 for arithmetic decoding of one or more symbol values to be decoded based on one or more state variable values 464, the one or more state variable values 464 representing statistics of a plurality of previously decoded symbol values; and in the first mode, updating the one or more state variable values 464 and / or the interval size information 462 for decoding one or more subsequent symbol values to be decoded. The arithmetic decoder 490 is configured to: in a second mode, disable updating of the one or more state variable values 464 and / or the interval size information 462. Arithmetic decoder 490 is configured to receive auxiliary information 416 indicating whether to use a first mode enabling updates to one or more state variable values 464 and / or interval size information 462 or a second mode disabling updates to one or more state variable values 464 and / or interval size information 462.
[0448] For example, the auxiliary information 416 including the operating mode indication may correspond to Figure 3The arithmetic decoder 490 includes an operation mode determination 414 for deriving an operation mode for decoding a current symbol value, or a current frame, or a current slice, or a current picture group, or a current sequence. The operation mode determination 414 provides operation mode information 417 indicating the current operation mode. For example, the operation mode information 417 can be referred to as auxiliary information indicating whether the first operation mode or the second operation mode is used.
[0449] The arithmetic decoder 490 includes an interval size information determination 460, which may correspond to the interval size information determination 260. The interval size information determination 460 may be similar to Figure 3 The interval size information determination 360 is implemented, wherein the state variable value determination 463 and the interval size information determination core 465 of the interval size information determination 460 correspond to Figure 3 The state variable value determination 363 and the interval size information determination core 365. Therefore, the one or more state variable values 464 provided by the state variable value determination 463 may correspond to the state variable value 364, and the interval size information provided by the interval size information determination core 465 may correspond to Figure 3 The state variable value 464 may represent a statistic of a plurality of previously decoded symbol values 424. In other words, the state variable value determination 463 may determine the state variable value 464 based on the previously decoded symbol value 424. For example, the interval size information determination 460 may correspond to the interval size information determination 360, except that the previously decoded symbol value 424 may replace the previously encoded symbol value 324. For example, the arithmetic decoder 490 provides a decoded symbol value 420, which may correspond to the decoded symbol value 220. The decoded symbol value 420 may be considered as one of the previously decoded symbol values 424 for updating the state variable value 464 for one or more subsequent symbol values to be decoded.
[0450] The interval size information determination 460 may be operated in the first operation mode or in the second operation mode according to the operation mode information 417. The operation of the interval size information determination 460 in the first operation mode or the second operation mode may be similar, such as with respect to Figure 3 The interval size information is determined as described in 360.
[0451] The arithmetic decoder 419 may optionally be supplemented or combined with any of the features, functions and details described herein with respect to other embodiments, either alone or in combination.
[0452] 1.3.According to Figures 5 to 7 arithmetic encoder 510 and arithmetic decoder 690 .
[0453] Figure 5An arithmetic encoder 510 according to an embodiment of the invention (eg according to the second aspect) is shown. The arithmetic encoder 510 may correspond to any one of the arithmetic encoders 110,310.
[0454] The arithmetic encoder 510 receives a symbol value 520 to be encoded. The symbol value 520 may correspond to the symbol value 120, 320.
[0455] The arithmetic encoder 510 includes an interval size information determination block 545, which will determine interval size information 562 for arithmetic encoding of one or more symbol values to be encoded. The information determination block 545 may correspond to the interval size determination block 145. The information determination block 545 includes an interval size information determination 560, which may correspond to the interval size information determination 160, 360, and it will determine the interval size information 562 which may correspond to the interval size information 162, 362.
[0456] The interval size information determination block 545 also includes an interval size determination 550, which will derive an interval size 552 based on the interval size information 562. The interval size determination 550 and the interval size 552 may correspond to the interval size determination 150, 350 and the interval size 152, 352, respectively, for example.
[0457] The arithmetic encoder includes an operation mode indicator 514 for indicating whether the arithmetic encoder 510 is operating in a first operation mode (e.g., an efficient mode or a normal mode) or in a second operation mode (e.g., a high throughput mode). The operation mode indicator 514 will provide auxiliary information 516 including an operation mode indication indicating an operation mode for encoding the symbol value 520 to be encoded and optionally further symbol values to be encoded. For example, the operation mode indicator 514 provides operation mode information 517 indicating the operation mode to the interval size determination 550. In the first operation mode, the interval size determination 550 uses a first calculation rule 555 to determine the interval size 552. In the second operation mode, the interval size determination 515 uses a second calculation rule 557 to determine the interval size 552.
[0458] The interval size determination 550 receives the overall encoded interval size value 550, which may correspond to, for example, the overall encoded interval size value 140, 340. In the first operation mode, using the first calculation rule, the interval size determination 550 is configured to compare the overall encoded interval size value 540 or a shifted version thereof (e.g., R) with the interval size information value 562 (e.g., p t or p LPS ) or its displacement version (e.g. P t or P LPS) to obtain a bin size 552. The bin size 552 is associated with a symbol value from a plurality of possible symbol values or with a symbol type from a plurality of possible symbol types. For example, the bin size is associated with the LPS, as described in Section 1.1.
[0459] In the second operating mode, using the second calculation rule, the interval size determination 550 is configured to obtain the interval size 552 by applying a bit shift operation (e.g., a right shift operation) to the overall encoded interval size value 540, wherein the number of bits by which the overall encoded interval size value is shifted is determined by the interval size information 562.
[0460] For example, the interval size information determination 560 may derive a shift count value, such as g LPS , which describes how many bits the overall encoded interval size value 540 will be shifted. The interval size information determination 560 may provide the shift count value in or as the interval size information 562. Alternatively, the interval size information determination 560 may provide a probability estimate in or as the interval size information 562, and the interval size determination 550 may determine the shift count value based on the probability estimate.
[0461] For example, the interval size information determination 560 can determine a probability estimate that describes the probability that the symbol value 520 to be encoded corresponds to the symbol value associated with the probability estimate. The symbol value associated with the probability estimate is a symbol value among a plurality of possible symbol values (e.g., binary symbol values). The probability estimate can also be referred to as a probability value. For example, the interval size information determination 560 can determine the probability estimate as described with respect to the interval size information determination 160, 360. For example, the first calculation rule 555 and / or the second calculation rule 557 can include a determination of a shift count value based on the interval size information 562.
[0462] Figure 7 An interval size determination block 745 for determining an interval size 752 is shown according to an embodiment. The interval size 752 may correspond to any of the interval sizes 152, 352, 552. The interval size 752 is determined by an interval size determination 750, which may be an implementation of the interval size determination 150, 350, 750. The interval size determination 750 receives interval size information 762 and an overall encoded interval size value 740, which may correspond to the interval size information 162, 362, 562 and the overall encoded interval size value 140, 340, 540, respectively. The interval size information 762 is determined by an interval size information determination 760, which may correspond to the interval size information determination 160, 360, 560. Alternatively, the interval size information 762 may be derived by other implementations of the interval size information determination 160, 360, 560.
[0463] The interval size determination 750 may determine the interval size 752 according to a first calculation rule 755, which may correspond to the first calculation rule 555, or according to a second calculation rule 757, which may correspond to the second calculation rule 557. The second calculation rule 757 includes a shift count value determination 753, which will determine a shift count value 754. The shift count value 754 describes how many bits the overall encoded interval size value 740 is shifted by the bit shift operation 758.
[0464] For example, the interval size information 762 is provided as an integer value representing a probability estimate, such as P LPS or P t , including BITS bits. The shift count value determination 753 may use the determination of the bit position of the most significant non-zero bit of the operand value to be incremented or decremented using an integer value relative to the probability estimate.
[0465] For example, the shift count value determination 753 may use a determination of the bit position of the most significant non-zero bit of the operand value that is to be increased or decreased relative to the integer value representation of the probability estimate by adding or subtracting a value, depending on the integer value representation of the probability estimate. For example, the value to be added or subtracted may be a right-shifted version of the integer value representation of the probability estimate.
[0466] For example, the shift count value determination 753 may derive the shift count value 754 according to the following equation, expressed as g LPS :
[0467]
[0468] or
[0469]
[0470] or
[0471]
[0472] or
[0473]
[0474] Among them, P LPS is an integer value representing a probability value; wherein const1 is a predetermined value; wherein const2 is a predetermined value; wherein const2' is a predetermined value; wherein const3 is a predetermined value; wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0475] Alternatively, the shift count value determination 753 may determine the shift count value 754 according to the following equation, expressed as g LPS :
[0476]
[0477] Among them, BITS-1 is used for P LPS The number of bits represented by the number;
[0478] Among them, P LPS is the integer value representation of the probability value; where g MAX is a predetermined number; wherein >> is a right shift operator; wherein log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0479] The interval size information determination 760 includes an interval size information determination core 765, which may correspond to the interval size information determination core 365, and which will determine the interval size information 762 based on one or more state variable values 764. The interval size information determination 760 also includes a state variable value determination 763, which may correspond to the state variable value determination 363, and provides a state variable value 764. The state variable value determination 763 includes a state variable value determination core 761, which may determine the state variable value 764 based on a previously encoded or decoded symbol value 724. Depending on whether the state variable value determination 761 is implemented in an arithmetic encoder or an arithmetic decoder, the previously encoded or decoded symbol value may correspond to the previously encoded symbol value 324 or the previously decoded symbol value 424. The state variable value determination 763 may optionally include a state variable value initialization 770, which may replace the state variable value determination core to determine the state variable value 764, for example, after initialization of the arithmetic encoder or the arithmetic decoder. The state variable value initialization 770 receives one or more context model initialization parameters 776. State variable value initialization 770 includes initial probability value determination 771 for deriving initial probability value 772 based on context model initialization parameter 776. For example, initial probability value determination 771 may provide initial probability value 772 in the form of integer value representation, such as P CLIP .
[0480] For example, the initial probability value determination 771 may determine the initial probability value 772 according to the following equation:
[0481] P clip =min(const11,max(const12,P init ))
[0482] P init =((slope·(qp-const13))>>const14)+offset
[0483] wherein const11 is a predetermined value; wherein const12 is a predetermined value; wherein const13 is a predetermined value; wherein const14 is a predetermined value; wherein slope is an initialization parameter value, such as one of the context model initialization parameters; wherein qp is a quality parameter value, such as one of the context model initialization parameters; wherein offset is an initialization parameter value, such as one of the context model initialization parameters.
[0484] The state variable value initialization 770 also includes an initial state variable value determination 773 , which determines the state variable value 764 , eg, its initial value, based on the initial probability value 772 .
[0485] For example, a state variable value or a source statistic value can be expressed as a t and b t , for example, as described in Section 1.2. Initial state variable value determination 773 may determine state variable value 764 according to the following equation:
[0486] a t =P clip <<(BITS a -const31)
[0487] and / or
[0488] b t =P clip <<(BITS b -const31)
[0489] Among them, BITS a is used for source statistic a t The number represents the number of bits; BITS b is used for source statistic value b t The number of bits represented by the number; const31 is a predetermined value; and wherein, << is a left shift operator.
[0490] For example, in the second mode of operation, the arithmetic decoder (eg, shift count value determination 753) may determine the value of the state variable 764 (eg, a t and b t ) to determine the initial value of the shift count value 754.
[0491] The interval size information determination core 765 includes a probability estimate determination 766, which determines a probability estimate based on the state variable value 764, such as P t , P LPSFor example, probability estimate determination 766 may determine a probability estimate as described in section 1.2. Interval size information determination core may provide the probability estimate as interval size information 762.
[0492] For example, when operating in the first mode, the multiplication operation 759 that may be used to determine the interval size 752 may be implemented as
[0493] R LPS =(((R>>SHIFT R )·(P LPS >>SHIFT P ))>>SHIFT MUL )+add LPS
[0494] Among them, R is the size of the overall coding interval; SHIFT R is a predetermined value; P LPS Is an integer value interval size information value; SHIFT P is the preset value; SHIFT MUL is a predetermined value; add LPS It is a predetermined value.
[0495] The interval size information 762 is associated with one of a plurality of possible symbol values or one of a plurality of possible symbol types. For example, the symbol type may be determined based on a probability estimate. For example, the probability estimate may represent the probability of a particular symbol value (e.g., 0 or 1), and depending on which symbol is less likely, either of the two symbols may be selected as the LPS. For example, the probability estimate determination 766 may determine the interval size information 762 as, for example, an integer value, such that the interval size information 762 is associated with a particular symbol type.
[0496] The probability estimate determination 766 may determine the interval size information 762 based on the probability estimate associated with a particular symbol value according to the following equation:
[0497] val MPS =P t >>(BITS min -1)
[0498] P LPS =(val MPS ? (1<<BITS min )-1-P t :P t )
[0499] Among them, P t is an integer-valued probability value; BITS min It is used to represent P tThe number of bits; where (cond?A:B) is an operator that provides the value A if the condition cond is not zero, otherwise it provides B.
[0500] P LPS may represent a probability estimate associated with a symbol type (e.g., LPS), and P t It can represent a probability estimate of a particular symbol value (eg, 1).
[0501] The interval size information determination 760 and the interval size determination 750 are respectively Figure 5 The implementation of the interval size information determination 560 and the interval size determination 550 of the embodiment of the present invention. The features of the interval size information determination 760 and the interval size determination 750 can be implemented independently of each other. However, the interval size information determination 760 may have to provide the interval size information 762 depending on the implementation of the interval size determination 750. For example, the interval size information 762 can be provided as an integer representation or a decimal representation and can be associated with a specific symbol value or a specific symbol type.
[0502] Figure 6 An arithmetic decoder 690 according to an embodiment of the invention (eg according to the second aspect) is shown. The arithmetic decoder 690 may correspond to any one of the arithmetic decoders 290,490.
[0503] The arithmetic decoder 690 provides one or more decoded symbol values 620, which may correspond to the decoded symbol values 220, 420. The arithmetic decoder 690 includes an interval size determination block 645, which will provide an interval size 652 for use in the decoding 630 of the decoded symbol values 620. The interval size 652 is determined based on the overall encoded interval size 640. The interval size 652 and the overall encoded interval size value 640 may correspond to Figure 5 The interval size 552 and the overall encoding interval size 540. The interval size determination block 645 may be implemented as the interval size determination block 545, which may correspond to the interval determination block 745.
[0504] The arithmetic decoder 690 can operate in a first operating mode and a second operating mode. The arithmetic decoder 690 receives auxiliary information 616 including an operating mode indication. The arithmetic decoder 690 includes an operating mode determination 614, which can correspond to the operating mode determination 214, 414 to detect the operating mode based on the operating mode indication 616. The operating mode determination 614 can provide the operating mode information 616 to the interval size determination block 645. The operating mode information 617 can be referred to as auxiliary information. The operating mode information 616 indicates whether the decoding of the symbol value to be decoded and the optional other symbol values to be decoded are decoded in the first operating mode or the second operating mode. The interval size determination block 645 determines the interval size 652 depending on whether the operating mode information 617 indicates the first operating mode or the second operating mode.
[0505] The arithmetic decoder 690 includes a decoder core 630 , which may correspond to the decoder cores 230 , 430 .
[0506] The arithmetic decoder 690 may optionally be supplemented or combined with any features, functions or details described with respect to the arithmetic decoders 200 , 400 and other embodiments described herein.
[0507] 1.4 According to Figure 8 and Fig. 9 The arithmetic encoder 810 and the arithmetic decoder 990
[0508] Figure 8 An arithmetic encoder 810 according to an embodiment of the present invention (eg according to the third aspect) is shown. The arithmetic encoder 810 may correspond to any one of the arithmetic encoders 110, 310, 510.
[0509] The arithmetic encoder receives one or more symbol values 820 to be encoded. The arithmetic encoder 810 includes an encoder core 830, which may correspond to the encoder core 130, for encoding the symbol values 820 to be encoded. The arithmetic encoder 810 includes an interval size determination block 845, which may correspond to the interval size determination block 545. The interval size determination block will derive an interval size 852, which may correspond to the interval size 152, 352, 552. The interval size determination block 845 includes an interval size information determination 860 and an interval size determination 850. The interval size information determination 860 will determine the interval size information 862. The interval size information determination 860 and the interval size information 862 may correspond to the interval size information determination 160, 360, 560 and the interval size information 162, 362, 562, respectively. The interval size determination 850 determines the interval size 852 based on the interval size information 862 and the overall encoded interval size value 840. The overall encoded interval size value 840 may correspond to an overall encoded interval size value of 140, 340, 540. The interval size 852 is associated with a symbol value from a plurality of possible symbol values. The interval size determination 850 determines the interval size 852 by applying a bit shift operation 858 to the overall encoded interval size value 840. The number of bits by which the overall encoded interval size value 840 is shifted is determined by a shift count value 854. The interval size determination 850 includes a shift count value determination 853 for determining the shift count value 854 based on the interval size information 862. The interval size information 862 is represented by an integer value representation, such as P LPS The shift count value determination 853 uses the integer value relative to the interval size information 862 to represent the determination of the bit position of the most significant non-zero bit of the operand value to be increased or decreased.
[0510] For example, the shift count value determination 853 may correspond to the shift count value determination 753. Therefore, the shift count value determination 853 may be supplemented or combined with any features, functions and details described with respect to the shift count value determination 753.
[0511] For example, interval size information determination 860 may correspond to Figure 7 The interval size information determination 760 discussed above. For example, the interval size information determination 860 may be based on the state variable value (e.g., a t and b t ) derives interval size information 862, the state variable value can be determined, for example, as described with respect to state variable value determination 763. Specifically, the state variable value can be initialized as described with respect to state variable value initialization 770. For example, initial state variable value determination 773 can apply a bit shift operation to initial probability value 772.
[0512] For example, the arithmetic encoder 810 may operate in a first operating mode (e.g., an efficient mode or a normal mode) and a second operating mode (e.g., a high throughput mode), as described with respect to the arithmetic encoders 310, 510. For example, the provision of the interval size information 862 and the determination of the interval size 852 may depend on the operating mode, as described with respect to the arithmetic encoders 310, 510. In other words, the arithmetic encoder 810 may be supplemented by an operating mode-dependent determination of the interval size 852 as described with respect to the previous embodiments. If the operating mode-dependent determination of the interval size 852 is implemented in the arithmetic encoder 810, then, for example, the initialization parameters used to determine the interval size information 862 in the first operating mode may be used to determine the initial value of the shift count value 854. For example, the interval size information determination 860 may determine one or more source statistics (e.g., a context model initialization parameter 776) based on one or more initialization parameters (e.g., context model initialization parameter 776). t and b t ), one or more source statistics are used to derive the interval size information 862. For example, the interval size determination 850 may determine the initial value of the shift count value 854 based on the initial value determined for the interval size information 862, or alternatively may determine the initial value of the shift count value 854 based on an initialization parameter used to determine the initial value of the interval size information 862.
[0513] Fig. 9 An arithmetic decoder 990 according to an embodiment of the invention (eg according to the third aspect) is shown. The arithmetic decoder 990 may correspond to any one of the arithmetic decoders 290, 490, 690.
[0514] The arithmetic decoder 990 will provide one or more decoded symbol values 920, which may correspond to the decoded symbol values 220, 420, 620. The arithmetic decoder 990 includes a decoder core 930 for decoding the decoded symbols 920. The decoder core 930 may correspond to the decoder core 230. The arithmetic decoder 990 also includes an interval size determination block 945 for determining an interval size 952 based on the overall encoded interval size value 940. The interval size determination block 945 may correspond to Figure 8 For example, the interval size determination block 945 may use a plurality of previously decoded symbol values, whereas the interval size determination block 845 will use a plurality of previously encoded symbol values. Thus, the interval size determination block 945 may use the decoded symbol value 920 to update a plurality of previously decoded symbol values, whereas the interval size determination block 845 uses the symbol to be encoded 820 to update a plurality of previously encoded symbol values.
[0515] The arithmetic encoder 810 and the arithmetic decoder 990 may be supplemented or combined with any of the features, functions and details described herein with respect to other embodiments, either alone or in combination.
[0516] 1.5 According to Fig.10 and Fig.11 The arithmetic encoder 1010 and the arithmetic decoder 1190
[0517] Fig.10 An arithmetic encoder 1010 according to an embodiment of the invention (e.g., according to the fourth aspect) is shown. The arithmetic encoder 1010 may correspond to any of the arithmetic encoders 110, 310, 510, 810. The arithmetic encoder 1010 comprises an encoder core 1030 for encoding one or more symbol values 1020 to be encoded. The encoder core 1030 and the symbol values 1020 to be encoded may correspond to the encoder core 130 and the symbol values 120, 320, 520, 820, respectively.
[0518] The arithmetic encoder includes an interval size determination block 1045, which may correspond to the interval size determination block 545, 845. The interval size determination block 1045 will determine the interval size 1052, which may correspond to the interval size 152, 352, 552, 852. The interval size determination block 1045 may, for example, determine the interval size 1052 based on the overall encoding interval size value 1040, which may correspond to the overall encoding interval size value 140, 340, 540, 840. For example, the arithmetic encoder may operate in one of a first operating mode (e.g., an efficient mode or a normal mode) and a second operating mode (e.g., a high throughput mode). In the first mode, the interval size determination block 1045 determines the interval size 1052 using a first interval size determination method 1059. For example, the first interval size determination method 1059 may include multiplication. For example, the first interval size determination 1059 may correspond to the multiplication operation 759. In the second operation mode, the interval size determination block 1045 determines the interval size 1052 by using a second interval size determination method 1058. The second interval size determination method 1058 may include a bit shift operation. For example, the second interval size determination method 1058 may correspond to the bit shift operation 758.
[0519] The arithmetic encoder 1010 will obtain one or more initialization parameters 1076, which may correspond to the context model initialization parameters 776. The interval size determination block 1045 includes an initialization value determination 1075. The initialization value determination 1075 obtains one or more first initialization values 1079 based on the initialization parameters 1076. The first interval size determination method 1059 may use the first initialization value 1079 to determine the interval size 1052. The initialization value determination 1075 also determines one or more second initialization values 1078 based on the initialization parameters 1076. The second interval size determination method 1058 uses the second initialization value 1078 to determine the interval size 1052. For example, the initialization value determination 1075 may determine the first initialization value 1079 or the second initialization value 1078 depending on the operation mode.
[0520] For example, the second initialization value 1078 may correspond to a shift count value (eg, shift count value 554, 754, 854) or an initial value thereof.
[0521] For example, the first initialization value 1079 may include one or more source statistics or state variable values, such as a t and b t For example, the initialization value determination 1075 may determine one or more first initialization values using a first mapping that converts the intermediate probability value (e.g., P ) obtained based on the initialization parameter 1076 into an integer value other than one or more clipping operations and one or more rounding operations. CLIP ) is linearly mapped to the first initialization value 1079.
[0522] For example, the initialization value determination 1075 may determine one or more second initialization values 1078 using logarithmic compression of operand values to reduce the range of values, the operand values being equal to the intermediate probability values (eg, P CLIP ), or based on an intermediate probability value. Alternatively, initialization value determination 1075 may determine one or more second initialization values 1078 using quantization of a grid in a logarithmic domain of operand values that are equal to or based on the intermediate probability value.
[0523] For example, additionally or alternatively, the initialization value determination 1075 may determine one or more second initialization values 1078 using a second mapping, the second mapping comprising calculating the logarithm of an operand value equal to or based on an intermediate probability value and rounding the result of the logarithm calculation to an integer value.
[0524] For example, the initialization value 1075 can be determined according to Figure 7The state variable value initialization 770 determines the first initialization value 1079. Therefore, the first interval size determination method 1059 may include an interval size information determination core 765 for determining interval size information, and may also include a first calculation rule 755 for determining the interval size 1052 based on the interval size information.
[0525] For example, the initialization value determination 1045 may determine the second initialization value 1078 by determining the interval size information based on the initialization parameter 1076 according to the interval size information determination core 765 as described with respect to the interval size information determination 760. The initialization value determination 1075 may, for example, determine the second initialization value 1078, such as a shift count value, based on the interval size information, such as by using the shift count value determination 753.
[0526] According to one example, the initialization value determination 1075 may determine one or more first initialization values a according to the following equations: t and / or b t :
[0527] a t =P clip <<(BITS a -const64)
[0528] b t =P clip <<(BITS b -const64)
[0529] The arithmetic encoder is configured to obtain the intermediate probability value P according to the following equation: clip :
[0530] P clip =min(const 60,max(const61,P init ))
[0531] P init =((slope·(qp-const 62))>>const63)+offset
[0532] wherein slope is a first initialization parameter such as initialization parameter 1076; wherein offset is a second initialization parameter such as initialization parameter 1076; wherein qp is a third initialization parameter such as initialization parameter 1076; wherein const60 is a predetermined value; wherein const61 is a predetermined value; wherein const62 is a predetermined value; wherein const63 is a predetermined value; wherein const64 is a predetermined value; wherein BITS a It is used to represent the first source statistic a tThe number of bits; BITS b It is used to represent the first source statistic b t The number of bits.
[0533] For example, the one or more second initialization values 1078 may be determined by the initialization value determination 1075 according to the following equations:
[0534]
[0535] or
[0536]
[0537] or
[0538]
[0539] or
[0540]
[0541] Among them, P LPS Equal to P clip Or based on P clip ,
[0542] Among them, P clip is obtained according to the following equation:
[0543] P clip =min(const 60,max(const61,P init ))
[0544] P init =((slope·(qp-const 62))>>const63)+offset
[0545] wherein the slope is a first initialization parameter such as the initialization parameter 1076; wherein the offset is a second initialization parameter such as the initialization parameter 1076;
[0546] Wherein, qp is a third initialization parameter such as initialization parameter 1076; wherein const60 is a predetermined value; wherein const61 is a predetermined value; wherein const62 is a predetermined value; wherein const63 is a predetermined value; wherein const1 is a predetermined value; wherein const2 is a predetermined value; wherein const2' is a predetermined value; wherein const3 is a predetermined value; wherein g MAX is a predetermined value; wherein, “>>” is a right shift operator; wherein, log2 is a logarithmic operator with base 2; wherein, is the ceiling operator.
[0547] Fig.11 An arithmetic decoder 1190 according to an embodiment of the present invention (e.g., according to the fourth aspect) is shown. The arithmetic encoder 1190 may correspond to any one of the arithmetic decoders 290, 490, 690, 990. The arithmetic decoder 1190 includes a decoder core 1130, which may correspond to the decoder core 230. The decoder core 1130 will decode the symbol value to be decoded so as to provide one or more decoded symbol values 1120. The decoded symbol value 1120 may correspond to the decoded symbol value 220, 420, 620, 920. The arithmetic decoder 1190 includes an interval size determination block 1145 for determining an interval size 1152 for decoding 1130 of the symbol value to be decoded. The interval size determination block 1145 corresponds to the interval size determination block 1152 for determining the interval size 1152 for decoding 1130 of the symbol value to be decoded. Fig.10 The interval size determination block 1045 described above may include a plurality of blocks 1045, wherein previously encoded symbol values may be replaced by previously decoded symbol values, and wherein initialization parameter 1076 may correspond to initialization parameter 1176 received by arithmetic decoder 1190. Interval size determination block 1145 may determine an interval size 1152, which may correspond to interval size 1152, based on overall encoded interval size value 1140, which may correspond to overall encoded interval size value 1040.
[0548] The arithmetic encoder 1090 and the arithmetic decoder 1190 may be supplemented or combined with any features, functions and details described herein with respect to other embodiments, either alone or in combination. Specifically, the first interval size determination method 1059 and the second interval size determination method 1058 may be implemented as described with respect to the first calculation rule 555 and the second calculation rule 557. The implementation of the first operation mode and the second operation mode may be based on the aforementioned embodiments.
[0549] 1.6 According to Fig.12 and Fig.13 The arithmetic encoder 1210 and the arithmetic decoder 1310
[0550] Fig.12 An arithmetic encoder 1210 according to an embodiment of the present invention (eg, according to the fifth aspect) is shown. The arithmetic encoder 1210 may correspond to any one of the arithmetic encoders 110, 310, 510, 810, 1010.
[0551] The arithmetic encoder 1210 includes an encoder core 1230 to encode one or more symbol values 1220 to be encoded. For example, the encoder core 1230 may correspond to the encoder core 130. The arithmetic encoder 1210 includes an interval size determination block 1245. The interval size determination block 1245 will determine the interval size 1252 for encoding 1230 of the symbol value 1220 to be encoded. The interval size determination block 1245 determines the interval size 1252 based on the overall encoding interval size value 1240. The interval size determination block 1245 may be implemented as or may correspond to any one of the interval size determination blocks 145, 345, 545, 845, 1045. Therefore, the interval size 1252 and the overall encoding interval size value 1240 may correspond to the interval size 152, 352, 552, 852, 1052 and the overall encoding interval size value 140, 340, 540, 840, 1040, respectively.
[0552] The interval size determination block 1245 will determine the interval size information based on the overall encoding and the overall size value 1214, and will also determine the interval size 1252 based on the interval size information. The interval size 1252 is associated with a symbol value from a plurality of possible symbol values. For example, the encoder core 1230 may provide the overall encoding interval size value 1240, e.g., as described with respect to the encoder core 130. For example, the encoder core 1230 may include an overall encoding interval size determination 1246.
[0553] The arithmetic encoder 1210 may operate in a first operating mode and a second operating mode, for example, as described with respect to the arithmetic encoders 310, 510. For example, the operating mode may be indicated by the operating mode information 1217, which may correspond to the operating mode indications 317, 517. In the first operating mode, the arithmetic encoder may use a first number of bits 1242 to represent the overall encoding interval size value 1240. In the second operating mode, the arithmetic encoder 1210 may use a second number of bits 1244 to represent the overall encoding interval size value 1240. The first number of bits 1242 is greater than the second number of bits 1244.
[0554] For example, the first bit number 1242 may be referred to as BITS R1 For example, the second bit number 1244 can be called BITS R2 .
[0555] For example, the overall encoding interval size determination 1246 may determine the overall encoding interval size value 1240 such that the overall encoding interval size value 1240 is within the following interval before encoding the symbol value:
[0556] [1<<(BITS R1-1), (1<<BITS R1 )-1]
[0557] The arithmetic encoder is configured to use BITS in the first mode. R1 bits represent the coding interval size, and wherein the arithmetic encoder is configured to use BITS in the second mode R2 bits represent the size of the coding interval, where BITS R2 <BITS R1 .
[0558] For example, the overall encoding interval size determination 1246 may determine the overall encoding interval size value such that the overall encoding interval size value 1240 is within the following interval:
[0559] [1<<(BITS R -1), (1<<BITS R )-1]
[0560] The arithmetic encoder is configured to use BITS in the first mode. R1 bits represent the coding interval size, and wherein the arithmetic encoder is configured to use BITS in the second mode R2 bits represent the size of the coding interval, where BITS R2 <BITS R1 .
[0561] Wherein, in the first operation mode, the variable bit can be set to a first bit number 1242, for example, the bit is 1, and wherein in the second operation mode, the variable bit can be set to a second bit number 1244, for example, the bit is 2.
[0562] For example, the interval size determination block 1245 can determine the interval size 1252 depending on the operation mode, as described with respect to the previous embodiment. For example, in the first operation mode, the interval size 1252 can be determined by applying a multiplication operation to the overall encoded interval size value 1240 and the interval size information. For example, in the second operation mode, the interval size 1252 can be determined by applying a bit shift operation to the overall encoded interval size value 1240, wherein the number of bits by which the overall encoded interval size value 1240 is shifted can be determined by a shift count value (e.g., a shift count value of 554, 754, 854). For example, the shift count value can be limited to a first maximum value in the first operation mode and can be limited to a second maximum value in the second operation mode. The first maximum value of the shift count value can be greater than the second maximum value.
[0563] The first number of bits may be adapted to a first maximum value of the shift count value such that a shift of the overall coding interval size value 1240 represented by the number of bits defined by the first number of bits 1242 results in a non-zero value. The second number of bits 1244 may be adapted to a second maximum value of the shift count value such that a shift of the overall coding interval size value 1240 represented by the number of bits defined by the second number of bits 1244 results in a non-zero value.
[0564] The feature of adapting the number of bits representing the overall coding interval size value 1240 to the operating mode can be combined with any of the features described in the previous embodiments. That is, the overall coding interval size value 140, 340, 540, 740, 840, 1040 can be represented by a first number of bits in the first operating mode and by a second number of bits in the second operating mode. For example, the bit shift operation used to determine the interval size 152, 352, 552, 752, 852, 1052 can be adapted to the number of bits representing the overall coding interval size value.
[0565] Fig.13 An arithmetic decoder 1390 according to an embodiment of the present invention (eg, according to the fifth aspect) is shown. For example, the arithmetic decoder 1390 may correspond to any one of the arithmetic decoders 290, 490, 690, 990, 1190.
[0566] The arithmetic decoder includes a decoder core 1330 (e.g., decoder core 230) for decoding one or more symbols to be decoded to provide one or more decoded symbol values 1390. The arithmetic decoder includes an interval size determination block 1345 for providing an interval size 1352 for decoding 1330 of the symbol values to be decoded. The interval size determination block 1345 corresponds to the interval size determination block 1245, wherein, for example, instead of previously encoded symbol values, previously decoded symbol values can be used. Therefore, the interval size value 1352 based on which the interval size determination block 1345 determines the interval size 1352 and the overall encoded interval size value 1340 can correspond to the interval size 1252 and the overall encoded interval size value 1240. Similar to the description of the arithmetic encoder 1210, the arithmetic decoder 1390 can operate in a first operating mode and a second operating mode, which can be indicated by the operating mode information 1317, and the operating mode information 1317 can correspond to the operating mode information 1217. The decoder core 1330 may include an overall encoding interval size determination 1346 for determining an overall encoding interval size value 1340. In a first operating mode, the overall encoding interval size determination uses a first number of bits 1342 that may correspond to the first number of bits 1242 to represent the overall encoding interval size value 1340. In a second operating mode, the overall encoding interval size determination 1346 may use a second number of bits 1344 that may correspond to the second number of bits 1244 to represent the overall encoding interval size value 1340.
[0567] For example, the overall encoding interval size determination 1246 , 1346 may provide the overall encoding interval size value as a predetermined value, or as a result of decoding of the symbol values to be encoded, as described with respect to the encoder core 130 and the decoder core 230 .
[0568] The arithmetic encoder 1210 and the arithmetic decoder 1390 may be supplemented or combined with any of the features, functions and details described herein with respect to other embodiments.
[0569] 1.7 According to Figures 14 to 18 The arithmetic encoder 1410 and the arithmetic decoder 1890
[0570] Fig.14 An arithmetic encoder 1410 according to an embodiment of the present invention (eg, according to the sixth aspect) is shown. For example, the arithmetic encoder 1410 may correspond to any one of the arithmetic encoders 110, 310, 510, 810, 1010, 1210.
[0571] The arithmetic encoder 1410 includes an encoder core 1430 for encoding one or more symbol values 1420 to be encoded. For example, the encoder core 1430 may correspond to the encoder core 130.
[0572] The arithmetic encoder 1410 includes an interval size determination block 1445. The interval size determination block 1445 includes an interval size information determination 1460 for determining interval size information 1462. The interval size determination block also includes an interval size determination 1450 for deriving an interval size 1452 based on the interval size information 1462. The interval size 1452 is provided for encoding 1430 of a symbol value 1420 to be encoded. The interval size determination block may correspond, for example, to the interval size determination blocks 145, 345, 545, 845, 1045, 1245. The interval size determination block 1445 optionally determines the interval size 1452 based on the overall encoding interval size value 1440. For example, the overall encoding interval size value 1440 may correspond to the overall encoding interval value 110, 310, 510, 810, 1010, 1210.
[0573] The interval size determination 1450 includes a count value determination 1447 that will derive a count value 1448 based on the integer value representation of the probability value 1462 (i.e., the interval size information 1462) using a determination of the bit position of the most significant non-zero bit of the operand value that is reduced or increased relative to the integer value representation of the interval size information 1462. The interval size determination 1450 also includes an interval size determination core 1449 that will obtain an interval size 1452 associated with a symbol value from among the plurality of possible symbol values. The interval size determination core 1449 will use the count value 1448 to obtain the interval size 1452.
[0574] For example, the count value determination 1447 may be implemented to correspond to the shift count value determination 853 , 753 .
[0575] In some examples, the interval size determination block 1445 may determine the interval size 1452 independently of the overall encoded interval size value.
[0576] Fig.15 An interval size determination core 1549 according to an embodiment (e.g., according to the sixth aspect) is shown. The interval size determination core 1549 may be an implementation of the interval size determination core 1449. For example, the interval size determination core 1549 may determine the interval size 1452 by applying a bit shift operation 1558 to the overall encoded interval size value 1440. The overall encoded interval size value may be a predetermined value, such as R'. For example, the overall encoded interval size value 1440 may be set to 384. The bit shift operation 1558 shifts the predetermined value of the overall encoded interval size value 1440 by the number of bits determined by the count value 1448.
[0577] For example, the bit shift operation 1558 can be implemented based on the bit shift operations 758, 858.
[0578] Fig.16An interval sizing core 1649 is shown, which may be an example of an implementation of interval sizing core 1449, according to an embodiment. Interval sizing core 1649 is configured to map count values 1448 onto interval sizes 1452.
[0579] For example, the interval size determination core 1649 includes a mapping operation 1681. The mapping operation may map the count value 1448 to a value of the interval size 1452. For example, the mapping operation 1681 may map the count value 1448 to the interval size 1445 using a mapping function or a mapping table.
[0580] Fig.17 An interval sizing core 1749 is shown according to an embodiment. The interval sizing core 1749 may be an implementation of the interval sizing core 1449. If the count value 1448 is within a first range of values, the interval sizing core will determine the interval size 1452 depending on the overall encoded interval size value 1440. For example, if the count value 1448 is within a first range of values, the interval sizing core may use the first interval sizing determination 1783 to determine the interval size 1452. If the count value 1448 is within a second range of values that is different from the first range of values, the interval sizing core 1749 determines the interval size 1452 depending on the overall encoded interval size value 1440.
[0581] For example, the overall encoding interval size value 1414 may be a predetermined value, such as Fig.16 described, or may depend on the encoding of previously encoded symbols, for example, as explained with respect to previous embodiments.
[0582] If count value 1448 is within the second range of values, interval sizing core 1749 may use second interval sizing determination 1785 to determine interval size 1452 .
[0583] For example, the second interval size determination 1784 may include taking over the current overall encoding interval size value 1440 as the interval size 1452 .
[0584] Alternatively, for example, the second interval size determination 1784 includes a shift operation, such as a bit shift operation, such as the bit shift operations 758 , 858 , 1558 , on the current overall encoding interval size value 1440 for determining the interval size 1452 .
[0585] According to an alternative implementation of the interval size determination core 1749, the first interval size determination 1783 depends on the overall encoded interval size value 1440. For example, the first interval size determination 1783 may apply a shift operation (e.g., a bit shift operation, such as bit shift operations 758, 858, 1558) to the overall encoded interval size value 1440 for determining the interval size 1452. According to this embodiment, the second interval size determination 1785 may take over the current overall encoded interval size value 1440 as the interval size 1452.
[0586] For example, taking over the overall encoding interval size value 1440 as the interval size 1452 can be referred to as bypass mode.
[0587] As about Fig.14 As illustrated, the implementation of the overall encoding interval size value 1440 as a predetermined value may optionally be implemented in any one of the arithmetic encoders 110, 310, 510, 810, 1010, 1210. Therefore, the overall encoding size interval value may optionally not be provided by the encoder 130, 330, 530, 830, 1030, 1230, but may be a predetermined value.
[0588] For example, in the second operating mode, the overall encoding interval size value can be implemented as a predetermined value, while in the first operating mode, the overall encoding interval size value can be determined by encoding 1430, for example as described with respect to encoder core 130 (or, in the case of a decoder, determined by decoding, for example as described with respect to decoder core 230).
[0589] For example, the first value range of the count value can be defined by a predetermined threshold, such as 1. For example, if the count value 1448 exceeds the predetermined threshold (which can be 1, for example), the interval size determination core can determine the interval size 1452 according to the first interval size determination 1783. If the count value 1448 does not exceed the predetermined threshold, the interval size determination core 1749 can apply the second interval size determination 1785 to determine the interval size value 1452. For example, the count value 1448 being 1 can correspond to an equal probability of two of the two binary values of the symbol value to be encoded. In this case, a bypass mode can be used, for example, as described with respect to the second interval size determination 1785.
[0590] The interval size determination block 1445 may correspond to any one of the interval determination blocks 145, 345, 545, 845, 1045, 1245. For example, the interval size determination 1450 may be an example of an implementation of the interval size determination 150, 350, 550, 850, 1050, 1250 for the second operation mode. For example, the determination of the interval size according to the interval size determination 1450 may be implemented as the second calculation rule 557, 757 in the dual mode operation of the arithmetic encoder.
[0591] Fig.18 An arithmetic decoder 1890 according to an embodiment of the present invention (e.g., according to the sixth aspect) is shown. The arithmetic decoder 1890 may correspond to any one of the arithmetic decoders 290, 490, 690, 990, 1190, 1390. The arithmetic decoder 1890 comprises a decoder core 1830 for decoding a symbol value to be decoded to provide one or more decoded symbol values 1820. The decoder core 1830 may correspond to the decoder core 230. The arithmetic decoder 1890 comprises an interval size determination block 1845 for determining an interval size 1852 for decoding 1830. The interval size determination block 1845 may correspond to Fig.14 The interval size determination block 1445 may be configured to determine the interval size 1852 of the encoding interval size value 1840, for example, except that the previously encoded symbol value is replaced by the previously decoded symbol value and the replacement encoding is decoded. The interval size determination block 1845 may optionally determine the interval size 1852 based on the overall encoded interval size value 1840. Therefore, the interval size 1852 and the overall encoded interval size value 1840 may correspond to the interval size 1452 and the overall encoded interval size value 1840, respectively.
[0592] The arithmetic encoder 1410 and the arithmetic decoder 1890 may optionally be supplemented or combined, alone or in combination, with any of the features, functions and details described herein with respect to other embodiments.
[0593] 1.8 According to Fig.19 and Fig. 20 The arithmetic encoder 1910 and the arithmetic decoder 2090
[0594] Fig.19 An arithmetic encoder 1910 according to an embodiment of the present invention (eg, ...
Claims
1. An arithmetic encoder (310) for encoding a plurality of symbols (320) having symbol values, in, The arithmetic encoder is configured to: in a first mode of operation, derive interval size information (362) for arithmetically encoding one or more symbol values (320) to be encoded based on one or more state variable values (364), the one or more state variable values (364) representing statistics of a plurality of previously encoded symbol values (324); and update the one or more state variable values (364) and / or the interval size information (362) for encoding one or more subsequent symbol values to be encoded in the first mode; wherein the arithmetic encoder is configured to disable updating of the one or more state variable values (364) and / or the interval size information (362) in the second mode; The arithmetic encoder is configured to provide auxiliary information (316), wherein the auxiliary information (316) indicates whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
2. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to provide the auxiliary information on a per-frame basis, or on a per-slice basis, or on a per-picture group basis, or on a per-sequence basis, the auxiliary information indicating whether to use the first mode of enabling updating of the one or more state variable values and / or the interval size information or to use the second mode of disabling updating of the one or more state variable values and / or the interval size information.
3. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to provide the auxiliary information on a per-profile basis, the auxiliary information indicating whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
4. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to provide dedicated auxiliary information, which indicates whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
5. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to reuse one or more previously determined state variable values and / or previously determined interval size information when using the second mode.
6. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on the overall encoding bin size value and based on the bin size information.
7. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to use a first calculation rule when operating in the first mode and a second calculation rule when operating in the second mode to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on an overall encoding bin size value and based on the bin size information.
8. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on the overall encoding bin size value and based on the bin size information by: when operating in said first mode, using a multiplication of said overall encoded interval size value, or a shifted version thereof, and an interval size information value, or a shifted version thereof; as well as When operating in the second mode, application of a bit shift operation to the overall encoding interval size value is used, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
9. The arithmetic encoder according to claim 8, in, The arithmetic encoder is configured to determine a shift count value based on an integer value representation of a probability value comprising BITS bits, using determination of the bit position of the most significant non-zero bit of an operand value that is increased or decreased relative to the integer value representation of the probability value, the shift count value describing the number of bits by which the overall encoding interval size value is shifted.
10. The arithmetic encoder according to claim 8, in, The arithmetic encoder is configured to determine a shift count value based on one or more initialization parameters, the shift count value describing the number of bits by which the overall encoding interval size value is shifted.
11. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to obtain an updated version a of the first state value according to the following equation t+1 : a t+1 =a t +x t ·(ONE a >>n a )-(a t >>n a ) Among them, a t is the current version of the first state value, Among them, x t is the current encoding symbol, Among them, n a is the window size information, in, ONE a =(1<<BITS a )-k a Wherein, BITSa is the number of bits used to represent the first state value, Among them, k a is a predetermined number; and / or The arithmetic encoder is configured to obtain an updated version b of the first state value according to the following equation: t+1 : b t+1 =b t +x t ·(ONE b >>n b )-(b t >>n b ) Among them, b t is the current version of the first state value, Among them, x t is the current encoding symbol, Among them, n b is the window size information, in, ONE b =(1<<BITS b )-k b Among them, BITS b is the number of bits used to represent the first state value, Among them, k b It is a predetermined number.
12. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to perform a weighted combination of the first state variable value and the second state variable value in order to obtain the bin size information.
13. The arithmetic encoder according to claim 1, in, The arithmetic encoder is configured to derive the probability estimate P according to the following equation t : P t =((a t >>(BITS a -BITS min ))+(b t >>(BITS b -BITS min )))>>1 in BI TS min =min(BITS a ,BITS b ), Among them, a t is the value of the first state variable, Among them, b t is the value of the second state variable, Among them, BITS a It is used to represent a t The number of bits; Among them, BITS b It is used to represent b t The number of bits.
14. An arithmetic encoder (510) for encoding a plurality of symbols (520) having symbol values, in, The arithmetic encoder is configured to determine interval size information (562) for arithmetically encoding one or more symbol values to be encoded; wherein the arithmetic encoder is configured to derive the interval size (552) based on the interval size information (562); wherein the arithmetic encoder is configured to multiply the overall encoded interval size value (540) or a shifted version thereof with the interval size information value (562) or a shifted version thereof in a first mode to obtain an interval size (552) associated with a symbol value from among a plurality of possible symbol values; and wherein the arithmetic encoder is configured to obtain, in a second mode, an interval size (552) associated with a symbol value from a plurality of possible symbol values by applying a bit shift operation to the overall encoding interval size value (540), wherein the number of bits by which the overall encoding interval size value (540) is shifted is determined by the interval size information (562); and The arithmetic encoder is configured to provide auxiliary information (516), wherein the auxiliary information (516) indicates whether to use the first mode of performing multiplication between the overall encoding interval size value (540) and the interval size information value (562) or to use the second mode of obtaining the interval size (552) by bit shifting.
15. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive a shift count value describing how many bits the overall encoding interval size value is shifted.
16. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive a shift count value describing how many bits the overall encoding interval size value is shifted based on a probability value describing a probability of a symbol value among a plurality of possible symbol values.
17. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive the shift count value based on the integer value representation of the probability value comprising BITS bits using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
18. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive the shift count value by adding or subtracting a value depending on the integer value representation of the probability value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
19. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive the shift count value by adding or subtracting a value that is a right-shifted version of the integer value representation of the probability value, using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
20. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive the shift count value g according to the following equation LPS : or or or Among them, P LPS is an integer value representation of the probability value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
21. The arithmetic encoder according to claim 14, in, The arithmetic encoder is configured to derive the shift count value g according to the following equation LPS : Among them, BITS-1 is used for P LPS The number of bits represented by the number; Among them, P LPS is an integer value representation of the probability value; Among them, g MAX is a predetermined number; Among them, >> is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
22. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to derive the shift count value based on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
23. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to initialize one or more source statistical values depending on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
24. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to represent the integer value P in a limited range depending on the initial probability value clip Use bit shift operations to initialize one or more source statistics a t 、b t .
25. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to represent P according to the following equation depending on the limited range of the initial probability value: clip To initialize one or more source statistics a t , b t : a t =P clip <<(BITS a -const31) and / or b t =P clip <<(BITS b -const31) Among them, BITS a is the source statistic a t The number of bits represented by the number; Among them, BITS b is the source statistic value b t The number of bits represented by the number; Wherein, const31 is a predetermined value; and Among them, << is the left shift operator.
26. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to derive the integer value representation P of the initial probability value according to the following equation clip : P clip =min(const11,max(const12,P init )) P init =((slope·(qp-const13))>>const14)+offset Among them, const11 is a predetermined value; Among them, const12 is a predetermined value; Among them, const13 is a predetermined value; Among them, const14 is a predetermined value; Among them, slope is the initialization parameter value; Where qp is the quality parameter value; Among them, offset is the initialization parameter value.
27. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to determine initial values of one or more source statistics used to derive the bin size information value in the first mode and an initial value of the shift count value used in the second mode based on the same one or more initialization parameters.
28. The arithmetic encoder according to claim 14, wherein: The arithmetic encoder is configured to obtain the interval size R according to the following equation in the first mode: LPS : R LPS =(((R>>SHIFT R )·(P LPS >>SHIFT P ))>>SHIFT MUL )+add LPS Wherein, R is the value of the overall coding interval size; Among them, SHIFT R is a predetermined value; Among them, P LPS is an integer value interval size information value; Among them, SHIFT P is a predetermined value; Among them, SHIFT MUL is a predetermined value; Among them, add LPS It is a predetermined value.
29. The arithmetic encoder according to claim 28, wherein The arithmetic encoder is configured to obtain the integer value interval size information value P according to the following equation LPS : val MPS =P t >>(BITS min -1) P LPS =(val MPS ?(1<<BITS min )-1-P t ∶P t ), Where Pt is an integer-valued probability value; Where BITSmin is the number of bits used to represent Pt; Where (cond?A:B) is an operator that provides the value A if the condition cond is not zero, otherwise it provides B.
30. An arithmetic encoder (810) for encoding a plurality of symbols (820) having symbol values, in, The arithmetic encoder is configured to determine interval size information (862) for arithmetically encoding (830) one or more symbol values (820) to be encoded; wherein the arithmetic encoder is configured to derive the interval size (852) based on the interval size information (862); wherein the arithmetic encoder is configured to obtain an interval size (852) associated with a symbol value from a plurality of possible symbol values by applying a bit shift operation (858) to an overall encoding interval size value (840), wherein the number of bits by which the overall encoding interval size value (840) is shifted is determined by a shift count value (854); and wherein the arithmetic encoder is configured to derive the shift count value based on the integer value representation of the probability value (862) using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value (862).
31. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the shift count value by adding or subtracting a value depending on the integer value representation of the probability value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
32. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the shift count value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value by adding or subtracting a value that is a right-shifted version of the integer value representation of the probability value.
33. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the shift count value g according to the following equation LPS : or or or Among them, P LPS is an integer value representation of the probability value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
34. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the shift count value g according to the following equation LPS : Among them, BITS-1 is used for P LPS The number of bits represented by the number; Among them, P LPS is an integer value representation of the probability value; Among them, g MAX is a predetermined number; Among them, >> is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
35. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the shift count value based on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
36. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to initialize one or more source statistical values depending on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
37. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to represent the integer value P in a limited range depending on the initial probability value clip Use bit shift operations to initialize one or more source statistics a t , b t .
38. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to represent P according to the following equation depending on the limited range of the initial probability value: clip To initialize one or more source statistics a t , b t : a t =P clip <<(BITS a -const31) and / or b t =P clip <<(BITS b -const31) Among them, BITS a is the source statistic value a t The number of bits represented by the number; Among them, BITS b is the source statistic value b t The number of bits represented by the number; Wherein, const31 is a predetermined value; and Among them, << is the left shift operator.
39. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to derive the integer value representation P of the initial probability value according to the following equation clip : P clip =min(const11,max(const12,P init )) P init =((slope·(qp-const13))>>const14)+offset Among them, const11 is a predetermined value; Among them, const12 is a predetermined value; Among them, const13 is a predetermined value; Among them, const14 is a predetermined value; Among them, slope is the initialization parameter value; Where qp is the quality parameter value; Among them, offset is the initialization parameter value.
40. The arithmetic encoder according to claim 30, wherein: The arithmetic encoder is configured to determine initial values of one or more source statistics used to derive the bin size information value in the first mode and an initial value of the shift count value used in the second mode based on the same one or more initialization parameters.
41. An arithmetic encoder (1010) for encoding a plurality of symbols (1020) having symbol values, in, The arithmetic encoder is configured to determine interval size information (1062) for arithmetically encoding (1030) one or more symbol values (1020) to be encoded; wherein the arithmetic encoder is configured to derive the interval size (1052) based on the interval size information (1062); wherein the arithmetic encoder is configured to obtain an interval size (1052) associated with a symbol value of a plurality of possible symbol values using a first interval size determination method (1059) in a first mode; and wherein the arithmetic encoder is configured to obtain an interval size (1052) associated with a symbol value of a plurality of possible symbol values using a second interval size determination method (1058) in a second mode; and wherein the arithmetic encoder is configured to obtain one or more first initialization values (1079) based on one or more initialization parameters (1076), the one or more first initialization values (1079) being used to determine the interval size (1052) using the first interval size determination method (1059), and The arithmetic encoder is configured to obtain one or more second initialization values (1078) based on the one or more initialization parameters (1076), and the one or more second initialization values (1078) are used to determine the interval size (1052) using the second interval size determination method (1058).
42. The arithmetic encoder according to claim 41, in, The first interval size determination method includes a first accuracy, wherein the second interval size determination method comprises a second accuracy, wherein the first accuracy is different from the second accuracy; and / or The first interval size determination method includes a first computational complexity, the second interval size determination method includes a second computational complexity, and the first computational complexity is different from the second computational complexity.
43. The arithmetic encoder according to claim 41, wherein: The arithmetic encoder is configured to, in the first mode, multiply the overall encoded interval size value or a shifted version thereof with the interval size information value or a shifted version thereof to obtain an interval size associated with a symbol value of a plurality of possible symbol values; and The arithmetic encoder is configured to obtain an interval size associated with a symbol value among multiple possible symbol values by applying a bit shift operation to the overall coding interval size value in the second mode, wherein the number of bits by which the overall coding interval size value is shifted is determined by the interval size information.
44. The arithmetic encoder according to claim 41, in, The arithmetic encoder is configured to determine one or more source statistical values as the one or more first initialization values; and / or The arithmetic encoder is configured to determine a shift count value as the second initialization value, wherein the shift count value determines the number of bits by which the overall encoding interval size value is to be shifted so as to obtain an interval size associated with a symbol value among multiple possible symbols.
45. The arithmetic encoder according to claim 41, wherein The arithmetic encoder is configured to determine the one or more first initialization values using a first mapping, wherein the first mapping linearly maps an intermediate probability value obtained based on one or more initialization parameters to the one or more first initialization values, in addition to one or more clipping operations and one or more rounding operations.
46. The arithmetic encoder according to claim 41, in, the arithmetic encoder being configured to determine the one or more second initialization values using logarithmic compression of an operand value equal to or based on the intermediate probability value to a reduced range of values; or Therein, the arithmetic encoder is configured to determine the one or more second initialization values using quantization of a grid in a logarithmic domain of operand values equal to or based on the intermediate probability value.
47. The arithmetic encoder according to claim 41, wherein: The arithmetic encoder is configured to determine the one or more second initialization values using a second mapping, wherein the second mapping includes calculating a logarithm of an operand value equal to or based on the intermediate probability value and rounding a calculation result of the logarithm to an integer value.
48. The arithmetic encoder according to claim 41, wherein: The arithmetic encoder is configured to obtain one or more first initialization values a according to the following equations t and / or b t : a t =P clip <<(BITS a -const64) b t =P clip <<(BITS b -const64) The arithmetic encoder is configured to obtain the intermediate probability value P according to the following equation: clip : P clip =min(const60,max(const61,P init )) P init =((slope·(qp-const62))>>const63)+offset Among them, the slope is the first initialization parameter; Wherein, the offset is the second initialization parameter; Among them, qp is the third initialization parameter; Among them, const60 is a predetermined value; Among them, const61 is a predetermined value; Among them, const62 is a predetermined value; Among them, const63 is a predetermined value; Among them, const64 is a predetermined value; Among them, BITS a It is used to represent the first source statistic a t The number of bits; Among them, BITS b It is used to represent the first source statistic b t The number of bits.
49. The arithmetic encoder according to claim 41, wherein: The arithmetic encoder is configured to obtain the second initialization value g according to the following equation LPS : or or or Among them, P LPS Equal to P clip Or based on P clip , Among them, P clip is obtained according to the following equation: P clip =min(const60,max(const61,P init )) P init =((slope·(qp-const62))>>const63)+offset, wherein the slope is the first initialization parameter; Wherein, the offset is the second initialization parameter; Among them, qp is the third initialization parameter; Among them, const60 is a predetermined value; Among them, const61 is a predetermined value; Among them, const62 is a predetermined value; Among them, const63 is a predetermined value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
50. An arithmetic encoder (1210) for encoding a plurality of symbols (1220) having symbol values, in, The arithmetic encoder is configured to determine interval size information for arithmetically encoding (1230) one or more symbol values to be encoded; wherein the arithmetic encoder is configured to derive an interval size based on the interval size information (1252); wherein the arithmetic encoder is configured to obtain, in a first mode, a bin size (1252) associated with a symbol value of a plurality of possible symbol values based on the overall encoding bin size value (1240); and wherein the arithmetic encoder is configured to obtain, in a second mode, an interval size (1252) associated with a symbol value of a plurality of possible symbol values based on the overall encoding interval size value (1240); and The arithmetic encoder is configured to switch between the use of a first number of bits (1242) and a second number of bits (1244) for representing the overall coding interval size value (1240).
51. The arithmetic encoder according to claim 50, wherein: The arithmetic encoder is configured to determine the overall encoding interval size value such that, before encoding a symbol value, the overall encoding interval size value is in the following interval: [1<<(BITS R1 -1),(1<<BITS R1 )-1] The arithmetic encoder is configured to use BITS in the first mode. R1 bits represent the coding interval size, and wherein the arithmetic encoder is configured to use BITS in the second mode R2 bits represent the size of the coding interval, Among them, BITS R2 <BITS R1 .
52. The arithmetic encoder according to claim 50, wherein: The arithmetic encoder is configured to multiply the overall encoded bin size value or a shifted version thereof with the bin size information value or a shifted version thereof in the first mode to obtain a bin size associated with a symbol value of a plurality of possible symbol values.
53. The arithmetic encoder according to claim 50, wherein: The arithmetic encoder is configured to obtain, in the second mode, an interval size associated with a symbol value from among multiple possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
54. The arithmetic encoder according to claim 50, wherein: The arithmetic encoder is configured to derive a shift count value when operating in the second mode, the shift count value describing how many bits the overall encoding interval size value is shifted.
55. The arithmetic encoder according to claim 50, wherein: The arithmetic encoder is configured to limit the shift count value to a maximum value g MAX ,as well as wherein the first number of bits is greater than the second number of bits, and The second bit number is greater than the maximum value g MAX .
56. The arithmetic encoder according to claim 50, in, the arithmetic encoder being configured to switch between use of a first number of bits and a second number of bits for representing the overall coding interval size value, such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, wherein the first number of bits is greater than the second number of bits, and wherein the arithmetic encoder is configured to obtain, in the second mode, an interval size associated with a symbol value from among a plurality of possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by a shift count value; and Wherein, in the first mode, the shift count value is limited to a first maximum value, and Wherein, in the second mode, the shift count value is limited to a second maximum value, wherein the first maximum value is greater than the second maximum value.
57. The arithmetic encoder according to claim 50, wherein: the first number of bits is adapted to the first maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the first number of bits results in a non-zero value, and wherein the second number of bits is adapted to the second maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the second number of bits results in a non-zero value.
58. An arithmetic decoder (490) for decoding a plurality of symbols (420) having symbol values, in, The arithmetic decoder is configured to: in a first mode of operation, derive interval size information (462) for arithmetically decoding one or more symbol values to be decoded based on one or more state variable values (464), the one or more state variable values (464) representing statistics of a plurality of previously decoded symbol values; and in the first mode, update the one or more state variable values (464) and / or the interval size information (462) for use in decoding one or more subsequent symbol values to be decoded; wherein the arithmetic decoder is configured to disable updating of the one or more state variable values and / or the interval size information in the second mode; The arithmetic decoder is configured to receive auxiliary information (416), wherein the auxiliary information (416) indicates whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
59. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to receive the auxiliary information (416) on a per-frame basis, or on a per-slice basis, or on a per-picture group basis, or on a per-sequence basis, the auxiliary information (416) indicating whether to use the first mode of enabling updating of the one or more state variable values and / or the interval size information or to use the second mode of disabling updating of the one or more state variable values and / or the interval size information.
60. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to receive the auxiliary information (416) on a per-profile basis, the auxiliary information (416) indicating whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
61. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to receive dedicated auxiliary information (416), which indicates whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or the second mode that disables updating of the one or more state variable values and / or the interval size information.
62. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to reuse one or more previously determined state variable values and / or previously determined interval size information when using the second mode.
63. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on an overall encoded bin size value and based on the bin size information.
64. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to use a first calculation rule when operating in the first mode and a second calculation rule when operating in the second mode to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on an overall encoded bin size value and based on the bin size information.
65. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to obtain a bin size associated with a symbol value of a plurality of possible symbol values based on the overall encoded bin size value and based on the bin size information by: when operating in said first mode, using a multiplication of said overall encoded interval size value, or a shifted version thereof, and an interval size information value, or a shifted version thereof; as well as When operating in the second mode, application of a bit shift operation to the overall encoding interval size value is used, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
66. The arithmetic decoder according to claim 65, wherein: The arithmetic decoder is configured to determine a shift count value based on an integer value representation of a probability value comprising BITS bits, using determination of the bit position of the most significant non-zero bit of an operand value that is increased or decreased relative to the integer value representation of the probability value, the shift count value describing the number of bits by which the overall encoding interval size value is shifted.
67. The arithmetic decoder according to claim 65, wherein: The arithmetic decoder is configured to determine a shift count value based on one or more initialization parameters, the shift count value describing the number of bits by which the overall encoding interval size value is shifted.
68. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to obtain an updated version a of the first state value according to the following equation t+1 : a t+1 =a t +x t ·(ONE a >>n a )-(a t >>n a ) Among them, a t is the current version of the first state value, Among them, x t is the symbol currently decoded, Among them, n a is the window size information, in, ONE a =(1<<BITS a )-k a Wherein, BITSa is the number of bits used to represent the first state value, Among them, k a is a predetermined number; and / or The arithmetic decoder is configured to obtain an updated version b of the first state value according to the following equation: t+1 : b t+1 =b t +x t ·(ONE b >>n b )-(b t >>n b ) Among them, b t is the current version of the first state value, Among them, x t is the symbol currently decoded, Among them, n b is the window size information, in, ONE b =(1<<BITS b )-k b Among them, BITS b is the number of bits used to represent the first state value, Among them, k b It is a predetermined number.
69. The arithmetic decoder according to claim 58, wherein: The arithmetic decoder is configured to perform a weighted combination of the first state variable value and the second state variable value in order to obtain the bin size information.
70. The arithmetic decoder according to claim 58, in, The arithmetic decoder is configured to derive the probability estimate P according to the following equation t : P t =((a t >>(BITS a -BITS min ))+(b t >>(BITS b -BITS min )))>>1 in BI TS min =min(BITS a ,BITS b ), Among them, a t is the value of the first state variable, Among them, b t is the value of the second state variable, Among them, BITS a It is used to represent a t The number of bits; Among them, BITS b It is used to represent b t The number of bits.
71. An arithmetic decoder (690) for decoding a plurality of symbols (620) having symbol values, in, The arithmetic decoder is configured to determine bin size information for arithmetic decoding of one or more symbol values to be decoded (462); wherein the arithmetic decoder is configured to derive an interval size based on the interval size information (652); wherein the arithmetic decoder is configured to multiply the overall encoded interval size value (640) or a shifted version thereof with the interval size information value (462) or a shifted version thereof in a first mode to obtain an interval size (652) associated with a symbol value from among a plurality of possible symbol values; and wherein the arithmetic decoder is configured to obtain, in a second mode, an interval size (652) associated with a symbol value from a plurality of possible symbol values by applying a bit shift operation to the overall encoded interval size value (640), wherein the number of bits by which the overall encoded interval size value is shifted is determined by the interval size information (462); and The arithmetic decoder is configured to receive auxiliary information, the auxiliary information indicating whether to use the first mode of performing multiplication between the overall encoding size value and the interval size information value or the second mode of obtaining the interval size by bit shifting.
72. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive a shift count value describing how many bits the overall encoding interval size value is shifted.
73. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive a shift count value describing how many bits the overall encoding interval size value is shifted based on a probability value describing a probability of a symbol value among a plurality of possible symbol values.
74. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value based on the integer value representation of the probability value comprising BITS bits using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
75. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value by adding or subtracting a value depending on the integer value representation of the probability value.
76. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value by adding or subtracting a value that is a right-shifted version of the integer value representation of the probability value, using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value.
77. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value g according to the following equation LPS : or or or Among them, P LPS is an integer value representation of the probability value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
78. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value g according to the following equation: LPS : Among them, BITS-1 is used for P LPS The number of bits represented by the number; Among them, P LPS is an integer value representation of the probability value; Among them, g MAX is a predetermined number; Among them, >> is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
79. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the shift count value based on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
80. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to initialize one or more source statistical values depending on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
81. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to initialize one or more source statistical values using a bit shift operation depending on a range-restricted integer value representation of an initial probability value.
82. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to represent the initial probability value P according to the following equation: clip To initialize one or more source statistics a t 、b t : a t =P clip <<(BITS a -const31) and / or b t =P clip <<(BITS b -const31) Among them, BITS a is the source statistic value a t The number of bits represented by the number; Among them, BITS b is the source statistic value b t The number of bits represented by the number; Wherein, const31 is a predetermined value; and Among them, << is the left shift operator.
83. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to derive the integer value representation P of the initial probability value according to the following equation clip : P clip =min(const11,max(const12,P init )) P init =((slope·(qp-const13))>>const14)+offset, Among them, const11 is a predetermined value; Among them, const12 is a predetermined value; Among them, const13 is a predetermined value; Among them, const14 is a predetermined value; Among them, slope is the initialization parameter value; Where qp is the quality parameter value; Among them, offset is the initialization parameter value.
84. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to determine initial values of one or more source statistics used to derive the bin size information value in the first mode and an initial value of the shift count value used in the second mode based on the same one or more initialization parameters.
85. The arithmetic decoder according to claim 71, wherein: The arithmetic decoder is configured to obtain the interval size R according to the following equation in the first mode: LPS : R LPS =(((R>>SHIFT R )·(P LPS >>SHIFT P ))>>SHIFT MUL )+add LPS Wherein, R is the value of the overall coding interval size; Among them, SHIFT R is a predetermined value; Among them, P LPS is an integer value interval size information value; Among them, SHIFT P is a predetermined value; Among them, SHIFT MUL is a predetermined value; Among them, add LPS It is a predetermined value.
86. The arithmetic decoder according to claim 85, wherein: The arithmetic decoder is configured to obtain the integer value interval size information value P according to the following equation LPS : val MPS =P t >>(BITS min -1) P LPS =(val MPS ?(1<<BITS min )-1-P t ∶P t ) Where Pt is an integer-valued probability value; Where BITSmin is the number of bits used to represent Pt; Where (cond?A:B) is an operator that provides the value A if the condition cond is not zero, otherwise it provides B.
87. An arithmetic decoder (990) for decoding a plurality of symbols (920) having symbol values, in, The arithmetic decoder is configured to determine bin size information (862) for arithmetically decoding (930) one or more symbol values (920) to be decoded; wherein the arithmetic decoder is configured to derive an interval size (852, 952) based on the interval size information (862); wherein the arithmetic decoder is configured to obtain an interval size (852, 952) associated with a symbol value of a plurality of possible symbol values by applying a bit shift operation (858) to an overall encoding interval size value (840, 940), wherein the number of bits by which the overall encoding interval size value is shifted is determined by a shift count value (854); and wherein the arithmetic decoder is configured to derive the shift count value based on an integer value representation of a probability value (862) using determination of the bit position of a most significant non-zero bit of an operand value that is increased or decreased relative to the integer value representation of the probability value.
88. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the shift count value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value by adding or subtracting a value depending on the integer value representation of the probability value.
89. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the shift count value using determination of the bit position of the most significant non-zero bit of the operand value that is increased or decreased relative to the integer value representation of the probability value by adding or subtracting a value that is a right-shifted version of the integer value representation of the probability value.
90. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the shift count value g according to the following equation LPS : or or or Among them, P LPS is an integer value representation of the probability value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
91. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the shift count value g according to the following equation: LPS : Among them, BITS-1 is used for P LPS The number of bits represented by the number; Among them, P LPS is an integer value representation of the probability value; Among them, g MAX is a predetermined number; Among them, >> is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
92. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the shift count value based on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
93. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to initialize one or more source statistical values depending on an integer-valued representation of an initial probability value obtained based on one or more context model initialization parameters.
94. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to initialize one or more source statistical values using a bit shift operation depending on a range-restricted integer value representation of an initial probability value.
95. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to represent the initial probability value P according to the following equation: clip To initialize one or more source statistics a t 、b t : a t =P clip <<(BITS a -const31) and / or b t =P clip <<(BITS b -const31), Among them, BITS a is the source statistic a t The number of bits represented by the number; Among them, BITS b is the source statistic value b t The number of bits represented by the number; Wherein, const31 is a predetermined value; and Among them, << is the left shift operator.
96. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to derive the integer value representation P of the initial probability value according to the following equation clip : P clip =min(const11,max(const12,P init )) P init =((slope·(qp-const13))>>const14)+offset Among them, const11 is a predetermined value; Among them, const12 is a predetermined value; Among them, const13 is a predetermined value; Among them, const14 is a predetermined value; Among them, slope is the initialization parameter value; Where qp is the quality parameter value; Among them, offset is the initialization parameter value.
97. The arithmetic decoder according to claim 87, wherein: The arithmetic decoder is configured to determine initial values of one or more source statistics used to derive the bin size information value in the first mode and an initial value of the shift count value used in the second mode based on the same one or more initialization parameters.
98. An arithmetic decoder (1190) for decoding a plurality of symbols (1120) having symbol values, in, The arithmetic decoder is configured to determine bin size information for arithmetically decoding (1130) one or more symbol values to be decoded; wherein the arithmetic decoder is configured to derive an interval size based on the interval size information (1152); wherein the arithmetic decoder is configured to obtain an interval size (1152) associated with a symbol value of a plurality of possible symbol values using a first interval size determination (1059) method in a first mode; and wherein the arithmetic decoder is configured to obtain an interval size associated with a symbol value of a plurality of possible symbol values using a second interval size determination method (1058) in a second mode; and wherein the arithmetic decoder is configured to obtain one or more first initialization values (1079) based on one or more initialization parameters (1176), the one or more first initialization values (1079) being used to determine the interval size (1152) using the first interval size determination method (1059); and The arithmetic decoder is configured to obtain one or more second initialization values (1078) based on the one or more initialization parameters (1176), and the one or more second initialization values (1078) are used to determine the interval size (1152) using the second interval size determination method (1059).
99. The arithmetic decoder according to claim 98, in, The first interval size determination method comprises a first accuracy, wherein the second interval size determination method comprises a second accuracy, wherein the first accuracy is different from the second accuracy; and / or The first interval size determination method includes a first computational complexity, the second interval size determination method includes a second computational complexity, and the first computational complexity is different from the second computational complexity.
100. The arithmetic decoder according to claim 98, in, the arithmetic decoder being configured to, in the first mode, multiply the overall encoded interval size value, or a shifted version thereof, with the interval size information value, or a shifted version thereof, so as to obtain an interval size associated with a symbol value of a plurality of possible symbol values; as well as The arithmetic decoder is configured to obtain an interval size associated with a symbol value among multiple possible symbol values by applying a bit shift operation to the overall coding interval size value in the second mode, wherein the number of bits by which the overall coding interval size value is shifted is determined by the interval size information.
101. The arithmetic decoder according to claim 98, in, The arithmetic decoder is configured to determine one or more source statistical values as the one or more first initialization values; and / or The arithmetic decoder is configured to determine a shift count value as the second initialization value, wherein the shift count value determines the number of bits by which the overall encoding interval size value is to be shifted in order to obtain an interval size associated with a symbol value among multiple possible symbols.
102. The arithmetic decoder according to claim 98, wherein: The arithmetic decoder is configured to determine the one or more first initialization values using a first mapping, wherein the first mapping linearly maps an intermediate probability value obtained based on one or more initialization parameters to the one or more first initialization values, in addition to one or more clipping operations and one or more rounding operations.
103. The arithmetic decoder according to claim 98, in, the arithmetic decoder being configured to determine the one or more second initialization values using a logarithmic compression of an operand value equal to or based on the intermediate probability value to a reduced range of values; or Therein, the arithmetic decoder is configured to determine the one or more second initialization values using quantization of a grid in a logarithmic domain of operand values equal to or based on the intermediate probability value.
104. The arithmetic decoder according to claim 98, wherein: The arithmetic decoder is configured to determine the one or more second initialization values using a second mapping, wherein the second mapping includes calculating a logarithm of an operand value equal to or based on the intermediate probability value and rounding a calculation result of the logarithm to an integer value.
105. The arithmetic decoder according to claim 98, wherein: The arithmetic decoder is configured to obtain one or more first initialization values a according to the following equations: t and / or b t : a t =P clip <<(BITS a -const64) b t =P clip <<(BITS b -const64) The arithmetic decoder is configured to obtain the intermediate probability value P according to the following equation: clip : P clip =min(const60,max(const61,P init )) P init =((slope·(qp-const62))>>const63)+offset Among them, the slope is the first initialization parameter; Wherein, the offset is the second initialization parameter; Among them, qp is the third initialization parameter; Among them, const60 is a predetermined value; Among them, const61 is a predetermined value; Among them, const62 is a predetermined value; Among them, const63 is a predetermined value; Among them, const64 is a predetermined value; Among them, BITS a It is used to represent the first source statistic a t The number of bits; Among them, BITS b It is used to represent the first source statistic b t The number of bits.
106. The arithmetic decoder according to claim 98, wherein: The arithmetic decoder is configured to obtain the second initialization value g according to the following equation LPS : or or or Among them, P LPS Equal to P clip Or based on P clip , Among them, P clip is obtained according to the following equation: P clip =min(const60,max(const61,P init )) P init =((slope·(qp-const62))>>const63)+offset Among them, the slope is the first initialization parameter; Wherein, the offset is the second initialization parameter; Among them, qp is the third initialization parameter; Among them, const60 is a predetermined value; Among them, const61 is a predetermined value; Among them, const62 is a predetermined value; Among them, const63 is a predetermined value; Among them, const1 is a predetermined value; Among them, const2 is a predetermined value; Among them, const2' is a predetermined value; Among them, const3 is a predetermined value; Among them, g MAX is a predetermined value; Among them, ">>" is the right shift operator; Among them, log2 is a logarithmic operator with base 2; in, is the ceiling operator.
107. An arithmetic decoder (1390) for decoding a plurality of symbols (1320) having symbol values, wherein: The arithmetic decoder is configured to determine interval size information for arithmetic decoding of one or more symbol values to be decoded (1262); wherein the arithmetic decoder is configured to derive an interval size based on the interval size information (1352); wherein the arithmetic decoder is configured to obtain, in a first mode, an interval size (1352) associated with a symbol value of a plurality of possible symbol values based on the overall encoding interval size value (1340); and wherein the arithmetic decoder is configured to obtain, in a second mode, an interval size associated with a symbol value of a plurality of possible symbol values based on the overall encoding interval size value (1352); and The arithmetic decoder is configured to switch between the use of a first number of bits and a second number of bits for representing the value of the overall coding interval size.
108. The arithmetic decoder according to claim 107, wherein: The arithmetic decoder is configured to determine the overall encoding interval size value such that, before decoding a symbol value, the overall encoding interval size value is in the following interval: [1<<(BITS R1 -1),(1<<BITS R1 )-1] The arithmetic decoder is configured to use BITS in the first mode. R1 bits represent the size of the coding interval, and The arithmetic decoder is configured to use BITS in the second mode. R2 bits represent the size of the coding interval. Among them, BITS R2 <BITS R1 .
109. The arithmetic decoder according to claim 107, wherein: The arithmetic decoder is configured to multiply the overall encoded interval size value or a shifted version thereof with the interval size information value or a shifted version thereof in the first mode to obtain an interval size associated with a symbol value of a plurality of possible symbol values.
110. The arithmetic decoder according to claim 107, wherein: The arithmetic decoder is configured to obtain, in the second mode, an interval size associated with a symbol value from among a plurality of possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
111. The arithmetic decoder according to claim 107, wherein: The arithmetic decoder is configured to derive a shift count value when operating in the second mode, the shift count value describing how many bits the overall encoding interval size value is shifted.
112. The arithmetic decoder according to claim 107, wherein: The arithmetic decoder is configured to limit the shift count value to a maximum value g MAX , and wherein the first number of bits is greater than the second number of bits, and wherein the second number of bits is greater than the maximum value g MAX .
113. The arithmetic decoder according to claim 107, in, the arithmetic decoder is configured to switch between use of a first number of bits and a second number of bits for representing the overall coding interval size value, such that the first number of bits is used when operating in the first mode, and such that the second number of bits is used when operating in the second mode, wherein the first number of bits is greater than the second number of bits, and wherein the arithmetic decoder is configured to obtain, in the second mode, an interval size associated with a symbol value from among a plurality of possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by a shift count value; and Wherein, in the first mode, the shift count value is limited to a first maximum value, and Wherein, in the second mode, the shift count value is limited to a second maximum value, wherein the first maximum value is greater than the second maximum value.
114. The arithmetic decoder according to claim 107, in, the first number of bits is adapted to the first maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the first number of bits results in a non-zero value, and wherein the second number of bits is adapted to the second maximum value such that a shift of the overall encoding size value represented by the number of bits defined by the second number of bits results in a non-zero value.
115. A video encoder (2300), in, The video encoder is configured to encode a plurality of video frames (2301), The video encoder comprises an arithmetic encoder (110, 310, 510, 810, 1010) according to claim 1, 14, 30, 41 or 50, for providing an encoded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
116. A video decoder (2400), in, The video decoder is configured to decode a plurality of video frames (2401), The video decoder comprises an arithmetic decoder (290, 490, 690, 990, 1190) according to claim 58, 71, 87, 98 or 107, for providing a decoded binary sequence (2420) based on an encoded representation (2492) of the binary sequence.
117. A method for encoding a plurality of symbols having symbol values, in, The method comprises: in a first mode of operation, deriving interval size information (362) for arithmetically encoding (330) one or more symbol values to be encoded based on one or more state variable values (364), the one or more state variable values (364) representing statistics of a plurality of previously encoded symbol values (324); and updating the one or more state variable values and / or the interval size information for use in encoding one or more subsequent symbol values to be encoded in the first mode; Wherein, the method comprises disabling, in the second mode, updating of the one or more state variable values and / or the interval size information; The method includes providing auxiliary information (316), the auxiliary information (316) indicating whether to use the first mode that enables updating of the one or more state variable values and / or the interval size information or to use the second mode that disables updating of the one or more state variable values and / or the interval size information.
118. A method for encoding a plurality of symbols (520) having symbol values, in, The method includes determining interval size information (562) for arithmetic encoding (530) one or more symbol values to be encoded; Wherein, the method includes deriving an interval size based on the interval size information (552); The method comprises: in a first mode, multiplying the overall encoded interval size value (540) or a shifted version thereof with the interval size information value or a shifted version thereof to obtain an interval size (552) associated with a symbol value from among a plurality of possible symbol values; and wherein the method comprises: obtaining an interval size associated with a symbol value of a plurality of possible symbol values by applying a bit shift operation to the overall encoded interval size value in a second mode (552), wherein the number of bits by which the overall encoded interval size value is shifted is determined by the interval size information; and Therein, the method includes providing auxiliary information (516), the auxiliary information (516) indicating whether to use the first mode of performing multiplication between the overall encoding size value and the interval size information value or the second mode of obtaining the interval size by bit shifting.
119. A method for encoding a plurality of symbols (820) having symbol values, in, The method includes determining interval size information (862) for arithmetically encoding one or more symbol values to be encoded (830); Wherein, the method includes deriving an interval size (852) based on the interval size information (862); wherein the method includes obtaining an interval size (852) associated with a symbol value from a plurality of possible symbol values by applying a bit shift operation (858) to an overall encoding interval size value (840), wherein the number of bits by which the overall encoding interval size value is shifted is determined by a shift count value (854); and Therein, the method includes deriving the shift count value based on an integer value representation of a probability value (862) using determination of the bit position of a most significant non-zero bit of an operand value that is incremented or decremented relative to the integer value representation of the probability value.
120. A method for encoding a plurality of symbols (1020) having symbol values, in, The method includes determining interval size information for arithmetically encoding one or more symbol values to be encoded (1030); Wherein, the method includes deriving an interval size based on the interval size information (1052); The method includes obtaining an interval size associated with a symbol value from among a plurality of possible symbol values using a first interval size determination method (1059) in a first mode (1052); and Wherein the method comprises obtaining, in a second mode, using a second interval size determination method (1058) an interval size associated with a symbol value of a plurality of possible symbol values; and The method comprises obtaining one or more first initialization values (1079) based on one or more initialization parameters (1076), the one or more first initialization values (1079) being used to determine the interval size using the first interval size determination method, and The method includes obtaining one or more second initialization values (1078) based on the one or more initialization parameters (1076), and the one or more second initialization values (1078) are used to determine the interval size using the second interval size determination method.
121. A method for encoding a plurality of symbols (1220) having symbol values, in, The method includes determining interval size information for arithmetically encoding one or more symbol values to be encoded (1230); Wherein, the method includes deriving an interval size based on the interval size information (1252); The method includes obtaining, in a first mode, based on the overall encoding interval size value (1240), an interval size associated with a symbol value of a plurality of possible symbol values (1252); and The method includes obtaining, in a second mode, an interval size (1252) associated with a symbol value of a plurality of possible symbol values based on the overall encoding interval size value (1240); and Therein, the method includes switching between use of a first number of bits (1242) and use of a second number of bits (1244) for representing the overall coding interval size value (1240).
122. A method for decoding a plurality of symbols (420) having symbol values, in, The method comprises: in a first mode of operation, deriving interval size information (462) for arithmetically decoding (430) one or more symbol values to be decoded based on one or more state variable values (464) representing statistics of a plurality of previously decoded symbol values (424); and updating the one or more state variable values (464) and / or the interval size information (462) for use in decoding one or more subsequent symbol values to be decoded in the first mode; Wherein, the method comprises disabling, in the second mode, updating of the one or more state variable values and / or the interval size information; The method includes receiving auxiliary information (416), the auxiliary information (416) indicating whether to use the first mode of enabling updating of the one or more state variable values and / or the interval size information or to use the second mode of disabling updating of the one or more state variable values and / or the interval size information.
123. A method for decoding a plurality of symbols (620) having symbol values, in, The method includes determining interval size information (562) for arithmetically decoding (630) one or more symbol values to be decoded; Wherein, the method includes deriving an interval size (652) based on the interval size information (562); The method comprises: in a first mode, multiplying the overall encoded interval size value (640) or a shifted version thereof with the interval size information value (562) or a shifted version thereof to obtain an interval size (652) associated with a symbol value from among a plurality of possible symbol values; and wherein the method comprises: obtaining an interval size associated with a symbol value of a plurality of possible symbol values by applying a bit shift operation to the overall encoded interval size value in a second mode (652), wherein the number of bits by which the overall encoded interval size value is shifted is determined by the interval size information; and Therein, the method includes receiving auxiliary information (616), the auxiliary information (616) indicating whether to use the first mode of performing multiplication between the overall encoding size value and the interval size information value or the second mode of obtaining the interval size by bit shifting.
124. A method for decoding a plurality of symbols (920) having symbol values, in, The method includes determining interval size information (862) for arithmetically decoding (930) one or more symbol values to be decoded; Wherein, the method includes deriving an interval size based on the interval size information (952); wherein the method includes obtaining an interval size associated with a symbol value from a plurality of possible symbol values by applying a bit shift operation to an overall encoding interval size value (940), wherein the number of bits by which the overall encoding interval size value is shifted is determined by a shift count value; and Therein, the method includes deriving the shift count value based on an integer value representation of a probability value (862) using determination of the bit position of a most significant non-zero bit of an operand value that is incremented or decremented relative to the integer value representation of the probability value.
125. A method for decoding a plurality of symbols (1120) having symbol values, in, The method includes determining interval size information (1062) for arithmetically decoding (1130) one or more symbol values to be decoded; Wherein, the method includes deriving an interval size based on the interval size information (1152); The method includes obtaining, in a first mode, using a first interval size determination method (1059) to obtain an interval size associated with a symbol value from among a plurality of possible symbol values (1152); and The method includes obtaining, in a second mode, using a second interval size determination method (1058) to obtain an interval size associated with a symbol value from among a plurality of possible symbol values (1152); and The method comprises obtaining one or more first initialization values (1079) based on one or more initialization parameters (1176), the one or more first initialization values (1079) being used to determine the interval size using the first interval size determination method, and The method includes obtaining one or more second initialization values (1078) based on the one or more initialization parameters (1176), and the one or more second initialization values (1078) are used to determine the interval size using the second interval size determination method.
126. A method for decoding a plurality of symbols (1320) having symbol values, in, The method includes determining interval size information for arithmetically decoding one or more symbol values to be decoded (1330); Wherein, the method includes deriving an interval size based on the interval size information (1352); The method includes obtaining, in a first mode, based on the overall encoding interval size value (1340), an interval size associated with a symbol value of a plurality of possible symbol values (1352); and wherein the method includes obtaining, in a second mode, an interval size associated with a symbol value from among a plurality of possible symbol values for the overall coding interval size value based on the overall coding interval size value (1340), wherein the number of bits by which the overall coding interval size value is shifted is determined by a shift count value; and Therein, the method includes switching between use of a first number of bits (1342) and use of a second number of bits (1344) for representing the overall coding interval size value (1340).
127. A method for encoding video content, in, The method comprises encoding a plurality of video frames (2301), Therein, the method comprises performing arithmetic coding according to one of claims 117 to 121 for providing a coded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
128. A method for decoding video content, in, The method comprises decoding a plurality of video frames, Therein, the method comprises performing arithmetic decoding according to one of claims 122 to 126 for providing a decoded binary sequence based on an encoded representation of the binary sequence.
129. A computer program for performing the method according to one of claims 117 to 128 when said computer program is run on a computer.
130. An arithmetic encoder (1410) for encoding a plurality of symbols (1420) having symbol values, in, The arithmetic encoder is configured to determine interval size information (1462) for arithmetically encoding one or more symbol values to be encoded (1430); wherein the arithmetic encoder is configured to derive the interval size (1452) based on the interval size information (1462); wherein the arithmetic encoder is configured to derive the count value (1448) based on an integer value representation of the probability value (1462) using determination of the bit position of a most significant non-zero bit of an operand value that is incremented or decremented relative to the integer value representation of the probability value; and The arithmetic encoder is configured to use the count value (1448) to obtain an interval size (1452) associated with a symbol value from among a plurality of possible symbol values.
131. An arithmetic encoder according to claim 130, wherein: The arithmetic encoder is configured to apply a bit shift operation (1558) to a predetermined value to obtain the interval size, wherein the number of bits by which the predetermined value is shifted is determined by the count value.
132. The arithmetic encoder according to claim 130, wherein: The arithmetic encoder is configured to map the count value onto the bin size.
133. The arithmetic encoder according to claim 130, wherein: The arithmetic encoder is configured to: determine the interval size independently of a current overall encoding interval size if the count value is within a first value range; as well as The arithmetic encoder is configured to determine the interval size depending on the current overall encoding interval size value if the count value is within a second value range different from the first value range.
134. An arithmetic encoder according to claim 133, wherein: The arithmetic encoder is configured to take over the current overall encoding interval size value as the interval size if the count value is within the second value range.
135. An arithmetic encoder according to claim 133, wherein: The arithmetic encoder is configured to apply a shift operation to the current overall encoding interval size value to obtain the interval size if the count value is within the second value range.
136. The arithmetic encoder according to claim 130, in, The arithmetic encoder is configured to apply a shift operation to the current overall encoding interval size value to obtain the interval size if the count value is within a first value range, and The arithmetic encoder is configured to: if the count value is within a second value range, take over the current overall encoding interval size value as the interval size.
137. An arithmetic encoder (1910) for encoding a plurality of symbols (1920) having symbol values, in, The arithmetic encoder is configured to determine interval size information (1962) for arithmetically encoding (1930) one or more symbol values to be encoded; wherein the arithmetic encoder is configured to derive the interval size (1952) based on the interval size information (1962); wherein the arithmetic encoder is configured to be switchable between a first mode and a second mode, wherein the arithmetic encoder is configured to: when operating in the first mode, determine the interval size associated with a symbol value in a plurality of possible symbol values at a first granularity or a first resolution (1952); and when operating in the second mode, determine the interval size associated with a symbol value in a plurality of possible symbol values at a second granularity or a second resolution, The first granularity or the first resolution is coarser than the second granularity or the second resolution.
138. The arithmetic encoder according to claim 137, in, The arithmetic encoder is configured to, when operating in the first mode, use a representation of the bin size comprising a first number of bits, and wherein the arithmetic encoder is configured to: when operating in the second mode, use a representation of the interval size comprising a second number of bits, wherein the second number of bits is greater than the first number of bits; or The arithmetic encoder is configured to: when operating in the first mode, retain multiple bits of the representation of the interval size with a predetermined bit value; and when operating in the first mode, use all bits of the representation of the interval size as information carrying bits.
139. The arithmetic encoder according to claim 137, in, The arithmetic encoder is configured to, when operating in the first mode, use a representation of the overall coding interval size comprising a third number of bits, and wherein the arithmetic encoder is configured to: when operating in the second mode, use a representation of the overall coding interval size including a fourth number of bits, wherein the fourth bit number is greater than the third bit number; or The arithmetic encoder is configured to: when operating in the first mode, retain multiple bits representing the overall coding interval size with a predetermined bit value; and when operating in the first mode, use all bits representing the overall coding interval size as information carrying bits.
140. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to, when operating in the second mode, determine the bin size such that the bin size depends on the overall encoding bin size.
141. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to, when operating in the first mode, determine the interval size such that the interval size is independent of the overall encoding interval size at least within a value range of the interval size information.
142. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to perform a multiplication based subdivision of the overall coding interval when operating in the second mode.
143. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to, when operating in the second mode, multiply the overall encoded bin size value, or a shifted version thereof, with the bin size information value, or a shifted version thereof, to obtain a bin size associated with a symbol value of a plurality of possible symbol values.
144. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to perform a displacement-based subdivision of the overall coding interval when operating in the second mode.
145. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to: when operating in the second mode, obtain an interval size associated with a symbol value among multiple possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
146. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to initialize the overall encoding interval size to a multiple of a predetermined power of two when operating in the first mode.
147. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to, when operating in a high throughput mode, provide the bin size such that the bin size is a multiple of the predetermined power of two.
148. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to provide the bin size using a table lookup, wherein entries of the lookup table are multiples of the predetermined power of two.
149. The arithmetic encoder according to claim 137, wherein: The arithmetic encoder is configured to provide the bin size using application of a bit shift operation to a predetermined value, the predetermined value being selected such that a bit shifted version of the predetermined value is a multiple of the predetermined power of two.
150. An arithmetic decoder (1890) for decoding a plurality of symbols (1820) having symbol values, in, The arithmetic decoder is configured to determine bin size information (1462) for arithmetically decoding (1830) one or more symbol values to be decoded; wherein the arithmetic decoder is configured to derive the interval size (1452, 1852) based on the interval size information (1462); wherein the arithmetic decoder is configured to derive the count value (1448) based on the integer value representation of the probability value (1462) using determination of the bit position of the most significant non-zero bit of the operand value that is incremented or decremented relative to the integer value representation of the probability value (1462); and The arithmetic decoder is configured to use the count value (1448) to obtain an interval size (1852) associated with a symbol value from among a plurality of possible symbol values.
151. The arithmetic decoder according to claim 150, wherein: The arithmetic decoder is configured to apply a bit shift operation (1558) to the predetermined value (1440) in order to obtain the interval size (1552), The number of bits by which the predetermined value is shifted is determined by the count value (1448).
152. The arithmetic decoder according to claim 150, wherein: The arithmetic decoder is configured to map the count value (1448) to the bin size (1852).
153. The arithmetic decoder according to claim 150, in, The arithmetic decoder is configured to determine the interval size (1852) independently of a current overall encoding interval size (1440) if the count value (1448) is within a first value range, and The arithmetic decoder is configured to determine the interval size depending on the current overall encoding interval size value (1440) if the count value (1448) is within a second value range different from the first value range.
154. An arithmetic decoder according to claim 153, wherein: The arithmetic decoder is configured to take over the current overall encoding interval size value (1440) as the interval size (1852) if the count value is within the second value range.
155. The arithmetic decoder according to claim 153, wherein: The arithmetic decoder is configured to apply a bit shift operation to the current overall encoding interval size value to obtain the interval size if the count value is within the second value range.
156. The arithmetic decoder according to claim 150, in, The arithmetic decoder is configured to apply a bit shift operation to the current overall encoding interval size value to obtain the interval size if the count value is within a first value range, and The arithmetic decoder is configured to: if the count value is within a second value range, take over the current overall encoding interval size value as the interval size.
157. An arithmetic decoder (2090) for decoding a plurality of symbols (2020) having symbol values, in, The arithmetic decoder is configured to determine interval size information (1962) for arithmetically decoding (2030) one or more symbol values to be decoded; wherein the arithmetic decoder is configured to derive the interval size (1952, 2052) based on the interval size information (1962); wherein the arithmetic decoder is configured to be switchable between a first mode and a second mode, wherein the arithmetic decoder is configured to: when operating in the first mode, determine the interval size associated with a symbol value in a plurality of possible symbol values at a first granularity or a first resolution (2052); and when operating in the second mode, determine the interval size associated with a symbol value in a plurality of possible symbol values at a second granularity or a second resolution, The first granularity or the first resolution is coarser than the second granularity or the second resolution.
158. The arithmetic decoder according to claim 157, in, The arithmetic decoder is configured to, when operating in the first mode, use a representation of the bin size comprising a first number of bits, and wherein the arithmetic decoder is configured to: when operating in the second mode, use a representation of the interval size comprising a second number of bits, wherein the second number of bits is greater than the first number of bits; or The arithmetic decoder is configured to: when operating in the first mode, retain multiple bits of the representation of the interval size with a predetermined bit value; and when operating in the first mode, use all bits of the representation of the interval size as information carrying bits.
159. The arithmetic decoder according to claim 157, in, The arithmetic decoder is configured to, when operating in the first mode, use a representation of the overall coding interval size comprising a third number of bits, and wherein the arithmetic decoder is configured to: when operating in the second mode, use a representation of the overall coding interval size comprising a fourth number of bits, wherein the fourth bit number is greater than the third bit number; or The arithmetic decoder is configured to: when operating in the first mode, retain multiple bits representing the overall coding interval size with a predetermined bit value; and when operating in the first mode, use all bits representing the overall coding interval size as information carrying bits.
160. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to, when operating in the second mode, determine the bin size such that the bin size depends on the overall encoding bin size.
161. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to, when operating in the first mode, determine the interval size such that the interval size is independent of the overall encoding interval size at least within a value range of the interval size information.
162. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to perform a multiplication based overall coding interval subdivision when operating in the second mode.
163. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to, when operating in the second mode, multiply the overall encoded bin size value, or a shifted version thereof, with the bin size information value, or a shifted version thereof, to obtain a bin size associated with a symbol value of a plurality of possible symbol values.
164. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to perform a displacement-based overall coding interval subdivision when operating in the second mode.
165. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to, when operating in the second mode, obtain an interval size associated with a symbol value among multiple possible symbol values by applying a bit shift operation to the overall encoding interval size value, wherein the number of bits by which the overall encoding interval size value is shifted is determined by the interval size information.
166. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to initialize the overall encoding interval size to a multiple of a predetermined power of two when operating in the first mode.
167. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to, when operating in a high throughput mode, provide the bin size such that the bin size is a multiple of the predetermined power of two.
168. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to provide the bin size using a table lookup, wherein entries of the lookup table are multiples of the predetermined power of two.
169. The arithmetic decoder according to claim 157, wherein: The arithmetic decoder is configured to provide the bin size using application of a bit shift operation to a predetermined value, the predetermined value being selected such that a bit shifted version of the predetermined value is a multiple of the predetermined power of two.
170. A video encoder (2300), in, The video encoder is configured to encode a plurality of video frames (2301), The video encoder comprises an arithmetic encoder (110, 1210, 1410) according to claim 133 or 137, for providing an encoded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
171. A video decoder (2400), in, The video decoder is configured to decode a plurality of video frames (2401), The video decoder comprises an arithmetic decoder (290, 1390, 1890) according to claim 150 or 157, for providing a decoded binary sequence (2420) based on an encoded representation (2492) of the binary sequence.
172. A method for encoding a plurality of symbols having symbol values, in, The method includes determining interval size information (1462) for arithmetically encoding one or more symbol values to be encoded (1430); Wherein, the method includes deriving an interval size (1452) based on the interval size information (1462); wherein the method includes deriving a count value (1448) based on an integer value representation of a probability value (1462), using determination of a bit position of a most significant non-zero bit of an operand value that is incremented or decremented relative to the integer value representation of the probability value; and Therein, the method includes using the count value (1448) to obtain an interval size (1452) associated with a symbol value from among a plurality of possible symbol values.
173. A method for encoding a plurality of symbols (1920) having symbol values, in, The method includes determining interval size information (1962) for arithmetically encoding one or more symbol values to be encoded (1930); Wherein, the method includes deriving an interval size (1952) based on the interval size information (1962); wherein the method comprises switching between a first mode and a second mode, The method comprises: when operating in the first mode, determining the interval size associated with a symbol value in a plurality of possible symbol values at a first granularity or a first resolution; and when operating in the second mode, determining the interval size associated with a symbol value in a plurality of possible symbol values at a second granularity or a second resolution, The first granularity or the first resolution is coarser than the second granularity or the second resolution.
174. A method for decoding a plurality of symbols (1820) having symbol values, in, The method includes determining interval size information (1462) for arithmetically decoding (1830) one or more symbol values to be decoded; Wherein, the method includes deriving an interval size based on the interval size information (1852); wherein the method includes deriving a count value (1448) based on an integer value representation of a probability value (1462), using determination of a bit position of a most significant non-zero bit of an operand value that is incremented or decremented relative to the integer value representation of the probability value (1462); and The arithmetic method includes using the count value (1448) to obtain an interval size (1862) associated with a symbol value from among a plurality of possible symbol values.
175. A method for decoding a plurality of symbols (2020) having symbol values, in, The method includes determining interval size information for arithmetically decoding one or more symbol values to be decoded (1962); Wherein, the method includes deriving an interval size (2020) based on the interval size information (1962); wherein the method comprises switching between a first mode and a second mode, The method comprises: when operating in the first mode, determining the interval size associated with a symbol value in a plurality of possible symbol values at a first granularity or a first resolution; and when operating in the second mode, determining the interval size associated with a symbol value in a plurality of possible symbol values at a second granularity or a second resolution, The first granularity or the first resolution is coarser than the second granularity or the second resolution.
176. A method for encoding video content, in, The method comprises encoding a plurality of video frames (2301), Therein, the method comprises performing arithmetic coding according to one of claims 172 to 173 for providing a coded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
177. A method for decoding video content, in, The method comprises decoding a plurality of video frames, Therein, the method comprises performing arithmetic decoding according to one of claims 174 to 175 for providing a decoded binary sequence based on an encoded representation of the binary sequence.
178. A computer program for performing the method according to one of claims 172 to 177 when said computer program is run on a computer.
179. An arithmetic encoder (2110) for encoding a plurality of symbols (2120) having symbol values, in, The arithmetic encoder is configured to determine interval size information (2162) for arithmetically encoding (2130) one or more symbol values to be encoded; wherein the arithmetic encoder is configured to derive the interval size (2152) based on the interval size information (2162); wherein the arithmetic encoder is configured to select a low complexity context model from a plurality of low complexity context models (2192) depending on one or more previously encoded symbols (2124) or depending on an encoder state (2126) in order to determine the interval size information (2162); The arithmetic encoder is configured to initialize one or more parameters of multiple low-complexity context models so that one or more parameter values of two or more low-complexity context models associated with different environments or different encoder states of the same syntax element to be encoded and one or more previously encoded symbols are the same.
180. The arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to switch between an efficient mode using multiple high complexity context models and a high throughput mode using the low complexity context model.
181. The arithmetic encoder according to claim 180, wherein: The arithmetic encoder is configured to, when operating in the high efficiency mode, select a high complexity context model from a plurality of high complexity context models depending on one or more previously encoded symbols or depending on an encoder state in order to determine the interval size information.
182. The arithmetic encoder according to claim 180, wherein: The arithmetic encoder is configured to initialize one or more parameters of multiple high complexity context models so that parameter values or sets of parameter values of two or more high complexity context models associated with different environments or different encoder states of the same syntax element to be encoded and one or more previously encoded symbols are different.
183. The arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to determine whether parameter values of two or more low complexity context models associated with different contexts or different encoder states of the same syntax element to be encoded and one or more previously encoded symbols are the same, and The arithmetic encoder is configured to selectively disable distinctions between different contexts or different encoder states of one or more previously encoded symbols in response to discovering that parameter values of two or more low-complexity context models associated with the same syntax element to be encoded and different contexts or different encoder states of one or more previously encoded symbols are the same.
184. The arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to distinguish between independently coded picture portions, unidirectionally predicted picture portions, and bidirectionally predicted picture portions when operating in the high efficiency mode.
185. An arithmetic encoder according to claim 183, wherein: The arithmetic encoder is configured to use the same interval size information independent of the type of picture part when operating in the low complexity mode.
186. An arithmetic encoder according to claim 184, wherein: The arithmetic encoder is configured to initialize the one or more parameters of multiple high complexity context models such that parameter values or sets of parameter values of two or more high complexity context models associated with the same syntax element to be encoded and different types of image parts are different.
187. An arithmetic encoder according to claim 184, wherein The arithmetic encoder is configured to initialize one or more parameters of multiple high throughput context models such that parameter values or sets of parameter values of two or more high throughput context models associated with the same syntax element to be encoded and different types of image parts are the same.
188. The arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to initialize the one or more parameters of a plurality of high complexity context models depending on an encoding quality parameter.
189. An arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to initialize the one or more parameters of a plurality of high throughput context models independently of the encoding quality parameter.
190. The arithmetic encoder according to claim 179, wherein: The arithmetic encoder is configured to select a context model from a plurality of candidate context models for determining the interval size information, wherein the arithmetic encoder is configured to initialize each of the efficient candidate context models using a separate set of context model initialization parameters, and The arithmetic encoder is configured to initialize two or more high-throughput candidate context models using a common set of context model initialization parameters.
191. An arithmetic decoder for decoding a plurality of symbols (2220) having symbol values, in, The arithmetic decoder is configured to determine bin size information (2162) for arithmetically decoding (2230) one or more symbol values to be decoded; wherein the arithmetic decoder is configured to derive an interval size based on the interval size information (2252); wherein the arithmetic decoder is configured to select a low complexity context model from a plurality of low complexity context models (2192) in dependence on one or more previously decoded symbols (2224) or on a decoder state (2226) in order to determine the interval size information (2162); The arithmetic decoder is configured to initialize one or more parameters of multiple low-complexity context models (2192) so that one or more parameter values of two or more low-complexity context models associated with different environments or different decoder states of the same syntax element to be decoded and one or more previously decoded symbols are the same.
192. The arithmetic decoder according to claim 191, wherein: The arithmetic decoder is configured to switch between an efficient mode using a plurality of high complexity context models and a high throughput mode using the low complexity context model.
193. The arithmetic decoder according to claim 192, wherein: The arithmetic decoder is configured to, when operating in the high efficiency mode, select a high complexity context model from a plurality of high complexity context models depending on one or more previously decoded symbols or depending on a decoder state in order to determine the interval size information.
194. The arithmetic decoder according to claim 192, wherein: The arithmetic decoder is configured to initialize one or more parameters of multiple high complexity context models so that parameter values or sets of parameter values of two or more high complexity context models associated with different environments or different decoder states of the same syntax element to be decoded and one or more previously decoded symbols are different.
195. The arithmetic decoder according to claim 191, wherein: The arithmetic decoder is configured to determine whether parameter values of two or more low complexity context models associated with different contexts or different decoder states of the same syntax element to be decoded and one or more previously decoded symbols are identical, and The arithmetic decoder is configured to selectively disable distinctions between different contexts or different decoder states of one or more previously decoded symbols in response to discovering that parameter values of two or more low-complexity context models associated with the same syntax element to be decoded and different contexts or different decoder states of one or more previously decoded symbols are the same.
196. The arithmetic decoder according to claim 191, wherein: The arithmetic decoder is configured to distinguish between independently decoded picture portions, unidirectionally predicted picture portions, and bidirectionally predicted picture portions when operating in the high efficiency mode.
197. The arithmetic decoder according to claim 195, wherein: The arithmetic decoder is configured to use the same interval size information independent of the type of picture part when operating in the low complexity mode.
198. The arithmetic decoder according to claim 196, wherein: The arithmetic decoder is configured to initialize the one or more parameters of multiple high complexity context models such that parameter values or sets of parameter values of two or more high complexity context models associated with the same syntax element to be encoded and different types of image parts are different.
199. The arithmetic decoder of claim 196, wherein: The arithmetic decoder is configured to initialize one or more parameters of multiple high-throughput context models such that parameter values or sets of parameter values of two or more high-throughput context models associated with the same syntax element to be decoded and different types of image parts are the same.
200. The arithmetic decoder according to claim 191, wherein: The arithmetic decoder is configured to initialize the one or more parameters of a plurality of high complexity context models depending on a decoding quality parameter.
201. The arithmetic decoder according to claim 191, wherein: The arithmetic decoder is configured to initialize the one or more parameters of a plurality of high throughput context models independently of the decoding quality parameter.
202. The arithmetic decoder of claim 191, wherein: The arithmetic decoder is configured to select a context model from a plurality of candidate context models for determining the interval size information, wherein the arithmetic decoder is configured to initialize each of the efficient candidate context models using a separate set of context model initialization parameters, and The arithmetic decoder is configured to initialize two or more high-throughput candidate context models using a common set of context model initialization parameters.
203. A video encoder (2300), in, The video encoder is configured to encode a plurality of video frames (2301), The video encoder comprises an arithmetic encoder (110, 1910, 2110) according to claim 179, for providing an encoded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
204. A video decoder (2400), in, The video decoder is configured to decode a plurality of video frames (2401), The video decoder comprises an arithmetic decoder (290, 2090, 2290) according to claim 191, for providing a decoded binary sequence (2420) based on an encoded representation (2492) of the binary sequence.
205. A method for encoding a plurality of symbols (2120) having symbol values, in, The method includes determining interval size information (2152) for arithmetically encoding (2130) one or more symbol values to be encoded; Wherein, the method includes deriving an interval size based on the interval size information (2152); The method comprises selecting a low complexity context model from a plurality of low complexity context models (2192) depending on one or more previously encoded symbols (2124) or depending on an encoding state (2126) in order to determine the interval size information (2162); The method includes initializing one or more parameters of multiple low-complexity context models so that one or more parameter values of two or more low-complexity context models associated with different environments or different coding states of the same grammatical element to be encoded and one or more previously encoded symbols are the same.
206. A method for decoding a plurality of symbols (2220) having symbol values, in, The method includes determining interval size information (2162) for arithmetically decoding (2230) one or more symbol values to be decoded; Wherein, the method includes deriving an interval size based on the interval size information (2252); wherein the method comprises selecting a low complexity context model from a plurality of low complexity context models (2192) depending on one or more previously decoded symbols (2224) or depending on a decoding state (2226) in order to determine the interval size information (2162); The method includes initializing one or more parameters of multiple low-complexity context models so that one or more parameter values of two or more low-complexity context models associated with different environments or different decoding states of the same syntax element to be decoded and one or more previously decoded symbols are the same.
207. A method for encoding video content, in, The method comprises encoding a plurality of video frames (2301), Therein, the method comprises performing arithmetic coding according to claim 205 for providing a coded binary sequence (2392) based on a sequence (2320) of binary values representing video content.
208. A method for decoding video content, in, The method comprises decoding a plurality of video frames, Therein, the method comprises performing arithmetic decoding according to claim 206 to provide a decoded binary sequence based on an encoded representation of the binary sequence.
209. A computer-readable medium storing a computer program for executing the method according to one of claims 205 to 208 when the computer program is run on a computer.
